WO2024253849A1 - Fast path interrupt injection - Google Patents
Fast path interrupt injection Download PDFInfo
- Publication number
- WO2024253849A1 WO2024253849A1 PCT/US2024/030675 US2024030675W WO2024253849A1 WO 2024253849 A1 WO2024253849 A1 WO 2024253849A1 US 2024030675 W US2024030675 W US 2024030675W WO 2024253849 A1 WO2024253849 A1 WO 2024253849A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- interrupt
- processing
- path
- fast path
- injection
- 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.)
- Ceased
Links
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/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/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/45579—I/O management, e.g. providing access to device drivers or storage
-
- 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/45587—Isolation or security of virtual machine instances
Definitions
- Computing systems are currently in wide use. Such computing systems often run an operating system that operates based on interrupts.
- Some interrupts are generated by hardware devices. Such an interrupt is a signal that is caused by some action taken by the hardware device. For example, keystroke depressions and mouse movements cause hardware interrupts. The signal is sent to a central processing unit. When an interrupt is received, a central processing unit stops what it is doing, saves the state information identifying the state of the task that it is performing, and then processes the interrupt. In order to process the interrupt, the CPU executes a piece of code corresponding to the interrupt, and then returns to the original task it was performing by reloading the state information, and continuing to execute the task.
- the intermediate processing layer includes security and management processes which enhance the security of the operating system and protect the operating system from surreptitious attacks.
- the intermediate processing layer is often referred to as a hypervisor.
- the hypervisor incorporates security processing as well as management operations which manage the instantiation, allocation, and use of virtual processors, among other things. When the hypervisor is in place, then interactions between the operating system and hardware devices pass through the hypervisor.
- the state of an interrupt is identified.
- An eligibility value corresponding to the interrupt is generated based on the state of the interrupt.
- the eligibility value is indicative of whether the interrupt should be processed by a first processing path or a second processing path, the second processing path being lower latency than the first processing path, and the second processing path bypassing operations performed in the first processing path.
- the assembly language processing system accesses the eligibility' value corresponding to the interrupt and routes the interrupt to the first or second processing path based on the eligibility value.
- FIG. 1 is a block diagram of one example of a computing system architecture.
- FIG. 2 is a block diagram showing one example of an interrupt allocation controller, in more detail.
- FIG. 3 is a block diagram showing one example of an assembly code processing system, in more detail.
- FIGS. 4A and 4B (collectively referred to herein as FIG. 4) show a flow diagram illustrating one example of the operation of a hypervisor/security system, in more detail.
- FIG. 5 is a block diagram showing one example of a computing environment that can be used in the architectures and systems shown in the previous figures.
- hypervisor/security system an intermediate processing layer that sits between hardware devices and an operating system. Any interactions between the operating system and the hardware devices pass through the hypervisor/security system. Therefore, the hypervisor/security system can perform security tasks which protect the operating system from various different types of surreptitious attacks.
- an assembly code representation of the interrupt is generated and passed to a translation system which translates that representation of the interrupt into a higher-level language representation (such as a representation in C).
- the higher- level representation of the interrupt is then passed to an interrupt management processing system that performs a wide variety of different types of checks and management operations corresponding to the interrupt.
- the interrupt is also operated on by a hypervisor management processing system which performs other hypervisor management operations, such as instantiating additional virtual processors, retargeting commands among the various virtual processors, among other things.
- the interrupt is injected into an operating system, such as by being written into an injection register where the operating system can access the interrupt, process the interrupt, and generate a return signal when the interrupt processing is complete.
- the assembly language processing system routes the interrupt along a first processing path that includes a first set of processing components that perform a first set of operations with respect to that interrupt before injecting the interrupt into the operating system.
- the first set of processing operations can include a wide variety of different ty pes of checks to determine that the interrupt can be safely injected into the processor core.
- the interrupt is returned to the assembly language processing system for injection into the operating system. Injecting the interrupt involves writing the interrupt into an injection register where the interrupt can be accessed by the operating system.
- the present description proceeds based on analysis in which it has been found that, a vast majority of time, the full first set of processing operations need not be performed. Instead, in accordance with the present description, a second set of processing operations, which is only a subset of the first set of processing operations (and which is much lower latency) needs to be performed by the hypervisor/security system, and the interrupt can then be injected directly into the operating system, bypassing the first set of processing operations.
- the present description thus describes a system in which the state of an interrupt is maintained in a data store, along with an eligibility indicator that indicates whether the interrupt needs the first set of processing operations before being injected into the operating system, or whether the interrupt can be injected after only a subset of processing operations.
- the eligibility indicator indicates whether the assembly language processing system is capable of performing the subset of processing and. if so. the assembly language processing system performs the subset of processing operations and directly injects the interrupt into the operating system, bypassing the first set of processing operations.
- the subset of processing operations can be performed without ever generating a higher-level language representation of the interrupt, and without performing any of the other hypervisor/security system processing on the interrupt. Because the assembly language processing system is capable of performing the subset of processing operations to be able to inject the interrupt, this greatly reduces the latency incurred in processing interrupts, while still maintaining the security provided by the hypervisor/security system.
- FIG. 1 is a block diagram showing one example of a computing system architecture 100 in which an operating system (which may be run on a virtual processor - or VP) 102 receives interrupts from one or more hardware devices 104 through a hypervisor/security system 106.
- hypervisor/security system 106 writes the interrupt into one of a set of injection registers 108, 110, 112. and 114.
- hypervisor/security system 106 includes assembly code (ASM) processing system 116, higher-level language translation system 118, interrupt management processing system 120, hypervisor management processing system 122, and other functionality 124.
- ASM assembly code
- interrupt management processing system 120 maintains an array of data structures where each data structure corresponds to an interrupt.
- the information in the data structure identifies the state of the interrupt, among other things.
- interrupt management processing system 120 Based upon the state of the interrupt (and possibly other criteria), interrupt management processing system 120 generates a fast path eligibility indicator that indicates whether this particular interrupt is eligible for fast path processing, in which case only the subset of processing operations is performed resulting in a reduction in the latency incurred in processing the interrupt, or whether the interrupt should undergo slow path processing in which case the full set of processing operations is performed.
- the fast path eligibility indicator is stored in the data structure corresponding to that interrupt.
- ASM processing system 116 indexes into the array of data structures maintained by interrupt management processing system 120 to query the fast path eligibility’ indicator corresponding to the received interrupt. If the eligibility indicator indicates that this interrupt is eligible for fast path processing, then ASM processing system 116 may perform a subset of the processing that would otherwise be performed by hypervisor/security system 106 on the interrupt, and directly injects the interrupt into operating system 102 by writing into one of the injection registers 108-114. In one example, a specific one of the injection registers 108-114 is allocated for fast path processing so that only interrupts that are to be injected into operating system 102 using fast path processing are written into that injection register. For purposes of the present discussion, it will be assumed that the injection register allocated to fast path processing of interrupts is injection register 108. Thus, injection register 108 may be referred to herein as a fast path injection register 108.
- ASM processing system 116 determines that the interrupt is not eligible for fast path processing (e.g., based upon the fast path eligibility- indicator retrieved for this interrupt), then ASM processing system 116 routes the interrupt along a first processing path. For example, ASM processing system 116 passes the interrupt to higher-level language translation system 1 18 which generates a higher-level language representation of the interrupt (such as a representation in C) and passes the higher-level representation of the interrupt to interrupt management processing sy stem 120.
- Interrupt management processing system 120 is described in greater detail below with respect to FIG. 2. Briefly, however, interrupt management processing system 120 can perform a wide variety of different types of processing operations in order to process the interrupt.
- interrupt management processing system 120 may deallocate injection registers 110, 112, and 114 and determine the overall priority of all interrupts that are currently pending, and rewrite the interrupts into injection registers 110, 112, and 114 in priority order. Interrupt management processing system 120 can then update the state information in the array of data structures it is maintaining for each of the interrupts and then allocate an injection register 110- 114 for the interrupt that is currently being processed.
- System 120 can also invoke hypervisor management processing system 122.
- Hypervisor management processing system 122 can perform additional management operations with respect to the interrupt, such as determine whether it is time to execute another virtual processor (VP), move a virtual processor to another processing core, among a wide variety- of other operations.
- VP virtual processor
- the result of the operations performed when the first processing path is taken (e.g., the results of processing by higher-level language translation system 118, interrupt management processing system 120, and hypervisor management processing system 122) are then returned to higher-level language translation system 118 which translates that result back into assembly code which can be processed by ASM processing system 116.
- ASM processing system 116 then writes the interrupt into the injection register 1 10-114 to which the interrupt was allocated to it by interrupt management processing system 120.
- Operating system 102 then accesses the interrupt in the injection register, executes the interrupt, and returns a value to that injection register indicating that the interrupt has been executed.
- system 1 16 injects the interrupt directly into the operating system 102 by writing the interrupt to injection register 108, bypassing all the other processing performed by higher-level language translation system 118, interrupt management processing system 120, and hypervisor management processing system 122.
- system 1 16 injects the interrupt directly into the operating system 102 by writing the interrupt to injection register 108, bypassing all the other processing performed by higher-level language translation system 118, interrupt management processing system 120, and hypervisor management processing system 122.
- ASM processing system 116 only needs to execute a very limited quantity of code to query the eligibility indicator for the received interrupt and then, assuming that the fast path eligibility indicator shows that the interrupt is eligible for fast path processing, ASM processing system 116 can directly inject that interrupt into operating system 102 by writing it into fast path injection register 108, thus reducing the processing overhead needed to process the intermpt and also reducing the latency incurred in processing the interrupt.
- FIG. 2 is a block diagram showing one example of intermpt management processing system 120 in more detail.
- interrupt management processing system 120 includes interrupt management processor 126, interrupt state processor 128, fast path eligibility processor 130, register allocation processor 132, and intermpt data store 134.
- Interrupt management processing system 120 can also include a wide variety 7 of other functionality 136 as well.
- intermpt data store 134 includes an array 138 of data structures 140-142 and other items 149. Each data structure 140-142 corresponds to a different intermpt.
- the interrupt data structures 140-142 contain similar information. Therefore, only interrupt data stmcture 140 will be described in more detail.
- interrupt data stmcture 140 includes fast path eligibility indicator 144, state information 146, and other information 148.
- Interrupt state processor 128 identifies the state of each interrupt and updates state information 146 to identify the state of the corresponding interrupt.
- fast path eligibility processor 130 determines whether the intermpt corresponding to interrupt data structure 140 is eligible for fast path injection into operating system 102.
- Fast path eligibility processor 130 generates the fast path eligibility indicator 144 to indicate the eligibility of that interrupt for fast path processing.
- fast path eligibility indicator 144 is a Boolean value which indicates whether the corresponding interrupt is eligible for fast path processing.
- Intermpt management processor 126 can perform a wide variety of different types of management operations corresponding to the intermpt or that may affect processing of the interrupt. For example, interrupt management processor 126 can intermittently run code to clean out injection registers 110-114 where the interrupt has already been executed by operating system 102. In another example, interrupt management processor 126 may process multiple interrupts at the same time to determine their priority so that they can be injected into operating system 102 in priority order or. if all injection registers 110-114 are in use, the interrupts can be enqueued in a queue for later injection. Interrupt management processor 126 can also perform retargeting which identifies the particular CPU core that the interrupt will be injected into.
- interrupt state processor 128 will maintain the state information 146 to indicate such things as whether the interrupt is in the middle of a retarget operation, whether the interrupt is in an active state, among other things.
- FIG. 3 is a block diagram showing one example of ASM processing system 116 in more detail.
- ASM processing system 116 includes fast path eligibility’ query system 152, interrupt injection system 154, and a wide variety of other functionality 156.
- fast path eligibility’ query system 152 uses the identity' of that interrupt to index into the array 138 of data structures 140- 142 to identify the location of the interrupt data structure for the corresponding interrupt (for purposes of the present discussion, it will be assumed that interrupt data structure 140 corresponds to the received interrupt).
- system 152 has access to a set of global variables that identify' the location of array 138 in memory' so that system 152 can quickly index into array 138 to find interrupt data structure 140 corresponding to the received interrupt.
- System 152 queries data structure 140 in interrupt data store 134 for the fast path eligibility indicator 144 in the identified interrupt data structure 140 to determine whether the interrupt is eligible for fast path processing.
- Interrupt injection system 154 injects the interrupt into the operating system 102 by writing the interrupt into one of injection registers 108-114. Where the interrupt is eligible for fast path processing, interrupt injection system 154 directly injects the interrupt into operating system 102 by writing the interrupt into injection register 108 bypassing the processing operations performed by higher-level language translation system 118, interrupt management processing system 120, and hypervisor management processing system 122 in hypervisor/security system 106. When the interrupt is not eligible for fast path processing, then after the interrupt is fully processed by higher-level language translation system 118, interrupt management processing system 120, and hypervisor management processing system 122, interrupt injection system 154 injects the interrupt into the operating system 102 by writing it to the injection register 110-112 to which it was allocated. [0034] FIGS.
- FIG. 4A and 4B show a flow diagram illustrating one example of the operation of computing system architecture 100 in handling interrupts. It is first assumed that interrupt management processing system 120 maintains the array 138 of data structures 140-142, each data structure stores interrupt information corresponding to an interrupt. Each interrupt data structure 140-142 also includes a fast path eligibility indicator 144. Maintaining the array 138 of data structures 140-142 is indicated by block 160 in the flow diagram of FIG. 4.
- hypervisor/security system 106 receives an interrupt from a hardware device 104 which is passed to ASM processing system 116. Receiving an interrupt at ASM processing system 1 16 is indicated by block 162 in the flow diagram of FIG. 4.
- Fast path eligibility query system 152 in ASM processing system 116 then accesses array 138 of data structures 140-142 to access the data structure (in the present example data structure 140) corresponding to the received interrupt, as indicated by block 164 in the flow diagram of FIG. 4.
- fast path eligibility query system 152 uses a set of variables that identify the location of array 138 in memory so that system 152 can quickly access array 138. Accessing array 138 using a set of variables that identify the location of array 138 in memory is indicated by block 166 in the flow diagram of FIG. 4.
- Fast path eligibility’ query system 152 can access the data structure in other ways as well, as indicated by block 168.
- Fast path eligibility’ query system 152 then queries the data structure 140 for the fast path eligibility indicator 144 corresponding to the interrupt being processed. Obtaining the fast path eligibility indicator 144 is indicated by block 170 in the flow diagram of FIG. 4. If, at block 172, fast path eligibility query system 152 determines that the interrupt is not eligible for fast path injection into operating system 102, then fast path eligibility query system 152 generates a signal indicative of this and interrupt injection system 154 routes the interrupt to the first (slow) processing path for further hypervisor and management processing by higher-level language translation system 118. interrupt management processing system 120, and hypervisor management processing system 122, prior to injection into operating system 102, as indicated by block 178 in the flow diagram of FIG. 4. ASM processing system 116 then, after the further processing performed by hypervisor/security system 106, injects the interrupt using the allocated injection register 110-114, as indicated by block 180 in the flow diagram of FIG. 4.
- fast path eligibility 7 query system 152 determines whether the interrupt has already been allocated to one of the slow path injection registers 110-114. For example, it may be that the interrupt was fired previously and was allocated to injection register 110. At that point, operating system 102 may have executed the interrupt and returned a signal to injection register 110 indicating that the interrupt has been executed. However, it may be that interrupt management processing system 120 has not performed its intermittent processing where it cleans the executed interrupts out of the injection registers 110-114. Therefore, the current interrupt may be the same as the interrupt that was previously allocated to register 110, and the previous interrupt is still allocated to register 110 because it has not been cleaned out yet, even though that interrupt has already been executed by operating system 102.
- interrupt will be eligible for fast path processing as determined at block 172, and also that the interrupt will already have been allocated to a slow path injection register (for purposes of the present example, injection register 110). as determined at block 182 in the flow diagram of FIG. 4.
- system 152 in ASM processing system 116 will know that the intermpt can be directly injected into operating system 102 by writing it into injection register 110, bypassing further processing in system 106, since the injection register 110 has already been allocated to that intermpt.
- interrupt injection system 154 injects the intermpt directly into operating system 102 using the inj ection register 110 to which it was already allocated, bypassing the additional hypervisor and management processing that would otherwise be performed by higher-level language translation system 118, intermpt management processing system 120, and hyper isor management processing system 122 in hypervisor/secunty system 106 and returns directly back to the VP. Injecting the interrupt directly into the operating system 102, bypassing the additional hypervisor processing, using the slow path injection register 110 to which the intermpt is already allocated is indicated by block 184 in the flow diagram of FIG. 4.
- fast path eligibility query system 152 determines whether the fast path injection register (in this case, injection register 108) is currently in use, as determined at block 174. If the intermpt is eligible for fast path injection, and if injection register 108 is not currently being used, then interrupt injection system 154 injects the interrupt directly into operating system 102 using the fast path injection register 108. bypassing further hypervisor and management processing that would otherwise be performed by the first processing path comprising higher-level language translation system 118, intermpt management processing system 120, and hypervisor management processing system 122 in hypervisor/security system 106. Routing the intermpt through the fast path is indicated by block 176 and injecting the intermpt directly into operating system 102 using the fast path injection register 108, and bypassing the further processing is indicated by block 177 in the flow diagram of FIG. 4.
- fast path eligibility query' system 152 when determining whether an intermpt is eligible for fast path processing, may determine whether all of the slow path injection registers 110-114 are full. If that is the case, that means that interrupt management processing system 120 may have additional interrupts in a queue which are waiting to be written into the injection registers 110-114, in order of priority. Under those circumstances, ASM processing system 116 may not have access to the priority of the interrupts in the queue.
- fast path eligibility query system 152 simply determines that the interrupt is not eligible for fast path processing when all three of the slow path injection registers 110-114 are in use.
- ASM processing system 116 performs a subset of the processing and then directly injects the interrupt into operating system 102 using fast path injection register 108. Therefore, for more than 90% of all hardware interrupts that are received, the latency introduced by higher-level language translation system 118, intermpt management processing system 120, and hypervisor management processing system 122 can be completely avoided. This means that the interrupt can be processed in tens of CPU cycles, rather than hundreds of thousands of cycles. This greatly reduces latency associated with processing intermpts and greatly enhances the performance of the computing system.
- systems, components, controllers, and/or logic can be comprised of hardware items (such as processors and associated memory, or other processing components, some of which are described below) that perform the functions associated with those systems, components, controllers, and/or logic.
- the systems, components, controllers, and/or logic can be comprised of software that is loaded into a memory and is subsequently executed by a processor or server, or other computing component, as described below.
- the systems, components, controllers, and/or logic can also be comprised of different combinations of hardware, software, firmware, etc., some examples of which are described below.
- processors and servers include computer processors with associated memory and timing circuitry, not separately shown. They are functional parts of the systems or devices to which they belong and are activated by, and facilitate the functionality of the other components or items in those systems.
- data stores have also been discussed. It will be noted the data stores can each be broken into multiple data stores. All can be local to the systems accessing them, all can be remote, or some can be local while others are remote. All of these configurations are contemplated herein.
- the figures show a number of blocks with functionality ascribed to each block. It will be noted that fewer blocks can be used so the functionality is performed by fewer components. Also, more blocks can be used with the functionality distributed among more components.
- FIG. 5 is one example of a computing environment in which architecture 100. or parts of it, (for example) can be deployed.
- an example system for implementing some embodiments includes a computing device in the form of a computer 810 programmed to operate as described above.
- Components of computer 810 may include a processing unit 820 (which can comprise processors or servers from previous FIGS.), a system memory 830, and a system bus 821 that couples various system components including the system memory to the processing unit 820.
- the system bus 821 may be any of several types of bus structures including a memory' bus or memory' controller, a peripheral bus, and a local bus using any of a variety of bus architectures.
- such architectures include Industry- Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus. Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.
- ISA Industry- Standard Architecture
- MCA Micro Channel Architecture
- EISA Enhanced ISA
- VESA Video Electronics Standards Association
- PCI Peripheral Component Interconnect
- Memory and programs described with respect to FIG. 1 can be deployed in corresponding portions of FIG. 5.
- Computer 810 typically includes a variety of computer readable media.
- Computer readable media can be any available media that can be accessed by computer 810 and includes both volatile and nonvolatile media, removable and non-removable media.
- Computer readable media may comprise computer storage media and communication media.
- Computer storage media is different from, and does not include, a modulated data signal or carrier wave. It includes hardware storage media including both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
- Computer storage media includes random access memory (RAM), read only memory (ROM), electrically erasable programmable read only memory (EEPROM), flash memory or other memory technology, compact disc-read only memory (CD-ROM), digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 810.
- Communication media typically embodies computer readable instructions, data structures, program modules or other data in a transport mechanism and includes any information deliver ⁇ ' media.
- modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
- communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer readable media.
- wired media such as a wired network or direct-wired connection
- wireless media such as acoustic, radio frequency (RF), infrared and other wireless media.
- the system memory 830 includes computer storage media in the form of volatile and/or nonvolatile memory such as ROM 831 and RAM 832.
- a basic input/output system 833 (BIOS), containing the basic routines that help to transfer information between elements within computer 810, such as during start-up, is typically stored in ROM 831.
- RAM 832 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 820.
- FIG. 5 illustrates operating system 834, application programs 835, other program modules 836, and program data 837.
- the computer 810 may 7 also include other removable/non-removable volatile/nonvolatile computer storage media.
- FIG. 5 illustrates a hard disk drive 841 that reads from or writes to non-removable, nonvolatile magnetic media, and an optical disk drive 855 that reads from or writes to a removable, nonvolatile optical disk 856 such as a CD ROM or other optical media.
- Other removable or non-removable, volatile or nonvolatile computer storage media that can be used in the example operating environment include magnetic tape cassettes, flash memory' cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like.
- the hard disk drive 841 is typically connected to the system bus 821 through a non-removable memory interface such as interface 840, and optical disk drive 855 are typically connected to the system bus 821 by a removable memory interface, such as interface 850.
- the functionality described herein can be performed, at least in part, by one or more hardware logic components.
- illustrative types of hardware logic components include Field-programmable Gate Arrays (FPGAs), Program-specific Integrated Circuits (ASICs), Program-specific Standard Products (ASSPs), System-on-a-chip systems (SOCs), Complex Programmable Logic Devices (CPLDs), etc.
- the drives and their associated computer storage media discussed above and illustrated in FIG. 5, provide storage of computer readable instructions, data structures, program modules and other data for the computer 810.
- hard disk drive 841 is illustrated as storing operating system 844, application programs 845, other program modules 846, and program data 847. Note that these components can either be the same as or different from operating system 834, application programs 835, other program modules 836, and program data 837.
- Operating system 844, application programs 845, other program modules 846, and program data 847 are given different numbers here to illustrate that, at a minimum, they' are different copies.
- a user may enter commands and information into the computer 810 through input devices such as a keyboard 862. a microphone 863.
- a pointing device 861 such as a mouse, trackball or touch pad.
- Other input devices may include a joy stick, game pad, satellite dish, scanner, or the like.
- a visual display 891 or other type of display device is also connected to the system bus 821 via an interface, such as a video interface 890.
- computers may also include other peripheral output devices such as speakers 897 and printer 896, which may be connected through an output peripheral interface 895.
- the computer 810 is operated in a networked environment using logical connections to one or more remote computers, such as a remote computer 880.
- the remote computer 880 may be a personal computer, a hand-held device, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 810.
- the logical connections depicted in FIG. 5 include a local area network (LAN) 871 and a wide area network (WAN) 873, but may also include other networks.
- LAN local area network
- WAN wide area network
- Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet.
- the computer 810 When used in a LAN networking environment, the computer 810 is connected to the LAN 871 through a network interface or adapter 870. When used in a WAN networking environment, the computer 810 typically includes a modem 872 or other means for establishing communications over the WAN 873, such as the Internet.
- the modem 872 which may be internal or external, may be connected to the system bus 821 via the user input interface 860, or other appropriate mechanism.
- program modules depicted relative to the computer 810, or portions thereof, may be stored in the remote memory storage device.
- FIG. 5 illustrates remote application programs 885 as residing on remote computer 880.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
Abstract
Description
Claims
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP24733445.1A EP4724896A1 (en) | 2023-06-09 | 2024-05-23 | Fast path interrupt injection |
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202363507282P | 2023-06-09 | 2023-06-09 | |
| US63/507,282 | 2023-06-09 | ||
| US18/345,082 | 2023-06-30 | ||
| US18/345,082 US20240411580A1 (en) | 2023-06-09 | 2023-06-30 | Fast path interrupt injection |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024253849A1 true WO2024253849A1 (en) | 2024-12-12 |
Family
ID=91581174
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2024/030675 Ceased WO2024253849A1 (en) | 2023-06-09 | 2024-05-23 | Fast path interrupt injection |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP4724896A1 (en) |
| WO (1) | WO2024253849A1 (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140229648A1 (en) * | 2013-02-13 | 2014-08-14 | Red Hat Israel, Ltd | Storing Interrupt Location for Fast Interrupt Register Access In Hypervisors |
| US20150127866A1 (en) * | 2013-11-05 | 2015-05-07 | Qualcomm Incorporated | Secure, Fast and Normal Virtual Interrupt Direct Assignment in a Virtualized Interrupt Controller in a Mobile System-On-Chip |
| EP3255544A1 (en) * | 2016-06-08 | 2017-12-13 | Virtual Open Systems | Interrupt controller |
-
2024
- 2024-05-23 EP EP24733445.1A patent/EP4724896A1/en active Pending
- 2024-05-23 WO PCT/US2024/030675 patent/WO2024253849A1/en not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140229648A1 (en) * | 2013-02-13 | 2014-08-14 | Red Hat Israel, Ltd | Storing Interrupt Location for Fast Interrupt Register Access In Hypervisors |
| US20150127866A1 (en) * | 2013-11-05 | 2015-05-07 | Qualcomm Incorporated | Secure, Fast and Normal Virtual Interrupt Direct Assignment in a Virtualized Interrupt Controller in a Mobile System-On-Chip |
| EP3255544A1 (en) * | 2016-06-08 | 2017-12-13 | Virtual Open Systems | Interrupt controller |
Also Published As
| Publication number | Publication date |
|---|---|
| EP4724896A1 (en) | 2026-04-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7779016B2 (en) | Parallel execution of operations for a partitioned binary radix tree on a parallel computer | |
| US8205062B2 (en) | Tiered data management method and system for high performance data monitoring | |
| US11146654B2 (en) | Multitier cache framework | |
| US11513977B2 (en) | Pipelined data processing in fabric-enabled computational storage | |
| US10678481B2 (en) | Adaptive caching and dynamic delay scheduling for in-memory data analytics | |
| US11809953B1 (en) | Dynamic code loading for multiple executions on a sequential processor | |
| US20100057647A1 (en) | Accommodating learned clauses in reconfigurable hardware accelerator for boolean satisfiability solver | |
| US11526502B1 (en) | Parameterized disjoint samples of data sets | |
| CN114518841A (en) | Processor in memory and method for outputting instruction using processor in memory | |
| US20160328448A1 (en) | Controlling mirroring of tables based on access prediction | |
| US8688946B2 (en) | Selecting an auxiliary storage medium for writing data of real storage pages | |
| US10747773B2 (en) | Database management system, computer, and database management method | |
| US7689971B2 (en) | Method and apparatus for referencing thread local variables with stack address mapping | |
| CN120406814A (en) | Computing system, multi-round conversation reasoning method, device and computing device cluster | |
| US9535713B2 (en) | Manipulating rules for adding new devices | |
| US20240411580A1 (en) | Fast path interrupt injection | |
| CN119578547B (en) | Model reasoning method, device, storage medium and computer equipment | |
| WO2024253849A1 (en) | Fast path interrupt injection | |
| CN120218241A (en) | Reasoning method, device, electronic device and medium for large language model | |
| US7505997B1 (en) | Methods and apparatus for identifying cached objects with random numbers | |
| US8589633B2 (en) | Control apparatus | |
| CN114443748B (en) | Data processing method, device, electronic device and storage medium | |
| EP3940571B1 (en) | Data replacement apparatus, data replacement method, and program | |
| CN110659312B (en) | Data processing method, device, equipment and computer storage medium | |
| US9251100B2 (en) | Bitmap locking using a nodal lock |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 24733445 Country of ref document: EP Kind code of ref document: A1 |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2024733445 Country of ref document: EP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| ENP | Entry into the national phase |
Ref document number: 2024733445 Country of ref document: EP Effective date: 20260109 |
|
| ENP | Entry into the national phase |
Ref document number: 2024733445 Country of ref document: EP Effective date: 20260109 |
|
| ENP | Entry into the national phase |
Ref document number: 2024733445 Country of ref document: EP Effective date: 20260109 |
|
| ENP | Entry into the national phase |
Ref document number: 2024733445 Country of ref document: EP Effective date: 20260109 |
|
| ENP | Entry into the national phase |
Ref document number: 2024733445 Country of ref document: EP Effective date: 20260109 |
|
| WWP | Wipo information: published in national office |
Ref document number: 2024733445 Country of ref document: EP |