DE102018132543A1 - System und verfahren zum verwalten der systemspeicherintegrität in suspendierten elektronischen steuergeräten - Google Patents

System und verfahren zum verwalten der systemspeicherintegrität in suspendierten elektronischen steuergeräten Download PDF

Info

Publication number
DE102018132543A1
DE102018132543A1 DE102018132543.6A DE102018132543A DE102018132543A1 DE 102018132543 A1 DE102018132543 A1 DE 102018132543A1 DE 102018132543 A DE102018132543 A DE 102018132543A DE 102018132543 A1 DE102018132543 A1 DE 102018132543A1
Authority
DE
Germany
Prior art keywords
vehicle
memory
processor
turned
subsystem
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
DE102018132543.6A
Other languages
English (en)
Inventor
Scott A. Rush
Vadim Draluk
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.)
GM Global Technology Operations LLC
Original Assignee
GM Global Technology Operations LLC
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 GM Global Technology Operations LLC filed Critical GM Global Technology Operations LLC
Publication of DE102018132543A1 publication Critical patent/DE102018132543A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/177Initialisation or configuration control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Retry When Errors Occur (AREA)

Abstract

Ein System zum Steuern eines Teilsystems eines Fahrzeugs beinhaltet einen Speicher, einen ersten Prozessor und einen zweiten Prozessor. Der erste Prozessor weist beim Hochfahren einen Speicherabschnitt zu, um Vorgänge zum Steuern des Teilsystems durchzuführen, und erzeugt eine Anzeige, wenn eine aus dem zugeordneten Speicherabschnitt verwendete Speichermenge größer als oder gleich einem Schwellenwert ist. Der erste Prozessor überwacht die Zeiten, in denen das Fahrzeug ein- und ausgeschaltet wird, und bestimmt einen Zeitraum, in dem das Fahrzeug ausgeschaltet bleibt. Nach dem Ausschalten des Fahrzeugs wechselt der erste Prozessor in einen Energiesparmodus. Der Speicher und der zweite Prozessor werden weiterhin mit Strom versorgt. Während des Zeitraums nach dem Empfangen der Anzeige weckt der zweite Prozessor den ersten Prozessor auf, der einen Neustartvorgang durchführt, den Speicher neu zuweist und wieder in den Energiesparmodus eintritt. Der Speicher wird weiterhin mit Strom versorgt.

