Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD, DEVICE AND COMPUTER PROGRAM FOR DYNAMICALLY ALLOCATING RESOURCES IN A MULTI-PROCESSOR COMPUTER SYSTEM
Document Type and Number:
WIPO Patent Application WO/2019/030388
Kind Code:
A1
Abstract:
The invention relates to methods and devices for dynamically allocating resources in a multi-processor computer system having a plurality of components. The method comprises various steps such as receiving a request for accessing a shared resource, wherein after allocating the requested shared resource to the requesting unit, a predetermined real-time request is ensured by the multi-processor computer. Based on operational parameters determined during design time of the multi-processor computer system and current operating parameters, expected future operational parameters are determined after allocating the requested shared resource. If the predetermined real-time request of the operating parameters can be guaranteed in the future, the requested resource is allocated to the requested unit.

Inventors:
ERNST ROLF (DE)
KOSTRZEWA ADAM (DE)
TOBUSCHAT SEBASTIAN (DE)
Application Number:
PCT/EP2018/071780
Publication Date:
February 14, 2019
Filing Date:
August 10, 2018
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
TTZ EMBEDDED SYSTEMS INNOVATIONSGESELLSCHAFT TECHNISCHE UNIV BRAUNSCHWEIG MBH (DE)
International Classes:
G06F9/50
Foreign References:
DE102009016742B42011-03-10
DE102009016742B42011-03-10
Attorney, Agent or Firm:
KAUFMANN, Tobias (DE)
Download PDF:
Claims:
Patentansprüche

1. Verfahren zur dynamischen Ressourcenzuweisung in einem Mehrprozessor- Computersystem (100) mit einer Mehrzahl von Komponenten, wobei die Mehrzahl der Komponenten zwei oder mehr Prozessoren (103), eine Ressourcenmanagement- Komponente (106) und ein Kommunikationsmittel (107) für eine Kommunikation zwischen den Prozessoren und einer oder mehreren geteilten Ressourcen (102) aufweist,

das Verfahren umfassend:

Empfangen (210), durch die Ressourcenmanagement-Komponente und von einer anfragenden Einheit, einer Anfrage für einen Zugriff auf eine der geteilten Ressourcen, wobei nach einer Zuweisung der angefragten geteilten Ressource an die anfragende Einheit mindestens eine vorgegebene Echtzeitanforderung durch das Mehrprozessor-Computersystem zu gewährleisten ist;

Bestimmen (220), durch die Ressourcenmanagement-Komponente, eines oder mehrerer aktueller Betriebsparameter des Mehrprozessor-Computersystems;

Bestimmen (230), durch die Ressourcenmanagement-Komponente, eines oder mehrerer nach einer Zuweisung der angefragten geteilten Ressource an die anfragende Einheit zu erwartender zukünftiger Betriebsparameter, basierend auf während einer Entwurfszeit des Mehrprozessor-Computersystems erstellten Modells des

Mehrprozessor-Computersystems und dem einen oder den mehreren bestimmten aktuellen Betriebsparametern;

falls die vorgegebene Echtzeitanforderung basierend auf dem Bestimmen (230) der zu erwartenden zukünftigen Betriebsparameter gewährleistet ist:

Zuweisen (260), durch die Ressourcenmanagement-Komponente, der angefragten Ressource an die anfragende Einheit

2. Verfahren nach Anspruch 1, wobei, falls die vorgegebene Echtzeitanforderung basierend auf dem Bestimmen (230) der zu erwartenden zukünftigen

Betriebsparameter nicht gewährleistet ist:

basierend auf dem einen oder den mehreren bestimmten aktuellen

Betriebsparametern und dem einen oder den mehreren zu erwartenden zukünftigen Betriebsparametern, Bestimmen (240) einer Konfiguration einer oder mehrerer der Komponenten des Mehrprozessor-Computersystems derart, dass die vorgegebene Echtzeitanforderung für die angefragte Ressource durch die Konfiguration

gewährleistet ist; und

falls eine entsprechende Konfiguration bestimmt werden konnte, Konfigurieren (250), durch die Ressourcenmanagement-Komponente, der einen oder der mehreren Komponenten des Mehrprozessor-Computersystems gemäß der bestimmten

Konfiguration, und

Zuweisen (260), durch die Ressourcenmanagement-Komponente, der angefragten Ressource an die anfragende Einheit.

3. Verfahren nach Anspruch 1 oder Anspruch 2, wobei das Zuweisen (260) der angefragten Ressource (102) an die anfragende Einheit durch einen Aufbau einer Kommunikationsverbindung zwischen der anfragenden Einheit und der angefragten Ressource über das Kommunikationsmittel (107) erfolgt

4. Verfahren nach einem der vorstehenden Ansprüche, wobei das Bestimmen (220) des einen oder der mehreren aktuellen Betriebsparameter mindestens eines umfasst aus einem Bestimmen:

eines Verhaltens der anfragenden Einheit, umfassend einen Zustand und/oder ein Muster früherer Ressourcenzugriffe der anfragenden Einheit;

einer elektrischen Spannung und/oder einer Taktfrequenz, mit der eine oder mehrere der Komponenten des Mehrprozessor-Computersystems (100) betrieben werden;

einer Temperatur einer oder mehrerer der Komponenten des Mehrprozessor- Computersystems (100);

einer Anzahl von Datenpaketen, die innerhalb eines festgelegten Zeitraums über das Kommunikationsmittel (107) übertragen wurden.

5. Verfahren nach einem der vorstehenden Ansprüche, wobei das Bestimmen (230) des einen oder der mehreren zu erwartenden zukünftigen Betriebsparameter mindestens eines umfasst aus einem Bestimmen einer nach einer Zuweisung der angefragten geteilten Ressource (102) an die anfragende Einheit zu erwartenden: elektrischen Spannung und/oder Taktfrequenz, mit der eine oder mehrere der Komponenten des Mehrprozessor-Computersystems (100) betrieben werden;

Temperatur einer oder mehrerer der Komponenten des Mehrprozessor- Computersystems (100);

durchschnittlichen Anzahl von übertragenen Datenpaketen, die innerhalb eines festgelegten Zeitraums über das Kommunikationsmittel (107) zu erwarten sind.

6. Verfahren nach einem der vorstehenden Ansprüche, wobei das Konfigurieren (250) der einen oder der mehreren Komponenten des Mehrprozessor- Computersystems (100) mindestens eines umfasst aus:

Anpassen einer Taktrate und/oder einer Frequenz, mit der eine oder mehrere der Komponenten des Mehrprozessor-Computersystems (100) betrieben werden;

Anpassen einer maximal zu sendenden und/oder zu empfangenden

Datenmenge pro Zeitintervall für eine auf einem oder mehreren der Prozessoren (103) ausgeführte Anwendung und/oder für eine Komponente des Mehrprozessor- Computersystems (100);

Umleiten von im Kommunikationsmittel (107) vorhandenen und/oder zu übertragenden Datenpaketen;

Aktivieren oder Deaktivieren einer auf einem oder mehreren der Prozessoren (103) ausgeführten Anwendung und/oder einer der Komponenten des Mehrprozessor- Computersystems (100); und

Anpassen eines Zeitverhaltens einer auf einem oder mehreren der Prozessoren (103) ausgeführten Anwendung.

7. Verfahren nach einem der vorstehenden Ansprüche, wobei die Anfrage mindestens einen Parameter umfasst, und wobei der Parameter eines oder mehrere umfasst aus einer Art, eines Umfangs und/oder eines Zeitverhaltens der angefragten geteilten Ressource (102).

8. Verfahren nach einem der vorstehenden Ansprüche, wobei die anfragende Einheit eines ist aus:

einer auf einem oder mehreren der Prozessoren (103) ausgeführten

Anwendung;

einer Komponente des Mehrprozessor-Computersystems (100); einer zu dem Mehrprozessor-Computersystem externen Komponente.

9. Verfahren nach einem der vorstehenden Ansprüche, wobei das Zuweisen (260) der angefragten Ressource (102) an die anfragende Einheit eine Bestätigung der Anfrage vor der Zuweisung umfasst.

10. Verfahren nach einem der vorstehenden Ansprüche, wobei für den Fall, dass während des Bestimmens (240) keine entsprechende Konfiguration bestimmt werden konnte, die die vorgegebene Echtzeitanforderung gewährleistet, das Verfahren ferner umfasst:

Senden (245), durch die Ressourcenmanagement-Komponente, einer

Zurückweisungsnachricht an die anfragende Einheit zum Zurückweisen der Anfrage.

11. Verfahren nach einem der vorstehenden Ansprüche, wobei die geteilte

Ressource (102) eine Hardware-Ressource oder eine Software-Ressource ist, und wobei eine Hardware-Ressource eines ist aus:

einem Sensor (101);

einem Aktor (101);

einem Speicher (102), insbesondere Hauptspeicher oder Cachespeicher;

einem Speichercontroller (104);

einem Hardwarebeschleuniger (105);

dem Kommunikationsmittel (107);

einem Gateway (108); und

einem Eingabe-/Ausgabemittel.

12. Verfahren nach einem der vorstehenden Ansprüche, wobei das

Kommunikationsmittel (107) als ein Kommunikationsmittel für eine interne

Kommunikation zwischen Komponenten des Mehrprozessor-Computersystems (100) und/oder zu dem Mehrprozessor-Computersystem externen Komponenten ausgestaltet ist.

13. Verfahren nach Anspruch 12, wobei das Kommunikationsmittel als ein

Network-On-Chip, NoC, ausgestaltet ist.

14. Verfahren nach einem der vorstehenden Ansprüche, wobei das Mehrprozessor- Computersystem (100) ein integrierter Schaltkreis ist.

15. Verfahren nach einem der vorstehenden Ansprüche, wobei die eine oder die mehreren geteilten Ressourcen (102) als interne Ressourcen oder als zu dem

Mehrprozessor-Computersystem (100) externe Ressourcen (102) ausgestaltet sind.

16. Verfahren nach einem der vorstehenden Ansprüche, wobei das

Kommunikationsmittel (107) als heterogenes Kommunikationsmittel ausgestaltet ist, wobei:

Komponenten des Kommunikationsmittels eine oder mehrere Taktfrequenzen aufweisen; und/oder

unterschiedliche Router-Architekturen in dem Kommunikationsmittel vorhanden sind; und/oder

