DE102013218646B4 - PROCESSING DEVICE - Google Patents

PROCESSING DEVICE Download PDF

Info

Publication number
DE102013218646B4
DE102013218646B4 DE102013218646.0A DE102013218646A DE102013218646B4 DE 102013218646 B4 DE102013218646 B4 DE 102013218646B4 DE 102013218646 A DE102013218646 A DE 102013218646A DE 102013218646 B4 DE102013218646 B4 DE 102013218646B4
Authority
DE
Germany
Prior art keywords
section
memory
protection
arithmetic
data
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.)
Active
Application number
DE102013218646.0A
Other languages
German (de)
Other versions
DE102013218646A1 (en
Inventor
Yuu Nakagawa
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.)
Denso Corp
Original Assignee
Denso Corp
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
Priority claimed from JP2012204490A external-priority patent/JP5765311B2/en
Priority claimed from JP2013047146A external-priority patent/JP2014174758A/en
Application filed by Denso Corp filed Critical Denso Corp
Publication of DE102013218646A1 publication Critical patent/DE102013218646A1/en
Application granted granted Critical
Publication of DE102013218646B4 publication Critical patent/DE102013218646B4/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

Verarbeitungsvorrichtung, aufweisend:einen Arithmetikabschnitt (10);einen Speicherabschnitt (20), der Daten speichert, auf deren Basis der Arithmetikabschnitt (10) eine arithmetische Verarbeitung ausführt; undeinen Schutzabschnitt (30), der den Speicherabschnitt (20) schützt, indem er einen Zugriff des Arithmetikabschnitts (10) auf den Speicherabschnitt (20) basierend auf einem Zugriffstyp erlaubt oder verbietet,wobei der Speicherabschnitt (20) ein Softwareprogramm speichert, das mehrere Komponenten beinhaltet, und die mehreren Komponenten mindestens eine sichere Komponente und eine nichtsichere Komponente beinhalten,wobei die sichere Komponente einen vorbestimmten Sicherheitsstandard erfüllt und die nichtsichere Komponente den vorbestimmten Sicherheitsstandard nicht erfüllt,wobei der Schutzabschnitt (30) mehrere Register (31) und einen Verwaltungsabschnitt (32) beinhaltet,wobei die mehreren Register (31) Adressdaten, Operationsdaten und Schutzdaten speichern, die Adressdaten einen Adressbereich des Speicherabschnitts (20) angeben, auf den durch den Arithmetikabschnitt (10) zuzugreifen ist, die Operationsdaten eine spezifische Operation angeben, die durch den Arithmetikabschnitt (10) auf den Speicherabschnitt (20) basierend dem Zugriffstyp auszuführen ist, und die Schutzdaten angeben, ob ein Schutz des Speicherabschnitts (20) aktiviert oder deaktiviert ist,wobei, wenn der Verwaltungsabschnitt (32) basierend auf den Schutzdaten bestimmt, dass der Schutz des Speicherabschnitts (20) durch den Arithmetikabschnitt (10) aktiviert ist, der Verwaltungsabschnitt (32) den Adressbereich des Speicherabschnitts (20), auf den durch den Arithmetikabschnitt (10) zuzugreifen ist, basierend auf den Adressdaten spezifiziert und die spezifische Operation, die durch den Arithmetikabschnitt (10) auf den Speicherabschnitt (20) auszuführen ist, basierend auf den Operationsdaten bestimmt,wobei, wenn der Verwaltungsabschnitt (32) basierend auf den Schutzdaten bestimmt, dass der Schutz des Speicherabschnitts (20) durch den Arithmetikabschnitt (10) deaktiviert ist, der Verwaltungsabschnitt (32) eine Spezifikation des Adressbereichs des Speicherabschnitts (20), auf den durch den Arithmetikabschnitt (10) zuzugreifen ist, und eine Bestimmung der spezifischen Operation, die durch den Arithmetikabschnitt (10) auf den Speicherabschnitt (20) auszuführen ist, überspringt,wobei eine Größe der Schutzdaten kleiner als eine Summe einer Größe der Adressdaten und einer Größe der Operationsdaten ist,wobei, wenn der Arithmetikabschnitt (10) eine gegenwärtige Komponente, die eine der mehreren Komponenten ist, die gegenwärtig durch den Arithmetikabschnitt (10) ausgeführt werden, von der nichtsicheren Komponente in die sichere Komponente umschaltet, der Arithmetikabschnitt (10) die Schutzdaten, die in den mehreren Registern (31) gespeichert sind, umschreibt, um den Schutz des Speicherabschnitts (20) zu deaktivieren, undwobei, wenn der Arithmetikabschnitt (10) die gegenwärtige Komponente von der sicheren Komponente in die nichtsichere Komponente umschaltet, der Arithmetikabschnitt (10) die Schutzdaten, die in den mehreren Registern (31) gespeichert sind, umschreibt, um den Schutz des Speicherabschnitts (20) zu aktivieren.A processing apparatus comprising: an arithmetic section (10); a storage section (20) storing data based on which said arithmetic section (10) performs arithmetic processing; and a protection section (30) that protects the storage section (20) by allowing or prohibiting an access of the arithmetic section (10) to the storage section (20) based on an access type, wherein the storage section (20) stores a software program including plural components includes, and the plurality of components includes at least one secure component and one non-secure component, wherein the secure component meets a predetermined security standard and the non-secure component fails to meet the predetermined security standard, wherein the protection section (30) comprises a plurality of registers (31) and a management section (32 ), wherein the plurality of registers (31) store address data, operation data and protection data, the address data indicating an address range of the memory section (20) to be accessed by the arithmetic section (10), the operation data indicating a specific operation to be performed by the arithmetic section (10) on the memory section (20) is to be executed based on the access type, and the protection data indicates whether protection of the memory section (20) is activated or deactivated,wherein when the management section (32) determines based on the protection data that protection of the memory section (20 ) is activated by the arithmetic section (10), the management section (32) specifies the address range of the memory section (20) to be accessed by the arithmetic section (10) based on the address data, and the specific operation to be performed by the arithmetic section (10 ) is to be executed on the memory section (20) based on the operation data, wherein when the management section (32) determines based on the protection data that the protection of the memory section (20) by the arithmetic section (10) is disabled, the management section ( 32) a specification of the address range of the memory section (20) referred to by the arithmetic section tt (10) is to be accessed, and skips a determination of the specific operation to be performed by the arithmetic section (10) on the memory section (20), wherein a size of the protection data is smaller than a sum of a size of the address data and a size of the operation data is,wherein when the arithmetic section (10) switches a current component, which is one of the plurality of components currently being executed by the arithmetic section (10), from the non-secure component to the secure component, the arithmetic section (10) saves the protection data, stored in the plurality of registers (31) to disable protection of the memory section (20), and wherein when the arithmetic section (10) switches the current component from the secure component to the non-secure component, the arithmetic section (10) rewrites the protection data stored in the plurality of registers (31) to protect the memory ab section (20) to activate.

Description

Die vorliegende Offenbarung betrifft eine Verarbeitungsvorrichtung, die einen Arithmetikabschnitt, einen Speicherabschnitt und einen Schutzabschnitt beinhaltet, der den Speicherabschnitt schützt, indem er einen Zugriff des Arithmetikabschnitts auf den Speicherabschnitt erlaubt oder verbietet.The present disclosure relates to a processing device that includes an arithmetic section, a storage section, and a protection section that protects the storage section by allowing or prohibiting access of the arithmetic section to the storage section.

Üblicherweise beinhaltet ein Mikrocomputer, wie in der JP 2007-287103 A offenbart ist, eine zentrale Verarbeitungseinheit (CPU), einen Schutzinformationsspeicherabschnitt und einen Speicherzugriffskontroller. Der Schutzinformationsspeicherabschnitt speichert Speicherschutzinformationen. Die Speicherschutzinformationen geben eine Erlaubnis oder ein Verbot für einen Zugriff auf einen Speicherraum durch ein Programm, das durch die CPU ausgeführt wird, an. Der Speicherzugriffskontroller bestimmt basierend auf den Speicherschutzinformationen, ob eine Speicherzugriffsanfrage von der CPU erlaubt werden soll.Usually includes a microcomputer, as in the JP 2007-287103 A discloses a central processing unit (CPU), a protection information storage section, and a memory access controller. The protection information storage section stores storage protection information. The memory protection information indicates permission or prohibition of access to a memory space by a program executed by the CPU. The memory access controller determines whether to allow a memory access request from the CPU based on the memory protection information.

Die CPU führt ein Programm aus, das mehrere Komponenten beinhaltet. Jede Komponente verwendet eine spezifische Speicherregion, die sich von der anderen unterscheidet. Die mehreren Komponenten beinhalten mindestens eine sichere Komponente, die einen vorbestimmten Sicherheitsstandard erfüllt, und mindestens eine nichtsichere Komponente, die nicht durch den Sicherheitsstandard beschränkt ist. Die nichtsichere Komponente kann als eine Komponente betrachtet werden, die den vorbestimmten Sicherheitsstandard nicht erfüllt. In einem Fall, in dem die nichtsichere Komponente einen sogenannten Bug beinhaltet und die CPU basierend auf der nichtsicheren Komponente operiert, ist es möglich, dass die CPU auf Daten zugreift, die für die Operation unnötig sind. Somit tritt eine Fehlfunktion der CPU auf.The CPU runs a program that includes several components. Each component uses a specific region of memory that is different from the other. The multiple components include at least one secure component that meets a predetermined security standard and at least one non-secure component that is not constrained by the security standard. The non-secure component can be considered as a component that does not meet the predetermined security standard. In a case where the non-secure component includes a so-called bug and the CPU operates based on the non-secure component, there is a possibility that the CPU accesses data unnecessary for the operation. Thus, a malfunction of the CPU occurs.

Beispielsweise beinhaltet der Mikrocomputer, der in JP 2007-287103 A offenbart ist, eine Schutzeinstellungsregistergruppe und den Speicherzugriffskontroller. Die Schutzeinstellungsregistergruppe beinhaltet mehrere Register, die die Speicherschutzinformationen speichern. Der Speicherzugriffskontroller bestimmt basierend auf den Speicherschutzinformationen, ob die Speicherzugriffsanfrage von der CPU erlaubt werden soll. Mit dieser Konfiguration wird es der CPU ermöglicht oder verboten, auf die für die Operation unnötigen Daten zuzugreifen. Das heißt, die Fehlfunktion der CPU kann vermieden werden.For example, the microcomputer included in JP 2007-287103 A discloses a protection setting register group and the memory access controller. The protection setting register group includes several registers that store memory protection information. The memory access controller determines whether to allow the memory access request from the CPU based on the memory protection information. This configuration allows or prohibits the CPU from accessing the data unnecessary for the operation. That is, the malfunction of the CPU can be avoided.

In dem vorstehend beschriebenen Mikrocomputer unterscheiden sich die Speicherschutzinformationen für jede Komponente voneinander. Somit müssen, wenn die CPU das Programm von einem zu einem anderen umschaltet, das heißt, wenn die Komponente von einer zu einer anderen umgeschaltet wird, Einstellungsinformationen der Register, die in der Schutzeinstellungsregistergruppe beinhaltet sind, geändert werden. Somit wird sogenannter Overhead erhöht, wenn die CPU das Programm von einem zum anderen umschaltet. Das heißt, Überschusszeit und Last (excess time and load) sind notwendig, wenn die mehreren Register umgeschrieben werden, um die Speicherschutzinformationen für jede Komponente zu ändern.In the microcomputer described above, the memory protection information differs for each component. Thus, when the CPU switches the program from one to another, that is, when the component is switched from one to another, setting information of the registers included in the protection setting register group must be changed. Thus, so-called overhead is increased when the CPU switches the program from one to the other. That is, excess time and load are necessary when the multiple registers are rewritten to change the memory protection information for each component.

Es wird ferner auf die DE 101 05 284 A1 und die US 2002 / 0 188 852 A1 verwiesen, die als Stand der Technik ermittelt wurden.It will also refer to the DE 101 05 284 A1 and the U.S. 2002/0 188 852 A1 referenced, which have been identified as prior art.

Die DE 101 05 284 A1 beschreibt in Figur eine Verarbeitungsvorrichtung, aufweisend: einen Arithmetikabschnitt; einen Speicherabschnitt, der Daten speichert, auf deren Basis der Arithmetikabschnitt eine arithmetische Verarbeitung ausführt; und einen Schutzabschnitt, der den Speicherabschnitt schützt, indem er einen Zugriff des Arithmetikabschnitts auf den Speicherabschnitt basierend auf einem Zugriffstyp erlaubt oder verbietet, wobei der Speicherabschnitt ein Softwareprogramm speichert, das mehrere Komponenten beinhaltet, wobei der Schutzabschnitt mehrere Register und einen Verwaltungsabschnitt beinhaltet, wobei die mehreren Register Schutzdaten speichern, basierend auf Adressdaten die einen Adressbereich des Speicherabschnitts angeben, auf den durch den Arithmetikabschnitt zuzugreifen ist, wobei die Schutzdaten einer Programm-ID entsprechen, die einem Speicherbereich zugeordnet ist, und der Schutzabschnitt diese ID mit einer dem ausgeführten Befehl zugeordneten ID vergleicht, um den Zugriff auf den Speicher zu erlauben oder zu verweigern.the DE 101 05 284 A1 FIG. 1 describes a processing apparatus comprising: an arithmetic section; a storage section that stores data based on which the arithmetic section performs arithmetic processing; and a protection section that protects the storage section by allowing or prohibiting access of the arithmetic section to the storage section based on an access type, the storage section storing a software program including a plurality of components, the protection section including a plurality of registers and a management section, the a plurality of registers storing protection data based on address data indicating an address range of the memory section to be accessed by the arithmetic section, the protection data corresponding to a program ID assigned to a memory area, and the protection section corresponding to this ID with an ID assigned to the executed instruction compares to allow or deny access to the memory.

Die US 2002 / 0 188 852 A1 beschreibt eine Verarbeitungsvorrichtung, die ein Softwareprogramm ausführt, das mehrere Komponenten beinhaltet, aufweisend: einen Arithmetikabschnitt, der eine arithmetische Verarbeitung basierend auf jeder der mehreren Komponenten ausführt; einen Speicherabschnitt, der Daten für die arithmetische Verarbeitung, die durch den Arithmetikabschnitt ausgeführt wird, speichert; und einen Schutzabschnitt, der den Speicherabschnitt schützt, indem er einen Zugriff des Arithmetikabschnitts auf den Speicherabschnitt basierend auf einem Zugriffstyp erlaubt oder verbietet, wobei der Schutzabschnitt mehrere Bänke und einen Korrelationsabschnitt beinhaltet, wobei jede der mehreren Bänke mehrere Register beinhaltet, in denen Speicherschutzinformationen des Speicherabschnitts gespeichert werden, wobei die Speicherschutzinformationen Adressdaten und Operationsdaten beinhalten, die Adressdaten einen Adressbereich des Speicherabschnitts, auf den durch den Arithmetikabschnitt zuzugreifen ist, angeben und die Operationsdaten eine spezifische Operation, die durch den Arithmetikabschnitt auf den Speicherabschnitt basierend auf dem Zugriffstyp auszuführen ist, angeben, wobei der Korrelationsabschnitt eine Zielkomponente mit einer Zielbank korreliert, die aus den mehreren Bänken ausgewählt wird, wobei der Schutzabschnitt den Zugriff des Arithmetikabschnitts auf den Speicherabschnitt basierend auf den Speicherschutzinformationen, die in der Zielbank gespeichert sind, erlaubt oder verbietet, um den Speicherabschnitt zu schützen.the U.S. 2002/0 188 852 A1 describes a processing device that executes a software program that includes multiple components, including: an arithmetic section that performs arithmetic processing based on each of the multiple components; a storage section that stores data for arithmetic processing performed by the arithmetic section; and a protection section that protects the memory section by allowing or prohibiting an access of the arithmetic section to the memory section based on an access type, the protection section including a plurality of banks and a correlation section, each of the plurality of banks including a plurality of registers in which memory protection information of the memory section are stored, wherein the memory protection information includes address data and operation data, the address data indicating an address range of the memory section to be accessed by the arithmetic section ben and the operation data indicate a specific operation to be performed by the arithmetic section on the memory section based on the access type, the correlation section correlating a target component with a target bank selected from the plurality of banks, the protection section restricting access of the arithmetic section allows or prohibits the storage section based on the storage protection information stored in the target bank to protect the storage section.

Im Hinblick auf die vorstehenden Schwierigkeiten ist es eine Aufgabe der vorliegenden Offenbarung, eine Verarbeitungsvorrichtung bereitzustellen, in der Overhead reduziert wird.In view of the above problems, it is an object of the present disclosure to provide a processing device in which overhead is reduced.

Gemäß einem Aspekt der vorliegenden Offenbarung beinhaltet eine Verarbeitungsvorrichtung einen Arithmetikabschnitt, einen Speicherabschnitt und einen Schutzabschnitt. Der Speicherabschnitt speichert Daten, auf deren Basis der Arithmetikabschnitt eine arithmetische Verarbeitung ausführt. Der Schutzabschnitt schützt den Speicherabschnitt, indem er einen Zugriff des Arithmetikabschnitts auf den Speicherabschnitt basierend auf einem Zugriffstyp erlaubt oder verbietet. Der Speicherabschnitt speichert ein Softwareprogramm, das mehrere Komponenten beinhaltet, und die Komponenten beinhalten mindestens eine sichere Komponente und eine nichtsichere Komponente. Die sichere Komponente erfüllt einen vorbestimmten Sicherheitsstandard und die nichtsichere Komponente erfüllt den vorbestimmten Sicherheitsstandard nicht. Der Schutzabschnitt beinhaltet mehrere Register und einen Verwaltungsabschnitt. Die Register speichern Adressdaten, Operationsdaten und Schutzdaten. Die Adressdaten geben einen Adressbereich des Speicherabschnitts an, auf den durch den Arithmetikabschnitt zugegriffen wird bzw. auf den durch den Arithmetikabschnitt zuzugreifen ist. Die Operationsdaten geben eine spezifische Operation an, die durch den Arithmetikabschnitt auf den Speicherabschnitt basierend dem Zugriffstyp ausgeführt wird bzw. auszuführen ist. Die Schutzdaten geben an, ob ein Schutz des Speicherabschnitts aktiviert oder deaktiviert ist. Wenn der Verwaltungsabschnitt basierend auf den Schutzdaten bestimmt, dass der Schutz des Speicherabschnitts durch den Arithmetikabschnitt aktiviert ist, spezifiziert der Verwaltungsabschnitt den Adressbereich des Speicherabschnitts, auf den durch den Arithmetikabschnitt zugegriffen wird bzw. zuzugreifen ist, basierend auf den Adressdaten und bestimmt die spezifische Operation, die durch den Arithmetikabschnitt auf den Speicherabschnitt ausgeführt wird bzw. auszuführen ist, basierend auf den Operationsdaten. Wenn der Verwaltungsabschnitt basierend auf den Schutzdaten bestimmt, dass der Schutz des Speicherabschnitts durch den Arithmetikabschnitt deaktiviert ist, überspringt der Verwaltungsabschnitt eine Spezifikation des Adressbereichs des Speicherabschnitts, auf den durch den Arithmetikabschnitt zugegriffen wird bzw. zuzugreifen ist, und eine Bestimmung der spezifischen Operation, die durch den Arithmetikabschnitt auf den Speicherabschnitt ausgeführt wird bzw. auszuführen ist. Eine Größe der Schutzdaten ist kleiner als eine Summe einer Größe der Adressdaten und einer Größe der Operationsdaten. Wenn der Arithmetikabschnitt eine gegenwärtige Komponente, die eine der mehreren Komponenten ist, die gegenwärtig durch den Arithmetikabschnitt ausgeführt werden, von der nichtsicheren Komponente in die sichere Komponente umschaltet, schreibt der Arithmetikabschnitt die Schutzdaten, die in den mehreren Registern gespeichert sind, um, um den Schutz des Speicherabschnitts zu deaktivieren. Wenn der Arithmetikabschnitt die gegenwärtige Komponente von der sicheren Komponente in die nichtsichere Komponente umschaltet, schreibt der Arithmetikabschnitt die Schutzdaten, die in den mehreren Registern gespeichert sind, um, um den Schutz des Speicherabschnitts zu aktivieren.According to an aspect of the present disclosure, a processing device includes an arithmetic section, a storage section, and a protection section. The storage section stores data based on which the arithmetic section performs arithmetic processing. The protection section protects the memory section by allowing or prohibiting access of the arithmetic section to the memory section based on an access type. The storage section stores a software program including multiple components, and the components include at least a secure component and a non-secure component. The secure component meets a predetermined security standard and the non-secure component fails to meet the predetermined security standard. The protection section includes several registers and an administration section. The registers store address data, operational data and protection data. The address data indicates an address range of the memory section accessed by the arithmetic section or to be accessed by the arithmetic section. The operation data indicates a specific operation to be performed by the arithmetic section on the memory section based on the access type. The protection data indicates whether protection of the memory section is enabled or disabled. When the management section determines that the protection of the memory section by the arithmetic section is activated based on the protection data, the management section specifies the address range of the memory section to be accessed by the arithmetic section based on the address data and determines the specific operation, to be executed by the arithmetic section on the memory section based on the operation data. If the management section determines based on the protection data that the protection of the memory section by the arithmetic section is disabled, the management section skips a specification of the address range of the memory section accessed by the arithmetic section and a determination of the specific operation that is executed by the arithmetic section on the memory section. A size of the protection data is smaller than a sum of a size of the address data and a size of the operation data. When the arithmetic section switches a current component, which is one of the plural components currently being executed by the arithmetic section, from the non-secure component to the secure component, the arithmetic section rewrites the protection data stored in the plural registers by the disable protection of the memory section. When the arithmetic section switches the current component from the secure component to the non-secure component, the arithmetic section rewrites the protection data stored in the plurality of registers to activate the protection of the storage section.

Mit der vorstehenden Verarbeitungsvorrichtung werden nur die Schutzdaten, die kleiner als die Summe der Größe der Adressdaten und der Operationsdaten sind, durch den Arithmetikabschnitt umgeschrieben. Somit wird Overhead in der Verarbeitungsvorrichtung reduziert.With the above processing device, only the protection data smaller than the sum of the size of the address data and the operation data is rewritten by the arithmetic section. Thus, overhead in the processing device is reduced.