Description

  • EINLEITUNG
  • Die in diesem Abschnitt bereitgestellten Informationen dienen der allgemeinen Darstellung des Kontextes der Offenbarung. Die Arbeit der gegenwärtig genannten Erfinder in dem in diesem Abschnitt beschriebenen Umfang, sowie Aspekte der Beschreibung, die zum Zeitpunkt der Anmeldung ansonsten nicht als Stand der Technik gelten, gelten gegenüber der vorliegenden Offenbarung weder ausdrücklich noch implizit als Stand der Technik.
  • Die vorliegende Offenbarung bezieht sich auf das Verwalten der Systemspeicherintegrität in schwebenden elektronischen Steuergeräten.
  • Elektronische Steuerungssysteme für Kraftfahrzeuge werden typischerweise als elektronische Steuergeräte (ECUs) implementiert, die über einen Controller Area Network (CAN)-Bus miteinander verbunden sind. Jedes ECU steuert ein bestimmtes Teilsystem (Motor, Getriebe, Heizen und Kühlen, Infotainment, Navigation usw.) des Fahrzeugs. Jedes ECU beinhaltet einen Mikrocontroller, einen CAN-Controller und einen Sender-Empfänger. In jedem ECU beinhaltet der Mikrocontroller einen Prozessor, einen Speicher und andere Schaltungen zum Steuern des speziellen Teilsystems. Jedes ECU kann über den CAN-Bus durch den CAN-Controller und den Sender-Empfänger mit anderen ECUs kommunizieren.
  • KURZDARSTELLUNG
  • Ein System zum Steuern eines Teilsystems eines Fahrzeugs beinhaltet einen Speicher, einen ersten Prozessor und einen zweiten Prozessor. Der erste Prozessor ist zum Steuern des Teilsystems des Fahrzeugs konfiguriert. Der erste Prozessor ist konfiguriert, um beim Hochfahren einen Teil des Speichers zuzuweisen, um Vorgänge zum Steuern des Teilsystems auszuführen. Der erste Prozessor ist zum Erzeugen einer Anzeige konfiguriert, wenn eine Speichermenge, die aus dem zugeordneten Teil des Speichers verwendet wird, größer oder gleich einem Schwellenwert ist. Der erste Prozessor ist konfiguriert, um die Zeiten zu überwachen, in denen das Fahrzeug ein- und ausgeschaltet wird, und um basierend auf den Zeiten eine Zeitspanne zu bestimmen, in der das Fahrzeug ausgeschaltet bleibt. Der erste Prozessor ist so konfiguriert, dass er nach dem Ausschalten des Fahrzeugs in einen Energiesparmodus wechselt, während der Speicher nach dem Ausschalten des Fahrzeugs weiterhin mit Strom versorgt wird. Der zweite Prozessor ist konfiguriert, um nach dem Ausschalten des Fahrzeugs weiterhin Strom zu empfangen. Nach dem Ausschalten des Fahrzeugs ist der zweite Prozessor als Reaktion auf das Empfangen der Anzeige vom ersten Prozessor konfiguriert, um den ersten Prozessor während des Zeitraums, in dem das Fahrzeug ausgeschaltet bleibt, aus dem Energiesparmodus aufzuwecken. Der erste Prozessor ist ferner konfiguriert, um als Reaktion auf das Aufwecken während der Aufwachzeit und während das Fahrzeug ausgeschaltet bleibt, einen Neustartvorgang durchzuführen, den Speicher neu zuzuweisen und in den Energiesparmodus zurückzukehren, während der Speicher weiterhin mit Strom versorgt wird.
  • In anderen Merkmalen, wenn das Fahrzeug nach dem Neustartvorgang eingeschaltet wird, ist der erste Prozessor konfiguriert, um das Teilsystem basierend auf Daten zu steuern, die im Speicher vorhanden sind, bevor das Fahrzeug eingeschaltet wird. Alternativ oder ergänzend ist der erste Prozessor konfiguriert, um beim Einschalten des Fahrzeugs nach dem Neustartvorgang aus dem Energiesparmodus aufzuwachen und das Teilsystem ohne Neustart unter Verwendung des Speichers zu steuern. Alternativ oder ergänzend ist der erste Prozessor konfiguriert, um das Teilsystem ohne Neustart zu steuern, wenn das Fahrzeug nach dem Neustartvorgang eingeschaltet wird.
  • In anderen Merkmalen, wenn das Fahrzeug vor dem Neustartvorgang eingeschaltet wird, ist der erste Prozessor konfiguriert, um die Speicherzuweisung von einem vorherigen Neustartvorgang nicht zu ändern und ohne Neustart und unter Verwendung des Inhalts des Speichers vor dem Einschalten des Fahrzeugs fortzufahren.
  • In anderen Merkmalen, wenn das Fahrzeug vor dem Neustartvorgang eingeschaltet wird, ist der erste Prozessor zum Ausführen von Programmen basierend auf einer Speicherzuweisung konfiguriert, die bei einem vorherigen Neustartvorgang durchgeführt wurde.
  • In anderen Merkmalen, wenn das Fahrzeug nach dem Neustart eingeschaltet wird, steht das Teilsystem innerhalb einer kürzeren Zeit zur Verfügung, als wenn der erste Prozessor nach dem Einschalten des Fahrzeugs neu gestartet wird.
  • In anderen Merkmalen ist der erste Prozessor konfiguriert, um eine Nutzung des zugewiesenen Speicherabschnitts seit einem vorherigen Neustartvorgang zu überwachen. Der erste Prozessor ist konfiguriert, um zu bestimmen, ob der Neustartvorgang während der Zeitdauer basierend auf der Verwendung des zugewiesenen Speicherabschnitts durchgeführt werden soll. Der erste Prozessor ist konfiguriert, um die Anzeige basierend auf dem Bestimmen, ob der Neustartvorgang während der Zeitdauer basierend auf der Verwendung des zugeordneten Speicherabschnitts durchgeführt werden soll, zu erzeugen.
  • In anderen Merkmalen ist der erste Prozessor konfiguriert, um eine Nutzung des zugeordneten Speicherabschnitts während einer Zeitdauer zu bestimmen, für die der erste Prozessor ohne Neustart arbeitet. Der erste Prozessor ist konfiguriert, um zu bestimmen, ob der Neustartvorgang während der Zeitdauer basierend auf der Verwendung des zugeordneten Speicherabschnitts durchgeführt werden soll.
  • In anderen Merkmalen ist der erste Prozessor als Reaktion auf den Neustartvorgang konfiguriert, um den Speicher zu initialisieren, Programme zum Ausführen durch den ersten Prozessor in den Speicher zu laden und Teile des Speichers den Programmen zuzuweisen.
  • In noch weiteren Merkmalen umfasst ein Verfahren das Steuern eines Teilsystems eines Fahrzeugs unter Verwendung eines ersten Prozessors, eines zweiten Prozessors und eines Speichers. Das Verfahren umfasst ferner das Zuweisen eines Teils des Speichers unter Verwendung des ersten Prozessors beim Hochfahren, um Vorgänge zum Steuern des Teilsystems auszuführen. Das Verfahren umfasst ferner das Erzeugen einer Anzeige unter Verwendung des ersten Prozessors, wenn eine Speichermenge, die aus dem zugewiesenen Teil des Speichers verwendet wird, größer oder gleich einem Schwellenwert ist. Das Verfahren umfasst ferner das Überwachen von Zeiten, in denen das Fahrzeug ein- und ausgeschaltet wird, unter Verwendung des ersten Prozessors; und das Bestimmen, unter Verwendung des ersten Prozessors, basierend auf den Zeiten, einer Dauer, in der das Fahrzeug ausgeschaltet bleibt. Das Verfahren umfasst ferner das Betreiben des ersten Prozessors in einem Energiesparmodus, nachdem das Fahrzeug ausgeschaltet wurde, das Fortsetzen der Stromversorgung des Speichers, nachdem das Fahrzeug ausgeschaltet wurde, und das Fortsetzen der Stromversorgung des zweiten Prozessors, nachdem das Fahrzeug ausgeschaltet wurde. Nach dem Ausschalten des Fahrzeugs als Reaktion auf das Empfangen der Anzeige vom ersten Prozessor umfasst das Verfahren ferner das Aufwecken des ersten Prozessors aus dem Energiesparmodus während der Zeitdauer, in der das Fahrzeug ausgeschaltet bleibt. Das Verfahren umfasst ferner als Reaktion auf das Aufwachen während der Zeitdauer und während das Fahrzeug ausgeschaltet bleibt, das Durchführen eines Neustarts unter Verwendung des ersten Prozessors, das Neuzuweisen des Speichers unter Verwendung des ersten Prozessors und das Zurückführen des ersten Prozessors in den Energiesparmodus, während der Speicher weiterhin mit Strom versorgt wird.
  • In anderen Merkmalen, wenn das Fahrzeug nach dem Neustartvorgang eingeschaltet wird, umfasst das Verfahren ferner das Steuern des Teilsystems unter Verwendung des ersten Prozessors basierend auf Daten, die im Speicher vorhanden sind, bevor das Fahrzeug eingeschaltet wird.
  • In anderen Merkmalen, wenn das Fahrzeug nach dem Neustartvorgang eingeschaltet wird, umfasst das Verfahren ferner das Aufwecken des ersten Prozessors aus dem Energiesparmodus und das Steuern des Teilsystems mit dem ersten Prozessor und dem Speicher ohne Neustart.
  • In anderen Merkmalen, wenn das Fahrzeug nach dem Neustartvorgang eingeschaltet wird, umfasst das Verfahren ferner das Steuern des Teilsystems mit dem ersten Prozessor und dem Speicher ohne Neustart.
  • In anderen Merkmalen, wenn das Fahrzeug vor dem Neustartvorgang eingeschaltet wird, umfasst das Verfahren ferner das Ändern der Speicherzuweisung aus einem vorherigen Neustartvorgang und das Fortsetzen des Betriebs des ersten Prozessors ohne Neustart und unter Verwendung des Inhalts des Speichers vor dem Einschalten des Fahrzeugs.
  • In anderen Merkmalen, wenn das Fahrzeug vor dem Neustartvorgang eingeschaltet wird, umfasst das Verfahren ferner das Ausführen von Programmen mit dem ersten Prozessor basierend auf einer Speicherzuweisung, die bei einem vorherigen Neustartvorgang durchgeführt wurde.
  • In anderen Merkmalen, wenn das Fahrzeug nach dem Neustart eingeschaltet wird, umfasst das Verfahren ferner das Bereitstellen des Teilsystems innerhalb einer kürzeren Zeit, als wenn der erste Prozessor nach dem Einschalten des Fahrzeugs neu gestartet wird.
  • In anderen Merkmalen umfasst das Verfahren ferner das Überwachen der Verwendung des zugewiesenen Speicherabschnitts unter Verwendung des ersten Prozessors seit einem vorherigen Neustartvorgang. Das Verfahren umfasst ferner das Bestimmen unter Verwendung des ersten Prozessors, ob der Neustartvorgang während der Zeitdauer basierend auf der Verwendung des zugewiesenen Speicherabschnitts durchgeführt werden soll. Das Verfahren umfasst ferner das Erzeugen unter Verwendung des ersten Prozessors, basierend auf dem Bestimmen, ob der Neustartvorgang während der Zeitdauer basierend auf der Verwendung des zugewiesenen Speicherabschnitts durchgeführt werden soll.
  • In anderen Merkmalen umfasst das Verfahren ferner das Bestimmen der Verwendung des zugewiesenen Speicherabschnitts unter Verwendung des ersten Prozessors während einer Zeit, in welcher der erste Prozessor ohne Neustart arbeitet. Das Verfahren umfasst ferner das Bestimmen unter Verwendung des ersten Prozessors, ob der Neustartvorgang während der Zeitdauer basierend auf der Verwendung des zugewiesenen Speicherabschnitts durchgeführt werden soll.
  • In anderen Merkmalen umfasst das Verfahren ferner als Reaktion auf den Neustartvorgang das Verwenden des ersten Prozessors, das Initialisieren des Speichers, das Laden von Programmen in den Speicher zum Ausführen durch den ersten Prozessor und das Zuweisen von Speicherabschnitten zu den Programmen.
  • Weitere Anwendungsbereiche der vorliegenden Offenbarung ergeben sich aus der ausführlichen Beschreibung, den Ansprüchen und den Zeichnungen. Die ausführliche Beschreibung und die spezifischen Beispiele dienen lediglich der Veranschaulichung und schränken den Umfang der Offenbarung nicht ein.
  • Figurenliste
  • Die vorliegende Offenbarung wird verständlicher unter Zuhilfenahme der ausführlichen Beschreibung und der zugehörigen Zeichnungen, worin gilt:
    • 1 ist ein Funktionsblockdiagramm eines elektronischen Steuergeräts (ECU) zum Betreiben eines Teilsystems eines Fahrzeugs gemäß der vorliegenden Offenbarung; und
    • 2 ein Flussdiagramm eines Verfahrens zum Betreiben des ECU gemäß der vorliegenden Offenbarung.
  • In den Zeichnungen werden dieselben Bezugszeichen für ähnliche und/oder identische Elemente verwendet.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Typischerweise werden die elektronischen Steuergeräte (ECUs) heruntergefahren und ausgeschaltet, wenn ein Fahrzeug ausgeschaltet wird. Die ECUs werden eingeschaltet und neu gestartet, wenn das Fahrzeug eingeschaltet wird. Die Zeit, die ein ECU benötigt, um nach dem Einschalten des Fahrzeugs neu zu starten (auch Kaltstart genannt), kann je nach Komplexität des durch das ECU gesteuerten Systems variieren. So kann beispielsweise ein Infotainmentsystem des Fahrzeugs verschiedene Arten von Radios (z. B. AM/FM, Satellit usw.), ein Navigationssystem, ein Multimediasystem usw. beinhalten. Dementsprechend kann das ECU, welches das Infotainmentsystem steuert, komplexe Hardware und Software beinhalten, die im Vergleich zu einem ECU, das ein relativ weniger komplexes System steuert, einen relativ langen Neustart erfordern können.
  • Anstatt das ECU bei jedem Einschalten des Fahrzeugs neu zu starten (d.h. anstatt das ECU beim Einschalten des Fahrzeugs kalt zu starten), kann das ECU mit dem folgenden Verfahren schnell in einen stabilen Zustand versetzt werden, in dem das ECU beim Einschalten des Fahrzeugs betriebsbereit ist. Insbesondere wenn das Fahrzeug ausgeschaltet ist, wird das ECU nicht heruntergefahren und nicht ausgeschaltet. Stattdessen wird das ECU in einen Suspend-Modus versetzt, in dem der/die Prozessor(en) des ECU ausgeschaltet oder in einen Energiesparmodus versetzt werden, während der flüchtige Speicher (z. B. RAM) des ECU für einen bestimmten Zeitraum nicht ausgeschaltet (d. h. nicht abgeschaltet) wird. Infolgedessen bleibt der Inhalt des flüchtigen Speichers, der Code und Daten beinhaltet, die beim Hochfahren des ECU geladen werden, für diese Zeitspanne erhalten. Diese Betriebsart des ECU, bei welcher der/die Prozessor(en) des ECU ausgeschaltet oder in einen Energiesparmodus versetzt werden, während der flüchtige Speicher (z. B. RAM) des ECU für einen bestimmten Zeitraum nicht ausgeschaltet (d. h. nicht abgeschaltet) wird, wird als Suspend-Modus bezeichnet.
  • Wenn das Fahrzeug innerhalb des Zeitraums eingeschaltet wird, in welcher der Inhalt des flüchtigen Speichers erhalten bleibt, ist der Neustart des ECU unnötig und kann übersprungen werden, da der Code und die Daten für den Betrieb des ECU bereits im flüchtigen Speicher vorhanden sind. Daher werden anstelle des Kaltstarts des ECU nur die Prozessoren des ECU eingeschaltet oder aus dem Energiesparmodus in den normalen Betriebsmodus gebracht, und das ECU geht in den stabilen Zustand über, wodurch es wesentlich schneller einsatzbereit ist als bei einem Neustart des ECU (d. h. zum Kaltstart). Dementsprechend entfällt durch den Betrieb der ECUs im Suspend-Modus der Neustart oder Kaltstart der ECUs beim Einschalten des Fahrzeugs innerhalb des Zeitraums, in welcher der Inhalt des flüchtigen Speichers erhalten bleibt; nach dem Einschalten des Fahrzeugs wird das ECU ohne Neustart oder Kaltstart viel schneller betriebsbereit (d. h. einsatzbereit).
  • Das Wegfallen des Neustarts des ECU verhindert jedoch auch das Spülen oder Zurücksetzen (d. h. Initialisieren und Zuweisen) des flüchtigen Speichers im ECU, was typischerweise der Fall ist, wenn das ECU nach dem Einschalten des Fahrzeugs kalt gestartet (d. h. hochgefahren) wird. Während des Spülens oder Zurücksetzens des flüchtigen Speichers beim Kaltstart werden Teile des flüchtigen Speichers verschiedenen Teilen des Codes zugewiesen, der vom ECU ausgeführt wird. Wenn der Suspend-Modus verwendet wird und das Fahrzeug ohne Neustart eingeschaltet wird, wird der Code im flüchtigen Speicher weiterhin mit der beim letzten Neustart durchgeführten Speicherzuweisung ausgeführt. Während der Code beim Einschalten des Fahrzeugs weiterhin ausgeführt wird, nimmt die Speichernutzung (d. h. die Nutzung des zugewiesenen Speichers) weiter zu. Da die Speicherzuweisung erst beim nächsten Neustart zurückgesetzt wird, kann diese Zunahme der Speichernutzung (d. h. die Reduzierung des verfügbaren zugewiesenen Speichers) schließlich zu einem Mangel an verfügbarem zugewiesenem Speicher führen, was zu einer Behinderung beim Ausführen des Codes führen kann. In einigen ECUs kann der Mangel an verfügbarem Speicher zu potenziell instabilen Bedingungen führen, bei denen der Betrieb eines oder mehrerer von den ECUs gesteuerten Teilsysteme unzuverlässig werden kann.
  • Die vorliegende Offenbarung schlägt Systeme und Verfahren zum Beseitigen des Problems des zunehmenden Speicherverbrauchs vor, der potenziell instabile Bedingungen verursacht, die beim Betrieb der ECUs im Suspend-Modus auftreten können. Insbesondere schlägt die vorliegende Offenbarung Systeme und Verfahren zum Überwachen der Fahrzeugnutzung vor, um einen optimalen Zeitpunkt zu bestimmen, zu dem das Fahrzeug ungenutzt ist, um den Speicherverbrauch während der Betriebszeit der ECUs zu überwachen, um zu bestimmen, ob die ECUs neu gestartet werden sollen, um die ECUs während des optimalen Zeitpunkts neu zu starten und um die ECUs in den Suspend-Modus zu versetzen. Da der Neustart der ECUs durchgeführt wird, während das Fahrzeug nicht verwendet wird, ist der Benutzer des Fahrzeugs nicht über den Neustartvorgang informiert, und der Betrieb des Fahrzeugs wird durch den Neustartvorgang nicht beeinträchtigt. Weiterhin sind beim Einschalten des Fahrzeugs der flüchtige Speicher und dessen Inhalt mit der gewünschten Speicherzuweisung einsatzbereit, ohne einen Neustart nach dem Einschalten des Fahrzeugs durchzuführen, wobei sich die ECUs in einem stabilen Betriebs- und Nutzungszustand befinden.
  • 1 zeigt ein Beispiel einer Vielzahl von ECUs, die über einen CAN-Bus in einem Fahrzeug 100 miteinander verbunden sind. Die Vielzahl von ECUs beinhaltet ECU-1 102-1, ECU-2 102-2, ..., ECU-N 102-N (zusammen ECUs 102), wobei N eine ganze Zahl größer als eins ist. Im Folgenden bezieht sich das ECU 102 auf eine beliebige der Vielzahl von ECUs 102. Obwohl 1 ein ausführliches Funktionsblockdiagramm nur des ECU-2 102-2 darstellt, versteht es sich, dass andere ECUs 102 ähnlich aufgebaut sein können wie das ECU-2 102-2. Jedes ECU 102 oder ein Teil desselben kann als ein oder mehrere Module implementiert werden.
  • Jedes ECU 102 steuert ein entsprechendes Teilsystem des Fahrzeugs 100. So steuert beispielsweise das ECU-1 102-1 ein Teilsystem 104-1, das ECU-2 102-2 steuert ein Teilsystem 104-2, .., und das ECU-2 102-N steuert ein Teilsystem 104-N. Zusammenfassend werden die Teilsysteme 104-1, 104-2, ..., 104-N als Teilsysteme 104 bezeichnet. Beispiele für die Teilsysteme 104 beinhalten unter anderem ein Infotainment-Teilsystem, ein Motorsteuerungs-Teilsystem, ein Getriebesteuerungs-Teilsystem, ein Bremssteuerungs-Teilsystem, ein abgasgesteuertes Teilsystem, ein Traktionssteuerungs-Teil system, ein Aufhängungssteuerungs-Teilsystem, ein Klimasteuerungs-Teilsystem, ein Sicherheits-Teilsystem und so weiter. Jedes Teilsystem 104 kann einen oder mehrere Sensoren beinhalten, um Daten von einer oder mehreren Komponenten des Teilsystems zu erfassen. Jedes Teilsystem 104 kann einen oder mehrere Stellglieder beinhalten, um eine oder mehrere Komponenten des Teilsystems zu betätigen.
  • Ein ECU 102 kann Daten von einem oder mehreren Sensoren eines entsprechenden Teilsystems 104 empfangen. Abhängig von der Art des ECU kann das ECU 102 auch eine oder mehrere Eingaben von einem Insassen des Fahrzeugs 100 empfangen. Das ECU 102 kann ein oder mehrere Stellglieder des entsprechenden Teilsystems 104 basierend auf den von einem oder mehreren Sensoren empfangenen Daten und/oder den einen oder mehreren Eingaben von einem Insassen des Fahrzeugs 100 steuern.
  • Die ECUs 102 sind mit einem CAN-Bus 106 verbunden. Die ECUs 102 können über den CAN-Bus 106 miteinander kommunizieren. Die ECUs 102 können mit anderen Vorrichtungen kommunizieren, die mit dem CAN-Bus 106 verbunden sind. Jedes ECU 102 beinhaltet einen Mikrocontroller 110 und einen CAN-Sender-Empfänger 112. Der Mikrocontroller 110 kommuniziert mit dem vom ECU 102 gesteuerten Teilsystem 104. Der CAN-Sender-Empfänger 112 kommuniziert mit dem CAN-Bus 106.
  • Der Mikrocontroller 110 beinhaltet einen ersten Prozessor 120, einen zweiten Prozessor 122, einen Speicher 124, eine CAN-Steuerung 126 und eine Stromversorgung 128. Die Stromversorgung 128 versorgt alle Komponenten des Mikrocontrollers 110 und des ECU 102 mit Strom. Die CAN-Steuerung 126 kommuniziert mit dem CAN-Sender-Empfänger 112. Der erste Prozessor 120, der zweite Prozessor 122 und der Speicher 124 kommunizieren über einen Bus 130 miteinander. Der erste Prozessor 120 und der zweite Prozessor 122 führen den im Speicher 124 gespeicherten Code aus, um das Teilsystem 104 zu steuern.
  • Der Speicher 124 beinhaltet einen flüchtigen Speicher (RAM) und kann zusätzlich einen nichtflüchtigen Speicher (z. B. Flash-Speicher) und/oder eine andere Art von Datenspeichervorrichtung(en) beinhalten. Der Speicher 124 wird zum Speichern von Code verwendet, der von dem ersten Prozessor 120 und dem zweiten Prozessor 122 ausgeführt wird. So kann beispielsweise der Code im nichtflüchtigen Speicher gespeichert werden, und der Code (oder ein Teil des Codes) kann in den flüchtigen Speicher geladen werden, wenn das ECU 102 hochfährt (z. B. wenn das Fahrzeug 100 eingeschaltet wird; oder wenn das Fahrzeug 100 ausgeschaltet wird, unter Verwendung des nachfolgend beschriebenen erfinderischen Verfahrens). Alternativ oder ergänzend kann der Speicher 124 über den CAN-Bus 106 den Code von anderen Quellen empfangen. Der Einfachheit halber bezieht sich der Speicher 124 während des gesamten Restes der vorliegenden Offenbarung auf den flüchtigen Abschnitt des Speichers 124, der eine Stromversorgung erfordert, um die darin gespeicherten Daten zu speichern.
  • Der erste Prozessor 120 führt den Code zum Steuern des Teilsystems 104 aus. Wenn das ECU 102 hochfährt, werden Abschnitte des Speichers 124 den Abschnitten des durch den ersten Prozessor 120 ausgeführten Codes zugewiesen. Die Speicherzuweisung zeigt Mengen des Speichers 124 an, die den Abschnitten des Codes zugewiesen sind. Während der erste Prozessor 120 den Code ausführt, verbrauchen die Abschnitte des Codes wieder die jeweils zugewiesenen Abschnitte des Speichers 124. Da der Verbrauch des zugewiesenen Speichers 124 über einen Schwellenwert hinausgeht, ist es möglich, dass das ECU 102 nicht in der Lage ist, das Teilsystem 104 zuverlässig zu steuern, und das ECU 102 muss möglicherweise neu gestartet werden, um den Speicher 124 zu initialisieren und die Speicherzuweisung zurückzusetzen. Nachdem der Speicher 124 initialisiert und die Speicherzuweisung zurückgesetzt wurde (d. h. der Speicher 124 wird neu zugewiesen), kann der erste Prozessor 120 das Teilsystem 104 wieder zuverlässig steuern.
  • Der erste Prozessor 120 erkennt (z. B. durch die über den CAN-Bus 106 empfangenen Daten), wenn das Fahrzeug 100 ein- und ausgeschaltet wird. Die Stromversorgung 128 versorgt alle Komponenten des Mikrocontrollers 110 mit Strom, wenn das Fahrzeug 100 eingeschaltet ist. Die Stromversorgung 128 versorgt einige Komponenten des Mikrocontrollers 110 nach dem Abschalten des Fahrzeugs 100 nur begrenzt mit Strom. So versorgt beispielsweise die Stromversorgung 128 den Speicher 124 für einen vorbestimmten Zeitraum (z. B. einige Stunden oder Tage), nachdem das Fahrzeug 100 ausgeschaltet wurde, mit einer normalen Stromversorgung (d. h. einer beim Einschalten des Fahrzeugs 100 empfangenen Leistung). Dementsprechend werden der Code und die Daten, die im Speicher 124 vorhanden sind, wenn das Fahrzeug 100 ausgeschaltet wird, im Speicher 124 für die vorbestimmte Zeitspanne nach dem Ausschalten des Fahrzeugs 100 beibehalten (d. h. gehalten oder beibehalten).
  • Der erste Prozessor 120 kann abgeschaltet (d. h. ausgeschaltet) werden, wenn das Fahrzeug 100 ausgeschaltet ist. Alternativ kann der erste Prozessor 120, anstatt ausgeschaltet zu werden, für die vorgegebene Zeitspanne nach dem Ausschalten des Fahrzeugs 100 in einem Energiesparmodus (d. h. einem Modus mit niedriger Leistung) betrieben werden. Im Energiesparmodus kann der erste Prozessor 120 weniger als die normale Leistung erhalten (d. h. weniger als die Menge der beim Einschalten des Fahrzeugs 100 empfangenen Leistung). Der zweite Prozessor 122 empfängt für die vorbestimmte Zeitspanne nach dem Ausschalten des Fahrzeugs 100 weiterhin die normale Leistung (d. h. die beim Einschalten des Fahrzeugs 100 empfangene Leistung).
  • Wenn das Fahrzeug 100 innerhalb der vorgegebenen Zeitspanne eingeschaltet wird, kann nur der erste Prozessor 120 eingeschaltet werden (oder den Energiesparmodus verlassen), da der Speicher 124 und der zweite Prozessor 122 bereits während der vorgegebenen Zeitspanne eine normale Leistung empfangen. Dementsprechend kann der erste Prozessor 120 mit dem Ausführen des im Speicher 124 verfügbaren Codes beginnen, sobald (d. h. ohne erkennbare Verzögerung nach dem Einschalten) das Fahrzeug 100 eingeschaltet wird, und das Teilsystem 104 kann den Betrieb aufnehmen.
  • Dieses Merkmal (d. h. die Fähigkeit des ersten Prozessors 120, mit dem Ausführen des im Speicher 124 verfügbaren Codes zu beginnen, sobald das Fahrzeug 100 eingeschaltet wird) kann für den Betrieb vieler der Teilsysteme 104 vorteilhaft sein. Aufgrund dieses Merkmals kann das Infotainment- Teilsystem, sobald das Fahrzeug 100 eingeschaltet, beispielsweise mit der Ausgabe von Daten beginnen (z. B. Musik abspielen, Karte anzeigen usw.); das Sicherheitsteilsystem kann mit der Ausgabe von Daten beginnen (z. B. Anzeigedaten von einer Rückfahrkamera, um den Rückwärts- oder Sicherungsbetrieb des Fahrzeugs 100 zu erleichtern); und so weiter.
  • Wenn das Fahrzeug 100 nicht innerhalb der vorgegebenen Zeitspanne eingeschaltet wird, werden alle Komponenten des ECU 102 ausgeschaltet (d. h. abgeschaltet). Daraufhin wird beim Einschalten des Fahrzeugs 100 das ECU 102 neu gestartet (d. h. alle Komponenten des ECU 102 werden eingeschaltet), der Code wird in den Speicher 124 neu geladen und der Speicher 124 wird neu zugewiesen. Jedes Teilsystem 104 wartet, bis das jeweilige ECU 102 den Neustart abgeschlossen hat und ist nach dem Hochfahren des jeweiligen ECU 102 betriebsbereit.
  • Der Neustart des ECU 102 und die daraus resultierende Verzögerung, mit der die Teilsysteme 104 stabil, verwendbar und betriebsbereit werden, sowie die Möglichkeit eines unzuverlässigen/unsicheren Betriebs des ECU 102 aufgrund von Speicherausfällen (d. h. einer Speicherausnutzung über einem Schwellenwert) können wie folgt eliminiert werden. Der erste Prozessor 120 kann Zeiten überwachen, in denen das Fahrzeug 100 ein- und ausgeschaltet wird. Mit anderen Worten kann der erste Prozessor 120 die Nutzung des Fahrzeugs 100 überwachen. Basierend auf den überwachten Zeiten und der Nutzung des Fahrzeugs 100 kann der erste Prozessor 120 eine optimale Tageszeit bestimmen, zu der das Fahrzeug 100 höchstwahrscheinlich nicht genutzt wird (z. B. von Mitternacht bis 3 Uhr morgens). Mit anderen Worten kann der erste Prozessor 120 basierend auf den überwachten Zeiten und der Nutzung des Fahrzeugs 100 einen optimalen Zeitraum bestimmen, in dem das Fahrzeug 100 ausgeschaltet bleibt.
  • Darüber hinaus kann der erste Prozessor 120 die Nutzung des zugewiesenen Speichers (d. h. die Speichernutzung) nach einem Boot-Vorgang (d. h. vor dem Neustart) überwachen. Basierend auf der überwachten Speichernutzung (d. h. basierend auf der Verwendung des zugeordneten Abschnitts des Speichers 124) kann der erste Prozessor 120 bestimmen, ob ein Neustart während des optimalen Zeitraums zum Zurücksetzen (d. h. Initialisieren) und Neuzuweisen des Speichers 124 durchgeführt werden soll. Der erste Prozessor 120 kann eine Anzeige erzeugen, wenn eine Speichermenge, die aus dem zugewiesenen Abschnitt des Speichers 124 verwendet wird, größer oder gleich einem Schwellenwert ist. Der erste Prozessor 120 kann die Speichernutzung überwachen und die Anzeige erzeugen, während er im Normalmodus arbeitet, wenn das Fahrzeug 100 in Betrieb ist, sowie während er im Energiesparmodus während der vorbestimmten Zeitspanne nach dem Ausschalten des Fahrzeugs 100 arbeitet.
  • Wenn der erste Prozessor 120 basierend auf der überwachten Speichernutzung bestimmt, dass die Menge an Speicher, die aus dem zugewiesenen Abschnitt des Speichers 124 verwendet wird, größer als oder gleich einem Schwellenwert ist, sendet der erste Prozessor 120 die Anzeige an den zweiten Prozessor 122. Darüber hinaus sendet der erste Prozessor 120 die optimale Zeitspanne, in der das Fahrzeug 100 ausgeschaltet bleibt, an den zweiten Prozessor 122.
  • Nachdem das Fahrzeug 100 aufgrund der Speichernutzungsanzeige ausgeschaltet wurde, schaltet der zweite Prozessor 122 den ersten Prozessor 120 während des optimalen Zeitraums, in dem das Fahrzeug 100 ausgeschaltet bleibt, ein (oder weckt diesen aus dem Energiesparmodus auf). Der erste Prozessor 120 schaltet sich ein (oder wacht aus dem Energiesparmodus auf) und führt eine geordnete Abschaltung des ECU 102 durch und startet das ECU 102 während des optimalen Zeitraums, in dem das Fahrzeug 100 ausgeschaltet bleibt, neu. Nach dem Neustart des ECU 102 schaltet sich der erste Prozessor 120 aus oder arbeitet im Energiesparmodus, und die Stromversorgung des Speichers 124 bleibt erhalten (d. h. bleibt eingeschaltet).
  • Während des Neustarts initialisiert der erste Prozessor 120 den Speicher 124, lädt den Code in den Speicher 124 zum Ausführen durch den ersten Prozessor 120, wenn das Fahrzeug 100 anschließend eingeschaltet wird, und weist Abschnitte des Speichers 124 den Abschnitten des Codes neu zu. Mit anderen Worten wird der Speicher 124 durch den Neustartvorgang zurückgesetzt, und der erste Prozessor 120 weist den Speicher 124 nach dem Neustartvorgang neu zu. Weiterhin wird jeder Code, der durch den ersten Prozessor 120 ausgeführt werden soll, nach dem späteren Einschalten des Fahrzeugs 100, nach dem Neustartvorgang neu in den Speicher 124 geladen und ist bereit zum Ausführen durch den ersten Prozessor 120, wenn das Fahrzeug 100 eingeschaltet ist.
  • Wenn das Fahrzeug 100 anschließend eingeschaltet wird, muss nur der erste Prozessor 120 eingeschaltet werden (oder den Energiesparmodus verlassen und in den Normalmodus wechseln, in dem er die normale Leistung bezieht), da der Speicher 124 bereits eingeschaltet, neu zugewiesen und mit Code und Daten geladen ist, die zum Steuern des Teilsystems 104 erforderlich sind. Dementsprechend kann das Teilsystem 104 sofort und ohne Verzögerung mit dem Betrieb beginnen, der normalerweise mit einem Boot-Vorgang verbunden ist und der üblicherweise beim Einschalten des Fahrzeugs 100 stattfindet. Wenn somit das Fahrzeug 100 nach dem Neustart während des optimalen Zeitraums, in dem das Fahrzeug 100 ausgeschaltet bleibt, eingeschaltet wird, steht das Teilsystem 104 zur Verwendung zur Verfügung oder ist schneller betriebsbereit als beim Neustart (d. h. Kaltstart) des ECU 102 nach dem Einschalten des Fahrzeugs 100.
  • Des Weiteren kann das ECU 102, da der Speicher 124 während des Neustarts initialisiert und neu zugewiesen wird, während das Fahrzeug 100 ausgeschaltet bleibt, mit dem neu zugewiesenen Speicher 124 zuverlässig arbeiten, sobald das Fahrzeug 100 eingeschaltet wird. Dadurch wird die Möglichkeit eines unzuverlässigen/unsicheren Betriebs des ECU 102 aufgrund von Speicherausfällen (d. h. Speichernutzung über einem Schwellenwert) ausgeschlossen, die ohne das vorstehende erfinderische Verfahren erfolgen können, wenn das ECU 102 beim Einschalten des Fahrzeugs 100 nicht neu gestartet (d. h. kalt gestartet) wird.
  • Wenn somit das Fahrzeug 100 nach dem Neustart während des optimalen Zeitraums, in dem das Fahrzeug 100 ausgeschaltet bleibt, eingeschaltet wird, steuert der erste Prozessor 120 das Teilsystem 104 ohne Neustart. Wenn das Fahrzeug 100 nach dem Neustart eingeschaltet wird, schaltet sich der erste Prozessor 120 ein oder erwacht aus dem Energiesparmodus und steuert das Teilsystem 104 mit dem Speicher 124 basierend auf dem Code und den Daten, die im Speicher 124 vorhanden sind, bevor das Fahrzeug 100 eingeschaltet wird. In einigen Implementierungen kann der erste Prozessor 120 den Neustartvorgang in jedem Fall innerhalb des optimalen Zeitraums durchführen, in dem das Fahrzeug 100 ausgeschaltet bleibt.
  • Mitunter ist es möglich, dass die Speichernutzung den Schwellenwert beim Ausschalten des Fahrzeugs 100 nicht überschreitet, wodurch der Neustartvorgang nicht während des optimalen Zeitraums durchgeführt wird, in dem das Fahrzeug 100 ausgeschaltet bleibt. Wenn das Fahrzeug 100 vor (oder ohne) dem Durchführen des Neustarts eingeschaltet wird, ändert der erste Prozessor 120 nicht die Zuweisung des Speichers 124 gegenüber einem vorherigen Neustartvorgang. Vielmehr fährt der erste Prozessor 120 ohne Neustart und unter Verwendung des Inhalts des Speichers 124 vor dem Einschalten des Fahrzeugs 100 fort. Wenn das Fahrzeug 100 vor (oder ohne) dem Durchführen des Neustartvorgangs eingeschaltet wird, führt der erste Prozessor 120 den Code basierend auf der bei einem vorherigen Neustartvorgang durchgeführten Speicherzuweisung aus. Während der erste Prozessor 120 den Code weiterhin ausführt, steigt die Nutzung des zugewiesenen Speichers weiter an, und die Menge des verfügbaren Speichers aus dem zugewiesenen Speicher nimmt weiter ab. Wenn die Speichernutzung den Schwellenwert überschreitet, wird ein Neustartvorgang durchgeführt, wie vorstehend beschrieben, und zwar in der nächsten Phase des optimalen Zeitraums, in dem das Fahrzeug 100 ausgeschaltet bleibt.
  • 2 zeigt ein Verfahren 200 zum Betreiben von ECUs (z. B. die ECUs 102 von 1) gemäß der vorliegenden Offenbarung. Die nachstehend erwähnte Steuerung kann durch den Code und/oder eine oder mehrere Komponenten des vorstehend beschriebenen Mikrocontrollers 110 implementiert werden. Bei 202 überwacht die Steuerung die Zeiten, in denen ein Fahrzeug (z. B. das Fahrzeug 100 von 1) verwendet wird und/oder nicht verwendet wird. Bei 204 wählt die Steuerung basierend auf den überwachten Zeiten eine optimale Tageszeit aus, zu der das Fahrzeug höchstwahrscheinlich nicht in Gebrauch ist. Bei 206 überwacht die Steuerung die Speichernutzung des ECU nach dem Neustart des ECU.
  • Bei 208 bestimmt die Steuerung, ob die Speichernutzung größer als oder gleich einem vorbestimmten Schwellenwert ist. Die Steuerung kehrt zu 206 zurück, wenn die Speichernutzung unter dem vorbestimmten Schwellenwert liegt. Wenn bei 210 die Speichernutzung größer als oder gleich dem vorbestimmten Schwellenwert ist, plant die Steuerung einen Neustartvorgang für das ECU während der ausgewählten optimalen Tageszeit. Bei 212 bestimmt die Steuerung, ob die optimale Tageszeit erreicht ist (d. h. eingetroffen ist). Die Steuerung wartet, bis die optimale Tageszeit erreicht ist. Wenn bei 214 die optimale Tageszeit erreicht ist, startet die Steuerung das ECU während der gewählten optimalen Tageszeit neu (d. h. fährt herunter und startet neu).
  • Bei 216 bestimmt die Steuerung, ob der Neustartvorgang abgeschlossen ist. Die Steuerung wartet, bis das ECU neu gestartet wird. Bei 218 versetzt die Steuerung das ECU in den Suspend-Modus, in dem ein oder mehrere Prozessoren des ECU ausgeschaltet oder in den Energiesparmodus geschaltet werden und der Speicher des ECU eingeschaltet bleibt, um dessen Inhalt zu halten.
  • Bei 220 bestimmt die Steuerung, ob das Fahrzeug eingeschaltet ist. Die Steuerung wartet, bis das Fahrzeug eingeschaltet wird. Wenn das Fahrzeug eingeschaltet ist, schaltet die Steuerung bei 222 einen oder mehrere Prozessoren des ECU ein. Bei 224 steuert die Steuerung das ECU unter Verwendung des Inhalts des Speichers, ohne das ECU neu zu starten.
  • Die Lehren der vorliegenden Offenbarung können in eingebetteten ECUs verwendet werden, die nicht automatisch einen vollständigen Abschaltvorgang und Neustart der ECU-Speicherkonfiguration durchführen. Ein Beispiel für die Verwendung wäre in Automotive-Infotainment-ECUs, die Suspend-Technologien (z. B. Suspend-to-RAM) verwenden, um die Startzeit zu verbessern. Das suspendierte ECU erwacht automatisch während einer vordefinierten Zeit, in der erwartet wird, dass das Fahrzeug ausgeschaltet und nicht verwendet wird (z. B. um 3 Uhr morgens) und führt automatisch eine vollständige Abschalt-, Neustart- und Wiedereinschaltsequenz durch, um die Speicherkonfiguration des ECU vollständig in einen bekannten stabilen Zustand zurückzusetzen. Die Sequenz wird zu einem Zeitpunkt ausgeführt, zu dem der Benutzer dies am wenigsten wahrnimmt.
  • Die Aktualisierung erfolgt zu einem Zeitpunkt, zu dem eine hohe Wahrscheinlichkeit besteht, dass sich das Fahrzeug im Leerlauf befindet und das Aktualisierungsereignis vom Benutzer nicht wahrgenommen wird, wobei der Zeitpunkt basierend auf vorherigen Beobachtungen der spezifischen Verhaltensmuster des Benutzers bestimmt wird. Die Aktualisierung wird durch eine Reihe von Speicher- und Betriebszeitheuristiken aktiviert oder ausgelöst, um zu gewährleisten, dass die Aktualisierung nur bei Bedarf durchgeführt wird, um die Systemintegrität zu gewährleisten. Die Systeme und Verfahren der vorliegenden Offenbarung ermöglichen es, Suspend-Technologien in eingebetteten ECUs zu verwenden, um die Startzeit und die wahrgenommene Systemqualität erheblich zu verbessern und gleichzeitig die Risiken der Systeminstabilität, die sich aus der Häufung von Speicherausfällen, Beschädigungen usw. ergeben können, erheblich zu reduzieren oder zu beseitigen.
  • Die vorhergehende Beschreibung ist rein illustrativ und soll die vorliegende Offenbarung sowie ihre Ausführungen oder Verwendungen keineswegs einschränken. Die umfassenden Lehren der Offenbarung können in zahlreichen Formen umgesetzt werden. Obwohl die vorliegende Offenbarung also bestimmte Beispiele beinhaltet, ist der eigentliche Umfang der Offenbarung hierdurch in keiner Weise eingeschränkt, und weitere Modifikationen gehen aus dem Studium der Zeichnungen, der Beschreibung und den folgenden Ansprüchen hervor. Es sei darauf hingewiesen, dass einer oder mehrere Schritte innerhalb eines Verfahrens in anderer Reihenfolge (oder gleichzeitig) ausgeführt werden können, ohne die Prinzipien der vorliegenden Offenbarung zu verändern. Ferner, obwohl jede der Ausführungsformen oben dahingehend beschrieben ist, dass sie bestimmte Merkmale aufweist, kann/können eines oder mehrere dieser Funktionen, die in Bezug auf jede Ausführungsform der Offenbarung beschrieben sind, in jeder der anderen Ausführungsformen implementiert und/oder kombiniert werden, selbst wenn diese Kombination nicht explizit beschrieben wird. Mit anderen Worten ausgedrückt schließen sich die beschriebenen Ausführungsformen nicht gegenseitig aus, und Permutationen von einer oder mehreren Ausführungsformen gegeneinander bleiben innerhalb des Schutzumfangs dieser Offenbarung.
  • Räumliche und funktionale Beziehungen zwischen Elementen (z. B. zwischen Modulen, Schaltkreiselementen, Halbleiterschichten usw.) werden unter Verwendung von verschiedenen Begriffen beschrieben, einschließlich „verbunden“, „eingerastet“, „gekoppelt“, „benachbart“, „neben“, „oben auf“, „über“, „unter“ und „angeordnet“. Sofern nicht ausdrücklich als „direkt“ beschrieben, kann eine Beziehung eine direkte Beziehung sein, wenn eine Beziehung zwischen einem ersten und zweiten Element in der oben genannten Offenbarung beschrieben wird, wenn keine anderen intervenierenden Elemente zwischen dem ersten und zweiten Element vorhanden sind, kann jedoch auch eine indirekte Beziehung sein, wenn ein oder mehrere intervenierende(s) Element(e) (entweder räumlich oder funktional) zwischen dem ersten und zweiten Element vorhanden ist/sind. Wie hierin verwendet, sollte der Satz „zumindest eines von A, B und C“ so zu verstehen sein, dass damit eine Logik gemeint ist (A ODER B ODER C), unter Verwendung eines nicht ausschließlichen logischen ODER, und sollte nicht dahingehend zu verstehen sein, dass gemeint ist „zumindest eines von A, zumindest eines von B und zumindest eines von C.“
  • In den Figuren bezeichnen die Pfeilrichtungen, wie angezeigt, durch die Pfeilspitze im Allgemeinen den Fluss von Informationen (wie Daten oder Befehlen), die im Kontext der Darstellung relevant sind. Wenn beispielsweise Element A und Element B eine Vielzahl von Informationen austauschen, aber die Informationen, die von Element A nach Element B übertragen werden, für die Darstellung relevant sind, kann der Pfeil von Element A nach Element B zeigen. Diese unidirektionalen Pfeile implizieren nicht, dass keine anderen Informationen von Element B nach Element A übertragen werden. Zudem kann Element B im Zusammenhang mit Informationen, die von Element A nach Element B gesendet werden, Anforderungen oder Bestätigungen dieser Informationen zu Element A senden.
  • In dieser Anwendung kann einschließlich der folgenden Definitionen der Begriff „Modul“ oder der Begriff „Steuerung“ ggf. durch den Begriff „Schaltung“ ersetzt werden. Der Begriff „Modul“ kann auf Folgendes verweisen bzw. Teil von Folgendem sein oder Folgendes beinhalten: einen anwendungsspezifischen integrierten Schaltkreis (ASIC); eine digitale, analoge oder gemischt analog/digitale diskrete Schaltung; eine digitale, analoge oder gemischt analog/digitale integrierte Schaltung; eine kombinatorische Logikschaltung; ein feldprogrammierbares Gate-Array (FPGA); eine Prozessorschaltung (gemeinsam genutzt, dediziert oder Gruppe), die Code ausführt; eine Memory-Schaltung (gemeinsam genutzt, dediziert oder Gruppe), die einen von der Prozessorschaltung ausgeführten Code speichert; andere geeignete Hardware-Komponenten, die die beschriebene Funktionalität bereitstellen; oder eine Kombination von einigen oder allen der oben genannten, wie zum Beispiel in einem System-on-Chip.
  • Das Modul kann eine oder mehrere Schnittstellenschaltungen beinhalten. In einigen Beispielen können die Schnittstellenschaltungen kabelgebundene oder -lose Schnittstellen beinhalten, die mit einem lokalen Netzwerk (LAN), dem Internet, einem Weitverkehrsnetz (WAN) oder Kombinationen hier aus verbunden sind. Die Funktionalität der in vorliegender Offenbarung genannten Module kann auf mehrere Module verteilt werden, die über Schnittstellenschaltungen verbunden sind. So können zum Beispiel mehrere Module einen Lastenausgleich zulassen. In einem anderen Beispiel können von einem Servermodul (z. B. Remote-Server oder Cloud) ermittelte Funktionen eines Client-Moduls übernommen werden.
  • Der Ausdruck Code, wie oben verwendet, kann Software, Firmware und/oder Mikrocode beinhalten, und auf Programme, Routinen, Funktionen, Klassen, Datenstrukturen und/oder Objekte verweisen. Der Begriff „gemeinsame Prozessorschaltung“ bezieht sich auf eine einzelne Prozessorschaltung, die ermittelten oder vollständigen Code von mehreren Modulen ausführt. Der Ausdruck „gruppierter Prozessor-Schaltkreis“ bezieht sich auf einen Prozessor-Schaltkreis, der in Kombination mit zusätzlichen Prozessor-Schaltkreisen bestimmten oder vollständigen Code von ggf. mehreren Modulen ausführt. Verweise auf mehrere Prozessorschaltungen umfassen mehrere Prozessorschaltungen auf diskreten Matrizen, mehrere Prozessorschaltungen auf einer einzelnen Scheibe, mehrere Kerne auf einer einzelnen Prozessorschaltung, mehrere Threads einer einzelnen Prozessorschaltung oder eine Kombination der oben genannten. Der Begriff „gemeinsame Memory-Schaltung“ bezieht sich auf eine einzelne Memory-Schaltung, die ermittelten oder vollständigen Code von mehreren Modulen speichert. Der Ausdruck „gruppierte Memory-Schaltung“ bezieht sich auf eine Memory-Schaltung, die in Kombination mit zusätzlichem Speicher ermittelte oder vollständige Codes von ggf. mehreren Modulen speichert.
  • Der Begriff Memory-Schaltung ist dem Begriff computerlesbares Medium untergeordnet. Der Begriff „computerlesbares Medium“, wie er hier verwendet wird, bezieht sich nicht auf flüchtige elektrische oder elektromagnetische Signale, die sich in einem Medium ausbreiten (z. B. im Falle einer Trägerwelle); der Ausdruck „computerlesbares Medium“ ist daher als konkret und nichtflüchtig zu verstehen. Nicht einschränkende Beispiele eines nichtflüchtigen konkreten computerlesbaren Mediums sind nichtflüchtige Memory-Schaltungen (z. B. Flash-Memory-Schaltungen, löschbare programmierbare ROM-Schaltungen oder Masken-ROM-Schaltungen), flüchtige Memory-Schaltungen (z. B. statische oder dynamische RAM-Schaltungen), magnetische Speichermedien (z. B. analoge oder digitale Magnetbänder oder ein Festplattenlaufwerk) und optische Speichermedien (z. B. CD, DVD oder Blu-ray).
  • Die im Rahmen dieser Anmeldung beschriebenen Vorrichtungen und Verfahren können teilweise oder vollständig mit einem speziellen Computer, der für die Ausführung ermittelter Computerprogrammfunktionen konfiguriert ist, implementiert werden. Die Funktionsblöcke, Flussdiagramm-Komponenten und weiter oben beschriebenen Elemente dienen als Softwarespezifikationen, die von entsprechend geschulten Technikern oder Programmierern in Computerprogramme umgesetzt werden können.
  • Die Computerprogramme beinhalten prozessorausführbare Anweisungen, die auf mindestens einem nicht-transitorischen greifbaren computerlesbaren Medium gespeichert sind. Die Computerprogramme können ebenfalls gespeicherte Daten enthalten oder auf gespeicherten Daten basieren. Die Computerprogramme können ein Basic-Input-Output-System (BIOS) umfassen, das mit der Hardware des speziellen Computers zusammenwirkt, Vorrichtungstreiber, die mit ermittelten Vorrichtungen des speziellen Computers, einem oder mehreren Betriebssystemen, Benutzeranwendungen, Hintergrunddiensten, im Hintergrund laufenden Anwendungen usw. zusammenwirken.
  • Die Computerprogramme können Folgendes beinhalten: (i) beschreibenden Text, der gegliedert wird, wie z. B. HTML (Hypertext Markup Language), XML (Extensible Markup Language) oder JSON (JavaScript Object Notation), (ii) Assembler Code, (iii) Objektcode, der von einem Quellcode durch einen Compiler erzeugt wurde, (iv) Quellcode zur Ausführung durch einen Interpreter, (v) Quellcode zur Kompilierung und zur Ausführung durch einen Just-in-Time-Compiler usw. Nur exemplarisch kann der Quellcode mittels der Syntax der Sprachen, einschließlich C, C++, C#, Objective-C, Swift, Haskell, Go, SQL, R, Lisp, Java®, Fortran, Perl, Pascal, Curl, OCaml, Javascript®, HTML5 (Hypertext Markup Language 5. Version), Ada, ASP (Active Server Pages), PHP (PHP: Hypertext Preprocessor), Scala, Eiffel, Smalltalk, Erlang, Ruby, Flash®, Visual Basic®, Lua, AMTLAB, SIMULINK und Python®, geschrieben werden.
  • Keines der in den Ansprüchen genannten Elemente ist als Mittel für eine Funktion (sog. „means plus function“) nach 35 U.S.C. §112(f) zu verstehen, es sei denn, ein Element wird ausdrücklich unter Verwendung des Begriffes „means for“ (Mittel für) beschrieben oder falls in einem Verfahrensanspruch die Begriffe „Vorgang für“ oder „Schritt für“ verwendet werden.