unterschiedliche Protokolle in dem Kommunikationsmittel verwendet werden; und/oder

verschiedene Bandbreiten auf Verbindungen zwischen Routern in dem

Kommunikationsmittel verwendet werden.

17. Vorrichtung (100) mit Mitteln zum Ausfuhren des Verfahrens nach einem der Ansprüche 1 bis 16.

18. Vorrichtung (100) nach Anspruch 17, wobei die Vorrichtung als Mehrprozessor- Steuergerät für ein Fahrzeug ausgebildet ist

19. Computerprogramm, das angepasst ist, das Verfahren nach einem der

Ansprüche 1 bis 18 auszuführen.

20. Verfahren zur dynamischen Ressourcenzuweisung in einem Mehrprozessor- Computersystem (100) mit einer Mehrzahl von Komponenten, wobei die Mehrzahl der Komponenten zwei oder mehr Prozessoren (103), eine Ressourcenmanagement- Komponente (106) und ein Kommunikationsmittel (107) für eine Kommunikation zwischen den Prozessoren und einer oder mehreren geteilten Ressourcen (102) aufweist, das Verfahren umfassend:

Bestimmen (310), durch die Ressourcenmanagement-Komponente, einer Echtzeitanforderung, die von dem Mehrprozessor-Computersystem nach einem Rekonfigurieren des Mehrprozessor-Computersystems zu gewährleisten ist;

Bestimmen (320), durch die Ressourcenmanagement-Komponente, eines oder mehrerer aktueller Betriebsparameter des Mehrprozessor-Computersystems ;

Bestimmen (330), durch die Ressourcenmanagement-Komponente, eines oder mehrerer nach dem Rekonfigurieren zu erwartender zukünftiger Betriebsparameter, basierend auf wahrend einer Entwurfszeit des Mehrprozessor-Computersystems erstellten Modells des Mehjprozessor-Computersystems und dem einen oder den mehreren bestimmten aktuellen Betriebsparametern;

falls die Echtzeitanforderung basierend auf dem Bestimmen (330) der zu erwartenden zukünftigen Betriebsparameter gewahrleistet ist:

Rekonfigurieren (340), durch die Ressourcenmanagement-Komponente, des Mehrprozessor-Computersystems.

21. Vorrichtung (100) mit Mitteln zum Ausfuhren des Verfahrens nach

Anspruch 20.

22. Computerprogramm, das angepasst ist, das Verfahren nach Anspruch 20 auszuführen.

Description:
Verfahren, Vorrichtung und Computerprogramm zur dynamischen Ressourcenzuweisung in einem Mehrprozessor-Computersystem

HINTERGRUND DER ERFINDUNG

Gebiet der Erfindung

Die vorliegende Erfindung betrifft ein Verfahren zur dynamischen

Ressourcenzuweisung in einem Mehrprozessor-Computersystem mit einer Mehrzahl von Komponenten sowie eine entsprechende Vorrichtung und ein entsprechendes Computerprogramm.

Beschreibung des Stands der Technik

Mehrprozessor-Computersysteme, wie sie beispielsweise in Form integrierter

Schaltkreise verfugbar sind, weisen zwei oder mehr Prozessoren auf, die unabhängig voneinander verschiedene Prozesse ausführen können. Die mehreren Prozessoren teilen sich vorhandene Hardware- und Software-Ressourcen des Mehrprozessor- Computersystems. Zu den Hardware- und Software-Ressourcen zählen beispielsweise Speicher wie Hauptspeicher und Cachespeicher, Kommunikationsmittel wie Datenbus oder Netzwerk, Ein- und Ausgabemittel sowie gegebenenfalls weitere Komponenten des MehrpiOzessor-Computersystems.

Wahrend die gemeinsame Nutzung von Hardware- und Software-Ressourcen durch mehrere Prozessoren Vorteile hinsichtlich einer effizienten Nutzung dieser Ressourcen haben kann, kann diese gemeinsame Nutzung in einigen Anwendungsbereichen jedoch auch Nachteile mit sich bringen. Beispielsweise müssen so genannte Echtzeitsysteme sehr hohe Anforderungen hinsichtlich Antwort- und Ausfuhrungszeiten erfüllen.

Antwort- und Ausführungszeiten in Systemen mit gemeinsam genutzten Hardware- und Software-Ressourcen werden im Wesentlichen durch Zugriffe auf diese gemeinsam genutzten Hardware- und Software-Ressourcen bestimmt Werden Ressourcen benötigt, auf die häufig zugegriffen wird, kann dies zu längeren Antwort- und

Ausführungszeiten führen. Einige Ressourcen wie beispielsweise Cachespeicher können auch ein stark dynamisches Verhalten aufweisen. Weiterhin kann es bei gemeinsam genutzten Hardware- und Software-Ressourcen, insbesondere durch unabhängig arbeitende Komponenten wie die Prozessoren, zu Zugriffskonflikten kommen.

Insgesamt ist eine Zusicherung der erforderlichen Echtzeitanforderungen somit nur schwer möglich.

Eine besondere Form eines Kommunikationsmittels in einem Mehrprozessor- Computersystem stellt ein so genanntes Network on Chip, kurz NoC, dar. Ein NoC ist eine Kommunikationsarchitektur mit mindestens einem Router, bei der jede

Hardware-Ressource des Mehrprozessor-Computersystems eine eindeutige Adresse besitzt Die einzelnen Ressourcen weisen Netzwerkschnittstellen auf, die eine

Verbindung mit einem oder mehreren Routern des NoC ermöglichen. Das NoC weist weiterhin direkte Datenleitungen zwischen Ressourcen und Routern auf. Eine

Kommunikation zwischen den Ressourcen basiert auf der Übertragung von

Datenpaketen, die von einer Startressource mittels der Datenleitungen über einen oder mehrere Router zu einer oder mehreren Zielressourcen geleitet werden. NoCs sind insbesondere geeignet für die Anwendung in den oben genannten Echtzeitsystemen.

Eine Möglichkeit, hohe Echtzeitanforderungen erfüllen zu können, besteht darin, Mehrprozessor-Computersysteme stark überzudimensionieren, um auf diese Weise sicherzustellen, dass selbst in einem Worst Case-Szenario immer genügend freie Hardware- und Softwareressourcen im System zur Verfügung stehen. Dies führt jedoch zu einem hohen Aufwand an Hardware- und Softwareressourcen, der auch in allen anderen Szenarien außer dem Worst Case-Szenario angewandt wird, da andernfalls nicht garantiert werden kann, dass die Software-Programme mit garantiertem

Zeitverhalten ausführbar sind. Anders gesagt, wenn es möglich ist, alle benötigten Ressourcen so zu reservieren, dass keine Beeinflussung möglich ist, wäre eine

Überschätzung der Laufzeit nicht erforderlich. In derzeitigen Mehrprozessor- Computersystemen ergibt sich somit eine schlechte Ausnutzung der verfügbaren Ressourcen, wenn das Zeitverhalten der Anwendungen genau vorhersagbar sein soll. Insgesamt sind heutige Mehrprozessor-Computersysteme sehr komplex hinsichtlich der Verwaltung ihrer Ressourcen wie z.B. Speicher, Kommunikationsmedien oder Ein- und Ausgabekanäle und der Einhaltung von Echtzeitanforderungen, um beispielsweise sicherheitskritische Anwendungen ausführen zu können. In der deutschen

Patentschrift DE 102009016742 B4 wurde bereits vorgeschlagen, einen zentralen Ressourcen-Manager (RM) einzusetzen, welcher die Zuteilung von Ressourcen koordiniert Der RM, der sich vorzugsweise auf demselben Chip wie die Prozessoren befindet, nimmt Reservierungsanfragen entgegen und prüft an Hand eines System- Modells, ob eine Reservierungsanfrage überhaupt erfüllbar ist. Wird eine

Reservierungsanfrage angenommen, wählt der RM die benötigten Ressourcen aus, teilt sie zu und garantiert so eine definierte Ausführungszeit.

Insbesondere im Zusammenhang mit einer Mehrprozessor-Electronic Control Unit (ECU), wie sie zum Beispiel innerhalb eines Fahrzeuges Anwendung findet, ist das Ressourcenmanagement besonders komplex. Für sicherheitskritische Prozesse ist ein vorhersagbares Verhalten erforderlich. Dies bedeutet, das Computersystem muss sicherstellen, dass durch das Computersystem ausgeführte Anwendungen unabhängig von der derzeitigen Auslastung oder äußeren Umständen, die Anforderung innerhalb der geforderten Zeit ausgeführt wird. Hierfür werden üblicherweise zur Entwurfszeit formale Garantien festgelegt, die von einem Worst-Case Szenario ausgehen. Zur Laufzeit wird das System, beispielsweise mit Hilfe des vorgeschlagenen RM dafür sorgen, dass die formalen Garantien eingehalten werden, indem er dafür sorgt, dass stets ausreichend Ressourcen für eine möglicherweise auftretende sicherheitskritische Funktion zur Verfügung stehen. Dies bedeutet, dass sich Mehrprozessor- Computersysteme, die sicherheitskritische Prozesse umsetzen müssen, stets am Worst- Case orientieren müssen.

Es besteht Bedarf, die bestehenden Ansätze zur Ressourcenzuweisung in einem

Mehrprozessor-Computersystem wie beispielsweise einem integrierten Schaltkreis weiter zu verbessern, ohne dabei die formalen Garantien zu gefährden.

ZUSAMMENFASSUNG DER ERFINDUNG Die Erfindung ist durch die unabhängigen Ansprüche definiert. Weitere vorteilhafte Ausfuhrungsformen sind in den abhängigen Ansprüchen definiert.

Um das oben genannte Ziel zu erreichen, stellt die vorliegende Erfindung ein Verfahren zur dynamischen Ressourcenzuweisung in einem Mehrprozessor-Computersystem mit einer Mehrzahl von Komponenten bereit Die Mehrzahl der Komponenten weist zwei oder mehr Prozessoren, eine Ressourcenmanagement-Komponente und ein

Kommunikationsmittel für eine Kommunikation zwischen den Prozessoren und einer oder mehreren geteilten Ressourcen auf.

Das Verfahren umfasst ein Empfangen, durch die Ressourcenmanagement- Komponente und von einer anfragenden Einheit, einer Anfrage für einen Zugriff auf eine der geteilten Ressourcen auf. Nach einer Zuweisung der angefragten geteilten Ressource an die anfragende Einheit ist mindestens eine vorgegebene

