US11544103B2 - Data processing device and method for processing an interrupt - Google Patents
Data processing device and method for processing an interrupt Download PDFInfo
- Publication number
 - US11544103B2 US11544103B2 US17/038,183 US202017038183A US11544103B2 US 11544103 B2 US11544103 B2 US 11544103B2 US 202017038183 A US202017038183 A US 202017038183A US 11544103 B2 US11544103 B2 US 11544103B2
 - Authority
 - US
 - United States
 - Prior art keywords
 - interrupt
 - data processing
 - software
 - node
 - register
 - Prior art date
 - Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
 - Active, expires
 
Links
Images
Classifications
- 
        
- G—PHYSICS
 - G06—COMPUTING OR CALCULATING; COUNTING
 - G06F—ELECTRIC DIGITAL DATA PROCESSING
 - G06F9/00—Arrangements for program control, e.g. control units
 - G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
 - G06F9/46—Multiprogramming arrangements
 - G06F9/48—Program initiating; Program switching, e.g. by interrupt
 - G06F9/4806—Task transfer initiation or dispatching
 - G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
 
 - 
        
- G—PHYSICS
 - G06—COMPUTING OR CALCULATING; COUNTING
 - G06F—ELECTRIC DIGITAL DATA PROCESSING
 - G06F9/00—Arrangements for program control, e.g. control units
 - G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
 - G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
 - G06F9/30098—Register arrangements
 - G06F9/30101—Special purpose registers
 
 - 
        
- G—PHYSICS
 - G06—COMPUTING OR CALCULATING; COUNTING
 - G06F—ELECTRIC DIGITAL DATA PROCESSING
 - G06F9/00—Arrangements for program control, e.g. control units
 - G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
 - G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
 - G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
 - G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
 - G06F9/327—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for interrupts
 
 - 
        
- G—PHYSICS
 - G06—COMPUTING OR CALCULATING; COUNTING
 - G06F—ELECTRIC DIGITAL DATA PROCESSING
 - G06F9/00—Arrangements for program control, e.g. control units
 - G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
 - G06F9/44—Arrangements for executing specific programs
 - G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
 - G06F9/45533—Hypervisors; Virtual machine monitors
 - G06F9/45558—Hypervisor-specific management and integration aspects
 
 - 
        
- G—PHYSICS
 - G06—COMPUTING OR CALCULATING; COUNTING
 - G06F—ELECTRIC DIGITAL DATA PROCESSING
 - G06F9/00—Arrangements for program control, e.g. control units
 - G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
 - G06F9/46—Multiprogramming arrangements
 - G06F9/54—Interprogram communication
 - G06F9/546—Message passing systems or structures, e.g. queues
 
 - 
        
- G—PHYSICS
 - G06—COMPUTING OR CALCULATING; COUNTING
 - G06F—ELECTRIC DIGITAL DATA PROCESSING
 - G06F9/00—Arrangements for program control, e.g. control units
 - G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
 - G06F9/44—Arrangements for executing specific programs
 - G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
 - G06F9/45533—Hypervisors; Virtual machine monitors
 - G06F9/45558—Hypervisor-specific management and integration aspects
 - G06F2009/45562—Creating, deleting, cloning virtual machine instances
 
 
