DE102022202335A1 - Computerimplementiertes verfahren zur speicheroptimierung eines partitionierten systems - Google Patents

Computerimplementiertes verfahren zur speicheroptimierung eines partitionierten systems Download PDF

Info

Publication number
DE102022202335A1
DE102022202335A1 DE102022202335.8A DE102022202335A DE102022202335A1 DE 102022202335 A1 DE102022202335 A1 DE 102022202335A1 DE 102022202335 A DE102022202335 A DE 102022202335A DE 102022202335 A1 DE102022202335 A1 DE 102022202335A1
Authority
DE
Germany
Prior art keywords
data
memory
computer
implemented method
placement
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
DE102022202335.8A
Other languages
English (en)
Inventor
Michael Abel
Franck Youk
Simon Kramer
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102022202335.8A priority Critical patent/DE102022202335A1/de
Priority to US18/176,956 priority patent/US20230289085A1/en
Priority to CN202310224784.5A priority patent/CN116737061A/zh
Publication of DE102022202335A1 publication Critical patent/DE102022202335A1/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle 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/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
    • 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/0683Plurality of storage devices
    • 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/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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
    • 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/1052Security improvement
    • 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

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)
  • Storage Device Security (AREA)

Abstract

Ein erster allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein computerimplementiertes Verfahren zur Speicheroptimierung eines partitionierten Systems, das mehrere Speicher, mindestens einen Rechenkern und mindestens eine Speicherschutzeinheit (MPU) aufweist, wobei jede Speicherschutzeinheit mehrere Register aufweist. Das Verfahren umfassend Berechnen von Laufzeitveränderungen jedes Datums einer Mehrzahl von Daten, die durch den mindestens einen Rechenkern verarbeitet werden sollen, bei Platzierung des jeweiligen Datums in jeden Speicher der mehreren Speicher basierend auf Zugriffstatistiken für das jeweilige Datum, wobei jedes Datum der Mehrzahl von Daten einem Rechtebereich oder mehreren Rechtebereichen zugewiesen sind; Bestimmen einer Platzierung der Daten in die Speicher basierend auf den berechneten Laufzeitveränderungen; und Zuteilen der mehreren Register der Speicherschutzeinheit (MPU) für die bestimmte Platzierung der Daten in den mehreren Speichern, wobei ein Register der mehreren Register einen Speicherbereich der mehreren Speicher identifiziert.

