WO2018065213A1 - Verfahren und vorrichtung zum schützen eines arbeitsspeichers - Google Patents

Verfahren und vorrichtung zum schützen eines arbeitsspeichers Download PDF

Info

Publication number
WO2018065213A1
WO2018065213A1 PCT/EP2017/073743 EP2017073743W WO2018065213A1 WO 2018065213 A1 WO2018065213 A1 WO 2018065213A1 EP 2017073743 W EP2017073743 W EP 2017073743W WO 2018065213 A1 WO2018065213 A1 WO 2018065213A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
class
access
following features
configuration table
Prior art date
Application number
PCT/EP2017/073743
Other languages
English (en)
French (fr)
Inventor
Andrew Borg
Achim Schaefer
Gunnar Piel
Gary Morgan
Paul Austin
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 US16/338,806 priority Critical patent/US20190227724A1/en
Priority to CN201780061495.0A priority patent/CN109791524B/zh
Priority to KR1020197012505A priority patent/KR102523763B1/ko
Priority to JP2019538713A priority patent/JP6788748B2/ja
Publication of WO2018065213A1 publication Critical patent/WO2018065213A1/de

Links

Classifications

    • 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/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory 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/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
    • 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/145Protection 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 virtual, e.g. for virtual blocks or segments before a translation mechanism
    • 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
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • 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/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1483Protection against unauthorised use of memory or access to memory by checking the subject access rights using an access-table, e.g. matrix or list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • 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/1041Resource optimization
    • G06F2212/1044Space efficiency 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/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Definitions

  • the present invention relates to a method for protecting a
  • the present invention also relates to a corresponding device, a corresponding computer program and a corresponding storage medium.
  • Memory protection units MPUs or more complex memory management units (MMUs) that support memory protection are well known.
  • MPUs Memory protection units
  • MMUs complex memory management units
  • DE 10 2014 208 848 A1 presents a method and a computer program for performing memory accesses. To do this, a hypervisor is used in conjunction with a storage protection unit through which memory accesses occur.
  • the invention provides a method for protecting a random access memory, a corresponding device, a corresponding computer program-for example in the form of a hypervisor or operating system-as well as a machine-readable storage medium according to the independent claims.
  • the proposed approach is based on the finding that the number of configurable memory areas and related access rights in a generic hardware memory protection unit is limited. This limitation means that, for example in the case of a hypervisor, the number of memory areas used by a virtual machine (VM) can exceed the capabilities of the hardware. In this respect, at best, a fusion of individual memory areas, which the
  • the advantage of an embodiment of the invention is that it overcomes the numerical limitation of the configurable memory areas of a generic memory protection unit in order to be able to accurately define all memory areas used directly and indirectly by a virtual machine, for example by the hypervisor. Such a solution allows the virtual machine to be unrestricted by the
  • FIG. 1 shows the activity diagram of a method according to a first
  • FIG. 2 shows schematically a control device according to a second embodiment.
  • FIG. 1 illustrates the basic sequence of an exemplary embodiment of a method (10) according to the invention.
  • the system under consideration has a larger number of memory areas to be distinguished than the system
  • Memory protection unit supported by hardware.
  • the solution discussed below is based on the idea that the hypervisor exchanges configuration entries of the memory protection unit at runtime as required. This approach provides an execution context to the hypervisor host virtual machine, which takes into account all of the storage areas specified in the machine's configuration, even if the number of configured storage areas exceeds that of the storage protection unit.
  • LRU least recently used
  • the implementation follows the following scheme: In the development phase, the memory areas to be configured are initially assigned to either a first or a second class (Activity 11).
  • the configuration language of the hypervisor allows the integrator to exclude individual areas either as non-pageable (first class) or
  • Storage areas can not be swapped out and which can be configured as swappable. The same applies - depending on the
  • the hypervisor places the swappable storage areas of the second class in a suitable data structure in the flash memory (Activity 12).
  • the structure hereby includes one for one
  • Embodiment may - without departing from the scope of the invention - based on the classification performed nevertheless by way of code generation a test routine are generated, which, for example, a
  • the hypervisor directs all non-swappable
  • Memory areas by configuring the memory protection unit by entering in their relevant configuration table at least the areas contained in the first class (Activity 13). As long as the total number of storage areas distinguished by the configuration does not exceed the number of available table entries, it is not necessary to outsource individual entries. However, if the number of designated memory areas exceeds the capability of the memory protection unit, then such swapping is possible at runtime of the virtual machine.
  • the concept of a "configuration table" of the memory protection unit comprises the page table which is typically used for the translation of virtual memory into physical memory addresses, which is typically used in modern memory management units
  • Such a page table may be one-stage, multi-stage or -saving
  • Page table can be accelerated by an upstream so-called Hashtabeile.
  • the said entry (Activity 13) in the page table is made in this case by generating a page table entry (PTE).
  • the configuration table may be represented by registers of a simple memory protection unit without virtual memory Memory management, for example, as part of the AUTOSAR Development Partnership, to
  • the register contents of the MPU specify here by manufacturer-dependent bit sequences the access types permissible for the respective partition, whereby sometimes further distinction is made between accesses by "privileged" and "nonprivileged” software.
  • the virtual machine requests access to a storage area encompassed by the second class and thus able to be stored in principle, but already preconfigured in the storage protection unit
  • the hypervisor provides an exception handler registered for this purpose, which decodes the exception triggering machine instruction (Activity 14) and thus obtains access type - Read, Write or Execute - and destination address of the requested access (Activity 16). Based on this information as well as the data structure stored in activity 12, the exception handler registered for this purpose, which decodes the exception triggering machine instruction (Activity 14) and thus obtains access type - Read, Write or Execute - and destination address of the requested access (Activity 16). Based on this information as well as the data structure stored in activity 12, the
  • Branch N puts the virtual machine in a defined error state, causing the hypervisor to perform a preconfigured error response (Activity 17), such as restarting the virtual machine.
  • the memory protection unit detects the attempt to access the protected address space without authorization on the basis of the configuration table Permissions as a so-called protection violation (segmentation violation, segmentation fault, segfault) or access violation and signals this to the hypervisor.
  • protection violation segmentation violation, segmentation fault, segfault
  • this signaling could be due to the SIGSEGV exception, to IA-32 or x86 architecture or microprocessors
  • Exception handling routine (16, 17, 18, 19, Y, N) according to the preconfigured displacement strategy among the storage areas of the second class currently registered in the configuration table of the storage protection unit for swapping out.
  • the entry occupied by this discarded area is now filled by the storage area to which the requested access relates (activity 18).
  • This target area - defined essentially by the limits of the address space occupied by it as well as the permitted access type - can once again be taken from the data structure stored in activity 12.
  • the exception handling (16, 17, 18, 19, Y, N) can be completed, the control flow in the virtual machine continues and the access requesting
  • Machine command (14) are now processed again without memory protection violation.
  • This method (10) can be used, for example, in software or hardware or in a mixed form of software and hardware, for example in one
  • Control unit (20) be implemented, as the schematic representation of Figure 2 illustrates.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