Echtzeitanforderung durch das Mehrprozessor-Computersystem zu gewährleisten. Weiterhin umfasst das Verfahren ein Bestimmen, durch die Ressourcenmanagement- Komponente, eines oder mehrerer aktueller Betriebsparameter des Mehrprozessor- Computersystems, sowie ein Bestimmen, durch die Ressourcenmanagement- Komponente, eines oder mehrerer nach einer Zuweisung der angefragten geteilten Ressource an die anfragende Einheit zu erwartender zukünftiger Betriebsparameter, basierend auf während einer Entwurfszeit des Mehrprozessor-Computersystems erstellten Modells des Mehrprozessor-Computersystems und dem einen oder den mehreren bestimmten aktuellen Betriebsparametern.

Gemäß dem Verfahren erfolgt, falls die vorgegebene Echtzeitanforderung basierend auf dem Bestimmen der zu erwartenden zukünftigen Betriebsparameter gewährleistet ist, ein Zuweisen, durch die Ressourcenmanagement-Komponente, der angefragten Ressource an die anfragende Einheit.

Um das oben genannte Ziel zu erreichen, stellt die vorliegende Erfindung ferner eine entsprechende Vorrichtung mit Mitteln zum Ausführen des Verfahrens sowie ein entsprechendes Computerprogramm bereit. Das Computerprogramm kann auf einem nicht-transitorischen Speichermedium gespeichert sein. Ferner stellt die vorliegende Erfindung ein Verfahren zur dynamischen

Ressourcenzuweisung in einem Mehrprozessor-Computersystem mit einer Mehrzahl von Komponenten bereit, wobei die Mehrzahl der Komponenten zwei oder mehr Prozessoren, eine Ressourcenmanagement-Komponente und ein

Kommunikationsmittel für eine Kommunikation zwischen den Prozessoren und einer oder mehreren geteilten Ressourcen aufweist

Das Verfahren umfasst ein Bestimmen, durch die Ressourcenmanagement- Komponente, einer Echtzeitanforderung, die von dem Mehrprozessor-Computersystem nach einem Rekonfigurieren des Mehrprozessor-Computersystems zu gewahrleisten ist. Ferner umfasst das Verfahren ein Bestimmen, durch die Ressourcenmanagement- Komponente, eines oder mehrerer aktueller Betriebsparameter des Mehrprozessor- Computersystems, sowie ein Bestimmen, durch die Ressourcenmanagement- Komponente, eines oder mehrerer nach dem Rekonfigurieren zu erwartender zukünftiger Betriebsparameter, basierend auf wahrend einer Entwurfszeit des

Mehrprozessor-Computersystems erstellten Modells des Mehrprozessor- Computersystems und dem einen oder den mehreren bestimmten aktuellen

Betriebsparametern.

Falls die Echtzeitanforderung basierend auf dem Bestimmen der zu erwartenden zukünftigen Betriebsparameter gewährleistet ist, erfolgt ein Rekonfigurieren, durch die Ressourcenmanagement-Komponente, des Mehrprozessor-Computersystems.

In Abkehr vom Stand der Technik orientiert sich die Ressourcenmanagement- Komponente erfindungsgemäß somit nicht mehr nur an einem zur Entwurfszeit bestimmten Worst Case-Szenario zur Auslastung des Mehrprozessorsystem- Computersystems. Stattdessen werden ein oder mehrere aktuelle Betriebsparameter des Mehrprozessor-Computersystems bestimmt und die zur Verfügung stehenden Ressourcen an diese Parameter angeglichen. Damit können erfindungsgemäß

Ressourcenanfragen auch dann zugelassen werden, wenn bereits eine derart hohe Auslastung existiert, die im Stand der Technik zur Abweisung der Anfrage geführt hatte, beispielsweise wenn die bestimmten Parameter für die angeforderte

Ressource(n) vorteilhafte Bedingungen anzeigen. Die Erfindung nutzt damit die Ressourcen effizienter als es nach dem Stand der Technik möglich war. Insbesondere erfolgt erfindungsgemäß eine Anpassung von zur Entwurfszeit in Bezug auf

Echtzeitanforderungen großzügig dimensionierter fest reservierter Ressourcen, da eine solche großzügige Reservierung nur für den oben beschriebenen Worst-Case notwendig ist und somit in den meisten Anwendungsfallen eine ineffiziente Ressourcennutzung darstellt

Sowohl die vorstehende allgemeine Beschreibung als auch die detaillierte Beschreibung sind als Beispiel aufzufassen und sollen zur Erläuterung der beanspruchten Erfindung dienen. Weitere Vorteile und Merkmale der Erfindung sind aus der nachstehenden Beschreibung, den Zeichnungen und den Patentansprüchen ersichtlich.

KURZE BESCHREIBUNG DER ZEICHNUNGEN

Die Merkmale, die die Erfindung kennzeichnen, werden in den beiliegenden

Ansprüchen naher erläutert. Die Erfindung selbst wird jedoch am besten anhand der nachstehenden detaillierten Beschreibung verständlich, die unter Bezugnahme auf die Zeichnungen eine exemplarische Ausführungsform der Erfindung beschreibt:

Fig. l ist eine schematische Darstellung einer Vorrichtung gemäß einigen

Ausfuhrungsformen der vorliegenden Erfindung.

Fig.2 ist ein Flussdiagramm, das die Schritte eines Verfahrens gemäß einigen

Ausfuhrungsformen der vorliegenden Erfindung darstellt

Fig.3 ist ein Flussdiagramm, das die Schritte eines Verfahrens gemäß einigen

Ausführungsformen der vorliegenden Erfindung darstellt.

DETAILLIERTE BESCHREIBUNG DER ERFINDUNG

Die beigefugten Zeichnungen, der technische Inhalt und die detaillierte Beschreibung beziehen sich auf eine bevorzugte Ausführungsform der Erfindung, was jedoch nicht als Beschränkung des Erfindungsgegenstands aufzufassen ist. Alle gleichwertigen Variationen und Änderungen, die entsprechend den beigefügten Ansprüchen der vorliegenden Erfindung vorgenommen werden, sind durch diese Ansprüche abgedeckt.

Im Folgenden wird die Erfindung anhand der Zeichnungen detailliert beschrieben.

Flg. l ist eine schematische Darstellung einer Vorrichtung loo gemäß einigen

Ausführungsformen der vorliegenden Erfindung. Die in Fig. ι dargestellte Vorrichtung ist beispielsweise als Mehrprozessor-Computersystem ausgebildet und weist zwei oder mehr Prozessoren 103 auf. Weiterhin weist die Vorrichtung 100 mehrere zwischen den Prozessoren geteilte Ressourcen auf wie beispielsweise gemeinsam genutzte Speicher (engl. Shared Memory) 102, insbesondere Hauptspeicher oder Cachespeicher,

Sensoren beziehungsweise Aktoren 101, einen Hauptspeichercontroller 104, einen Haidwarebeschleuniger 105 sowie ein Gateway 108 auf. Das Gateway 108 dient als Schnittstelle zu einem externen Kommunikationsmedium, das die

Datenkommunikation mit externen Komponenten erlaubt. Die zuvor genannten Komponenten des Mehrprozessor-Computersystems 100 können auch mehrfach vorhanden sein. Die geteilten Ressourcen 102 können als interne Ressourcen oder als zu dem Mehrprozessor-Computersystem 100 externe Ressourcen 102 ausgestaltet sind.

Ferner weist das in Fig.1 dargestellte Mehrprozessor-Computersystem 100 eine Ressourcenmanagement-Komponente (kurz Ressourcenmanager) 106 auf. Die

Komponenten des Mehrprozessor-Computersystems 100, das heißt insbesondere die Prozessoren und die geteilten Ressourcen sind über ein Kommunikationsmittel 107 miteinander gekoppelt, über das Daten untereinander ausgetauscht werden können. Das Kommunikationsmittel 107 ist ebenfalls eine geteilte Ressource.

Beispiele für Komponenten des Mehrprozessor-Computersystem 100 sind Clients, Monitore, Netzwerkinterface, DMC (Interface/Engine), Ethernet (Interface), Gateway oder SDN-Controller.

Eine besondere Rolle spielen hierbei Clients, Monitore oder Netzwerkinterface. Bei diesen Komponenten handelt es sich um Komponenten, die zwischen einem Prozessor 103 (oder einer anderen Komponente) und dem Kommunikationsmittel 107

angeordnet sind. Diese Komponenten sind in der Lage, einen Zugriff zu erkennen. Beispielsweise erkennt eine solche einem Prozessor zugeordnete Komponente, wenn eine Applikation des ihr zugeordneten Prozessors auf eine geteilte Ressource (oder das Kommunikationsmittel) zugreift und verschickt daraufhin eine entsprechende Anfrage an die Ressourcenmanagement-Komponente 106. Im Falle eines Clients oder des Netzwerkinterfaces kann der gewünschte Zugriff solange blockiert („getrappt") werden, bis die Ressourcenmanagement-Komponente 106 den Zugriff erlaubt. Dies ermöglicht eine transparente Implementierung des erfindungsgemäßen Verfahrens, ohne dass die betreffende Komponente, die auf eine geteilte Ressource zugreifen will, selbst eine Anfrage stellen muss. Die Anfrage wird in einem solchen Fall also von der angefragten geteilten Ressource gestellt

Die Sensoren und Aktoren 101 umfassen verschiedene Arten von Sensoren,

beispielsweise: a) Sensoren zur Erfassung eines System-internen Zustand wie Temperatur oder Last;

b) Sensoren zur Erfassung externer Ereignisse wie beispielsweise

Abstandssensoren für Fahrerassistenzsysteme;

c) Sensoren zur Erfassung externer Ereignisse, welche für eine Rückkoppelung genutzt werden können wie zum Beispiel Kameras für Fahrerassistenzsysteme. Abhangig von der Umgebung liefert eine entsprechende Kamera

unterschiedliche Datenmengen, was beispielsweise als Eingabe für eine

Rekonfiguration des Systems genutzt werden kann.

In einigen Ausführungsformen ist das Kommunikationsmittel (107) als ein

Kommunikationsmittel für eine interne Kommunikation zwischen Komponenten des Mehrprozessor-Computersystems (100) und/oder zu dem Mehrprozessor- Computersystem externen Komponenten ausgestaltet.

