[go: up one dir, main page]

DE112023000522T5 - PERIPHERAL ACCESS CONTROL USING BITMASKS SPECIFYING ACCESS SETTINGS FOR PERIPHERALS - Google Patents

PERIPHERAL ACCESS CONTROL USING BITMASKS SPECIFYING ACCESS SETTINGS FOR PERIPHERALS Download PDF

Info

Publication number
DE112023000522T5
DE112023000522T5 DE112023000522.2T DE112023000522T DE112023000522T5 DE 112023000522 T5 DE112023000522 T5 DE 112023000522T5 DE 112023000522 T DE112023000522 T DE 112023000522T DE 112023000522 T5 DE112023000522 T5 DE 112023000522T5
Authority
DE
Germany
Prior art keywords
access
peripheral
access control
task
transaction host
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
DE112023000522.2T
Other languages
German (de)
Inventor
Ravindra Kumar
Srinivasarao Nakka
Jayavasanth Vethamanickam
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.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US18/071,023 external-priority patent/US20230237185A1/en
Application filed by Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of DE112023000522T5 publication Critical patent/DE112023000522T5/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

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

Abstract

Eine elektronische Vorrichtung beinhaltet einen Transaktions-Host, erste und zweite Peripherien, einen Speicher, ein Zugriffssteuerungsregister und erste und zweite Zugriffssteuerungen. Der Speicher speichert Befehle zur Verwaltung von Zugriffssteuerungsidentifikatoren, eine erste Aufgabe, die sich auf die erste Peripherie bezieht, und eine erste Bitmaske, die entsprechende Zugriffseinstellungen für die erste und zweite Peripherie zur Durchführung der ersten Aufgabe angibt. Das Zugriffssteuerungsregister weist einen ersten Zugriffssteuerungsidentifikator für die erste Peripherie und einen zweiten Zugriffssteuerungsidentifikator für die zweite Peripherie auf. Der Transaktions-Host führt die Befehle zur Verwaltung der Zugriffssteuerungsidentifikatoren aus, um die ersten und zweiten Zugriffssteuerungsidentifikatoren auf der Grundlage der ersten Bitmaske zu programmieren, und führt anschließend die erste Aufgabe aus. Die ersten und zweiten Zugriffssteuerungsidentifikatoren steuern den Zugriff auf die erste bzw. zweite Peripherie auf der Grundlage der ersten und zweiten Zugriffssteuerungsidentifikatoren, die auf der Basis der ersten Bitmaske programmiert wurden.An electronic device includes a transaction host, first and second peripherals, a memory, an access control register, and first and second access controllers. The memory stores instructions for managing access control identifiers, a first task related to the first peripheral, and a first bit mask specifying corresponding access settings for the first and second peripherals to perform the first task. The access control register includes a first access control identifier for the first peripheral and a second access control identifier for the second peripheral. The transaction host executes the access control identifier management instructions to program the first and second access control identifiers based on the first bit mask and then executes the first task. The first and second access control identifiers control access to the first and second peripherals, respectively, based on the first and second access control identifiers programmed based on the first bit mask.

Description

VERWANDTE PATENTANMELDUNGRELATED PATENT APPLICATION

Diese Anmeldung beansprucht Priorität vor der IN-Patentanmeldung Nr. 202211000733 , die am 6. Januar 2022 eingereicht wurde und deren gesamter Inhalt hiermit durch Bezugnahme für alle Zwecke einbezogen wird.This application claims priority to IN patent application No. 202211000733 , filed on January 6, 2022, the entire contents of which are hereby incorporated by reference for all purposes.

TECHNISCHES GEBIETTECHNICAL FIELD

Die vorliegende Offenbarung bezieht sich auf elektronische Vorrichtungen, die Peripherien beinhalten, und insbesondere auf die Zugriffssteuerung von Peripherien unter Verwendung von Bitmasken, die Zugriffseinstellungen für Peripherien angeben.The present disclosure relates to electronic devices including peripherals, and more particularly to controlling access to peripherals using bit masks that specify access settings for peripherals.

HINTERGRUNDBACKGROUND

Ein System auf einem Chip, auch bekannt als System-on-Chip oder SoC, ist eine integrierte Schaltung (IC), die ein elektronisches System oder Computersystem auf einem einzigen Chip integriert. Ein SoC weist in der Regel zumindest einen Prozessor auf, z.B. eine Zentraleinheit (CPU), einen Mikrocontroller oder einen Mikroprozessor (MPU), sowie verschiedene Vorrichtungen für Peripherien, z.B. Eingangs-/Ausgangsports, internen Speicher sowie analoge Eingangs- und Ausgangsblöcke, z.B. Funkmodems, eine Grafikverarbeitungseinheit (GPU) und/oder einen oder mehrere Coprozessoren, die alle auf einem einzigen Substrat oder Mikrochip untergebracht sind. Ein SoC kann für verschiedene Funktionen entworfen werden, zum Beispiel für Signalverarbeitung, drahtlose Kommunikation oder künstliche Intelligenz.A system on a chip, also known as a system-on-chip or SoC, is an integrated circuit (IC) that integrates an electronic system or computer system on a single chip. A SoC typically includes at least one processor, e.g. a central processing unit (CPU), a microcontroller or a microprocessor (MPU), and various devices for peripherals, e.g. input/output ports, internal memory, and analog input and output blocks, e.g. radio modems, a graphics processing unit (GPU) and/or one or more coprocessors, all housed on a single substrate or microchip. A SoC can be designed for various functions, for example signal processing, wireless communication or artificial intelligence.

Bei einigen SoCs weist die auf dem Prozessor laufende Firmware vollständigen Zugriff auf alle Peripherien auf dem SoC auf, unabhängig vom aktuellen Betriebsmodus des Prozessors, zum Beispiel einem privilegierten Modus oder einem Benutzermodus. Dies kann zu Fehlern oder anderen unerwünschten Folgen führen. So kann beispielsweise ein fehlerhafter oder bösartiger Firmware-Gerätetreiber, der mit einer Peripherie korrespondiert, irrtümlich (oder böswillig) auf eine andere Peripherie zugreifen und diese beschädigen, z.B. indem er die in der anderen Peripherie bereitgestellten Register verändert.In some SoCs, the firmware running on the processor has full access to all peripherals on the SoC, regardless of the current operating mode of the processor, for example, privileged mode or user mode. This can lead to errors or other undesirable consequences. For example, a faulty or malicious firmware device driver corresponding to one peripheral can erroneously (or maliciously) access and damage another peripheral, e.g., by modifying the registers provided in the other peripheral.

Es besteht ein Bedarf an einer verbesserten, kostengünstigen Zugriffssteuerung für Peripherien, die in einem SoC oder einer anderen elektronischen Vorrichtung bereitgestellt werden, um die Peripherien beispielsweise vor fehlerhafter oder bösartiger Firmware zu schützen.There is a need for improved, cost-effective access control for peripherals provided in a SoC or other electronic device to protect the peripherals, for example, from faulty or malicious firmware.

ZUSAMMENFASSUNGSUMMARY

Es werden Systeme und Verfahren zur Steuerung des Zugriffs auf Peripherien in einer elektronischen Vorrichtung (z.B. einem SoC oder einer anderen elektronischen Vorrichtung) bereitgestellt, um beispielsweise Peripherien vor fehlerhaftem oder bösartigem Zugriff zu schützen. Einige Beispiele stellen programmierbare (z.B. aktualisierbare) Zugriffssteuerungsidentifikatoren bereit, die mit entsprechenden Peripherien und entsprechenden Zugriffssteuerungen korrespondieren, um den Zugriff auf entsprechende Peripherien zumindest auf der Grundlage der Zugriffssteuerungsidentifikatoren zu steuern.Systems and methods are provided for controlling access to peripherals in an electronic device (e.g., a SoC or other electronic device), for example to protect peripherals from erroneous or malicious access. Some examples provide programmable (e.g., updatable) access control identifiers corresponding to corresponding peripherals and corresponding access controllers to control access to corresponding peripherals based at least on the access control identifiers.

Ein Zugriffssteuerungsidentifikator kann ein oder mehrere Bits aufweisen, die hier als Zugriffssteuerungsbits bezeichnet werden. Die Zugriffssteuerungsidentifikatoren können verwendet werden, um Peripherien während der Ausführung von Aufgaben im Benutzerraum zu schützen, z.B. Gerätetreiberoperationen, die einer ausgewählten Peripherie zugeordnet sind. Zum Beispiel kann ein Transaktions-Host (z.B. ein Prozessor) zur Ausführung einer entsprechenden Aufgabe (z.B. einer Gerätetreiber-Operation), die mit einer ausgewählten Peripherie zusammenhängt, eine Supervisor-Firmware oder einen anderen Supervisor-Code ausführen, um entsprechende Zugriffssteuerungsidentifikatoren in einem Zugriffssteuerungsregister zu programmieren (z.B. zu setzen oder zu aktualisieren), um (a) der entsprechenden Aufgabe den Zugriff auf die ausgewählte Peripherie zu gestatten und (b) die entsprechende Aufgabe daran zu hindern, auf andere Peripherien zuzugreifen, z.B. um die entsprechende Aufgabe daran zu hindern, irrtümlich oder böswillig auf Register in einer der anderen Peripherien zuzugreifen. In einigen Beispielen kann der Zugriffssteuerungsidentifikator den Transaktions-Host (z.B. den Prozessor) in die Lage versetzen, die jeweiligen Zugriffssteuerungsidentifikatoren zu programmieren, z.B. zu setzen oder zu aktualisieren, um den Zugriff des Supervisor-Codes auf alle Peripherien während einer Operation im privilegierten Modus, z.B. einer Ausführung der entsprechenden Supervisor-Firmware, zu ermöglichen.An access control identifier may include one or more bits, referred to herein as access control bits. The access control identifiers may be used to protect peripherals during execution of user-space tasks, e.g., device driver operations associated with a selected peripheral. For example, to execute a corresponding task (e.g., a device driver operation) associated with a selected peripheral, a transaction host (e.g., a processor) may execute supervisor firmware or other supervisor code to program (e.g., set or update) corresponding access control identifiers in an access control register to (a) allow the corresponding task to access the selected peripheral and (b) prevent the corresponding task from accessing other peripherals, e.g., to prevent the corresponding task from erroneously or maliciously accessing registers in any of the other peripherals. In some examples, the access control identifier may enable the transaction host (e.g., the processor) to program, e.g., set or update, the respective access control identifiers to enable supervisor code access to all peripherals during a privileged mode operation, e.g., execution of the corresponding supervisor firmware.

In einigen Beispielen werden entsprechende Bitmasken für entsprechende Aufgaben (z.B. Gerätetreiberoperationen) gespeichert, wobei die Bitmaske für eine entsprechende Aufgabe entsprechende Zugriffseinstellungen für entsprechende Peripherien zur Durchführung der entsprechenden Aufgabe angibt. Vor der Ausführung einer bestimmten Aufgabe kann der Transaktions-Host auf die der jeweiligen Aufgabe zugeordnete Bitmaske zugreifen und die jeweiligen Zugriffssteuerungsidentifikatoren im Zugriffssteuerungsregister programmieren (z.B. setzen oder aktualisieren). Auf die programmierten Zugriffssteuerungsidentifikatoren können die Zugriffssteuerungsidentifikatoren zugreifen, die den jeweiligen Peripherien zugeordnet sind, um den Zugriff auf die jeweiligen Peripherien während der Ausführung der jeweiligen Aufgabe zu steuern.In some examples, corresponding bit masks are stored for corresponding tasks (e.g., device driver operations), where the bit mask for a corresponding task specifies corresponding access settings for corresponding peripherals to perform the corresponding task. Before executing a particular task, the transaction host may access the bit mask associated with the respective task and program (e.g., set or update) the respective access control identifiers in the access control register. The programmed access control identifiers may be accessed by the access control identifiers associated with the respective peripherals to control access to the respective peripherals during execution of the respective task.

In einigen Anwendungen können die Zugriffssteuerungsidentifikatoren und die Zugriffssteuerung eine komplexe Software überflüssig machen und so kleinere oder weniger teure Prozessoren, z.B. in einem SoC, ermöglichen.In some applications, access control identifiers and access control can eliminate the need for complex software, enabling smaller or less expensive processors, e.g. in a SoC.

Ein Aspekt weist eine elektronische Vorrichtung auf, die einen Transaktions-Host, eine erste Peripherie, eine zweite Peripherie, einen ersten Zugriffssteuerungsidentifikator, der mit der ersten Peripherie verbunden ist, einen zweiten Zugriffssteuerungsidentifikator, der mit der zweiten Peripherie verbunden ist, und ein Zugriffssteuerungsregister, das einen ersten Zugriffssteuerungsidentifikator für die erste Peripherie und einen zweiten Zugriffssteuerungsidentifikator für die zweite Peripherie speichert, beinhaltet. Die erste Zugriffssteuerung empfängt eine Anfrage für den Zugriff auf die erste Peripherie durch den Transaktions-Host, führt eine Zugriffsbestimmung für die erste Peripherie zumindest auf der Grundlage des ersten Zugriffssteuerungsidentifikators für die erste Peripherie durch und ermöglicht oder verhindert den Zugriff des Transaktions-Hosts auf die erste Peripherie auf der Grundlage der Zugriffsbestimmung.One aspect features an electronic device including a transaction host, a first peripheral, a second peripheral, a first access control identifier coupled to the first peripheral, a second access control identifier coupled to the second peripheral, and an access control register storing a first access control identifier for the first peripheral and a second access control identifier for the second peripheral. The first access controller receives a request for access to the first peripheral by the transaction host, makes an access determination for the first peripheral based at least on the first access control identifier for the first peripheral, and allows or prevents the transaction host from accessing the first peripheral based on the access determination.

In einigen Beispielen weist der Transaktions-Host einen Prozessor oder eine Direct Memory Access (DMA) Engine auf.In some examples, the transaction host includes a processor or a direct memory access (DMA) engine.

In einigen Beispielen weist der Transaktions-Host eine Brücke auf, um Anfragen von einem externen, von der elektronischen Vorrichtung getrennten Host zum Zugriff auf die erste Peripherie zu empfangen.In some examples, the transaction host includes a bridge to receive requests from an external host separate from the electronic device to access the first peripheral.

In einigen Beispielen weist der erste Zugriffssteuerungsidentifikator ein oder mehrere erste Zugriffssteuerungsbits auf, und der zweite Zugriffssteuerungsidentifikator weist ein oder mehrere zweite Zugriffssteuerungsbits auf.In some examples, the first access control identifier comprises one or more first access control bits and the second access control identifier comprises one or more second access control bits.

In einigen Beispielen weist die elektronische Vorrichtung eine Firmware auf, die vom Transaktions-Host ausgeführt werden kann, um zumindest einen aus dem ersten Zugriffssteuerungsidentifikator und dem zweiten Zugriffssteuerungsidentifikator auf der Grundlage eines Betriebsmodus des Transaktions-Hosts zu programmieren.In some examples, the electronic device includes firmware executable by the transaction host to program at least one of the first access control identifier and the second access control identifier based on an operating mode of the transaction host.

In einigen Beispielen weist die elektronische Vorrichtung Firmware auf, die vom Transaktions-Host ausgeführt werden kann, um zumindest einen aus dem ersten Zugriffssteuerungsidentifikator für die erste Peripherie und dem zweiten Zugriffssteuerungsidentifikator für die zweite Peripherie dynamisch zu programmieren, und zwar zwischen (a) einer Einstellung, die den Zugriff auf die jeweilige Peripherie durch den Transaktions-Host ermöglicht, und (b) einer Einstellung, die den Zugriff auf die jeweilige Peripherie durch den Transaktions-Host verhindert.In some examples, the electronic device includes firmware executable by the transaction host to dynamically program at least one of the first access control identifier for the first peripheral and the second access control identifier for the second peripheral between (a) a setting that allows access to the respective peripheral by the transaction host and (b) a setting that prevents access to the respective peripheral by the transaction host.

In einigen Beispielen weist die elektronische Vorrichtung Firmware auf, die vom Transaktions-Host ausgeführt werden kann, um die ersten und zweiten Zugriffssteuerungsidentifikatoren zu programmieren, einschließlich (a) für einen privilegierten Modus des Transaktions-Hosts, um sowohl die ersten als auch die zweiten Zugriffssteuerungsidentifikatoren auf eine zugelassene Einstellung zu programmieren, um den Zugriff auf die erste Peripherie und die zweite Peripherie durch den Transaktions-Host zu ermöglichen; (b) für einen ersten Benutzermodusbetrieb des Transaktions-Hosts zur Durchführung von Operationen, die sich auf die erste Peripherie beziehen, um den ersten Zugriffssteuerungsidentifikator auf die Zugriff-ermöglicht-Einstellung zu programmieren, um den Zugriff auf die erste Peripherie zu ermöglichen, und den zweiten Zugriffssteuerungsidentifikator auf eine Zugriff-verhindert-Einstellung zu programmieren, um den Zugriff auf die zweite Peripherie zu verhindern; und (c) für einen zweiten Benutzermodusbetrieb des Transaktions-Hosts zur Durchführung von Operationen, die sich auf die zweite Peripherie beziehen, den ersten Zugriffssteuerungsidentifikator auf die Einstellung „Zugriff verhindert“ zu programmieren, um den Zugriff auf die erste Peripherie zu verhindern, und den zweiten Zugriffssteuerungsidentifikator auf eine Einstellung „Zugriff ermöglicht“ zu programmieren, um den Zugriff auf die zweite Peripherie zu ermöglichen.In some examples, the electronic device includes firmware executeable by the transaction host to program the first and second access control identifiers, including (a) for a privileged mode of the transaction host, to program both the first and second access control identifiers to an allowed setting to allow access to the first peripheral and the second peripheral by the transaction host; (b) for a first user mode operation of the transaction host to perform operations related to the first peripheral, to program the first access control identifier to the access-enabled setting to allow access to the first peripheral and to program the second access control identifier to an access-prevented setting to prevent access to the second peripheral; and (c) for a second user mode operation of the transaction host to perform operations related to the second peripheral, programming the first access control identifier to an “access prevented” setting to prevent access to the first peripheral and programming the second access control identifier to an “access allowed” setting to allow access to the second peripheral.

In einigen Beispielen führt der Zugriffssteuerungsidentifikator eine Zugriffsbestimmung für die erste Peripherie durch, die zumindest auf (a) dem peripheriespezifischen Zugriffssteuerungsidentifikator für die erste Peripherie und (b) einem Betriebsmodussignal basiert, das entweder einen privilegierten Modus des Transaktions-Hosts oder einen Benutzermodus des Transaktions-Hosts angibt.In some examples, the access control identifier makes an access determination for the first peripheral based on at least (a) the peripheral-specific access control identifier for the first peripheral and (b) an operating mode signal indicating either a privileged mode of the transaction host or a user mode of the transaction host.

In einigen Beispielen geben der erste Zugriffssteuerungsidentifikator für die erste Peripherie und der zweite Zugriffssteuerungsidentifikator für die zweite Peripherie jeweils entweder (a) eine eingeschränkte Zugriffseinstellung an, um den Zugriff auf die jeweilige Peripherie nur im privilegierten Modus des Transaktions-Hosts zu ermöglichen, oder (b) eine offene Zugriffseinstellung, um den Zugriff auf die jeweilige Peripherie sowohl im privilegierten Modus des Transaktions-Hosts als auch im Benutzermodus des Transaktions-Hosts zu ermöglichen.In some examples, the first access control identifier for the first peripheral and the second access control identifier for the second peripheral each indicate either (a) a restricted access setting to allow access to the respective peripheral only in the privileged mode of the transaction host, or (b) an open access setting to allow access to the respective peripheral in both the privileged mode of the transaction host and the user mode of the transaction host.

In einigen Beispielen weist die elektronische Vorrichtung eine Firmware auf, die vom Transaktions-Host ausgeführt werden kann, um zumindest einen der ersten und der zweiten Zugriffssteuerungsidentifikatoren zwischen der Einstellung für eingeschränkten Zugriff und der Einstellung für offenen Zugriff zu programmieren.In some examples, the electronic device includes firmware executable by the transaction host to program at least one of the first and second access control identifiers between the restricted access setting and the open access setting.

In einigen Beispielen kann der Zugriffssteuerungsidentifikator (a) feststellen, dass der Zugriff auf die erste Peripherie ermöglicht wird, wenn der erste Zugriffssteuerungsidentifikator für die erste Peripherie die offene Zugriffseinstellung angibt und ein Betriebsmodussignal den privilegierten Modus des Transaktions-Hosts angibt; (b) feststellen, dass der Zugriff auf die erste Peripherie ermöglicht wird, wenn der erste Zugriffssteuerungsidentifikator für die erste Peripherie die offene Zugriffseinstellung angibt und das Betriebsmodussignal den Benutzermodus des Transaktions-Hosts angibt; (c) feststellen, dass der Zugriff auf die erste Peripherie ermöglicht wird, wenn die erste Zugriffssteuerungsidentifikatoren für die erste Peripherie die Einstellung für eingeschränkten Zugriff angibt und das Betriebsmodussignal den privilegierten Modus des Transaktions-Hosts angibt; und (d) feststellen, dass der Zugriff auf die erste Peripherie zu verhindern ist, wenn der erste Zugriffssteuerungsidentifikator für die erste Peripherie die Einstellung für eingeschränkten Zugriff angibt und das Betriebsmodussignal den Benutzermodus des Transaktions-Hosts angibt.In some examples, the access control identifier may (a) determine that access to the first peripheral is permitted when the first access control identifier for the first peripheral indicates the open access setting and an operating mode signal indicates the privileged mode of the transaction host; (b) determine that access to the first peripheral is permitted when the first access control identifier for the first peripheral indicates the open access setting and the operating mode signal indicates the user mode of the transaction host; (c) determine that access to the first peripheral is permitted when the first access control identifier for the first peripheral indicates the restricted access setting and the operating mode signal indicates the privileged mode of the transaction host; and (d) determine that access to the first peripheral is to be prevented if the first access control identifier for the first peripheral indicates the restricted access setting and the operation mode signal indicates the user mode of the transaction host.

In einigen Beispielen ist der Transaktions-Host selektiv in einem privilegierten Modus und einem Benutzermodus betreibbar, und zumindest einer von den ersten und zweiten Zugriffssteuerungsidentifikatoren ist nur in dem privilegierten Modus des Transaktions-Hosts programmierbar.In some examples, the transaction host is selectively operable in a privileged mode and a user mode, and at least one of the first and second access control identifiers is programmable only in the privileged mode of the transaction host.

In einigen Beispielen weist die elektronische Vorrichtung eine Firmware auf, die auf dem Transaktions-Host läuft, wobei das Zulassen oder Verhindern des Zugriffs auf die erste Peripherie das Zulassen oder Verhindern des Zugriffs auf die erste Peripherie durch die auf dem Transaktions-Host laufende Firmware aufweist.In some examples, the electronic device comprises firmware running on the transaction host, wherein allowing or preventing access to the first peripheral comprises allowing or preventing access to the first peripheral by the firmware running on the transaction host.

In einigen Beispielen ist das Zugriffssteuerungsregister in einer zugewiesenen Peripherie der mehreren Peripherien bereitgestellt.In some examples, the access control register is provided in a dedicated peripheral of the plurality of peripherals.

In einigen Beispielen weist die elektronische Vorrichtung einen zusätzlichen Transaktions-Host auf, wobei der erste Zugriffssteuerungsidentifikator und der zweite Zugriffssteuerungsidentifikator dem Transaktions-Host zugeordnet sind, wobei das Zugriffssteuerungsregister einen dritten Zugriffssteuerungsidentifikator für die erste Peripherie speichert, der dem zusätzlichen Transaktions-Host zugeordnet ist, und einen vierten Zugriffssteuerungsidentifikator für die zweite Peripherie, der dem zusätzlichen Transaktions-Host zugeordnet ist. Die Zugriffssteuerung ist ausgebildet, eine zusätzliche Zugriffsanfrage für den Zugriff auf die erste Peripherie durch den zusätzlichen Transaktions-Host zu empfangen; eine zusätzliche Zugriffsbestimmung für die erste Peripherie durchzuführen basierend auf (a) einem Zugriffsanforderungsidentifikator, der den zusätzlichen Transaktions-Host identifiziert, und (b) dem dritten Zugriffssteuerungsidentifikator; und den Zugriff auf die erste Peripherie durch den zusätzlichen Transaktions-Host basierend auf der zusätzlichen Zugriffsbestimmung zu ermöglichen oder zu verhindern.In some examples, the electronic device includes an additional transaction host, the first access control identifier and the second access control identifier associated with the transaction host, the access control register storing a third access control identifier for the first peripheral associated with the additional transaction host and a fourth access control identifier for the second peripheral associated with the additional transaction host. The access controller is configured to receive an additional access request for access to the first peripheral by the additional transaction host; make an additional access determination for the first peripheral based on (a) an access request identifier identifying the additional transaction host and (b) the third access control identifier; and allow or prevent access to the first peripheral by the additional transaction host based on the additional access determination.

In einigen Beispielen ist die elektronische Vorrichtung ein System auf einem Chip (SoC).In some examples, the electronic device is a system on a chip (SoC).

Ein weiterer Aspekt weist ein Verfahren auf, das in einer elektronischen Vorrichtung, die einen Transaktions-Host, eine erste Peripherie und eine zweite Peripherie und ein Zugriffssteuerungsregister beinhaltet, das Speichern (a) eines ersten Zugriffssteuerungsidentifikators für die erste Peripherie und (b) eines zweiten Zugriffssteuerungsidentifikators für die zweite Peripherie in dem Zugriffssteuerungsregister beinhaltet. Eine erste Zugriffssteuerung, die der ersten Peripherie zugeordnet ist, empfängt eine Anfrage zum Zugriff auf die erste Peripherie durch den Transaktions-Host. Die erste Zugriffssteuerung führt eine Zugriffsbestimmung durch, um den Zugriff auf die erste Peripherie zumindest auf der Grundlage der ersten Zugriffssteuerungsidentifikatoren für die erste Peripherie zu ermöglichen oder zu verhindern, und ermöglicht oder verhindert den Zugriff auf die erste Peripherie auf der Grundlage der Zugriffsbestimmung.Another aspect features a method including, in an electronic device including a transaction host, a first peripheral, a second peripheral, and an access control register, storing (a) a first access control identifier for the first peripheral and (b) a second access control identifier for the second peripheral in the access control register. A first access controller associated with the first peripheral receives a request to access the first peripheral by the transaction host. The first access controller makes an access determination to allow or prevent access to the first peripheral based at least on the first access control identifiers for the first peripheral, and allows or prevents access to the first peripheral based on the access determination.

In einigen Beispielen beinhaltet das Verfahren die Ausführung von Firmware durch den Transaktions-Host, um zumindest einen der ersten und zweiten Zugriffssteuerungsidentifikatoren auf der Grundlage eines Betriebsmodus des Transaktions-Hosts zu programmieren.In some examples, the method includes executing firmware, by the transaction host, to program at least one of the first and second access control identifiers based on an operating mode of the transaction host.

In einigen Beispielen beinhaltet das Verfahren die Ausführung von Firmware durch den Transaktions-Host, um zumindest einen aus dem ersten Zugriffssteuerungsidentifikator für die erste Peripherie und dem zweiten Zugriffssteuerungsidentifikator für die zweite Peripherie dynamisch zu programmieren zwischen (a) einer Einstellung, die den Zugriff auf die jeweilige Peripherie durch den Transaktions-Host ermöglicht, und (b) einer Einstellung, die den Zugriff auf die jeweilige Peripherie durch den Transaktions-Host verhindert.In some examples, the method includes executing firmware, by the transaction host, to dynamically program at least one of the first access control identifier for the first peripheral and the second access control identifier for the second peripheral between (a) a setting that allows access to the respective peripheral by the transaction host and (b) a setting that prevents access to the respective peripheral by the transaction host.

In einigen Beispielen beinhaltet das Verfahren das Ausführen von Firmware durch den Transaktions-Host, um die ersten und zweiten Zugriffssteuerungsidentifikatoren zu programmieren, einschließlich (a) für einen privilegierten Modus des Transaktions-Hosts das Setzen sowohl der ersten als auch der zweiten Zugriffssteuerungsidentifikatoren auf eine Einstellung „Zugriff zugelassen“, die den Zugriff auf sowohl die erste Peripherie als auch die zweite Peripherie durch den Transaktions-Host ermöglicht; (b) für einen ersten Benutzermodusbetrieb des Transaktions-Hosts zum Durchführen von Operationen, die sich auf die erste Peripherie beziehen, Setzen des ersten Zugriffssteuerungsidentifikators auf die Einstellung „Zugriff ermöglicht“ und Setzen des zweiten Zugriffssteuerungsidentifikators auf eine Einstellung „Zugriff verhindert“, die den Zugriff auf die zweite Peripherie verhindert; und (c) für einen zweiten Benutzermodusbetrieb des Transaktions-Hosts zum Durchführen von Operationen, die sich auf die zweite Peripherie beziehen, Setzen des ersten Zugriffssteuerungsidentifikators auf die Einstellung „Zugriff verhindert“ und Setzen des zweiten Zugriffssteuerungsidentifikators auf eine Einstellung „Zugriff ermöglicht“.In some examples, the method includes executing firmware, by the transaction host, to program the first and second access control identifiers, including (a) for a privileged mode of the transaction host, setting both the first and second access control identifiers to an "access allowed" setting that allows access to both the first peripheral and the second peripheral by the transaction host; (b) for a first user mode operation of the transaction host to perform operations related to the first peripheral, setting the first access control identifier to the "access allowed" setting and setting the second access control identifier to an "access prevented" setting that prevents access to the second peripheral; and (c) for a second user mode operation of the transaction host to perform operations related to the second peripheral, setting the first access control identifier to an access prevented setting and setting the second access control identifier to an access allowed setting.