Description

  • Stand der Technik
  • Moderne Mehrkern-Steuergeräte (engl. Multicore) weisen eine Speicherhierarchie bzw. eine mehrteilige Speicheranordnung auf, wobei diese aus einer Mehrzahl von Speichern besteht. Die Speicher können sich hinsichtlich ihrer Größe und ihrer Zugriffsgeschwindigkeit unterscheiden. Lokale Speicher weisen häufig eine geringere Kapazität auf, verfügen aber über eine höhere Zugriffsgeschwindigkeit. Speicher mit einer größeren Kapazität sind dagegen meist langsamer, das heißt, diese weisen eine geringere Zugriffsgeschwindigkeit auf. Die Ausführungsgeschwindigkeit eines Programms bzw. einer Applikation auf einem Rechenkern hängt maßgeblich von der Verteilung der Daten in den zur Verfügung stehenden Speichern ab. Anmeldung DE 10 2015 218 589 beschreibt hierbei ein Verfahren zur Verbesserung der Speicherbelegung in einem System mit einer Mehrzahl von Speichern, wobei aufgrund einer Gesamtzugriffszeit entschieden wird, in welchem Speicher ein Datum bzw. Datenelement abgelegt wird.
  • Durch die gestiegene Rechenkapazität werden auf einem Steuergerät in vielen Situationen nun nicht mehr nur eine Aufgabe, sondern mehrere parallel ausgeführt. Diese Aufgaben werden aus Sicherheitsgründen voneinander separiert. Greifen beispielsweise mehrere Applikationen unwissentlich auf eine gleiche Speicherstelle zu, so werden beispielsweise gespeicherte Werte überschrieben und in einer Applikation falsch weiterverwendet. Um dies zu verhindern und eine korrekte Ausführung zu garantieren, kann eine Speicherschutzeinheit (engl. Memory Protection Unit, kurz MPU) verwendet werden. Ein derart ausgestaltetes System wird als partitioniert bezeichnet. Die Speicherschutzeinheit (MPU) weist dazu eine begrenzte Menge an Registern auf, wobei jedes Register einen Speicherbereich identifiziert (z.B. mit Hilfe einer Startadresse und einer Endadresse des Speicherbereichs). In einigen partitionierten Systemen des Stands der Technik wird zuerst die Konfiguration der Speicherschutzeinheit (MPU) durchgeführt und anschließend die Speicherzuweisung und -optimierung der Daten. Dadurch wird in manchen Situationen nur eine lokale Optimalität erreicht. Stünde eine unlimitierte Anzahl an Registern der Speicherschutzeinheit zur Verfügung, so könnte weiterhin das Verfahren gemäß DE 10 2015 218 589 verwendet werden (was aber in Realität nicht der Fall ist). Nach erfolgter Verteilung der Daten würde man die Register auf den durch die Verteilung erzeugten Speicherbereichen zuteilen (und je nach Anzahl der Speicherbereiche mehr oder weniger Register benötigen). Würde man weiter die Randbedingung der notwendigen Trennung der Daten nicht berücksichtigen, so würde eine Speicheroptimierung die vorhandene Konfiguration verletzen und so zu einem nicht ausführbaren System führen. Aufgrund der Partitionierung des Systems und der dadurch notwendigen Verwendung einer Speicherschutzeinrichtung mit einer begrenzten Anzahl an Registern besteht der Bedarf an einem neuen Verfahren zur Speicheroptimierung.
  • Offenbarung der Erfindung
  • Ein erster allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein computerimplementiertes Verfahren zur Speicheroptimierung eines partitionierten Systems, das mehrere Speicher, mindestens einen Rechenkern und mindestens eine Speicherschutzeinheit (MPU) aufweist, wobei jede Speicherschutzeinheit (MPU) mehrere Register aufweist. Das Verfahren umfasst Berechnen von Laufzeitveränderungen jedes Datums einer Mehrzahl von Daten, die durch den mindestens einen Rechenkern verarbeitet werden sollen, bei Platzierung des jeweiligen Datums in jeden Speicher der mehreren Speicher basierend auf Zugriffstatistiken für das jeweilige Datum. Das Verfahren umfasst weiterhin Bestimmen einer Platzierung der Daten in die Speicher basierend auf den berechneten Laufzeitveränderungen. Das Verfahren umfasst weiterhin Zuteilen der mehreren Register der mindestens einen Speicherschutzeinheit (MPU) für die bestimmte Platzierung der Daten in den mehreren Speichern, wobei ein Register der mehreren Register die Grenzen eines Speicherbereichs der mehreren Speicher beschreibt und jedes Datum der Mehrzahl von Daten einem Rechtebereich oder mehreren Rechtebereichen zugewiesen ist.
  • Ein zweiter allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein Computersystem, das dafür ausgelegt ist, das computerimplementierte Verfahren zur Speicheroptimierung eines partitionierten Systems nach einem der vorhergehenden Ansprüche auszuführen.
  • Ein dritter allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein Computerprogramm, das dafür ausgelegt ist, das computerimplementierte Verfahren zur Speicheroptimierung eines partitionierten Systems nach dem ersten allgemeinen Aspekt (oder einer Ausführungsform davon) auszuführen.
  • Ein vierter allgemeiner Aspekt der vorliegenden Offenbarung betrifft ein computerlesbares Medium oder Signal, das das Computerprogramm nach dem dritten allgemeinen Aspekt (oder eine Ausführungsform davon) speichert und/oder enthält.
  • Das in dieser Offenbarung vorgeschlagene Verfahren nach dem ersten allgemeinen Aspekt (oder einer Ausführungsform davon) kann in manchen Situationen die Verteilung der Daten in den mehreren Speichern derart ermöglichen, dass eine Gesamtzugriffszeit verringert wird, wenngleich das System ein partitioniertes System ist und eine Speicherschutzeinheit nur eine begrenzte Anzahl an Registern aufweist. Dadurch ist ein effizienterer Betrieb des Systems möglich und Aufgaben bzw. Applikationen auf den Rechenkernen können schneller ausgeführt werden. Die mit dem Verfahren ermöglichte Parallelisierung kann entweder zu einem kleineren und damit günstigeren Steuergerät führen oder andererseits zu einer Verwendung des Steuergeräts für eine erhöhte Anzahl an Aufgaben. Dabei ist die Verwendung des in dieser Offenbarung vorgeschlagenen Verfahrens nicht auf Steuergeräte begrenzt, sondern kann auch in anderen Systemen, die eine mehrteilige Speicheranordnung, die unterschiedlich schnelle und/oder große Speicher umfasst, verwendet werden. Dies ermöglicht einerseits die sichere Verwendung einzelner Daten ohne die Gefahr der unwissentlichen Überschreibung oder die Gefahr einer Kollision bei unwissentlich gleichzeitigem Zugriff auf ebendiese Daten durch mehrere Applikationen, in Verbindung mit einer verbesserten Verteilung der Daten in den Speichern, um einen zeiteffizienten Zugriff der Daten durch die Rechenkerne zu ermöglichen.
  • Einige Begriffe werden in der vorliegenden Offenbarung in folgender Weise verwendet:
    • Ein „Speicher“ kann ein Datenspeicher oder auch ein Datenträger sein, auf/in dem Daten abgelegt (gespeichert) werden. Ein Speicher kann von einem Computer oder irgendeiner Art von Peripheriegerät ausgelesen oder beschrieben werden. Ein Speicher kann ein Halbleiterspeicher und/oder ein Magnetspeicher oder ein Speicher basierend auf einer hier nicht genannten Technologie sein. Ein Speicher kann ein flüchtiger Speicher und/oder nicht-flüchtiger Speicher sein. Ein Speicher kann eines von RAM, ROM, EPROM, HDD, SDD, ... umfassen, auf/in dem Daten gespeichert werden.
  • Ein „Datum“ oder „Daten“, wobei Datum eine einzelne Einheit bzw. ein einzelnes Element von Daten meint, ist oder sind „eine reinterpretierbare Darstellung von Information in formalisierter Art, geeignet zur Kommunikation, Interpretation oder Verarbeitung“ (nach ISO/IEC 2382-1). Ein Datum kann in binärer Form vorliegen. Ein Datum kann beispielsweise eine Variable, eine Konstante und/oder eine Funktion sein.
  • Eine „Speicherschutzeinheit“ (engl. Memory Protection Unit) kann eine Hardware- und/oder Softwareeinheit sein. Eine Speicherschutzeinheit weist Register auf, wobei die Register Speicherbereiche enthalten oder diese beschreiben. Eine Speicherschutzeinheit kann einen eigenen Speicher, eine vorkonfigurierte Hardware-Logik und eine interne Datenverbindung aufweisen. Eine Speicherschutzeinheit kann eine Schnittstelle nach außen beispielsweise zu einem Rechenkern oder einer Kommunikationsverbindung aufweisen. Eine Speicherschutzeinheit kann Teil eines Prozessors (engl. Central Processing Unit, CPU) sein.
  • Ein „Speicherbereich“ bzw. ein Adressbereich kann ein abgegrenzter Bereich eines Speichers sein. Auf eine Speicherstelle kann mittels physischer oder virtueller Adressen zugegriffen werden, wobei ein Speicherbereich eine Adresse oder eine zusammenhängende Mehrzahl von einzelnen Adressen umfassen kann, wobei „zusammenhängend“ meint, dass einzelne Adressen nebeneinander liegen. Ein Speicherbereich kann deshalb mit einer Startadresse und einer Endadresse identifiziert werden.
  • Ein „Rechenkern“ meint den zentralen Teil eines Mikroprozessors, wobei auch mehrere Rechenkerne in einem Mikroprozessor vorhanden sein können. Ein Rechenkern kann an eingegebenen Daten und/oder Informationen arithmetisch und/oder logische Operationen durchführen.
  • Ein „Rechtebereich“ kann beispielsweise ein Kontext sein, in dem ein Datum, das diesem Rechtebereich zugewiesen ist, verwendet wird. Beispielsweise kann dieser Rechtebereich durch eine von einem Rechenkern auszuführende Applikation, die bestimmte Daten benötigt, welche dann zu ebendiesen Rechtebereich bzw. Rechtekontext gehören, bestimmt werden.
  • Ein „Programm“ oder eine „Applikation“ kann beispielsweise eine Anwendungssoftware zur Lösung von Benutzerproblemen umfassen und/oder Systemsoftware und/oder Dienstprogramme umfassen. Dies kann Software für den korrekten Ablauf einer Rechenanlage oder können Programme, die die Programmerstellung unterstützen und allgemeine Dienstleistungen bereitstellen, beispielsweise Formatierung, Dateiverwaltung, Datentransfer, etc. sein. Ein Programm oder eine Applikation kann auch Teile eines Betriebssystems, Compiler, Datenbanksysteme, Regelungssoftware und/oder Steuerungssoftware oder alle Arten von Software und/oder Computerprogramme umfassen.
  • Ein „Fahrzeug“ kann jegliche Vorrichtung, die Passagiere und/oder Fracht transportiert, sein. Ein Fahrzeug kann ein Kraftfahrzeug (zum Beispiel ein PKW oder ein LKW) sein, aber auch ein Schienenfahrzeug. Ein Fahrzeug kann auch ein motorisiertes, nicht motorisiertes und/oder ein muskelkraftbetriebenes Zwei- oder Dreirad sein. Allerdings können auch schwimmende und fliegende Vorrichtungen Fahrzeuge sein. Fahrzeuge können zumindest teilautonom operierend oder assistiert sein.
  • Kurzbeschreibung der Figuren
    • 1 illustriert schematisch ein computerimplementiertes Verfahren zur Speicheroptimierung eines partitionierten Systems.
    • 2 illustriert schematisch eine beispielhafte Ausführungsform eines partitionierten Systems, das mehrere Speicher, mindestens einen Rechenkern und eine Speicherschutzeinheit aufweist.
    • 3 illustriert schematisch eine beispielhafte Ausführungsform eines partitionierten Systems, das mehrere Speicher, zwei Rechenkerne und mindestens zwei Speicherschutzeinheiten aufweist.
  • Detaillierte Beschreibung
  • Offenbart wird ein computerimplementiertes Verfahren 100 zur Speicheroptimierung eines partitionierten Systems 50, das mehrere Speicher 10 mindestens einen Rechenkern 20 und mindestens eine Speicherschutzeinheit (engl. Memory Protection Unit) (MPU) 30 aufweist, wobei jede Speicherschutzeinheit 30 mehrere Register aufweist. 2 zeigt eine beispielhafte Ausführungsform des partitionierten Systems 50. In dem beispielhaften System 50 in 2 sind drei Rechenkerne 20, 21 und 22 über eine Speicherschutzeinheit 30 mit drei beispielhaften Speichern 10, 11 und 12 verbunden. Als Verbindungsleitung 9 kann dabei zum Beispiel ein Bussystem oder eine andere Form einer Signalleitung dienen. 3 zeigt eine weitere beispielhafte Ausführungsform des partitionierten Systems 50. In diesem beispielhaften System 50 in 3 sind zwei Rechenkerne 20 und 21 jeweils über eine Speicherschutzeinheit 30 und 31 mit einer Signalleitung verbunden. In einem weiteren Beispiel kann diese Ausführungsform um eine weitere Speicherschutzeinheit 32, die mit den jeweils einzelnen Speicherschutzeinheiten 30 und 31 verbunden ist, das heißt, zwischen die Signalleitung und die einzelnen Speicherschutzeinheiten geschaltet ist, erweitert werden. Das System 50 kann beispielsweise >=1, >=2, >=3, >=4, >=5, >=6 oder mehr Rechenkerne 20 aufweisen. Das System 50 kann >=1, >=2, >=3, >=4, >=5, >=6, >=10, >=20 oder mehr Speicher 10 aufweisen. Das System 50 kann beispielsweise >=1, >=2, >=3, >=4, >=5, >=6 oder mehr Speicherschutzeinheiten 30, die in unterschiedlichen Konfigurationen angeordnet sein können und/oder miteinander verschaltet sein können, aufweisen. Zum Beispiel kann jeder Rechenkern eine eigene Speicherschutzeinheit aufweisen. In einem weiteren Beispiel können auch 1, 2 oder mehr Rechenkerne mit einer Speicherschutzeinheit 30 verbunden werden. In einem weiteren Beispiel können auch alle Rechenkerne mit nur einer Speicherschutzeinheit 30 verbunden werden. In einem weiteren Beispiel können mehrere Speicherschutzeinheiten 30 hintereinander geschaltet werden. Jede der mindestens einen Speicherschutzeinheit 30 kann >=1, >=2, >=3, >=4, >=5, >=6, >=10, >=20 oder mehr Register aufweisen (z.B. zwischen 3 und 20 Register). Die Anzahl der mehreren Register der mindestens einen Speicherschutzeinheit 30 kann limitiert sein (z.B. weniger als 50 oder weniger als 20). Ein beispielhaftes Verfahren 100 ist in 1 gezeigt.
  • Das Verfahren 100 umfasst Berechnen 110 von Laufzeitveränderungen jedes Datums einer Mehrzahl von Daten, die durch den mindestens einen Rechenkern 20 verarbeitet werden sollen, bei Platzierung des jeweiligen Datums in jeden Speicher 10 der mehreren Speicher 10 basierend auf Zugriffstatistiken für das jeweilige Datum, wobei jedes Datum der Mehrzahl von Daten einem Rechtebereich oder mehreren Rechtebereichen zugewiesen ist. Zugriffstatistiken können dabei auf Basis einer Lesezugriffshäufigkeit und/oder Schreibzugriffshäufigkeit für ein Datum der Mehrzahl von Daten, und entsprechend auf der Dauer eines Lesezugriffs und/oder der Dauer eines Schreibzugriffs auf ein Datum der Mehrzahl von Daten in einem Speicher 10 ermittelt sein (d.h. basierend auf historischen Daten und/oder simulierten Daten). Alternativ kann das Berechnen 110 der Laufzeitveränderungen auch für einzelne Gruppen von Daten, die beispielsweise aufgrund einer bestimmten Klassifizierung zusammen betrachtet werden können, erfolgen. Hierbei basiert das Berechnen 110 nicht auf Zugriffstatistiken eines einzelnen Datums der Mehrzahl von Daten, sondern einer Zusammenfassung von Daten in Form einer Gruppe. Laufzeitveränderungen können dabei auf einer Differenz bzw. auf dem Ergebnis eines Vergleichs zwischen einer Zugriffszeit bei einer Platzierung eines Datums in einem Speicher und der Zugriffszeit bei einer anderen Platzierung des Datums (in einem anderen Speicher) basieren. Zum Beispiel, wenn eine zweite Platzierung gegenüber einer ersten Platzierung zu einer Verkürzung der Zugriffszeit führt, kann die Differenz der Zugriffszeiten ein Laufzeitgewinn sein. Ein Laufzeitgewinn eines Datums kann die Differenz einer Zugriffszeit bei einer bestimmten Platzierung des Datums und der Zugriffszeit bei einer schlechteren Platzierung (das heißt eine Platzierung mit längerer bzw. höherer Zugriffszeit) des Datums sein, wobei eine schlechtere Platzierung dann eine Referenz sein kann. In einem anderen Beispiel, wenn eine zweite Platzierung gegenüber einer ersten Platzierung zu einer Erhöhung der Zugriffszeit führt, kann die Differenz der Zugriffszeiten ein Laufzeitverlust sein. Ein Laufzeitverlust eines Datums kann dabei die Differenz einer Zugriffszeit bei einer bestimmten Platzierung des Datums und der Zugriffszeit bei einer besseren Platzierung (das heißt eine Platzierung mit kürzerer bzw. kleinerer Zugriffszeit) des Datums sein, wobei eine bessere Platzierung dann eine Referenz sein kann. Weiter kann eine kürzeste Laufzeit eine Referenz für die Berechnung eines Laufzeitverlustes sein. Laufzeit kann die Gesamtlaufzeit einer Applikation sein, wobei eine Verringerung einer Zugriffszeit auf ein Datum zu einer Verringerung der Gesamtlaufzeit der Applikation führen kann und eine Erhöhung der Zugriffszeit auf ein Datum zu einer Erhöhung der Gesamtlaufzeit der Applikation führen kann. In einem weiteren Beispiel kann ein beliebiger Wert eine Referenz sein, um eine Laufzeitveränderung, zum Beispiel einen Laufzeitgewinn und/oder einen Laufzeitverlust, einer bestimmten Platzierung eines Datums zu berechnen.
  • Das Verfahren umfasst weiterhin Bestimmen 120 einer Platzierung der Daten in die Speicher 10 basierend auf den berechneten Laufzeitveränderungen. Durch die errechneten Laufzeitveränderungen kann für jedes Datum der Mehrzahl von Daten ein Speicherort, der für ebendieses Datum in Bezug auf den Speicherzugriff vorteilhaft (z.B. theoretisch optimal) wäre, bestimmt werden. Auf dieser Basis kann eine Anordnung der Gesamtheit der Daten in den mehreren Speichern 10 bestimmt werden, die eine Gesamtzugriffszeit verringert gegenüber anderen Anordnungen und/oder (annähernd) minimal ist, oder anders gesprochen, die Platzierung der Daten in die Speicher 10 (annähernd) optimiert.
  • Das Verfahren umfasst weiterhin Zuteilen 130 der mehreren Register der mindestens einen Speicherschutzeinheit 30 für die bestimmte Platzierung der Daten in den mehreren Speichern 10, wobei ein Register der mehreren Register einen Speicherbereich der mehreren Speicher 10 identifiziert. Das Identifizieren eines Speicherbereichs durch ein Register der mehreren Register kann dabei durch die Grenzen des Speicherbereichs (zum Beispiel mit Hilfe einer Startadresse und einer Zieladresse) erfolgen. Jeder Rechenkern 20, der verschiedene Aufgaben bzw. Applikationen ausführt, muss zur Ausführung dieser Aufgaben bzw. Applikationen auf bestimmte Daten, die zuvor den Speicherorten zugewiesen worden sind, zugreifen. Dabei ist zu verhindern, dass ein Rechenkern beim Ausführen einer Aufgabe auf einen Speicherbereich bzw. auf die dort befindlichen Daten zugreift, für deren Verwendung der Rechenkern 20 keine Erlaubnis besitzt. Das Zuteilen 130 umfasst daher das Ermitteln, welcher Rechenkern 20 auf welchen Speicherbereich zugreifen können muss und/oder darf. Die Speicherbereiche bzw. Adressbereiche, die durch eine Startadresse und eine Endadresse beschrieben werden können, müssen in den Registern der mindestens einen Speicherschutzeinheit 30, die dann dem Rechenkern 20, der auf ebendiese Speicherbereiche im Zuge seiner zu ausführenden Aufgabe zugreifen muss und/oder darf, zugeteilt werden, abgelegt werden. Hieraus ergibt sich eine Anzahl theoretisch notwendiger Register in der mindestens einen Speicherschutzeinheit 30.
  • Das Verfahren kann weiterhin das Zusammenfassen 140 von Daten, die in demselben Rechtebereich und in demselben Speicher 10 sind, umfassen. Jedes Datum der Mehrzahl von Daten ist durch die Aufgabe bzw. Applikation, für die ebendieses Datum vorgesehen ist, einem Rechtebereich bzw. einem Rechtekontext zugewiesen. Liegen nun mehrere Daten desselben Rechtebereichs bzw. Rechtekontexts in demselben Speicher 10, so können diese Daten zusammengefasst werden. Zusammenfassen 140 kann dabei meinen, die Daten desselben Rechtebereichs in demselben Speicher nebeneinander abzulegen, sodass sich größere Speicherbereiche ergeben können. Das Zusammenfassen 140 kann dabei einen Einfluss auf die Anzahl der theoretisch notwendigen Register in der mindestens einen Speicherschutzeinheit 30 haben. Beispielsweise kann durch das Zusammenfassen 140 die Anzahl theoretisch notwendiger Register in der mindestens einen Speicherschutzeinheit 30 reduziert bzw. verringert werden.
  • Das Verfahren kann, wie in 1 optional gezeigt, weiterhin, wenn bei Zuteilung der mehreren Register der mindestens einen Speicherschutzeinheit 30 für die bestimmte Platzierung der Daten in den mehreren Speichern 10 mehr Register benötigt werden als in der mindestens einen Speicherschutzeinheit 30 vorhanden sind, Zusammenfassen 150 von Daten, die in unterschiedlichen Speichern, aber gleichem Rechtebereich sind, bis die Anzahl der Register in der mindestens einen Speicherschutzeinheit 30 ausreicht, umfassen. Wie voranstehend beschrieben, resultiert aus dem Zuteilen 130 die Anzahl der theoretisch notwendigen Register. Wenn die Anzahl der theoretisch notwendigen Register die vorhandenen Register in der mindestens einen Speicherschutzeinheit übersteigt, können Daten, die in unterschiedlichen Speichern, aber gleichem Rechtebereich sind, zusammengefasst 150 werden. Dadurch kann sich die Anzahl notwendiger Speicherbereiche verringern und daraus folgend kann sich auch die Anzahl der notwendigen Register in der mindestens einen Speicherschutzeinheit 30 verringern. Dieser Vorgang kann durchgeführt werden, bis die Anzahl der Register, die in der mindestens einen Speicherschutzeinheit 30 vorhanden sind, ausreicht. Das Zusammenfassen 150 kann selektiv nur für die Speicherschutzeinheiten 30, deren Anzahl der Register nicht ausreicht, getrennt für alle Speicherschutzeinheiten 30 und/oder gesamtheitlich für alle oder einem Teil der mindestens einen Speicherschutzeinheit 30 ausgeführt werden.
  • Das Zusammenfassen kann auf verschiedene Arten von statten gehen. Zum Beispiel kann das Zusammenfassen 150 von Daten auf Basis einer Laufzeitveränderung durchgeführt werden. In einem Beispiel können Daten mit einem geringen Laufzeitgewinn zuerst zusammengefasst werden. Die Daten, die beim Bestimmen 120 der Platzierung der Daten, derart platziert worden sind, dass ihr (realisierter) Laufzeitgewinn ein niedriger Laufzeitgewinn ist, das heißt, geringer als ein Großteil der Laufzeitgewinne anderer Daten, können beim Zusammenfassen 150 zuerst zusammengefasst werden. In einem Beispiel kann das Zusammenfassen 150 mit Daten mit einem niedrigsten Laufzeitgewinn begonnen werden und mit Daten nach ansteigenden Laufzeitgewinnen fortgeführt werden. Beispielsweise kann das Zusammenfassen 150 mit Daten, die einen Laufzeitgewinn haben, der geringer ist als ein Großteil der Laufzeitgewinne anderer Daten, begonnen werden. Anders ausgedrückt, kann das Zusammenfassen 150 mit Daten begonnen werden, deren Zusammenfassen 150 eine nur geringe Verschlechterung bzw. Verringerung eines gesamten Laufzeitgewinns (das heißt, dass die Gesamtlaufzeit annähernd gleich bleibt) erzeugt. In einem anderen Beispiel können Daten mit einem hohen Laufzeitverlust zuerst zusammengefasst werden. Die Daten, die beim Bestimmen 120 der Platzierung der Daten, derart platziert worden sind, dass ihr (realisierter) Laufzeitverlust ein hoher Laufzeitverlust ist, das heißt, höher als ein Großteil der Laufzeitverluste anderer Daten, können beim Zusammenfassen 150 zuerst zusammengefasst werden. In einem Beispiel kann das Zusammenfassen 150 mit Daten mit einem höchsten Laufzeitverlust begonnen werden und mit Daten nach absteigenden Laufzeitverlusten fortgeführt werden. In einem anderen Beispiel kann das Zusammenfassen 150 auch mit Daten mit einem anderen hohen Laufzeitverlust begonnen werden. Anders ausgedrückt, kann das Zusammenfassen 150 mit Daten begonnen werden, deren Zusammenfassen 150 eine nur geringe Verschlechterung bzw. Vergrößerung eines gesamten Laufzeitverlustes (das heißt, dass die Gesamtlaufzeit annähernd gleich bleibt) erzeugt. In einem anderen Beispiel können die Daten, die in unterschiedlichen Speichern aber gleichem Rechtebereich sind, auch beliebig zusammengefasst werden. Durch das Zusammenfassen 150 kann sich die Gesamtzugriffszeit bzw. die Laufzeit einer Aufgabe, einer Applikation bzw. eines Programms verlängern/verschlechtern. Durch dieses Vorgehen kann allerdings die Anzahl der theoretisch notwendigen Register verringert werden. Das Zusammenfassen 150 kann durchgeführt werden, bis die Anzahl der Register, die in der mindestens einen Speicherschutzeinheit 30 vorhanden sind, ausreicht. Das Zusammenfassen 150 kann einmal, zweimal, dreimal oder vielfach durchgeführt werden
  • Das Verfahren 100 kann weiterhin Abbrechen 160 des Verfahrens, wenn das Zusammenfassen 150 der Daten auf Basis einer Laufzeitveränderung nicht möglich ist, umfassen. Kann das Zusammenfassen 150 der Daten nicht so durchgeführt werden, dass die Anzahl der Register, die in der mindestens einen Speicherschutzeinheit 30 vorhanden sind, ausreicht, bzw. anders ausgedrückt, übersteigt die Anzahl der theoretisch notwendigen Register auch dann noch die Anzahl der Register der mindestens einen Speicherschutzeinheit 30, wenn ein weiteres Zusammenfassen 150 der Daten nicht mehr möglich ist, kann ein Abbrechen 160 des Verfahrens erfolgen. Ein Abbrechen 160 des Verfahrens kann eine Warnmeldung oder eine Fehlermeldung an andere Komponenten des Systems, an einen Benutzer, oder ein Backend erzeugen. In einem Beispiel kann das Abbrechen 160 eine Meldung an andere partitionierte Systeme erzeugen, sodass diese die Funktionen, Applikationen und/oder Programme übernehmen bzw. ausführen.
  • Der Laufzeitgewinn kann in verschiedenen Weisen ermittelt werden. Wie voranstehend beschrieben, wird in einem ersten Schritt des Verfahrens 100 ein Berechnen 110 der Laufzeitveränderungen jedes Datums der Mehrzahl von Daten durchgeführt. In einem Beispiel kann eine Laufzeitveränderung ein Laufzeitgewinn sein. In manchen Beispielen kann der Laufzeitgewinn die Differenz zwischen einer Laufzeit bei einer bestimmten Platzierung des Datums und der Laufzeit bei der schlechtesten Platzierung des Datums sein. Dabei kann eine Platzierung des Datums bestimmt werden, die eine längste Gesamtzugriffszeit aufweist, das heißt, die schlechteste Platzierung für das Datum. Die rechnerische Differenz zwischen der Zugriffszeit (das heißt Laufzeit) bei einer bestimmten Platzierung eines Datums und einer schlechtesten Platzierung des Datums kann ein Laufzeitgewinn sein. Das heißt, ausgehend von einer schlechtesten Platzierung eines Datums verringert sich die Zugriffszeit auf dieses Datum bei einer bestimmten (das heißt, bei einer anderen) Platzierung, wobei sich durch eine verringerte Zugriffszeit die Laufzeit einer Applikation oder eines Programms, das in dem Rechenkern 20 ausgeführt wird, verringert. Anders ausgedrückt, als Referenzwert kann für einen Laufzeitgewinn eines Datums bei einer bestimmten Platzierung eine Zugriffszeit einer schlechtesten Platzierung verwendet werden. In einem anderen Beispiel kann als Referenzwert (das heißt, Vergleichswert) eine Zugriffszeit verwendet werden, die höher ist als ein Großteil der Zugriffszeiten von Platzierungen des Datums.
  • Alternativ kann der Laufzeitgewinn die Differenz zwischen einer Laufzeit (das heißt Zugriffszeit) bei einer bestimmten Platzierung des Datums und einer festgelegten, Laufzeit sein. Hierbei kann ein fiktiver Wert vorgegeben werden, auf den die Laufzeitgewinne der einzelnen Daten referenziert werden können, das heißt, aus der Differenzbildung der bestimmten Laufzeiten zu diesem fiktiven Wert können die Laufzeitgewinne (gegenüber ebendiesem fiktiven Wert) berechnet werden. In einem Beispiel kann dieser festgelegte Wert eine Laufzeit sein, die höher ist als eine höchste Laufzeit von Laufzeiten basierend auf Erfahrungswerten aus der Vergangenheit. In einem anderen Beispiel kann ein beliebiger Wert benutzt werden, der größer ist als der Wert einer längsten Laufzeit eines Datums.
  • Ein Laufzeitverlust kann in verschiedenen Weisen ermittelt werden. Wie voranstehend beschrieben, wird in einem ersten Schritt des Verfahrens 100 ein Berechnen 110 der Laufzeitveränderungen jedes Datums der Mehrzahl von Daten durchgeführt. In einem anderen Beispiel kann eine Laufzeitveränderung ein Laufzeitverlust sein. In manchen Beispielen kann der Laufzeitverlust die Differenz zwischen einer Laufzeit bei einer bestimmten Platzierung des Datums und der Laufzeit bei der besten Platzierung des Datums sein. Dabei kann eine Platzierung bestimmt werden, die eine kürzeste Gesamtzugriffszeit aufweist, das heißt, die beste Platzierung für das Datum. Die rechnerische Differenz zwischen der Zugriffszeit (das heißt Laufzeit) bei einer bestimmten Platzierung eines Datums und einer besten Platzierung des Datums kann ein Laufzeitverlust sein. Das heißt, ausgehend von einer besten Platzierung eines Datums vergrößert sich die Zugriffszeit auf dieses Datum bei einer bestimmten (das heißt, bei einer anderen) Platzierung, wobei sich durch eine vergrößerte Zugriffszeit die Laufzeit einer Applikation oder eines Programms, das in dem Rechenkern 20 ausgeführt wird, vergrößert. Anders ausgedrückt, als Referenzwert kann für einen Laufzeitverlust eines Datums bei einer bestimmten Platzierung eine Zugriffszeit einer besten Platzierung verwendet werden. In einem anderen Beispiel kann als Referenzwert (das heißt, Vergleichswert) eine Zugriffszeit verwendet werden, die niedriger ist als ein Großteil der Zugriffszeiten von Platzierungen des Datums.
  • Alternativ kann der Laufzeitverlust die Differenz zwischen einer Laufzeit (das heißt Zugriffszeit) bei einer bestimmten Platzierung des Datums und einer festgelegten, Laufzeit sein. Hierbei kann ein fiktiver Wert vorgegeben werden, auf den die Laufzeitverluste der einzelnen Daten referenziert werden können, das heißt, aus der Differenzbildung der bestimmten Laufzeiten zu diesem fiktiven Wert können die Laufzeitverluste (gegenüber ebendiesem fiktiven Wert) berechnet werden. In einem Beispiel kann dieser festgelegte Wert eine Laufzeit sein, die niedriger ist als eine niedrigste Laufzeit von Laufzeiten basierend auf Erfahrungswerten aus der Vergangenheit. In einem anderen Beispiel kann ein beliebiger Wert benutzt werden, der niedriger ist als der Wert einer niedrigsten Laufzeit eines Datums.
  • Weiterhin kann der mindestens eine Rechenkern eine oder mehrere Applikationen ausführen, wobei einem Rechenkern der Zugriff auf Daten nur erlaubt werden kann, wenn die Daten einem Rechtebereich, der durch die eine oder die mehreren auszuführenden Applikation bestimmt ist, zugewiesen sind. Wie voranstehend erläutert, kann der Rechenkern 20 Aufgaben bzw. Applikationen ausführen. Für eine entsprechende Aufgabe bzw. Applikation benötigt der Rechenkern bestimmte Daten, die dadurch dem Rechtebereich bzw. Rechtekontext, der durch die Applikation bestimmt wird, zugeordnet werden können. Einer Applikation können dabei mehrere Rechtebereiche zugewiesen sein. Ein Datum kann optional auch mehreren Rechtebereichen zugewiesen werden. Greift der Rechenkern auf Daten zu, die nicht einem Rechtebereich, der durch die von dem Rechenkern auszuführenden Applikation bestimmt werden kann, zugeordnet sind, so wird dem Rechenkern der Zugriff nicht erlaubt, oder anders ausgedrückt, dem Rechenkern wird der Zugriff auf Daten nur erlaubt, wenn der Rechenkern diese Daten zur Ausführung seiner Applikation bzw. seiner Aufgabe benötigt.
  • Das System 50 der vorliegenden Offenbarung kann verschieden ausgestaltet und/oder in verschiedenen Anwendungen eingesetzt werden.
  • Zum Beispiel kann das System 50, das mehrere Speicher 10, 11, mindestens einen Rechenkern 20, 21 und mindestens eine Speicherschutzeinheit 30 aufweist, Teil einer Komponente eines Fahrzeugs sein. Zum Beispiel kann die Komponente ein eingebettetes System sein. In manchen Beispielen kann die Komponente ein Steuergerät in einem Fahrzeug sein. In anderen Beispielen kann die Komponente eine zentrale Recheneinheit eines Fahrzeugs, eine zentrale Kommunikationsschnittstelle eines Fahrzeugs oder eine andere Komponente des Fahrzeugs sein- Dabei können zum Beispiel >=1, >=2, >=5, >=10, >=50 oder >=100 Komponenten (z. B. Steuergeräte) in einem Fahrzeug angeordnet sein.
  • Das System 50 kann aber auch in anderen Gebieten der Computertechnik und/oder der Datenverarbeitung eingesetzt werden. Zum Beispiel kann das das System 50 ein eingebettetes System (z.B. ein Steuergerät) in einem anderen System als einem Fahrzeug (z.B. einem Roboter, einer Industrieanlage oder - Maschine, einem Werkzeug, einem Haushaltsgerät, einem Gebäudetechnik-System oder anderen Systemen sein).
  • Offenbart wird weiterhin ein Computersystem 200, das dafür ausgelegt ist, das computerimplementierte Verfahren 100 zur Speicheroptimierung eines partitionierten Systems 50 auszuführen. Das Computersystem 200 kann das partitionierte System 50 sein. Somit kann das Computersystem 50 den mindestens einen Rechenkern 20 (oder z.B. alle Rechenkerne), die mehreren Speicher 10 (oder z.B. alle Speicher) und/oder die mindestens eine Speicherschutzeinheit 30 aufweisen.
  • Offenbart wird weiterhin ein Computerprogramm, das dafür ausgelegt ist, das computerimplementierte Verfahren 100 zur Speicheroptimierung eines partitionierten Systems 50 auszuführen. Das Computerproramm kann (zum Teil) das computerimplementierte Verfahren 100 selbst sein. Das Computerprogramm kann z.B. in interpretierbarer oder in kompilierter Form vorliegen. Es kann (auch in Teilen) zur Ausführung z.B. als Bit- oder Byte-Folge in den RAM eines Computers geladen werden. Das Computerprogramm kann mehrere Teile umfassen, wobei mindestens ein Teil auf dem mindestens einen Rechenkern 20 und ein anderer Teil auf der mindestens einen Speicherschutzeinheit 30 ausgeführt wird.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • DE 102015218589 [0001, 0002]