Gemäß einem weiteren Aspekt der vorliegenden Offenbarung beinhaltet eine Verarbeitungsvorrichtung, die ein Softwareprogramm ausführt, das mehrere Komponenten beinhaltet, einen Arithmetikabschnitt, einen Speicherabschnitt und einen Schutzabschnitt. Der Arithmetikabschnitt führt eine arithmetische Verarbeitung basierend auf jeder der Komponenten aus. Der Speicherabschnitt speichert Daten für die arithmetische Verarbeitung, die durch den Arithmetikabschnitt ausgeführt wird. Der Schutzabschnitt schützt den Speicherabschnitt, indem er einen Zugriff des Arithmetikabschnitts auf den Speicherabschnitt basierend auf einem Zugriffstyp erlaubt oder verbietet. Der Schutzabschnitt beinhaltet mehrere Bänke, ein Banknummernregister, einen Spezifizierungsabschnitt, einen Korrelationsabschnitt und einen Umschaltabschnitt. Jede der Bänke beinhaltet mehrere Register, in denen Speicherschutzinformationen des Speicherabschnitts gespeichert werden. Die Speicherschutzinformationen beinhalten Adressdaten und Operationsdaten. Die Adressdaten geben einen Adressbereich des Speicherabschnitts an, auf den durch den Arithmetikabschnitt zugegriffen wird bzw. zuzugreifen ist, und die Operationsdaten geben eine spezifische Operation an, die durch den Arithmetikabschnitt auf den Speicherabschnitt basierend auf dem Zugriffstyp ausgeführt wird bzw. auszuführen ist. Das Banknummernregister speichert eine Nummer, die eine der zu aktivierenden mehreren Bänke angibt. Der Spezifizierungsabschnitt spezifiziert eine Zielkomponente, die durch den Arithmetikabschnitt auszuführen ist, aus den Komponenten. Der Korrelationsabschnitt korreliert die Zielkomponente mit einer Zielbank, die aus den Bänken ausgewählt wird. Wenn der Arithmetikabschnitt eine gegenwärtige Komponente, die eine der mehreren Komponenten ist, die gegenwärtig durch den Arithmetikabschnitt ausgeführt werden, in die Zielkomponente umschaltet, schreibt der Umschaltabschnitt eine Nummer, die die Zielbank angibt, die mit der Zielkomponente korreliert ist, in das Banknummernregister, um die Zielbank zu aktivieren. Der Schutzabschnitt erlaubt oder verbietet den Zugriff des Arithmetikabschnitts auf den Speicherabschnitt basierend auf den Speicherschutzinformationen, die in den mehreren Registern der Zielbank gespeichert sind, die durch den Umschaltabschnitt aktiviert wird, um den Speicherabschnitt zu schützen.According to another aspect of the present disclosure, a processing device that executes a software program including multiple components includes an arithmetic section, a storage section, and a protection section. The arithmetic section performs arithmetic processing based on each of the components. The storage section stores data for arithmetic processing performed by the arithmetic section. The protection section protects the memory section by allowing or prohibiting access of the arithmetic section to the memory section based on an access type. The protection section includes multiple banks, a bank number register, a specifying section, a correlating section, and a switching section. Each of the banks includes a plurality of registers in which memory protection information of the memory section is stored. The memory protection information includes address data and operation data. The address data indicates an address range of the memory section accessed by the arithmetic section, and the operation data indicates a specific operation performed by the arithmetic section on the memory section based on the access type. The bank number register stores a number that is one of the to activating multiple banks. The specifying section specifies a target component to be executed by the arithmetic section from among the components. The correlation section correlates the target component with a target bank selected from the banks. When the arithmetic section switches a current component, which is one of the plurality of components currently being executed by the arithmetic section, to the target component, the switching section rewrites a number indicative of the target bank correlated with the target component in the bank number register activate the target bank. The protection section permits or prohibits the arithmetic section from accessing the memory section based on the memory protection information stored in the plurality of registers of the target bank activated by the switching section to protect the memory section.

Mit der vorstehenden Verarbeitungsvorrichtung wird, wenn die Verarbeitungsvorrichtung die gegenwärtige Komponente zur Zielkomponente umschaltet, eine gegenwärtige Bank zur Zielbank umgeschaltet, indem die Nummer der Zielbank in das Banknummernregister geschrieben wird. Somit kann die Verarbeitungsvorrichtung den Zugriff des Arithmetikabschnitts auf den Speicherabschnitt basierend auf den Speicherschutzinformationen, die in den mehreren Registern der Zielbank gespeichert sind, erlauben oder verbieten. Somit wird Overhead in der Verarbeitungsvorrichtung reduziert.With the above processing device, when the processing device switches the current component to the target component, a current bank is switched to the target bank by writing the number of the target bank to the bank number register. Thus, the processing device can allow or prohibit access of the arithmetic section to the memory section based on the memory protection information stored in the plurality of registers of the target bank. Thus, overhead in the processing device is reduced.

Die vorstehenden und weitere Aufgaben, Merkmale und Vorteile der vorliegenden Offenbarung werden aus der nachfolgenden detaillierten Beschreibung in Zusammenschau mit den Zeichnungen ersichtlicher.The above and other objects, features, and advantages of the present disclosure will become more apparent from the following detailed description when read in conjunction with the drawings.

Es zeigen:

  • 1 ein Blockschaltbild, das eine Konfiguration einer Verarbeitungsvorrichtung gemäß einer ersten Ausführungsform der vorliegenden Offenbarung darstellt;
  • 2 ein Diagramm, das ein Vergleichsbeispiel einer Schutzverarbeitung zum Schützen eines Speicherabschnitts darstellt, wenn ein Speicherschutz immer wirksam ist;
  • 3 ein Diagramm, das eine Schutzverarbeitung zum Schützen eines Speicherabschnitts, wenn ein Speicherschutz immer wirksam ist, gemäß der ersten Ausführungsform darstellt;
  • 4 ein Blockschaltbild, das eine Konfiguration einer Verarbeitungsvorrichtung gemäß einer zweiten Ausführungsform der vorliegenden Offenbarung darstellt;
  • 5 ein Blockschaltbild, das eine Konfiguration eines Speicherabschnitts gemäß der zweiten Ausführungsform darstellt;
  • 6 ein Ablaufdiagramm, das eine Verarbeitung darstellt, die durch einen Bankumschaltabschnitt ausgeführt wird;
  • 7 ein Diagramm, das eine Schutzverarbeitung zum Schützen eines Speicherabschnitts gemäß der zweiten Ausführungsform darstellt; und
  • 8 ein Diagramm, das ein Vergleichsbeispiel einer Schutzverarbeitung zum Schützen eines Speicherabschnitts darstellt.
Show it:
  • 1 12 is a block diagram showing a configuration of a processing device according to a first embodiment of the present disclosure;
  • 2 Fig. 14 is a diagram showing a comparative example of protection processing for protecting a memory portion when memory protection is always in effect;
  • 3 14 is a diagram showing protection processing for protecting a memory portion when memory protection is always effective according to the first embodiment;
  • 4 12 is a block diagram showing a configuration of a processing device according to a second embodiment of the present disclosure;
  • 5 12 is a block diagram showing a configuration of a memory section according to the second embodiment;
  • 6 14 is a flowchart showing processing executed by a bank switching section;
  • 7 12 is a diagram showing protection processing for protecting a memory portion according to the second embodiment; and
  • 8th Fig. 14 is a diagram showing a comparative example of protection processing for protecting a memory section.

Nachfolgend werden Ausführungsformen der vorliegenden Offenbarung mit Bezug auf die Zeichnungen erläutert.Hereinafter, embodiments of the present disclosure will be explained with reference to the drawings.

(Erste Ausführungsform)(First embodiment)

Nachfolgend wird eine Verarbeitungsvorrichtung gemäß der ersten Ausführungsform der vorliegenden Offenbarung mit Bezug auf 1 und 3 erläutert. In der vorliegenden Ausführungsform wird die Verarbeitungsvorrichtung auf einen Mikrocomputer 100 angewandt. Wie in 1 dargestellt ist, beinhaltet der Mikrocomputer 100 hauptsächlich einen Arithmetikabschnitt, der durch eine zentrale Verarbeitungseinheit (Central Processing Unit, CPU) 10 bereitgestellt wird, einen Speicherabschnitt (SPEICHERN) 20 und einen Schutzabschnitt (SCHÜTZEN) 30. Die CPU 10 führt eine arithmetische Verarbeitung basierend auf Daten aus, die in dem Speicherabschnitt 20 gespeichert sind. Der Speicherabschnitt 20 speichert die Daten, auf deren Basis die CPU 10 operiert und die arithmetische Verarbeitung ausführt. Der Schutzabschnitt 30 erlaubt oder verbietet der CPU 10, auf die Daten zuzugreifen, die in dem Speicherabschnitt 20 gespeichert sind, um den Speicherabschnitt 20 zu schützen. Insbesondere erlaubt oder verbietet der Schutzabschnitt 30 der CPU 10 basierend auf einem Zugriffstyp, auf den Speicherabschnitt 20 zuzugreifen. In der vorliegenden Ausführungsform weist der Zugriff der CPU 10 auf den Speicherabschnitt 20 drei Zugriffstypen einschließlich eines Lesezugriffs zum Lesen der Daten, die in dem Speicherabschnitt 20 gespeichert sind, eines Schreibzugriffs zum Schreiben von Daten in den Speicherabschnitt 20 und eines Ausführungszugriffs zum Ausführen von Anweisungsdaten auf, die im Speicherabschnitt 20 gespeichert sind.A processing device according to the first embodiment of the present disclosure will be referred to below with reference to FIG 1 and 3 explained. In the present embodiment, the processing device is applied to a microcomputer 100 . As in 1 As shown, the microcomputer 100 mainly includes an arithmetic section provided by a central processing unit (CPU) 10, a storage section (STORE) 20 and a protection section (PROTECT) 30. The CPU 10 performs arithmetic processing based on data stored in the memory section 20. The storage section 20 stores the data based on which the CPU 10 operates and performs arithmetic processing. The protection section 30 permits or prohibits the CPU 10 from accessing the data stored in the storage section 20 in order to protect the storage section 20. FIG. Specifically, the protection section 30 allows or prohibits the CPU 10 from accessing the memory section 20 based on an access type. In the present embodiment, the access of the CPU 10 to the memory section 20 has three access types including read access to read the data stored in the memory section 20, write access to write data to the memory section 20, and execute access to execute instruction data , which are stored in the memory section 20.

Die CPU 10 greift auf den Speicherabschnitt 20 zu und führt die arithmetische Verarbeitung basierend auf den Daten aus, die in einer Adresse des Speicherabschnitts 20, auf die zugegriffen wird, gespeichert sind. Die CPU 10 verarbeitet mehrere Datenbits auf einmal.The CPU 10 accesses the memory section 20 and performs arithmetic processing based on the data stored in an address of the memory section 20 to be accessed. The CPU 10 processes multiple bits of data at once.

Der Speicherabschnitt 20 beinhaltet einen Speicher mit wahlfreiem Zugriff (Random Access Memory, RAM), einen Nur-Lese-Speicher (Read-Only Memory, ROM) und Register. Der Speicherabschnitt 20 speichert ein Softwareprogramm für eine Operation der CPU 10. Das Softwareprogramm beinhaltet mindestens eine sichere Komponente und mindestens eine nichtsichere Komponente. Die sichere Komponente erfüllt einen vorbestimmten Sicherheitsstandard, und die nichtsichere Komponente erfüllt den Sicherheitsstandard nicht. Der Sicherheitsstandard kann sich auf eine Sicherheitsanforderungsstufe für sicherheitsrelevante Systeme in Kraftfahrzeugen, das sogenannte Automotive Safety Integrity Level (ASIL), beziehen, das durch die Internationale Organisation für Normung (ISO) 26262 definiert wird.The memory section 20 includes random access memory (RAM), read-only memory (ROM), and registers. The storage section 20 stores a software program for an operation of the CPU 10. The software program includes at least one secure component and at least one non-secure component. The secure component meets a predetermined security standard and the non-secure component fails to meet the security standard. The safety standard can refer to a safety requirement level for safety-related systems in motor vehicles, the so-called Automotive Safety Integrity Level (ASIL), which is defined by the International Organization for Standardization (ISO) 26262.

Der Schutzabschnitt 30 beinhaltet mehrere Register 31 und einen Verwaltungsabschnitt (VERWALTEN) 32. Der Schutzabschnitt 30 kann durch eine Speicherverwaltungseinheit bereitgestellt werden. Die Register 31 speichern Adressdaten, die einen Adressbereich des Speicherabschnitts 20 angeben, auf den durch die CPU 10 zuzugreifen ist, Operationsdaten, die eine spezifische Operation angeben, die durch die CPU 10 bezüglich des Speicherabschnitts 20 auszuführen ist, und Schutzdaten, die angeben, ob ein Schutz des Speicherabschnitts 20 aktiviert oder deaktiviert ist. Die CPU 10 kann die Daten einschließlich der Adressdaten, der Operationsdaten und der Schutzdaten, die in den Registern 31 gespeichert sind, umschreiben. Wenn die CPU 10 das Softwareprogramm basierend auf der sicheren Komponente ausführt, schreibt die CPU 10 die Schutzdaten, die in den Registern 31 gespeichert sind, um, um den Schutz des Speicherabschnitts 20 zu deaktivieren. Wenn die CPU 10 das Softwareprogramm basierend auf der nichtsicheren Komponente ausführt, schreibt die CPU 10 die Schutzdaten, die in den Registern 31 gespeichert sind, um, um den Schutz des Speicherabschnitts 20 zu aktivieren. Jedoch schreibt die CPU 10 die Adressdaten und die Operationsdaten, die in den Registern 31 gespeichert sind, nicht um.The protection section 30 includes a plurality of registers 31 and a management section (MANAGE) 32. The protection section 30 may be provided by a memory management unit. The registers 31 store address data indicating an address range of the memory section 20 to be accessed by the CPU 10, operation data indicating a specific operation to be performed by the CPU 10 with respect to the memory section 20, and protection data indicating whether protection of the memory section 20 is enabled or disabled. The CPU 10 can rewrite the data stored in the registers 31 including the address data, the operation data and the protection data. When the CPU 10 executes the software program based on the secure component, the CPU 10 rewrites the protection data stored in the registers 31 to disable the protection of the memory section 20. FIG. When the CPU 10 executes the software program based on the non-secure component, the CPU 10 rewrites the protection data stored in the registers 31 to activate the protection of the memory section 20. However, the CPU 10 does not rewrite the address data and the operation data stored in the registers 31. FIG.

Ferner ist eine Größe der Schutzdaten, die angeben, ob der Schutz des Speicherabschnitts 20 aktiviert ist oder nicht, kleiner als eine Summe einer Größe der Adressdaten und einer Größe der Operationsdaten. Nachfolgend wird die Größe der Schutzdaten ebenso als eine Schutzdatengröße bezeichnet, und die Summe der Größe der Adressdaten und der Größe der Operationsdaten wird als Operationsdatengröße bezeichnet. Da die Schutzdatengröße kleiner als die Operationsdatengröße ist, kann die CPU 10 die Schutzdaten einmal verarbeiten und kann die Operationsdaten und die Adressdaten mehrmals verarbeiten.Furthermore, a size of the protection data indicating whether or not the protection of the memory section 20 is activated is smaller than a sum of a size of the address data and a size of the operation data. Hereinafter, the size of the protection data is also referred to as a protection data size, and the sum of the size of the address data and the size of the operation data is referred to as an operation data size. Since the protection data size is smaller than the operation data size, the CPU 10 can process the protection data once and can process the operation data and the address data multiple times.

Der Verwaltungsabschnitt 32 schützt den Speicherabschnitt 20 basierend auf den Daten, die in den Registern 31 gespeichert sind. Wenn der Schutz des Speicherabschnitts 20 aktiviert ist, spezifiziert der Verwaltungsabschnitt 32 den Adressbereich des Speicherabschnitts 20, auf den durch die CPU 10 zuzugreifen ist, basierend auf den Adressdaten und bestimmt die spezifische Operation, die durch die CPU 10 auf den Speicherabschnitt 20 auszuüben ist, basierend auf den Operationsdaten. Wenn der Schutz des Speicherabschnitts 20 deaktiviert ist, spezifiziert der Verwaltungsabschnitt 32 den Adressbereich des Speicherabschnitts 20, auf den durch die CPU 10 zuzugreifen ist, nicht oder bestimmt nicht die spezifische Operation, die durch die CPU 10 auf den Speicherabschnitt 20 auszuüben ist. Wie vorstehend beschrieben ist, deaktiviert die CPU 10 den Schutz des Speicherabschnitts 20, wenn die CPU 10 das Softwareprogramm basierend auf der sicheren Komponente ausführt. Andererseits aktiviert die CPU 10 den Schutz des Speicherabschnitts 20, wenn die CPU 10 das Softwareprogramm basierend auf der nichtsicheren Komponente ausführt. Das heißt, wenn die CPU 10 das Softwareprogramm basierend auf der sicheren Komponente ausführt, wird der Speicherabschnitt 20 durch den Verwaltungsabschnitt 32 nicht geschützt. Wenn andererseits die CPU 10 das Softwareprogramm basierend auf der nichtsicheren Komponente ausführt, wird der Speicherabschnitt 20 durch den Verwaltungsabschnitt 32 geschützt.The management section 32 protects the storage section 20 based on the data stored in the registers 31 . When the protection of the memory section 20 is activated, the management section 32 specifies the address range of the memory section 20 to be accessed by the CPU 10 based on the address data and determines the specific operation to be performed by the CPU 10 on the memory section 20. based on the operation data. When the protection of the memory section 20 is disabled, the management section 32 does not specify the address range of the memory section 20 to be accessed by the CPU 10 or does not determine the specific operation to be performed by the CPU 10 on the memory section 20. As described above, the CPU 10 deactivates the protection of the memory section 20 when the CPU 10 executes the software program based on the secure component. On the other hand, the CPU 10 activates the protection of the memory section 20 when the CPU 10 executes the software program based on the non-secure component. That is, when the CPU 10 executes the software program based on the secure component, the storage section 20 is not protected by the management section 32 . On the other hand, when the CPU 10 executes the software program based on the non-secure component, the storage section 20 is protected by the management section 32 .

Nachfolgend wird der Schutz des Speicherabschnitts 20 mit Bezug auf 2 und 3 erläutert. 2 zeigt ein Vergleichsbeispiel des Schutzes des Speicherabschnitts 20, wenn ein Speicherschutz des Speicherabschnitts immer wirksam ist. In diesem Fall ist der Schutz des Speicherabschnitts 20 ungeachtet dessen, ob die Komponente, auf deren Basis die CPU 10 die arithmetische Verarbeitung ausführt, die sichere Komponente (SICHERE KOMPONENTE) oder die nichtsichere Komponente (NICHTSICHERE KOMPONENTE) ist, immer wirksam. 3 zeigt den Schutz des Speicherabschnitts 20 durch den Mikrocomputer 100 gemäß der vorliegenden Ausführungsform. In der in 3 dargestellten Konfiguration liest die CPU 10 die Komponente aus und aktiviert oder deaktiviert den Schutz des Speicherabschnitts 20 entsprechend der Komponente. Die Register 31 beinhalten eine Zugriffsregion, eine Operationsregion und eine Schutzregion. Die Zugriffsregion speichert die Adressdaten des Speicherabschnitts 20, auf die durch die CPU 10 zugegriffen werden darf. Die Operationsregion speichert die Operationsdaten der spezifischen Operation, die durch die CPU 10 auf den Speicherabschnitt 20 auszuüben ist. Die Schutzregion speichert die Schutzdaten, die angeben, ob der Schutz des Speicherabschnitts 20 aktiviert oder deaktiviert ist. In 2 und 3 gibt das Symbol O an, dass die spezifische Operation (Operationsmodus) der CPU 10 bezüglich des Speicherabschnitts 20 erlaubt ist, und das Symbol X gibt an, dass die spezifische Operation der CPU 10 bezüglich des Speicherabschnitts 20 verboten ist. In der vorliegenden Ausführungsform beinhaltet der Operationsmodus der CPU 10 bezüglich des Speicherabschnitts 20 Lesen, Schreiben und Ausführen.Next, the protection of the memory section 20 will be explained with reference to FIG 2 and 3 explained. 2 Fig. 12 shows a comparative example of protection of the memory section 20 when memory protection of the memory section is always effective. In this case, the protection of the storage section 20 is always effective regardless of whether the component based on which the CPU 10 performs the arithmetic processing is the secure component (SECURE COMPONENT) or the non-secure component (UNSECURE COMPONENT). 3 12 shows the protection of the memory section 20 by the microcomputer 100 according to the present embodiment. in the in 3 In the configuration shown, the CPU 10 reads the component and enables or disables the protection of the memory section 20 according to the component. The registers 31 include an access region, an operation region, and a protection region. The access region stores the address data of the memory section 20 which is allowed to be accessed by the CPU 10. The operation region stores the operation data of the specific operation to be performed by the CPU 10 on the storage section 20. FIG. The protection region stores the protection data indicating whether the protection of the storage section 20 is enabled or disabled. In 2 and 3 the symbol O indicates that the specific operation (operation mode) of the CPU 10 with respect to the memory section 20 is permitted, and the symbol X indicates that the specific operation of the CPU 10 with respect to the memory section 20 is prohibited. In the present embodiment, the operation mode of the CPU 10 with respect to the memory section 20 includes reading, writing, and executing.

Wie in 2 dargestellt ist, wenn die CPU 10 basierend auf der sicheren Komponente oder der nichtsicheren Komponente operiert, ist der Schutz des Speicherabschnitts 20 immer wirksam. Somit wird die Schutzregion der Register 31 durch die CPU 10 nicht umgeschrieben. Jedoch werden die Zugriffsregion und die Operationsregion der Register 31 durch die CPU 10 umgeschrieben.As in 2 As illustrated, when the CPU 10 operates based on the secure component or the non-secure component, the protection of the memory section 20 is always effective. Thus, the protection region of the registers 31 is not rewritten by the CPU 10. However, the access region and the operation region of the registers 31 are rewritten by the CPU 10.

Nachfolgend wird das Umschreiben der Zugriffsregion und der Operationsregion der Register 31 im Detail mit Bezug auf 2 erläutert. In der vorliegenden Ausführungsform beinhaltet der Speicherabschnitt 20 eine erste Speicherregion, die mit der Adresse A beginnt und mit der Adresse B endet, eine zweite Speicherregion, die mit der Adresse C beginnt und mit der Adresse D endet, eine dritte Speicherregion, die mit der Adresse B beginnt und mit der Adresse C endet, und eine vierte Speicherregion, die mit der Adresse D beginnt und mit der Adresse E endet. Wie in 2 dargestellt ist, wenn die CPU 10 basierend auf der sicheren Komponente operiert, werden der Adressbereich der ersten Speicherregion und der Adressbereich der zweiten Speicherregion in der Zugriffsregion der Register 31 als die Adressdaten gespeichert. Ferner speichern die Register 31 in der Operationsregion Operationsdaten entsprechend der ersten Speicherregion und Operationsdaten entsprechend der zweiten Speicherregion. Die Operationsdaten entsprechend der ersten Speicherregion geben an, dass, wenn die CPU 10 auf die erste Speicherregion zugreift, die CPU 10 Daten, die in der ersten Speicherregion gespeichert sind, lesen und ausführen darf, jedoch Daten nicht in die erste Speicherregion schreiben darf. Ferner geben die Operationsdaten entsprechend der zweiten Speicherregion an, dass, wenn die CPU 10 auf die zweite Speicherregion zugreift, die CPU 10 Daten, die in der zweiten Speicherregion gespeichert sind, lesen darf und Daten in die zweite Speicherregion schreiben darf, jedoch die in der zweiten Speicherregion gespeicherten Daten nicht ausführen darf.In the following, the rewriting of the access region and the operation region of the registers 31 will be explained in detail with reference to FIG 2 explained. In the present embodiment, the memory portion 20 includes a first memory region beginning with address A and ending with address B, a second memory region beginning with address C and ending with address D, a third memory region beginning with address B beginning and ending with address C, and a fourth memory region beginning with address D and ending with address E. As in 2 1, when the CPU 10 operates based on the secure component, the address area of the first memory region and the address area of the second memory region are stored in the access region of the registers 31 as the address data. Further, the registers 31 in the operation region store operation data corresponding to the first storage region and operation data corresponding to the second storage region. The operation data corresponding to the first memory region indicates that when the CPU 10 accesses the first memory region, the CPU 10 is allowed to read and execute data stored in the first memory region, but is not allowed to write data in the first memory region. Further, the operation data corresponding to the second memory region indicates that when the CPU 10 accesses the second memory region, the CPU 10 is allowed to read data stored in the second memory region and write data in the second memory region, but the data in the data stored in the second memory region must not execute.

In dem in 2 dargestellten Beispiel erlaubt der Verwaltungsabschnitt 32 der CPU 10, auf die erste Speicherregion und die zweite Speicherregion des Speicherabschnitts 20 zuzugreifen. Wenn die CPU 10 auf die erste Speicherregion zugreift, erlaubt der Verwaltungsabschnitt 32 der CPU 10, die in der ersten Speicherregion gespeicherten Daten zu lesen und auszuführen, verbietet jedoch der CPU 10, die Daten in die erste Speicherregion zu schreiben. Wenn die CPU 10 auf die zweite Speicherregion zugreift, erlaubt der Verwaltungsabschnitt 32 der CPU 10, die Daten in die zweite Speicherregion zu schreiben und die in der zweiten Speicherregion gespeicherten Daten zu lesen, verbietet jedoch der CPU 10, die in der zweiten Speicherregion gespeicherten Daten auszuführen. Wenn die CPU 10 auf die Speicherregion außer der ersten Speicherregion und der zweiten Speicherregion zugreift, verbietet der Verwaltungsabschnitt 32 der CPU 10, Daten, die in der Speicherregion gespeichert sind, auf die zugegriffen wird, zu lesen und auszuführen, und verbietet der CPU 10 ebenso, Daten in die Speicherregion, auf die zugegriffen wird, zu schreiben.in the in 2 In the example shown, the management section 32 allows the CPU 10 to access the first memory region and the second memory region of the memory section 20. When the CPU 10 accesses the first memory region, the management section 32 allows the CPU 10 to read and execute the data stored in the first memory region, but prohibits the CPU 10 from writing the data in the first memory region. When the CPU 10 accesses the second memory region, the management section 32 allows the CPU 10 to write the data in the second memory region and read the data stored in the second memory region, but prohibits the CPU 10 from reading the data stored in the second memory region to execute. When the CPU 10 accesses the memory region other than the first memory region and the second memory region, the management section 32 prohibits the CPU 10 from reading and executing data stored in the accessed memory region, and also prohibits the CPU 10 to write data to the accessed memory region.