Definitions
- the present disclosure relates to data processing devices and methods for processing an interrupt.
 - interrupts is a typical functionality in a data processing system such as a computer or microcontroller.
 - data processing entities e.g. multiple processors (CPUs), tasks and virtual machines
 - interrupt handling entities also referred to as interrupt service providers
 - a data processing device including one or more processors implementing a plurality of data processing entities, one or more software interrupt nodes and an access register for each software interrupt node.
 - the access register specifies which one or more data processing entities of the plurality of data processing entities is/are each allowed to, as an interrupt source data processing entity, trigger an interrupt service request on the software interrupt node for another one of the plurality of data processing entities as an interrupt target processing entity.
 - Each software interrupt node is configured to forward an interrupt service request triggered by an interrupt source data processing entity which is allowed to trigger an interrupt service request on the software interrupt node to an interrupt target processing entity.
 - FIG. 1 shows a data processing device according to various embodiments.
 - FIG. 2 shows an interrupt system
 - FIG. 3 shows a service request control (SRC) register.
 - SRC service request control
 - FIG. 4 shows an interrupt router according to an embodiment.
 - FIG. 5 illustrates the interaction of a GPSR_SWCxy register for a GPSRxy, the corresponding GPSR_SWC_ACCENxy register, and an ACCEN_TOSx register.
 - FIG. 6 shows a data processing device according to an embodiment.
 - FIG. 7 shows a flow diagram illustrating a method for processing an interrupt according to an embodiment.
 - FIG. 1 shows a data processing device 100 according to various embodiments.
 - the data processing device 100 includes one or more CPUs (Central Processing Units) 101 wherein each CPU 101 may have one or more CPU cores 102 .
 - CPUs Central Processing Units
 - the data processing device 100 further includes a system memory 103 , e.g. a RAM (random access memory) and a DMA (Direct Memory Access) controller 104 .
 - a system memory 103 e.g. a RAM (random access memory) and a DMA (Direct Memory Access) controller 104 .
 - RAM random access memory
 - DMA Direct Memory Access
 - Peripherals 105 of the data processing device 100 may access the system memory 103 directly (i.e. without going via a CPU 101 ).
 - I/O input output
 - Peripherals 105 of the data processing device 100 may access the system memory 103 directly (i.e. without going via a CPU 101 ).
 - the CPUs 101 , the system memory 103 , the DMA controller 104 and the peripherals 105 may be connected via a computer bus (or computer bus system including multiple computer busses) 106 .
 - a computer system like data processing device 100 typically supports interrupts.
 - An interrupt is a signal emitted by hardware or software indicating an event that needs immediate attention, i.e. should be processed with priority over other tasks, i.e. should interrupt other tasks.
 - the data processing system 100 includes an interrupt router 107 .
 - the interrupt router 107 is connected with possible sources of interrupts (e.g. components that may trigger an interrupt) and components for processing (handling) an interrupt, wherein a component may act as both (such as a CPU 101 ).
 - the interrupt router 107 is connected with the CPUs 101 , the DMA controller 104 and the peripherals 105 .
 - FIG. 2 shows an interrupt system 200 .
 - the interrupt system 200 includes an interrupt router 201 , for example corresponding to interrupt router 107 . Further, the interrupt system 200 includes CPUs 202 , for example corresponding to CPUs 101 , and a DMA controller 203 , for example corresponding to DMA controller 104 , as interrupt service providers.
 - the interrupt router 201 converts a software interrupt request (e.g. coming from one of CPUs 101 ) and a hardware interrupt request (e.g. coming from one of peripherals 105 ) into a pending service request (SR) by adding configurable information.
 - This information for example includes information about to which interrupt service provider 202 , 203 the service request should be forwarded and a priority of the service request.
 - a pending service request is forwarded (by the interrupt router 201 ) to and serviced by one of the implemented interrupt service providers (ISPs, e.g. CPUs 202 and DMA 203 ).
 - ISPs implemented interrupt service providers
 - the interrupt router 201 (e.g. in the form of an interrupt router module) includes service request nodes (SRNs) 204 , interrupt control Units (ICUs) 205 and additional functionality for SW development support.
 - SRNs service request nodes
 - ICUs interrupt control Units
 - the service request nodes receive interrupt requests (or interrupt triggers) from an interrupt (request) source such as a peripheral 105 or a CPU 101 .
 - Each SRN contains a service request control register (SRC) to configure a service request (for an incoming interrupt request) regarding priority and mapping to one of the available interrupt service providers 202 , 203 .
 - SRC service request control register
 - the interrupt router further includes one or more general purpose service request node (GPRS) groups 206 that can be used for software (SW) triggered service requests (e.g. triggered by software running on one of CPUs 101 ).
 - GPRS general purpose service request node
 - SW software triggered service requests
 - Each GPSR group 106 includes multiple service request nodes (SRNs) 207 , e.g. eight SRN per GPSR group 106 .
 - each GPSR group 206 which enables software to trigger multiple SRNs 207 of the related GPSR group 206 with one software write access.
 - the interrupt router 201 has a dedicated interrupt control unit (ICU) 205 for each physical interrupt service provider (in this example CPUs 202 and DMA 203 ).
 - ICU interrupt control unit
 - the interrupt router 201 arbitrates among all pending service requests mapped to that ISP 202 , 203 , identifies the pending service request with the highest priority as the arbitration round winner and passes the current arbitration round winner to the respective ICU 205 (corresponding to the ISP 202 , 203 ) via a respective interrupt arbitration bus 209 .
 - the ICU 205 signals the latest valid winning service request to the ISP 202 , 203 .
 - the ISP 202 , 203 signals back to the ICU 205 if it has taken a service request for further processing.
 - Each service request node (SRN) 204 inside the interrupt router module 201 contains a service request control (SRC) register and interface logic that connects it to the interrupt triggering unit outside the interrupt router module 201 and to the interrupt arbitration buses 209 inside the interrupt router 201 .
 - SRC service request control
 - FIG. 3 shows a service request control (SRC) register 300 .
 - SRC service request control
 - the SRC register 300 has a size of 32 bits and includes, in the order of ascending bit numbers, the following information
 - the interrupt router module 201 may provide multiple groups of General Purpose service request nodes (GPSR) 206 and a mechanism to trigger multiple service requests nodes of a GPSR group 206 in parallel, by software.
 - General Purpose service request nodes are intended for Software interrupts because they are not mapped to hardware interrupt trigger events.
 - SRBx service request broadcast register 208
 - SRBx service request broadcast register 208
 - SRBxy the SRNs 207 of a GPSR 206
 - x denoting the GPRS group
 - y denoting the SRN 207 of the GPRS group 206
 - the service broadcast registers 208 can be used to set service requests to multiple interrupt service providers 202 , 203 in parallel.
 - a service request broadcast register (SRBx) 208 can be used to trigger multiple service requests within the GPSR group in parallel (e.g. access multiple SRCs of the GPSR group in parallel).
 - Multicore Architectures with CPUs with hypervisor support lead to high flexibility requirements of the interrupt system used. This is, because each CPU 102 in Hypervisor Mode can represent multiple Virtual Machines where each active VM requires software interrupt capabilities for the communication with other VMs and CPUs or CPU cores.
 - a flexible software interrupt mechanism for Hypervisor support which provides (at least one or some of) the following features per software interrupt node (e.g. SRN 207 ):
 - interrupt service provider e.g. CPU a, Virtual Machine b, Task c
 - SW interrupt sources e.g. CPU a, Virtual Machine b, Task c
 - a SW interrupt node Since the number of SW interrupt nodes in the system 200 is limited, a SW interrupt node supports the transmission of additional information from the SW interrupt source to the respective ISP.
 - a handshake mechanism is provided.
 - SW interrupt sources are able to trigger an individual SW interrupt node.
 - GPSRxy generally Software interrupt node, which may also be referred to as a Software interrupt service node:
 - interrupt service provider e.g. CPU a, VM b, DMA
 - FIG. 4 shows an interrupt router 400 according to an embodiment.
 - the interrupt router 400 is for example part of an interrupt system 200 as described with reference to FIG. 2 .
 - the interrupt router 400 may in particular include components similarly to the interrupt router 200 which are omitted in FIG. 4 for simplicity, such as hardware interrupt service request nodes, ICUs and interrupt busses.
 - the interrupt router 400 includes a GPSR group.
 - the GPSR group may be part of a plurality of similar GPSR groups and is therefore denoted as GPSRx.
 - the interrupt router 400 includes a (service request) broadcast register 402 for the GPSR group. It is denoted by IR_SRBx (for the GPSR group GPSRx).
 - the interrupt router 400 includes two additional types of control registers 403 , 404 :
 - GPSR_SWCxy for Software interrupt node GPSRxy.
 - This register 403 enables one or more assigned software interrupt source(s) and the respective interrupt service provider to control the software interrupt node.
 - GPSR_SWC_ACCENxy for GPSR software control register GPSR_SWCxy.
 - This register 404 enables application software to assign the GPSR_SWCxy to one or multiple SW interrupt sources (e.g. CPU, Virtual Machine and SW Task).
 - GPSR software control registers offer more flexible and extended functions for setting and controlling SW interrupts.
 - the broadcast register 402 , the GPSR Software control registers 403 and the access protection registers 404 provide a service request broadcast & software control mechanism 405 .
 - a dedicated GPSR_SWCxy register 403 is provided for each GPSRxy 401 .
 - the GPSR software control register 403 for an GPSRxy 401 includes 32 bits and includes, in the order of ascending bit numbers, the fields
 - the “readable” and the “writable” in the above list may for example refer to whether the various fields are readable or writable, respectively, by the interrupt sources and/or ISPs.
 - GPSR_SWCxy register 403 there is a corresponding GPSR_SWC_ACCENxy register 404 that enables application software to assign the control of each GPSR_SWCxy to software interrupt source(s) (e.g. CPU, Virtual Machine and software Task) while the control of the associated GPSRxy can be assigned via the GPSRxy.TOS configuration (i.e. the TOS field of the SRC register of GPSRxy, see FIG. 3 ) and/or GPSRxy.VM configuration (i.e. the VM field of the SRC register of GPSRxy, see FIG. 3 ) to a dedicated ISP (Service request provider).
 - software interrupt source(s) e.g. CPU, Virtual Machine and software Task
 - GPSRxy.VM configuration i.e. the VM field of the SRC register of GPSRxy, see FIG. 3
 - the GPSR_SWC_ACCENxy register 404 includes 32 bits and includes, in the order of ascending bit numbers, the fields
 - CPUz TAG-ID for each CPU 202 (or also DMA 203 ): allows enabling read and write access to the corresponding GPSR_SWCxy for the CPU with index z (may be included for multiple z)
 - VM_PRSj allows enabling access to the corresponding GPSR_SWCxy for the virtual machine (or PRS (protection set)) with index j (may be included for multiple j)
 - VM_PRS_CTRL this bit controls whether the VM_PRSj values are used for the VM check or for the PRS check. This means that VM_PRS_CTRL specifies whether the VM_PRSj specify the access rights for VMs or for PRSs. This allows saving register bits.
 - the GPSR_SWC Access Protection function includes:
 - Both the service request broadcast register 302 and the GPSR_SWC register 403 may send interrupt trigger signals to GPRSxy (referred to as TRIGxy in FIG. 4 ).
 - FIG. 5 illustrates the interaction of a GPSR_SWCxy register 501 for a GPSRxy 502 , the corresponding GPSR_SWC_ACCENxy register 503 , and an ACCEN_TOSx register 504 .
 - the GPSR_SWCxy register 501 for example corresponds to GPSR_SWCxy register 403
 - the GPSR_SWC_ACCENxy register 503 for example corresponds to GPSR_SWC_ACCENxy register 404
 - the GPSRxy 502 for example corresponds the GPSR 401 for which the GPSR_SWCxy register 403 is provided.
 - the GPSR_SWC_ACCENxy register 503 defines the read/write access to the GPSR_SWCxy 501 and thus defines which interrupt sources may trigger a software interrupt on GPSRxy 502 by writing to the SET field of GPSR_SWCxy 501 .
 - the GPSR_SWCxy 501 triggers an interrupt on GPSRxy 502 when written to accordingly (into the SET field) by an interrupt source.
 - the GPSR_SWC_ACCENxy register 503 further defines which interrupt sources may write to (e.g. update) the mailbox (i.e. DATA field of GPSR_SWCxy 501 ).
 - the GPSR_SWCxy 501 may be read by the ISP (referred to as GPRSxy.TOS or GPSRxy.VM in case of a virtual machine) assigned to handle a triggered software interrupt.
 - the ISP may read and unlock the mailbox (i.e. the DATA field of GPSR_SWCxy 501 ).
 - GPSRxy 502 The status of GPSRxy 502 is indicated in the GPSR_SWCxy 501 , namely whether GPSRxy 502 has a pending service request (STAT field is set) and whether it has an overflow (IOV field is set).
 - the ACCEN_TOSx register 504 (not shown in FIG. 4 ) defines which ISPs are associated with the GPSRxy 502 . In particular, it defines read and write access to the GPSRxy 502 .
 - GSPRxy 502 is mapped to a certain ISP (TOS or VM).
 - the ISP to which it is mapped defines the ISP to which the GPSRxy 502 sends an IR (interrupt request) signal, i.e. an interrupt service request, for a pending (interrupt) service request (i.e. to which ISP it forwards an interrupt service request triggered on the GPSRxy by an interrupt source).
 - a data processing device is provided as illustrated in FIG. 6 .
 - FIG. 6 shows a data processing device 600 according to an embodiment.
 - the data processing device includes one or more processors 601 implementing a plurality of data processing entities and one or more software interrupt nodes 603 .
 - the data processing device includes an access register 602 for each software interrupt node 603 which specifies which one or more data processing entities of the plurality of data processing entities is/are each allowed to, as interrupt source data processing entity, trigger an interrupt service request on the software interrupt node for another one of the plurality of data processing entities as interrupt target processing entity.
 - Each software interrupt node 603 is configured to forward an interrupt service request triggered by an interrupt source data processing entity which is allowed to trigger an interrupt service request on the software interrupt node to an interrupt target processing entity.
 - a data processing device e.g. a microcontroller
 - an interrupt source data processing entity e.g. a CPU, a CPU core, a task or a virtual machine
 - a software interrupt node on which an interrupt service request has been triggered (and which then has a pending interrupt service request) forwards (i.e. transmits) the interrupt service request to an interrupt target processing entity.
 - the corresponding access register 602 i.e. the access register provided for the software interrupt node 603 defines which one (or ones) of the software interrupt nodes may trigger interrupt service requests on (in other words, send interrupt trigger signals to) the software interrupt node.
 - a comparator may be provided which is configured to compare an identification of a data processing entity sending an interrupt trigger to a software interrupt node to one or more allowed identifications (stored in the access register for the software interrupt node) and the software interrupt node is configured to generate an interrupt service request if the identification of the data processing entity sending the interrupt trigger matches (i.e. is) an allowed identification.
 - the comparator may be configured to set an enable signal if the identification of the data processing entity sending the interrupt trigger matches an allowed identification.
 - GPSRxy can be seen as the software interrupt node and the corresponding GPSR_SWC_ACCENxy can be seen as the access register for the software interrupt node.
 - a hardware support for software interrupts wherein there is a configurable assignment of a software interrupt node to a software interrupt source.
 - interrupt service providers may be provided together with a mailbox feature and a handshake mechanism for the transferred mailbox information from interrupt source to interrupt service provider.
 - the data processing device for example carries out a method as illustrated in FIG. 7 .
 - FIG. 7 shows a flow diagram 700 illustrating a method for processing an interrupt.
 - a data processing entity of a plurality of data processing entities implemented by one or more processors is allowed to trigger an interrupt request on a software interrupt node, wherein the access register which specifies which one or more data processing entities is/are each allowed to trigger an interrupt service request on the software interrupt node.
 - an interrupt request trigger signal for the software interrupt node is received from the data processing entity.
 - an interrupt service request is established in response to the interrupt request trigger signal.
 - the interrupt service request is forwarded to another one of the data processing entities.
 - Example 1 is a data processing device as illustrated in FIG. 6 .
 - Example 2 is the data processing device of Example 1, wherein the one or more software interrupt nodes are nodes for receiving interrupt requests from the plurality of data processing entities, generating interrupt service requests for interrupt requests and forwarding the interrupt service requests to the plurality of data processing entities.
 - the one or more software interrupt nodes are nodes for receiving interrupt requests from the plurality of data processing entities, generating interrupt service requests for interrupt requests and forwarding the interrupt service requests to the plurality of data processing entities.
 - Example 3 is the data processing device of Example 1 or 2, further comprising, for each software interrupt node, access circuitry configured to control access to the software interrupt node for triggering interrupt service requests on the software interrupt node.
 - Example 4 is the data processing device of Example 3, wherein the access circuitry is configured to restrict access to the software interrupt node for triggering interrupt service requests on the software interrupt node to data processing entities specified by the access register for the software interrupt node as being allowed to trigger an interrupt service request on the software interrupt node.
 - Example 5 is the data processing device of any one of Examples 1 to 4, further comprising a message transmission register for each software interrupt node, configured to receive and store data to be transmitted from an interrupt source data processing entity to an interrupt target data processing entity.
 - Example 6 is the data processing device of Example 5, comprising a protection circuit configured to prevent overwriting of the message transmission register by another interrupt source data processing entity until the interrupt source data processing entity allows overwriting of the message transmission register.
 - Example 7 is the data processing device of any one of Examples 1 to 6, comprising an interrupt router comprising the one or more software interrupt nodes.
 - Example 8 is the data processing device of any one of Examples 1 to 7, comprising one or more processors, each processor having a plurality of processor cores.
 - Example 9 is the data processing device of Example 8, wherein at least some of the processor cores are each configured to implement a plurality of virtual machines.
 - Example 10 is the data processing device of any one of Examples 1 to 9, wherein the data processing entities comprise processors, processing cores, virtual machines implemented on one or more processors or processing cores and/or tasks implemented on one or more processors or processing cores.
 - the data processing entities comprise processors, processing cores, virtual machines implemented on one or more processors or processing cores and/or tasks implemented on one or more processors or processing cores.
 - Example 11 is the data processing device of any one of Examples 1 to 10, wherein for each software interrupt node, a plurality of data processing entities are is allowed to trigger an interrupt service request on the software interrupt node.
 - Example 12 is the data processing device of any one of Examples 1 to 11, further comprising a target register for each software interrupt node specifying the interrupt target processing entity for the software interrupt node.
 - Example 13 is the data processing device of Example 12, wherein the software interrupt node is configured to forward the interrupt service request to the interrupt target processing entity specified by the target register.
 - Example 14 is a method for processing an interrupt as illustrated in FIG. 7 .
 - Example 15 is the method of Example 14, wherein the software interrupt node is one of one or more software interrupt nodes which are nodes for receiving interrupt requests from the plurality of data processing entities, generating interrupt service requests for interrupt requests and forwarding the interrupt service requests to the plurality of data processing entities.
 - the software interrupt node is one of one or more software interrupt nodes which are nodes for receiving interrupt requests from the plurality of data processing entities, generating interrupt service requests for interrupt requests and forwarding the interrupt service requests to the plurality of data processing entities.
 - Example 16 is the method of Example 14 or 15, further comprising controlling access to the software interrupt node for triggering interrupt service requests on the software interrupt node.
 - Example 17 is the method of Example 16, comprising restricting access to the software interrupt node for triggering interrupt service requests on the software interrupt node to data processing entities specified by the access register for the software interrupt node as being allowed to trigger an interrupt service request on the software interrupt node.
 - Example 18 is the method of any one of Examples 14 to 17, further receiving and storing data to be transmitted from an interrupt source data processing entity to an interrupt target data processing entity in a message transmission register.
 - Example 19 is the method of Example 18, comprising preventing overwriting of the message transmission register by another interrupt source data processing entity until the interrupt source data processing entity allows overwriting of the message transmission register.
 - Example 20 is the method of any one of Examples 14 to 19, wherein the software interrupt node is part of an interrupt router.
 - Example 21 is the method of any one of Examples 14 to 20, wherein each of the one or more processors has a plurality of processor cores.
 - Example 22 is the method of Example 21, wherein at least some of the processor cores implement a plurality of virtual machines.
 - Example 23 is the method of any one of Examples 14 to 22, wherein the data processing entities comprise processors, processing cores, virtual machines implemented on one or more processors or processing cores and/or tasks implemented on one or more processors or processing cores.
 - Example 24 is the method of any one of Examples 14 to 23, comprising allowing a plurality of data processing entities are to trigger an interrupt service request on the software interrupt node.
 - Example 25 is the method of any one of Examples 14 to 24, comprising specifying, by means of a target register for the software interrupt node, an interrupt target processing entity for the software interrupt node.
 - Example 26 is the method of Example 25, wherein the software interrupt node forwards the interrupt service request to the interrupt target processing entity specified by the target register.
 - a data processing device including one or more service request nodes, wherein each service request node is configured to forward an interrupt request triggered by a data processing entity of the plurality of data processing entities to another data processing entity of the plurality of data processing entities and an access register for each service request node, wherein the access register specifies which data processing entity may trigger an interrupt request on the service request node.
 - a method for processing an interrupt including a data processing entity of a plurality of data processing entities implemented by one or more processors transmitting an interrupt request signal to a software interrupt node, determining whether the data processing entity is allowed to, as interrupt source data processing entity, trigger an interrupt service request on the software interrupt node and forwarding the interrupt service request triggered by the data processing entity to another one of the plurality of data processing entities as interrupt target processing entity if the data processing entity is allowed to trigger an interrupt service request on the software interrupt node.
 
