DE102012001756A1 - Vorrichtung mit einer Verarbeitungseinheit und einem Informationsspeicher - Google Patents

Vorrichtung mit einer Verarbeitungseinheit und einem Informationsspeicher Download PDF

Info

Publication number
DE102012001756A1
DE102012001756A1 DE102012001756A DE102012001756A DE102012001756A1 DE 102012001756 A1 DE102012001756 A1 DE 102012001756A1 DE 102012001756 A DE102012001756 A DE 102012001756A DE 102012001756 A DE102012001756 A DE 102012001756A DE 102012001756 A1 DE102012001756 A1 DE 102012001756A1
Authority
DE
Germany
Prior art keywords
unit
information
processing unit
memory
access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102012001756A
Other languages
English (en)
Inventor
Karl Herz
Jörg Syassen
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of DE102012001756A1 publication Critical patent/DE102012001756A1/de
Pending legal-status Critical Current

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/1433Protection 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 module or a part of a module
    • 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/1052Security improvement

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

Es werden Ausführungsformen beschrieben und dargestellt, die sich auf eine Verarbeitungseinheit und einen ersten Informationsspeicher beziehen.

Description

  • HINTERGRUND
  • Die Datenverarbeitung ist heutzutage bereits in fast alle Teile des Lebens eingeführt, und der Trend zu immer weiteren Einführungen nimmt immer noch stetig zu. So ist die Datenverarbeitung zum Beispiel in Datenkommunikationen, Sicherheitsanwendungen oder Anwendungen im Kraftfahrzeugbereich bereitgestellt, um Funktionen wie etwa eine sichere Übertragung von Daten, Authentisierung und Verifizierung oder eine sichere und geschützte Mobilität vorzusehen. Halbleitervorrichtungen wie etwa Mikrocontroller, die typischerweise eine Programmsteuerungseinheit wie zum Beispiel eine zentrale Verarbeitungseinheit bzw. CPU (Central Processing Unit) mit einem oder mehreren Kernen aufweisen, sind programmiert, um diese Funktionen zu erzielen. Für die Speicherung der Daten und des Programms sind ein Datenspeicher und ein Programmspeicher vorgesehen, die mit der CPU assoziiert sind. Außerdem kann in einigen Systemen ein weiterer Prozessor, wie etwa ein dedizierter Coprozessor, für die Verarbeitung bestimmter Aufgaben oder Funktionen vorgesehen sein.
  • Zusammenfassung
  • In Übereinstimmung mit einem Aspekt umfasst ein Verfahren das Liefern von ersten Informationen von einer ersten Einheit in einen ersten Informationsspeicher für das Durchführen einer ersten Operation einer Verarbeitungseinheit. Während der ersten Operation der Verarbeitungseinheit werden zweite Informationen zwischen der Verarbeitungseinheit und dem wenigstens ersten Informationsspeicher transferiert, wobei die erste Einheit während der ersten Operation der Verarbeitungseinheit nicht auf den ersten Informationsspeicher zugreifen kann, also dieser für die erste Einheit während der ersten Operation der Verarbeitungseinheit nicht zugänglich ist.
  • In Übereinstimmung mit einem weiteren Aspekt umfasst ein Verfahren zum Beschränken des Zugriffs auf einen Informationsspeicher das Anfordern einer Ausführung einer Subroutine oder eines Befehls, wobei die Ausführung von einer ersten Einheit angefordert wird und die Subroutine oder der Befehl von einer Verarbeitungseinheit ausgeführt wird. Die Informationen für die Ausführung der Subroutine oder des Befehls werden von der ersten Einheit zu einem ersten Informationsspeicher geliefert. Nachdem die Informationen dem ersten Informationsspeicher bereitgestellt worden sind, werden Zugriffsbeschränkungen, die den Zugriff auf den ersten Informationsspeicher für die erste Einheit beschränken, bereitgestellt.
  • In Übereinstimmung mit einem anderen Aspekt weist eine Vorrichtung eine Verarbeitungseinheit zum Durchführen einer Datenverarbeitungsoperation, einen ersten Informationsspeicher, auf den von der Verarbeitungseinheit zum Lesen zugegriffen werden kann und zum Schreiben zugegriffen werden kann, und eine erste Einheit zum Initiieren der Datenverarbeitungsoperation von der Verarbeitungseinheit auf. Eine Zugriffskontrolle bzw. Zugriffssteuerung ist vorgesehen, die so konfiguriert ist oder so konfigurierbar ist, dass sie von einem ersten Zugriffsmodus, in dem die erste Einheit auf den ersten Informationsspeicher zugreifen kann, d. h. in dem der erste Informationsspeicher für die erste Einheit zugänglich ist, in einen zweiten Modus umschaltet, in dem die erste Einheit während der Datenverarbeitungsoperation nicht auf den ersten Informationsspeicher zugreifen kann, d. h. in dem der erste Informationsspeicher für die erste Einheit während der Datenverarbeitung nicht zugänglich ist.
  • In Übereinstimmung mit einem weiteren Aspekt umfasst eine Vorrichtung einen Operationscodespeicher und einen Datenspeicher zum Speichern von Daten, die zwischen einer ersten Einheit und einer Datenverarbeitungseinheit transferiert werden. Die Datenverarbeitungseinheit ist so konfiguriert, dass sie eine Datenverarbeitungsoperation auf der Basis eines Operationscodes (Opcode) durchführt, der von der ersten Einheit in den Operationscodespeicher geschrieben worden ist. Ein Controller ist bereitgestellt, um den Datenspeicher vor einem Schreib- und Lesezugriff durch die erste Einheit zu schützen, wenn die Datenverarbeitungseinheit die Datenverarbeitungsoperation durchführt, und um den Schreib- und Lesezugriff für wenigstens die erste Einheit zu ermöglichen bzw. freizugeben, wenn die Datenverarbeitungsoperation abgeschlossen ist.
  • In Übereinstimmung mit einem anderen Aspekt umfasst eine Informationsspeicheranordnung einen Operationscodespeicher und einen Datenspeicher, wobei der Datenspeicher eine Vielzahl von Untereinheitsspeichern umfasst. Ein Controller ist bereitgestellt, um vor einer Datenverarbeitungsoperation, die mit einem in dem Operationscodespeicher gespeicherten Operationscode assoziiert ist, für jeden der Vielzahl von Untereinheitsspeichern einen Lese-/Schreibschutz während der Ausführung des Operationscodes zu konfigurieren.
  • Gemäß einem Aspekt wird ein Verfahren zur Verfügung gestellt, das Folgendes umfasst:
    Liefern von ersten Informationen von einer ersten Einheit in einen ersten Informationsspeicher zum Durchführen einer ersten Operation einer Verarbeitungseinheit;
    wobei während der ersten Operation der Verarbeitungseinheit zweite Informationen zwischen der Verarbeitungseinheit und dem wenigstens ersten Informationsspeicher transferiert werden,
    wobei der erste Informationsspeicher während der ersten Operation der Verarbeitungseinheit einen Zugriffsschutz aufweist, in dem der erste Informationsspeicher für die erste Einheit nicht zugänglich ist, also in dem die erste Einheit nicht auf den ersten Informationsspeicher zugreifen kann.
  • Vorteilhaft ist der erste Informationsspeicher während der ersten Operation der Verarbeitungseinheit nur für die Verarbeitungseinheit zum Lesen und Schreiben zugänglich.
  • Vorteilhaft umfaßt das Verfahren des Weiteren Folgendes:
    Zuführen der ersten Informationen von dem ersten Informationsspeicher zu der Verarbeitungseinheit; und
    Berechnen wenigstens eines Ergebnisses während der ersten Operation auf der Basis der ersten Informationen.
  • Vorteilhaft ist ein Datenverarbeitungstyp während der ersten Operation der Verarbeitungseinheit von der ersten Einheit durch das Schreiben eines Operationscodes in einen Operationscodespeicher auswählbar, wobei der Datenverarbeitungstyp einen Zugriffsschutztyp der ersten Operation während der ersten Operation bestimmt.
  • Vorteilhaft stellt der Zugriffsschutz für wenigstens einen Abschnitt oder wenigstens einen Unterspeicher des ersten Informationsspeichers einen anderen Zugriffsschutztyp als für einen anderen Abschnitt oder einen anderen Unterspeicher des ersten Informationsspeichers bereit.
  • Vorteilhaft ist die erste Einheit eine programmgesteuerte Einheit oder ein Peripheriegerät.
  • Vorteilhaft umfaßt die erste Operation eine Ausführung einer Subroutine oder eine Ausführung einer Sequenz von Subroutinen oder eine Ausführung eines Befehls oder eine Ausführung einer Sequenz von Befehlen, wobei die ersten Informationen wenigstens einen der folgenden umfassen:
    • – einen Eingangsparameter für die Subroutine oder die Sequenz von Subroutinen oder den Befehl oder die Sequenz von Befehlen und
    • – einen Identifikator für den Typ der Subroutine oder des Befehls.
  • Vorteilhaft ist die erste Operation eine Ausführung wenigstens einer bzw. eines von einer Subroutine oder einem Befehl oder einer Sequenz von Subroutinen oder einer Sequenz von Befehlen, wobei der erste Informationsspeicher automatisch gegenüber einem Lese-/Schreibzugriff gesperrt wird, wenn die Ausführung der Operation beginnt.
  • Vorteilhaft ist die erste Operation eine Ausführung einer Sequenz von Operationen, wobei zwischen zwei aufeinanderfolgenden Operationen der Sequenz von Operationen ein Zugriff durch die erste Einheit auf den ersten Informationsspeicher in Abhängigkeit von der vorher ausgeführten Operation der zwei aufeinanderfolgenden Operationen so ausgewählt wird, dass er sich in einem der folgenden Zugriffsmodi befindet:
    • – Schreiben freigegeben und Lesen blockiert,
    • – Schreiben freigegeben und Lesen freigegeben,
    • – Schreiben blockiert und Lesen blockiert,
    • – Schreiben blockiert und Lesen freigegeben.
  • Vorteilhaft schreibt die erste Einheit einen Operationscode von der ersten Einheit in einen Operationscodespeicher zum Initiieren der ersten Operation durch die Verarbeitungseinheit, wobei der erste Informationsspeicher für den Zugriffsschutz durch das Schreiben des Operationscodes in den Operationscodespeicher aktiviert wird.
  • Vorteilhaft schreibt die erste Einheit einen Operationscode aus der ersten Einheit in einen Operationscodespeicher für das Initiieren der ersten Operation durch die Verarbeitungseinheit; und
    wobei der Operationscodespeicher gegenüber dem Schreiben von Operationscodes während der ersten Operation geschützt ist.
  • Vorteilhaft wird der Operationscodespeicher selektiv gegenüber dem Schreiben von Operationscodes während der ersten Operation derart geschützt, dass der Operationscodespeicher in Bezug auf einen ersten Satz von Operationscodes schreibgeschützt ist und der Operationscodespeicher zum Schreiben von wenigstens einem weiteren Operationscode für das Schreiben freigegeben ist.
  • Vorteilhaft wird nach der Ausführung der erste Informationsspeicher für die erste Einheit für das Auslesen wenigstens eines von den Folgenden zugänglich gemacht:
    • – einem Ausgangsparameter der ersten Operation;
    • – einem Status der ersten Operation; und
    • – Informationen, die einen Fehler angeben, der während der ersten Operation aufgetreten ist.
  • Vorteilhaft ist nach einem Abbruch der ersten Operation wenigstens ein Teil der Informationen, die in dem ersten Informationsspeicher während der ersten Operation gespeichert worden sind, für die erste Einheit nicht zugänglich.
  • Vorteilhaft umfaßt das Verfahren des Weiteren Folgendes:
    Speichern eines Ergebnisses der ersten Operation in dem ersten Informationsspeicher;
    Löschen wenigstens eines Teils der in dem ersten Informationsspeicher gespeicherten Informationen, nachdem die Operation abgeschlossen ist oder abgebrochen wird; und
    Bereitstellen des Zugriffs für die erste Einheit zum Lesen des Ergebnisses der ersten Operation, nachdem das Löschen abgeschlossen ist.
  • Vorteilhaft wird verhindert, dass ein erster Teil von Informationen, die in dem ersten Informationsspeicher während der ersten Operation gespeichert werden, ausgegeben wird, nachdem die Operation abgeschlossen ist oder abgebrochen wird, und
    wobei ein zweiter Teil von Informationen in dem ersten Informationsspeicher an die erste Einheit ausgegeben wird, nachdem die erste Operation abgeschlossen ist.
  • Vorteilhaft legt die Verarbeitungseinheit vor der ersten Operation eine Konfiguration des ersten Informationsspeichers fest, wobei die Konfiguration wenigstens eines von einer Größe des ersten Informationsspeichers, den Untereinheitsspeichern, die in dem ersten Informationsspeicher enthalten sind, einem Schutz während der ersten Operation für den ersten Informationsspeicher umfasst.
  • Gemäß einem weiteren Aspekt wird ein Verfahren zur Verfügung gestellt zum Beschränken des Zugriffs auf einen Informationsspeicher, wobei das Verfahren folgende Schritte umfasst:
    Anfordern einer Ausführung einer Subroutine oder eines Befehls, wobei die Ausführung von einer ersten Einheit angefordert wird und die Subroutine oder der Befehl von einer Verarbeitungseinheit ausgeführt wird;
    Liefern durch die erste Einheit von Informationen für das Ausführen der Subroutine oder des Befehls zu einem ersten Informationsspeicher; und
    Bereitstellen von Zugriffsbeschränkungen, die den Zugriff auf den ersten Informationsspeicher für die erste Einheit beschränken.
  • Gemäß einem weiteren Aspekt wird eine Vorrichtung zur Verfügung gestellt mit:
    einer Verarbeitungseinheit zum Durchführen einer Datenverarbeitungsoperation;
    einem ersten Informationsspeicher, auf den von der Verarbeitungseinheit zum Lesen und Schreiben zugegriffen werden kann;
    einer ersten Einheit zum Initiieren der Datenverarbeitungsoperation von der Verarbeitungseinheit;
    einer Zugriffskontrolle bzw. Zugriffssteuerung, die so konfiguriert ist oder konfigurierbar ist, dass sie von einem ersten Zugriffsmodus, in dem auf den ersten Informationsspeicher durch die erste Einheit zugegriffen werden kann, in einen zweiten Modus umschaltet, in dem auf den ersten Informationsspeicher von der ersten Einheit während der Datenverarbeitungsoperation nicht zugegriffen werden kann.
  • Vorteilhaft ist die Zugriffskontrolle so konfiguriert oder konfigurierbar, dass sie automatisch in den zweiten Modus schaltet, und zwar auf der Basis des Schreibens eines Operationscodes durch die erste Einheit in einen Operationscodespeicher für die Ausführung der Datenverarbeitungsoperation.
  • Vorteilhaft ist die Vorrichtung des Weiteren so konfiguriert oder konfigurierbar, dass sie der ersten Einheit einen Status der Datenverarbeitungsoperation anzeigt.
  • Vorteilhaft ist die Verarbeitungseinheit so konfiguriert oder konfigurierbar, dass sie vor der ersten Operation eine Konfiguration des ersten Informationsspeichers auswählt, wobei die Konfiguration wenigstens eines von einer Größe des ersten Informationsspeichers, den Untereinheitsspeichern, die in dem ersten Informationsspeicher enthalten sind, einem Schutz während der ersten Operation für den ersten Informationsspeicher umfasst.
  • Vorteilhaft ist das Anfordern eines Interrupts nach einer Beendigung einer Operation oder nach einem Abbruch einer Operation konfigurierbar.
  • Gemäß einem weiteren Aspekt wird eine Vorrichtung bereitgestellt mit:
    einem Operationscodespeicher;
    einem Datenspeicher zum Speichern von Daten, die zwischen einer ersten Einheit und einer Datenverarbeitungseinheit transferiert werden;
    wobei die Datenverarbeitungseinheit so konfiguriert ist, dass sie eine Datenverarbeitungsoperation auf der Basis eines Operationscodes durchführt, der von der ersten Einheit in den Operationscodespeicher geschrieben wird; und
    einem Controller zum Schutz des Datenspeichers vor einem Zugriff durch die erste Einheit, wenn die Datenverarbeitungseinheit die Datenverarbeitungsoperation durchführt, und zum Freigeben eines Zugriffs für wenigstens die erste Einheit, wenn die Datenverarbeitungsoperation abgeschlossen ist.
  • Vorteilhaft ist der Controller so konfiguriert, dass er den Schutz des Datenspeichers vor dem Zugriff durch die erste Einheit auf der Basis des Schreibens eines Operationscodes in einen Operationscodespeicher aktiviert.
  • Vorteilhaft umfassen die Daten, die in dem Datenspeicher gespeichert werden, wenigstens einen Eingangsparameter der Datenverarbeitung oder wenigstens einen Ausgangsparameter der Datenverarbeitung.
  • Vorteilhaft kann der Datenspeicher während der Datenverarbeitungsoperation nur von der Verarbeitungseinheit gelesen und beschrieben werden.
  • Vorteilhaft ist der Zugriff durch die erste Einheit wenigstens einer von einem Schreibzugriff durch die erste Einheit oder einem Lesezugriff durch die erste Einheit, und wobei der Datenspeicher, der für den wenigstens einen Eingangsparameter und den wenigstens einen Ausgangsparameter vorgesehen ist, in Abhängigkeit von der Datenverarbeitungsoperation dynamisch konfigurierbar ist.
  • Gemäß einem weiteren Aspekt wird eine Informationsspeicheranordnung bereitgestellt mit:
    einem Operationscodespeicher;
    einem Datenspeicher, wobei der Datenspeicher eine Vielzahl von Untereinheitsspeichern umfasst;
    einem Controller zum Konfigurieren, vor einer Datenverarbeitungsoperation, die mit einem Operationscode assoziiert ist, der in dem Operationscodespeicher gespeichert ist, für jede der Vielzahl von Untereinheitsspeichern eines Lese-/Schreibschutzes während der Ausführung des Operationscodes.
  • Vorteilhaft ist der Controller des Weiteren so konfiguriert oder konfigurierbar, dass er während des Operationscodes den Informationsspeicher vor einem Schreibzugriff durch die erste Einheit schützt.
  • Vorteilhaft ist der Controller bereitgestellt, um den Operationscode-Informationsspeicher selektiv vor einem Informationsspeicher-Schreibzugriff durch die erste Einheit derart zu schützen, dass der Operationscode-Informationsspeicher schreibgeschützt ist, wenn sich der Operationscode innerhalb eines ersten Satzes von Operationscodes befindet, und derart, dass der Operationscode-Informationsspeicher für das Schreiben wenigstens eines weiteren Operationscodes freigegeben ist.
  • KURZE BESCHREIBUNG DER MEHREREN ANSICHTEN DER ZEICHNUNGEN
  • 1A und 1B zeigen Blockdiagramme in Übereinstimmung mit beispielhaften Ausführungsformen;
  • 2 zeigt ein Ablaufdiagramm in Übereinstimmung mit einer beispielhaften Ausführungsform;
  • 3 zeigt ein Ablaufdiagramm in Übereinstimmung mit einer beispielhaften Ausführungsform;
  • 4A bis 4D zeigen Beispiele in Übereinstimmung mit einer Ausführungsform;
  • 5 zeigt ein Blockdiagramm in Übereinstimmung mit einer beispielhaften Ausführungsform; und
  • 6 zeigt ein Blockdiagramm in Übereinstimmung mit einer beispielhaften Ausführungsform.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die nachfolgende ausführliche Beschreibung erläutert beispielhafte Ausführungsformen der vorliegenden Erfindung. Die Beschreibung ist nicht in einem beschränkenden Sinne zu verstehen, sondern ist lediglich zum Zwecke der Veranschaulichung der allgemeinen Prinzipien der Ausführungsformen der Erfindung erstellt worden, während der Schutzumfang nur durch die angehängten Ansprüche bestimmt wird.
  • In den in den Zeichnungen gezeigten und unten beschriebenen beispielhaften Ausführungsformen kann jede direkte Verbindung oder Kopplung zwischen Funktionsblöcken, Vorrichtungen bzw. Geräten, Bauteilen bzw. Komponenten oder anderen physischen Einheiten oder Funktionseinheiten, die in den Zeichnungen gezeigt oder hier beschrieben sind, auch durch eine indirekte Verbindung oder Kopplung implementiert werden. Funktionsblöcke können in Hardware, Firmware, Software oder in einer Kombination daraus implementiert werden.
  • Des weiteren soll es klar sein, dass die Merkmale der verschiedenen exemplarischen Ausführungsformen, die hier beschrieben sind, miteinander kombiniert werden können, außer dies ist ausdrücklich anders angemerkt.
  • In den verschiedenen Figuren kann es sein, dass identischen oder ähnlichen Entitäten, Modulen, Vorrichtungen etc. das gleiche Bezugszeichen zugewiesen worden ist.
  • Nun wird Bezug auf 1A genommen, in der eine Vorrichtung 100 gezeigt ist, die eine erste Einheit 102, eine Datenverarbeitungseinheit 104 zum Durchführen einer Operation, die von der ersten Einheit 102 angefordert wird, und einen ersten Informationsspeicher 106a als Teil einer Informationsspeicheranordnung 106 umfasst. Die Vorrichtung kann zum Beispiel ein Mikrocontroller, eine Leiterplatte bzw. Platine, die einen Mikrocontroller umfasst, ein Bauteil, in dem eine oder mehrere Halbleitervorrichtungen implementiert sind, etc. sein.
  • In einigen Ausführungsformen kann die erste Einheit 102 zum Beispiel eine programmgesteuerte Einheit sein. Die erste Einheit 102 kann dann zum Beispiel einen CPU-Kern umfassen. In einigen anderen Ausführungsformen kann die erste Einheit 102 ein Peripheriegerät sein. Die Vorrichtung 100 kann Verbindungsschaltungen umfassen, wie etwa einen Bus, um eine Kommunikation zwischen der ersten Einheit 102 und der Verarbeitungseinheit 104 zu erlauben, welches getrennte Einheiten sind. Des Weiteren können Schnittstellen für die Kommunikation bereitgestellt sein oder mit der ersten Einheit 102, der Verarbeitungseinheit 104 und dem ersten Informationsspeicher 106a assoziiert sein. Beispielsweise können Schnittstellen für das Transferieren eines Operationscodes oder von Daten innerhalb der ersten Einheit 102 vorgesehen sein.
  • Die Verarbeitungseinheit 104 kann der ersten Einheit 102 für das Durchführen einer Datenverarbeitung zugewiesen sein, die von der ersten Einheit 102 initiiert wird. So kann zum Beispiel eine Anwendung, die in einem Haupt-CPU-Kern abläuft, der in der ersten Einheit enthalten ist, oder eine Logik, die in einem Peripheriegerät enthalten ist, einen Transfer eines Operationscodes wie etwa eines Befehls oder einer Subroutine über einen Bus zu einem Operationscodespeicher initiieren, der mit der Verarbeitungseinheit 104 assoziiert ist, um eine Operation von der Verarbeitungseinheit 104 anzufordern.
  • Somit kann der Informationsspeicher 106 in einigen Ausführungsformen einen Operationscodespeicher derart umfassen, dass ein Operationscode von der ersten Einheit 102 in den Operationscodespeicher geschrieben wird, um die Operation zu initiieren. Beispiele für Operationscodes umfassen Operationscodes für das Ausführen einer Subroutine, einer Sequenz von Subroutinen oder eines Befehls, etc. Eine beispielhafte Ausführungsform ist in 1B gezeigt, in der ein Operationscodespeicher 106b als Teil des Informationsspeichers 106 der Vorrichtung 100 vorgesehen ist.
  • Wie später noch beschrieben werden wird, kann der Operationscodespeicher in beispielhaften Ausführungsformen so konfigurierbar sein, dass der Operationscodespeicher so eingestellt bzw. gesetzt werden kann, dass er vor dem Schreiben von Operationscodes während der Operation geschützt ist.
  • Operationen, die von der Verarbeitungseinheit 104 ausgeführt werden, können in einigen Ausführungsformen die Ausführung einer dedizierten Datenverarbeitung umfassen. In einigen Ausführungsformen umfassen Operationen, die von der Verarbeitungseinheit 104 ausgeführt werden, verschiedene Operationen, die mit einem Satz von Operationscodes assoziiert sind. Der Satz von Operationscodes kann Operationscodes für einen Befehl, wie etwa ein Befehlswort, oder Operationscodes einer Subroutine, wie etwa ein Subroutinen-Ausführungswort, oder Operationscodes für eine Sequenz von Subroutinen umfassen.
  • Der erste Informationsspeicher 106a kann jeden Typ von digitalen Informationsspeichern umfassen, wie etwa Pufferspeicher, Register, RAM-Speicher, etc. In Beispielen kann der erste Informationsspeicher 106a zum Beispiel einen Speicher des flüchtigen Typs umfassen, wie etwa einen auf Transistoren basierenden Speicher, zum Beispiel ein Register oder einen Pufferspeicher. Die Informationsspeicheranordnung 106 kann in einigen Ausführungsformen weitere Informationsspeicher umfassen, die von dem gleichen Typ oder von einem anderen Typ wie der erste Informationsspeicher 106a sein können.
  • In einigen Ausführungsformen können zusätzliche Speicher, wie etwa nichtflüchtige Speicher, innerhalb der Vorrichtung 100 bereitgestellt sein, wie etwa ein ROM-Speicher für das Booten oder ein Flash-Speicher zum Speichern von Dateninformationen oder Programminformationen. Die nichtflüchtigen Speicher können entsprechend den funktionellen Bedürfnissen partitioniert oder getrennt werden; zum Beispiel kann ein Flash-Speicher in einen Daten-Flash-Speicher, einen Programm-Flash-Speicher und einen Schlüssel-Flash-Speicher partitioniert sein. Einige der zusätzlichen nichtflüchtigen Speicher können auch mit Zugriffsbeschränkungen versehen sein, so dass zum Beispiel nur die Verarbeitungseinheit 104 die Erlaubnis hat, in einen Schlüssel-Flash-Speicher zu schreiben bzw. aus diesem auszulesen, da Schlüssel, die in dem Flash-Speicher gespeichert sind, als gesicherte Informationen betrachtet werden, die nur für die Verarbeitungseinheit 104 zur Verfügung stehen.
  • Die erste Einheit 102 ist mit dem ersten Informationsspeicher 106a zum Beispiel über einen Bus gekoppelt, und die Verarbeitungseinheit 104 ist ebenfalls mit dem ersten Informationsspeicher 106a für das Lesen und Schreiben von Informationen gekoppelt. In einigen Ausführungsformen ist die Verarbeitungseinheit 104 innerhalb eines Moduls implementiert, wobei der erste Informationsspeicher 106a ebenfalls ein Teil des Moduls ist. Das Modul oder die Verarbeitungseinheit 104 können in einigen Ausführungsformen eine Master- und Slave-Funktionalität derart aufweisen, dass die Funktion eines Masters des Busses sowie auch die Funktion eines Slave des Busses bereitgestellt sein können.
  • In beispielhaften Ausführungsformen kann die Verarbeitungseinheit 104 eine sichere Datenverarbeitungserweiterung für die erste Einheit 102 sein, wie zum Beispiel eine von einem kryptographischen Programm gesteuerte Engine bzw. Funktionseinheit oder eine kryptographische Zustandsmaschine. Die Verarbeitungseinheit 104 kann zum Beispiel sicherheitsbezogene bzw. sicherheitsrelevante Operationen für die Durchführung einer sicherheitsbezogenen Datenverarbeitung ausführen, die das Codieren und Decodieren, die Code-Verifizierung, -Authentifizierung und andere Verarbeitungen umfassen können. Eine Beispielsliste von Sicherheitsoperationen umfasst die kryptographischen Funktionen des AES Standards (128 Bit), wie etwa die ECB-Verschlüsselung, die ECB-Entschlüsselung, die CBC-Verschlüsselung, die CBC-Entschlüsselung, die CMAC-Erzeugung, die CMAC-Verifikation, etc.
  • Sicherheitsbezogene Operationen können in der Vorrichtung 100 zum Beispiel für die Authentisierung oder Autorisierung von neuen Elementen (Items), Einheiten, Baugruppen, etc. verwendet werden, wenn diese neu implementiert oder integriert werden oder wenn bestehende Elemente ersetzt werden. Des Weiteren können sicherheitsbezogene Operationen in der Vorrichtung 100 zum Beispiel zum Decodieren eines Software-Codes verwendet werden, um eine Software-Sicherheit bereitzustellen, oder sie können für andere Codierungs- oder Decodierungsfunktionen für die Vorrichtung 100 verwendet werden. Darüber hinaus können sicherheitsbezogene Operationen in der Vorrichtung 100 zum Beispiel verwendet werden, um ein sicheres Booten der Vorrichtung vorzusehen, indem eine falsche oder beschädigte Software erfasst wird, die der CPU bereitgestellt worden ist. Aber es muss angemerkt werden, dass die oben genannten Beispiele nur einige Beispiele für die vielen Verwendungsmöglichkeiten von sicherheitsbezogenen bzw. sicherheitsrelevanten Operationen sind.
  • In einigen Ausführungsformen kann ein Satz von spezifischen, sicherheitsbezogenen Operationscodes für das Initiieren eines jeweiligen Typs von sicherheitsbezogenen Operationen vorgesehen sein. Die Verarbeitungseinheit kann dann so konfiguriert werden, dass sie eine Ausführung von wenigstes einer sicherheitsbezogenen Subroutine oder einem sicherheitsbezogenen Befehl für die erste Einheit decodiert und bereitstellt.
  • In einigen Ausführungsformen kann die Verarbeitungseinheit 104 eine im Wesentlichen auf Hardware basierende Verarbeitungseinheit sein, wie zum Beispiel eine Zustandsmaschine, die eine auf Hardware basierende Datenverarbeitung bereitstellt. In einer Ausführungsform kann die Verarbeitungseinheit 104 zum Beispiel eine Sicherheits-Hardware-Erweiterung sein, die die oben beschriebenen sicherheitsbezogenen Operationen bereitstellt. Zwar kann eine auf Hardware basierende Datenverarbeitung die Flexibilität des Systems einschränken, aber sie trägt zu der Sicherheit der Datenverarbeitung in Anbetracht dessen bei, dass sie weniger anfällig für Manipulationen von feindlich gesinnten Benutzern ist.
  • In anderen Ausführungsformen kann die Verarbeitungseinheit 104 eine zentrale Verarbeitungseinheit bzw. CPU oder eine Verarbeitungseinheit eines auf eine CPU bezogenen Typs sein.
  • Beispiele für die Informationen, die zu dem Informationsspeicher 106a transferiert werden und darin gespeichert werden, umfassen Daten, die sich auf einen Typ von Operation beziehen, Eingangsparameter der Operation, wie etwa Eingangsparameter eines Befehls oder einer Subroutine, oder andere Parameter, die mit der Verarbeitungseinheit 104 in Bezug auf die Ausführung einer Datenverarbeitungsoperation assoziiert sind oder in Bezug darauf von dieser benötigt werden. Des Weiteren speichert der erste Informationsspeicher 106a in einigen Ausführungsformen auch die Ausgangsinformationen der Operation, die von der Verarbeitungseinheit 104 ausgeführt wurde, die nach der Ausführung ausgegeben werden sollen. Die Ausgangsinformationen können zum Beispiel zu der ersten Einheit 102 transferiert werden, die die Operation angefordert hat. Solche Ausgangsinformationen umfassen Ausgangsparameter einer Subroutine oder eines Befehls, wie etwa Ergebnisse, Zwischen- oder Teilergebnisse oder andere Ausgangsparameter, die sich auf die Operation beziehen, die von der Verarbeitungseinheit 104 ausgeführt wurde. In einigen Ausführungsformen kann der erste Informationsspeicher zum Beispiel ein Datenspeicher sein, der die Eingangs- und Ausgangsdateninformationen speichert.
  • In beispielhaften Ausführungsformen wird der erste Informationsspeicher 106a in Bezug auf den Lese-/Schreibzugriff in einer Art und Weise kontrolliert bzw. gesteuert, die sich von bekannten Verwendungen von Informationsspeichern unterscheidet. Der erste Informationsspeicher 106a, auf den im Allgemeinen durch die erste Einheit 102 und die Verarbeitungseinheit 104 für das Lesen und Schreiben von Informationen zugegriffen werden kann, wird vorübergehend so eingestellt, dass die erste Einheit 104 nicht darauf zugreifen kann, also dieser für die erste Einheit 104 nicht zugänglich ist. Genauer gesagt wird der erste Einformationsspeicher 106a so eingestellt bzw. gesetzt, dass auf diesen während einer Operation der Verarbeitungseinheit 104 nicht mehr länger durch die erste Einheit 102 zugegriffen werden kann. Aber die Verarbeitungseinheit, die die Operation ausführt, kann immer noch voll auf den ersten Informationsspeicher 106a zugreifen.
  • Mit anderen Worten, der erste Informationsspeicher 106a hat einen spezifischen Zugriffsschutz, der den ersten Informationsspeicher 106a vor einem Schreib- oder Lesezugriff durch die erste Einheit 102 (und irgendwelche anderen externen Einheiten, falls welche vorgesehen sind) schützt, obgleich die Verarbeitungseinheit 104 während der Operation voll auf den ersten Informationsspeicher 106a zugreifen kann. So kann die Verarbeitungseinheit 104 zum Beispiel während der Operation die Informationen lesen, die in dem ersten Informationsspeicher 106a gespeichert sind, die Verarbeitungseinheit 104 kann Informationen wie etwa Zwischenwerte oder interne Parameterwerte, Ergebnisse oder andere Informationen während der Operation in nicht benutzte Stellen des ersten Informationsspeichers 106a schreiben oder sie kann die Informationen, die in dem ersten Informationsspeicher 106a gespeichert sind, mit neuen Informationen überschreiben. In beispielhaften Ausführungsformen kann der oben beschriebene Zugriffsschutz durch Hardware implementiert sein, d. h. die Logik, die den Zugriff verhindert, kann eine vollständig durch Hardware implementierte Logik sein. Das kann eine zusätzliche Sicherheit vorsehen, da keine Modifikationen an dem Sicherheitsmechanismus von einem potentiellen Angreifer durchgeführt werden können.
  • Das oben beschriebene Einstellen bzw. Setzen des ersten Informationsspeichers 106a in einen ersten Zugriffsmodus, in dem die erste Einheit 102 und die Verarbeitungseinheit 104 oder andere externe Einheiten vollständig auf den Informationsspeicher 106a zugreifen können, und in einen zweiten Zugriffsmodus, in dem ein Zugriff auf den ersten Informationsspeicher 106a nur der Verarbeitungseinheit erlaubt ist und für die erste Einheit 102 (und jede weitere externe Einheit, falls eine vorgesehen ist) ein beschränkter Zugriff besteht, erlaubt eine sichere Operation, so dass die Datenverarbeitung, die von der Verarbeitungseinheit 104 ausgeführt wird, insular, d. h. also isoliert von der Umgebung, bereitgestellt werden kann. Darüber hinaus kann der erste Informationsspeicher 106a von der Verarbeitungseinheit 104 verwendet werden, um interne Informationen während der Operation zu speichern, wie zum Beispiel Datenverarbeitungs-Zwischenergebnisse, Zeigerwerte, etc. während der Datenausführung, etc. Diese Informationen können sicherheitskritisch sein und werden durch die oben beschriebene Zugriffsschutzkontrolle bzw. Zugriffsschutzsteuerung vor einem externen Lesezugriff während der Operation geschützt. Informationen, die in den ersten Informationsspeicher 106a geschrieben sind und die nicht mehr länger gebraucht werden, können gelöscht oder mit anderen Informationseinheiten durch die Verarbeitungseinheit 104 überschrieben werden.
  • Obwohl eventuell zusätzliche Schaltungen für die Implementierung der oben genannten Kontrolle bzw. Steuerung des Schutzes benötigt werden, kann eine Reduktion des Speicherplatzes in Anbetracht der internen Verwendung des ersten Informationsspeichers während der Operation erzielt werden, während gleichzeitig immer noch eine sichere und insulare Datenverarbeitung während einer sicherheitsbezogenen Operation durch die Verarbeitungseinheit 104 bereitgestellt wird.
  • Es sollte angemerkt werden, dass in beispielhaften Ausführungsformen die erste Einheit 102 zwar das Durchführen der Operation durch die Verarbeitungseinheit 104 angefordert hat, indem sie einen Operationscode zu einem Operationscodespeicher transferiert hat und Informationen zu dem ersten Informationsspeicher 106a transferiert hat, aber dass der ersten Einheit 102 im Grunde genommen beim Starten der Operation automatisch jeder Zugriff auf bzw. die Kontrolle über den ersten Informationsspeicher 106a zumindest so lange entzogen wird, bis die Operation von der Verarbeitungseinheit 104 ausgeführt ist. Dies erlaubt die sehr effiziente Verwendung des Speicherplatzes, da der Speicherplatz des ersten Informationsspeichers 106a für unterschiedliche Aufgaben verwendet werden kann, wie etwa zum Schreiben eines Eingangsparameters durch die erste Einheit 102, zum Lesen eines Ausgangsparameters durch die erste Einheit 102 und zum Speichern von Informationen während der Operation durch die Verarbeitungseinheit 104, obwohl gleichzeitig ein Angreifer immer noch daran gehindert wird, irgendwelche Informationen, die sich auf die interne Datenverarbeitung beziehen, die von der Verarbeitungseinheit 104 bereitgestellt wird, abzufragen.
  • In einigen Ausführungsformen ist der erste Informationsspeicher 106a durch eine Schnittstelle oder als Teil einer Schnittstelle zwischen der ersten Einheit 102 und der Verarbeitungseinheit 104 vorgesehen. Eine solche Schnittstelle kann eine Benutzerschnittstelle sein. In einigen Ausführungsformen kann die Schnittstelle zusätzlich zu dem ersten Informationsspeicher einen Operationscodespeicher und/oder einen Status-Bit-Speicher aufweisen. Die erste Einheit 102 kann zum Beispiel eine Operation, die von der Verarbeitungseinheit 104 ausgeführt wird, anfordern, indem sie Informationen zu dem Informationsspeicher 106 überträgt und Informationen, die sich auf die Operation beziehen, wie etwa Eingangsparameter, etc., zu dem ersten Informationsspeicher 106a liefert bzw. zuführt. Eine solche Schnittstelle, die den oben genannten Zugriffsschutz aufweist, kann dann als eine sichere Schnittstelle zwischen der Verarbeitungseinheit 104 und der ersten Einheit 102 betrachtet werden, da sie eine insulare Operation der Verarbeitungseinheit 104 während der Ausführung der Operation schützt und vorsieht.
  • Der Zugriffsschutz kann in einigen Ausführungsformen in einer hardware-artigen Art und Weise bereitgestellt sein. In einigen Ausführungsformen kann der erste Informationsspeicher 106a durch eine Steuerung von Transistoren elektrisch abgekoppelt werden, um einen Schreibvorgang oder einen Lesevorgang zu verhindern, wenn der Zugriff geschützt ist. In einigen Ausführungsformen kann eine logische Schaltung implementiert sein, die eine vorbestimmte Bitsequenz, wie etwa eine Bitsequenz mit lauter Nullen, zurück zu der ersten Einheit 102 liefert, wenn von der ersten Einheit während des Zugriffsschutzes ein Lesezugriff versucht wird.
  • In beispielhaften Ausführungsformen befindet sich die Steuerung des Zugriffsschutzes außerhalb der ersten Einheit 102, zum Beispiel in einem Controller, der mit dem ersten Informationsspeicher 106a assoziiert ist, oder in einem Controller, der mit der Verarbeitungseinheit 104 assoziiert ist.
  • In einigen Ausführungsformen wird der Zugriffsschutz für den ersten Informationsspeicher 106a von der Verarbeitungseinheit 104 gesteuert. Außerdem kann die Steuerung, in Bezug auf welche physische Speicher Teil des ersten Informationsspeichers 106a sind, und deshalb die Steuerung der Größe des ersten Informationsspeichers 106a ebenfalls von der Verarbeitungseinheit 104 bereitgestellt werden. 6 zeigt ein Blockdiagramm eines Beispiels, in dem die Verarbeitungseinheit 104 den Zugriffsschutz für den ersten Informationsspeicher 106a, den Operationscodespeicher 106b und einen Statusinformationsspeicher 106c steuert. Der erste Informationsspeicher 106a, der Operationscodespeicher 106b und der Statusspeicher 106c sind Teil einer Benutzerschnittstelle 108, die mit einer Busschnittstelle 110 gekoppelt ist. Die Busschnittstelle 110 ist in der Lage, die Verbindung mit einem Bus 112 für das Transferieren von Informationen von dem ersten Informationsspeicher 106a, dem Operationscodespeicher 106b oder dem Statusinformationsspeicher 106c über den Bus 112 zu der ersten Einheit 102 (in 6 nicht gezeigt) und umgekehrt von der ersten Einheit 102 zu einem der Speicher 106a, 106b oder 106c herzustellen. Die Benutzerschnittstelle 108 ist außerdem mit der Verarbeitungseinheit 104 für das Transferieren der darin gespeicherten Informationen zu der Verarbeitungseinheit 104 und umgekehrt von Informationen von der Verarbeitungseinheit 104 zu der Benutzerschnittstelle 108 gekoppelt.
  • Der Controller kann in einer Ausführungsform implementiert sein, um den ersten Informationsspeicher von einem ersten Operationsmodus in einen zweiten Operationsmodus auf der Basis des Operationscodes umzuschalten, der von einer ersten Einheit in den Operationscodespeicher geschrieben worden ist. Der Dateninformationsspeicher ist in dem ersten Operationsmodus so konfiguriert, dass die erste Einheit darauf zum Lesen und Schreiben zugreifen kann, und ist in dem zweiten Operationsmodus so konfiguriert, dass nur eine Verarbeitungseinheit, die eine Datenverarbeitung auf der Basis des Operationscodes ausführt, auf diesen zum Lesen und Schreiben zugreifen kann.
  • Die Zugriffsschutzsteuerung bzw. -kontrolle, wie sie in den oben genannten beispielhaften Ausführungsformen dargestellt ist, kann verwendet werden, um einen flexiblen Sicherheitsschutz bereitzustellen, wie dies unten noch weiter erläutert werden wird. In einer Ausführungsform kann der erste Informationsspeicher zum Beispiel eine Vielzahl von Untereinheitsspeichern aufweisen oder kann in eine Vielzahl von Untereinheitsspeichern unterteilt sein. In einer Ausführungsform kann ein Untereinheitsspeicher zum Beispiel ein einzelnes Register sein, so dass der erste Informationsspeicher 106a eine Vielzahl von einzelnen Registern aufweist. Aber andere Untereinheitsspeicher können bereitgestellt werden, indem der Informationsspeicher 106 in eine Vielzahl von Bereichen, Teilen oder Abschnitten unterteilt wird. Jeder der Vielzahl von Untereinheitsspeichern kann dann individuell zugriffsgeschützt werden, und zwar unabhängig von jedem anderen Untereinheitsspeicher. Der Zugriffsschutz kann während der Datenverarbeitung geändert werden. Wenn die Ausführung einer Subroutine oder eines Befehls während der Datenverarbeitung abgeschlossen ist, kann zum Beispiel der Typ des Schutzes für die Ausführung der nächsten Subroutine oder des nächsten Befehls innerhalb derselben Datenverarbeitung geändert werden. Darüber hinaus kann jeder der unterschiedlichen Untereinheitsspeicher einen anderen Typ von Schutz aufweisen, zum Beispiel einen ersten Typ von Lese-/Schreibschutz (kein Lese- und Schreibzugriff) in Bezug auf die erste Einheit 102 während der Ausführung einer Operation, einen zweiten Typ, der ein Lesen und Schreiben für die erste Einheit 102 während der Ausführung erlaubt, oder einen dritten Typ, der der ersten Einheit 102 lediglich einen Lesezugriff, jedoch nicht einen Schreibzugriff erlaubt, etc. Mit anderen Worten, der Zugriffsschutz kann individuell und unabhängig für jeden Untereinheitsspeicher eingestellt werden, und der Zugriffsschutz kann individuell und unabhängig in einen aktiven Schutz für einen Lesevorgang, einen Schreibvorgang oder beides eingestellt werden.
  • In einer Ausführungsform kann vor dem Start einer Operation während der Datenverarbeitung durch die Verarbeitungseinheit 104 ermittelt werden, welcher Teil des verfügbaren Informationsspeichers 106 in dem ersten Informationsspeicher 106a enthalten ist, der den oben dargelegten Zugriffsschutz aufweist. Durch das Ermitteln des ersten Informationsspeichers 106a vor dem Ausführen einer Operation kann die Speichergröße des ersten Informationsspeichers 106a während der Datenverarbeitung geändert werden. Der Typ des Zugriffsschutzes für den ersten Informationsspeicher oder für jeden Untereinheitsspeicher kann auch vor dem Start einer Operation während der Datenverarbeitung geändert werden. Wenn zum Beispiel der erste Informationsspeicher 106a eine Vielzahl von Registern umfasst, kann ein erster Satz von Registern aus der Vielzahl von Registern als der Teil des ersten Informationsspeichers bestimmt werden, der den oben beschriebenen Zugriffsschutz aufweist, und ein individueller Zugriffsschutz kann jedem Register zugewiesen werden. Eine solche Bestimmung kann in einer Ausführungsform von dem Typ der Operation abhängen. In einer Ausführungsform kann die Bestimmung nach dem Ermitteln des Operationscodes vorgesehen werden, der dem Operationscodespeicher bereitgestellt wird. Mit anderen Worten, die Größe des Informationsspeichers, der einen bestimmten Schutz in Bezug auf das Schreiben und/oder Lesen hat, kann individuell während der Datenverarbeitung auf die Bedürfnisse für die aktuelle Operation zum Beispiel vor dem Starten einer spezifischen Operation während der Verarbeitung zugeschnitten werden.
  • In einigen Ausführungsformen kann ein selektiver Schutz während der Operation der Verarbeitungseinheit 104 bereitgestellt werden, der einen Schreibzugriff (oder Lesezugriff oder beides) nur für einen einzigen spezifischen Operationscode oder eine spezifische Gruppe von Operationscodes zulässt, während der Schreibschutz für alle anderen Operationscodes aufrecht erhalten wird. In einigen Ausführungsformen wird ein solcher selektiver Schutz in einem Operationscodespeicher implementiert. Mit anderen Worten, der Operationscodespeicher wird dann selektiv vor einem Schreiben von Operationscodes während der Operation geschützt. In einer beispielhaften Ausführungsform kann der spezifische Operationscode, der für das Schreiben während der Operation der Verarbeitungseinheit 104 zugelassen ist, ein Operationscode für einen Abbruchbefehl sein, der zu einem Abbruch der Operation führt. Dies schränkt die Möglichkeit von Angriffen während einer Operation ein und erlaubt nur, eine Operation abzubrechen, aber nicht, andere Operationscodes während einer Operation bereitzustellen.
  • Des Weiteren kann in einigen Ausführungsformen eine Steuerung programmiert sein, die es zulässt, dass nach der Beendigung der Ausführung eines Operationscodes nur ein spezifischer Operationscode als nächstes ausgeführt werden darf. So kann es zum Beispiel erlaubt sein, dass Operationscodes sequentiell nur in einer bestimmten Reihenfolge ausgeführt werden dürfen. Dies verstärkt zusätzlich die Sicherheit in Bezug auf mögliche Angriffe und verhindert das Herausfinden von Informationen in Bezug auf die Datenverarbeitung der Verarbeitungseinheit 104.
  • In einigen Ausführungsformen kann der Informationsspeicher 106 zusätzlich zu dem ersten Informationsspeicher 106a wenigstens einen weiteren Informationsspeicher umfassen, der während der Operation der Verarbeitungseinheit 104 gelesen und/oder beschrieben werden kann. Der Informationsspeicher 106 kann zum Beispiel einen Statusinformationsspeicher umfassen, der in Übereinstimung mit einer Ausführungsform so bereitgestellt sein kann, dass ein Lesezugriff für die erste Einheit 102 auf diesen während der Operation der Verarbeitungseinheit 104 möglich ist.
  • Nach dem Ausführen der Operation kann der Zugriff auf den ersten Informationsspeicher 106a für die erste Einheit 102 wieder erlaubt werden. Der ersten Einheit 102 ist es dann erlaubt, aus dem ersten Informationsspeicher 106a Informationen, wie etwa einen Ausgangsparameter der Operation, einen Status der Operation, oder Informationen, die einen Fehler angeben, der während der Operation aufgetreten ist, auszulesen. In einigen Ausführungsformen kann es sein, dass der Zugriff auf den ersten Informationsspeicher 106a erst nach einer Sequenz von Operationen wieder erlaubt wird, wie etwa dann, wenn eine Sequenz von Befehlen oder eine Sequenz von Subroutinen abgeschlossen ist. In einigen Ausführungsformen kann der erste Informationsspeicher nach einer abgeschlossenen Operation zwar für das Lesen, aber nicht für das Schreiben zugänglich gemacht werden, und erst zum Lesen und Schreiben zugänglich gemacht werden, nachdem eine Sequenz von Operationen abgeschlossen ist.
  • In einigen Ausführungsformen kann ein Interrupt bzw. eine Unterbrechung vorgesehen werden, nachdem eine Operation beendet ist, um der ersten Einheit 102 oder dem System von der Beendigung Mitteilung zu machen. Das Bereitstellen eines Interrupts kann in einigen Ausführungsformen von dem Operationscode abhängen. In einigen Ausführungsformen kann ein oder können mehrere dedizierte(s) Bit(s) in einem Operationscodespeicher vorgesehen sein, um anzugeben, ob ein Interrupt nach der Beendigung der Operation, die von dem Operationscode angegeben ist, bereitgestellt wird.
  • In einigen Ausführungsformen kann ein Interrupt nach den Abbruch einer Operation bereitgestellt werden. In einigen Ausführungsformen wird ein Interrupt nach einem Abbruch einer Operation unterdrückt. In einigen Ausführungsformen kann ein selektiver Interrupt-Mechanismus bereitgestellt sein, der eine Konfiguration dahingehend erlaubt, ob ein Interrupt nach einem Abbruch der Operation bereitgestellt wird oder nicht. Das selektive Interrupt-Schema erlaubt eine zusätzliche Flexibilität und eine maßgeschneiderte Verwendung im Hinblick auf die Sicherheit für das System.
  • Der erste Informationsspeicher 106a kann funktional entsprechend den Ausgangsinformationen unterteilt sein, die der ersten Einheit 102 bereitgestellt werden. Zum Beispiel kann der erste Informationsspeicher 106a einen Statusinformationsspeicher, der für das Ausgeben des Status der Operation zum Beispiel durch ein oder mehrere Statusbits dediziert ist, oder einen Fehlerinformationsspeicher umfassen, der für das Ausgeben von Fehlerinformationen dediziert ist, die das Auftreten eines Fehlers und/oder den Typ eines Fehlers während der Operation angeben. Wie oben dargelegt worden ist, kann auch für diese Informationsspeicher der Zugriffsschutz in einer individuellen und unabhängigen Art und Weise bereitgestellt werden.
  • In einigen Ausführungsformen kann eine Änderung des Status, wie etwa eine Änderung, die durch ein Status-Bit in dem Statusinformationsspeicher angegeben wird, das Flagging eines Interrupts bzw. das Kennzeichnen eines Interrupts mit Flags bewirken. In einigen Ausführungsformen kann der Operationscodespeicher einen dedizierten Speicher zum Speichern einer Information enthalten, die angibt, ob ein Interrupt nach Beendigung der Operation und/oder nach Abbruch einer Operation mit Flags gekennzeichnet werden soll oder nicht. Eine solche Information kann in einigen Ausführungsformen ein Interrupt-Enabled-Bit (Unterbrechung-freigegeben-Bit) sein, das in dem Operationscodespeicher gespeichert ist. In einigen Ausführungsformen kann das Interrupt-Enabled-Bit während der Ausführung einer Operation geändert werden. Dies erlaubt die Unterdrückung eines Interrupts, wenn eine Operation abgebrochen wird. Zu diesem Zweck kann das Interrupt-Enabled-Bit gelöscht werden oder kann von ,aktiviert' auf ,deaktiviert' geändert werden, wenn der Operationscode für den Abbruch der Operation in den Operationscodespeicher geschrieben wird.
  • Wie oben bereits erwähnt worden ist, kann die Vorrichtung 100 in einigen Ausführungsformen zusätzlich zu der ersten Einheit 102 auch weitere Einheiten umfassen, die mit dem ersten Informationsspeicher 106a für das Anfordern und das Bereitstellen von Eingangsparameterinformationen für die Operation der Verarbeitungseinheit 104 verbunden werden können. In einigen Ausführungsformen ist der erste Speicher 106a deshalb mit einem Bus gekoppelt, an den mehrere Einheiten, einschließlich der ersten Einheit 102, angeschlossen sind. 5 zeigt ein Beispiel einer Vorrichtung 100, die einen programmgesteuerten Prozessor 500 mit einem CPU-Kern 502 und ein Peripheriegerät 509 aufweist. Der Prozessor 500 und das Peripheriegerät 509 sind über eine Kreuzschienenverbindung 506 mit der Informationsspeicheranordnung 106 verbunden, die den ersten Informationsspeicher 106a und den Operationscodespeicher 106b umfasst. Die Informationsspeicheranordnung 106 ist Teil eines Moduls 510, das auch die Verarbeitungseinheit 104 umfasst. Eine Informationsspeicheranordnung 508 ist bereitgestellt, die zum Beispiel einen Boot-ROM-Speicher, einen Daten-Flash-Speicher, einen Programm-Flash-Speicher und einen Schlüssel-Flash-Speicher umfassen kann. Der Prozessor 500 und das Peripheriegerät 504 sind über die Kreuzschiene 506 mit der zweiten Speicheranordnung 508 verbunden. Das Modul 510 ist auch mit der Speicheranordnung 508 verbunden, um Daten daraus zu lesen und in diese zu schreiben. Es kann sein, dass auf einige Abschnitte der Speicheranordnung 508, wie etwa einen Schlüssel-Flash-Speicher, aus Sicherheitsgründen ausschließlich nur durch die Verarbeitungseinheit 104 zugegriffen werden kann.
  • Ein Ablaufdiagramm 200 eines beispielhaften Prozesses, der zum Beispiel in der Vorrichtung 100 implementiert werden kann, wird nun unter Bezugnahme auf 2 gezeigt. Das Ablaufdiagramm 200 startet bei 202 mit dem Liefern von ersten Informationen von einer ersten Einheit in einen ersten Informationsspeicher zum Durchführen einer ersten Operation einer Verarbeitungseinheit.
  • Der erste Informationsspeicher wird bei 204 so eingestellt, dass die erste Einheit nicht darauf zugreifen kann. Der erste Informationsspeicher wird vor einem Auslesen aus dem ersten Informationsspeicher durch die erste Einheit und vor einem Schreiben in den ersten Informationsspeicher durch die erste Einheit geschützt. Das Einstellen des ersten Informationsspeichers derart, dass auf diesen von der ersten Einheit während der Operation nicht zugegriffen werden kann, wird in Ausführungsformen automatisch aktiviert, wenn der Operationscode für das Durchführen der Operation in dem Operationscodespeicher gespeichert wird, nachdem dieser von der ersten Einheit zu dem Operationscodespeicher transferiert worden ist. Mit anderen Worten, der erste Informationsspeicher wird automatisch für einen Schutz vor einem Zugriff durch die erste Einheit gesperrt, wenn der Operationscode in dem Operationscodespeicher gespeichert wird. Das Einstellen des ersten Informationsspeichers derart, dass die erste Einheit 102 nicht darauf zugreifen kann, kann durch ein automatisches Sperren beim Eintreten in den oben beschriebenen Zugriffsschutz basierend auf dem Schreiben des Operationscodes in den Operationscodespeicher erreicht werden. In einigen Ausführungsformen kann das automatische Sperren mittels Hardware implementiert werden. So kann zum Beispiel eine mit Hardware implementierte Logik ein Codewort ermitteln, das in den Operationscodespeicher geschrieben ist, und kann in Abhängigkeit von dieser Ermittlung den ersten Informationsspeicher sperren. In einigen Ausführungsformen kann dann, wenn die erste Einheit 102 versucht oder probiert, während des Gesperrtseins aus dem ersten Informationsspeicher auszulesen, ein vorher definiertes Bitmuster, zum Beispiel eine Information, die nur Bits mit dem Wert 0 umfasst, zu der ersten Einheit 102 zurückgesendet werden. In einigen Ausführungsformen kann dann, wenn die erste Einheit 102 versucht oder probiert, Informationen in dem gesperrten Zustand zu schreiben, der Schreibvorgang ignoriert werden, ohne dass eine Nachricht zurückgesendet wird. In einigen Ausführungsformen kann eine Information wie etwa eine Nachricht zu der ersten Einheit 102 zurückgesendet werden.
  • Bei 206 werden zweite Informationen zwischen der Verarbeitungseinheit und dem wenigstens ersten Informationsspeicher während der ersten Operation der Verarbeitungseinheit transferiert. Die zweiten Informationen können von der Verarbeitungseinheit in den ersten Informationsspeicher geschrieben werden, da der erste Informationsspeicher für die Verarbeitungseinheit während der Operation der Verarbeitungseinheit für Schreib- und Lesevorgänge zugänglich ist. In beispielhaften Ausführungsformen ist die Verarbeitungseinheit während der Operation der Verarbeitungseinheit die einzige Einheit, die einen Lese-/Schreibzugriff auf den ersten Informationsspeicher hat.
  • In beispielhaften Ausführungsformen greift die Verarbeitungseinheit auf die Informationen in dem ersten Informationsspeicher 106a während der Operation zu, um wenigstens ein Ergebnis auf der Basis der Informationen zu berechnen.
  • Somit kann zumindest ein Teil der Informationen während der ersten Operation von dem ersten Informationsspeicher 106a zu der Verarbeitungseinheit transferiert werden, zum Beispiel zu internen Registern der Verarbeitungseinheit 104.
  • Wie oben dargelegt worden ist, ist ein Operationstyp der Verarbeitungseinheit von der ersten Einheit als ein Ergebnis eines transferierten Operationscodes auswählbar, der zum Beispiel einen Befehl oder eine Subroutine angibt, der bzw. die von der Verarbeitungseinheit ausgeführt werden soll. Der Operationscode kann in einem Operationscodespeicher gespeichert werden. Die Verarbeitungsvorrichtung kann den Operationscode aus dem Operationscodespeicher auslesen, den Operationscode decodieren und analysieren und die Operation auf der Basis des Operationscodes bereitstellen. Der Operationscodespeicher kann aber selektiv in Bezug auf die Operationscodes schreibgeschützt sein, d. h. es kann erlaubt sein, dass ein oder mehrere spezifische Operationscodes geschrieben werden können, während der Rest blockiert ist. Ein Beispiel eines Ablaufdiagramms 300 ist in 3 gezeigt.
  • Das Ablaufdiagramm 300 startet bei 302 mit dem Übertragen der ersten Informationen von der ersten Einheit zu dem ersten Informationsspeicher. Bei 304 schreibt die erste Einheit einen Operationscode in einen Operationscodespeicher. Der Operationscodespeicher kann zum Beispiel einen Befehlspufferspeicher oder ein Befehlsregister umfassen. Der erste Informationsspeicher und der Operationscodespeicher können in einer beispielhaften Ausführungsform beide Teil einer Schnittstelle sein, die zwischen der Verarbeitungseinheit und der ersten Einheit vorgesehen ist.
  • Bei 306 wird der Operationscodespeicher dann so eingestellt bzw. gesetzt, dass er in Bezug auf die erste Einheit schreibgeschützt ist. Die Einstellung bzw. das Setzen des Schreibschutzes in Bezug auf die erste Einheit wird in Ausführungsformen durch das Schreiben des Operationscodes, das durch 304 bereitgestellt wird, aktiviert. Der Schreibschutz kann ein selektiver Schreibschutz derart sein, dass der Schreibschutz für eine Gruppe von Operationscodes aktiviert ist, während der Operationscodespeicher wenigstens für einen Operationscode nicht schreibgeschützt ist. Des Weiteren wird bei 306 der erste Informationsspeicher in Bezug auf die erste Einheit auf einen Schreib-/Leseschutz eingestellt bzw. gesetzt. Der Schreibschutz des Operationscodespeichers und der Schreib-/Leseschutz des ersten Informationsspeichers können auf dem Schreiben des Operationscodes in den Operationscodespeicher basieren und dadurch aktiviert werden. Bei 308 kann die Verarbeitungseinheit dann eine Datenverarbeitungsoperation ausführen, wie etwa die Ausführung einer angeforderten Subroutine oder eines Befehls auf der Basis des Operationscodes, der von der ersten Einheit zu dem Operationscodespeicher transferiert worden ist. Bei 310 werden die Informationen in dem ersten Informationsspeicher gelöscht und eine Ausgabe der Datenverarbeitung, wie etwa ein Ergebnis für die angeforderte Operation, oder andere Ausgangsparameter werden von der Datenverarbeitungseinheit in den ersten Informationsspeicher geschrieben. Dann wird bei 312 die Ausgabe der Datenverarbeitung von der ersten Einheit ausgelesen.
  • In beispielhaften Ausführungsformen kann der erste Informationsspeicher automatisch gegenüber einem Lese-/Schreibzugriff durch die erste Einheit auf der Basis des Operationscodes in dem Operationscodespeicher gesperrt werden.
  • In einigen beispielhaften Ausführungsformen kann die Datenverarbeitungseinheit die erste Einheit von dem neuen Status, nämlich dass die Operation abgeschlossen ist, informieren.
  • Wenn die Operation durch das Schreiben eines Abbruchoperationscodes in den Operationscodespeicher abgebrochen wird, kann es sein, dass wenigstens ein Teil der Informationen in dem ersten Informationsspeicher für die erste Einheit nicht zugänglich ist, d. h. nicht lesbar ist, nachdem die Operation abgebrochen worden ist. Zu diesem Zweck können Informationen gelöscht werden, wenn ein Operationscode für einen Abbruch bereitgestellt wird. In einigen Ausführungsformen können alle Informationen des ersten Informationsspeichers für die erste Einheit nach dem Abbruch unzugänglich sein, zum Beispiel indem alle Information in dem ersten Informationsspeicher gelöscht werden.
  • Des Weiteren kann es sein, dass dann, wenn die Operation ohne Abbruch abgeschlossen wird, nur ein Teil der Informationen, wie etwa ein erwartetes Ausgabeergebnis der Subroutine oder des Befehls, für die erste Einheit lesbar sein kann. Auf diese Weise kann verhindert werden, dass Informationen, die von der Verarbeitungseinheit während der Operation geschrieben werden, wie etwa interne Ergebniswerte oder Zwischenergebniswerte, und die sicherheitskritisch im Hinblick auf das Erlauben des Erlangens von Informationen in Bezug auf die Operationen und auf die Struktur der Funktion der Verarbeitungseinheit sind, an die erste Einheit ausgegeben werden. Zu diesem Zweck wird in Übereinstimmung mit einem Beispiel das Ausgabeergebnis der Operation in den ersten Informationsspeicher geschrieben und wenigstens ein Teil der Informationen mit Ausnahme des Ausgabeergebnisses wird gelöscht oder entfernt, wenn die Operation abgeschlossen ist oder abgebrochen wird. Erst nach dem Löschen der Informationen wird der ersten Einheit der Lese-/Schreibzugriff auf den ersten Informationsspeicher gestattet.
  • Mit anderen Worten, der erste Informationsspeicher verhindert, dass ein erster Teil von Informationen in dem ersten Informationsspeicher nach außen ausgegeben wird, nachdem die Operation abgeschlossen ist oder abgebrochen worden ist, erlaubt es aber, dass ein zweiter Teil von Informationen in dem ersten Informationsspeicher an die erste Einheit ausgegeben wird, nachdem die Operation abgeschlossen ist.
  • In einer Ausführungsform kann eine Beschränkungssteuerschaltung implementiert sein, um die Zugriffskontrolle bzw. Zugriffssteuerung für den ersten Informationsspeicher vorzusehen. Die Beschränkungssteuerschaltung kann einen Zugriff auf den ersten Informationsspeicher in der folgenden Art und Weise beschränken. Wenn die erste Einheit eine Ausführung einer Subroutine oder eines Befehls anfordert, die bzw. der von der Verarbeitungseinheit ausgeführt werden soll, werden Informationen für die Ausführung der Subroutine oder des Befehls von der ersten Einheit zu dem ersten Informationsspeicher zugeführt. Nachdem die Informationen zu dem ersten Informationsspeicher geliefert worden sind, werden Zugriffsbeschränkungen, die den Zugriff auf den ersten Informationsspeicher beschränken, für die erste Einheit und mögliche weitere Einheiten ausgenommen für die Verarbeitungseinheit vorgesehen.
  • Außerdem können, wie oben bereits dargelegt worden ist, Zugriffsbeschränkungen auch für einen zweiten Informationsspeicher bereitgestellt werden, wie etwa zum Beispiel für einen Operationscodespeicher.
  • 4A bis 4D zeigen nun Zeitverlaufsdiagramme von beispielhaften Verwendungen in Übereinstimmung mit dem oben beschriebenen ersten Informationsspeicher und dem oben beschriebenen Operationscodespeicher.
  • 4A zeigt ein Zeitverlaufsdiagramm für ein Beispiel, in dem drei Operationen, die in 4A als OP1, OP2 und OP3 bezeichnet sind, der Reihe nach als Teil einer Datenverarbeitung durchgeführt werden. Die Operationen können zum Beispiel eine Ausführung entsprechend dem Operationscode von drei Befehlsworten umfassen. Vor dem Starten der Operation OP1 sind der erste Informationsspeicher und der Operationscodespeicher sowohl bezüglich des Schreibens freigegeben als auch bezüglich des Lesens freigegeben (Lesen/Schreiben freigegeben). Ein Operationscode für die Operation OP1 wird dann von der ersten Einheit zu dem Operationscodespeicher transferiert, und die Eingangsparameter für die Operation 1 werden von der ersten Einheit zu dem ersten Informationsspeicher transferiert. Nach dem Speichern des Operationscodes und der Eingangsparameter für die Operation OP1 wird dann der Schutzmodus des ersten Informationsspeichers in Bezug auf die erste Einheit und alle weiteren externen Einheiten von für das ,Lesen/Schreiben freigegeben' auf den Lese-/Schreibschutz geändert. In Bezug auf die Verarbeitungseinheit, die die Operation OP1 ausführt, ist der erste Informationsspeicher immer noch für einen Lese- bzw. Schreibvorgang zugänglich. In dem Operationscodespeicher wird der Zugriffsschutz von dem Freigegebensein des Lese- und Schreibzugriffs auf das Blockieren des Schreibzugriffs geändert. In dem in 4A gezeigten Beispiel ist der Modus, in dem der Schreibzugriff blockiert ist, ein selektiver Blockiermodus, der das Schreiben für alle Operationscodes außer für vorbestimmte Operationscodes, wie etwa einen Operationscode für den Abbruch einer Operation, blockiert. Der Speicher, der für den wenigstens einen Eingangsparameter und den wenigstens einen Ausgangsparameter vorgesehen ist, ist in Ausführungsformen dynamisch so konfigurierbar, dass für jede Operation ein Speicher für die Eingangs- und Ausgangsparameter in Abhängigkeit von der ausgeführten Operation zugewiesen werden kann. In einigen Ausführungsformen können sich die Speicher für die Eingangs- und Ausgangsparameter überlappen, so dass der Speicher für die Eingangsparameter wenigstens zum Teil für das Speichern der Ausgangsparameter verwendet wird.
  • Während der Ausführung der Operation OP1 bleiben der erste Informationsspeicher und der Operationscodespeicher in dem oben beschriebenen Modus. Nach dem Beenden der Ausführung wird der erste Informationsspeicher wieder so gesetzt, dass er zum Lesen und Schreiben freigegeben ist. Die Datenverarbeitungseinheit kann dann die erste Einheit von dem neuen Status, nämlich dass die Operation abgeschlossen ist, informieren, und die erste Einheit kann einen Ausgangsparameter auslesen, der in den ersten Informationsspeicher von der Verarbeitungseinheit während der Ausführung geschrieben worden ist. Außerdem wird nach Beendigung der ersten Operation OP1 der Operationscodespeicher wieder so eingestellt, dass er zum Lesen und Schreiben freigegeben ist. Der neue Operationscode für die Operation OP2 und die neuen Eingangsparameter für die Operation OP2 werden dann transferiert und jeweils in dem Operationscodespeicher und in dem ersten Informationsspeicher gespeichert, und die Operation OP2 sowie auch eine weitere Operation OP3 werden in der oben beschriebenen Art und Weise ausgeführt.
  • 4B zeigt das Beispiel von 4A, wenn ein Abbruch während der Operation OP2 auftritt. Wie in 4B zu sehen ist, wird ein Abbruchoperationscode von der ersten Einheit zu dem Operationscodespeicher während der Ausführung der Operation OP2 transferiert. Obwohl der Operationscodespeicher so eingestellt ist, dass das Schreiben selektiv blockiert ist, wird es, da sich der Abbruchoperationscode unter den spezifischen Operationscodes befindet, gestattet, dass der Abbruchoperationscode in den Operationscodespeicher geschrieben werden kann.
  • Nachdem der Abbruchoperationscode in den Operationscodespeicher geschrieben ist, wird die Operation abgebrochen, und Informationen, die in dem ersten Informationsspeicher gespeichert sind, werden gelöscht. Wie oben dargelegt worden ist, können alle Informationen, die in dem ersten Informationsspeicher gespeichert sind, gelöscht werden, oder ein selektives Löschen von Informationen kann durchgeführt werden. Nachdem die Informationen aus dem ersten Informationsspeicher gelöscht sind, kehrt der erste Informationsspeicher in den Modus zurück, in dem er zum Lesen und Schreiben freigegeben ist, wodurch gestattet wird, dass weiter Informationen in diesen geschrieben werden können. Auch der Operationscodespeicher kehrt in den Modus zurück, in dem das Lesen und Schreiben freigegeben ist.
  • 4C zeigt ein Beispiel, in dem eine Sequenz von Operationen OP1a, OP1b, OP1c durchgeführt wird, wobei Zwischenergebnisse nach jeder abgeschlossenen Operation ausgegeben werden. Die Sequenz von Operationen ist zum Beispiel in einer Ausführungsform eine Sequenz von Subroutinen oder Befehlen. Zu Beginn sind der erste Informationsspeicher und der Operationscodespeicher für das Lesen und Schreiben freigegeben und die Eingangsparameter werden in den ersten Informationsspeicher geschrieben. Der Operationscode OP1a für das Durchführen der Operation OP1a wird in den Operationscodespeicher geschrieben. Dann, nachdem die Operation OP1a beendet ist, wird der erste Informationsspeicher so gesetzt, dass er zwar zum Lesen freigegeben ist, aber zum Schreiben nicht freigegeben ist. Dies erlaubt es, dass das Zwischenergebnis jeder Operation aus dem ersten Informationsspeicher ausgelesen werden kann. Erst nach der Beendigung der gesamten Sequenz werden sowohl der erste Informationsspeicher als auch der Operationscodespeicher so eingestellt, dass sie für alle Einheiten bezüglich des Lesens und Schreibens freigegeben werden. Nach dem Beenden der Operationen 1a und 1b wird der Operationscodespeicher wieder so gesetzt, dass die erste Einheit in diesen schreiben kann, um zu erlauben, dass der jeweilige nachfolgende Operationscode in der Sequenz in den Operationscodespeicher geschrieben werden kann. Das Schreiben des Operationscodes aktiviert dann automatisch das Umschalten in den Modus, in dem der Lese- und Schreibzugriff auf den ersten Informationsspeicher und der Schreibzugriff auf den Operationscodespeicher (ausgenommen für die ausgewählten Operationscodes) für die erste Einheit blockiert sind.
  • Für jede Operation einer Subroutine oder eine Operationssequenz können neue Eingangsparameter in den ersten Informationsspeicher vor dem Starten der jeweiligen Operation geschrieben werden. Dies kann von der vorhergehenden Operation abhängen, die den Zugriffsschutz für den ersten Informationsspeicher setzt. Somit bestimmt in einigen Ausführungsformen die vorher ausgeführte Operation innerhalb einer Sequenz von Operationen, welcher Zugriffsschutz zwischen zwei aufeinanderfolgenden Operationen angelegt wird. Anstatt dass für den ersten Informationsspeicher zwischen den aufeinanderfolgenden Operationen in den Schutzmodus „Lesen freigegeben/Schreiben blockiert” geschaltet wird, wie in 4C gezeigt ist, kann der erste Informationsspeicher nach dem Beenden einer Operation in den Modus „Lesen/Schreiben freigegeben” umschalten, was zusätzlich zu dem Lesen der Zwischenergebnisse auch erlaubt, dass der eine oder die mehreren neuen Eingangsparameter in den ersten Informationsspeicher geschrieben werden können. Die beiden oben genannten Zugriffsschutze zwischen aufeinanderfolgenden Operationen innerhalb einer Sequenz von Operationen können deshalb in einigen Ausführungsformen beide innerhalb einer Sequenz von Operationen so auftreten, dass nach einem Operationscode keine neuen Eingangsinformationen eingegeben werden und deshalb der Schutzmodus in den Modus „Lesen freigegeben/Schreiben blockiert” geschaltet wird, während für einen anderen Operationscode der Schutzmodus in den Modus „Lesen/Schreiben freigegeben” geschaltet wird, um das Schreiben von neuen Eingangsparametern zu erlauben.
  • Des Weiteren kann in einigen Ausführungsformen der Zugriffsschutz zwischen zwei Operationen einer Sequenz von Operationen für verschiedene Abschnitte oder Teile des ersten Informationsspeichers unterschiedlich sein. Zum Beispiel kann ein bestimmter Abschnitt des ersten Informationsspeichers oder ausgewählte Unterspeicher (zum Beispiel Register) des ersten Informationsspeichers nach einer Operation so eingestellt werden, dass er bzw. sie auf „Lesen freigegeben/Schreiben blockiert” gesetzt ist bzw. sind, während ein anderer Abschnitt oder andere ausgewählte Unterspeicher des ersten Informationsspeichers nach derselben Operation auf „Lesen/Schreiben freigegeben” gesetzt wird bzw. werden. Dies erlaubt es, dass dann, wenn neue Eingangsparameter zwischen zwei aufeinanderfolgenden Operationen geschrieben werden müssen, nur auf einen beschränkten Bereich von der ersten Einheit zugegriffen werden darf, während die anderen Speicherbereiche oder Unterspeicher des ersten Informationsspeichers immer noch geschützt sind. Die ausgewählten Abschnitte oder Unterspeicher des ersten Informationsspeichers, die bezüglich des Schreibens nach einer Ausführung freigegeben werden, können dynamisch in Abhängigkeit von dem ausgeführten Operationscode ausgewählt werden.
  • In einigen Ausführungsformen kann der Speicherplatz des ersten Informationsspeichers für Eingangsparameter anders verwendet werden als für Ausgangsparameter. Des Weiteren wird es in einigen Ausführungsformen den Ausgangsparametern erlaubt, Eingangsparameter zu überschreiben, um den Speicherplatz auf effizienteste Art und Weise zu nutzen.
  • 4C zeigt somit, dass in einigen Beispielen der erste Informationsspeicher wenigstens selektiv zugänglich sein kann, wenn eine Operation von der Verarbeitungseinheit zum Beispiel zwischen zwei aufeinanderfolgenden Operationen nicht durchgeführt wird.
  • 4D zeigt ein Beispiel ähnlich der 4C ohne das Auslesen von Zwischenergebnissen nach jeder vollendeten Subroutine. Hier ist der erste Informationsspeicher 106a von Beginn der ersten Operation OP1a der Sequenz an bis zur Beendigung der letzten Operation OP1c der Sequenz so gesetzt, dass er bezüglich des Lesens und des Schreibens blockiert ist (ausgenommen für die Verarbeitungseinheit).
  • Die oben beschriebenen Beispiele zeigen, dass ein individueller und flexibler Schutz mit dem beschriebenen Schutzmechanismus erzielt werden kann. Der Schutz kann zum Beispiel unterschiedliche Typen von Schutz für unterschiedliche Typen von Operationscodes umfassen. Des Weiteren kann, obwohl dies in den 4A bis 4D nicht gezeigt ist, nur ein Teil des ersten Informationsspeichers 106a den oben beschriebenen Schutz aufweisen, während andere Teile des ersten Informationsspeichers während der Ausführung der Operationen andere Schutze hinsichtlich des Lesens und Schreibens haben können. Mit anderen Worten, der Schutz kann unterschiedliche Schutztypen umfassen, die den verschiedenen Abschnitten oder Unterspeichern des ersten Informationsspeichers zugewiesen sind. Des Weiteren kann die Zuweisung für die verschiedenen Abschnitte oder Unterspeicher in einigen Ausführungsformen von dem Typ des Operationscodes abhängen, wie dies oben dargelegt ist. Zusätzlich zu dem ersten Informationsspeicher 106a kann ein zweiter oder weitere Informationsspeicher mit dem gleichen Schutzmechanismus versehen sein, wobei im Hinblick auf den ersten, den zweiten und weitere Informationsspeicher unterschiedliche Typen von Schutz während der Ausführung einer Operation durch die Verarbeitungseinheit erlaubt sind. Auch andere Informationsspeicher, die ein festes Schutzschema aufweisen können, können zum Beispiel mit einem Schutz versehen werden, der ein exklusives Lesen und Schreiben nur für die Verarbeitungseinheit gestattet.
  • In der obigen Beschreibung sind hier Ausführungsformen gezeigt und beschrieben worden, die die Fachleute auf dem Gebiet in ausreichender Einzelheit in die Lage versetzen, die hier offenbarten Lehren in die Praxis umzusetzen. Andere Ausführungsformen können verwendet und hieraus abgeleitet werden, so dass strukturelle und logische Ersetzungen und Änderungen vorgenommen werden können, ohne dass von dem Schutzumfang der vorliegenden Offenbarung abgewichen wird.
  • Diese ausführliche Beschreibung soll daher nicht in einem beschränkenden Sinne ausgelegt werden, und der Schutzumfang verschiedener Ausführungsformen wird lediglich durch die angehängten Ansprüche definiert, zusammen mit dem vollen Bereich von Äquivalenten, zu denen diese Ansprüche berechtigt sind.
  • Auf solche Ausführungsformen des erfindungsgemäßen Gegenstands kann hier einzeln und/oder kollektiv durch den Begriff „Erfindung” Bezug genommen werden, und zwar lediglich aus praktischen Gründen und ohne willentliche Absicht, den Schutzumfang der vorliegenden Anmeldung auf eine einzelne Erfindung oder ein einzelnes erfindungsgemäßes Konzept zu begrenzen, wenn tatsächlich mehr als eine(s) offenbart wird. Somit soll es klar sein, dass, obwohl hier spezifische Ausführungsformen veranschaulicht und beschrieben worden sind, jede Anordnung, die darauf zugeschnitten ist, den gleichen Zweck zu erfüllen, die gezeigten spezifischen Ausführungsformen ersetzen kann. Diese Offenbarung ist dafür gedacht, jegliche und alle Adaptionen oder Variationen verschiedener Ausführungsformen abzudecken. Kombinationen aus den oben genannten Ausführungsformen und andere Ausführungsformen, die hier nicht spezifisch beschrieben worden sind, werden den Fachleuten auf dem Gebiet beim Durchlesen der obigen Beschreibung offensichtlich sein.
  • Es sei ferner angemerkt, dass spezifische Begriffe, die in der Beschreibung und in den Ansprüchen verwendet werden, in einem sehr breiten Sinn interpretiert werden können. So sollen zum Beispiel die Begriffe „Schaltung” oder „Schaltungen”, die hier verwendet werden, in einem Sinne interpretiert werden, dass sie nicht nur Hardware, sondern auch Software, Firmware oder alle Kombinationen daraus einschließen. Der Begriff „Daten” kann so interpretiert werden, dass er jede Form von Darstellung umfasst, wie etwa eine analoge Signaldarstellung, eine digitale Signaldarstellung, eine Modulation auf Trägersignale, etc. Der Begriff „Informationen” kann zusätzlich zu jeder Form von digitaler Information auch andere Formen von darstellenden Informationen umfassen. Der Begriff „Entität” oder „Einheit” kann in Ausführungsformen jegliche Vorrichtung, Vorrichtungsschaltungen, Hardware, Software, Firmware, Chips oder andere Halbleiter sowie logische Einheiten oder Untereinheiten oder physische Implementierungen, etc. umfassen. Des Weiteren können die Begriffe „gekoppelt” oder „verbunden” in einem breiten Sinne so interpretiert werden, dass sie nicht nur ein direktes, sondern auch ein indirektes Koppeln abdecken.
  • Es sei ferner angemerkt, dass Ausführungsformen, die in Verbindung mit spezifischen Entitäten beschrieben sind, zusätzlich zu einer Implementierung in diesen Entitäten auch eine oder mehrere Implementierungen in einer oder mehreren Unterentitäten oder Unterabteilungen der beschriebenen Entität umfassen können.
  • Die beigefügten Zeichnungen, die einen Teil der vorliegenden Beschreibung bilden, zeigen anhand von Veranschaulichungen und nicht zur Beschränkung spezifische Ausführungsformen, in denen der erfindungsgemäße Gegenstand praktiziert werden kann.
  • In der vorstehenden ausführlichen Beschreibung ist zu sehen, dass verschiedene Merkmale miteinander in einer einzigen Ausführungsform zum Zwecke der Rationalisierung der Offenbarung gruppiert sind. Dieses Verfahren der Offenbarung soll nicht als eine Absicht reflektierend interpretiert werden, dass die beanspruchten Ausführungsformen mehr Merkmale benötigen als diese ausdrücklich in jedem Anspruch genannt sind. Vielmehr liegt, wie die nachfolgenden Ansprüche reflektieren, der erfindungsgemäße Gegenstand in weniger als alle Merkmale einer einzigen offenbarten Ausführungsform. Somit sind die nachfolgenden Ansprüche hier in die ausführliche Beschreibung aufgenommen, wobei jeder Anspruch für sich selbst als eine separate Ausführungsform stehen kann. Obwohl jeder Anspruch für sich selbst als eine separate Ausführungsform stehen kann, sei angemerkt, dass – obwohl sich ein abhängiger Anspruch in den Ansprüchen auf eine spezifische Kombination mit einem oder mehreren anderen Ansprüchen beziehen kann – andere Ausführungsformen ebenfalls eine Kombination des abhängigen Anspruchs mit dem Gegenstand jedes anderen abhängigen Anspruchs umfassen kann. Solche Kombinationen werden hier vorgeschlagen, es sei denn, dass festgestellt wird, dass eine spezifische Kombination nicht gewollt ist. Des Weiteren ist es beabsichtigt, auch Merkmale eines Anspruchs in jeden anderen unabhängigen Anspruch einzuschließen, selbst wenn dieser Anspruch nicht direkt auf den unabhängigen Anspruch rückbezogen worden ist.
  • Es sei ferner angemerkt, dass Verfahren, die in der Spezifikation oder in den Ansprüchen offenbart sind, durch eine Vorrichtung implementiert werden können, die Einrichtungen zum Durchführen jedes der jeweiligen Schritte dieser Verfahren oder eine Schaltung aufweist, die zum Durchführen der jeweiligen Schritte dieser Verfahren konfiguriert ist.
  • Des Weiteren soll es klar sein, dass die Offenbarung von mehreren Schritten oder Funktionen, die in der Spezifikation oder in den Ansprüchen offenbart sind, nicht als innerhalb einer spezifischen Reihenfolge liegend interpretiert werden sollen. Deshalb wird die Offenbarung von mehreren Schritten oder Funktionen diese nicht auf eine bestimmte Reihenfolge beschränken, es sei denn, dass solche Schritte oder Funktionen aus technischen Gründen nicht untereinander austauschbar sind.
  • Ferner kann in einigen Ausführungsformen ein einziger Schritt mehrere Unterschritte enthalten oder er kann in mehrere Unterschritte unterteilt sein. Solche Unterschritte können in der Offenbarung dieses einzigen Schrittes enthalten sein oder ein Teil davon sein, es sei denn, dies wird explizit ausgeschlossen.