In einigen Beispielen beinhaltet das Verfahren die Durchführung der Zugriffsbestimmung durch den ersten Zugriffssteuerungsidentifikator, um den Zugriff auf die erste Peripherie zumindest auf der Grundlage (a) des ersten Zugriffssteuerungsidentifikators für die erste Peripherie und (b) eines Betriebsmodussignals, das entweder einen privilegierten Modus des Transaktions-Hosts oder einen Benutzermodus des Transaktions-Hosts angibt, zu ermöglichen oder zu verhindern.In some examples, the method includes making the access determination by the first access control identifier to allow or prevent access to the first peripheral based at least on (a) the first access control identifier for the first peripheral and (b) an operating mode signal indicating either a privileged mode of the transaction host or a user mode of the transaction host.

In einigen Beispielen geben der erste Zugriffssteuerungsidentifikator für die erste Peripherie und der zweite Zugriffssteuerungsidentifikator für die zweite Peripherie entweder (a) eine eingeschränkte Zugriffseinstellung an, die den Zugriff auf das jeweilige Peripheriegerät im Benutzermodus des Transaktions-Hosts verhindert, oder (b) eine offene Zugriffseinstellung, die den Zugriff auf das jeweilige Peripheriegerät sowohl im privilegierten Modus des Transaktions-Hosts als auch im Benutzermodus des Transaktions-Hosts ermöglicht.In some examples, the first access control identifier for the first peripheral and the second access control identifier for the second peripheral indicate either (a) a restricted access setting that prevents access to the respective peripheral in user mode of the transaction host, or (b) an open access setting that allows access to the respective peripheral in both privileged mode of the transaction host and user mode of the transaction host.

In einigen Beispielen beinhaltet das Verfahren die Ausführung von Firmware durch den Transaktions-Host, um zumindest einen der ersten und zweiten Zugriffssteuerungsidentifikatoren dynamisch zwischen der Einstellung für eingeschränkten Zugriff und der Einstellung für offenen Zugriff zu programmieren.In some examples, the method includes executing firmware, by the transaction host, to dynamically program at least one of the first and second access control identifiers between the restricted access setting and the open access setting.

In einigen Beispielen weist die Durchführung der Zugriffsbestimmung, um den Zugriff auf die erste Peripherie zu ermöglichen oder zu verhindern, auf: (a) Ermöglichen des Zugriffs auf die erste Peripherie, wenn der peripheriespezifische Zugriffssteuerungsidentifikator für die erste Peripherie die offene Zugriffseinstellung angibt, und das Betriebsmodussignal den privilegierten Modus des Transaktions-Hosts angibt; (b) Ermöglichen des Zugriffs auf die erste Peripherie, wenn der erste Zugriffssteuerungsidentifikator für die erste Peripherie die offene Zugriffseinstellung angibt, und das Betriebsmodussignal den Benutzermodus des Transaktions-Hosts angibt; (c) Ermöglichen des Zugriffs auf die erste Peripherie, wenn der erste Zugriffssteuerungsidentifikator für die erste Peripherie die eingeschränkte Zugriffseinstellung angibt, und das Betriebsmodussignal den privilegierten Modus des Transaktions-Hosts angibt; und (d) Verhindern des Zugriffs auf die erste Peripherie, wenn der erste Zugriffssteuerungsidentifikator für die erste Peripherie die eingeschränkte Zugriffseinstellung angibt, und das Betriebsmodussignal den Benutzermodus des Transaktions-Hosts angibt.In some examples, making the access determination to allow or prevent access to the first peripheral comprises: (a) allowing access to the first peripheral if the peripheral-specific access control identifier for the first peripheral indicates the open access setting and the operating mode signal indicates the privileged mode of the transaction host; (b) allowing access to the first peripheral if the first access control identifier for the first peripheral indicates the open access setting and the operating mode signal indicates the user mode of the transaction host; (c) allowing access to the first peripheral if the first access control identifier for the first peripheral indicates the restricted access setting and the operating mode signal indicates the privileged mode of the transaction host; and (d) preventing access to the first peripheral if the first access control identifier for the first peripheral indicates the restricted access setting and the operating mode signal indicates the user mode of the transaction host.

In einigen Beispielen beinhaltet das Verfahren das Zulassen der Programmierung des ersten Zugriffssteuerungsidentifikators in einem privilegierten Modus des Transaktions-Hosts und das Verhindern der Programmierung des ersten Zugriffssteuerungsidentifikators in einem Benutzermodus des Transaktions-Hosts.In some examples, the method includes allowing programming of the first access control identifier in a privileged mode of the transaction host and preventing programming of the first access control identifier in a user mode of the transaction host.

Ein weiterer Aspekt weist ein Verfahren auf, das in einer elektronischen Vorrichtung, die einen Transaktions-Host, eine erste Peripherie und eine zweite Peripherie und ein Zugriffssteuerungsregister beinhaltet, das Speichern eines ersten Zugriffssteuerungsidentifikators für die erste Peripherie und eines zweiten Zugriffssteuerungsidentifikators für die zweite Peripherie in dem Zugriffssteuerungsregister beinhaltet. Der Transaktions-Host setzt den ersten Zugriffssteuerungsidentifikator und den zweiten Zugriffssteuerungsidentifikator, um den Zugriff auf die erste Peripherie bzw. die zweite Peripherie zu ermöglichen, und der Transaktions-Host führt zu einem ersten Zeitpunkt eine Operation im privilegierten Modus durch. Anschließend setzt der Transaktions-Host (a) den ersten Zugriffssteuerungsidentifikator, um den Zugriff auf die erste Peripherie durch den Transaktions-Host zu ermöglichen, und (b) den zweiten Zugriffssteuerungsidentifikator, um den Zugriff auf die zweite Peripherie durch den Transaktions-Host zu verhindern, und führt zu einem zweiten Zeitpunkt eine Operation im Benutzermodus in Bezug auf die erste Peripherie durch.Another aspect features a method including, in an electronic device including a transaction host, a first peripheral, a second peripheral, and an access control register, storing a first access control identifier for the first peripheral and a second access control identifier for the second peripheral in the access control register. The transaction host sets the first access control identifier and the second access control identifier to enable access to the first peripheral and the second peripheral, respectively, and the transaction host performs a privileged mode operation at a first time. The transaction host then sets (a) the first access control identifier to allow access to the first peripheral by the transaction host and (b) the second access control identifier to prevent access to the second peripheral by the transaction host, and performs a user mode operation with respect to the first peripheral at a second time.

In einigen Beispielen setzt der Transaktions-Host (a) den ersten Zugriffssteuerungsidentifikator, um den Zugriff auf die erste Peripherie durch den Transaktions-Host zu verhindern, und (b) den zweiten Zugriffssteuerungsidentifikator, um den Zugriff auf die zweite Peripherie durch den Transaktions-Host zu ermöglichen, und führt zu einem dritten Zeitpunkt eine Benutzermodus-Operation in Bezug auf die zweite Peripherie durch.In some examples, the transaction host sets (a) the first access control identifier to prevent access to the first peripheral by the transaction host and (b) the second access control identifier to allow access to the second peripheral by the transaction host, and performs a user mode operation with respect to the second peripheral at a third time.

Ein weiterer Aspekt weist eine elektronische Vorrichtung auf, die eine erste Peripherie, eine zweite Peripherie, einen nicht-transitorischen Speicher, ein Zugriffssteuerungsregister, einen Transaktions-Host, eine erste Zugriffssteuerung und eine zweite Zugriffssteuerung beinhaltet. Der nicht transitorische Speicher speichert: (a) Supervisor-Firmware, die Befehle zur Verwaltung von Zugriffssteuerungsidentifikatoren aufweist, (b) einen computerlesbaren Code, der eine erste Aufgabe in Bezug auf die erste Peripherie beinhaltet, und (c) eine erste Bitmaske, die mit der ersten Aufgabe korrespondiert, wobei die erste Bitmaske die jeweiligen Zugriffseinstellungen für die erste Peripherie und die zweite Peripherie zur Durchführung der ersten Aufgabe anzeigt. Das Zugriffssteuerungsregister weist einen ersten Zugriffssteuerungsidentifikator für die erste Peripherie und einen zweiten Zugriffssteuerungsidentifikator für die zweite Peripherie auf. Der Transaktions-Host ist ausgebildet, um die Befehle zur Verwaltung der Zugriffssteuerungsidentifikatoren in der Supervisor-Firmware auszuführen, um die ersten und zweiten Zugriffssteuerungsidentifikatoren im Zugriffssteuerungsregister auf der Grundlage der ersten Bitmaske zu programmieren, die mit der ersten Aufgabe korrespondiert, und um nach der Programmierung der ersten und zweiten Zugriffssteuerungsidentifikatoren im Zugriffssteuerungsregister auf der Grundlage der ersten Bitmaske die erste Aufgabe in Bezug auf die erste Peripherie auszuführen. Der erste Zugriffssteuerungsidentifikator ist ausgebildet zur Steuerung des Zugriffs auf die erste Peripherie zumindest auf der Grundlage des ersten Zugriffssteuerungsidentifikators im Zugriffssteuerungsregister, der auf der Grundlage der ersten Bitmaske programmiert wurde, und der zweite Zugriffssteuerungsidentifikator ist ausgebildet zur Steuerung des Zugriffs auf die zweite Peripherie zumindest auf der Grundlage des zweiten Zugriffssteuerungsidentifikators im Zugriffssteuerungsregister, der auf der Grundlage der ersten Bitmaske programmiert wurde.Another aspect features an electronic device including a first peripheral, a second peripheral, a non-transitory memory, an access control register, a transaction host, a first access controller, and a second access controller. The non-transitory memory stores: (a) supervisor firmware including instructions for managing access control identifiers, (b) computer readable code including a first task related to the first peripheral, and (c) a first bit mask corresponding to the first task, the first bit mask indicating respective access settings for the first peripheral and the second peripheral for performing the first task. The access control register includes a first access control identifier for the first peripheral and a second access control identifier for the second peripheral. The transaction host is configured to execute the instructions for managing the access control identifiers in the supervisor firmware, to program the first and second access control identifiers in the access control register based on the first bit mask corresponding to the first task, and to execute the first task with respect to the first peripheral after programming the first and second access control identifiers in the access control register based on the first bit mask. The first access control identifier is configured to control access to the first peripheral at least based on the first access control identifier in the access control register programmed based on the first bit mask, and the second access control identifier is configured to control access to the second peripheral at least based on the second access control identifier in the access control register programmed based on the first bit mask.

In einigen Beispielen ist die elektronische Vorrichtung ein System auf einem Chip (SoC).In some examples, the electronic device is a system on a chip (SoC).

In einigen Beispielen weist der Transaktions-Host einen Prozessor oder eine Direct Memory Access (DMA) Engine auf.In some examples, the transaction host includes a processor or a direct memory access (DMA) engine.

In einigen Beispielen sind die erste Bitmaske und die zweite Bitmaske in einer Bitmasken-Datenstruktur in dem nicht-transitorischen Speicher gespeichert.In some examples, the first bit mask and the second bit mask are stored in a bit mask data structure in the non-transitory memory.

In einigen Beispielen weist die erste Bitmaske ein oder mehrere erste Bitmaskenbits auf, die eine Zugriffseinstellung für die erste Peripherie zur Durchführung der ersten Aufgabe angeben, und ein oder mehrere zweite Bitmaskenbits, die eine Zugriffseinstellung für die zweite Peripherie zur Durchführung der ersten Aufgabe angeben, und der erste Zugriffssteuerungsidentifikator beinhaltet ein oder mehrere erste Zugriffssteuerungsbits und der zweite Zugriffssteuerungsidentifikator beinhaltet ein oder mehrere zweite erste Zugriffssteuerungsbits.In some examples, the first bit mask includes one or more first bit mask bits indicating an access setting for the first peripheral to perform the first task and one or more second bit mask bits indicating an access setting for the second peripheral to perform the first task, and the first access control identifier includes one or more first access control bits and the second access control identifier includes one or more second first access control bits.

In einigen Beispielen weist der computerlesbare Code eine zweite Aufgabe auf, die sich auf die zweite Peripherie bezieht; der nicht transitorische Speicher speichert eine zweite Bitmaske, die mit der zweiten Aufgabe korrespondiert, wobei die zweite Bitmaske die jeweiligen Zugriffseinstellungen für die erste Peripherie und die zweite Peripherie zur Durchführung der zweiten Aufgabe angibt; und der Transaktions-Host ist ausgebildet, um (a) die Zugriffssteuerungsidentifikatoren-Verwaltungsbefehle in der Supervisor-Firmware auszuführen, um die ersten und zweiten Zugriffssteuerungsidentifikatoren in dem Zugriffssteuerungsregister auf der Grundlage der zweiten Bitmaske zu programmieren, die der zweiten Aufgabe zugeordnet ist, und (b) nach dem Programmieren der ersten und zweiten Zugriffssteuerungsidentifikatoren in dem Zugriffssteuerungsregister auf der Grundlage der zweiten Bitmaske die zweite Aufgabe auszuführen, die sich auf die zweite Peripherie bezieht.In some examples, the computer readable code includes a second task related to the second peripheral; the non-transitory memory stores a second bit mask corresponding to the second task, the second bit mask indicating the respective access settings for the first peripheral and the second peripheral to perform the second task; and the transaction host is configured to (a) execute the access control identifier management instructions in the supervisor firmware to maintain the first and second access control identifiers in the access control register based on the second bit mask associated with the second task, and (b) after programming the first and second access control identifiers in the access control register, execute the second task related to the second peripheral based on the second bit mask.

In einigen Beispielen weist der nicht transitorische Speicher einen nicht privilegierten Teil auf, der den computerlesbaren Code einschließlich der ersten Aufgabe und der zweiten Aufgabe speichert, und einen privilegierten Teil, der die Supervisor-Firmware einschließlich der Befehle zur Verwaltung der Zugriffssteuerungsidentifikatoren und der ersten Bitmaske entsprechend der ersten Aufgabe speichert.In some examples, the non-transitory memory includes a non-privileged portion storing the computer readable code including the first task and the second task, and a privileged portion storing the supervisor firmware including instructions for managing the access control identifiers and the first bit mask corresponding to the first task.

In einigen Beispielen empfängt die Zugriffssteuerung eine Zugriffsanfrage vom Transaktions-Host für den Zugriff auf die erste Peripherie zur Ausführung der ersten Aufgabe; führt eine Zugriffsbestimmung für die erste Peripherie zumindest auf der Grundlage des ersten Zugriffssteuerungsidentifikators durch, der auf der Basis der ersten Bitmaske programmiert wurde, die der ersten Aufgabe zugeordnet ist; und ermöglicht oder verhindert den Zugriff des Transaktions-Hosts auf die erste Peripherie auf der Grundlage der Zugriffsbestimmung.In some examples, the access controller receives an access request from the transaction host to access the first peripheral to perform the first task; makes an access determination for the first peripheral based at least on the first access control identifier programmed based on the first bit mask associated with the first task; and allows or prevents the transaction host from accessing the first peripheral based on the access determination.

In einigen Beispielen führt der erste Zugriffssteuerungsidentifikator die Zugriffsbestimmung für die erste Peripherie zumindest auf der Grundlage (a) des ersten Zugriffssteuerungsidentifikators, der von dem Transaktions-Host auf der Grundlage der ersten Bitmaske entsprechend der ersten Aufgabe programmiert wurde, und (b) eines Betriebsmodussignals, das entweder einen privilegierten Modus des Transaktions-Hosts oder einen Benutzermodus des Transaktions-Hosts angibt, durch.In some examples, the first access control identifier makes the access determination for the first peripheral based at least on (a) the first access control identifier programmed by the transaction host based on the first bit mask corresponding to the first task and (b) an operating mode signal indicating either a privileged mode of the transaction host or a user mode of the transaction host.

In einigen Beispielen gibt die erste Bitmaske, die der ersten Aufgabe zugeordnet ist, an, dass (a) der ersten Aufgabe eine Peripherie-Zugriffsberechtigung für die erste Peripherie zugeordnet ist und (b) der ersten Aufgabe keine Peripherie-Zugriffsberechtigung für die zweite Peripherie zugeordnet ist.In some examples, the first bit mask associated with the first task indicates that (a) the first task is associated with a peripheral access permission for the first peripheral and (b) the first task is not associated with a peripheral access permission for the second peripheral.

In einigen Beispielen gibt die erste Bitmaske, die mit der ersten Aufgabe korrespondiert, an, dass (a) der ersten Aufgabe eine Peripherie-Zugriffsberechtigung auf die erste Peripherie zugeordnet ist und (b) der ersten Aufgabe keine Peripherie-Zugriffsberechtigung auf die zweite Peripherie zugeordnet ist. Die Befehle zur Verwaltung der Zugriffssteuerungsidentifikatoren, um die ersten und zweiten Zugriffssteuerungsidentifikatoren in dem Zugriffssteuerungsregister auf der Grundlage der ersten Bitmaske vor der Ausführung der ersten Aufgabe zu programmieren, beinhalten (a) die Programmierung des ersten Zugriffssteuerungsidentifikators auf einen Wert, der den Zugriff auf die erste Peripherie während der Ausführung der ersten Aufgabe ermöglicht, und (b) die Programmierung des zweiten Zugriffssteuerungsidentifikators auf einen Wert, der den Zugriff auf die zweite Peripherie während der Ausführung der ersten Aufgabe verhindert. Der erste Zugriffssteuerungsidentifikator ist ausgebildet, um den Zugriff auf die erste Peripherie während der Ausführung der ersten Aufgabe auf der Grundlage des Zugriffsgenehmigungswertes des ersten Zugriffssteuerungsidentifikators zu ermöglichen, und der zweite Zugriffssteuerungsidentifikator, um den Zugriff auf die zweite Peripherie während der Ausführung der ersten Aufgabe auf der Grundlage des Zugriffsverhinderungswertes des zweiten Zugriffssteuerungsidentifikators zu verhindern.In some examples, the first bit mask corresponding to the first task indicates that (a) the first task is associated with a peripheral access permission to the first peripheral and (b) the first task is not associated with a peripheral access permission to the second peripheral. The access control identifier management instructions to program the first and second access control identifiers in the access control register based on the first bit mask prior to execution of the first task include (a) programming the first access control identifier to a value that allows access to the first peripheral during execution of the first task and (b) programming the second access control identifier to a value that prevents access to the second peripheral during execution of the first task. The first access control identifier is configured to allow access to the first peripheral during execution of the first task based on the access permission value of the first access control identifier, and the second access control identifier is configured to prevent access to the second peripheral during execution of the first task based on the access prevention value of the second access control identifier.

In einigen Beispielen arbeitet der Transaktions-Host selektiv in einem privilegierten Modus und einem Benutzermodus; und die erste Bitmaske, die mit der ersten Aufgabe korrespondiert, gibt an, dass (a) der ersten Aufgabe eine Peripherie-Zugriffsberechtigung auf die erste Peripherie zugeordnet ist und (b) der ersten Aufgabe keine Peripherie-Zugriffsberechtigung auf die zweite Peripherie zugeordnet ist. Die Zugriffssteuerungsidentifikatoren-Verwaltungsbefehle zum Programmieren der ersten und zweiten Zugriffssteuerungsidentifikatoren in dem Zugriffssteuerungsregister auf der Grundlage der ersten Bitmaske vor der Ausführung der ersten Aufgabe beinhalten (a) das Programmieren des ersten Zugriffssteuerungsidentifikators auf eine Einstellung mit offenem Zugriff für die erste Peripherie, die den Zugriff auf die erste Peripherie sowohl im privilegierten Modus als auch im Benutzermodus des Transaktions-Hosts ermöglicht; und (b) das Programmieren des zweiten Zugriffssteuerungsidentifikators auf einen Wert mit eingeschränktem Zugriff für die zweite Peripherie, der den Zugriff auf die zweite Peripherie im privilegierten Modus, aber nicht im Benutzermodus des Transaktions-Hosts ermöglicht.In some examples, the transaction host selectively operates in a privileged mode and a user mode; and the first bit mask corresponding to the first task indicates that (a) the first task is associated with a peripheral access permission to the first peripheral and (b) the first task is not associated with a peripheral access permission to the second peripheral. The access control identifier management instructions for programming the first and second access control identifiers in the access control register based on the first bit mask prior to execution of the first task include (a) programming the first access control identifier to an open access setting for the first peripheral that enables access to the first peripheral in both the privileged mode and the user mode of the transaction host; and (b) programming the second access control identifier to a restricted access value for the second peripheral that enables access to the second peripheral in privileged mode but not in user mode of the transaction host.

In einigen Beispielen wird das Zugriffssteuerungsregister in einer dritten Peripherie bereitgestellt.In some examples, the access control register is provided in a third peripheral.

Ein weiterer Aspekt stellt ein Verfahren bereit. Das Verfahren beinhaltet in einer elektronischen Vorrichtung, die einen Transaktions-Host, ein erstes Peripheriegerät, ein zweites Peripheriegerät und ein Zugriffssteuerungsregister aufweist, das einen ersten Zugriffssteuerungsidentifikator für die erste Peripherie und einen zweiten Zugriffssteuerungsidentifikator für die zweite Peripherie beinhaltet, das Speichern (a) eines computerlesbaren Codes, der eine erste Aufgabe in Bezug auf die erste Peripherie beinhaltet, und (b) einer ersten Bitmaske, die mit der ersten Aufgabe korrespondiert, wobei die erste Bitmaske die jeweiligen Zugriffseinstellungen für die erste Peripherie und die zweite Peripherie zur Durchführung der ersten Aufgabe angibt. Der Transaktions-Host führt vor der Ausführung der ersten Aufgabe Befehle zur Verwaltung der Zugriffssteuerungsidentifikatoren aus, um die ersten und zweiten Zugriffssteuerungsidentifikatoren in dem Zugriffssteuerungsregister auf der Grundlage der ersten Bitmaske zu programmieren, die der ersten Aufgabe zugeordnet ist. Nach der Programmierung der ersten und zweiten Zugriffssteuerungsidentifikatoren im Zugriffssteuerungsregister auf der Grundlage der ersten Bitmaske führt der Transaktions-Host die erste Aufgabe in Bezug auf die erste Peripherie aus. Während der Ausführung der ersten Aufgabe: ein dem ersten Peripheriegerät zugeordneter erster Zugriffssteuerungsidentifikator, der den Zugriff auf die erste Peripherie zumindest auf der Grundlage des ersten Zugriffssteuerungsidentifikators im Zugriffssteuerungsregister steuert, der auf der Grundlage der ersten Bitmaske programmiert wurde, und ein dem zweiten Peripheriegerät zugeordneter zweiter Zugriffssteuerungsidentifikator steuert den Zugriff auf die zweite Peripherie zumindest auf der Grundlage des zweiten Zugriffssteuerungsidentifikators im Zugriffssteuerungsregister, der auf der Grundlage der ersten Bitmaske programmiert wurde.Another aspect provides a method. The method includes in an electronic device having a transaction host, a first peripheral, a second peripheral, and an access control register that stores a first access control identifier for the first peripheral and a second access control identifier for the second peripheral, storing (a) computer readable code including a first task related to the first peripheral, and (b) a first bit mask corresponding to the first task, the first bit mask specifying respective access settings for the first peripheral and the second peripheral for performing the first task. The transaction host executes access control identifier management instructions prior to executing the first task to program the first and second access control identifiers in the access control register based on the first bit mask associated with the first task. After programming the first and second access control identifiers in the access control register based on the first bit mask, the transaction host executes the first task related to the first peripheral. During execution of the first task: a first access control identifier associated with the first peripheral device that controls access to the first peripheral device based at least on the first access control identifier in the access control register programmed based on the first bit mask, and a second access control identifier associated with the second peripheral device that controls access to the second peripheral device based at least on the second access control identifier in the access control register programmed based on the first bit mask.

In einigen Beispielen weist das Verfahren das Speichern eines computerlesbaren Codes auf, der eine zweite Aufgabe in Bezug auf die zweite Peripherie beinhaltet, und das Speichern einer zweiten Bitmaske, die mit der zweiten Aufgabe korrespondiert, wobei die zweite Bitmaske die jeweiligen Zugriffseinstellungen für die erste Peripherie und die zweite Peripherie zur Durchführung der zweiten Aufgabe angibt. Der Transaktions-Host führt vor der Ausführung der zweiten Aufgabe die Befehle zur Verwaltung der Zugriffssteuerungsidentifikatoren aus, um die ersten und zweiten Zugriffssteuerungsidentifikatoren in dem Zugriffssteuerungsregister auf der Grundlage der zweiten Bitmaske zu programmieren, die der zweiten Aufgabe zugeordnet ist. Nach der Programmierung der ersten und zweiten Zugriffssteuerungsidentifikatoren im Zugriffssteuerungsregister auf der Grundlage der zweiten Bitmaske führt der Transaktions-Host die zweite Aufgabe aus, die sich auf die zweite Peripherie bezieht. Während der Ausführung der zweiten Aufgabe: der erste Zugriffssteuerungsidentifikator, der der ersten Peripherie zugeordnet ist, steuert den Zugriff auf die erste Peripherie zumindest auf der Grundlage des ersten Zugriffssteuerungsidentifikators im Zugriffssteuerungsregister, der auf der Grundlage der zweiten Bitmaske programmiert wurde, und der zweite Zugriffssteuerungsidentifikator, der der zweiten Peripherie zugeordnet ist, steuert den Zugriff auf die zweite Peripherie zumindest auf der Grundlage des zweiten Zugriffssteuerungsidentifikators im Zugriffssteuerungsregister, der auf der Grundlage der zweiten Bitmaske programmiert wurde.In some examples, the method includes storing computer readable code including a second task related to the second peripheral and storing a second bit mask corresponding to the second task, the second bit mask indicating respective access settings for the first peripheral and the second peripheral to perform the second task. The transaction host, prior to executing the second task, executes the access control identifier management instructions to program the first and second access control identifiers in the access control register based on the second bit mask associated with the second task. After programming the first and second access control identifiers in the access control register based on the second bit mask, the transaction host executes the second task related to the second peripheral. During execution of the second task: the first access control identifier associated with the first peripheral controls access to the first peripheral based at least on the first access control identifier in the access control register programmed based on the second bit mask, and the second access control identifier associated with the second peripheral controls access to the second peripheral based at least on the second access control identifier in the access control register programmed based on the second bit mask.

In einigen Beispielen weist die erste Zugriffssteuerung, die den Zugriff auf die erste Peripherie zumindest auf der Grundlage des ersten Zugriffssteuerungsidentifikators, der auf der Grundlage der ersten Bitmaske programmiert ist, steuert, auf: Empfangen einer Zugriffsanfrage vom Transaktions-Host für den Zugriff auf die erste Peripherie zur Ausführung der ersten Aufgabe, Durchführen einer Zugriffsbestimmung für die erste Peripherie zumindest auf der Grundlage des ersten Zugriffssteuerungsidentifikators, der auf der Grundlage der ersten Bitmaske programmiert ist, und Zulassen oder Verhindern des Zugriffs des Transaktions-Hosts auf die erste Peripherie auf der Grundlage der Zugriffsbestimmung.In some examples, the first access controller controlling access to the first peripheral based at least on the first access control identifier programmed based on the first bit mask comprises: receiving an access request from the transaction host to access the first peripheral to perform the first task, making an access determination for the first peripheral based at least on the first access control identifier programmed based on the first bit mask, and allowing or preventing the transaction host from accessing the first peripheral based on the access determination.

In einigen Beispielen beinhaltet das Verfahren, dass der erste Zugriffssteuerungsidentifikator die Zugriffsbestimmung für die erste Peripherie zumindest auf der Grundlage (a) des ersten Zugriffssteuerungsidentifikators, der auf der Basis der ersten Bitmaske programmiert wurde, und (b) eines Betriebsmodussignals, das entweder einen privilegierten Modus des Transaktions-Hosts oder einen Benutzermodus des Transaktions-Hosts angibt, durchführt.In some examples, the method includes the first access control identifier making the access determination for the first peripheral based at least on (a) the first access control identifier programmed based on the first bit mask and (b) an operating mode signal indicating either a privileged mode of the transaction host or a user mode of the transaction host.

In einigen Beispielen gibt die erste Bitmaske, die mit der ersten Aufgabe korrespondiert, an, dass (a) der ersten Aufgabe eine Peripherie-Zugriffsberechtigung für die erste Peripherie zugeordnet ist und (b) der ersten Aufgabe keine Peripherie-Zugriffsberechtigung für die zweite Peripherie zugeordnet ist. Die Ausführung der Befehle zur Verwaltung der Zugriffssteuerungsidentifikatoren, um die ersten und zweiten Zugriffssteuerungsidentifikatoren im Zugriffssteuerungsregister auf der Grundlage der ersten Bitmaske, die der ersten Aufgabe zugeordnet ist, zu programmieren, weist auf (a) die Programmierung des ersten Zugriffssteuerungsidentifikators auf einen Wert, der den Zugriff auf die erste Peripherie während der Ausführung der ersten Aufgabe ermöglicht, und (b) die Programmierung des zweiten Zugriffssteuerungsidentifikators auf einen Wert, der den Zugriff auf die zweite Peripherie während der Ausführung der ersten Aufgabe verhindert. Während der Ausführung der ersten Aufgabe: der erste Zugriffssteuerungsidentifikator, der der ersten Peripherie zugeordnet ist, ermöglicht den Zugriff auf die erste Peripherie basierend auf dem Zugriffsgenehmigungswert des ersten Zugriffssteuerungsidentifikators, und der zweite Zugriffssteuerungsidentifikator, der der zweiten Peripherie zugeordnet ist, verhindert den Zugriff auf die zweite Peripherie basierend auf dem Zugriffsverhinderungswert des zweiten Zugriffssteuerungsidentifikators.In some examples, the first bit mask corresponding to the first task indicates that (a) the first task is associated with a peripheral access permission for the first peripheral and (b) the first task is not associated with a peripheral access permission for the second peripheral. Executing the access control identifier management instructions to program the first and second access control identifiers in the access control register based on the first bit mask associated with the first task includes (a) programming the first access control identifier to a value that allows access to the first peripheral during execution of the first task and (b) programming the second access control identifier to a value that prevents access to the second peripheral during execution of the first task. During execution of the first task: the first access control identifier associated with the first peripheral allows access to the first peripheral based on the access permission value of the first access control identifier, and the second access control identifier associated with the second peripheral peripheral prevents access to the second peripheral based on the access prevention value of the second access control identifier.