Verfahren (10) zum Schützen eines Arbeitsspeichers, gekennzeichnet durch folgende Merkmale: - Speicherbereiche des Arbeitsspeichers werden wahlweise einer ersten Klasse oder einer zweiten Klasse zugeordnet (11), - vor einer Programmausführung werden zumindest die Speicherbereiche der ersten Klasse in eine Konfigurationstabelle der Speicherschutzeinheit eingetragen (13) und - bei einem angeforderten Zugriff (15) auf einen Zielbereich unter den Speicherbereichen der zweiten Klasse während der Programmausführung wird der Zielbereich in die Konfigurationstabelle eingetragen, bevor der Zugriff (15) gewährt wird (Y).

Description

Beschreibung
Titel
Verfahren und Vorrichtung zum Schützen eines Arbeitsspeichers
Die vorliegende Erfindung betrifft ein Verfahren zum Schützen eines
Arbeitsspeichers. Die vorliegende Erfindung betrifft darüber hinaus eine entsprechende Vorrichtung, ein entsprechendes Computerprogramm sowie ein entsprechendes Speichermedium.
Stand der Technik
In der Speicherverwaltung wird als Speicherschutz die Fähigkeit von
Betriebssystemen und sogenannten Hypervisors bezeichnet, den verfügbaren Arbeitsspeicher derart aufzuteilen und laufende Programme bzw. Gastsysteme voneinander zu trennen, dass ein - beispielsweise durch einen
Programmierfehler ausgelöster - Absturz eines einzelnen Programmes nicht die Stabilität anderer Programme oder des Gesamtsystems beeinträchtigt. Die solchermaßen überwachten Programme werden auf diese Weise daran gehindert, versehentlich oder absichtlich auf den Speicherbereich anderer
Programme zuzugreifen oder das Betriebssystem anders als durch
standardisierte Schnittstellen zu benutzen.
Hinlänglich bekannt sind Speicherschutzeinheiten (memory protection units, MPUs) oder komplexere Speicherverwaltungseinheiten (memory management units, MMUs), die einen Speicherschutz unterstützen. Im Rahmen der nachfolgenden Ausführungen sei die Bezeichnung„Speicherschutzeinheit" daher in einem weiten Wortsinn zu verstehen, der fortgeschrittene
Speicherverwaltungseinheiten mit der Fähigkeit zur Übersetzung virtueller Adressen ausdrücklich einschließt. Speicherschutzeinheiten waren ursprünglich als externe Zusatzkomponente für Mikroprozessoren konzipiert, werden nach dem Stand der Technik aber in Hochleistungsprozessoren direkt integriert oder zumindest in deren Nähe angeordnet. Auch eingebettete Systemen und insbesondere Mikrocontroller, die traditionell nur zur Ausführung einer einzelnen Anwendung ausgelegt waren, werden jedoch zunehmend mit Virtualisierungs- und
Speicherschutzmechanismen ausgestattet.
DE 10 2014 208 848 AI stellt ein Verfahren und ein Computerprogramm zum Durchführen von Speicherzugriffen vor. Hierzu wird ein Hypervisor in Verbindung mit einer Speicherschutzeinheit verwendet, über den die Speicherzugriffe erfolgen.
Offenbarung der Erfindung
Die Erfindung stellt ein Verfahren zum Schützen eines Arbeitsspeichers, eine entsprechende Vorrichtung, ein entsprechendes Computerprogramm - zum Beispiel in Gestalt eines Hypervisors oder Betriebssystems - sowie ein maschinenlesbares Speichermedium gemäß den unabhängigen Ansprüchen bereit.
Dem vorgeschlagenen Ansatz liegt dabei die Erkenntnis zugrunde, dass die Anzahl konfigurierbarer Speicherbereiche und diesbezüglicher Zugriffsrechte in einer gattungsmäßigen Hardware-Speicherschutzeinheit begrenzt ist. Diese Beschränkung bringt es mit sich, dass - etwa im Falle eines Hypervisors - die Anzahl der von einer virtuellen Maschine (VM) genutzten Speicherbereiche die Fähigkeiten der Hardware übersteigen kann. In Betracht kommt insofern allenfalls eine Verschmelzung einzelner Speicherbereiche, welche die
Granularität der Speicherschutzkonfiguration einschränkt, sodass unberechtigte Zugriffe durch virtuelle Maschinen auf bestimmte Speicherstellen sich nicht mehr vollständig ausschließen lassen. Dieses Problem kann dadurch verschärft werden, dass ein Hypervisor einige Einträge der entsprechenden
Konfigurationstabelle zur internen Verwendung reserviert oder eine virtuelle MPU-lmplementierung für virtuelle Maschinen bereitstellt, die wiederum selbst eine Speicherschutzeinheit benötigen, um etwa ein geschütztes Betriebssystem innerhalb der virtuellen Maschine zu implementieren.
Der Vorzug einer Ausführungsform der Erfindung liegt darin, dass sie die zahlenmäßige Beschränkung der konfigurierbaren Speicherbereiche einer gattungsmäßigen Speicherschutzeinheit überwindet, um akkurat sämtliche von einer virtuellen Maschine unmittelbar und mittelbar - beispielsweise durch den Hypervisor - genutzten Speicherbereiche festlegen zu können. Eine solche Lösung gestattet es der virtuellen Maschine, uneingeschränkt von den
Fähigkeiten der Hardware-Speicherschutzeinheit auf eine nahezu beliebige Anzahl von Speicherbereichen zuzugreifen.
Durch die in den abhängigen Ansprüchen aufgeführten Maßnahmen sind vorteilhafte Weiterbildungen und Verbesserungen des im unabhängigen Anspruch angegebenen Grundgedankens möglich.
Kurze Beschreibung der Zeichnungen
Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und in der nachfolgenden Beschreibung näher erläutert. Es zeigt:
Figur 1 das Aktivitätsdiagramm eines Verfahrens gemäß einer ersten
Ausführungsform.
Figur 2 schematisch ein Steuergerät gemäß einer zweiten Ausführungsform. Ausführungsformen der Erfindung
Figur 1 illustriert den grundlegenden Ablauf einer exemplarischen Ausgestaltung eines erfindungsgemäßen Verfahrens (10). Zum Zwecke der nachfolgenden Ausführungen sei angenommen, dass das betrachtete System eine größere Anzahl zu unterscheidender Speicherbereiche aufweist, als die
Speicherschutzeinheit hardwaremäßig unterstützt. Die nachfolgend erörterte Lösung fußt hierbei auf dem Grundgedanken, dass der Hypervisor Konfigurationseinträge der Speicherschutzeinheit zur Laufzeit nach Bedarf austauscht. Dieser Ansatz bietet der als Gastsystem des Hypervisors betriebenen virtuellen Maschine einen Ausführungskontext, welcher alle in der Konfiguration der betreffenden Maschine spezifizierten Speicherbereiche selbst dann berücksichtigt, wenn die Anzahl konfigurierter Speicherbereiche jene der Speicherschutzeinheit übersteigt.
Der beschriebene Austausch folgt dabei einer konfigurierbaren, der
Betriebssystemtheorie entliehenen Verdrängungsstrategie, wie sie nach dem Stand der Technik etwa für Cache-Speicher zur Anwendung kommt. In Betracht kommt beispielsweise die Auslagerung desjenigen Konfigurationseintrages, dessen letzte Verwendung durch die MPU am längsten zurückliegt (least recently used, LRU).
Die Umsetzung folgt dabei abbildungsgemäß dem folgenden Schema: Die zu konfigurierenden Speicherbereiche werden in der Entwicklungsphase zunächst wahlweise einer ersten oder einer zweiten Klasse zugeordnet (Aktivität 11). Die Konfigurationssprache des Hypervisors gestattet es hierzu dem Integrator, einzelne Bereiche entweder als nicht auslagerbar (erste Klasse) oder
auslagerbar (zweite Klasse) zu kennzeichnen. Es versteht sich, dass in diesem Fall stets zumindest ein Konfigurationseintrag der Speicherschutzeinheit den Speicherbereichen der zweiten Klasse vorbehalten sein sollte, sofern zumindest ein Bereich dieser Klasse zugeordnet wurde.
Bei der Klassifizierung der Speicherbereiche ist zu beachten, dass die Wartezeit für die Ausführung von Maschinenbefehlen in ausgelagerten Speicherbereichen sowie für Lese- und Schreibzugriffe auf derartige Speicherbereiche beträchtlich ausfallen kann. Es obliegt dem Integrator zu entscheiden, welche
Speicherbereiche als nicht auslagerbar und welche als auslagerbar zu konfigurieren sind. Entsprechendes gilt - in Abhängigkeit von den
Echtzeitanforderungen der jeweiligen Anwendung - für die Wahl einer zweckmäßigen Verdrängungsstrategie. Der Hypervisor legt die auslagerbaren Speicherbereiche der zweiten Klasse sodann in einer geeigneten Datenstruktur im Flash-Speicher ab (Aktivität 12). Für jeden Bereich dieser Art umfasst die Struktur hierbei dessen für eine
Berechtigungsprüfung relevante Einzelheiten, also insbesondere die Grenzen des von ihm eingenommenen Adressraumes sowie die erlaubte Zugriffsart des betreffenden Gastsystems oder Prozesses. In einer alternativen
Ausführungsform mag - ohne den Rahmen der Erfindung zu verlassen - anhand der vorgenommenen Klassifizierung gleichwohl im Wege der Kodegenerierung eine Prüfroutine erzeugt werden, welche beispielsweise eine
Fallunterscheidung (switch Statement) zwischen den Bereichen erster und zweiter Klasse vornimmt.
Vor dem Anfahren richtet der Hypervisor sämtliche nicht auslagerbaren
Speicherbereiche durch Konfiguration der Speicherschutzeinheit ein, indem er in deren diesbezügliche Konfigurationstabelle zumindest die in der ersten Klasse enthaltenen Bereiche einträgt (Aktivität 13). Solange die Gesamtzahl der durch die Konfiguration unterschiedenen Speicherbereiche die Zahl verfügbarer Tabelleneinträge nicht überschreitet, ist keine Auslagerung einzelner Einträge vonnöten. Falls die Anzahl vorgesehener Speicherbereiche jedoch die Fähigkeit der Speicherschutzeinheit übersteigt, so ist eine solche Auslagerung zur Laufzeit der virtuellen Maschine möglich.
Das Konzept einer„Konfigurationstabelle" der Speicherschutzeinheit umfasst insbesondere die in modernen Speicherverwaltungseinheiten typischerweise vorgesehene Seitentabelle {page table), die in erster Linie zur Übersetzung von virtuellen in physische Speicheradressen herangezogen wird. Eine derartige Seitentabelle mag einstufig, mehrstufig oder - zur Einsparung von
Speicherplatz - auch invertiert aufgebaut sein, wobei das Suchen in der
Seitentabelle durch eine vorgeschaltete sogenannte Hashtabeile beschleunigt werden kann. Der besagte Eintrag (Aktivität 13) in die Seitentabelle erfolgen in diesem Fall durch das Erzeugen eines Seitentabelleneintrages {page table entry, PTE).
In einer einfacheren Ausführungsform kann die Konfigurationstabelle gleichwohl durch Register einer einfachen Speicherschutzeinheit ohne virtuelle Speicherverwaltung verkörpert werden, wie sie etwa im Rahmen der AUTOSAR- Entwicklungspartnerschaft zur Isolation unterschiedlicher
Softwarekomponenten (Software components, SW-Cs) eines gattungsmäßigen Steuergerätes (electronic control unit, ECU) vorgesehen sind. Die dem
Elektroniker als„Regionen" vertrauten Einträge der Konfigurationstabelle
- typisch sind je nach Modell zwischen 2 und 32 derartiger Regionen pro MPU - bezeichnen in diesem Fall sogenannte Partitionen im Sinne der AUTOSAR, die als gegeneinander abgegrenzte Schutzräume jeweils wiederum mehrere Softwarekomponenten umfassen können. Für jede dieser Regionen geben die Registerinhalte der MPU hierbei durch herstellerabhängige Bitfolgen die für die jeweilige Partition zulässigen Zugriffsarten an, wobei mitunter weiter zwischen Zugriffen durch„privilegierte" und„nichtprivilegierte" Software unterschieden wird.
Wenn die virtuelle Maschine während der Programmausführung Zugriff auf einen von der zweiten Klasse umfassten und somit grundsätzlich auslagerbaren, aber bereits in der Speicherschutzeinheit vorkonfigurierten Speicherbereich anfordert
- dieser Fall ist zeichnerisch nicht dargestellt -, so ist kein Eingriff durch den Hypervisor erforderlich. Falls während der Programmausführung jedoch Zugriff auf einen Zielbereich unter den Speicherbereichen der zweiten Klasse angefordert wird, der derzeit nicht in der Konfigurationstabelle eingetragen ist (Ereignis 15), so wird eine durch die Speicherschutzeinheit definierte
Ausnahmebehandlung eingeleitet. Der Hypervisor stellt eine für diesen Zweck registrierte Ausnahmebehandlungsroutine (exception handler) bereit, welche den die Ausnahme auslösenden Maschinenbefehl (Aktivität 14) dekodiert und auf diese Weise Zugriffsart - Lesen, Schreiben oder Ausführen - sowie Zieladresse des angeforderten Zugriffes gewinnt (Aktivität 16). Anhand dieser Information sowie der in Aktivität 12 abgelegten Datenstruktur unterzieht die
Ausnahmebehandlungsroutine den vorgesehenen Zugriff einer
Berechtigungsprüfung (Entscheidung 19) und versetzt bei deren
Fehlschlag (Zweig N) die virtuelle Maschine in einen definierten Fehlerzustand, welcher den Hypervisor zu einer vorkonfigurierten Fehlerreaktion (Aktivität 17) wie dem Neustart der virtuellen Maschine veranlasst. Den Versuch, unberechtigt auf den geschützten Adressraum zuzugreifen, erkennt die Speicherschutzeinheit in diesem Fall anhand der in der Konfigurationstabelle hinterlegten Berechtigungen als sogenannte Schutzverletzung (segmentation violation, segmentation fault, segfault) oder Zugriffsverletzung (access violation) und signalisiert dies dem Hypervisor. Unter einem UNIX-ähnlichen Betriebssystem könnte diese Signalisierung beispielsweise durch die Ausnahmebedingung SIGSEGV, bei Mikroprozessoren mit IA-32 oder x86-Architektur oder
leistungsfähigeren Mikrocontrollern durch eine Unterbrechung (Interrupt) erfolgen.
Ist aufgrund einer erfolgreich verlaufenden Berechtigungsprüfung (19) der angeforderte Zugriff zu gewähren (Zweig Y), so wählt die
Ausnahmebehandlungsroutine (16, 17, 18, 19, Y, N) gemäß der vorkonfigurierten Verdrängungsstrategie unter den derzeit in der Konfigurationstabelle der Speicherschutzeinheit eingetragenen Speicherbereichen der zweiten Klasse einen Bereich zur Auslagerung aus. Der durch diesen verworfenen Bereich belegte Eintrag wird nun durch mit demjenigen Speicherbereich befüllt, auf welchen sich der angeforderte Zugriff bezieht (Aktivität 18). Dieser Zielbereich - definiert im Wesentlichen durch die Grenzen des von ihm eingenommenen Adressraumes sowie der erlaubten Zugriffsart - lässt sich abermals der in Aktivität 12 hinterlegten Datenstruktur entnehmen. So kann schließlich die Ausnahmebehandlung (16, 17, 18, 19, Y, N) abgeschlossen, der Kontrollfluss in der virtuellen Maschine fortgesetzt und der den Zugriff anfordernde
Maschinenbefehl (14) nunmehr ohne Speicherschutzverletzung erneut abgearbeitet werden.
Dieses Verfahren (10) kann beispielsweise in Software oder Hardware oder in einer Mischform aus Software und Hardware beispielsweise in einem
Steuergerät (20) implementiert sein, wie die schematische Darstellung der Figur 2 verdeutlicht.