Landscapes
- Engineering & Computer Science (AREA)
 - Software Systems (AREA)
 - Theoretical Computer Science (AREA)
 - Physics & Mathematics (AREA)
 - General Engineering & Computer Science (AREA)
 - General Physics & Mathematics (AREA)
 - Bus Control (AREA)
 
Abstract
Description
-  
- Service Request Priority Number (SRPN)
 - Service Request Virtual Machine Number (VM) which allows mapping a service request to a virtual machine
 - Service request destination/service provider (TOS for “type of service”) which allows mapping a service request to an interrupt service provider (e.g. CPU or DMA)
 - Error Correction Code (ECC) bits
 - Enable/disable information (SRE)
 - Service Request Status bit (SRR)
 - Service Request Set bit and Service Request Clear bit (SETR, CLRR)
 - Interrupt Overflow bit (IOV) and interrupt Overflow clear bit (IOVCLR)
 - Software Sticky Bit (SWS) as indication of an Software initiated service request (SWS) and Software Sticky clear bit (SWSCLR)
 
 
-  
- a mailbox register to transfer additional information from a software interrupt source to the respective ISP.
 - a handshake mechanism to protect the mailbox register information (i.e. the information stored in the mailbox register) from being overwritten too early (e.g. by an assigned interrupt source before the interrupt service provider consumes the information).
 - the configured SW interrupt Source(s) can trigger a service request by writing to the mailbox register.
 - a write to the mailbox register blocks it against being overwritten (status bit shows the state of the blockade).
 - only the currently configured interrupt service provider (i.e. for which the mailbox register information is intended) can unblock the mailbox register by
        