Claims (15)

  1. Computerimplementiertes Verfahren (100) zur Speicheroptimierung eines partitionierten Systems, das mehrere Speicher (10, 11), mindestens einen Rechenkern (20, 21) und mindestens eine Speicherschutzeinheit (30, 31) (MPU) aufweist, wobei jede Speicherschutzeinheit (30) mehrere Register aufweist, umfassend: Berechnen (110) von Laufzeitveränderungen jedes Datums einer Mehrzahl von Daten, die durch den mindestens einen Rechenkern verarbeitet werden sollen, bei Platzierung des jeweiligen Datums in jeden Speicher der mehreren Speicher basierend auf Zugriffstatistiken für das jeweilige Datum, wobei jedes Datum der Mehrzahl von Daten einem Rechtebereich oder mehreren Rechtebereichen zugewiesen ist, Bestimmen (120) einer Platzierung der Daten in die Speicher basierend auf den berechneten Laufzeitveränderungen, Zuteilen (130) der mehreren Register der mindestens einen Speicherschutzeinheit (MPU) für die bestimmte Platzierung der Daten in den mehreren Speichern, wobei ein Register der mehreren Register einen Speicherbereich der mehreren Speicher identifiziert.
  2. Computerimplementiertes Verfahren gemäß Anspruch 1, weiter umfassend: Zusammenfassen (140) von Daten, die in demselben Rechtebereich und in demselben Speicher sind.
  3. Computerimplementiertes Verfahren gemäß Anspruch 1 oder 2, weiter umfassend, wenn bei Zuteilung der mehreren Register der mindestens einen Speicherschutzeinheit (30, 31) für die bestimmte Platzierung der Daten in den mehreren Speichern mehr Register benötigt werden als in der mindestens einen Speicherschutzeinheit (MPU) vorhanden sind, Zusammenfassen (150) von Daten, die in unterschiedlichen Speichern, aber gleichem Rechtebereich sind, bis die Anzahl der Register in der mindestens einen Speicherschutzeinheit (MPU) ausreicht.
  4. Computerimplementiertes Verfahren gemäß Anspruch 3, wobei das Zusammenfassen (150) von Daten auf Basis einer Laufzeitveränderung durchgeführt wird.
  5. Computerimplementiertes Verfahren gemäß Anspruch 3 oder 4, ferner umfassend Abbrechen (160) des Verfahrens, wenn das Zusammenfassen (150) der Daten auf Basis einer Laufzeitveränderung nicht möglich ist.
  6. Computerimplementiertes Verfahren gemäß einem der vorhergehenden Ansprüche, wobei die Laufzeitveränderung die Differenz zwischen einer Laufzeit bei einer bestimmten Platzierung des Datums und der Laufzeit bei der schlechtesten Platzierung oder der besten Platzierung des Datums ist.
  7. Computerimplementiertes Verfahren gemäß einem der vorhergehenden Ansprüche, wobei die Laufzeitveränderung die Differenz zwischen einer Laufzeit bei einer bestimmten Platzierung des Datums und einer festgelegten Laufzeit ist.
  8. Computerimplementiertes Verfahren gemäß einem der vorhergehenden Ansprüche, wobei die Anzahl der mehreren Register der mindestens einen Speicherschutzeinheit limitiert ist.
  9. Computerimplementierte Verfahren gemäß einem der vorhergehenden Ansprüche, wobei die Grenzen eines Speicherbereichs durch eine Startadresse und eine Endadresse beschrieben werden.
  10. Computerimplementiertes Verfahren gemäß einem der vorhergehenden Ansprüche, wobei ein Datum einer Mehrzahl von Daten eine Variable, Konstante oder eine Funktion ist.
  11. Computerimplementiertes Verfahren gemäß einem der vorhergehenden Ansprüche, wobei der mindestens eine Rechenkern eine oder mehrere Applikationen ausführt, und einem Rechenkern der Zugriff auf Daten nur erlaubt wird, wenn die Daten einem Rechtebereich, der durch die eine oder die mehreren auszuführenden Applikationen bestimmt ist, zugewiesen sind.
  12. Computerimplementiertes Verfahren gemäß einem der vorhergehenden Ansprüche, wobei das System, das mehrere Speicher (10, 11), mindestens einen Rechenkern (20, 21) und mindestens eine Speicherschutzeinheit (30, 31) (MPU) aufweist, Teil eines Steuergeräts in einem Fahrzeug ist.
  13. Computersystem, dafür ausgelegt, das computerimplementierte Verfahren (100) zur Speicheroptimierung eines partitionierten Systems nach einem der vorhergehenden Ansprüche auszuführen.
  14. Computerprogramm, dafür ausgelegt, das computerimplementierte Verfahren (100) zur Speicheroptimierung eines partitionierten Systems nach einem der Ansprüche 1 bis 12 auszuführen.
  15. Computerlesbares Medium oder Signal, das das Computerprogramm nach Anspruch 14 speichert und/oder enthält.