Claims (10)

  1. System zum Steuern eines Teilsystems eines Fahrzeugs, wobei das System Folgendes umfasst: einen Speicher; einen Prozessor, konfiguriert zum: Steuern des Teilsystems des Fahrzeugs; Zuweisen eines Speicherabschnitts beim Hochfahren, um Vorgänge zum Steuern des Teilsystems auszuführen; Erzeugen einer Anzeige, wenn eine Menge an Speicher, die aus dem zugewiesenen Speicherabschnitt verwendet wird, größer als oder gleich einem Schwellenwert ist; Überwachen der Zeiten, in denen das Fahrzeug ein- und ausgeschaltet wird; Bestimmen eines Zeitraums, während der das Fahrzeug ausgeschaltet bleibt, basierend auf den Zeiten; und Eintreten in einen Energiesparmodus nach dem Ausschalten des Fahrzeugs, während der Speicher nach dem Ausschalten des Fahrzeugs weiterhin Strom empfängt; und einen zweiten Prozessor, konfiguriert zum: Fortsetzen des Empfangens von Strom nach dem Abschalten des Fahrzeugs; und nach dem Ausschalten des Fahrzeugs, als Reaktion auf das Empfangen der Anzeige vom ersten Prozessor, Aufwecken des ersten Prozessors aus dem Energiesparmodus während des Zeitraums, in dem das Fahrzeug ausgeschaltet bleibt; worin der erste Prozessor ferner konfiguriert ist, um als Reaktion auf das Erwachen während des Zeitraums und während das Fahrzeug ausgeschaltet bleibt: Ausführen eines Neustarts; Neuzuweisen des Speichers; und wieder eintreten in den Energiesparmodus, während der Speicher weiterhin Strom empfängt.
  2. System nach Anspruch 1, worin, wenn das Fahrzeug nach dem Neustartvorgang eingeschaltet wird, der erste Prozessor konfiguriert ist, um das Teilsystem basierend auf Daten zu steuern, die im Speicher vorhanden sind, bevor das Fahrzeug eingeschaltet wird.
  3. System nach Anspruch 1, worin, wenn das Fahrzeug nach dem Neustartvorgang eingeschaltet wird, der erste Prozessor zum Aufwachen aus dem Energiesparmodus konfiguriert ist, um das Teilsystem unter Verwendung des Speichers ohne Neustart zu steuern.
  4. System nach Anspruch 1, worin, wenn das Fahrzeug nach dem Neustartvorgang eingeschaltet wird, der erste Prozessor konfiguriert ist, um das Teilsystem ohne Neustart zu steuern.
  5. System nach Anspruch 1, worin, wenn das Fahrzeug nach dem Neustartvorgang eingeschaltet wird, der erste Prozessor konfiguriert ist, um: das Zuweisen des Speichers aus einem vorherigen Neustartvorgang nicht zu ändern; und ohne Neustart und unter Verwendung des Speicherinhalts vor dem Einschalten des Fahrzeugs fortzufahren.
  6. System nach Anspruch 1, worin, wenn das Fahrzeug vor dem Neustartvorgang eingeschaltet wird, der erste Prozessor zum Ausführen von Programmen basierend auf einer Speicherzuweisung konfiguriert ist, die bei einem vorherigen Neustartvorgang durchgeführt wurde.
  7. System nach Anspruch 1, worin, wenn das Fahrzeug nach dem Neustart eingeschaltet wird, das Teilsystem innerhalb einer kürzeren Zeit zur Verfügung steht, als wenn der erste Prozessor nach dem Einschalten des Fahrzeugs neu gestartet wird.
  8. System nach Anspruch 1, worin der erste Prozessor weiterhin konfiguriert ist, um: Überwachen einer Nutzung des zugeordneten Speicherabschnitts seit einem vorherigen Neustartvorgang; Bestimmen, ob der Neustartvorgang während des Zeitraums basierend auf der Verwendung des zugewiesenen Speicherabschnitts durchgeführt werden soll; und Erzeugen der Anzeige basierend auf dem Bestimmen, ob der Neustartvorgang während des Zeitraums basierend auf der Verwendung des zugeordneten Speicherabschnitts durchgeführt werden soll.
  9. System nach Anspruch 1, worin der erste Prozessor weiterhin konfiguriert ist, um: eine Nutzung des zugewiesenen Speicherabschnitts während einer Zeit, in welcher der erste Prozessor ohne Neustart arbeitet, zu bestimmen; und zu bestimmen, ob der Neustartvorgang während des Zeitraums durchgeführt werden soll, basierend auf der Verwendung des zugeordneten Speicherabschnitts.
  10. System nach Anspruch 1, worin als Reaktion auf den Neustartvorgang der erste Prozessor konfiguriert ist, um den Speicher zu initialisieren, Programme zum Ausführen durch den ersten Prozessor in den Speicher zu laden und Abschnitte des Speichers den Programmen zuzuweisen.
