DE102018219852A1 - Verfahren und Vorrichtung zum Ermitteln einer Systemkonfiguration für ein verteiltes System - Google Patents

Verfahren und Vorrichtung zum Ermitteln einer Systemkonfiguration für ein verteiltes System Download PDF

Info

Publication number
DE102018219852A1
DE102018219852A1 DE102018219852.7A DE102018219852A DE102018219852A1 DE 102018219852 A1 DE102018219852 A1 DE 102018219852A1 DE 102018219852 A DE102018219852 A DE 102018219852A DE 102018219852 A1 DE102018219852 A1 DE 102018219852A1
Authority
DE
Germany
Prior art keywords
communication
processing
function
processing nodes
system configurations
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
DE102018219852.7A
Other languages
English (en)
Inventor
Peter Munk
Sebastian Reiser
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 DE102018219852.7A priority Critical patent/DE102018219852A1/de
Publication of DE102018219852A1 publication Critical patent/DE102018219852A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/008Reliability or availability analysis

Abstract

Die Erfindung betrifft ein Verfahren zur Ermittlung einer oder mehrerer optimierter Systemkonfigurationen eines durch ein technisches Modell beschriebenen verteilten Systems, wobei das technische Modell durch Verarbeitungsknoten (21) definiert ist, wobei die Systemkonfiguration die Zuordnung von Funktionen (11) eines Funktionsmodells (1) zu einzelnen Verarbeitungsknoten (21) des technischen Modells (2) angibt, wobei folgende Schritten iterativ ausgeführt werden:- Ermitteln von mehreren Systemkonfigurationen durch Zuordnen, in einer Funktionszuordnung, von Funktionen (11) des Funktionsmodells (1) jeweils zu den Verarbeitungsknoten (21) des technischen Modells (2);- für jede der ermittelten Systemkonfigurationen, Ermitteln von Verarbeitungskosten (GVK) der Funktionszuordnungen aller Verarbeitungsknoten (21);- für jede der ermittelten Systemkonfigurationen, Ermitteln einer Gesamtausfallwahrscheinlichkeit (GAW) der Funktionszuordnungen zu den Verarbeitungsknoten (21) mit Hilfe einer Komponentenfehleranalyse; und- Bestimmen (S5) der einen oder mehrerer optimierter Systemkonfigurationen durch Auswahl aus den ermittelten Systemkonfigurationen abhängig von den Verarbeitungskosten (GVK) und der Gesamtausfallwahrscheinlichkeit (GAW).

Description

  • Technisches Gebiet
  • Die Erfindung betrifft Verfahren zum Zuweisen von Funktionen eines Funktionsmodells in einem verteilten System mit mehreren vernetzten Verarbeitungsknoten. Insbesondere betrifft die Erfindung Maßnahmen zur Zuweisung von Funktionen zu einzelnen Verarbeitungsknoten im Hinblick auf eine optimale Ressourcennutzung.
  • Technischer Hintergrund
  • Beim Design von verteilten Systemen ist das Problem der Zuordnung von Funktionen eines Funktionsmodells zu einzelnen Verarbeitungsknoten bekannt. Diese Zuordnung wird häufig manuell ausgeführt. Dabei ergeben sich Konfigurationen, die die Möglichkeiten des verteilten Systems nicht ausschöpfen und zudem keine Freiheitsgrade bei der Auslegung von Verarbeitungsknoten des verteilten Systems und deren Kommunikationsverbindungen ermöglichen.
  • Beispielsweise ist in einem Kraftfahrzeug eine Vielzahl von Steuergeräten vorgesehen, die über geeignete Kommunikationsverbindungen miteinander verbunden sind. Die Steuergeräte umfassen beispielsweise ein Motorsteuergerät, ein Getriebesteuergerät, ein Fahrerassistenzsystem sowie diverse Steuerbausteine für verteilte Fahrzeugfunktionen. Die Steuergeräte und Steuerbausteine stellen Verarbeitungsknoten dar, in denen Funktionen des Funktionsmodells als Software implementiert sind, so dass den Steuergeräten in Software implementierte Funktionen zugewiesen werden können. Die Funktionen werden dann im Betrieb des verteilten Systems in den zugewiesenen Verarbeitungsknoten ausgeführt.
  • Häufig wird in einem solchen verteilten System eine Funktion demjenigen Verarbeitungsknoten zugeordnet, der sich nah an einer durch die betreffende Funktion zu steuernden Einrichtung befindet oder dieser zugeordnet ist. Darüber hinaus können Funktionen den einzelnen Verarbeitungsknoten von einem Experten intuitiv zugeordnet werden. Beides kann unter Umständen dazu führen, dass die verfügbaren Hardwarekapazitäten eines Verarbeitungsknotens nicht optimal (d.h. in einem zu hohen oder einem zu geringem Maß) ausgeschöpft werden und gegebenenfalls für die Datenkommunikation zwischen den Verarbeitungsknoten höhere Bandbreiten einer Kommunikationsverbindung zur Verfügung gestellt werden müssen als dies bei anderer Funktionszuordnung notwendig wäre. Je komplexer bzw. umfangreicher das verteilte System ist, desto schwieriger wird die intuitive Zuordnung der Funktionen des Funktionsmodells zu den einzelnen Verarbeitungsknoten des verteilten Systems.
  • Bei der Anwendung des verteilten Systems in sicherheitskritischen Anwendungen, wie es häufig in automobilen Anwendungen der Fall ist, werden in der Regel Fehlerbaumanalysen durchgeführt, die eine Ausfallwahrscheinlichkeit einer Funktion (Software) und/oder der Hardware eines Verarbeitungsknotens angeben können. Das Ziel einer Fehlerbaumanalyse ist, zu analysieren, welche Fehler in welcher Kombination mit welcher Wahrscheinlichkeit zu einer Verletzung einer Sicherheitsvorgabe führen können.
  • Für komplexe verteilte Systeme mit einer Anzahl von miteinander verbundenen Komponenten (Verarbeitungsknoten und Funktionen) existiert der sogenannte Komponentenfehlerbaumansatz. Dieser erfordert das Modellieren eines Fehlerbaums für jede Komponente eines Systems, wobei der gesamte Fehlerbaum des Systems automatisch aus den Komponentenfehlerbäumen und den Verbindungen zwischen den Komponenten erstellt und analysiert werden kann. Für die Durchführung des Komponentenfehlerbaumansatzes ist es notwendig, das Zusammenspiel zwischen Verarbeitungsknoten (Hardware) und darin implementierten Funktionen (Software) zu kennen, da die Ausfallwahrscheinlichkeit einer Funktion erheblich von der Ausfallwahrscheinlichkeit bzw. der Fehlerwahrscheinlichkeit in einem Verarbeitungsknoten (Hardwarekomponente), der die betreffende Funktion ausführt, abhängt.
  • Zusammenfassung der Erfindung
  • Erfindungsgemäß sind ein Verfahren zur Ermittlung einer oder mehrerer optimierter Systemkonfigurationen eines durch ein technisches Modell beschriebenen verteilten Systems gemäß Anspruch 1 sowie die Vorrichtung gemäß dem nebengeordneten Anspruch vorgesehen.
  • Weitere Ausgestaltungen sind in den abhängigen Ansprüchen angegeben.
  • Gemäß einem ersten Aspekt ist ein Verfahren zur Ermittlung einer oder mehrerer optimierter Systemkonfigurationen eines durch ein technisches Modell beschriebenen verteilten Systems, wobei das technische Modell durch Verarbeitungsknoten definiert ist, wobei die Systemkonfiguration die Zuordnung von Funktionen eines Funktionsmodells zu einzelnen Verarbeitungsknoten des technischen Modells angibt, wobei folgende Schritten iterativ ausgeführt werden:
    • - Ermitteln von mehreren Systemkonfigurationen durch Zuordnen, in einer Funktionszuordnung, von Funktionen des Funktionsmodells jeweils zu den Verarbeitungsknoten des technischen Modells;
    • - für jede der ermittelten Systemkonfigurationen, Ermitteln von Verarbeitungskosten der Funktionszuordnungen aller Verarbeitungsknoten;
    • - für jede der ermittelten Systemkonfigurationen, Ermitteln einer Gesamtausfallwahrscheinlichkeit der Funktionszuordnungen zu den Verarbeitungsknoten mit Hilfe einer Komponentenfehleranalyse; und
    • - Bestimmen der einen oder mehrerer optimierten Systemkonfigurationen durch Auswahl aus den ermittelten Systemkonfigurationen abhängig von den Verarbeitungskosten und der Gesamtausfallwahrscheinlichkeit.
  • Eine Idee des obigen Verfahrens besteht darin, z.B. mithilfe eines geeigneten Optimierungsverfahrens Funktionen eines Funktionsmodells zu Verarbeitungsknoten eines durch ein technisches Modell beschriebenen verteilten Systems zuzuordnen, um eine bevorzugte Systemkonfiguration zu erhalten. Dabei sollen nicht nur die zur Verfügung stehenden Ressourcen der Verarbeitungsknoten beachtet werden, sondern auch die Ausfallwahrscheinlichkeit der den Verarbeitungsknoten zugeordneten Funktionen berücksichtigt werden. Eine Auswahl einer oder mehrerer optimierter Systemkonfigurationen erfolgt entsprechend einer Kostenfunktion, die die Eignung einer bestimmten Systemkonfiguration, die durch eine Funktionszuordnung zu den Verarbeitungsknoten angegeben ist, und abhängig von der Gesamtausfallwahrscheinlichkeit des durch die betrachtete Systemkonfiguration definierten verteilten Systems.
  • Auf diese Weise wird ein Verfahren zum Ermitteln einer oder mehrerer optimierter Systemkonfigurationen zur Verfügung gestellt, das eine Komponentenfehlerbaumanalyse verwendet, die die Gesamtausfallwahrscheinlichkeit des verteilten Systems von Komponentenfehlerbäumen der Verarbeitungsknoten und der zuzuordnenden Funktionen in Form eines Systemfehlerbaums ableitet und als eine Komponente zur Verbesserung der Optimierung der Systemkonfiguration verwendet. Da der Systemfehlerbaum automatisch aus den Komponentenfehlerbäumen erstellt werden, kann dies in einfacher Weise in der Kostenfunktion für die Optimierung berücksichtigt werden. Das Kombinieren der Komponentenfehlerbaumanalyse mit dem Mehr-Ziel-Optimierungsverfahren (multi objective optimization) ermöglicht auch das Auffinden von nicht naheliegenden Systemkonfigurationen, die bei manuellem Konfigurieren nicht ohne weiteres auffindbar sind.
  • Ein Fehlerbaum-Analyseverfahren ist ein Verfahren zur Zuverlässigkeitsanalyse von Systemen. Dieses basiert auf boolescher Algebra und dient dazu, die Ausfallwahrscheinlichkeit eines Systems zu bestimmen. Im Rahmen der Fehlerbaumanalyse werden die logischen Verknüpfungen von Teilsystemausfällen auf allen kritischen Pfaden ermittelt, die zu einem Gesamtsystemausfall führen können. Diese Analyse kann auf Bauteilebene oder Komponentenebene erfolgen.
  • Weiterhin können den Funktionen des Funktionsmodells jeweils Verarbeitungsanforderungsparameter zugeordnet sein, wobei in der Funktionszuordnung die Funktionen des Funktionsmodells jeweils den Verarbeitungsknoten des technischen Modells so zugeordnet werden, dass die Verarbeitungsanforderungsparameter der einem jeweiligen Verarbeitungsknoten zugeordneten Funktionen eine durch einen entsprechenden Verarbeitungsleistungsparameter des Verarbeitungsknoten vorgegebene Randbedingung nicht verletzt.
  • Insbesondere können die Verarbeitungsanforderungsparameter jeder Funktion für eine oder mehrere Ressourcenkategorien vorgegeben sein, wobei insbesondere die Ressourcenkategorien für Verarbeitungsknoten u.a. eine oder mehrere der folgenden Kategorien umfassen: Rechenkapazität, Speicherkapazität, direkter Zugang zu Sensordaten, Einordnung nach funktionaler Sicherheitsklasse, Schnittstellen zu Aktuatoren und Energiebedarf.
  • Weiterhin kann das technische Modell zudem durch Kommunikationsverbindungen zwischen Verarbeitungsknoten definiert sein, wobei die Systemkonfiguration die Zuordnung von Kommunikationspfaden zu Kommunikationsverbindungen zwischen den Verarbeitungsknoten angibt, wobei die Kommunikationspfade für die Funktionszuordnung durch den Kommunikationsbedarf einer Funktion mit einer in einem anderen Verarbeitungsknoten zugeordneten Funktion angegeben sind, wobei das Ermitteln von mehreren Systemkonfigurationen weiterhin umfasst:
    1. a. Bestimmen der Kommunikationspfade entsprechend der Funktionszuordnung,
    2. b. Zuordnen, in einer Kommunikationszuordnung, der Kommunikationspfade jeweils zu Kommunikationsverbindungen des technischen Modells, um eine jeweilige Systemkonfiguration zu erhalten;
    wobei für jede der ermittelten Systemkonfigurationen Kommunikationskosten der Kommunikationszuordnung zwischen allen Verarbeitungsknoten ermittelt werden; und wobei die eine oder die mehreren optimierten Systemkonfigurationen durch Auswahl aus den ermittelten Systemkonfigurationen weiterhin abhängig von den Kommunikationskosten bestimmt werden.
  • Weiterhin können den Kommunikationsverbindungen des Funktionsmodells jeweils Kommunikationsanforderungsparameter zugeordnet sein, die bei der Kommunikationszuordnung Kommunikationspfaden, die Kommunikationsverbindungen des technischen Modells umfassen, zugeordnet werden, so dass jeweils die Kommunikationsanforderungsparameter aller einem Verarbeitungsknoten zugeordneten Kommunikationsverbindungen, eine durch die entsprechenden Kommunikationsleistungsparameter vorgegebene Randbedingung nicht verletzt.
  • Insbesondere können die Kommunikationsanforderungsparameter jedem Kommunikationspfad zwischen zwei Funktionen in verschiedenen Verarbeitungsknoten für eine oder mehrere Ressourcenkategorien vorgegeben sein, wobei insbesondere die Ressourcenkategorien für Kommunikationspfade eine oder mehrere der folgenden Kategorien umfassen: Bandbreite, minimale Latenz, Art des Mediums (optisch/elektrisch/drahtlos), Topologie, Protokoll (synchron/asynchron) und Übertragungsrichtungen.
  • Es kann vorgesehen sein, dass das Bestimmen der einen oder den mehreren Systemkonfiguration abhängig von den Verarbeitungskosten und der Gesamtausfallwahrscheinlichkeit durchgeführt wird, indem Gesamtkosten abhängig von den Verarbeitungskosten und der Gesamtausfallwahrscheinlichkeit bestimmt und die eine oder die mehreren Systemkonfiguration abhängig von den Gesamtkosten (GK) ausgewählt werden.
  • Alternativ kann das Bestimmen der einen oder den mehreren optimierten Systemkonfiguration abhängig von den Verarbeitungskosten und den der Gesamtausfallwahrscheinlichkeit zugeordneten Kosten durchgeführt werden, indem aus den mehreren ermittelten Systemkonfigurationen eine Pareto-Menge von Systemkonfigurationen ausgewählt wird.
  • Insbesondere können die Verarbeitungskosten in einem der Verarbeitungsknoten abhängig von einer Verarbeitungskostenfunktion und abhängig von einem Erfüllungsgrad oder einem Ausnutzungsgrad für eine oder mehrere der Ressourcenkategorien der Verarbeitungsknoten ermittelt werden und/oder die Kommunikationskosten für eine der Kommunikationsverbindungen abhängig von einer Kommunikationskostenfunktion und abhängig von einem Erfüllungs- oder Ausnutzungsgrad für eine oder mehrere der Ressourcenkategorien der Kommunikationsverbindung ermittelt werden. Eine Ressourcenkategorie besitzt einen Ausnutzungsgrad, wenn die Ressourcenkategorie kapazitätsbasiert ist, während für diskrete Ressourcenkategorien, wie z.B. Klassifizierung nach funktionaler Sicherheit, besitzt die Ressourcenkategorie einen Erfüllungsgrad.
  • Gemäß einer Ausführungsform kann der Ausnutzungsgrad für eine oder mehrere der Ressourcenkategorien der Verarbeitungsknoten jeweils durch einen Unterschied zwischen der Summe der Verarbeitungsanforderungsparameter der dem betreffenden Verarbeitungsknoten zugeordneten Funktionen für die betreffende Ressourcenkategorie und einem vorgegebenen Verarbeitungsleistungsparameter des betreffenden Verarbeitungsknoten bestimmt werden, und/oder der Ausnutzungsgrad für eine oder mehrere der Ressourcenkategorien der Kommunikationsverbindungen jeweils durch einen Unterschied zwischen der Summe der Kommunikationsanforderungsparameter der der betreffenden Kommunikationsverbindung zugeordneten Kommunikationspfade für die betreffende Ressourcenkategorie und einem vorgegebenen Kommunikationsleistungsparameter der betreffenden Kommunikationsverbindung bestimmt werden.
  • Weiterhin können mindestens eine der Verarbeitungskostenfunktionen und/oder mindestens eine der Kommunikationskostenfunktionen eine badewannenförmige Kostenfunktion entsprechen, die Kosten über den Ausnutzungsgrad abbilden, so dass hohe Kosten niedrigen und hohen Ausnutzungsgraden und niedrige Kosten mittleren Ausnutzungsgraden zugeordnet werden. Die Nutzung einer badewannenförmigen Kostenfunktion führt in vorteilhafter Weise zu optimierten Zuordnungsszenarios, in denen die Ausnutzung der Verarbeitungsknoten ungünstige Hardwarekonfigurationen vermeidet, bei denen Verarbeitungsknoten eine zu geringe Ausnutzung erfahren und damit nicht effizient genutzt werden oder eine zu hohe Auslastung erfahren und damit Erweiterbarkeit und Flexibilität einbüßen.
  • Weiterhin kann das technische Modell zum Erstellen einer der Systemkonfigurationen um einen oder mehrere zusätzliche Verarbeitungsknoten und eine oder mehrere Kommunikationsverbindungen erweitert werden. Nach Beendigung der iterativen Verfahrensschritte können ungenutzte Verarbeitungs- und/oder Kommunikationsknoten aus dem technischen Modell entfernt werden.
  • Gemäß einer Ausführungsform kann das Zuordnen von Funktionen des Funktionsmodells in der Funktionszuordnung und/oder das Zuordnen der Kommunikationsverbindungen in einer Kommunikationszuordnung optimiert, insbesondere durch Anwendung von genetischen Algorithmen, vorgenommen werden.
  • Gemäß einem weiteren Aspekt ist ein Verfahren zum Erzeugen eines verteilten Systems vorgesehen, wobei das verteilte System mit einer Systemkonfiguration erzeugt wird, die entsprechend dem obigen Verfahren als optimierte Systemkonfiguration bestimmt wird.
  • Gemäß einem weiteren Aspekt ist ein Verfahren zum Aufbau eines verteilten Systems vorgesehen, wobei eine Systemkonfiguration gemäß dem obigen Verfahren ermittelt wird und wobei das verteilte System entsprechend der ermittelten Systemkonfiguration erstellt wird.
  • Gemäß einem weiteren Aspekt ist eine Vorrichtung zur Ermittlung einer oder mehrerer optimierter Systemkonfigurationen eines durch ein technisches Modell beschriebenen verteilten Systems, wobei das technische Modell durch Verarbeitungsknoten definiert ist, wobei die Systemkonfiguration die Zuordnung von Funktionen eines Funktionsmodells zu einzelnen Verarbeitungsknoten des technischen Modells angibt, wobei die Vorrichtung ausgebildet ist, um:
    • - Mehrere Systemkonfigurationen durch Zuordnen, in einer Funktionszuordnung, von Funktionen des Funktionsmodells jeweils zu den Verarbeitungsknoten des technischen Modells zu ermitteln;
    • - Verarbeitungskosten der Funktionszuordnungen aller Verarbeitungsknoten für jede der ermittelten Systemkonfigurationen zu ermitteln;
    • - eine Gesamtausfallwahrscheinlichkeit der Funktionszuordnungen zu den Verarbeitungsknoten für jede der ermittelten Systemkonfigurationen mit Hilfe einer Komponentenfehleranalyse zu ermitteln; und
    • - eine oder mehrere optimierte Systemkonfigurationen durch Auswahl aus den ermittelten Systemkonfigurationen abhängig von den Verarbeitungskosten und der Gesamtausfallwahrscheinlichkeit zu bestimmen.
  • Figurenliste
  • Ausführungsformen werden nachfolgend anhand der beigefügten Zeichnungen näher erläutert. Es zeigen:
    • 1 eine schematische Darstellung des Zuordnungsproblems von Funktion zu Verarbeitungsknoten eines verteilten Systems;
    • 2 ein verteiltes System mit drei Funktionsblöcken (Funktionen) und mit fünf Verarbeitungsknoten, denen jeweils ein Komponentenfehlerbaum dargestellt zugeordnet ist;
    • 3 ein Flussdiagramm zur Veranschaulichung eines Verfahrens zum Auffinden einer optimierten Systemkonfiguration für ein verteiltes System bei einer gegebenen Funktionenmenge; und
    • 4 eine schematische Darstellung einer Badewannen-Kostenfunktion.
  • Beschreibung von Ausführungsformen
  • Nachfolgend wird ein Verfahren zum Auffinden von Systemkonfigurationen beschrieben, bei dem Funktionen eines Funktionsmodells einzelnen Verarbeitungsknoten eines durch ein technisches Modell beschriebenen verteilten Systems zugeordnet sind und Kommunikationspfade durch die Kommunikationsverbindungen zwischen den Verarbeitungsknoten zugeordnet sind.
  • 1 zeigt dazu schematisch das zugrundeliegende Problem. Es umfasst ein Funktionsmodell 1 mit einer Menge von miteinander in Beziehung stehenden Funktionen 11. Diese Funktionen 11 sind zumindest teilweise so ausgelegt, dass sie untereinander über Kommunikationsbeziehungen 12 Daten austauschen. Die Funktionen 11 können als Softwarealgorithmen ausgebildet sein, die in den Verarbeitungsknoten ausgeführt werden können.
  • Weiterhin ist ein technisches Modell 2 bereitgestellt, das ein verteiltes System mit einzelnen Verarbeitungsknoten 21 beschreibt, die über Kommunikationsverbindungen 22 miteinander in Verbindung stehen können. Die Verarbeitungsknoten 21 können programmierbare Steuergeräte bzw. Bausteine sein, denen jeweils keine, eine, mehrere oder alle der Funktionen 11 des Funktionsmodells 1 zugeordnet werden können bzw. die diese ausführen können. Die Kommunikationsverbindungen 22 können zwischen zumindest einem Teil der Verarbeitungsknoten 21 vorgesehen sein.
  • Den Verarbeitungsknoten 21 sowie den Kommunikationsverbindungen 22 zwischen jeweils zwei Verarbeitungsknoten 21 sind jeweils Verarbeitungsleistungsparameter VLP1, VLP2, VLP3 ... bzw. Kommunikationsleistungsparameter KLP1, KLP2, KLP3 ... zugeordnet. Die Verarbeitungsleistungsparameter VLP1, VLP2, VLP3 ... für Verarbeitungsknoten 21 können mindestens eine der folgenden Ressourcenkategorien betreffen: Rechenkapazität, Speicherkapazität, direkter Zugang zu Sensordaten, Schnittstellen zu Aktuatoren, Einordnung nach funktionaler Sicherheitsklasse, weitere diskrete Parameter und Energiebedarf. Die Kommunikationsleistungsparameter KLP1, KLP2, KLP3 ... für Kommunikationsverbindungen 22 können mindestens eine der folgenden Ressourcenkategorien betreffen: Bandbreite, minimale Latenz, Art des Mediums (optisch/elektrisch/drahtlos), Topologie, Protokoll (synchron/asynchron) und Übertragungsrichtungen.
  • Durch ein nachfolgend beschriebenes Optimierungsverfahren ergeben sich Systemkonfigurationen 3, bei denen jeder der Funktionen 11 des Funktionsmodells 1 einer der Verarbeitungsknoten 21 zugewiesen wird. Die Funktion kann dann bei einer Realisierung in dem entsprechenden Verarbeitungsknoten 21 implementiert und ausgeführt werden. Zudem werden Kommunikationspfade zwischen den in verschiedenen Verarbeitungsknoten 21 implementierten Funktionen 11 definiert.
  • Die Funktionen 11 des Funktionsmodells 1 sind jeweils mit Verarbeitungsanforderungsparametern VAP1, VAP2 , VAP3 ... bezüglich der Verarbeitungsknoten 21 für die einzelnen Ressourcenkategorien (Index) charakterisiert, die die benötigte Rechenkapazität (Bedarf an Rechenleistung), benötigte Speicherkapazität (Speicherbedarf), etwaigen Zugang zu Sensordaten, etwaige direkte Ansteuerbarkeit von Aktuatoren und ggf. weitere Verarbeitungsanforderungsparameter für ihre Ausführung angeben. Die Verarbeitungsanforderungsparameter VAP geben für die betreffende Funktion und für jede betrachtete Ressourcenkategorie die entsprechende Anforderung an die Leistungsfähigkeit des zuzuordnenden Verarbeitungsknoten 21 an.
  • Weiterhin definieren Kommunikationsanforderungsparameter KAP1 , KAP2 , KAP3 ... Anforderungen an eine Kommunikation zwischen zwei in verschiedenen Verarbeitungsknoten 21 implementierten (verteilten) Funktionen 11 bezüglich des Datenempfangs und der Datenübermittlung von und zu anderen Verarbeitungsknoten 21 für die einzelnen Ressourcenkategorien, wie beispielsweise Bandbreiten, maximale zulässige Latenz, notwendige Übertragungsrichtungen und ggfs weitere Kommunikationsanforderungsparameter. Somit geben die Kommunikationsanforderungsparameter KAP1 , KAP2 , KAP3 ... für die betreffende Funktion und die betreffende Ressourcenkategorie jeweils die entsprechende(n) Kommunikationsanforderung(en) an die Kommunikationsverbindung(en) 22 an.
  • In 2 ist für ein verteiltes System mit drei Funktionsblöcken (Funktionen), die als Softwarekomponenten (Rechtecke mit abgerundeten Ecken) ausgebildet sind, und mit fünf Verarbeitungsknoten (Hardwarekomponenten, als Rechtecke dargestellt) jeweils ein beispielhafter Komponentenfehlerbaum dargestellt, der durch boolesche Logik dargestellt ist. Dabei werden auftretende Fehlerarten entsprechend der Fehlerbaumanalyse durch UND- oder ODER-Gatter verknüpft, um eine entsprechende Wahrscheinlichkeit, dass ein entsprechender Fehler zu einem Ausfall der Komponente bzw. zu einem Ausfall einer gewünschten Ausgabe an einer Kommunikationsschnittstelle führt, auszugeben. Dabei werden die Ausfallwahrscheinlichkeiten von Komponenten verknüpft.
  • In einer Fehlerbaumanalyse werden typischerweise zunächst anhand der UND / ODER Verknüpfungen die Kombinationen von Fehlerursachen (basic events, dargestellt als Kreise in 2) (cut sets), die in Kombination zu einem Ausfall des Systems führen können, ermittelt. Für jede ermittelte Kombination von Fehlerursachen wird anschließend die Wahrscheinlichkeit für das kombinierte Auftreten aller Fehlerursachen berechnet, insbesondere durch Multiplikation. Anschließend werden die Wahrscheinlichkeiten aller ermittelten Kombinationen von Fehlerursachen aufaddiert, um die Wahrscheinlichkeit für einen Fehler des Gesamtsystems zu erhalten. Hierfür werden typischerweise Standard-Softwareumgebungen verwendet, z.B. FaultTree+ oder ReliabilityWorkbench von Isograph.
  • Durch gestrichelte, gepunktete und gestrichpunktete Linien werden drei Systemkonfigurationen, bei denen die Softwarekomponenten einem der Hardwarekomponenten zugeordnet sind, skizziert. Die Kostenfunktionen berücksichtigen die Effizienz bzw. Geeignetheit, dass eine Softwarekomponente in einer bestimmten Hardwarekomponente ausgeführt wird, und darüber hinaus einen Aspekt, der die Anzahl der verwendeten Hardwarekomponenten betrifft. Für jede Systemkonfiguration kann ein Systemfehlerbaum generiert werden und analysiert werden und als weitere Kosten der Kostenfunktion berücksichtigt werden.
  • Das in 2 dargestellte Beispiel betrifft drei als Softwarekomponenten ausgebildete Funktionen F1, F2, F3, die jeweils durch einen ersten Verarbeitungsanforderungsparameter VAP1F1 , VAP1F2 , VAP1F3 , der beispielhaft jeweils die Rechenkapazität angibt, und einen zweiten Verarbeitungsanforderungsparameter VAP2F1 , VAP2F2 , VAP2F3 , der beispielhaft jeweils den Speicherbedarf der entsprechenden Funktion F1, F2, F3 angibt, charakterisiert sind. Weiterhin sind als Hardwarekomponenten ausgebildete Verarbeitungsknoten H1 bis H5 dargestellt, die jeweils durch einen ersten Verarbeitungsleistungsparameter VLP1H1 , VLP1H2 , VLP1H3 ..., der jeweils z.B. eine bereitstellbare gesamte Rechenkapazität angibt, und einen zweiten Verarbeitungsleistungsparameter VLP2H1 , VLP2H2 , VLP2H3 ..., der jeweils z.B. eine bereitstellbare gesamte Speicherkapazität angibt, gekennzeichnet sind.
  • Den Funktionen F1, F2, F3 und den Verarbeitungsknoten H1-H5 sind jeweils ein Komponentenfehlerbaum zugeordnet. Ein Komponentenfehlerbaum gibt gegebenenfalls abhängig von Fehlerwahrscheinlichkeiten für Eingangswerte bzw. Sensorwerte Ausfallwahrscheinlichkeiten einer oder mehrerer Ausgangsschnittstellen, über die der Verarbeitungsknoten mit anderen Verarbeitungsknoten oder mit einem weiteren System kommuniziert, für eine oder mehrere Fehlerarten an. Fehlerarten können beispielsweise umfassen: Stuck-at Fehler, Berechnungsfehler, Bitfehler, ungenaue Sensorsignale .
  • Komponentenfehlerbäume sind in den einzelnen Verarbeitungsknoten H1 - H5 und den Funktionen F1 - F3 beispielhaft dargestellt und geben als Kreise die Fehlerwahrscheinlichkeiten mit der Fehlerart an. Dreiecke geben die Eingangs- oder Ausgangsfehlerwahrscheinlichkeit an, und die Verknüpfungsblöcke UND- und ODER-Verknüpfungen des Komponentenfehlerbaums. Die Verknüpfung der einzelnen Komponentenfehlerbäume für die Bewertung des Systemfehlerbaums ermöglicht die Ermittlung einer Gesamtausfallwahrscheinlichkeit GAW, die in der Kostenfunktion berücksichtigt wird. Die Gesamtausfallwahrscheinlichkeit GAW wird mithilfe einer Kostenzuordnung entsprechenden Kosten KGAW für die Gesamtausfallwahrscheinlichkeit GAW zugeordnet.
  • Das Verfahren wird im Folgenden anhand eines Flussdiagramms der 3 näher erläutert. Dem Verfahren werden in geeigneter Weise Informationen über die Konfiguration des technischen Modells 2, das eine Ausgangsstruktur der Verarbeitungsknoten 21 in einem verteilten System darstellt, und ein Funktionsmodell 1 mit einer Menge an zu implementierenden Funktionen 11 bereitgestellt. Für die Funktionen 11 und die Verarbeitungsknoten 21 werden jeweils Komponentenfehlerbäume bereitgestellt.
  • In Schritt S1 kann zunächst das technische Modell 2 erweitert werden, indem Verarbeitungsknoten 21 hinzugefügt werden, die identisch zu bereits bestehenden sind oder sich in einem oder mehreren der Verarbeitungsleistungsparameter VLP von bestehenden Verarbeitungsknoten 21 unterscheiden. Diese zusätzlichen Verarbeitungsknoten 21 können mit unterschiedlichen Arten von zusätzlichen Kommunikationsverbindungen 22 mit einem oder mehreren der Verarbeitungsknoten 21 des ursprünglichen technischen Modells 2 verbunden sein. Der Umfang der Erweiterung ist problemabhängig und kann auch vollständig entfallen. Das technische Modell 2 kann beispielsweise um eine Anzahl von Verarbeitungsknoten 21 erweitert werden, die etwa 30 bis 100%, insbesondere 50%, der Anzahl der Verarbeitungsknoten 21 des ursprünglichen technischen Modells 2 entspricht. Man erhält somit ein erweitertes technisches Modell, das eine variablere Funktionenzuteilung ermöglicht.
  • In Schritt S2 wird ein Zuordnungsverfahren durchgeführt, bei dem die einzelnen Funktionen 11 des Funktionsmodells 1 Verarbeitungsknoten 21 zugeordnet werden. Die Zuordnung erfolgt so, dass jeweils die gesamten Anforderungen an die Verarbeitung in einem betrachteten Verarbeitungsknoten 21, die durch die Verarbeitungsanforderungsparameter VAP1, VAP2 , VAP3 ... der dem betreffenden Verarbeitungsknoten 21 zuzuordnenden Funktionen 11 gegeben sind, geringer sind als die durch die entsprechenden Verarbeitungsleistungsparameter VLP1, VLP2 ,VLP3 ... (constraints) angegebene Verarbeitungsleistung des zugeordneten Verarbeitungsknotens 21. D. h., die dem jeweiligen Verarbeitungsknoten 21 zuzuordnenden Funktionen können mit den in dem Verarbeitungsknoten 21 zur Verfügung stehenden Ressourcen ausgeführt werden.
  • Bei der Funktionszuordnung wird eine Suchraumreduzierung genutzt, indem nur solche Verarbeitungsknoten berücksichtigt werden, die die Anforderungen der zuzuordnenden Funktion decken. Ob dies der Fall ist wird durch den Vergleich der Verarbeitungsanforderungsparameter VAP1, VAP2 ,VAP3... mit den Verarbeitungsleistungsparametern VLP1, VLP2 , VLP3 ... entschieden. Ein Beispiel hier wäre der Fall, bei dem eine Zuordnung einer Funktion für ungültig erklärt wird, sobald die Auslastung des Verarbeitungsknotens bezüglich des betreffenden Ressourcenparameters 100% übersteigt. Denkbar wäre aber auch eine andere willkürlich gewählte Grenze (90%, 120% ...). Ein weiteres Beispiel hierfür kann der Fall sein, dass eine Funktion für funktionale Sicherheit mit ASIL C Klassifizierung nur einem Verarbeitungsknoten mit ASIL C oder ASIL D, nicht aber ASIL A und ASIL B Klassifizierungen zugeordnet wird.
  • Die Zuordnung der Funktionen zu den Verarbeitungsknoten 21 des erweiterten technischen Modells 2 kann basierend auf Verarbeitungskostenfunktionen VK, VK1 , VK2 , VK3 , ... für jeden der Verarbeitungsleistungsparameter VLP1, VLP2 , VLP3 ... der Verarbeitungsknoten 21 bzw. Verarbeitungsanforderungsparameter VAP1, VAP2 , VAP3 ... der einzelnen Funktionen 11 bestimmt werden. Dabei werden Verarbeitungskosten GVK ermittelt.
  • Für eine Anzahl m zuzuordnender Funktionen, die einer Anzahl z von Verarbeitungsknoten zugeordnet werden, gilt für die Verarbeitungskosten GVK: G V K = z m i V K i ( V L P i , z , V A P m , i )
    Figure DE102018219852A1_0001
    wobei in einem Index der Ressourcenkategorie der Verarbeitungsleistungsparameter VLP1, VLP2 , VLP3 ... entspricht und für jeden Verarbeitungsknoten 21 für jeden kapazitätsbasieren Ressourcenparameter gilt die Bedingung: V L P i , z m V A P i , z
    Figure DE102018219852A1_0002
  • Für jeden diskreten Ressourcenparameter, der beispielsweise einen Bedarf nach einer Eigenschaft eines Verarbeitungsknotens 21 angibt, gilt dagegen lediglich die Bedingung: V L P i > = V A P i
    Figure DE102018219852A1_0003
  • Eine mögliche Verarbeitungskostenfunktion VKi für eine oder mehrere der Ressourcenkategorien ist beispielsweise in 4 dargestellt. Dabei entstehen die geringsten Kosten für eine Implementierung einer Anzahl von Funktionen in einem Verarbeitungsknoten 21 bezüglich einer Ressourcenkategorie dann, wenn die dem Verarbeitungsknoten 21 zuzuordnenden Funktionen 11 bezüglich der betreffenden Ressourcenkategorie einen mittleren Ausnutzungsgrad N für die betreffende Ressource erreichen. Der Ausnutzungsgrad N kann als das Verhältnis der Summe, des durch die entsprechenden Verarbeitungsanforderungsparameter VAP der zuzuordnenden Funktionen definierten Ressourcenbedarfs bezüglich der betreffenden Ressourcenkategorie und der durch den entsprechenden Verarbeitungsleistungsparameter angegebenen maximalen Ressourcenverfügbarkeit für die betreffende Ressourcenkategorie definiert sein. Eine Ressourcenkategorie besitzt einen Ausnutzungsgrad, wenn die Ressourcenkategorie kapazitätsbasiert ist, während für diskrete Ressourcenkategorien, wie z.B. Klassifizierung nach funktionaler Sicherheit, besitzt die Ressourcenkategorie einen Erfüllungsgrad. Beispielsweise können Funktionen jeweils einen Speicherbedarf als einen Verarbeitungsanforderungsparameter VAP definieren, wobei der durch Akkumulation der einzelnen Speicherbedarfe bestimmte Gesamtspeicherbedarf der Funktionen bezüglich des durch den Verarbeitungsleistungsparameter des betreffenden Verarbeitungsknotens 21 angegebenen maximalen verfügbaren Speicher bewertet wird.
  • Eine bevorzugte Verarbeitungskostenfunktion VK für eine oder mehrere Ressourcenkategorien kann gemäß einer badewannenförmigen Funktion bestimmt werden, die dem Ausnutzungsgrad N Kosten K zuweist. Dabei werden hohe Kosten für geringe und hohe Ausnutzungsgrade N und niedrige Kosten für Ressourcennutzungen bei mittleren Ausnutzungsgraden N angegeben. Für diese mittleren Ausnutzungsgrade N können beispielsweise zwischen 30% und 80%, vorzugsweise zwischen 40% und 60%, besonders niedrige Kosten angenommen werden.
  • Durch Verwendung der badewannenförmigen Kostenfunktionen kann der Ausnutzungsgrad N eines Verarbeitungsknotens 21 für eine Ressourcenkategorie durch dem betreffenden Verarbeitungsknoten 21 zugeordnete Funktionen 11 auf einen Bereich eingestellt werden, der zu einer guten Ressourcennutzung und zu einer Freihaltung von Kapazitäten des Verarbeitungsknotens 21 führt.
  • Das Zuordnungsverfahren kann durch genetische Algorithmen oder sonstige heuristische Verfahren durchgeführt werden, mit dem Ziel, die Verarbeitungskosten GVK zu minimieren.
  • Nachfolgend können optional für eine aufgefundene Funktionszuweisung, von Funktionen 11 zu Verarbeitungsknoten 21, Kommunikationspfade, bestehend aus einer oder mehreren Kommunikationsverbindungen 22, zwischen jeweils zwei Funktionen bestimmt werden. Um eine nachfolgende Optimierung zu vereinfachen, kann in Schritt S3 eine Suchraumreduzierung durchgeführt werden, um abhängig von den Zuordnungen der Funktionen zu den Verarbeitungsknoten 21 mögliche Kommunikationspfade 12 aufzufinden, durch die eine Kommunikation entsprechend einer Kommunikationsanforderung zwischen zwei verteilten Funktionen genutzt werden kann.
  • Dies verringert die Freiheitsgrade für die Zuordnung der benötigten Kommunikationspfade zu bestehenden Kommunikationsverbindungen 22 des technischen Modells 2 erheblich, so dass die Optimierungsgeschwindigkeit deutlich erhöht und die Konvergenz verbessert werden kann.
  • In einem nachfolgenden Schritt S4 werden die Anforderungen nach den einzelnen Kommunikationspfaden zwischen den Verarbeitungsknoten 21 jeweils einer Kommunikationsverbindung 22 zugeordnet. Die Kommunikationspfade zwischen den Verarbeitungsknoten 21 ergeben sich durch den Kommunikationsbedarf jeder der Funktionen 11 mit einer weiteren in einem anderen Verarbeitungsknoten 21 implementierten Funktion. Die Zuordnung wird unter den gegebenen Randbedingungen plausibilisiert.
  • Die Zuordnung erfolgt so, dass jeweils die gesamten Anforderungen an die Kommunikation über eine Kommunikationsverbindung 22, die durch die Kommunikationsanforderungsparameter KAP1 , KAP2 , KAP3 ... der durch die betreffende Kommunikationsverbindung 22 verlaufenden Kommunikationspfade gegeben sind, die gegebenen Randbedingungen erfüllen, zum Beispiel indem sie geringer sind als die durch die entsprechenden Kommunikationsleistungsparameter KLP1 , KLP2 , KLP3 ... angegebene Kommunikationsleistung der betrachteten Kommunikationsverbindung 22. Dementsprechend kann eine Kommunikation zwischen zwei verteilten Funktionen 11 nur über Kommunikationspfade, bestehend aus einer oder mehreren Kommunikationsverbindungen 22, ausgeführt werden, wenn deren Kommunikationsleistungsparameter KLP die folgende Bedingung erfüllen: K L P j , k k K A P j , k
    Figure DE102018219852A1_0004
    wobei k der Menge der Kommunikationsverbindungen 22 und j einem Index der Ressourcenkategorie der Kommunikationsleistungsparameter KLP entsprechen.
  • Die Zuordnung der Kommunikationsbeziehungen 12 zu den Kommunikationsverbindungen 22 kann basierend auf Kommunikationskostenfunktionen KK1, KK2 , KK3 ,... für jeden der Kommunikationsleistungsparameter KLP1 , KLP2 , KLP3 ... der Kommunikationsverbindungen 22 bzw. Kommunikationsanforderungsparameter KAP1 , KAP2, KAP3... bestimmt werden. Dabei werden Kommunikationskosten GKK bestimmt.
  • Es gilt: G K K = k j K K j ( K L P j , k , K A P k , j )
    Figure DE102018219852A1_0005
  • Eine Kommunikationskostenfunktion KK für eine oder mehrere Ressourcenkategorien kann gemäß einer badewannenförmigen Funktion bestimmt werden, die dem Ausnutzungsgrad N einer Kommunikationsverbindung 22 Kosten K zuweist. Dabei werden hohe Kosten für Ressourcennutzungen mit geringen und hohen Ausnutzungsgraden N und niedrige Kosten für Ressourcennutzungen bei mittleren Ausnutzungsgraden N angegeben. Für diese mittleren Ausnutzungsgrade können beispielsweise zwischen 30% und 80%, vorzugsweise zwischen 40% und 60%, besonders niedrige Kosten angenommen werden.
  • Durch Verwendung der badewannenförmigen Kostenfunktionen kann der Ausnutzungsgrad einer Kommunikationsverbindung 22 einer Ressourcenkategorie auf einen Bereich eingestellt werden, der zu einer effizienten Ressourcennutzung und zu einer Freihaltung von Kapazitäten der Kommunikationsverbindung 22 für zukünftige Erweiterungen führt.
  • Das Zuordnungsverfahren für die Kommunikationsverbindungen 22 kann durch evolutionäre Algorithmen oder sonstige heuristische Verfahren durchgeführt werden.
  • Die einzelnen Kostenbeiträge betreffend der genutzten Verarbeitungsressourcen und der Kommunikationsressourcen werden nun iterativ für verschiedene Systemkonfigurationen ermittelt.
  • In Schritt S5 werden für die verschiedenen Systemkonfigurationen die Komponentenfehlerbäume der einzelnen Verarbeitungsknoten H1 - H5 und den Funktionen F1 - F3 verknüpft und die Gesamtausfallwahrscheinlichkeit GAW des resultierenden Systemfehlerbaums bewertet.
  • Das Erstellen von Komponentenfehlerbäumen ist aus dem Stand der Technik, beispielsweise aus EP3121673A1 , bekannt. Prinzipiell werden dabei die Verbindungen zwischen den einzelnen Verarbeitungsknoten verwendet, um aus den Komponentenfehlerbäumen dieser Verarbeitungskonten einen Fehlerbaum des Gesamtsystems erstellen zu können.
  • In Schritt S6 werden die Gesamtkosten GK ermittelt. Die Gesamtkosten GK ergeben sich als gewichtete Summe der Verarbeitungskosten GVK, der Kommunikationskosten GKK und den der Gesamtausfallwahrscheinlichkeit GAW zugeordneten Kosten KGAW, die mit steigender Gesamtausfallwahrscheinlichkeit GAW ebenfalls wachsen: GK = GVK + k 1 * GKK + k 2 * KGAW
    Figure DE102018219852A1_0006
    mit vorgegebenen Gewichtungsfaktoren k1, k2.
  • Die so erhaltene Systemkonfiguration wird gespeichert, wenn deren zugeordnete Gesamtkosten geringer sind als diejenigen einer zuvor gespeicherten Systemkonfiguration, anderenfalls wird die zuvor gespeicherte Systemkonfiguration als aktuelle Systemkonfiguration beibehalten.
  • Alternativ können die Systemkonfigurationen im Sinne einer Mehrzieloptimierung in einer Menge Pareto-optimaler Lösungen gesammelt werden.
  • Die Optimierungsschritte S2 bis S6 können wiederholt ausgeführt werden. Dabei wird die Systemkonfiguration, d. h. die Zuordnung von Funktionen 11 zu den Verarbeitungsknoten 21 geändert und entsprechend die Kommunikationspfade über die Kommunikationsverbindungen 22 definiert.
  • Dazu wird in Schritt S7 eine Abbruchbedingung überprüft. Eine mögliche Abbruchbedingung der Systemoptimierung kann beispielsweise mindestens eine der folgenden umfassen:
    • - eine Berechnungszeitdauer wurde erreicht;
    • - die Änderung der Reduzierung der Gesamtkosten GK eines oder mehrerer Optimierungsziele ist unter einem vorgegebenen Schwellenwert, insbesondere für eine vorbestimmte Anzahl von aufeinanderfolgenden Iterationen;
    • - eine bestimmte Anzahl von Iterationen wurde erreicht; und
    • - eine bestimmte Anzahl von Iterationen, während derer sich die Gesamtkosten nicht weiter reduziert haben;
    • - eine bestimmte Anzahl von Iterationen, während derer keine weiteren pareto-optimalen Lösungen gefunden wurden.
  • Ist die Abbruchbedingung erfüllt (Alternative: Ja), so wird das Verfahren mit Schritt S8 fortgesetzt, anderenfalls wird zu Schritt S2 zurückgesprungen.
  • Die ermittelte Systemkonfiguration mit den geringsten Gesamtkosten GK, bzw. die ermittelten Systemkonfigurationen der Pareto-Menge werden als optimierte Systemkonfiguration/en übernommen.
  • Aufgrund der Erweiterung des technischen Modells ist es wahrscheinlich, dass Verarbeitungsknoten 21 ungenutzt verbleiben, d. h. keine Funktion wird diesen zugeordnet. Zudem können Kommunikationsverbindungen ungenutzt verbleiben, d. h. kein Kommunikationspfad ist diesen Kommunikationsverbindungen zugeordnet. Daher wird die erhaltene Systemkonfiguration in Schritt S7 nun nach ungenutzten Verarbeitungsknoten 21 und ungenutzten Kommunikationsverbindungen 22 durchsucht und diese ggfs. aus der erhaltenen Systemkonfiguration entfernt
  • Das obige Verfahren ermöglicht eine ganzheitliche Optimierung der Systemkonfiguration unter Berücksichtigung der Verarbeitungsressourcen in den Verarbeitungsknoten und der Gesamtausfallwahrscheinlichkeit der den Verarbeitungsknoten zugeordneten Funktionen. Weiterhin wird ermöglicht, innerhalb komplexer Probleme mit einer Vielzahl von Funktionen des Funktionsmodells und einer Vielzahl von auch verschiedenartigen Verarbeitungsknoten optimale Lösungen zu finden.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • EP 3121673 A1 [0064]