- writing into the mailbox register
 - writing to an unlock bit in a software interrupt control (SWC) register
 - reading the mailbox register.
 
 
 
-  
- DATA (read- and writable),
 - LOCK (readable),
 - LOCKCLR (writable),
 - LOCKSET (writable),
 - BRDIS (read- and writable),
 - IOVLCR (writable),
 - IOV (readable),
 - SET (writable) and
 - STAT (readable)
 - whose meaning is given in the following in context of the GPSR Software control functions:
 
 
Claims (14)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| DE102019126897.4A DE102019126897B4 (en) | 2019-10-07 | 2019-10-07 | DATA PROCESSING DEVICE AND METHOD FOR PROCESSING AN INTERRUPT | 
| DE102019126897.4 | 2019-10-07 | 
Publications (2)
| Publication Number | Publication Date | 
|---|---|
| US20210103464A1 US20210103464A1 (en) | 2021-04-08 | 
| US11544103B2 true US11544103B2 (en) | 2023-01-03 | 
Family
ID=74875992
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date | 
|---|---|---|---|
| US17/038,183 Active 2040-10-22 US11544103B2 (en) | 2019-10-07 | 2020-09-30 | Data processing device and method for processing an interrupt | 
Country Status (2)
| Country | Link | 
|---|---|
| US (1) | US11544103B2 (en) | 
| DE (1) | DE102019126897B4 (en) | 
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| US20230052672A1 (en) * | 2021-08-10 | 2023-02-16 | International Business Machines Corporation | Queue bypassing interrupt handling | 
Citations (10)
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| US5778242A (en) | 1995-01-20 | 1998-07-07 | National Semiconductor Corporation | Software interrupt generator for computer bus interface | 
| US7200144B2 (en) * | 2001-10-18 | 2007-04-03 | Qlogic, Corp. | Router and methods using network addresses for virtualization | 
| US20070157197A1 (en) * | 2005-12-30 | 2007-07-05 | Gilbert Neiger | Delivering interrupts directly to a virtual processor | 
| US8519491B2 (en) * | 2011-03-30 | 2013-08-27 | PixArt Imaging Incorporation, R.O.C. | MEMS sensing device and method for making same | 
| US20140047150A1 (en) * | 2012-08-09 | 2014-02-13 | Bryan D. Marietta | Processor Interrupt Interface with Interrupt Partitioning and Virtualization Enhancements | 
| US20150212955A1 (en) | 2014-01-24 | 2015-07-30 | Texas Instruments Incorporated | Programmable Interrupt Routing in Multiprocessor Devices | 
| US10248595B2 (en) * | 2017-08-10 | 2019-04-02 | Infineon Technologies Ag | Virtual machine monitor interrupt support for computer processing unit (CPU) | 
| US20190222645A1 (en) * | 2018-01-16 | 2019-07-18 | Infineon Technologies Ag | Service request interrupt router for virtual interrupt service providers | 
| US20200125397A1 (en) * | 2017-06-27 | 2020-04-23 | Huawei Technologies Co.,Ltd. | Interrupt request processing method and apparatus, and virtualized device | 
| US11243791B2 (en) * | 2019-02-14 | 2022-02-08 | International Business Machines Corporation | Directed interrupt virtualization with fallback | 
- 
        2019
        