DE102018132543.6A 2017-12-18 2018-12-17 System und verfahren zum verwalten der systemspeicherintegrität in suspendierten elektronischen steuergeräten Pending DE102018132543A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/845,254 US10353858B2 (en) 2017-12-18 2017-12-18 System and method for managing system memory integrity in suspended electronic control units
US15/845254 2017-12-18

Publications (1)

Publication Number Publication Date
DE102018132543A1 true DE102018132543A1 (de) 2019-06-19

Family

ID=66674492

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018132543.6A Pending DE102018132543A1 (de) 2017-12-18 2018-12-17 System und verfahren zum verwalten der systemspeicherintegrität in suspendierten elektronischen steuergeräten

Country Status (3)

Country Link
US (1) US10353858B2 (de)
CN (1) CN109947232B (de)
DE (1) DE102018132543A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022200754A1 (de) 2022-01-24 2023-07-27 Continental Automotive Technologies GmbH Verfahren zum Erzeugen eines Fähigkeitenprofils einer Recheneinheit

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7210009B2 (en) * 2003-09-04 2007-04-24 Advanced Micro Devices, Inc. Computer system employing a trusted execution environment including a memory controller configured to clear memory
US7089433B2 (en) * 2003-09-26 2006-08-08 Dell Products L.P. Method and system for operating system quiescent state
KR101360705B1 (ko) * 2011-09-22 2014-02-07 기아자동차주식회사 차량 업그레이드 시스템 및 그 방법
US9383801B2 (en) * 2012-12-21 2016-07-05 Advanced Micro Devices, Inc. Methods and apparatus related to processor sleep states
JP6335063B2 (ja) * 2013-08-05 2018-05-30 ハーマン インターナショナル インダストリーズ インコーポレイテッド 車載コンピューティングシステムのためのシステムおよび方法
JP5958445B2 (ja) * 2013-10-23 2016-08-02 株式会社デンソー 車載ネットワークシステム、管理装置
US9983887B2 (en) * 2015-06-05 2018-05-29 Apple Inc. Memory management of data processing systems

