G06F9/4812

RTOS/OS architecture for context switching that solves the diminishing bandwidth problem and the RTOS response time problem using unsorted ready lists
11507524 · 2022-11-22 ·

The present invention is a novel RTOS/OS architecture that changes the fundamental way that context switching is performed. In all prior operating system implementations, context switching required disabling of interrupts. This opens the possibility that data can be lost. This novel approach consists of a context switching method in which interrupts are never disabled. Two implementations are presented. In the first implementation, the cost is a negligible amount of memory. In the second, the cost is only a minimal impact on the context switching time. This RTOS/OS architecture requires specialized hardware. Concretely, an advanced interrupt controller that supports nesting and tail chaining of prioritized interrupts is needed (e.g. the Nested Vectored Interrupt Controller (NVIC) found on many ARM processors). The novel RTOS/OS architecture redefines how task synchronization primitives such as semaphores and mutexes are released. Whereas previous architectures directly accessed internal structures, this architecture does so indirectly by saving information in shared buffers or setting flags, and then activating a low priority software interrupt that subsequently interprets this data and performs all context switching logic. The software interrupt must be set as the single lowest priority interrupt in the system.

SYSTEMS AND METHODS FOR STALLING HOST PROCESSOR

Systems and methods for stalling a host processor. In some embodiments, the host processor may be caused to initiate one or more selected transactions, wherein the one or more selected transactions comprise a bus transaction. The host processor may be prevented from completing the one or more selected transactions, to thereby stall the host processor.

AN APPARATUS AND METHOD FOR HANDLING EXCEPTIONS
20220366036 · 2022-11-17 ·

An apparatus for handling exceptions, including a processing circuitry operable in at least one security domain to execute program code that includes a plurality of exception handling routines executed in response to corresponding exceptions, and a plurality of registers for storing data for access by the processing circuitry when executing the program code. The exception control circuitry is arranged in response to occurrence of a given exception from background processing to trigger a state saving operation to save data from the plurality of registers before triggering the processing circuitry to execute a given exception handling routine. Configuration storage provides configuration information used to categorise exception handling routines. The exception control circuitry is arranged to determine with reference to the configuration information whether the given exception handling routine is of a first or second category within the security domain that the given exception handling routine will be executed in.

THREAD SIGNAL OPERATING METHOD AND SYSTEM OF EMBEDDED REAL TIME OPERATING SYSTEM

The present invention provides a thread signal operating method and system of an embedded real-time operating system, which relates to the technical field of communications. The system includes a main control module and a PC. A core of the main control module is an MCU chip and includes a serial port and a USB port. The serial port is used as a default communication device to communicate with the external. The USB port is connected to a USB port of the PC. The main control module further includes an actual thread signal waiting module, an actual thread signal setting module, a system service call interrupt module, and a suspendable system call interrupt module. Multi-threaded signal processing according to task allocation rules can reduce overhead caused by interactions, improve processing efficiency, reduce power consumption, and reduce hardware module superposition.

VIRTUALIZATION OF INTERPROCESSOR INTERRUPTS
20220365802 · 2022-11-17 · ·

Embodiments of apparatuses, methods, and systems for virtualization of interprocessor interrupts are disclosed. In an embodiment, an apparatus includes a plurality of processor cores; an interrupt controller register; and logic to, in response to a write from a virtual machine to the interrupt controller register, record an interprocessor interrupt in a first data structure configured by a virtual machine monitor and send a notification of the interprocessor interrupt to at least one of the plurality of processor cores.

Apparatus and method for configuring sets of interrupts

An apparatus and method are described for efficiently processing and reassigning interrupts. For example, one embodiment of an apparatus comprises: a plurality of cores; and an interrupt controller to group interrupts into a plurality of interrupt domains, each interrupt domain to have a set of one or more interrupts assigned thereto and to map the interrupts in the set to one or more of the plurality of cores.

Resource sharing in a multi-core system

An integrated circuit includes a primary initiator domain (ID) circuit including having a processor core, a responder domain (RD) control circuit, and a reset controller. Secondary ID circuits, each include a processor core and a reset controller. RD circuitry is coupled to communicate with the primary ID circuit and the secondary ID circuits and includes RD resource circuits. The RD control circuit is configured to allocate each of the RD resource circuits to a first initiator domain consisting of the primary ID circuit or one of the secondary ID circuits, and when one of the secondary ID circuits enters a reset mode of operation, the RD resource circuit allocated to the one of the secondary ID circuits enters a reset while the remaining RD resource circuits are not affected by the reset.

Systolic array-friendly data placement and control based on masked write

The present disclosure relates to an accelerator for systolic array-friendly data placement. The accelerator may include: a systolic array comprising a plurality of operation units, wherein the systolic array is configured to receive staged input data and perform operations using the staged input to generate staged output data, the staged output data comprising a number of segments; a controller configured to execute one or more instructions to generate a pattern generation signal; a data mask generator; and a memory configured to store the staged output data using the generated masks. The data mask generator may include circuitry configured to: receive the pattern generation signal from the controller, and, based on the received signal, generate a mask corresponding to each segment of the staged output data.

MEMORY ACCESS HANDLING FOR PERIPHERAL COMPONENT INTERCONNECT DEVICES
20220358049 · 2022-11-10 ·

Systems and methods for memory management for virtual machines. An example method may include receiving, by a host computing system, a memory access request initiated by a peripheral component interconnect (PCI) device, wherein the memory access request comprises a memory address and an address translation flag specifying an address space associated with the memory address; and responsive to determining that the address translation flag is set to a first value indicating a host address space, causing a host system input/output memory management unit (IOMMU) to pass-through the memory access request.

System Call Method and Apparatus, and Electronic Device
20230103210 · 2023-03-30 ·

A system call method and apparatus, and an electronic device are provided. The method includes that: when a simulator runs on an operating system, a library file of the simulator and a pre-scanned system call table of the simulator are loaded, the system call table including a system file called by a simulation system in the simulator, and position information of the system file; a target system file associated with the library file is searched in the system call table; and the position information of the target system file is modified to a execution function corresponding to the simulator in the system call table, so as to call the target system file through the execution function.