In einigen Beispielen arbeitet der Transaktions-Host selektiv in einem privilegierten Modus und einem Benutzermodus, und die erste Bitmaske, die mit der ersten Aufgabe korrespondiert, gibt an, dass (a) der ersten Aufgabe eine Peripherie-Zugriffsberechtigung auf die erste Peripherie zugeordnet ist und (b) der ersten Aufgabe keine Peripherie-Zugriffsberechtigung auf die zweite Peripherie zugeordnet ist. Die Ausführung der Zugriffssteuerungsidentifikatoren-Verwaltungsbefehle zum Programmieren der ersten und zweiten Zugriffssteuerungsidentifikatoren im Zugriffssteuerungsregister auf der Grundlage der ersten Bitmaske, die der ersten Aufgabe zugeordnet ist, weist auf: (a) Programmieren des ersten Zugriffssteuerungsidentifikators auf einen Wert mit offenem Zugriff für die erste Peripherie, der den Zugriff auf die erste Peripherie sowohl im privilegierten Modus als auch im Benutzermodus des Transaktions-Hosts ermöglicht, und (b) Programmieren des zweiten Zugriffssteuerungsidentifikators auf einen Wert mit eingeschränktem Zugriff für die zweite Peripherie, der den Zugriff auf die zweite Peripherie im privilegierten Modus, aber nicht im Benutzermodus des Transaktions-Hosts ermöglicht. Während der Ausführung der ersten Aufgabe: der erste Zugriffssteuerungsidentifikator, der der ersten Peripherie zugeordnet ist, ermöglicht den Zugriff auf die erste Peripherie sowohl im privilegierten Modus als auch im Benutzermodus des Transaktions-Hosts, basierend auf dem Zugriffssteuerungsidentifikator, und der zweite Zugriffssteuerungsidentifikator, der der zweiten Peripherie zugeordnet ist, verhindert den Zugriff auf die zweite Peripherie im privilegierten Modus des Transaktions-Hosts, aber nicht im Benutzermodus des Transaktions-Hosts, basierend auf dem eingeschränkten Zugriffswert des zweiten Zugriffssteuerungsidentifikators.In some examples, the transaction host selectively operates in a privileged mode and a user mode, and the first bit mask corresponding to the first task indicates that (a) the first task is associated with a peripheral access permission to the first peripheral and (b) the first task is not associated with a peripheral access permission to the second peripheral. Executing the access control identifier management instructions to program the first and second access control identifiers in the access control register based on the first bit mask associated with the first task comprises: (a) programming the first access control identifier to an open access value for the first peripheral that allows access to the first peripheral in both privileged mode and user mode of the transaction host, and (b) programming the second access control identifier to a restricted access value for the second peripheral that allows access to the second peripheral in privileged mode but not in user mode of the transaction host. During execution of the first task: the first access control identifier associated with the first peripheral allows access to the first peripheral in both the privileged mode and the user mode of the transaction host based on the access control identifier, and the second access control identifier associated with the second peripheral prevents access to the second peripheral in the privileged mode of the transaction host but not in the user mode of the transaction host based on the restricted access value of the second access control identifier.

KURZE BESCHREIBUNG DER ZEICHNUNGENSHORT DESCRIPTION OF THE DRAWINGS

Beispielhafte Aspekte der vorliegenden Offenbarung werden im Folgenden in Verbindung mit den Figuren beschrieben, in denen:

  • 1 eine beispielhafte elektronische Vorrichtung (z.B. einen SoC) gemäß einem Beispiel veranschaulicht, die Zugriffssteuerungsidentifikatoren verwendet, um den Zugriff auf Peripherien zu steuern;
  • 2 zusätzliche Aspekte der beispielhaften elektronischen Vorrichtung aus 1 gemäß einem Beispiel veranschaulicht;
  • 3 gemäß einem Beispiel eine andere elektronische Vorrichtung veranschaulicht, die Zugriffssteuerungsidentifikatoren verwendet, um den Zugriff auf Peripherien zu steuern;
  • Die 4A-4D Schaltpläne von beispielhaften logischen Schaltungen zeigen, die gemäß einigen Beispielen in den jeweiligen Zugriffssteuerungen bereitgestellt werden;
  • 5 ein Flussdiagramm eines Beispielverfahrens zur Steuerung des Zugriffs auf Peripherien in einer elektronischen Vorrichtung unter Verwendung von Zugriffssteuerungsidentifikatoren ist, die in einem Zugriffssteuerungsregister gespeichert sind;
  • 6 ein Flussdiagramm eines Beispielverfahrens zur Steuerung des Zugriffs auf Peripherien in einer elektronischen Vorrichtung unter Verwendung eines ersten Beispielschemas für Zugriffssteuerungsidentifikatoren ist;
  • 7 ein Flussdiagramm eines Beispiels für ein Verfahren zur Steuerung des Zugriffs auf Peripherien in einer elektronischen Vorrichtung unter Verwendung eines zweiten Beispiels für ein Zugriffssteuerungsidentifikator-Schema ist; und
  • 8 ein Flussdiagramm eines Beispiels für ein Verfahren zur Steuerung des Zugriffs auf Peripherien in einer elektronischen Vorrichtung sowohl für Operationen im Privilegierungsmodus als auch für Operationen im Benutzermodus gemäß einem Beispiel ist;
  • 9 ein Flussdiagramm eines beispielhaften Verfahrens zur Steuerung des Zugriffs auf Peripherien unter Verwendung einer aufgabenbezogenen Bitmaske ist.
Example aspects of the present disclosure are described below in connection with the figures, in which:
  • 1 illustrates an example electronic device (e.g., a SoC) using access control identifiers to control access to peripherals, according to an example;
  • 2 additional aspects of the exemplary electronic device of 1 illustrated by an example;
  • 3 illustrates another electronic device that uses access control identifiers to control access to peripherals, according to an example;
  • The 4A-4D show circuit diagrams of example logic circuits provided in the respective access controllers according to some examples;
  • 5 is a flowchart of an example method for controlling access to peripherals in an electronic device using access control identifiers stored in an access control register;
  • 6 is a flowchart of an example method for controlling access to peripherals in an electronic device using a first example access control identifier scheme;
  • 7 is a flowchart of an example method for controlling access to peripherals in an electronic device using a second example access control identifier scheme; and
  • 8 is a flowchart of an example method for controlling access to peripherals in an electronic device for both privilege mode operations and user mode operations, according to an example;
  • 9 is a flowchart of an exemplary method for controlling access to peripherals using a task-related bit mask.

Es versteht sich, dass die Bezugszeichen für jedes veranschaulichte Element, das in mehreren verschiedenen Figuren erscheint, in allen Figuren die gleiche Bedeutung aufweisen, und dass die Erwähnung oder Erörterung eines veranschaulichten Elements im Zusammenhang mit einer bestimmten Figur auch für jede andere Figur gilt, in der dasselbe veranschaulichte Element gezeigt wird.It is to be understood that the reference numerals for any illustrated element appearing in several different figures have the same meaning in all figures, and that mention or discussion of an illustrated element in the context of a particular figure also applies to any other figure in which the same illustrated element is shown.

DETAILLIERTE BESCHREIBUNGDETAILED DESCRIPTION

1 veranschaulicht gemäß einem Beispiel eine beispielhafte elektronische Vorrichtung 100, die Zugriffssteuerungsidentifikatoren verwendet, um den Zugriff auf Peripherien zu steuern, wobei die Zugriffssteuerungsidentifikatoren programmierbar sein können, z.B. können die jeweiligen Zugriffssteuerungsidentifikatoren im Laufe der Zeit festgelegt und/oder aktualisiert werden. Die elektronische Vorrichtung 100 beinhaltet einen Transaktions-Host 102, Peripherien 104, Zugriffssteuerungen 106 und ein Zugriffssteuerungsregister 110, das Zugriffssteuerungsidentifikatoren 112 speichert. Die Komponenten der elektronischen Vorrichtung 100 können über eine oder mehrere Arten von Kommunikationsverbindungen 114 miteinander verbunden sein, z.B. über Busse, Drähte oder andere Arten von Verbindungen. In einigen Beispielen können die Zugriffssteuerungen 106 zwischen einem Bus und den jeweiligen Peripherien 104 geschaltet sein. Alternativ können sie auch indirekt mit dem Bus verbunden und betreibbar sein, um Zugriffsbestimmungen für ausgewählte Kommunikationen mit den an den Bus angeschlossenen Peripherien 104a-104n vorzunehmen. 1 illustrates, according to one example, an example electronic device 100 that uses access control identifiers to control access to peripherals, where the access control identifiers may be programmable, e.g., the respective access control identifiers may be set and/or updated over time. The electronic device 100 includes a transaction host 102, peripherals 104, access controllers 106, and an access control register 110 that stores access control identifiers 112. The components of the electronic device 100 may be interconnected via one or more types of communication connections 114, e.g., via buses, wires, or other types of connections. In some examples, the access controllers 106 may be coupled between a bus and the respective peripherals 104. Alternatively, they may be indirectly connected to the bus and operable to make access determinations for selected communications with the peripherals 104a-104n connected to the bus.

In einigen Beispielen ist die elektronische Vorrichtung 100 ein System auf einem Chip (SoC). In anderen Beispielen kann die elektronische Vorrichtung 100 ein Multi-Chip-System sein, das einen Transaktions-Host 102 auf einem Chip und Peripherien 104 auf einem oder mehreren separaten Chips aufweist. Der Transaktions-Host 102 kann jede Vorrichtung aufweisen, die in der Lage ist, die Ausführung von Aufgaben im Zusammenhang mit den jeweiligen Peripherien 104 zu initiieren, z.B. den Zugriff auf Register in den jeweiligen Peripherien 104. Der Transaktions-Host 102 kann beispielsweise einen Prozessor aufweisen, z.B. einen Mikroprozessor, einen Mikrocontroller, eine Zentraleinheit (CPU), einen oder mehrere Prozessorkerne, eine DMA-Engine (Direct Memory Access) oder eine andere Art von Computerprozessor. Als weiteres Beispiel kann der Transaktions-Host 102 eine Brücke aufweisen, die mit einem externen Host 116 (z.B. mit einem von der elektronischen Vorrichtung 100 getrennten Prozessor) verbunden ist, um dem externen Host 116 den Zugriff auf zumindest eine Peripherie 104 zu ermöglichen.In some examples, the electronic device 100 is a system on a chip (SoC). In other examples, the electronic device 100 may be a multi-chip system that includes a transaction host 102 on one chip and peripherals 104 on one or more separate chips. The transaction host 102 may include any device capable of initiating the execution of tasks associated with the respective peripherals 104, e.g., accessing registers in the respective peripherals 104. The transaction host 102 may, for example, include a processor, e.g., a microprocessor, a microcontroller, a central processing unit (CPU), one or more processor cores, a direct memory access (DMA) engine, or another type of computer processor. As another example, the transaction host 102 may include a bridge connected to an external host 116 (e.g., a processor separate from the electronic device 100) to enable the external host 116 to access at least one peripheral 104.

Peripherien 104 (z.B., einschließlich Eingabe-/Ausgabevorrichtungen und/oder anderer Peripherien) können alle Vorrichtungen beinhalten, die Eingabe-, Ausgabe- oder Datenspeicherfunktionen für die elektronische Vorrichtung 100 bereitstellen, z.B. eine oder mehrere PCI Express-Schnittstellen, Ethernet-Schnittstellen, USB-Schnittstellen, I2C-Schnittstellen (Inter-Integrated Circuit), DMA-Controller (Direct Memory Access), Interrupt-Controller, Analog-Digital-Wandler (ADC), WI-FI-Schnittstellen, Bluetooth-Schnittstellen, Global System for Mobile Communications (GSM)-Schnittstelle, General Packet Radio Service (GPRS)-Schnittstelle, Global Positioning System (GPS)-Schnittstelle, 3G-Schnittstelle, 4G-Schnittstelle, 5G-Schnittstelle, Universal Asynchronous Receiver-Transmitter (UART), Controller Area Network Flexible Data-Rate (CAN-FD)-Schnittstelle, General-Purpose Input/Output (GPIO)-Schnittstelle, Schnittstelle für Anzeigevorrichtungen, Modems, Grafikverarbeitungseinheit (GPU) oder Coprozessor.Peripherals 104 (e.g., including input/output devices and/or other peripherals) may include any devices that provide input, output, or data storage functions for the electronic device 100, e.g., one or more PCI Express interfaces, Ethernet interfaces, USB interfaces, I2C (Inter-Integrated Circuit) interfaces, DMA (Direct Memory Access) controllers, interrupt controllers, analog-to-digital converters (ADCs), WI-FI interfaces, Bluetooth interfaces, Global System for Mobile Communications (GSM) interface, General Packet Radio Service (GPRS) interface, Global Positioning System (GPS) interface, 3G interface, 4G interface, 5G interface, Universal Asynchronous Receiver-Transmitter (UART), Controller Area Network Flexible Data-Rate (CAN-FD) interface, General-Purpose Input/Output (GPIO) interface, display device interface, modems, graphics processing unit (GPU) or coprocessor.

Die elektronische Vorrichtung 100 kann eine beliebige Anzahl von Peripherien 104 beinhalten. Die in 1 gezeigte beispielhafte elektronische Vorrichtung 100 weist Peripherien 104a-104n auf, aber es versteht sich, dass die elektronische Vorrichtung 100 eine beliebige Anzahl von einer oder mehreren Peripherien beinhalten kann.The electronic device 100 may include any number of peripherals 104. The 1 The exemplary electronic device 100 shown includes peripherals 104a-104n, but it is understood that the electronic device 100 may include any number of one or more peripherals.

Die jeweiligen Zugriffssteuerungen 106 können mit den entsprechenden Peripherien 104 verbunden sein, um den Zugriff auf die jeweiligen Peripherien 104 zu steuern (z.B. zu ermöglichen oder zu verhindern), z.B. durch die vom Transaktions-Host 102 ausgeführten Gerätetreiber (Firmware). Wie nachstehend unter Bezugnahme auf 2 erläutert, kann der Transaktions-Host 102 beispielsweise Firmware ausführen, um verschiedene Aufgaben im Zusammenhang mit den Peripherien 104 zu erfüllen. So kann der Transaktions-Host 102 beispielsweise Gerätetreiber ausführen, die mit den jeweiligen Peripherien 104a-104n korrespondieren, um Aufgaben (z.B. Gerätetreiberaufgaben) im Zusammenhang mit den jeweiligen Peripherien 104a-104n auszuführen. Zugriffssteuerungen 106 können den Zugriff auf die jeweiligen Peripherien 104 für die vom Transaktions-Host 102 ausgeführten Aufgaben steuern (z.B. ermöglichen oder verhindern).The respective access controllers 106 may be connected to the respective peripherals 104 to control (eg, enable or prevent) access to the respective peripherals 104, eg, by the device drivers (firmware) executed by the transaction host 102. As described below with reference to 2 For example, as discussed above, the transaction host 102 may execute firmware to perform various tasks associated with the peripherals 104. For example, the transaction host 102 may execute device drivers corresponding to the respective peripherals 104a-104n to perform tasks (e.g., device driver tasks) associated with the respective peripherals 104a-104n. Access controls 106 may control (e.g., allow or prevent) access to the respective peripherals 104 for the tasks performed by the transaction host 102.

Wie dargestellt, kann die elektronische Vorrichtung 100 eine entsprechende Zugriffssteuerung 106a-106n beinhalten, die mit einer entsprechenden Peripherie 104a-104n korrespondiert. Beispielsweise kann die erste Zugriffssteuerung 106a zwischen dem Transaktions-Host 102 und der ersten Peripherie 104a angeschlossen sein, um den Zugriff auf die erste Peripherie 104a durch den Transaktions-Host 102 zu steuern, die zweite Zugriffssteuerung 106b kann zwischen dem Transaktions-Host 102 und der zweiten Peripherie 104b angeschlossen sein, um den Zugriff auf die zweite Peripherie 104b durch den Transaktions-Host 102 zu steuern, und so weiter. Zum Beispiel kann die erste Zugriffssteuerung 106a einer ersten Aufgabe (z.B. zugeordnet zu einem ersten Gerätetreiber, der der ersten Peripherie 104a zugeordnet ist) den Zugriff auf die erste Peripherie 104a ermöglichen und eine zweite Aufgabe (z.B. zugeordnet zu einem zweiten Gerätetreiber, der der zweiten Peripherie 104b zugeordnet ist) am Zugriff auf die erste Peripherie 104a hindern. In ähnlicher Weise kann die zweite Zugriffssteuerung 106b der zweiten Aufgabe (zugeordnet dem zweiten Gerätetreiber, der der dem zweiten Peripheriegerät 104b zugeordnet ist) den Zugriff auf die zweite Peripherie 104b ermöglichen und die erste Aufgabe (zugeordnet dem ersten Gerätetreiber, der dem ersten Peripheriegerät 104a zugeordnet ist) am Zugriff auf die zweite Peripherie 104b hindern.As shown, the electronic device 100 may include a respective access controller 106a-106n corresponding to a respective peripheral 104a-104n. For example, the first access controller 106a may be connected between the transaction host 102 and the first peripheral 104a to control access to the first peripheral 104a by the transaction host 102, the second access controller 106b may be connected between the transaction host 102 and the second peripheral 104b to control access to the second peripheral 104b by the transaction host 102, and so on. For example, the first access controller 106a may be assigned to a first task (e.g. associated with a first device driver associated with the first peripheral 104a) from accessing the first peripheral 104a and preventing a second task (e.g., associated with a second device driver associated with the second peripheral 104b) from accessing the first peripheral 104a. Similarly, the second access control 106b may allow the second task (associated with the second device driver associated with the second peripheral 104b) from accessing the second peripheral 104b and preventing the first task (associated with the first device driver associated with the first peripheral 104a) from accessing the second peripheral 104b.

Die jeweiligen Zugriffssteuerungen 106a-106n können elektronische Schaltungen aufweisen, um den Zugriff auf die jeweiligen Peripherien 104a-104n durch den Transaktions-Host 102 zu steuern (z.B. zu ermöglichen oder zu verhindern), und zwar auf der Grundlage eines jeweiligen Zugriffssteuerungsidentifikators 112, der im Zugriffssteuerungsregister 110 gespeichert ist, und, in einigen alternativen Beispielen, zusätzlicher Zugriffssteuerungseingangsdaten. Wie nachstehend erörtert, können zusätzliche Zugriffssteuerungsidentifikatoren beispielsweise (a) ein Betriebsmodussignal (OMS) 120, das einen Betriebsmodus des Transaktions-Hosts 102 angibt, und/oder (b) einen Zugriffssteuerungsidentifikator (der nachstehend unter Bezugnahme auf 3 für ein Beispiel mit mehreren Transaktions-Hosts 102 erörtert wird) aufweisen, der den jeweiligen Transaktions-Host 102 identifiziert, der den Zugriff auf eine entsprechende Peripherie 104 anfragt.The respective access controls 106a-106n may include electronic circuitry to control (e.g., allow or prevent) access to the respective peripherals 104a-104n by the transaction host 102 based on a respective access control identifier 112 stored in the access control register 110 and, in some alternative examples, additional access control input data. As discussed below, additional access control identifiers may include, for example, (a) an operating mode signal (OMS) 120 indicating an operating mode of the transaction host 102 and/or (b) an access control identifier (hereinafter referred to with reference to 3 discussed for an example with multiple transaction hosts 102) that identifies the respective transaction host 102 requesting access to a corresponding peripheral 104.

In einigen Beispielen weisen die im Zugriffssteuerungsregister 110 gespeicherten Zugriffssteuerungsidentifikatoren 112 (hier auch als „AC-Identifikatoren“ bezeichnet) jeweilige Zugriffssteuerungsidentifikatoren 112a- 112n auf, die mit den jeweiligen Peripherien 104a-104n korrespondieren, einschließlich eines ersten Zugriffssteuerungsidentifikators 112a, der mit der ersten Peripherie 104a korrespondiert, eines zweiten Zugriffssteuerungsidentifikators 112b, der mit der zweiten Peripherie 104b korrespondiert, und so weiter. Die jeweiligen Zugriffssteuerungsidentifikatoren 112a-112n für die jeweiligen Peripherien 104a-104n können ein Bit, mehrere Bits oder andere Daten aufweisen, die eine Zugriffseinstellung für die jeweiligen Peripherien 104a-104n angeben. Zum Beispiel kann der erste Zugriffssteuerungsidentifikator 112a ein oder mehrere Bits aufweisen, die eine Zugriffseinstellung für die erste Peripherie 104a angeben, und der zweite Zugriffssteuerungsidentifikator 112a kann ein oder mehrere Bits aufweisen, die eine Zugriffseinstellung für die zweite Peripherie 104b angeben. Das Zugriffssteuerungsregister 110 kann ein einzelnes Register oder mehrere Register von beliebiger Größe aufweisen, z.B. ein oder mehrere 8-Bit-Register, 32-Bit-Register oder 64-Bit-Register.In some examples, the access control identifiers 112 (also referred to herein as "AC identifiers") stored in the access control register 110 include respective access control identifiers 112a-112n corresponding to the respective peripherals 104a-104n, including a first access control identifier 112a corresponding to the first peripheral 104a, a second access control identifier 112b corresponding to the second peripheral 104b, and so on. The respective access control identifiers 112a-112n for the respective peripherals 104a-104n may include one bit, multiple bits, or other data indicating an access setting for the respective peripherals 104a-104n. For example, the first access control identifier 112a may include one or more bits indicating an access setting for the first peripheral 104a, and the second access control identifier 112a may include one or more bits indicating an access setting for the second peripheral 104b. The access control register 110 may include a single register or multiple registers of any size, e.g., one or more 8-bit registers, 32-bit registers, or 64-bit registers.

Wie nachstehend unter Bezugnahme auf 2 erläutert, kann der Transaktions-Host 102 die Werte der jeweiligen Zugriffssteuerungsidentifikatoren 112a-112n programmieren (z.B. setzen oder aktualisieren), bevor er die jeweiligen Aufgaben (z.B. Firmware-Aufgaben) auf der Grundlage der den jeweiligen Aufgaben zugewiesenen Peripherie-Zugriffsberechtigungen ausführt. Wie weiter unten erläutert, kann die elektronische Vorrichtung 100 entsprechende Bitmasken für die jeweiligen Aufgaben speichern, die die Peripherie-Zugriffsberechtigungen für die jeweiligen Aufgaben angeben, wobei eine entsprechende Bitmaske für eine jeweilige Aufgabe angibt, ob einer jeweiligen Aufgabe eine Peripherie-Zugriffsberechtigung für die jeweiligen Peripherien 104a-104n zugeordnet ist (oder nicht zugeordnet ist). Zum Beispiel kann die elektronische Vorrichtung 100 eine erste Bitmaske für eine erste Aufgabe speichern, die angibt, dass der ersten Aufgabe eine Peripherie-Zugriffsberechtigung für die erste Peripherie 104a zugewiesen ist, aber keine Peripherie-Zugriffsberechtigung für die zweite Peripherie 104b zugewiesen ist, und eine zweite Bitmaske für eine zweite Aufgabe, die angibt, dass der zweiten Aufgabe eine Peripherie-Zugriffsberechtigung für die zweite Peripherie 104b zugewiesen ist, aber keine Peripherie-Zugriffsberechtigung für die erste Peripherie 104a zugewiesen ist. In einigen Beispielen können Peripherie-Zugriffsberechtigungen einer jeweiligen Aufgabe (unter Verwendung einer jeweiligen Bitmaske für die jeweilige Aufgabe) von einem Code-Entwickler (z.B. Firmware-Entwickler) zugeordnet werden, z.B. auf der Grundlage ausgewählter Peripherie(n), die von der jeweiligen Aufgabe benötigt oder verwendet werden können. In einigen Beispielen trifft eine dem jeweiligen Peripheriegerät 104a-104n zugeordnete Zugriffssteuerung 106a-106n Zugriffsfeststellungen für den Zugriff auf das jeweilige Peripheriegerät 104a-104n auf der Grundlage der dem jeweiligen Peripheriegerät 104a-104n zugeordneten Zugriffssteuerungsidentifikatoren 112a-112n. In anderen Beispielen trifft eine einem jeweiligen Peripheriegerät 104a-104n zugeordneter Zugriffssteuerung 106a-106n Zugriffsfeststellungen für den Zugriff auf das jeweilige Peripheriegerät 104a-104n auf der Grundlage (a) des dem jeweiligen Peripheriegerät 104a-104n zugeordneten Zugriffssteuerungsidentifikators 112a-112n und (b) eines Betriebsmodussignals 120, das einen aktuellen Betriebsmodus (z.B. privilegierter Modus oder Benutzermodus) des Transaktions-Hosts 102 angibt.As explained below with reference to 2 As explained, the transaction host 102 may program (e.g., set or update) the values of the respective access control identifiers 112a-112n before executing the respective tasks (e.g., firmware tasks) based on the peripheral access permissions assigned to the respective tasks. As explained further below, the electronic device 100 may store respective bit masks for the respective tasks that indicate the peripheral access permissions for the respective tasks, where a respective bit mask for a respective task indicates whether a respective task is assigned (or not assigned) a peripheral access permission for the respective peripherals 104a-104n. For example, the electronic device 100 may store a first bitmask for a first task indicating that the first task is assigned a peripheral access permission for the first peripheral 104a but is not assigned a peripheral access permission for the second peripheral 104b, and a second bitmask for a second task indicating that the second task is assigned a peripheral access permission for the second peripheral 104b but is not assigned a peripheral access permission for the first peripheral 104a. In some examples, peripheral access permissions may be assigned to a respective task (using a respective bitmask for the respective task) by a code developer (e.g., firmware developer), e.g., based on selected peripheral(s) that may be required or used by the respective task. In some examples, an access controller 106a-106n associated with the respective peripheral device 104a-104n makes access determinations for access to the respective peripheral device 104a-104n based on the access control identifiers 112a-112n associated with the respective peripheral device 104a-104n. In other examples, an access controller 106a-106n associated with a respective peripheral device 104a-104n makes access determinations for access to the respective peripheral device 104a-104n based on (a) the access controller identifier 112a-112n associated with the respective peripheral device 104a-104n and (b) an operating mode signal 120 indicating a current operating mode (e.g., privileged mode or user mode) of the transaction host 102.

In anderen Beispielen werden mehrere Transaktions-Hosts 102 bereitgestellt, und eine jeweilige Zugriffssteuerung 106a-106n, die einem jeweiligen Peripheriegerät 104a-104n zugeordnet ist, trifft Zugriffsbestimmungen für den Zugriff auf das jeweilige Peripheriegerät 104a-104n durch einen anfragenden Transaktions-Host 102 (oder die mehreren Transaktions-Hosts 102) auf der Grundlage (b) eines Transaktions-Host-Identifikators, der den anfragenden Transaktions-Host 102 identifiziert, und (b) eines jeweiligen Zugriffssteuerungsidentifikators 112a-112n, der dem Peripheriegerät 104a-104n und dem jeweiligen anfragenden Transaktions-Host 102 zugeordnet ist (z.B., wobei das Zugriffssteuerungsregister 110 für die jeweiligen Transaktions-Hosts 102 einen jeweiligen Satz von Zugriffssteuerungsidentifikatoren 112a-112n für die Peripherien 104a-104n speichert). In anderen Beispielen werden mehrere Transaktions-Hosts 102 bereitgestellt, und eine jeweilige Zugriffssteuerung 106a-106n, die einem jeweiligen Peripheriegerät 104a-104n zugeordnet ist, trifft Zugriffsbestimmungen für den Zugriff auf das jeweilige Peripheriegerät 104a-104n durch einen anfragenden Transaktions-Host 102 (oder die mehreren Transaktions-Hosts 102) auf der Grundlage (b) eines Transaktions-Host-Identifikators, der den anfragenden Transaktions-Host 102 identifiziert, und (b) eines jeweiligen Zugriffssteuerungsidentifikators 112a-112n, der dem jeweiligen Peripheriegerät 104a-104n und dem anfragenden Transaktions-Host 102 zugeordnet ist (z.B., wobei das Zugriffssteuerungsregister 110 für die jeweiligen Transaktions-Hosts 102 einen jeweiligen Satz von Zugriffssteuerungsidentifikatoren 112a-112n für die Peripherien 104a-104n speichert), und (c) ein Betriebsmodussignal 120, das einen aktuellen Betriebsmodus (z.B. einen privilegierten Modus oder einen Benutzermodus) des anfragenden Transaktions-Hosts 102 angibt.In other examples, multiple transaction hosts 102 are provided, and a respective access controller 106a-106n associated with a respective peripheral device 104a-104n makes access determinations for access to the respective peripheral device 104a-104n by a requesting transaction host 102 (or the multiple transaction hosts 102) based on (b) a transaction host identifier identifying the requesting transaction host 102, and (b) a respective access control identifier 112a-112n associated with the peripheral device 104a-104n and the respective requesting transaction host 102 (e.g., wherein the access control register 110 for the respective transaction hosts 102 stores a respective set of access control identifiers 112a-112n for the peripherals 104a-104n). In other examples, multiple transaction hosts 102 are provided, and a respective access controller 106a-106n associated with a respective peripheral device 104a-104n makes access determinations for access to the respective peripheral device 104a-104n by a requesting transaction host 102 (or the multiple transaction hosts 102) based on (b) a transaction host identifier identifying the requesting transaction host 102 and (b) a respective access control identifier 112a-112n associated with the respective peripheral device 104a-104n and the requesting transaction host 102 (e.g., wherein the access control register 110 for the respective transaction hosts 102 includes a respective set of access control identifiers 112a-112n for the peripherals 104a-104n), and (c) an operating mode signal 120 indicating a current operating mode (e.g., a privileged mode or a user mode) of the requesting transaction host 102.