Claims (18)

  1. Verfahren zur Ermittlung einer oder mehrerer optimierter Systemkonfigurationen eines durch ein technisches Modell beschriebenen verteilten Systems, wobei das technische Modell durch Verarbeitungsknoten (21) definiert ist, wobei die Systemkonfiguration die Zuordnung von Funktionen (11) eines Funktionsmodells (1) zu einzelnen Verarbeitungsknoten (21) des technischen Modells (2) angibt, wobei folgende Schritten iterativ ausgeführt werden: - Ermitteln von mehreren Systemkonfigurationen durch Zuordnen, in einer Funktionszuordnung, von Funktionen (11) des Funktionsmodells (1) jeweils zu den Verarbeitungsknoten (21) des technischen Modells (2); - für jede der ermittelten Systemkonfigurationen, Ermitteln von Verarbeitungskosten (GVK) der Funktionszuordnungen aller Verarbeitungsknoten (21); - für jede der ermittelten Systemkonfigurationen, Ermitteln einer Gesamtausfallwahrscheinlichkeit (GAW) der Funktionszuordnungen zu den Verarbeitungsknoten (21) mit Hilfe einer Komponentenfehleranalyse; und - Bestimmen (S5) der einen oder den mehreren optimierte Systemkonfigurationen durch Auswahl aus den ermittelten Systemkonfigurationen abhängig von den Verarbeitungskosten (GVK) und der Gesamtausfallwahrscheinlichkeit (GAW).
  2. Verfahren nach Anspruch 1, wobei den Funktionen des Funktionsmodells (1) jeweils Verarbeitungsanforderungsparameter (VAP) zugeordnet sind, wobei in der Funktionszuordnung die Funktionen (11) des Funktionsmodells (1) jeweils den Verarbeitungsknoten (21) des technischen Modells (2) so zugeordnet werden, dass die Verarbeitungsanforderungsparameter (VAP) der einem jeweiligen Verarbeitungsknoten (21) zugeordneten Funktionen (11) eine durch einen entsprechenden Verarbeitungsleistungsparameter (VLP) des Verarbeitungsknotens vorgegebene Randbedingung nicht verletzt.
  3. Verfahren nach Anspruch 2, wobei die Verarbeitungsanforderungsparameter (VAP) jeder Funktion (11) für eine oder mehrere Ressourcenkategorien vorgegeben sind, wobei insbesondere die Ressourcenkategorien für Verarbeitungsknoten (21) eine oder mehrere der folgenden Kategorien umfassen: Rechenkapazität, Speicherkapazität, direkter Zugang zu Sensordaten, Einordnung nach funktionaler Sicherheitsklasse, Schnittstellen zu Aktuatoren und Energiebedarf.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei das technische Modell zudem durch Kommunikationsverbindungen (22) zwischen Verarbeitungsknoten (21) definiert ist, wobei die Systemkonfiguration die Zuordnung von Kommunikationspfaden (12) zu Kommunikationsverbindungen (22) zwischen den Verarbeitungsknoten (21) angibt, wobei die Kommunikationspfade (12) für die Funktionszuordnung durch den Kommunikationsbedarf einer Funktion (11) mit einer in einem anderen Verarbeitungsknoten (21) zugeordneten Funktion angegeben sind, wobei das Ermitteln von mehreren Systemkonfigurationen weiterhin umfasst: a. Bestimmen der Kommunikationspfade (12) entsprechend der Funktionszuordnung, b. Zuordnen (S4), in einer Kommunikationszuordnung, der Kommunikationspfade (12) jeweils zu Kommunikationsverbindungen (22) des technischen Modells (2), um eine jeweilige Systemkonfiguration zu erhalten; wobei für jede der ermittelten Systemkonfigurationen Kommunikationskosten (GKK) der Kommunikationszuordnung (GKK) zwischen allen Verarbeitungsknoten (21) ermittelt werden; und wobei die eine oder die mehreren optimierten Systemkonfigurationen durch Auswahl aus den ermittelten Systemkonfigurationen weiterhin abhängig von den Kommunikationskosten (GKK) bestimmt werden.
  5. Verfahren nach Anspruch 4, wobei den Kommunikationsverbindungen (22) des Funktionsmodells (1) jeweils Kommunikationsanforderungsparameter (KAP) zugeordnet sind, die bei der Kommunikationszuordnung Kommunikationspfaden (12), bestehend aus Kommunikationsverbindungen (22) des technischen Modells (2), zugeordnet werden, so dass jeweils die Kommunikationsanforderungsparameter (KAP) aller, einem Verarbeitungsknoten (21) zugeordneten Kommunikationsverbindungen (22), eine durch die entsprechenden Kommunikationsleistungsparameter (KAP) vorgegebene Randbedingung nicht verletzt.
  6. Verfahren nach Anspruch 4, wobei die Kommunikationsanforderungsparameter jedem Kommunikationspfad (12) zwischen zwei Funktionen (11) in verschiedenen Verarbeitungsknoten (21) für eine oder mehrere Ressourcenkategorien vorgegeben sind, wobei insbesondere die Ressourcenkategorien für Kommunikationspfade (12) eine oder mehrere der folgenden Kategorien umfassen: Bandbreite, minimale Latenz, Art des Mediums (optisch/elektrisch/drahtlos), Topologie, Protokoll (synchron/asynchron) und Übertragungsrichtungen.
  7. Verfahren nach einem der Ansprüche 1 bis 6, wobei das Bestimmen der einen oder den mehreren Systemkonfiguration abhängig von den Verarbeitungskosten (GVK) und der Gesamtausfallwahrscheinlichkeit (GAW) durchgeführt wird, indem Gesamtkosten (GK) abhängig von den Verarbeitungskosten (GVK) und der Gesamtausfallwahrscheinlichkeit (GAW) bestimmt und die eine oder die mehreren Systemkonfiguration abhängig von den Gesamtkosten (GK) ausgewählt werden.
  8. Verfahren nach einem der Ansprüche 1 bis 6, wobei das Bestimmen der einen oder den mehreren optimierten Systemkonfiguration abhängig von den Verarbeitungskosten (GVK) und den der Gesamtausfallwahrscheinlichkeit GAW zu geordneten Kosten (KGAW) durchgeführt wird, indem aus den mehreren ermittelten Systemkonfigurationen eine Pareto-Menge von Systemkonfigurationen ausgewählt wird.
  9. Verfahren nach einem der Ansprüche 1 bis 8, wobei die Verarbeitungskosten (GVK) in einem der Verarbeitungsknoten (21) abhängig von einer Verarbeitungskostenfunktion (VK) und abhängig von einem Ausnutzungsgrad für eine oder mehrere von Ressourcenkategorien der Verarbeitungsknoten (21) ermittelt werden und/oder wobei die Kommunikationskosten (GKK) für eine der Kommunikationsverbindungen abhängig von einer Kommunikationskostenfunktion (KK) und abhängig von einem Ausnutzungsgrad für eine oder mehrere von Ressourcenkategorien der Kommunikationsverbindung (22) ermittelt werden.
  10. Verfahren nach Anspruch 9, wobei der Ausnutzungsgrad für eine oder mehrere der Ressourcenkategorien der Verarbeitungsknoten (21) jeweils durch einen Unterschied zwischen einer Summe der Verarbeitungsanforderungsparameter der dem betreffenden Verarbeitungsknoten (21) zugeordneten Funktionen (11) für die betreffende Ressourcenkategorie und einem vorgegebenen Verarbeitungsleistungsparameter (VLP) des betreffenden Verarbeitungsknoten (21) gegeben ist, und/oder wobei der Ausnutzungsgrad für eine oder mehrere der Ressourcenkategorien der Kommunikationsverbindungen (22) jeweils durch einen Unterschied zwischen einer Summe der Kommunikationsanforderungsparameter (KAP) der der betreffenden Kommunikationsverbindung (22) zugeordneten Kommunikationspfade (12) für die betreffende Ressourcenkategorie und einem vorgegebenen Kommunikationsleistungsparameter (KAP) der betreffenden Kommunikationsverbindung (22) gegeben ist.
  11. Verfahren nach Anspruch 9 oder 10, wobei mindestens eine der Verarbeitungskostenfunktionen (VK) und/oder mindestens eine der Kommunikationskostenfunktionen (KK) einer badewannenförmige Kostenfunktion entspricht, die Kosten über den Ausnutzungsgrad abbilden, so dass hohe Kosten niedrigen und hohen Ausnutzungsgraden und niedrige Kosten mittleren Ausnutzungsgraden zugeordnet werden.
  12. Verfahren nach einem der Ansprüche 1 bis 10, wobei das technische Modell (2) zum Erstellen einer der Systemkonfigurationen um einen oder mehrere zusätzliche Verarbeitungsknoten (21) erweitert wird und wobei nach Beenden der iterativen Verfahrensschritte ungenutzte Verarbeitungsknoten (21) aus dem technischen Modell (2) entfernt werden.
  13. Verfahren nach einem der Ansprüche 1 bis 12, wobei das Zuordnen von Funktionen (11) des Funktionsmodells (1) in der Funktionszuordnung und/oder das Zuordnen der Kommunikationsverbindungen (22) in einer Kommunikationszuordnung optimiert, insbesondere durch Anwenden von genetischen Algorithmen, vorgenommen wird.
  14. Verfahren zum Erzeugen eines verteilten Systems, wobei das verteilte System gemäß einer Systemkonfiguration erstellt wird, die entsprechend einem Verfahren nach einem der Ansprüche 1 bis 13 als optimierte Systemkonfiguration bestimmt wird.
  15. Verfahren zum Aufbau eines verteilten Systems, wobei eine Systemkonfiguration gemäß dem Verfahren nach einem der Ansprüche 1 bis 14 ermittelt wird und wobei das verteilte System entsprechend der ermittelten Systemkonfiguration erstellt wird.
  16. Vorrichtung zur Ermittlung einer oder mehrerer optimierter Systemkonfigurationen eines durch ein technisches Modell beschriebenen verteilten Systems, wobei das technische Modell durch Verarbeitungsknoten (21) definiert ist, wobei die Systemkonfiguration die Zuordnung von Funktionen (11) eines Funktionsmodells (1) zu einzelnen Verarbeitungsknoten (21) des technischen Modells (2) angibt, wobei die Vorrichtung ausgebildet ist, um: - Mehrere Systemkonfigurationen durch Zuordnen, in einer Funktionszuordnung, von Funktionen (11) des Funktionsmodells (1) jeweils zu den Verarbeitungsknoten (21) des technischen Modells (2) zu ermitteln; - Verarbeitungskosten (GVK) der Funktionszuordnungen aller Verarbeitungsknoten (21) für jede der ermittelten Systemkonfigurationen zu ermitteln; - eine Gesamtausfallwahrscheinlichkeit (GAW) der Funktionszuordnungen zu den Verarbeitungsknoten (21) für jede der ermittelten Systemkonfigurationen mit Hilfe einer Komponentenfehleranalyse zu ermitteln; und - eine oder mehrere optimierte Systemkonfigurationen durch Auswahl aus den ermittelten Systemkonfigurationen abhängig von den Verarbeitungskosten (GVK) und der Gesamtausfallwahrscheinlichkeit (GAW) zu bestimmen.
  17. Computerprogramm, welches dazu eingerichtet ist, alle Schritte eines Verfahrens nach einem der Ansprüche 1 bis 14 auszuführen.
  18. Elektronisches Speichermedium, auf welchem ein Computerprogramm nach Anspruch 17 gespeichert ist.
DE102018219852.7A 2018-11-20 2018-11-20 Verfahren und Vorrichtung zum Ermitteln einer Systemkonfiguration für ein verteiltes System Pending DE102018219852A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102018219852.7A DE102018219852A1 (de) 2018-11-20 2018-11-20 Verfahren und Vorrichtung zum Ermitteln einer Systemkonfiguration für ein verteiltes System

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102018219852.7A DE102018219852A1 (de) 2018-11-20 2018-11-20 Verfahren und Vorrichtung zum Ermitteln einer Systemkonfiguration für ein verteiltes System

Publications (1)

Publication Number Publication Date
DE102018219852A1 true DE102018219852A1 (de) 2020-05-20

Family

ID=70470244

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018219852.7A Pending DE102018219852A1 (de) 2018-11-20 2018-11-20 Verfahren und Vorrichtung zum Ermitteln einer Systemkonfiguration für ein verteiltes System

Country Status (1)

Country Link
DE (1) DE102018219852A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3764185A1 (de) 2019-07-12 2021-01-13 Robert Bosch GmbH Verfahren zum testen eines systems

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3121673A1 (de) 2015-07-20 2017-01-25 Siemens Aktiengesellschaft Verfahren zur modellierung eines fehlerpropagationsmodells und computerprogrammprodukt

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3121673A1 (de) 2015-07-20 2017-01-25 Siemens Aktiengesellschaft Verfahren zur modellierung eines fehlerpropagationsmodells und computerprogrammprodukt

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3764185A1 (de) 2019-07-12 2021-01-13 Robert Bosch GmbH Verfahren zum testen eines systems