DE102022202335.8A 2022-03-09 2022-03-09 Computerimplementiertes verfahren zur speicheroptimierung eines partitionierten systems Pending DE102022202335A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE102022202335.8A DE102022202335A1 (de) 2022-03-09 2022-03-09 Computerimplementiertes verfahren zur speicheroptimierung eines partitionierten systems
US18/176,956 US20230289085A1 (en) 2022-03-09 2023-03-01 Computer-implemented method for optimizing the memory of a partitioned system
CN202310224784.5A CN116737061A (zh) 2022-03-09 2023-03-09 用于分区系统的存储器优化的计算机实现的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022202335.8A DE102022202335A1 (de) 2022-03-09 2022-03-09 Computerimplementiertes verfahren zur speicheroptimierung eines partitionierten systems

Publications (1)

Publication Number Publication Date
DE102022202335A1 true DE102022202335A1 (de) 2023-09-14

Family

ID=87760001

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022202335.8A Pending DE102022202335A1 (de) 2022-03-09 2022-03-09 Computerimplementiertes verfahren zur speicheroptimierung eines partitionierten systems

Country Status (3)

Country Link
US (1) US20230289085A1 (de)
CN (1) CN116737061A (de)
DE (1) DE102022202335A1 (de)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015218589A1 (de) 2015-09-28 2017-03-30 Robert Bosch Gmbh Verfahren und Vorrichtung zum Betreiben eines Many-Core-System

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102015218589A1 (de) 2015-09-28 2017-03-30 Robert Bosch Gmbh Verfahren und Vorrichtung zum Betreiben eines Many-Core-System

