DE112023000522T5 - PERIPHERAL ACCESS CONTROL USING BITMASKS SPECIFYING ACCESS SETTINGS FOR PERIPHERALS - Google Patents
PERIPHERAL ACCESS CONTROL USING BITMASKS SPECIFYING ACCESS SETTINGS FOR PERIPHERALS Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2141—Access 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.
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 aus1 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.
-
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 of1 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
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
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
Die elektronische Vorrichtung 100 kann eine beliebige Anzahl von Peripherien 104 beinhalten. Die in
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
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
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
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
Wie nachstehend unter Bezugnahme auf
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
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
In einem ersten Beispiel, wie in Tabelle 1 unten gezeigt, sind die jeweiligen Zugriffssteuerungsidentifikatoren 112a-112n zwischen den folgenden Zugriffssteuerungsidentifikatoren (AC_ID) programmierbar:
- (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 - (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).
- (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
- (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).
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
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
- (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 diePeripheriegeräte 104a-104n ermöglicht); - (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...112nauf 1 programmieren (was dem Transaktions-Host 102 den Zugriff auf die erste Peripherie 104a ermöglicht und den Zugriff auf diePeripheriegeräte 104b... 104n verhindert); und - (c) vor der Einleitung von Aufgaben im Benutzermodus in Bezug auf die
zweite Peripherie 104b kann der Transaktions-Host 102 den AC- 0 und die AC-Identifikator 112b auf 112a, 112c... 112nIdentifikatoren auf 1 programmieren (was dem Transaktions-Host 102 den Zugriff auf diezweite Peripherie 104b ermöglicht und den Zugriff auf die 104a, 104c... 104n verhindert).Peripherien
- (a) prior to initiating privileged mode tasks related to any
peripheral device 104a-104n, thetransaction host 102 may program theAC identifiers 112a-112n to 0 (which allows thetransaction host 102 to access theperipheral devices 104a-104n); - (b) prior to initiating user mode tasks related to the first peripheral 104a, the
transaction host 102 may program theAC identifiers 112a to 0 and theAC identifiers 112b...112n to 1 (which allows thetransaction host 102 to access the first peripheral 104a and prevents access to theperipherals 104b...104n); and - (c) prior to initiating user mode tasks with respect to the second peripheral 104b, the
transaction host 102 may program theAC identifier 112b to 0 and the 112a, 112c...112n to 1 (which allows theAC identifiers transaction host 102 to access the second peripheral 104b and prevents access to the 104a, 104c...104n).peripherals
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
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
In einem zweiten Beispiel, wie in Tabelle 2 unten gezeigt, ist jeder Zugriffssteuerungsidentifikator 112a- 112n zwischen den folgenden Zugriffssteuerungsidentifikator (AC_ID) Werten programmierbar:
- (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 - (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.
- (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 - (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.
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
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
- (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- 112b, 112c... 112nIdentifikatoren 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 104b, 104c... 104n im Benutzermodus des Transaktions-Peripherie Hosts 102 verhindert wird); und - (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- 0 und die AC-Identifikatoren 112b auf 112a, 112c... 112nIdentifikatoren auf 1 programmieren (was dem Transaktions-Host 102 den Zugriff auf diezweite 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 104a, 104c... 104n im Benutzermodus des Transaktions-Peripherie Hosts 102 verhindert).
- (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 theAC identifiers 112a to 0 and the 112b, 112c... 112n to 1 (which allows theAC identifiers transaction host 102 to access the first peripheral 104a in both the privileged mode and the user mode of thetransaction host 102, as described below, while preventing thetransaction host 102 from accessing the 104b, 104c... 104n in the user mode of the transaction host 102); andperipherals - (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 theAC identifiers 112b to 0 and the 112a, 112c...112n to 1 (which allows theAC identifiers transaction host 102 to access the second peripheral 104b in both the privileged mode and the user mode of thetransaction host 102, as described below, while thetransaction host 102 prevents access to the 104a, 104c...104n in the user mode of the transaction host 102).peripherals
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
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
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
Wie in
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
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
Wie in
Wie in
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
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
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
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
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 "
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
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
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 “
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
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
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.
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
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
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
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
In Bezug auf Letzteres zeigen die
Zunächst zeigen die
Als nächstes zeigen die
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
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
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.)
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
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
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.
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
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
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.
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.
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)
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)
| 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 |
-
2023
- 2023-01-04 JP JP2024505099A patent/JP2024536673A/en active Pending
- 2023-01-04 WO PCT/US2023/010116 patent/WO2023133141A1/en not_active Ceased
- 2023-01-04 DE DE112023000522.2T patent/DE112023000522T5/en active Pending
- 2023-01-06 TW TW112100485A patent/TW202334828A/en unknown
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 |