Claims

Ansprüche
1. Verfahren (10) zum Schützen eines Arbeitsspeichers mit einer
Speicherschutzeinheit,
gekennzeichnet durch folgende Merkmale:
- Speicherbereiche des Arbeitsspeichers werden wahlweise einer ersten Klasse oder einer zweiten Klasse zugeordnet (11),
- vor einer Programmausführung werden zumindest die Speicherbereiche der ersten Klasse in eine Konfigurationstabelle der
Speicherschutzeinheit eingetragen (13) und
- bei einem angeforderten Zugriff (15) auf einen Zielbereich unter den Speicherbereichen der zweiten Klasse während der
Programmausführung wird der Zielbereich in die Konfigurationstabelle eingetragen, bevor der Zugriff (15) gewährt wird (Y).
2. Verfahren (10) nach Anspruch 1,
gekennzeichnet durch folgende Merkmale:
- der angeforderte Zugriff (15) wird durch eine
Ausnahmebehandlungsroutine (16, 17, 18, 19, Y, N) behandelt,
- die Ausnahmebehandlungsroutine (16, 17, 18, 19, Y, N) nimmt zumindest anhand des Zielbereiches eine Berechtigungsprüfung (19) vor und
- die Ausnahmebehandlungsroutine (16, 17, 18, 19, Y, N) löst eine
vorkonfigurierte Fehlerreaktion (17) aus, falls die
Berechtigungsprüfung (19) fehlschlägt (N). Verfahren (10) nach Anspruch 2,
gekennzeichnet durch folgende Merkmale:
- die Ausnahmebehandlungsroutine (16, 17, 18, 19, Y, N) dekodiert (16) anhand eines den Zugriff (15) anfordernden Maschinenbefehles (14) eine Zugriffsart und eine Zieladresse innerhalb des Zielbereiches, auf die sich der Zugriff (15) bezieht, und
- die Berechtigungsprüfung (19) erfolgt ferner anhand der Zugriffsart und der Zieladresse.
Verfahren (10) nach Anspruch 3,
gekennzeichnet durch folgende Merkmale:
- ferner wird zumindest ein Speicherbereich der zweiten Klasse in die Konfigurationstabelle eingetragen (13) und
- falls der Zugriff (15) gewährt wird (Y), ersetzt (18) die
Ausnahmebehandlungsroutine (16, 17, 18, 19, Y, N) den
Speicherbereich in der Konfigurationstabelle durch den Zielbereich und veranlasst eine erneute Abarbeitung des Maschinenbefehles (14).
Verfahren (10) nach Anspruch 4,
gekennzeichnet durch folgende Merkmale:
- in die Konfigurationstabelle werden mehrere Speicherbereiche der zweiten Klasse eingetragen (13) und
- falls der Zugriff (15) gewährt wird (Y), wählt die
Ausnahmebehandlungsroutine (16, 17, 18, 19, Y, N) gemäß einer vorkonfigurierten Verdrängungsstrategie einen Speicherbereich unter den eingetragenen Speicherbereichen der zweiten Klasse, ersetzt (18) den gewählten Speicherbereich in der Konfigurationstabelle durch den Zielbereich und veranlasst eine erneute Abarbeitung des
Maschinenbefehles (14).
Verfahren (10) nach einem der Ansprüche 2 bis 5,
gekennzeichnet durch folgende Merkmale:
- anhand der Speicherbereiche der zweiten Klasse wird vor der
Programmausführung eine Prüfroutine erzeugt und
- die Berechtigungsprüfung (19) umfasst einen Aufruf der Prüfroutine.
7. Verfahren (10) nach einem der Ansprüche 2 bis 5,
gekennzeichnet durch folgende Merkmale:
- die Speicherbereiche der zweiten Klasse werden in einer Datenstruktur vorzugsweise in einem Flash-Speicher gespeichert (12) und
- die Berechtigungsprüfung (19) erfolgt ferner anhand der Datenstruktur.
8. Computerprogramm, insbesondere Hypervisor oder Betriebssystem, welches eingerichtet ist, das Verfahren (10) nach einem der Ansprüche 1 bis 7
auszuführen.
Maschinenlesbares Speichermedium, auf dem das Computerprogramm
Anspruch 8 gespeichert ist.
10. Vorrichtung (20), die eingerichtet ist, das Verfahren (10) nach einem der
Ansprüche 1 bis 7 auszuführen.
PCT/EP2017/073743 2016-10-04 2017-09-20 Verfahren und vorrichtung zum schützen eines arbeitsspeichers WO2018065213A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US16/338,806 US20190227724A1 (en) 2016-10-04 2017-09-20 Method and device for protecting a working memory
CN201780061495.0A CN109791524B (zh) 2016-10-04 2017-09-20 用于保护工作存储器的方法和设备
KR1020197012505A KR102523763B1 (ko) 2016-10-04 2017-09-20 작업 메모리 보호 방법 및 그 장치
JP2019538713A JP6788748B2 (ja) 2016-10-04 2017-09-20 ワーキングメモリを保護する方法および装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102016219202.7 2016-10-04
DE102016219202.7A DE102016219202A1 (de) 2016-10-04 2016-10-04 Verfahren und Vorrichtung zum Schützen eines Arbeitsspeichers