Wenn der Transaktions-Host 102 versucht, auf eine bestimmte Peripherie 104 zuzugreifen, zum Beispiel auf die erste Peripherie 104a, kann die erste Zugriffssteuerung 106a (a) eine Zugriffsanfrage vom Transaktions-Host 102 für den Zugriff auf die erste Peripherie 104a empfangen; (b) auf eine Zugriffssteuerungskennung 112 für die erste Peripherie 104a aus dem Zugriffssteuerungsregister 110 zugreifen; (c) eine Zugriffsbestimmung auf der Grundlage des ersten Zugriffssteuerungsidentifikators 112a (und, in einigen Beispielen, zusätzlicher Zugriffssteuerungseingangsdaten) durchführen; und (d) den Zugriff auf die erste Peripherie 104a durch den Transaktions-Host 102 als Reaktion auf die Zugriffsbestimmung ermöglichen oder verhindern.When the transaction host 102 attempts to access a particular peripheral 104, for example, the first peripheral 104a, the first access controller 106a may (a) receive an access request from the transaction host 102 for access to the first peripheral 104a; (b) access an access control identifier 112 for the first peripheral 104a from the access control register 110; (c) make an access determination based on the first access control identifier 112a (and, in some examples, additional access control input data); and (d) allow or prevent access to the first peripheral 104a by the transaction host 102 in response to the access determination.

In einem ersten Beispiel, wie in Tabelle 1 unten gezeigt, sind die jeweiligen Zugriffssteuerungsidentifikatoren 112a-112n zwischen den folgenden Zugriffssteuerungsidentifikatoren (AC_ID) programmierbar:

  1. (a) eine Einstellung (z.B. AC_ID-Wert=[0]), die den Zugriff auf die jeweilige Peripherie 104a-104n durch den Transaktions-Host 102 ermöglicht (z.B. Ausführen eines Gerätetreibers oder einer anderen Firmware) und
  2. (b) eine Einstellung (z.B. AC_ID-Wert=[1]), die den Zugriff auf die jeweilige Peripherie 104a-104n durch den Transaktions-Host 102 verhindert (z.B. Ausführen eines Gerätetreibers oder einer anderen Firmware).
Tabelle 1. Schema der Zugriffssteuerungsidentifikatoren für das erste Beispiel. AC_ID-Wert Zugriff auf Peripherie zulassen? 0 (Zugriff ermöglicht) Ja 1 (Zugriff verhindert) Nein In a first example, as shown in Table 1 below, the respective access control identifiers 112a-112n are programmable between the following access control identifiers (AC_ID):
  1. (a) a setting (eg AC_ID value=[0]) that enables access to the respective peripheral 104a-104n by the transaction host 102 (eg executing a device driver or other firmware) and
  2. (b) a setting (eg AC_ID value=[1]) that prevents access to the respective peripheral 104a-104n by the transaction host 102 (eg executing a device driver or other firmware).
Table 1. Scheme of access control identifiers for the first example. AC_ID value Allow access to peripherals? 0 (access allowed) Yes 1 (access denied) No

In einigen Beispielen kann die jeweilige Zugriffssteuerung 106a-106n eine Nachschlagetabelle (LUT) speichern oder Zugriff darauf aufweisen, die die Daten der Tabelle 1 beinhaltet, auf die die jeweilige Zugriffssteuerung 106a-106n zugreifen kann, um Zugriffsfeststellungen zu treffen. In einigen Beispielen kann die jeweilige Zugriffssteuerung 106a-106n eine entsprechende LUT im Speicher 107 speichern, z.B. in einer ROM-Vorrichtung (wobei eine entsprechende Instanz des Speichers 107 in den jeweiligen Zugriffssteuerungen 106a-106n bereitgestellt werden kann oder wobei der Speicher 107 auf andere Weise für die jeweiligen Zugriffssteuerungen 106a-106n zugänglich sein kann). In anderen Beispielen kann die jeweilige Zugriffssteuerung 106a-106n die in Tabelle 1 angegebenen Entscheidungen unter Verwendung geeigneter Instanzen der logischen Schaltung 108 umsetzen. Wie nachstehend unter Bezugnahme auf 4A erläutert, kann die jeweilige Zugriffssteuerung 106a-106n beispielsweise eine logische Schaltung 108 beinhalten, die ein NOT-Gatter (oder einen Inverter) zur Verarbeitung einer Zugriffssteuerungsidentifikator-Eingabe an die jeweilige Zugriffssteuerung 106a-106n aufweist. (In einem anderen Beispiel kann die Bedeutung der AC_ID-Werte umgekehrt werden, z.B. wenn AC_ID=0 eine Einstellung angibt, bei der der Zugriff verhindert wird, und AC_ID=1 eine Einstellung, bei der der Zugriff ermöglicht ist, und das NOT-Gatter kann weggelassen werden).In some examples, the respective access controller 106a-106n may store or have access to a lookup table (LUT) that includes the data of Table 1 that the respective access controller 106a-106n may access to make access determinations. In some examples, the respective access controller 106a-106n may store a corresponding LUT in memory 107, e.g., in a ROM device (where a corresponding instance of memory 107 may be provided in the respective access controllers 106a-106n or where the memory 107 may otherwise be accessible to the respective access controllers 106a-106n). In other examples, the respective access controller 106a-106n may implement the decisions set forth in Table 1 using appropriate instances of logic circuitry 108. As described below with reference to 4A For example, as discussed above, the respective access controller 106a-106n may include a logic circuit 108 having a NOT gate (or inverter) for processing an access control identifier input to the respective access controller 106a-106n. (In another example, the meaning of the AC_ID values may be reversed, e.g., AC_ID=0 indicates a setting where access is prevented and AC_ID=1 indicates a setting where access is allowed, and the NOT gate may be omitted.)

Im ersten Beispiel (d.h. bei der Umsetzung des in Tabelle 1 gezeigten Schemas) kann der Transaktions-Host 102 entsprechende Firmware ausführen (z.B. Befehle 214 zur Verwaltung von Zugriffssteuerungsidentifikatoren, die in computerlesbarem Supervisor-Code 206 bereitgestellt werden, z.B. in Form von Firmware, wie in 2 unten beschrieben), um die Zugriffssteuerungsidentifikatoren 112a-112n gemäß dem oben beschriebenen Schema dynamisch zu programmieren, z.B. in Echtzeit, basierend auf dem aktuellen Betriebsmodus des Transaktions-Hosts (z.B. einem privilegierten Modus oder einem Benutzermodus) und/oder vor der Einleitung von Aufgaben, die sich auf eine bestimmte Peripherie 104a-104n beziehen (z.B. unter Verwendung eines Gerätetreibers, der mit einer bestimmten Peripherie 104a-104n korrespondiert). Zum Beispiel:

  1. (a) vor der Einleitung von Aufgaben im privilegierten Modus, die sich auf ein beliebiges Peripheriegerät 104a-104n beziehen, kann der Transaktions-Host 102 die AC-Identifikatoren 112a-112n auf 0 programmieren (was dem Transaktions-Host 102 den Zugriff auf die Peripheriegeräte 104a-104n ermöglicht);
  2. (b) vor der Einleitung von Aufgaben im Benutzermodus, die sich auf die erste Peripherie 104a beziehen, kann der Transaktions-Host 102 die AC-Identifikatoren 112a auf 0 und die AC-Identifikatoren 112b...112n auf 1 programmieren (was dem Transaktions-Host 102 den Zugriff auf die erste Peripherie 104a ermöglicht und den Zugriff auf die Peripheriegeräte 104b... 104n verhindert); und
  3. (c) vor der Einleitung von Aufgaben im Benutzermodus in Bezug auf die zweite Peripherie 104b kann der Transaktions-Host 102 den AC-Identifikator 112b auf 0 und die AC-Identifikatoren 112a, 112c... 112n auf 1 programmieren (was dem Transaktions-Host 102 den Zugriff auf die zweite Peripherie 104b ermöglicht und den Zugriff auf die Peripherien 104a, 104c... 104n verhindert).
In the first example (ie, when implementing the scheme shown in Table 1), the transaction host 102 may execute appropriate firmware (eg, instructions 214 for managing access control identifiers provided in computer-readable supervisor code 206, eg, in the form of firmware ware, as in 2 described below) to dynamically program the access control identifiers 112a-112n according to the scheme described above, e.g., in real time, based on the current operating mode of the transaction host (e.g., a privileged mode or a user mode) and/or prior to initiating tasks related to a particular peripheral 104a-104n (e.g., using a device driver corresponding to a particular peripheral 104a-104n). For example:
  1. (a) prior to initiating privileged mode tasks related to any peripheral device 104a-104n, the transaction host 102 may program the AC identifiers 112a-112n to 0 (which allows the transaction host 102 to access the peripheral devices 104a-104n);
  2. (b) prior to initiating user mode tasks related to the first peripheral 104a, the transaction host 102 may program the AC identifiers 112a to 0 and the AC identifiers 112b...112n to 1 (which allows the transaction host 102 to access the first peripheral 104a and prevents access to the peripherals 104b...104n); and
  3. (c) prior to initiating user mode tasks with respect to the second peripheral 104b, the transaction host 102 may program the AC identifier 112b to 0 and the AC identifiers 112a, 112c...112n to 1 (which allows the transaction host 102 to access the second peripheral 104b and prevents access to the peripherals 104a, 104c...104n).

Im ersten Beispiel trifft eine jeweilige Zugriffssteuerung 106a-106n, die einer bestimmten Peripherie 104a-104n zugeordnet ist, Zugriffsfeststellungen für den Zugriff auf die bestimmte Peripherie 104a-104n auf der Grundlage des aktuellen Werts der jeweiligen Zugriffssteuerungsidentifikatoren 112a-112n, die der bestimmten Peripherie 104a-104n zugeordnet sind, z.B. ohne zusätzlich ein Betriebsmodussignal zu benötigen, das den aktuellen Betriebsmodus des Transaktions-Hosts 102 angibt. Wenn zum Beispiel die erste Zugriffssteuerung 106a, die der ersten Peripherie 104a zugeordnet ist, eine Zugriffsanfrage vom Transaktions-Host 102 empfängt, um auf die erste Peripherie 104a zuzugreifen, greift die erste Zugriffssteuerung 106a auf den jeweiligen AC-Identifikator 112a zu, die der ersten Peripherie 104a zugeordnet ist, und ermöglicht dem Transaktions-Host 102 auf der Grundlage des AC-Identifikators 112a den Zugriff auf die erste Peripherie 104a, wenn der AC_ID-Wert=0 ist, und verhindert den Zugriff des Transaktions-Hosts 102 auf die erste Peripherie 104a, wenn der AC-ID-Wert=1 ist.In the first example, a respective access controller 106a-106n associated with a particular peripheral 104a-104n makes access determinations for accessing the particular peripheral 104a-104n based on the current value of the respective access control identifiers 112a-112n associated with the particular peripheral 104a-104n, e.g., without additionally requiring an operating mode signal indicating the current operating mode of the transaction host 102. For example, when the first access controller 106a associated with the first peripheral 104a receives an access request from the transaction host 102 to access the first peripheral 104a, the first access controller 106a accesses the respective AC identifier 112a associated with the first peripheral 104a and allows the transaction host 102 to access the first peripheral 104a based on the AC identifier 112a if the AC_ID value=0 and prevents the transaction host 102 from accessing the first peripheral 104a if the AC_ID value=1.

Gemäß dem Schema des oben beschriebenen ersten Beispiels kann der Transaktions-Host 102 in einem Beispielsfall eine erste Aufgabe im Benutzerraum ausführen, die sich auf die erste Peripherie 104a bezieht, indem er einen ersten Peripherie-Gerätetreiber verwendet, der der ersten Peripherie 104a zugeordnet ist, und kann daher die Zugriffssteuerungsidentifikator-Identifikatoren 112a auf 0 programmieren (z.B. unter Verwendung von Zugriffssteuerungsidentifikator-Verwaltungsbefehlen 214, wie in 2 gezeigt), bevor er die erste Aufgabe ausführt. Wenn die erste Zugriffssteuerung 106a eine Anfrage vom ersten Treiber der Vorrichtung für Peripherien erhält, um auf die erste Peripherie 104a zuzugreifen, kann die erste Zugriffssteuerung 106a auf den AC-Identifikator 112a zugreifen und als Reaktion auf den Wert des AC-Identifikators 112a = 0 den Zugriff auf die erste Peripherie 104a ermöglichen. In einem anderen Beispiel kann der Transaktions-Host 102 eine zweite Aufgabe im Benutzerraum ausführen, die sich auf die zweite Peripherie 104b bezieht, wobei er einen zweiten Peripheriegerätetreiber verwendet, der dem zweiten Peripheriegerät 104b zugeordnet ist, und kann daher den AC-Identifikator 112b auf 0 programmieren, um den Zugriff auf die zweite Peripherie 104b zu ermöglichen, und den AC-Identifikator 112a auf 1 programmieren, um den Zugriff auf die erste Peripherie 104a zu verhindern. Wenn die erste Zugriffssteuerung 106a eine Anfrage vom zweiten Treiber der Peripherievorrichtung erhält, um auf die erste Peripherie 104a zuzugreifen (z.B. eine irrtümliche oder böswillige Anfrage vom zweiten Treiber der Peripherievorrichtung), kann die erste Zugriffssteuerung 106a auf die AC-Identifikatoren 112a zugreifen und als Reaktion auf den Wert der AC-Identifikatoren 112a = 1 den Zugriff auf die erste Peripherie 104a verhindern. In einem weiteren Beispiel kann der Transaktions-Host 102 privilegierte Aufgaben ausführen, die sich auf die erste Peripherie 104a oder die zweite Peripherie 104b beziehen (z.B. enthalten in der Supervisor-Firmware), und daher den AC-Identifikator 112a auf 0 bzw. den AC-Identifikator 112b auf 0 programmieren, bevor er solche privilegierten Aufgaben ausführt, um so den Zugriff auf die erste Peripherie 104a durch den ersten Treiber für die Peripherievorrichtung, der der ersten Peripherie 104a zugeordnet ist, oder den zweiten Treiber für die Peripherievorrichtung, der der zweiten Peripherie 104b zugeordnet ist, zu ermöglichen.According to the scheme of the first example described above, in an example case, the transaction host 102 may perform a first task in user space related to the first peripheral 104a using a first peripheral device driver associated with the first peripheral 104a and may therefore program the access control identifier identifiers 112a to 0 (e.g., using access control identifier management commands 214 as in 2 shown) before executing the first task. When the first access controller 106a receives a request from the first peripheral device driver to access the first peripheral 104a, the first access controller 106a may access the AC identifier 112a and, in response to the value of the AC identifier 112a = 0, enable access to the first peripheral 104a. In another example, the transaction host 102 may perform a second task in user space related to the second peripheral 104b using a second peripheral driver associated with the second peripheral 104b, and therefore may program the AC identifier 112b to 0 to allow access to the second peripheral 104b and program the AC identifier 112a to 1 to prevent access to the first peripheral 104a. When the first access controller 106a receives a request from the second peripheral device driver to access the first peripheral 104a (e.g., an erroneous or malicious request from the second peripheral device driver), the first access controller 106a may access the AC identifiers 112a and, in response to the value of the AC identifiers 112a = 1, prevent access to the first peripheral 104a. In another example, the transaction host 102 may perform privileged tasks related to the first peripheral 104a or the second peripheral 104b (e.g., included in the supervisor firmware) and therefore program the AC identifier 112a to 0 or the AC identifier 112b to 0, respectively, before performing such privileged tasks, so as to enable access to the first peripheral 104a by the first peripheral device driver associated with the first peripheral 104a or the second peripheral device driver associated with the second peripheral 104b.

In einem zweiten Beispiel, wie in Tabelle 2 unten gezeigt, ist jeder Zugriffssteuerungsidentifikator 112a- 112n zwischen den folgenden Zugriffssteuerungsidentifikator (AC_ID) Werten programmierbar:

  1. (a) eine offene Zugriffseinstellung (z.B. AC_ID-Wert=[0]), die den Zugriff auf die jeweilige Peripherie 104a-104n durch den Transaktions-Host 102 (z.B. Ausführen eines Gerätetreibers oder anderer Firmware) unabhängig vom aktuellen Betriebsmodus (z.B., privilegierter Modus oder Benutzermodus) des Transaktions-Hosts 102 ermöglicht, und
  2. (b) eine eingeschränkte Zugriffseinstellung (z.B. AC_ID-Wert=[1]), die den Zugriff auf die jeweilige Peripherie 104a-104n durch den Transaktions-Host 102 (z.B. Ausführen eines Gerätetreibers oder einer anderen Firmware) nur im privilegierten Modus des Transaktions-Hosts 102 ermöglicht.
Tabelle 2. Schema der Zugriffssteuerungsidentifikatoren für das zweite Beispiel. AC_ID-Wert Transaktions-Host Betriebsmodus Zugriff auf Peripherie ermöglichen? 0 (offener Zugriff) 0 (Benutzermodus) Ja 0 (offener Zugriff) 1 (privilegierter Modus) Ja 1 (eingeschränkter Zugriff) 0 (Benutzermodus) Nein 1 (eingeschränkter Zugriff) 1 (privilegierter Modus) Ja In a second example, as shown in Table 2 below, each access control identifier 112a-112n is programmable between the following access control identifier (AC_ID) values:
  1. (a) an open access setting (e.g., AC_ID value=[0]) that allows access to the respective peripheral 104a-104n by the transaction host 102 (e.g., executing a device driver or other firmware) regardless of the current operating mode (e.g., privileged mode or user mode) of the transaction host 102, and
  2. (b) a restricted access setting (eg, AC_ID value=[1]) that allows access to the respective peripheral 104a-104n by the transaction host 102 (eg, executing a device driver or other firmware) only in the privileged mode of the transaction host 102.
Table 2. Scheme of access control identifiers for the second example. AC_ID value transaction host operating mode Enable access to peripherals? 0 (open access) 0 (user mode) Yes 0 (open access) 1 (privileged mode) Yes 1 (limited access) 0 (user mode) No 1 (limited access) 1 (privileged mode) Yes

In einigen Beispielen kann die jeweilige Zugriffssteuerung 106a-106n eine LUT speichern oder Zugriff darauf aufweisen, die die Daten der Tabelle 2 beinhaltet, auf die die jeweilige Zugriffssteuerung 106a-106n zugreifen kann, um Zugriffsfeststellungen zu treffen. In einigen Beispielen kann die jeweilige Zugriffssteuerung 106a-106n eine jeweilige LUT in einer jeweiligen Vorrichtung des Speichers 107, z.B. einem Nur-Lese-Speicher (ROM), speichern (wobei eine Vorrichtung des Speichers 107 in den jeweiligen Zugriffssteuerungen 106a-106n bereitgestellt werden kann oder der Speicher 107 auf andere Weise für die jeweiligen Zugriffssteuerungen 106a-106n zugänglich sein kann). In anderen Beispielen kann die jeweilige Zugriffssteuerung 106a-106n die in Tabelle 2 angegebenen Entscheidungen unter Verwendung einer geeigneten logischen Schaltung 108 umsetzen. Wie nachstehend unter Bezugnahme auf 4B erläutert, kann die jeweilige Zugriffssteuerung 106a-106n beispielsweise eine logische Schaltung 108 beinhalten, die ein NOT-Gatter und ein OR-Gatter zur Verarbeitung einer Zugriffssteuerungsidentifikator-Eingabe in die jeweilige Zugriffssteuerung 106a-106n aufweist.In some examples, the respective access controller 106a-106n may store or have access to a LUT that includes the data of Table 2 that the respective access controller 106a-106n may access to make access determinations. In some examples, the respective access controller 106a-106n may store a respective LUT in a respective device of the memory 107, e.g., a read-only memory (ROM) (where a device of the memory 107 may be provided in the respective access controllers 106a-106n or the memory 107 may otherwise be accessible to the respective access controllers 106a-106n). In other examples, the respective access controller 106a-106n may implement the decisions set forth in Table 2 using an appropriate logic circuit 108. As described below with reference to 4B For example, as explained, the respective access controller 106a-106n may include a logic circuit 108 having a NOT gate and an OR gate for processing an access control identifier input to the respective access controller 106a-106n.

Im zweiten Beispiel (d.h. bei der Implementierung des in Tabelle 2 gezeigten Schemas) kann der Transaktions-Host 102 entsprechende Firmware ausführen (z.B. die in 2 gezeigten Befehle zur Verwaltung der Zugriffssteuerungsidentifikatoren 214), um die Zugriffssteuerungsidentifikatoren 112a- 112n gemäß dem oben beschriebenen Schema dynamisch zu programmieren, z.B. in Echtzeit, basierend auf dem aktuellen Betriebsmodus des Transaktions-Hosts (z.B. einem privilegierten Modus oder einem Benutzermodus) und/oder um Aufgaben in Bezug auf eine bestimmte Peripherie 104a-104n zu initiieren (z.B. unter Verwendung eines Gerätetreibers, der einer bestimmten Peripherie 104a-104n zugeordnet ist). Zum Beispiel:

  1. (a) um Aufgaben in Bezug auf die erste Peripherie 104a zu initiieren (unabhängig vom Betriebsmodus des Transaktions-Hosts 102), kann der Transaktions-Host 102 die AC-Identifikatoren 112a auf 0 und die AC-Identifikatoren 112b, 112c... 112n auf 1 programmieren (was dem Transaktions-Host 102 den Zugriff auf die erste Peripherie 104a sowohl im privilegierten Modus als auch im Benutzermodus des Transaktions-Hosts 102 ermöglicht, wie unten beschrieben, während dem Transaktions-Host 102 den Zugriff auf die Peripherie 104b, 104c... 104n im Benutzermodus des Transaktions-Hosts 102 verhindert wird); und
  2. (b) um Aufgaben im Zusammenhang mit der zweiten Peripherie 104b zu initiieren (unabhängig vom Betriebsmodus des Transaktions-Hosts 102), kann der Transaktions-Host 102 die AC-Identifikatoren 112b auf 0 und die AC-Identifikatoren 112a, 112c... 112n auf 1 programmieren (was dem Transaktions-Host 102 den Zugriff auf die zweite Peripherie 104b sowohl im privilegierten Modus als auch im Benutzermodus des Transaktions-Hosts 102 ermöglicht, wie unten beschrieben, während der Transaktions-Host 102 den Zugriff auf die Peripherie 104a, 104c... 104n im Benutzermodus des Transaktions-Hosts 102 verhindert).
In the second example (ie, implementing the scheme shown in Table 2), the transaction host 102 may execute appropriate firmware (eg, the firmware described in 2 shown commands for managing the access control identifiers 214) to dynamically program the access control identifiers 112a-112n according to the scheme described above, e.g. in real time, based on the current operating mode of the transaction host (e.g., a privileged mode or a user mode) and/or to initiate tasks related to a particular peripheral 104a-104n (e.g., using a device driver associated with a particular peripheral 104a-104n). For example:
  1. (a) to initiate tasks related to the first peripheral 104a (regardless of the operating mode of the transaction host 102), the transaction host 102 may program the AC identifiers 112a to 0 and the AC identifiers 112b, 112c... 112n to 1 (which allows the transaction host 102 to access the first peripheral 104a in both the privileged mode and the user mode of the transaction host 102, as described below, while preventing the transaction host 102 from accessing the peripherals 104b, 104c... 104n in the user mode of the transaction host 102); and
  2. (b) to initiate tasks related to the second peripheral 104b (regardless of the operating mode of the transaction host 102), the transaction host 102 may program the AC identifiers 112b to 0 and the AC identifiers 112a, 112c...112n to 1 (which allows the transaction host 102 to access the second peripheral 104b in both the privileged mode and the user mode of the transaction host 102, as described below, while the transaction host 102 prevents access to the peripherals 104a, 104c...104n in the user mode of the transaction host 102).

Im zweiten Beispiel trifft eine jeweilige Zugriffssteuerung 106a-106n, die einer bestimmten Peripherie 104a-104n zugeordnet ist, Zugriffsfeststellungen für den Zugriff auf die bestimmte Peripherie 104a-104n auf der Grundlage (a) des aktuellen Werts des jeweiligen Zugriffssteuerungsidentifikators 112a-112n, der der bestimmten Peripherie 104a-104n zugeordnet ist, und (b) eines Betriebsmodussignals 120, das einen Betriebsmodus (privilegierter Modus oder Benutzermodus) des Transaktions-Hosts 102 angibt. Wenn beispielsweise die erste Zugriffssteuerung 106a, die dem ersten Peripheriegerät 104a zugeordnet ist, eine Anfrage vom Transaktions-Host 102 zum Zugriff auf die erste Peripherie 104a empfängt, greift die erste Zugriffssteuerung 106a auf (a) die Kennung 112a zu, die dem ersten Peripheriegerät 104a zugeordnet ist, und (b) das Betriebsmodussignal 120 und stellt fest, ob dem Transaktions-Host 102 der Zugriff auf die erste Peripherie 104a auf der Grundlage des in Tabelle 2 definierten Schemas gestattet werden soll. Insbesondere stellt die erste Zugriffssteuerung 106a fest, dass sie dem Transaktions-Host 102 den Zugriff auf die erste Peripherie 104a nur dann ermöglicht, wenn sowohl (a) der AC_ID-Wert = 1 (Einstellung für eingeschränkten Zugriff) als auch (b) der Wert des Betriebsmodussignals=0 (Benutzermodus) ist.In the second example, a respective access controller 106a-106n associated with a particular peripheral 104a-104n makes access determinations for access to the particular peripheral 104a-104n based on (a) the current value of the respective access control identifier 112a-112n associated with the particular peripheral 104a-104n and (b) an operating mode signal 120 indicating an operating mode (privileged mode or user mode) of the transaction host 102. For example, if the first access controller 106a associated with the first peripheral 104a makes a Request from transaction host 102 to access first peripheral 104a, first access controller 106a accesses (a) identifier 112a associated with first peripheral 104a and (b) operation mode signal 120 and determines whether to allow transaction host 102 to access first peripheral 104a based on the schema defined in Table 2. Specifically, first access controller 106a determines to allow transaction host 102 to access first peripheral 104a only if both (a) AC_ID value = 1 (restricted access setting) and (b) operation mode signal value = 0 (user mode).

Gemäß dem Schema des oben beschriebenen zweiten Beispiels kann der Transaktions-Host 102 in einem Beispielfall Aufgaben im Benutzermodus in Bezug auf die erste Peripherie 104a initiieren und daher den AC-Identifikator 112a auf 0 programmieren, um solche Aufgaben zu initiieren. Wenn die erste Zugriffssteuerung 106a eine Anfrage vom Treiber der ersten Vorrichtung für die Peripherie erhält, um auf die erste Peripherie 104a zuzugreifen, kann die erste Zugriffssteuerung 106a (a) auf den AC-Identifikator 112a zugreifen; (b) auf das Betriebsmodussignal 120 zugreifen; (c) eine Zugriffsbestimmung durchführen, um dem ersten Treiber der Vorrichtung für die Peripherie den Zugriff auf die erste Peripherie 104a zu gestatten, wenn das Betriebsmodussignal 120 entweder den Benutzermodus (Betriebsmodussignalwert=0) oder den privilegierten Modus (Betriebsmodussignalwert=1) angibt, und andernfalls den Zugriff des ersten Peripheriegerätereibers auf die erste Peripherie 104a verhindern; und (d) den Zugriff des ersten Peripheriegerätereibers auf die erste Peripherie 104a basierend auf der Zugriffsbestimmung gestatten oder verhindern.According to the scheme of the second example described above, in an example case, the transaction host 102 may initiate user mode tasks with respect to the first peripheral 104a and therefore program the AC identifier 112a to 0 to initiate such tasks. When the first access controller 106a receives a request from the driver of the first device for the peripheral to access the first peripheral 104a, the first access controller 106a may (a) access the AC identifier 112a; (b) access the operating mode signal 120; (c) make an access determination to allow the first peripheral device driver to access the first peripheral 104a if the operation mode signal 120 indicates either the user mode (operation mode signal value=0) or the privileged mode (operation mode signal value=1), and otherwise prevent the first peripheral device driver from accessing the first peripheral 104a; and (d) allow or prevent the first peripheral device driver from accessing the first peripheral 104a based on the access determination.

In einem anderen Beispiel kann der Transaktions-Host 102 Aufgaben im Benutzermodus in Bezug auf die zweite Peripherie 104b unter Verwendung eines zweiten Peripheriegerätetreibers, der dem zweiten Peripheriegerät 104b zugeordnet ist, initiieren und somit den AC-Identifikator 112b auf 0 programmieren (d.h. offener Zugriff auf die zweite Peripherie 104b) und den AC-Identifikator 112a auf 1 programmieren (d.h. beschränkter Zugriff auf die erste Peripherie 104a). Wenn die erste Zugriffssteuerung 106a eine Anfrage des Treibers der zweiten Peripherie Vorrichtung zum Zugriff auf die erste Peripherie 104a erhält, kann die erste Zugriffssteuerung 106a (a) auf den AC-Identifikator 112a zugreifen; (b) auf das Betriebsmodussignal 120 zugreifen; und (c) eine Zugriffsbestimmung durchführen, um den Zugriff auf die erste Peripherie 104a durch den zweiten Peripheriegerätetreiber zu ermöglichen oder zu verhindern, insbesondere bestimmen, dass der Zugriff ermöglicht wird, wenn das Betriebsmodussignal 120 den privilegierten Modus angibt (Betriebsmodussignalwert=1), und bestimmen, dass der Zugriff verhindert wird, wenn das Betriebsmodussignal 120 den Benutzermodus angibt (Betriebsmodussignalwert=0); und (d) den Zugriff auf die erste Peripherie 104a durch den zweiten Peripheriegerätetreiber basierend auf der Zugriffsbestimmung ermöglichen oder verhindern.In another example, the transaction host 102 may initiate user mode tasks with respect to the second peripheral 104b using a second peripheral device driver associated with the second peripheral device 104b, thereby programming the AC identifier 112b to 0 (i.e., open access to the second peripheral device 104b) and programming the AC identifier 112a to 1 (i.e., restricted access to the first peripheral device 104a). When the first access controller 106a receives a request from the driver of the second peripheral device to access the first peripheral device 104a, the first access controller 106a may (a) access the AC identifier 112a; (b) access the operating mode signal 120; and (c) make an access determination to allow or prevent access to the first peripheral 104a by the second peripheral driver, in particular, determining that access is allowed when the operating mode signal 120 indicates the privileged mode (operating mode signal value=1) and determining that access is prevented when the operating mode signal 120 indicates the user mode (operating mode signal value=0); and (d) allowing or preventing access to the first peripheral 104a by the second peripheral driver based on the access determination.

