DE102022109559A1 - Verarbeitung von Interrupts - Google Patents

Verarbeitung von Interrupts Download PDF

Info

Publication number
DE102022109559A1
DE102022109559A1 DE102022109559.2A DE102022109559A DE102022109559A1 DE 102022109559 A1 DE102022109559 A1 DE 102022109559A1 DE 102022109559 A DE102022109559 A DE 102022109559A DE 102022109559 A1 DE102022109559 A1 DE 102022109559A1
Authority
DE
Germany
Prior art keywords
secure
interrupt
master
service request
isp
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
DE102022109559.2A
Other languages
English (en)
Inventor
Frank Hellwig
Sandeep Vangipuram
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
Priority to DE102022109559.2A priority Critical patent/DE102022109559A1/de
Priority to US18/302,053 priority patent/US20230342187A1/en
Publication of DE102022109559A1 publication Critical patent/DE102022109559A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal

Landscapes

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

Abstract

Es wird vorgeschlagen, ein Interrupt-Ereignis wie folgt zu verarbeiten: (i) Empfangen eines Interrupt-Ereignisses an einem Dienstanforderungs-Knoten; (ii) Erstellen, durch den Dienstanforderungs-Knoten, eines Interrupt-Service-Request basierend auf dem Interrupt-Ereignis und Sicherheitsinformation; und (iii) Weiterleiten des Interrupt-Service-Requests an einen Interrupt-Service-Provider.

