-
Die vorliegende Erfindung betrifft Verfahren zum Betreiben eines Mikrocontrollers sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung.
-
Stand der Technik
-
Mikrocontroller, beispielsweise für eingebettete Systeme, weisen u.a. eine Prozessoreinheit und eine Speichereinheit, wie ROM, RAM, Flash und/oder EEPROM, mit unterschiedlichen Speicherbereichen auf. Die Prozessoreinheit kann einen oder mehrere Prozessorkerne umfassen, in welchen jeweils unterschiedliche Prozesse (Tasks, Programmen, Rechenbefehlen, etc.) ausgeführt werden können. Die ausgeführten Prozesse können auf die unterschiedlichen Speicherbereiche zugreifen.
-
Für den Betrieb von Mikrocontrollern ist ein Zugriffsschutz bzw. Speicherschutz von großer Bedeutung. Mittels eines derartigen Zugriffs- bzw. Speicherschutzes soll verhindert werden, dass ein nicht autorisierter Zugriff auf die Speicherbereiche erfolgt. Ein derartiger Speicherschutz kann beispielsweise durch eine spezielle Hardwarekomponente, die sogenannte Memory Protection Unit (MPU) realisiert werden.
-
Offenbarung der Erfindung
-
Erfindungsgemäß werden ein Verfahren zum Betreiben eines Mikrocontrollers sowie eine Recheneinheit und ein Computerprogramm zu dessen Durchführung mit den Merkmalen der unabhängigen Patentansprüche vorgeschlagen.
-
Vorteilhafte Ausgestaltungen sind Gegenstand der Unteransprüche sowie der nachfolgenden Beschreibung.
-
Der Mikrocontroller weist insbesondere eine Prozessoreinheit mit einem oder mehreren Prozessorkernen und eine Speichereinheit (z.B. ROM, RAM, Flash, EEPROM) mit unterschiedlichen Speicherbereichen auf. Von dem Mikrocontroller bzw. von der Prozessoreinheit werden unterschiedliche Prozesse (Tasks, Programme, Rechenbefehle, etc.) ausgeführt. Die Prozesse werden insbesondere mit unterschiedlichen Privilegienniveaus bzw. Hierarchiestufen ausgeführt. Ein Betriebssystem bzw. eine Betriebssoftware (BSW) besitzt insbesondere ein höchstes Privilegienniveau bzw. eine höchste Hierarchiestufe. Weiterhin kann unterschiedliche Anwendungssoftware (ASW) ausgeführt werden, mit jeweils niedrigerem Privilegienniveau als das Betriebssystem.
-
Aus Sicherheitsgründen ist es nicht allen Prozessen erlaubt, in vollem Umfang auf alle Speicherbereiche zuzugreifen. Unterschiedlichen Prozessen sind daher insbesondere unterschiedliche Zugriffsrechte zugewiesen, d.h. unterschiedliche Prozesse dürfen jeweils in unterschiedlichem Umfang ("Wie") auf einzelne Speicherbereiche ("Wo") zugreifen (oder nicht). Zugriffsrechte von Prozessen auf Speicherbereiche können beispielsweise lesend, schreibend und/oder ausführend sein.
-
In einer Speicherschutzeinheit sind Zugriffsrechte (lesend, schreibend, ausführend) von in dem Mikrocontroller ausgeführten Prozessen auf unterschiedliche Speicherbereiche (insbesondere gekennzeichnet durch eine Start- und eine End-Adresse) hinterlegt, d.h. in der Speicherschutzeinheit ist hinterlegt, in welchem Umfang Prozesse auf unterschiedliche Speicherbereiche zugreifen dürfen. Unterschiedliche Prozesse bzw. unterschiedliche Teile der Anwendungssoftware können z.B. durch eine Thread- oder Kontext-ID unterschieden werden.
-
Die Speicherschutzeinheit kann insbesondere als eine Hardwareeinheit ausgebildet sein, insbesondere als eine Memory Protection Unit (MPU). Es ist auch denkbar, dass die Speicherschutzeinheit als ein Prozess bzw. als eine Software-Anwendung ausgeführt wird, insbesondere mit einem höchsten Privilegienniveau.
-
Im Zuge eines Simulationsmodus bzw. Überprüfungsmodus überprüft ein erster Prozess Zugriffsrechte eines zweiten Prozesses auf einen bestimmten Speicherbereich. Der erste Prozess führt zu diesem Zweck im Namen des zweiten Prozesses einen Zugriffsversuch auf einen bestimmten Speicherbereich in einer bestimmten Weise durch. Auf diesen Zugriffsversuch hin übermittelt die Speicherschutzeinheit die Zugriffsrechte des zweiten Prozesses für den bestimmten Speicherbereich an den ersten Prozess. Die Speicherschutzeinheit kann die Zugriffsrechte beispielsweise übermitteln, indem sie selbige in ein geeignetes Prozessorregister eines den ersten Prozess ausführenden Prozessors schreibt.
-
Die Zugriffsrechte werden von dem ersten Prozess ausgelesen und der Simulationsmodus wird beendet. Vorzugsweise wird der Zugriffsversuch daraufhin beendet und es wird von dem ersten Prozess kein Zugriff gemäß diesem Zugriffsversuch durchgeführt. Unter Zugriffsversuch sei in diesem Zusammenhang zu verstehen, dass lediglich versucht wird, auf den Speicherbereich bzw. auf eine bestimmte Adresse im Speicher zuzugreifen, aber dass kein tatsächlicher Zugriff erfolgt.
-
Durch die Erfindung wird eine Möglichkeit bereitgestellt, wie ein höher privilegierter Prozess, insbesondere das Betriebssystem, die Zugriffsrechte eines niedriger privilegierten Prozesses auf einfache und schnelle Weise in Erfahrung bringen kann. Auf herkömmliche Weise würde dies insbesondere in Software geschehen, beispielsweise indem der höher privilegierte Prozess die Zugriffsrechte anhand von Tabellen identifiziert oder entsprechende Einträge der Speicherschutzeinheit ausliest und prüft. Dies ist zumeist mit einem hohen Laufzeit-Overhead verbunden. Im Gegensatz dazu wird durch die Erfindung eine hardwarebasierte Überprüfung von Zugriffsrechten des niedriger privilegierten Prozesses ermöglicht, indem die Speicherschutzeinheit die entsprechenden Zugriffsrechte für eine bestimmte Speicheradresse an den höher privilegierten Prozess übermittelt.
-
Zu diesem Zweck wird von dem ersten Prozess, der insbesondere höher privilegiert ist als der zweite Prozess, eine Simulation eines Speicherzugriffs des zweiten Prozesses durchgeführt. Der erste Prozess simuliert insbesondere, dass der zweite Prozess auf eine bestimmte Adresse im Speicher zugreifen möchte, ohne dass dieser Zugriff tatsächlich erfolgt.
-
Dies kann beispielsweise realisiert werden, indem die Speicherschutzeinheit in den Simulationsmodus umgeschaltet wird und in diesem Modus in spezieller Weise auf Zugriffsversuche reagiert. Alternativ oder zusätzlich kann der erste Prozess den simulierten Zugriffsversuch mittels spezieller Simulationsbefehle durchführen, auf welche die Speicherschutzeinheit anders reagiert als auf herkömmliche Befehle im Zuge herkömmlicher Zugriffsversuche. In beiden Fällen ist die Speicherschutzeinheit insbesondere entsprechend konfiguriert, um im Zuge des Simulationsmodus die Zugriffsrechte des zweiten Prozesses an den ersten Prozess zu übermitteln.
-
Vorteilhafterweise übermittelt die Speicherschutzeinheit die Zugriffsrechte des zweiten Prozesses an den ersten Prozess in Reaktion auf einen Lesezugriff durch den ersten Prozess, indem die Speicherschutzeinheit die Zugriffsrechte in einen lokalen Speicher, in welchen das Ergebnis eines herkömmlichen (nicht simulierten) Lesezugriffs abgelegt würde, insbesondere ein Register, des den ersten Prozess ausführenden Rechenkerns schreibt. Somit wird insbesondere kein zusätzlicher lokaler Speicher für das Übermitteln der Zugriffsrechte in Anspruch genommen.
-
Bevorzugt versucht der erste Prozess als Zugriffsversuch im Namen des zweiten Prozesses lesend auf den bestimmten Speicherbereich zuzugreifen. Insbesondere werden schreibende Zugriffsversuche während des Simulationsmodus nicht erlaubt und lösen insbesondere einen Trap aus. Eine Einschränkung auf Lesezugriffe ist zweckmäßig, da bei Lesezugriffsbefehlen meist ein Datenziel im Prozessor, welcher den ersten Prozess ausführt, angegeben ist, etwa ein Register des Prozessors. In diesem Datenziel wird im Simulationsmodus zweckmäßigerweise nicht das eigentliche Datum der gelesenen Adresse geschrieben, sondern die entsprechenden Zugriffsrechte.
-
Vorzugsweise wird der Simulationsmodus durchgeführt, indem die Speicherschutzeinheit durch einen speziellen Startbefehl in den Simulationsmodus versetzt wird. Insbesondere wird dieser Startbefehl von dem ersten Prozess an die Speicherschutzeinheit übermittelt. Nachdem der erste Prozess die Zugriffsrechte ausgelesen hat, beendet der erste Prozess den Simulationsmodus insbesondere wieder, indem er an die Speicherschutzeinheit einen speziellen Endbefehl übermittelt.
-
Alternativ kann sich die Speicherschutzeinheit nach dem Startbefehl auch für eine definierte Anzahl von Zugriffsversuchen, insbesondere für genau einen Zugriffsversuch, im Simulationsmodus befinden oder der Startbefehl enthält als Parameter die Anzahl von Zugriffsversuchen, die im Simulationsmodus erfolgen sollen. Um eine Unterbindung von Speicherzugriffen eines privilegierten Prozesses durch einen weniger privilegierten Prozess zu verhindern, indem der weniger privilegierte Prozess die Speicherschutzeinheit in den Simulationsmodus versetzt, kann die Möglichkeit zur Umschaltung in den Simulationsmodus auf Prozesse mit einem Mindestprivilegienniveau beschränkt werden.
-
Wenn die Speicherschutzeinheit in den Simulationsmodus versetzt wurde, kann der erste Prozess den Zugriffsversuch mittels regulärer Befehle (z.B. reguläre Lese- bzw. Schreibbefehle) durchführen. Die Speicherschutzeinheit reagiert in diesem Fall jedoch auf spezielle Weise auf diese regulären Befehle. Insbesondere kommuniziert die Speicherschutzeinheit nicht mit anderen Komponenten des Mikrocontrollers über ein entsprechendes Kommunikationssystem (z.B. Bus, Crossbar). Beispielsweise kann die Speicherschutzeinheit durch eine konkreten Befehl, ein Steuerregister, ein Adressbit, eine Thread-ID, eine Software-ID und/oder eine Kontext-ID in den Simulationsmodus versetzt werden bzw. diesen wieder verlassen.
-
Alternativ oder zusätzlich kann der Simulationsmodus bevorzugt durchgeführt werden, indem der Zugriffsversuch mittels eines speziellen Zugriffsbefehls (Simulationsbefehl) durchgeführt wird. In diesem Fall werden von dem ersten Prozess keine regulären Befehle für den Zugriffsversuch verwendet, sondern beispielsweise spezielle Lese- bzw. Schreibbefehle. Die Speicherschutzeinheit reagiert auf diese speziellen Befehle, indem sie nicht mit anderen Komponenten des Mikrocontrollers kommuniziert, sondern dem ersten Prozess die Zugriffsrechte übermittelt. Insbesondere können nur Prozesse mit genügend hohem Privilegienniveau Simulationsbefehle ausführen.
-
Vorteilhafterweise wird der Simulationsmodus durchgeführt, wenn die Speicherschutzeinheit erkennt, dass der zweite Prozess versucht, auf den bestimmten Speicherbereich in einer Weise zuzugreifen, die ihm nicht erlaubt ist (beispielsweise wenn der Prozess schreibend oder ausführend zugreifen möchte, aber nur lesend zugreifen darf). Dieser Zugriff wird insbesondere durch die Speicherschutzeinheit unterbunden und die Speicherschutzeinheit informiert den ersten Prozess beispielsweise mittels eines Traps. Die Speicherschutzeinheit führt daraufhin den Simulationsmodus durch.
-
Der erste Prozess entscheidet darüber, ob der gewünschte Zugriff des zweiten Prozesses gefahrlos ist und durchgeführt werden darf oder ob der Zugriff unterlassen werden soll, beispielsweise weil ein Fehler des zweiten Prozesses oder gar ein Angriff vorliegt. Der erste Prozess trifft diese Entscheidung vorzugsweise basierend auf den Zugriffsrechten des zweiten Prozesses, die mittels des Simulationsmodus ausgelesen wurden.
-
Auf herkömmliche Weise würde der erste Prozess die Zugriffsrechte aufwendig mit hohem Laufzeit-Overhead in Erfahrung bringen, beispielsweise durch Auslesen und Prüfen von Tabellen oder entsprechender Einträge der Speicherschutzeinheit. Durch die Erfindung kann der erste Prozess schnell und aufwandsarm die Zugriffsrechte überprüfen und schnell auf den Zugriffsversuch des zweiten Prozesses reagieren.
-
Vorzugsweise ist die Speicherschutzeinheit als Memory Protection Unit (MPU) ausgebildet. Die Speicherschutzeinheit ist bevorzugt als eine Einheit bzw. ein Modul des Mikrocontrollers ausgebildet und ist insbesondere in den Mikrocontroller integriert. Bevorzugt kann die Speicherschutzeinheit alternativ oder zusätzlich auch eine externe Einheit bzw. ein externes Modul ausgebildet sein, welche mit dem Mikrocontroller verbunden ist, beispielsweis über ein Bus- bzw. Feldbus-System.
-
Vorteilhafterweise besitzt der erste Prozess ein höheres Privilegienniveau als der zweite Prozess. Somit wird verhindert, dass ein niedrig privilegierter Prozess die Zugriffsrechte eines höher privilegierten Prozesses herausfinden kann. Vorzugsweise ist der erste Prozess das Betriebssystem.
-
Der Mikrocontroller ist insbesondere in ein Steuergerät eines Kraftfahrzeugs implementiert, beispielsweise in ein Motorsteuergerät. Somit kann eine verbesserte Sicherheit des entsprechenden Steuergeräts gewährleistet werden und Sicherheitsanforderungen, welche im Kraftfahrzeugbereich gestellt werden, können eingehalten werden. Insbesondere können Sicherheitsanforderungen, wie sie in der ISO-Norm 26262 hinterlegt sind, eingehalten werden.
-
Eine erfindungsgemäße Recheneinheit, z.B. ein Steuergerät eines Kraftfahrzeugs, ist, insbesondere programmtechnisch, dazu eingerichtet, ein erfindungsgemäßes Verfahren durchzuführen.
-
Auch die Implementierung des Verfahrens in Form eines Computerprogramms ist vorteilhaft, da dies besonders geringe Kosten verursacht, insbesondere wenn ein ausführendes Steuergerät noch für weitere Aufgaben genutzt wird und daher ohnehin vorhanden ist. Geeignete Datenträger zur Bereitstellung des Computerprogramms sind insbesondere magnetische, optische und elektrische Speicher, wie z.B. Festplatten, Flash-Speicher, EEPROMs, DVDs u.a.m. Auch ein Download eines Programms über Computernetze (Internet, Intranet usw.) ist möglich.
-
Weitere Vorteile und Ausgestaltungen der Erfindung ergeben sich aus der Beschreibung und der beiliegenden Zeichnung.
-
Die Erfindung ist anhand von Ausführungsbeispielen in der Zeichnung schematisch dargestellt und wird im Folgenden unter Bezugnahme auf die Zeichnung beschrieben.
-
Kurze Beschreibung der Zeichnungen
-
1 zeigt schematisch bevorzugte Ausgestaltungen eines Steuergeräts eines Kraftfahrzeugs, die jeweils dazu eingerichtet sind, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen.
-
2 zeigt schematisch eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens als ein Blockdiagramm.
-
Ausführungsform(en) der Erfindung
-
In 1a ist ein Steuergerät 100 eines Kraftfahrzeugs, beispielsweise ein Motorsteuergerät, schematisch dargestellt. Das Steuergerät 100 umfasst einen Mikrocontroller 101 mit einer Prozessoreinheit 110, einer als Memory Protection Unit (MPU) ausgebildeten Speicherschutzeinheit 120 und einer beispielsweise als RAM-Speicher ausgebildeten Speichereinheit 130.
-
In der Prozessoreinheit 110 wird eine Vielzahl von Prozessen ausgeführt. In 1a sind beispielsweise vier ausgeführte Prozesse 111, 112, 113 und 114 dargestellt.
-
Prozess 111 sei in diesem Beispiel ein Betriebssystem, welches ein höchstes Privilegienniveau, z.B. Vier, besitzt. Die Prozesse 112, 113 und 114 sind etwa Tasks, die im Zuge einer Motorsteuerung ausgeführt werden. Prozess 112 besitzt beispielsweise ein Privilegienniveau von Drei, Prozess 113 ein Privilegienniveau von Zwei und Prozess 114 besitzt beispielsweise ein Privilegienniveau von Eins.
-
Der RAM-Speicher 130 umfasst eine Vielzahl unterschiedlicher Speicherbereiche. Beispielsweise sind in 1a drei Speicherbereiche 131, 132 und 133 dargestellt.
-
In der MPU 120 sind Zugriffsrechte der einzelnen Prozesse 111 bis 114 hinterlegt. Als Zugriffsrechte sind dabei für jeden der Prozesse 111 bis 114 hinterlegt, ob der jeweilige Prozess lesend, schreibend und/oder ausführend auf einen speziellen Speicherbereich zugreifen darf.
-
In 1b ist eine weitere Ausgestaltung eines Steuergeräts 100 dargestellt. Gleiche oder baugleiche Elemente sind in den 1a und 1b jeweils mit identischen Bezugszeichen versehen. Der Mikrocontroller 101 gemäß 1b umfasst neben dem Prozessorkern 110 einen zweiten Prozessorkern 140. Im Beispiel von 1b werden die Prozesse 111 und 112 von dem Prozessorkern 110 ausgeführt und die Prozesse 113 und 114 von dem Prozessorkern 140. Für jeden der Prozessorkerne 110 und 140 ist dabei jeweils eine eigene MPU 120 vorgesehen. Der RAM-Speicher 130 ist für beide Prozessorkerne 110 und 140 gemeinsam vorgesehen.
-
Das Steuergerät gemäß den 1a und 1b ist jeweils dazu eingerichtet, eine bevorzugte Ausführungsform eines erfindungsgemäßen Verfahrens durchzuführen, welches in 2 schematisch als Blockdiagramm dargestellt ist.
-
In Schritt 201 möchte Prozess 113 schreibend auf eine Adresse in dem Speicherbereich 132 zugreifen. Die MPU 120 überprüft daraufhin in Schritt 202 die Zugriffsrechte des Prozesses 113. Beispielsweise besitzt der Prozess 113 ein lesendes Zugriffsrecht auf den Speicherbereich 132. Die MPU 120 lässt den Zugriff daher nicht zu und informiert in Schritt 203 mittels eines Traps den Prozess mit dem höchsten Privilegienniveau, in diesem Fall das Betriebssystem 111.
-
Das Betriebssystem 111 prüft daraufhin, ob der Zugriffsversuch des Prozesses 113 erlaubt ist oder beispielsweise auf einen Angriff oder einen Fehler hindeutet. Zu diesem Zweck überprüft das Betriebssystem 111 die Zugriffsrechte des Prozesses 113. Das Betriebssystem 111 versetzt die MPU 120 dazu in Schritt 204 in einen Simulationsmodus, beispielsweise indem das Betriebssystem 111 einen speziellen Startbefehl an das die MPU 120 übermittelt.
-
In Schritt 205 führt das Betriebssystem im Namen des Prozesses 113 einen lesenden Zugriffsversuch auf den Speicherbereich 132 durch. Die im Simulationsmodus betriebene MPU 120 reagiert auf diesen Zugriffsversuch indem sie in Schritt 206 die Zugriffsrechte des Prozesses 113 in einen lokalen Speicher, insbesondere ein Register, des ausführenden Rechenkerns, in welchen Speicher das Ergebnis des Lesezugriffs abgelegt wird.
-
In Schritt 207 hat das Betriebssystem 111 somit die Zugriffsrechte des Prozesses 113 im lokalen Speicher vorliegen. In Schritt 208 beendet das Betriebssystem 111 den Simulationsmodus, beispielsweise indem es einen Endbefehl an die MPU 120 übermittelt.
-
In Schritt 209 entscheidet das Betriebssystem 111 basierend auf dem ausgelesenen Zugriffsrecht, ob der Zugriffsversuch des Prozesses 113 erlaubt ist oder beispielsweise auf einen Angriff oder einen Fehler hindeutet.
-
Wird der Zugriffsversuch als legitim erkannt, führt das Betriebssystem 111 in Schritt 210 den entsprechenden schreibenden Zugriff beispielsweise selbst durch. Wird der Zugriffsversuch nicht als legitim erkannt, beispielsweise weil ein Fehler des Prozesses 113 vorliegt, führt das Betriebssystem 111 in Schritt 211 entsprechende Maßnahmen durch. Beispielsweise kann das Betriebssystem 111 den Prozess 113 neu starten.
-
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 Nicht-Patentliteratur
-