Wie in 1 gezeigt, kann die jeweilige Zugriffssteuerung 106a-106n als Eingaben (a) eine Zugriffsanfrage (ACR) für eine jeweilige Peripherie 104a-104n, (b) einen jeweiligen AC-Identifikator 112a-112n und (optional) (c) ein Betriebsmodussignal 120 empfangen und die empfangenen Eingaben verarbeiten, um eine Zugriffsbestimmung für die jeweilige Peripherie 104a-104n vorzunehmen. Der Einfachheit halber sind die Zugriffsanfrage (ACR in den 1-2 und TH_id in 3) und das optionale Betriebsmodussignal (120 in den 1-2 und 120a-120n in 3) in den 1-3 so veranschaulicht, dass sie nur an die Zugriffssteuerung 106a übertragen werden; es versteht sich, dass Zugriffsanfragen und optionale Betriebsmodussignale in ähnlicher Weise an die Zugriffssteuerungen 106b-106n für Operationen übertragen werden können, die sich auf die jeweiligen Zugriffssteuerungen 106b-106n beziehen.As in 1 As shown, the respective access controller 106a-106n may receive as inputs (a) an access request (ACR) for a respective peripheral 104a-104n, (b) a respective AC identifier 112a-112n, and (optionally) (c) an operating mode signal 120, and process the received inputs to make an access determination for the respective peripheral 104a-104n. For simplicity, the access request (ACR in the 1-2 and TH_id in 3 ) and the optional operating mode signal (120 in the 1-2 and 120a-120n in 3 ) in the 1-3 illustrated as being transmitted only to access controller 106a; it is understood that access requests and optional operating mode signals may be similarly transmitted to access controllers 106b-106n for operations related to the respective access controllers 106b-106n.

Wie oben beschrieben, können in einigen Beispielen die jeweiligen Zugriffssteuerungen 106a-106n der elektronischen Vorrichtung 100 eine entsprechende Nachschlagetabelle (LUT) aufweisen (oder darauf zugreifen), die im Speicher 107 (z.B. ROM) gespeichert ist und eine entsprechende Zugriffsbestimmung für jeden AC_ID-Wert definiert (z.B. gemäß dem in Tabelle 1 oben definierten Schema) oder eine entsprechende Zugriffsbestimmung für jede Kombination von AC_ID-Wert und Betriebsmodussignalwert definiert (z.B. gemäß dem in Tabelle 2 oben definierten Schema). In anderen Beispielen, z.B. wie in den unten erläuterten 4A und 4B dargestellt, kann die jeweilige Zugriffssteuerung 106a-106n eine logische Schaltung 108 aufweisen, die ein oder mehrere logische Gatter beinhaltet, z.B. ein NOT-Gatter (z.B. zur Umsetzung des in Tabelle 1 oben definierten Schemas) oder ein NOT-Gatter und ein OR-Gatter (z.B. zur Umsetzung des in Tabelle 2 oben definierten Schemas).As described above, in some examples, the respective access controllers 106a-106n of the electronic device 100 may include (or access) a corresponding lookup table (LUT) stored in the memory 107 (e.g., ROM) that defines a corresponding access determination for each AC_ID value (e.g., according to the scheme defined in Table 1 above) or defines a corresponding access determination for each combination of AC_ID value and operating mode signal value (e.g., according to the scheme defined in Table 2 above). In other examples, e.g., as explained below, 4A and 4B As shown, the respective access controller 106a-106n may comprise a logic circuit 108 including one or more logic gates, e.g., a NOT gate (e.g., for implementing the scheme defined in Table 1 above) or a NOT gate and an OR gate (e.g., for implementing the scheme defined in Table 2 above).

In einigen Beispielen kann die elektronische Vorrichtung 100 eine Firmware zur Programmierung von AC-Identifikatoren aufweisen, die vom Transaktions-Host 102 ausgeführt werden kann, um eine, einige oder alle AC-Identifikatoren 112a-112n dynamisch zu programmieren, z.B. auf der Grundlage eines Betriebsmodus des Transaktions-Hosts und/oder auf der Grundlage einer jeweiligen Peripherie 104a-104n, die für den Zugriff ausgewählt wurde (hier als zugriffsangeforderte Peripherie 104a-104n bezeichnet), um z.B. Aufgaben in Bezug auf die jeweilige Peripherie 104a-104n zu initiieren. Darüber hinaus ist in einigen Beispielen, wie nachstehend unter Bezugnahme auf 2 erörtert, das Zugriffssteuerungsregister 110 in einer dedizierten Peripherie bereitgestellt, die (wie die Peripherien 104a-104n) auch durch eine entsprechende Zugriffssteuerung zugriffsgesteuert werden kann, wobei z.B. die Zugriffssteuerungsidentifikatoren-Programmierfirmware nur in einem privilegierten Modus des Transaktions-Hosts 102 auf das Zugriffssteuerungsregister 110 zugreifen kann (z.B. zur Programmierung der Zugriffssteuerungsidentifikatoren 112a-112n) und nicht in einem Benutzermodus des Transaktions-Hosts 102.In some examples, the electronic device 100 may include AC identifier programming firmware that may be executed by the transaction host 102 to dynamically program one, some, or all of the AC identifiers 112a-112n, e.g., based on an operating mode of the transaction host and/or based on a respective peripheral 104a-104n selected for access (referred to herein as access-requested peripheral 104a-104n), e.g., to perform tasks with respect to the respective peripheral 104a-104n. In addition, in some examples, as described below with reference to 2 discussed, the access control register 110 is provided in a dedicated peripheral that (like the peripherals 104a-104n) can also be access controlled by a corresponding access controller, e.g., the access control identifier programming firmware can only access the access control register 110 in a privileged mode of the transaction host 102 (e.g., for programming the access control identifiers 112a-112n) and not in a user mode of the transaction host 102.

2 veranschaulicht zusätzliche Merkmale und Aspekte der elektronischen Vorrichtung (z.B. eines SoC) 100 aus 1 gemäß einem Beispiel. Wie oben beschrieben, weist die elektronische Vorrichtung 100 den Transaktions-Host 102, die Peripherien 104a-104n, die Zugriffssteuerungen 106a-106n und das Zugriffssteuerungsregister 110 auf, das die Zugriffssteuerungsidentifikatoren 112a-112n speichert. Die Komponenten der elektronischen Vorrichtung 100 können über eine oder mehrere Arten von Kommunikationsverbindungen 114 miteinander verbunden sein, z.B. über Busse, Drähte oder andere Arten von Verbindungen. Wie oben beschrieben, verwendet die jeweilige Zugriffssteuerung 106a-106n die jeweiligen Zugriffssteuerungsidentifikatoren 112a-112n (und optional zusätzliche Eingabedaten), um den Zugriff auf die jeweiligen Peripherien 104a-104n zu steuern, z.B. auf der Grundlage eines Betriebsmodus (z.B. privilegierter Modus oder Benutzermodus) des Transaktions-Hosts 102 und/oder auf der Grundlage der Peripherie 104a-104n, auf die zugegriffen werden soll (d.h. die Peripherie 104a-104n, für die der Zugriff angefragt wird). Die Zugriffssteuerung 106a-106n kann jedes der verschiedenen oben beschriebenen Beispielschemata implementieren, z.B. unter Verwendung des Zugriffssteuerungsidentifikatoren-Schemas, das in Tabelle 1 oder Tabelle 2 beschrieben ist. 2 illustrates additional features and aspects of the electronic device (eg, a SoC) 100 of 1 according to one example. As described above, the electronic device 100 includes the transaction host 102, the peripherals 104a-104n, the access controllers 106a-106n, and the access control register 110 that stores the access control identifiers 112a-112n. The components of the electronic device 100 may be interconnected via one or more types of communication connections 114, such as buses, wires, or other types of connections. As described above, the respective access controller 106a-106n uses the respective access control identifiers 112a-112n (and optionally additional input data) to control access to the respective peripherals 104a-104n, e.g., based on an operating mode (e.g., privileged mode or user mode) of the transaction host 102 and/or based on the peripheral 104a-104n to be accessed (i.e., the peripheral 104a-104n for which access is requested). The access controller 106a-106n may implement any of the various example schemes described above, e.g., using the access control identifier scheme described in Table 1 or Table 2.

Wie in 2 gezeigt, kann das Zugriffssteuerungsregister 110, das die Zugriffssteuerungsidentifikatoren 112a-112n beinhaltet, in einer dedizierten Peripherie 104ac bereitgestellt werden, und die entsprechende Zugriffssteuerung 106ac kann bereitgestellt werden, um den Zugriff auf die Peripherie 104ac zu steuern, z.B. ähnlich wie die Zugriffssteuerung 106a-106n, die den Zugriff auf die Peripherien 104a-102n steuert. Zum Beispiel kann die Zugriffssteuerung 106ac den Zugriff auf die Peripherie 104ac auf der Grundlage eines Betriebsmodussignals 120 vom Transaktions-Host 102 und (optional) eines entsprechenden AC-Identifikators 112ac steuern. In einigen Beispielen kann die Zugriffssteuerung 106ac den Zugriff auf die Peripherie 104ac auf der Grundlage des Betriebsmodussignals 120 des Transaktions-Hosts 102 steuern. In anderen Beispielen kann die Zugriffssteuerung 106ac ähnlich wie die Zugriffssteuerung 106a-106n arbeiten, z.B. auf der Grundlage eines entsprechenden AC-Identifikators 112ac und/oder eines Betriebsmodussignals 120 und unter Verwendung eines Zugriffssteuerungsidentifikatoren-Schemas, wie es in Tabelle 1 oder Tabelle 2 oben beschrieben ist.As in 2 As shown, the access control register 110 including the access control identifiers 112a-112n may be provided in a dedicated peripheral 104ac, and the corresponding access controller 106ac may be provided to control access to the peripheral 104ac, e.g., similar to the access controller 106a-106n controlling access to the peripherals 104a-102n. For example, the access controller 106ac may control access to the peripheral 104ac based on an operating mode signal 120 from the transaction host 102 and (optionally) a corresponding AC identifier 112ac. In some examples, the access controller 106ac may control access to the peripheral 104ac based on the operating mode signal 120 of the transaction host 102. In other examples, access controller 106ac may operate similarly to access controller 106a-106n, e.g., based on a corresponding AC identifier 112ac and/or an operating mode signal 120 and using an access control identifier scheme as described in Table 1 or Table 2 above.

Wie in 2 dargestellt, kann die elektronische Vorrichtung 100 auch einen nicht-transitorischen Speicher 202 aufweisen, in dem verschiedene Firmware und andere Daten gespeichert sind. Der nicht-transitorische Speicher 202 (auch als Speicher 202 bezeichnet) kann einen oder mehrere Nur-Lese-Speicher (ROM) aufweisen, beispielsweise Flash-ROM, löschbares programmierbares ROM (EPROM), elektrisch löschbares programmierbares ROM (EEPROM), Flash-Speicher oder jede andere geeignete Art und Anzahl von Speichervorrichtung(en).As in 2 As shown, the electronic device 100 may also include a non-transitory memory 202 in which various firmware and other data are stored. The non-transitory memory 202 (also referred to as memory 202) may include one or more read-only memories (ROM), such as flash ROM, erasable programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM), flash memory, or any other suitable type and number of storage device(s).

Wie dargestellt, kann der Speicher 202 einen privilegierten Bereich 202a und einen nichtprivilegierten Bereich (oder Benutzerbereich) 202b aufweisen. Der nicht privilegierte Bereich 202b kann computerlesbaren Benutzerraum-Code 208 speichern, z.B. in Form von Firmware, z.B. den jeweiligen Peripherien 104a-104n zugeordnete Gerätetreiber und/oder andere Benutzerraum-Firmware. Der User-Space-Code (z.B. die User-Space-Firmware) 208 kann Funktionen aufweisen, die nur auf ausgewählte Ressourcen (z.B. ausgewählte Peripherien 104a-104n) zugreifen müssen oder können. So kann der User-Space-Code 208 beispielsweise Gerätetreiber oder andere Firmware aufweisen, die entsprechende Aufgaben 220a-220n beinhalten, die den Zugriff auf ausgewählte Peripherien 104a-104n benötigen oder nutzen können, z.B. um auf Daten zuzugreifen, die in entsprechenden Registern 214a-214n gespeichert sind, die in den entsprechenden Peripherien 104a-104n bereitgestellt werden. So können Gerätetreiber, die üblicherweise als Supervisor-Firmware arbeiten, als User-Space-Firmware betrieben werden, die nur Zugriff auf ausgewählte Ressourcen (z.B. ausgewählte Peripherien 104a-104n) aufweist, um so eine erhöhte Sicherheit bereitzustellen, wie hier beschrieben.As shown, the memory 202 may include a privileged area 202a and a non-privileged area (or user area) 202b. The non-privileged area 202b may store computer-readable user space code 208, e.g., in the form of firmware, e.g., device drivers associated with the respective peripherals 104a-104n and/or other user space firmware. The user space code (e.g., the user space firmware) 208 may include functions that need or can access only selected resources (e.g., selected peripherals 104a-104n). For example, the user space code 208 may include device drivers or other firmware that include corresponding tasks 220a-220n that require or may utilize access to selected peripherals 104a-104n, e.g., to access data stored in corresponding registers 214a-214n provided in the corresponding peripherals 104a-104n. For example, device drivers that typically operate as supervisor firmware may operate as user space firmware that only has access to selected resources (e.g., selected peripherals 104a-104n) to provide enhanced security, as described herein.

Der privilegierte Bereich 202a kann den Supervisor-Code (z.B. die Supervisor-Firmware) 206 und eine Bitmasken-Datenstruktur 230 speichern. Die Bitmasken-Datenstruktur 230 kann Bitmasken 232a-232n aufweisen, die jeweils mit den Aufgaben 230a-230n korrespondieren, wobei eine jeweilige Bitmaske 232n für eine jeweilige Aufgabe 230n die jeweiligen Zugriffseinstellungen für die jeweiligen Peripherien 104a-104n anzeigt, z.B. angibt, ob der jeweiligen Aufgabe 230n eine Peripherie-Zugriffsberechtigung für die jeweiligen Peripherien 104a-104n zugeordnet ist. In 2 kann beispielsweise die Bitmaske 232a der Task 1, die „Task 1“ 220a zugeordnet ist, angeben, dass „Task 1“ 220a eine Peripherie-Zugriffsberechtigung für die erste Peripherie 104a, aber nicht für die zweite Peripherie 104b zugeordnet ist; und die Bitmaske 232b der Aufgabe 2, die „Task 2“ 220b zugeordnet ist, kann angeben, dass „Task 2“ 220b eine Peripherie-Zugriffsberechtigung für die zweite Peripherie 104b, aber nicht für die erste Peripherie 104a zugeordnet ist.The privileged area 202a may store the supervisor code (eg, the supervisor firmware) 206 and a bit mask data structure 230. The bit mask data structure 230 may include bit masks 232a-232n corresponding to the tasks 230a-230n, respectively, wherein a respective bit mask 232n for a respective task 230n contains the respective access settings for the respective peripherals 104a-104n. , e.g. whether the respective task 230n is assigned a peripheral access authorization for the respective peripherals 104a-104n. In 2 For example, the bit mask 232a of task 1 associated with "Task 1" 220a may indicate that "Task 1" 220a is associated with a peripheral access permission for the first peripheral 104a but not for the second peripheral 104b; and the bit mask 232b of task 2 associated with "Task 2" 220b may indicate that "Task 2" 220b is associated with a peripheral access permission for the second peripheral 104b but not for the first peripheral 104a.

In einigen Beispielen kann eine entsprechende Bitmaske 232a - 232n für eine entsprechende Aufgabe 220a - 220n ein Bit oder mehrere Bits (hier auch als „Bitmaskenbits“ bezeichnet) oder andere Daten aufweisen, die angeben, ob der entsprechenden Aufgabe 220a - 220n eine Peripherie-Zugriffsberechtigung für die entsprechenden Peripherien 104a - 104n zugeordnet ist. Zum Beispiel kann die Bitmaske 232a der Task 1, die der „Task 1“ 220a zugeordnet ist, ein oder mehrere erste Bitmaskenbits oder andere Daten aufweisen, die angeben, dass die „Task 1“ 220a der ersten Peripherie 104a zugewiesen ist, und ein oder mehrere zweite Bitmaskenbits oder andere Daten, die angeben, dass die „Task 1“ 220a der zweiten Peripherie 104b nicht zugewiesen ist.In some examples, a corresponding bit mask 232a-232n for a corresponding task 220a-220n may include one or more bits (also referred to herein as "bit mask bits") or other data indicating whether the corresponding task 220a-220n is associated with a peripheral access permission for the corresponding peripherals 104a-104n. For example, the bit mask 232a of task 1 associated with "task 1" 220a may include one or more first bit mask bits or other data indicating that the "task 1" 220a is assigned to the first peripheral 104a and one or more second bit mask bits or other data indicating that the "task 1" 220a is not assigned to the second peripheral 104b.

Der Supervisor-Code (z.B. die Supervisor-Firmware) 206 kann einen Scheduler 212 und Befehle zur Verwaltung der Zugriffssteuerungsidentifikatoren 214 beinhalten. Der Scheduler 212 wird vom Transaktions-Host 102 ausgeführt, um die Ausführung von User-Space-Code (z.B. User-Space-Firmware) 208 zu verwalten, der z.B. die Aufgaben 220a-220n beinhaltet. Die Befehle 214 zur Verwaltung der Zugriffssteuerungsidentifikatoren können vom Transaktions-Host 102 ausgeführt werden, um (a) auf die Bitmasken 232a-232n zuzugreifen und (b) die Werte der Zugriffssteuerungsidentifikatoren 112a-112n im Zugriffssteuerungsregister 110 auf der Grundlage der jeweiligen Bitmasken 232a-232n zu programmieren, die den jeweiligen auszuführenden Aufgaben 220a-220n entsprechen. In einigen Beispielen, z.B. bestimmten Implementierungen des oben beschriebenen ersten Beispiels für Zugriffssteuerungsidentifikatoren (siehe Tabelle 1), kann der Transaktions-Host 102 die Bitmasken 232a-232n für Operationen im Benutzermodus (z.B. für die Ausführung der jeweiligen Aufgaben 220a-220n in einem Benutzermodus), aber nicht für Operationen im privilegierten Modus (z.B. für die Ausführung der jeweiligen Aufgaben 220a-220n in einem privilegierten Modus) verwenden. (In anderen Implementierungen des ersten Beispiels für Zugriffssteuerungsidentifikatoren (siehe Tabelle 1) kann der Transaktions-Host 102 die Bitmasken 232a-232n sowohl für Operationen im Benutzermodus als auch im privilegierten Modus verwenden).The supervisor code (e.g., supervisor firmware) 206 may include a scheduler 212 and instructions for managing the access control identifiers 214. The scheduler 212 is executed by the transaction host 102 to manage the execution of user space code (e.g., user space firmware) 208, including, for example, tasks 220a-220n. The access control identifier management instructions 214 may be executed by the transaction host 102 to (a) access the bit masks 232a-232n and (b) program the values of the access control identifiers 112a-112n in the access control register 110 based on the respective bit masks 232a-232n corresponding to the respective tasks 220a-220n to be performed. In some examples, e.g., certain implementations of the first example of access control identifiers described above (see Table 1), the transaction host 102 may use the bit masks 232a-232n for user mode operations (e.g., for performing the respective tasks 220a-220n in a user mode), but not for privileged mode operations (e.g., for performing the respective tasks 220a-220n in a privileged mode). (In other implementations of the first example of access control identifiers (see Table 1), the transaction host 102 may use the bit masks 232a-232n for both user mode and privileged mode operations.)

Zum Beispiel kann der Transaktions-Host 102 vor der Ausführung der „Task 1“ 220a die Befehle 214 zur Verwaltung der Zugriffssteuerungsidentifikatoren ausführen, um die Werte der Zugriffssteuerungsidentifikatoren 112a-112n im Zugriffssteuerungsregister 110 auf der Grundlage der Bitmaske 232a für Task 1 und/oder auf der Grundlage des Betriebsmodus (z.B. privilegierter Modus oder Benutzermodus) des Transaktions-Hosts 102 zu programmieren. Es wird eine Beispielimplementierung sowohl gemäß dem oben beschriebenen ersten Beispiel für Zugriffssteuerungsidentifikatoren (siehe Tabelle 1) als auch gemäß dem oben beschriebenen zweiten Beispiel für Zugriffssteuerungsidentifikatoren (siehe Tabelle 2) bereitgestellt.For example, prior to executing "Task 1" 220a, transaction host 102 may execute access control identifier management instructions 214 to program the values of access control identifiers 112a-112n in access control register 110 based on task 1 bit mask 232a and/or based on the mode of operation (e.g., privileged mode or user mode) of transaction host 102. An example implementation is provided in accordance with both the first example of access control identifiers described above (see Table 1) and the second example of access control identifiers described above (see Table 2).

Beispiel 1: Erstes Beispiel eines Zugriffssteuerungsidentifikatoren-Schemas (Tabelle 1). Nach dem ersten Beispiel des oben beschriebenen Zugriffssteuerungsidentifikator-Schemas (siehe Tabelle 1) kann der Transaktions-Host 102 die Bitmaske 232a für die Ausführung von „Task 1“ 220a in einem Benutzermodus verwenden, nicht aber für die Ausführung von „Task 1“ 220a in einem privilegierten Modus. Zum Beispiel kann der Transaktions-Host 102 vor der Ausführung von „Task 1“ 220a in einem Benutzermodus Zugriffssteuerungsidentifikator-Verwaltungsbefehle 214 ausführen, um (a) zu identifizieren, dass „Task 1“ 220a im Benutzermodus des Transaktions-Hosts 102 ausgeführt werden soll, (b) auf die erste Bitmaske 232a zuzugreifen, die angibt, dass „Task 1“ 220a eine Peripherie-Zugriffsberechtigung für die erste Peripherie 104a, aber nicht für die zweite Peripherie 104b zugewiesen ist, und (c) auf der Grundlage der ersten Bitmaske 232a und des aktuellen Betriebsmodus (Benutzermodus) den ersten Zugriffssteuerungsidentifikator 112a auf einen Wert für ermöglichten Zugriff (AC_ID Wert=0) zu programmieren, der den Zugriff auf die erste Peripherie 104a während der Ausführung von „Task 1“ 220a im Benutzermodus ermöglicht, und (b) den zweiten Zugriffssteuerungsidentifikator 112b auf einen Wert für verhinderten Zugriff (AC_ID Wert=0) zu programmieren, der den Zugriff auf die zweite Peripherie 104b während der Ausführung von „Task 1“ 220a im Benutzermodus verhindert. Im Gegensatz dazu kann der Transaktions-Host 102 vor der Ausführung von „Task 1“ 220a in einem privilegierten Modus (unter dem ersten Beispiel des Zugriffssteuerungsidentifikatoren-Schemas, das in Tabelle 1 oben gezeigt wird) Befehle zur Verwaltung der Zugriffssteuerungsidentifikatoren 214 ausführen, um sowohl den ersten Zugriffssteuerungsidentifikator 112a als auch den zweiten Zugriffssteuerungsidentifikator 112b auf den Wert für den ermöglichten Zugriff (AC_ID-Wert=0) zu programmieren, der den Zugriff sowohl auf die erste Peripherie 104a als auch auf die zweite Peripherie 104b während der Ausführung von „Task 1“ 220a im privilegierten Modus ermöglicht. In dieser Situation kann der Transaktions-Host 102 die Bitmaske 232a für Task 1 ignorieren, da alle Peripherien 104a-104n für Operationen im privilegierten Modus zugänglich sein sollen.Example 1: First Example of Access Control Identifier Scheme (Table 1). According to the first example of the access control identifier scheme described above (see Table 1), the transaction host 102 may use the bit mask 232a for executing "Task 1" 220a in a user mode, but not for executing "Task 1" 220a in a privileged mode. For example, prior to executing "Task 1" 220a in a user mode, the transaction host 102 may execute access control identifier management commands 214 to (a) identify that "Task 1" 220a is to be executed in the user mode of the transaction host 102, (b) access the first bit mask 232a indicating that "Task 1" 220a is assigned a peripheral access permission for the first peripheral 104a but not for the second peripheral 104b, and (c) based on the first bit mask 232a and the current operating mode (user mode), program the first access control identifier 112a to an enabled access value (AC_ID value=0) that allows access to the first peripheral 104a during execution of "Task 1." 220a in user mode, and (b) program the second access control identifier 112b to a prevented access value (AC_ID value=0) that prevents access to the second peripheral 104b during execution of “Task 1” 220a in user mode. In contrast, prior to executing "Task 1" 220a, in a privileged mode (under the first example of the access control identifier scheme shown in Table 1 above), the transaction host 102 may execute access control identifier management instructions 214 to program both the first access control identifier 112a and the second access control identifier 112b to the enabled access value (AC_ID value=0) that allows access to both the first peripheral 104a and the second peripheral 104b during the execution. execution of "Task 1" 220a in privileged mode. In this situation, the transaction host 102 may ignore the bit mask 232a for Task 1 since all peripherals 104a-104n should be accessible for privileged mode operations.

Wie bereits erwähnt, kann der Transaktions-Host 102 in anderen Beispielen, die das erste Beispiel eines Zugriffssteuerungsidentifikators verwenden (siehe Tabelle 1), die Bitmasken 232a-232n sowohl für Operationen im Benutzermodus als auch im privilegierten Modus verwenden.As previously mentioned, in other examples using the first example of an access control identifier (see Table 1), the transaction host 102 may use the bit masks 232a-232n for both user mode and privileged mode operations.

Beispiel 2: zweites Beispiel eines Zugriffssteuerungsidentifikators (Tabelle 2). Im Rahmen des oben beschriebenen zweiten Beispiels für Zugriffssteuerungsidentifikatoren (siehe Tabelle 2) kann der Transaktions-Host 102 vor der Ausführung der „Task 1“ 220a (entweder im Benutzermodus oder im privilegierten Modus) die Befehle 214 zur Verwaltung der Steuerbits ausführen, um (a) den ersten Zugriffssteuerungsidentifikator 112a für die erste Peripherie 104a auf eine Einstellung mit offenem Zugriff (AC_ID-Wert=0) zu programmieren, die den Zugriff auf die erste Peripherie 104a sowohl in einem privilegierten Modus als auch in einem Benutzermodus des Transaktions-Hosts 102 ermöglicht, und (b) den zweiten Zugriffssteuerungsidentifikator 112b auf eine Einstellung mit eingeschränktem Zugriff (AC_ID Wert=1) für die zweite Peripherie 104b zu programmieren, die den Zugriff auf die zweite Peripherie 104b in einem privilegierten Modus, aber nicht in einem Benutzermodus des Transaktions-Hosts 102 ermöglicht.Example 2: second example of an access control identifier (Table 2). In the second example of access control identifiers described above (see Table 2), prior to executing “Task 1” 220a (either in user mode or privileged mode), transaction host 102 may execute control bit management instructions 214 to (a) program first access control identifier 112a for first peripheral 104a to an open access setting (AC_ID value=0) that allows access to first peripheral 104a in both a privileged mode and a user mode of transaction host 102, and (b) program second access control identifier 112b to a restricted access setting (AC_ID value=1) for second peripheral 104b that allows access to second peripheral 104b in a privileged mode but not in a user mode of the transaction host 102.

3 veranschaulicht ein weiteres Beispiel einer elektronischen Vorrichtung 300, die gemäß einem Beispiel programmierbare Zugriffssteuerungsidentifikatoren verwendet, um den Zugriff auf Peripherien zu steuern. Die elektronische Vorrichtung 300 ähnelt im Allgemeinen der oben beschriebenen elektronischen Vorrichtung 100, beinhaltet jedoch zusätzlich zu den Peripherien 104a-104n und 104ac mehrere Transaktions-Hosts 102a-102n, Zugriffssteuerungen 106a-106n und 106ac sowie ein Zugriffssteuerungsregister 110 innerhalb der Peripherie 104ac, in dem Zugriffssteuerungsidentifikatoren 112 gespeichert sind. Die Komponenten der elektronischen Vorrichtung 100 können über eine oder mehrere Arten von Kommunikationsverbindungen 114 miteinander verbunden sein, z.B. über Busse, Drähte oder andere Arten von Verbindungen. 3 illustrates another example of an electronic device 300 that uses programmable access control identifiers to control access to peripherals, according to one example. The electronic device 300 is generally similar to the electronic device 100 described above, but includes, in addition to the peripherals 104a-104n and 104ac, a plurality of transaction hosts 102a-102n, access controllers 106a-106n and 106ac, and an access control register 110 within the peripheral 104ac in which access control identifiers 112 are stored. The components of the electronic device 100 may be interconnected via one or more types of communication connections 114, e.g., via buses, wires, or other types of connections.

Die jeweiligen Zugriffssteuerungen 106a-106n und 106ac können die jeweiligen Zugriffssteuerungsidentifikatoren 112 (und optional zusätzliche Eingabedaten) verwenden, um den Zugriff auf die jeweiligen Peripherien 104a-104n und 104ac zu steuern, z.B., basierend auf (a) der Peripherie 104a-104n, die den Zugriff betreibbar macht, (b) dem jeweiligen Transaktions-Host 102a-102n, der den Zugriff auf die Peripherie 104a-104n, die den Zugriff betreibbar macht, anfragt (hier als zugriffsanfordernder Transaktions-Host 102a-102n bezeichnet), und (b) einem Betriebsmodussignal 120a 120n (z.B. privilegierter Modus oder Benutzermodus) des zugriffsanfordernden Transaktions-Hosts 102a-102n.The respective access controllers 106a-106n and 106ac may use the respective access control identifiers 112 (and optionally additional input data) to control access to the respective peripherals 104a-104n and 104ac, e.g., based on (a) the peripheral 104a-104n making the access operable, (b) the respective transaction host 102a-102n requesting access to the peripheral 104a-104n making the access operable (referred to herein as an access-requesting transaction host 102a-102n), and (b) an operating mode signal 120a 120n (e.g., privileged mode or user mode) of the access-requesting transaction host 102a-102n.