Insbesondere ist in einigen Ausfütirungsformen das Kommunikationsmittel 107 als ein NoC ausgebildet. Dies ist insbesondere dann vorteilhaft, wenn es sich bei dem

Mehrprozessor-Computersystem 100 um einen integrierten Schaltkreis und

insbesondere eine Mehrprozessor-Electronic Control Unit (ECU) innerhalb eines Fahrzeuges handelt, an die sehr hohe Echtzeitanforderungen gestellt werden. In einigen Ausfuhrungsformen, in denen das Mehrprozessor-Computersystem 100 als integrierter Schaltkreis ausgestaltet ist, kann dieser integrierte Schaltkreis wiederum mehrere integrierte Schaltkreise umfassen. Weiterhin kann einer oder mehrere der integrierten Schaltkreise als System-on-Package (SoP) ausgestaltet sein.

Aufgrund seiner besonderen Architektur kann ein NoC als Schaltkreis-internes Kommunikationsmittel dazu beitragen, diese sehr hohen Echtzeitanforderungen unter allen Betriebsbedingungen und Systemzuständen zu gewährleisten.

In einigen Ausfuhrungsformen ist das Kommunikationsmittel 107 als ein

Kommunikationsmittel für eine Kommunikation zwischen integrierten Schaltkreisen des Mehrprozessor-Computersystems 100, das heißt als Kommunikationsmittel zwischen verschiedenen Schaltkreisen in einem Package ausgestaltet. In derartigen Ausführungsfonnen ist jeder Prozessor 103 als einzelner Die ausgestaltet, wobei die Prozessoren Package-intern über ein NoC verbunden sind.

Die in Fig. 1 dargestellte Vorrichtung kann beispielsweise als System-in-Package (SiP; mehrere Schaltkreise oder Dies in einem Package oder Chip einschließlich vertikaler Integration), als Multi-Chip-Modul (MCM, mehrere Schaltkreise oder Dies in einem Package/Chip/Gehäuse planar zueinander angeordnet) oder System-on-Chip (Soc, mehrere Komponenten einem einzelnen Die oder Schaltkreis) ausgestaltet sein. Ein SiP oder MCM kann auch mehrere SoCs sowie entsprechende geteilte Ressourcen und Kommunikationsmittel enthalten.

Ein weiterer Vorteil eines NoC als internes Kommunikationsmittel besteht darin, dass auch in dem Fall, dass das Mehrprozessor-Computersystem als integrierter Schaltkreis ausgebildet ist und insbesondere ein heterogenes Netzwerk darstellt, eine optimierte Kommunikation ermöglicht wird. Heterogene Netzwerke zeichnen sich dadurch aus, dass eine oder mehrere Taktfrequenzen für die Komponenten des integrierten

Schaltkreises verwendet werden können, und/oder unterschiedliche Router- Architekturen und/oder entsprechend unterschiedliche Protokolle, die auf ein und demselben integrierten Schaltkreis implementiert sein können. Zusätzlich, oder alternativ, sind in heterogenen Netzwerken verschiedene Bandbreiten auf den Verbindungen zwischen Routern des NoC und Komponenten des integrierten Schaltkreises 100 möglich, die mittels der NoC-Router kommunizieren.

Das erfindungsgemäße Mehrprozessor-Computersystem 100 ermöglicht es, auch für derartige heterogene Netzwerk-Architekturen spezifizierten Echtzeitanforderungen zu genügen.

In einigen Ausführungsfonnen umfasst das Mehrprozessor-Computersystem 100 mehrere Ressourcenmanagement-Komponenten 106, die hinsichtlich ihrer

Komplexität und/oder Funktionalität unterschiedlich ausgebildet sein können. Jede Ressourcenmanagement-Komponente 106 kann in Form von Hardware und/oder Software implementiert sein.

Fig.2 ist ein Flussdiagramm, das die Schritte eines Verfahrens gemäß einigen

Ausfuhrungsformen der vorliegenden Erfindung darstellt

In einem ersten Schritt 210 des Verfahrens empfängt die Ressourcen m anagement- Komponente 106 von einer anfragenden Einheit eine Anfrage für einen Zugriff auf eine der geteilten Ressource 102-108. Bei der anfragenden Einheit handelt es sich beispielsweise um eine Anwendung, die auf einem oder mehreren der Prozessoren 103 ausgeführt wird, oder um eine andere Komponente des Mehrprozessor- Computersystems 100. Die anfragende Einheit kann jedoch auch eine System-externe Komponenten sein. Bei der geteilten Ressource, auf die die Anfrage gerichtet ist, kann es sich beispielsweise um einen Sensor 101, einen Aktor 101, einen Speicher 102, insbesondere Hauptspeicher oder Cachespeicher, einen Speichercontroller 104, einen Hardwarebeschleuniger 105 das Kommunikationsmittel 107 oder ein Eingabe- /Ausgabemittel handeln. Generell kann es sich bei der angefragten Ressource um eine beliebige Hardware- oder Software-Ressource des Mehrprozessor-Computersystems 100 handeln. Falls die angefragte Ressource das Kommunikationsmittel 107 ist, kann die Anfrage auch nur auf Teile des Kommunikationsmittels 107 gerichtet sein, beispielsweise eine Verbindung, Pfade, Router, (virtuelle) Kanäle (channel) oder Puffer. Nach einer Zuweisung der angefragten geteilten Ressource 102 an die anfragende Einheit ist mindestens eine vorgegebene Echtzeitanforderung durch das

Mehrprozessor-Computersystem 100 zu gewährleisten. In einigen Ausführungsformen umfasst die Anfrage mindestens einen Parameter. Der Parameter umfasst

beispielsweise eine Art, einen Umfang und/oder ein Zeitverhalten der angefragten geteilten Ressource 102. Weitere Beispiele sind ein Mindestdatendurchsatz auf dem Kommunikationsmittel 107 (z.B. eine Anzahl angekommener Datenpaketen pro Zeiteinheit) oder eine maximale erlaubte Antwortzeit (z.B. eine maximale erlaubte Übertragungslatenz).

In einem weiteren Schritt 220 bestimmt die Ressourcenmanagement-Komponente 106 einen oder mehrerer aktuelle Betriebsparameter des Mehrprozessor-Computersystems 100. Dabei kann die Ressourcenmanagement-Komponente 106 insbesondere die Sensoren 101 verwenden. Die Sensoren 101 können eine Vielzahl von

Betriebsparametern erfassen wie beispielsweise ein Verhalten der anfragenden Einheit, umfassend einen Zustand und/oder ein Muster früherer Ressourcenzugriffe der anfragenden Einheit, eine elektrische Spannung und/oder eine Taktfrequenz, mit der eine oder mehrere der Komponenten des Mehrprozessor-Computersystems betrieben werden, eine Temperatur einer oder mehrerer der Komponenten des Mehrprozessor- Computersystems oder eine Anzahl von Datenpaketen, die innerhalb eines festgelegten Zeitraums über das Kommunikationsmittel 107 übertragen wurden. Bei der Anzahl von Datenpaketen kann es sich beispielsweise um eine durchschnittliche oder maximale Anzahl handeln, die innerhalb eines festgelegten Zeitraums über das

Kommunikationsmittel 107 übertragen werden.

In Schritt 230 bestimmt die Ressourcenmanagement-Komponente 106 einen oder mehrere nach einer Zuweisung der angefragten geteilten Ressource 102 an die anfragende Einheit zu erwartende zukünftige Betriebsparameter. Dieses Bestimmen kann dabei auf einem oder mehreren Faktoren basieren. Insbesondere kann die Schätzung auf während einer Entwurfszeit des Mehrprozessor-Computersystems 100 erstellten Modells des Mehrprozessor-Computersystems basieren, sowie dem einen oder den mehreren bestimmten aktuellen Betriebsparametern. Es ist auch möglich, dass das Bestimmen nur auf einem dieser beiden Faktoren basiert. Das Bestimmen des einen oder der mehreren zu erwartenden zukünftigen

Betriebsparameter umfasst dabei beispielsweise ein Bestimmen einer nach einer Zuweisung der angefragten geteilten Ressource 102 an die anfragende Einheit zu erwartenden elektrischen Spannung und/oder Taktfrequenz, mit der eine oder mehrere der Komponenten des Mehrprozessor-Computersystems 100 betrieben werden.

Weiterhin kann auch eine zu erwartende zukünftige Temperatur einer oder mehrerer der Komponenten des Mehrprozessor-Computersystenis 100 bestimmt werden. Eine weitere Variante ist das Bestimmen einer durchschnittlichen Anzahl von übertragenen Datenpaketen, die innerhalb eines festgelegten Zeitraums über das

Kommunikationsmittel zu erwarten sind.

Die Ausführung der nächsten Schritte des Verfahrens hangen von einem Ausgang einer Fallunterscheidung ab.

Falls die vorgegebene Echtzeitanforderung basierend auf dem Bestimmen 230 der zu erwartenden zukünftigen Betriebsparameter gewährleistet ist, erfolgt durch die Ressourcenmanagement-Komponente ein Zuweisen 260 der angefragten Ressource an die anfragende Einheit.

Falls die vorgegebene Echtzeitanforderung basierend auf dem Bestimmen 230 der zu erwartenden zukünftigen Betriebsparameter jedoch nicht gewährleistet ist, erfolgt basierend auf dem einen oder den mehreren bestimmten aktuellen Betriebsparametern und dem einen oder den mehreren zu erwartenden zukünftigen Betriebsparametern ein Bestimmen 240 einer Konfiguration einer oder mehrerer der Komponenten des Mehrprozessor-Computersystems 100 derart, dass die vorgegebene

Echtzeitanforderung für die angefragte Ressource 102 durch die Konfiguration gewährleistet ist

Mit anderen Worten prüft die Ressourcenmanagement-Komponente 106, ob die vorgegebene Echtzeitanforderung erfüllt werden kann, wenn die angefragte Ressource unter den aktuell gegebenen Betriebsbedingungen des Mehrprozessor- Computersystems 100 der anfragenden Einheit zugeteilt wird. Diese Bestimmung basiert nicht nur auf zuvor zur Entwurfszeit des Mehrprozessor-Computersystems 100 erstellten Modells des Mehrprozessor-Computersystems, also beispielsweise der Spezifikation eines als integrierter Schaltkreis ausgestalteten Mehrprozessor- Computersystems, die bei sicherheitskritischen Systemen für die Anwendungen und die Plattform existieren, um Grenzen für das erlaubte Verhalten des Systems und aller interferierenden Anwendungen zu bestimmen, sondern zusatzlich auf aktuell zur Laufzeit beobachteten Betriebsparametern.

