DE102022206097A1 - Speicherverwaltungsarchitektur - Google Patents

Speicherverwaltungsarchitektur Download PDF

Info

Publication number
DE102022206097A1
DE102022206097A1 DE102022206097.0A DE102022206097A DE102022206097A1 DE 102022206097 A1 DE102022206097 A1 DE 102022206097A1 DE 102022206097 A DE102022206097 A DE 102022206097A DE 102022206097 A1 DE102022206097 A1 DE 102022206097A1
Authority
DE
Germany
Prior art keywords
software component
state manager
manager software
read
nvm
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
DE102022206097.0A
Other languages
English (en)
Inventor
Jiyong Park
Gyeongbin Kong
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.)
Hyundai Motor Co
Kia Corp
Original Assignee
Hyundai Motor Co
Kia Corp
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 Hyundai Motor Co, Kia Corp filed Critical Hyundai Motor Co
Publication of DE102022206097A1 publication Critical patent/DE102022206097A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1008Correctness of operation, e.g. memory ordering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/154Networked environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • G06F2212/173Vehicle or other transportation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7202Allocation control and policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7204Capacity control, e.g. partitioning, end-of-life degradation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Eine Speicherverwaltungsarchitektur umfasst eine Anwendungssoftwarekomponente (ASW), die konfiguriert ist, um einen Algorithmus für mindestens eine Funktion auszuführen und Daten in dem Algorithmus zu übertragen und zu empfangen, eine Basissoftware (BSW) mit einem nichtflüchtigen Speichermanager (NvM), eine Zustandsmanager-Softwarekomponente zur Verwaltung des NvM und eine Laufzeitumgebung, die so konfiguriert ist, dass eine Kommunikation zwischen der ASW und der Zustandsmanager-Softwarekomponente und zwischen der BSW und der Zustandsmanager-Softwarekomponente durchgeführt werden kann, wobei in einem Zustand des Schreibens von Daten in einen von dem NvM verwalteten nichtflüchtigen Speicher oder des Lesens von Daten aus dem nicht flüchtigen Speicher, die Zustandsmanager-Softwarekomponente einen Lese- oder Schreibvorgang auf Grundlage davon, dass eine Anzahl von Lesevorgängen größer oder gleich einer voreingestellten Anzahl von Lesungen ist oder eine Anzahl von Schreibungen größer oder gleich einer voreingestellten Anzahl von Schreibungen ist, beendet.