Description

  • Anwendungen aus unterschiedlichen Domänen, z.B. sichere Anwendungen und nicht sichere Anwendungen, können eine gemeinsame Hardwareplattform verwenden. Interrupt-Ereignisse (oder Ausnahmen) können von jeder Anwendung erzeugt werden. Bei bestehenden Lösungen kann jedoch die Interrupt-Verarbeitung in der sicheren Domäne durch die nicht sichere Domäne beeinträchtigt werden.
  • Eine Aufgabe besteht darin, bestehende Lösungen zur Behandlung von Interrupts zu verbessern und insbesondere eine gekapselte Interrupt-Verarbeitung von sicheren Anwendungen, die eine gemeinsam genutzte physikalische Ressource nutzen, zu ermöglichen.
  • Dies wird gemäß den Merkmalen der unabhängigen Ansprüche gelöst. Weitere Ausgestaltungen ergeben sich aus den Unteransprüchen.
  • Es wird ein Verfahren zur Verarbeitung eines Interrupt-Ereignisses vorgeschlagen, wobei das Verfahren umfasst:
    • - Empfangen eines Interrupt-Ereignisses an einem Dienstanforderungs-Knoten,
    • - Erstellen, durch den Dienstanforderungs-Knoten, eines Interrupt-Service-Requests basierend auf
      • - dem Interrupt-Ereignis, und
      • - einer Sicherheitsinformation,
    • - Weiterleiten des Interrupt-Service-Requests an einen Interrupt-Service-Provider.
  • Das Interrupt-Ereignis kann ein Interrupt, einen DMA, eine Ausnahme oder dergleichen umfassen. Der Dienstanforderungs-Knoten (Englisch: „Service Request Node“, SRN) kann von einem Master-Agenten des Interrupt-Service-Providers konfiguriert werden. Eine solche Konfiguration kann das Einstellen der Sicherheitsinformation(en) umfassen. Die Sicherheitsinformation kann ein Sicherheitsbit sein (hierin auch als CS-Bit bezeichnet). Beispielsweise kann CS=1 anzeigen, dass der Master-Agent in der sicheren Domäne arbeitet, und möchte, dass der Dienstanforderungs-Knoten auch in der sicheren Domäne eingerichtet wird. Daher kann der Master-Agent den Dienstanforderungs-Knoten so zuweisen, dass die Interrupt-Ereignisse, die an diesem Dienstanforderungs-Knoten ankommen, als sicher behandelt werden und auch an diesen bestimmten sicheren Master-Agenten weitergeleitet werden. Der Master-Agent, der in der sicheren Domäne arbeitet, muss als sicherer Master authentifiziert werden, um den Interrupt-Service-Knoten entsprechend zu konfigurieren.
  • Andererseits kann CS=0 anzeigen, dass ein Master-Agent in der nicht sicheren Domäne arbeitet. Dieser Master-Agent richtet den Dienstanforderungs-Knoten so ein, dass er auch in der nicht sicheren Domäne arbeitet. Daher kann der Master-Agent den Dienstanforderungs-Knoten so zuweisen, dass die Interrupt-Ereignisse, die an diesem Dienstanforderungs-Knoten ankommen, als nicht sicher behandelt werden und am Interrupt-Service-Provider auch an diesen bestimmten nicht sicheren Master-Agenten weitergeleitet werden.
  • Daher arbeitet jeder eingerichtete Dienstanforderungs-Knoten ausschließlich entweder in der sicheren Domäne oder in der nicht sicheren Domäne.
  • Die Nutzung der sicheren Informationen ermöglicht, dass eine gemeinsame Hardwareplattform für sichere Anwendungen und nicht sichere Anwendungen verwendet werden kann. Die Unterscheidung der sicheren Domäne und der nicht sicheren Domäne, auch im Hinblick auf den konfigurierenden Master-Agenten, ermöglicht einen effizienten und flexiblen Zugriffsschutzmechanismus.
  • Gemäß einer Ausführungsform wird die Sicherheitsinformation des Dienstanforderungs-Knotens von einem Master-Agenten konfiguriert.
  • Der Master-Agent kann ein Master-Agent des Interrupt-Service-Providers oder einer Debug-Schnittstelle sein.
  • Gemäß einer Ausführungsform,
    • - zeigt die Sicherheitsinformation an, ob
      • - der Dienstanforderungs-Knoten in einer sicheren Domäne arbeitet,
      • - der Dienstanforderungs-Knoten in einer nicht sicheren Domäne arbeitet, oder
      • - der Dienstanforderungs-Knoten noch nicht konfiguriert ist,
    • - kann die Konfiguration in der sicheren Domäne nur von einem Master-Agenten durchgeführt werden, der als sicherer Master-Agent authentifiziert wurde.
  • Die Konfiguration kann das Einrichten, Neukonfigurieren oder Löschen des Dienstanforderungs-Knotens umfassen.
  • Optional kann eine vordefinierte Aktion, z.B. ein Alarm oder dergleichen, ausgelöst werden, wenn ein Konfigurationsversuch in der sicheren Domäne durch einen nicht sicheren Master-Agenten oder in der nicht sicheren Domäne als sicherer Master-Agent erfolgt.
  • Gemäß einer Ausführungsform kann die Konfiguration in der nicht sicheren Domäne nur von einem Master-Agenten durchgeführt werden, der kein sicherer Master-Agent ist.
  • Beachte, dass möglicherweise nur ein sicherer Master-Agent in der Lage sein kann, mindestens einen SRN einer sicheren Anwendung zuzuweisen. Dieser mindestens eine SRN (der der sicheren Anwendung zugewiesen ist) kann nur durch den sicheren Master-Agenten neu konfiguriert werden.
  • Dementsprechend kann nur ein nicht sicherer Master-Agent mindestens einen SRN einer nicht sicheren Anwendung zuweisen. Dieser mindestens eine SRN (der der nicht sicheren Anwendung zugewiesen ist) kann nur durch den nicht sicheren Master-Agenten neu konfiguriert werden.
  • Gemäß einer Ausführungsform wird der Interrupt-Service-Request ferner basierend auf zusätzlichen Informationen erstellt, die mindestens eines des folgenden aufweisen können:
    • - Adressinformationen, die die Identifizierung des Interrupt-Service-Providers ermöglichen, insbesondere
      • - einen Master-Agent des Interrupt-Service-Providers,
      • - einen Prozessor,
      • - eine virtuelle Maschine,
      • - einen DMA-Kanal oder eine DMA-Kanalgruppe,
    • - Prioritätsinformationen.
  • Gemäß einer Ausführungsform verarbeitet der Interrupt-Service-Provider den Interrupt nur, wenn die Sicherheitsinformation der Interrupt-Service-Requests einer internen Sicherheitsinformation entspricht.
  • Die interne Sicherheitsinformation kann eine Sicherheitsinformation des Master-Agenten sein, der verwendet wurde, um den Dienstanforderungs-Knoten zu konfigurieren.
  • In einem beispielhaften Anwendungsfall kann der ISP ein DMA sein. Ein DMA-Kanal kann entweder als „sicher“ oder „nicht sicher“ konfiguriert sein. Dies entspricht einem Sicherheitstyp. Der SR darf insbesondere nur verarbeitet werden, wenn der Sicherheitstyp eines DMA für diesen Kanal mit der Konfiguration übereinstimmt.
  • In einem alternativen Anwendungsfallszenario kann der ISP eine CPU sein, die VMs umfasst, wobei jede VM so konfiguriert ist, dass sie entweder „sicher“ oder „nicht sicher“ ist. Der SR darf insbesondere nur verarbeitet werden, wenn der Sicherheitstyp (d.h. sicher oder nicht sicher) mit der Konfiguration der adressierten VM übereinstimmt.
  • Gemäß einer Ausführungsform ist ein Interrupt-Ereignis einem Dienstanforderungs-Knoten zugeordnet, und der Dienstanforderungs-Knoten ist nur diesem Interrupt zugeordnet.
  • Ferner wird eine Vorrichtung vorgeschlagen, die so eingerichtet ist, dass sie die Schritte des hierin beschriebenen Verfahrens durchführt.
  • Beachte, dass die Vorrichtung mindestens ein, insbesondere mehrere, Mittel umfassen kann, die dazu eingerichtet sind, die Schritte des hierin beschriebenen Verfahrens auszuführen. Die Mittel können logisch oder physikalisch getrennt sein; insbesondere können mehrere logisch getrennte Mittel in mindestens einer Baueinheit zusammengefasst sein. Die Vorrichtung kann mindestens eines umfassen von: einem Prozessor, einem Mikrocontroller, einer festverdrahteten Schaltung, einem ASIC, einem FPGA, einer Logikvorrichtung.
  • Ferner wird ein Computerprogrammprodukt bereitgestellt, das direkt in einen Speicher eines Digitalcomputers geladen werden kann und Softwarecodeabschnitte zum Durchführen der Schritte des hierin beschriebenen Verfahrens umfasst.
  • Außerdem wird das oben genannte Problem gelöst durch ein computerlesbares Medium, z.B. Speicher jeglicher Art, mit computerausführbaren Anweisungen, die dazu ausgelegt sind, ein Computersystem zu veranlassen, das hierin beschriebene Verfahren auszuführen.
  • Ausführungsbeispiele werden anhand der Zeichnungen gezeigt und veranschaulicht. Die Zeichnungen dienen der Veranschaulichung des Grundprinzips, so dass nur Aspekte dargestellt werden, die zum Verständnis des Grundprinzips notwendig sind. Die Zeichnungen sind nicht maßstabsgetreu. In den Zeichnungen bezeichnen gleiche Bezugszeichen gleiche Merkmale.
    • 1 zeigt eine schematische Blockdiagrammstruktur, die verwendet werden könnte, um eine Interrupt-Behandlung mit einem Zugriffsschutzmechanismus zu implementieren;
    • 2 zeigt einen beispielhaften Teil der Implementierung des Interrupt-Service-Providers (ISP), der mehrere Master-Agenten umfasst, wobei jeder Master-Agent mit dem Interrupt-Router (IR) verbunden ist;
    • 3 zeigt ein beispielhaftes Zustandsdiagramm, das die verschiedenen Zustände des sicheren Bits (CS-Bit) des Dienstanforderungs-Knotens (SRN) visualisiert.
  • Eine vorhandene Mehrkern-Mikrocontrollereinheit (Mehrkem-MCU) kann mehrere Funktionen oder Einheiten umfassen, z.B. mehrere CPUs, Kommunikationsschnittstellen, DMA-Funktionen, Systemfunktionen, wie GPIO- (Mehrzweck-Eingabe-Ausgabe) Funktionen, Interrupt-Systeme, usw.
  • Zur Unterstützung von Softwarekapselung, Virtualisierung und Integration mehrerer Anwendungen auf einer einzigen MCU können Gruppen von Funktionen konfiguriert werden, um ein virtuelles Subsystem zu bilden, das gegen unbefugtes Lesen und Schreiben durch andere Subsysteme geschützt werden kann. Ein solcher Schutz kann durch konfigurierbare Verbindungs-Zugriffsschutzmechanismen erreicht werden.
  • Ein Interrupt (IRQ) wird als Anforderung von einer Interrupt-Quelle bezeichnet, die an eine Anwendung gerichtet ist. Die Anwendung kann auf einem Interrupt-Service-Provider (ISP) ausgeführt werden. Die Interrupt-Quelle kann mindestens ein Interrupt-Ereignis auslösen. Der ISP umfasst eine Funktion, die in der Lage ist, auf mindestens einen Interrupt-Service-Request (SR) zu reagieren. Diese Funktion kann als Chip-Ressource, z.B. eine CPU, ein DMA, oder dergleichen, betrachtet werden. Diese Chip-Ressource ist in der Lage, auf den Service-Request zu reagieren.
  • 1 zeigt eine schematische Blockdiagrammstruktur, die verwendet werden könnte, um eine Interrupt-Behandlung mit einem Zugriffsschutzmechanismus zu implementieren.
  • Ein Interrupt-Router (IR) 101, auch als Slave bezeichnet, umfasst mindestens einen Dienstanforderungs-Knoten (SRN) 102. Jeder SRN 102 kann dazu eingerichtet sein, ein dediziertes Interrupt-Ereignis 105 über eine Arbitrationseinheit 103 und eine Interrupt-Steuereinheit (ICU) 104 zu behandeln. Die ICU 104 stellt einen Interrupt-Service-Request (SR) 106 an einen Interrupt-Service-Provider (ISP) 107 bereit.
  • Der ISP 107 kann Hardware sein, die eine zuverlässige Anwendung und/oder eine sichere Anwendung ausführen kann. Der ISP 107 kann z.B. eine CPU oder eine DMA-Einheit umfassen. Mindestens eine virtuelle Maschine (VM) kann auf (mindestens) einer CPU ausgeführt werden.
  • Der IR 101 umfasst auch eine Slave-Schnittstelle 110, die zum Konfigurieren des mindestens einen SRN 102 verwendet wird. Eine solche Konfiguration wird von dem ISP 107 über einen Bus 111 bereitgestellt und kann ein Service-Steuer-Register (SRC) 108 des SRN 102 einrichten. Das SRC 108 kann mehrere Einträge umfassen, die wie später beschrieben wird konfiguriert werden können.
  • Optional können mehrere ISPs über den Bus 111 auf die Slave-Schnittstelle 110 zugreifen.
  • 2 zeigt einen beispielhaften Teil der Implementierung des ISP 107, der mehrere Master-Agenten 201 bis 203 umfasst, wobei jeder Master-Agent 201 bis 203 eine Master-Schnittstelle 204 bis 206 aufweist, die über den Bus 111 mit der Slave-Schnittstelle 110 des IR 101 verbunden ist. 2 zeigt einen zusätzlichen IR 207 mit einer Slave-Schnittstelle 208, die auch von den Master-Agenten 201 bis 203 über den Bus 111 adressiert werden könnte.
  • Der SRN 102 umfasst das SRC 108, das die folgenden Einträge umfassen kann:
    • - ein Sicherheitsbit (CS-Bit), auch „Sicherheitsinformation“ genannt;
    • - ein Diensttypfeld (TOS-Feld);
    • - Adressinformationen, die helfen, das Ziel zu identifizieren, d.h. den ISP oder eine VM, einen DMA-Kanal oder eine DMA-Kanalgruppe innerhalb des ISP, z.B. eine Nummer einer CPU und/oder VM oder eine Nummer eines DMA-Kanals (oder einer DMA-Kanalgruppe);
    • - ein Aktivierungs-/Deaktivierungs-Flag (d.h. ein Indikator),
    • - eine Service-Request-Prioritätsnummer (SRPN).
  • Das Aktivierungs-/Deaktivierungs-Flag wird verwendet, um den SRN zu aktivieren oder zu deaktivieren. Ein deaktivierter SRN kann ein empfangenes Interrupt-Ereignis nicht an den ISP weiterleiten.
  • Der SRN 102, d.h. das SRC 108 des SRN 102, kann von jedem der Master-Agenten 201 bis 203 konfiguriert werden.
  • Nachfolgend wird der Master-Agent 203 beispielhaft als Master-Agent ausgewählt, der über den Bus 111 auf den SRN 102 zugreift. Falls festgestellt wird, dass Master-Agent 203 ein „sicherer Master“ ist (was später genauer beschrieben wird), d.h. falls der Master-Agent 203 dazu autorisiert ist, der sichere Master zu sein, ist er in der Lage, das Sicherheitsbit zu setzen oder zu löschen (unter bestimmten Bedingungen, wie hierin erklärt). Dies erlaubt dem sicheren Master, die Kontrolle über einen SRN zu übernehmen, der noch keiner nicht sicheren Anwendung zugewiesen ist. Der IR 101 oder der SRN 102 können dazu eingerichtet sein, zu bestimmen, ob der Master-Agent 203 ein sicherer Master ist (als sicherer Master behandelt oder authentifiziert werden kann) oder nicht.
  • Beachte, dass jeder der Master 201 bis 203 die Rolle entweder eines sicheren Masters oder eines nicht sicheren Masters annimmt.
  • Das TOS-Feld wird verwendet, um eine Beziehung zwischen dem SRN 102 und dem ISP 107 festzulegen.
  • Die Adressinformationen können eine VM-Nummer enthalten, die eine Nummer einer virtuellen Maschine einer bestimmten CPU des adressierten ISP angibt. Wenn der ISP 107 eine DMA-Einheit ist, kann die SRPN verwendet werden, um die Nummer des DMA-Kanals oder die Nummer der Gruppe von DMA-Kanälen anzuzeigen.
  • Der Ausgang des SRN 102 ist über die Arbitrationseinheit 103 mit der ICU 104 verbunden. Die ICU 104 übermittelt den SR 106 an den ISP 107.
  • Ein SRN 102 kann mindestens einem ISP 107, insbesondere mehr als einem ISP, zugeordnet sein. Beachte, dass der IR 101 mehrere SRNs umfassen kann, wobei jeder SRN (über die Arbitrationseinheit 103) mit mindestens einer ICU 104 verbunden sein kann.
  • Die ICU 104 sendet einen gewinnenden SR 106 (das Gewinnen wurde von der Arbitrationseinheit 103 basierend auf z.B. der Priorität einer vordefinierten Priorisierung entschieden) an den jeweiligen ISP 107. Der SR 106 kann das Sicherheitsbit (CS- bit) enthalten, das dann bei dem ISP 107 verarbeitet wird.
  • Der SR 106 kann ein anstehender Interrupt-Request für den ISP 107 sein. Der IR 101 wandelt das Interrupt-Ereignis 105 in den SR 106 um, indem er Informationen hinzufügt. Die hinzugefügten Informationen können mindestens eines umfassen von:
    • - eine Service-Request-Prioritätsnummer (SRPN), die auch dazu verwendet werden kann, die Kanalnummer eines DMA-Kanals zu adressieren;
    • - ein Service-Request-Ziel (das ein ISP sein kann), das z.B. durch ein Servicetyp- (TOS) Feld identifiziert wird;
    • - Informationen zu einer virtuellen Maschine, wenn das Ziel eine CPU ist, die Virtualisierung unterstützt.
  • Die SRPN definiert die Priorität des SR 106 in Bezug auf andere Quellen, die einen Dienst von demselben ISP anfordern, und in Bezug auf die Priorität des ISP selbst.
  • Die Arbitrationseinheit 103 kann insbesondere anstehende Interrupt-Anforderungen arbitrieren, die einem einzigen ISP 107 zugeordnet sind. Die Arbitration kann von dem Interrupt-Request mit der höchsten Priorität gewonnen werden, die dann von der ICU 104 an den zugehörigen ISP 107 signalisiert wird.
  • Die ICU 104 kann als eine Schnittstelle zwischen dem IR 101 und dem ISP 107 realisiert werden, über die der gewinnende SR 106 der letzten Arbitration an den ISP 107 signalisiert wird und der ISP 107 eine Bestätigung zurücksenden kann, um den zugehörigen SR 106 in dem IR 101 zu löschen.
  • Der IR 101 kann einen SRN 102 pro Interrupt-Ereignis 105 umfassen. Das TOS-Feld ermöglicht die Zuordnung eines SRN 105 zu genau einem ISP 107. Der SRN 102 weist den SRC 108 auf, um den SRN 102 zu konfigurieren.
  • Über den SRC 108 kann der dem SRN 102 zugeordneten Interrupt
    • - aktiviert deaktiviert,
    • - einem ISP zugeordnet (CPU, VM, DMA), und/oder
    • - mit einer Interrupt-Priorität (SRPN) konfiguriert werden.
  • Die SRPN kann von der Arbitrationseinheit 103 des IR 101 verwendet werden, um zwischen anstehenden Interrupts zu entscheiden, die für denselben ISP 107 bestimmt sind.
  • An dem SRN 102 kann der Interrupt als nicht sicher (CS=0) oder sicher (CS=1) markiert werden, was eine sichere Domäne und eine nicht sichere Domäne ermöglicht. Die nicht sichere Domäne kann eine Sicherheitsdomäne sein. Die SRPN kann von der Arbitrationseinheit 103 verwendet werden, um den Interrupt zu priorisieren. Der ISP 107 empfängt den Interrupt über die ICU 104 und prüft, ob sein interner Sicherheitsbitstatus dem von dem SR 106 erhaltenen CS-Wert entspricht.
  • Beispielsweise kann der ISP 107 eine DMA-Einheit sein, die mehrere DMA-Kanäle umfasst, wobei ein bestimmter Kanal der DMA-Einheit über das SRPN-Feld adressiert werden kann. Wenn der Wert des Sicherheitsbits dieses DMA-Kanals, der bei dem ISP 107 gespeichert ist, identisch mit dem Wert des CS-Bits ist, das für diesen DMA-Kanal über das SR 106 erhalten wird, wird die Interrupt-Behandlung initiiert. Unterscheiden sich diese Werte voneinander, wird eine vordefinierte Aktion ausgelöst, z.B. wird eine Alarmbenachrichtigung ausgegeben, und/oder der Interrupt verworfen.
  • In einem anderen Beispiel kann der ISP 107 eine CPU sein, die mehrere VMs umfasst, wobei eine bestimmte VM über das Adressinformationsfeld adressiert werden kann. Wenn der Wert des Sicherheitsbits dieser VM, das auf dem ISP 107 gespeichert ist, identisch ist mit dem Wert des CS-Bits, das für diese VM über den SR 106 erhalten wird, wird die Interrupt-Behandlung initiiert. Unterscheiden sich diese Werte voneinander, wird eine vordefinierte Aktion ausgelöst, z.B. wird eine Alarmbenachrichtigung ausgegeben, und/oder der Interrupt verworfen.
  • Der ISP 107 kann mindestens eine der folgenden (On-Chip-)Funktionen sein (oder umfassen) (die auch als Funktionsblöcke betrachtet werden können):
    • - eine zentrale Verarbeitungseinheit (CPU);
    • - eine virtuelle Maschine (VM) auf einer CPU (es kann mehr als eine VM pro CPU vorhanden sein);
    • - eine parallele Verarbeitungseinheit (PPU);
    • - ein generisches Timer-Modul (GTM);
    • - eine Direktspeicherzugriffs (DMA) Einheit mit, wobei ein SR mit einer Priorität y einen DMA-Kanal v auslösen kann.
  • Beachte, dass jede On-Chip-Funktion mindestens eine Unterfunktion haben kann: Beispielsweise kann eine DMA (-Funktion) mehrere DMA-Kanäle (Unterfunktionen) bereitstellen, die durch Service-Requests adressiert werden können. Dementsprechend kann eine CPU (-Funktion) mindestens eine Virtualisierung, d.h. VMs, als mindestens eine Unterfunktion unterstützen.
  • Der ISP kann insbesondere jede Art von softwareunterstützter Hardware oder dedizierter Hardware sein, die in der Lage ist, auf Interrupt-Requests zu reagieren.
  • Systemstart
  • Nach einem Zurücksetzen oder vor einem ersten Start können alle SRNs deaktiviert sein. In diesem Fall kann nur die sichere Anwendung einen SRN zu dieser sicheren Anwendung zuordnen, indem sie das CS-Bit auf 1 setzt, und nur die nicht sichere Anwendung kann dieser nicht sicheren Anwendung einen SRN zuordnen, indem sie das CS-Bit auf 0 setzt.
  • Dementsprechend kann nur die sichere Anwendung die Konfiguration des SRN ändern, der dieser sicheren Anwendung bereits zugeordnet wurde. Dies gilt entsprechend für die nicht sichere Anwendung.
  • Es gibt jedoch eine weitere Option, dass die Konfiguration über den Zugriffsschutz durchgeführt werden kann, der das Lesen und Ändern der SRN-Konfiguration erlaubt; die Änderung über den Zugriffsschutz kann jedoch einer Konfiguration unterzogen werden.
  • Eine Zuweisung während des Hochfahrens kann mindestens eines des Folgenden umfassen:
    • - eine Zuweisung von DMA-Ressourcen (DMA-Kanäle, DMA-Kanalgruppen) zu Anwendungen. DMA-Kanäle oder DMA-Kanalgruppen können vordefinierte Master-IDs speichern, um unterschiedliche sichere Master und damit separate Zugriffsschutzmechanismen zu ermöglichen, so dass DMA-Kanalkonfigurationsregister und ein Zugriff der Kanäle auf die Systemverbindung den einzelnen Anwendungen zugeordnet werden können.
    • - eine Zuweisung von CPU-Ressourcen (CPUs, virtuelle Maschinen von CPUs) zu den Anwendungen. Dabei können CPUs und virtuelle Maschinen vordefinierte Master-IDs speichern, um unterschiedliche sichere Master und damit getrennte Zugriffsschutzmechanismen zu ermöglichen, so dass diese den einzelnen Anwendungen zugeordnet zu können.
  • Koexistenz von sicheren und nicht sicheren Funktionen:
  • Probleme bezüglich Sicherheit und Schutz können entstehen, wenn sichere Funktionen und nicht sichere Funktionen eine gemeinsame Plattform, z.B. eine gemeinsame MCU, verwenden.
  • Außerdem kann sich die Komplexität einer sicheren Funktion im Laufe der Zeit ändern, z.B. in Abhängigkeit von sich ändernden Anwendungsfällen. Beispielsweise kann eine sichere Anwendung eine zunehmende (oder abnehmende) Anzahl von On-Chip-Ressourcen (Computer-on-Modules (COMs), Systemfunktionen, DMA-Kanäle und/oder Interrupts) erfordern: Dies kann vorteilhafterweise eine unterschiedliche Zuweisung von On-Chip-Ressourcen mit z.B. COMs, DMA-Kanälen, CPUs, virtuellen Maschinen und/oder entsprechenden Interrupt-Knoten für die sichere Anwendung auslösen.
  • Unerwünschte Interferenzen zwischen sicheren und nicht sicheren Anwendungen sollten vermieden werden. Daher muss möglicherweise eine funktionale Kapselung von sicheren Anwendungen und nicht sicheren Anwendungen garantiert werden. Beispielsweise sollten On-Chip-Funktionen, wie Interrupt-Knoten oder DMA-Kanäle, die einer Anwendung einer sicheren Domäne zugewiesen sind, für eine Anwendung einer nicht sicheren Domäne nicht zugänglich sein. Eine solche Zugangsbeschränkung sollte insbesondere jegliche Konfiguration sowie Neukonfiguration abdecken. Außerdem sollte sichergestellt werden, dass eine Anwendung keine On-Chip-Funktionen, wie Interrupt-Knoten oder DMA-Kanäle, an die andere Anwendung zuweisen kann.
  • Eine sichere Anwendung kann einer nicht sicheren Anwendung nicht vertrauen. Daher muss eine Zuweisung von sicheren Funktionen und Interrupts vor einer Neukonfiguration durch die nicht sichere Anwendung geschützt werden. Auch kann die nicht sichere (z.B. „safe“) Anwendung der sicheren Anwendung nicht vertrauen, z.B., wenn die sichere Anwendung ein niedriges ASIL (Automotive Safety Integrity Level) aufweist.
  • Außerdem gibt es eine Option, zu erkennen, ob ein Interrupt von der nicht sicheren Anwendung (erneut) der sicheren Anwendung zugeordnet wird. Außerdem muss die nicht sichere Anwendung möglicherweise erkennen können, ob ihr der Interrupt von einer sicheren Anwendung zugeordnet wurde.
  • Somit sollen die sichere Anwendung, die Zuweisung von Funktionen zu der sicheren Anwendung (z.B. Konfiguration) und die ihr zugeordneten Funktionen vor einem Eingriff einer nicht sicheren Anwendung geschützt werden, und umgekehrt.
  • Da On-Chip-Ressourcen, wie etwa DMA-Module und Interrupt-Systeme, kostspielig sind, besteht die Motivation, sie nicht zu duplizieren, sondern gemeinsam genutzte Ressourcen für sichere Anwendungen und nicht sichere Anwendungen zu implementieren.
  • Hierin beschriebene Beispiele betreffen insbesondere ein Interrupt-System, das die folgenden Merkmale implementieren kann:
    1. (1) Die sichere Anwendung markiert Interrupts als sicher, so dass sie sichere Anwendungen nicht beeinflussen können.
    2. (2) Die sichere Anwendung (DMA-Kanäle, CPUs, virtuelle Maschinen, die der sicheren Anwendung zugewiesen sind) erkennt, ob ein Interrupt, der an die sichere Anwendung adressiert ist, ein nicht sicherer Interrupt ist (wodurch potenzielle Angriffe aufgedeckt werden).
    3. (3) Die nicht sichere Anwendung (DMA-Kanäle, CPUs, virtuelle Maschinen, die der sicheren Anwendung zugewiesen sind) erkennt, ob ein Interrupt, der an die nicht sichere Anwendung adressiert ist, ein sicherer Interrupt ist, was ein potenzieller Fehler sein könnte, falls die sichere Anwendung ein niedrigeres ASIL hat.
  • Beachte, dass hierin zwei Anwendungen/Funktionen beschrieben werden: sichere Anwendungen und nicht sichere Anwendungen. Die sichere Anwendung kann einem bestimmten Sicherheitsniveau oder einer Sicherheitserfordernis unterliegen, während die nicht sichere Anwendung an eine andere Domäne gerichtet ist, die eine Sicherheitsdomäne oder jede andere Domäne sein kann, die sich von der sicheren unterscheidet.
  • Hierin beschriebene Beispiele legen nahe, dass ein Interrupt auf sichere Weise durch ein Interrupt-System einer sicheren Anwendung zugeordnet wird, und dass sichere Anwendungen und nicht sichere Anwendungen von derselben Hardware ohne störende Interrupts behandelt werden können.
  • Eine Anwendung kann Software sein oder umfassen, die On-Chip-Ressourcen (z.B. CPUs, DMA, Schnittstellen, SRAM, Interrupts in Bezug auf die CPUs / DMA / Schnittstellen usw.) zugeordnet ist. Es kann sichere Anwendungen und nicht sichere Anwendungen geben.
  • Die sichere Anwendung kann einen bestimmten SRN (Interrupt-Knoten) als sicher konfigurieren. Die nicht sichere Anwendung kann eine bestimmte (andere) SRN als nicht sicher konfigurieren. Jeder SRN ist einem Interrupt-Ereignis zugeordnet. Die SRN ist einer sicheren Anwendung, einer nicht sicheren Anwendung, oder noch keiner Anwendung zugeordnet.
  • Die Konfiguration des SRN wird gesteuert, um zu vermeiden, dass die sichere Anwendung die nicht sichere Anwendung stört, und umgekehrt. Dies kann durch einen Kontrollmechanismus erreicht werden, der die folgenden Regeln implementiert:
    1. (a) Nur der sichere Master kann der sicheren Anwendung Interrupt-Knoten zuweisen.
    2. (b) Die nicht sichere Anwendung kann der sicheren Anwendung keine Interrupts zuweisen.
    3. (c) Die nicht sichere Anwendung kann keine SRNs modifizieren, die von der sicheren Anwendung zugewiesen und daher als sicher markiert sind, und umgekehrt.
    4. (d) Ein Master-Agent, der nicht der sichere Master ist, kann der nicht sicheren Anwendung Interrupt-Knoten zuweisen.
    5. (e) Der sichere Master kann der nicht sicheren Anwendung keine Interrupts zuweisen.
    6. (f) die sichere Anwendung kann einen SRN, der der nicht sicheren Anwendung zugewiesen und daher als nicht sicher markiert ist, nicht ändern.
  • Diese Regeln verhindern, dass eine nicht sichere Anwendung die Konfiguration (z.B. die Zuordnung zum ISP, und/oder die Priorität) eines sicheren SRN ändert. Darüber hinaus ist die sichere Anwendung in der Lage, zu erkennen, ob ein Interrupt von einer nicht sicheren Anwendung der sicheren Anwendung zugeordnet wurde.
  • Beachte, dass oben die Schreibzugriffsschutzregeln aufgeführt sind. Optional können aber auch die Lesezugriffsschutzregeln einer Konfiguration unterzogen werden: Mit solchen Lesezugriffsschutzregeln kann z.B. definiert werden, welcher Master berechtigt ist, die sicheren SRNs zu lesen, usw. Dies könnte z.B. für eine Debug-Schnittstelle nützlich sein, die Zugriff auf verschiedene Arten von Informationen benötigt.
  • 3 zeigt ein beispielhaftes Zustandsdiagramm, das die verschiedenen Zustände des sicheren Bits (CS-Bit) des SRN 102 visualisiert.
  • Nach dem Zurücksetzen (Reset) wird in einen Zustand 301 eingetreten. In diesem Zustand 301 ist das CS-Bit standardmäßig auf 0 gesetzt. Außerdem hat das SRC ein Diensttypfeld (TOS-Feld), das auf eine Zahl z gesetzt werden kann, die eine Zuordnung zu einem bestimmten ISP anzeigt, der dem Wert z zugeordnet ist. Im Zustand 301 gilt keine solche Zuordnung, und das TOS-Feld wird auf einen vordefinierten Wert F gesetzt (der sich von jedem Wert unterscheidet, der für eine Zuordnung zu einem tatsächlichen ISP verwendet wird). Mit anderen Worten, der Wert F in dem TOS-Feld zeigt an, dass diesem bestimmten SRN kein ISP zugeordnet ist.
  • ÜBERGANG 305:
  • Ein Übergang von dem Zustand 301 in einen Zustand 302 (sicherer Zustand) kann auftreten, wenn die folgenden Bedingungen erfüllt sind:
    • (S1) ein Master-Agent, der einen solchen Übergang von dem Zustand 301 in den Zustand 302 initiiert, muss der sichere Master sein. Dies kann von dem IR anhand einer von dem Master-Agenten an den IR übermittelten Identifikation bestimmt werden. Der IR kann dann bestimmen, ob diese Identifikation gültig ist, und den Master-Agenten als sicheren Master authentifizieren (z.B. durch Vergleichen der Identifikation mit einem Eintrag in einer persistenten Tabelle, die Identifikationen von Master-Agenten umfasst, die sichere Master sind).
    • (S2) der sichere Master (d.h. der Master-Agent, der zuvor in (S1) durch den IR als sicherer Master bestimmt wurde) setzt das CS-Bit auf 1 (falls TOS=F) und das TOS-Feld auf einen Wert z, der eine Zuordnung zu einem bestimmten ISP anzeigt.
  • ÜBERGANG 306:
  • Ein Übergang von dem Zustand 302 in den Zustand 302 (Verbleib im sicheren Zustand) kann auftreten, wenn ein anderer Wert z* in das TOS-Feld geschrieben wird, was eine Zuordnung zu einem unterschiedlichen ISP anzeigt. Beachte, dass ein solcher Übergang auch erfordert, dass der initiierende Master-Agent ein sicherer Master ist, wie oben in (S1) beschrieben, und dass das CS-Bit auf 1 gesetzt bleiben muss.
  • ÜBERGANG 307:
  • Ein Übergang von dem Zustand 302 zurück in den Zustand 301 kann auftreten, wenn der initiierende Master-Agent ein sicherer Master ist, wie in (S1) beschrieben wurde.
    • (S3) Außerdem setzt der sichere Master das CS-Bit auf 0 und das TOS-Feld auf den Wert F, was keine Zuordnung zu einem bestimmten ISP anzeigt.
  • ÜBERGANG 310:
  • Ein Übergang von dem Zustand 301 in einen Zustand 303 (nicht sicherer Zustand) kann auftreten, wenn die folgenden Bedingungen erfüllt sind:
    • (N1) ein Master-Agent, der einen solchen Übergang von dem Zustand 301 in den nicht sicheren Zustand 303 einleitet, ist kein sicherer Master. Dies kann wie oben unter (S1) beschrieben bestimmt werden: Der IR bestimmt, ob die Identifikation des Master-Agenten einem sicheren Master zugeordnet ist. Ist dies nicht der Fall, handelt es sich nicht um einen sicheren Master.
    • (N2) der Master-Agent (der kein sicherer Master ist) setzt das CS-Bit auf 0 und das TOS-Feld auf einen Wert z, der eine Zuordnung zu einem bestimmten ISP anzeigt. Beachte, dass der hier und in (S2) verwendete Wert z unterschiedlich sein kann.
  • ÜBERGANG 311:
  • Ein Übergang von dem Zustand 303 in den Zustand 303 (Verbleib im nicht sicheren Zustand) kann auftreten, wenn ein anderer Wert z* in das TOS-Feld geschrieben wird, was eine Zuordnung zu einem anderen ISP anzeigt. Beachte, dass ein solcher Übergang auch erfordert, dass der initiierende Master-Agent ein nicht sicherer Master ist, wie oben in (N1) beschrieben wurde, und dass das CS-Bit auf 0 gesetzt bleibt. Beachte, dass der hier verwendete Wert z* und das im Übergang 306 unterschiedlichen sein können.
  • ÜBERGANG 312:
  • Ein Übergang von dem Zustand 303 zurück in den Zustand 301 kann auftreten, wenn der initiierende Master-Agent ein nicht sicherer Master ist, wie in (N1) beschrieben.
    • (N3) Zusätzlich setzt der nicht sichere Master das CS-Bit auf 0 und das TOS-Feld auf den Wert F, was keine Zuordnung zu einem bestimmten ISP anzeigt.
  • Daher können die Übergänge 305, 306 und 307 nur von einem Master-Agenten durchgeführt werden, der ein sicherer Master ist. Andererseits können die Übergänge 310, 311 und 312 nur von einem Master-Agenten durchgeführt werden, der kein sicherer Master ist. Dies ermöglicht eine Trennung der sicheren Domäne von einer beliebigen anderen Domäne, z.B. einer Sicherheitsdomäne.
  • Das sichere Bit (CS-Bit) des SRN 102 kann nur durch den sicheren Master geändert werden. Mit anderen Worten, jeder Master-Agent, der von dem SRN nicht als sicherer Master identifiziert wird, darf weder das CS-Bit setzen noch das CS-Bit löschen.
  • Um einen Übergang von dem Zustand 301 in den Zustand 303 zu initiieren, muss ein nicht sicherer Master das sichere Bit CS=0 setzen (vorzugsweise im selben Schreibzugriff auf das SRN-Register). Um einen Übergang von dem Zustand 301 in den Zustand 302 zu initiieren, muss der sichere Master das sichere Bit CS=1 setzen (vorzugsweise im selben Schreibzugriff auf das SRN-Register).
  • Der sichere Master kann die SRN im Zustand 303 nicht ändern, da sie bereits der nicht sicheren Anwendung zugewiesen ist (TOS!=F und CS=0). Daher ist in diesem Beispiel ein direkter Übergang von dem Zustand 301 in den Zustand 302, und umgekehrt, nicht möglich.
  • Bestimmen, ob ein Master-Agent ein sicherer Master ist oder nicht:.
  • Jeder der Master-Agenten 201 bis 203 kann über den Bus 111 eine Master-ID an das IR 101 übermitteln (über die Slave-Schnittstelle 110). Der IR 101 und/oder der SRN 102 können bestimmen, ob, oder ob nicht, diese Master-ID einem sicheren Master zugeordnet ist und daher dieser Master-Agent als sicherer Master authentifiziert wird.
  • Dies kann erreicht werden, indem die Master-ID lokal oder entfernt mit einem Eintrag in einer Tabelle oder einem beliebigen Speichermittel verglichen wird. Wenn bestätigt wird, dass die Master-ID einer ID entspricht, die in der Tabelle gespeichert ist, die die sicheren Master-IDs umfasst, wird diesem Master-Agent erlaubt, das CS-Bit zu setzen oder zu löschen und die SRN 102 wie oben beschrieben zu verwenden.
  • Beachte, dass die Rolle des sicheren Masters für den IR 101 oder für jeden SRN 102 innerhalb des IR 101 bestimmt werden kann.
  • Beachte, dass die Tabelle mit dem IR 101 und/oder mit dem SRN 102 gespeichert werden kann. Außerdem kann das Authentifizieren des Master-Agenten als sicherer Master durch den IR 101 und/oder den SRN 102 erfolgen.
  • Beachte ferner, dass die Authentifizierung des sicheren Masters wie beschrieben auch die Authentifizierung eines nicht sicheren Masters ermöglicht (wenn es keinen Eintrag für die Master-ID des Master-Agenten in der Tabelle mit den sicheren Master-IDs gibt).
  • Optional kann die Tabelle Master-IDs von sicheren Masters und/oder nicht sicheren Masters umfassen. In diesem Anwendungsfall kann es eine weitere Option sein, dass ein Master-Agent mit einer Master-ID, die nicht in der Tabelle gefunden wird, weder als sicherer Master noch als nicht sicherer Master authentifiziert wird und daher möglicherweise nicht berechtigt ist, den SRN zu konfigurieren.
  • Alternativ kann anstelle der Bestimmung des sicheren Masters anhand der Master-ID ein Seitenbandsignal verwendet werden, um (i) zu bestimmen, welcher Master-Agent berechtigt ist, als sicherer Master zu fungieren, und/oder (ii) zum (direkten) Konfigurieren des SRN, insbesondere der SRC des SRN.
  • Interrupt-Verarbeitung:
  • 1 zeigt auch, wie ein tatsächlicher Interrupt verarbeitet wird: Das Interrupt-Ereignis 105 wird durch den IR 101, d.h. dem SRN 102, der Arbitrationseinheit 103 und der ICU 104, verarbeitet. Als Ergebnis kann der anstehende Interrupt von dem IR 101 als SR 106 zusammen mit dem sicheren Bit an den zugehörigen ISP 107 signalisiert werden.
  • Beachte, dass der SR 106 das Interrupt-Ereignis 105 oder beliebige basierend auf dem Interrupt-Ereignis 105 erzeugte Informationen umfassen kann, die z.B. eine Priorität, ein Service-Request-Ziel und das Sicherheitsbit (CS-Bit) umfassen. Basierend auf dem Wert des CS-Bits kann der SR 106 ein sicherer SR oder ein nicht sicherer SR sein.
  • Beachte ferner, dass das „sichere Bit“, wie hier angegeben, auch beliebige Informationen („sichere Bit-Informationen“) umfassen kann, die das Bestimmen (z.B. Setzen, Neukonfigurieren) des sicheren Bits ermöglichen.
  • In dem ISP 107 verwendete Funktionen können einer sicheren Anwendung oder einer nicht sicheren Anwendung zugewiesen werden (auch während des Betriebs). Wenn der ISP eine DMA-Funktion ist, kann ein DMA-Kanal einzeln oder in Gruppen einer sicheren Anwendung oder einer nicht sicheren Anwendung zugewiesen werden. Wenn der ISP eine CPU mit Virtualisierung ist, können die virtuellen Maschinen (VMs) der CPU jeweils einer sicheren Anwendung oder einer nicht sicheren Anwendung zugewiesen werden.
  • Der ISP kann prüfen, ob das sichere Bit des empfangenen SR mit dem bei dem ISP gespeicherten sicheren Status übereinstimmt:
    • - Wenn ein sicherer DMA-Kanal von einem nicht sicheren SR ausgelöst wird, wird das Interrupt-Auslöse-Ereignis ignoriert. Optional kann ein Fehlerereignis an die sichere Anwendung ausgegeben werden (was die Erkennung eines potenziellen Angriffs ermöglicht).
    • - Wenn eine sichere CPU oder eine sichere VM auf dieser CPU durch einen nicht sicheren SR ausgelöst wird, wird der Interrupt ignoriert. Optional kann ein Fehlerereignis an die sichere Anwendung ausgegeben werden (was die Erkennung eines potenziellen Angriffs ermöglicht).
  • Konfiguration des SRC durch den Master-Agenten:
  • Der beispielhafte Master-Agent 204 übermittelt über den Bus 111 Daten von dem ISP 107 an die Slave-Schnittstelle 110 des IR 101. Der IR 101 parst diese Daten zum SRN 102 zum Einstellen des SRC 108.
  • Beispielsweise können die von dem Master-Agenten übermittelten Daten umfassen
    • - eine Zugangsadresse,
    • - eine Transaktionsart (Schreiben/Lesen),
    • - die Master-ID des Master-Agenten,
    • - Informationen, ob sich der Interrupt in der sicheren Domäne oder in der nicht sicheren Domäne befindet (z.B. müssen möglicherweise zusätzliche Informationen bereitgestellt werden, die anzeigen, dass ein Zugriff sich an eine sichere Anwendung richtet).
  • Die Systemverbindung kann eine Systemadressenabbildung mit Registern und Speichern bereitstellen, auf die über diese Systemverbindung (d.h. die IR-Steuerregister) zugegriffen werden kann. Die Adressenabbildung umfasst Adressen und/oder Adressregionen (SRAMs). Ein sicherer Master kann eine Transaktion mit einer Adressphase starten, die die Adresse innerhalb der Systemadressenabbildung übermittelt, auf die der sichere Master zugreifen möchte.
  • Wie oben beschrieben, kann der Master-Agent basierend auf seiner Master-ID autorisiert werden, d.h. der IR 101/der SRN 102 kann bestimmen, ob der Master-Agent die Rolle eines sicheren Masters hat oder nicht.
  • Die Zugriffsadresse kann eine Identifikation (z.B. eine Adresse) einer CPU oder VM umfassen, die einer Konfiguration unterliegt.
  • Exemplarische Interrupt-Verarbeitung / SR-Verarbeitung beim ISP
  • Beispiele für ISPs sind CPUs, DMAs oder VMs, die auf mindestens einer CPU laufen.
  • Die Zuweisung von DMA-Kanälen oder DMA-Kanalgruppen zu einer sicheren Anwendung oder zu einer nicht sicheren Anwendung kann im DMA-Modul wie oben für die Zuweisung der SRN beschrieben erfolgen. Die Zuweisung von virtuellen Maschinen einer CPU zu der sicheren Anwendung oder nicht sicheren Anwendung kann auch in der CPU wie oben für die Zuweisung der SRN beschrieben erfolgen.
  • Vorteilhafterweise ermöglicht der vorgestellte Ansatz eine flexible Zuordnung von On-Chip-Ressourcen, wie etwa CPUs, VMs, DMA-Kanälen und Funktionsblöcken mit ihren Interrupts, zu einer sicheren Anwendung oder zu einer nicht sicheren und zuverlässigen Anwendung. Die Lösung kann insbesondere auf MCUs angewendet werden, die eine Integration von sicheren sowie nicht sicheren Anwendungen unterstützen.
  • Nach dem Zurücksetzen können DMA-Kanäle und/oder DMA-Kanalgruppen deaktiviert werden. Jeder DMA-Kanal oder jede DMA-Kanalgruppe hat ein Sicherheitsbit, um anzuzeigen, ob der DMA-Kanal/die DMA-Kanalgruppe sicher (CS=1) oder nicht sicher (CS=0) ist. Optional kann mindestens ein DMA-Kanal und/oder eine DMA-Kanalgruppe als sicher vordefiniert werden.
  • Abkürzungen:
  • ASIL
    Automotive Safety Integrity Level
    COM
    Computer-on-Module
    CPU
    zentrale Verarbeitungseinheit
    CS-Bit
    sicheres Bit
    DMA
    direkter Speicherzugriff
    GPIO
    Mehrzweck-Eingabe-Ausgabe
    GTM
    generisches Timer-Modul
    ICU
    Interrupt-Steuereinheit
    IR
    Interrupt-Router
    IRQ
    Interrupt
    ISP
    Interrupt-Service-Provider
    MCU
    Mikrocontrollereinheit
    PPU
    parallele Verarbeitungseinheit
    SR
    Interrupt-Service-Request
    SRC
    Service-Steuer-Register
    SRN
    Dienstanforderungs-Knoten
    SRPN
    Service-Request-Prioritätsnummer
    TOS
    Diensttyp
    VM
    virtuelle Maschine