Die Ressourcenmanagement-Komponente 106 nutzt somit während der Laufzeit diese zur Entwurfszeit bestimmten Informationen sowie gleichzeitig Informationen bezüglich des aktuellen Zustande des Mehrprozessor-Computersystems 100. Diese Art der Verknüpfung von Entwurözert-Lnformationen und Laufeeit-Informationen ermöglicht es, die Konfiguration des Mehrprozessor-Computersystems 100 dynamisch zur Laufzeit anzupassen. Mit anderen Worten: Die Entwurfszeit-Information wird mit Feedback zur Laufzeit zusammengeführt, bevor eine Entscheidung über die Ablehnung einer Anfrage getroffen wird. Durch die zur Entwurfszeit erstellten und bestimmten Modelle und Grenzen des Systems kann auf diese Weise garantiert werden, dass die Ressourcenmanager-Komponente 106 nur gültige Konfigurationen bestimmt und anwendet, das heißt solche Konfigurationen, bei denen die erforderlichen

Echtzeitanforderungen, die an das Mehrprozessor-Computersystem 100 gestellt werden, eingehalten werden. Es ist auf diese Weise zusätzlich möglich, weitere

Optimierungsziele zu verwirklichen wie beispielsweise ein garantierter minimaler Datendurchsatz bei gleichzeitig geringer thermischer Belastung des Mehrprozessor- Computersystems und seiner Komponenten.

Es kann vorkommen, wenngleich deutlich seltener als im Stand der Technik, dass keine entsprechende Konfiguration bestimmt werden kann. In einem solchen Fall sendet die Ressourcenmanagement-Komponente 106 in Schritt 245 eine

Zurückweisungsnachricht an die anfragende Einheit und weist somit die Anfrage nach der geteilten Ressource zurück.

Andernfalls, wenn also eine entsprechende Konfiguration bestimmt werden konnte, für die die vorgegebene Echtzeitanforderung voraussichtlich gewährleistet ist, werden in Schritt 250 eine oder mehrere Komponenten des Mehrprozessor-Computersystems 100 gemäß der in Schritt 240 bestimmten Konfiguration konfiguriert Das Konfigurieren 250 einer oder mehrerer Komponenten des Mehrprozessor- Computersystems 100 kann auf vielfältige Weise vorgenommen werden. Beispielsweise können eine Taktrate und/oder eine Frequenz angepasst werden, mit der eine oder mehrere der Komponenten des Mehrprozessor-Computersystems 100 betrieben werden. Möglich ist auch ein Anpassen einer maximal zu sendenden und/oder zu empfangenden Datenmenge pro Zeitintervall für eine auf einem oder mehreren der Prozessoren 103 ausgeführte Anwendung oder für eine Komponente des

Mehrprozessor-Computersystems 100. Es ist auch möglich, im Kommunikationsmittel 107 vorhandene oder zu übertragende Datenpakete umzuleiten. Weiterhin können Anwendungen deaktiviert oder aktiviert werden, die auf einem oder mehreren der Prozessoren 103 ausgeführt werden, oder es können einzelne Komponenten des Mehrprozessor-Computersystems 100 aktiviert oder deaktiviert werden. Zusätzlich oder alternativ ist es möglich, ein Zeitverhalten einer auf einem oder mehreren der Prozessoren 103 ausgeführten Anwendung anzupassen.

Anschließend an das Konfigurieren 250, wird in Schritt 260 schließlich die angefragte Ressource 102 an die anfragende Einheit zugewiesen. Das Zuweisen 260 der angefragten Ressource an die anfragende Einheit erfolgt beispielsweise durch einen Aufbau einer Kommunikationsverbindung zwischen der anfragenden Einheit und der angefragten Ressource 102 über das Kommunikationsmittel 107.

In einigen Ausführungsformen umfasst das Zuweisen 260 der angefragten Ressource 102 an die anfragende Einheit eine Bestätigung der Anfrage vor der Zuweisung.

In einigen Ausfuhrungsformen kann in einem Fall, in dem die gewünschte

Kommunikationsverbindung zu der geteilten Ressource 102 nicht hergestellt werden kann, die Ressourcenmanager-Komponente 106, die anfragende Einheit oder beide alternative Konfigurationen prüfen. Wenn eine solche alternative Konfiguration gefunden wird, die zur Erfüllung der Echtzeitanforderung geeignet ist, wird die betreffende alternative Konfiguration durch die Ressourcenmanager-Komponente 106 umgesetzt

Einige Ausfühnmgsformen sind dadurch gekennzeichnet, dass die die Anfrage empfangende Ressourcenmanager-Komponente 106 oder eine andere Ressourcenmanager-Komponente, die eine Anfrage von einer Ressourcenmanager- Komponente erhalt, die Anfrage bezüglich ihrer Gültigkeit, Durchführbarkeit, Performance, Sicherheit und/oder Einfluss auf andere Komponenten des

Mehrprozessor-Computersystems 100 bewertet und bei negativer Bewertung die Anfrage ablehnt oder die Parameter der Anfrage abändert und erneut bewertet

Fig.3 ist ein Flussdiagramm, das die Schritte eines Verfahrens gemäß einigen

Ausführungsformen der vorliegenden Erfindung darstellt

Gemäß dieser weiteren Ausfuhrungsformen ist vorgesehen, dass die

Ressourcenmanagement-Komponente die Konfiguration oder Teile der Konfiguration nur basierend auf dem aktuellen Zustand des Systems oder genutzter Ressourcen (intern als auch Peripherie) oder der auf den Prozessoren laufenden Anwendungen anpasst Dadurch wird ermöglicht, dass die Ressourcenmanagement-Komponente Informationen über den Systemzustand, welcher zum Beispiel aus Informationen von Monitoring-Einrichtungen oder dem Verhalten von Peripherie-Komponenten abgeleitet wird, nutzt um auch ohne eine vorliegende Anfrage oder

Verbindungsaufforderung einer anfragenden Einheit die Konfiguration zur

Optimierung oder Einhaltung der Garantien und Echtzeitanforderungen anzupassen (proaktives Verhalten).

In diesen Ausführungsformen wird das Überprüfen des Systems und das eventuelle Rekonfigurieren nicht durch eine Anfrage für einen Zugriff auf eine geteilte Ressource ausgelöst. Stattdessen erfolgt das Überprüfen und Rekonfigurieren beispielsweise Ereignis-gesteuert, das heißt in Reaktion auf ein erkanntes Ereignis. Eine weitere Möglichkeit besteht darin, dass das Überprüfen und Rekonfigurieren periodisch beispielsweise in bestimmten Zeitabständen erfolgt.

Ein solches auslösendes Ereignis ist beispielsweise die Überschreitung eines

Grenzwertes. Die periodische Überprüfung erfolgt beispielsweise durch Auslesen eines Sensors in bestimmten Zeitabständen.

Mögliche Auslöser für das Überprüfen und Rekonfigurieren sind beispielsweise: - Überschreiten einer Temperatur des Mehrprozessor-Computersystems oder einer seiner Komponenten (als mögliche Reaktion erfolgt beispielsweise eine Drosselung einer Frequenz, mit der das System oder eine Komponente betrieben wird, oder eine Drosselung von Rate- limitern am Netzwerkinterface)

- Unterschreiten einer Temperatur (als mögliche Reaktion erfolgt beispielsweise eine Erhöhung einer Frequenz)

- Reaktionszeit und/oder Datendurchsatz des NoC ungenügend / zu viel

Datenverkehr (als mögliche Reaktion erfolgt zum Beispiel eine Erhöhung der Frequenz, ein Drosseln oder Abschalten von Funktionen oder Komponenten oder ein Umleiten von Datenpaketen)

In diesen Ausführungsformen, bei denen nicht eine Anfrage für eine Ressource das auslösende Ereignis ist, erfolgt somit generell eine Überwachung auf die Einhaltung bestimmter Garantien und Betriebsparameter sowie eine entsprechende automatische Anpassung der Betriebsparameter, um diese Garantien einzuhalten und gegebenenfalls weitere Optimierungsziele (beispielsweise minimaler Stromverbrauch beim Einhalten von Echtzeitanforderungen) zu erreichen.

Es ist anzumerken, dass diese Garantien und/oder Optimierungsziele vorab bekannt und festgelegt sind, da sie beispielsweise zur Entwurfszeit des Mehrprozessor- Computersystems erstellt und festgelegt wurden. Die Ressourcenmanagement- Komponente hat Zugriff auf diese vorab festgelegten Garantien und/oder

Optimierungsziele.

