DE102015116181B4 - Datenverarbeitung - Google Patents

Datenverarbeitung Download PDF

Info

Publication number
DE102015116181B4
DE102015116181B4 DE102015116181.8A DE102015116181A DE102015116181B4 DE 102015116181 B4 DE102015116181 B4 DE 102015116181B4 DE 102015116181 A DE102015116181 A DE 102015116181A DE 102015116181 B4 DE102015116181 B4 DE 102015116181B4
Authority
DE
Germany
Prior art keywords
memory access
access rule
program counter
value
predefined
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
DE102015116181.8A
Other languages
English (en)
Other versions
DE102015116181A1 (de
Inventor
Narasimha Kumar VEDALA
Bala Nagendra Raja Munjuluri
Prakash Nayak
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 DE102015116181A1 publication Critical patent/DE102015116181A1/de
Application granted granted Critical
Publication of DE102015116181B4 publication Critical patent/DE102015116181B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2135Metering

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

Verfahren zum Ausführen eines Programmcodes, wobei das Verfahren umfasst:- Überprüfen einer Speicherzugriffsregelressource basierend auf einem Trigger; und- Vergleichen eines aktuellen Programmzählers mit einer durch die Speicherzugriffsregelressource bereitgestellten Programmzählerinformation, und wenn der Vergleich des aktuellen Programmzählers und der Programmzählerinformation eine vordefinierte Bedingung erfüllt, Durchführen einer Speicherzugriffsregelprüfung- wobei das Durchführen einer Speicherzugriffsregelprüfung umfasst:- Abrufen eines Speicherzugriffsregelwerts aus der Speicherzugriffsregelressource;- Vergleichen des Speicherzugriffsregelwerts mit einem vordefinierten Wert;- Weiterausführen des Programmcodes, wenn der Speicherzugriffsregelwert dem vordefinierten Wert entspricht; und- Durchführen einer vordefinierten Handlung, wenn der Speicherzugriffsregelwert dem vordefinierten Wert nicht entspricht.

Description

  • Ausführungsformen der vorliegenden Erfindung betreffen Datenverarbeitung, insbesondere auf einer Chipkarte. Moderne Chipkartenanwendungen erfordern Datenschutzmechanismen, die einen hohen Grad an Veränderlichkeit erlauben.
  • Aus US 6,282,657 B1 ist eine Lösung zum Schutz eines Kernels bekannt, wobei in einem sogenannten Kernel-Modus der Zugriff auf den Kernel-Speicher nur von einem sicheren Kernel aus erfolgen kann.
  • Eine Aufgabe besteht insbesondere darin, bekannte Ansätze zu verbessern.
  • Diese Aufgabe wird gemäß den Merkmalen der unabhängigen Ansprüche gelöst. Bevorzugte Ausführungsformen sind insbesondere den abhängigen Ansprüchen entnehmbar.
  • Diese hierin vorgeschlagenen Beispiele können insbesondere auf zumindest einer der nachfolgenden Lösungen basieren. Insbesondere können Kombinationen der nachfolgenden Merkmale eingesetzt werden, um ein gewünschtes Ergebnis zu erreichen. Die Merkmale des Verfahrens können mit (einem) beliebigen Merkmal(en) der Vorrichtung, des Geräts oder Systems oder umgekehrt kombiniert werden.
  • Es wird ein Verfahren zum Ausführen eines Programmcodes bereitgestellt, wobei das Verfahren umfasst:
    • - Überprüfen einer Speicherzugriffsregelressource basierend auf einem Trigger; und
    • - Vergleichen eines aktuellen Programmzählers mit einer durch die Speicherzugriffsregelressource bereitgestellten Programmzählerinformation, und wenn der Vergleich des aktuellen Programmzählers und der Programmzählerinformation eine vordefinierte Bedingung erfüllt, Durchführen einer Speicherzugriffsregelprüfung,
    • - wobei das Durchführen einer Speicherzugriffsregelprüfung umfasst:
      • - Abrufen eines Speicherzugriffsregelwerts aus der Speicherzugriffsregelressource;
      • - Vergleichen des Speicherzugriffsregelwerts mit einem vordefinierten Wert;
      • - Weiterausführen des Programmcodes, wenn der Speicherzugriffsregelwert dem vordefinierten Wert entspricht; und
      • - Durchführen einer vordefinierten Handlung, wenn der Speicherzugriffsregelwert dem vordefinierten Wert nicht entspricht.
  • Das Konzept erlaubt einer Hardware, Zugriff zu einem definierten Speicherteil basierend auf durch eine Anwendungslogik angegebene Bedingungen zu gewähren oder zu begrenzen. Diese Speicherteile können in jeder beliebigen Skalierung durch die Anwendung definiert sein. Dieser Ansatz erlaubt Ausführung von sicherem Code auf kostengünstigen Mikrocontrollern. Insbesondere erlaubt es das Verringern des Betrags an Software-Gegenmaßnahmen für Sicherheit und bewirkt dadurch eine Verringerung des für den Code erforderlichen Speicherplatzbedarfs.
  • Basierend auf dem Trigger kann die Hardware validieren, ob der gegenwärtig ausgeführte Code erforderliche Zugriffsregeln erfüllt.
  • Der aktuelle Programmzähler kann ein Wert eines Programmzählers einer Verarbeitungseinheit (z.B. Mikroprozessors) sein, der auf einen auszuführenden Teil von Programmcode zeigt.
  • Es ist eine Weiterbildung, dass das Verfahren umfasst:
    • - Nichtdurchführen der Speicherzugriffsregelprüfung, wenn der Vergleich des Programmzählers mit der Programmzählerinformation nicht die vordefinierte Bedingung erfüllt.
  • Es ist eine Weiterbildung, dass die Programmzählerinformation eine Programmzählereinstellung oder einen Bereich für den Programmzähler umfasst.
  • Es ist eine Weiterbildung, dass der Vergleich des aktuellen Programmzählers und der Programmzählerinformation eine vordefinierte Bedingung erfüllt, wenn der aktuelle Programmzähler gleich der Programmzählereinstellung ist oder im Bereich für den Programmzähler liegt.
  • Als Wahlmöglichkeit kann der Speicherzugriffsregelwert mit dem vordefinierten Wert verglichen werden, der im aktuellen Ausführungszusammenhang erhalten wird.
  • Als weitere Wahlmöglichkeit kann Weiterausführen des Programmcodes ein Zulassen erlaubter Operationen umfassen, wenn der Speicherzugriffsregelwert dem im aktuellen Ausführungszusammenhang erreichten vordefinierten Wert entspricht.
  • Es ist eine Weiterbildung, dass die vordefinierte Handlung wenigstens eines der Folgenden umfasst:
    • - Auslösen einer Ausnahmehandlung („exception handling“);
    • - Auslösen einer Unterbrechung (eines Interrupts);
    • - Ausgeben eines Alarms, insbesondere eines Sicherheitsalarms; und
    • - Ausgeben einer Benachrichtigung.
  • Es ist eine Weiterbildung, dass der vordefinierte Wert ein globaler Wert ist, der anwendungsspezifische Zugriffsregeln umfasst.
  • Der vordefinierte Wert kann insbesondere in einem aktuellen Kontext einer Programmausführung erhalten werden.
  • Es ist eine Weiterbildung, dass die Speicherzugriffsregelressource eine im Speicher gespeicherte Datenstruktur, insbesondere eine Tabelle ist.
  • Es ist eine Weiterbildung, dass die Speicherzugriffsregelressource eine Datenstruktur ist, wobei jeder Eintrag der Datenstruktur umfasst:
    • - eine Startadresse des Speichers;
    • - eine Größe des Speichers;
    • - einen Speicherzugriffsregelwert; und
    • - wenigstens eine erlaubte Operation.
  • Es ist eine Weiterbildung, dass jeder Eintrag der Datenstruktur weiterhin mindestens eine erlaubte Operation umfasst.
  • Die erlaubte(n) Operation(en) kann (können) wenigstens eines der Folgenden umfassen: Lesen, Schreiben, Ausführen.
  • Es ist eine Weiterbildung, dass die Programmzählerinformation basierend auf der Startadresse des Speichers und der Größe des Speichers bestimmt wird.
  • Es ist eine Weiterbildung, dass der Trigger von einem vorbestimmten Zeitintervall abhängig ist.
  • Es ist eine Weiterbildung, dass der Trigger auf einem vordefinierten Operationscode basiert.
  • Es ist eine Weiterbildung, dass das Verfahren auf einer Verarbeitungseinheit einer sicheren integrierten Schaltung, einem sicheren Mikrocontroller, einem Mikrocontroller oder einer Chipkarte ausgeführt wird.
  • Es ist eine Weiterbildung, dass die Speicherzugriffsregel für auszuführenden Programmcode oder für Daten, auf die zugegriffen wird, anwendbar ist.
  • Weiterhin wird eine Vorrichtung angegeben umfassend eine Verarbeitungseinheit, wobei die Verarbeitungseinheit eingerichtet ist zum
    • - Überprüfen einer Speicherzugriffsregelressource basierend auf einem Trigger; und
    • - Vergleichen eines aktuellen Programmzählers mit einer durch die Speicherzugriffsregelressource bereitgestellten Programmzählerinformation, und wenn der Vergleich des aktuellen Programmzählers und der Programmzählerinformation eine vordefinierte Bedingung erfüllt, Durchführen einer Speicherzugriffsregelprüfung, wobei das Durchführen einer Speicherzugriffsregelprüfung umfasst:
      • - Abrufen eines Speicherzugriffsregelwerts aus der Speicherzugriffsregelressource;
      • - Vergleichen des Speicherzugriffsregelwerts mit einem vordefinierten Wert;
      • - Weiterausführen des Programmcodes, wenn der Speicherzugriffsregelwert dem vordefinierten Wert entspricht; und
      • - Durchführen einer vordefinierten Handlung, wenn der Speicherzugriffsregelwert dem vordefinierten Wert nicht entspricht.
  • Auch wird eine Chipkarte vorgeschlagen, umfassend
    • - eine Verarbeitungseinheit; und
    • - einen Speicher,
    • - wobei die Verarbeitungseinheit eingerichtet ist zum
      • - Überprüfen einer Speicherzugriffsregelressource basierend auf einem Trigger; und
    • - Vergleichen eines aktuellen Programmzählers mit einer durch die Speicherzugriffsregelressource bereitgestellten Programmzählerinformation, und wenn der Vergleich des aktuellen Programmzählers und der Programmzählerinformation eine vordefinierte Bedingung erfüllt, Durchführen einer Speicherzugriffsregelprüfung, wobei das Durchführen einer Speicherzugriffsregelprüfung umfasst:
      • - Abrufen eines Speicherzugriffsregelwerts aus der Speicherzugriffsregelressource;
      • - Vergleichen des Speicherzugriffsregelwerts mit einem vordefinierten Wert;
      • - Weiterausführen des Programmcodes, wenn der Speicherzugriffsregelwert dem vordefinierten Wert entspricht; und
      • - Durchführen einer vordefinierten Handlung, wenn der Speicherzugriffsregelwert dem vordefinierten Wert nicht entspricht.
  • Auch wird ein Computerprogrammprodukt angegeben, das (direkt) in einen Speicher einer digitalen Verarbeitungsvorrichtung ladbar ist, umfassend Softwarecodeteile zum Durchführen der Schritte des hier beschriebenen Verfahrens.
  • Es werden Ausführungsformen gezeigt und unter Bezugnahme auf die Zeichnungen dargestellt. Die Zeichnungen dienen zum Erläutern des Grundprinzips, so dass nur zum Verständnis des Grundprinzips notwendige Aspekte dargestellt sind. Die Zeichnungen sind nicht maßstabsgerecht. In den Zeichnungen bezeichnen gleiche Bezugszeichen gleiche Merkmale.
    • 1 zeigt ein schematisches Flussdiagramm, umfassend solche Schritte, die durchgeführt werden, um zu validieren, ob der gegenwärtig ausgeführte Code erforderliche Zugriffsregeln erfüllt;
    • 2 zeigt ein schematisches Hardwareblockschaltbild, umfassend eine Mikrosteuerung und einen Speicher.
  • Vorgeschlagene Beispiele bieten Mechanismen, z.B. für Mikrosteuerungen (auch bezeichnet als Mikrocontroller), zum Ermöglichen der Ausführung eines gewissen Codeabschnitts nur wenn bestimmte vordefinierte und/oder vom Benutzer eingerichtete Bedingungen erfüllt sind.
  • Zum Beispiel kann ein vertraulicher Schlüsselbearbeitungscode nur dann ausgeführt werden, wenn wenigstens eine der folgenden Bedingungen erfüllt ist:
    • - eine Kommunikationsschnittstelle ist deaktiviert;
    • - Zugang zum Schlüsselbearbeitungscode wird für einen Befehl bereitgestellt;
    • - anwendungsspezifische Bedingungen zum Durchführen der Operation am Schlüssel sind erfüllt.
  • Zugang zu Datengebieten kann nur gewährt werden, wenn angegebene und/oder vom Benutzer eingerichtete Bedingungen erfüllt sind. Zum Beispiel kann Zugang zu einem Speicher, der (z.B. geheime Schlüssel enthält) nur zugelassen werden, wenn die Bedingungen wie oben erwähnt erfüllt sind.
  • Hier beschriebene Beispiele können insbesondere ermöglichen, dass Hardware diese Probleme löst, und dass Speicherzugang flexibel gewährt wird, falls vordefinierte Bedingungen erfüllt wurden.
  • Beispiele können auch anwendungsspezifische Bedingungen bereitstellen, unter denen Zugang zu einem Speicher, z.B. wenigstens einem Teil von Speicher, zugelassen ist. Solche Bedingungen werden als Speicherzugriffsregel (MAP - Memory Access Policy) bezeichnet.
  • Der Speicher kann mit der MAP markiert sein. Der Speicher kann Code und Daten umfassen. Solcher Speicher kann sich auf Speicherteile unterschiedlicher Größen oder Skalierungen beziehen.
  • Während der Ausführung kann eine Verarbeitungseinheit (z.B. Zentraleinheit, ZE) die folgenden Prüfungen durchführen:
    • - Ist die MAP für den ausgeführten Code erfüllt?
    • - Ist die MAP für die Daten, auf die zugegriffen wird, erfüllt?
  • Sollte irgendeine der Prüfungen misslingen, kann eine vordefinierte Handlung ausgelöst werden, z.B. ein Alarm gegeben werden oder eine Benachrichtigung ausgegeben werden.
  • Zum Beispiel können zwei Modi zum Durchführen der MAP-Prüfung bereitgestellt werden:
    • - In einem AUTO-Modus wird von der Verarbeitungseinheit die MAP-Prüfung in konfigurierbaren vordefinierten Zeitintervallen durchgeführt.
    • - In einem MANUAL-Modus kann eine Sonderoperation (Operationscode) zum Auslösen der MAP-Prüfung benutzt werden.
  • Nach einer beispielhaften Ausführungsform können folgende Instanzen benutzt werden:
    • - eine MAP-Tabelle;
    • - ein MAP_STATUS-Register;
    • - ein MAP _CFGx-Register;
    • - ein Operationscode: ASSERTMAP.
  • Hiernach werden diese Instanzen ausführlicher erläutert:
  • MAP-Tabelle:
  • Die MAP-Tabelle kann als eine Tabelle mit folgenden Einträgen (Spalten) strukturiert sein:
    • - eine Startadresse des Speichers;
    • - eine Größe;
    • - ein MAP-Wert;
    • - eine Zugriffserlaubnis.
  • Die MAP-Tabelle kann eine Liste (erforderlicher) Speicherzugriffsregeln (entsprechend dem MAP-Wert) für einen gegebenen Speicheradressbereich umfassen. Der Speicheradressbereich kann durch eine Startadresse und eine Größe definiert sein.
  • MAP _STATUS-Register:
  • Jedes Bit in diesem MAP_STATUS-Register kann anwendungsspezifischen Zugriffsregeln entsprechen, die im Zusammenhang mit einer aktuellen Ausführung erfüllt werden. Eine Zuweisung und eine Einstellung dieser Bit kann durch eine Anwendungslogik gemanagt werden.
  • MAP CFGx-Registers:
  • Dies sind Konfigurationsregister, die Einrichten der Modi der MAP-Prüfungen, d.h. AUTO-Modus oder MANUAL-Modus, zulassen.
  • Im AUTO-Modus wird die MAP-Prüfung wie in den MAP_CFGx-Registem definiert in gewissen Zeitintervallen ausgeführt. Daher kann es im Auto-Modus möglich sein, solche Zeitintervalle einzurichten, in denen MAP-Prüfungen ausgelöst werden.
  • Im MANUAL-Modus kann ein besonderer Operationscode „ASSERTMAP“ an verschiedenen Stellen des Codes eingefügt sein, um die MAP-Prüfung ausdrücklich auszulösen.
  • Auch können die MAP_CFGx-Register zum Einrichten von Stelle und Größe der MAP-Tabelle benutzt werden.
  • Op-Code: ASSERTMAP:
  • Dies ist ein Operationscode (Anweisung), der die MAP-Prüfung (manuell) auslöst.
  • Operation
  • Während des Starts eines Chips (Hardware), sind die MAP_CFGx-Register mit einem Vorgabewert eingerichtet. Ein solcher Vorgabewert kann ein AUTO-Modus sein, der die MAP-Prüfung in einem vorbestimmten Zeitintervall auslöst. Auch kann das MAP_STATUS-Register rückgesetzt werden. Zusätzlich können die MAP-Tabellenstelle und/oder -größe eingerichtet werden.
  • Während des Betriebs kann basierend auf der Erfüllung von anwendungsspezifischen Zugriffsregeln die Anwendung das MAP_STATUS-Register entsprechend einstellen.
  • Basierend auf einem Trigger einer MAP-Prüfung kann die Hardware validieren, ob der gegenwärtig ausgeführte Code erforderliche Zugriffsregeln erfüllt.
  • 1 zeigt ein schematisches Flussdiagramm mit solchen Schritten, die durchgeführt werden, um zu validieren, ob der gegenwärtig ausgeführte Code erforderliche Zugriffsregeln erfüllt.
  • In einem Zustand 101 wird ein Trigger 102 zum Durchführen einer MAP-Prüfung ausgegeben. In einem Schritt 103 wird ein Nachschlagen der MAP-Tabelle basierend auf dem aktuellen Programmzähler durchgeführt. In einem Schritt 104 wird geprüft, ob der aktuelle Wert des Programmzählers einen Eintrag in der MAP-Tabelle aufweist. Wenn nicht, dann wird die Ausführung des Programms in einem Schritt 105 fortgeführt. Wenn die MAP-Tabelle einen solchen Eintrag umfasst, der dem aktuellen Wert des Programmzählers entspricht, wird eine Zugriffsregelprüfung in einem Schritt 106 durchgeführt.
  • Der aktuelle Wert des Programmzählers wählt einen Eintrag in der MAP-Tabelle aus. Aus diesem Eintrag wird ein MAP-Wert abgerufen, der einer Speicherzugriffsregel MAP (Memory Access Policy) entspricht. Diese MAP wird im Schritt 106 wie folgt geprüft: MAP&MAP_STATUS = = MAP?
    Figure DE102015116181B4_0001
  • In einem Schritt 107 wird bestimmt, ob die MAP erfüllt wurde. Wenn ja, dann wird zum Schritt 105 verzweigt. Wenn die MAP nicht erfüllt wurde, kann eine vordefinierte Handlung ausgelöst werden, z.B. kann ein Alarm ausgegeben werden und/oder eine Benachrichtigung in einem Schritt 108 ausgegeben werden.
  • Eine ähnliche Art Prüfung kann für einen Datenzugriff durchgeführt werden. Zum Verbessern der Leistung können die MAP_CFKx-Register eine Einstellung umfassen, bei der die Prüfung auf Datenzugriff abgeschaltet werden kann. Zum Beispiel kann die MAP-Tabelle Einträge entsprechend sicheren Datengebieten umfassen. Vor Anforderung von Daten auf einem Adressbus kann die Verarbeitungseinheit eine Prüfung mit der MAP-Tabelle durchführen. Eine solche Prüfung kann bei jedem Datenabruf stattfinden.
  • Hiernach wird ein Muster-C-Code gezeigt, um den dargestellten Ansatz ausführlicher zu erläutern:
    #pragma MAPENTRY(MAP_VALUE_1, X) // Dieses Pragma erzeugt einen
    Eintrag in die MAP-Tabelle. „X" zeigt eine Erlaubnis für „ausführen" an. In
    diesem Beispiel wird MAP_VALUE_10xC000 zugewiesen
    #pragma MAPEXIT; dieses Pragma ist der Abschluss des vorhergehenden
    MAPENTRY 

    // Beispiel einer MAP-Tabellenstruktur:
Speicherstartadresse Größe MAP-Werte Erlaubnisse
Start_Adresse_von(Load_Key) Größevon(Load_Key function) + Größevon(Update_Key function) MAP_VALUE_1 X
... ... ... ...
Start_Adresse_von(...) Größevon(...) MAP_VALUE_n RWX
  • Das Hauptprogramm kann eine endlose Warteschleife (While-Loop) wie folgt sein:
  • void main()
                while(1)
        {{Befehl_empfangen();
                        wenn(comms_gesperrt_ist)
                        {MAP_STATUS |= 0x8000; //setzen der Bedingung, dass
        Kommunikationsmodul deaktiviert ist, ist erfüllt worden
                        }
                        process_command()(Befehl verarbeiten); // der
        Funktionsprozess_Befehl ist aufgerufen (siehe unten).
        }}send_response() (Antwort senden);
  • Das Hauptprogramm ruft den Funktionsprozessbefehl auf:
  • void process_command() (Fehlstelle im Funktionsprozessbefehl)
        {switch(current_command) (aktuellen Befehl umschalten)
                {
                Fall READ_FILE: (Datei lesen)
                        Unterbrechung;
                Fall UPDATE_KEY: (Schlüssel aktualisieren)
                        MAP_STATUS |= 0x4000; // Bedingung setzen, dass aktueller
        Befehl Zugang zum Schlüsselspeicher erfordert
                        Update_Key(); (Schlüssel aktualisieren)
                        MAP_STATUS ^= 0x4000; //Bedingung rücksetzen
                        Unterbrechung; 
    
    
    
    
    
                Fall ...
                Fall ...
                Vorgabe:
        }}SECALARM(); // Sicherheitsalarm auslösen
  • Die Prozessbefehlsfunktion umfasst „UPDATE_KEY“ als einen aktuellen Befehl, der Zugriff zum Schlüsselspeicher erfordert. Basierend auf dem UDATE_KEY-Befehl ruft die Prozessbefehlsfunktion die Update _Key-Funktion auf.
  •     void Update_Key() (Fehlstelle Update _Key)//Diese Funktion aktualisiert den
        Schlüssel im NVM
        {identify_free_key_address_in_nvm(); (freie Schlüsseladresse in NVM
        kennzeichnen)
                validate_new_key_value(); (neuen Schlüsselwert validieren)
                _ASSERTMAP_(); //Diese Anweisung löst ausdrücklich MAP-Prüfung
        aus
        }Store_key(); (Schlüssel speichern)
    Innerhalb der Funktion Update _Key wird die ASSERTMAP-Operation ausdrücklich aufgerufen, was die Auslösung der MAP-Prüfung ergibt.
  • Auch kann eine Funktion Load Key bereitgestellt werden umfassend die ASSERTMAP-Operation, die die MAP-Prüfung ausdrücklich auslöst:
  •     void Load_Key() (Fehlstelle Load_Key)
        {// Diese Funktion lädt den Schlüssel aus Schlüsselspeicher in einen
        symmetrischen Krypto-Prozessor
                resolve_key_address_in_nvm(); (Schlüsseladresse in nvm auflösen)
                validate_key(); (Schlüssel validieren)
                _ASSERTMAP_(); // Diese Anweisung löst MAP-Prüfung aus
        }Load_key_into_SCP(); (Schlüssel in SCP laden)
  • 2 zeigt ein schematisches Hardware-Blockschaltbild umfassend eine Mikrosteuerung 201 (auch bezeichnet als Mikrocontroller) und einen Speicher 202.
  • Sowohl die Mikrosteuerung 201 als auch der Speicher 202 können sich auf einer Chipkarte befinden. Die Mikrosteuerung 201 kann umfassen: eine Takteinheit 203, eine Anweisungseinheit 204, eine Adresseinheit 205, einen Programmzähler 206, einen Sicherheitsmonitor 207, ein MAP_STATUS-Register 208, MAP_CFGx-Register 209, ein Markierungsregister 210 (auch bezeichnet als Merker-Register), einen Akkumulator 211, eine arithmetische Logikeinheit 212, ein X-Register 213, ein Y-Register 214 und ein Z-Register 215. Der Speicher 202 umfasst eine MAP-Tabelle.
  • Die folgenden Schritte können durchgeführt werden, wenn die Sonderoperation ASSERTMAP in dem den MANUAL-Modus auslösenden Code vorkommt, d.h. ein manueller Trigger für die MAP-Prüfung:
    • Schritt 251: Der Op-Code ASSERTMAP wird gefunden, die Anweisungseinheit 204 signalisiert dies dem Sicherheitsmonitor 207.
    • Schritt 252: Vom Sicherheitsmonitor 207 wird der Adresseinheit 205 signalisiert, einen Eintrag i aus der MAP-Tabelle zu holen.
    • Schritt 253: Die Adresseinheit 205 holt Daten aus dem Eintrag i in der MAP-Tabelle in die folgenden Register:
      • - eine Startadressstelle in das X-Register 213;
      • - eine Größe in das Y-Register 214; und
      • - einen erwarteten MAP-Wert in das Z-Register 215.
    • Schritt 254: Vom Sicherheitsmonitor 207 wird überprüft, ob sich der Programmzähler 206 im Bereich befindet [start_address (X), start_address+size (X+Y)], d.h. zwischen der Startadresse nach dem X-Register 213 und der durch das X-Register 213 und das Y-Register 214 bestimmten Endadresse.
    • Schritt 255: Wenn sich der Programmzähler 206 in diesem Bereich befindet, ist der Schritt 257 der Nächste.
    • Schritt 256: Wenn sich der Programmzähler 206 nicht im Bereich befindet, wird die MAP-Tabelle auf weitere Einträge überprüft. Wenn solche Einträge bestehen, wird mit Schritt 252 fortgefahren, um den nächsten Eintrag zu holen; wenn nicht, wird mit Schritt 259 fortgefahren.
    • Schritt 257: Vom Sicherheitsmonitor 207 wird überprüft, ob der Wert des MAP_STATUS-Register 208 dem durch das Z-Register 215 bestimmten erwarteten MAP-Wert entspricht; d.h. ob die folgende Bedingung wahr ist: ( MAP_STATUS&Z ) = = Z
      Figure DE102015116181B4_0002
    • Schritt 258: Wenn die Bedingung von Schritt 257 wahr ist, wird mit Schritt 259 fortgefahren; ansonsten wird mit Schritt 260 fortgefahren.
    • Schritt 259: Der Sicherheitsmonitor 207 weist die Anweisungseinheit 204 an, weitere Anweisungen zu decodieren und auszuführen (nicht zum Schritt 260 zu springen).
    • Schritt 260: Vom Sicherheitsmonitor 207 wird ein Sicherheitsalarm ausgelöst.
  • Daher wird durch das Konzept einer Hardware erlaubt, Zugriff zu einem definierten Teil von Speicher basierend auf durch eine Anwendungslogik angegebene Bedingungen zu gewähren oder zu beschränken. Diese Speicherteile können in unterschiedlichen Größen oder Skalierungen durch die Anwendung definiert sein. Dieser Ansatz erlaubt Verringern des Betrags an Software-Gegenmaßnahmen für Sicherheit und bewirkt damit eine Verringerung des für den Code erforderlichen Speicherplatzbedarfs.
  • In einem oder mehreren Beispielen können die hier beschriebenen Funktionen wenigstens teilweise in Hardware ausgeführt werden, wie beispielsweise bestimmten Hardwarekomponenten oder einem Prozessor. Allgemeiner gesagt können die Verfahren in Hardware, Prozessoren, Software, Firmware oder einer beliebigen Kombination derselben ausgeführt sein. Wenn sie in Software ausgeführt sind, können die Funktionen als eine oder mehrere Anweisungen oder Code auf einem computerlesbaren Medium gespeichert oder darüber übertragen werden und durch eine hardwarebasierende Verarbeitungseinheit ausgeführt werden. Computerlesbare Medien können computerlesbare Speichermedien umfassen, die einem fassbaren Medium wie beispielsweise Datenspeichermedium oder Kommunikationsmedium einschließlich jedes Mediums entsprechen, das Übertragung eines Computerprogramms von einer Stelle zu einer anderen erleichtert, z.B. nach einem Kommunikationsprotokoll. Auf diese Weise können computerlesbare Medien allgemein (1) fassbaren computerlesbaren Speichermedien entsprechen, die kurzzeitig sind, oder (2) einem Kommunikationsmedium wie beispielsweise einem Signal oder einer Trägerwelle entsprechen. Datenspeichermedien können beliebige verfügbare Medien sein, auf die durch einen oder mehrere Computer oder einen oder mehrere Prozessoren zum Abrufen von Anweisungen, Code und/oder Datenstrukturen zur Ausführung der in der vorliegenden Offenbarung beschriebenen Verfahren zugegriffen werden kann. Ein Computerprogrammprodukt kann ein computerlesbares Medium umfassen.
  • Beispielsweise und nicht als Begrenzung kann ein solches computerlesbares Speichermedium RAM, ROM, EEPROM, CD-ROM oder sonstige optische Plattenspeicherung, Magnetplattenspeicherung oder sonstige Magnetspeichervorrichtungen, Flash-Speicher oder jedes sonstige Medium umfassen, das zum Speichern gewünschten Programmcodes in der Form von Anweisungen oder Datenstrukturen benutzt werden kann und auf das durch einen Computer zugegriffen werden kann. Auch wird jede Verbindung als computerlesbares Medium, d.h. ein computerlesbares Übertragungsmedium bezeichnet. Wenn zum Beispiel Anweisungen von einer Website, einem Server oder einer sonstigen entfernten Quelle unter Verwendung von Koaxialkabel, faseroptischem Kabel, verdrilltem Paar, digitaler Teilnehmerleitung (DSL - Digital Subscriber Line) oder drahtlosen Techniken wie beispielsweise Infrarot, Funk und Mikrowellen übertragen werden, dann sind das Koaxialkabel, faseroptische Kabel, verdrillte Paare, DSL oder drahtlose Techniken wie beispielsweise Infrarot, Funk und Mikrowelle in der Definition von Medium enthalten. Es versteht sich jedoch, dass computerlesbare Speichermedien und Datenspeichermedien nicht Verbindungen, Trägerwellen, Signale oder sonstige kurzzeitige Medien umfassen, sondern stattdessen auf nichtflüchtige, fassbare Speichermedien gerichtet sind. Eine Platte, so wie hier verwendet, umfasst Compact-Disc (CD), Lasterplatte, optische Platte, DVD - (Digital Versatile Disc), Diskette und Blu-Ray-Platte, wobei Platten (Discs) gewöhnlich Daten magnetisch wiedergeben, während Platten (Discs) Daten optisch mit Lasern wiedergeben. Kombinationen der obigen sollten auch im Schutzbereich computerlesbarer Medien enthalten sein.
  • Anweisungen können durch einen oder mehrere Prozessoren ausgeführt werden, wie beispielsweise eine oder mehrere Zentraleinheiten (CPU - Central Processing Units), Digitalsignalprozessoren (DSP), Universal-Mikroprozessoren, anwendungsspezifische integrierte Schaltungen (ASIC), freiprogrammierbare Logikanordnungen (FPGA - Field Programmable Logic Arrrays), oder sonstige gleichwertige integrierte oder getrennte Logikschaltungen. Dementsprechend kann sich der Begriff „Prozessor“, so wie hier verwendet, auf jede beliebige der vorangehenden Struktur oder jede sonstige für die Ausführung der hier beschriebenen Verfahren geeignete Struktur beziehen. Zusätzlich kann die hier beschriebene Funktionalität mittels fest zugeordneter Hardware und/oder mittels Softwaremodulen, die zum Codieren und Decodieren eingerichtet sind oder mittels eines kombinierten Codec bereitgestellt werden. Auch könnten die Verfahren in einer oder mehreren Schaltungen oder Logikelementen voll implementiert sein.
  • Die Verfahren der vorliegenden Offenbarung können in einer großen Vielzahl von Vorrichtungen oder Einrichtungen einschließlich eines drahtlosen Handapparats, einer integrierten Schaltung (IC - Integrated Circuit) oder einem Satz von IC (z.B. einem Chipsatz) ausgeführt sein. Verschiedene Komponenten, Module oder Einheiten werden in der vorliegenden Offenbarung zum Betonen von Funktionsaspekten von Vorrichtungen, eingerichtet zum Durchführen der offenbarten Verfahren, beschrieben, erfordern aber nicht unbedingt Realisierung durch verschiedene Hardwareeinheiten. Stattdessen können wie oben beschrieben verschiedene Einheiten in einer einzelnen Hardwareeinheit kombiniert sein oder durch eine Sammlung von zusammenwirkenden Hardwareeinheiten einschließlich einem oder mehreren Prozessoren wie oben beschrieben in Verbindung mit geeigneter Software und/oder Firmware vorgesehen sein.
  • Claims (17)

    1. Verfahren zum Ausführen eines Programmcodes, wobei das Verfahren umfasst: - Überprüfen einer Speicherzugriffsregelressource basierend auf einem Trigger; und - Vergleichen eines aktuellen Programmzählers mit einer durch die Speicherzugriffsregelressource bereitgestellten Programmzählerinformation, und wenn der Vergleich des aktuellen Programmzählers und der Programmzählerinformation eine vordefinierte Bedingung erfüllt, Durchführen einer Speicherzugriffsregelprüfung - wobei das Durchführen einer Speicherzugriffsregelprüfung umfasst: - Abrufen eines Speicherzugriffsregelwerts aus der Speicherzugriffsregelressource; - Vergleichen des Speicherzugriffsregelwerts mit einem vordefinierten Wert; - Weiterausführen des Programmcodes, wenn der Speicherzugriffsregelwert dem vordefinierten Wert entspricht; und - Durchführen einer vordefinierten Handlung, wenn der Speicherzugriffsregelwert dem vordefinierten Wert nicht entspricht.
    2. Verfahren nach Anspruch 1, weiterhin umfassend: - Nichtdurchführen der Speicherzugriffsregelprüfung, wenn der Vergleich des Programmzählers mit der Programmzählerinformation nicht die vordefinierte Bedingung erfüllt.
    3. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Programmzählerinformation eine Programmzählereinstellung oder einen Bereich für den Programmzähler umfasst.
    4. Verfahren nach Anspruch 3, bei dem der Vergleich des aktuellen Programmzählers und der Programmzählerinformation eine vordefinierte Bedingung erfüllt, wenn der aktuelle Programmzähler gleich der Programmzählereinstellung ist oder im Bereich für den Programmzähler liegt.
    5. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die vordefinierte Handlung wenigstens eines der Folgenden umfasst: - Auslösen einer Ausnahmehandlung; - Auslösen einer Unterbrechung; - Ausgeben eines Alarms, insbesondere eines Sicherheitsalarms; und - Ausgeben einer Benachrichtigung.
    6. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der vordefinierte Wert ein globaler Wert ist, der anwendungsspezifische Zugriffsregeln umfasst.
    7. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Speicherzugriffsregelressource eine im Speicher gespeicherte Datenstruktur, insbesondere eine Tabelle ist.
    8. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Speicherzugriffsregelressource eine Datenstruktur ist, wobei jeder Eintrag der Datenstruktur umfasst: - eine Startadresse des Speichers; - eine Größe des Speichers; - einen Speicherzugriffsregelwert; und - wenigstens eine erlaubte Operation.
    9. Verfahren nach Anspruch 8, bei dem jeder Eintrag der Datenstruktur weiterhin mindestens eine erlaubte Operation umfasst.
    10. Verfahren nach einem der Ansprüche 8 oder 9, bei dem die Programmzählerinformation basierend auf der Startadresse des Speichers und der Größe des Speichers bestimmt wird.
    11. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der Trigger von einem vorbestimmten Zeitintervall abhängig ist.
    12. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der Trigger auf einem vordefinierten Operationscode basiert.
    13. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Verfahren auf einer Verarbeitungseinheit einer sicheren integrierten Schaltung, einem sicheren Mikrocontroller, einem Mikrocontroller oder einer Chipkarte ausgeführt wird.
    14. Verfahren nach einem der vorhergehenden Ansprüche, bei dem die Speicherzugriffsregel für auszuführenden Programmcode oder für Daten, auf die zugegriffen wird, anwendbar ist.
    15. Vorrichtung, umfassend eine Verarbeitungseinheit, wobei die Verarbeitungseinheit eingerichtet ist zum - Überprüfen einer Speicherzugriffsregelressource basierend auf einem Trigger; und - Vergleichen eines aktuellen Programmzählers mit einer durch die Speicherzugriffsregelressource bereitgestellten Programmzählerinformation, und wenn der Vergleich des aktuellen Programmzählers und der Programmzählerinformation eine vordefinierte Bedingung erfüllt, Durchführen einer Speicherzugriffsregelprüfung, wobei das Durchführen einer Speicherzugriffsregelprüfung umfasst: - Abrufen eines Speicherzugriffsregelwerts aus der Speicherzugriffsregelressource; - Vergleichen des Speicherzugriffsregelwerts mit einem vordefinierten Wert; - Weiterausführen des Programmcodes, wenn der Speicherzugriffsregelwert dem vordefinierten Wert entspricht; und - Durchführen einer vordefinierten Handlung, wenn der Speicherzugriffsregelwert dem vordefinierten Wert nicht entspricht.
    16. Chipkarte, umfassend: - eine Verarbeitungseinheit; und - einen Speicher, - wobei die Verarbeitungseinheit eingerichtet ist zum - Überprüfen einer Speicherzugriffsregelressource basierend auf einem Trigger; und - Vergleichen eines aktuellen Programmzählers mit einer durch die Speicherzugriffsregelressource bereitgestellten Programmzählerinformation, und wenn der Vergleich des aktuellen Programmzählers und der Programmzählerinformation eine vordefinierte Bedingung erfüllt, Durchführen einer Speicherzugriffsregelprüfung, wobei das Durchführen einer Speicherzugriffsregelprüfung umfasst: - Abrufen eines Speicherzugriffsregelwerts aus der Speicherzugriffsregelressource; - Vergleichen des Speicherzugriffsregelwerts mit einem vordefinierten Wert; - Weiterausführen des Programmcodes, wenn der Speicherzugriffsregelwert dem vordefinierten Wert entspricht; und - Durchführen einer vordefinierten Handlung, wenn der Speicherzugriffsregelwert dem vordefinierten Wert nicht entspricht.
    17. Computerprogrammprodukt, das in einen Speicher einer digitalen Verarbeitungsvorrichtung ladbar ist, umfassend Softwarecodeteile zum Durchführen der Schritte des Verfahrens nach einem der Ansprüche 1 bis 14.
    DE102015116181.8A 2014-09-26 2015-09-24 Datenverarbeitung Active DE102015116181B4 (de)

    Applications Claiming Priority (2)

    Application Number Priority Date Filing Date Title
    US14/498,513 US9910794B2 (en) 2014-09-26 2014-09-26 Processing data
    US14/498,513 2014-09-26

    Publications (2)

    Publication Number Publication Date
    DE102015116181A1 DE102015116181A1 (de) 2016-03-31
    DE102015116181B4 true DE102015116181B4 (de) 2022-10-06

    Family

    ID=55485983

    Family Applications (1)

    Application Number Title Priority Date Filing Date
    DE102015116181.8A Active DE102015116181B4 (de) 2014-09-26 2015-09-24 Datenverarbeitung

    Country Status (3)

    Country Link
    US (1) US9910794B2 (de)
    CN (1) CN105468997B (de)
    DE (1) DE102015116181B4 (de)

    Families Citing this family (1)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    GB2574231B (en) * 2018-05-31 2020-12-30 Advanced Risc Mach Ltd An apparatus and method for triggering action performance

    Citations (1)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US6282657B1 (en) 1997-09-16 2001-08-28 Safenet, Inc. Kernel mode protection

    Family Cites Families (7)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US6848046B2 (en) * 2001-05-11 2005-01-25 Intel Corporation SMM loader and execution mechanism for component software for multiple architectures
    US20030167381A1 (en) * 2002-03-04 2003-09-04 Israel Herscovich System and method for dynamic memory access management
    US7210014B2 (en) * 2004-05-27 2007-04-24 Microsoft Corporation Alternative methods in memory protection
    US7716453B2 (en) 2004-09-10 2010-05-11 Freescale Semiconductor, Inc. Descriptor-based memory management unit and method for memory management
    KR101456489B1 (ko) 2007-07-23 2014-10-31 삼성전자주식회사 CLDC OSGi 환경에서 어플리케이션의 접속 권한을관리하는 방법 및 장치
    US8572760B2 (en) 2010-08-10 2013-10-29 Benefitfocus.Com, Inc. Systems and methods for secure agent information
    US20120215989A1 (en) * 2011-02-23 2012-08-23 Freescale Semiconductor, Inc. Memory protection in a data processing system

    Patent Citations (1)

    * Cited by examiner, † Cited by third party
    Publication number Priority date Publication date Assignee Title
    US6282657B1 (en) 1997-09-16 2001-08-28 Safenet, Inc. Kernel mode protection

    Also Published As

    Publication number Publication date
    CN105468997B (zh) 2019-05-03
    US20160092378A1 (en) 2016-03-31
    DE102015116181A1 (de) 2016-03-31
    US9910794B2 (en) 2018-03-06
    CN105468997A (zh) 2016-04-06

    Similar Documents

    Publication Publication Date Title
    DE3853759T2 (de) Datenprozessor mit zwei Betriebsmoden.
    DE112010004963T5 (de) Synchronisieren von SIMD Vektoren
    DE102009017496B4 (de) Speicherzugriff in einem System mit Speicherschutz
    DE102007006190A1 (de) Techniken zur Verwendung von Speicher-Attributen
    DE112013003079T5 (de) Anweisungen für Transaktionsbeginn/-ende
    DE2806024A1 (de) Speichersystem mit fehlerfeststell- und korrekturmoeglichkeit
    DE112018000202T5 (de) Umgehen eines Speicherzugriffs für eine Ladeanweisung unter Verwendung einer Anweisungsadresszuordnung
    DE102015101414A1 (de) Verbesserter Rücksprungstapelpuffer
    DE2517276A1 (de) Datenverarbeitungssystem
    DE102015217933B4 (de) Vorrichtung zum Verarbeiten von Daten und Verfahren zum Betreiben einer solchen Vorrichtung
    DE102013014172A1 (de) Schutz globaler register in einem multithreaded-prozessor
    DE112011102876T5 (de) Ressourcenverwaltungs- und Sicherheitssystem
    DE102006039747A1 (de) Verfahren für Kontextzustandsmanagement
    DE102015107875A1 (de) Decodieren von Anweisungen, die von einer oder mehreren anderen Anweisungen modifiziert werden
    DE102018125805A1 (de) Systeme, verfahren, und vorrichtungen für skalarproduktoperationen
    DE112017008158T5 (de) Dateienvorababrufeinplanung für cachespeicher zur verringerung von latenzen
    DE112017000163T5 (de) Priorisierung von Transaktionen
    DE102021101458B4 (de) Master- und Slave-Prozessoren zum Konfigurieren von Subsystemen
    DE102014002510A1 (de) Präzise Ausnahmesignalisierung für Mehrfachdatenarchitektur
    DE102018128626A1 (de) Systeme, Verfahren und Vorrichtungen für Matrixoperationen
    DE112020000167T5 (de) Verschachtelte host-rücksetzungs- und nächste neuinitialisierungsoperationen
    DE112007002085T5 (de) Zugriffssteuerung für Speicherraum in Mikroprozessorsystemen
    DE112012006155B4 (de) Verfahren und Vorrichtung zur Mitteilung der verfügbaren Batterieleistung
    DE112017004917T5 (de) Speichermonitor
    DE102015116181B4 (de) Datenverarbeitung

    Legal Events

    Date Code Title Description
    R012 Request for examination validly filed
    R016 Response to examination communication
    R018 Grant decision by examination section/examining division
    R020 Patent grant now final