Das Zugriffssteuerungsregister 110 kann ein Zugriffssteuerungsidentifikatoren-Array 113 speichern, das einen jeweiligen Satz von Zugriffssteuerungsidentifikatoren 112 für die jeweiligen Transaktions-Hosts 102a-102n beinhaltet, wobei der Satz von Zugriffssteuerungsidentifikatoren 112 für den jeweiligen Transaktions-Host 102a-102n einen jeweiligen Zugriffssteuerungsidentifikator 112 für die jeweiligen Peripherien 104a-104n und (optional) für Peripherie 104ac aufweist. Die folgende Tabelle 3 zeigt ein Beispiel für ein AC-Identifikator-Array 113 für mehrere Transaktions-Hosts 102a-102n und mehrere Peripherien 104a-104n und 104ac.The access control register 110 may store an access control identifier array 113 including a respective set of access control identifiers 112 for the respective transaction hosts 102a-102n, wherein the set of access control identifiers 112 for the respective transaction host 102a-102n includes a respective access control identifier 112 for the respective peripherals 104a-104n and (optionally) for peripheral 104ac. The following Table 3 shows an example of an AC identifier array 113 for multiple transaction hosts 102a-102n and multiple peripherals 104a-104n and 104ac.

Tabelle 3. Beispiel für ein AC-Identifikatoren-Array 113 für eine elektronische Vorrichtung 300, die mehrere Transaktions-Hosts 102a-102n und mehrere Peripherien 104a-104n und 104ac aufweist. Peripherie Transaktions-Host 104a 104b 104c ... 104n 104ac 102a 1 1 1 ... 1 1 102b 1 0 1 ... 1 1 ... ... ... ... ... ... ... 102n 1 1 1 1 1 Table 3. Example of an AC identifier array 113 for an electronic device 300 having multiple transaction hosts 102a-102n and multiple peripherals 104a-104n and 104ac. periphery transaction host 104a 104b 104c ... 104n 104ac 102a 1 1 1 ... 1 1 102b 1 0 1 ... 1 1 ... ... ... ... ... ... ... 102n 1 1 1 1 1

Die Werte der AC-Identifikatoren 112 im AC-Identifikatoren-Array 113 können von den jeweiligen Zugriffssteuerungen 106a-106n und 106ac verwendet werden, um den Zugriff auf die jeweiligen Peripherien 104a-104n und 104ac durch die jeweiligen Transaktions-Hosts 102a-102n zu bestimmen.The values of the AC identifiers 112 in the AC identifier array 113 may be used by the respective access controllers 106a-106n and 106ac to determine access to the respective peripherals 104a-104n and 104ac by the respective transaction hosts 102a-102n.

In einem Beispiel können die Werte der AC-Identifikatoren 112 im AC-Identifikatoren-Array 113 einen Status angeben, der den Zugriff ermöglicht (AC_ID-Wert=0) oder verhindert (AC_ID-Wert=1), z.B. wie oben in Tabelle 1 beschrieben. Wenn in einem solchen Beispiel ein zugriffsanfordernder Transaktions-Host 102a-102n versucht, auf eine zugriffsanfordernde Peripherie 104a-104n oder 104ac zuzugreifen, kann die Zugriffssteuerung 106a-106n oder 106ac, die der zugriffsanfordernden Peripherie 104a-104n oder 104ac zugeordnet ist, (a) eine Zugriffsanfrage vom zugriffsanfordernden Transaktions-Host 102a-102n empfangen, die einen Identifikator des Transaktions-Hosts 10 (TH_id) beinhaltet, (b) aus dem im Zugriffssteuerungsregister 110 gespeicherten AC-Identifikator-Array 113 den Wert des AC-Identifikators 112 identifizieren, der dem zugriffsanfragenden Transaktions-Host 102a-102n (auf der Grundlage der empfangenen TH_id) und der zugriffsanfragenden Peripherie 104a-104n oder 104ac zugeordnet ist, und (c) eine Zugriffsbestimmung durchführen, um den Zugriff auf die zugriffsanfragende Peripherie 104a-104n oder 104ac durch den zugriffsanfragenden Transaktions-Host 102a-102n auf der Grundlage des identifizierten AC-Identifikators 112 zu ermöglichen oder zu verhindern (i. e., Ermöglichen des Zugriffs, wenn der AC_ID-Wert=0 ist, und Verhindern des Zugriffs, wenn der AC_ID-Wert=1 ist), und (d) Ermöglichen oder Verhindern des Zugriffs auf die Peripherie 104a-104n oder 104ac, die den Zugriff angefragt hat, basierend auf der Zugriffsbestimmung.In one example, the values of the AC identifiers 112 in the AC identifiers array 113 may indicate a status that allows (AC_ID value=0) or prevents (AC_ID value=1) access, e.g. as described above in Table 1. In such an example, when an access requesting transaction host 102a-102n attempts to access an access requesting peripheral 104a-104n or 104ac, the access controller 106a-106n or 106ac associated with the access requesting peripheral 104a-104n or 104ac may (a) receive an access request from the access requesting transaction host 102a-102n that includes an identifier of the transaction host 10 (TH_id), (b) identify from the AC identifier array 113 stored in the access control register 110 the value of the AC identifier 112 associated with the access requesting transaction host 102a-102n (based on the received TH_id) and the access requesting peripheral 104a-104n or 104ac, and (c) make an access determination to allow or prevent access to the access-requesting peripheral 104a-104n or 104ac by the access-requesting transaction host 102a-102n based on the identified AC identifier 112 (ie, allowing access if the AC_ID value=0 and preventing access if the AC_ID value=1), and (d) allowing or preventing access to the peripheral 104a-104n or 104ac that requested access based on the access determination.

In einem anderen Beispiel können die Werte der AC-Identifikatoren 112 im AC-Identifikatoren-Array 113 einen Status mit offenem Zugriff (AC_ID-Wert=0) oder einen Status mit eingeschränktem Zugriff (AC_ID-Wert=1) angeben, z.B. wie oben in Tabelle 2 beschrieben. Wenn in einem solchen Beispiel ein Transaktions-Host 102a-102n versucht, auf eine Peripherie 104a-104n oder 104ac zuzugreifen, kann die Zugriffssteuerung 106a-106n oder 106ac, die der Peripherie 104a-104n oder 104ac zugeordnet ist, (a) eine Zugriffsanfrage, die eine TH_id beinhaltet, von dem Transaktions-Host 102a-102n, der den Zugriff anfordert, empfangen; (b) ein entsprechendes Betriebsmodussignal 120a-120n vom zugriffsanfordernden Transaktions-Host 102a-102n empfangen, das den Betriebsmodus (privilegierter Modus oder Benutzermodus) des zugriffsanfragenden Transaktions-Hosts 102a-102n angibt; (c) den Wert des Zugriffssteuerungsidentifikators 112, der dem zugriffsanfordernden Transaktions-Host 102a-102n (basierend auf der empfangenen TH_id) und der zugriffsanfragenden Peripherie 104a-104n oder 104ac zugeordnet ist, aus dem im Zugriffssteuerungsregister 110 gespeicherten AC-Identifikator-Array 113 identifizieren; (d) eine Zugriffsbestimmung durchführen, um den Zugriff auf die zugriffsanfragende Peripherie 104a-104n oder 104ac durch den zugriffsanfragenden Transaktions-Host 102a-102n basierend auf dem Wert des identifizierten AC-Identifikators 112 und dem Betriebsmodus des zugriffsanfragenden Transaktions-Hosts 102a-102n zu ermöglichen oder zu verhindern, z.B., gemäß dem oben in Bezug auf Tabelle 2 besprochenen Schema; und (e) den Zugriff auf die angefragte Peripherie 104a-104n oder 104ac basierend auf der Zugriffsbestimmung ermöglichen oder verhindern.In another example, the values of the AC identifiers 112 in the AC identifiers array 113 may indicate an open access status (AC_ID value=0) or a restricted access status (AC_ID value=1), e.g., as described above in Table 2. In such an example, when a transaction host 102a-102n attempts to access a peripheral 104a-104n or 104ac, the access controller 106a-106n or 106ac associated with the peripheral 104a-104n or 104ac may (a) receive an access request including a TH_id from the transaction host 102a-102n requesting access; (b) receive a corresponding operating mode signal 120a-120n from the access requesting transaction host 102a-102n indicating the operating mode (privileged mode or user mode) of the access requesting transaction host 102a-102n; (c) identify the value of the access control identifier 112 associated with the access requesting transaction host 102a-102n (based on the received TH_id) and the access requesting peripheral 104a-104n or 104ac from the AC identifier array 113 stored in the access control register 110; (d) make an access determination to allow or prevent access to the access-requesting peripheral 104a-104n or 104ac by the access-requesting transaction host 102a-102n based on the value of the identified AC identifier 112 and the operating mode of the access-requesting transaction host 102a-102n, e.g., according to the scheme discussed above with respect to Table 2; and (e) allow or prevent access to the requested peripheral 104a-104n or 104ac based on the access determination.

Wie oben besprochen, können in einigen Beispielen die jeweiligen Zugriffssteuerungen 106a-106n der elektronischen Vorrichtung 100 eine entsprechende Instanz des Speichers 107 aufweisen, in dem eine Nachschlagetabelle (LUT) gespeichert ist, oder sie können alternativ eine entsprechende Instanz der logischen Schaltung 108 aufweisen, um das in Tabelle 1 oder Tabelle 2 definierte Zugriffsbestimmungsschema umzusetzen.As discussed above, in some examples, the respective access controllers 106a-106n of the electronic device 100 may include a corresponding instance of the memory 107 in which a look-up table (LUT) is stored, or may alternatively include a corresponding instance of the logic circuit 108 to implement the access determination scheme defined in Table 1 or Table 2.

In Bezug auf Letzteres zeigen die 4A-4D Schaltpläne von Beispielen logischer Schaltungen 108, die gemäß einigen Beispielen in den jeweiligen Zugriffssteuerungen 106a-106n (und optional der Zugriffssteuerung 106ac) bereitgestellt werden.Regarding the latter, the 4A-4D Circuit diagrams of examples of logic circuits 108 provided in the respective access controllers 106a-106n (and optionally the access controller 106ac) according to some examples.

Zunächst zeigen die 4A und 4B beispielhafte logische Schaltungen 108 für eine beispielhafte elektronische Vorrichtung, die einen Transaktions-Host 102 aufweist, z.B. die in den 1 und 2 gezeigte beispielhafte elektronische Vorrichtung 100.First, the 4A and 4B exemplary logic circuits 108 for an exemplary electronic device having a transaction host 102, e.g., those shown in the 1 and 2 exemplary electronic device 100 shown.

4A zeigt eine beispielhafte logische Schaltung 108a gemäß dem oben beschriebenen ersten Beispiel, d.h. die Implementierung des Zugriffssteuerungsidentifikators, der in Tabelle 1 gezeigt ist. Die logische Schaltung 108a weist ein NOT-Gatter (oder Inverter) 402 auf, das den Wert des jeweiligen Zugriffssteuerungsidentifikators 112 invertiert und einen Wert ausgibt, der eine Zugriffsbestimmung definiert. 4A shows an exemplary logic circuit 108a according to the first example described above, ie, the implementation of the access control identifier shown in Table 1. The logic circuit 108a comprises a NOT gate (or inverter) 402 that inverts the value of the respective access control identifier 112 and outputs a value defining an access determination.

4B zeigt eine beispielhafte logische Schaltung 108b gemäß dem zweiten oben beschriebenen Beispiel, d.h. die Implementierung des in Tabelle 2 oben gezeigten Schemas für die Zugriffssteuerungsidentifikatoren. Die logische Schaltung 108b weist ein NOT-Gatter (oder Inverter) 402 auf, das den Wert des jeweiligen Zugriffssteuerungsidentifikators 112 invertiert, sowie ein OR-Gatter 404, das den vom NOT-Gatter 402 ausgegebenen Wert zusammen mit dem Betriebsmodussignal 120 verarbeitet und einen Wert ausgibt, der eine Zugriffsbestimmung definiert. 4B shows an exemplary logic circuit 108b according to the second example described above, ie the implementation of the scheme shown in Table 2 above for the access control identifiers. The logic circuit 108b comprises a NOT gate (or inverter) 402 which inverts the value of the respective access control identifier 112 and an OR gate 404 which processes the value output by the NOT gate 402 together with the operating mode signal 120 and outputs a value defining an access determination.

Als nächstes zeigen die 4C und 4D eine beispielhafte logische Schaltung 108 für eine elektronische Vorrichtung, die mehrere Transaktions-Hosts 102 aufweist, z.B. die in 3 gezeigte elektronische Vorrichtung 300.Next, the 4C and 4D an exemplary logic circuit 108 for an electronic device having multiple transaction hosts 102, e.g., the one in 3 shown electronic device 300.

4C zeigt eine beispielhafte logische Schaltung 108c gemäß dem oben beschriebenen ersten Beispiel, d.h. die Implementierung des Zugriffssteuerungsidentifikator-Schemas, das in Tabelle 1 gezeigt wird, mit mehreren Transaktions-Hosts 102. Die logische Schaltung 108c weist einen Multiplexer (MUX) 406 auf, der (a) Werte von AC-Identifikatoren 112 für die jeweiligen Transaktions-Hosts 102 und (b) eine Kennung für eine Zugriffsanfrage (TH_id) empfängt, die einen jeweiligen Transaktions-Host 102 identifiziert, der den Zugriff auf eine jeweilige Peripherie 104 anfragt, und den Wert der dem jeweiligen Transaktions-Host 102 zugeordneten AC-Identifikatoren 112 als Reaktion auf die Zugriffsanfrage-Kennung (TH_id) auswählt, wobei der ausgewählte AC_ID-Wert an ein NOT-Gatter (oder Inverter) 402 weitergeleitet wird, das den AC_ID-Wert invertiert und einen Wert ausgibt, der eine Zugriffsbestimmung definiert. 4C shows an exemplary logic circuit 108c according to the first example described above, i.e., implementing the access control identifier scheme shown in Table 1, with multiple transaction hosts 102. The logic circuit 108c includes a multiplexer (MUX) 406 that receives (a) values of AC identifiers 112 for the respective transaction hosts 102 and (b) an access request identifier (TH_id) identifying a respective transaction host 102 requesting access to a respective peripheral 104, and selects the value of the AC identifiers 112 associated with the respective transaction host 102 in response to the access request identifier (TH_id), the selected AC_ID value being passed to a NOT gate (or inverter) 402 that inverts the AC_ID value and outputs a value that an access provision is defined.

In anderen Beispielen kann die Bedeutung der in Tabelle 1, Tabelle 2 und/oder Tabelle 3 aufgeführten AC_ID-Beispielwerte umgekehrt werden, wobei AC_ID=0 eine Einstellung angibt, bei der der Zugriff verhindert oder eingeschränkt ist, und AC_ID=1 eine Einstellung, bei der der Zugriff ermöglicht oder offen ist. In solchen Beispielen kann das NOT-Gatter (Inverter) 402 in der in den 4A-4D dargestellten logischen Schaltung 108a-108d weggelassen werden.In other examples, the meaning of the example AC_ID values listed in Table 1, Table 2, and/or Table 3 may be reversed, with AC_ID=0 indicating a setting where access is prevented or restricted and AC_ID=1 indicating a setting where access is allowed or open. In such examples, NOT gate (inverter) 402 may be configured in the manner shown in the 4A-4D illustrated logic circuit 108a-108d can be omitted.

4D zeigt eine beispielhafte logische Schaltung 108d gemäß dem zweiten oben beschriebenen Beispiel, d.h. die Implementierung des Zugriffssteuerungsidentifikators, wie er in Tabelle 2 dargestellt ist. Die logische Schaltung 108d weist einen Multiplexer (MUX) 406 auf, der (a) Werte von AC-Identifikatoren 112 für die jeweiligen Transaktions-Hosts 102 und (b) eine Zugriffsanforderungs-Kennung (TH_id) empfängt, die einen jeweiligen Transaktions-Host 102 identifiziert, der Zugriff auf eine jeweilige Peripherie 104 anfordert, und den Wert des jeweiligen AC-Identifikators 112, der dem jeweiligen Transaktions-Host 102 zugeordnet ist, als Reaktion auf die Zugriffsanforderungs-Kennung (TH_id) auswählt, wobei der ausgewählte AC_ID-Wert an ein NOT-Gatter 402 weitergeleitet wird, das den AC_ID-Wert invertiert. Die logische Schaltung 108d weist weiterhin ein OR-Gatter 404 auf, das den vom NOT-Gatter 402 ausgegebenen Wert zusammen mit dem Betriebsmodussignal 120 des jeweiligen Transaktions-Hosts 102 verarbeitet und einen Wert ausgibt, der eine Zugriffsbestimmung definiert. 4D shows an exemplary logic circuit 108d according to the second example described above, i.e., the implementation of the access control identifier as shown in Table 2. The logic circuit 108d includes a multiplexer (MUX) 406 that receives (a) values of AC identifiers 112 for the respective transaction hosts 102 and (b) an access request identifier (TH_id) identifying a respective transaction host 102 requesting access to a respective peripheral 104, and selects the value of the respective AC identifier 112 associated with the respective transaction host 102 in response to the access request identifier (TH_id), with the selected AC_ID value being passed to a NOT gate 402 which inverts the AC_ID value. The logic circuit 108d further includes an OR gate 404 that processes the value output by the NOT gate 402 together with the operating mode signal 120 of the respective transaction host 102 and outputs a value that defines an access determination.

5 ist ein Flussdiagramm eines beispielhaften Verfahrens 500 zur Steuerung des Zugriffs auf Peripherien in einer elektronischen Vorrichtung, das einen Transaktions-Host, eine erste Peripherie, eine zweite Peripherie und ein Zugriffssteuerungsregister beinhaltet. In einigen Beispielen kann die elektronische Vorrichtung die oben beschriebene elektronische Vorrichtung 100 oder die elektronische Vorrichtung 300 sein. Bei 502 werden ein erster Zugriffssteuerungsidentifikator für die erste Peripherie und ein zweiter Zugriffssteuerungsidentifikator für die zweite Peripherie in dem Zugriffssteuerungsregister gespeichert. Der erste Zugriffssteuerungsidentifikator und der zweite Zugriffssteuerungsidentifikator können beispielsweise vom Transaktions-Host vor der Ausführung einer entsprechenden Aufgabe (z.B. einer Gerätetreiber-Aufgabe) programmiert werden, z.B. auf der Grundlage eines Betriebsmodus des Transaktions-Hosts und/oder auf der Grundlage einer entsprechenden Peripherie (z.B. der ersten Peripherie, der zweiten Peripherie oder einer anderen Peripherie), auf die zur Ausführung der entsprechenden Aufgabe zugegriffen werden soll. 5 is a flowchart of an example method 500 for controlling access to peripherals in an electronic device that includes a transaction host, a first peripheral, a second peripheral, and an access control register. In some examples, the electronic device may be the electronic device 100 described above or the electronic device 300. At 502, a first access control identifier for the first peripheral and a second access control identifier for the second peripheral are stored in the access control register. The first access control identifier and the second access control identifier may, for example, be programmed by the transaction host prior to execution of a corresponding task (e.g., a device driver task), e.g., based on an operating mode of the transaction host and/or based on a corresponding peripheral (e.g., the first peripheral, the second peripheral, or another peripheral) to be accessed to execute the corresponding task.

Bei 504, während der Ausführung der jeweiligen Aufgabe, empfängt die dem ersten Peripheriegerät zugeordnete erste Zugriffssteuerung eine Anfrage des Transaktions-Hosts für den Zugriff auf die erste Peripherie. Der Transaktions-Host kann zum Beispiel eine mit der ersten Peripherie korrespondierende Aufgabe des Gerätetreibers ausführen. In einigen Beispielen beinhaltet die Anfrage des Transaktions-Hosts optional ein Betriebsmodussignal, das einen privilegierten Modus oder einen Benutzermodus des Transaktions-Hosts angibt.At 504, during execution of the respective task, the first access controller associated with the first peripheral receives a request from the transaction host for access to the first peripheral. For example, the transaction host may execute a device driver task corresponding to the first peripheral. In some examples, the transaction host request optionally includes an operating mode signal indicating a privileged mode or a user mode of the transaction host.

Bei 506 greift der erste Zugriffssteuerungsidentifikator auf den ersten Zugriffssteuerungsidentifikator für die erste Peripherie aus dem Zugriffssteuerungsregister zu. Bei 508 führt die erste Zugriffssteuerung eine Zugriffsbestimmung durch, um den Zugriff auf die erste Peripherie durch den Transaktions-Host zumindest auf der Grundlage der zugegriffenen ersten Zugriffssteuerungsidentifikatoren für die erste Peripherie abwechselnd zu ermöglichen oder zu verhindern, beispielsweise unter Verwendung einer entsprechenden LUT, die im Speicher gespeichert ist, oder unter Verwendung einer entsprechenden logischen Schaltung, z.B. wie in einer der 4A-4D gezeigt. Der erste Zugriffssteuerungsidentifikator kann beispielsweise eine Zugriffsbestimmung gemäß dem oben in Tabelle 1 beschriebenen Schema der Zugriffssteuerungsidentifikatoren durchführen. In einigen Beispielen kann die erste Zugriffssteuerung auch das optional empfangene Betriebsmodussignal (siehe oben bei 504) als weitere Eingabe für die Zugriffsbestimmung verwenden. Beispielsweise kann der erste Zugriffssteuerungsidentifikator eine Zugriffsbestimmung gemäß dem oben in Tabelle 2 beschriebenen Zugriffssteuerungsidentifikator-Schema auf der Grundlage der ersten Zugriffssteuerungskennung und des durch das optionale Betriebsmodussignal angegebenen Betriebsmodus durchführen.At 506, the first access control identifier accesses the first access control identifier for the first peripheral from the access control register. At 508, the first access controller performs an access determination to alternately enable or prevent access to the first peripheral by the transaction host based at least on the accessed first access control identifiers for the first peripheral, e.g. using a corresponding LUT stored in memory or using a corresponding logic circuit, e.g. as in one of the 4A-4D For example, the first access control identifier may perform an access determination according to the access control identifier scheme described above in Table 1. In some examples, the first access control may also optionally receive the operating mode signal (see above at 504) as further input for the access determination. For example, the first access control identifier may make an access determination according to the access control identifier scheme described above in Table 2 based on the first access control identifier and the operating mode indicated by the optional operating mode signal.

Bei 510 ermöglicht oder verhindert die erste Zugriffssteuerung den Zugriff auf die erste Peripherie basierend auf der Zugriffsbestimmung. Um beispielsweise den Zugriff auf die erste Peripherie zu verhindern, kann die erste Zugriffssteuerung ein der angefragten Transaktion zugeordnetes „Chip-Auswahl“-Signal (auch als „Peripherie-Auswahl“-Signal bezeichnet) von Wert=1 (was angibt, dass die erste Peripherie abgezielt/ausgewählt ist) auf Wert=0 (was angibt, dass die erste Peripherie nicht abgezielt/ausgewählt ist) erzwingen, so dass die erste Peripherie die Transaktion ignoriert. Alternativ kann die erste Zugriffssteuerung, um den Zugriff auf die erste Peripherie zu ermöglichen, den Wert des Chipauswahlsignals unverändert lassen (Wert=1), so dass die erste Peripherie die Transaktion verarbeitet, oder das der angeforderten Transaktion zugeordnete Chipauswahlsignal von Wert=0 auf Wert=1 erzwingen. (In alternativen Beispielen können andere Chipauswahlsignalwerte definiert werden, um anzuzeigen, ob eine jeweilige Peripherie angesteuert/ausgewählt ist. So kann ein System beispielsweise definieren, dass der Wert des Chip-Auswahlsignals Wert=0 angibt, dass eine Peripherie abgezielt/ausgewählt ist, während der Wert des Chip-Auswahlsignals Wert=1 angibt, dass die Peripherie nicht angesteuert/ausgewählt ist).At 510, the first access controller allows or prevents access to the first peripheral based on the access determination. For example, to prevent access to the first peripheral, the first access controller may force a "chip select" signal (also referred to as a "peripheral select" signal) associated with the requested transaction from value=1 (indicating that the first peripheral is targeted/selected) to value=0 (indicating that the first peripheral is not targeted/selected) such that the first peripheral ignores the transaction. Alternatively, to allow access to the first peripheral, the first access controller may leave the value of the chip select signal unchanged (value=1) such that the first peripheral processes the transaction, or force the chip select signal associated with the requested transaction from value=0 to value=1. (In alternative examples, other chip select signal values may be defined to indicate whether a respective peripheral is targeted/selected. For example, a system may define that the value of the chip select signal value=0 indicates that a peripheral is targeted/selected, while the value of the chip select signal value=1 indicates that the peripheral is not targeted/selected.)

6 ist ein Flussdiagramm eines beispielhaften Verfahrens 600 zur Steuerung des Zugriffs auf Peripherien in einer elektronischen Vorrichtung, die einen Transaktions-Host, mehrere Peripherien und ein Zugriffssteuerungsidentifikatoren (AC-Identifikatoren) für die mehreren Peripherien beinhaltet. In einigen Beispielen kann es sich bei der elektronischen Vorrichtung um die oben beschriebene elektronische Vorrichtung 100 oder die elektronische Vorrichtung 300 handeln, und das Verfahren 600 kann mit dem Schema der Zugriffssteuerungsidentifikatoren korrespondieren, das oben in Tabelle 1 beschrieben wurde. 6 is a flowchart of an example method 600 for controlling access to peripherals in an electronic device that includes a transaction host, a plurality of peripherals, and access control identifiers (AC identifiers) for the plurality of peripherals. In some examples, the electronic device may be electronic device 100 or electronic device 300 described above, and method 600 may correspond to the access control identifier scheme described above in Table 1.

Bei 602 programmiert der Transaktions-Host die AC-Identifikatoren für die verschiedenen Peripherien, z.B. auf der Grundlage einer geplanten Operation des Transaktions-Hosts. In diesem Beispiel setzt der Transaktions-Host für Operationen im privilegierten Modus die AC-Identifikatoren für die jeweiligen Peripherien auf eine zugriffsberechtigte Einstellung (AC_ID-Wert=0), die den Zugriff des Transaktions-Hosts auf die jeweiligen Peripherien ermöglicht. In einigen Beispielen kann der Transaktions-Host Befehle zur Verwaltung der Zugriffssteuerungsidentifikatoren ausführen, die in der Supervisor-Firmware bereitgestellt werden, um auf die AC-Identifikatoren zuzugreifen und sie zu programmieren. In einigen Beispielen kann der Transaktions-Host bei der Einstellung der AC-Identifikatoren für Operationen im privilegierten Modus die Bitmasken außer Acht lassen, da alle Peripherien während der Operationen im privilegierten Modus zugänglich sein sollen.At 602, the transaction host programs the AC identifiers for the various peripherals, e.g., based on a scheduled operation of the transaction host. In this example, for privileged mode operations, the transaction host sets the AC identifiers for the respective peripherals to an access-controlled setting (AC_ID value=0) that allows the transaction host to access the respective peripherals. In some examples, the transaction host may execute access control identifier management commands provided in the supervisor firmware to access and program the AC identifiers. In some examples, the transaction host may disregard the bit masks when setting the AC identifiers for privileged mode operations because all peripherals are intended to be accessible during privileged mode operations.

Bei 604 arbeitet der Transaktions-Host im privilegierten Modus, z.B. durch Ausführen des entsprechenden Supervisor-Codes, z.B. der Supervisor-Firmware. Bei 606, während der Transaktions-Host im privilegierten Modus arbeitet, ermöglichen die jeweiligen Zugriffssteuerungen, die mit den jeweiligen Peripherien der mehrfachen Peripherien korrespondieren, den Zugriff auf die jeweiligen Peripherien, basierend auf der zugriffsermöglichten Einstellung (AC_ID-Wert=0) der jeweiligen AC-Identifikatoren für die jeweiligen Peripherien, z.B. unter Verwendung einer jeweiligen LUT, die im Speicher gespeichert ist, oder unter Verwendung einer jeweiligen logischen Schaltung, z.B. wie in 4A (Szenario mit einem Transaktions-Host) oder 4C (Szenario mit mehreren Transaktions-Hosts) gezeigt.At 604, the transaction host operates in privileged mode, e.g., by executing the corresponding supervisor code, e.g., the supervisor firmware. At 606, while the transaction host operates in privileged mode, the respective access controls corresponding to the respective peripherals of the multiple peripherals enable access to the respective peripherals based on the access-enabled setting (AC_ID value=0) of the respective AC identifiers for the respective peripherals, e.g., using a respective LUT stored in memory or using a respective logic circuit, e.g., as in 4A (scenario with a transaction host) or 4C (multiple transaction host scenario) is shown.