Similar Documents

Publication Publication Date Title
DE69835017T2 (de) Vorrichtung und verfahren zur ermöglichung eines verschiedenartigen datenflusses zwischen algorithmenblöcken in einem verteilten steuerungssystem
DE102012224342B4 (de) Vorrichtung und verfahren zur leistungssteuerung für die v2x- kommunikation
DE102019135608A1 (de) Verfahren, Vorrichtung und System zur Detektion von anomalen Betriebszuständen eines Geräts
DE112018005352T5 (de) Informationsverarbeitungsvorrichtung, bewegte einrichtung, verfahren und programm
EP3667568A1 (de) Konfiguration eines steuerungssystems für ein zumindest teilautonomes kraftfahrzeug
DE102018109195A1 (de) Diagnosesystem und Verfahren zum Verarbeiten von Daten eines Kraftfahrzeugs
DE102018219852A1 (de) Verfahren und Vorrichtung zum Ermitteln einer Systemkonfiguration für ein verteiltes System
EP1391086B1 (de) Verfahren und vorrichtung zur erstellung eines zeitplans der übermittlung von nachrichten auf einem bussystem
DE102010009994A1 (de) Verfahren zur Optimierung eines Steuerungsprogramms für Aktuatoren
EP1624614A1 (de) Automatische Planung von Netzwerkkonfigurationen
WO2020178091A1 (de) System und verfahren zum auffinden und identifizieren von rechenknoten in einem netzwerk
DE10222699B4 (de) Computergestütztes Verfahren und Vorrichtung zur Optimierung von Fahrzeugstrukturen und -komponenten
DE102019200169A1 (de) Verfahren und Vorrichtung zum Ermitteln einer Systemkonfiguration eines verteilten Systems
DE102021130117A1 (de) Diagnosemuster-erzeugungsverfahren und computer
DE10222072A1 (de) Diagnoseverfahren für dynamische Systeme
EP1717651B1 (de) Verfahren und Vorrichtung zum Auswerten von Ereignissen aus dem Betrieb eines Fahrzeuges
DE102019111564A1 (de) Verfahren und system zum konfigurieren von filterobjekten für eine controller area network-steuerung
EP3575976A1 (de) Verfahren zum bestimmen einer physikalischen verbindungstopologie eines für die steuergerätentwicklung eingerichteten, echtzeitfähigen testgeräts
DE102018123563A1 (de) Verfahren zur Zwischenkernkommunikation in einem Mehrkernprozessor
DE102018112803A1 (de) Verfahren zum Bestimmen einer physikalischen Verbindungstopologie eines für die Steuergerätentwicklung eingerichteten, echtzeitfähigen Testgeräts
EP4307121A1 (de) Computerimplementiertes verfahren zum konfigurieren eines virtuellen testsystems und trainingsverfahren
DE102012214500B4 (de) Zustandsbasierte Planung, Absicherung und Management von Ressourcen einer Datennetzstruktur
DE102020202853A1 (de) Weiterleitungsvorrichtung
DE102021109169A1 (de) Verfahren zum Trainieren eines neuronalen Netzes
DE102021207274A1 (de) Verfahren zum Trainieren eines neuronalen Netz-Ensembles