Claims (9)

  1. Verfahren zur Verarbeitung eines Interrupt-Ereignisses, umfassend: - Empfangen eines Interrupt-Ereignisses an einem Dienstanforderungs-Knoten, - Erstellen, durch den Dienstanforderungs-Knoten, eines Interrupt-Service-Requests basierend auf - dem Interrupt-Ereignis, und - einer Sicherheitsinformation, - Weiterleitung des Interrupt-Service-Requests an einen Interrupt-Service-Provider.
  2. Verfahren nach Anspruch 1, bei dem die Sicherheitsinformation des Dienstanforderungs-Knotens von einem Master-Agenten konfiguriert werden.
  3. Verfahren nach Anspruch 2, - wobei die Sicherheitsinformation anzeigt, ob - der Dienstanforderungs-Knoten in einer sicheren Domäne arbeitet, - der Dienstanforderungs-Knoten in einer nicht sicheren Domäne arbeitet, oder - der Dienstanforderungs-Knoten noch nicht konfiguriert ist, - wobei die Konfiguration in der sicheren Domäne nur von einem Master-Agenten durchgeführt werden kann, der als sicherer Master-Agent authentifiziert wurde.
  4. Verfahren nach Anspruch 3, - wobei die Konfiguration in der nicht sicheren Domäne nur von einem Master-Agenten durchgeführt werden kann, der kein sicherer Master-Agent ist.
  5. Verfahren nach einem der vorangehenden Ansprüche, bei dem der Interrupt-Service-Request ferner basierend auf zusätzlichen Informationen erstellt wird, die mindestens eines aufweisen von: - einer Adressinformationen, die die Identifizierung des Interrupt-Service-Providers ermöglichen, insbesondere - einen Master-Agenten des Interrupt-Service-Providers, - einen Prozessor, - eine virtuelle Maschine, - einen DMA-Kanal oder eine DMA-Kanalgruppe, - Prioritätsinformationen.
  6. Verfahren nach einem der vorhergehenden Ansprüche, bei dem der Interrupt-Service-Provider den Interrupt nur verarbeitet, wenn die Sicherheitsinformation des Interrupt-Service-Requests einer internen Sicherheitsinformation entspricht.
  7. Verfahren nach einem der vorhergehenden Ansprüche, bei dem ein Interrupt-Ereignis einem Dienstanforderungs-Knoten zugeordnet ist und der Dienstanforderungs-Knoten nur diesem Interrupt zugeordnet ist.
  8. Vorrichtung zur Verarbeitung eines Interrupt-Ereignisses, bei dem die Vorrichtung eingerichtet ist, die Schritte des Verfahrens nach einem der vorhergehenden Ansprüche auszuführen.
  9. Computerprogrammprodukt, das direkt in einen Speicher eines digitalen Computers geladen werden kann, umfassend Softwarecodeabschnitte zur Durchführung der Schritte des Verfahrens nach einem der Ansprüche 1 bis 7.