In einigen Ausfuhrungsformen können die Garantien und/oder Optimierungsziele nachträglich (zum Beispiel durch Updates) und/oder zur Laufzeit (zum Beispiel durch eine mittels„machine learning" lernende Ressourcenmanagement-Komponente) verändert werden.

Insbesondere umfasst das Verfahren gemäß dieser weiteren Ausführungsform ein Bestimmen 310, durch die Ressourcenmanagement-Komponente, einer

Echtzeitanforderung, die von dem Mehrprozessor-Computersystem nach einem Rekonfigurieren des Mehrprozessor-Computersystems zu gewährleisten ist, sowie ein Bestimmen 320, durch die Ressourcenmanagement-Komponente, eines oder mehrerer aktueller Betriebsparameter des Mehrprozessor-Computersystems. Weiterhin umfasst das Verfahren ein Bestimmen 330, durch die Ressourcenmanagement-Komponente, eines oder mehrerer nach dem Rekonfigurieren zu erwartender zukünftiger

Betriebsparameter, basierend auf während einer Entwurfszeit des Mehrprozessor- Computersystems erstellten Modells des Mehrprozessor-Computersystems und dem einen oder den mehreren bestimmten aktuellen Betriebsparametern. Falls die

Echtzeitanforderung basierend auf dem Bestimmen 330 der zu erwartenden zukünftigen Betriebsparameter gewahrleistet ist, erfolgt ein Rekonfigurieren 340, durch die Ressourcenmanagement- Komponente, des Mehrprozessor- Computersystems.

Falls die Echtzeitanforderung basierend auf dem Bestimmen 330 der zu erwartenden zukünftigen Betriebsparameter nicht gewahrleistet ist, endet das Verfahren in Schritt 350, ohne dass ein Rekonfigurieren des Mehrprozessor-Computersystems

vorgenommen wurde.

In einem Beispiel wird der Ablauf des Verfahrens gemäß diesen weiteren

Ausfuhrungsformen durch ein periodisches Auslesen eines Sensors oder einer periodischen Überprüfung der Betriebsparameter oder auf Grund eines oder mehrerer auftretender Ereignisse, wie Fehler, Modus-Wechsel, oder Änderungen im

Datenvolumen, ausgelöst Hier kann sodann, im Schritt 310, die

Ressourcenmanagement-Komponente die zu gewährleistenden Echtzeitanforderungen bestimmen. Die zu gewährleistenden Echtzeitanforderungen kann zum Beispiel zur Entwurfszeit festgelegt oder durch eine vorhergehende Anfrage bestimmt worden sein. Auch könnte sie sich durch einen Modus-Wechsel verändert haben, wobei sowohl denkbar ist, dass es sich bei der veränderten Echtzeitanforderungen um eine gegenüber der bisherigen Echtzeitanforderung strengeren, wie auch einer gegenüber der bisherigen Echtzeitanforderung weniger strengen Echtzeitanforderung, handelt.

Zusätzlich können, bei Schritt 320, die ll^ufzeitinformationen über die aktuellen Betriebsparameter, wie beispielsweise die Temperatur, vorhandene Datenströme, genutzte Datenpfade, benötigter Datendurchsatz, Taktfrequenz(en) oder Spannungen), erfasst werden. Basierend auf der zu gewährleistenden

Echtzeitanforderung, dem zur Entwurfszeit erstellten Modell des Systems und den aktuellen, zur Laufzeit bestimmten Betriebsparametern kann die

Ressourcenmanagement-Komponente sodann eine neue mögliche Konfiguration, welche die Echtzeitanforderung und andere Anforderungen bezuglich der

Betriebsparameter (wie beispielsweise maximale Temperatur oder maximaler

Stromverbrauch) erfüllt und/oder Optimierungsziele bezüglich der Betriebsparameter erreicht, wie beispielsweise einen minimalen Stromverbrauch, ein gleichmäßiges Altern von Komponenten, Beibehaltung des Zeitverhaltens, Beibehaltung der Funktion, usw., bestimmen. Hierfür wird, üblicherweise, in einem Schritt 330, durch die

Ressourcenmanagement-Komponente bestimmt, wie sich die Betriebsparameter unter dieser neuen möglichen Konfiguration verhalten, basierend auf dem Modell und den zur Laufzeit bestimmten Betriebsparametern.

Ist eine Konfiguration gefunden, die es ermöglicht, die zu gewährleistende,

möglicherweise geänderte Echtzeitanforderung einzuhalten, kann diese durch die Ressourcenmanagement-Komponente, beispielsweise in einem Schritt 340, konfiguriert werden, wobei das Konfigurieren beispielsweise eines oder mehreres umfasst aus:

(a) Ausbremsen des Verkehrs, zum Beispiel durch einen oder mehrere Rate- Limiter,

(b) Verringerung der Taktfrequenzen einer oder mehrerer Komponenten,

(c) Umleitung von Datenpaketen, zum Beispiel auf alternativen Pfaden in einem Netzwerk

(d) Änderung der Prioritäten von Datenströmen.

Hierbei kann die Konfiguration sowohl Sender mit Echtzeitanforderungen als auch solche ohne Echtzeitanforderungen betreffen. Dies kann in bestimmten Fällen wichtig sein, da, zum Beispiel, ein ausgebremster Datenstrom anderen Datenverkehr im Netzwerk beeinflussen kann und somit dieser unter Umständen auch angepasst werden muss.

Ein konkreter Anwendungsfall für diesen Ablauf ist die Behandlung einer zu hohen Temperatur einer Komponente. Hierbei erkennt die Ressourcenmanagement- Komponente, zum Beispiel durch Auslesen eines Sensors oder durch eine Meldung eines Sensors an die Ressourcenmanagement-Komponente, dass eine zu hohe

Temperatur an einer Komponente, wie zum Beispiel einem Netzwerkrouter, vorliegt. Da eine zu hohe Temperatur die AusfaUwahrscheinlichkeit und den Stromverbrauch erhöhen kann, bestimmt die Ressourcenmanagement-Komponente in diesem Beispiel eine neue Konfiguration für eine oder mehrere Komponenten. Eine mögliche neue Konfiguration, welche die zu Temperatur senkt, ist beispielsweise eine verringerte Taktfrequenz des Netzwerkrouters, bei dem die zu hohe Temperatur erkannt wurde. Um dabei alle Echtzeitanforderungen weiterhin zu gewährleisten, kann es zusätzlich erforderlich sein, Netzwerkverkehr umzuleiten, um den verringerten möglichen Durchsatz des nun langsamer getakteten Netzwerkrouters auszugleichen.

Ein weiterer konkreter Anwendungsfall für diesen Ablauf ist die Behandlung einer geringeren Auslastung einer Komponente, als durch die Anfragen oder das zur

Entwurfszeit erstellte Modell angenommen wurde. Hierbei erkennt die

Ressourcenmanagement-Komponente, zum Beispiel durch Auslesen eines Sensors oder durch eine Meldung eines Sensors an die Ressourcenmanagement-Komponente, dass ein Sender weniger Daten sendet als bisher angenommen. Da die aktuelle

Konfiguration von einem höheren Datenvolumen ausgeht, besteht Raum zur

Optimierung des Systems, zum Beispiel in Bezug auf den Stromverbrauch. Daher bestimmt die Ressourcenmanagement-Komponente eine neue Konfiguration für eine oder mehrere Komponenten. Eine mögliche neue Konfiguration, welche den

Stromverbrauch senkt, ist beispielsweise eine verringerte Taktfrequenz einer oder mehrerer Komponenten. Um dabei alle Echtzeitanforderungen weiterhin zu

gewährleisten, kann es zusätzlich nötig sein, Netzwerkverkehr umzuleiten oder auszubremsen oder die Prioritäten der Datenpakete anzupassen, um die verringerte Leistung der nun langsamer getakteten Komponenten auszugleichen.

Ein weiterer konkreter Anwendungsfall für diesen Ablauf ist die Behandlung einer höheren Auslastung einer Komponente, als durch die Anfragen oder das zur

Entwurfszeit erstellten Modell angenommen wurde. Hierbei erkennt die

Ressourcenmanagement-Komponente, zum Beispiel durch Auslesen eines Sensors oder durch eine Meldung eines Sensors an die Ressourcenmanagement-Komponente, dass ein Sender mehr Daten sendet als bisher angenommen. Da die aktuelle Konfiguration von einem niedrigeren Datenvolumen ausgeht, ist die Gewährleistung von

Echtzeitanforderungen gefährdet. Daher bestimmt die Ressourcenmanagement- Komponente eine neue Konfiguration für eine oder mehrere Komponenten. Eine mögliche neue Konfiguration, welche die Echtzeitanforderungen gewährleistet, ist beispielsweise eine erhöhte Taktfrequenz einer oder mehrerer Komponenten. Ist eine Erhöhung der Taktfrequenz nicht möglich, da beispielsweise die maximale Frequenz oder Temperatur erreicht ist, ist eine andere mögliche Konfiguration das Ausbremsen oder Umleitung von Datenverkehr, um die Interferenzen oder das Datenaufkommen an der Komponente zu reduzieren.

Ein weiterer konkreter Anwendungsfall für diesen Ablauf ist die Behandlung eines Fehlers, wie der Ausfall eines Netzwerkrouters oder der Verbindung zwischen zwei Netzwerkroutern. Verkehr über diese fehlerhafte Komponente kann eine zu hohe Latenz erfahren, permanent blockiert sein oder verloren gehen. Daher bestimmt die Ressourcenmanagement-Komponente eine neue Konfiguration für eine oder mehrere Komponenten. Eine mögliche neue Konfiguration ist beispielsweise eine Umleitung des Netzwerkverkehrs über alternative Pfade im Netzwerk. Da so auf diesen Pfaden nun eine erhöhtes Verkehrsauskommen auftreten kann, kann weiterhin die Erhöhung der Taktfrequenz von Netzwerkroutern auf den neuen Pfaden, das Ausbremsen von einem oder mehreren Sendern auf diesen Pfaden oder das Ausschalten oder das weitere Umleiten von Sendern auf diesen Pfaden erforderlich sein.

In einem Anwendungsfall kann des Verfahrensablaufs auch genutzt werden, um die Behandlung einer verringerten Echtzeitanforderung vorzunehmen. Ein Sender kann verschiedene Modi haben. Ein Beispiel wäre ein Steuergerät im Fahrzeug, welches abhängig vom Fahrzeugzustand (Parken, vorwärts Fahren, Fahren im Parkhaus, Fahren auf der Autobahn, Fahren bei freier Strecke, Fahren im Konvoi)

unterschiedliche Bandbreitenanforderungen an die Komponenten haben kann. Stellt die Ressourcenmanagement-Komponente eine verringerte Anforderung des Senders (oder einer anderen Komponente) fest, kann Raum zur Optimierung des Systems bestehen, soweit die Echtzeitanforderung auch mit der optimierten Konfiguration, zum Beispiel in Bezug auf den Stromverbrauch oder der für andere zur Verfügung stehenden Ressourcen, gewährleistet bleibt. Daher kann die Ressourcenmanagement- Komponente eine neue Konfiguration für eine oder mehrere Komponenten bestimmen. Eine mögliche neue Konfiguration, welche den Stromverbrauch senkt, ist

beispielsweise eine verringerte Taktfrequenz einer oder mehrerer Komponenten. Eine mögliche neue Konfiguration, welche die verfügbaren Ressourcen anderer Sender erhöht, ist beispielsweise eine Erhöhung der erlaubten Datenmenge in Rate-Limitern. Um dabei alle Echtzeitanforderungen weiterhin zu gewährleisten, kann es zusätzlich nötig sein, Netzwerkverkehr umzuleiten oder auszubremsen oder die Prioritäten der Datenpakete anzupassen, um der verringerten Leistung der nun langsamer getakteten Komponenten auszugleichen bzw. dem veränderten Verkehrsaufkommen entgegen zu wirken.