Publications (1)

Publication Number Publication Date
WO2018065213A1 true WO2018065213A1 (de) 2018-04-12

Family

ID=59982351

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2017/073743 WO2018065213A1 (de) 2016-10-04 2017-09-20 Verfahren und vorrichtung zum schützen eines arbeitsspeichers

Country Status (6)

Country Link
US (1) US20190227724A1 (de)
JP (1) JP6788748B2 (de)
KR (1) KR102523763B1 (de)
CN (1) CN109791524B (de)
DE (1) DE102016219202A1 (de)
WO (1) WO2018065213A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7006461B2 (ja) * 2018-04-02 2022-01-24 株式会社デンソー 電子制御装置および電子制御システム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6223256B1 (en) * 1997-07-22 2001-04-24 Hewlett-Packard Company Computer cache memory with classes and dynamic selection of replacement algorithms
DE102014208848A1 (de) 2014-05-12 2015-11-12 Robert Bosch Gmbh Verfahren zum Überwachen eines elektronischen Sicherheitsmoduls
US20150356029A1 (en) * 2013-02-05 2015-12-10 Arm Limited Handling memory access operations in a data processing apparatus

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6356989B1 (en) * 1992-12-21 2002-03-12 Intel Corporation Translation lookaside buffer (TLB) arrangement wherein the TLB contents retained for a task as swapped out and reloaded when a task is rescheduled
JP2757777B2 (ja) * 1994-05-26 1998-05-25 住友金属工業株式会社 メモリの不正アクセス検出方法及びシステム
US5574922A (en) * 1994-06-17 1996-11-12 Apple Computer, Inc. Processor with sequences of processor instructions for locked memory updates
US5918250A (en) * 1995-05-05 1999-06-29 Intel Corporation Method and apparatus for preloading default address translation attributes
JPH11242633A (ja) * 1998-02-26 1999-09-07 Hitachi Ltd メモリ保護方式
US20050160229A1 (en) * 2004-01-16 2005-07-21 International Business Machines Corporation Method and apparatus for preloading translation buffers
US8112618B2 (en) * 2004-04-08 2012-02-07 Texas Instruments Incorporated Less-secure processors, integrated circuits, wireless communications apparatus, methods and processes of making
EP1870814B1 (de) * 2006-06-19 2014-08-13 Texas Instruments France Verfahren und Vorrichtung für sicheren, nachfragebasierten Seitenabruf für Prozessorvorrichtungen
US20060036830A1 (en) * 2004-07-31 2006-02-16 Dinechin Christophe De Method for monitoring access to virtual memory pages
US20080028181A1 (en) * 2006-07-31 2008-01-31 Nvidia Corporation Dedicated mechanism for page mapping in a gpu
CN101008923A (zh) * 2007-01-26 2007-08-01 浙江大学 面向异构多核体系的分段式存储空间管理方法
US8341627B2 (en) * 2009-08-21 2012-12-25 Mcafee, Inc. Method and system for providing user space address protection from writable memory area in a virtual environment
US8880844B1 (en) * 2010-03-12 2014-11-04 Trustees Of Princeton University Inter-core cooperative TLB prefetchers
US9405700B2 (en) * 2010-11-04 2016-08-02 Sonics, Inc. Methods and apparatus for virtualization in an integrated circuit
US8479295B2 (en) * 2011-03-30 2013-07-02 Intel Corporation Method and apparatus for transparently instrumenting an application program
US8875161B2 (en) * 2011-06-08 2014-10-28 The Mathworks, Inc. Methods and systems for setting access to a list of class entities
US20140101405A1 (en) * 2012-10-05 2014-04-10 Advanced Micro Devices, Inc. Reducing cold tlb misses in a heterogeneous computing system
US9201806B2 (en) * 2013-01-04 2015-12-01 International Business Machines Corporation Anticipatorily loading a page of memory
CN105354155A (zh) * 2015-12-03 2016-02-24 上海高性能集成电路设计中心 一种基于页表检查机制的存储器访问权限控制方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6223256B1 (en) * 1997-07-22 2001-04-24 Hewlett-Packard Company Computer cache memory with classes and dynamic selection of replacement algorithms
US20150356029A1 (en) * 2013-02-05 2015-12-10 Arm Limited Handling memory access operations in a data processing apparatus
DE102014208848A1 (de) 2014-05-12 2015-11-12 Robert Bosch Gmbh Verfahren zum Überwachen eines elektronischen Sicherheitsmoduls

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WEZENBEEK A M VAN ET AL: "A SURVEY OF MEMORY MANAGEMENT", MICROPROCESSING AND MICROPROGRAMMING, ELSEVIER SCIENCE PUBLISHERS, BV., AMSTERDAM, NL, vol. 36, no. 3, 1 May 1993 (1993-05-01), pages 141 - 162, XP000362891, ISSN: 0165-6074, DOI: 10.1016/0165-6074(93)90254-I *