Also Published As

Publication number Publication date
US20190188039A1 (en) 2019-06-20
US10353858B2 (en) 2019-07-16
CN109947232B (zh) 2023-06-27
CN109947232A (zh) 2019-06-28

Similar Documents

Publication Publication Date Title
DE102009041723B4 (de) Prozessor-Leistungsverbrauchsteuerung und Spannungsabsenkung über eine Mikroarchitektur-Bandbreitenbegrenzung
DE112005001801B4 (de) Verfahren und Vorrichtung zum dynamischen DLL-Herunterfahren und Speicher-Selbstauffrischen
DE102012017780B4 (de) Standby-Betrieb mit zusätzlichem Mikrocontroller
DE60009218T2 (de) Verwaltung der Energieaufnahme für ein Multimediasystem in einem Kraftfahrzeug
DE69228600T2 (de) Kleinleistungs-rechnerarchitektur und verfahren
DE60016528T2 (de) Leistungssteuerung für Kraftfahrzeug-Rechnersysteme während des Anlassens des Motors
DE10159247A1 (de) Strommanagementfehlerstrategie für Kraftfahrzeugmultimediasysteme
DE112011105867T5 (de) Kollaboratives Prozessor- und Systemleistungs- und Energiemanagement
DE112013001805T5 (de) Verfahren und Gerät zum Verbessern eines Winterschlaf- und Wiederaufnahmeprozesses mittels Benutzerraum-Synchronisation
DE102015107671A1 (de) Steuerung und Diagnose einer Steuerungs-Wakeup-Funktionalität
DE112004001887T5 (de) Optimierung der SMI-Handhabung und -Initialisierung
EP1612648A2 (de) Konfiguration von Bauelementen bei einem Übergang von einem Niedrigleistungs-Betriebsmodus in einen Normalleistungs-Betriebsmodus
DE112019005498T5 (de) Datenverbindung zwischen flüchtigem speicher und nichtflüchtigem speicher
DE102016109892B4 (de) Datenverarbeitungsvorrichtung und Verfahren zum Einsparen von Leistung in einer Datenverarbeitungsvorrichtung
DE112017003052T5 (de) Steuerungssystem mit einer verteilten dienstorientierten Architektur
EP2159667B1 (de) Computersystem und Verfahren zum Energie sparenden Betrieb eines Computersystems
DE102007049577A1 (de) Mikrocomputer, Programm und elektronische Fahrzeugsteuerung
EP3218812A1 (de) Verfahren und speicherverwaltungsvorrichtung zum übertragen von daten innerhalb eines computer-systems, speichersystem und computer-system
DE102018132543A1 (de) System und verfahren zum verwalten der systemspeicherintegrität in suspendierten elektronischen steuergeräten
DE102015200862A1 (de) Elektronische Steuereinheit
DE102017125172A1 (de) Verfahren zur Aktualisierung eines Bootloaders eines Controllers einer Leuchte
DE102004055051B3 (de) Schneller Systemstart für eingebettete Systeme
EP3558753A1 (de) Niedrig-energie-betrieb von kraftfahrzeugfunktionen während des betriebes des kraftfahrzeuges
DE102013202405A1 (de) Verfahren und Vorrichtung zum Betreiben eines modularen Steuersystems
DE102017100118A1 (de) Skalierbares Steuersystem für ein Kraftfahrzeug

Legal Events

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

Representative=s name: MANITZ FINSTERWALD PATENT- UND RECHTSANWALTSPA, DE