In einem Anwendungsfall kann des Verfahrensablaufs auch genutzt werden, um die Behandlung einer erhöhten Echtzeitanforderung vorzunehmen. Ein Sender kann, wie ausgeführt, verschiedene Modi haben, beispielsweise ein Steuergerät im Fahrzeug, welches, wie ausgeführt, abhängig vom Fahrzeugzustand (Parken, vorwärts Fahren, Fahren im Parkhaus, Fahren auf der Autobahn, Fahren bei freier Strecke, Fahren im Konvoi) unterschiedliche Bandbreitenanforderungen an die Komponenten haben kann. Stellt die Ressourcenmanagement-Komponente eine erhöhte Anforderung eines Senders (oder einer anderen Komponente) fest, kann die Gewährleistung von

Echtzeitanforderungen mit der aktuellen Konfiguration gefährdet sein. Daher kann die Ressourcenmanagement-Komponente eine neue Konfiguration für eine oder mehrere Komponenten bestimmen. Eine mögliche neue Konfiguration, welche die

Echtzeitanforderungen gewährleistet, ist beispielsweise eine erhöhte Taktfrequenz einer oder mehrerer Komponenten. Ist eine Erhöhung der Taktfrequenz nicht möglich, da beispielsweise die maximale Frequenz oder Temperatur erreicht ist, ist eine andere mögliche Konfiguration das Ausbremsen oder Umleitung von Datenverkehr, um die Interferenzen oder das Datenaufkommen an der Komponente zu reduzieren.

Mit dem dargestellten Verfahren ist beispielsweise auch die Behandlung von einem Datenstrom über verschieden schnelle Komponenten möglich. Dies kann

beispielsweise der Fall in einem Netwok-on-Chip mit verschiedenen Voltage-Islands sein. Hierbei haben verschiedene Netzwerkrouter unterschiedliche Taktfrequenzen und übertragen damit Datenpakete unterschiedlich schnell. Passiert ein Datenstrom

Netzwerkrouter mit unterschiedlichen Geschwindigkeiten, können sich die

Datenpakete am Übergang von einem Netzwerkrouter mit höherer Taktrate zu einem mit niedrigerer Taktrate aufstauen. Dieses Aufistauen kann dann wiederum anderen Netzwerkverkehr beeinflussen (im Englischen auch als„Head-of-line blocking" bezeichnet). Da die Ressourcenmanagement-Komponente die Konfiguration der Netzwerkrouter steuert bzw. überwacht oder informiert wird, sobald an diesen Änderungen vorgenommen werden, kennt die Ressourcenmanagement-Komponente den Zustand (also zum Beispiels die Taktrate) der Netzwerkrouter. Zusatzlich kann die Ressourcenmanagement-Komponente über die Ressourcenzugriffe der Sender informiert werden. Auf diese Weise kann die Ressourcenmanagement-Komponente erkennen, wann der beschrieben Fall auftritt Daher bestimmt die

Ressourcenmanagement-Komponente eine neue Konfiguration für eine oder mehrere Komponenten. Eine mögliche neue Konfiguration, welche dieses Aufstauen und die dadurch entstehenden Interferenzen begrenzt oder vermeidet ist das Ausbremsen von Datenströmen, zum Beispiel durch Rate-Iimiter, oder das Umleiten von Datenpakten über alternative Kommunikationspfade, wie sie zum Beispiel in einem Network-on- Chip existieren. Hierzu kann beispielsweise die Ressourcenmanagement-Komponente dem Sender oder dem Netzwerkinterface eines Senders neue Werte für den Rate- Limiter oder den zu wählenden Netzwerkpfad vorgeben.

Das dargestellte Verfahren kann auch zur Ermöglichung von exklusiven Zugriffen auf eine Ressource oder einem Pfad im Kommunikationsmittel, für zum Beispiel eine DMA Übertragung, genutzt werden. Ein exklusiver Zugriff kann dabei helfen, dass

Scheduling an der Ressource zu verbessern oder Datenstaus (vgl. Head-of-line Blocking) zu vermeiden oder verringern. Da die Ressourcenmanagement-Komponente die Konfiguration der Sender steuert bzw. überwacht oder informiert wird, sobald an diesen Änderungen vorgenommen werden, kennt die Ressourcenmanagement- Komponente den Zustand der Sender, wie beispielsweise die angeforderten

Ressourcen, die benötigten Datendurchsätze oder zu versendenden Datenmengen. Daher kann die Ressourcenmanagement-Komponente dem einen oder mehreren Sendern exklusiven Zugriff auf die eine oder mehreren Komponenten/Ressourcen gewähren. Hierzu koruiguriert die Ressourcenmanagement-Komponente die Sender oder deren Netzwerkinterface, indem sie beispielsweise deren erlaubte Raten reduziert bzw. blockiert diese vollständig (beispielsweise durch Setzen der Rate auf„Null", einer Zugriffsverweigerung oder -Verzögerung), so dass nur ein Sender Zugriff erhält. Die Ressourcenmanagement-Komponente kann auf diese Weise in zur Entwurfszeit festgelegten oder zur Laufeeitbestimmten Zeitintervallen ändern, welcher der Sender exklusiven Zugriff erhält, beispielweise basierend auf festen Zeitscheiben, einem Round-Robin Verfahren oder auf festen Datenmengen.

Ein konkreter Anwendungsfall für das dargestellte Verfahren ist weiterhin die

Behandlung einer geänderten, beispielsweise erhöhten, Umgebungstemperatur.

Hierbei erkennt die Ressourcenmanagement-Komponente, zum Beispiel durch

Auslesen eines Sensors oder durch eine Meldung eines Sensors an die

Ressourcenmanagement-Komponente, dass eine zu hohe Umgebungstemperatur vorliegt. Da eine zu hohe Umgebungstemperatur die Ausfallwahrscheinlichkeit und den Stromverbrauch erhöhen kann, bestimmt die Ressourcenmanagement-Komponente eine neue Konfiguration für eine oder mehrere Komponenten. Eine mögliche neue Konfiguration ist beispielsweise eine verringerte Taktfrequenz einer oder mehrerer Komponenten oder das Ausschaltung einer oder mehrerer Komponenten. Um dabei alle Echtzeitanforderungen und/oder wichtigen Funktionen weiterhin zu

gewährleisten, kann es zusätzlich nötig sein, Netzwerkverkehr umzuleiten, um den verringerten möglichen Durchsatz des nun langsamer getakteten Netzwerkrouters auszugleichen, oder Funktionen auf andere Komponenten zu migrieren (zum Beispiel auf andere Prozessoren). Dies wiederum kann weitere Konfigurationsschritte bedeuten, da sich die angeforderten/benötigten Ressourcen und Kommunikationspfade ändern. So kann es beispielsweise nötig sein, nach dem Umleiten des Datenverkehrs auf einen neuen Kommunikationspfad, dem umgeleiteten Datenstrom zeitweise exklusiven Zugriff auf den Kommunikationspfad zu geben.

Weiterhin kann das dargestellte Verfahren auch verwendet werden, um die Behandlung einer ausgefallenen Komponente, wie beispielsweiser eines Prozessors oder einer Ressource, vorzunehmen. Hierbei erkennt die Ressourcenmanagement-Komponente, zum Beispiel durch Auslesen eines Sensors oder durch eine Meldung eines Sensors an die Ressourcenmanagement-Komponente, dass eine Komponente ausgefallen ist Sodann kann die Ressourcenmanagement-Komponente eine neue Konfiguration für eine oder mehrere Komponenten bestimmen. Eine mögliche neue Konfiguration kann beispielsweise vorsehen, Netzwerkverkehr umzuleiten oder Funktionen auf andere Komponenten zu migrieren (zum Beispiel auf andere Prozessoren). Dies wiederum kann weitere Konfigurationsschritte bedeuten, da sich die angeforderten/benötigten Ressourcen und Kommunikationspfade ändern. So kann es beispielsweise nötig sein, nach dem Umleiten des Datenverkehrs auf einen neuen Kommunikationspfad, diesen dem umgeleiteten Datenstrom zeitweise exklusiven Zugriff auf den

Kommunikationspfad zu geben.

Wie ein Fachmann an Hand der vorstehenden Informationen erkennt, sind die beschriebenen Maßnahmen der Konfiguration der einen oder mehreren

Netzwerkkomponenten, wie z.B. Netzwerkverkehr umzuleiten, Funktionen auf andere Komponenten zu migrieren, einem umgeleiteten Datenstrom zeitweise exklusiven Zugriff auf den Kommunikationspfad zu geben, die Sender oder deren

Netzwerkinterface neu zu konfigurieren, usw. nicht nur im Falle der Ausgestaltungen der Erfindungen möglich, bei denen das Verfahren ohne eine Anfrage für einen Zugriff, sondern beispielsweise ereignisgesteuert, ausgelöst wird. Vielmehr sind die

beschriebenen Maßnahmen selbstverständlich auch dann denkbar, wenn, wie mit Bezug auf die in Fig. 2 gezeigten Ausführungsbeispiele, ein Anfrage für eine geteilte Ressource Auslöser des Verfahrens ist.

Das Verfahren gemäß dieser weiteren Ausführungsformen ist durch eine Vorrichtung mit entsprechenden Mitteln ausfuhrbar, wie beispielsweise ein Mehrprozessor- Computersystem wie das oben beschriebene Mehrprozessor-Computersystem 100, das insbesondere als integrierter Schaltkreis mit einem NoC als Kommunikationsmittel ausgebildet sein kann. Die Mittel zum Ausführen des Verfahrens können jeweils sowohl als Hardware-Mittel, als Software-Mittel oder als eine Kombination aus Hardware- und Software-Mitteln ausgeführt sein.

Die Verfahren gemäß der vorliegenden Erfindung sind als Computerprogramm auch auf einem Computer ausführbar. In diesem Fall ist das entsprechende

Computerprogrammprodukt angepasst, die Schritte der oben dargestellten Verfahren auszuführen.

Die Verfahren und die Vorrichtungen gemäß der vorliegenden Erfindung ermöglichen es, dass beispielsweise ein Worst-Case-Verhalten des NoC, zum Beispiel eine maximale Latenz von Übertragungen oder ein minimaler Datensatz, oder ein Worst-Case- Verhalten der auf dem Mehrprozessor-Computersystem 100 ausgeführten Anwendungen, zum Beispiel eine maximale Antwortzeit, garantiert werden kann, sodass es möglich ist, sicherheitskritische Anwendungen mit Echtzeitanforderungen mittels des Verfahrens und der Vorrichtung ausführen zu können.

Gleichzeitig können für die vorgeschlagenen Verfahren und die vorgeschlagenen Vorrichtungen eine oder mehrere der folgenden Garantien gegeben werden, insbesondere wenn das Mehrprozessor-Computersystem 100 als integrierter

Schaltkreis mit einem NoC als Kommunikationsmittel 107 ausgebildet ist: i) maximaler Energieverbrauch des Systems, das heißt des integrierten

Schaltkreises 100, oder einzelner Komponenten des integrierten Schaltkreises; dies wird durch verschiedene Maßnahmen erreicht wie beispielsweise eine Verteilung einer Last auf mehrere Komponenten oder eine Drosselung beziehungsweise Abschaltung von nicht

sicherheitsrelevanten Anwendungen oder Komponenten. Ziel dabei ist es, sicherheitskritische Anwendungen so ausführen zu können, dass Ausfälle oder Fehler durch vorzeitige Erschöpfung der Energiereserven vermieden werden oder dass der Energieverbrauch des Systems optimiert wird.

ii) maximale Stromaufnahme, maximale Verlustleistung und maximale