Bei 608, während der Transaktions-Host im privilegierten Modus arbeitet (mit auf 0 programmierten AC-Identifikatoren), identifiziert die vom Transaktions-Host ausgeführte Supervisor-Firmware eine entsprechende Aufgabe in Bezug auf eine ausgewählte Peripherie („Peripherie N“), die in einem Benutzermodus ausgeführt werden soll. Bei 610 greift der Transaktions-Host vor der Durchführung der jeweiligen Aufgabe, die sich auf Peripherie N bezieht, auf eine der jeweiligen Aufgabe zugeordnete Bitmaske zu, die Zugriffseinstellungen für mehrere Peripherien (einschließlich Peripherie N) zur Durchführung der jeweiligen Aufgabe aufweist, und programmiert die AC-Identifikatoren für die mehreren Peripherien auf der Grundlage der jeweiligen Bitmaske. In diesem Beispiel programmiert der Transaktions-Host (a) den AC-Identifikator für Peripherie N auf die Einstellung Zugriff ermöglicht (AC_ID Wert=0), die den Zugriff auf Peripherie N während der Ausführung der jeweiligen Aufgabe im Benutzermodus ermöglicht und (b) programmiert die AC Identifikatoren für die anderen Peripherien der mehreren Peripherien auf eine Einstellung Zugriff verhindert (AC_ID Wert=1), die den Zugriff auf jede jeweilige Peripherie während der Ausführung der jeweiligen Aufgabe im Benutzermodus verhindert.At 608, while the transaction host is operating in privileged mode (with AC identifiers programmed to 0), supervisor firmware executing the transaction host identifies a corresponding task related to a selected peripheral ("Peripheral N") to be executed in a user mode. At 610, prior to executing the respective task related to Peripheral N, the transaction host accesses a bit mask associated with the respective task that has access settings for multiple peripherals (including Peripheral N) to perform the respective task, and programs the AC identifiers for the multiple peripherals based on the respective bit mask. In this example, the transaction host (a) programs the AC identifier for peripheral N to an access-enabled setting (AC_ID value=0), which allows access to peripheral N during execution of its respective user-mode task, and (b) programs the AC identifiers for the other peripherals of the multiple peripherals to an access-denied setting (AC_ID value=1), which prevents access to each respective peripheral during execution of its respective user-mode task.

Bei 612 geht der Transaktions-Host vom privilegierten Modus in einen Benutzermodus über und führt die jeweilige Aufgabe in Bezug auf Peripherie N aus. Um die jeweilige Aufgabe in Bezug auf Peripherie N auszuführen, ermöglicht die mit Peripherie N korrespondierende Zugriffssteuerung bei 614 den Zugriff auf Peripherie N (z.B., Zugriff auf Register in Peripherie N), basierend auf der für den Zugriff ermöglichten Einstellung (AC_ID Wert=0) des AC-Identifikators für Peripherie N (wie programmiert, basierend auf der jeweiligen Bitmaske, die der jeweiligen Aufgabe zugeordnet ist), z.B. unter Verwendung einer entsprechenden LUT, die im Speicher gespeichert ist, oder unter Verwendung einer entsprechenden logischen Schaltung, z.B. wie in 4A (Szenario mit einem Transaktions-Host) oder 4C (Szenario mit mehreren Transaktions-Hosts) gezeigt. Wenn der Transaktions-Host versucht, auf eine der anderen Peripherien zuzugreifen, verhindert die Zugriffssteuerung, die mit der jeweiligen anderen Peripherie korrespondiert, den Zugriff auf die andere Peripherie, und zwar auf der Grundlage der Zugriffsverhinderungseinstellung (AC_ID-Wert=1) des jeweiligen AC-Identifikators für die andere Peripherie, z.B. unter Verwendung der jeweiligen LUT oder logischen Schaltung, wie in 4A oder 4C dargestellt.At 612, the transaction host transitions from privileged mode to a user mode and executes the respective task with respect to peripheral N. To execute the respective task with respect to peripheral N, the access control corresponding to peripheral N at 614 enables access to peripheral N (e.g., access to registers in peripheral N) based on the access enabled setting (AC_ID value=0) of the AC identifier for peripheral N (as programmed based on the respective bit mask associated with the respective task), e.g., using a corresponding LUT stored in memory or using a corresponding logic circuit, e.g., as in 4A (scenario with a transaction host) or 4C (multiple transaction host scenario). When the transaction host attempts to access one of the other peripherals, the access control corresponding to the respective other peripheral prevents access to the other peripheral based on the access prevention setting (AC_ID value=1) of the respective AC identifier for the other peripheral, e.g. using the respective LUT or logic circuit as shown in 4A or 4C shown.

Bei 616 schließt der Transaktions-Host die jeweilige Aufgabe in Bezug auf Peripherie N ab. Bei 618 kann der Transaktions-Host eine nächste Aktivität des Transaktions-Hosts identifizieren, die er im Benutzermodus ausführt. Wenn beispielsweise, wie bei 620 angegeben, die vom Transaktions-Host ausgeführte Supervisor-Firmware eine nächste peripheriebezogene Aufgabe (bezogen auf dieselbe Peripherie oder eine andere Peripherie) identifiziert, die im Benutzermodus auszuführen ist, kann das Verfahren zu 610 zurückkehren, wobei der Transaktions-Host die AC-Identifikatoren entsprechend für die Ausführung der nächsten Aufgabe programmiert (z.B. auf der Grundlage einer der nächsten Aufgabe zugeordneten Bitmaske). Ein weiteres Beispiel: Wenn die vom Transaktions-Host ausgeführte Supervisor-Firmware angibt, dass Supervisor- oder privilegierte Operationen auszuführen sind, kann das Verfahren zu 602 zurückkehren, wobei der Transaktions-Host (optional) die AC-Identifikatoren für die mehreren Peripherien auf die Einstellung „Zugriff ermöglicht“ (AC_ID-Wert=0) programmiert (z.B. ohne Berücksichtigung der jeweiligen Bitmasken), um den Zugriff auf die jeweiligen Peripherien durch den Transaktions-Host während der Supervisor- oder privilegierten Operationen zu ermöglichen, wie oben beschrieben. In einigen Beispielen oder Situationen kann es überflüssig sein, die AC-Identifikatoren für Supervisor- oder privilegierte Operationen zu programmieren (da der Transaktions-Host, der den Supervisor-Code ausführt, Zugriff auf alle Register aufweisen kann), und daher kann die Programmierung der AC-Identifikatoren bei 602 entfallen oder optional sein.At 616, the transaction host completes the respective task related to peripheral N. At 618, the transaction host may identify a next transaction host activity to perform in user mode. For example, as indicated at 620, if the supervisor firmware executed by the transaction host identifies a next peripheral-related task (related to the same peripheral or a different peripheral) to perform in user mode, the method may return to 610, where the transaction host programs the AC identifiers accordingly for execution of the next task (e.g., based on a bit mask associated with the next task). As another example, if the supervisor firmware executing the transaction host indicates that supervisor or privileged operations are to be performed, the method may return to 602, where the transaction host may (optionally) program the AC identifiers for the plurality of peripherals to the "access enabled" setting (AC_ID value=0) (e.g., without regard to the respective bit masks) to enable access to the respective peripherals by the transaction host during supervisor or privileged operations, as described above. In some examples or situations, it may be unnecessary to program the AC identifiers for supervisor or privileged operations (since the transaction host executing the supervisor code may have access to all registers), and thus programming the AC identifiers at 602 may be omitted or optional.

7 ist ein Flussdiagramm eines beispielhaften Verfahrens 700 zur Steuerung des Zugriffs auf Peripherien in einer elektronischen Vorrichtung, die einen Transaktions-Host, mehrere Peripherien und ein Zugriffssteuerungsidentifikatoren (AC-Identifikatoren) für die mehreren Peripherien beinhaltet. In einigen Beispielen kann es sich bei der elektronischen Vorrichtung um die oben beschriebene elektronische Vorrichtung 100 oder die elektronische Vorrichtung 300 handeln, und das Verfahren 700 kann mit dem Zugriffssteuerungsidentifikatoren-Schema korrespondieren, das oben in Tabelle 2 beschrieben wurde. 7 is a flowchart of an example method 700 for controlling access to peripherals in an electronic device that includes a transaction host, a plurality of peripherals, and an access control identifier (AC identifier) for the plurality of peripherals. In some examples, the electronic device may be electronic device 100 or electronic device 300 described above, and method 700 may correspond to the access control identifier scheme described above in Table 2.

Bei 702 programmiert der Transaktions-Host die AC-Identifikatoren für die verschiedenen Peripherien, z.B. auf der Grundlage einer geplanten Operation des Transaktions-Hosts. In diesem Beispiel setzt der Transaktions-Host die AC-Identifikatoren für die jeweiligen Peripherien auf eine Einstellung mit eingeschränktem Zugriff (AC_ID-Wert=1). In einigen Beispielen kann der Transaktions-Host Befehle zur Verwaltung der Zugriffssteuerungsidentifikatoren ausführen, die in der Supervisor-Firmware bereitgestellt werden, um auf die AC-Identifikatoren zuzugreifen und sie zu programmieren.At 702, the transaction host programs the AC identifiers for the various peripherals, e.g., based on a scheduled operation of the transaction host. In this example, the transaction host sets the AC identifiers for the respective peripherals to a restricted access setting (AC_ID value=1). In some examples, the transaction host may execute access control identifier management commands provided in the supervisor firmware to access and program the AC identifiers.

Bei 704 arbeitet der Transaktions-Host im privilegierten Modus, z.B. durch Ausführen der entsprechenden Supervisor-Firmware. Bei 706, während der Transaktions-Host im privilegierten Modus arbeitet (mit auf 1 programmierten AC-Identifikatoren), ermöglicht der jeweilige Zugriffssteuerungsidentifikator, der mit den jeweiligen Peripherien der mehrfachen Peripherien korrespondiert, den Zugriff auf die jeweiligen Peripherien, z.B. unter Verwendung einer jeweiligen LUT, die im Speicher gespeichert ist, oder unter Verwendung einer jeweiligen logischen Schaltung, z.B. wie in 4B (Szenario mit einem Transaktions-Host) oder 4D (Szenario mit mehreren Transaktions-Hosts) gezeigt. Jede Anfrage des Transaktions-Hosts zum Zugriff auf eine entsprechende Peripherie kann ein Betriebsmodussignal beinhalten, das den privilegierten Modus des Transaktions-Hosts angibt (z.B. Betriebsmodussignalwert=1, gemäß dem in Tabelle 2 gezeigten Steuerbitschema). Für die jeweilige Anfrage des Transaktions-Hosts, auf eine jeweilige Peripherie zuzugreifen, kann die jeweilige Zugriffssteuerung, die mit der jeweiligen Peripherie korrespondiert, bestimmen, ob sie den Zugriff auf die jeweilige Peripherie ermöglicht oder verhindert, und zwar auf der Grundlage (a) des jeweiligen AC-Identifikators für die jeweilige Peripherie und (optional in einem Szenario mit mehreren Transaktions-Hosts) des jeweiligen Transaktions-Hosts und (b) des Betriebsmodus-Signals, das den privilegierten Modus angibt (z.B. BetriebsmodusSignalwert=1), gemäß dem oben in Tabelle 2 gezeigten Steuerbitschema. Insbesondere ermöglicht die jeweilige Zugriffssteuerung den Zugriff auf die jeweilige Peripherie auf der Grundlage des privilegierten Modus des jeweiligen Transaktions-Hosts (z.B. Betriebsmodussignalwert=1).At 704, the transaction host operates in privileged mode, e.g., by executing the appropriate supervisor firmware. At 706, while the transaction host operates in privileged mode (with AC identifiers programmed to 1), the respective access control identifier corresponding to the respective peripherals of the multiple peripherals enables access to the respective peripherals, e.g., using a respective LUT stored in memory or using a respective logic circuit, e.g., as in 4B (scenario with a transaction host) or 4D (multiple transaction host scenario). Each request by the transaction host to access a respective peripheral may include an operating mode signal indicating the privileged mode of the transaction host (e.g., operating mode signal value=1, according to the control bit scheme shown in Table 2). For each request by the transaction host to access a respective peripheral, the respective access controller corresponding to the respective peripheral may determine whether to allow or prevent access to the respective peripheral based on (a) the respective AC identifier for the respective peripheral and (optionally in a multiple transaction host scenario) the respective transaction host and (b) the operating mode signal indicating the privileged mode (e.g., operating mode signal value=1), according to the control bit scheme shown above in Table 2. In particular, the respective access control enables access to the respective peripheral based on the privileged mode of the respective transaction host (e.g. operating mode signal value = 1).

Bei 708, während der Transaktions-Host im privilegierten Modus arbeitet, identifiziert die vom Transaktions-Host ausgeführte Supervisor-Firmware eine jeweilige Aufgabe, die im Zusammenhang mit einer ausgewählten Peripherie („Peripherie N“) der mehreren Peripherien in einem Benutzermodus auszuführen ist. Bei 710 greift der Transaktions-Host vor der Ausführung der jeweiligen Aufgabe in Bezug auf Peripherie N im Benutzermodus auf eine der jeweiligen Aufgabe zugeordnete Bitmaske zu, die Zugriffseinstellungen für mehrere Peripherien (einschließlich Peripherie N) zur Ausführung der jeweiligen Aufgabe aufweist, und programmiert die AC-Identifikatoren für die mehreren dem Transaktions-Host zugeordneten Peripherien auf der Grundlage der jeweiligen Bitmaske. In diesem Beispiel programmiert der Transaktions-Host (a) die AC-Identifikatoren für Peripherie N auf die Einstellung „offen-ermöglicht“ (AC_ID Wert=0) und (b) programmiert die AC-Identifikatoren für die anderen Peripherien der mehreren Peripherien, die dem Transaktions-Host zugeordnet sind, auf eine Einstellung mit eingeschränktem Zugriff (AC_ID Wert=1), gemäß dem oben in Tabelle 2 gezeigten Steuerbitschema.At 708, while the transaction host is operating in privileged mode, supervisor firmware executing the transaction host identifies a respective task to be performed in association with a selected peripheral ("Peripheral N") of the plurality of peripherals in a user mode. At 710, prior to executing the respective task with respect to Peripheral N in user mode, the transaction host accesses a bit mask associated with the respective task that includes access settings for multiple peripherals (including Peripheral N) to perform the respective task, and programs the AC identifiers for the plurality of peripherals associated with the transaction host based on the respective bit mask. In this example, the transaction host (a) programs the AC identifiers for peripheral N to an open-enabled setting (AC_ID value=0) and (b) programs the AC identifiers for the other peripherals of the multiple peripherals associated with the transaction host to a restricted access setting (AC_ID value=1), according to the control bit scheme shown above in Table 2.

Bei 712 geht der Transaktions-Host vom privilegierten Modus in einen Benutzermodus über und führt die jeweilige Aufgabe in Bezug auf Peripherie N aus. Um die jeweilige Aufgabe in Bezug auf Peripherie N auszuführen, ermöglicht die mit Peripherie N korrespondierende Zugriffssteuerung den Zugriff auf Peripherie N (z.B. Zugriff auf Register in Peripherie N), basierend auf (a) der Einstellung für offenen Zugriff (AC_ID Wert=0), z.B. unter Verwendung einer entsprechenden LUT, die im Speicher gespeichert ist, oder unter Verwendung einer entsprechenden logischen Schaltung, z.B. wie in 4B (Szenario mit einem Transaktions-Host) oder 4D (Szenario mit mehreren Transaktions-Hosts) gezeigt. Wenn der Transaktions-Host versucht, auf eine der anderen Peripherien zuzugreifen, verhindert die jeweilige Zugriffssteuerung, die mit der anderen Peripherie korrespondiert, den Zugriff auf die andere Peripherie, basierend auf (a) der Einstellung für den eingeschränkten Zugriff (AC_ID-Wert=1) und (b) dem Benutzermodus des Transaktions-Hosts (Betriebsmodussignalwert=0), gemäß Tabelle 2, z.B. unter Verwendung einer jeweiligen LUT oder logischen Schaltung, wie in 4B oder 4D gezeigt.At 712, the transaction host transitions from privileged mode to a user mode and executes the respective task with respect to peripheral N. To execute the respective task with respect to peripheral N, the access control corresponding to peripheral N enables access to peripheral N (e.g., access to registers in peripheral N) based on (a) the open access setting (AC_ID value=0), e.g., using a corresponding LUT stored in memory or using a corresponding logic circuit, e.g., as in 4B (scenario with a transaction host) or 4D (multiple transaction host scenario). When the transaction host attempts to access one of the other peripherals, the respective access control corresponding to the other peripheral prevents access to the other peripheral based on (a) the restricted access setting (AC_ID value=1) and (b) the user mode of the transaction host (operation mode signal value=0), according to Table 2, e.g. using a respective LUT or logic circuit as in 4B or 4D shown.

Bei 716 schließt der Transaktions-Host die jeweilige Aufgabe in Bezug auf die Peripherie N im Benutzermodus ab. Bei 718 kann der Transaktions-Host eine nächste auszuführende Aktivität des Transaktions-Hosts identifizieren. Wenn die vom Transaktions-Host ausgeführte Supervisor-Firmware beispielsweise, wie bei 720 angegeben, eine nächste peripheriebezogene Aufgabe (in Bezug auf dieselbe Peripherie oder eine andere Peripherie) identifiziert, die im Benutzermodus auszuführen ist, kann das Verfahren zu 710 zurückkehren, wobei der Transaktions-Host die AC-Identifikatoren entsprechend für die Ausführung der nächsten Aufgabe programmiert (z.B. auf der Grundlage einer der nächsten Aufgabe zugeordneten Bitmaske). Ein weiteres Beispiel: Wenn die vom Transaktions-Host ausgeführte Supervisor-Firmware Supervisor- oder privilegierte Operationen identifiziert, die im privilegierten Modus ausgeführt werden sollen, kehrt das Verfahren zu 702 zurück, wobei der Transaktions-Host die AC-Identifikatoren für die mehreren Peripherien auf die Einstellung mit eingeschränktem Zugriff (AC_ID-Wert=1) programmiert, wie oben beschrieben.At 716, the transaction host completes the respective task related to peripheral N in user mode. At 718, the transaction host may identify a next transaction host activity to be performed. For example, as indicated at 720, if the supervisor firmware executed by the transaction host identifies a next peripheral-related task (related to the same peripheral or a different peripheral) to be performed in user mode, the method may return to 710, where the transaction host programs the AC identifiers accordingly for execution of the next task (e.g., based on a bit mask associated with the next task). As another example, if the supervisor firmware executed by the transaction host identifies supervisor or privileged operations to be performed in privileged mode, the method returns to 702 where the transaction host programs the AC identifiers for the multiple peripherals to the restricted access setting (AC_ID value=1) as described above.

8 ist ein Flussdiagramm eines Beispielverfahrens 800 zur Steuerung des Zugriffs auf Peripheriegeräte in einer elektronischen Vorrichtung, das einen Transaktions-Host, eine erste Peripherie, eine zweite Peripherie und ein Zugriffssteuerungsregister beinhaltet, in dem entsprechende Zugriffssteuerungsidentifikatoren (AC-Identifikatoren) gespeichert sind. In einigen Beispielen kann die elektronische Vorrichtung die oben beschriebene elektronische Vorrichtung 100 oder die elektronische Vorrichtung 300 sein, und das Verfahren 800 kann mit dem Zugriffssteuerungsidentifikatoren-Schema korrespondieren, das oben in Bezug auf eine der oben beschriebenen Tabellen 1, 2 oder 3 beschrieben wurde. 8 is a flowchart of an example method 800 for controlling access to peripherals in an electronic device that includes a transaction host, a first peripheral, a second peripheral, and an access control register storing corresponding access control (AC) identifiers. In some examples, the electronic device may be electronic device 100 or electronic device 300 described above, and method 800 may correspond to the access control identifier scheme described above with respect to any of Tables 1, 2, or 3 described above.

Bei 802 werden ein erster Zugriffssteuerungsidentifikator für die erste Peripherie und ein zweiter Zugriffssteuerungsidentifikator für die zweite Peripherie in dem Zugriffssteuerungsregister gespeichert. Der Transaktions-Host kann den ersten Zugriffssteuerungsidentifikator und den zweiten Zugriffssteuerungsidentifikator im Laufe der Zeit dynamisch programmieren, um verschiedene Arten von Operationen durchzuführen, z.B. Operationen im privilegierten Modus und Operationen im Benutzermodus, einschließlich Operationen in Bezug auf die erste und zweite Peripherie. In einigen Beispielen kann der Transaktions-Host Befehle zur Verwaltung der Zugriffssteuerungsidentifikatoren ausführen, die in der Überwachungs-Firmware bereitgestellt werden, um die ersten und zweiten Zugriffssteuerungsidentifikatoren dynamisch zu programmieren, bevor die jeweiligen Aufgaben (z.B. Gerätetreiberaufgaben) ausgeführt werden.At 802, a first access control identifier for the first peripheral and a second access control identifier for the second peripheral are stored in the access control register. The transaction host may dynamically program the first access control identifier and the second access control identifier over time to perform various types of operations, e.g., privileged mode operations and user mode operations, including operations with respect to the first and second peripherals. In some examples, the transaction host may execute access control identifier management instructions provided in the monitoring firmware to dynamically program the first and second access control identifiers before executing the respective tasks (e.g., device driver tasks).

Zum Beispiel setzt der Transaktions-Host bei 804 für Operationen im privilegierten Modus den ersten Zugriffssteuerungsidentifikator und den zweiten Zugriffssteuerungsidentifikator, um den Zugriff auf die erste Peripherie bzw. die zweite Peripherie zu ermöglichen. In einigen Beispielen oder Situationen kann es überflüssig sein, die AC-Identifikatoren für Operationen im privilegierten Modus zu programmieren (da der Transaktions-Host, auf dem der Supervisor-Code läuft, Zugriff auf alle Register aufweisen kann), und daher kann die Programmierung der AC-Identifikatoren bei 804 entfallen oder optional sein. In einigen Beispielen setzt der Transaktions-Host die ersten und zweiten Zugriffssteuerungsidentifikatoren gemäß einem Zugriffsbit-Schema, wie es oben in Bezug auf eine der oben beschriebenen Tabellen 1, 2 oder 3 beschrieben wurde. Bei 806 führt der Transaktions-Host zu einem ersten Zeitpunkt Operationen im privilegierten Modus durch, so dass bei 806 das Betriebsmodussignal den privilegierten Modus angibt.For example, at 804, for privileged mode operations, the transaction host sets the first access control identifier and the second access control identifier to enable access to the first peripheral and the second peripheral, respectively. In some examples or situations, it may be unnecessary to program the AC identifiers for privileged mode operations (since the transaction host running the supervisor code may have access to all registers), and thus programming the AC identifiers at 804 may be omitted or optional. In some examples, the transaction host sets the first and second access control identifiers according to an access bit scheme as described above with respect to any of Tables 1, 2, or 3 described above. At 806, the transaction host performs privileged mode operations at a first time, such that at 806, the operating mode signal indicates privileged mode.

Bei 808 greift der Transaktions-Host für eine Benutzermodus-Operation (Benutzermodus-Aufgabe), die sich auf die erste Peripherie bezieht, auf eine der Benutzermodus-Aufgabe zugeordnete Bitmaske zu, die die Zugriffseinstellungen für zumindest die erste und zweite Peripherie angibt, und programmiert die AC-Identifikatoren für zumindest die erste und zweite Peripherie auf der Grundlage der jeweiligen Bitmaske. In diesem Beispiel setzt der Transaktions-Host (a) den ersten Zugriffssteuerungsidentifikator, um den Zugriff auf die erste Peripherie durch den Transaktions-Host im Benutzermodus zu ermöglichen, und (b) setzt den zweiten Zugriffssteuerungsidentifikator, um den Zugriff auf die zweite Peripherie durch den Transaktions-Host im Benutzermodus zu verhindern. In einigen Beispielen setzt der Transaktions-Host die ersten und zweiten Zugriffssteuerungsidentifikatoren gemäß einem Zugriffsbit-Schema, wie es oben in Bezug auf eine der oben beschriebenen Tabellen 1, 2 oder 3 beschrieben wurde. Bei 810 führt der Transaktions-Host die Aufgabe des Benutzermodus in Bezug auf die erste Peripherie zu einem zweiten Zeitpunkt aus, so dass bei 810 das Betriebsmodussignal den Benutzermodus angibt.At 808, for a user mode operation (user mode task) related to the first peripheral, the transaction host accesses a bit mask associated with the user mode task that indicates the access settings for at least the first and second peripherals, and programs the AC identifiers for at least the first and second peripherals based on the respective bit mask. In this example, the transaction host (a) sets the first access control identifier to allow user mode access to the first peripheral by the transaction host, and (b) sets the second access control identifier to prevent user mode access to the second peripheral by the transaction host. In some examples, the transaction host sets the first and second access control identifiers according to an access bit scheme as described above with respect to any of Tables 1, 2, or 3 described above. At 810, the transaction host executes the user mode task with respect to the first peripheral at a second time such that at 810 the operating mode signal indicates the user mode.

Der Transaktions-Host kann die ersten und zweiten Zugriffssteuerungsidentifikatoren im Laufe der Zeit auf diese Weise dynamisch programmieren, um verschiedene Arten von Operationen durchzuführen, z.B. Operationen im privilegierten Modus und Operationen im Benutzermodus, einschließlich Operationen in Bezug auf die erste und zweite Peripherie.The transaction host can dynamically program the first and second access control identifiers over time in this manner to perform different types of operations, such as privileged mode operations and user mode operations, including operations with respect to the first and second peripherals.

9 ist ein Flussdiagramm eines Beispielverfahrens 900 zur Steuerung des Zugriffs auf Peripherien unter Verwendung einer aufgabenbezogenen Bitmaske in einer elektronischen Vorrichtung, die einen Transaktions-Host, eine erste Peripherie, eine zweite Peripherie und ein Zugriffssteuerungsregister beinhaltet, das einen ersten Zugriffssteuerungsidentifikator für die erste Peripherie und einen zweiten Zugriffssteuerungsidentifikator für die zweite Peripherie aufweist. Bei 902 werden ein computerlesbarer Code, der eine erste Aufgabe in Bezug auf die erste Peripherie beinhaltet, und eine erste Bitmaske, die mit der ersten Aufgabe korrespondiert, gespeichert, wobei die erste Bitmaske jeweilige Zugriffseinstellungen für die erste Peripherie und die zweite Peripherie zur Durchführung der ersten Aufgabe angibt. Bei 904 führt der Transaktions-Host vor der Ausführung der ersten Aufgabe Zugriffssteuerungsidentifikatoren-Verwaltungsbefehle aus, um die ersten und zweiten Zugriffssteuerungsidentifikatoren in dem Zugriffssteuerungsregister zu programmieren, basierend auf (a) der ersten Bitmaske, die der ersten Aufgabe zugeordnet ist, und in einigen Implementierungen (b) dem Betriebsmodus des Transaktions-Hosts. Bei 906, nach der Aktualisierung der ersten und zweiten Zugriffssteuerungsidentifikatoren im Zugriffssteuerungsregister, führt der Transaktions-Host die erste Aufgabe in Bezug auf die erste Peripherie aus. Bei 908, während der Ausführung der ersten Aufgabe, steuert ein erster Zugriffssteuerungsidentifikator, der der ersten Peripherie zugeordnet ist, den Zugriff auf die erste Peripherie zumindest auf der Grundlage des ersten Zugriffssteuerungsidentifikators im Zugriffssteuerungsregister, das auf der Grundlage der ersten Bitmaske programmiert wurde. Bei 910, ebenfalls während der Ausführung der ersten Aufgabe, steuert ein zweiter Zugriffssteuerungsidentifikator, der der zweiten Peripherie zugeordnet ist, den Zugriff auf die zweite Peripherie zumindest auf der Grundlage des zweiten Zugriffssteuerungsidentifikators in dem Zugriffssteuerungsregister, das auf der Grundlage der ersten Bitmaske programmiert wurde. 9 is a flowchart of an example method 900 for controlling access to peripherals using a task-related bit mask in an electronic device including a transaction host, a first peripheral, a second peripheral, and an access control register having a first access control identifier for the first peripheral and a second access control identifier for the second peripheral. At 902, computer readable code including a first task related to the first peripheral and a first bit mask corresponding to the first task are stored, the first bit mask indicating respective access settings for the first peripheral and the second peripheral for performing the first task. At 904, prior to executing the first task, the transaction host executes access control identifier management instructions to program the first and second access control identifiers in the access control register based on (a) the first bit mask associated with the first task and, in some implementations, (b) the mode of operation of the transaction host. At 906, after updating the first and second access control identifiers in the access control register, the transaction host executes the first task with respect to the first peripheral. At 908, during execution of the first task, a first access control identifier associated with the first peripheral controls access to the first peripheral based at least on the first access control identifier in the access control register that was programmed based on the first bit mask. At 910, also during execution of the first task, a second access control identifier associated with the second peripheral controls access to the second peripheral based at least on the second access control identifier in the access control register programmed based on the first bit mask.

ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of documents listed by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA accepts no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • 202211000733 [0001]202211000733 [0001]

Claims (19)

