-
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.