thennische Belastung des integrierten Schaltkreises 100, oder einzelner Komponenten des integrierten Schaltkreises; dies wird durch verschiedene Maßnahmen wie beispielsweise eine Verteilung der Last auf mehrere Komponenten oder Drosselung beziehungsweise Abschaltung von nicht sicherheitsrelevanten Anwendungen erreicht. Ziel dabei ist es, eine thennische Überlastung bei der Ausführung sicherheitskritischer Anwendungen zu verhindern, so dass Ausfälle oder Fehler durch thermische Überlastung oder Spannungsschwankungen vermieden werden. iii) maximale Beeinflussung des Zeitverhaltens einer Anwendung durch eine andere Anwendung; dies wird beispielsweise von entsprechenden Sicherheitsstandards gefordert, und dienst zudem dazu, beispielsweise DOS-Angriffe zu verhindern oder zu blockieren.

iv) Beibehaltung des Zeitverhaltens einer Anwendung nach einer Änderung mindestens einer anderen Anwendung auf einem anderen Prozessor des Computersystems; dies ist beispielsweise für Systemaktualisierungen (Updates) relevant, wenn vorgegebene Sicherheitsstandards einzuhalten sind. Eine Änderung einer Anwendung, welche geteilte Ressourcen nutzt, kann über die geteilten Ressourcen andere Anwendungen beeinflussen. Ein Beispiel sei hier eine durch ein Update gesteigerte Nutzung einer geteilten Ressource, welche wiederum zu einer erhöhten Interferenz auf der geteilten Ressource und somit zu einer erhöhten Blockierungszeit (anderer

Anwendungen auf dieser Ressource) führt.

v) Beibehaltung des Zeitverhaltens einer Anwendung nach einer Änderung mindestens einer anderen Anwendung auf dem gleichen Prozessor des Computersystems, wobei die Anwendung geteilte Ressourcen des

Computersystems nutzt; dies ist beispielsweise für Systemaktualisierungen (Updates) relevant, wenn vorgegebene Sicherheitsstandards einzuhalten sind. Eine Änderung einer Anwendung, welche geteilte Ressourcen nutzt, kann durch eine erhöhte Anzahl von Zugriffen auf eine geteilte Ressource bzw. das Kommunikationsmittel zu einer erhöhten Blockierungszeit auf dem gleichen Prozessor (für andere Anwendungen) führen.

vi) Beibehaltung des Zeitverhaltens einer Anwendung nach Ausfällen einzelner Einheiten, die von der Anwendung nicht verwendet werden, um so eine höhere Zuverlässigkeit des Betriebes des integrierten Schaltkreises und seiner Komponenten zu gewährleisten.

vii) Beibehaltung des Zeitverhaltens einer Anwendung, beispielsweise im

Fehlerfall und/oder nach Ausfällen einzelner Komponenten des integrierten Schaltkreises, die von der Anwendung verwendet werden, um so eine höhere Zuverlässigkeit des Betriebes des integrierten Schaltkreises und seiner Komponenten zu gewährleisten.

viii) Beibehaltung der Funktion einer Anwendung nach Ausfällen einzelner Komponenten des integrierten Schaltkreises, die von der Anwendung verwendet werden, um so eine höhere Zuverlässigkeit des Betriebes des integrierten Schaltkreises und seiner Komponenten zu gewährleisten.

Die vorliegende Erfindung erlaubt somit ein garantiertes Zeitverhalten des Mehrprozessor-Computersystems unter gleichzeitiger Einhaltung der

obenstehenden Garantien. Erfindungsgemäß erfolgt eine Tradeoff-Analyse zwischen verschiedenen Parametern und eine sichere Umschaltung zwischen den Zustanden des integrierten Schaltkreises und seiner Komponenten. Die vorliegende Erfindung ermöglicht zudem eine Erweiterung der von der Ressourcenmanager- Komponente genutzten Modelle, die zur Entwurfszeit des integrierten Schaltkreises erstellt wurden. Wahrend des erfindungsgemäßen Verfahrens vorgeschlagene Konfigurationen können auf ihre Gültigkeit geprüft werden. Entsprechende gültige Konfigurationen können beispielsweise in Form von Tabellen oder State-Machines gespeichert sein, die für die Ressourcenmanagement-Komponente zugreifbar sind.

Zusätzlich kann die Ressourcenmanagement-Komponente Zugriff auf Modelle haben, die ein Verhalten von Anwendungen, einen Zusammenhang von einer Anzahl gesendeter Paketen pro Intervall (Durchsatz) und Temperatur, Frequenz und Temperatur oder ähnliches modellieren.

Die der Ressourcenmanagement-Komponente zur Verfügung stehenden Modelle sowie die gültigen Konfigurationen können zur Entwurfszeit des Mehrprozessor- Computersysteins festgelegt werden und bei Bedarf durch Updates oder dynamisch zur Laufzeit (zum Beispiel mittels„machine learning" durch die

Ressourcenmanagement-Komponente) adaptiert werden.

Die vorliegende Erfindung erlaubt zudem ein proaktives Verhalten basierend auf Monitoring-Informationen und ist somit nicht nur darauf beschränkt, vorgegebene Echtzeitanforderungen zu erfüllen („self-awareness" des Systems).

Die vorliegende Erfindung ermöglicht eine vorhersagbare, dynamische („online"-) Anpassung beispielsweise von Spannung und Frequenzen sowie weiterer

Kenngrößen der Systemkonfiguration. Die vorliegende Erfindung erlaubt zudem ein vorhersagbares Verhalten für Datenverkehr und dessen Einfiuss auf das restliche System und/oder andere Datenströme, welcher beispielsweise durch mehrere (unterschiedlich schnelle) so genannte Voltage Islands geht. Voltage Islands sind Bereiche im Kommunikationsmittel (Netzwerk), die eine bestimmte Spannung und/oder Frequenz (und somit eine bestimmte

Übertragungsgeschwindigkeit) aufweisen. Diese Bereiche umfassen einen oder mehrere Router des Kommunikationsmittels, das beispielsweise als NoC

ausgebildet ist. Passiert ein Datenstrom mehrere derartiger (Geschwindigkeits-) Voltage Islands, kann es am Übergang zu Blockierungen und Rückstau kommen. Insbesondere beim Wechseln von einer schnellen zu einer langsamen Voltage Island gibt es am Übergang einen Rückstau. Durch die Propagierung dieser Blockierungen entstehen zusätzlich Interferenzen, die direkt oder indirekt zu Abhängigkeiten zwischen Sendern führen. Dadurch ist die Einhaltung vorgegebener Echtzeitanforderungen und entsprechender Garantien erschwert oder sogar unmöglich.

Dieses Problem wird durch die Ressourcenmanagement-Komponente gelöst.

Insbesondere kann die Ressourcenmanagement-Komponente beispielsweise die Voltage Islands beziehungsweise die entsprechenden Kommunikationspfade im Kommunikationsmittel angleichen (beispielsweise durch Zuweisung derselben Frequenz für alle betroffenen Router), die Senderate des jeweiligen Senders anpassen (beispielsweise durch Rate-Limiter) und so bezüglich der„langsamsten Strecke" im Kommunikationsmittel anpassen (so dass sich keine Datenpakete am Übergängen mehr aufstauen), oder Datenströme so umleiten, dass die

entstehenden Interferenzen minimiert werden. Diese Maßnahmen führen insgesamt dazu, dass die Einhaltung vorgegebener Echtzeitanforderungen und entsprechender Garantien wieder ermöglicht wird.

Die Erfindung hat weiterhin den Vorteil, dass die gewünschte Steuerung einer oder mehrerer Komponenten eines Mebxprozessor-C!omputersystems, insbesondere eines integrierten Schaltkreises, oder des Mehrprozessor-Computersystems selbst in jedem Fall mit vorhersagbarer Performance bereitgestellt werden kann, insbesondere mit garantierter Latenz und/oder garantiertem

Mindestdatendurchsatz. Dies wird dadurch erreicht, dass vorab, das heißt bevor eine Kommunikation zwischen zwei Komponenten des Mehrprozessor- Computersystems stattfindet, über eine Verbindungsanforderung ein Prozess eines Aushandelns mit der mindestens einen Ressourcenmanagement-Komponente oder der Optimierung durch die mindestens eine Ressourcenmanagement-Komponente angestoßen wird. Es ist auch möglich, dass die mindestens eine

Ressourcenmanagement-Komponente den aktuellen Systemzustand nutzt, um eine Optimierung des Mehrprozessor-Computersystems durchzuführen. In beiden Fällen kann die mindestens eine Ressourcenmanagement-Komponente Informationen aus der Entwurfszeit oder der Laufzeit (z.B. durch Monitoring oder Anfragen) verwenden, um eine notwendige Konfiguration zu bestimmen, welche zur Einhaltung vorgegebener Garantien wie beispielsweise Echtzeitanforderungen benötigt werden.

Die vorliegende Erfindung eignet sich insbesondere für den Einsatz als Steuergerät für ein Fahrzeug.