Also Published As

Publication number Publication date
KR102523763B1 (ko) 2023-04-20
US20190227724A1 (en) 2019-07-25
DE102016219202A1 (de) 2018-04-05
CN109791524B (zh) 2023-11-07
CN109791524A (zh) 2019-05-21
KR20190059955A (ko) 2019-05-31
JP2019535093A (ja) 2019-12-05
JP6788748B2 (ja) 2020-11-25

Similar Documents

Publication Publication Date Title
DE102006015106B4 (de) Bereitstellen eines erweiterten Speicherschutzes
DE69533312T2 (de) Geschütztes speichersystem und verfahren dafür
DE69721590T2 (de) Ein bereichsbasiertes seiten-table-walk-bit verwendendes verfahren sowie vorrichtung
DE112013006590T5 (de) Handhabung von Speicherzugriffsvorgängen in einer Datenverarbeitungsvorrichtung
DE10297433B4 (de) Speicherverwaltungseinheit, Verfahren zum Bereitstellen einer Speicherzugriffssicherheit auf der Basis einer linearen Adresse und Prozessor
DE60306952T2 (de) Zuordnung von virtuellen zu physischen speicheradressen in einem system mit einem sicheren bereich und einem nicht sicheren bereich
DE10393920B4 (de) Verfahren und Systeme zur Steuerung virtueller Maschinen
EP1005676B1 (de) Verfahren zur verbesserung der steuerungsmöglichkeit in datenverarbeitungsanlagen mit adressübersetzung
DE112005001798B4 (de) Verwalten von Prozessorressourcen während Architekturereignissen
DE112005003098B4 (de) Verfahren und Vorrichtung zum Zugreifen auf einen physikalischen Speicher von einer CPU oder einem Prozessorelement mit hoher Leistung
DE60210633T2 (de) Verfahren und vorrichtungen zur verbesserung des durchsatzes von eingebetteten prozessoren auf cache-basis durch umschalten von tasks als reaktion auf eine cache-verfehlung
DE102013022299B3 (de) Schutz globaler Register in einem Multithreaded-Prozessor
DE102014003540A1 (de) Erzeugen einer isolierten ausführungsumgebung in einem co-designten prozessor
DE112010005821T5 (de) Kontextwechsel
DE2416609A1 (de) Einrichtung zum vereinfachten speicherschutz und zur adressuebersetzung
DE112011103433T5 (de) Verfahren, System und Programm zum Steuern von Cache-Kohärenz
DE112016004476T5 (de) Technologien für einen nur-ausführungs-transaktionsarbeitsspeicher
DE102016220639A1 (de) Speicherschutzeinheit und Verfahren zum Schützen eines Speicheradressraumes
WO2018065213A1 (de) Verfahren und vorrichtung zum schützen eines arbeitsspeichers
DE102020122702A1 (de) System-on-Chip und Verfahren zum Betreiben eines System-on-Chip
DE112020004709T5 (de) Übersetzungsladeanweisung
EP0008355B1 (de) Einrichtung zum Sichern von in Datenverarbeitungslagen gespeicherten Daten gegen unberechtigten Zugriff
DE112014005348T5 (de) Computer und Hypervisor-basiertes Betriebsmittelplanungsverfahren
WO2000022533A1 (de) Verfahren zur verbindung von stackmanipulationsangriffen bei funktionsaufrufen
DE4227784A1 (de) Rechnersystem und verfahren zum beheben eines seitenfehlers

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17777201

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2019538713

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20197012505

Country of ref document: KR

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 17777201

Country of ref document: EP

Kind code of ref document: A1