Nachfolgend wird ein Fall beschrieben, in dem die Komponente, auf deren Basis die CPU 10 operiert, von der sicheren Komponente zur nichtsicheren Komponente umschaltet. In diesem Fall schreibt die CPU 10 die Daten um, die in den Registern 31 gespeichert sind. Insbesondere schreibt die CPU 10 die Adressdaten, die in der Zugriffsregion gespeichert sind, und die Operationsdaten, die in der Operationsregion gespeichert sind, um. Wie in 2 dargestellt ist, schreibt die CPU 10 die Adressdaten, die in der Zugriffsregion der Register 31 gespeichert sind, in den Adressbereich der dritten Speicherregion und den Adressbereich der vierten Speicherregion um. Ferner werden die Operationsdaten entsprechend der ersten Speicherregion in die Operationsdaten entsprechend der dritten Speicherregion umgeschrieben und die Operationsdaten entsprechend der zweiten Speicherregion werden in die Operationsdaten entsprechend der vierten Speicherregion umgeschrieben. Die Operationsdaten entsprechend der dritten Speicherregion geben an, dass, wenn die CPU 10 auf die dritte Speicherregion zugreift, die CPU 10 Daten, die in der dritten Speicherregion gespeichert sind, lesen und ausführen darf, jedoch Daten nicht in die dritte Speicherregion schreiben darf. Ferner geben die Operationsdaten entsprechend der vierten Speicherregion an, dass, wenn die CPU 10 auf die vierte Speicherregion zugreift, die CPU 10 Daten, die in der vierten Speicherregion gespeichert sind, lesen darf und Daten in die vierte Speicherregion schreiben darf, jedoch die in der vierten Speicherregion gespeicherten Daten nicht ausführen darf.A case where the component on which the CPU 10 operates is switched from the secure component to the non-secure component will be described below. In this case, the CPU 10 rewrites the data stored in the registers 31. Specifically, the CPU 10 rewrites the address data stored in the access region and the operation data stored in the operation region. As in 2 1, the CPU 10 rewrites the address data stored in the access region of the registers 31 into the address area of the third memory region and the address area of the fourth memory region. Further, the operational data corresponding to the first storage region is rewritten into the operational data corresponding to the third storage region, and the operational data corresponding to the second storage region is rewritten into the operational data corresponding to the fourth storage region. The operation data corresponding to the third memory region indicates that when the CPU 10 accesses the third memory region, the CPU 10 is allowed to read and execute data stored in the third memory region, but is not allowed to write data in the third memory region. Further, the operation data corresponding to the fourth memory region indicates that when the CPU 10 accesses the fourth memory region, the CPU 10 is allowed to read data stored in the fourth memory region and write data in the fourth memory region, but the data in the data stored in the fourth memory region may not execute.

In dem in 2 dargestellten Beispiel erlaubt der Verwaltungsabschnitt 32 der CPU 10, auf die dritte Speicherregion und die vierte Speicherregion des Speicherabschnitts 20 zuzugreifen. Wenn die CPU 10 auf die dritte Speicherregion zugreift, erlaubt der Verwaltungsabschnitt 32 der CPU 10, die in der dritten Speicherregion gespeicherten Daten zu lesen und auszuführen, verbietet jedoch der CPU 10, die Daten in die dritte Speicherregion zu schreiben. Wenn die CPU 10 auf die vierte Speicherregion zugreift, erlaubt der Verwaltungsabschnitt 32 der CPU 10, die in der vierten Speicherregion gespeicherten Daten zu lesen und die Daten in die vierte Speicherregion zu schreiben, verbietet jedoch der CPU 10, die in der vierten Speicherregion gespeicherten Daten auszuführen. Wenn die CPU 10 auf die Speicherregion außer der dritten Speicherregion und der vierten Speicherregion zugreift, verbietet der Verwaltungsabschnitt 32 der CPU 10, die Daten, die in der Speicherregion gespeichert sind, auf die zugegriffen wird, zu lesen und auszuführen, und verbietet der CPU 10 ebenso, Daten in die Speicherregion, auf die zugegriffen wird, zu schreiben.in the in 2 In the example shown, the management section 32 allows the CPU 10 to access the third memory region and the fourth memory region of the memory section 20. When the CPU 10 accesses the third memory region, the management section 32 allows the CPU 10 to read and execute the data stored in the third memory region, but prohibits the CPU 10 from writing the data in the third memory region. When the CPU 10 accesses the fourth memory region, the management section 32 allows the CPU 10 to read the data stored in the fourth memory region and write the data to the fourth memory region, but prohibits the CPU 10 from reading the data stored in the fourth memory region to execute. When the CPU 10 accesses the memory region other than the third memory region and the fourth memory region, the management section 32 prohibits the CPU 10 from reading and executing the data stored in the accessed memory region, and prohibits the CPU 10 also to write data into the memory region being accessed.

Nachfolgend wird ein Fall beschrieben, in dem die Komponente, auf deren Basis die CPU 10 operiert, von der nichtsicheren Komponente zur sicheren Komponente wechselt. In diesem Fall schreibt die CPU 10 die Daten, die in den Registern 31 gespeichert sind, um. Insbesondere schreibt die CPU 10 die Adressdaten, die in der Zugriffsregion gespeichert sind, und die Operationsdaten, die in der Operationsregion gespeichert sind, um. Insbesondere schreibt die CPU 10 die Adressdaten, die in der Zugriffsregion der Register 31 gespeichert sind, in den Adressbereich der ersten Speicherregion und den Adressbereich der zweiten Speicherregion des Speicherabschnitts 20 um. Ferner werden die Operationsdaten entsprechend der dritten Speicherregion in die Operationsdaten entsprechend der ersten Speicherregion umgeschrieben und die Operationsdaten entsprechend der vierten Speicherregion werden in die Operationsdaten entsprechend der zweiten Speicherregion umgeschrieben. Die Operationsdaten entsprechend der ersten Speicherregion geben an, dass, wenn die CPU 10 auf die erste Speicherregion zugreift, die CPU 10 die in der ersten Speicherregion gespeicherten Daten lesen und ausführen darf, jedoch die Daten nicht in die erste Speicherregion schreiben darf. Ferner geben die Operationsdaten entsprechend der zweiten Speicherregion an, dass, wenn die CPU 10 auf die zweite Speicherregion zugreift, die CPU 10 die in der zweiten Speicherregion gespeicherten Daten lesen darf und die Daten in die zweite Speicherregion schreiben darf, jedoch die in der zweiten Speicherregion gespeicherten Daten nicht ausführen darf.A case where the component based on which the CPU 10 operates changes from the non-secure component to the secure component will be described below. In this case, the CPU 10 rewrites the data stored in the registers 31. Specifically, the CPU 10 rewrites the address data stored in the access region and the operation data stored in the operation region. Specifically, the CPU 10 rewrites the address data stored in the access region of the registers 31 into the address area of the first memory region and the address area of the second memory region of the memory section 20 . Further, the operational data corresponding to the third storage region is rewritten into the operational data corresponding to the first storage region, and the operational data corresponding to the fourth storage region is rewritten into the operational data corresponding to the second storage region. The operation data corresponding to the first memory region indicates that when the CPU 10 accesses the first memory region, the CPU 10 is allowed to read and execute the data stored in the first memory region, but is not allowed to write the data in the first memory region. Furthermore, the operation data corresponding to the second memory region indicates that when the CPU 10 accesses the second memory region, the CPU 10 is allowed to read the data stored in the second memory region and write the data in the second memory region, but the data in the second memory region stored data may not execute.

In dem in 2 dargestellten Beispiel erlaubt der Verwaltungsabschnitt 32 der CPU 10, auf die erste Speicherregion und die zweite Speicherregion des Speicherabschnitts 20 zuzugreifen. Wenn die CPU 10 auf die erste Speicherregion zugreift, erlaubt der Verwaltungsabschnitt 32 der CPU 10, die in der ersten Speicherregion gespeicherten Daten zu lesen und auszuführen, verbietet jedoch der CPU 10, die Daten in die erste Speicherregion zu schreiben. Wenn die CPU 10 auf die zweite Speicherregion zugreift, erlaubt der Verwaltungsabschnitt 32 der CPU 10, die in der zweiten Speicherregion gespeicherten Daten zu lesen und die Daten in die zweite Speicherregion zu schreiben, verbietet jedoch der CPU 10, die in der zweiten Speicherregion gespeicherten Daten auszuführen. Wenn die CPU 10 auf die Speicherregion außer der ersten Speicherregion und der zweiten Speicherregion zugreift, verbietet der Verwaltungsabschnitt 32 der CPU 10, die Daten, die in der Speicherregion gespeichert sind, auf die zugegriffen wird, zu lesen und auszuführen, und verbietet der CPU 10 ebenso, die Daten in die Speicherregion, auf die zugegriffen wird, zu schreiben.in the in 2 In the example shown, the management section 32 allows the CPU 10 to access the first memory region and the second memory region of the memory section 20. When the CPU 10 accesses the first memory region, the management section 32 allows the CPU 10 to read and execute the data stored in the first memory region, but prohibits the CPU 10 from writing the data in the first memory region. When the CPU 10 accesses the second memory region, the management section 32 allows the CPU 10 to read the data stored in the second memory region and write the data in the second memory region, but prohibits the CPU 10 from reading the data stored in the second memory region to execute. When the CPU 10 accesses the memory region other than the first memory region and the second memory region, the management section 32 prohibits the CPU 10 from reading and executing the data stored in the accessed memory region, and prohibits the CPU 10 also to write the data into the memory region being accessed.

Nachfolgend wird der Schutz des Speicherabschnitts 20 durch den Mikrocomputer 100 gemäß der vorliegenden Ausführungsform mit Bezug auf 3 erläutert. Wenn die CPU 10 das Softwareprogramm basierend auf der sicheren Komponente ausführt, deaktiviert die CPU 10 den Schutz des Speicherabschnitts 20 durch Umschreiben der Schutzdaten, die in der Schutzregion der Register 31 gespeichert sind. Wenn andererseits die CPU 10 das Softwareprogramm basierend auf der nichtsicheren Komponente ausführt, aktiviert die CPU 10 den Schutz des Speicherabschnitts 20 durch Umschreiben der Schutzdaten, die in der Schutzregion der Register 31 gespeichert sind. Somit schreibt die CPU 10, wenn die Komponente, auf deren Basis die CPU 10 operiert, von der sicheren Komponente zur nichtsicheren Komponente wechselt oder von der nichtsicheren Komponente zur sicheren Komponente wechselt, nur die Schutzdaten, die in der Schutzregion der Register 31 gespeichert sind, um. Das heißt, wenn die Komponente zwischen der sicheren Komponente und der nichtsicheren Komponente wechselt, schreibt die CPU 10 die in der Zugriffsregion der Register 31 gespeicherten Adressdaten und die in der Schutzregion der Register 31 gespeicherten Operationsdaten nicht um.Next, the protection of the memory section 20 by the microcomputer 100 according to the present embodiment will be explained with reference to FIG 3 explained. When the CPU 10 executes the software program based on the secure component, the CPU 10 deactivates the protection of the memory section 20 by rewriting the protection data stored in the protection region of the registers 31. On the other hand, when the CPU 10 executes the software program based on the non-secure component, the CPU 10 activates the protection of the memory section 20 by rewriting the protection data stored in the protection region of the registers 31. Thus, when the component on the basis of which the CPU 10 operates changes from the secure component to the non-secure component or changes from the non-secure component to the secure component, the CPU 10 only writes the protection data stored in the protection region of the registers 31. around. That is, when the component changes between the secure component and the non-secure component, the CPU 10 does not rewrite the address data stored in the access region of the registers 31 and the operation data stored in the protect region of the registers 31.

Wie in 3 dargestellt ist, wenn die CPU 10 basierend auf der sicheren Komponente oder der nichtsicheren Komponente operiert, werden die Adressdaten, die den Adressbereich der dritten Speicherregion angeben, und die Adressdaten, die den Adressbereich der vierten Speicherregion angeben, in der Zugriffsregion ohne Umschreiben gespeichert. Ferner werden die Operationsdaten entsprechend der dritten Speicherregion und die Operationsdaten entsprechend der vierten Speicherregion in der Operationsregion der Register 31 gespeichert. Die Operationsdaten entsprechend der dritten Speicherregion geben an, dass, wenn die CPU 10 auf die dritte Speicherregion zugreift, die CPU 10 die in der dritten Speicherregion gespeicherten Daten lesen und ausführen darf, jedoch die Daten nicht in die dritte Speicherregion schreiben darf. Die Operationsdaten entsprechend der vierten Speicherregion geben an, dass, wenn die CPU 10 auf die vierte Speicherregion zugreift, die CPU 10 die in der vierten Speicherregion gespeicherten Daten lesen darf und die Daten in die vierte Speicherregion schreiben darf, jedoch die in der vierten Speicherregion gespeicherten Daten nicht ausführen darf.As in 3 As illustrated, when the CPU 10 operates based on the secure component or the non-secure component, the address data indicative of the address space of the third memory region and the address data indicative of the address space of the fourth memory region are stored in the access region without rewriting. Further, the operational data corresponding to the third storage region and the operational data corresponding to the fourth storage region are stored in the operational region of the registers 31 . The operation data corresponding to the third memory region indicates that when the CPU 10 accesses the third memory region, the CPU 10 is allowed to read and execute the data stored in the third memory region, but is not allowed to write the data in the third memory region. The operation data corresponding to the fourth memory region indicates that when the CPU 10 accesses the fourth memory cher region, the CPU 10 is allowed to read the data stored in the fourth memory region and write the data in the fourth memory region, but is not allowed to execute the data stored in the fourth memory region.

Wenn die CPU 10 basierend auf der sicheren Komponente operiert, deaktiviert die CPU 10 den Schutz des Speicherabschnitts 20 durch Umschreiben der Schutzdaten, und der Speicherabschnitt 20 wird durch den Verwaltungsabschnitt 32 nicht geschützt. Wie vorstehend beschrieben ist, unterscheidet sich die sichere Komponente von der nichtsicheren Komponente und erfüllt den Sicherheitsstandard. Demnach ist es, wenn die CPU 10 basierend auf der sicheren Komponente operiert, sogar wenn der Adressbereich des Speicherabschnitts 20, auf den durch die CPU 10 zuzugreifen ist, und die spezifische Operation, die durch die CPU 10 auszuüben ist, nicht durch den Verwaltungsabschnitt 32 spezifiziert werden, für die CPU 10 weniger wahrscheinlich, eine Fehlfunktion zu verursachen.When the CPU 10 operates based on the secure component, the CPU 10 deactivates the protection of the storage section 20 by rewriting the protection data, and the storage section 20 is not protected by the management section 32 . As described above, the secure component is different from the non-secure component and satisfies the security standard. Accordingly, when the CPU 10 operates based on the secure component, even if the address range of the memory section 20 to be accessed by the CPU 10 and the specific operation to be performed by the CPU 10 are not managed by the management section 32 are specified, the CPU 10 is less likely to cause a malfunction.

Wenn die CPU 10 basierend auf der nichtsicheren Komponente operiert, aktiviert die CPU 10 den Schutz des Speicherabschnitts 20 durch Umschreiben der Schutzdaten, und der Speicherabschnitt 20 wird durch den Verwaltungsabschnitt 32 geschützt. In diesem Fall erlaubt der Verwaltungsabschnitt 32 der CPU 10, nur auf die dritte Speicherregion und die vierte Speicherregion des Speicherabschnitts 20 zuzugreifen. Wenn die CPU 10 auf die dritte Speicherregion zugreift, erlaubt der Verwaltungsabschnitt 32 der CPU 10, die in der dritten Speicherregion gespeicherten Daten zu lesen und auszuführen, verbietet jedoch der CPU 10, die Daten in die dritte Speicherregion zu schreiben. Wenn die CPU 10 auf die vierte Speicherregion zugreift, erlaubt der Verwaltungsabschnitt 32 der CPU 10, die in der vierten Speicherregion gespeicherten Daten zu lesen und die Daten in die vierte Speicherregion zu schreiben, verbietet jedoch der CPU 10, die in der vierten Speicherregion gespeicherten Daten auszuführen. Wenn die CPU 10 auf die Speicherregion außer der dritten Speicherregion und der vierten Speicherregion zugreift, verbietet der Verwaltungsabschnitt 32 der CPU 10, die Daten, die in der Speicherregion gespeichert sind, auf die zugegriffen wird, zu lesen und auszuführen, und verbietet der CPU 10 ebenso, die Daten in die Speicherregion, auf die zugegriffen wird, zu schreiben.When the CPU 10 operates based on the non-secure component, the CPU 10 activates the protection of the storage section 20 by rewriting the protection data, and the storage section 20 is protected by the management section 32 . In this case, the management section 32 allows the CPU 10 to access only the third memory region and the fourth memory region of the memory section 20. When the CPU 10 accesses the third memory region, the management section 32 allows the CPU 10 to read and execute the data stored in the third memory region, but prohibits the CPU 10 from writing the data in the third memory region. When the CPU 10 accesses the fourth memory region, the management section 32 allows the CPU 10 to read the data stored in the fourth memory region and write the data to the fourth memory region, but prohibits the CPU 10 from reading the data stored in the fourth memory region to execute. When the CPU 10 accesses the memory region other than the third memory region and the fourth memory region, the management section 32 prohibits the CPU 10 from reading and executing the data stored in the accessed memory region, and prohibits the CPU 10 also to write the data into the memory region being accessed.

Nachfolgend werden Vorteile erläutert, die durch den Mikrocomputer 100 gemäß der vorliegenden Ausführungsform bereitgestellt werden. In der vorliegenden Ausführungsform wird der Schutz des Speicherabschnitts 20 durch Umschreiben der Schutzdaten aktiviert oder deaktiviert, wenn die Komponente, auf deren Basis die CPU 10 operiert, zwischen der sicheren Komponente und der nichtsicheren Komponente wechselt. Insbesondere, wie in 3 dargestellt ist, wenn die CPU 10 eine gegenwärtige Komponente, die eine der Komponenten ist, die gegenwärtig durch die CPU 10 ausgeführt werden, von der nichtsicheren Komponente zur sicheren Komponente wechselt, schreibt die CPU 10 die Schutzdaten, die in den Registern 31 gespeichert sind, um, um den Schutz des Speicherabschnitts 20 zu deaktivieren. Wenn die CPU 10 die gegenwärtige Komponente von der sicheren Komponente zur nichtsicheren Komponente wechselt, schreibt die CPU 10 die Schutzdaten, die in den Registern 31 gespeichert sind, um, um den Schutz des Speicherabschnitts 20 zu aktivieren. Jedoch ist die Größe der Schutzdaten, die den Schutz des Speicherabschnitts 20 aktivieren oder deaktivieren, kleiner als die Summe der Größe der Adressdaten und der Operationsdaten. Die Adressdaten geben den Adressbereich des Speicherabschnitts 20 an, auf den durch die CPU 10 zugegriffen werden darf, und die Operationsdaten geben die spezifische Operation an, die durch die CPU 10 auf den Speicherabschnitt ausgeübt wird. Mit dieser Konfiguration wird, wenn die CPU 10 die gegenwärtige Komponente zwischen sicherer Komponente und nichtsicherer Komponente wechselt, Overhead in dem Mikrocomputer 100 verglichen mit einem Fall, in dem die Adressdaten und die Operationsdaten wie im Vergleichsbeispiel, das in 2 dargestellt ist, umgeschrieben werden, reduziert.The following explains advantages provided by the microcomputer 100 according to the present embodiment. In the present embodiment, the protection of the memory section 20 is enabled or disabled by rewriting the protection data when the component on which the CPU 10 operates changes between the secure component and the non-secure component. In particular, as in 3 shown, when the CPU 10 changes a current component, which is one of the components currently being executed by the CPU 10, from the non-secure component to the secure component, the CPU 10 writes the protection data stored in the registers 31, to deactivate the protection of the memory section 20. When the CPU 10 changes the current component from the secure component to the non-secure component, the CPU 10 rewrites the protection data stored in the registers 31 to activate the protection of the memory section 20. FIG. However, the size of the protection data that enables or disables the protection of the memory section 20 is smaller than the sum of the size of the address data and the operation data. The address data indicates the address range of the memory section 20 that is permitted to be accessed by the CPU 10, and the operation data indicates the specific operation performed by the CPU 10 on the memory section. With this configuration, when the CPU 10 changes the current component between secure component and non-secure component, overhead in the microcomputer 100 is reduced compared with a case where the address data and the operation data are as in the comparative example shown in FIG 2 is shown, rewritten, reduced.

In der vorliegenden Ausführungsform ist die Anzahl der sicheren Komponenten nicht auf eine vorbestimmte Anzahl begrenzt. Die Anzahl der sicheren Komponenten kann eine ungerade Anzahl oder eine gerade Anzahl sein. Nachfolgend wird eine Konfiguration erläutert, in der das Softwareprogramm mehrere sichere Komponenten beinhaltet und die sicheren Komponenten zueinander unterschiedliche Sicherheitsstandards aufweisen. Wenn die CPU 10 das Softwareprogramm basierend auf der sicheren Komponente (ebenso als eine zweite sichere Komponente bezeichnet) operiert, deren Sicherheitsebene gleich oder höher als eine vorbestimmte Sicherheitsebene ist, kann der Schutz des Speicherabschnitts 20 unwirksam gesetzt werden. Wenn die CPU 10 das Softwareprogramm basierend auf der sicheren Komponente (ebenso als eine erste sichere Komponente bezeichnet) operiert, deren Sicherheitsebene niedriger als die vorbestimmte Sicherheitsebene ist, kann der Schutz des Speicherabschnitts 20 wirksam gesetzt werden. Das heißt, wenn die CPU 10 die gegenwärtige Komponente von der ersten sicheren Komponente zur zweiten sicheren Komponente umschaltet, schreibt die CPU 10 die Schutzdaten, die in den Registern 31 gespeichert sind, um, um den Schutz des Speicherabschnitts 20 zu deaktivieren. Wenn die CPU 10 die gegenwärtige Komponente von der zweiten sicheren Komponente zur ersten sicheren Komponente umschaltet, schreibt die CPU 10 die Schutzdaten, die in den Registern gespeichert sind, um, um den Schutz des Speicherabschnitts 20 zu aktivieren. Mit dieser Konfiguration kann, wenn die CPU 10 basierend auf der sicheren Komponente operiert, die die niedrigere Sicherheitsebene als die vorbestimmte Ebene aufweist, die Fehlfunktion der CPU 10 unterbunden werden.In the present embodiment, the number of the secure components is not limited to a predetermined number. The number of safe components can be an odd number or an even number. A configuration is explained below in which the software program includes a plurality of secure components and the secure components have different security standards from one another. When the CPU 10 operates the software program based on the secure component (also referred to as a second secure component) whose security level is equal to or higher than a predetermined security level, the protection of the storage portion 20 may be disabled. When the CPU 10 operates the software program based on the secure component (also referred to as a first secure component) whose security level is lower than the predetermined security level, the protection of the storage portion 20 can be enabled. That is, when the CPU 10 switches the current component from the first secure component to the second secure component, the CPU 10 rewrites the protection data stored in the registers 31 to disable the protection of the memory section 20. FIG. When the CPU 10 changes the current component from the second secure component to the first secure component switches, the CPU 10 rewrites the protection data stored in the registers to activate the protection of the memory section 20. With this configuration, when the CPU 10 operates based on the secure component having the lower security level than the predetermined level, the malfunction of the CPU 10 can be suppressed.