DE102022109559.2A 2022-04-20 2022-04-20 Verarbeitung von Interrupts Pending DE102022109559A1 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
DE102022109559.2A DE102022109559A1 (de) 2022-04-20 2022-04-20 Verarbeitung von Interrupts
US18/302,053 US20230342187A1 (en) 2022-04-20 2023-04-18 Processing of interrupts

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102022109559.2A DE102022109559A1 (de) 2022-04-20 2022-04-20 Verarbeitung von Interrupts

Publications (1)

Publication Number Publication Date
DE102022109559A1 true DE102022109559A1 (de) 2023-10-26

Family

ID=88238615

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102022109559.2A Pending DE102022109559A1 (de) 2022-04-20 2022-04-20 Verarbeitung von Interrupts

Country Status (2)

Country Link
US (1) US20230342187A1 (de)
DE (1) DE102022109559A1 (de)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6463492B1 (en) 1999-04-08 2002-10-08 Micron Technology, Inc. Technique to automatically notify an operating system level application of a system management event
US8234431B2 (en) 2009-10-13 2012-07-31 Empire Technology Development Llc Interrupt masking for multi-core processors

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6463492B1 (en) 1999-04-08 2002-10-08 Micron Technology, Inc. Technique to automatically notify an operating system level application of a system management event
US8234431B2 (en) 2009-10-13 2012-07-31 Empire Technology Development Llc Interrupt masking for multi-core processors