Claims (10)

  1. Verfahren, das Folgendes umfasst: Liefern von ersten Informationen von einer ersten Einheit in einen ersten Informationsspeicher zum Durchführen einer ersten Operation einer Verarbeitungseinheit; wobei während der ersten Operation der Verarbeitungseinheit zweite Informationen zwischen der Verarbeitungseinheit und dem wenigstens ersten Informationsspeicher transferiert werden, wobei der erste Informationsspeicher während der ersten Operation der Verarbeitungseinheit einen Zugriffsschutz aufweist, in dem der erste Informationsspeicher für die erste Einheit nicht zugänglich ist, also in dem die erste Einheit nicht auf den ersten Informationsspeicher zugreifen kann.
  2. Verfahren nach Anspruch 1, wobei der erste Informationsspeicher während der ersten Operation der Verarbeitungseinheit nur für die Verarbeitungseinheit zum Lesen und Schreiben zugänglich ist.
  3. Verfahren nach Anspruch 1, das des Weiteren Folgendes umfasst: Zuführen der ersten Informationen von dem ersten Informationsspeicher zu der Verarbeitungseinheit; und Berechnen wenigstens eines Ergebnisses während der ersten Operation auf der Basis der ersten Informationen.
  4. Verfahren nach Anspruch 1, wobei ein Datenverarbeitungstyp während der ersten Operation der Verarbeitungseinheit von der ersten Einheit durch das Schreiben eines Operationscodes in einen Operationscodespeicher auswählbar ist, wobei der Datenverarbeitungstyp einen Zugriffsschutztyp der ersten Operation während der ersten Operation bestimmt.
  5. Verfahren zum Beschränken des Zugriffs auf einen Informationsspeicher, wobei das Verfahren folgende Schritte umfasst: Anfordern einer Ausführung einer Subroutine oder eines Befehls, wobei die Ausführung von einer ersten Einheit angefordert wird und die Subroutine oder der Befehl von einer Verarbeitungseinheit ausgeführt wird; Liefern durch die erste Einheit von Informationen für das Ausführen der Subroutine oder des Befehls zu einem ersten Informationsspeicher; und Bereitstellen von Zugriffsbeschränkungen, die den Zugriff auf den ersten Informationsspeicher für die erste Einheit beschränken.
  6. Vorrichtung mit: einer Verarbeitungseinheit zum Durchführen einer Datenverarbeitungsoperation; einem ersten Informationsspeicher, auf den von der Verarbeitungseinheit zum Lesen und Schreiben zugegriffen werden kann; einer ersten Einheit zum Initiieren der Datenverarbeitungsoperation von der Verarbeitungseinheit; einer Zugriffskontrolle bzw. Zugriffssteuerung, die so konfiguriert ist oder konfigurierbar ist, dass sie von einem ersten Zugriffsmodus, in dem auf den ersten Informationsspeicher durch die erste Einheit zugegriffen werden kann, in einen zweiten Modus umschaltet, in dem auf den ersten Informationsspeicher von der ersten Einheit während der Datenverarbeitungsoperation nicht zugegriffen werden kann.
  7. Vorrichtung nach Anspruch 6, wobei die Zugriffskontrolle so konfiguriert ist oder konfigurierbar ist, dass sie automatisch in den zweiten Modus schaltet, und zwar auf der Basis des Schreibens eines Operationscodes durch die erste Einheit in einen Operationscodespeicher für die Ausführung der Datenverarbeitungsoperation.
  8. Vorrichtung mit: einem Operationscodespeicher; einem Datenspeicher zum Speichern von Daten, die zwischen einer ersten Einheit und einer Datenverarbeitungseinheit transferiert werden; wobei die Datenverarbeitungseinheit so konfiguriert ist, dass sie eine Datenverarbeitungsoperation auf der Basis eines Operationscodes durchführt, der von der ersten Einheit in den Operationscodespeicher geschrieben wird; und einem Controller zum Schutz des Datenspeichers vor einem Zugriff durch die erste Einheit, wenn die Datenverarbeitungseinheit die Datenverarbeitungsoperation durchführt, und zum Freigeben eines Zugriffs für wenigstens die erste Einheit, wenn die Datenverarbeitungsoperation abgeschlossen ist.
  9. Vorrichtung nach Anspruch 8, wobei der Controller so konfiguriert ist, dass er den Schutz des Datenspeichers vor dem Zugriff durch die erste Einheit auf der Basis des Schreibens eines Operationscodes in einen Operationscodespeicher aktiviert.
  10. Informationsspeicheranordnung mit: einem Operationscodespeicher; einem Datenspeicher, wobei der Datenspeicher eine Vielzahl von Untereinheitsspeichern umfasst; einem Controller zum Konfigurieren, vor einer Datenverarbeitungsoperation, die mit einem Operationscode assoziiert ist, der in dem Operationscodespeicher gespeichert ist, für jede der Vielzahl von Untereinheitsspeichern eines Lese-/Schreibschutzes während der Ausführung des Operationscodes.
DE102012001756A 2011-02-08 2012-01-30 Vorrichtung mit einer Verarbeitungseinheit und einem Informationsspeicher Pending DE102012001756A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/022,835 2011-02-08
US13/022,835 US8924672B2 (en) 2011-02-08 2011-02-08 Device with processing unit and information storage

Publications (1)

Publication Number Publication Date
DE102012001756A1 true DE102012001756A1 (de) 2012-08-09

Family

ID=46547143

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012001756A Pending DE102012001756A1 (de) 2011-02-08 2012-01-30 Vorrichtung mit einer Verarbeitungseinheit und einem Informationsspeicher

Country Status (3)

Country Link
US (2) US8924672B2 (de)
CN (1) CN102637152B (de)
DE (1) DE102012001756A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9418035B2 (en) * 2012-10-22 2016-08-16 Intel Corporation High performance interconnect physical layer

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7987510B2 (en) * 2001-03-28 2011-07-26 Rovi Solutions Corporation Self-protecting digital content
JP4559359B2 (ja) * 2003-02-20 2010-10-06 パナソニック株式会社 情報記録媒体及びその領域管理方法
JP4584044B2 (ja) * 2005-06-20 2010-11-17 ルネサスエレクトロニクス株式会社 半導体装置
US7908411B2 (en) * 2006-09-20 2011-03-15 Panasonic Corporation Data transfer device and mobile telephone
US7512743B2 (en) 2006-11-07 2009-03-31 Spansion Llc Using shared memory with an execute-in-place processor and a co-processor
JP5079084B2 (ja) * 2007-05-09 2012-11-21 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ・システムの操作を防止するための方法及びデータ処理システム
CN101393587A (zh) * 2007-09-21 2009-03-25 鸿富锦精密工业(深圳)有限公司 一种具有安全保护功能的移动设备及其安全保护方法
US8781127B2 (en) 2008-09-05 2014-07-15 Vixs Systems, Inc. Device with privileged memory and applications thereof
US8327249B2 (en) * 2009-08-20 2012-12-04 Broadcom Corporation Soft error rate protection for memories
CN101788958A (zh) * 2010-02-04 2010-07-28 杭州晟元芯片技术有限公司 一种存储器数据保护的方法

Also Published As

Publication number Publication date
US8924672B2 (en) 2014-12-30
CN102637152B (zh) 2015-09-30
US20150154123A1 (en) 2015-06-04
CN102637152A (zh) 2012-08-15
US20120203989A1 (en) 2012-08-09

Similar Documents

Publication Publication Date Title
EP1276033B1 (de) Speichereinrichtung mit Datenschutz in einem Prozessor
DE102009013384B4 (de) System und Verfahren zur Bereitstellung einer sicheren Anwendungsfragmentierungsumgebung
DE102015017399B3 (de) Speichergerät, Betriebsverfahren des Speichergeräts und elektronisches Gerät mit dem Speichergerät
DE112009002502T5 (de) Multilayer inhalte-schützender Mikrocontoller
DE102009017496B4 (de) Speicherzugriff in einem System mit Speicherschutz
DE112016001972T5 (de) Sicherer Zugriff in einem Mikrokontrollersystem
DE10159901A1 (de) Mikrocomputer mit eingebautem programmierbarem, nichtflüchtigem Speicher
DE2801518A1 (de) Datenverarbeitungssystem mit speicher-schutzeinrichtung
EP1262856B1 (de) Programmgesteuerte Einheit
EP3811261B1 (de) Kryptografiemodul und betriebsverfahren hierfür
DE102009008362B4 (de) Verfahren der Handhabung von Speicherschlüsseln in einem sicheren System
EP1611517B1 (de) Programmgesteuerte einheit
DE112019007230T5 (de) Multimodus-Geschützter-Speicher
DE102018208066A1 (de) Datenverarbeitungseinrichtung und Betriebsverfahren hierfür
DE102006060071B3 (de) Ansteuerung eines Peripheriegerätes über eine CANopen-Schnittstelle
DE102012001756A1 (de) Vorrichtung mit einer Verarbeitungseinheit und einem Informationsspeicher
EP2394232B1 (de) Vorrichtung und verfahren zum verhindern von unautorisierter verwendung und/oder manipulation von software
WO2004114131A1 (de) Verfahren zum nachladen einer software in den bootsektor eines programmierbaren lesespeicher
EP3286872B1 (de) Bereitstellen eines gerätespezifischen kryptographischen schlüssels aus einem systemübergreifenden schlüssel für ein gerät
DE102006043167B4 (de) Mikrocontroller und Verfahren zum Starten eines Anwendungsprogramms auf einem Mikrocontroller
DE102022130951A1 (de) Steuerungsanordnung umfassend ein Steuergerät mit Fehlersuchschnittstellen und Verfahren zum Betreiben eines Steuergeräts
DE102021110768B3 (de) Forensik-Modul und eingebettetes System
DE102021110766B3 (de) Forensik-Modul und eingebettetes System
WO2017102655A1 (de) Mikrocontrollersystem und verfahren zur kontrolle von speicherzugriffen in einem mikrocontrollersystem
EP3391279B1 (de) Mikrocontrollersystem und verfahren zur kontrolle von speicherzugriffen in einem mikrocontrollersystem

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R082 Change of representative

Representative=s name: 2SPL PATENTANWAELTE PARTG MBB SCHULER SCHACHT , DE