In der vorliegenden Ausführungsform erlaubt oder verbietet der Schutzabschnitt 30 der CPU 10 basierend auf dem Zugriffstyp, auf den Speicherabschnitt 20 zuzugreifen. In einer herkömmlichen Konfiguration wird der Schutzabschnitt für gewöhnlich in einen Anweisungsschutzabschnitt, der Anweisungen schützt, die in dem Speicherabschnitt gespeichert sind, und einen Datenschutzabschnitt unterteilt, der Daten schützt, die in dem Speicherabschnitt gespeichert sind. In der vorliegenden Ausführungsform, da der Schutzabschnitt 30 der CPU 10 basierend auf dem Zugriffstyp erlaubt oder verbietet, auf den Speicherabschnitt 20 zuzugreifen, muss der Schutzabschnitt 30 nicht in den Anweisungsschutzabschnitt und den Datenschutzabschnitt unterteilt werden,. Ferner kann in einem Fall, in dem der Lesezugriff erlaubt werden muss und der Schreibzugriff verboten werden muss, der Schutzabschnitt 30 gemäß der vorliegenden Ausführungsform den Lesezugriff erlauben und den Schreibzugriff verbieten, indem er den Zugriffstyp jedes Zugriffs bestimmt. Somit wird die Flexibilität beim Schutz des Speicherabschnitts 20 verbessert.In the present embodiment, the protection section 30 allows or prohibits the CPU 10 from accessing the memory section 20 based on the access type. In a conventional configuration, the protection section is usually divided into an instruction protection section that protects instructions stored in the storage section and a data protection section that protects data stored in the storage section. In the present embodiment, since the protection section 30 allows or prohibits the CPU 10 to access the memory section 20 based on the access type, the protection section 30 need not be divided into the instruction protection section and the data protection section. Further, in a case where read access must be permitted and write access must be prohibited, the protection section 30 according to the present embodiment can permit read access and prohibit write access by determining the access type of each access. Thus, flexibility in protecting the memory section 20 is enhanced.

(Zweite Ausführungsform)(Second embodiment)

Nachfolgend wird eine zweite Ausführungsform der vorliegenden Offenbarung mit Bezug auf 4 bis 7 erläutert. In der vorliegenden Ausführungsform wird eine Verarbeitungsvorrichtung auf einen Mikrocomputer 200 angewandt. Der Mikrocomputer 200 führt ein Softwareprogramm einschließlich mehrerer unterschiedlicher Komponenten aus. Ferner beinhalten die mehreren Komponenten mindestens eine sichere Komponente und mindestens eine nichtsichere Komponente.A second embodiment of the present disclosure is described below with reference to FIG 4 until 7 explained. In the present embodiment, a processing device is applied to a microcomputer 200. FIG. The microcomputer 200 executes a software program including several different components. Further, the multiple components include at least one secure component and at least one non-secure component.

Wie vorstehend beschrieben ist, erfüllt die sichere Komponente den vorbestimmten Sicherheitsstandard. Das heißt, die sichere Komponente ist basierend auf einer zertifizierten Verarbeitung entworfen. Somit kann die sichere Komponente ebenso als eine Komponente bezeichnet werden, die basierend auf der zertifizierten Verarbeitung entworfen ist. Der Sicherheitsstandard kann sich auf das ASIL beziehen, das durch ISO 26262 definiert ist. Die nichtsichere Komponente muss den vorbestimmten Sicherheitsstandard nicht erfüllen. In der vorliegenden Ausführungsform betrifft die nichtsichere Komponente eine Komponente, die den vorbestimmten Sicherheitsstandard nicht erfüllt.As described above, the secure component meets the predetermined security standard. That is, the safe component is designed based on certified processing. Thus, the secure component can also be referred to as a component designed based on the certified processing. The safety standard may refer to the ASIL defined by ISO 26262. The non-secure component need not meet the predetermined security standard. In the present embodiment, the non-secure component refers to a component that does not meet the predetermined security standard.

Der Mikrocomputer 200 kann auf eine elektronische Steuervorrichtung angewandt werden, die in einem Fahrzeug angebrachte Einrichtungen elektronisch steuert. Die elektronische Steuervorrichtung kann Steuerziele wie beispielsweise Antriebsstrangeinrichtungen einschließlich einer Motorübersetzung und einer Bremse, Fahrzeugkarosserieeinrichtungen einschließlich einer Klimaanlage, eines Sitzes und einer Türverriegelung, Informationseinrichtungen einschließlich einer Navigationseinrichtung und einer elektronischen Mautsammel- (electronic toll collection, ETC) -Einrichtung und Sicherheitseinrichtungen einschließlich eines Airbags beinhalten.The microcomputer 200 can be applied to an electronic control device that electronically controls vehicle-mounted devices. The electronic control device may include control targets such as power train devices including a motor transmission and a brake, vehicle body devices including an air conditioner, a seat and a door lock, information devices including a navigation device and an electronic toll collection (electronic toll collection, ETC) device, and safety devices including an airbag .

Wie in 4 dargestellt ist, beinhaltet der Mikrocomputer 200 hauptsächlich einen Arithmetikabschnitt (ARITHMETIK) 210, einen Speicherabschnitt (SPEICHERN) 220 und einen Schutzabschnitt (SCHÜTZEN) 230.As in 4 As shown, the microcomputer 200 mainly includes an arithmetic section (ARITHMETIC) 210, a storage section (STORE) 220, and a protection section (PROTECT) 230.

Der Arithmetikabschnitt 210 entspricht einer zentralen Verarbeitungseinheit (central processing unit, CPU) und führt eine arithmetische Verarbeitung basierend auf den Komponenten des Softwareprogramms aus. Der Arithmetikabschnitt 210 führt die arithmetische Verarbeitung basierend auf den im Speicherabschnitt 220 gespeicherten Daten aus. Insbesondere greift der Arithmetikabschnitt 210 auf den Speicherabschnitt 220 zu und führt die arithmetische Verarbeitung basierend auf den Daten aus, die in der Adresse des Speicherabschnitts 220, auf die zugegriffen wird, gespeichert sind. Ferner beinhaltet der Arithmetikabschnitt 210 einen Programmzähler (PROGRAMMZÄHLER) 211. Der Arithmetikabschnitt 210 liest Befehle von einer vorbestimmten Adresse des Speicherabschnitts 220 basierend auf einem Wert aus, der in dem Programmzähler 211 gespeichert ist, und führt die arithmetische Verarbeitung aus. Das heißt, der Arithmetikabschnitt 210 führt die arithmetische Verarbeitung basierend auf dem Wert des Programmzählers 211 aus.The arithmetic section 210 corresponds to a central processing unit (CPU) and performs arithmetic processing based on the components of the software program. The arithmetic section 210 performs arithmetic processing based on the data stored in the storage section 220 . Specifically, the arithmetic section 210 accesses the memory section 220 and performs arithmetic processing based on the data stored in the address of the memory section 220 being accessed. Further, the arithmetic section 210 includes a program counter (PROGRAM COUNTER) 211. The arithmetic section 210 reads instructions from a predetermined address of the memory section 220 based on a value stored in the program counter 211 and performs arithmetic processing. That is, the arithmetic section 210 performs arithmetic processing based on the value of the program counter 211 .

Wie in 5 dargestellt ist, beinhaltet der Speicherabschnitt 220 einen Nur-Lese-Speicher (read-only memory, ROM), einen Speicher mit wahlfreiem Zugriff (random access memory, RAM) und ein Register. Der Speicherabschnitt 220 verwaltet kollektiv den ROM, den RAM und das Register als einen Speicherraum, indem er dem RAM, dem ROM und dem Register unterschiedliche Adressen zuordnet. Eine Adresse des Speicherabschnitts 220 erhöht sich in einer Richtung eines Pfeils AD. Der Speicherabschnitt 220 speichert Daten, auf deren Basis der Arithmetikabschnitt 210 die arithmetische Verarbeitung ausführt, und temporäre Daten, die durch die arithmetische Verarbeitung erzeugt werden. Insbesondere speichert der Speicherabschnitt 220 das durch den Arithmetikabschnitt 210 auszuführende Softwareprogramm. Insbesondere wird ein Ausführungsprogramm entsprechend jeder Komponente in einem vorbestimmten Adressbereich des Speicherabschnitts 220 gespeichert.As in 5 As illustrated, memory section 220 includes read-only memory (ROM), random access memory (RAM), and a register. The storage section 220 collectively manages the ROM, RAM, and register as one storage space by assigning different addresses to the RAM, ROM, and register. An address of the memory section 220 increases in a direction of an arrow AD. The storage section 220 stores data based on which the arithmetic section 210 performs arithmetic processing and temporary data generated by the arithmetic processing. Specifically, the storage section 220 stores the software program to be executed by the arithmetic section 210 . In particular, a An execution program corresponding to each component is stored in a predetermined address area of the storage section 220.

Der Schutzabschnitt 230 entspricht einer Speicherverwaltungseinheit (memory management unit, MMU). Der Schutzabschnitt 230 schützt den Speicherabschnitt 220, indem er einen Zugriff des Arithmetikabschnitts 210 auf die im Speicherabschnitt 220 gespeicherten Daten erlaubt oder verbietet. Insbesondere erlaubt oder verbietet der Schutzabschnitt 230 dem Arithmetikabschnitt 210 basierend auf einem Zugriffstyp, auf den Speicherabschnitt 220 zuzugreifen. In der vorliegenden Ausführungsform weist der Zugriff des Arithmetikabschnitts 210 auf den Speicherabschnitt 220 drei Zugriffstypen einschließlich eines Lesezugriffs zum Lesen der Daten, die in dem Speicherabschnitt 220 gespeichert sind, eines Schreibzugriffs zum Schreiben von Daten in den Speicherabschnitt 220 und eines Ausführungszugriffs zum Ausführen von Anweisungsdaten, die im Speicherabschnitt 200 gespeichert sind, auf. Der Schutzabschnitt 230 beinhaltet einen Bankumschaltabschnitt (BANK UMSCHALTEN) 231, eine Adresstabelle (ADRESSTABELLE) 232 und einen Registerbankabschnitt (REGISTERBANK) 233. Der Registerbankabschnitt 233 beinhaltet ein Banknummernregister (BANKNUMMERNREGISTER) 233a und eine erste (ERSTE BANK) 2331 bis N-te Bank (N-TE BANK) 233n.The protection section 230 corresponds to a memory management unit (MMU). The protection section 230 protects the storage section 220 by allowing or prohibiting access of the arithmetic section 210 to the data stored in the storage section 220 . Specifically, the protection section 230 allows or prohibits the arithmetic section 210 from accessing the memory section 220 based on an access type. In the present embodiment, the access of the arithmetic section 210 to the memory section 220 has three access types including a read access for reading the data stored in the memory section 220, a write access for writing data into the memory section 220, and an execution access for executing instruction data. stored in the storage section 200. The protection section 230 includes a bank switching section (SWITCH BANK) 231, an address table (ADDRESS TABLE) 232 and a register bank section (REGISTER BANK) 233. The register bank section 233 includes a bank number register (BANK NUMBER REGISTER) 233a and a first (FIRST BANK) 2331 to Nth bank ( NTH BANK) 233n.

Der Bankumschaltabschnitt 231 schaltet jede Bank 2331 bis 233n zwischen einem deaktivierten Zustand und einem aktivierten Zustand um. Insbesondere schreibt der Bankumschaltabschnitt 231 in das Banknummernregister 233a eine Nummer, die einer Zielbank zugeordnet ist, die vom deaktivierten Zustand in den aktivierten Zustand zu aktivieren ist. Mit dieser Konfiguration schaltet der Bankumschaltabschnitt 231 jede Bank 2331 bis 233n zwischen dem deaktivierten Zustand und dem aktivierten Zustand um. Das heißt, der Bankumschaltabschnitt 231 schreibt die Nummer der Zielbank in das Banknummernregister 233a, um die Zielbank vom deaktivierten Zustand in den aktivierten Zustand umzuschalten. Wie vorstehend beschrieben ist, schreibt der Bankumschaltabschnitt 231 die Nummer der Zielbank in das Banknummernregister 233a und das Banknummernregister 233a speichert (hält) die Nummer der Zielbank, die zu aktivieren ist und durch den Bankumschaltabschnitt 231 aktiviert wird.The bank switching section 231 switches each bank 2331 to 233n between a disabled state and an enabled state. Specifically, the bank switching section 231 writes in the bank number register 233a a number assigned to a target bank to be activated from the deactivated state to the activated state. With this configuration, the bank switching section 231 switches each bank 2331 to 233n between the disabled state and the enabled state. That is, the bank switching section 231 writes the number of the target bank in the bank number register 233a to switch the target bank from the disabled state to the enabled state. As described above, the bank switching section 231 writes the number of the target bank in the bank number register 233a, and the bank number register 233a stores (holds) the number of the target bank to be activated and activated by the bank switching section 231.

Die Adresstabelle 232 speichert die mehreren Bänke 2331 bis 233n, die mit entsprechenden Adressbereichen des Speicherabschnitts 220 verknüpft sind. Beispielsweise wird, wie in 4 dargestellt ist, die erste Bank 2331 verknüpft mit dem Adressbereich zwischen der Adresse A und der Adresse B des Speicherabschnitts 220 gespeichert. Die zweite Bank 2332 wird verknüpft mit dem Adressbereich zwischen der Adresse B und der Adresse C des Speicherabschnitts 220 gespeichert. Die N-te Bank 233n wird verknüpft mit dem Adressbereich zwischen einer Adresse Y und einer Adresse Z des Speicherabschnitts 220 gespeichert.The address table 232 stores the plurality of banks 2331 to 233n associated with corresponding address ranges of the memory section 220. For example, as in 4 As shown, the first bank 2331 associated with the address range between address A and address B of the memory section 220 is stored. The second bank 2332 is stored associated with the address range between address B and address C of the memory section 220 . The Nth bank 233n is stored associated with the address range between a Y address and a Z address of the memory section 220 .

Ferner wird die Adresstabelle 232 zum Bestimmen einer Bank entsprechend der durch den Arithmetikabschnitt 210 auszuführenden Komponente verwendet. Ferner kann eine Komponententabelle anstelle der Adresstabelle 232 verwendet werden. Die Komponententabelle kann Adressbereiche der Bänke 2331 bis 233n verknüpft mit entsprechenden Komponenten speichern. Beispielsweise kann die Komponententabelle, wie in 7 dargestellt ist, die sichere Komponente, die mit der ersten Bank 2331 verknüpft ist, und die nichtsichere Komponente, die mit der zweiten Bank 2332 verknüpft ist, speichern. Nachfolgend werden die Adresstabelle und die Komponententabelle als eine Korrelationstabelle bezeichnet.Further, the address table 232 is used to designate a bank corresponding to the component to be executed by the arithmetic section 210. FIG. Also, a component table may be used in place of the address table 232. The component table can store address ranges of banks 2331 to 233n associated with corresponding components. For example, the component table, as in 7 shown store the secure component associated with the first bank 2331 and the non-secure component associated with the second bank 2332 . Hereinafter, the address table and the component table are referred to as a correlation table.

Jede Bank 2331 bis 333n beinhaltet mehrere nicht dargestellte Register und speichert Adressdaten und Schutzdaten. Die Adressdaten geben den Adressbereich des Speicherabschnitts 220 an, auf den durch den Arithmetikabschnitt 210 zuzugreifen ist. Die Schutzdaten beinhalten Speicherschutzinformationen, die angeben, ob eine spezifische Operation durch den Arithmetikabschnitt 210 auf den Speicherabschnitt ausgeführt werden darf. Das heißt, jede Bank 2331 bis 233n einschließlich mehrerer Register entspricht einer Komponente. Die Speicherschutzinformationen jeder Komponente werden in den mehreren Registern einer Bank 2331 bis 233n gespeichert. Ferner werden die Bänke 2331 bis 233n entsprechend den Komponenten des Softwareprogramms gespeichert. Beispielsweise werden, wenn die erste Bank 2331 entsprechend der ersten Komponente angeordnet ist, die Speicherschutzinformationen der ersten Komponente in der ersten Bank 2331 gespeichert. Auf ähnliche Weise werden, wenn die zweite Bank 2332 entsprechend der zweiten Komponente angeordnet ist, die Speicherschutzinformationen der zweiten Komponente in der zweiten Bank 2332 gespeichert. Das heißt, der Schutzabschnitt 230 führt die Adressfestlegung (ADRESSFESTLEGUNG) und die Schutzfestlegung (SCHUTZFESTLEGUNG) für jede Komponente basierend auf den Daten aus, die in den Registern einer entsprechenden Bank 2331 bis 233n gespeichert sind.Each bank 2331 to 333n includes a plurality of registers, not shown, and stores address data and protection data. The address data indicates the address range of the memory section 220 to be accessed by the arithmetic section 210. FIG. The protection data includes memory protection information indicating whether a specific operation is allowed to be performed by the arithmetic section 210 on the memory section. That is, each bank 2331 to 233n including a plurality of registers corresponds to one component. The memory protection information of each component is stored in the plural registers of a bank 2331 to 233n. Furthermore, the banks 2331 to 233n are stored corresponding to the components of the software program. For example, when the first bank 2331 is arranged corresponding to the first component, the memory protection information of the first component is stored in the first bank 2331 . Similarly, when the second bank 2332 is arranged corresponding to the second component, the memory protection information of the second component is stored in the second bank 2332. FIG. That is, the protection section 230 performs the address setting (ADDRESS SETTING) and the protection setting (PROTECTION SETTING) for each component based on the data stored in the registers of a corresponding bank 2331 to 233n.

Der Schutzabschnitt 230 schützt den Speicherabschnitt 220 basierend auf den Speicherschutzinformationen, die in den Registern jeder Bank 2331 bis 233n gespeichert sind. Insbesondere erlaubt der Schutzabschnitt 230 den Zugriff des Arithmetikabschnitts 210 auf die im Speicherabschnitt 220 gespeicherten Daten basierend auf den Speicherschutzinformationen, die in den Registern der aktivierten Bank gespeichert sind, um den Speicherabschnitt 220 zu schützen. Das heißt, der Schutzabschnitt 230 verbietet einen unnötigen Zugriff des Arithmetikabschnitts 210 auf die im Speicherabschnitt 220 gespeicherten Daten basierend auf den Speicherschutzinformationen, die in den Registern der aktivierten Bänke gespeichert sind, um den Speicherabschnitt 200 zu schützen.The protection section 230 protects the memory section 220 based on the memory protection information stored in the registers of each bank 2331 to 233n. In particular, the protection section 230 allows the arithmetic section 210 to access the data stored in the storage section 220 based on the memory protection information stored in the registers of the activated bank to protect the memory section 220. That is, the protection section 230 prohibits an unnecessary access of the arithmetic section 210 to the data stored in the memory section 220 based on the memory protection information stored in the registers of the activated banks to protect the memory section 200. FIG.

Nachfolgend wird eine Operation des Mikrocomputers 200 mit Bezug auf 6 und 7 erläutert. Der Bankumschaltabschnitt 231 führt eine Verarbeitung, die in 6 dargestellt ist, in Synchronisation mit einem Taktsignal des Arithmetikabschnitts 210 aus.Next, an operation of the microcomputer 200 will be explained with reference to FIG 6 and 7 explained. The bank switching section 231 performs processing shown in FIG 6 shown, in synchronization with a clock signal of the arithmetic section 210.

Bei S10 bestätigt der Bankumschaltabschnitt 231 den Programmzähler (PRGRAMMZÄHLER) 211. Das heißt, der Bankumschaltabschnitt 231 liest den Wert aus, der in dem Programmzähler 211 gespeichert ist. Der Bankumschaltabschnitt 231 spezifiziert eine Zielkomponente, die durch den Arithmetikabschnitt 210 auszuführen ist, durch Bestätigen des im Programmzähler 211 gespeicherten Werts. Somit funktioniert die Verarbeitung, die bei S10 durch den Bankumschaltabschnitt 231 ausgeführt wird, als ein Spezifizierungsabschnitt. Insbesondere spezifiziert (bestimmt) der Bankumschaltabschnitt 231 einen Adressbereich des Speicherabschnitts 220, in dem die Zielkomponente (Ausführungsprogramm) gespeichert ist, durch Bestätigen des Programmzählers 211. Das heißt, der Bankumschaltabschnitt 231 spezifiziert den Adressbereich des Speicherabschnitts 220, der zum Ausführen der Zielkomponente zu verwenden ist, durch Bestätigen des Programmzählers 211. Demnach spezifiziert der Bankumschaltabschnitt 231 indirekt die Zielkomponente durch Erkennen des Adressbereichs des Speicherabschnitts, in dem das Ausführungsprogramm der Zielkomponente gespeichert ist. Nachfolgend wird ein Adressbereich des Speicherabschnitts, in dem das Ausführungsprogramm entsprechend der Zielkomponente gespeichert ist, ebenso als ein Ausführungsadressbereich bezeichnet. At S10, the bank switching section 231 confirms the program counter (PROGRAM COUNTER) 211. That is, the bank switching section 231 reads the value stored in the program counter 211. FIG. The bank switching section 231 specifies a target component to be executed by the arithmetic section 210 by confirming the value stored in the program counter 211 . Thus, the processing executed at S10 by the bank switching section 231 functions as a specifying section. Specifically, the bank switching section 231 specifies (determines) an address range of the memory section 220 in which the target component (execution program) is stored by confirming the program counter 211. That is, the bank switching section 231 specifies the address range of the memory section 220 to be used for executing the target component by confirming the program counter 211. Therefore, the bank switching section 231 indirectly specifies the target component by recognizing the address area of the memory section in which the execution program of the target component is stored. Hereinafter, an address area of the memory section in which the execution program corresponding to the target component is stored is also referred to as an execution address area.

Das Ausführungsprogramm entsprechend der Zielkomponente ist ein Programm, das durch den Arithmetikabschnitt 210 auszuführen ist.The execution program corresponding to the target component is a program to be executed by the arithmetic section 210 .

Im Allgemeinen ist der Programmzähler 211 ein notwendiger Hardwareteil für eine Operation einer CPU eines Mikrocomputers. In der vorliegenden Ausführungsform entspricht der Arithmetikabschnitt 210 der CPU des Mikrocomputers. Mit der bei S10 ausgeführten Verarbeitung kann der Ausführungsadressbereich ohne Hinzufügen eines Hardwareteils spezifiziert werden. Das heißt, die durch den Arithmetikabschnitt 210 auszuführende Zielkomponente wird ohne Hinzufügen eines Hardwareteils spezifiziert.In general, the program counter 211 is a necessary piece of hardware for an operation of a CPU of a microcomputer. In the present embodiment, the arithmetic section 210 corresponds to the CPU of the microcomputer. With the processing executed at S10, the execution address range can be specified without adding any hardware part. That is, the target component to be executed by the arithmetic section 210 is specified without adding any hardware part.

Die Zielkomponente kann ebenso durch die nachfolgende Konfiguration spezifiziert werden. Der Bankumschaltabschnitt 231 kann Informationen, die vorbestimmte Adressbereiche des Speicherabschnitts 220 angeben, in denen die Ausführungsprogramme entsprechend den mehreren Komponenten gespeichert sind, speichern. Insbesondere kann der Bankumschaltabschnitt 231 als die Informationen eine relationale Tabelle speichern, die die vorbestimmten Adressbereiche der Ausführungsprogramme entsprechend den mehreren Komponenten speichert, die mit den entsprechenden Komponenten verknüpft sind. Der Bankumschaltabschnitt 231 spezifiziert den Ausführungsadressbereich durch Bestätigen des Programmzählers 211, wie vorstehend beschrieben ist. Dann bestimmt der Bankumschaltabschnitt 231, ob der Ausführungsadressbereich in einem der Adressbereiche beinhaltet ist, die mit den mehreren Komponenten verknüpft sind, indem er auf die vorstehend erläuterte relationale Tabelle Bezug nimmt. Wenn der Bankumschaltabschnitt 231 bestimmt, dass der Ausführungsadressbereich in einem der Adressbereiche beinhaltet ist, der mit einer entsprechenden Komponente verknüpft ist, spezifiziert der Bankumschaltabschnitt 231 die Komponente entsprechend dem einen der Adressbereiche als die Zielkomponente, die durch den Arithmetikabschnitt 210 auszuführen ist. Demzufolge kann der Bankumschaltabschnitt 231 die Zielkomponente durch Spezifizieren des Ausführungsadressbereichs basierend auf der relationale Tabelle direkt spezifizieren.The target component can also be specified by the following configuration. The bank switching section 231 may store information indicating predetermined address areas of the storage section 220 in which the execution programs corresponding to the plurality of components are stored. Specifically, the bank switching section 231 may store, as the information, a relational table storing the predetermined address ranges of the execution programs corresponding to the plurality of components linked to the respective components. The bank switching section 231 specifies the execution address range by validating the program counter 211 as described above. Then, the bank switching section 231 determines whether the execution address range is included in one of the address ranges associated with the plurality of components by referring to the relational table explained above. When the bank switching section 231 determines that the execution address range is included in one of the address ranges associated with a corresponding component, the bank switching section 231 specifies the component corresponding to the one of the address ranges as the target component to be executed by the arithmetic section 210. Accordingly, the bank switching section 231 can directly specify the target component by specifying the execution address range based on the relational table.