Also Published As

Publication number Publication date
US20230289085A1 (en) 2023-09-14
CN116737061A (zh) 2023-09-12

Similar Documents

Publication Publication Date Title
DE102005022893B3 (de) Verfahren zum Zugreifen auf Speicherbereiche einer Speicherkarte durch eine anfordernde Anwendung und Speicherkarte
DE102013022405B3 (de) Schutz globaler Register in einem Multithreaded-Prozessor
EP2807558B1 (de) Speichercontroller zur bereitstellung mehrerer definierter bereiche eines massenspeichermediums als unabhängige massenspeicher an einen master-betriebssystem-kern zur exklusiven bereitstellung an virutelle maschinen
DE102014201682A1 (de) Verfahren zur Koexistenz von Software mit verschiedenen Sicherheitsstufen in einem Multicore-Prozessorsystem
DE102015002191A1 (de) Sicherheits-Hypervisor-Funktion
DE112014000340T5 (de) Vorablesezugriff auf Daten für einen Chip mit einem übergeordneten Kern und einem Scout-Kern
EP3080668B1 (de) Verfahren zur beeinflussung eines steuerprogramms eines steuergeräts
DE102018202446A1 (de) Verfahren zum Modularisieren einer Softwarearchitektur
DE102013016114B3 (de) Bussystem und Verfahren für geschützte Speicherzugriffe
DE102022202335A1 (de) Computerimplementiertes verfahren zur speicheroptimierung eines partitionierten systems
DE102012210482A1 (de) Verfahren und System zum Migrieren von Geschäftsprozessinstanzen
DE112019000308T5 (de) Computerprogrammprodukt und Recheneineit
DE10146516A1 (de) Programmgesteuerte Einheit
DE102016206490A1 (de) Elektronische steuereinheit
DE102005033698A1 (de) Verfahren zum Export von Nutzungsrechten an elektronischen Datenobjekten
DE102018123563B4 (de) Verfahren zur Zwischenkernkommunikation in einem Mehrkernprozessor
DE102015218589A1 (de) Verfahren und Vorrichtung zum Betreiben eines Many-Core-System
DE102015201867A1 (de) Optimierte Speicherung einer Umfeldkarte im Speicher eines Fahrzeugs
EP0966711A1 (de) Mikrocomputer mit einer speicherverwaltungseinheit
DE112015002881B4 (de) Speichervorrichtung, Flash-Speicher-Steuervorrichtung und Programm
DE3542436A1 (de) Datenflussprozessorsystem
DE102022003674A1 (de) Verfahren zum statischen Allozieren von lnformationen zu Speicherbereichen, informationstechnisches System und Fahrzeug
WO2008092412A1 (de) Steuerung des laufzeitverhaltens von prozessen
DE102023130886A1 (de) Fahrzeugspeichermanagementsystem, speichermedium und speichermanagementverfahren
DE102022204714A1 (de) System zur bereitstellung einer mehrzahl von funktionen für eine vorrichtung, insbesondere für ein fahrzeug