WO2018091334A1 - Verfahren zur automatischen und dynamischen re-konfiguration einer speicherschutz-einheit sowie ein mikrocontroller mit einer speicherschutz-einheit - Google Patents

Verfahren zur automatischen und dynamischen re-konfiguration einer speicherschutz-einheit sowie ein mikrocontroller mit einer speicherschutz-einheit Download PDF

Info

Publication number
WO2018091334A1
WO2018091334A1 PCT/EP2017/078628 EP2017078628W WO2018091334A1 WO 2018091334 A1 WO2018091334 A1 WO 2018091334A1 EP 2017078628 W EP2017078628 W EP 2017078628W WO 2018091334 A1 WO2018091334 A1 WO 2018091334A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory
descriptor table
protection unit
entries
access
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.)
Ceased
Application number
PCT/EP2017/078628
Other languages
English (en)
French (fr)
Inventor
Marius Boarta
Sebastian Beyer
Mike Gemuende
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.)
Continental Teves AG and Co OHG
Original Assignee
Continental Teves AG and Co OHG
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 Continental Teves AG and Co OHG filed Critical Continental Teves AG and Co OHG
Publication of WO2018091334A1 publication Critical patent/WO2018091334A1/de
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • G06F2212/173Vehicle or other transportation
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Definitions

  • the invention relates to a method for configuring a memory protection unit having a descriptor table of a microcontroller.
  • the invention further relates to a micro ⁇ controller with a memory protection unit for performing the method according to the invention.
  • Control devices in vehicles are known and consist of one or more processors as a microcontroller and software executed thereon, which is integrated into a technical application context, for example the motor control. On such a controller, various applications can be realized that access the same memory area and thus cause problems.
  • MPU Memory Protection Unit
  • Memory protection is usually used to implement access rights to memory areas of a physical memory
  • FIG. 1 An example of a storage protection unit for specifying access authorizations by a process or task (also referred to as thread) initiated by an operating system to storage areas of a physical memory is shown in FIG.
  • FIG. 2 shows a schematic representation of a microcontroller 10 ⁇ embedded in a control unit of a vehicle with a memory protection unit 1 ⁇ and one of these memory units.
  • chertik unit 1 ⁇ assigned descriptor table 1.1 ⁇ .
  • the configuration of this memory protection unit 1 ⁇ is stored in the descriptor table 1.1 ⁇ .
  • the microcontroller 10 ⁇ may be equipped with one or more microcontroller cores.
  • the descriptor table 1.1 ⁇ serves this purpose.
  • the descriptor table 1.1 ⁇ has three areas, namely an area 1.12 ⁇ (Instruction Regions) with 6 entries MPU0 to MPU5, a range 1.13 ⁇ (Data Regions) with 12 entries MPU6 to MPU17 and finally the third area 1.14 ⁇ (Instruction / Data Regions) with 6 entries MPU18 to MPU23.
  • this descriptor table 1.1 ⁇ thus has 24 entries. Each descriptor entry has access allowance data, with which memory access operations managed on a physika ⁇ metallic memory.
  • Such istszulas sungschal ⁇ can as a process identifier (process identifier, PID) can be implemented with a bit mask so that they have to handle ⁇ registration data only a portion of the PID.
  • this process identification of a process running on a core of the microcontroller 10 ⁇ takes over a PID unit 2 which supplies the process identifier of this current process to the memory protection unit 1 ⁇ , which zess identifier PID with the bits from the bit mask of the entries in the descriptor table 1.1 'and, in the event of a match with one of the entries, enables access to the memory area specified by this process identifier PID, so that this current process can perform a memory access operation on this memory area.
  • each descriptor entry represents a PID and that, for example, only n bits with the highest or the lowest values are used as access permission data. Even so, several processes with different PIDs can be addressed with such a descriptor entry. Of course, if the full PID is used as the access permission date, only the process having that PID can be addressed.
  • a context switch breaks processing of the current process and activates another process that was inactive before the break.
  • two processes are involved in a context change, on the one hand the suspended process and on the other hand the process activated after the interruption.
  • the object of the invention is to provide a method for configuring a descriptor table
  • MPU Storage Protection Unit
  • Context change uses as little runtime as possible. Furthermore, it is an object of the invention to carry out the method according to the invention, a microcontroller (MCU) with a memory protection unit (MPU).
  • MCU microcontroller
  • MPU memory protection unit
  • the first object is achieved by a method having the features of patent claim 1.
  • the memory protection unit comprises a descriptor table whose entries have access allowance data, with which permissions on storage areas of physical memory defined, wherein articlesszu ⁇ mikschrist are used which at least a portion of a process identifier (process ID) of a Include memory access triggering process,
  • process ID process identifier
  • process ID process identifier
  • a further memory protection unit provided with a further descriptor table whose entries refer to at least one configuration table as a function of a process identifier
  • process identifier In a reprogramming process with a reference to the further descriptor table process identifier a defined portion of the descriptor table with the entries of the process identifier associated configuration table konfigu ⁇ ration ⁇ .
  • At least one further descriptor table is provided which is managed via a hardware component, namely a further memory protection unit (eMPU).
  • a hardware component namely a further memory protection unit (eMPU).
  • PID process ID
  • a defined portion of the descriptor table is reprogrammed with this hardware EMPU by selected in accordance with the process ID of the entry in the other descriptor table of the further memory protection unit EMPU and the associated or referenced configura ⁇ tions Table into the defined subsection of the scriptor table is loaded.
  • the access authorization data are generated by storing the process identifiers (PID) assigned with a bit mask in the descriptor table.
  • process identifiers are stored in the descriptor table using as access permission data only the n bits with either the highest or lowest digits of the process identifiers.
  • the descriptor table is in a first section
  • Static configuration entries are divided into a second section with dynamic configuration entries, where the second section is configured as a defined section using the additional descriptor table.
  • the static configuration can not be changed during operation of the micro ⁇ processor unit.
  • This configuration of the second section of the dynamic configuration descriptor table is stored in the at least one configuration table.
  • Configuration table can be stored in a flash memory or in a RAM memory.
  • microcontroller comprises:
  • MPU memory protection unit
  • De ⁇ Skriptor table whose entries have access allowance data defining the access authorizations for memory areas of a physical memory, wherein access authorization data are used which at least a portion of a process identifier (process ID) of a Include memory access triggering process
  • Another storage protection unit (eMPU) with another descriptor table whose entries refer to at least one configuration table depending on a process identifier, where
  • the further memory protection unit (eMPU) is configured to configure a defined portion of the descriptor table with the entries of the process identifier associated configuration table in a reprogramming process with a reference to the further descriptor table process identifier.
  • An advantageous embodiment of the invention provides that the descriptor table of the memory protection unit is divided into a first section with entries for a static configuration and a second section with entries for a dynamic configuration. This second portion is then re-programmed by means of the entries of the at least one Configurati ⁇ ons table.
  • Figure 1 is a schematic representation of a microcontroller
  • MCU memory protection unit
  • eMPU memory protection unit
  • Figure 2 is a schematic representation of a microcontroller with a memory protection unit according to the state of
  • the microcontroller 10 comprises a memory protection unit (MPU) 1 with a descriptor table 1.1 and a further memory protection unit (eMPU) 1.2 with a further descriptor table 1.3.
  • MPU memory protection unit
  • eMPU memory protection unit
  • the configuration of the memory protection unit (MPU) 1 is stored in this descriptor table 1.1.
  • the microcontroller 10 may be equipped with one or more microcontroller cores.
  • the descriptor table 1.1 has three areas, namely an area 1.12 (Instruction Regions) with 6 entries MPU0 to MPU5, a area 1.13 (Data Regions) with 12 entries MPU6 to MPU17 and finally the third area 1.14 (Instruction / Data Regions) with 6 entries MPU18 to MPU23. Overall, this descriptor table 1.1 thus has 24 entries.
  • Each De ⁇ Skriptor entry is specified with access authorization data, that is to say are thereby access permits an initiated by the operating system of the microcontroller 10 process for performing a memory access operation for certain memory areas of a physical memory (in Figure 1 not shown) of the microcontroller 10 is defined.
  • This access permission data includes at least a portion of a process identifier (PID). Therefore, as access permission data, the process identifiers together with each bit mask in the descriptor table 1.1 become
  • Descriptor entry saved. It is also possible to save as a descriptor entry and use as access authorization data, only the n bits with either the highest or the lowest place value the pro ⁇ zesskennache.
  • the process identifier (PID) of a current memory access process is supplied to the memory protection unit 1 by means of a PID unit 2 and compared with the access permission data from the descriptor table 1.1.
  • PID process identifier
  • the descriptor table 1.1 has two sections 1.10 and 1.11, wherein the first section 1.10 contains a static configuration for the memory protection unit 1, while the second section 1.11 serves for the dynamic configuration.
  • the first section 1.10 comprises the areas 1.12 and 1.13 according to the descriptor table 1.1 while the second section 1.11 corresponds to the area 1.14 of the descriptor table 1.1 ⁇ according to FIG.
  • the descriptor table 1.1 contains according to Figure 1 a Section 1.10 with 6 instruction areas (background ⁇ struction Regions) and 12 data fields (Background Data Regions), while the dynamic configuration Section 1.11 6 instruction / data areas ( Dynamic Regions Instrukti ⁇ on / Data).
  • the further memory protection unit (eMPU) 1.2 is used to reprogram the dynamic configuration section 1.11.
  • the associated configurations are in configuration tables 1.30, 1.31, 1.32 and 1.33 are stored, each having entries MPUO to MPU5. On these configuration tables 1.30,
  • the process ID is one of the operating system of the micro- controller 10 led process for performing a memory access operation is identi ⁇ fied and by the PID unit 2 not only supplied to the memory protection unit 1, but also the further memory protection unit 1.2, the process identifier PID compares with the access permission data stored in the other descriptor table 1.3. If the process changes to a reprogramming process with an access permission data referring to the further descriptor tables 1.30, 1.31, 1.32 and 1.33, the dynamic section 1.11 of the descriptor table 1.1 is reprogrammed by means of the further memory protection unit 1.2.
  • the dynamic section 1.11 is reprogrammed with the configuration table 1.32, while with an access permission date 10 the dynamic section 1.11 is reprogrammed with the configuration table 1.30.
  • the method according to the invention can be used with the corresponding microcontroller for safety applications in the vehicle or where secure memory partitioning is required.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zur Konfiguration einer Speicherschutz-Einheit (MPU, 1) eines Mikrocontrollers (MCU,10), bei welchem für die Speicherschutz-Einheit (MPU, 1) eine Deskriptor-Tabelle (1.1) bereitgestellt wird, deren Einträge Zugriffszulassungsdaten aufweisen, mit welchen Zugriffszulassungen für Speicherbereiche eines physikalischen Speichers definiert werden, welche zumindest einen Abschnitt einer Prozesskennung (Prozess-ID) eines einen Speicherzugriffsvorgang auslösenden Prozesses umfassen, eine Prozesskennung (Prozess-ID) des einen Speicherzugriffsvorgang initiierenden Prozesses mit den Zugriffszulassungsdaten verglichen werden und bei einer Übereinstimmung der Speicherzugriffsvorgang ausgeführt wird, eine weitere Speicherschutz-Einheit (eMPU, 1.2) mit einer weiteren Deskriptor-Tabelle (1.3) bereitgestellt wird, deren Einträge in Abhängigkeit einer Prozesskennung auf wenigstens eine Konfigurations-Tabelle (1.30, 1.31, 1.32 1.33) verweisen, und bei einem Umprogrammierungs-Prozess mit einer auf die weitere Deskriptor-Tabelle (1.3) verweisenden Prozesskennung ein definierter Teilbereich (1.11) der Deskriptor-Tabelle (1.1) mit den Einträgen der der Prozesskennung zugehörigen Konfigurations-Tabelle (1.30, 1.31, 1.32 1.33) konfiguriert wird. Die Erfindung betrifft ferner einen Mikrocontroller (10) zur Durchführung des erfindungsgemäßen Verfahrens.