Description

  • TECHNISCHES GEBIET
  • Die Offenbarung betrifft eine Architektur zur Speicherverwaltung.
  • HINTERGRUND
  • Automotive Open System Architecture (AUTOSAR) ist eine Standardisierungsplattform, um auf die rasante Zunahme des Einsatzes von Embedded Software für Automotive-Elektronikkomponenten zu reagieren, bei der mehrere Automobilhersteller, Fahrzeugkomponentenhersteller, Entwicklungswerkzeuglieferanten, und Halbleiterhersteller teilnehmen.
  • Eine AUTOSAR-konforme Anwendungssoftware wird zu Softwarekomponenten (auch SWC genannt) modularisiert.
  • Eine Softwarekomponente mit gemeinsamen Funktionen basiert auf dem Konzept der Wiederverwendung einer Anwendungssoftware unter Verwendung einer Open Source, ist jedoch auf Plattformsoftware beschränkt.
  • Eine bestehende AUTOSAR-Plattform stellt standardisierte Module einer Service-Schicht, einer elektronischen Steuereinheit (ECU) und einer Mikrocontroller-Abstraktionsschicht entsprechend einer Basissoftware (BSW) bereit. In einer Anwendungsschicht sind die Konfigurationen der Anwendungssoftwarekomponente je nach Entwickler- oder Softwarearchitektur unterschiedlich.
  • Derzeit benötigt eine AUTOSAR-Plattform einen Algorithmus einer Softwarekomponente, um einen nichtflüchtigen Speicher zwischen dem nichtflüchtigen Speicher und der Softwarekomponente zuverlässig und effizient zu verwalten.
  • Genauer gesagt speichert ein nichtflüchtiger Speicher Daten wie Kilometerdaten und Fehlerdiagnosedaten, die auch nach dem Ausschalten eines Fahrzeugs nicht gelöscht werden sollten (Key Off).
  • Aufgrund der Hardwareeigenschaften (HW) des nichtflüchtigen Speichers ist die Anzahl der Lese/Schreibvorgänge begrenzt. Dementsprechend kann die Lebensdauer des nichtflüchtigen Speichers verkürzt werden, wenn viele Lese/Schreibvorgänge unnötig ausgeführt werden, und der nichtflüchtige Speicher kann während des Lebenszyklus des Fahrzeugs ausfallen. In diesem Fall wird die Zuverlässigkeit der Daten von Lese/Schreibvorgängen des nichtflüchtigen Speichers verschlechtert, was zu einem schwerwiegenden Defekt im Fahrzeug führt.
  • Da bei der Lese/Schreibverarbeitung von nicht-flüchtigen Speichern, Informationen durch Funktionsaufrufe zwischen verschiedenen Modulen der AUTOSAR-Software übertragen werden, sind ergänzende Technologien erforderlich, um die Integrität in jedem Prozess zu gewährleisten.
  • ZUSAMMENFASSUNG
  • Die Offenbarung betrifft eine Architektur zur Speicherverwaltung. Besondere Ausführungsformen beziehen sich auf eine Automotive Open System Architecture (AUTOSAR)-basierte Architektur zur Speicherverwaltung. Verschiedene Ausführungsformen beziehen sich auf eine Architektur zum Verwalten eines nichtflüchtigen Speichers (NVM) zwischen dem NVM und einer Softwarekomponente (SWC) einschließlich einer Fahrzeugsteuerungslogik.
  • Eine Ausführungsform der Offenbarung stellt eine Architektur für die Speicherverwaltung bereit, die Lese/Schreibbefehle unter Berücksichtigung einer Lebensdauer des nichtflüchtigem Speichers minimieren kann, komplementäre Logik für einen zuverlässigen Datenaustausch enthält, und als Medium für die Datenübertragung und den Empfang dient.
  • Gemäß einer Ausführungsform der Offenbarung ist eine Architektur zur Speicherverwaltung einschließlich einer Anwendungssoftwarekomponente (ASW), die konfiguriert ist, einen Algorithmus für mindestens eine Funktion auszuführen und Daten im Algorithmus zu übertragen und zu empfangen, einer Basissoftware (BSW) einschließlich eines nichtflüchtigen Speichermanagers (NvM) zum Verwalten eines nichtflüchtigen Speichers, einer Zustandsmanager-Softwarekomponente, die zur Verwaltung des NvM konfiguriert ist, und einer Laufzeitumgebung (RTE)I, die konfiguriert ist, um eine Kommunikation zwischen der ASW- und der Zustandsmanager-Softwarekomponente sowie zwischen der BSW- und der Zustandsmanager-Softwarekomponente durchzuführen, wobei beim Schreiben von Daten an den nicht-flüchtigen Speicher und beim Lesen von Daten aus dem nicht flüchtigen Speicher, die Zustandsmanager-Softwarekomponente so konfiguriert ist, dass sie einen Lesevorgang oder einen Schreibvorgang beendet, basierend auf einer Anzahl von Lesevorgängen, die größer oder gleich einer voreingestellten Anzahl von Malen oder einer Anzahl von Schreibvorgängen größer oder gleich einer voreingestellten Anzahl von Malen ist.
  • Die ASW und die Zustandsmanager-Softwarekomponente werden in einer Anwendungsschicht einer Automotive Open System Architecture (AUTOSAR)-basierten Plattform bereitgestellt.
  • Die Zustandsmanager-Softwarekomponente ist konfiguriert, um einen Vorgang des Lesens von in dem nichtflüchtigen Speicher gespeicherten Daten zu steuern, wenn ein Fahrzeug eingeschaltet wird, und einen Vorgang des Schreibens von Daten in den nichtflüchtigen Speicher zu steuern, wenn das Fahrzeug ausgeschaltet wird.
  • Wenn ein Schreibbefehl empfangen wird, ist die Zustandsmanager-Softwarekomponente so konfiguriert, dass sie eine vorbestimmte Lesefunktion (Rte_Read) aufruft, so dass die in den nichtflüchtigen Speicher zu schreibenden Daten aus der ASW gelesen und die gelesenen Daten in den nichtflüchtigen Speicher geschrieben werden.
  • Wenn die Daten durch die RTE gelesen werden, ist die Zustandsmanager-Softwarekomponente konfiguriert, um festzustellen, ob ein RTE-Fehler auftritt, und wenn festgestellt wird, dass der RTE-Fehler auftritt, um den Schreibvorgang zu beenden.
  • Bei der Steuerung des Schreibvorgangs ist die Zustandsmanager-Softwarekomponente so konfiguriert, dass sie einen Fehlerstatus-Get-Service für einen einzelnen Block aus dem NvM des BSW anfordert.
  • Beim Anfordern des Fehlerstatus-Get-Dienstes ist die Zustandsmanager-Softwarekomponente konfiguriert, um festzustellen, ob ein RTE-Fehler auftritt, und wenn festgestellt wird, dass der RTE-Fehler auftritt, um den Schreibvorgang zu beenden.
  • Bei der Steuerung des Schreibvorgangs ist die Zustandsmanager-Softwarekomponente konfiguriert, um zu bestimmen, ob ein Ergebnis des Fehlerstatus-Get-Dienstes in einem anhängigen Zustand ist, und wenn festgestellt wird, dass das Ergebnis nicht im ausstehenden, d. h. anhängigen, Zustand ist, um einen Schreibblockdienst vom NvM anzufordern, indem die gelesenen Daten als Faktor verwendet werden.
  • Wenn der Schreibblockdienst angefordert wird, ist die Zustandsmanager-Softwarekomponente konfiguriert, um zu bestimmen, ob ein RTE-Fehler auftritt, und wenn festgestellt wird, dass der RTE-Fehler auftritt, um den Schreibvorgang zu beenden, und wenn festgestellt wird, dass sich das Ergebnis im ausstehenden Zustand befindet, um den Schreibvorgang zu beenden.
  • Die Zustandsmanager-Softwarekomponente ist so konfiguriert, dass sie für einen Block, in dem das Schreiben der gelesenen Daten abgeschlossen ist, ein Flag auf „ein“ setzt, und wenn das Schreiben der Daten für alle Blöcke des NvM abgeschlossen ist, Flags initialisiert.
  • Wenn ein Lesen-Ein-Befehl empfangen wird, ist die Zustandsmanager-Softwarekomponente so konfiguriert, dass sie einen Fehlerstatus-Get-Service vom NvM anfordert, um den Status eines einzelnen Blocks des NvM zu überprüfen.
  • Beim Anfordern des Fehlerstatus-Get-Dienstes ist die Zustandsmanager-Softwarekomponente so konfiguriert, dass ermittelt wird, ob ein RTE-Fehler auftritt, und wenn festgestellt wird, dass der RTE-Fehler auftritt, wird der Lesevorgang beendet.
  • Bei der Steuerung des Lesevorgangs ist die Zustandsmanager-Softwarekomponente so konfiguriert, dass sie feststellt, ob sich ein Ergebnis des Fehlerstatus-Get-Service in einem ausstehenden Zustand befindet, wenn festgestellt wird, dass das Ergebnis nicht im ausstehenden Zustand ist, einen Leseblockdienst vom NvM anfordert, und wenn festgestellt wird, dass das Ergebnis im ausstehenden Zustand ist, den Lesevorgang beendet.
  • Wenn ein Leseblockdienst angefordert wird, wird die Zustandsmanager-Softwarekomponente so konfiguriert, dass ermittelt wird, ob der RTE-Fehler auftritt, und wenn festgestellt wird, dass der RTE-Fehler auftritt, wird der Lesevorgang beendet.
  • Die Zustandsmanager-Softwarekomponente ist so konfiguriert, dass sie für einen Block, in dem das Einlesen der Daten abgeschlossen ist, ein Flag auf „ein“ setzt, und wenn das Lesen von Daten für alle Blöcke des NvM abgeschlossen ist, Flags initialisiert.
  • Beim Empfang des Lese-Ein-Befehls ist die ASW so konfiguriert, dass sie eine vorgegebene Lesefunktion (Rte_Read) aufruft und Lesedaten an die ASW überträgt.
  • Die ASW ist so konfiguriert, dass sie die Daten über eine vorgegebene Schreibfunktion (Rte_Write) empfängt und die empfangenen Daten schreibt.
  • Figurenliste
  • Diese und/oder andere Merkmale von Ausführungsformen der Offenbarung werden aus der folgenden Beschreibung der Ausführungsformen, die in Verbindung mit den beigefügten Zeichnungen herangezogen wird, deutlich und leichter zu erkennen sein.
    • 1 ist ein Diagramm, das ein Beispiel einer Architektur einer Automotive Open System Architecture (AUTOSAR)-Plattform veranschaulicht, die eine Architektur für eine Speicherverwaltung gemäß einer Ausführungsform aufweist;
    • 2 ist ein Diagramm, das ein Beispiel einer Architektur für eine Speicherverwaltung gemäß einer Ausführungsform veranschaulicht;
    • 3 ist ein Diagramm, das ein Beispiel für Blöcke in einer Architektur gemäß einer Ausführungsform veranschaulicht;
    • 4A, 4B und 4C sind Flussdiagramme eines Schreibvorgangs einer Architektur zur Speicherverwaltung gemäß einer Ausführungsform; und
    • 5A und 5B sind Flussdiagramme eines Lesevorgangs einer Architektur zur Speicherverwaltung gemäß einer Ausführungsform.
  • DETAILLIERTE BESCHREIBUNG DER ILLUSTRATIVEN AUSFÜHRUNGSFORMEN
  • Gleiche Bezugszeichen bezeichnen in der gesamten Spezifikation ähnliche Elemente. Außerdem beschreibt diese Spezifikation nicht alle Elemente gemäß Ausführungsformen der Offenbarung und Beschreibungen, die im Stand der Technik bekannt sind, auf die die Offenbarung sich bezieht, oder überlappende Abschnitte werden weggelassen. Die Ausdrücke wie „~teil“, „~element“, „~modul“, „~block“ und dergleichen können sich auf mindestens einen Prozess beziehen, der von mindestens einer Hardware oder Software verarbeitet wird. Gemäß Ausführungsformen kann eine Vielzahl von „~teilen“, „~elementen“, „~modulen“, „~blocken“ als einzelnes Element umgesetzt sein, oder ein einzelnes von einem „~teil“, „~element“, „~modul“, „~block“ kann eine Vielzahl von Elementen enthalten.
  • Es versteht sich, dass, wenn ein Element als mit einem anderen Element „verbunden“ bezeichnet wird, es direkt oder indirekt mit dem anderen Element verbunden werden kann, wobei die indirekte Verbindung eine „Verbindung“ über ein drahtloses Kommunikationsnetzwerk umfasst.
  • Es versteht sich, dass der Begriff „enthält“, wenn er in dieser Spezifikation verwendet wird, das Vorhandensein von angegebenen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen und/oder Komponenten angibt, aber das Vorhandensein oder Hinzufügen eines oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Operationen, Elemente, Komponenten und/oder Gruppen davon nicht ausschließt.
  • Es versteht sich, dass, obwohl die Begriffe erste, zweite usw. hier verwendet werden können, um verschiedene Elemente zu beschreiben, diese Elemente nicht durch diese Begriffe beschränkt werden sollten.
  • Es versteht sich, dass die Singularformen auch die Pluralformen einschließen sollen, sofern der Kontext nicht eindeutig etwas anderes vorschreibt.
  • Bezugszeichen, die für Verfahrensschritte verwendet werden, werden nur zur Vereinfachung der Erklärung verwendet, aber nicht, um eine Reihenfolge der Schritte zu beschränken. Sofern der Kontext nicht eindeutig etwas anderes vorschreibt, kann die schriftliche Anordnung anders ausgeübt werden.
  • Nachstehend werden ein Funktionsprinzip und Ausführungsformen unter Bezugnahme auf die beigefügten Zeichnungen ausführlich beschrieben.
  • 1 ist ein Diagramm, das ein Beispiel einer Architektur einer Automotive Open System Architecture (AUTOSAR)-Plattform mit einer Architektur für eine Speicherverwaltung gemäß einer Ausführungsform veranschaulicht.
  • AUTOSAR ist eine standardisierte und offene Plattform. Dabei bedeutet „standardisiert“, dass ein Funktionsname, eine Funktion, ein Rückgabewert usw. vordefiniert sind. „Offen“ bedeutet, dass sie jedem zur Verfügung steht.
  • Wie in 1 gezeigt, ist die Plattformarchitektur von AUTOSAR eine mehrschichtige Architektur, und die Wartung des Systems ist einfach, da die Schichten getrennt sind.
  • Die AUTOSAR-Plattform, d.h. die mehrschichtige Architektur, ermöglicht eine hardwareunabhängige Softwareentwicklung und verbessert die Wiederverwendbarkeit und Skalierbarkeit.
  • Die AUTOSAR-Plattform umfasst eine Anwendungsschicht 100, eine Laufzeitumgebungs-(RTE)-Schicht 200 und eine Basissoftwareschicht 300.
  • Die Anwendungsschicht 100 ist eine Plattform, auf der eine Basissoftware (BSW) zur Ansteuerung einer elektronischen Steuereinheit (ECU) für Fahrzeuge und eine hardwareunabhängige Anwendungssoftware (ASW) integriert sind.
  • Die Anwendungsschicht 100 kann eine Mehrzahl von Softwarekomponenten (SWCs) umfassen, von denen jede eine Fahrzeugsteuerlogik umfasst.
  • Die SWC ist eine unabhängige Ausführungseinheit und kann abhängig von einem zu steuernden Objekt in eine Motorsteuerungs-Softwarekomponente, eine Batteriesteuerungs-Softwarekomponente, eine Modussteuerungs-Softwarekomponente, und eine Benutzerschnittstellen-Softwarekomponente unterteilt werden.
  • Die SWC kann auch in eine Aktuator-Softwarekomponente, eine Sensor-Softwarekomponente, eine Anwendungs-Softwarekomponente (ASW) 110, eine lo-Konverter-Softwarekomponente, eine Ressourcenmonitor-Softwarekomponente, eine Diagnose-Softwarekomponente, eine Test-Softwarekomponente, und eine ZustandsManager-Softwarekomponente 120 unterteilt werden.
  • Die ASW 110 führt einen Algorithmus für mindestens eine in einem Fahrzeug durchgeführte Funktion durch und ist für eine tatsächliche Funktion des Fahrzeugs verantwortlich.
  • Der ASW 110 ist in ein Client/Server-Protokoll oder in ein Sender/Empfänger-Protokoll unterteilt.
  • Das Client/Server-Protokoll ist eine Remote-Prozedur-Aufrufverfahren und ein weit verbreitetes Kommunikationsverfahren in einem verteilten System.
  • Im Client/Server-Protokoll ist ein Anbieter eines Remotedienstes ein Server und ein Benutzer des Remotedienstes ist ein Client. Wenn der Client nach der Initialisierung einer Kommunikation einen bestimmten Dienst anfordert, liefert der Server die erforderlichen Parameter an den Client.
  • Beispielsweise kann der Client/Server in einem Aktuator verwendet werden, um eine Funktion anzufordern und auszuführen.
  • Das Sender/Empfänger-Protokoll ist ein Nachrichtenübertragungsverfahren und ein asynchrones Kommunikationsprotokoll, bei dem ein Sender Informationen an einen einzelnen von einer Vielzahl von Empfängern sendet.
  • Beispielsweise kann der Sender/Empfänger in einem Sensor im Hinblick auf das Senden und Empfangen von Daten verwendet werden.
  • Die ASW 110 wird als „Lauffähiges“ bezeichnet, und „Lauffähiges“ (engl. „runnable“) wie oben definiert, wird von einem Betriebssystem (OS) geplant.
  • Da jede SWC nicht in der Lage ist, direkt mit Hardware oder einem Betriebssystem (d.h. OS) verbunden zu sein, kann ein Thread oder Prozess möglicherweise nicht implementiert werden. Stattdessen können einzelne Funktionen von der SWC, die während der Laufzeit ausgeführt werden, von dem „Runnable“ („Lauffähiges“) ausgeführt werden.
  • Gemäß einer Spezifikation eines virtuellen funktionalen Busses (VFB) ist das Runnable definiert als die Reihenfolge der Anweisungen, die vom RTE 200 gestartet werden können.
  • Die SWC kann eine Vielzahl von Runnables aufweisen.
  • Ein Mapping zwischen dem Betriebssystem (OS) und dem Runnable in der SWC wird durch Setzen von mindestens einer ECU erstellt. Das Mapping wird von der RTE aufgerufen und kann bei der Planung verwendet werden.
  • Die Zustandsmanager-Softwarekomponente 120 ist eine Softwarekomponente, die einen nichtflüchtigen Speichermanager (NvM) 311 und ein Fehlerdiagnoseereignis verwaltet und als Schnittstelle für das Starten/Herunterfahren der Sequenzverwaltung arbeitet.
  • Die ASW 110 und die Zustandsmanager-Softwarekomponente 120 in der Anwendungsschicht 100 können zur Verwaltung eines nichtflüchtigen Speichers verwendet werden.
  • Die RTE 200 mappt mindestens eine SWC in der Anwendungsschicht 100 unabhängig auf mindestens eine Hardware und eine ECU.
  • Durch die Verwendung der RTE 200 kann ein Signal von einem Sensor oder Aktuator gelesen werden, der mit einem anderen Controller (Steuergerät) verbunden ist, und ein Steuersignal kann ausgegeben werden.
  • Die Signallesung und -ausgabe ist verfügbar, da die RTE 200 eine gemeinsame Anwendungsprogrammierschnittstelle (Application Programming Interface, API) für eine Anwendung bereitstellt, indem sie sowohl ein externes Kommunikationsverfahren einer ECU abstrahiert, das ein Netzwerk wie ein Controller Area Network (Steuergerätenetz, CAN, FlexRay, lokales Verbindungsnetzwerk (LIN) und medienorientierter Systemtransport (MOST) und eine internes Kommunikationsverfahren verwendet.
  • Die RTE 200 kann unabhängig voneinander eine ECU mit einer Kommunikation zwischen den SWCs in der Anwendungsschicht 100 und einem Kommunikationsschnittstellen-Mapping zwischen der SWC und dem BSW bereitstellen.
  • Das heißt, die RTE 200 verbindet die ASW 110 und die BSW 300 beim Datenaustausch und Interagieren.
  • Die RTE 200 kann die ASW und Hardware trennen.
  • Die RTE 200 ist eine Umgebung, in der die VFB-Kommunikationsstruktur implementiert ist.
  • Da die Anforderungen der RTE 200 in Abhängigkeit von einer auf einer Oberseite der RTE 200 ausgeführten ASW variieren, muss die RTE 200 maßgeschneidert werden.
  • Eine endgültige RTE, der auf eine Setup-Aufgabe zugeschnitten ist, kann für jede ECU variieren.
  • Die BSW 300 bietet Dienste für eine obere Schicht, indem sie die ECU und Hardware abstrahiert.
  • Die BSW 300 umfasst eine Serviceschicht 310, eine ECU-Abstraktionsschicht (EAL) 320, eine Mikrocontroller-Abstraktionsschicht (MCAL) 330, und eine komplexe Gerätetreiberschicht 340.
  • Die Serviceschicht 310 ist eine oberste Schicht in der BSW 300 und bietet einen Dienst zur Nutzung von Mikrocontroller-Ressourcen in der Anwendungsschicht 100.
  • Während der Zugriff auf eine IO-Hardware von der EAL 320 verwaltet wird, bietet die Serviceschicht 310 verschiedene Hintergrundfunktionen (Kommunikation, Speicher und Betriebssystem (OS)) für den Systembetrieb und die Gesamtsteuerung der Module in der BSW 300.
  • Die Serviceschicht 310 kann als OS (Betriebssystem), Zeitplan-Manager, Netzwerkkommunikationsmanager, Speichermanager, Diagnosedienst, ECU-Zustandsmanager und Watchdog (Überwachung) arbeiten.
  • Das heißt, die Serviceschicht 310 kann ein Betriebssystem, einen Systemdienst, einen Speicherdienst und einen Kommunikationsdienst umfassen.
  • Da es für das Betriebssystem effizient ist, eine Hardware direkt zu steuern, liegt die Serviceschicht 310 unter der MCAL 330.
  • Der Systemdienst ist ein Satz von Funktionen und assoziierten Modulen, die gemeinsam verwendet werden können, wie eine Fehlerverwaltungsbibliothek wie eine zyklische Redundanzprüfung (CRC) und Echtzeitbetriebssystemdienst (RTOS) einschließlich Timerdienst. Der Systemdienst bietet auch einen Basisdienst eines Mikrocontrollers in den BSW und ASW Modulen.
  • Der Speicherdienst kann den NvM 311 enthalten und Abstraktionen für Speicherpositionen und Speichereigenschaften bereitstellen.
  • Außerdem verwaltet der Speicherdienst die Speicherung und das Laden von Daten im nichtflüchtigen Speicher, die Datenverifizierung mithilfe von Prüfsummen und die stabile Datenspeicherung.
  • Der Speicherdienst führt den Zugriff auf Speichercluster, Geräte bzw. Einrichtungen oder Softwarefunktionen zum Lesen und Schreiben von Daten in dem nichtflüchtigen Speicher wie einem Flash- oder elektrisch löschbaren programmierbaren Nurlesespeicher (EEPROM) durch.
  • Der NvM 311 führt eine Datenspeicherung und -wartung in dem nichtflüchtigen Speicher entsprechend den individuellen Anforderungen einer Fahrzeugumgebung durch.
  • Das heißt, der NvM 311 verwaltet nichtflüchtige Daten der EEPROM- und/oder Flash-EEPROM-Emulation.
  • Der Kommunikationsdienst kann Module für die Fahrzeugnetzwerkkommunikation wie CAN, LIN, FlexRay und MOST umfassen.
  • Die Kommunikationsdienst koppelt von der Anwendungsschicht 100 zu einem Kommunikationstreiber durch Kommunikationshardwareabstraktion. Das heißt, der Kommunikationsdienst verbindet sich mit einem Fahrzeugnetzwerk über dieselbe Schnittstelle unabhängig vom Typ des Fahrzeugnetzwerks und verwaltet das Netzwerk.
  • Die EAL 320 verbindet Treiber der MCAL 330 mit einer oberen Schicht.
  • Die EAL 320 dient dazu, die gleiche Schnittstelle zu der ASW bereitzustellen, ohne eine Hardwareschaltung zu verlagern, wenn ein externes Gerät wie ein Sensor oder Aktuator an eine ECU angeschlossen wird.
  • Die EAL 320 abstrahiert alle grundlegenden Komponenten einer ECU. Konzeptionell kann eine ECU auch einen größeren Umfang umfassen als eine Mikrosteuereinheit (MCU).
  • Die EAL 320 bietet eine hardwareunabhängige Anwendungsprogrammierschnittstelle (API).
  • Dabei kann die Hardware sowohl innere als auch äußere Komponenten eines Mikrocomputers umfassen.
  • Das heißt, die EAL 320 stellt eine API für ein Peripheriegerät bereit, um auf verschiedene Peripheriegeräte innerhalb/außerhalb des Mikrocontrollers zuzugreifen, und verbindet sich mit einem bestimmten Port oder einer bestimmten Schnittstelle des Mikrocontrollers.
  • Die EAL 320 kann Treiber für externe Geräte und Schnittstellen für interne und externe Peripheriegeräte (IO, Speicher, Watchdog, Kommunikation) bereitstellen.
  • Die EAL 320 umfasst eine I/O-Hardwareabstraktion, eine Kommunikationshardwareabstraktion, eine Speicherhardwareabstraktion und eine Onboard-Geräteabstraktion.
  • Die I/O-Hardwareabstraktion dient zur Abstraktion der Standorte von peripheren I/O-Geräten und dem ECU-Hardwarelayout und zum Ausblenden des ECU-Hardwarelayouts von einer oberen Softwareschicht.
  • Die Kommunikationshardwareabstraktion führt die Abstraktion auf einem Kommunikationscontroller und dem zugehörigen ECU-Hardwarelayout durch.
  • Die Speicherhardwareabstraktion abstrahiert eine speicherbezogene Hardware.
  • Die Speicherhardwareabstraktion kann zur Verwaltung von nichtflüchtigem Speicher verwendet werden.
  • Die Speicherhardwareabstraktion kann ein Speicherabstraktionsschnittstellenmodul (Memlf) 321 und eine Flash-EEPROM-Emulation (Fee) 322 umfassen.
  • Das Memlf 321 ermöglicht die Abstraktion in der Fee 322.
  • Das Memlf 321 kann die Abstraktion in einem EEPROM-Abstraktionsmodul (EA) ermöglichen (nicht gezeigt).
  • Das EA-Modul bietet Dienste zum Lesen, Schreiben und Löschen von Daten aus dem EEPROM und zum Vergleich eines Datenblocks im EEPROM mit einem Datenblock im Speicher (z. B. RAM).
  • Das Memlf 321 stellt dem NvM 311 eine virtuelle Partitionierung in einem einheitlichen linearen Adressraum zur Verfügung.
  • Die Fee 322 abstrahiert ein Gerät, ein spezifisches Adressierungsschema und eine Partitionierung.
  • Die Fee 322 bietet dem NvM 311 ein virtuelles Adressierungsschema, Partitionierung, und virtuelle unbegrenzte Löschzyklen.
  • Die Onboard-Geräteabstraktion abstrahiert eine onboard-bezogene Hardware.
  • Die MCAL 330 ist die unterste Schicht in der AUTOSAR-Plattform, und unterhalb der MCAL 330 kann eine Hardwareschicht (nicht gezeigt) vorgesehen sein.
  • Die MCAL 330 bietet eine Gerätetreiber-API, um MCU-Ressourcen oder Funktionen einer oberen Schicht zu nutzen.
  • Die MCAL 330 enthält einen Mikrocontroller-Treiber, Speichertreiber, Kommunikationstreiber und IO-Treiber.
  • Der Mikrocontroller-Treiber bietet eine Funktion zum direkten Zugriff auf einen Mikrocontroller und eine Peripherie-Schnittstelle.
  • Der Speichertreiber ist ein Treiber für eine Speicherzuordnung eines externen Speichergeräts und eines On-Chip-Speichers innerhalb des Mikrocontrollers.
  • Ein Flash-Treiber (Fls) 331 initialisiert einen Flash und liest und schreibt in einen Flash-Speicher.
  • Der Fls 331 kann einen Dienst zum Vergleichen eines Datenblocks mit einem Datenblock des Speichers durchführen.
  • Der Kommunikationstreiber ist ein Treiber für die Fahrzeugkommunikation und die Onboard-Kommunikation wie eine Datenverbindungsschicht aus SPI, I2C, CAN und OSI.
  • Der IO-Treiber ist ein Treiber für analoge digitale I/O wie ADC, PW und DIO usw.
  • Der komplexe Gerätetreiber (CDD) 340 unterstützt die Kompatibilität zwischen einem externen Gerät und der Plattform während des Betriebs.
  • Der CDD 340 wird zur Steuerung eines Sensors und Aktuators verwendet, der spezifische Timing-Anforderungen hat oder kein in der AUTOSAR Plattform definiertes Modul hat. Das heißt, der CDD 340 kann direkt auf den Mikrocomputer zugreifen, um den Sensor oder Aktuator zu steuern.
  • 2 ist ein Diagramm, das ein Beispiel einer Architektur zur Speicherverwaltung gemäß einer Ausführungsform veranschaulicht. 3 ist ein Diagramm, das ein Beispiel von Blöcken in dem NvM gemäß einer Ausführungsform veranschaulicht.
  • Die Architektur für die Speicherverwaltung umfasst die ASW 110 und die Zustandsmanager-Softwarekomponente 120 in der Anwendungsschicht 100, die RTE 200 und den NvM 311, das Memlf 321, die Fee 322 und den Flash-Treiber (Fls) 331 in der in 1 dargestellten AUTOSAR-Plattform.
  • Die ASW 110 prüft Daten, die in die Zustandsmanager-Softwarekomponente 120 als Antwort auf eine Anforderung der Zustandsmanager-Softwarekomponente 120 geschrieben werden sollen, und überträgt die geprüften Daten.
  • Das heißt, die ASW 110 kann Daten, die über eine vorbestimmte Lesefunktion (Rte_Read) gelesen werden, an die Zustandsmanager-Softwarekomponente 120 übertragen.
  • Die ASW 110 kann Daten speichern, die von der Zustandsmanager-Softwarekomponente 120 empfangen werden.
  • Die ASW 110 kann Daten über eine vorbestimmte Schreibfunktion (Rte_Write) empfangen und die empfangenen Daten schreiben.
  • Die Zustandsmanager-Softwarekomponente 120 kann einen Vorgang zum Lesen von in einem nichtflüchtigen Speicher gespeicherten Daten oder zum Schreiben von Daten in den nichtflüchtigen Speicher steuern, wenn ein Fahrzeug ein- oder ausgeschaltet wird.
  • Genauer gesagt liest die Zustandsmanager-Softwarekomponente 120 Daten, die von der ASW 110 in den NvM 311 geschrieben werden sollen.
  • Bei der Steuerung des Schreibvorgangs kann die Zustandsmanager-Softwarekomponente 120 von dem NvM 311 der in 3 gezeigten BSW einen Fehlerstatus-Check-Service anfordern.
  • Wenn festgestellt wird, dass ein Ergebnis der Überprüfung eines Status eines einzelnen Blocks bei der Steuerung des Schreibvorgangs nicht in einem ausstehenden Zustand („pending state“) ist, kann die Zustandsmanager-Softwarekomponente 120 einen Schreibblockdienst (write block service von dem NvM 311 anfordern, indem sie die gelesenen Daten als Faktor verwendet.
  • Die Zustandsmanager-Softwarekomponente 120 kann für einen Block, in dem das Schreiben von Daten abgeschlossen ist, ein „Flag“ auf „ein“ setzen, und wenn das Schreiben von Daten für alle Blöcke abgeschlossen ist, Flags initialisieren und steuern, um auf andere Daten zu schreiben.
  • Wenn das Schreiben aller Daten in die Zustandsmanager-Softwarekomponente 120 abgeschlossen ist, ruft die Zustandsmanager-Softwarekomponente 120 eine Abschlussfunktion (NvM JobFinished) aus der BSW 300 auf.
  • Bei der Steuerung des Lesevorgangs kann die Zustandsmanager-Softwarekomponente 120 von dem NvM 311 der BSW einen Fehlerzustandsüberprüfungsdienst anfordern, um einen Status eines einzelnen Blocks zu überprüfen.
  • Wenn festgestellt wird, dass ein Ergebnis der Prüfung bei der Steuerung des Lesevorgangs nicht in einem ausstehenden Zustand ist, kann die Zustandsmanager-Softwarekomponente 120 einen Leseblockdienst von dem NvM 311 anfordern.
  • Die Zustandsmanager-Softwarekomponente 120 kann für einen Block, in dem das Auslesen von Daten abgeschlossen ist, ein Flag auf „ein“ setzen, und wenn das Auslesen von Daten für alle Blöcke abgeschlossen ist, Flags initialisieren und steuern, um andere Daten auszulesen.
  • Die Zustandsmanager-Softwarekomponente 120 führt den Lesevorgang in Hardware als Reaktion auf einen Leseblockdienst (ReadBlock-Dienst) aus.
  • Wenn das Auslesen aller Daten in der Zustandsmanager-Softwarekomponente 120 abgeschlossen ist, ruft die Zustandsmanager-Softwarekomponente 120 die Abschlussfunktion (NvM JobFinished) aus der BSW 300 auf.
  • Bei der Ausführung des Schreib- und Lesevorgangs kann die Zustandsmanager-Softwarekomponente 120 einen Rte-Fehler anhand eines Rückgabewerts einer Rte-Funktion von der RTE 200 überprüfen.
  • Beispielsweise kann die Zustandsmanager-Softwarekomponente 120 bei der Durchführung des Lesevorgangs von Daten aus der ASW 110 den Rte-Fehler anhand des Rückgabewerts der Rte-Funktion überprüfen.
  • Beim Anfordern des Fehlerstatusüberprüfungsdienstes (Get Error Status) und eines Schreibblockdiensts von dem NvM 311 während des Schreibvorgangs kann die Zustandsmanager-Softwarekomponente 120 den Rte-Fehler unter Verwendung des Rückgabewerts der Rte-Funktion von der RTE 200 überprüfen.
  • Beim Anfordern des Fehlerstatusüberprüfungsdienstes (Get Error Status) und eines Leseblockdienstes vom NvM 311 während des Lesevorgangs kann die Zustandsmanager-Softwarekomponente 120 den Rte-Fehler unter Verwendung des Rückgabewerts der Rte-Funktion von der RTE 200 überprüfen.
  • Wenn der Lesevorgang abgeschlossen ist, kann die Zustandsmanager-Softwarekomponente 120 den Rte-Fehler unter Verwendung des Rückgabewerts der Rte-Funktion von der RTE 200 überprüfen.
  • Das RTE 200 führt eine Zuordnung (ein Mapping) zwischen der ASW 110 und der Zustandsmanager-Softwarekomponente 120 durch und überträgt Daten und Funktionsaufrufdaten zwischen der ASW 110 und der Zustandsmanager-Softwarekomponente 120.
  • Die RTE 200 führt ein Mapping zwischen dem NvM 311 und der Zustandsmanager-Softwarekomponente 120 durch und überträgt und empfängt Daten zwischen dem NvM 311 und der Zustandsmanager-Softwarekomponente 120.
  • Wenn während des Schreibvorgangs oder Lesevorgangs die Anforderung des Fehlerstatusüberprüfungsdienstes für einen einzelnen Block empfangen wird, kann der NvM 311 in der BSW 300 einen Fehlerstatus für den einzelnen Block überprüfen und Informationen über den Fehlerstatus für den einzelnen Block an die Zustandsmanager-Softwarekomponente 120 übermitteln.
  • Wenn die Schreibblockdienstanforderung empfangen wird, kann der NvM 311 für jeden Block einen Datenschreibvorgang ausführen, und wenn der Datenschreibvorgang für alle Blöcke abgeschlossen ist, kann der NvM 311 die Abschlussfunktion (NvM JobFinished) zur Zustandsmanager Softwarekomponente 120 übertragen.
  • Wenn die Leseblockdienstanforderung empfangen wird, kann der NvM 311 für jeden Block einen Datenlesevorgang durchführen, und wenn der Datenlesevorgang für alle Blöcke abgeschlossen ist, kann der NvM 311 die Abschlussfunktion (NvM JobFinished) an die State Manager-Softwarekomponente 120 übertragen.
  • Das Memlf 321, die Fee 322 und der Fls 331 sind Standardmodule für einen Verwaltungsdienst für nicht-flüchtigen Speicher.
  • 4A, 4B und 4C sind Flussdiagramme eines Schreibvorgangs einer Architektur zur Speicherverwaltung gemäß einer Ausführungsform.
  • Beim Empfang eines Schreib-Ein-Befehls des NvM 311 startet die Architektur einen Schreibzyklus (501).
  • Dabei wird der Schreib-Ein-Befehl bei Bedarf durch eine umfassende Ermittlung verschiedener Zustände eines Fahrzeugs angefordert und kann hauptsächlich angefordert werden, wenn das Fahrzeug ausgeschaltet ist (Key Off).
  • Die Architektur bestimmt, ob ein einzelner Block in diesem Zyklus (oder einem aktuellen Zyklus) einen Schreibblockdienst von der BSW 300 angefordert hat (502).
  • Zu der Bestimmung, ob der Schreibblockdienst angefordert wurde, gehört auch die Bestimmung, ob ein Schreibblockausführungs-Überprüfungsflag ein ist.
  • Da ein Schreibvorgang mit einer Lebensdauer des NvM 311 zusammenhängt, wird nur einmal geprüft, ob die Anzahl der Schreibblockdienste beim Empfang des Schreib-Ein-Befehls ausgeführt werden. Die Anzahl der Schreibblockdienste kann eine voreingestellte Zahl sein.
  • Wenn der Schreibblockdienst in diesem Zyklus angefordert wurde, beendet die Architektur diesen Zyklus für den entsprechenden Block.
  • Im Gegensatz dazu liest (503) die Architektur, wenn der Schreibblockdienst in diesem Zyklus nicht angefordert wurde, Daten, die an den nichtflüchtigen Speicher geschrieben werden sollen, aus der ASW 110 durch Aufruf einer vorgegebenen Lesefunktion (Rte_Read), und ermittelt dann unter Verwendung eines Rückgabewert einer Rte-Funktion, ob ein Rte-Fehler auftritt (504).
  • Daher kann während des Datenaustauschs schrittweise durch die RTE überprüft werden, ob ein Fehler auftritt, wodurch die Zuverlässigkeit der Daten verbessert wird.
  • Wenn festgestellt wird, dass der Rte-Fehler auftritt, beendet die Architektur den Schreibvorgang für den entsprechenden Block.
  • Wenn jedoch festgestellt wird, dass der Rte-Fehler nicht auftritt, fordert die Architektur von der BSW 300 einen Error Status Check-Dienst (GetErrorStatus) an, um einen Status eines einzelnen Blocks zu überprüfen, und ermittelt, ob ein Ergebnis des Error Status Check-Dienstes (GetErrorStatus) sich in einem anhängigen bzw. ausstehenden Zustand (505) (pending state) befindet.
  • Durch die voranstehenden Vorgänge wird der Dienst von dem NvM 311 nur dann angefordert, wenn kein Fehler gefunden wird, indem ein aktueller Status des NvM 311 überprüft wird, und somit kann die Zuverlässigkeit verbessert und die Lebensdauer kann verlängert werden.
  • Bei der Abfrage des Fehlerstatus-Überprüfungsdienstes (Error Status Check-Dienstes; GetErrorStatus) von der BSW 300 ermittelt die Architektur anhand eines Rückgabewerts einer Rte-Funktion (506), ob ein Rte-Fehler auftritt.
  • Wenn festgestellt wird, dass der Rte-Fehler auftritt, beendet die Architektur den Schreibvorgang für den entsprechenden Block.
  • Wenn festgestellt wird, dass sich ein Ergebnis des Fehlerstatus-Überprüfungsdienstes (GetErrorStatus) in einem ausstehenden Zustand befindet, beendet die Architektur ebenfalls den Schreibvorgang für den entsprechenden Block.
  • Wenn festgestellt wird, dass sich das Ergebnis des Fehlerstatus-Überprüfungsdienstes (GetErrorStatus) nicht in einem ausstehenden Zustand befindet und der Rte-Fehler nicht auftritt, fordert die Architektur einen Schreibblockdienst von der BSW 300 an, indem sie die gelesenen Daten als Faktor verwendet (507), und bestimmt dann unter Verwendung eines Rückgabewerts einer Rte-Funktion (508), ob ein Rte-Fehler auftritt.
  • Wenn festgestellt wird, dass der Rte-Fehler auftritt, beendet die Architektur den Schreibvorgang für den entsprechenden Block.
  • Wenn jedoch festgestellt wird, dass der Rte-Fehler nicht auftritt, setzt die Architektur ein Schreibblock-Ausführungs-Check-Flag eines einzelnen Blocks auf „ein“ (509).
  • Die Architektur bestimmt, ob die Schreibblock-Ausführungs-Check-Flags aller Blöcke ein (d.h. aktiviert) sind (510). Wenn festgestellt wird, dass die Schreibblock-Ausführungs-Check-Flags aller Blöcke ein sind, initialisiert die Architektur die Flags, so dass ein Zyklus von Anfang an durch einen nächsten Schreibbefehl (NvM Write) ausgeführt werden kann.
  • Das Flag, das eine Initialisierung erfordert, kann ein Flag für einen Schreibbefehl und ein Schreibblock-Ausführungs-Check-Flag eines einzelnen Blocks enthalten. Das heißt, die Architektur kann das Flag für den Schreibbefehl (NvM Write) und das Schreibblock-Ausführungs-Check-Flag eines einzelnen Blocks auf „aus“ (off) setzen (511).
  • Die Architektur führt einen Schreibvorgang auf den nichtflüchtigen Speicher in der Hardware aus, nachdem sie den Schreibblockdienst angefordert hat, und wenn der Schreibvorgang abgeschlossen ist, kann eine Abschlussfunktion (NvM JobFinished) von der BSW 300 aufgerufen werden.
  • Wenn der Aufruf durch die Abschlussfunktion (NvM JobFinished) ein ist (512), bestimmt die Architektur, ob ein Datenschreibvorgang erfolgreich ist (513).
  • Wenn der Datenschreibvorgang fehlschlägt, kann die Architektur den Schreibblockdienst von der BSW 300 erneut anfordern und ein Schreibabschluss-Flag (WriteComplete-Flag) des einzelnen Blocks auf „aus“ setzen(514).
  • Wenn der Datenschreibvorgang erfolgreich ist, kann die Architektur das Schreibabschluss-Flag, was angibt, dass ein endgültiger Schreibvorgang des einzelnen Blocks abgeschlossen ist, auf „ein“ setzen (515).
  • Anschließend kann die Architektur den Schreibvorgang erneut ausführen.
  • Die Architektur kann die Schreibabschluss-Flags aller einzelnen Blöcke überprüfen, und wenn die Schreibabschluss-Flags aller einzelnen Blöcke ein (aktiviert) sind (516), kann sie alle Schreibabschluss-Flags (All NvM WriteComplete Flags) auf „ein“ setzen (517).
  • Der obige Vorgang ist dafür gedacht die Energie der ECU auszuschalten, nachdem bestätigt wurde, dass der Schreibvorgang für alle einzelnen Blöcke normal abgeschlossen ist, da ein Schreibbefehl angefordert wird, wenn ein Fahrzeug abgeschaltet ist bzw. wird (Key Off).
  • Daher kann durch Empfangen von Feedback zu dem Ergebnis, das nach dem Anfordern des Schreibdienstes erhalten wurde, im Falle eines Ausfalls zusätzliche Logik hinzugefügt werden, und das Fahrzeug wird ausgeschaltet, nachdem überprüft wurde, ob der Schreibdienst aller Blöcke normaler ausgeführt ist. Dementsprechend kann die Zuverlässigkeit verbessert werden.
  • Außerdem kann durch die Steuerung des Schreibens von Daten in den nichtflüchtigen Speicher die Zuverlässigkeit und Komplementarität eines Schreibblocks in dem NvM 311 verbessert werden.
  • Die 5A und 5B sind Flussdiagramme eines Lesevorgangs einer Architektur zur Speicherverwaltung gemäß einer Ausführungsform.
  • Die Architektur bestimmt, ob ein Lesebefehl (NvM Read) ein ist (601), und wenn festgestellt wird, dass der Lesebefehl (NvM Read) empfangen wird, führt sie einen Lesezyklus durch.
  • Eine Bestimmung, ob der Lesebefehl (NvM Read) ein ist, umfasst, ob der Lesebefehl (NvM Read) empfangen wird.
  • Der Lesebefehl (NvM Read) wird bei Bedarf angefordert, indem verschiedene Zustände eines Fahrzeugs umfassend bestimmt werden, und kann hauptsächlich empfangen werden, wenn das Fahrzeug eingeschaltet wird (Key On).
  • Die Architektur bestimmt, ob ein Leseblock-Ausführungs-Check-Flag ein ist (602).
  • Die Architektur prüft, ob ein einzelner Block in diesem Zyklus einen Leseblockdienst (ReadBlock-Dienst) von der BSW 300 angefordert hat, und wenn festgestellt wird, dass der Leseblockdienst (ReadBlock-Dienst) angefordert wurde, beendet die Architektur diesen Zyklus (d.h. aktueller Zyklus) für den entsprechenden Block.
  • Da Lesen und Schreiben sich auf die Lebensdauer des NvM 311 und des nichtflüchtigen Speichers beziehen, wird nur einmal geprüft, ob die Anzahl der Leseblockdienste beim Empfang des Lesebefehls (NvM Read) ausgeführt werden.
  • Wenn festgestellt wird, dass der Leseblockdienst (ReadBlock-Dienst) nicht angefordert wurde, fordert die Architektur von der BSW 300 einen Fehlerstatus-Überprüfungsdienst (GetErrorStatus) an, um einen Status eines einzelnen Blocks zu überprüfen, und ermittelt, ob sich ein Ergebnis des Fehlerstatus-Überprüfungsdienstes (GetErrorStatus) in einem ausstehenden Zustand (pending state) befindet (603).
  • Der Dienst wird von dem NvM 311 nur angefordert, wenn kein Fehler gefunden wird, indem ein aktueller Status des NvM 311 überprüft wird, und somit kann die Zuverlässigkeit verbessert und die Lebensdauer verlängert werden.
  • Außerdem bestimmt die Architektur bei der Anforderung des Fehlerstatus-Überprüfungsdienstes (GetErrorStatus) unter Verwendung eines Rückgabewerts einer Rte-Funktion, ob ein Rte-Fehler auftritt (604).
  • Wenn festgestellt wird, dass der Rte-Fehler auftritt, beendet die Architektur einen Lesevorgang für den entsprechenden Block.
  • Wenn festgestellt wird, dass sich das Ergebnis des Fehlerstatus-Überprüfungsdienstes (GetErrorStatus) in einem ausstehenden Zustand befindet und der Rte-Fehler auftritt, beendet die Architektur den Lesevorgang für den entsprechenden Block.
  • Wenn festgestellt wird, dass sich das Ergebnis des Fehlerstatus-Überprüfungsdienstes (GetErrorStatus) nicht in einem ausstehenden Zustand befindet und der Rte-Fehler nicht auftritt, fordert die Architektur den Leseblockdienst (ReadBlock-Dienst) von der BSW 300 (605) an und bestimmt dann unter Verwendung eines Rückgabewerts einer Rte-Funktion, ob ein Rte-Fehler auftritt (606).
  • Wenn festgestellt wird, dass der Rte-Fehler auftritt, beendet die Architektur den Lesevorgang für den entsprechenden Block.
  • Wenn festgestellt wird, dass der Rte-Fehler nicht auftritt, setzt die Architektur ein Leseblock-Ausführungs-Check-Flag eines einzelnen Blocks auf „ein“ (607).
  • Die Architektur bestimmt, ob die Leseblock-Ausführungs-Check-Flags aller Blöcke ein sind (608), und wenn festgestellt wird, dass die Leseblock-Ausführungs-Check-Flags aller Blöcke ein sind, initialisiert die Architektur die Flags, so dass ein Zyklus durch einen nächsten Lesebefehl ausgeführt werden kann.
  • Dabei kann das initialisierte Flag ein Flag für einen Lesebefehl und ein Leseblock-Ausführungs-Check-Flag des einzelnen Blocks enthalten.
  • Das heißt, die Architektur kann das Flag für den Lesebefehl und das Leseblock-Ausführungs-Check-Flag des einzelnen Blocks auf „aus“ setzen (609).
  • Die Architektur führt einen Lesevorgang für den nichtflüchtigen Speicher in der Hardware aus, nachdem der Leseblockdienst angefordert wurde, und wenn der Lesevorgang abgeschlossen ist, kann eine Abschlussfunktion (NvM JobFinished) vo'n der BSW 300 aufgerufen werden.
  • Wenn in diesem Fall der Aufruf durch die Abschlussfunktion (NvM JobFinished) ein ist (610), bestimmt die Architektur, dass der Datenlesevorgang abgeschlossen ist, und bestimmt, ob der Datenlesevorgang erfolgreich ist (611).
  • Wenn festgestellt wird, dass der Datenlesevorgang fehlschlägt, fordert die Architektur von der BSW 300 einen Schreibblockdienst mit einem Anfangswert des einzelnen Blocks an und sendet den Anfangswert an die ASW 110 (612) durch Aufruf einer Schreibfunktion (Rte_Write).
  • Wenn festgestellt wird, dass die Datenleseoperation erfolgreich ist, ermittelt die Architektur einen Ergebniswert des Lesevorgangs, indem sie eine Lesefunktion (Rte_Read) aufruft, und sendet den ermittelten Ergebniswert an die ASW 110 (613). Außerdem bestimmt die Architektur unter Verwendung eines Rückgabewerts einer Rte-Funktion, ob ein Rte-Fehler auftritt (614).
  • Ob ein Fehler auftritt, kann beim Datenaustausch in der RTE schrittweise überprüft werden, wodurch die Zuverlässigkeit der Daten verbessert wird.
  • Wenn festgestellt wird, dass der Rte-Fehler auftritt, ruft die Architektur die Schreibfunktion (Rte_Write) erneut auf.
  • Wenn festgestellt wird, dass der Rte-Fehler nicht auftritt, initialisiert die Architektur ein Schreibabschluss-Flag (WriteComplete Flag) des einzelnen Blocks „aus“ (615).
  • Ein entsprechendes Flag wird beim Abschluss des Lesevorgangs initialisiert, da ein Ergebnis des Abschlusses eines Vorgangs für einen zweiten Schreibblockdienst möglicherweise nicht unterschieden werden kann, wenn eine Schreibblockoperation mehr als zweimal ausgeführt wird.
  • Die Architektur prüft die Leeabschluss-Flags (ReadComplete Flags) aller einzelnen Blöcke und ermittelt, ob die Leseabschluss-Flags aller einzelnen Blöcke ein sind (616). Wenn festgestellt wird, dass die Leseabschluss-Flags aller einzelnen Blöcke ein sind, setzt die Architektur alle Leseabschluss-Flags (alle NvM ReadComplete Flag) auf „ein“ (617).
  • Durch Empfangen von Feedback über das Ergebnis, das nach der Anforderung des Dienstes von dem NvM 311 erhalten wurde, kann im Fehlerfall eine zusätzliche Logik hinzugefügt werden, und durch die Überprüfung, ob der Dienst aller Blöcke normal in dem NvM 311 durchgeführt ist, können der ASW 110 zuverlässige Daten übermittelt werden.
  • Die Architektur kann den Lesevorgang im Falle eines Lesefehlers erneut ausführen.
  • Wenn festgestellt wird, dass ein Fehler in der RTE 200 auftritt, kann die Architektur durch einen erneuten Aufruf der Rte-Funktion auch erneut feststellen, ob ein Fehler auftritt.
  • Darüber hinaus kann die Architektur bestimmen, ob ein Fehler eine voreingestellte Anzahl von Malen auftritt.
  • Wie aus den voranstehenden Vorgängen ersichtlich ist, kann gemäß den Ausführungsformen der Offenbarung die Zuverlässigkeit der Daten durch die Überprüfung von Fehlern in allen Phasen während der Datenbewegung sichergestellt werden, wenn eine Laufzeitumgebungsfunktion und eine Basissoftwarefunktion in Bezug auf einen nichtflüchtigen Speicher verwendet werden.
  • Gemäß den Ausführungsformen der Offenbarung kann die Lebensdauer eines nichtflüchtigen Speichers erhöht werden, indem Aufrufe von Schreibblock- (WriteBlock) und Leseblock- (ReadBlock) Diensten minimiert werden.
  • Gemäß den Ausführungsformen der Offenbarung kann, wenn ein Fehler auftritt, während ein Schreibblock- (WriteBlock), ein Leseblock- (ReadBlock) und eine Laufzeitumgebungsfunktion verwendet werden, ein voreingestellter Zusatzcode verwendet werden, um eine schwerwiegende Fehlfunktion des Fahrzeugs zu verhindern und die Fehlfunktion wiederherzustellen.
  • Gemäß den Ausführungsformen der Offenbarung kann die Managementqualität des nichtflüchtigen Speichers sowie die Qualität, Marktfähigkeit, Sicherheit und Wettbewerbsfähigkeit eines Fahrzeugs verbessert werden.
  • Ausführungsformen können somit durch computerlesbaren Code/Anweisungen in/auf einem Medium, z. B. einem computerlesbaren Medium, implementiert werden, um mindestens ein Verarbeitungselement zur Implementierung irgendeiner voranstehend beschriebenen beispielhaften Ausführungsform zu steuern. Das Medium kann jedem/jeden Medium/Medien entsprechen, das/die die Speicherung und/oder Übertragung des computerlesbaren Codes ermöglicht/ermöglichen.
  • Der computerlesbare Code kann auf einem Medium aufgezeichnet oder über das Internet übertragen werden. Das Medium kann einen Nur-Lesespeicher (ROM), einen Arbeitsspeicher (RAM), Magnetbänder, Magnetplatten, Flash-Speicher, und optische Aufzeichnungsmedien umfassen.
  • Obwohl Ausführungsformen zu illustrativen Zwecken beschrieben wurden, werden Durchschnittsfachleute in dem technischen Gebiet erkennen, dass verschiedene Modifikationen, Ergänzungen und Substitutionen möglich sind, ohne vom Umfang und Grundgedanken der Offenbarung abzuweichen. Daher wurden Ausführungsformen nicht zu einschränkenden Zwecken beschrieben.

Claims (20)

  1. Speicherverwaltungsarchitektur, umfassend: eine Anwendungssoftwarekomponente (ASW), die konfiguriert ist, um einen Algorithmus für mindestens eine Funktion auszuführen und Daten in dem Algorithmus zu übertragen und zu empfangen; eine Basissoftware (BSW) mit einem nichtflüchtigen Speichermanager (NvM); eine Zustandsmanager-Softwarekomponente, die für die Verwaltung des NvM konfiguriert ist; und eine Laufzeitumgebung (RTE), die so konfiguriert ist, dass eine Kommunikation zwischen der ASW und der Zustandsmanager-Softwarekomponente und zwischen der BSW und der Zustandsmanager-Softwarekomponente durchgeführt werden kann; und wobei in einem Zustand des Schreibens von Daten in oder des Lesens von Daten aus einem nichtflüchtigen Speicher, der von dem NvM verwaltet wird, die Zustandsmanager-Softwarekomponente so konfiguriert ist, dass sie einen Lesevorgang oder einen Schreibvorgang auf Grundlage davon beendet, dass eine Anzahl von Lesungen größer oder gleich einer voreingestellten Anzahl von Lesungen ist oder eine Anzahl von Schreibungen größer oder gleich einer voreingestellten Anzahl von Schreibungen ist.
  2. Speicherverwaltungsarchitektur nach Anspruch 1, wobei die ASW und die Zustandsmanager-Softwarekomponente in einer Anwendungsschicht einer Automotive-Open-System-Architektur (AUTOSAR)-basierten Plattform bereitgestellt werden.
  3. Speicherverwaltungsarchitektur nach Anspruch 1, wobei die Zustandsmanager-Softwarekomponente konfiguriert ist zum: Steuern eines Betriebs zum Lesen von in dem nichtflüchtigen Speicher gespeicherten Daten, wenn ein Fahrzeug eingeschaltet wird; und Steuern eines Betriebs zum Schreiben von Daten in den nichtflüchtigen Speicher, wenn das Fahrzeug ausgeschaltet wird.
  4. Speicherverwaltungsarchitektur, umfassend: eine Anwendungssoftwarekomponente (ASW), die konfiguriert ist, um einen Algorithmus für mindestens eine Funktion auszuführen und Daten in dem Algorithmus zu übertragen und zu empfangen; eine Basissoftware (BSW), die einen nichtflüchtigen Speichermanager (NvM) umfasst; eine Zustandsmanager-Softwarekomponente, die für die Verwaltung des NvM konfiguriert ist; und eine Laufzeitumgebung (RTE), die so konfiguriert ist, dass eine Kommunikation zwischen der ASW und der Zustandsmanager-Softwarekomponente und zwischen der BSW und der Zustandsmanager-Softwarekomponente durchgeführt werden kann; wobei in einem Zustand des Schreibens von Daten in oder des Lesens von Daten aus einem nichtflüchtigen Speicher, der von dem NvM verwaltet wird, die Zustandsmanager-Softwarekomponente so konfiguriert ist, dass sie einen Lesevorgang oder einen Schreibvorgang auf Grundlage davon, dass eine Anzahl von Lesungen größer oder gleich einer vorgegebenen Anzahl von Lesungen ist oder eine Anzahl von Schreibungen größer oder gleich einer vorgegebenen Anzahl von Schreibungen ist, beendet; und wobei die Zustandsmanager-Softwarekomponente als Antwort auf einen Schreibbefehl konfiguriert ist zum: Aufrufen einer vorbestimmten Lesefunktion, so dass in den nichtflüchtigen Speicher zu schreibende Daten aus der ASW ausgelesen werden; und Schreiben der gelesenen Daten an den nichtflüchtigen Speicher.
  5. Speicherverwaltungsarchitektur nach Anspruch 4, wobei, wenn die Daten durch die RTE gelesen werden, die Zustandsmanager-Softwarekomponente konfiguriert ist, um zu bestimmen, ob ein RTE-Fehler auftritt.
  6. Speicherverwaltungsarchitektur nach Anspruch 5, wobei als Reaktion auf eine Feststellung, dass der RTE-Fehler auftritt, die Zustandsmanager-Softwarekomponente so konfiguriert ist, dass sie den Schreibvorgang beendet.
  7. Speicherverwaltungsarchitektur nach Anspruch 4, wobei bei der Steuerung des Schreibvorgangs die Zustandsmanager-Softwarekomponente so konfiguriert ist, dass sie einen Fehlerstatus-Get-Dienst für einen einzelnen Block von dem NvM der BSW anfordert.
  8. Speicherverwaltungsarchitektur nach Anspruch 7, wobei beim Anfordern des Fehlerstatus-Get-Dienstes die Zustandsmanager-Softwarekomponente so konfiguriert ist, dass sie bestimmt, ob ein RTE-Fehler auftritt.
  9. Speicherverwaltungsarchitektur nach Anspruch 8, wobei als Reaktion auf eine Feststellung, dass der RTE-Fehler auftritt, die Zustandsmanager-Softwarekomponente so konfiguriert ist, dass sie den Schreibvorgang beendet.
  10. Speicherverwaltungsarchitektur nach Anspruch 7, wobei bei der Steuerung des Schreibvorgangs die Zustandsmanager-Softwarekomponente so konfiguriert ist, dass sie feststellt, ob sich ein Ergebnis des Fehlerstatus-Get-Dienstes in einem ausstehenden Zustand befindet; und als Reaktion auf die Feststellung, dass sich das Ergebnis nicht in dem ausstehenden Zustand befindet, die Zustandsmanager-Softwarekomponente so konfiguriert ist, dass sie einen Schreibblockdienst von dem NvM anfordert, indem sie die gelesenen Daten als Faktor verwendet.
  11. Speicherverwaltungsarchitektur nach Anspruch 10, wobei wenn der Schreibblockdienst angefordert wird, die Zustandsmanager-Softwarekomponente so konfiguriert ist, dass sie feststellt, ob ein RTE-Fehler auftritt; als Reaktion auf die Feststellung, dass der RTE-Fehler auftritt, die Zustandsmanager-Softwarekomponente so konfiguriert ist, dass sie den Schreibvorgang beendet; und als Reaktion auf die Feststellung, dass sich das Ergebnis in dem ausstehenden Zustand befindet, die Zustandsmanager-Softwarekomponente so konfiguriert, dass sie den Schreibvorgang beendet.
  12. Speicherverwaltungsarchitektur nach Anspruch 4, wobei die Zustandsmanager-Softwarekomponente konfiguriert ist zum: Setzen eines Flags auf „ein“ für einen Block, in dem ein Schreiben der gelesenen Daten abgeschlossen ist; und Initialisieren des Flags, wenn ein Schreiben von Daten für alle Blöcke des NvM abgeschlossen ist.
  13. Speicherverwaltungsarchitektur, umfassend: eine Anwendungssoftwarekomponente (ASW), die konfiguriert ist, um einen Algorithmus für mindestens eine Funktion auszuführen und Daten in dem Algorithmus zu übertragen und zu empfangen; eine Basissoftware (BSW) mit einem nichtflüchtigen Speichermanager (NvM); eine Zustandsmanager-Softwarekomponente, die für die Verwaltung des NvM konfiguriert ist; und eine Laufzeitumgebung (RTE), die so konfiguriert ist, dass eine Kommunikation zwischen der ASW und der Zustandsmanager-Softwarekomponente und zwischen der BSW und der Zustandsmanager-Softwarekomponente durchgeführt werden kann; wobei in einem Zustand des Schreibens von Daten in oder des Lesens von Daten aus einem nichtflüchtigen Speicher, der von dem NvM verwaltet wird, die Zustandsmanager-Softwarekomponente so konfiguriert ist, dass sie einen Lesevorgang oder einen Schreibvorgang auf Grundlage davon, dass eine Anzahl von Lesungen größer oder gleich einer vorgegebenen Anzahl von Lesungen ist oder eine Anzahl von Schreibungen größer oder gleich als eine vorgegebene Anzahl von Schreibungen ist, beendet; und wobei beim Empfang eines Lesebefehls die Zustandsmanager-Softwarekomponente so konfiguriert ist, dass sie einen Fehlerstatus-Get-Dienst von dem NvM anfordert, um einen Status eines einzelnen Blocks des NvM zu überprüfen.
  14. Speicherverwaltungsarchitektur nach Anspruch 13, wobei bei Anforderung des Fehlerstatus-Get-Dienstes die Zustandsmanager-Softwarekomponente konfiguriert ist zum: Feststellen, ob ein RTE-Fehler auftritt; und Beenden des Lesevorgangs als Reaktion auf eine Feststellung, dass der RTE-Fehler auftritt.
  15. Speicherverwaltungsarchitektur nach Anspruch 14, wobei bei der Steuerung des Lesevorgangs die Zustandsmanager-Softwarekomponente konfiguriert ist zum: Feststellen, ob sich ein Ergebnis des Fehlerstatus-Get-Dienstes in einem ausstehenden Zustand befindet; und Anfordern eines Leseblockdienstes von dem NvM als Antwort auf eine Feststellung, dass sich das Ergebnis nicht in dem ausstehenden Zustand befindet.
  16. Speicherverwaltungsarchitektur nach Anspruch 15, wobei die Zustandsmanager-Softwarekomponente so konfiguriert ist, dass sie den Lesevorgang als Reaktion auf eine Feststellung, dass sich das Ergebnis in dem ausstehenden Zustand befindet, beendet.
  17. Speicherverwaltungsarchitektur nach Anspruch 14, wobei bei Anforderung eines Leseblockdienstes die Zustandsmanager-Softwarekomponente konfiguriert ist zum: Feststellen, ob der RTE-Fehler auftritt; und Beenden des Lesevorgangs als Reaktion auf eine Feststellung, dass der RTE-Fehler auftritt.
  18. Speicherverwaltungsarchitektur nach Anspruch 13, wobei die Zustandsmanager-Softwarekomponente konfiguriert ist zum: Setzen eines Flags auf „ein“ für einen Block, in dem ein Lesen von Daten abgeschlossen ist; und Initialisieren des Flags, wenn ein Lesen von Daten für alle Blöcke des NvM abgeschlossen ist.
  19. Speicherverwaltungsarchitektur nach Anspruch 13, wobei die ASW als Antwort auf den Lesebefehl konfiguriert ist, eine vorbestimmte Lesefunktion aufzurufen und Lesedaten an die ASW zu übertragen.
  20. Speicherverwaltungsarchitektur nach Anspruch 19, wobei die ASW so konfiguriert ist, dass sie die Daten über eine vorbestimmte Schreibfunktion empfängt und die empfangenen Daten schreibt.
DE102022206097.0A 2021-11-16 2022-06-17 Speicherverwaltungsarchitektur Pending DE102022206097A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2021-0158024 2021-11-16
KR1020210158024A KR20230071621A (ko) 2021-11-16 2021-11-16 메모리 관리를 위한 아키텍처

Publications (1)

Publication Number Publication Date
DE102022206097A1 true DE102022206097A1 (de) 2023-05-17

Family

ID=86144235

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022206097.0A Pending DE102022206097A1 (de) 2021-11-16 2022-06-17 Speicherverwaltungsarchitektur

Country Status (4)

Country Link
US (1) US20230153029A1 (de)
KR (1) KR20230071621A (de)
CN (1) CN116136740A (de)
DE (1) DE102022206097A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102586821B1 (ko) * 2023-07-04 2023-10-11 주식회사 드림에이스 가상 ecu 환경에서의 오토사 플랫폼 입출력에 따른 동작 검증 시스템 및 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8195909B2 (en) * 2009-10-05 2012-06-05 Seagate Technology Llc Data management in a data storage system
US9146855B2 (en) * 2012-01-09 2015-09-29 Dell Products Lp Systems and methods for tracking and managing non-volatile memory wear
JP6798413B2 (ja) * 2017-05-09 2020-12-09 株式会社オートネットワーク技術研究所 車載中継装置、制御プログラム及びメモリ共有方法

Also Published As

Publication number Publication date
US20230153029A1 (en) 2023-05-18
CN116136740A (zh) 2023-05-19
KR20230071621A (ko) 2023-05-23

Similar Documents

Publication Publication Date Title
CN110474961B (zh) 纯电乘用车基于can总线实现多路远程ota升级方法
DE112011103308B4 (de) Verfahren, System und Programm
DE102011075776A1 (de) Verfahren und System zum Aktualisieren eines gemeinsam genutzten Speichers
US20110126082A1 (en) Micro controller unit including an error indicator module
DE112017005979T5 (de) Parallelprozessvorrichtung und Parallelprozessprogramm
DE102013205285A1 (de) Systeme und Verfahren für die ECU-Aufgaben-Rekonfiguration
DE102017123252A1 (de) Softwareaktualisierungsverfahren und -vorrichtung für Fahrzeug
WO2019072840A1 (de) Vorrichtung zur absicherung von diagnosebefehlen an ein steuergerät und entsprechendes kraftfahrzeug
DE102016210274A1 (de) Betriebsverfahren eines kommunikationsknotens in einem fahrzeugnetz
DE102022206097A1 (de) Speicherverwaltungsarchitektur
DE112016002236T5 (de) Kommunikationseinrichtung und kommunikationseinschränkungsprogramm
DE102021131252A1 (de) Die vorliegende Erfindung betrifft eine Steuereinheit für ein Fahrzeug sowie ein Fehlermanagementverfahren dafür
DE102012016539A1 (de) Konfigurationstechnik für ein Steuergerät mit miteinander kommunizierenden Anwendungen
DE102019125369A1 (de) Intelligentes fahrzeugsystem
DE102011007714A1 (de) Architektur für einen gemeinsam genutzten Speicher
DE102009051675A1 (de) In ein Fahrzeug einbaubare elektronische Steuervorrichtung
DE102006060071B3 (de) Ansteuerung eines Peripheriegerätes über eine CANopen-Schnittstelle
DE102020133748B4 (de) Fahrzeugsteuergerät mit synchronem treiber
DE102013209264A1 (de) Verfahren zum Betreiben eines Kommunikationsmoduls und Kommunikationsmodul
EP2759939B1 (de) Verfahren zum Manipulieren einer Speicheroperation eines Steuergeräteprogramms auf einen virtuellen oder realen Speicher
DE102010063773A1 (de) Feldgerät mit einem semi-permanenten elektronischen Speicher und Verfahren zum Betreiben eines solchen Feldgerätes
DE102011007467A1 (de) Mehrkernige integrierte Mikroprozessorschaltung mit Prüfeinrichtung, Prüfverfahren und Verwendung
DE112009001842T5 (de) Steuervorrichtung, Steuerverfahren und Computerprogramm
DE102020207616A1 (de) Verfahren zum Betreiben einer Recheneinheit
DE102015204863A1 (de) Verfahren und Vorrichtung zum Warten eines Fahrzeuges

Legal Events

Date Code Title Description
R012 Request for examination validly filed