Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND DEVICE FOR PROTECTING A WORKING STORAGE UNIT
Document Type and Number:
WIPO Patent Application WO/2018/065213
Kind Code:
A1
Abstract:
The invention relates to a method (10) for protecting a working storage unit, characterized by the following features: - storage areas of the working storage unit are optionally assigned to a first class or a second class (11), - at least the storage areas of the first class are entered into a configuration table of the memory protection unit (13) before execution of a program, and - in the case of a requested access (15) to a target area among the storage areas of the second class during execution of the program, the target area is entered into the configuration table before access (15) is granted (Y).

Inventors:
BORG ANDREW (TT)
SCHAEFER ACHIM (DE)
PIEL GUNNAR (DE)
MORGAN GARY (GB)
AUSTIN PAUL (GB)
Application Number:
PCT/EP2017/073743
Publication Date:
April 12, 2018
Filing Date:
September 20, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BOSCH GMBH ROBERT (DE)
International Classes:
G06F12/14; G06F12/12; G06F12/121
Foreign References:
US20150356029A12015-12-10
US6223256B12001-04-24
DE102014208848A12015-11-12
Other References:
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
Download PDF:
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.

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.