Elektronische Vorrichtung, die aufweist: eine erste Peripherie; eine zweite Peripherie; einen nicht-transitorischen Speicher zum Speichern von: einer Supervisor-Firmware, die Zugriffssteuerungsidentifikatoren-Verwaltungsbefehle aufweist; einem computerlesbaren Code, der eine erste Aufgabe in Bezug auf die erste Peripherie beinhaltet; einer ersten Bitmaske, die mit der ersten Aufgabe korrespondiert, wobei die erste Bitmaske die jeweiligen Zugriffseinstellungen für die erste Peripherie und die zweite Peripherie zum Durchführen der ersten Aufgabe angibt; ein Zugriffssteuerungsregister, das einen ersten Zugriffssteuerungsidentifikator für die erste Peripherie und einen zweiten Zugriffssteuerungsidentifikator für die zweite Peripherie beinhaltet, einen Transaktions-Host, um: die Zugriffssteuerungsidentifikatoren-Verwaltungsbefehle in der Supervisor-Firmware auszuführen, um die ersten und zweiten Zugriffssteuerungsidentifikatoren in dem Zugriffssteuerungsregister auf der Grundlage der ersten Bitmaske zu programmieren, die mit der ersten Aufgabe korrespondiert; und nach dem Aktualisieren der ersten und zweiten Zugriffssteuerungsidentifikatoren in dem Zugriffssteuerungsregister auf der Grundlage der ersten Bitmaske die erste Aufgabe auszuführen, die sich auf die erste Peripherie bezieht; einen ersten Zugriffssteuerungsidentifikator, um den Zugriff auf die erste Peripherie zumindest auf der Grundlage des ersten Zugriffssteuerungsidentifikators in dem Zugriffssteuerungsregister zu steuern, das auf der Grundlage der ersten Bitmaske programmiert wurde; und einen zweiten Zugriffssteuerungsidentifikator, um den Zugriff auf die zweite Peripherie zumindest auf der Grundlage des zweiten Zugriffssteuerungsidentifikators im Zugriffssteuerungsregister zu steuern, das auf der Grundlage der ersten Bitmaske programmiert wurde.Electronic device comprising: a first peripheral; a second peripheral; a non-transitory memory for storing: supervisor firmware comprising access control identifier management instructions; computer readable code including a first task related to the first peripheral; a first bit mask corresponding to the first task, the first bit mask indicating respective access settings for the first peripheral and the second peripheral for performing the first task; an access control register including a first access control identifier for the first peripheral and a second access control identifier for the second peripheral, a transaction host to: execute the access control identifier management instructions in the supervisor firmware to program the first and second access control identifiers in the access control register based on the first bit mask corresponding to the first task; and after updating the first and second access control identifiers in the access control register based on the first bit mask, execute the first task related to the first peripheral; a first access control identifier to control access to the first peripheral based at least on the first access control identifier in the access control register programmed based on the first bit mask; and a second access control identifier for controlling access to the second peripheral based at least on the second access control identifier in the access control register programmed based on the first bit mask. Elektronische Vorrichtung nach Anspruch 1, wobei die elektronische Vorrichtung eine System-on-Chip- (SoC-) Vorrichtung ist.Electronic device according to claim 1 , wherein the electronic device is a system-on-chip (SoC) device. Elektronische Vorrichtung nach einem der Ansprüche 1 bis 3, wobei der Transaktions-Host einen Prozessor oder eine Direct Memory Access (DMA) Engine aufweist.Electronic device according to one of the Claims 1 until 3 , where the transaction host comprises a processor or a direct memory access (DMA) engine. Elektronische Vorrichtung nach einem der Ansprüche 1 bis 3, wobei die erste Bitmaske und die zweite Bitmaske in einer Bitmasken-Datenstruktur in dem nichttransitorischen Speicher gespeichert sind.Electronic device according to one of the Claims 1 until 3 , wherein the first bit mask and the second bit mask are stored in a bit mask data structure in the non-transitory memory. Elektronische Vorrichtung nach einem der Ansprüche 1 bis 4, wobei: die erste Bitmaske ein oder mehrere erste Bitmaskenbits aufweist, die eine Zugriffseinstellung für die erste Peripherie zur Durchführung der ersten Aufgabe angeben, und ein oder mehrere zweite Bitmaskenbits aufweist, die eine Zugriffseinstellung für die zweite Peripherie zur Durchführung der ersten Aufgabe angeben; und der erste Zugriffssteuerungsidentifikator ein oder mehrere erste Zugriffssteuerungsbits aufweist und der zweite Zugriffssteuerungsidentifikator ein oder mehrere zweite erste Zugriffssteuerungsbits aufweist.Electronic device according to one of the Claims 1 until 4 , wherein: the first bit mask comprises one or more first bit mask bits indicating an access setting for the first peripheral to perform the first task, and one or more second bit mask bits indicating an access setting for the second peripheral to perform the first task; and the first access control identifier comprises one or more first access control bits and the second access control identifier comprises one or more second first access control bits. Elektronische Vorrichtung nach einem der Ansprüche 1 bis 5, wobei: der computerlesbare Code eine zweite Aufgabe aufweist, die sich auf die zweite Peripherie bezieht; der nicht-transitorische Speicher eine zweite Bitmaske speichert, die mit der zweiten Aufgabe korrespondiert, wobei die zweite Bitmaske die jeweiligen Zugriffseinstellungen für die erste Peripherie und die zweite Peripherie zur Durchführung der zweiten Aufgabe angibt; und der Transaktions-Host: die Zugriffssteuerungsidentifikatoren-Verwaltungsbefehle in der Supervisor-Firmware ausführt, um die ersten und zweiten Zugriffssteuerungsidentifikatoren in dem Zugriffssteuerungsregister auf der Grundlage der zweiten Bitmaske, die der zweiten Aufgabe zugeordnet ist, zu programmieren; und nach dem Aktualisieren der ersten und zweiten Zugriffssteuerungsidentifikatoren in dem Zugriffssteuerungsregister auf der Grundlage der zweiten Bitmaske die zweite Aufgabe in Bezug auf die zweite Peripherie ausführt.Electronic device according to one of the Claims 1 until 5 wherein: the computer readable code comprises a second task related to the second peripheral; the non-transitory memory stores a second bit mask corresponding to the second task, the second bit mask indicating the respective access settings for the first peripheral and the second peripheral to perform the second task; and the transaction host: executes the access control identifier management instructions in the supervisor firmware to program the first and second access control identifiers in the access control register based on the second bit mask associated with the second task; and after updating the first and second access control identifiers in the access control register based on the second bit mask, executes the second task with respect to the second peripheral. Elektronische Vorrichtung nach einem der Ansprüche 1 bis 6, wobei der nicht-transitorische Speicher beinhaltet: einen nicht-privilegierten Teil, der den computerlesbaren Code einschließlich der ersten Aufgabe und der zweiten Aufgabe speichert; und einen privilegierten Teil, der die Supervisor-Firmware einschließlich der Befehle zur Verwaltung der Zugriffssteuerungsidentifikatoren speichert, und die erste Bitmaske, die der ersten Aufgabe zugeordnet ist.Electronic device according to one of the Claims 1 until 6 , where the non-transitory memory includes: a non-privileged portion containing the computer-readable code including the first task and the second task; and a privileged portion that stores the supervisor firmware including the commands for managing the access control identifiers and the first bit mask associated with the first task. Elektronische Vorrichtung nach einem der Ansprüche 1 bis 7, wobei die erste Zugriffssteuerung: eine Anfrage vom Transaktions-Host für den Zugriff auf die erste Peripherie zur Ausführung der ersten Aufgabe empfängt; eine Zugriffsbestimmung für die erste Peripherie zumindest auf der Grundlage des ersten Zugriffssteuerungsidentifikators durchführt, der auf der Grundlage der ersten Bitmaske programmiert wurde, die der ersten Aufgabe zugeordnet ist; und den Zugriff des Transaktions-Hosts auf die erste Peripherie auf der Grundlage der Zugriffsbestimmung zulässt oder verhindert.Electronic device according to one of the Claims 1 until 7 wherein the first access controller: receives a request from the transaction host for access to the first peripheral to perform the first task; makes an access determination for the first peripheral based at least on the first access control identifier programmed based on the first bit mask associated with the first task; and allows or prevents the transaction host from accessing the first peripheral based on the access determination. Elektronische Vorrichtung nach Anspruch 8, wobei der erste Zugriffssteuerungsidentifikator dazu dient, die Zugriffsbestimmung für die erste Peripherie zumindest auf der Grundlage (a) des ersten Zugriffssteuerungsidentifikators, der von dem Transaktions-Host auf der Grundlage der ersten Bitmaske, die der ersten Aufgabe zugeordnet ist, programmiert wurde, und (b) eines Betriebsmodussignals, das entweder einen privilegierten Modus des Transaktions-Hosts oder einen Benutzermodus des Transaktions-Hosts angibt, durchzuführen.Electronic device according to claim 8 wherein the first access control identifier is to make the access determination for the first peripheral based at least on (a) the first access control identifier programmed by the transaction host based on the first bit mask associated with the first task and (b) an operating mode signal indicating either a privileged mode of the transaction host or a user mode of the transaction host. Elektronische Vorrichtung nach einem der Ansprüche 1 bis 9, wobei die erste Bitmaske, die der ersten Aufgabe zugeordnet ist, angibt, dass (a) der ersten Aufgabe eine Peripherie-Zugriffsberechtigung für die erste Peripherie zugeordnet ist und (b) der ersten Aufgabe keine Peripherie-Zugriffsberechtigung für die zweite Peripherie zugeordnet ist.Electronic device according to one of the Claims 1 until 9 , where the first bit mask associated with the first task indicates that (a) the first task is associated with a peripheral access permission for the first peripheral and (b) the first task is not associated with a peripheral access permission for the second peripheral. Elektronische Vorrichtung nach Anspruch 10, wobei: die erste Bitmaske, die mit der ersten Aufgabe korrespondiert, angibt, dass (a) der ersten Aufgabe eine Peripherie-Zugriffserlaubnis auf die erste Peripherie zugeordnet ist und (b) der ersten Aufgabe keine Peripherie-Zugriffserlaubnis auf die zweite Peripherie zugeordnet ist; die Zugriffssteuerungsidentifikatoren-Verwaltungsbefehle dazu dienen, die ersten und zweiten Zugriffssteuerungsidentifikatoren in dem Zugriffssteuerungsregister auf der Grundlage der ersten Bitmaske vor der Ausführung der ersten Aufgabe zu programmieren, einschließlich (a) des Aktualisierens des ersten Zugriffssteuerungsidentifikators auf einen Zugriff-ermöglicht-Wert, der den Zugriff auf die erste Peripherie während der Ausführung der ersten Aufgabe ermöglicht, und (b) des Aktualisierens des zweiten Zugriffssteuerungsidentifikators auf einen Zugriff-verhindert-Wert, der den Zugriff auf die zweite Peripherie während der Ausführung der ersten Aufgabe verhindert; der erste Zugriffssteuerungsidentifikator dazu dient, den Zugriff auf die erste Peripherie während der Ausführung der ersten Aufgabe auf der Grundlage des Zugriffsgenehmigungswertes des ersten Zugriffssteuerungsidentifikators zuzulassen; und der zweite Zugriffssteuerungsidentifikator dazu dient, den Zugriff auf die zweite Peripherie während der Ausführung der ersten Aufgabe auf der Grundlage des Zugriffsverhinderungswertes des zweiten Zugriffssteuerungsidentifikators zu verhindern.Electronic device according to claim 10 , wherein: the first bit mask corresponding to the first task indicates that (a) the first task is associated with a peripheral access permission to the first peripheral and (b) the first task is not associated with a peripheral access permission to the second peripheral; the access control identifier management instructions are to program the first and second access control identifiers in the access control register based on the first bit mask prior to execution of the first task, including (a) updating the first access control identifier to an access-enabled value that allows access to the first peripheral during execution of the first task and (b) updating the second access control identifier to an access-denied value that prevents access to the second peripheral during execution of the first task; the first access control identifier is to allow access to the first peripheral during execution of the first task based on the access permission value of the first access control identifier; and the second access control identifier is to prevent access to the second peripheral during execution of the first task based on the access prevention value of the second access control identifier. Elektronische Vorrichtung nach einem der Ansprüche 1 bis 11, wobei: der Transaktions-Host selektiv in einem privilegierten Modus und einem Benutzermodus arbeiten soll; die erste Bitmaske, die mit der ersten Aufgabe korrespondiert, angibt, dass (a) der ersten Aufgabe eine Peripherie-Zugriffsberechtigung für die erste Peripherie zugeordnet ist und (b) der ersten Aufgabe keine Peripherie-Zugriffsberechtigung für die zweite Peripherie zugeordnet ist; und die Zugriffssteuerungsidentifikatoren-Verwaltungsbefehle dazu dienen, die ersten und zweiten Zugriffssteuerungsidentifikatoren in dem Zugriffssteuerungsregister auf der Grundlage der ersten Bitmaske vor der Ausführung der ersten Aufgabe zu programmieren, einschließlich (a) des Aktualisierens des ersten Zugriffssteuerungsidentifikators auf eine Einstellung mit offenem Zugriff für die erste Peripherie, die den Zugriff auf die erste Peripherie sowohl in dem privilegierten Modus als auch in dem Benutzermodus des Transaktions-Hosts ermöglicht; und (b) des Aktualisierens des zweiten Zugriffssteuerungsidentifikators auf einen Wert mit eingeschränktem Zugriff für die zweite Peripherie, der den Zugriff auf die zweite Peripherie in dem privilegierten Modus, aber nicht in dem Benutzermodus des Transaktions-Hosts ermöglicht.Electronic device according to one of the Claims 1 until 11 , wherein: the transaction host is to selectively operate in a privileged mode and a user mode; the first bit mask corresponding to the first task indicates that (a) the first task is associated with a peripheral access authorization for the first peripheral and (b) the first task is not associated with a peripheral access authorization for the second peripheral; and the access control identifier management instructions are to program the first and second access control identifiers in the access control register based on the first bit mask prior to execution of the first task, including (a) updating the first access control identifier to an open access setting for the first peripheral that enables access to the first peripheral in both the privileged mode and the user mode of the transaction host; and (b) updating the second access control identifier to a restricted access value for the second peripheral that enables access to the second peripheral in the privileged mode but not in the user mode of the transaction host. Elektronische Vorrichtung nach einem der Ansprüche 1 bis 12, wobei das Zugriffssteuerungsregister in einer dritten Peripherie bereitgestellt wird.Electronic device according to one of the Claims 1 until 12 , wherein the access control register is provided in a third peripheral. Verfahren, das aufweist: in einer elektronischen Vorrichtung, die einen Transaktions-Host, eine erste Peripherie, eine zweite Peripherie und ein Zugriffssteuerungsregister beinhaltet, das einen ersten Zugriffssteuerungsidentifikator für die erste Peripherie und einen zweiten Zugriffssteuerungsidentifikator für die zweite Peripherie aufweist, Speichern (a) eines computerlesbaren Codes, der eine erste Aufgabe in Bezug auf die erste Peripherie beinhaltet, und (b) einer ersten Bitmaske, die mit der ersten Aufgabe korrespondiert, wobei die erste Bitmaske die jeweiligen Zugriffseinstellungen für die erste Peripherie und die zweite Peripherie zur Durchführung der ersten Aufgabe angibt; wobei der Transaktions-Host vor der Ausführung der ersten Aufgabe Befehle zur Verwaltung der Zugriffssteuerungsidentifikatoren ausführt, um die ersten und zweiten Zugriffssteuerungsidentifikatoren in dem Zugriffssteuerungsregister auf der Grundlage der ersten Bitmaske, die der ersten Aufgabe zugeordnet ist, zu programmieren; nach dem Aktualisieren der ersten und zweiten Zugriffssteuerungsidentifikatoren in dem Zugriffssteuerungsregister auf der Grundlage der ersten Bitmaske der Transaktions-Host die erste Aufgabe ausführt, die sich auf die erste Peripherie bezieht; während der Ausführung der ersten Aufgabe: ein erster, der ersten Peripherie zugeordneter Zugriffssteuerungsidentifikator, steuert den Zugriff auf die erste Peripherie zumindest auf der Grundlage des ersten Zugriffssteuerungsidentifikators im Zugriffssteuerungsregister, der auf der Grundlage der ersten Bitmaske programmiert wurde; und ein zweiter, der zweiten Peripherie zugeordneter Zugriffssteuerungsidentifikator, steuert den Zugriff auf die zweite Peripherie zumindest auf der Grundlage des zweiten Zugriffssteuerungsidentifikators im Zugriffssteuerungsregister, der auf der Grundlage der ersten Bitmaske programmiert wurde.A method comprising: in an electronic device including a transaction host, a first peripheral, a second peripheral, and an access control register having a first access control identifier for the first peripheral and a second access control identifier for the second peripheral, storing (a) computer readable code including a first task related to the first peripheral and (b) a first bit mask corresponding to the first task, the first bit mask indicating respective access settings for the first peripheral and the second peripheral for performing the first task; wherein the transaction host, prior to executing the first task, executes access control identifier management instructions to program the first and second access control identifiers in the access control register based on the first bit mask associated with the first task; after updating the first and second access control identifiers in the access control register based on the first bit mask, the transaction host executes the first task related to the first peripheral; during execution of the first task: a first access control identifier associated with the first peripheral controls access to the first peripheral based at least on the first access control identifier in the access control register programmed based on the first bit mask; and a second access control identifier associated with the second peripheral controls access to the second peripheral based at least on the second access control identifier in the access control register programmed based on the first bit mask. Verfahren nach Anspruch 14, das aufweist: Speichern von computerlesbarem Code, der eine zweite Aufgabe beinhaltet, die sich auf die zweite Peripherie bezieht; Speichern einer zweiten Bitmaske, die mit der zweiten Aufgabe korrespondiert, wobei die zweite Bitmaske die jeweiligen Zugriffseinstellungen für die erste Peripherie und die zweite Peripherie zur Ausführung der zweiten Aufgabe angibt; wobei der Transaktions-Host vor der Ausführung der zweiten Aufgabe die Befehle zur Verwaltung der Zugriffssteuerungsidentifikatoren ausführt, um die ersten und zweiten Zugriffssteuerungsidentifikatoren in dem Zugriffssteuerungsregister auf der Grundlage der zweiten Bitmaske, die der zweiten Aufgabe zugeordnet ist, zu programmieren; nach dem Aktualisieren der ersten und zweiten Zugriffssteuerungsidentifikatoren in dem Zugriffssteuerungsregister auf der Grundlage der zweiten Bitmaske der Transaktions-Host die zweite Aufgabe ausführt, die sich auf die zweite Peripherie bezieht; während der Ausführung der zweiten Aufgabe: der erste, der ersten Peripherie zugeordnete Zugriffssteuerungsidentifikator, steuert den Zugriff auf die erste Peripherie zumindest auf der Grundlage des ersten Zugriffssteuerungsidentifikators im Zugriffssteuerungsregister, der auf der Grundlage der zweiten Bitmaske programmiert wurde; und der zweite, der zweiten Peripherie zugeordnete Zugriffssteuerungsidentifikator, steuert den Zugriff auf die zweite Peripherie zumindest auf der Grundlage des zweiten Zugriffssteuerungsidentifikators im Zugriffssteuerungsregister, der auf der Grundlage der zweiten Bitmaske programmiert wurde.procedure according to claim 14 comprising: storing computer readable code including a second task related to the second peripheral; storing a second bit mask corresponding to the second task, the second bit mask specifying respective access settings for the first peripheral and the second peripheral for performing the second task; wherein, prior to performing the second task, the transaction host executes the access control identifier management instructions to program the first and second access control identifiers in the access control register based on the second bit mask associated with the second task; after updating the first and second access control identifiers in the access control register based on the second bit mask, the transaction host executes the second task related to the second peripheral; during execution of the second task: the first access control identifier associated with the first peripheral controls access to the first peripheral based at least on the first access control identifier in the access control register programmed based on the second bit mask; and the second access control identifier associated with the second peripheral controls access to the second peripheral based at least on the second access control identifier in the access control register programmed based on the second bit mask. Verfahren nach einem der Ansprüche 14 bis 15, wobei der erste Zugriffssteuerungsidentifikator, der den Zugriff auf die erste Peripherie zumindest auf der Grundlage der ersten Zugriffssteuerungsidentifikatoren steuert, die auf der Grundlage der ersten Bitmaske programmiert sind, aufweist: die erste Zugriffssteuerung empfängt eine Zugriffsanfrage vom Transaktions-Host für den Zugriff auf die erste Peripherie zur Ausführung der ersten Aufgabe; die erste Zugriffssteuerung führt eine Zugriffsbestimmung für die erste Peripherie zumindest auf der Grundlage des ersten Zugriffssteuerungsidentifikators durch, der auf der Grundlage der ersten Bitmaske programmiert ist; und die erste Zugriffssteuerung ermöglicht oder verhindert den Transaktions-Host-Zugriff auf die erste Peripherie auf der Grundlage der Zugriffsbestimmung.Method according to one of the Claims 14 until 15 , wherein the first access control identifier that controls access to the first peripheral based at least on the first access control identifiers programmed based on the first bit mask comprises: the first access controller receiving an access request from the transaction host for access to the first peripheral to perform the first task; the first access controller making an access determination for the first peripheral based at least on the first access control identifier programmed based on the first bit mask; and the first access controller allowing or preventing transaction host access to the first peripheral based on the access determination. Verfahren nach Anspruch 16, das aufweist, dass die erste Zugriffssteuerung die Zugriffsbestimmung für die erste Peripherie zumindest auf der Grundlage (a) des ersten Zugriffssteuerungsidentifikators, der auf der Grundlage der ersten Bitmaske programmiert ist, und (b) eines Betriebsmodussignals, das entweder einen privilegierten Modus des Transaktions-Hosts oder einen Benutzermodus des Transaktions-Hosts angibt, durchführt.procedure according to claim 16 , comprising the first access controller making the access determination for the first peripheral based at least on (a) the first access control identifier programmed based on the first bit mask and (b) an operating mode signal indicating either a privileged mode of the transaction host or a user mode of the transaction host. Verfahren nach einem der Ansprüche 14 bis 17, wobei: die erste Bitmaske, die mit der ersten Aufgabe korrespondiert, angibt, dass (a) der ersten Aufgabe eine Peripherie-Zugriffsberechtigung für die erste Peripherie zugeordnet ist und (b) der ersten Aufgabe keine Peripherie-Zugriffsberechtigung für die zweite Peripherie zugeordnet ist; Ausführen der Zugriffssteuerungsidentifikatoren-Verwaltungsbefehle, um die ersten und zweiten Zugriffssteuerungsidentifikatoren in dem Zugriffssteuerungsregister auf der Grundlage der ersten Bitmaske, die der ersten Aufgabe zugeordnet ist, zu programmieren, aufweist (a) Aktualisieren des ersten Zugriffssteuerungsidentifikators auf einen Zugriffermöglichen-Wert, der den Zugriff auf die erste Peripherie während der Ausführung der ersten Aufgabe ermöglicht, und (b) Aktualisieren des zweiten Zugriffssteuerungsidentifikators auf einen Zugriff-verhindern-Wert, der den Zugriff auf die zweite Peripherie während der Ausführung der ersten Aufgabe verhindert; und während der Ausführung der ersten Aufgabe: der erste Zugriffssteuerungsidentifikator, der der ersten Peripherie zugeordnet ist, den Zugriff auf die erste Peripherie basierend auf dem Zugriffsgenehmigungswert des ersten Zugriffssteuerungsidentifikators ermöglicht; und der zweite Zugriffssteuerungsidentifikator, der der zweiten Peripherie zugeordnet ist, den Zugriff auf die zweite Peripherie basierend auf dem Zugriffsverhinderungswert des zweiten Zugriffssteuerungsidentifikators verhindert.Method according to one of the Claims 14 until 17 , wherein: the first bit mask corresponding to the first task indicates that (a) the first task is associated with a peripheral access permission for the first peripheral and (b) the first task is not associated with a peripheral access permission for the second peripheral; executing the access control identifier management instructions to program the first and second access control identifiers in the access control register based on the first bit mask associated with the first task, comprising (a) updating the first access control identifier to an allow access value that allows access to the first peripheral during execution of the first task, and (b) updating the second access control identifier to a prevent access value that prevents access to the second peripheral during execution of the first task; and during execution of the first task: the first access control identifier associated with the first peripheral allows access to the first peripheral based on the access permission value of the first access control identifier; and the second access control identifier associated with the second peripheral prevents access to the second peripheral based on the access prevention value of the second access control identifier. Verfahren nach einem der Ansprüche 14 bis 18, wobei: der Transaktions-Host selektiv in einem privilegierten Modus und in einem Benutzermodus arbeitet; die erste Bitmaske, die mit der ersten Aufgabe korrespondiert, angibt, dass (a) der ersten Aufgabe eine Peripherie-Zugriffsberechtigung für die erste Peripherie zugeordnet ist und (b) der ersten Aufgabe keine Peripherie-Zugriffsberechtigung für die zweite Peripherie zugeordnet ist; Ausführen der Zugriffssteuerungsidentifikatoren-Verwaltungsbefehle, um die ersten und zweiten Zugriffssteuerungsidentifikatoren in dem Zugriffssteuerungsregister auf der Grundlage der ersten Bitmaske, die der ersten Aufgabe zugeordnet ist, zu programmieren, aufweist (a) Aktualisieren des ersten Zugriffssteuerungsidentifikators auf einen Wert mit offenem Zugriff für die erste Peripherie, der den Zugriff auf die erste Peripherie sowohl in dem privilegierten Modus als auch in dem Benutzermodus des Transaktions-Hosts ermöglicht, und (b) Aktualisieren des zweiten Zugriffssteuerungsidentifikators auf einen Zugriff-eingeschränkt-Wert für die zweite Peripherie, der den Zugriff auf die zweite Peripherie in dem privilegierten Modus, aber nicht in dem Benutzermodus des Transaktions-Hosts ermöglicht; und während der Ausführung der ersten Aufgabe: der erste, der ersten Peripherie zugeordnete Zugriffssteuerungsidentifikator, den Zugriff auf die erste Peripherie sowohl im privilegierten Modus als auch im Benutzermodus des Transaktions-Hosts ermöglicht, basierend auf dem Wert für offenen Zugriff des ersten Zugriffssteuerungsidentifikators, und der zweite, der zweiten Peripherie zugeordnete Zugriffssteuerungsidentifikator, den Zugriff auf die zweite Peripherie im privilegierten Modus des Transaktions-Hosts, aber nicht im Benutzermodus des Transaktions-Hosts verhindert, basierend auf dem Wert für eingeschränkten Zugriff des zweiten Zugriffssteuerungsidentifikators.Method according to one of the Claims 14 until 18 , wherein: the transaction host selectively operates in a privileged mode and a user mode; the first bit mask corresponding to the first task indicates that (a) the first task is associated with a peripheral access permission for the first peripheral and (b) the first task is not associated with a peripheral access permission for the second peripheral; Executing the access control identifier management instructions to program the first and second access control identifiers in the access control register based on the first bit mask associated with the first task, comprising (a) updating the first access control identifier to an open access value for the first peripheral that allows access to the first peripheral in both the privileged mode and the user mode of the transaction host, and (b) updating the second access control identifier to an access restricted value for the second peripheral that allows access to the second peripheral in the privileged mode but not in the user mode of the transaction host; and during execution of the first task: the first access control identifier associated with the first peripheral allows access to the first peripheral in both the privileged mode and the user mode of the transaction host based on the open access value of the first access control identifier, and the second access control identifier associated with the second peripheral prevents access to the second peripheral in the privileged mode of the transaction host but not in the user mode of the transaction host based on the restricted access value of the second access control identifier.
DE112023000522.2T 2022-01-06 2023-01-04 PERIPHERAL ACCESS CONTROL USING BITMASKS SPECIFYING ACCESS SETTINGS FOR PERIPHERALS Pending DE112023000522T5 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
IN202211000733 2022-01-06
IN202211000733 2022-01-06
US18/071,023 2022-11-29
US18/071,023 US20230237185A1 (en) 2022-01-06 2022-11-29 Peripheral access control using bitmasks indicating access settings for peripherals
PCT/US2023/010116 WO2023133141A1 (en) 2022-01-06 2023-01-04 Peripheral access control using bitmasks indicating access settings for peripherals

Publications (1)

Publication Number Publication Date
DE112023000522T5 true DE112023000522T5 (en) 2024-12-12

Family

ID=85199070

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112023000522.2T Pending DE112023000522T5 (en) 2022-01-06 2023-01-04 PERIPHERAL ACCESS CONTROL USING BITMASKS SPECIFYING ACCESS SETTINGS FOR PERIPHERALS

Country Status (4)

Country Link
JP (1) JP2024536673A (en)
DE (1) DE112023000522T5 (en)
TW (1) TW202334828A (en)
WO (1) WO2023133141A1 (en)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7434264B2 (en) * 2003-03-07 2008-10-07 Freescale Semiconductor, Inc. Data processing system with peripheral access protection and method therefor
US7404019B2 (en) * 2003-03-07 2008-07-22 Freescale Semiconductor, Inc. Method and apparatus for endianness control in a data processing system
JP2005085266A (en) * 2003-09-04 2005-03-31 Stmicroelectronics Sa Access control of microprocessor peripheral device
JP2007334432A (en) * 2006-06-12 2007-12-27 Nec Electronics Corp Information processor, and access control method therefor
JP4335940B2 (en) * 2007-11-29 2009-09-30 Necエレクトロニクス株式会社 Data processing apparatus and peripheral device protection method in data processing apparatus
US9170956B2 (en) * 2013-02-07 2015-10-27 Texas Instruments Incorporated System and method for virtual hardware memory protection

Also Published As

Publication number Publication date
TW202334828A (en) 2023-09-01
JP2024536673A (en) 2024-10-08
WO2023133141A1 (en) 2023-07-13

Similar Documents

Publication Publication Date Title
DE102008062692B4 (en) Embedded microcontroller system and method for configuring an embedded microcontroller system with controlled switching mode
DE112005002672B4 (en) Dynamic reconfiguration of a cache memory
DE69031547T2 (en) Command output for a computer system
DE60025788T2 (en) Flexible multipurpose I / O system
DE10394383B4 (en) Method and apparatus for loading a trusted operating system
DE102008035120B4 (en) Processor selection for an interrupt identifying a processor cluster
DE112010004963T5 (en) Synchronizing SIMD vectors
DE3856067T2 (en) Data processor with an interrupt function
DE102013022299B3 (en) Protection of global registers in a multithreaded processor
DE112007002201T5 (en) Quality of service implementation for platform resources
DE102016123744A1 (en) Single-chip system with access control unit and mobile device with single-chip system
DE10297166T5 (en) Interrupt handling mechanism in computer systems that support the simultaneous execution of multiple threads
DE69231174T2 (en) Method and apparatus for atomic access registers with single bit set and reset without programmed interlocking
DE102018130225A1 (en) Remote atomic operations in multi-socket systems
DE2847216A1 (en) DATA PROCESSING SYSTEM WITH MULTIPROGRAM OPERATION
DE112007001714T5 (en) Virtualize Performance Counters
DE68915074T2 (en) Integrated timer circuit with several channels and assigned operating processor.
DE102015002191A1 (en) Security hypervisor function
DE102009050983A1 (en) A technique to communicate interrupts in a computer system
DE2721623C2 (en)
DE10296959T5 (en) System and method for controlling bus allocation during cache burst cycles
DE102013113262B4 (en) trigger routing unit
DE102014019531A1 (en) Method for operating an aircraft control component and control component
DE102008058209A1 (en) Arrangement and method for preventing a user operating system in a VMM system from shutting down an arrangement used by a service operating system
DE102014002181A1 (en) Dynamic sharing of resources

Legal Events

Date Code Title Description
R012 Request for examination validly filed