Bei S20 bestätigt der Bankumschaltabschnitt 231 die Adresstabelle (ADRESSTABELLE) 232. Der Bankumschaltabschnitt 231 korreliert die Zielkomponente (Adressbereich), die bei S10 spezifiziert wird, mit einer der Bänke 2331 bis 233n durch Bestätigen der Adresstabelle 232. Somit funktioniert die Verarbeitung, die bei S20 durch den Bankumschaltabschnitt 231 ausgeführt wird, als ein Korrelationsabschnitt. Insbesondere wählt der Bankumschaltabschnitt 231 eine der Bänke 2331 bis 233n von der Adresstabelle 232 aus, wenn die eine der Bänke 2331 bis 233n den Adressbereich der bei S10 spezifizierten Zielkomponente beinhaltet. Das heißt, der Bankumschaltabschnitt 231 bestimmt die Zielbank, die der Zielkomponente entspricht, aus den mehreren Bänken 2331 bis 233n basierend auf der Adresstabelle 232.At S20, the bank switching section 231 confirms the address table (ADDRESS TABLE) 232. The bank switching section 231 correlates the target component (address range) specified at S10 with one of the banks 2331 to 233n by confirming the address table 232. Thus, the processing performed at S20 executed by the bank switching section 231 as a correlation section. Specifically, the bank switching section 231 selects one of the banks 2331 to 233n from the address table 232 when the one of the banks 2331 to 233n includes the address range of the target component specified at S10. That is, the bank switching section 231 determines the target bank corresponding to the target component from the plurality of banks 2331 to 233n based on the address table 232.

Wie vorstehend beschrieben ist, bestimmt der Bankumschaltabschnitt 231 die Zielbank, die der Zielkomponente entspricht, die durch den Arithmetikabschnitt 210 auszuführen ist, durch Bezugnahme auf den Programmzähler 211. Dann bestimmt der Bankumschaltabschnitt 231 die Zielkomponente durch Vergleichen des Ausführungsadressbereichs, der vom Programmzähler erlangt wird, mit jedem Adressbereich, der in der Adresstabelle 232 gespeichert ist, auf eine indirekte Weise.As described above, the bank switching section 231 determines the target bank corresponding to the target component to be executed by the arithmetic section 210 by referring to the program counter 211. Then, the bank switching section 231 determines the target component by comparing the execution address range obtained from the program counter with each address range stored in address table 232 in an indirect manner.

Wenn der Bankumschaltabschnitt 231 bei S10 die Zielkomponente direkt bestimmt, kann der Bankumschaltabschnitt 231 die Zielbank entsprechend der Zielkomponente basierend auf der vorstehend erläuterten Komponententabelle bestimmen.When the bank switching section 231 directly determines the target component at S10, the bank switching section 231 can determine the target bank corresponding to the target component based on the component table explained above.

Bei S30 bestimmt der Bankumschaltabschnitt 231, ob ein Wechseln der Komponente (KOMPONENTE) notwendig ist. Die Verarbeitung, die bei S30 durch den Bankumschaltabschnitt 231 ausgeführt wird, funktioniert als ein Bestimmungsabschnitt. Der Bankumschaltabschnitt 231 bestimmt, ob das Wechseln der Komponente notwendig ist, indem er eine gegenwärtige Komponente mit der bei S10 spezifizierten Zielkomponente vergleicht. Bestimmt der Bankumschaltabschnitt 231, dass das Wechseln der Komponente notwendig ist, fährt der Bankumschaltabschnitt 231 mit S40 fort. Bestimmt der Bankumschaltabschnitt 231, dass das Wechseln der Komponente nicht notwendig ist, beendet der Bankumschaltabschnitt 231 die in 6 dargestellte Verarbeitung.At S30, the bank switching section 231 determines whether switching of the component (COMPONENT) is necessary. The processing executed at S30 by the bank switching section 231 functions as a determination section. The bank switching section 231 determines whether switching of the component is necessary by comparing a current component with the target component specified at S10. If the bank switching section 231 determines that the switching of the component is necessary, the bank switching section 231 proceeds to S40. If the bank switching section 231 determines that the switching of the component is not necessary, the bank switching section 231 ends the in 6 shown processing.

Bei S40 wechselt der Bankumschaltabschnitt 231 die Bank. Insbesondere wenn der Bankumschaltabschnitt 231 bestimmt, dass die gegenwärtige Komponente zur Zielkomponente, die bei S10 spezifiziert wird, umgeschaltet werden muss, aktiviert der Bankumschaltabschnitt 231 die Zielbank. Die Zielbank entsprechend der Zielkomponente wird mit der Zielkomponente bei S20 korreliert. Insbesondere schaltet der Bankumschaltabschnitt die Zielbank vom deaktivierten Zustand in den aktivierten Zustand um, indem er die Nummer der Zielbank in das Banknummernregister 233a schreibt. Das heißt, der Bankumschaltabschnitt 231 schreibt die Nummer der Zielbank in das Banknummernregister 233a, um die Zielbank zu aktivieren. Somit funktioniert die Verarbeitung, die bei S30 und S40 durch den Bankumschaltabschnitt 231 ausgeführt wird, als ein Umschaltabschnitt.At S40, the bank switching section 231 switches the bank. Specifically, when the bank switching section 231 determines that the current component needs to be switched to the target component specified at S10, the bank switching section 231 activates the target bank. The target bank corresponding to the target component is correlated with the target component at S20. Specifically, the bank switching section switches the target bank from the disabled state to the enabled state by writing the number of the target bank to the bank number register 233a. That is, the bank switching section 231 writes the number of the target bank in the bank number register 233a to activate the target bank. Thus, the processing executed at S30 and S40 by the bank switching section 231 functions as a switching section.

Wie vorstehend beschrieben ist, bezieht sich der Bankumschaltabschnitt 231 auf die Adresstabelle 232 und schaltet die Bank um, wenn der Ausführungsadressbereich (der Wert des Programmzählers 211) in den Adressbereichen beinhaltet ist, die in der Adresstabelle 232 gespeichert sind. Dann schreibt der Bankumschaltabschnitt 231 die Nummer der Zielbank, die vom deaktivierten Zustand zu aktivieren ist, in das Banknummernregister 233a, um eine gegenwärtige Bank, die der gegenwärtigen Komponente entspricht, in die Zielbank umzuschalten.As described above, when the execution address range (the value of the program counter 211) is included in the address ranges stored in the address table 232, the bank switching section 231 refers to the address table 232 and switches the bank. Then, the bank switching section 231 writes the number of the target bank to be activated from the disabled state into the bank number register 233a to switch a current bank corresponding to the current component to the target bank.

Nachfolgend wird der Schutz des Speicherabschnitts 220 durch Vergleichen einer Konfiguration gemäß einem Vergleichsbeispiel mit der Konfiguration gemäß der vorliegenden Ausführungsform mit Bezug auf 7 und 8 erläutert. 7 ist ein Diagramm, das den Schutz des Speicherabschnitts 220 darstellt, der durch den Mikrocomputer 220 gemäß der vorliegenden Ausführungsform ausgeführt wird. 8 ist ein Diagramm, das den Schutz des Speicherabschnitts darstellt, der durch den Mikrocomputer gemäß dem Vergleichsbeispiel ausgeführt wird. In 7 wird das Ausführungsprogramm der sicheren Komponente in dem Adressbereich zwischen Adresse A und Adresse B des Speicherabschnitts 220 gespeichert, und dann wird das Ausführungsprogramm der nichtsicheren Komponente in dem Adressbereich zwischen Adresse B und Adresse C des Speicherabschnitts 220 gespeichert.Next, the protection of the storage portion 220 is described by comparing a configuration according to a comparative example with the configuration according to the present embodiment with reference to FIG 7 and 8th explained. 7 12 is a diagram showing the protection of the memory section 220 performed by the microcomputer 220 according to the present embodiment. 8th 14 is a diagram showing the protection of the memory section performed by the microcomputer according to the comparative example. In 7 the execution program of the secure component is stored in the address space between address A and address B of the memory section 220 , and then the execution program of the non-secure component is stored in the address space between address B and address C of the memory section 220 .

Der Mikrocomputer gemäß dem Vergleichsbeispiel beinhaltet nicht die Bänke 2331 bis 233n, die in der vorliegenden Ausführungsform erläutert sind. Stattdessen beinhaltet der Schutzabschnitt des Mikrocomputers gemäß dem Vergleichsbeispiel mehrere Register, die die Speicherschutzinformationen speichern. Das heißt, die mehreren Register in dem Vergleichsbeispiel entsprechen einer Bank des Mikrocomputers 220 der vorliegenden Ausführungsform. Wie in 8 dargestellt ist, wird das Ausführungsprogramm der sicheren Komponente in dem Speicherabschnitt zwischen Adresse A und Adresse B gespeichert und das Ausführungsprogramm der nichtsicheren Komponente wird in dem Speicherabschnitt zwischen Adresse B und Adresse C gespeichert.The microcomputer according to the comparative example does not include the banks 2331 to 233n explained in the present embodiment. Instead, according to the comparative example, the protection section of the microcomputer includes a plurality of registers that store the memory protection information. That is, the multiple registers in the comparative example correspond to one bank of the microcomputer 220 of the present embodiment. As in 8th 1, the execution program of the secure component is stored in the memory section between address A and address B, and the execution program of the non-secure component is stored in the memory section between address B and address C.

Nachfolgend werden die mehreren Register, in denen die Speicherschutzinformationen gespeichert werden, ebenso als Schutzregister bezeichnet. Ferner beinhalten die Schutzregister eine Zugriffsregion und eine Operationsregion. Die Zugriffsregion speichert Adressdaten, die einen Adressbereich des Speicherabschnitts angeben, auf den durch den Arithmetikabschnitt zugegriffen werden darf. Die Operationsregion speichert Operationsdaten, die Operationsinhalte (Schutzzustand) angeben, die durch den Arithmetikabschnitt auszuführen sind. Ferner beinhalten die Adressdaten, die in der Zugriffsregion gespeichert sind, eine Schutzstartadresse (SCHUTZSTARTADRESSE) und eine Schutzendadresse (SCHUTZENDADRESSE). Die Schutzstartadresse und die Schutzendadresse werden ebenso als Adressenfestlegungsdaten bezeichnet, die Adressenfestlegung angeben. Ferner werden die Operationsdaten, die in der Operationsregion gespeichert sind, ebenso als Schutzfestlegungsdaten bezeichnet, die Schutzfestlegung angeben. In 8 gibt das Symbol O an, dass die spezifische Operation (Operationsmodus) des Arithmetikabschnitts bezüglich des Speicherabschnitts erlaubt ist, und das Symbol X gibt an, dass die spezifische Operation des Arithmetikabschnitts bezüglich des Speicherabschnitts verboten ist. Die spezifische Operation (Operationsmodus) des Arithmetikabschnitts bezüglich des Speicherabschnitts beinhaltet Lesen, Schreiben und Ausführen.Hereinafter, the multiple registers in which the memory protection information is stored are also referred to as protection registers. Furthermore, the protection registers include an access region and an operation region. The access region stores address data indicating an address range of the memory section that is allowed to be accessed by the arithmetic section. The operation region stores operation data indicating operation contents (protection state) to be executed by the arithmetic section. Further, the address data stored in the access region includes a protection start address (PROTECTION START ADDRESS) and a protection end address (PROTECTION ADDRESS). The protection start address and the protection end address are also referred to as address setting data indicating address setting. Further, the operation data stored in the operation region is also referred to as protection setting data indicating protection setting. In 8th the symbol O indicates that the specific operation (operation mode) of the arithmetic section is permitted with respect to the memory section, and the sym bol X indicates that the specific operation of the arithmetic section with respect to the memory section is prohibited. The specific operation (mode of operation) of the arithmetic section with respect to the memory section includes reading, writing and executing.

Wie in 7 dargestellt ist, beinhaltet der Mikrocomputer 200 gemäß der vorliegenden Ausführungsform die Bänke 2331 bis 233n, und jede Bank 2331 bis 233n beinhaltet eine Zugriffsregion und eine Operationsregion. Die Zugriffsregion speichert Adressdaten, die einen Adressbereich des Speicherabschnitts 220 angeben, auf den durch den Arithmetikabschnitt 210 zugegriffen werden darf. Die Operationsregion speichert Operationsdaten, die Operationsinhalte (Schutzzustand) des Arithmetikabschnitts 210 angeben. Ferner beinhalten die Adressdaten, die in der Zugriffsregion gespeichert sind, eine Schutzstartadresse und eine Schutzendadresse. Die Schutzstartadresse und die Schutzendadresse werden ebenso als Adressenfestlegungsdaten bezeichnet, die Adressenfestlegung angeben. Ferner werden die Operationsdaten, die in der Operationsregion gespeichert sind, ebenso als Schutzfestlegungsdaten bezeichnet, die Schutzfestlegung angeben. Ähnlich zu 8 gibt in 7 das Symbol O an, dass die spezifische Operation (Operationsmodus) des Arithmetikabschnitts 210 bezüglich des Speicherabschnitts 220 erlaubt ist, und das Symbol X gibt an, dass die spezifische Operation des Arithmetikabschnitts 210 bezüglich des Speicherabschnitts 220 verboten ist. Die spezifische Operation (Operationsmodus) des Arithmetikabschnitts 210 bezüglich des Speicherabschnitts 220 beinhaltet Lesen, Schreiben und Ausführen.As in 7 1, microcomputer 200 according to the present embodiment includes banks 2331 to 233n, and each bank 2331 to 233n includes an access region and an operation region. The access region stores address data indicating an address range of the memory section 220 that is allowed to be accessed by the arithmetic section 210 . The operation region stores operation data indicating operation contents (protection state) of the arithmetic section 210 . Further, the address data stored in the access region includes a protection start address and a protection end address. The protection start address and the protection end address are also referred to as address setting data indicating address setting. Further, the operation data stored in the operation region is also referred to as protection setting data indicating protection setting. Similar to 8th gives in 7 the symbol O indicates that the specific operation (operation mode) of the arithmetic section 210 with respect to the storage section 220 is permitted, and the symbol X indicates that the specific operation of the arithmetic section 210 with respect to the storage section 220 is prohibited. The specific operation (operation mode) of the arithmetic section 210 with respect to the memory section 220 includes reading, writing and executing.

Nachfolgend wird mit Bezug auf 8 ein Fall beschrieben, in dem der Arithmetikabschnitt gemäß dem Vergleichsbeispiel das Softwareprogramm basierend auf der sicheren Komponente ausführt. Die Zugriffsregion speichert Daten, die die Adresse A des Speicherabschnitts als eine erste Schutzstartadresse angeben, und Daten, die die Adresse B des Speicherabschnitts als eine erste Schutzendadresse angeben. Die Zugriffsregion speichert ferner Daten, die die Adresse C des Speicherabschnitts als eine zweite Schutzstartadresse angeben, und Daten, die die Adresse D des Speicherabschnitts als eine zweite Schutzendadresse angeben. Die Speicherregion des Speicherabschnitts, die ausgehend von der ersten Schutzstartadresse A beginnt und mit der ersten Schutzendadresse B endet, wird ebenso als eine erste Speicherregion bezeichnet. Die Speicherregion des Speicherabschnitts, die ausgehend von der zweiten Schutzstartadresse C beginnt und mit der zweiten Schutzendadresse D endet, wird ebenso als eine zweite Speicherregion bezeichnet.The following is with reference to 8th a case where the arithmetic section according to the comparative example executes the software program based on the secure component will be described. The access region stores data indicating address A of the memory section as a first protection start address and data indicating address B of the memory section as a first protection end address. The access region further stores data indicating the address C of the memory section as a second protection start address and data indicating the address D of the memory section as a second protection end address. The memory region of the memory section starting from the first protection start address A and ending with the first protection end address B is also referred to as a first memory region. The memory region of the memory section starting from the second protection start address C and ending with the second protection end address D is also referred to as a second memory region.

Ferner speichert die Operationsregion die Operationsdaten entsprechend der ersten Speicherregion und die Operationsdaten entsprechend der zweiten Speicherregion. Die Operationsdaten entsprechend der ersten Speicherregion geben an, dass, wenn der Arithmetikabschnitt auf die erste Speicherregion zugreift, der Arithmetikabschnitt die in der ersten Speicherregion gespeicherten Daten auslesen und ausführen darf, jedoch die Daten nicht in die erste Speicherregion schreiben darf. Die Operationsdaten entsprechend der zweiten Speicherregion geben an, dass, wenn der Arithmetikabschnitt auf die zweite Speicherregion zugreift, der Arithmetikabschnitt die in der zweiten Speicherregion gespeicherten Daten auslesen darf und die Daten in die zweite Speicherregion schreiben darf, jedoch die in der zweiten Speicherregion gespeicherten Daten nicht ausführen darf.Further, the operation region stores the operation data corresponding to the first storage region and the operation data corresponding to the second storage region. The operation data corresponding to the first memory region indicates that when the arithmetic section accesses the first memory region, the arithmetic section is allowed to read out and execute the data stored in the first memory region, but is not allowed to write the data into the first memory region. The operation data corresponding to the second memory region indicates that when the arithmetic section accesses the second memory region, the arithmetic section is allowed to read out the data stored in the second memory region and write the data in the second memory region, but not the data stored in the second memory region may execute.

Wie in 8 dargestellt ist, erlaubt der Schutzabschnitt den Zugriff des Arithmetikabschnitts auf die erste Speicherregion und die zweite Speicherregion des Speicherabschnitts. Wenn der Arithmetikabschnitt auf die erste Speicherregion zugreift, erlaubt der Schutzabschnitt dem Arithmetikabschnitt, die in der ersten Speicherregion gespeicherten Daten zu lesen und auszuführen, verbietet jedoch dem Arithmetikabschnitt, die Daten in die erste Speicherregion zu schreiben. Wenn der Arithmetikabschnitt auf die zweite Speicherregion zugreift, erlaubt der Schutzabschnitt dem Arithmetikabschnitt, die in der zweiten Speicherregion gespeicherten Daten zu lesen und die Daten in die zweite Speicherregion zu schreiben, verbietet jedoch dem Arithmetikabschnitt, die in der zweiten Speicherregion gespeicherten Daten auszuführen. Wenn der Arithmetikabschnitt auf die Speicherregion außer der ersten Speicherregion und der zweiten Speicherregion zugreift, verbietet der Schutzabschnitt dem Arithmetikabschnitt, die Daten, die in der Speicherregion gespeichert sind, auf die zugegriffen wird, zu lesen und auszuführen, und verbietet dem Arithmetikabschnitt ebenso, die Daten in die Speicherregion, auf die zugegriffen wird, zu schreiben.As in 8th 1, the protection section allows the arithmetic section to access the first memory region and the second memory region of the memory section. When the arithmetic section accesses the first memory region, the protection section allows the arithmetic section to read and execute the data stored in the first memory region, but prohibits the arithmetic section from writing the data in the first memory region. When the arithmetic section accesses the second memory region, the protection section allows the arithmetic section to read the data stored in the second memory region and write the data to the second memory region, but prohibits the arithmetic section from executing the data stored in the second memory region. When the arithmetic section accesses the memory region other than the first memory region and the second memory region, the protection section prohibits the arithmetic section from reading and executing the data stored in the accessed memory region, and also prohibits the arithmetic section from reading the data write to the memory region being accessed.

Nachfolgend wird mit Bezug auf 8 ein Fall beschrieben, in dem der Arithmetikabschnitt gemäß dem Vergleichsbeispiel von einem Zustand, in dem der Arithmetikabschnitt das Softwareprogramm basierend auf der sicheren Komponente ausführt, in einen Zustand wechselt, in dem der Arithmetikabschnitt die Software basierend auf der nichtsicheren Komponente ausführt.The following is with reference to 8th a case where the arithmetic section according to the comparative example changes from a state where the arithmetic section executes the software program based on the secure component to a state where the arithmetic section executes the software based on the non-secure component.

Wenn der Arithmetikabschnitt die Komponente von der sicheren Komponente zur nichtsicheren Komponente umschaltet, werden die Daten, die in den Schutzregistern gespeichert sind, durch den Arithmetikabschnitt umgeschrieben. Wie in 8 dargestellt ist, schreibt der Arithmetikabschnitt die Daten, die die Adresse A angeben, in Daten, die die Adresse B angeben, als eine dritte Schutzstartadresse um und schreibt die Daten, die die Adresse B angeben, in Daten, die die Adresse C angeben, als eine dritte Schutzendadresse um. Ferner schreibt der Arithmetikabschnitt die Daten, die die Adresse C angeben, in Daten, die die Adresse D angeben, als eine vierte Schutzstartadresse um und schreibt die Daten, die die Adresse D angeben, in Daten, die die Adresse E angeben, als eine vierte Schutzendadresse um.When the arithmetic section switches the component from the secure component to the non-secure component, the data stored in the protection registers are rewritten by the arithmetic section. As in 8th is shown, the arithmetic section writes the Rewrites data indicative of address A into data indicative of address B as a third guard start address and rewrites the data indicative of address B into data indicative of address C as a third guard end address. Further, the arithmetic section rewrites the data indicative of address C into data indicative of address D as a fourth protection start address, and rewrites the data indicative of address D into data indicative of address E as a fourth protection end address.

Mit dem vorstehend beschriebenen Umschreiben, das durch den Arithmetikabschnitt ausgeführt wird, speichert die Zugriffsregion die Daten, die die Adresse B angeben, als die dritte Schutzstartadresse und die Daten, die die Adresse C angeben, als die dritte Schutzendadresse. Die Zugriffsregion speichert ferner die Daten, die die Adresse D angeben, als die vierte Schutzstartadresse und die Daten, die die Adresse E angeben, als die vierte Schutzendadresse. Die Speicherregion des Speicherabschnitts, die mit der dritten Schutzstartadresse B beginnt und mit der der dritten Schutzendadresse C endet, wird ebenso als eine dritte Speicherregion bezeichnet. Die Speicherregion des Speicherabschnitts, die mit der vierten Schutzstartadresse D beginnt und mit der vierten Schutzendadresse E endet, wird ebenso als eine vierte Speicherregion bezeichnet.With the above rewriting performed by the arithmetic section, the access region stores the data indicative of address B as the third guard start address and the data indicative of address C as the third guard end address. The access region further stores the data indicative of address D as the fourth guard start address and the data indicative of address E as the fourth guard end address. The memory region of the memory section beginning with the third protection start address B and ending with that of the third protection end address C is also referred to as a third memory region. The memory region of the memory section beginning with the fourth protection start address D and ending with the fourth protection end address E is also referred to as a fourth memory region.

Die Berechnung schreibt ferner die Operationsdaten entsprechend der ersten Speicherregion in Operationsdaten entsprechend der dritten Speicherregion um und schreibt die Operationsdaten entsprechend der zweiten Speicherregion in Operationsdaten entsprechend der vierten Speicherregion um. Die Operationsdaten entsprechend der dritten Speicherregion geben an, dass, wenn der Arithmetikabschnitt auf die dritte Speicherregion zugreift, der Arithmetikabschnitt die in der dritten Speicherregion gespeicherten Daten lesen und ausführen darf und ebenso Daten in die dritte Speicherregion schreiben darf. Die Operationsdaten entsprechend der vierten Speicherregion geben an, dass, wenn der Arithmetikabschnitt auf die vierte Speicherregion zugreift, der Anzeigeabschnitt die in der vierten Speicherregion gespeicherten Daten lesen darf und Daten in die vierte Speicherregion schreiben darf, jedoch die in der vierten Speicherregion gespeicherten Daten nicht ausführen darf. Wie vorstehend beschrieben ist, wenn der Mikrocomputer gemäß dem Vergleichsbeispiel von der sicheren Komponente zur nichtsicheren Komponente wechselt, schreibt der Arithmetikabschnitt die in den Schutzregistern gespeicherten Daten mit einem Softwareverfahren um. Das heißt, der Arithmetikabschnitt schreibt die Speicherschutzinformationen, die in den Schutzregistern gespeichert sind, um.The calculation further rewrites the operational data corresponding to the first memory region into operational data corresponding to the third memory region and rewrites the operational data corresponding to the second memory region into operational data corresponding to the fourth memory region. The operation data corresponding to the third memory region indicates that when the arithmetic section accesses the third memory region, the arithmetic section is allowed to read and execute the data stored in the third memory region and also write data to the third memory region. The operation data corresponding to the fourth memory region indicates that when the arithmetic section accesses the fourth memory region, the display section is allowed to read the data stored in the fourth memory region and write data to the fourth memory region, but does not execute the data stored in the fourth memory region allowed. As described above, when the microcomputer according to the comparative example changes from the secure component to the non-secure component, the arithmetic section rewrites the data stored in the protection registers with a software method. That is, the arithmetic section rewrites the memory protection information stored in the protection registers.

Wenn die Daten im Schutzregister durch den Arithmetikabschnitt wie vorstehend beschrieben umgeschrieben werden, erlaubt der Schutzabschnitt den Zugriff des Arithmetikabschnitts auf die dritte Speicherregion und die vierte Speicherregion des Speicherabschnitts. Wenn der Arithmetikabschnitt auf die dritte Speicherregion zugreift, erlaubt der Schutzabschnitt dem Arithmetikabschnitt, die in der dritten Speicherregion gespeicherten Daten zu lesen und auszuführen, und erlaubt dem Arithmetikabschnitt ebenso, die Daten in die dritte Speicherregion zu schreiben. Wenn der Arithmetikabschnitt auf die vierte Speicherregion zugreift, erlaubt der Schutzabschnitt dem Arithmetikabschnitt, die in der vierten Speicherregion gespeicherten Daten zu lesen und die Daten in die vierte Speicherregion zu schreiben, verbietet jedoch dem Arithmetikabschnitt, die in der vierten Speicherregion gespeicherten Daten auszuführen. Wenn der Arithmetikabschnitt auf die Speicherregion außer der dritten Speicherregion und der vierten Speicherregion zugreift, verbietet der Schutzabschnitt dem Arithmetikabschnitt, die Daten, die in der Speicherregion gespeichert sind, auf die zugegriffen wird, zu lesen und auszuführen, und verbietet dem Arithmetikabschnitt ebenso, die Daten in die Speicherregion, auf die zugegriffen wird, zu schreiben.When the data in the protection register is rewritten by the arithmetic section as described above, the protection section allows the arithmetic section to access the third memory region and the fourth memory region of the memory section. When the arithmetic section accesses the third memory region, the protection section allows the arithmetic section to read and execute the data stored in the third memory region, and also allows the arithmetic section to write the data in the third memory region. When the arithmetic section accesses the fourth memory region, the protection section allows the arithmetic section to read the data stored in the fourth memory region and write the data to the fourth memory region, but prohibits the arithmetic section from executing the data stored in the fourth memory region. When the arithmetic section accesses the memory region other than the third memory region and the fourth memory region, the protection section prohibits the arithmetic section from reading and executing the data stored in the accessed memory region, and also prohibits the arithmetic section from reading the data write to the memory region being accessed.

Nachfolgend wird mit Bezug auf 8 ein Fall beschrieben, in dem der Arithmetikabschnitt gemäß dem Vergleichsbeispiel von dem Zustand, in dem der Arithmetikabschnitt das Softwareprogramm basierend auf der nichtsicheren Komponente ausführt, in den Zustand wechselt, in dem der Arithmetikabschnitt das Softwareprogramm basierend auf der sicheren Komponente ausführt.The following is with reference to 8th a case where the arithmetic section according to the comparative example changes from the state in which the arithmetic section executes the software program based on the non-secure component to the state in which the arithmetic section executes the software program based on the secure component.

Wenn der Arithmetikabschnitt die Komponente von der nichtsicheren Komponente zur sicheren Komponente wechselt, werden die Daten, die in den Schutzregistern gespeichert sind, durch den Arithmetikabschnitt umgeschrieben. Insbesondere, wie in 8 dargestellt ist, schreibt der Arithmetikabschnitt die Adressdaten, die die dritte Speicherregion und die vierte Speicherregion angeben, in die Adressdaten um, die die erste Speicherregion und die zweite Speicherregion angeben. Der Arithmetikabschnitt 210 schreibt ferner die Operationsdaten entsprechend der dritten Speicherregion in Operationsdaten entsprechend der ersten Speicherregion um und schreibt die Operationsdaten entsprechend der vierten Speicherregion in die Operationsdaten entsprechend der zweiten Speicherregion um. Die Operationsdaten entsprechend der ersten Speicherregion geben an, dass, wenn der Arithmetikabschnitt auf die erste Speicherregion zugreift, der Arithmetikabschnitt die in der ersten Speicherregion gespeicherten Daten lesen und ausführen darf, jedoch die Daten nicht in die erste Speicherregion schreiben darf. Die Operationsdaten entsprechend der zweiten Speicherregion geben an, dass, wenn der Arithmetikabschnitt auf die zweite Speicherregion zugreift, der Arithmetikabschnitt die in der zweiten Speicherregion gespeicherten Daten lesen darf und die Daten in die zweite Speicherregion schreiben darf, jedoch die in der zweiten Speicherregion gespeicherten Daten nicht ausführen darf. Wie vorstehend beschrieben ist, wenn der Mikrocomputer gemäß dem Vergleichsbeispiel die Komponente von der nichtsicheren Komponente zur sicheren Komponente umschaltet, schreibt der Arithmetikabschnitt die in den Schutzregistern gespeicherten Daten mit einem Softwareverfahren um. Das heißt, der Arithmetikabschnitt schreibt die Speicherschutzinformationen, die in den Schutzregistern gespeichert sind, um.When the arithmetic section changes the component from the non-safe component to the safe component, the data stored in the protection registers are rewritten by the arithmetic section. In particular, as in 8th 1, the arithmetic section rewrites the address data indicative of the third memory region and the fourth memory region into the address data indicative of the first memory region and the second memory region. The arithmetic section 210 further rewrites the operational data corresponding to the third memory region into operational data corresponding to the first memory region, and rewrites the operational data corresponding to the fourth memory region into the operational data corresponding to the second memory region. The operation data corresponding to the first memory region indicates that when the arithmetic section accesses the first memory region, the arithmetic section is allowed to read and execute the data stored in the first memory region, but is not allowed to write the data in the first memory region. The operation data according to the second Memory region indicate that when the arithmetic section accesses the second memory region, the arithmetic section is allowed to read the data stored in the second memory region and write the data to the second memory region, but is not allowed to execute the data stored in the second memory region. As described above, when the microcomputer according to the comparative example switches the component from the non-safe component to the safe component, the arithmetic section rewrites the data stored in the protection registers with a software method. That is, the arithmetic section rewrites the memory protection information stored in the protection registers.

Wie in 8 dargestellt ist, wenn die Speicherschutzinformationen, die in den Schutzregistern gespeichert sind, durch den Arithmetikabschnitt umgeschrieben werden, erlaubt der Schutzabschnitt dem Arithmetikabschnitt, auf die erste Speicherregion und die zweite Speicherregion des Speicherabschnitts zuzugreifen. Wenn der Arithmetikabschnitt auf die erste Speicherregion zugreift, erlaubt der Schutzabschnitt dem Arithmetikabschnitt, die in der ersten Speicherregion gespeicherten Daten zu lesen und auszuführen, verbietet jedoch dem Arithmetikabschnitt, die Daten in die erste Speicherregion zu schreiben. Wenn der Arithmetikabschnitt auf die zweite Speicherregion zugreift, erlaubt der Schutzabschnitt dem Arithmetikabschnitt, die in der zweiten Speicherregion gespeicherten Daten zu lesen und die Daten in die zweite Speicherregion zu schreiben, verbietet jedoch dem Arithmetikabschnitt, die in der zweiten Speicherregion gespeicherten Daten auszuführen. Wenn der Arithmetikabschnitt auf die Speicherregion außer der ersten Speicherregion und der zweiten Speicherregion zugreift, verbietet der Schutzabschnitt dem Arithmetikabschnitt, die Daten, die in der Speicherregion gespeichert sind, auf die zugegriffen wird, zu lesen und auszuführen, und verbietet dem Arithmetikabschnitt ebenso, die Daten in die Speicherregion, auf die zugegriffen wird, zu schreiben.As in 8th 1, when the memory protection information stored in the protection registers is rewritten by the arithmetic section, the protection section allows the arithmetic section to access the first memory region and the second memory region of the memory section. When the arithmetic section accesses the first memory region, the protection section allows the arithmetic section to read and execute the data stored in the first memory region, but prohibits the arithmetic section from writing the data in the first memory region. When the arithmetic section accesses the second memory region, the protection section allows the arithmetic section to read the data stored in the second memory region and write the data to the second memory region, but prohibits the arithmetic section from executing the data stored in the second memory region. When the arithmetic section accesses the memory region other than the first memory region and the second memory region, the protection section prohibits the arithmetic section from reading and executing the data stored in the accessed memory region, and also prohibits the arithmetic section from reading the data write to the memory region being accessed.

Wie vorstehend beschrieben ist, muss der Mikrocomputer gemäß dem Vergleichsbeispiel mehrere Register beim Wechseln der Komponente zwischen der sicheren Komponente und der nichtsicheren Komponente umschreiben. Das heißt, der Mikrocomputer gemäß dem Vergleichsbeispiel schreibt mehrere Register um, wenn ein Ausführungszustand des Arithmetikabschnitts umschaltet, um den Schutzzustand zu ändern. Mit der vorstehend erläuterten Konfiguration erreicht der Mikrocomputer gemäß dem Vergleichsbeispiel einen Speicherschutz beim Wechseln der Komponenten. Im Vergleichsbeispiel schreibt der Arithmetikabschnitt sechs Register um, wenn der Ausführungszustand (Komponenten) des Arithmetikabschnitts wechselt.As described above, according to the comparative example, the microcomputer needs to rewrite a plurality of registers when changing the component between the secure component and the non-secure component. That is, the microcomputer according to the comparative example rewrites a plurality of registers when an execution state of the arithmetic section switches to change the protection state. With the above configuration, the microcomputer according to the comparative example achieves memory protection when changing components. In the comparative example, the arithmetic section rewrites six registers when the execution state (components) of the arithmetic section changes.

Nachfolgend wird der Schutz des Speicherabschnitts durch den Mikrocomputer 200 gemäß der vorliegenden Ausführungsform mit Bezug auf 7 erläutert. Als Erstes wird mit Bezug auf 7 ein Fall erläutert, in dem der Arithmetikabschnitt 210 das Softwareprogramm basierend auf der sicheren Komponente ausführt. In diesem Fall speichert der Programmzähler 211 die Werte, die den Adressbereich von der Adresse A bis zur Adresse B angeben. Somit schreibt der Bankumschaltabschnitt 231 die Banknummer, die die erste Bank 2331 angibt, in das Banknummernregister 233a. Das heißt, die erste Bank 2331 unter den mehreren Bänken 2331 bis 233n wird durch den Bankumschaltabschnitt 231 aktiviert. Wie vorstehend beschrieben ist, entspricht die erste Bank 2331 der sicheren Komponente.Next, the protection of the memory section by the microcomputer 200 according to the present embodiment will be explained with reference to FIG 7 explained. First, with reference to 7 explains a case where the arithmetic section 210 executes the software program based on the secure component. In this case, the program counter 211 stores the values indicating the address range from address A to address B. Thus, the bank switching section 231 writes the bank number indicating the first bank 2331 in the bank number register 233a. That is, the first bank 2331 among the plurality of banks 2331 to 233n is activated by the bank switching section 231 . As described above, the first bank 2331 corresponds to the secure component.

Die Zugriffsregion der ersten Bank 2331 speichert Daten, die die Adresse A des Speicherabschnitts 220 angeben, als eine erste Schutzstartadresse, und Daten, die die Adresse B des Speicherabschnitts 220 angeben, als eine erste Schutzendadresse. Die Zugriffsregion der ersten Bank 2331 speichert ferner Daten, die die Adresse C des Speicherabschnitts 220 angeben, als eine zweite Schutzstartadresse, und Daten, die die Adresse D des Speicherabschnitts 220 angeben, als eine zweite Schutzendadresse. Ähnlich zum Vergleichsbeispiel wird die Speicherregion des Speicherabschnitts 220, die mit der ersten Schutzstartadresse A beginnt und mit der ersten Schutzendadresse B endet, ebenso als die erste Speicherregion bezeichnet. Ähnlich zum Vergleichsbeispiel wird die Speicherregion des Speicherabschnitts 220, die ausgehend von der zweiten Schutzstartadresse C beginnt und mit der zweiten Schutzendadresse D endet, ebenso als die zweite Speicherregion bezeichnet.The first bank access region 2331 stores data indicating the address A of the memory section 220 as a first protection start address, and data indicating the address B of the memory section 220 as a first protection end address. The first bank access region 2331 further stores data indicating the address C of the memory section 220 as a second guard start address, and data indicating the address D of the memory section 220 as a second guard end address. Similar to the comparative example, the memory region of the memory portion 220 beginning with the first protection start address A and ending with the first protection end address B is also referred to as the first memory region. Similar to the comparative example, the memory region of the memory section 220 starting from the second protection start address C and ending with the second protection end address D is also referred to as the second memory region.

Ferner speichert die Operationsregion der ersten Bank 2331 die Operationsdaten entsprechend der ersten Speicherregion des Speicherabschnitts 220 und die Operationsdaten entsprechend der zweiten Speicherregion des Speicherabschnitts 220. Die Operationsdaten entsprechend der ersten Speicherregion geben an, dass, wenn der Arithmetikabschnitt 210 auf die erste Speicherregion zugreift, der Arithmetikabschnitt 210 die in der ersten Speicherregion gespeicherten Daten lesen und ausführen darf, jedoch Daten nicht in die erste Speicherregion schreiben darf. Die Operationsdaten entsprechend der zweiten Speicherregion geben an, dass, wenn der Arithmetikabschnitt 210 auf die zweite Speicherregion zugreift, der Arithmetikabschnitt 210 die in der zweiten Speicherregion gespeicherten Daten lesen darf und die Daten in die zweite Speicherregion schreiben darf, jedoch die in der zweiten Speicherregion gespeicherten Daten nicht ausführen darf.Further, the operation region of the first bank 2331 stores the operation data corresponding to the first memory region of the memory section 220 and the operation data corresponding to the second memory region of the memory section 220. The operation data corresponding to the first memory region indicates that when the arithmetic section 210 accesses the first memory region, the Arithmetic section 210 is allowed to read and execute the data stored in the first memory region, but is not allowed to write data to the first memory region. The operation data corresponding to the second memory region indicates that when the arithmetic section 210 accesses the second memory region, the arithmetic section 210 is allowed to read the data stored in the second memory region and the data into the second memory cherregion may write, but may not execute the data stored in the second memory region.

Wie in 7 dargestellt ist, erlaubt der Schutzabschnitt 230 dem Arithmetikabschnitt 210, auf die erste Speicherregion und die zweite Speicherregion des Speicherabschnitts 220 zuzugreifen. Wenn der Arithmetikabschnitt 210 auf die erste Speicherregion zugreift, erlaubt der Schutzabschnitt 230 dem Arithmetikabschnitt 210, die in der ersten Speicherregion gespeicherten Daten zu lesen und auszuführen, verbietet jedoch dem Arithmetikabschnitt 210, die Daten in die erste Speicherregion zu schreiben. Wenn der Arithmetikabschnitt 210 auf die zweite Speicherregion zugreift, erlaubt der Schutzabschnitt 230 dem Arithmetikabschnitt 210, die in der zweiten Speicherregion gespeicherten Daten zu lesen und die Daten in die zweite Speicherregion zu schreiben, verbietet jedoch dem Arithmetikabschnitt 210, die in der zweiten Speicherregion gespeicherten Daten auszuführen. Wenn der Arithmetikabschnitt 210 auf die Speicherregion außer der ersten Speicherregion und der zweiten Speicherregion zugreift, verbietet der Schutzabschnitt 230 dem Arithmetikabschnitt 210, die Daten, die in der Speicherregion gespeichert sind, auf die zugegriffen wird, zu lesen und auszuführen, und verbietet dem Arithmetikabschnitt 210 ebenso, die Daten in die Speicherregion, auf die zugegriffen wird, zu schreiben. Mit dieser Konfiguration erlaubt oder verbietet der Schutzabschnitt 230 den Zugriff des Arithmetikabschnitts 210 auf den Speicherabschnitt 220 basierend auf den Speicherschutzinformationen, die in den Registern der aktivierten ersten Bank 2331 gespeichert sind, um den Schutzabschnitt zu schützen.As in 7 As shown, the protection section 230 allows the arithmetic section 210 to access the first memory region and the second memory region of the memory section 220. FIG. When the arithmetic section 210 accesses the first memory region, the protection section 230 allows the arithmetic section 210 to read and execute the data stored in the first memory region, but prohibits the arithmetic section 210 from writing the data in the first memory region. When the arithmetic section 210 accesses the second memory region, the protection section 230 allows the arithmetic section 210 to read the data stored in the second memory region and write the data to the second memory region, but prohibits the arithmetic section 210 from reading the data stored in the second memory region to execute. When the arithmetic section 210 accesses the memory region other than the first memory region and the second memory region, the protection section 230 prohibits the arithmetic section 210 from reading and executing the data stored in the accessed memory region, and prohibits the arithmetic section 210 also to write the data into the memory region being accessed. With this configuration, the protection section 230 permits or prohibits the arithmetic section 210 from accessing the memory section 220 based on the memory protection information stored in the registers of the activated first bank 2331 to protect the protection section.

Nachfolgend wird mit Bezug auf 7 ein Fall beschrieben, in dem der Arithmetikabschnitt 210 gemäß der vorliegenden Ausführungsform von einem Zustand, in dem der Arithmetikabschnitt 210 das Softwareprogramm basierend auf der sicheren Komponente ausführt, in einen Zustand wechselt, in dem der Arithmetikabschnitt 210 das Softwareprogramm basierend auf der nichtsicheren Komponente ausführt. Das heißt, ein Fall, in dem die Komponente, die durch den Arithmetikabschnitt 210 ausgeführt wird, von der sicheren Komponente in die nichtsichere Komponente umgeschaltet wird. Wenn die Komponente, die durch den Arithmetikabschnitt 210 ausgeführt wird, von der sicheren Komponente in die nichtsichere Komponente umgeschaltet wird, schreibt der Programmzähler 211 den Adressbereich zwischen Adresse A und Adresse B in einen Adressbereich zwischen Adresse B und Adresse C um.The following is with reference to 7 a case where the arithmetic section 210 according to the present embodiment changes from a state where the arithmetic section 210 executes the software program based on the secure component to a state where the arithmetic section 210 executes the software program based on the non-secure component. That is, a case where the component executed by the arithmetic section 210 is switched from the secure component to the non-secure component. When the component executed by the arithmetic section 210 is switched from the secure component to the non-secure component, the program counter 211 rewrites the address range between address A and address B into an address range between address B and address C.

Wenn der Arithmetikabschnitt 210 die Komponente von der sicheren Komponente in die nichtsichere Komponente umschaltet, deaktiviert der Bankumschaltabschnitt 231 die erste Bank 2331 und aktiviert die zweite Bank 2332. Das heißt, der Bankumschaltabschnitt 231 schaltet eine effektive Bank von der ersten Bank 2331 zur zweiten Bank 2332 um. Insbesondere schreibt der Bankumschaltabschnitt 231 die Nummer, die die zweite Bank 2332 angibt, in das Banknummernregister 233a, um die effektive Bank von der ersten Bank 2331 zur zweiten Bank 2332 umzuschalten. Das heißt, der Bankumschaltabschnitt 231 schaltet die Bank, die ein Hardwareteil ist, von der ersten Bank 2331 in die zweite Bank 2332 um.When the arithmetic section 210 switches the component from the secure component to the non-secure component, the bank switching section 231 disables the first bank 2331 and enables the second bank 2332. That is, the bank switching section 231 switches an effective bank from the first bank 2331 to the second bank 2332 around. Specifically, the bank switching section 231 writes the number indicating the second bank 2332 in the bank number register 233a to switch the effective bank from the first bank 2331 to the second bank 2332. That is, the bank switching section 231 switches the bank, which is a hardware part, from the first bank 2331 to the second bank 2332 .

Wie in 7 dargestellt ist, speichert die Zugriffsregion der zweiten Bank 2332 die Daten, die die Adresse B angeben, als eine dritte Schutzstartadresse des Speicherabschnitts 220 und die Daten, die die Adresse C angeben, als eine dritte Schutzendadresse des Speicherabschnitts 220. Die Zugriffsregion der zweiten Bank 2332 speichert ferner die Daten, die die Adresse D angeben, als eine vierte Schutzstartadresse des Speicherabschnitts 220 und die Daten, die die Adresse E angeben, als eine vierte Schutzendadresse des Speicherabschnitts 220. Ähnlich zum Vergleichsbeispiel wird die Speicherregion des Speicherabschnitts 220, die ausgehend von der dritten Schutzstartadresse B startet und mit der dritten Schutzendadresse C endet, ebenso als die dritte Speicherregion bezeichnet. Ähnlich zum Vergleichsbeispiel wird die Speicherregion des Speicherabschnitts 220, die ausgehend von der vierten Schutzstartadresse D startet und mit der vierten Schutzendadresse E endet, ebenso als die vierte Speicherregion bezeichnet.As in 7 As shown, the second bank access region 2332 stores the data specifying the address B as a third protection start address of the memory section 220 and the data specifying the address C as a third protection end address of the memory section 220. The second bank access region 2332 further stores the data indicating the address D as a fourth protection start address of the memory section 220 and the data indicating the address E as a fourth protection end address of the memory section 220. Similar to the comparative example, the memory region of the memory section 220 starting from the third protection start address B and ends with the third protection end address C, also referred to as the third memory region. Similarly to the comparative example, the memory region of the memory section 220 starting from the fourth protection start address D and ending with the fourth protection end address E is also referred to as the fourth memory region.

Wie vorstehend beschrieben ist, da die erste Bank 2331 zur zweiten Bank 2332 umgeschaltet wird, wird die Zugriffsregion der ersten Bank 2331 zur Zugriffsregion der zweiten Bank 2332 umgeschaltet. Somit wird die Zugriffsregion in denselben Zustand wie in einem Fall geändert, in dem die Daten, die die Adresse A angeben, in die Daten umgeschrieben werden, die die Adresse B angeben, die Daten, die die Adresse B angeben, in die Daten umgeschrieben werden, die die Adresse C angeben, die Daten, die die Adresse C angeben, in die Daten umgeschrieben werden, die die Adresse D angeben, und die Daten, die die Adresse D angeben, in die Daten umgeschrieben werden, die die Adresse E angeben.As described above, since the first bank 2331 is switched to the second bank 2332, the access region of the first bank 2331 is switched to the second bank 2332 access region. Thus, the access region is changed to the same state as in a case where the data indicative of the address A is rewritten into the data indicative of the address B, the data indicative of the address B is rewritten into the data , which indicate the address C, the data indicating the address C is rewritten into the data indicating the address D, and the data indicating the address D is rewritten into the data indicating the address E.

Wie in 7 dargestellt ist, speichert die Operationsregion der zweiten Bank 2332 die Operationsdaten entsprechend der dritten Speicherregion des Speicherabschnitts 220 und die Operationsdaten entsprechend der vierten Speicherregion des Speicherabschnitts. Die Operationsdaten entsprechend der dritten Speicherregion geben an, dass, wenn der Arithmetikabschnitt 210 auf die dritte Speicherregion zugreift, der Arithmetikabschnitt 210 die in der dritten Speicherregion gespeicherten Daten lesen und ausführen darf und ebenso die Daten in die dritte Speicherregion schreiben darf. Die Operationsdaten entsprechend der vierten Speicherregion geben an, dass, wenn der Arithmetikabschnitt 210 auf die vierte Speicherregion zugreift, der Arithmetikabschnitt 210 die in der vierten Speicherregion gespeicherten Daten lesen darf und Daten in die vierte Speicherregion schreiben darf, jedoch die in der vierten Speicherregion gespeicherten Daten nicht ausführen darf.As in 7 1, the operation region of the second bank 2332 stores the operation data corresponding to the third storage region of the storage section 220 and the operation data corresponding to the fourth storage region of the storage section. The operation data corresponding to the third memory region indicates that when the arithmetic section 210 accesses the third memory region, the arithmetic section 210 uses the data stored in the third memory region read and execute and also write the data in the third memory region. The operation data corresponding to the fourth memory region indicates that when the arithmetic section 210 accesses the fourth memory region, the arithmetic section 210 is allowed to read the data stored in the fourth memory region and write data to the fourth memory region, but is allowed to write the data stored in the fourth memory region not allowed to execute.

Wie vorstehend beschrieben ist, da die erste Bank 2331 zur zweiten Bank 2332 umgeschaltet wird, wird die Operationsregion der ersten Bank 2331 zur Operationsregion der zweiten Bank 2332 umgeschaltet. Somit wird die Operationsregion in denselben Zustand wie in einem Fall geändert, in dem die Operationsdaten entsprechend der ersten Speicherregion in die Operationsdaten entsprechend der dritten Speicherregion umgeschrieben werden und die Operationsdaten entsprechend der zweiten Speicherregion in die Operationsdaten entsprechend der vierten Speicherregion umgeschrieben werden. Wie vorstehend beschrieben ist, geben die Operationsdaten entsprechend der dritten Speicherregion an, dass, wenn der Arithmetikabschnitt 210 auf die dritte Speicherregion zugreift, der Arithmetikabschnitt 210 die in der dritten Speicherregion gespeicherten Daten lesen und ausführen darf und ebenso die Daten in die dritte Speicherregion schreiben darf. Die Operationsdaten entsprechend der vierten Speicherregion geben an, dass, wenn der Arithmetikabschnitt 210 auf die vierte Speicherregion zugreift, der Arithmetikabschnitt die in der vierten Speicherregion gespeicherten Daten lesen darf und die Daten in die vierte Speicherregion schreiben darf, jedoch die in der vierten Speicherregion gespeicherten Daten nicht ausführen darf. Wie vorstehend beschrieben ist, wenn der Mikrocomputer 200 die Komponente von der sicheren Komponente in die nichtsichere Komponente umschaltet, schaltet der Bankumschaltabschnitt 231 die Bank von der Bank entsprechend der sicheren Komponente in die Bank entsprechend der nichtsicheren Komponente um. Somit werden die Speicherschutzinformationen mittels eines Hardwareverfahrens durch Umschalten der Bank umgeschaltet.As described above, since the first bank 2331 is switched to the second bank 2332, the operation region of the first bank 2331 is switched to the operation region of the second bank 2332. Thus, the operation region is changed to the same state as in a case where the operation data corresponding to the first storage region is rewritten to the operation data corresponding to the third storage region and the operation data corresponding to the second storage region is rewritten to the operation data corresponding to the fourth storage region. As described above, the operation data corresponding to the third memory region indicates that when the arithmetic section 210 accesses the third memory region, the arithmetic section 210 is allowed to read and execute the data stored in the third memory region and also write the data in the third memory region . The operation data corresponding to the fourth memory region indicates that when the arithmetic section 210 accesses the fourth memory region, the arithmetic section is allowed to read the data stored in the fourth memory region and write the data in the fourth memory region, but the data stored in the fourth memory region not allowed to execute. As described above, when the microcomputer 200 switches the component from the secure component to the non-secure component, the bank switching section 231 switches the bank from the bank corresponding to the secure component to the bank corresponding to the non-secure component. Thus, the memory protection information is switched by a hardware method by switching the bank.

Wie in 7 dargestellt ist, wenn der Bankumschaltabschnitt 231 die Bank entsprechend der sicheren Komponente in die Bank entsprechend der nichtsicheren Komponente umschaltet, erlaubt der Schutzabschnitt 230 dem Arithmetikabschnitt 210, auf die dritte Speicherregion und die vierte Speicherregion des Speicherabschnitts 220 zuzugreifen. Wenn der Arithmetikabschnitt 210 auf die dritte Speicherregion zugreift, erlaubt der Schutzabschnitt 230 dem Arithmetikabschnitt 210, die in der dritten Speicherregion gespeicherten Daten zu lesen und auszuführen, und erlaubt dem Arithmetikabschnitt 210 ebenso, die Daten in die dritte Speicherregion zu schreiben. Wenn der Arithmetikabschnitt 210 auf die vierte Speicherregion zugreift, erlaubt der Schutzabschnitt 230 dem Arithmetikabschnitt, die in der vierten Speicherregion gespeicherten Daten zu lesen und die Daten in die vierte Speicherregion zu schreiben, verbietet jedoch dem Arithmetikabschnitt 210, die in der vierten Speicherregion gespeicherten Daten auszuführen. Wenn der Arithmetikabschnitt 210 auf die Speicherregion mit Ausnahme der dritten Speicherregion und der vierten Speicherregion zugreift, verbietet der Schutzabschnitt 230 dem Arithmetikabschnitt 210, die Daten, die in der Speicherregion gespeichert sind, auf die zugegriffen wird, zu lesen und auszuführen, und verbietet dem Arithmetikabschnitt 210 ebenso, die Daten in die Speicherregion, auf die zugegriffen wird, zu schreiben. Mit dieser Konfiguration erlaubt oder verbietet der Schutzabschnitt 230 dem Arithmetikabschnitt 210, auf den Speicherabschnitt 220 zuzugreifen, basierend auf den Speicherschutzinformationen, die in den Registern der aktivierten zweiten Bank 2332 gespeichert sind, um den Schutzabschnitt 220 zu schützen.As in 7 As illustrated, when the bank switching section 231 switches the bank corresponding to the secure component to the bank corresponding to the non-secure component, the protection section 230 allows the arithmetic section 210 to access the third memory region and the fourth memory region of the memory section 220. When the arithmetic section 210 accesses the third memory region, the protection section 230 allows the arithmetic section 210 to read and execute the data stored in the third memory region, and also allows the arithmetic section 210 to write the data in the third memory region. When the arithmetic section 210 accesses the fourth memory region, the protection section 230 allows the arithmetic section to read the data stored in the fourth memory region and write the data to the fourth memory region, but prohibits the arithmetic section 210 from executing the data stored in the fourth memory region . When the arithmetic section 210 accesses the memory region except for the third memory region and the fourth memory region, the protection section 230 prohibits the arithmetic section 210 from reading and executing the data stored in the accessed memory region, and prohibits the arithmetic section 210 likewise to write the data into the memory region being accessed. With this configuration, the protection section 230 allows or prohibits the arithmetic section 210 from accessing the memory section 220 based on the memory protection information stored in the registers of the activated second bank 2332 to protect the protection section 220.

Nachfolgend wird mit Bezug auf 7 ein Fall beschrieben, in dem der Arithmetikabschnitt gemäß der vorliegenden Ausführungsform von dem Zustand, in dem der Arithmetikabschnitt das Softwareprogramm basierend auf der nichtsicheren Komponente ausführt, in den Zustand umschaltet, in dem der Arithmetikabschnitt das Softwareprogramm basierend auf der sicheren Komponente ausführt. Das heißt, ein einem Fall, in dem die Komponente, die durch den Arithmetikabschnitt 210 ausgeführt wird, von der nichtsicheren Komponente in die sichere Komponente umgeschaltet wird. Wenn die Komponente, die durch den Arithmetikabschnitt 210 ausgeführt wird, von der nichtsicheren Komponente in die sichere Komponente umgeschaltet wird, schreibt der Programmzähler 211 den Adressbereich zwischen Adresse B und Adresse C in den Adressbereich zwischen Adresse A und Adresse B um.The following is with reference to 7 a case where the arithmetic section according to the present embodiment switches from the state where the arithmetic section executes the software program based on the non-secure component to the state where the arithmetic section executes the software program based on the secure component. That is, in a case where the component executed by the arithmetic section 210 is switched from the non-secure component to the secure component. When the component executed by the arithmetic section 210 is switched from the non-secure component to the secure component, the program counter 211 rewrites the address range between address B and address C into the address range between address A and address B.

Wenn der Arithmetikabschnitt 210 die Komponente von der nichtsicheren Komponente in die sichere Komponente umschaltet, deaktiviert der Bankumschaltabschnitt 231 die zweite Bank 2332 und aktiviert die erste Bank 2331. Das heißt, der Bankumschaltabschnitt 231 schaltet die effektive Bank von der zweiten Bank 2332 in die erste Bank 2331 um. Insbesondere schreibt der Bankumschaltabschnitt 231 die Nummer, die die erste Bank 2331 angibt, in das Banknummernregister 233a, um die effektive Bank von der zweiten Bank 2332 in die erste Bank 2331 umzuschalten. Das heißt, der Bankumschaltabschnitt 231 schaltet die Bank, die ein Hardwareteil ist, von der zweiten Bank 2331 in die erste Bank 2332 um.When the arithmetic section 210 switches the component from the non-secure component to the secure component, the bank switching section 231 disables the second bank 2332 and enables the first bank 2331. That is, the bank switching section 231 switches the effective bank from the second bank 2332 to the first bank 2331 at. Specifically, the bank switching section 231 writes the number indicating the first bank 2331 in the bank number register 233a to switch the effective bank from the second bank 2332 to the first bank 2331. That is, the bank switching section 231 switches the bank, which is a hardware part, from the second bank 2331 to the first bank 2332 .

Wie vorstehend beschrieben ist, da die zweite Bank 2332 in die erste Bank 2331 umgeschaltet wird, wird die Zugriffsregion der zweiten Bank 2332 in die Zugriffsregion der ersten Bank 2331 umgeschaltet. Somit wird die Zugriffsregion in denselben Zustand wie in einem Fall geändert, in dem die Adressdaten, die die dritte Speicherregion des Speicherabschnitts 220 angeben, in die Adressdaten, die die erste Speicherregion des Speicherabschnitts 220 angeben, umgeschrieben werden und die Adressdaten, die die vierte Speicherregion des Speicherabschnitts 220 angeben, in die Adressdaten, die die zweite Speicherregion des Speicherabschnitts 220 angeben, umgeschrieben werden. Ferner, da die zweite Bank 2332 in die erste Bank 2331 umgeschaltet wird, wird die Operationsregion der zweiten Bank 2332 in die Operationsregion der ersten Bank 2331 umgeschaltet. Somit wird die Operationsregion in denselben Zustand wie in einem Fall geändert, in dem die Operationsdaten entsprechend der dritten Speicherregion in die Operationsdaten entsprechend der ersten Speicherregion umgeschrieben werden und die Operationsdaten entsprechend der vierten Speicherregion in die Operationsdaten entsprechend der zweiten Speicherregion umgeschrieben werden. Wie vorstehend beschrieben ist, geben die Operationsdaten entsprechend der ersten Speicherregion an, dass, wenn der Arithmetikabschnitt 210 auf die erste Speicherregion zugreift, der Arithmetikabschnitt 210 die in der ersten Speicherregion gespeicherten Daten lesen und ausführen darf, jedoch die Daten nicht in die erste Speicherregion schreiben darf. Die Operationsdaten entsprechend der zweiten Speicherregion geben an, dass, wenn der Arithmetikabschnitt 210 auf die zweite Speicherregion zugreift, der Arithmetikabschnitt 210 die in der zweiten Speicherregion gespeicherten Daten lesen darf und die Daten in die zweite Speicherregion schreiben darf, jedoch die in der zweiten Speicherregion gespeicherten Daten nicht ausführen darf. Wie vorstehend beschrieben ist, wenn der Mikrocomputer 200 die Komponente von der nichtsicheren Komponente in die sichere Komponente umschaltet, schaltet der Bankumschaltabschnitt 231 die Bank von der Bank entsprechend der nichtsicheren Komponente in die Bank entsprechend der sicheren Komponente um. Somit werden die Speicherschutzinformationen mit einem Hardwareverfahren durch Umschalten der Bank umgeschaltet.As described above, since the second bank 2332 is switched to the first bank 2331, the access region of the second bank 2332 is switched to the access region of the first bank 2331. Thus, the access region is changed to the same state as in a case where the address data indicative of the third memory region of the memory section 220 is rewritten to the address data indicative of the first memory region of the memory section 220 and the address data indicative of the fourth memory region of the memory section 220 to which address data indicating the second memory region of the memory section 220 is rewritten. Further, since the second bank 2332 is switched to the first bank 2331, the operation region of the second bank 2332 is switched to the operation region of the first bank 2331. Thus, the operation region is changed to the same state as in a case where the operation data corresponding to the third storage region is rewritten to the operation data corresponding to the first storage region and the operation data corresponding to the fourth storage region is rewritten to the operation data corresponding to the second storage region. As described above, the operation data corresponding to the first memory region indicates that when the arithmetic section 210 accesses the first memory region, the arithmetic section 210 is allowed to read and execute the data stored in the first memory region, but not write the data into the first memory region allowed. The operation data corresponding to the second memory region indicates that when the arithmetic section 210 accesses the second memory region, the arithmetic section 210 is allowed to read the data stored in the second memory region and write the data in the second memory region but the data stored in the second memory region not allowed to execute data. As described above, when the microcomputer 200 switches the component from the non-secure component to the secure component, the bank switching section 231 switches the bank from the bank corresponding to the non-secure component to the bank corresponding to the secure component. Thus, the memory protection information is switched with a hardware method by switching the bank.

Wie vorstehend beschrieben ist, wenn der Mikrocomputer 200 die gegenwärtige Komponente in die Zielkomponente umschaltet, schaltet der Mikrocomputer 200 die gegenwärtige Bank in die Zielbank um, die der Zielkomponente entspricht, indem er die Nummer der Zielbank in das Banknummernregister 233a schreibt. Das heißt, der Mikrocomputer 200 kann den Zugriff des Arithmetikabschnitts 210 auf den Speicherabschnitt 220 erlauben oder verbieten, um den Speicherabschnitt 220 zu schützen, indem er die Nummer der Zielbank, die der Zielkomponente entspricht, in das Banknummernregister 233a schreibt. Ferner erlaubt oder verbietet der Mikrocomputer 200 den Zugriff des Arithmetikabschnitts 210 auf den Speicherabschnitt 220, um den Speicherabschnitt 220 zu schützen, basierend auf den Speicherschutzinformationen, die in den mehreren Registern der Zielbank gespeichert sind.As described above, when the microcomputer 200 switches the current component to the target component, the microcomputer 200 switches the current bank to the target bank corresponding to the target component by writing the target bank number in the bank number register 233a. That is, the microcomputer 200 can permit or prohibit the arithmetic section 210 from accessing the memory section 220 to protect the memory section 220 by writing the target bank number corresponding to the target component in the bank number register 233a. Further, the microcomputer 200 permits or prohibits the arithmetic section 210 from accessing the memory section 220 to protect the memory section 220 based on the memory protection information stored in the plurality of registers of the target bank.

Wenn beispielsweise der Mikrocomputer 200 die Komponente von der gegenwärtigen Komponente, die die sichere Komponente ist, in die Zielkomponente umschaltet, die die nichtsichere Komponente ist, wird der Speicherabschnitt 220 nur durch Schreiben der Banknummer der Zielbank entsprechend der Zielkomponente in das Banknummernregister 233a geschützt. Auf ähnliche Weise, wenn der Mikrocomputer 200 die gegenwärtige Komponente, die die nichtsichere Komponente ist, in die Zielkomponente umschaltet, die die sichere Komponente ist, wird der Speicherabschnitt 220 nur durch Schreiben der Banknummer der Zielbank entsprechend der Zielkomponente in das Banknummernregister 233a geschützt.For example, when the microcomputer 200 switches the component from the current component that is the secure component to the target component that is the non-secure component, the memory section 220 is protected only by writing the bank number of the target bank corresponding to the target component into the bank number register 233a. Similarly, when the microcomputer 200 switches the current component, which is the non-secure component, to the target component, which is the secure component, the memory section 220 is protected only by writing the bank number of the target bank corresponding to the target component into the bank number register 233a.

Wie vorstehend beschrieben ist, wenn der Arithmetikabschnitt 210 die gegenwärtige Komponente, die eine der mehreren Komponenten ist, die gegenwärtig durch den Arithmetikabschnitt 210 ausgeführt werden, in die Zielkomponente umschaltet, schreibt der Umschaltabschnitt die Nummer, die die Zielbank angibt, die mit der Zielkomponente korreliert, in das Banknummernregister 233a, um die Zielbank zu aktivieren. Dann erlaubt oder verbietet der Schutzabschnitt 230 den Zugriff des Arithmetikabschnitts 210 auf den Speicherabschnitt 220 basierend auf den Speicherschutzinformationen, die in den mehreren Registern der Zielbank gespeichert sind, die durch dem Umschaltabschnitt S30, S40 aktiviert wird, um den Speicherabschnitt 220 zu schützen. Das heißt, wenn der Mikrocomputer 200 die gegenwärtige Komponente in die Zielkomponente umschaltet, muss der Mikrocomputer 200 nicht mehrere Register umschreiben, wie im Vergleichsbeispiel beschrieben ist. Somit wird Overhead in dem Mikrocomputer 200 reduziert. Das heißt, wenn der Mikrocomputer 200 mehrere Bänke 2331 bis 233n entsprechend den mehreren Komponenten beinhaltet, muss der Mikrocomputer 200 nur eine Nummer der gegenwärtigen Bank entsprechend der gegenwärtigen Komponente in die Nummer der Zielbank entsprechend der Zielkomponente umschreiben. Das heißt, Overhead wird verglichen mit einem Fall reduziert, in dem mehrere Register durch den Mikrocomputer umgeschrieben werden, wie in dem in 8 dargestellten Vergleichsbeispiel erläutert ist.As described above, when the arithmetic section 210 switches the current component, which is one of the plurality of components currently being executed by the arithmetic section 210, to the target component, the switching section writes the number indicating the target bank correlating with the target component , into the bank number register 233a to activate the target bank. Then, the protection section 230 allows or prohibits the arithmetic section 210 from accessing the memory section 220 based on the memory protection information stored in the plurality of registers of the target bank activated by the switch section S30, S40 to protect the memory section 220. That is, when the microcomputer 200 switches the current component to the target component, the microcomputer 200 does not need to rewrite multiple registers as described in the comparative example. Thus, overhead in the microcomputer 200 is reduced. That is, when the microcomputer 200 includes a plurality of banks 2331 to 233n corresponding to the plurality of components, the microcomputer 200 only needs to rewrite a current bank number corresponding to the current component to the target bank number corresponding to the target component. That is, overhead is reduced compared with a case where a plurality of registers are rewritten by the microcomputer as in FIG 8th illustrated comparative example is explained.

Im Allgemeinen ist eine Echtzeitperformance in der elektronischen Steuervorrichtung, die die an dem Fahrzeug angebrachten Einrichtungen steuert, wichtig. Ferner wird in der elektronischen Steuervorrichtung, die die am Fahrzeug angebrachten Einrichtungen steuert, der Ausführungszustand der Komponente häufig beziehungsweise regelmäßig umgeschaltet. Wie vorstehend beschrieben ist, da der Mikrocomputer 200 Overhead reduziert, kann der Mikrocomputer 200 in der elektronischen Steuervorrichtung verwendet werden, die die am Fahrzeug angebrachten Einrichtungen steuert. Insbesondere kann der Mikrocomputer 200 in der elektronischen Steuervorrichtung verwendet werden, die Antriebsstrangeinrichtungen steuert. Das heißt, der Mikrocomputer 200 erfüllt angemessen die Echtzeitperformance, die in der elektronischen Steuervorrichtung erforderlich ist.In general, a real-time performance in the electronic control device that the on controls the vehicle-mounted devices, important. Further, in the electronic control device that controls the vehicle-mounted devices, the execution state of the component is frequently switched. As described above, since the microcomputer 200 reduces overhead, the microcomputer 200 can be used in the electronic control device that controls the vehicle-mounted devices. In particular, the microcomputer 200 can be used in the electronic control device that controls power train devices. That is, the microcomputer 200 adequately satisfies the real-time performance required in the electronic control device.

In der vorliegenden Ausführungsform bestätigt der Bankumschaltabschnitt 231 den Programmzähler 211 und führt die in 6 dargestellte Verarbeitung nur aus, wenn der Wert des Programmzählers 211 sich auf diskontinuierliche Weise ändert. Das heißt, der Arithmetikabschnitt 210 steuert den Spezifizierungsabschnitt S10, den Korrelationsabschnitt S20 und den Umschaltabschnitt S30, S40, um nur zu operieren, wenn der Wert des Programmzählers 211 sich auf diskontinuierliche Weise ändert.In the present embodiment, the bank switching section 231 confirms the program counter 211 and executes the in 6 processing shown only when the value of the program counter 211 changes in a discontinuous manner. That is, the arithmetic section 210 controls the specifying section S10, the correlating section S20 and the switching section S30, S40 to operate only when the value of the program counter 211 changes in a discontinuous manner.

Wenn der Wert des Programmzählers 211 sich kontinuierlich ändert, führt der Arithmetikabschnitt 210 die in dem Speicherabschnitt 220 gespeicherten Befehle in einer vorbestimmten Reihenfolge aus, und der Wert des Programmzählers 211 wird durch Inkrementieren eines konstanten Werts nach jeder Ausführung des Befehls aktualisiert. Wenn der Wert des Programmzählers 211 sich diskontinuierlich ändert, wird der Wert des Programmzählers 211 auf eine spezifische Adresse aktualisiert, die basierend auf einem Ausführungsergebnis des Befehls durch den Arithmetikabschnitt 210 definiert wird. Wenn beispielsweise der Arithmetikabschnitt 210 eine Interrupt-Verarbeitung, eine Task-Verarbeitung und eine Funktionsverarbeitung ausführt, wird der Wert des Programmzählers 211 auf die spezifische Adresse aktualisiert. Somit ist es möglich, wenn der Arithmetikabschnitt 210 die in dem Speicherabschnitt 220 gespeicherten Befehle in der vorbestimmten Reihenfolge ausführt, dass der Bankumschaltabschnitt 231 die in 6 dargestellte Verarbeitung überspringt. Ferner ist es möglich, wenn der Arithmetikabschnitt 210 die Interrupt-Verarbeitung, die Task-Verarbeitung oder die Funktionsverarbeitung ausführt, dass der Bankumschaltabschnitt 231 die in 6 dargestellte Verarbeitung ausführt. Mit dieser Konfiguration wird der Bankumschaltabschnitt 231 nur aktiviert, wenn die Operation des Bankumschaltabschnitts 231 notwendig ist. Somit kann der Energieverbrauch des Mikrocomputers 200 reduziert werden.When the value of the program counter 211 changes continuously, the arithmetic section 210 executes the instructions stored in the storage section 220 in a predetermined order, and the value of the program counter 211 is updated by incrementing a constant value after each execution of the instruction. When the value of the program counter 211 changes discontinuously, the value of the program counter 211 is updated to a specific address defined by the arithmetic section 210 based on an execution result of the instruction. For example, when the arithmetic section 210 executes interrupt processing, task processing, and function processing, the value of the program counter 211 is updated to the specific address. Thus, when the arithmetic section 210 executes the instructions stored in the storage section 220 in the predetermined order, it is possible for the bank switching section 231 to switch the in 6 shown skips processing. Further, when the arithmetic section 210 executes the interrupt processing, the task processing, or the function processing, it is possible for the bank switching section 231 to switch the in 6 performs the processing shown. With this configuration, the bank switching section 231 is activated only when the operation of the bank switching section 231 is necessary. Thus, power consumption of the microcomputer 200 can be reduced.

In der vorliegenden Ausführungsform erlaubt oder verbietet der Schutzabschnitt 230 dem Arithmetikabschnitt 210 basierend auf dem Zugriffstyp, auf den Speicherabschnitt 220 zuzugreifen. In einer herkömmlichen Konfiguration wird der Schutzabschnitt für gewöhnlich in einen Anweisungsschutzabschnitt, der in dem Speicherabschnitt gespeicherte Anweisungen schützt, und einen Datenschutzabschnitt unterteilt, der in dem Speicherabschnitt gespeicherte Daten schützt. In der vorliegenden Ausführungsform, da der Schutzabschnitt 230 dem Arithmetikabschnitt 210 basierend auf dem Zugriffstyp erlaubt oder verbietet, auf den Speicherabschnitt 220 zuzugreifen, muss der Schutzabschnitt 230 nicht in den Anweisungsschutzabschnitt und den Datenschutzabschnitt unterteilt werden. Ferner kann in einem Fall, in dem der Lesezugriff erlaubt werden muss und der Schreibzugriff verboten werden muss, der Schutzabschnitt 230 gemäß der vorliegenden Ausführungsform den Lesezugriff erlauben und den Schreibzugriff verbieten, indem er den Zugriffstyp jedes Zugriffs bestimmt. Somit wird Flexibilität beim Schutz des Speicherabschnitts 20 verbessert.In the present embodiment, the protection section 230 allows or prohibits the arithmetic section 210 from accessing the memory section 220 based on the access type. In a conventional configuration, the protection section is usually divided into an instruction protection section that protects instructions stored in the storage section and a data protection section that protects data stored in the storage section. In the present embodiment, since the protection section 230 allows or prohibits the arithmetic section 210 to access the memory section 220 based on the access type, the protection section 230 need not be divided into the instruction protection section and the data protection section. Further, in a case where read access must be permitted and write access must be prohibited, the protection section 230 according to the present embodiment can permit read access and prohibit write access by determining the access type of each access. Thus, flexibility in protecting the memory section 20 is enhanced.

Ferner können die Spezifizierungsabschnitt S10, der die Zielkomponente spezifiziert, der Korrelationsabschnitt S20, der die Zielkomponente mit der Zielbank korreliert, und der Umschaltabschnitt S30, S40, der die effektive Bank festlegt, durch ein Softwareprogramm oder eine Hardwareschaltung erlangt werden.Further, the specifying section S10 that specifies the target component, the correlating section S20 that correlates the target component with the target bank, and the switching section S30, S40 that sets the effective bank can be obtained by a software program or a hardware circuit.

Die Erfindung lässt sich folgendermaßen zusammenfassen. Eine Verarbeitungsvorrichtung beinhaltet einen Arithmetikabschnitt, einen Speicherabschnitt und einen Schutzabschnitt. Der Schutzabschnitt schützt den Speicherabschnitt, indem er dem Arithmetikabschnitt erlaubt oder verbietet, auf den Speicherabschnitt zuzugreifen. Der Speicherabschnitt speichert ein Softwareprogramm, das eine sichere Komponente und eine nichtsichere Komponente beinhaltet. Der Schutzabschnitt speichert Adressdaten, Operationsdaten und Schutzdaten. Wenn der Arithmetikabschnitt eine gegenwärtige Komponente von der sicheren Komponente in die nichtsichere Komponente umschaltet, schreibt der Arithmetikabschnitt die Schutzdaten um, um einen Schutz des Speicherabschnitts zu aktivieren. Wenn der Arithmetikabschnitt die gegenwärtige Komponente von der nichtsicheren Komponente in die sichere Komponente umschaltet, schreibt der Arithmetikabschnitt die Schutzdaten um, um den Schutz des Speicherabschnitts zu deaktivieren.The invention can be summarized as follows. A processing device includes an arithmetic section, a storage section, and a protection section. The protection section protects the memory section by allowing or prohibiting the arithmetic section to access the memory section. The storage section stores a software program including a secure component and a non-secure component. The protection section stores address data, operation data and protection data. When the arithmetic section switches a current component from the secure component to the non-secure component, the arithmetic section rewrites the protection data to enable protection of the storage section. When the arithmetic section switches the current component from the non-secure component to the secure component, the arithmetic section rewrites the protection data to disable protection of the memory section.

Claims (6)

Verarbeitungsvorrichtung, aufweisend: einen Arithmetikabschnitt (10); einen Speicherabschnitt (20), der Daten speichert, auf deren Basis der Arithmetikabschnitt (10) eine arithmetische Verarbeitung ausführt; und einen Schutzabschnitt (30), der den Speicherabschnitt (20) schützt, indem er einen Zugriff des Arithmetikabschnitts (10) auf den Speicherabschnitt (20) basierend auf einem Zugriffstyp erlaubt oder verbietet, wobei der Speicherabschnitt (20) ein Softwareprogramm speichert, das mehrere Komponenten beinhaltet, und die mehreren Komponenten mindestens eine sichere Komponente und eine nichtsichere Komponente beinhalten, wobei die sichere Komponente einen vorbestimmten Sicherheitsstandard erfüllt und die nichtsichere Komponente den vorbestimmten Sicherheitsstandard nicht erfüllt, wobei der Schutzabschnitt (30) mehrere Register (31) und einen Verwaltungsabschnitt (32) beinhaltet, wobei die mehreren Register (31) Adressdaten, Operationsdaten und Schutzdaten speichern, die Adressdaten einen Adressbereich des Speicherabschnitts (20) angeben, auf den durch den Arithmetikabschnitt (10) zuzugreifen ist, die Operationsdaten eine spezifische Operation angeben, die durch den Arithmetikabschnitt (10) auf den Speicherabschnitt (20) basierend dem Zugriffstyp auszuführen ist, und die Schutzdaten angeben, ob ein Schutz des Speicherabschnitts (20) aktiviert oder deaktiviert ist, wobei, wenn der Verwaltungsabschnitt (32) basierend auf den Schutzdaten bestimmt, dass der Schutz des Speicherabschnitts (20) durch den Arithmetikabschnitt (10) aktiviert ist, der Verwaltungsabschnitt (32) den Adressbereich des Speicherabschnitts (20), auf den durch den Arithmetikabschnitt (10) zuzugreifen ist, basierend auf den Adressdaten spezifiziert und die spezifische Operation, die durch den Arithmetikabschnitt (10) auf den Speicherabschnitt (20) auszuführen ist, basierend auf den Operationsdaten bestimmt, wobei, wenn der Verwaltungsabschnitt (32) basierend auf den Schutzdaten bestimmt, dass der Schutz des Speicherabschnitts (20) durch den Arithmetikabschnitt (10) deaktiviert ist, der Verwaltungsabschnitt (32) eine Spezifikation des Adressbereichs des Speicherabschnitts (20), auf den durch den Arithmetikabschnitt (10) zuzugreifen ist, und eine Bestimmung der spezifischen Operation, die durch den Arithmetikabschnitt (10) auf den Speicherabschnitt (20) auszuführen ist, überspringt, wobei eine Größe der Schutzdaten kleiner als eine Summe einer Größe der Adressdaten und einer Größe der Operationsdaten ist, wobei, wenn der Arithmetikabschnitt (10) eine gegenwärtige Komponente, die eine der mehreren Komponenten ist, die gegenwärtig durch den Arithmetikabschnitt (10) ausgeführt werden, von der nichtsicheren Komponente in die sichere Komponente umschaltet, der Arithmetikabschnitt (10) die Schutzdaten, die in den mehreren Registern (31) gespeichert sind, umschreibt, um den Schutz des Speicherabschnitts (20) zu deaktivieren, und wobei, wenn der Arithmetikabschnitt (10) die gegenwärtige Komponente von der sicheren Komponente in die nichtsichere Komponente umschaltet, der Arithmetikabschnitt (10) die Schutzdaten, die in den mehreren Registern (31) gespeichert sind, umschreibt, um den Schutz des Speicherabschnitts (20) zu aktivieren.A processing device comprising: an arithmetic section (10); a storage section (20) storing data based on which the arithmetic section (10) generates a performs arithmetic processing; and a protection section (30) that protects the storage section (20) by allowing or prohibiting an access of the arithmetic section (10) to the storage section (20) based on an access type, the storage section (20) storing a software program containing plural includes components, and the plurality of components includes at least a secure component and a non-secure component, the secure component meeting a predetermined security standard and the non-secure component failing to meet the predetermined security standard, wherein the protection section (30) includes a plurality of registers (31) and a management section ( 32), the plurality of registers (31) storing address data, operation data and protection data, the address data indicating an address range of the memory section (20) to be accessed by the arithmetic section (10), the operation data indicating a specific operation performed by the Arithmetic section (10 ) is to be executed on the memory section (20) based on the access type, and the protection data indicate whether protection of the memory section (20) is activated or deactivated, wherein if the management section (32) determines based on the protection data that the protection of the memory section (20) is activated by the arithmetic section (10), the management section (32) specifies the address range of the memory section (20) to be accessed by the arithmetic section (10) based on the address data and the specific operation to be performed by the arithmetic section (10) to be executed on the memory section (20) is determined based on the operation data, wherein when the management section (32) determines based on the protection data that the protection of the memory section (20) by the arithmetic section (10) is disabled, the Management section (32) a specification of the address range of the memory section (20) to which the arithmetic section (10) is to be accessed, and a determination of the specific operation to be performed by the arithmetic section (10) on the memory section (20), wherein a size of the protection data is smaller than a sum of a size of the address data and a size of the operation data wherein when the arithmetic section (10) switches a current component which is one of the plurality of components currently being executed by the arithmetic section (10) from the non-secure component to the secure component, the arithmetic section (10) saves the protection data, stored in the plurality of registers (31) to disable protection of the memory section (20), and wherein when the arithmetic section (10) switches the current component from the secure component to the non-secure component, the arithmetic section (10 ) rewrites the protection data stored in the plurality of registers (31) to protect the S to activate the memory section (20). Verarbeitungsvorrichtung gemäß Anspruch 1, dadurch gekennzeichnet, dass die mindestens eine sichere Komponente eine erste sichere Komponente und eine zweite sichere Komponente beinhaltet, die erste sichere Komponente eine Sicherheitsebene aufweist, die niedriger als eine vorbestimmte Sicherheitsebene ist, die zweite sichere Komponente eine Sicherheitsebene aufweist, die gleich oder größer als die vorbestimmte Sicherheitsebene ist, wenn der Arithmetikabschnitt (10) die gegenwärtige Komponente von der zweiten sicheren Komponente in die erste sichere Komponente umschaltet, der Arithmetikabschnitt (10) die Schutzdaten, die in den mehreren Registern (31) gespeichert sind, umschaltet, um den Schutz des Speicherabschnitts (20) zu aktivieren, und wenn der Arithmetikabschnitt (10) die gegenwärtige Komponente von der ersten sicheren Komponente in die zweite sichere Komponente umschaltet, der Arithmetikabschnitt (10) die Schutzdaten, die in den mehreren Registern (31) gespeichert sind, umschreibt, um den Schutz des Speicherabschnitts (20) zu deaktivieren.Processing device according to claim 1 , characterized in that the at least one secure component includes a first secure component and a second secure component, the first secure component has a security level that is lower than a predetermined security level, the second secure component has a security level that is equal to or greater than the predetermined security level is when the arithmetic section (10) switches the current component from the second secure component to the first secure component, the arithmetic section (10) switches the protection data stored in the plurality of registers (31) to switch the protection of the storage section (20), and when the arithmetic section (10) switches the current component from the first secure component to the second secure component, the arithmetic section (10) rewrites the protection data stored in the plurality of registers (31). to protect the memory section ( 20) to disable. Verarbeitungsvorrichtung, die ein Softwareprogramm ausführt, das mehrere Komponenten beinhaltet, aufweisend: einen Arithmetikabschnitt (210), der eine arithmetische Verarbeitung basierend auf jeder der mehreren Komponenten ausführt; einen Speicherabschnitt (220), der Daten für die arithmetische Verarbeitung, die durch den Arithmetikabschnitt (210) ausgeführt wird, speichert; und einen Schutzabschnitt (230), der den Speicherabschnitt (220) schützt, indem er einen Zugriff des Arithmetikabschnitts (210) auf den Speicherabschnitt (220) basierend auf einem Zugriffstyp erlaubt oder verbietet, wobei der Schutzabschnitt (230) mehrere Bänke (2331 bis 233n), ein Banknummernregister (233a), einen Spezifizierungsabschnitt (S10), einen Korrelationsabschnitt (S20) und einen Umschaltabschnitt (S30, S40) beinhaltet, wobei jede der mehreren Bänke (2331 bis 233n) mehrere Register beinhaltet, in denen Speicherschutzinformationen des Speicherabschnitts (220) gespeichert werden, wobei die Speicherschutzinformationen Adressdaten und Operationsdaten beinhalten, die Adressdaten einen Adressbereich des Speicherabschnitts (220), auf den durch den Arithmetikabschnitt (210) zuzugreifen ist, angeben und die Operationsdaten eine spezifische Operation, die durch den Arithmetikabschnitt (210) auf den Speicherabschnitt (220) basierend auf dem Zugriffstyp auszuführen ist, angeben, wobei das Banknummernregister (233a) eine Nummer speichert, die eine der zu aktivierenden mehreren Bänke (2331 bis 233n) angibt, wobei der Spezifizierungsabschnitt (S10) eine Zielkomponente, die durch den Arithmetikabschnitt (210) auszuführen ist, aus den mehreren Komponenten spezifiziert, wobei der Korrelationsabschnitt (S20) die Zielkomponente mit einer Zielbank korreliert, die aus den mehreren Bänken (2331 bis 233n) ausgewählt wird, wobei, wenn der Arithmetikabschnitt (210) eine gegenwärtige Komponente, die eine der mehreren Komponenten ist, die gegenwärtig durch den Arithmetikabschnitt (210) ausgeführt werden, in die Zielkomponente umschaltet, der Umschaltabschnitt (S30, S40) eine Nummer, die die Zielbank angibt, die mit der Zielkomponente korreliert ist, in das Banknummernregister (233a) schreibt, um die Zielbank zu aktivieren, und wobei der Schutzabschnitt (230) den Zugriff des Arithmetikabschnitts (210) auf den Speicherabschnitt (220) basierend auf den Speicherschutzinformationen, die in den mehreren Registern der Zielbank gespeichert sind, die durch den Umschaltabschnitt (S30, S40) aktiviert wird, erlaubt oder verbietet, um den Speicherabschnitt (220) zu schützen.A processing device that executes a software program including a plurality of components, comprising: an arithmetic section (210) that performs arithmetic processing based on each of the plurality of components; a storage section (220) storing data for arithmetic processing performed by said arithmetic section (210); and a protection section (230) that protects the storage section (220) by allowing or prohibiting an access of the arithmetic section (210) to the storage section (220) based on an access type, the protection section (230) protecting a plurality of banks (2331 to 233n ), a bank number register (233a), a specifying section (S10), a correlation section (S20), and a switching section (S30, S40), each of the plurality of banks (2331 to 233n) including a plurality of registers in which memory protection information of the memory section (220 ) are stored, the memory protection information containing address data and operation data, the address data containing an address range of the memory section (220) to be accessed by the arithmetic section (210), and the operation data indicates a specific operation to be performed by the arithmetic section (210) on the memory section (220) based on the access type, the bank number register (233a ) stores a number indicating one of the plural banks (2331 to 233n) to be activated, the specifying section (S10) specifying a target component to be executed by the arithmetic section (210) from the plural components, the correlating section (S20) the target component correlates with a target bank selected from the plurality of banks (2331 to 233n), wherein when the arithmetic section (210) has a current component that is one of the plurality of components currently being executed by the arithmetic section (210), switches to the target component, the switching section (S30, S40) a number indicating the target bank associated with the target k omponente is correlated, writes in the bank number register (233a) to activate the target bank, and wherein the protection section (230) the access of the arithmetic section (210) to the memory section (220) based on the memory protection information in the plurality of registers of the target bank are stored which is activated by the switching section (S30, S40) is allowed or prohibited to protect the storage section (220). Verarbeitungsvorrichtung gemäß Anspruch 3, ferner gekennzeichnet durch einen Programmzähler (211), der einen Wert speichert, auf dessen Basis der Arithmetikabschnitt (210) die arithmetische Verarbeitung ausführt, wobei der Arithmetikabschnitt (210) den Spezifizierungsabschnitt (S10), den Korrelationsabschnitt (S20) und den Umschaltabschnitt (S30, S40) des Schutzabschnitts (S230) steuert, um nur zu operieren, wenn der Wert des Programmzählers (211) sich auf diskontinuierliche Weise ändert.Processing device according to claim 3 , further characterized by a program counter (211) storing a value based on which the arithmetic section (210) carries out the arithmetic processing, the arithmetic section (210) including the specifying section (S10), the correlating section (S20) and the switching section (S30 , S40) of the protection section (S230) to operate only when the value of the program counter (211) changes in a discontinuous manner. Verarbeitungsvorrichtung gemäß Anspruch 3 oder 4, dadurch gekennzeichnet, dass jede der mehreren Komponenten, die in dem Softwareprogramm beinhaltet sind, einem Ausführungsprogramm entspricht, das in einem vorbestimmten Adressbereich des Speicherabschnitts (220) gespeichert ist, der Wert des Programmzählers (211) eine Adresse des Speicherabschnitts (220) angibt, in dem das auszuführende Ausführungsprogramm gespeichert ist, der Spezifizierungsabschnitt (S10) Informationen speichert, die die vorbestimmten Adressbereiche des Speicherabschnitts (220) angeben, in denen die Ausführungsbereiche der mehreren Komponenten gespeichert sind, und wenn der Spezifizierungsabschnitt (S10) basierend auf den Informationen, die im Spezifizierungsabschnitt (S10) gespeichert sind, bestimmt, dass die Adresse des Speicherabschnitts (220), in dem das auszuführende Ausführungsprogramm gespeichert ist, in einem der vorbestimmten Adressbereiche des Speicherabschnitts (220), in denen die Ausführungsprogramme der mehreren Komponenten gespeichert sind, beinhaltet ist, der Spezifizierungsabschnitt (S10) die Komponente entsprechend dem einen der vorbestimmten Adressbereiche des Speicherabschnitts (220) als die Zielkomponente spezifiziert.Processing device according to claim 3 or 4 , characterized in that each of the plurality of components included in the software program corresponds to an execution program stored in a predetermined address area of the memory section (220), the value of the program counter (211) indicates an address of the memory section (220), in which the execution program to be executed is stored, the specifying section (S10) stores information indicating the predetermined address areas of the memory section (220) in which the execution areas of the plurality of components are stored, and when the specifying section (S10) based on the information that are stored in the specifying section (S10), determines that the address of the memory section (220) in which the execution program to be executed is stored is included in one of predetermined address areas of the memory section (220) in which the execution programs of the plurality of components are stored et, the specifying section (S10) specifies the component corresponding to the one of the predetermined address areas of the storage section (220) as the target component. Verarbeitungsvorrichtung gemäß Anspruch 5, dadurch gekennzeichnet, dass der Arithmetikabschnitt (210) die arithmetische Verarbeitung basierend auf dem Wert des Programmzählers (211) ausführt, und der Spezifizierungsabschnitt (S10) den vorbestimmten Adressbereich des Speicherabschnitts (220), in dem das durch den Arithmetikabschnitt (210) auszuführende Ausführungsprogramm gespeichert ist, basierend auf dem Wert des Programmzählers (211) spezifiziert.Processing device according to claim 5 , characterized in that the arithmetic section (210) executes the arithmetic processing based on the value of the program counter (211), and the specifying section (S10) the predetermined address area of the memory section (220) in which the execution program to be executed by the arithmetic section (210). is stored based on the value of the program counter (211).
DE102013218646.0A 2012-09-18 2013-09-17 PROCESSING DEVICE Active DE102013218646B4 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2012-204490 2012-09-18
JP2012204490A JP5765311B2 (en) 2012-09-18 2012-09-18 Microcomputer
JP2013047146A JP2014174758A (en) 2013-03-08 2013-03-08 Processor
JP2013-47146 2013-03-08

Publications (2)

Publication Number Publication Date
DE102013218646A1 DE102013218646A1 (en) 2014-03-20
DE102013218646B4 true DE102013218646B4 (en) 2023-01-19

Family

ID=50181963

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013218646.0A Active DE102013218646B4 (en) 2012-09-18 2013-09-17 PROCESSING DEVICE

Country Status (1)

Country Link
DE (1) DE102013218646B4 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10105284A1 (en) 2001-02-06 2002-08-29 Infineon Technologies Ag Microprocessor circuit for data carriers and method for organizing access to data stored in a memory
US20020188852A1 (en) 2001-05-14 2002-12-12 Tadakatsu Masaki Illegal access monitoring device, IC card, and illegal access monitoring method
JP2007287103A (en) 2006-04-20 2007-11-01 Nec Electronics Corp Microcomputer and memory access control method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10105284A1 (en) 2001-02-06 2002-08-29 Infineon Technologies Ag Microprocessor circuit for data carriers and method for organizing access to data stored in a memory
US20020188852A1 (en) 2001-05-14 2002-12-12 Tadakatsu Masaki Illegal access monitoring device, IC card, and illegal access monitoring method
JP2007287103A (en) 2006-04-20 2007-11-01 Nec Electronics Corp Microcomputer and memory access control method

Also Published As

Publication number Publication date
DE102013218646A1 (en) 2014-03-20

Similar Documents

Publication Publication Date Title
DE69533312T2 (en) PROTECTED STORAGE SYSTEM AND METHOD THEREFOR
DE102013022405B3 (en) Protection of global registers in a multithreaded processor
DE102014201682A1 (en) Method for coexistence of software with different security levels in a multicore processor system
DE102005022893B3 (en) Memory card e.g. multi media card, for data storage, has memory management unit providing open and safe interface to access memory blocks and protocol adapter accessing contents of card from host system connected with adapter by interface
EP3254227B1 (en) Method for protecting security-relevant data in a cache memory
DE112016002785T5 (en) Electronic control units for vehicles
EP2698678A2 (en) Configuration technique for a control device with applications that communicate with each other
DE102012209789B4 (en) ON-VEHICLE ELECTRICAL CONTROL DEVICE
DE102017123812A1 (en) control device
DE102013218646B4 (en) PROCESSING DEVICE
DE102013016114B3 (en) Bus system and method for protected memory accesses
DE112020002799T5 (en) VEHICLE CONTROL DEVICE, VEHICLE DISPLAY SYSTEM AND VEHICLE DISPLAY CONTROL METHOD
DE102016200413A1 (en) MICROCOMPUTER
DE102016224206A1 (en) VEHICLE CONTROL DEVICE
EP2793196A2 (en) Tachograph et on-board unit for a utility vehicle
DE102014212018A1 (en) Method and circuit for preventing memory protection infringements
DE102013202961A1 (en) Method for monitoring stack memory in operating system of control unit of motor vehicle, involves carrying out predefined action if characteristic parameters of stack memory before and after execution of program codes are not identical
DE102017219241A1 (en) Method and semiconductor circuit for protecting an operating system of a security system of a vehicle
DE102019104267A1 (en) SAFETY SAFETY FOR THE COMPLIANCE OF FUNCTIONAL SAFETY IN THE AUTOMOTIVE INDUSTRY WITH INDEPENDENT TRACKED PROCESSES
EP0890172B1 (en) Solid-state memory device
DE102015210539A1 (en) Memory protection unit, memory management unit and microcontroller
DE102022206744B3 (en) RESOURCE PROTECTION
EP0966711A1 (en) Microcomputer with a memory management unit
WO2017102655A1 (en) Microcontroller system and method for controlling memory access in a microcontroller system
DE102016222695A1 (en) Method for automatically and dynamically reconfiguring a memory protection unit and a microcontroller with a memory protection unit

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R012 Request for examination validly filed

Effective date: 20140912

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R084 Declaration of willingness to licence