- 2019-10-07 DE DE102019126897.4A patent/DE102019126897B4/en active Active
 
 - 
        2020
        
- 2020-09-30 US US17/038,183 patent/US11544103B2/en active Active
 
 
Patent Citations (10)
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| US5778242A (en) | 1995-01-20 | 1998-07-07 | National Semiconductor Corporation | Software interrupt generator for computer bus interface | 
| US7200144B2 (en) * | 2001-10-18 | 2007-04-03 | Qlogic, Corp. | Router and methods using network addresses for virtualization | 
| US20070157197A1 (en) * | 2005-12-30 | 2007-07-05 | Gilbert Neiger | Delivering interrupts directly to a virtual processor | 
| US8519491B2 (en) * | 2011-03-30 | 2013-08-27 | PixArt Imaging Incorporation, R.O.C. | MEMS sensing device and method for making same | 
| US20140047150A1 (en) * | 2012-08-09 | 2014-02-13 | Bryan D. Marietta | Processor Interrupt Interface with Interrupt Partitioning and Virtualization Enhancements | 
| US20150212955A1 (en) | 2014-01-24 | 2015-07-30 | Texas Instruments Incorporated | Programmable Interrupt Routing in Multiprocessor Devices | 
| US20200125397A1 (en) * | 2017-06-27 | 2020-04-23 | Huawei Technologies Co.,Ltd. | Interrupt request processing method and apparatus, and virtualized device | 
| US10248595B2 (en) * | 2017-08-10 | 2019-04-02 | Infineon Technologies Ag | Virtual machine monitor interrupt support for computer processing unit (CPU) | 
| US20190222645A1 (en) * | 2018-01-16 | 2019-07-18 | Infineon Technologies Ag | Service request interrupt router for virtual interrupt service providers | 
| US11243791B2 (en) * | 2019-02-14 | 2022-02-08 | International Business Machines Corporation | Directed interrupt virtualization with fallback | 
Also Published As
| Publication number | Publication date | 
|---|---|
| DE102019126897B4 (en) | 2021-10-28 | 
| DE102019126897A1 (en) | 2021-04-08 | 
| US20210103464A1 (en) | 2021-04-08 | 
Similar Documents
| Publication | Publication Date | Title | 
|---|---|---|
| EP1141829B1 (en) | Interrupt architecture for a non-uniform memory access (numa) data processing system | |
| JP5541275B2 (en) | Information processing apparatus and unauthorized access prevention method | |
| KR102570943B1 (en) | PCIe DEVICE AND OPERATING METHOD THEREOF | |
| CN107636630B (en) | Interrupt controller | |
| US20140365696A1 (en) | Posting interrupts to virtual processors | |
| US11741039B2 (en) | Peripheral component interconnect express device and method of operating the same | |
| US8615614B2 (en) | Message passing using direct memory access unit in a data processing system | |
| KR102568906B1 (en) | PCIe DEVICE AND OPERATING METHOD THEREOF | |
| KR102568909B1 (en) | PCIe FUNCTION AND OPERATING METHOD THEREOF | |
| US8996774B2 (en) | Performing emulated message signaled interrupt handling | |
| US11928070B2 (en) | PCIe device | |
| US20220300442A1 (en) | Peripheral component interconnect express device and method of operating the same | |
| US10394730B2 (en) | Distributed interrupt scheme in a multi-processor system | |
| US20170249457A1 (en) | Secure receive packet processing for network function virtualization applications | |
| US20250274126A1 (en) | Interface device and method of operating the same | |
| US11544103B2 (en) | Data processing device and method for processing an interrupt | |
| JP5904948B2 (en) | The system that allows direct data transfer between memories of several components of the system | |
| US12169465B2 (en) | Peripheral component interconnect express device and operating method thereof | |
| US7073007B1 (en) | Interrupt efficiency across expansion busses | |
| CN119046998A (en) | Processing system, related integrated circuit, apparatus and method | 
Legal Events
| Date | Code | Title | Description | 
|---|---|---|---|
| AS | Assignment | 
             Owner name: INFINEON TECHNOLOGIES AG, GERMANY Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:WIRRER, GERHARD;HELLWIG, FRANK;KUMAR, VARUN;SIGNING DATES FROM 20200928 TO 20200929;REEL/FRAME:053930/0450  | 
        |
| FEPP | Fee payment procedure | 
             Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY  | 
        |
| STPP | Information on status: patent application and granting procedure in general | 
             Free format text: APPLICATION DISPATCHED FROM PREEXAM, NOT YET DOCKETED  | 
        |
| STPP | Information on status: patent application and granting procedure in general | 
             Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION  | 
        |
| STPP | Information on status: patent application and granting procedure in general | 
             Free format text: NON FINAL ACTION MAILED  | 
        |
| STPP | Information on status: patent application and granting procedure in general | 
             Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER  | 
        |
| STPP | Information on status: patent application and granting procedure in general | 
             Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS  | 
        |
| STPP | Information on status: patent application and granting procedure in general | 
             Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED  | 
        |
| STPP | Information on status: patent application and granting procedure in general | 
             Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED  | 
        |
| STPP | Information on status: patent application and granting procedure in general | 
             Free format text: AWAITING TC RESP, ISSUE FEE PAYMENT VERIFIED  | 
        |
| STPP | Information on status: patent application and granting procedure in general | 
             Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED  | 
        |
| STCF | Information on status: patent grant | 
             Free format text: PATENTED CASE  |