Description

Verfahren zur automatischen und dynamischen Re-Konfiguration einer Speicherschutz-Einheit sowie ein Mikrocontroller mit einer Speicherschutz-Einheit
Die Erfindung betrifft ein Verfahren zur Konfiguration einer eine Deskriptor-Tabelle aufweisende Speicherschutz-Einheit eines MikroControllers. Die Erfindung betrifft ferner einen Mikro¬ controller mit einer Speicherschutz-Einheit zur Durchführung des erfindungsgemäßen Verfahrens .
Steuergeräte in Fahrzeugen sind bekannt und bestehen aus einem oder mehreren Prozessoren als Mikrocontroller und darauf ausgeführter Software, die in einen technischen Anwendungskontext, bspw. der Motorsteuerung eingebunden ist. Auf einem solchen Steuergerät können verschiedene Anwendungen realisiert werden, die auf denselben Speicherbereich zugreifen und damit Probleme verursachen können.
Als Speicherschutzkonzept ist der Einsatz einer Speicher¬ schutz-Einheit (MPU, Memory Protection Unit) als separate Hardware-Komponente bekannt, die in einem Mikrocontroller des Steuergerätes integrierbar ist oder auch als vom Mikrokontroller getrennte Komponente realisiert werden kann.
Der Speicherschutz dient üblicherweise der Umsetzung von Zugriffsrechten auf Speicherbereiche eines physikalischen
Speichers und ermöglicht dadurch die Abschottung von Anwendungsprozessen voneinander und vom Betriebssystem.
Ein Beispiel einer Speicherschutz-Einheit zur Spezifizierung von Zugriffsrechten bzw. Zugriffszulassungen seitens eines von einem Betriebssystem initiierten Prozesses bzw. Task (auch Thread genannt) auf Speicherbereiche eines physikalischen Speichers ist in Figur 2 dargestellt.
Die Figur 2 zeigt in einer schematischen Darstellung eine in einem Steuergerät eines Fahrzeugs eingebetteten Mikrocontroller 10 λ mit einer Speicherschutz-Einheit 1 λ und einer dieser Spei- cherschutz-Einheit 1λ zugeordneten Deskriptor-Tabelle 1.1 λ. Die Konfiguration dieser Speicherschutz-Einheit 1 λ ist in der Deskriptor-Tabelle 1.1 λ gespeichert. Der MikroController 10 λ kann mit einem oder mit mehreren Mikrocontroller-Kernen aus- gestattet sein.
Mit einer Prozess-Kennung (PID, Process Identifier) wird ein auf dem MikroController 10 λ laufender Prozess, welcher von dem Betriebssystem des MikroControllers 10 λ initiiert wird, ein- deutig identifiziert. Damit können auf der Basis solcher PID' s auch die Zugriffsrechte bzw. Zugriffszulassungen des zugehörigen Prozesses verwaltet und gesteuert werden. Hierzu dient die Deskriptor-Tabelle 1.1 λ. Die Deskriptor-Tabelle 1.1 λ weist drei Bereiche auf, nämlich einen Bereich 1.12 λ (Instruction Regions) mit 6 Einträgen MPU0 bis MPU5, einen Bereich 1.13 λ (Data Regions) mit 12 Einträgen MPU6 bis MPU17 und schließlich den dritten Bereich 1.14 λ (Instruction/Data Regions) mit 6 Einträgen MPU18 bis MPU23.
Insgesamt weist diese Deskriptor-Tabelle 1.1 λ somit 24 Einträge auf. Jeder Deskriptor-Eintrag weist Zugriffszulassungsdaten auf, mit welchen Speicherzugriffsvorgänge auf einen physika¬ lischen Speicher verwaltet werden. Solche Zugriffszulas¬ sungsdaten können als Prozess-Kennung (Process Identifier, PID) mit einer Bit-Maske realisiert werden, so dass diese Zu¬ griffszulassungsdaten nur einen Abschnitt der PID aufweisen.
Bevor der Zugriff eines von dem Betriebssystem des Mikrocon- trollers 10 λ initiierten Prozesses auf bestimmte Speicherbe- reiche eines physikalischen Speichers (in Figur 2 nicht dar¬ gestellt) erfolgt, wird die PID dieses Prozesses bitweise mit den Bits der Bit-Maske verglichen und bei einer Übereinstimmung der Zugriff auf den Speicher zugelassen. Diese Prozess-Identifizierung eines auf einem Kern des Mik- rocontrollers 10 λ laufenden Prozesses übernimmt gemäß Figur 2 eine PID-Einheit 2 die die Prozess-Kennung dieses aktuellen Prozesses der Speicherschutz-Einheit 1 λ zuführt, diese Pro- zess-Kennung PID mit den Bits aus der Bit-Maske der Einträge der Deskriptor-Tabelle 1.1' vergleicht und bei einer Übereinstimmung mit einer der Einträge den Zugriff auf den durch diese Pro- zess-Kennung PID spezifizierten Speicherbereich freigibt, so dass dieser aktuelle Prozess einen Speicherzugriffsvorgang auf diesen Speicherbereich ausführen kann.
Es ist auch möglich, dass jeder Deskriptor-Eintrag eine PID darstellt und dass bspw. nur n Bits mit den höchsten oder den niedrigsten Stellenwerten als Zugriffszulassungsdaten verwendet werden. Auch damit können mit einem solchen Deskriptor-Eintrag mehrere Prozesse mit unterschiedlichen PIDs angesprochen werden. Wird als Zugriffszulassungsdatum die vollständige PID verwendet, kann natürlich nur dieser diese PID aufweisende Prozess an- gesprochen werden.
Mit zunehmend komplexer werdenden Software, die von dem Mik- rocontroller 10 λ ausgeführt wird, steigt auch der Bedarf an Deskriptor-Einträgen. Bei einem Kontextwechsel zu einem anderen Prozess ist es daher erforderlich, zumindest einen Teil der Deskriptor-Tabelle 1.1 λ umzukonfigurieren . Eine solche Um- konfiguration wird von dem Betriebssystem durchgeführt und verbraucht Laufzeit, die von der Anzahl der umkonfigurierten Deskriptor-Einträge abhängt. Dies führt in nachteiliger Weise zur Zunahme der Laufzeit bei einem Kontextwechsel.
Bei einem Kontextwechsel wird die Bearbeitung des aktuellen Prozesses unterbrochen und ein anderer Prozess aktiviert, der vor der Unterbrechung inaktiv war. An einem Kontextwechsel sind somit zwei Prozesse beteiligt, einerseits der suspendierte Prozess und andererseits der nach der Unterbrechung aktivierte Prozess.
Die Aufgabe der Erfindung besteht darin, ein Verfahren zur Konfiguration einer eine Deskriptor-Tabelle aufweisende
Speicherschutz-Einheit (MPU) anzugeben, welches für einen
Kontextwechsel möglichst wenig Laufzeit verbraucht. Ferner ist es Aufgabe der Erfindung, zur Durchführung des erfindungsgemäßen Verfahrens einen MikroController (MCU) mit einer Speicher- schutz-Einheit (MPU) anzugeben.
Die erstgenannte Aufgabe wird gelöst durch ein Verfahren mit den Merkmalen des Patentanspruchs 1.
Bei diesem Verfahren zur Konfiguration einer Speicherschutz-Einheit (MPU) eines MikroControllers (MCU) wird
- für die Speicherschutz-Einheit eine Deskriptor-Tabelle be¬ reitgestellt, deren Einträge Zugriffszulassungsdaten aufweisen, mit welchen Zugriffszulassungen für Speicherbereiche eines physikalischen Speichers definiert werden, wobei Zugriffszu¬ lassungsdaten verwendet werden, welche zumindest einen Abschnitt einer Prozesskennung (Prozess-ID) eines einen Speicherzugriffsvorgang auslösenden Prozesses umfassen,
- eine Prozesskennung (Prozess-ID) des einen Speicherzugriffsvorgang initiierenden Prozesses mit den Zugriffszulassungsdaten verglichen und bei einer Übereinstimmung der
Speicherzugriffsvorgang ausgeführt, ,
- eine weitere Speicherschutz-Einheit mit einer weiteren De- skriptor-Tabelle bereitgestellt, deren Einträge in Abhängigkeit einer Prozesskennung auf wenigstens eine Konfigurations-Tabelle verweisen, und
- bei einem Umprogrammierungs-Prozess mit einer auf die weitere Deskriptor-Tabelle verweisende Prozesskennung ein definierter Teilbereich der Deskriptor-Tabelle mit den Einträgen der der Prozesskennung zugehörigen Konfigurations-Tabelle konfigu¬ riert .
Bei diesem erfindungsgemäßen Verfahren wird also wenigstens eine weitere Deskriptor-Tabelle bereitgestellt, die über eine Hardware-Komponente, nämlich einer weiteren Speicherschutz-Einheit (eMPU) verwaltet wird. Bei einem Wechsel der Prozesskennung (PID) wird ein definierter Teilbereich der Deskriptor-Tabelle mit dieser Hardware eMPU umprogrammiert, indem entsprechend der Prozesskennung der Eintrag in der weiteren Deskriptor-Tabelle der weiteren Speicherschutz-Einheit eMPU ausgewählt und die zugehörige bzw. referenzierte Konfigura¬ tions-Tabelle in den definierten Teilbereich der De- skriptor-Tabelle geladen wird.
Diese Erweiterung mittels der weiteren Speicherschutz-Einheit eMPU und der wenigstens einen zugehörigen weiteren De- skriptor-Tabelle wird die Funktionalität der Deskriptor-Tabelle nicht beeinflusst, da die in der Deskriptor-Tabelle spezifi¬ zierten Zugriffszulassungen nach wie vor anhand der Prozess- kennung bestimmt werden. Nach einer vorteilhaften Ausgestaltung der Erfindung werden die Zugriffszulassungsdaten erzeugt, indem die mit einer Bit-Maske belegten Prozess-Kennungen (PID) in der Deskriptor-Tabelle gespeichert werden. Nach einer alternativen Realisierung werden Prozess-Kennungen in der Deskriptor Tabelle gespeichert, wobei als Zugriffszulassungsdaten lediglich die n Bits entweder mit den höchsten oder den niedrigsten Stellen der Prozess-Kennungen verwendet werden.
Nach einer weiteren vorteilhaften Weiterbildung der Erfindung wird die Deskriptor-Tabelle in einen ersten Abschnitt mit
Einträgen für eine statische Konfiguration und in einen zweiten Abschnitt mit Einträgen für eine dynamische Konfiguration geteilt, wobei der zweite Abschnitt als definierter Teilbereich mittels der weiteren Deskriptor-Tabelle konfiguriert wird. Die statische Konfiguration kann während des Betriebs der Mikro¬ prozessor-Einheit nicht verändert werden.
Diese Konfiguration des zweiten Abschnitts der Deskriptor-Tabelle für die dynamische Konfiguration ist in der wenigstens einen Konfigurations-Tabelle gespeichert. Diese
Konfiguration-Tabelle kann in einem Flash-Speicher oder in einem RAM-Speicher abgelegt werden.
Es können mehrerer solcher Konfiguration-Tabellen bereitge- stellt werden, welche über die Prozess-Kennung der weiteren Deskriptor-Tabelle der weiteren Speicherschutz-Einheit refe- renziert werden. Die zweitgenannte Aufgabe wird gelöst durch einen Mikrocon¬ troller (MCU) mit einer Speicherschutz-Einheit (MPU) mit den Merkmalen gemäß des Patentanspruches 5. Ein solcher Mikrocontroller (MCU) umfasst:
- eine Speicherschutz-Einheit (MPU) mit einer De¬ skriptor-Tabelle, deren Einträge Zugriffszulassungsdaten aufweisen, welche Zugriffszulassungen für Speicherbereiche eines physikalischen Speichers definieren, wobei Zugriffszu- lassungsdaten verwendet werden, welche zumindest einen Abschnitt einer Prozesskennung (Prozess-ID) eines einen Speicherzugriffsvorgang auslösenden Prozesses umfassen,
- eine weitere Speicherschutz-Einheit (eMPU) mit einer weiteren Deskriptor-Tabelle, deren Einträge in Abhängigkeit einer Prozesskennung auf wenigstens eine Konfigurations-Tabelle verweisen, wobei
- die weitere Speicherschutzeinheit (eMPU) ausgebildet ist, bei einem Umprogrammierungs-Prozess mit einer auf die weitere Deskriptor-Tabelle verweisenden Prozesskennung einen defi- nierten Teilbereich der Deskriptor-Tabelle mit den Einträgen der der Prozesskennung zugehörigen Konfigurations-Tabelle zu konfigurieren .
Die im Zusammenhang mit dem erfindungsgemäßen Verfahren auf- geführten Vorteile weist auch dieser erfindungsgemäße Mikro¬ controller auf.
Eine vorteilhafte Ausgestaltung der Erfindung sieht vor, dass die Deskriptor-Tabelle der Speicherschutz-Einheit in einen ersten Abschnitt mit Einträgen für eine statische Konfiguration und einen zweiten Abschnitt mit Einträgen für eine dynamische Konfiguration aufgeteilt ist. Dieser zweite Abschnitt wird dann mittels den Einträgen der wenigstens einen Konfigurati¬ ons-Tabelle umprogrammiert.
Das erfindungsgemäße Verfahren und ein Mikrocontroller (MCU) mit einer Speicherschutz-Einheit zur Durchführung des erfindungsgemäßen Verfahrens wird nachfolgend anhand eines Aus- führungsbeispiels unter Bezugnahme auf die beigefügten Figuren beschrieben und erläutert. Es zeigen:
Figur 1 eine schematische Darstellung eines Mikrocontrollers
(MCU) mit einer Speicherschutz-Einheit (MPU) und einer weiteren Speicherschutz-Einheit (eMPU) zur Erläu¬ terung des erfindungsgemäßen Verfahrens, und
Figur 2 eine schematische Darstellung eines Mikrocontrollers mit einer Speicherschutz-Einheit gemäß Stand der
Technik .
Da der MikroController 10 λ mit einer Speicherschutz-Einheit 1λ gemäß Figur 2 bereits in der Beschreibungseinleitung beschrieben wurde, wird im Zusammenhang mit der Beschreibung des MikroControllers 10 gemäß Figur 1 lediglich hierauf verwiesen.
Der MikroController 10 gemäß Figur 1 umfasst eine Speicherschutz-Einheit (MPU) 1 mit einer Deskriptor-Tabelle 1.1 sowie eine weitere Speicherschutz-Einheit (eMPU) 1.2 mit einer weiteren Deskriptor-Tabelle 1.3.
Die Konfiguration der Speicherschutz-Einheit (MPU) 1 ist in dieser Deskriptor-Tabelle 1.1 gespeichert. Der MikroController 10 kann mit einem oder mit mehreren Mikrocontroller-Kernen ausgestattet sein.
Die Deskriptor-Tabelle 1.1 weist drei Bereiche auf, nämlich einen Bereich 1.12 (Instruction Regions) mit 6 Einträgen MPU0 bis MPU5, einen Bereich 1.13 (Data Regions) mit 12 Einträgen MPU6 bis MPU17 und schließlich den dritten Bereich 1.14 (Instruction/Data Regions) mit 6 Einträgen MPU18 bis MPU23. Insgesamt weist diese Deskriptor-Tabelle 1.1 somit 24 Einträge auf. Jeder De¬ skriptor-Eintrag ist mit Zugriffszulassungsdaten spezifiziert, das heißt es werden dadurch Zugriffszulassungen eines von dem Betriebssystem des Mikrocontrollers 10 initiierten Prozesses zur Durchführung eines Speicherzugriffsvorganges für bestimmte Speicherbereiche eines physikalischen Speichers (in Figur 1 nicht dargestellt) des MikroControllers 10 definiert. Diese Zugriffszulassungsdaten umfassen wenigstens einen Abschnitt einer Prozesskennung (Process Identifier, PID) . Daher werden als Zugriffszulassungsdaten die Prozesskennungen zusammen mit jeweils einer Bit-Maske in der Deskriptor-Tabelle 1.1 als
Deskriptor-Eintrag gespeichert. Es ist auch möglich die Pro¬ zesskennungen als Deskriptor-Eintrag zu speichern und als Zugriffszulassungsdaten lediglich die n Bits entweder mit den höchsten oder den niedrigsten Stellenwerten zu verwenden.
Wie bereits im Zusammenhang mit Figur 2 erläutert, wird mittels einer PID-Einheit 2 die Prozess-Kennung (PID) eines aktuellen Speicherzugriffs-Prozesses der Speicherschutz-Einheit 1 zuführt und mit den Zugriffszulassungsdaten aus der Deskriptor-Tabelle 1.1 verglichen. Bei einer Übereinstimmung mit einer der Einträge wird der Zugriff auf den durch die Prozess-Kennung PID spezifizierten Speicherbereich freigegeben, so dass der Speicherzugriffsvorgang durchgeführt werden kann. Die Deskriptor-Tabelle 1.1 weist zwei Abschnitte 1.10 und 1.11 auf, wobei der erste Abschnitt 1.10 eine statische Konfiguration für die Speicherschutz-Einheit 1 enthält, während der zweite Abschnitt 1.11 zur dynamischen Konfiguration dient. Der erste Abschnitt 1.10 umfasst die Bereiche 1.12 und 1.13 entsprechend der Deskriptor-Tabelle 1.1 während der zweite Abschnitt 1.11 dem Bereich 1.14 der Deskriptor-Tabelle 1.1 λ nach Figur 2 entspricht .
Damit enthält die Deskriptor-Tabelle 1.1 gemäß Figur 1 einen Abschnitt 1.10 mit 6 Instruktions-Bereichen (background In¬ struction Regions) und 12 Daten-Bereichen (Background Data Regions), während der dynamische Konfigurations-Abschnitt 1.11 6 Instruktions/Daten-Bereiche (Dynamic Regions Instrukti¬ on/Data) aufweist.
Die weitere Speicherschutz-Einheit (eMPU) 1.2 dient zur Um- programmierung des dynamischen Konfigurations-Abschnittes 1.11. Die zugehörigen Konfigurationen sind in Konfigurations-Tabellen 1.30, 1.31, 1.32 und 1.33 gespeichert, die jeweils Einträge MPUO bis MPU5 aufweisen. Auf diese Konfigurations-Tabellen 1.30,
1.31, 1.32 und 1.33 wird in einer weiteren Deskriptor-Tabelle 1.3 der weiteren Speicherschutz-Einheit 1.2 mittels Zugriffszu- lassungsdaten (PID) referenziert . Mit dem Zugriffszulas¬ sungsdatum 10 wird in der weiteren Deskriptor-Tabelle 1.3 auf die Konfigurations-Tabelle 1.30, mit dem Zugriffszulassungsdatum 12 wird auf die Konfigurations-Tabelle 1.31, mit dem Zugriffs¬ zulassungsdatum 4 wird auf die Konfigurations-Tabelle 1.32 und mit dem Zugriffszulassungsdatum 5 wird auf die Konfigurati¬ ons-Tabelle 1.33 verwiesen. Auch diese Zugriffszulassungsdaten der weiteren Deskriptor-Tabelle 1.3 werden dadurch erzeugt, dass Prozesskennungen (PID) zusammen mit jeweils einer Bit-Maske gespeichert werden. Diese Zugriffszulassungsdaten können auch die n Bits entweder der höchsten oder der niedrigsten Stellenwerte einer Prozesskennung (PID) darstellen.
Die Prozesskennung eines von dem Betriebssystem des Mikro- controllers 10 veranlassten Prozesses zur Durchführung eines Speicherzugriffsvorganges wird von der PID-Einheit 2 identi¬ fiziert und nicht nur der Speicherschutz-Einheit 1, sondern auch der weiteren Speicherschutz-Einheit 1.2 zugeführt, die die Prozesskennung PID mit den in der weiteren Deskriptor-Tabelle 1.3 abgelegten Zugriffszulassungsdaten vergleicht. Wechselt der Prozess auf einen Umprogrammierungs-Prozess mit einer auf die weiteren Deskriptor-Tabellen 1.30, 1.31, 1.32 und 1.33 verweisenden Zugriffszulassungsdaten wird mittels der weiteren Speicherschutz-Einheit 1.2 der dynamische Abschnitt 1.11 der Deskriptor-Tabelle 1.1 umprogrammiert.
Bei einem Kontextwechsel auf einen Prozess mit bspw. einem Zugriffszulassungsdatum 4 wird der dynamische Abschnitt 1.11 mit der Konfigurations-Tabelle 1.32 umprogrammiert, während mit einem Zugriffszulassungsdatum 10 der dynamische Abschnitt 1.11 mit der Konfigurations-Tabelle 1.30 umprogrammiert wird.
Mit einer solchen Hardware-Komponente (eMPU) 1.2 können mehrere Bereiche der Deskriptor-Tabelle 1.1 der Speicherschutz-Einheit 1 mittels der Deskriptor-Tabellen 1.30 bis 1.33 statisch definiert werden, welche dann mittels dieser weiteren Spei¬ cherschutz-Einheit 1.2 automatisch, also dynamisch umgeschaltet und die entsprechende Bereiche der Deskriptor-Tabelle 1.1 umprogrammiert werden. Hierfür wird keine Software-Laufzeit verbraucht .
Das erfindungsgemäße Verfahren kann unter Verwendung des entsprechenden Mikrocontrollers für Sicherheitsanwendungen im Fahrzeug eingesetzt werden oder dort, wo eine sichere Spei- cher-Partitionierung erforderlich ist.

Claims

Patentansprüche
Verfahren zur Konfiguration einer Speicherschutz-Einheit (MPU, 1) eines MikroControllers (MCU, 10), bei welchem
- für die Speicherschutz-Einheit (MPU, 1) eine De¬ skriptor-Tabelle (1.1) bereitgestellt wird, deren Einträge Zugriffszulassungsdaten aufweisen, mit welchen Zugriffszulassungen für Speicherbereiche eines physikalischen Speichers definiert werden, wobei Zugriffszulassungsdaten verwendet werden, welche zumindest einen Abschnitt einer Prozesskennung (Prozess-ID) eines einen Speicherzugriffsvorgang auslösenden Prozesses umfassen,
- eine Prozesskennung (Prozess-ID) des einen Speicherzugriffsvorgang initiierenden Prozesses mit den Zugriffszulassungsdaten verglichen werden und bei einer Übereinstimmung der Speicherzugriffsvorgang ausgeführt wird,
- eine weitere Speicherschutz-Einheit (eMPU, 1.
2) mit einer weiteren Deskriptor-Tabelle (1.3) bereitgestellt wird, deren Einträge in Abhängigkeit einer Prozesskennung auf wenigstens eine Konfigurations-Tabelle (1.30, 1.31, 1.32 1.33) verweisen, und
- bei einem Umprogrammierungs-Prozess mit einer auf die weitere Deskriptor-Tabelle (1.3) verweisenden Prozess¬ kennung ein definierter Teilbereich (1.11) der Deskriptor-Tabelle (1.1) mit den Einträgen der der Pro¬ zesskennung zugehörigen Konfigurations-Tabelle (1.30, 1.31, 1.32 1.33) konfiguriert wird.
Verfahren nach Anspruch 1, bei welchem als Zugriffszulassungsdaten mit einer Bit-Maske belegte Prozess-Kennungen (PID) in der Deskriptor-Tabelle (1.1) gespeichert werden.
3. Verfahren nach Anspruch 1, bei welchem Prozess-Kennungen (PID) in der Deskriptor-Tabelle (1.1) gespeichert werden, wobei als Zugriffszulassungsdaten die n Bits entweder mit den höchsten oder den niedrigsten Stellenwerten verwendet werden . Verfahren nach einem der vorhergehenden Ansprüche, bei welchem die Deskriptor-Tabelle (1.1) in einen ersten Ab¬ schnitt (1.10) mit Einträgen für eine statische Konfigu¬ ration und in einen zweiten Abschnitt (1.11) mit Einträgen für eine dynamische Konfiguration geteilt wird, wobei der zweite Abschnitt (1.11) als definierter Teilbereich mittels der weiteren Deskriptor-Tabelle (1.3) konfiguriert wird.
MikroController (MCU, 10), umfassend
- eine Speicherschutz-Einheit (MPU, 1) mit einer De¬ skriptor-Tabelle (1.1), deren Einträge Zugriffszulas¬ sungsdaten aufweisen, mit welchen Zugriffszulassungen für Speicherbereiche eines physikalischen Speichers definiert werden, wobei
- Zugriffszulassungsdaten verwendet werden, welche zumindest einen Abschnitt einer Prozesskennung (Prozess-ID) eines einen Speicherzugriffsvorgang auslösenden Prozesses umfassen,
- eine weitere Speicherschutz-Einheit (eMPU, 1.2) mit einer weiteren Deskriptor-Tabelle (1.3), deren Einträge in Abhängigkeit einer Prozesskennung auf wenigstens eine Konfigurations-Tabelle (1.30, 1.31, 1.32 1.33) verweisen, wobei
- die weitere Speicherschutzeinheit (1.2) ausgebildet ist, bei einem Umprogrammierungs-Prozess mit einer auf die weitere Deskriptor-Tabelle (1.3) verweisenden Prozess¬ kennung einen definierten Teilbereich (1.11) der Deskriptor-Tabelle (1.1) mit den Einträgen der der Pro¬ zesskennung zugehörigen Konfigurations-Tabelle (1.30, 1.31, 1.32 1.33) zu konfigurieren.
MikroController (10) nach Anspruch 3, bei welcher die Deskriptor-Tabelle (1.1) in einen ersten Abschnitt (1.10) mit Einträgen für eine statische Konfiguration und einen zweiten Abschnitt (1.11) mit Einträgen für eine dynamische Konfiguration aufgeteilt ist
PCT/EP2017/078628 2016-11-17 2017-11-08 Verfahren zur automatischen und dynamischen re-konfiguration einer speicherschutz-einheit sowie ein mikrocontroller mit einer speicherschutz-einheit Ceased WO2018091334A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102016222695.9A DE102016222695A1 (de) 2016-11-17 2016-11-17 Verfahren zur automatischen und dynamischen Re-Konfiguration einer Speicherschutz-Einheit sowie ein Mikrocontroller mit einer Speicherschutz-Einheit
DE102016222695.9 2016-11-17

Publications (1)

Publication Number Publication Date
WO2018091334A1 true WO2018091334A1 (de) 2018-05-24

Family

ID=60452598

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2017/078628 Ceased WO2018091334A1 (de) 2016-11-17 2017-11-08 Verfahren zur automatischen und dynamischen re-konfiguration einer speicherschutz-einheit sowie ein mikrocontroller mit einer speicherschutz-einheit

Country Status (2)

Country Link
DE (1) DE102016222695A1 (de)
WO (1) WO2018091334A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11334501B2 (en) 2020-01-28 2022-05-17 Hewlett Packard Enterprise Development Lp Access permissions for memory regions

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120216002A1 (en) * 2011-02-23 2012-08-23 Freescale Semiconductor, Inc. Remote permissions provisioning for storage in a cache and device therefor
US20120215991A1 (en) * 2011-02-23 2012-08-23 Freescale Semiconductor, Inc. Memory protection unit (mpu) having a shared portion and method of operation
US20140223047A1 (en) * 2013-02-07 2014-08-07 Texas Instruments Incorporation System and method for per-task memory protection for a non-programmable bus master
WO2014122415A1 (en) * 2013-02-05 2014-08-14 Arm Limited Virtualisation supporting guest operating systems using memory protection units
US20150371046A1 (en) * 2014-06-20 2015-12-24 Microsoft Corporation Preventing code modification after boot
US20160283402A1 (en) * 2015-03-23 2016-09-29 Intel Corporation Dynamic Configuration and Peripheral Access in a Processor

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7716453B2 (en) * 2004-09-10 2010-05-11 Freescale Semiconductor, Inc. Descriptor-based memory management unit and method for memory management

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120216002A1 (en) * 2011-02-23 2012-08-23 Freescale Semiconductor, Inc. Remote permissions provisioning for storage in a cache and device therefor
US20120215991A1 (en) * 2011-02-23 2012-08-23 Freescale Semiconductor, Inc. Memory protection unit (mpu) having a shared portion and method of operation
WO2014122415A1 (en) * 2013-02-05 2014-08-14 Arm Limited Virtualisation supporting guest operating systems using memory protection units
US20140223047A1 (en) * 2013-02-07 2014-08-07 Texas Instruments Incorporation System and method for per-task memory protection for a non-programmable bus master
US20150371046A1 (en) * 2014-06-20 2015-12-24 Microsoft Corporation Preventing code modification after boot
US20160283402A1 (en) * 2015-03-23 2016-09-29 Intel Corporation Dynamic Configuration and Peripheral Access in a Processor

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11334501B2 (en) 2020-01-28 2022-05-17 Hewlett Packard Enterprise Development Lp Access permissions for memory regions

Also Published As

Publication number Publication date
DE102016222695A1 (de) 2018-05-17

Similar Documents

Publication Publication Date Title
DE10115729B4 (de) Vielseitiges Boot-Verfahren für eine Anwendungs-Software eines Mikrocontrollers
EP3128383B1 (de) Feldgerät
WO1985002475A1 (fr) Procede de surveillance d'elements de calcul electroniques, en particulier des microprocesseurs
DE102016212204A1 (de) Auto-aktualisierungseinheit für architektur für gemeinsam genutzten speicher
EP3650968A1 (de) Verfahren zum betrieb einer produktions- oder werkzeugmaschine und produktions- oder werkzeugmaschine sowie computerprogramm zum betrieb einer produktions- oder werkzeugmaschine
EP1262856B1 (de) Programmgesteuerte Einheit
DE102017100118A1 (de) Skalierbares Steuersystem für ein Kraftfahrzeug
WO2010111989A1 (de) Vorrichtung, verfahren und computerprogrammprodukt zum darstellen einer aktuellen taskliste auf der graphischen benutzeroberfläche eines steuerungscomputers einer bearbeitungsmaschine
DE102011107646A1 (de) Verfahren und System zur dynamischen Verteilung von Programmfunktionen in verteilten Steuerungssystemen
DE102005010476A1 (de) Steuergerät mit konfigurierbaren Hardwaremodulen
WO2018091334A1 (de) Verfahren zur automatischen und dynamischen re-konfiguration einer speicherschutz-einheit sowie ein mikrocontroller mit einer speicherschutz-einheit
DE10064025B4 (de) Verfahren zum Booten eines Mikroprozessors sowie Mikroprozessor mit einem bedingten deterministischen Rücksetzvektor
DE10002204B4 (de) Verfahren zum Schutz eines Mikrorechners eines Steuergeräts gegen Manipulation eines Programmes und Vorrichtung zur Durchführung des Verfahrens
WO2017178211A1 (de) Verfahren zum betreiben eines steuergeräts für ein fahrzeug, steuergerät, betriebssystem, kraftfahrzeug
WO2017125181A1 (de) Verfahren zum aktualisieren von software eines steuergerätes, vorzugsweise für ein kraftfahrzeug
DE102013016114B3 (de) Bussystem und Verfahren für geschützte Speicherzugriffe
DE102005010477A1 (de) Vorrichtung und Verfahren zur Abarbeitung priorisierter Steuerungsprozesse
EP2333624A1 (de) Verfahren und Einrichtung zur Konfigurierung einer Komponente in einer industriellen Automatisierungsanordnung
EP3399375B1 (de) Verfahren zur konfiguration von steuergeräten
DE102020203420B4 (de) Verfahren und Vorrichtung zum Rekonfigurieren eines automatisiert fahrenden Fahrzeugs in einem Fehlerfall
EP1461676B1 (de) Verfahren zur lizenzierung von softwareprogrammen
DE112022005984T5 (de) Aktualisierungsmanagementsystem
DE102016224206A1 (de) Fahrzeugsteuervorrichtung
WO2015177226A1 (de) Verfahren zum erzeugen einer hypervisor-einheit für eingebettete systeme
EP2018604B1 (de) Verfahren zum betreiben eines steuergeräts

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: 17804099

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17804099

Country of ref document: EP

Kind code of ref document: A1