WO2003027815A2 - Programmgesteuerte einheit - Google Patents

Programmgesteuerte einheit Download PDF

Info

Publication number
WO2003027815A2
WO2003027815A2 PCT/DE2002/003202 DE0203202W WO03027815A2 WO 2003027815 A2 WO2003027815 A2 WO 2003027815A2 DE 0203202 W DE0203202 W DE 0203202W WO 03027815 A2 WO03027815 A2 WO 03027815A2
Authority
WO
WIPO (PCT)
Prior art keywords
memory device
mem
program
access
controlled unit
Prior art date
Application number
PCT/DE2002/003202
Other languages
English (en)
French (fr)
Other versions
WO2003027815A3 (de
Inventor
Peter Rohm
Original Assignee
Infineon Technologies Ag
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 Infineon Technologies Ag filed Critical Infineon Technologies Ag
Priority to US10/490,230 priority Critical patent/US20050108488A1/en
Priority to EP02799387A priority patent/EP1428105A2/de
Publication of WO2003027815A2 publication Critical patent/WO2003027815A2/de
Publication of WO2003027815A3 publication Critical patent/WO2003027815A3/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24168Identify connected programmer to allow control, program entry

Definitions

  • the present invention relates to a device according to the preamble of claim 1, i.e. a program-controlled unit with a memory device which can be read or written by various other components of the program-controlled unit.
  • Such a program-controlled unit is, for example, a microcontroller, a microprocessor, a signal processor or the like.
  • the first reason is that the stored data is often an essential part of the development of the system containing the program-controlled units and therefore should not get into the hands of competitors if possible. This is the case, for example, with microcontrollers that are used in motor vehicle control units. In such microcontrollers, essential motor characteristics are stored, which determine how the motor should be controlled in which situation.
  • the present invention is therefore based on the object of developing the program-controlled unit according to the preamble of claim 1 such that unauthorized persons have no possibility of reading out and / or changing data stored in the storage device.
  • the program-controlled unit is characterized in that, when the storage device is accessed, a check is carried out to determine whether the respective access was or could have been initiated by an unauthorized person, and that the storage device only outputs requested data and / or is supplied to it Data is only stored if the check has shown that it can be assumed that the access in question was not or could not have been initiated by an unauthorized person.
  • the figure shows the block diagram of a microcontroller in which the memory protection system described below is implemented.
  • memory protection system described is described here using a microcontroller, it can also be used in other program-controlled units such as, for example, microprocessors and signal processors.
  • the microcontroller shown in the figure contains
  • debug resources DEB formed by an OCDS module (on-chip debug support module),
  • the first CPU subsystem CPUSYsi contains a CPU CPU1, an instruction fetching unit CFU1, and a data storage access unit DMU1.
  • the second CPU subsystem CPUSYS2 may or may not have the same structure.
  • An external master unit EXTMAS and an external memory device EXTMEM are connected to the external bus EXTBUS.
  • the microcontroller can also contain a larger number of components, or a smaller number of components and / or other components. Likewise, a larger number of components or a smaller number of components and / or other components can also be connected to the external bus EXTBUS.
  • this common memory device MEM is the memory to be protected by the memory protection system described, i.e. a memory, the content of which should not be readable and / or changeable by persons who are not authorized to do so.
  • the memory device MEM is connected to the bus BUS1, which means that the memory device MEM can be accessed by all other components, which are also connected to the bus BUS1 and can become bus masters on the bus BUSl.
  • the components that can become bus masters are the first CPU subsystem CPUSYS1, more precisely the command fetching unit CFU1 and the data memory access unit DMUl thereof, the corresponding components of the second CPU subsystem CPUSYS2, the DMA controller DMA, the I / O controller I / O, the interface EBU, the debug resources DEB, and the active peripheral unit (s).
  • the common memory device MEM is a flash memory in the example considered. However, it could also be any other non-volatile or volatile memory.
  • the common memory device MEM contains a program memory and a data memory, data representing instructions being stored in the program memory and other data, for example operands, being stored in the data memory.
  • the program memory and the data memory are each connected to the other components of the microcontroller via their own address, data and control lines.
  • the address, data and control lines are part of the bus BUSl.
  • the microcontroller under consideration therefore has the so-called Harvard architecture, but otherwise works according to the Von Neumann principle, so it executes the commands to be executed sequentially.
  • the first CPU subsystem CPUSYSl fetches data representing commands and the associated operands from the common memory MEM or another memory and executes them. More specifically - fetches the instruction fetching unit CFU1 of the CPU subsystem CPUSYSl commands representing data from the program memory part of the common memory device MEM, - fetches the data memory access unit DMU1 of the CPU subsystem CPUSYSl, if necessary, data representing operands from the data memory part of the common memory device MEM, and
  • the CPU CPU1 of the CPU subsystem CPUSYSl executes the commands, whereby when the execution of a command the
  • Transferring data from and / or to a system component provided inside or outside the microcontroller comprises, these data transfers also take place by the data memory access unit DMU1.
  • Results etc. to be stored are written into another memory, for example into an internal RAM (not shown in the figure) of the microcontroller, or into the external memory EXTMEM.
  • the shared memory device MEM can be accessed in writing at all, this takes place only in certain operating modes of the microcontroller and under safety precautions which can ensure that the writing of the shared memory device MEM cannot be initiated by persons who are not authorized to do so.
  • the content of the common memory device MEM can only be changed by executing a bootstrap loader stored in the common memory device MEM, this bootstrap loader being able to be carried out only by a procedure known only to certain persons, and / or the bootstrap loader only reprogramming the common memory device MEM, which a code known only to certain people has been entered into the microcontroller.
  • the common memory device MEM also has the peculiarity that when it is accessed it checks whether the respective access could have been caused by an unauthorized person and that the common memory device MEM only outputs requested data if the check has shown that the access in question was not or could not have been caused by an unauthorized person.
  • this protection mechanism to write accesses could also allow the common memory device MEM to be written during normal operation of the microcontroller.
  • the writing of the common memory device MEM could be permitted if it is ensured that the common memory device MEM only stores data supplied to it if it can be assumed that the access in question was not or was not initiated by a person who was not authorized to do so could be.
  • a check is carried out to determine whether access to the common memory device MEM was or could have been initiated by a person not authorized to do so by a control device which is part of the common memory device MEM.
  • the control device could also be one of the
  • Storage device upstream device which only forwards accesses to the storage device MEM to the common storage device if it can be assumed that the access in question was not or could not have been initiated by an unauthorized person. In the example considered, it is assumed that access to the common memory device MEM was not initiated by an unauthorized person when the access
  • the access in question is related to the execution of a command that comes from a memory provided within the microcontroller, the content of which cannot be changed or can only be changed by a person who can read and / or change the Content of the common memory device MEM is authorized.
  • the microcontroller contains “only” a single memory, the content of which cannot be changed or can only be changed by authorized persons, and this is the common memory device MEM.
  • the common memory device MEM it is not difficult to design the common memory device MEM so that it only outputs requested data and / or stores data supplied to it only if it can be assumed that the relevant access to the shared data Memory device MEM is related to the execution of a command that originates from the common memory device MEM itself or from another memory, the content of which cannot be changed or at most can only be changed by specially authorized persons.
  • the common memory device MEM is divided into program memory and data memory, as in the example considered, it is preferably checked whether the program memory is accessed by the command fetch unit CFU1 and the data memory is accessed by the data memory access unit DMU1.
  • the checking of which component of the microcontroller is used to access the common memory device is carried out in the example under consideration using data which are transmitted via an ID bus included in the first bus BUS1. So-called identifiers are transmitted via the ID bus, from which it can be determined which of the units connected to the first bus BUS1 has initiated the current bus cycle. More specifically, each of the units connected to the first bus BUS1, which can become bus masters, is assigned a specific identifier which they output on the ID bus when data, data requests or other information or control signals are output. In the example considered, it is the case that
  • the data storage access unit DMUl gives the identifier value 2 to the ID bus
  • the DMA controller DMA gives the identifier value 3 to the ID bus
  • the interface EBU gives the identifier value 5 to the ID bus
  • - the debug resources DEB give the identifier value 6 to the ID bus
  • the active peripheral unit APER gives the identifier value 7 to the ID bus.
  • the command fetch unit CFUl, the data memory access unit DMUl, the DMA controller DMA, the I / O controller I / O, the interface EBU, the debug resources DEB and the active peripheral unit APER contain for this purpose identifier generating devices ID1 to ID7, which put the named identifiers on the ID bus.
  • the identifiers output by the respective units on the ID bus are either permanently set or, if they can be changed, can only be changed by authorized persons.
  • control device By evaluating the data that are transmitted via the ID bus, the control device is able to determine from which unit access to the common memory device MEM originates. You only have to check which value is transmitted on the ID bus together with the read or write request.
  • the control device recognizes from this that the relevant access originates from the command fetch unit CFU1. In this case, there is no danger that an unauthorized person can have data stored in the common memory device MEM output or changed from the program-controlled unit, so that this access can be permitted. It would be even safer if access is only permitted if the access is a read access to the program memory originating from the instruction fetching unit CFU1.
  • the control device recognizes that the access in question originates from the data memory access unit DMU1. In this case, the control device must also check whether the access in question is or could be related to the execution of a command that comes from a memory, the content of which can only be changed by a person responsible for reading out the content of the common memory device MEM is authorized. If this additional condition is met, there is no danger that an unauthorized person in the common samen storage device MEM can output or change stored data from the program-controlled unit, so that this access can be allowed. Otherwise, access to the common memory device MEM must be denied. How the check of the additional condition is carried out will be described in more detail later.
  • the control device recognizes that the access in question is from the DMA controller DMA, from the I / O -Controller I / O, from the interface EBU, from the debug resources DEB, or from the active peripheral unit APER.
  • the access in question is from the DMA controller DMA, from the I / O -Controller I / O, from the interface EBU, from the debug resources DEB, or from the active peripheral unit APER.
  • the control device recognizes that the access in question is from the DMA controller DMA, from the I / O -Controller I / O, from the interface EBU, from the debug resources DEB, or from the active peripheral unit APER.
  • the access in question is from the DMA controller DMA, from the I / O -Controller I / O, from the interface EBU, from the debug resources DEB, or from the active peripheral unit APER.
  • this access could also be permitted.
  • the commands executed by the microcontroller are only commands stored in the common memory device, and the DMA controller DMA, the I / O controller I / O, the interface EBU, the debug resources DEB, and the active peripheral unit APER can only be configured by commands executed by the microcontroller or by specially authorized persons, or can be initiated for certain actions.
  • the checking of which component of the microcontroller is used to access the common memory device MEM can also be carried out in another way.
  • At least the command fetch unit CFUl and the data memory access are unit DMUl, but possibly also one, more, or all other components that are allowed to access the common memory device are connected to the common memory device MEM or the control device via separate lines, not shown in the figure, and that the components mentioned Use the lines mentioned to signal whether they are currently accessing the common memory device MEM via the bus BUS1.
  • the common memory device MEM or the control device can determine without a doubt from which component a respective access to the common memory device MEM originates.
  • the component which requests access to the common memory device MEM identifies itself as the sender of the read or write request by transmitting corresponding data via the data and / or the address bus to the common memory device or the control device.
  • the identification data output by the respective components cannot be set or changed only by certain persons.
  • a “protected memory” is a memory provided within the microcontroller, the content of which cannot be changed or at least cannot be changed by a person, which is not authorized to read and / or change the content of the common memory MEM.
  • An "unprotected memory” is a memory whose content can be changed by a person who is not authorized to read out and / or change the common memory MEM.
  • a memory is, for example, the external memory EXTMEM or an unprotected memory within the microcontroller.
  • the shared memory device can be accessed MEM are allowed.
  • Memory device MEM are not allowed.
  • the check as to whether access to the common memory device MEM is related to the execution of a command that originates from an unprotected memory can also be carried out in another way.
  • command fetch unit CFU1 with the common memory device MEM is connected via a separate line, not shown in the figure, and the command fetch unit CFU1 of the common memory device MEM signals via this separate line whether commands previously fetched from an unprotected memory are still in the pipeline, or in the instruction queue, or in the instruction cache, or are stored or can be stored in another memory device of the CPU subsystem CPUSYSl.
  • the programmer of the program to be executed by the microcontroller must ensure, by means of a corresponding program creation, that there is no doubt as to whether access to the common memory MEM is related to the execution of a command originating from an unprotected memory. This can be done, for example, by
  • Memory-originating commands to be executed from unprotected memory initially a certain number of neutral instructions, such as NOP instructions, are executed, the number of these instructions being so large that, after execution, it can be safely assumed that in the pipeline, or in the instruction queue, or In the instruction cache, or in another memory device of the CPU subsystem CPUSYS1, no more instructions from a protected memory are stored or can be stored which require access to the common memory device MEM.
  • NOP instructions neutral instructions
  • the programmer can prevent both the protected memory and the unprotected memory from being in the pipeline, or in the instruction queue, or in the instruction cache, or in any other memory device of the CPU subsystem CPUSYSl originating commands are located that require access to the common memory device MEM.
  • This makes it easy and safe to determine whether access by the data memory access unit DMUl to the common memory device MEM is related to the execution of an instruction originating from a protected memory or in connection with the execution of an instruction originating from an unprotected memory.
  • the debug resources DEB are preferably able to deactivate the mechanism described above for protecting the common memory device MEM, although deactivation should only be possible if the person initiating the deactivation, for example by input of a secret code word has proven its authorization to do so.
  • the program-controlled unit described can, regardless of the details of the practical implementation, rule out under all circumstances that the content a storage device to be protected is read out and / or changed by persons not authorized to do so.
  • APER active i.e. Becoming a bus master
  • Peripheral units BUSl the components of the microcontroller interconnecting bus BUS2 CPUSYSl and EBU connecting bus CFUl instruction fetching unit from CPUSYSl CPU1 CPU from CPUSYSl CPUSYSl first CPU subsystem CPUSYS2 second CPU subsystem DEB debug resources DMA DMA controller

Landscapes

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

Abstract

Es wird eine programmgesteuerte Einheit beschrieben, mit einer Speichereinrichtung, auf welche von verschiedenen anderen Komponenten der programmgesteuerten Einheit lesend oder schreibend zugegriffen werden kann. Die beschriebene programmgesteuerte Einheit zeichnet sich dadurch aus, dass bei Zugriffen auf die Speichereinrichtung überprüft wird, ob der jeweilige Zugriff durch eine dazu nicht autorisierte Person veranlasst wurde oder veranlasst worden sein könnte, und dass die Speichereinrichtung angeforderte Daten nur ausgibt, und/oder ihr zugeführte Daten nur speichert, wenn die Überprüfung ergeben hat, dass davon ausgegangen werden kann, dass der betreffende Zugriff nicht durch eine dazu nicht autorisierte Person veranlasst wurde oder veranlasst worden sein könnte.

Description

Beschreibung
Programmgesteuerte Einheit
Die vorliegende Erfindung betrifft eine Vorrichtung gemäß dem Oberbegriff des Patentanspruchs 1, d.h. eine programmgesteuerte Einheit mit einer Speichereinrichtung, auf welche von verschiedenen anderen Komponenten der programmgesteuerten Einheit lesend oder schreibend zugegriffen werden kann.
Eine solche programmgesteuerte Einheit ist beispielsweise ein MikroController, ein Mikroprozessor, ein Signalprozessor oder dergleichen.
Mitunter besteht ein Bedarf, die in einer programmgesteuerten Einheit, genauer gesagt die in einer Speichereinrichtung derselben gespeicherten Daten vor unbefugten Zugriffen zu schützen, d.h. insbesondere dafür zu sorgen, daß die in der Speichereinrichtung gespeicherten Daten nicht durch unbefugte Personen ausgelesen und/oder verändert werden können. Hierfür gibt es zwei Gründe. Der erste Grund besteht darin, daß die gespeicherten Daten häufig einen wesentlichen Teil der Entwicklung des die programmgesteuerte Einheiten enthaltenden Systems darstellen und daher nach Möglichkeit nicht in die Hände von Mitbewerbern gelangen sollten. Dies ist beispielsweise bei MikroControllern der Fall, die in Kraftfahrzeug- Steuergeräten eingesetzt werden. In solchen MikroControllern sind wesentliche Motorkenndaten gespeichert, durch welche festgelegt wird, wie der Motor in welchen Situation anzu- steuern ist. Wenn Mitbewerber von diesen Daten Kenntnis erlangen, können sie daraus für ihre eigenen Produkte neue Erkenntnisse gewinnen, wodurch ein gegebenenfalls vorhandener Entwicklungsvorsprung verloren geht. Der zweite Grund für den Schutz der Speichereinrichtung besteht darin, daß verhindert werden sollte, daß unbefugte Personen durch eine Manipulation der Daten die Motorsteuerung verändern, um dadurch die Leistung, die Höchstgeschwindigkeit etc. zu steigern. Eine sol- ehe Manipulation der Motorsteuerung kann dazu führen, daß die Lebenserwartung des Motors sinkt, oder daß sonstige Schäden auftreten, die normalerweise nicht oder erst später auftreten. Dies verschlechtert das Ansehen des Kraftfahrzeugher- stellers, und kann ferner dazu führen, daß dieser Garantieleistungen für Schäden zu erbringen hat, für die er nicht verantwortlich ist.
Der vorliegenden Erfindung liegt daher die Aufgabe zugrunde, die programmgesteuerte Einheit gemäß dem Oberbegriff des Patentanspruchs 1 derart weiterzubilden, daß unbefugte Personen keine Möglichkeit haben, in der Speichereinrichtung gespeicherte Daten auszulesen und/oder zu verändern.
Diese Aufgabe wird erfindungsgemäß durch die in Patentanspruch 1 beanspruchte programmgesteuerte Einheit gelöst.
Die erfindungsgemäße programmgesteuerte Einheit zeichnet sich dadurch aus, daß bei Zugriffen auf die Speichereinrichtung überprüft wird, ob der jeweilige Zugriff durch eine dazu nicht autorisierte Person veranlaßt wurde oder veranlaßt worden sein könnte, und daß die Speichereinrichtung angeforderte Daten nur ausgibt, und/oder ihr zugeführte Daten nur speichert, wenn die Überprüfung ergeben hat, daß davon ausgegan- gen werden kann, daß der betreffende Zugriff nicht durch eine dazu nicht autorisierte Person veranlaßt wurde oder veranlaßt worden sein könnte.
Dadurch kann zuverlässig ausgeschlossen werden, daß der In- halt der Speichereinrichtung durch dazu nicht autorisierte Personen ausgelesen und/oder verändert werden kann.
Vorteilhafte Weiterbildungen der Erfindung sind den Unteransprüchen, der folgenden Beschreibung, und den Figuren ent- nehmbar. Die Erfindung wird nachfolgend anhand von Ausführungsbeispielen unter Bezugnahme auf die Figur näher erläutert.
Die Figur zeigt das Blockschaltbild eines Mikrocontroller, bei welchem des nachfolgend beschriebene Speicherschutzsystem realisiert ist.
Obgleich das beschriebene Speicherschutzsystem vorliegend anhand eines Mikrocontrollers beschrieben wird, kann es auch in anderen programmgesteuerten Einheiten wie beispielsweise Mikroprozessoren und Signalprozessoren zum Einsatz kommen.
Der in der Figur gezeigte Mikrocontroller enthält
- ein erstes CPU-Subsystem CPUSYS1,
- ein zweites CPU-Subsystem CPUSYS2,
- einen DMA-Controller DMA,
- einen I/O-Controller I/O,
- eine Schnittstelle EBU zu einem außerhalb des Mikrocon- trollers vorgesehenen externen Bus EXTBUS,
- beispielsweise durch ein OCDS-Modul (On-Chip-Debug-Support- Modul) gebildete Debug-Ressourcen DEB,
- ein oder mehrere sonstige aktive, d.h. Bus-Master werden könnende Peripherieeinheiten APER und/oder passive, d.h. nicht Bus-Master werden könnende Peripherieeinheiten PPER,
- eine gemeinsame Speichereinrichtung MEM,
- einen die genannten Komponenten miteinander verbindenden ersten Bus BUSl, und
- einen das erste CPU-Subsystem CPUSYS1 und die Schnittstelle EBU miteinander verbindenden zweiten Bus BUS2.
Das erste CPU-Subsystem CPUSYsi enthält eine CPU CPU1, eine Befehlsholeinheit CFU1, und eine Datenspeicherzugriffseinheit DMU1.
Das zweite CPU-Subsystem CPUSYS2 kann, muß aber nicht den selben Aufbau aufweisen. An den externen Bus EXTBUS sind eine externe Mastereinheit EXTMAS und eine externe Speichereinrichtung EXTMEM angeschlossen.
Der Vollständigkeit halber sei darauf hingewiesen, daß der Mikrocontroller auch eine größere Anzahl von Komponenten, oder eine kleinere Anzahl von Komponenten und/oder andere Komponenten enthalten kann. Ebenso können an den externen Bus EXTBUS auch eine größere Anzahl von Komponenten, oder eine kleinere Anzahl von Komponenten und/oder andere Komponenten angeschlossen sein.
Vorliegend interessieren insbesondere die gemeinsame interne Speichereinrichtung MEM und die Art und Weise, wie diese auf sie erfolgende Zugriffe handhabt. Diese gemeinsame Speichereinrichtung MEM ist im betrachteten Beispiel der durch das beschriebene Speicherschutzsystem zu schützende Speicher, d.h. ein Speicher, dessen Inhalt nicht durch dazu nicht auto- risierte Personen auslesbar und/oder veränderbar sein soll..
Die Speichereinrichtung MEM ist an den Bus BUSl angeschlossen, wodurch auf die Speichereinrichtung MEM von allen anderen Komponenten, die ebenfalls am Bus BUSl angeschlossen sind, und am Bus BUSl Bus-Master werden können, Zugriffe erfolgen können.
Die Komponenten, die Bus-Master werden können, sind im betrachteten Beispiel das erste CPU-Subsystem CPUSYS1, genauer gesagt die Befehlsholeinheit CFU1 und die Datenspeicherzugriffseinheit DMUl desselben, die entsprechenden Komponenten des zweiten CPU-Subsystems CPUSYS2, der DMA-Controller DMA, der I/O-Controller I/O, die Schnittstelle EBU, die Debug-Ressourcen DEB, und die aktive (n) Peripherie- einheit (en) . Die gemeinsame Speichereinrichtung MEM ist im betrachteten Beispiel ein Flash-Speicher. Es könnte es sich aber auch um einen beliebigen anderen nichtflüchtigen oder flüchtigen Speicher handeln.
Die gemeinsame Speichereinrichtung MEM enthält einen Programmspeicher und einen Datenspeicher, wobei im Programmspeicher Befehle repräsentierende Daten gespeichert sind, und wobei im Datenspeicher sonstige Daten, beispielsweise Operan- den gespeichert sind. Der Programmspeicher und der Datenspeicher sind jeweils über eigene Adreß-, Daten- und Steuerleitungen mit den anderen Komponenten des Mikrocontrollers verbunden. Die Adreß-, Daten- und Steuerleitungen sind Bestandteil des Busses BUSl.
Der betrachtete Mikrocontroller weist demnach die sogenannte Harvard-Architektur auf, arbeitet im übrigen aber nach dem Von-Neumann-Prinzip, führt die von ihm auszuführenden Befehle also sequentiell aus.
Es sei bereits an dieser Stelle darauf hingewiesen, daß das beschriebene Speicherschutzsystem auch bei programmgesteuerten Einheiten einsetzbar ist, welche nicht über getrennte Programmspeicher und Datenspeicher verfügen.
Bei den folgenden Ausführungen wird von den CPU-Subsystemen CPUSYSl und CPUSYS2 nur das erste CPU-Subsystem CPUSYSl betrachtet. Die hierzu gemachten Erläuterungen gelten jedoch für das zweite CPU-Subsystem CPUSYS2 entsprechend, wobei das erste CPU-Subsystem CPUSYSl und das zweite CPU-Subsystem CPUSYS2 parallel arbeiten oder zumindest parallel arbeiten können.
Im Betrieb des Mikrocontrollers holt das erste CPU-Subsystem CPUSYSl Befehle repräsentierende Daten und die dazugehörenden Operanden aus dem gemeinsamen Speicher MEM oder einem anderen Speicher und führt sie aus. Genauer gesagt - holt die Befehlsholeinheit CFU1 des CPU-Subsystems CPUSYSl Befehle repräsentierende Daten aus dem Programmspeicher- Teil der gemeinsamen Speichereinrichtung MEM, - holt die Datenspeicherzugriffseinheit DMU1 des CPU-Subsystems CPUSYSl bei Bedarf Operanden repräsentierende Daten aus dem Datenspeicher-Teil der gemeinsamen Speichereinrichtung MEM, und
- führt die CPU CPU1 des CPU-Subsystems CPUSYSl die Befehle aus, wobei dann, wenn die Ausführung eines Befehls das
Transferieren von Daten von und/oder zu einer innerhalb oder außerhalb des Mikrocontrollers vorgesehenen Systemkomponente umfaßt, diese Datentransfers ebenfalls durch die Datenspeicherzugriffseinheit DMU1 erfolgen.
Im betrachteten Beispiel ist es so, daß im normalen Betrieb keine Datentransfers zur gemeinsamen Speichereinrichtung MEM erfolgen. Zu speichernde Ergebnisse etc. werden in einen anderen Speicher geschrieben, beispielsweise in ein (in der Figur nicht gezeigtes) internes RAM des Mikrocontrollers, oder in den externen Speicher EXTMEM.
Sofern auf die gemeinsame Speichereinrichtung MEM überhaupt schreibend zugegriffen werden kann, erfolgt dies nur in be- stimmten Betriebsarten des Mikrocontrollers und unter Sicherheitsvorkehrungen, durch welche gewährleistet werden kann, daß das Beschreiben der gemeinsamen Speichereinrichtung MEM nicht durch dazu nicht autorisierte Personen veranlaßt werden kann. Hierzu kann beispielsweise vorgesehen werden, daß eine Veränderung des Inhalts der gemeinsamen Speichereinrichtung MEM nur über die Ausführung eines in der gemeinsamen Speichereinrichtung MEM gespeicherten Bootstrap Loaders erfolgen kann, wobei dieser Bootstrap Loader ausschließlich durch eine nur bestimmten Personen bekannte Vorgehensweise zur Ausfüh- rung bringbar ist, und/oder wobei der Bootstrap Loader die gemeinsame Speichereinrichtung MEM nur umprogrammiert, nach- dem ein nur bestimmten Personen bekannter Code in den Mikrocontroller eingegeben wurde.
Die gemeinsame Speichereinrichtung MEM weist darüber hinaus die Besonderheit auf, daß er bei Zugriffen auf sie überprüft, ob der jeweilige Zugriff durch eine dazu nicht autorisierte Person veranlaßt worden sein könnte, und daß die gemeinsame Speichereinrichtung MEM angeforderte Daten nur ausgibt, wenn die Überprüfung ergeben hat, daß der betreffende Zugriff nicht durch eine dazu nicht autorisierte Person veranlaßt wurde oder veranlaßt worden sein könnte.
Obgleich dies im betrachteten Beispiel nicht praktiziert wird, könnte bei Anwendung dieses Schutzmechanismus auf Schreibzugriffe auch zugelassen werden, daß die gemeinsame Speichereinrichtung MEM im normalen Betrieb des Mikrocontrollers beschrieben werden kann. Das Beschreiben der gemeinsamen Speichereinrichtung MEM könnte zugelassen werden, wenn dafür gesorgt wird, daß die gemeinsame Speichereinrich- tung MEM ihr zugeführte Daten nur speichert, wenn davon ausgegangen werden kann, daß der betreffende Zugriff nicht durch eine dazu nicht autorisierte Person veranlaßt wurde oder veranlaßt worden sein könnte.
Die Überprüfung, ob ein jeweiliger Zugriff auf die gemeinsame Speichereinrichtung MEM durch eine dazu nicht autorisierte Person veranlaßt wurde oder veranlaßt worden sein könnte, erfolgt im betrachteten Beispiel durch eine Steuereinrichtung, welche Bestandteil der gemeinsamen Speichereinrichtung MEM ist. Die Steuereinrichtung könnte aber auch eine der
Speichereinrichtung vorgeschaltete Einrichtung sein, welche auf die Speichereinrichtung MEM erfolgende Zugriffe nur dann an die gemeinsame Speichereinrichtung weiterleitet, wenn davon ausgegangen werden kann, daß der betreffende Zugriff nicht durch eine dazu nicht autorisierte Person veranlaßt wurde oder veranlaßt worden sein könnte. Im betrachteten Beispiel wird davon ausgegangen, daß ein Zugriff auf die gemeinsame Speichereinrichtung MEM nicht durch eine dazu nicht autorisierte Person veranlaßt wurde, wenn der Zugriff
- durch die Befehlsholeinheit CFU1 erfolgt, oder
- durch die DatenspeicherZugriffseinheit DMU1 erfolgt, und der betreffende Zugriff mit der Ausführung eines Befehls in Zusammenhang steht, der aus einem innerhalb des Mikrocontrollers vorgesehenen Speicher stammt, dessen Inhalt nicht oder nur durch eine Person verändert werden kann, die zum Auslesen und/oder Verändern des Inhalts der gemeinsamen Speichereinrichtung MEM autorisiert ist.
Im betrachteten Beispiel enthält der Mikrocontroller "nur" einen einzigen Speicher, dessen Inhalt nicht oder allenfalls durch dazu autorisierte Personen verändert werden kann, und dies ist die gemeinsame Speichereinrichtung MEM. Wie später noch besser verstanden werden wird, bereitet es jedoch keinerlei Schwierigkeiten, die gemeinsame Speichereinrichtung MEM so auszubilden, daß sie angeforderte Daten nur ausgibt, und/oder ihr zugeführte Daten nur speichert, wenn davon ausgegangen werden kann, daß die betreffende Zugriff auf die gemeinsame Speichereinrichtung MEM mit der Ausführung eines Befehls in Zusammenhang steht, der aus der gemeinsamen Speichereinrichtung MEM selbst oder aus einem anderen Speicher stammt, dessen Inhalt nicht oder allenfalls durch besonders autorisierte Personen verändert werden kann.
Wenn die gemeinsame Speichereinrichtung MEM wie im betrachteten Beispiel in Programmspeicher und Datenspeicher unterteilt ist, wird vorzugsweise überprüft, ob Zugriffe auf den Programmspeicher durch die Befehlsholeinheit CFU1, und Zugriffe auf den Datenspeicher durch die Datenspeicherzugriffseinheit DMU1 erfolgen. Die Überprüfung, von welcher Komponente des Mikrocontrollers ein jeweiliger Zugriff auf die gemeinsame Speichereinrichtung erfolgt, wird im betrachteten Beispiel anhand von Daten durchgeführt, die über einen vom ersten Bus BUSl umfaßten ID- Bus übertragen werden. Über den ID-Bus werden sogenannte Identifier übertragen, aus welchen ermittelbar ist, welche der am ersten Bus BUSl angeschlossenen Einheiten den jeweils aktuellen Buszyklus eingeleitet hat. Genauer gesagt ist jeder der am ersten Bus BUSl angeschlossenen Einheiten, die Bus- Master werden können, ein bestimmter Identifier zugeordnet, den sie bei der Ausgabe von Daten, Datenanforderungen oder sonstigen Informationen oder Steuersignalen auf den ID-Bus ausgeben. Im betrachteten Beispiel ist es so, daß
- die Befehlsholeinheit CFUl den Identifier-Wert 1 auf den ID-Bus gibt,
- die Datenspeicherzugriffseinheit DMUl den Identifier-Wert 2 auf den ID-Bus gibt,
- der DMA-Controller DMA den Identifier-Wert 3 auf den ID-Bus gibt,
- der I/O-Controller I/O den Identifier-Wert 4 auf den ID-Bus gibt,
- die Schnittstelle EBU den Identifier-Wert 5 auf den ID-Bus gibt, und - die Debug-Ressourcen DEB den Identifier-Wert 6 auf den ID- Bus geben, und
- die aktive Peripherieeinheit APER den Identifier-Wert 7 auf den ID-Bus gibt.
Die Befehlsholeinheit CFUl, die Datenspeicherzugriffseinheit DMUl, der DMA-Controller DMA, der I/O-Controller I/O, die Schnittstelle EBU, die Debug-Ressourcen DEB und die aktive Peripherieeinheit APER enthalten zu diesem Zweck Identifier- Erzeugungseinrichtungen ID1 bis ID7, welche die genannten Identifier auf den ID-Bus geben. Die von den jeweiligen Einheiten auf den ID-Bus ausgegebenen Identifier sind entweder fest eingestellt oder, sofern sie veränderbar sind, nur durch dazu autorisierte Personen veränderbar.
Durch die Auswertung der Daten, die über den ID-Bus übertragen werden, ist die Steuereinrichtung in der Lage, festzustellen, von welcher Einheit ein Zugriff auf die gemeinsame Speichereinrichtung MEM stammt. Sie muß hierzu nur überprü- fen, welcher Wert zusammen mit der Lese- oder Schreibanforderung auf dem ID-Bus übertragen wird.
Wenn zusammen mit einer Lese- oder Schreibanforderung an die gemeinsame Speichereinrichtung auf dem ID-Bus der Wert 1 übertragen wird, erkennt die Steuereinrichtung daran, daß der betreffende Zugriff von der Befehlsholeinheit CFUl stammt. In diesem Fall besteht keine Gefahr, daß eine nicht dazu autorisierte Person in der gemeinsamen Speichereinrichtung MEM gespeicherte Daten aus der programmgesteuerten Einheit ausgeben läßt oder verändert, so daß dieser Zugriff gestattet werden kann. Noch sicherer wäre es, wenn der Zugriff nur gestattet wird, wenn es sich bei dem Zugriff um einen von der Befehlsholeinheit CFUl stammenden Lesezugriff auf den Programmspeicher handelt .
Wenn zusammen mit einer Lese- oder Schreibanforderung an die gemeinsame Speichereinrichtung MEM auf dem ID-Bus der Wert 2 übertragen wird, erkennt die Steuereinrichtung daran, daß der betreffende Zugriff von der Datenspeicherzugriffseinheit DMUl stammt. In diesem Fall muß die Steuereinrichtung zusätzlich überprüfen, ob der betreffende Zugriff mit der Ausführung eines Befehls in Zusammenhang steht oder stehen könnte, der aus einem Speicher stammt, dessen Inhalt nur durch eine Person verändert werden kann, die zum Auslesen des Inhalts der gemeinsamen Speichereinrichtung MEM autorisiert ist. Wenn diese zusätzliche Bedingung erfüllt ist, besteht keine Gefahr, daß eine dazu nicht autorisierte Person in der gemein- samen Speichereinrichtung MEM gespeicherte Daten aus der programmgesteuerten Einheit ausgeben läßt oder verändert, so daß dieser Zugriff gestattet werden kann. Anderenfalls muß der Zugriff auf die gemeinsame Speichereinrichtung MEM verweigert werden. Wie die Überprüfung der zusätzlichen Bedingung durchgeführt wird, wird später noch genauer beschrieben.
Wenn zusammen mit einer Lese- oder Schreibanforderung an die gemeinsame Speichereinrichtung auf dem ID-Bus der Wert 3, 4, 5, 6 oder 7 übertragen wird, erkennt die Steuereinrichtung daran, daß der betreffende Zugriff vom DMA-Controller DMA, vom I/O-Controller I/O, von der Schnittstelle EBU, von den Debug-Ressourcen DEB, oder von der aktiven Peripherieeinheit APER stammt. In diesem Fall besteht die Gefahr, daß eine dazu nicht autorisierte Person in der gemeinsamen Speichereinrichtung gespeicherte Daten aus der programmgesteuerten Einheit ausgeben läßt oder verändert, so daß dieser Zugriff nicht gestattet wird. In bestimmten Fällen, genauer gesagt, wenn für eine nicht dazu autorisierte Person keine Möglichkeit besteht oder bestand, die den Zugriff anfordernde Einheit zu diesem
Zugriff zu veranlassen, könnte dieser Zugriff auch zugelassen werden. Ein solcher Fall kann beispielsweise vorliegen, wenn die vom Mikrocontroller ausgeführten Befehle ausschließlich in der gemeinsamen Speichereinrichtung gespeicherte Befehle sind, und der DMA-Controller DMA, der I/O-Controller I/O, die Schnittstelle EBU, die Debug-Ressourcen DEB, und die aktive Peripherieeinheit APER nur durch vom Mikrocontroller ausgeführte Befehle oder durch besonders autorisierte Personen konfiguriert oder zu bestimmten Aktionen veranlaßt werden können.
Die Überprüfung, von welcher Komponente des Mikrocontrollers ein Zugriff auf die gemeinsame Speichereinrichtung MEM stammt, kann auch auf andere Art und Weise erfolgen.
Eine der möglichen Alternativen besteht darin, daß zumindest die Befehlsholeinheit CFUl und die Datenspeicherzugriff sein- heit DMUl, gegebenenfalls aber auch zusätzlich eine, mehrere, oder alle anderen Komponenten, die auf die gemeinsame Speichereinrichtung zugreifen dürfen, über in der Figur nicht gezeigte separate Leitungen mit der gemeinsamen Speicherein- richtung MEM oder der Steuereinrichtung verbunden sind, und daß die genannten Komponenten über die besagten Leitungen signalisieren, ob sie gerade über den Bus BUSl auf die gemeinsame Speichereinrichtung MEM zugreifen. Auch in diesem Fall kann die gemeinsame Speichereinrichtung MEM oder die Steuereinrichtung zweifelsfrei feststellen, von welcher Komponente ein jeweiliger Zugriff auf die gemeinsame Speichereinrichtung MEM stammt.
Eine weitere Alternative besteht darin, daß Komponente, die einen Zugriff auf die gemeinsame Speichereinrichtung MEM fordert, sich durch die Übertragung entsprechender Daten über den Daten- und/oder den Adreßbus gegenüber der gemeinsamen Speichereinrichtung oder der Steuereinrichtung als Absender des Lese- oder Schreibanforderung identifiziert. Hierbei müßte jedoch sichergestellt werden, daß die von den jeweiligen Komponenten ausgegebenen Identifizierungsdaten nicht oder nur durch bestimmte Personen einstellbar oder veränderbar sind.
Bevor nun im folgenden die Durchführung der vorstehend bereits erwähnten zusätzlichen Überprüfung beschrieben wird, durch welche ermittelt wird, ob ein Zugriff auf die gemeinsame Speichereinrichtung MEM im Zusammenhang mit der Ausführung eines Befehls steht, der aus einem Speicher stammt, des- sen Inhalt nicht oder allenfalls durch eine dazu autorisierte Person verändert werden kann, werden zunächst die hierbei mehrfach verwendeten Begriffe "geschützter Speicher" und "ungeschützter Speicher" definiert.
Als "geschützter Speicher" wird ein innerhalb des Mikrocontrollers vorgesehener Speicher bezeichnet, dessen Inhalt nicht oder zumindest nicht durch eine Person veränderbar ist, die nicht zum Auslesen und/oder Verändern des Inhaltes des gemeinsamen Speichers MEM befugt ist.
Als "ungeschützter Speicher" wird ein Speicher bezeichnet, dessen Inhalt durch eine Person veränderbar ist, die nicht zum Auslesen und/oder Verändern des gemeinsamen Speichers MEM befugt ist. Ein solcher Speicher ist beispielsweise der externe Speicher EXTMEM oder ein nicht geschützter Speicher innerhalb des Mikrocontrollers.
Die vorstehend erwähnte zusätzliche Überprüfung, ob ein Zugriff auf die gemeinsame Speichereinrichtung MEM im Zusammenhang mit der Ausführung eines Befehls steht, der aus einem ungeschützten Speicher stammt, erfolgt im betrachteten Bei- spiel dadurch, daß die gemeinsame Speichereinrichtung MEM oder die Steuereinrichtung durch Verfolgung der über den Bus BUSl übertragenen Adressen, Daten und/oder Steuersignale überwacht, ob die Befehlsholeinheit CFUl zuvor Befehle aus einem ungeschützten Speicher geladen hat.
Wenn dies nicht der Fall ist, d.h., wenn seit der Inbetriebnahme des Mikrocontrollers durch die Befehlsholeinheit CFUl kein Befehl aus einem ungeschützten Speicher geholt wurde, ist die Angelegenheit eindeutig: der Zugriff auf die gemein- same Speichereinrichtung MEM kann nicht im Zusammenhang mit der Ausführung eines Befehls stehen, der aus einem ungeschützten Speicher stammt, so daß keine Gefahr besteht, daß die in der gemeinsamen Speichereinrichtung MEM gespeicherten Daten durch eine dazu nicht befugte Person aus dem Mikro- Controller ausgelesen werden oder verändert werden. Der Zugriff auf die gemeinsame Speichereinrichtung kann folglich gestattet werden.
Anderenfalls, genauer gesagt, wenn durch die Befehlsholein- heit CFUl mehr oder weniger lange vor dem Zugriff auf die gemeinsame Speichereinrichtung MEM ein oder mehrere Befehle aus einem ungeschützten Speicher geholt wurden, besteht die Ge- fahr, daß die in der gemeinsamen Speichereinrichtung MEM gespeicherten Daten durch eine dazu nicht autorisierte Person aus dem Mikrocontroller ausgelesen werden oder verändert werden. Ob dies tatsächlich der Fall ist, hängt vom Einzelfall ab, und zwar unter anderem davon,
- ob eine Befehlsabarbeitungs-Pipeline vorhanden ist,
- wie viele Stufen die Pipeline aufweist,
- ob eine instruction queue vorhanden ist, - wie lange eine gegebenenfalls vorhandene instruction queue ist,
- ob die Befehlsholeinheit CFUl über einen instruction cache verfügt, und
- wie lange es her ist, daß der letzte Befehl aus dem unge- schützten Speicher geholt wurde.
Wenn sicher ist, daß sich weder in der Pipeline, noch in der instruction queue, noch im instruction cache, noch in einer sonstigen Speichereinrichtung des CPU-Subsystems CPUSYSl zu- vor aus einem ungeschützten Speicher geholte Befehle befinden, kann der Zugriff auf die gemeinsame Speichereinrichtung MEM gestattet werden.
Wenn nicht mit Sicherheit feststellbar ist, daß sich weder in der Pipeline, noch in der instruction queue, noch im instruction cache, noch in einer sonstigen Speichereinrichtung der CPU-Subsystems CPUSYSl zuvor aus einem ungeschützten Speicher geholte Befehle befinden, darf der Zugriff auf die gemeinsame Speichereinrichtung MEM nicht gestattet werden.
Die Überprüfung, ob ein Zugriff auf die gemeinsame Speichereinrichtung MEM im Zusammenhang mit der Ausführung eines Befehls steht, der aus einem ungeschützten Speicher stammt, kann auch auf andere Art und Weise erfolgen.
Eine mögliche Alternative besteht darin, daß die Befehlsholeinheit CFUl mit der gemeinsamen Speichereinrichtung MEM über eine in der Figur nicht gezeigte separate Leitung verbunden ist, und die Befehlsholeinheit CFUl der gemeinsamen Speichereinrichtung MEM über diese separate Leitung signalisiert, ob zuvor aus einem ungeschützten Speicher geholte Be- fehle noch in der Pipeline, oder in der instruction queue, oder im instruction cache, oder in einer sonstigen Speichereinrichtung des CPU-Subsystems CPUSYSl gespeichert sind oder gespeichert sein können.
Es könnte auch vorgesehen werden, daß der Programmierer des vom Mikrocontroller auszuführenden Programms durch eine entsprechende Programmerstellung dafür sorgen muß, daß kein Zweifel darüber besteht, ob ein Zugriff auf den gemeinsamen Speicher MEM im Zusammenhang mit der Ausführung eines aus einem ungeschützten Speicher stammenden Befehls steht. Dies kann beispielsweise dadurch erfolgen,
- daß dann, wenn nach der Ausführung von aus einem ungeschützten Speicher stammenden Befehlen wieder aus der ge- meinsamen Speichereinrichtung MEM oder einem anderen geschützten Speicher stammende Befehle ausgeführt werden sollen, zunächst eine gewisse Anzahl von neutralen Befehlen wie beispielsweise NOP-Befehlen zur Ausführung gebracht werden, wobei die Anzahl dieser Befehle so groß bemessen ist, daß nach der Ausführung derselben mit Sicherheit davon ausgegangen werden kann, daß in der Pipeline, oder in der instruction queue, oder im instruction cache, oder in einer sonstigen Speichereinrichtung des CPU-Subsystems CPUSYSl keine aus einem ungeschützten Speicher stammende Befehle mehr gespeichert sind oder gespeichert sein können, die einen Zugriff auf die gemeinsame Speichereinrichtung MEM erfordern, und
- daß dann, wenn nach der Ausführung von aus der gemeinsamen Speichereinrichtung MEM oder einem anderen geschützten
Speicher stammenden Befehlen aus einem ungeschützten Speicher stammende Befehle ausgeführt werden sollen, zunächst eine gewisse Anzahl von neutralen Befehlen wie beispielsweise NOP-Befehlen zur Ausführung gebracht werden, wobei die Anzahl dieser Befehle so groß bemessen ist, daß nach der Ausführung derselben mit Sicherheit davon ausgegangen werden kann, daß in der Pipeline, oder in der instruction queue, oder im instruction cache, oder in einer sonstigen Speichereinrichtung des CPU-Subsystems CPUSYSl keine aus einem geschützten Speicher stammende Befehle mehr gespeichert sind oder gespeichert sein können, die einen Zugriff auf die gemeinsame Speichereinrichtung MEM erfordern.
Auf diese Art und Weise kann der Programmierer verhindern, daß sich in der Pipeline, oder in der instruction queue, oder im instruction cache, oder in einer sonstigen Speicherein- richtung des CPU-Subsystems CPUSYSl sowohl aus einem geschützten Speicher als auch aus einem ungeschützten Speicher stammende Befehle befinden, die einen Zugriff auf die gemeinsame Speichereinrichtung MEM erfordern. Dadurch ist einfach und sicher feststellbar, ob ein Zugriff der Datenspeicher- zugriffseinheit DMUl auf die gemeinsame Speichereinrichtung MEM im Zusammenhang mit der Ausführung eines aus einem geschützten Speicher stammenden Befehls oder im Zusammenhang mit der Ausführung eines aus einem ungeschützten Speicher stammenden Befehls steht.
Der Vollständigkeit halber sei angemerkt, daß die Debug- Ressourcen DEB vorzugsweise in der Lage sind, den vorstehend beschriebenen Mechanismus zum Schutz der gemeinsamen Speichereinrichtung MEM zu deaktivieren, wobei eine Deaktivierung jedoch ausschließlich dann möglich sein sollte, wenn die die Deaktivierung veranlassende Person beispielsweise durch Eingabe eines geheimen Codewortes ihre Berechtigung hierzu nachgewiesen hat .
Durch die beschriebene programmgesteuerte Einheit kann unabhängig von den Einzelheiten der praktischen Realisierung unter allen Umständen ausgeschlossen werden, daß der Inhalt einer zu schützenden Speichereinrichtung durch dazu nicht autorisierte Personen ausgelesen und/oder verändert wird.
Bezugszeichenliste
APER aktive, d.h. Bus-Master werden könnende
Peripherieeinheiten BUSl die Komponenten des Mikrocontrollers miteinander verbindender Bus BUS2 CPUSYSl und EBU verbindender Bus CFUl Befehlsholeinheit von CPUSYSl CPU1 CPU von CPUSYSl CPUSYSl erstes CPU-Subsystem CPUSYS2 zweites CPU-Subsystem DEB Debug-Ressourcen DMA DMA-Controller
DMUl Datenspeicherzugriffseinheit von CPUSYSl EBU Interface zu externem Bus EXTBUS Externer Bus EXTMAS an EXTBUS angeschlossene, Master werden könnende
Einheit EXTMEM an EXTBUS angeschlossene externe Speichereinrichtung I/O I/O-Controller
MEM gemeinsame Speichereinrichtung PPER passive, d.h. nicht Bus-Master werden könnende
Peripherieeinheiten

Claims

Patentansprüche
1. Programmgesteuerte Einheit mit einer Speichereinrichtung (MEM) , auf welche von verschiedenen anderen Komponenten (CFUl, DMUl, CPUSYS2, DMA, I/O, EBU, DEB, APER) der programmgesteuerten Einheit lesend oder schreibend zugegriffen werden kann, d a d u r c h g e k e n n z e i c h n e t, daß bei Zugriffen auf die Speichereinrichtung (MEM) überprüft wird, ob der jeweilige Zugriff durch eine dazu nicht autorisierte Person veranlaßt wurde oder veranlaßt worden sein könnte, und daß die Speichereinrichtung (MEM) angeforderte Daten nur ausgibt, und/oder ihr zugeführte Daten nur speichert, wenn die Überprüfung ergeben hat, daß davon ausgegangen werden kann, daß der betreffende Zugriff nicht durch eine dazu nicht autorisierte Person veranlaßt wurde oder veranlaßt worden sein könnte.
2. Programmgesteuerte Einheit nach Anspruch 1, d a d u r c h g e k e n n z e i c h n e t, daß die Speichereinrichtung (MEM) angeforderte Daten ausgibt, wenn die Anforderung von einer Befehlsholeinheit (CFUl) stammt, welche die von der programmgesteuerten Einheit auszuführenden Befehle holt und einer die Befehle ausführenden CPU (CPU1) der programmgesteuerten Einheit zuführt.
3. Programmgesteuerte Einheit nach Anspruch 1 oder 2, d a d u r c h g e k e n n z e i c h n e t, daß Zugriffe auf die Speichereinrichtung (MEM) , die nicht von der Befehlsholeinheit (CFUl) stammen, welche die von der programmgesteuerten Einheit auszuführenden Befehle holt und einer die Befehle ausführenden CPU (CPU1) der programmgesteuerten Einheit zuführt, nicht oder nur unter bestimmten Umständen bedient werden.
4. Programmgesteuerte Einheit nach einem der vorhergehenden Ansprüche, d a d u r c h g e k e n n z e i c h n e t, daß die Speichereinrichtung (MEM) angeforderte Daten nicht ausgibt und/oder ihr zugeführte Daten nicht speichert, wenn der betreffende Zugriff mit der Ausführung eines Befehls in Zusammenhang steht oder stehen könnte, der aus einem Speicher (EXTMEM) stammt, dessen Inhalt durch eine Person verändert werden kann, die zum Auslesen und/oder Verändern des Inhalts der Speichereinrichtung (MEM) nicht autorisiert ist.
5. Programmgesteuerte Einheit nach einem der vorhergehenden Ansprüche, d a d u r c h g e k e n n z e i c h n e t, daß ein Zugriff auf die Speichereinrichtung (MEM) , der von einer Datenspeicherzugriffseinheit (DMUl) stammt, durch welche Daten geholt oder ausgegeben werden, die zur Befehlsausführung benötigt werden oder deren Transfer eine der zur Befehlsausführung gehörenden Operationen ist, nur bedient wird, wenn der betreffende Zugriff nicht mit der Ausführung eines Befehls in Zusammenhang steht oder stehen könnte, der aus einem Speicher (EXTMEM) stammt, dessen Inhalt durch eine Person verändert werden kann, die zum Auslesen und/oder Verändern des Inhalts der Speichereinrichtung (MEM) nicht autorisiert ist.
6. Programmgesteuerte Einheit nach einem der vorhergehenden Ansprüche, d a d u r c h g e k e n n z e i c h n e t, daß die Überprüfung, ob ein Zugriff auf die Speichereinrichtung (MEM) durch eine dazu nicht autorisierte Person veranlaßt wurde oder veranlaßt worden sein könnte, die Überprüfung umfaßt, von welcher Komponente (CFUl, DMUl, CPUSYS2, DMA, I/O, EBU, DEB, APER) der programmgesteuerten Einheit der Zugriff auf die Speichereinrichtung (MEM) stammt.
7. Programmgesteuerte Einheit nach Anspruch 6, d a d u r c h g e k e n n z e i c h n e t, daß die Überprüfung, von welcher Komponente (CFUl, DMUl, CPUSYS2, DMA, I/O, EBU, DEB, APER) der programmgesteuerten Einheit der Zugriff auf die Speichereinrichtung (MEM) stammt, durch Auswertung eines Identifiers erfolgt, welchen die Komponente, von welcher der Zugriff stammt, über einen Teil des die Komponenten der programmgesteuerten Einheit miteinander verbindenden Bus (BUSl) überträgt'.
8. Programmgesteuerte Einheit nach Anspruch 6, d a d u r c h g e k e n n z e i c h n e t, daß die Überprüfung, von welcher Komponente (CFUl, DMUl, CPUSYS2, DMA, I/O, EBU, DEB, APER) der programmgesteuerten Einheit der Zugriff auf die Speichereinrichtung (MEM) stammt, durch Auswertung von Signalen erfolgt, welche zumindest von einem Teil der Komponenten, von welchen ein Zugriff auf die Speichereinrichtung erfolgen kann, über dafür reservierte Leitungen zur Speichereinrichtung (MEM) übertragen werden, und durch welche die betreffenden Komponenten signalisieren, ob durch sie gerade ein Zugriff auf die Speichereinrichtung erfolgt oder nicht.
9. Programmgesteuerte Einheit nach einem der vorhergehenden Ansprüche, d a d u r c h g e k e n n z e i c h n e t, daß die Überprüfung, ob ein Zugriff auf die Speichereinrichtung (MEM) durch eine dazu nicht autorisierte Person veranlaßt wurde oder veranlaßt worden sein könnte, die Überprüfung umfaßt, ob der betreffende Zugriff mit der Ausführung eines Befehls in Zusammenhang steht oder stehen könnte, der aus einem Speicher (EXTMEM) stammt, dessen Inhalt durch eine Person verändert werden kann, die zum Auslesen und/oder Verändern des Inhalts. der Speichereinrichtung (MEM) nicht autorisiert ist.
10. Programmgesteuerte Einheit nach Anspruch 9, d a d u r c h g e k e n n z e i c h n e t, daß die Überprüfung, ob ein Zugriff auf die Speichereinrichtung (MEM) mit der Ausführung eines Befehls in Zusammenhang steht oder stehen könnte, der aus einem Speicher (EXTMEM) stammt, dessen Inhalt durch eine Person verändert werden kann, die zum Auslesen und/oder Verändern des Inhalts der Speichereinrichtung nicht autorisiert ist, die Verfolgung der Adressen, Daten und/oder Steuersignale umfaßt, welche über einen Bus (BUSl, BUS2) übertragen werden, über welchen die Befehlsholeinheit (CFUl) des Mikrocontrollers die auszuführenden Befehle holt.
11. Programmgesteuerte Einheit nach Anspruch 9 , d a d u r c h g e k e n n z e i c h n e t, daß die Überprüfung, ob ein Zugriff auf die Speichereinrichtung (MEM) mit der Ausführung eines Befehls in Zusammenhang steht oder stehen könnte, der aus einem Speicher (EXTMEM) stammt, dessen Inhalt durch eine Person verändert werden kann, die zum Auslesen und/oder Verändern des Inhalts der Speichereinrichtung (MEM) nicht autorisiert ist, durch die Auswertung eines Signals erfolgt, welches die Befehlsholeinheit (CFUl) über eine hierfür reservierte Leitung zur Speichereinrichtung (MEM) überträgt, und durch welches die Befehlsholeinheit (CFUl) signalisiert, ob sich in einer instruction queue, oder in einer Befehlsabarbeitungs-Pipe- line, oder in einem instruction cache, oder in einem sonstigen Zwischenspeicher ein zuvor geholter Befehl befindet oder befinden kann, der aus einem Speicher (EXTMEM) stammt, dessen Inhalt durch eine Person verändert werden kann, die zum Auslesen und/oder Verändern des Inhalts der Speichereinrichtung (MEM) nicht autorisiert ist.
12. Programmgesteuerte Einheit nach einem der vorhergehenden Ansprüche, d a d u r c h g e k e n n z e i c h n e t, daß die Überprüfung, ob ein Zugriff auf die Speichereinrichtung (MEM) durch eine dazu nicht autorisierte Person veran- laßt wurde oder veranlaßt worden sein könnte, durch eine Steuereinrichtung erfolgt.
13. Programmgesteuerte Einheit nach Anspruch 12, d a d u r c h g e k e n n z e i c h n e t, daß die Steuereinrichtung Bestandteil der Speichereinrichtung (MEM) ist.
14. Programmgesteuerte Einheit nach Anspruch 12, d a d u r c h g e k e n n z e i c h n e t, daß die Steuereinrichtung eine der Speichereinrichtung (MEM) vorgeschaltete Einrichtung ist.
PCT/DE2002/003202 2001-09-21 2002-08-30 Programmgesteuerte einheit WO2003027815A2 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/490,230 US20050108488A1 (en) 2001-09-21 2002-08-30 Programme-controlled unit
EP02799387A EP1428105A2 (de) 2001-09-21 2002-08-30 Programmgesteuerte einheit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10146516A DE10146516A1 (de) 2001-09-21 2001-09-21 Programmgesteuerte Einheit
DE10146516.5 2001-09-21

Publications (2)

Publication Number Publication Date
WO2003027815A2 true WO2003027815A2 (de) 2003-04-03
WO2003027815A3 WO2003027815A3 (de) 2003-10-30

Family

ID=7699763

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE2002/003202 WO2003027815A2 (de) 2001-09-21 2002-08-30 Programmgesteuerte einheit

Country Status (4)

Country Link
US (1) US20050108488A1 (de)
EP (1) EP1428105A2 (de)
DE (1) DE10146516A1 (de)
WO (1) WO2003027815A2 (de)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10315637A1 (de) * 2003-04-04 2004-10-28 Infineon Technologies Ag Programmgesteuerte Einheit
EP1662419A1 (de) * 2004-11-26 2006-05-31 Robert Bosch Gmbh Manipulationsgeschütztes Mikrocontrollersystem
WO2007015204A2 (en) * 2005-08-03 2007-02-08 Nxp B.V. A secure terminal, a routine and a method of protecting a secret key
CN100380335C (zh) * 2003-04-17 2008-04-09 Arm有限公司 集成电路的诊断电路
EP2282280A1 (de) * 2004-03-30 2011-02-09 Emma Mixed Signal C.V. Verfahren und System zum Schutz von Inhalt in einem programmierbaren System
EP1611517B1 (de) * 2003-04-04 2019-06-12 Infineon Technologies AG Programmgesteuerte einheit

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080077639A (ko) * 2005-12-22 2008-08-25 다우 글로벌 테크놀로지스 인크. 경화성 에폭시 수지 조성물 및 이로부터 제조한 적층물
US7895404B2 (en) * 2008-02-14 2011-02-22 Atmel Rousset S.A.S. Access rights on a memory map
EP2981773B1 (de) 2013-04-01 2019-06-05 Thermo King Corporation System und verfahren zur verhinderung einer unbefugten änderung an einer motorsteuerungssoftware oder einem motorsteuerungssystem

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0779569A2 (de) * 1995-12-14 1997-06-18 Siemens Aktiengesellschaft Datenverarbeitungsanlage mit Vorrichtungen zur Steuerung der Zugriffsberechtigung, welche den Komponenten der Datenverarbeitungsanlage direkt zugeordnet sind
US5737760A (en) * 1995-10-06 1998-04-07 Motorola Inc. Microcontroller with security logic circuit which prevents reading of internal memory by external program
EP0859319A1 (de) * 1997-02-14 1998-08-19 Nec Corporation Speicherzugriff-Steuerungsschaltung

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4698750A (en) * 1984-12-27 1987-10-06 Motorola, Inc. Security for integrated circuit microcomputer with EEPROM
US5014191A (en) * 1988-05-02 1991-05-07 Padgaonkar Ajay J Security for digital signal processor program memory
DE3901457A1 (de) * 1989-01-19 1990-08-02 Strahlen Umweltforsch Gmbh Verfahren zur adressbereichsueberwachung bei datenverarbeitungsgeraeten in echtzeit
JPH0664567B2 (ja) * 1989-12-25 1994-08-22 株式会社日立製作所 多重プロセッサシステム
US5251304A (en) * 1990-09-28 1993-10-05 Motorola, Inc. Integrated circuit microcontroller with on-chip memory and external bus interface and programmable mechanism for securing the contents of on-chip memory
EP0481735A3 (en) * 1990-10-19 1993-01-13 Array Technology Corporation Address protection circuit
JPH07262147A (ja) * 1994-03-17 1995-10-13 Fujitsu Ltd 共通メモリ保護方式
US6381681B1 (en) * 1999-09-30 2002-04-30 Silicon Graphics, Inc. System and method for shared memory protection in a multiprocessor computer
US7047284B1 (en) * 1999-12-30 2006-05-16 Texas Instruments Incorporated Transfer request bus node for transfer controller with hub and ports
US6952778B1 (en) * 2000-10-26 2005-10-04 Cypress Semiconductor Corporation Protecting access to microcontroller memory blocks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5737760A (en) * 1995-10-06 1998-04-07 Motorola Inc. Microcontroller with security logic circuit which prevents reading of internal memory by external program
EP0779569A2 (de) * 1995-12-14 1997-06-18 Siemens Aktiengesellschaft Datenverarbeitungsanlage mit Vorrichtungen zur Steuerung der Zugriffsberechtigung, welche den Komponenten der Datenverarbeitungsanlage direkt zugeordnet sind
EP0859319A1 (de) * 1997-02-14 1998-08-19 Nec Corporation Speicherzugriff-Steuerungsschaltung

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10315637A1 (de) * 2003-04-04 2004-10-28 Infineon Technologies Ag Programmgesteuerte Einheit
EP1611517B1 (de) * 2003-04-04 2019-06-12 Infineon Technologies AG Programmgesteuerte einheit
CN100380335C (zh) * 2003-04-17 2008-04-09 Arm有限公司 集成电路的诊断电路
EP2282280A1 (de) * 2004-03-30 2011-02-09 Emma Mixed Signal C.V. Verfahren und System zum Schutz von Inhalt in einem programmierbaren System
US8302159B2 (en) 2004-03-30 2012-10-30 Semiconductor Components Industries, Llc Method and system for protecting content in a programmable system
EP1662419A1 (de) * 2004-11-26 2006-05-31 Robert Bosch Gmbh Manipulationsgeschütztes Mikrocontrollersystem
WO2007015204A2 (en) * 2005-08-03 2007-02-08 Nxp B.V. A secure terminal, a routine and a method of protecting a secret key
WO2007015204A3 (en) * 2005-08-03 2007-07-05 Nxp Bv A secure terminal, a routine and a method of protecting a secret key
KR100970040B1 (ko) * 2005-08-03 2010-07-16 엔엑스피 비 브이 보안키 보호 방법, 보안키 보호 방법에 사용되는 실행 전용 루틴을 구비한 컴퓨터 판독가능 저장 매체 및 보안 단말기
US8689338B2 (en) 2005-08-03 2014-04-01 St-Ericsson Sa Secure terminal, a routine and a method of protecting a secret key

Also Published As

Publication number Publication date
DE10146516A1 (de) 2003-04-24
WO2003027815A3 (de) 2003-10-30
EP1428105A2 (de) 2004-06-16
US20050108488A1 (en) 2005-05-19

Similar Documents

Publication Publication Date Title
DE3048365C2 (de)
EP0813714A1 (de) Mehrbenutzerdatenverarbeitungsanlage mit speicherschutz
DE2629459A1 (de) Datenverarbeitungssystem
CH615521A5 (de)
EP1358558B1 (de) Mikroprozessorschaltung für datenträger und verfahren zum organisieren des zugriffs auf in einem speicher abgelegten daten
DE102016122375A1 (de) Dynamischer containerisierter Systemspeicherschutz für Niedrigenergie-MCUs
EP0500973A1 (de) Initialisierungsroutine im EEPROM
DE10164422A1 (de) Verfahren und Anordnung zum Beschreiben von NV-Memories in einer Controller-Architektur sowie ein entsprechendes Computerprogrammprodukt und ein entsprechendes computerlesbares Speichermedium
WO2003027815A2 (de) Programmgesteuerte einheit
DE19860069B4 (de) Programmierbare Steuereinrichtung
EP0739509B1 (de) Anordnung mit master- und slave-einheiten
EP1611517B1 (de) Programmgesteuerte einheit
EP0935214A2 (de) Chipkarte mit integrierter Schaltung
WO2004090730A2 (de) Programmgesteuerte einheit
DE4227784A1 (de) Rechnersystem und verfahren zum beheben eines seitenfehlers
EP1611515B1 (de) Programmgesteuerte einheit
EP0966711B1 (de) Mikrocomputer mit einer speicherverwaltungseinheit
DE102018123563B4 (de) Verfahren zur Zwischenkernkommunikation in einem Mehrkernprozessor
DE3137313A1 (de) Schaltungsanordnung zur kopplung zweier mikroprozessoren
EP0613077B1 (de) Verfahren zur Reset-Erzeugung in Datenverarbeitungsanlagen
WO2017102655A1 (de) Mikrocontrollersystem und verfahren zur kontrolle von speicherzugriffen in einem mikrocontrollersystem
EP3391279B1 (de) Mikrocontrollersystem und verfahren zur kontrolle von speicherzugriffen in einem mikrocontrollersystem
EP1611514A2 (de) Programmgesteuerte einheit
DE19930144C1 (de) Verfahren zum Erkennen von fehlerhaften Speicherzugriffen in prozessorgesteuerten Einrichtungen
DE3709205A1 (de) Schutzschaltung fuer informationsdaten im arbeitsspeicher

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FR GB GR IE IT LU MC NL PT SE SK TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWE Wipo information: entry into national phase

Ref document number: 2002799387

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2002799387

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 10490230

Country of ref document: US