Also Published As

Publication number Publication date
US20230342187A1 (en) 2023-10-26

Similar Documents

Publication Publication Date Title
DE102013022299B3 (de) Schutz globaler Register in einem Multithreaded-Prozessor
DE102020125599A1 (de) Vertrauenswürdige lokale speicherverwaltung in einer virtualisierten gpu
DE112012003988B4 (de) Schützen des Arbeitsspeichers eines virtuellen Gasts
DE10394383B4 (de) Verfahren und Vorrichtung zum Laden eines vertrauenswürdigen Betriebssystems
DE112020006859T5 (de) Beibehaltung von speicher-namensraum-identifizierern für die migration von virtualisierten ausführungsumgebungen im laufenden betrieb
DE112006001933B4 (de) Stillegen eines Prozessorbusagenten
DE102014002181B4 (de) Chip und Verfahren zum Betreiben eines Chips
DE68915074T2 (de) Integrierte Zeitgeberschaltung mit mehreren Kanälen und zugeordnetem Bedienungsprozessor.
DE102015002191A1 (de) Sicherheits-Hypervisor-Funktion
EP2807558A1 (de) Speichercontroller zur bereitstellung mehrerer definierter bereiche eines massenspeichermediums als unabhängige massenspeicher an einen master-betriebssystem - kern zur exklusiven bereitstellung an virutelle maschinen
DE102010054614A1 (de) Eindringen in eine gesicherte EDV-Umgebung unter Verwendung mehrerer authentifizierter Codemodule
EP3065078A1 (de) Schutz von speicherinhalten eines speichers eines computersystems unter verwendung einer hashfunktion
DE102012017339B4 (de) Rechnersystem
DE102021128529A1 (de) Sichere adressübersetzungsdienste mit bundle-zugriffskontrolle
DE112020005949T5 (de) Informationsverarbeitungsvorrichtung, Anomalieerfassungsverfahren und Computerprogramm
WO2021122734A1 (de) Verfahren und vorrichtung zum betreiben einer recheneinrichtung
EP3655876B1 (de) Ein-chip-system, verfahren zum betrieb eines ein-chip-systems und kraftfahrzeug
DE112017008307T5 (de) Systeme und verfahren zur effizienten unterbrechung von virtuellen maschinen
WO2016162144A1 (de) Verwaltung von schnittstellen in einem verteilten system
DE102012218945B4 (de) Zugriffssteuerung in einer hybriden Umgebung
DE112017003659T5 (de) Kontextbasiertes schutzsystem
DE10392810T5 (de) System und Verfahren zum Filtern von Prozessoren nach Integrität während früher Firmware für eine Architektur mit aufgeteilter Wiederherstellung
DE102022109559A1 (de) Verarbeitung von Interrupts
EP3819804A1 (de) Integritätsüberprüfung eines registerinhalts
DE102008038354A1 (de) Verfahren und Vorrichtung für integrierte Speichersicherheit

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication