US6061709A - Integrated hardware and software task control executive - Google Patents
Integrated hardware and software task control executive Download PDFInfo
- Publication number
- US6061709A US6061709A US09/127,156 US12715698A US6061709A US 6061709 A US6061709 A US 6061709A US 12715698 A US12715698 A US 12715698A US 6061709 A US6061709 A US 6061709A
- Authority
- US
- United States
- Prior art keywords
- executive
- hardware
- interrupt
- software
- microprocessor
- 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.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 claims abstract description 46
- 238000012545 processing Methods 0.000 claims description 37
- 230000008569 process Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 230000004044 response Effects 0.000 claims description 11
- 230000001939 inductive effect Effects 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims 1
- 230000006870 function Effects 0.000 abstract description 51
- 230000007246 mechanism Effects 0.000 abstract description 26
- 238000009434 installation Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 27
- 238000007726 management method Methods 0.000 description 16
- 230000002093 peripheral effect Effects 0.000 description 12
- 230000008901 benefit Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 8
- 230000002747 voluntary effect Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000004308 accommodation Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 238000004377 microelectronic Methods 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
Definitions
- the present invention relates to multitasking operating systems, and more particularly to a task control executive that combines hardware and software task control methods.
- FIG. 1 is a block diagram that illustrates the architecture of a commercially available microprocessor 10 (the STi5500 from SGS-Thomson Microelectronics) that exemplifies this high degree of integration.
- the STi5500 is a highly integrated chip with a RISC processor core and over a dozen on-chip peripherals needed to form a complete digital video system on a single chip.
- This microprocessor 10 provides a low cost solution for digital video applications such as satellite digital television receivers and digital video disk players.
- digital video applications such as satellite digital television receivers and digital video disk players.
- some processes must be performed in hardware and some in software, with great emphasis on synchronizing events. Accordingly, a real-time multitasking operating system is typically used with such a microprocessor 10.
- Real-time multitasking operating systems known also as real-time executives
- real-time executives have been prevalent for many years.
- Most real-time executives are designed for microprocessors and have special characteristics that are different from non-realtime operating systems. These characteristics include fast response time to external events, fast context switch time, deterministic operation, and preemptive and priority based scheduling. It is these characteristics that determine a real-time executive's system performance.
- a real-time executive generally consists of three parts: an application interface; executive functions; and kernel operations.
- the application interface provides a standard set of function calls used to manage both the task operations and other operating system services such as memory management or message handling.
- the executive functions are the operations that occur when a particular application interface function is invoked.
- the kernel provides the primitive operations to manage multiple tasks and interrupts according to their assigned priorities and current state.
- the primary primitive functions of the kernel include context switching, scheduling, and critical section protection.
- FIG. 2 is a conceptual block diagram of a software-only real-time executive architecture.
- Applications 90 execute on a processor 92 by accessing executive functions of a real-time executive 95 through an application programming interface (API) 100.
- the API 100 in turn enters a kernel 101 to perform scheduling or context switching functions.
- an interrupt I/O mechanism 102 For preemptive events which occur asynchronously to the currently running task, an interrupt I/O mechanism 102 must be in place to allow kernel functions to be invoked while the processor is within an interrupt.
- kernel functions are called 103 using the API 100 in a reentrant manner.
- U.S. Pat. No. 5,247,675 discloses a preemptive multipriority multitasking real-time operating system. This conventional software-based system is well represented in the art. Many microprocessors that are not dedicated to desktop computers run some type of real-time executive of a similar design.
- U.S. Pat. No. 4,964,040 discloses a computer hardware executive that is a special purpose associative processor. It serves as a real-time kernel and provides high speed executive functions such as task registration, task synchronization, scheduling, event handling, and buffer management.
- This hardware executive provides high speed and high performance kernel operations, but is not commercially viable for today's highly competitive markets, primarily due to the cost of the extra external chip.
- the standalone hardware kernel cannot tightly integrate with on-chip peripherals seen on today's highly integrated processors that have signal processing, direct memory access, compression/decompression, and/or encoding/decoding functions.
- the commercially available STi5500 microprocessor incorporates a hardware-only scheduler integrated into its instruction set. (That is, most portions of the hardware executive reside in the STi5500 processor's CPU, and the rest is part of a hardware executive API).
- the extended instruction set includes not only real-time executive functions and primitives, but also includes tight integration with peripherals so that scheduling activities can quickly and automatically occur without application intervention, once a hardware operation has completed and software processing needs occur immediately thereafter. The time it takes a system to respond to an event (usually a hardware event) and begin associated software processing is defined as "latency".
- FIG. 3 is a conceptual block diagram of a hardware-only executive architecture 105, modeled on the STi5500 microprocessor.
- the hardware-only model uses an API 106 to access executive functions.
- those executive functions are implemented as a hardware kernel 107 within the microprocessor itself, rather than in a software kernel 101.
- the diagram also shows two paths between the processor 92 and the kernel 107.
- the first path is a channel I/O 110 mechanism that can schedule processing automatically.
- the second path is a more traditional interrupt I/O 111 mechanism where an interrupt is generated by a hardware event, and a kernel function is called 112 through the API 106 in a reentrant manner in order to schedule processing or perform a kernel function.
- FIG. 4 is a block diagram that illustrates a system of multiple tasks using a CPU core of the type shown in FIG. 3. There are four execution spaces: high priority interrupts 120, a high priority execution queue 121, low priority interrupts 122, and a low priority execution queue 123. In terms of task priorities, there are only two, high and low.
- the high priority queue 121 executes round robin, and each task executes until it deschedules itself.
- the hardware scheduler can only put the task or thread at the end of the high priority queue 121.
- all currently queued high priority threads must execute to completion before the new thread, as scheduled by the interrupt, can execute.
- the problem with this is that the latency between the hardware event and the processing to handle the event is often too large to acceptably process time-critical applications such as video decoding.
- the low priority queue 123 differs from the high priority queue 121 in that it has a "timeslicing" component. If a task executes for longer than a timeslice period, the hardware scheduler automatically deschedules the task and goes on to the next task in the queue. Again, latency is a problem because the task that was timesliced will not execute again until all other queued threads in the low priority queue 123 have been executed and the queue has wrapped around to the timesliced task. In this case, the forced latency prevents the system from giving the remaining processor time to the non-realtime processor intensive tasks, slowing down the system throughput.
- the problems above with the high and low priority queues are made worse in more highly integrated chips because there are more peripherals to manage and interface with.
- the applications that these chips are currently targeted for include many traditional operating system features that require much more processor resources. Examples include file systems, network protocol stacks, Java language interpreters, and encryption/decryption.
- the hardware kernel 107 lacks some common and important facilities that are prevalent in many software-based executives. For example, the hardware kernel has timers and messages, but there is no message timeout. Also, software-based executives provide application layers that can be easily added, such as protocol stacks or file systems, whereas these would have to be recreated for a hardware-based kernel.
- FIG. 5 is a timing diagram that illustrates a standard path beginning with a hardware event and finishing with a task performing processing in response to the hardware event for a software-based executive. (The relative times are derived from an analysis of a current version of the STi5500 microprocessor and are exemplary only.)
- the sequence begins with the hardware inducing an interrupt 130 that preempts task processing 134.
- the interrupt 130 first executes a kernel interrupt entry call 131, then executes a kernel service call 132 (such as a semaphore). Next, an interrupt exit call 133 is executed.
- the interrupt 130 is exited and revectoring 135 is performed to enter the kernel scheduler. Finally, kernel scheduling 136 is completed and the corresponding task begins executing 137 in response to the interrupt 130 induced by the hardware event.
- the hardware event to software processing latency time is about 45 ⁇ S best case.
- FIG. 6 is a timing diagram that illustrates the sequence of execution that is performed automatically by a hardware scheduler upon the receipt of a channel I/O 110 event.
- the hardware scheduler 142 context switches to event processing 143 that was waiting for the channel I/O event.
- the hardware event to software processing latency time is about 0.5 ⁇ S best case, nearly 100 times faster than the software-only kernel latency time.
- FIG. 7 is a timing diagram that shows the sequence of execution for interrupt I/O using a hardware executive.
- an interrupt event occurs 150
- the low priority task is preempted 151 and an interrupt service routine begins processing.
- the interrupt service routine makes a hardware executive service call 152 and then the interrupt service routine exits 153.
- the hardware scheduler 154 then switches context to the event processing routine 155 that was waiting for the hardware executive service call 155 (e.g., a semaphore).
- the interrupt event to software processing for this case is around 6 ⁇ S, which is still around 7 times faster than the software-based executive model of FIG. 5.
- a central problem in the art is that using a hardware scheduler alone causes one type of latency, and using a software scheduler alone causes a different type of latency.
- Each of the types of latencies can cause errors in the signal processing, causing potential errors in the resultant output (e.g., dropouts in a video signal).
- certain hardware peripherals require the use of a hardware scheduler for data transfer, even if it is desirable to use software scheduling for other functions and general ease of use.
- the art has not taught how to effectively combine a software-based executive with a hardware-based executive, particularly for a "system on a chip" type of microprocessor.
- a general object of the present invention is to permit a software-based executive to execute concurrently with a hardware-based executive.
- Another object of the invention is to minimize latencies in hardware-based executive interrupts and tasks caused by a software-based executive.
- a further object of the invention is to integrate with the hardware executive API for the creation and management of hardware executive interrupts and tasks.
- Still another object of the invention is to integrate the software-based executive interrupt management with the hardware-based executive interrupt management and associated API.
- both the hardware and software executives should have the same interrupt management, functions, and API.
- Yet another object of the invention is to provide a mechanism that allows hardware-based executive tasks and interrupts to communicate with software-based tasks.
- the software-based executive of the invention overcomes the foregoing problems by appropriately allocating hardware executive tasks, hardware executive interrupts, software executive tasks, and software executive interrupts to the execution spaces available on a microprocessor having a hardware-based executive. Additionally, the invention uses the processor's instruction set and registers to accomplish the previously stated objects.
- the preferred embodiment of the invention is implemented by modifying a commercially available software-based executive to operate in conjunction with a hardware-based executive.
- Applications control hardware-based executive tasks and interrupts through the hardware executive API.
- applications control software-based executive tasks through the software executive API.
- Applications share the hardware executive API functions for interrupt installation and management, regardless of whether the interrupts are being used for the software executive or the hardware executive.
- the hardware-based executive provides two methods for responding to hardware events, and the software executive provides a third method.
- the hardware executive task or interrupt may invoke software executive functions through a special interface.
- hardware-based interrupts can communicate with the hardware kernel by using the corresponding hardware-based API, thereby permitting reentrancy.
- software-based interrupts communicate with the software kernel also by using the corresponding software-based API, resulting in reentrancy of a different type.
- Hardware channel I/O does not need to make hardware executive API calls to affect scheduling, since the channel I/O operation is an implicit hardware scheduling operation of the kernel.
- the preferred microprocessor used in one implementation of the invention has four primary execution spaces: high priority interrupts, a high priority queue, low priority interrupts, and a low priority queue.
- the invention allocates all hardware executive based interrupts to the high priority interrupt execution space. All hardware executive based tasks are allocated to the high priority queue. All software executive based interrupts are allocated to low priority interrupts. Finally, all software executive tasks are allocated to the low priority queue.
- the software-based tasks execute in the low priority queue space, but are not actually a queue.
- the processor's hardware scheduler is disabled when only one task exists in the queue.
- the software executive uses a special context switch mechanism that changes the currently executing task without creating another low priority thread. In this way, the low priority hardware scheduler is always disabled, and low priority tasks are always under the control of the software executive.
- enables An "enables" mechanism exists to protect critical sections of code during reentrancies.
- the enables mechanism is hierarchical and performs enables/disables of interrupts and tasks. This important component determines system performance since it causes latencies while tasks or interrupts are disabled. Also, enabling of processor traps, which is part of the enables mechanism, are handled such that the processor's runtime and on-chip debugging functions are not corrupted.
- An interrupt return revectoring mechanism is provided to provide a mechanism for preemption.
- the interrupt return revectoring mechanism exits the interrupt and revectors into the software kernel so that a new kernel task can begin executing, rather than returning to the previously executing task.
- interrupt revectoring is a common technique used in preemptive priority based operating systems
- this invention uses a technique designed specifically to accommodate the existence of hardware executive based tasks and interrupts. Additionally, this mechanism was designed to operate in a manner consistent with the interrupt management mechanisms used by the hardware executive.
- a mechanism is also provided to accommodate block move operations.
- Block move operations occur when fast data movement is necessary. When the data move is interrupted by a software executive interrupt, the processor's registers must be handled accordingly or the block move will not complete properly when the task is rescheduled later.
- FIG. 1 is a block diagram that illustrates the architecture of a commercially available microprocessor.
- FIG. 2 is a conceptual block diagram of a software-only real-time executive architecture.
- FIG. 3 is a conceptual block diagram of a hardware-only executive architecture.
- FIG. 4 is a block diagram that illustrates a system of multiple tasks using a CPU core of the type shown in FIG. 3.
- FIG. 5 is a timing diagram that illustrates a standard path beginning with a hardware event and finishing with a task performing processing in response to the hardware event for a software-based executive of the type shown in FIG. 2.
- FIG. 6 is a timing diagram that illustrates the sequence of execution that is performed automatically by a hardware scheduler upon the reception of a channel I/O event using a hardware executive of the type shown in FIG. 3.
- FIG. 7 is a timing diagram that shows the sequence of execution for interrupt I/O using a hardware executive of the type shown in FIG. 3.
- FIG. 8 is a block diagram illustrating the preferred embodiment of the invention containing both a hardware and software executive.
- FIG. 9 shows the subset of microprocessor registers used to implement the high priority hardware executive and the low priority software executive.
- FIG. 10 is a flowchart illustrating a simplified kernel entry and exit routine in accordance with the preferred embodiment of the invention.
- FIG. 11 is a diagram of the STi5500 ENABLES Register.
- FIG. 12 is a diagram of the STi5500 Interrupt Controller Register, showing the interrupt controller registers that are modified to perform masking at the kernel call level.
- FIG. 13 is a timing diagram example of the enables method of a previous design.
- FIG. 14 is a timing diagram example of the hierarchical enables method of the preferred embodiment of the invention.
- FIG. 15 is a flowchart illustrating the interrupt return portion of the current embodiment.
- One embodiment of the invention has been implemented as a modification to a conventional software executive, the pSOS+ kernel from Integrated Systems Design Center, Inc., the assignee of the present invention, for operation on a microprocessor having a hardware-based executive, such as the STi5500.
- a conventional software executive the pSOS+ kernel from Integrated Systems Design Center, Inc.
- the assignee of the present invention for operation on a microprocessor having a hardware-based executive, such as the STi5500.
- the commercially available software kernel was tested and operational on an STi5500 microprocessor, but operated in a conventional manner without accommodation for the hardware kernel.
- FIG. 8 is a block diagram illustrating the preferred embodiment of the invention containing both a hardware and software executive.
- Applications 90 can execute on a processor 92 by accessing executive functions of a real-time hardware executive 161 through a hardware API 162. Those executive functions are implemented as a hardware kernel 167 within the microprocessor itself.
- the diagram also shows two paths between the processor 92 and the kernel 167.
- the first path is a channel I/O 164 mechanism that can schedule processing automatically.
- the second path is a more traditional interrupt I/O 165 mechanism where an interrupt is generated by a hardware event, and a kernel function is called through the API 162 in a reentrant manner in order to schedule processing or perform a kernel function.
- Applications 90 may also execute on a processor 92 by accessing executive functions of a real-time software executive 166 through a software API 167.
- the software API 167 in turn enters a kernel 168 to perform scheduling or context switching functions.
- an interrupt I/O mechanism 169 must be in place to allow kernel functions to be invoked while the processor is within an interrupt.
- kernel functions are called using the software API 167 in a reentrant manner.
- a hardware executive task or interrupt may invoke software executive functions through a special interface 170 between the hardware API 162 and the software API 167, as described below.
- the STi5500 processor contains instructions for starting and changing execution (processes), as well as a two layer hardware scheduler.
- the two layers of hardware scheduling are referred to as the high priority queue and the low priority queue.
- multiple threads of execution can be assigned to one queue by starting a thread, then starting another.
- the hardware scheduler has control of when each thread is permitted to execute. If only one thread exists in a queue, then it is always executing and the hardware scheduler is not involved.
- the software scheduler was designed to execute in the low priority queue, new context switch mechanics were put in place for the low priority queue, and the interrupt handling was designed to accommodate various types of preemption (e.g., high priority hardware threads, interrupts that do not make operating system calls, and interrupts that do make operating system calls).
- the resulting kernel is one that allows high priority threads to execute unimpeded by the software scheduler, thereby permitting the hardware processes to be serviced without latency, while allowing the low priority kernel to manage software processes in a traditional manner permitting prioritized management of software processes.
- FIG. 9 shows the subset of microprocessor registers used to implement the high priority hardware executive and the low priority software executive.
- the currently executing processing state is stored in a set of CURRENT STATE registers 172.
- This set of registers 172 includes a stack pointer WPTR, an instruction pointer IPTR, a three register operand stack (A, B, and C), an ENABLES register, a STATUS register, and 5 block move registers BM[0-4].
- the processor is executing in a space determined by these registers, in either the high priority queue or the low priority queue.
- Three CONTEXT SAVE registers 173 represent the minimal context save required by a voluntary context switch within the illustrated embodiment.
- one set 174 of registers in the STi5000 microprocessor are ignored because no low priority tasks are queued.
- a set of SHADOW registers 175 are used to preserve the contents of the CURRENT STATE registers 172 when a high priority task or high priority interrupt preempts a low priority task. Once the high priority queue is empty or descheduled, or the high priority interrupt returns, then the low priority context stored in the SHADOW registers 175 is restored to CURRENT STATE registers 172.
- a set of HARDWARE registers 176 are used by the hardware kernel 163 for automatic scheduling, and by the hardware API 162 for hardware executive task management.
- Kernel initialization involves setting up the kernel stack, setting the default ENABLES register, setting the software executive interrupt mask, and finally switching execution space to the low priority queue.
- the kernel stack must be set up in a manner common to operations that enter the kernel or which modify the kernel context. These operations include an initial switch to low priority space (described here), interrupt revectoring, kernel context save and restore (described later), and finally a normal call to the kernel.
- the common stack frame pointed to by the stack register WPTR, must always be present when the instruction pointer IPTR points to the first instruction of the kernel entry function (STEP 180 in FIG. 10).
- the default ENABLES register is read on kernel initialization and saved in a global variable for later use during context restores. This is required to allow the software executive to work with the existing software executive interrupt mask the software executive interrupt mask is read and saved in another kernel global variable. This mask is used during kernel call interrupt disables, and prevents the kernel from disabling interrupts that are not allocated to the software executive.
- the execution space which normally powers up in high priority, is changed to low priority.
- the STi5500 processor instructions insertqueue and stopp are used to jump from the high priority space to low priority space, and jump into the kernel as well.
- preemption type which is an interrupt preempting a task.
- the STi5500 microprocessor has four execution spaces, which permits 6 preemption types.
- the invention is designed to allow all 6 types to operate properly. By allocating the software kernel preemption method to the most appropriate preemption type, the objects of the invention are realized. Except for the preemption type allocated to the invention, the remaining preemption types operate in an automatic manner without intervention from the software executive 166.
- the preemption types and context save method are set forth in the following table, with preemption priority indicated in parenthesis; preemption type (6) is used by the software executive for task preemption:
- FIG. 10 is a flowchart illustrating a simplified kernel entry and exit routine.
- Kernel entry (STEP 180) is a single point entry used by initialization, software executive interrupt revectoring, and standard service calls.
- an entry counter is examined to determine whether it is a reentry. If not, the kernel adopts the kernel stack and copies the function input parameters to the new stack.
- the call function input parameters are examined to determine if it is a service call or an interrupt return (STEP 181). If it is a service call, the routine jumps to the service call execution (STEP 182). If it is an interrupt return, the routine jumps to the scheduler, since the only reason for interrupt revectoring is if scheduling is needed (STEP 186).
- Service calls may be made from interrupts or from tasks. If a service call was made from an interrupt (STEP 183), then the kernel is exited with a standard return (STEP 184). If the call is a nested call (STEP 183 )--that is, if a kernel call was made from within the kernel in a reentrant manner--then the scheduling and context switching is deferred by exiting with a standard return (STEP 184).
- the process guarantees that all scheduling occurs only once, even though there may be several pending kernel calls that require a context switch. This prevents the case where calls are nested, and the last call gets the context switch rather than the highest priority call.
- the kernel determines whether the scheduler needs to execute (STEP 185), and if so, the scheduler executes (STEP 186). Scheduling may or may not result in a context switch, since the current task may still be the highest priority and ready to run. If the context switch is needed (STEP 187), the context switch is executed (STEP 188).
- the context switch exit is forced to return to a task context after an interrupt revector occurred, even if a context switch has not occurred (STEP 191). If the kernel is currently nested and no context switch occurred (STEP 190), then a standard kernel return occurs (STEP 184), otherwise the routine performs a context switch exit (STEP 191).
- Each task has an associated task control block that resides in system memory.
- the kernel When the kernel performs scheduling, it simply determines which task control block is going to be the next to execute when the kernel exits via a context switch exit (STEP 187).
- the effective context switch refers to the process, STEP 188, within the kernel which changes the current running task to a new running task.
- the real context switch is actually the kernel's context switch exit, STEP 191, which changes the processor's executing context to the new running task, and this operation exits the kernel.
- the effective context switch is implemented by changing the pointer to the current task control block to a new task control block.
- the real context switch has two types and two parts. The two types are voluntary and involuntary. The two parts of each type are the "context save” and the “context restore”. Voluntary context switches occur when a task makes a kernel call that deschedules the current task. The voluntary context save simply saves the registers WPTR and IPTR.
- An involuntary context switch involves using all the registers 172, so each of the registers must be saved and restored. Involuntary context switches occur when kernel calls from interrupts require scheduling. The involuntary context save is described in detail later as part of the interrupt return description.
- Context restores are preferably implemented with the processor's restart instruction, which takes a pointer to an image of the new register set and begins execution with the new context.
- This context restore method is the mechanism that exits the kernel on a context switch, and importantly, switches context without knowledge of the hardware scheduler.
- the low priority queue can be managed solely by the software executive. More particularly, if a kernel call is made, the saved context in a task control block (TCB) is overwritten with the return code from the kernel call.
- the TCB is the image of a register set.
- the return code from the function call in the TCB is loaded into the A register, according to the function call convention of the processor and compiler, implementing a context restore.
- the CURRENT STATE registers are loaded by the kernel when a context switch occurs. While there are other methods of achieving context switches on the processor, this is the only method known to the inventor that does not involve the hardware scheduler and provides a built in critical section protection mechanism, described below.
- the kernel path described above has numerous types of reentrancy modes, as with most conventional kernels.
- the kernel may be reentered any number of times, and interrupts may nest any number of times, within the limits of the system.
- a critical section is defined as one where hardware or data may be changed by a nested call at the point where a decision is being made. This is also known as a race condition.
- the invention implements an "enables hierarchy" to deal with the various execution spaces in a manner that minimizes latencies.
- the preferred embodiment of the invention has three levels of enables.
- the first and most restrictive level of enables is the global execution disable.
- This uses the ENABLES register combined with a "global interrupt disable" instruction of the microprocessor (e.g., the gintdis instruction for the STi5500).
- the global interrupt disable instruction operates only on the global enables portion of the ENABLES register; thus, trap enables are always preserved.
- FIG. 11 is a diagram of the STiS5500 ENABLES Register. To disable all execution space except for the current one in the illustrated embodiment, the global interrupt disable instruction is passed a value of "0 ⁇ FF", which causes the instruction to disable bits 16 to 23 in FIG. 11.
- the preferred embodiment of the invention needs to invoke a global execution disable in the kernel only during the context switch exit (STEP 191 in FIG. 10).
- the global execution disable operation provides a protected way to perform real context switches without interference from any other execution spaces, as well as an automatic reenable. Since the restart instruction loads a new ENABLES register value as part of the context switch exit (STEP 191), processing of a new task can begin with the proper ENABLES register value. Since the global execution disable operation only occurs during a kernel context switch exit, it is active only for a few instructions.
- the second level of enables uses the low priority external event disable to disable only the interrupts that are allocated to the software executive, while leaving the hardware executive tasks and interrupts still enabled. This is an important aspect of the invention, in that it allows the hardware executive and interrupts to always run uninhibited (except for the few instructions that execute during a context switch exit).
- the kernel level has unknown reentrant levels and entry/exit points. It is not feasible (and may not be possible) to track enable/disable counts or masks, so a function that disables all software executive interrupts is needed. This level of critical section protection occurs within the kernel level, shown in FIG. 10, except for the kernel service call (STEP 182 in FIG. 10).
- this level of enables is implemented with the gintdis instruction, but only a value of "0 ⁇ 40" is passed, thus disabling only the software executive interrupts (bit 22 in FIG. 11).
- the kernel exits it is guaranteed that all interrupts will be enabled because of the ENABLES register restore as part of the restart instruction.
- the third level of enables uses the interrupt controller's mask to disable interrupts allocated to the software executive. This disable operation saves the mask read prior to the disable (i.e., as the mask existed when a kernel call has been invoked), ignores non-software executive interrupts as defined during kernel initialization, and restores the mask the way it found it when a kernel call has been completed. This is important at the kernel call level because kernel calls can modify the interrupt mask. Thus, the exiting mask must match the entry mask, necessitating the extra level of enables.
- FIG. 12 is a diagram of the STi5500 Interrupt Controller Register, showing the interrupt controller registers that are modified to perform masking at the kernel call level in the illustrated embodiment.
- FIGS. 13 and 14 illustrate some of the advantages of the interrupt hierarchy.
- FIG. 13 is a timing diagram example of the enables method of a previous design, also developed by the inventor. To prevent high priority threads and interrupts from corrupting the low priority software-based executive critical sections, the processor's global disable instruction was used to prevent execution during critical sections. Regions 200 and 201 in the timing diagram show many latencies induced using this method, some of which are significant enough to prevent proper operation of high speed peripherals that may be allocated to high priority space.
- FIG. 14 is a fining diagram example of the hierarchical enables method of the preferred embodiment of the invention.
- the latencies for the high priority interrupts 210 and tasks 211 are minimized to a very short period that occurs only at each kernel context switch exit (STEP 191 in FIG. 10) and lasts for only a few instructions.
- the intermediate level of disable 212 also affects the lower levels of disable.
- Region 213 shows the beginning of the third level of disables that occur during kernel service call execution (STEP 182 in FIG. 10), and region 214 shows the end of the third level of disables, when the kernel service call execution completes.
- Interrupt entry and exit requires special processing in the interrupt service routine.
- the preferred embodiment of the invention implements interrupt entry and exit by placing a kernel function call at the beginning and the end of each software executive interrupt.
- the interrupt entry function maintains a nest counter that is used for determining interrupt nesting.
- the interrupt exit function decrements the nest counter when the interrupt exits.
- the interrupt exit function also checks for interrupt revectoring, and performs revectoring as necessary (see next section).
- the interrupt entry and exit functions both are compatible with the interrupt execution environment as setup by the hardware executive API. This environment provides an extra layer of interrupt "wrappering", so that when an interrupt is invoked, it first has to go through the hardware interrupt wrapper before the software executive interrupt routine is called.
- FIG. 15 is a flowchart illustrating the interrupt return portion of the illustrated embodiment, and more particularly the process performed in STEP 191 of FIG. 10.
- the revectoring process begins, otherwise the interrupt nesting count is decremented (STEP 227) and the call returns normally to the calling interrupt for eventual return to the interrupted task (STEP 228).
- interrupt nest detection must be performed before revectoring can continue.
- the interrupt nest counter described earlier is not sufficient to detect all interrupts. In the nested case, an interrupt could preempt another before the interrupt nest counter is incremented. This case is detected by first disabling software executive interrupts and examining the processor interrupt controller's interrupt status register, which shows which interrupts have been taken and are currently active (STEP 221). The interrupts belonging to the hardware executive are masked from this operation to determine if interrupts are nested (STEP 222). If this second level of nest detection shows a hidden nested interrupt, the interrupt revectoring is abandoned and the process decrements the nest counter (STEP 227) and returns to the calling interrupt (STEP 228).
- the pending and nested interrupt will perform the interrupt revector when it subsequently executes. It is necessary to revector the interrupt return rather than just making a kernel call to perform scheduling, because the scheduling operation is too lengthy to be done in an interrupt. Accordingly, the interrupt is exited as quickly as possible so that kernel entry and scheduling may be done in task space rather than in interrupt space.
- the next step is to find the interrupted context of the current interrupt (STEP 223). It is guaranteed that this is the only software executive interrupt that is active (due to the nesting filter) and that the interrupt is the only interrupt that is active (due to the fact that the processor requires that all high priority interrupts be assigned priorities greater than all low priority interrupts; thus, if a higher priority interrupt was active, it would be executing).
- the invention indexes the interrupt vector table and obtains the interrupt workspace pointer. Using the interrupt workspace pointer, the interrupted context may be obtained. Once found, the interrupted context is saved in the current task control block (STEP 224).
- the interrupted context preferably is in the same format as the task control block, which preferably is also in the same format as required for the restart instruction.
- the involuntary context switch save and restore, and the interrupted context areas all share the same format.
- the task free stack area is modified for interrupt return (MET) to emulate the kernel entry stack (STEP 225).
- the interrupt return context is changed to revector the execution into the kernel and the interrupt stack is modified to return to the kernel entry rather than to the interrupted task (STEP 226). In the illustrated embodiment, this is implemented by modifying the IPTR and WPTR on the interrupt stack. Once the revectoring modifications are made, the interrupt nest counter is decremented (STEP 227), and the call returns normally (STEP 228).
- This exit then returns to the hardware executive interrupt wrapper, which then calls the processor's interrupt return instruction to return to task space.
- the execution returns to the kernel entry, with a kernel entry type denoting an interrupt return.
- kernel entry type denoting an interrupt return.
- the STi5500 microprocessor has a "block move" instruction that moves data very quickly.
- This instruction is interruptable, and requires special processing by the software executive. This processing occurs within the interrupt return function of FIG. 15 and in the kernel entry and exit routine of FIG. 10.
- the processor stores a special code in the STATUS register. When the interrupt returns, this special code tells the processor to complete the block move. More particularly, the preferred embodiment of the invention handles block moves by implementing special handling of the STATUS register in the interrupt revectoring and kernel code.
- the STATUS register When interrupt revectoring occurs, the STATUS register must contain a default value (i.e., 0 ⁇ 80000000 in the illustrated embodiment), or the block move status will tell the processor that a block move must be completed, and the processor will attempt to do so but with the wrong register values. Accordingly, the invention saves the interrupted context's STATUS register value in a special variable in the task control block. The interrupted context's STATUS register value is overwritten with the default value, such that a false block move is not executed on interrupt return. Next, once in the kernel, the special saved variable in the STATUS register is copied over to the regular task control block's copy of the STATUS register.
- a default value i.e., 0 ⁇ 80000000 in the illustrated embodiment
- the altered TCB is restarted (i.e., loaded into the STATUS register), thereby indicating that the interrupted block move operation must be completed.
- voluntary context saves that occur in a kernel service call (STEP 182) and in a context switch operation (STEP 188) force the saved STATUS register to the default value to prevent false block moves after normal calls.
- the hardware executive tasks or interrupts need to communicate or synchronize with the software executive.
- the invention provides a mechanism to allow a hardware executive task or interrupt to invoke software executive functions through a special interface 170 between the hardware API 162 and the software API 167.
- the microprocessor's interrupt controller register has the ability to induce an interrupt without requiring an external event. This is done by writing to a register in the interrupt controller.
- a software executive interrupt routine is installed in the normal fashion as a low priority interrupt allocated to the software executive. This software-induced low priority interrupt routine contains the necessary software executive kernel call.
- the hardware executive interrupt or task can indirectly make a software executive kernel call by using the interrupt controller register to induce an interrupt that will invoke the software executive low priority interrupt routine. The effect of this is that the interrupt will execute after hardware tasks and interrupts have completed, thus preserving the absolute priority of the hardware executive task and interrupts.
- this aspect of the invention includes the following steps: setting a flag in an interrupt controller of the microprocessor; generating a hardware interrupt signal in response to the setting of such flag; invoking a low priority interrupt routine allocated to the software executive in response to such interrupt; executing a kernel call in the software executive from within such low priority interrupt routine. Accordingly, a task or interrupt within the hardware executive can indirectly cause execution of the kernel call in the software executive by inducing an interrupt upon setting such flag.
- aspects of the invention may be implemented in hardware or software, or a combination of both.
- the algorithms and processes of the invention noted as being software based are implemented in one or more computer programs executing on programmable systems each comprising at least one processor and at least one data storage system (including volatile and non-volatile memory and/or storage elements). Program code is executed on the processors to perform the functions described herein.
- Each program may be implemented in any desired computer language (including machine, assembly, high level procedural, or object oriented programming languages) to communicate with a computer system.
- the language may be a complied or interpreted language.
- Each such computer program is preferably stored on a storage media or device (E.g., ROM, CD-ROM, tape, or magnetic diskette) readable by a general or special purpose programmable computer, for configuring and operating the computer when the storage media or device is read by the computer to perform the procedures described herein.
- a storage media or device E.g., ROM, CD-ROM, tape, or magnetic diskette
- the inventive system may also be considered to be implemented as a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner to perform the functions described herein.
- Optional Hardware Scheduler Use permits designers to use special processor instructions that perform hardware scheduling automatically when certain hardware operations require service. This allows designers to make the decision to allocate some hardware operations/event handling to a high priority queue where needed, rather than just where required, as above.
- a hardware scheduler can respond to a hardware event typically in about one-hundredth of the time required of a software scheduler (depending on which call is used).
- Interrupt Usage Reduced Using a hardware scheduler for high speed processing reduces the number of required interrupts and/or the amount of processing required at any one interrupt level. This provides a two-fold advantage. First, the high speed processing allocated to a high priority queue has zero overhead, thus overall execution time is reduced, and at the point where execution time is most critical. Second, given priority based interrupt levels, reducing the number of interrupts and/or the processing time in any level reduces latencies for all interrupts at all levels, compared with traditional interrupts managed by software kernels.
- the hardware scheduler is non-preemptive, which means that the current thread runs until completion or until it voluntarily deschedules itself. Very fast or highly periodic operations are designed to execute in this manner and are suited to allocate to the hardware scheduler. However, less timely or processor intensive operations, if using the hardware scheduler, would induce catastrophic latencies in time critical hardware operations during periods where non-critical processing is occurring. Having non-critical processing allocated to a software scheduler, which provides preemptive scheduling, allows non-critical operations to execute without interfering with critical operations.
- the hardware scheduler and its associated software provide a limited set of processing services such as event management and message passing. Having a full featured scheduler/kernel/operating system gives designers a much larger set of tools from which to build applications with, and having these tools part of the kernel allows better management of processing activities.
- Unified Interrupt Management Based on the inventive architecture, software kernel interrupt management and handling can be designed to integrate with existing libraries that are used for managing interrupts in a hardware scheduler environment. This prevents contention between two differing interrupt management services and provides designers with the same software interface.
- Consistent Software Scheduler Application Interface The commercial tools available for developing applications for the software scheduler preferably remain the same. Thus, there need be no added cost in tools, and embodiments of the invention permit reuse of applications or drivers designed for the software API.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
______________________________________ PREEMPTED EVENT PRE- high EMPTING priority low priority low priority EVENT task interrupt task ______________________________________ High priority (1) context (2) context saved in (3) context saved in interrupt saved on SHADOW registers SHADOW registers interrupt stack High priority (4) context saved in (5) context saved in task SHADOW registers SHADOW registers Low priority (6) context saved interrupt on interrupt stack ______________________________________
Claims (16)
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/127,156 US6061709A (en) | 1998-07-31 | 1998-07-31 | Integrated hardware and software task control executive |
PCT/US1999/017082 WO2000006084A2 (en) | 1998-07-31 | 1999-07-27 | Integrated hardware and software task control executive |
AU53233/99A AU5323399A (en) | 1998-07-31 | 1999-07-27 | Integrated hardware and software task control executive |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/127,156 US6061709A (en) | 1998-07-31 | 1998-07-31 | Integrated hardware and software task control executive |
Publications (1)
Publication Number | Publication Date |
---|---|
US6061709A true US6061709A (en) | 2000-05-09 |
Family
ID=22428600
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/127,156 Expired - Lifetime US6061709A (en) | 1998-07-31 | 1998-07-31 | Integrated hardware and software task control executive |
Country Status (3)
Country | Link |
---|---|
US (1) | US6061709A (en) |
AU (1) | AU5323399A (en) |
WO (1) | WO2000006084A2 (en) |
Cited By (114)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182120B1 (en) * | 1997-09-30 | 2001-01-30 | International Business Machines Corporation | Method and system for scheduling queued messages based on queue delay and queue priority |
US6243736B1 (en) * | 1998-12-17 | 2001-06-05 | Agere Systems Guardian Corp. | Context controller having status-based background functional task resource allocation capability and processor employing the same |
US6298349B1 (en) * | 1997-08-20 | 2001-10-02 | International Business Machines Corp. | System resource display apparatus and method thereof |
US6366946B1 (en) * | 1998-12-16 | 2002-04-02 | Microsoft Corporation | Critical code processing management |
US20020124043A1 (en) * | 2001-03-05 | 2002-09-05 | Otero Perez Clara Maria | Method of and system for withdrawing budget from a blocking task |
US20020165893A1 (en) * | 2001-05-04 | 2002-11-07 | International Business Machines Corporation | Recycling events to take advantage of capabilities of a management system |
US20020165997A1 (en) * | 2001-05-04 | 2002-11-07 | International Business Machines Corporation | Dynamically adapting events to capabilities of a management system |
US6539059B1 (en) * | 2000-03-02 | 2003-03-25 | Sun Microsystems, Inc. | Apparatus and method for efficiently scalable digital video decoding |
US20030058877A1 (en) * | 2001-09-27 | 2003-03-27 | International Business Machines Corporation | Configurable hardware scheduler calendar search algorithm |
US20030120706A1 (en) * | 2001-12-20 | 2003-06-26 | Nokia Corporation | Method and a system for executing operating system functions, as well as an electronic device |
US20030177275A1 (en) * | 2002-02-15 | 2003-09-18 | Jan Lind | Layered architecture for mobile terminals |
US20030181193A1 (en) * | 2002-02-15 | 2003-09-25 | Lars Wilhelmsson | Middleware services layer for platform system for mobile terminals |
US20030204550A1 (en) * | 2002-04-24 | 2003-10-30 | Lutter Robert Pierce | Method for multi-tasking multiple Java virtual machines in a secure environment |
US20030204554A1 (en) * | 2002-04-25 | 2003-10-30 | David Lake | Reduced-overhead context-saving in static priority scheduled operating systems |
US20030224769A1 (en) * | 2002-02-15 | 2003-12-04 | Torbjorn Solve | Platform system for mobile terminals |
US6678713B1 (en) * | 1998-04-29 | 2004-01-13 | Xerox Corporation | Machine control using a schedulerlock construct |
US20040054998A1 (en) * | 2002-07-26 | 2004-03-18 | Matsushita Electric Industrial Co., Ltd. | Program execution apparatus |
US20040079803A1 (en) * | 2002-07-15 | 2004-04-29 | Mackey Jonathan T. | Hardware integration system |
US20040098727A1 (en) * | 2002-09-23 | 2004-05-20 | Bjorn Bjare | Middleware application environment |
US20040102187A1 (en) * | 2002-02-15 | 2004-05-27 | Bernd Moller | Method of and system for testing equipment during manufacturing |
US20040123137A1 (en) * | 2002-12-12 | 2004-06-24 | Yodaiken Victor J. | Systems and methods for detecting a security breach in a computer system |
US20040127190A1 (en) * | 2002-09-23 | 2004-07-01 | Jonas Hansson | Security access manager in middleware |
US20040127250A1 (en) * | 2002-09-23 | 2004-07-01 | Bjorn Bjare | Middleware application message/event model |
US20040153807A1 (en) * | 2002-11-18 | 2004-08-05 | Arm Limited | Delivering data processing requests to a suspended operating system |
US6782424B2 (en) | 2002-08-23 | 2004-08-24 | Finite State Machine Labs, Inc. | System, method and computer program product for monitoring and controlling network connections from a supervisory operating system |
US6823517B1 (en) * | 2000-01-27 | 2004-11-23 | Andrew E. Kalman | Multi-tasking-real-time operating system for microprocessors with limited memory that constrains context switching to occur only at task level |
US20040268355A1 (en) * | 2003-04-24 | 2004-12-30 | Stmicroelectronics Sa | Method of executing concurrent tasks by a subsystem managed by a central processor |
US20050015767A1 (en) * | 2003-07-01 | 2005-01-20 | Brian Nash | Operating system configuration tool |
US20050034124A1 (en) * | 2003-03-27 | 2005-02-10 | House Eric Edward | Mechanism for simultaneously operating multiple applications on a personal digital assistant implementing a palm operating system |
US20050055265A1 (en) * | 2003-09-05 | 2005-03-10 | Mcfadden Terrence Paul | Method and system for analyzing the usage of an expression |
US20050066096A1 (en) * | 2003-09-24 | 2005-03-24 | Ruemmler Christopher Philip | Reducing latency when accessing task priority levels |
US20050071447A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | Method, system and program product for testing a server application using a reentrant test application |
US20050149927A1 (en) * | 2002-03-22 | 2005-07-07 | Toyota Jidosha Kabushiki Kaisha | Task management device and method, operation judgment device and method, and program to be judged |
US20050149937A1 (en) * | 2003-12-19 | 2005-07-07 | Stmicroelectronics, Inc. | Accelerator for multi-processing system and method |
US20050149936A1 (en) * | 2003-12-19 | 2005-07-07 | Stmicroelectronics, Inc. | Thread execution scheduler for multi-processing system and method |
US20050198080A1 (en) * | 2003-10-21 | 2005-09-08 | Weidong Cai | Non-interfering status inquiry for user threads |
US20050216633A1 (en) * | 2004-03-26 | 2005-09-29 | Cavallo Joseph S | Techniques to manage critical region interrupts |
US6961720B1 (en) | 2000-06-21 | 2005-11-01 | Iphrase Technologies, Inc. | System and method for automatic task prioritization |
US20050262255A1 (en) * | 2004-04-30 | 2005-11-24 | Microsoft Corporation | System applications in a multimedia console |
DE102004061339A1 (en) * | 2004-12-20 | 2006-06-29 | Infineon Technologies Ag | Context-scheduling method for e.g. multithreaded microcontroller and/or micro processor system, involves executing scheduling of threads that are to be processed by multithreaded processor, based on index variables assigned by threads |
US7099855B1 (en) | 2000-01-13 | 2006-08-29 | International Business Machines Corporation | System and method for electronic communication management |
US20060200663A1 (en) * | 2005-03-04 | 2006-09-07 | Microsoft Corporation | Methods for describing processor features |
US20060236322A1 (en) * | 2005-04-13 | 2006-10-19 | David Brackman | Techniques for setting events in a multi-threaded system |
US7133820B2 (en) * | 2000-03-15 | 2006-11-07 | Arc International | Method and apparatus for debugging programs in a distributed environment |
US20060268930A1 (en) * | 2001-04-24 | 2006-11-30 | Medius, Inc. | Method and apparatus for dynamic configuration of multiprocessor system |
US20060271938A1 (en) * | 2005-05-26 | 2006-11-30 | Paul Gootherts | Memory mapped lazy preemption control |
US20060277548A1 (en) * | 2003-12-05 | 2006-12-07 | Mutsumi Abe | Task management system |
US20070038462A1 (en) * | 2005-08-10 | 2007-02-15 | International Business Machines Corporation | Overriding default speech processing behavior using a default focus receiver |
US7181600B1 (en) | 2001-08-02 | 2007-02-20 | Mips Technologies, Inc. | Read-only access to CPO registers |
US7185183B1 (en) | 2001-08-02 | 2007-02-27 | Mips Technologies, Inc. | Atomic update of CPO state |
US7211980B1 (en) | 2006-07-05 | 2007-05-01 | Battelle Energy Alliance, Llc | Robotic follow system and method |
US20070150900A1 (en) * | 2005-12-27 | 2007-06-28 | Hankins Richard A | Data structure and management techniques for local user-level thread data |
US20070234020A1 (en) * | 2002-10-22 | 2007-10-04 | Mips Technologies, Inc. | Instruction encoding for system register bit set and clear |
US7296271B1 (en) * | 2000-06-28 | 2007-11-13 | Emc Corporation | Replaceable scheduling algorithm in multitasking kernel |
US20080009966A1 (en) * | 2006-07-05 | 2008-01-10 | Battelle Energy Alliance, Llc | Occupancy Change Detection System and Method |
US20080009964A1 (en) * | 2006-07-05 | 2008-01-10 | Battelle Energy Alliance, Llc | Robotics Virtual Rail System and Method |
US20080009965A1 (en) * | 2006-07-05 | 2008-01-10 | Battelle Energy Alliance, Llc | Autonomous Navigation System and Method |
US20080009968A1 (en) * | 2006-07-05 | 2008-01-10 | Battelle Energy Alliance, Llc | Generic robot architecture |
US20080009967A1 (en) * | 2006-07-05 | 2008-01-10 | Battelle Energy Alliance, Llc | Robotic Intelligence Kernel |
US20080009970A1 (en) * | 2006-07-05 | 2008-01-10 | Battelle Energy Alliance, Llc | Robotic Guarded Motion System and Method |
US20080009969A1 (en) * | 2006-07-05 | 2008-01-10 | Battelle Energy Alliance, Llc | Multi-Robot Control Interface |
US7389230B1 (en) | 2003-04-22 | 2008-06-17 | International Business Machines Corporation | System and method for classification of voice signals |
US20080195785A1 (en) * | 2004-10-18 | 2008-08-14 | Ttpcom Limited | Interrupt Control |
US20080235695A1 (en) * | 2007-03-23 | 2008-09-25 | Nec Corporation | Resource allocation system for jobs, resource allocation method and resource allocation program for jobs |
US7451447B1 (en) * | 1998-08-07 | 2008-11-11 | Arc International Ip, Inc. | Method, computer program and apparatus for operating system dynamic event management and task scheduling using function calls |
US20080301404A1 (en) * | 2007-05-31 | 2008-12-04 | Infineon Technologies Ag | Method for controlling an electronic circuit and controlling circuit |
US7478394B1 (en) * | 2001-06-04 | 2009-01-13 | Hewlett-Packard Development Company, L.P. | Context-corrupting context switching |
US7565659B2 (en) * | 2004-07-15 | 2009-07-21 | International Business Machines Corporation | Light weight context switching |
US7644057B2 (en) | 2001-01-03 | 2010-01-05 | International Business Machines Corporation | System and method for electronic communication management |
US20100011176A1 (en) * | 2008-07-11 | 2010-01-14 | Burkey Todd R | Performance of binary bulk IO operations on virtual disks by interleaving |
US7681448B1 (en) | 2004-11-09 | 2010-03-23 | Medius, Inc. | System and method for aligning sensors on a vehicle |
US20100077226A1 (en) * | 2007-06-18 | 2010-03-25 | Panasonic Corporation | Encryption device and encryption operation method |
US7698541B1 (en) * | 2006-10-31 | 2010-04-13 | Netapp, Inc. | System and method for isochronous task switching via hardware scheduling |
US7702757B2 (en) | 2004-04-07 | 2010-04-20 | Xiotech Corporation | Method, apparatus and program storage device for providing control to a networked storage architecture |
US7756810B2 (en) | 2003-05-06 | 2010-07-13 | International Business Machines Corporation | Software tool for training and testing a knowledge base |
US20100229058A1 (en) * | 2009-03-04 | 2010-09-09 | Suresh Goyal | Method and apparatus for system testing using scan chain decomposition |
US20100293423A1 (en) * | 2009-03-04 | 2010-11-18 | Suresh Goyal | Method and apparatus for virtual in-circuit emulation |
US20110040914A1 (en) * | 2009-08-14 | 2011-02-17 | Karin Strauss | Mechanism for recording undeliverable user-level interrupts |
US20110054689A1 (en) * | 2009-09-03 | 2011-03-03 | Battelle Energy Alliance, Llc | Robots, systems, and methods for hazard evaluation and visualization |
US20110072180A1 (en) * | 2009-09-23 | 2011-03-24 | Ju-Pyung Lee | Interrupt on/off management apparatus and method for multi-core processor |
US20110289507A1 (en) * | 2010-04-13 | 2011-11-24 | Et International, Inc. | Runspace method, system and apparatus |
US20110321052A1 (en) * | 2010-06-23 | 2011-12-29 | International Business Machines Corporation | Mutli-priority command processing among microcontrollers |
US20120226842A1 (en) * | 2011-03-02 | 2012-09-06 | Research In Motion Limited, an Ontario, Canada corporation | Enhanced prioritising and unifying interrupt controller |
US20120226843A1 (en) * | 2011-03-01 | 2012-09-06 | Wen-Tai Lin | Method and Computer System for Processing Data in a Memory |
US8271132B2 (en) | 2008-03-13 | 2012-09-18 | Battelle Energy Alliance, Llc | System and method for seamless task-directed autonomy for robots |
US8290768B1 (en) | 2000-06-21 | 2012-10-16 | International Business Machines Corporation | System and method for determining a set of attributes based on content of communications |
US20120288012A1 (en) * | 2011-05-13 | 2012-11-15 | Research In Motion Limited | Allocating media decoding resources according to priorities of media elements in received data |
US8369967B2 (en) | 1999-02-01 | 2013-02-05 | Hoffberg Steven M | Alarm system controller and a method for controlling an alarm system |
US20130034146A1 (en) * | 2011-08-02 | 2013-02-07 | Hyeonkuk Jeong | Selection of encoder and decoder for a video communications session |
US8417490B1 (en) | 2009-05-11 | 2013-04-09 | Eagle Harbor Holdings, Llc | System and method for the configuration of an automotive vehicle with modeled sensors |
US20130160017A1 (en) * | 2011-12-14 | 2013-06-20 | Robert Scott Hartog | Software Mechanisms for Managing Task Scheduling on an Accelerated Processing Device (APD) |
US8719649B2 (en) | 2009-03-04 | 2014-05-06 | Alcatel Lucent | Method and apparatus for deferred scheduling for JTAG systems |
US20140137128A1 (en) * | 2012-11-12 | 2014-05-15 | Skymedi Corporation | Method of Scheduling Tasks for Memories and Memory System Thereof |
US8775884B2 (en) | 2009-03-04 | 2014-07-08 | Alcatel Lucent | Method and apparatus for position-based scheduling for JTAG systems |
US8886392B1 (en) | 2011-12-21 | 2014-11-11 | Intellectual Ventures Fund 79 Llc | Methods, devices, and mediums associated with managing vehicle maintenance activities |
US8892495B2 (en) | 1991-12-23 | 2014-11-18 | Blanding Hovenweep, Llc | Adaptive pattern recognition based controller apparatus and method and human-interface therefore |
US8965578B2 (en) | 2006-07-05 | 2015-02-24 | Battelle Energy Alliance, Llc | Real time explosive hazard information sensing, processing, and communication for autonomous operation |
US20150186180A1 (en) * | 2013-12-30 | 2015-07-02 | David W. Schroth | Systems and methods for affinity dispatching based on network input/output requests |
US9183105B2 (en) | 2013-02-04 | 2015-11-10 | Alcatel Lucent | Systems and methods for dynamic scan scheduling |
US20160092264A1 (en) * | 2014-09-30 | 2016-03-31 | International Business Machines Corporation | Post-return asynchronous code execution |
US9317330B2 (en) | 2013-11-25 | 2016-04-19 | Tata Consultancy Services Limited | System and method facilitating performance prediction of multi-threaded application in presence of resource bottlenecks |
US9358924B1 (en) | 2009-05-08 | 2016-06-07 | Eagle Harbor Holdings, Llc | System and method for modeling advanced automotive safety systems |
US9442756B2 (en) | 2014-09-24 | 2016-09-13 | International Business Machines Corporation | Multi-processor command management in electronic components with multiple microcontrollers |
US9699129B1 (en) | 2000-06-21 | 2017-07-04 | International Business Machines Corporation | System and method for increasing email productivity |
US20170242808A1 (en) * | 2014-11-05 | 2017-08-24 | Hella Kgaa Hueck & Co. | Electronic Device for Blocking Interrupt Requests |
US10298735B2 (en) | 2001-04-24 | 2019-05-21 | Northwater Intellectual Property Fund L.P. 2 | Method and apparatus for dynamic configuration of a multiprocessor health data system |
US10361802B1 (en) | 1999-02-01 | 2019-07-23 | Blanding Hovenweep, Llc | Adaptive pattern recognition based control system and method |
CN110402430A (en) * | 2017-04-07 | 2019-11-01 | 欧姆龙株式会社 | Control device, control method and control program |
US10620988B2 (en) | 2010-12-16 | 2020-04-14 | Et International, Inc. | Distributed computing architecture |
CN113486356A (en) * | 2021-06-30 | 2021-10-08 | 佛山职业技术学院 | Method and device for controlling operation of interrupt source, terminal equipment and storage medium |
CN113946445A (en) * | 2021-10-15 | 2022-01-18 | 杭州国芯科技股份有限公司 | An ASIC-based multithreading module and multithreading control method |
US11507524B2 (en) * | 2018-09-30 | 2022-11-22 | Mazen Arakji | RTOS/OS architecture for context switching that solves the diminishing bandwidth problem and the RTOS response time problem using unsorted ready lists |
US20230128503A1 (en) * | 2021-10-27 | 2023-04-27 | EMC IP Holding Company, LLC | System and Method for Lock-free Shared Data Access for Processing and Management Threads |
CN118689613A (en) * | 2024-08-26 | 2024-09-24 | 珠海市阿普顿电气有限公司 | ARM9 platform management method and system based on Linux system |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6477246B1 (en) | 1999-04-01 | 2002-11-05 | Callwave, Inc. | Method and apparatus for providing expanded telecommunications service |
CN110109861A (en) * | 2019-04-22 | 2019-08-09 | 北京中科寒武纪科技有限公司 | A kind of task executing method and device |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4823256A (en) * | 1984-06-22 | 1989-04-18 | American Telephone And Telegraph Company, At&T Bell Laboratories | Reconfigurable dual processor system |
US5247677A (en) * | 1992-05-22 | 1993-09-21 | Apple Computer, Inc. | Stochastic priority-based task scheduler |
US5465335A (en) * | 1991-10-15 | 1995-11-07 | Hewlett-Packard Company | Hardware-configured operating system kernel having a parallel-searchable event queue for a multitasking processor |
US5530858A (en) * | 1993-04-01 | 1996-06-25 | Intel Corporation | Method and apparatus for background processing for PCMCIA card services |
US5640563A (en) * | 1992-01-31 | 1997-06-17 | International Business Machines Corporation | Multi-media computer operating system and method |
US5983266A (en) * | 1997-03-26 | 1999-11-09 | Unisys Corporation | Control method for message communication in network supporting software emulated modules and hardware implemented modules |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4318173A (en) * | 1980-02-05 | 1982-03-02 | The Bendix Corporation | Scheduler for a multiple computer system |
US4642756A (en) * | 1985-03-15 | 1987-02-10 | S & H Computer Systems, Inc. | Method and apparatus for scheduling the execution of multiple processing tasks in a computer system |
US5012409A (en) * | 1988-03-10 | 1991-04-30 | Fletcher Mitchell S | Operating system for a multi-tasking operating environment |
US5247671A (en) * | 1990-02-14 | 1993-09-21 | International Business Machines Corporation | Scalable schedules for serial communications controller in data processing systems |
-
1998
- 1998-07-31 US US09/127,156 patent/US6061709A/en not_active Expired - Lifetime
-
1999
- 1999-07-27 AU AU53233/99A patent/AU5323399A/en not_active Abandoned
- 1999-07-27 WO PCT/US1999/017082 patent/WO2000006084A2/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4823256A (en) * | 1984-06-22 | 1989-04-18 | American Telephone And Telegraph Company, At&T Bell Laboratories | Reconfigurable dual processor system |
US5465335A (en) * | 1991-10-15 | 1995-11-07 | Hewlett-Packard Company | Hardware-configured operating system kernel having a parallel-searchable event queue for a multitasking processor |
US5640563A (en) * | 1992-01-31 | 1997-06-17 | International Business Machines Corporation | Multi-media computer operating system and method |
US5247677A (en) * | 1992-05-22 | 1993-09-21 | Apple Computer, Inc. | Stochastic priority-based task scheduler |
US5530858A (en) * | 1993-04-01 | 1996-06-25 | Intel Corporation | Method and apparatus for background processing for PCMCIA card services |
US5983266A (en) * | 1997-03-26 | 1999-11-09 | Unisys Corporation | Control method for message communication in network supporting software emulated modules and hardware implemented modules |
Cited By (240)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8892495B2 (en) | 1991-12-23 | 2014-11-18 | Blanding Hovenweep, Llc | Adaptive pattern recognition based controller apparatus and method and human-interface therefore |
US6298349B1 (en) * | 1997-08-20 | 2001-10-02 | International Business Machines Corp. | System resource display apparatus and method thereof |
US6182120B1 (en) * | 1997-09-30 | 2001-01-30 | International Business Machines Corporation | Method and system for scheduling queued messages based on queue delay and queue priority |
US6678713B1 (en) * | 1998-04-29 | 2004-01-13 | Xerox Corporation | Machine control using a schedulerlock construct |
US7451447B1 (en) * | 1998-08-07 | 2008-11-11 | Arc International Ip, Inc. | Method, computer program and apparatus for operating system dynamic event management and task scheduling using function calls |
US6366946B1 (en) * | 1998-12-16 | 2002-04-02 | Microsoft Corporation | Critical code processing management |
US6243736B1 (en) * | 1998-12-17 | 2001-06-05 | Agere Systems Guardian Corp. | Context controller having status-based background functional task resource allocation capability and processor employing the same |
US9535563B2 (en) | 1999-02-01 | 2017-01-03 | Blanding Hovenweep, Llc | Internet appliance system and method |
US8369967B2 (en) | 1999-02-01 | 2013-02-05 | Hoffberg Steven M | Alarm system controller and a method for controlling an alarm system |
US10361802B1 (en) | 1999-02-01 | 2019-07-23 | Blanding Hovenweep, Llc | Adaptive pattern recognition based control system and method |
US7266535B1 (en) | 2000-01-13 | 2007-09-04 | International Business Machines Corporation | System and method for electronic communication management |
US7099855B1 (en) | 2000-01-13 | 2006-08-29 | International Business Machines Corporation | System and method for electronic communication management |
US7707582B2 (en) | 2000-01-27 | 2010-04-27 | Kalman Andrew E | Multi-tasking real-time operating system for microprocessors with limited memory by saving only a single return address per task during context switching |
US6823517B1 (en) * | 2000-01-27 | 2004-11-23 | Andrew E. Kalman | Multi-tasking-real-time operating system for microprocessors with limited memory that constrains context switching to occur only at task level |
US20050102650A1 (en) * | 2000-01-27 | 2005-05-12 | Kalman Andrew E. | Multi-tasking real-time operating system for microprocessors with limited memory |
US6539059B1 (en) * | 2000-03-02 | 2003-03-25 | Sun Microsystems, Inc. | Apparatus and method for efficiently scalable digital video decoding |
US7133820B2 (en) * | 2000-03-15 | 2006-11-07 | Arc International | Method and apparatus for debugging programs in a distributed environment |
US8290768B1 (en) | 2000-06-21 | 2012-10-16 | International Business Machines Corporation | System and method for determining a set of attributes based on content of communications |
US20060080267A1 (en) * | 2000-06-21 | 2006-04-13 | Yoram Nelken | System and method for automatic task prioritization |
US9584665B2 (en) | 2000-06-21 | 2017-02-28 | International Business Machines Corporation | System and method for optimizing timing of responses to customer communications |
US9699129B1 (en) | 2000-06-21 | 2017-07-04 | International Business Machines Corporation | System and method for increasing email productivity |
US6961720B1 (en) | 2000-06-21 | 2005-11-01 | Iphrase Technologies, Inc. | System and method for automatic task prioritization |
US7849044B2 (en) | 2000-06-21 | 2010-12-07 | International Business Machines Corporation | System and method for automatic task prioritization |
US7296271B1 (en) * | 2000-06-28 | 2007-11-13 | Emc Corporation | Replaceable scheduling algorithm in multitasking kernel |
US7752159B2 (en) | 2001-01-03 | 2010-07-06 | International Business Machines Corporation | System and method for classifying text |
US7644057B2 (en) | 2001-01-03 | 2010-01-05 | International Business Machines Corporation | System and method for electronic communication management |
US20020124043A1 (en) * | 2001-03-05 | 2002-09-05 | Otero Perez Clara Maria | Method of and system for withdrawing budget from a blocking task |
US8630196B2 (en) | 2001-04-24 | 2014-01-14 | Eagle Harbor Holdings, Llc | Multiprocessor system and method for conducting transactions from a vehicle |
US8331279B2 (en) | 2001-04-24 | 2012-12-11 | Eagle Harbor Holdings, Llc | Wireless telecommunications method and apparatus |
US9336043B2 (en) | 2001-04-24 | 2016-05-10 | Dan Alan Preston | Method and apparatus for a task priority processing system |
US9292334B2 (en) | 2001-04-24 | 2016-03-22 | Eagle Harbor Holdings, Llc | Method and apparatus for dynamic configuration of multiprocessor system |
US20090047904A1 (en) * | 2001-04-24 | 2009-02-19 | Medius, Inc. | Method and apparatus for dynamic configuration of multiprocessor system |
US8958315B2 (en) | 2001-04-24 | 2015-02-17 | Eagle Harbor Holdings, Llc | Method and apparatus for dynamic configuration of multiprocessor system |
US8953816B1 (en) | 2001-04-24 | 2015-02-10 | Eagle Harbor Holdings LLC | Method and apparatus to dynamically configure a vehicle audio system |
US9645832B2 (en) | 2001-04-24 | 2017-05-09 | Dan A. Preston | Dynamic configuration of a home multiprocessor system |
US9652257B2 (en) | 2001-04-24 | 2017-05-16 | Eagle Harbor Holdings, Llc | Vehicle safety system |
US8762610B2 (en) | 2001-04-24 | 2014-06-24 | Eagle Harbor Holdings, Llc | Processing method for reprioritizing software application tasks |
US8751712B2 (en) | 2001-04-24 | 2014-06-10 | Eagle Harbor Holdings, Llc | Method and apparatus for a priority based processing system |
US8744672B1 (en) | 2001-04-24 | 2014-06-03 | Eagle Harbor Holdings, Llc | Method and apparatus for dynamic configuration of multiprocessor system |
US20090045972A1 (en) * | 2001-04-24 | 2009-02-19 | Medius, Inc. | Method and apparatus for dynamic configuration of multiprocessor system |
US7778739B2 (en) | 2001-04-24 | 2010-08-17 | Medius, Inc. | Method and apparatus for dynamic configuration of multiprocessor system |
US9697015B2 (en) | 2001-04-24 | 2017-07-04 | Eagle Harbor Holdings, Llc | Vehicle audio application management system using logic circuitry |
US9811354B2 (en) | 2001-04-24 | 2017-11-07 | Eagle Harbor Holdings, Llc | Home audio system for operating different types of audio sources |
US8583292B2 (en) | 2001-04-24 | 2013-11-12 | Eagle Harbor Holdings, Llc | System and method for restricting access to vehicle software systems |
US20100241312A1 (en) * | 2001-04-24 | 2010-09-23 | Medius, Inc. | Wireless telecommunications method |
US8386113B2 (en) | 2001-04-24 | 2013-02-26 | Eagle Harbor Holdings, Llc | Multiprocessor system for managing devices in a home |
US8380383B2 (en) | 2001-04-24 | 2013-02-19 | Eagle Harbor Holdings, Llc | Distributed vehicle control system |
US10102013B2 (en) | 2001-04-24 | 2018-10-16 | Northwater Intellectual Property Fund, L.P. 2 | Method and system for dynamic configuration of multiprocessor system |
US10298735B2 (en) | 2001-04-24 | 2019-05-21 | Northwater Intellectual Property Fund L.P. 2 | Method and apparatus for dynamic configuration of a multiprocessor health data system |
US8364335B1 (en) | 2001-04-24 | 2013-01-29 | Eagle Harbor Holdings, Llc | Method and apparatus for dynamic configuration of multiprocessors system |
US20100332357A1 (en) * | 2001-04-24 | 2010-12-30 | Medius, Inc. | Method and apparatus for dynamic configuration of multiprocessor system |
US8346186B1 (en) | 2001-04-24 | 2013-01-01 | Eagle Harbor Holdings, Llc | Method and apparatus for dynamic configuration of multiprocessor system |
US11042385B2 (en) | 2001-04-24 | 2021-06-22 | Micropairing Technologies Llc. | Method and system for dynamic configuration of multiprocessor system |
US20060268930A1 (en) * | 2001-04-24 | 2006-11-30 | Medius, Inc. | Method and apparatus for dynamic configuration of multiprocessor system |
US9348637B2 (en) | 2001-04-24 | 2016-05-24 | Eagle Harbor Holdings, Llc | Dynamic configuration of a home multiprocessor system |
US10387166B2 (en) | 2001-04-24 | 2019-08-20 | Northwater Intellectual Property Fund L.P. 2 | Dynamic configuration of a multiprocessor system |
US8165057B2 (en) | 2001-04-24 | 2012-04-24 | Eagle Harbor Holdings, Llc | Wireless telecommunications method |
US20110066318A1 (en) * | 2001-04-24 | 2011-03-17 | Medius, Inc. | Wireless telecommunications method |
US8027268B2 (en) | 2001-04-24 | 2011-09-27 | Eagle Harbor Holdings, Llc | Method and apparatus for dynamic configuration of multiprocessor system |
US8045729B2 (en) | 2001-04-24 | 2011-10-25 | Eagle Harbor Holdings, Llc | Audio system with application management system for operating different types of audio sources |
US20020165893A1 (en) * | 2001-05-04 | 2002-11-07 | International Business Machines Corporation | Recycling events to take advantage of capabilities of a management system |
US6868540B2 (en) * | 2001-05-04 | 2005-03-15 | International Business Machines Corporation | Recycling events to take advantage of capabilities of a management system |
US20020165997A1 (en) * | 2001-05-04 | 2002-11-07 | International Business Machines Corporation | Dynamically adapting events to capabilities of a management system |
US6961940B2 (en) | 2001-05-04 | 2005-11-01 | International Business Machines Corporation | Dynamically adapting events to capabilities of a management system |
US7478394B1 (en) * | 2001-06-04 | 2009-01-13 | Hewlett-Packard Development Company, L.P. | Context-corrupting context switching |
US7185183B1 (en) | 2001-08-02 | 2007-02-27 | Mips Technologies, Inc. | Atomic update of CPO state |
US7181600B1 (en) | 2001-08-02 | 2007-02-20 | Mips Technologies, Inc. | Read-only access to CPO registers |
US8072972B2 (en) | 2001-09-27 | 2011-12-06 | International Business Machines Corporation | Configurable hardware scheduler calendar search algorithm |
US7113517B2 (en) | 2001-09-27 | 2006-09-26 | International Business Machines Corporation | Configurable hardware scheduler calendar search algorithm |
US20030058877A1 (en) * | 2001-09-27 | 2003-03-27 | International Business Machines Corporation | Configurable hardware scheduler calendar search algorithm |
US20030120706A1 (en) * | 2001-12-20 | 2003-06-26 | Nokia Corporation | Method and a system for executing operating system functions, as well as an electronic device |
US7581223B2 (en) * | 2001-12-20 | 2009-08-25 | Nokia Corporation | Method and a system for executing operating system functions, as well as an electronic device |
US20040102187A1 (en) * | 2002-02-15 | 2004-05-27 | Bernd Moller | Method of and system for testing equipment during manufacturing |
US20030177275A1 (en) * | 2002-02-15 | 2003-09-18 | Jan Lind | Layered architecture for mobile terminals |
US7536181B2 (en) | 2002-02-15 | 2009-05-19 | Telefonaktiebolaget L M Ericsson (Publ) | Platform system for mobile terminals |
US7415270B2 (en) | 2002-02-15 | 2008-08-19 | Telefonaktiebolaget L M Ericsson (Publ) | Middleware services layer for platform system for mobile terminals |
US20030181193A1 (en) * | 2002-02-15 | 2003-09-25 | Lars Wilhelmsson | Middleware services layer for platform system for mobile terminals |
US7363033B2 (en) | 2002-02-15 | 2008-04-22 | Telefonaktiebolaget Lm Ericsson (Publ) | Method of and system for testing equipment during manufacturing |
US20030224769A1 (en) * | 2002-02-15 | 2003-12-04 | Torbjorn Solve | Platform system for mobile terminals |
US8079015B2 (en) | 2002-02-15 | 2011-12-13 | Telefonaktiebolaget L M Ericsson (Publ) | Layered architecture for mobile terminals |
US8589930B2 (en) | 2002-03-22 | 2013-11-19 | Toyota Jidosha Kabushiki Kaisha | Determining whether to execute a new task by deleting task objects of existing tasks |
US20050149927A1 (en) * | 2002-03-22 | 2005-07-07 | Toyota Jidosha Kabushiki Kaisha | Task management device and method, operation judgment device and method, and program to be judged |
US7793136B2 (en) | 2002-04-24 | 2010-09-07 | Eagle Harbor Holdings LLC | Application management system with configurable software applications |
US7178049B2 (en) * | 2002-04-24 | 2007-02-13 | Medius, Inc. | Method for multi-tasking multiple Java virtual machines in a secure environment |
US8375243B1 (en) | 2002-04-24 | 2013-02-12 | Eagle Harbor Holdings, Llc | Failure determination system |
US8006118B1 (en) | 2002-04-24 | 2011-08-23 | Eagle Harbor Holdings | System and method for application failure detection |
US20030204550A1 (en) * | 2002-04-24 | 2003-10-30 | Lutter Robert Pierce | Method for multi-tasking multiple Java virtual machines in a secure environment |
US8020028B1 (en) | 2002-04-24 | 2011-09-13 | Eagle Harbor Holdings | Application management system for mobile devices |
US8006117B1 (en) | 2002-04-24 | 2011-08-23 | Eagle Harbor Holdings | Method for multi-tasking multiple java virtual machines in a secure environment |
US8006119B1 (en) | 2002-04-24 | 2011-08-23 | Eagle Harbor Holdings | Application management system |
US20030204554A1 (en) * | 2002-04-25 | 2003-10-30 | David Lake | Reduced-overhead context-saving in static priority scheduled operating systems |
US7082607B2 (en) * | 2002-04-25 | 2006-07-25 | Livedevices Limited | Reduced-overhead context-saving in static priority scheduled operating systems |
US20040079803A1 (en) * | 2002-07-15 | 2004-04-29 | Mackey Jonathan T. | Hardware integration system |
US6974082B2 (en) | 2002-07-15 | 2005-12-13 | Monode Marking Products, Inc. | Hardware integration system |
US20040054998A1 (en) * | 2002-07-26 | 2004-03-18 | Matsushita Electric Industrial Co., Ltd. | Program execution apparatus |
US7418704B2 (en) * | 2002-07-26 | 2008-08-26 | Matsushita Electric Industrial Co., Ltd. | Program execution apparatus |
US7516217B2 (en) | 2002-08-23 | 2009-04-07 | Finite State Machine Labs, Inc. | System, method and computer program product for monitoring and controlling network connections from a supervisory operating system |
US7330891B2 (en) | 2002-08-23 | 2008-02-12 | Finite State Machine Labs, Inc. | System, method and computer program product for monitoring and controlling network connections from a supervisory operating system |
US20090204709A1 (en) * | 2002-08-23 | 2009-08-13 | Finite State Machine Labs, Inc. | System, method and computer program product for monitoring and controlling network connections from a supervisory operating system |
US8713158B2 (en) | 2002-08-23 | 2014-04-29 | Intellectual Ventures Fund 73 Llc | System, method and computer program product for monitoring and controlling network connections from a supervisory operating system |
US20080256236A1 (en) * | 2002-08-23 | 2008-10-16 | Finite State Machine Labs, Inc. | System, method and computer program product for monitoring and controlling network connections from a supervisory operating system |
US8805994B2 (en) | 2002-08-23 | 2014-08-12 | Intellectual Ventures Fund 73 Llc | System, method and computer program product for monitoring and controlling network connections from a supervisory operating system |
US6782424B2 (en) | 2002-08-23 | 2004-08-24 | Finite State Machine Labs, Inc. | System, method and computer program product for monitoring and controlling network connections from a supervisory operating system |
US20040260809A1 (en) * | 2002-08-23 | 2004-12-23 | Finite State Machine Labs, Inc. | System, method and computer program product for monitoring and controlling network connections from a supervisory operating system |
US7478395B2 (en) | 2002-09-23 | 2009-01-13 | Telefonaktiebolaget L M Ericsson (Publ) | Middleware application message/event model |
US20040127190A1 (en) * | 2002-09-23 | 2004-07-01 | Jonas Hansson | Security access manager in middleware |
US20040127250A1 (en) * | 2002-09-23 | 2004-07-01 | Bjorn Bjare | Middleware application message/event model |
US7149510B2 (en) | 2002-09-23 | 2006-12-12 | Telefonaktiebolaget Lm Ericsson (Publ) | Security access manager in middleware |
US20040098727A1 (en) * | 2002-09-23 | 2004-05-20 | Bjorn Bjare | Middleware application environment |
US7584471B2 (en) | 2002-09-23 | 2009-09-01 | Telefonaktiebolaget L M Ericsson (Publ) | Plug-in model |
US7350211B2 (en) | 2002-09-23 | 2008-03-25 | Telefonaktiebolaget Lm Ericsson (Publ) | Middleware application environment |
US7634638B1 (en) * | 2002-10-22 | 2009-12-15 | Mips Technologies, Inc. | Instruction encoding for system register bit set and clear |
US20070234020A1 (en) * | 2002-10-22 | 2007-10-04 | Mips Technologies, Inc. | Instruction encoding for system register bit set and clear |
US20100031005A1 (en) * | 2002-10-22 | 2010-02-04 | Mips Technologies, Inc. | Instruction Encoding For System Register Bit Set And Clear |
US7600100B2 (en) | 2002-10-22 | 2009-10-06 | Mips Technologies, Inc. | Instruction encoding for system register bit set and clear |
US20040153807A1 (en) * | 2002-11-18 | 2004-08-05 | Arm Limited | Delivering data processing requests to a suspended operating system |
US7325083B2 (en) * | 2002-11-18 | 2008-01-29 | Arm Limited | Delivering data processing requests to a suspended operating system |
US8032936B2 (en) | 2002-12-12 | 2011-10-04 | Intellectual Ventures Fund 73 Llc | Systems and methods for detecting a security breach in a computer system |
US20040123137A1 (en) * | 2002-12-12 | 2004-06-24 | Yodaiken Victor J. | Systems and methods for detecting a security breach in a computer system |
US8375448B2 (en) | 2002-12-12 | 2013-02-12 | Intellectual Ventures Fund 73 Llc | Systems and methods for detecting a security breach in a computer system |
US8793794B2 (en) | 2002-12-12 | 2014-07-29 | Intellectual Ventures Fund 73 Llc | Systems and methods for detecting a security breach in a computer system |
US7587763B2 (en) | 2002-12-12 | 2009-09-08 | Finite State Machine Labs, Inc. | Systems and methods for detecting a security breach in a computer system |
US20050034124A1 (en) * | 2003-03-27 | 2005-02-10 | House Eric Edward | Mechanism for simultaneously operating multiple applications on a personal digital assistant implementing a palm operating system |
US7389230B1 (en) | 2003-04-22 | 2008-06-17 | International Business Machines Corporation | System and method for classification of voice signals |
US20040268355A1 (en) * | 2003-04-24 | 2004-12-30 | Stmicroelectronics Sa | Method of executing concurrent tasks by a subsystem managed by a central processor |
US7797700B2 (en) * | 2003-04-24 | 2010-09-14 | Stmicroelectronics S.A. | Method of executing concurrent tasks by a subsystem managed by a central processor |
US7756810B2 (en) | 2003-05-06 | 2010-07-13 | International Business Machines Corporation | Software tool for training and testing a knowledge base |
US8495002B2 (en) | 2003-05-06 | 2013-07-23 | International Business Machines Corporation | Software tool for training and testing a knowledge base |
US20050015767A1 (en) * | 2003-07-01 | 2005-01-20 | Brian Nash | Operating system configuration tool |
US20050055265A1 (en) * | 2003-09-05 | 2005-03-10 | Mcfadden Terrence Paul | Method and system for analyzing the usage of an expression |
US20050066096A1 (en) * | 2003-09-24 | 2005-03-24 | Ruemmler Christopher Philip | Reducing latency when accessing task priority levels |
US7426728B2 (en) * | 2003-09-24 | 2008-09-16 | Hewlett-Packard Development, L.P. | Reducing latency, when accessing task priority levels |
US20050071447A1 (en) * | 2003-09-25 | 2005-03-31 | International Business Machines Corporation | Method, system and program product for testing a server application using a reentrant test application |
US20050198080A1 (en) * | 2003-10-21 | 2005-09-08 | Weidong Cai | Non-interfering status inquiry for user threads |
US7249348B2 (en) * | 2003-10-21 | 2007-07-24 | Hewlett-Packard Development Company, L.P. | Non-interfering status inquiry for user threads |
US20060277548A1 (en) * | 2003-12-05 | 2006-12-07 | Mutsumi Abe | Task management system |
US8151274B2 (en) * | 2003-12-05 | 2012-04-03 | Toyota Jidosha Kabushiki Kaisha | Task management system |
US20050149937A1 (en) * | 2003-12-19 | 2005-07-07 | Stmicroelectronics, Inc. | Accelerator for multi-processing system and method |
US8566828B2 (en) | 2003-12-19 | 2013-10-22 | Stmicroelectronics, Inc. | Accelerator for multi-processing system and method |
US20050149936A1 (en) * | 2003-12-19 | 2005-07-07 | Stmicroelectronics, Inc. | Thread execution scheduler for multi-processing system and method |
US7802255B2 (en) * | 2003-12-19 | 2010-09-21 | Stmicroelectronics, Inc. | Thread execution scheduler for multi-processing system and method |
US7917910B2 (en) * | 2004-03-26 | 2011-03-29 | Intel Corporation | Techniques to manage critical region interrupts |
US20050216633A1 (en) * | 2004-03-26 | 2005-09-29 | Cavallo Joseph S | Techniques to manage critical region interrupts |
US7702757B2 (en) | 2004-04-07 | 2010-04-20 | Xiotech Corporation | Method, apparatus and program storage device for providing control to a networked storage architecture |
US8707317B2 (en) * | 2004-04-30 | 2014-04-22 | Microsoft Corporation | Reserving a fixed amount of hardware resources of a multimedia console for system application and controlling the unreserved resources by the multimedia application |
US20050262255A1 (en) * | 2004-04-30 | 2005-11-24 | Microsoft Corporation | System applications in a multimedia console |
US7565659B2 (en) * | 2004-07-15 | 2009-07-21 | International Business Machines Corporation | Light weight context switching |
US20080195785A1 (en) * | 2004-10-18 | 2008-08-14 | Ttpcom Limited | Interrupt Control |
US7689749B2 (en) | 2004-10-18 | 2010-03-30 | Mstar Semiconductor, Inc. | Interrupt control function adapted to control the execution of interrupt requests of differing criticality |
US7681448B1 (en) | 2004-11-09 | 2010-03-23 | Medius, Inc. | System and method for aligning sensors on a vehicle |
US8978439B1 (en) | 2004-11-09 | 2015-03-17 | Eagle Harbor Holdings, Llc | System and apparatus for the alignment of multi-aperture systems |
US8001860B1 (en) | 2004-11-09 | 2011-08-23 | Eagle Harbor Holdings LLC | Method and apparatus for the alignment of multi-aperture systems |
US20060161924A1 (en) * | 2004-12-20 | 2006-07-20 | Infineon Technologies Ag | Scheduling method, in particular context scheduling method, and device to be used with a scheduling method |
DE102004061339A1 (en) * | 2004-12-20 | 2006-06-29 | Infineon Technologies Ag | Context-scheduling method for e.g. multithreaded microcontroller and/or micro processor system, involves executing scheduling of threads that are to be processed by multithreaded processor, based on index variables assigned by threads |
US7793296B2 (en) | 2004-12-20 | 2010-09-07 | Infineon Technologies Ag | System and method for scheduling a multi-threaded processor |
US20060200663A1 (en) * | 2005-03-04 | 2006-09-07 | Microsoft Corporation | Methods for describing processor features |
US7716638B2 (en) * | 2005-03-04 | 2010-05-11 | Microsoft Corporation | Methods for describing processor features |
US8255912B2 (en) * | 2005-04-13 | 2012-08-28 | Qualcomm Incorporated | Techniques for setting events in a multi-threaded system |
US20060236322A1 (en) * | 2005-04-13 | 2006-10-19 | David Brackman | Techniques for setting events in a multi-threaded system |
US7765550B2 (en) * | 2005-05-26 | 2010-07-27 | Hewlett-Packard Development Company, L.P. | System for controlling context switch of deferred requests using counter and flag setting of thread accessing shared resource or entering code region |
US20060271938A1 (en) * | 2005-05-26 | 2006-11-30 | Paul Gootherts | Memory mapped lazy preemption control |
US7848928B2 (en) * | 2005-08-10 | 2010-12-07 | Nuance Communications, Inc. | Overriding default speech processing behavior using a default focus receiver |
US20070038462A1 (en) * | 2005-08-10 | 2007-02-15 | International Business Machines Corporation | Overriding default speech processing behavior using a default focus receiver |
US8079035B2 (en) * | 2005-12-27 | 2011-12-13 | Intel Corporation | Data structure and management techniques for local user-level thread data |
US20070150900A1 (en) * | 2005-12-27 | 2007-06-28 | Hankins Richard A | Data structure and management techniques for local user-level thread data |
US20080009968A1 (en) * | 2006-07-05 | 2008-01-10 | Battelle Energy Alliance, Llc | Generic robot architecture |
US20080009965A1 (en) * | 2006-07-05 | 2008-01-10 | Battelle Energy Alliance, Llc | Autonomous Navigation System and Method |
US7584020B2 (en) | 2006-07-05 | 2009-09-01 | Battelle Energy Alliance, Llc | Occupancy change detection system and method |
US8965578B2 (en) | 2006-07-05 | 2015-02-24 | Battelle Energy Alliance, Llc | Real time explosive hazard information sensing, processing, and communication for autonomous operation |
US20080009969A1 (en) * | 2006-07-05 | 2008-01-10 | Battelle Energy Alliance, Llc | Multi-Robot Control Interface |
US9213934B1 (en) | 2006-07-05 | 2015-12-15 | Battelle Energy Alliance, Llc | Real time explosive hazard information sensing, processing, and communication for autonomous operation |
US7211980B1 (en) | 2006-07-05 | 2007-05-01 | Battelle Energy Alliance, Llc | Robotic follow system and method |
US7801644B2 (en) | 2006-07-05 | 2010-09-21 | Battelle Energy Alliance, Llc | Generic robot architecture |
US7668621B2 (en) | 2006-07-05 | 2010-02-23 | The United States Of America As Represented By The United States Department Of Energy | Robotic guarded motion system and method |
US20080009964A1 (en) * | 2006-07-05 | 2008-01-10 | Battelle Energy Alliance, Llc | Robotics Virtual Rail System and Method |
US20080009967A1 (en) * | 2006-07-05 | 2008-01-10 | Battelle Energy Alliance, Llc | Robotic Intelligence Kernel |
US20080009966A1 (en) * | 2006-07-05 | 2008-01-10 | Battelle Energy Alliance, Llc | Occupancy Change Detection System and Method |
US7974738B2 (en) | 2006-07-05 | 2011-07-05 | Battelle Energy Alliance, Llc | Robotics virtual rail system and method |
US7587260B2 (en) | 2006-07-05 | 2009-09-08 | Battelle Energy Alliance, Llc | Autonomous navigation system and method |
US7620477B2 (en) | 2006-07-05 | 2009-11-17 | Battelle Energy Alliance, Llc | Robotic intelligence kernel |
US20080009970A1 (en) * | 2006-07-05 | 2008-01-10 | Battelle Energy Alliance, Llc | Robotic Guarded Motion System and Method |
US8073564B2 (en) | 2006-07-05 | 2011-12-06 | Battelle Energy Alliance, Llc | Multi-robot control interface |
US7979686B1 (en) | 2006-10-31 | 2011-07-12 | Netapp, Inc. | System and method for isochronous task switching via hardware scheduling |
US7698541B1 (en) * | 2006-10-31 | 2010-04-13 | Netapp, Inc. | System and method for isochronous task switching via hardware scheduling |
US20080235695A1 (en) * | 2007-03-23 | 2008-09-25 | Nec Corporation | Resource allocation system for jobs, resource allocation method and resource allocation program for jobs |
US20080301404A1 (en) * | 2007-05-31 | 2008-12-04 | Infineon Technologies Ag | Method for controlling an electronic circuit and controlling circuit |
US20100077226A1 (en) * | 2007-06-18 | 2010-03-25 | Panasonic Corporation | Encryption device and encryption operation method |
US8271132B2 (en) | 2008-03-13 | 2012-09-18 | Battelle Energy Alliance, Llc | System and method for seamless task-directed autonomy for robots |
US20100011176A1 (en) * | 2008-07-11 | 2010-01-14 | Burkey Todd R | Performance of binary bulk IO operations on virtual disks by interleaving |
US20100229042A1 (en) * | 2009-03-04 | 2010-09-09 | Suresh Goyal | Method and apparatus for system testing using multiple processors |
US8719649B2 (en) | 2009-03-04 | 2014-05-06 | Alcatel Lucent | Method and apparatus for deferred scheduling for JTAG systems |
US8775884B2 (en) | 2009-03-04 | 2014-07-08 | Alcatel Lucent | Method and apparatus for position-based scheduling for JTAG systems |
US8677198B2 (en) | 2009-03-04 | 2014-03-18 | Alcatel Lucent | Method and apparatus for system testing using multiple processors |
US8621301B2 (en) | 2009-03-04 | 2013-12-31 | Alcatel Lucent | Method and apparatus for virtual in-circuit emulation |
US20100229058A1 (en) * | 2009-03-04 | 2010-09-09 | Suresh Goyal | Method and apparatus for system testing using scan chain decomposition |
US8533545B2 (en) | 2009-03-04 | 2013-09-10 | Alcatel Lucent | Method and apparatus for system testing using multiple instruction types |
US20100293423A1 (en) * | 2009-03-04 | 2010-11-18 | Suresh Goyal | Method and apparatus for virtual in-circuit emulation |
US20100229036A1 (en) * | 2009-03-04 | 2010-09-09 | Suresh Goyal | Method and apparatus for system testing using multiple instruction types |
US9358924B1 (en) | 2009-05-08 | 2016-06-07 | Eagle Harbor Holdings, Llc | System and method for modeling advanced automotive safety systems |
US8417490B1 (en) | 2009-05-11 | 2013-04-09 | Eagle Harbor Holdings, Llc | System and method for the configuration of an automotive vehicle with modeled sensors |
US20110040914A1 (en) * | 2009-08-14 | 2011-02-17 | Karin Strauss | Mechanism for recording undeliverable user-level interrupts |
US20110040913A1 (en) * | 2009-08-14 | 2011-02-17 | Jaewoong Chung | User-level interrupt mechanism for multi-core architectures |
US8356130B2 (en) | 2009-08-14 | 2013-01-15 | Advanced Micro Devices, Inc. | Mechanism for recording undeliverable user-level interrupts |
US8255603B2 (en) * | 2009-08-14 | 2012-08-28 | Advanced Micro Devices, Inc. | User-level interrupt mechanism for multi-core architectures |
US8355818B2 (en) | 2009-09-03 | 2013-01-15 | Battelle Energy Alliance, Llc | Robots, systems, and methods for hazard evaluation and visualization |
US20110054689A1 (en) * | 2009-09-03 | 2011-03-03 | Battelle Energy Alliance, Llc | Robots, systems, and methods for hazard evaluation and visualization |
US8892803B2 (en) * | 2009-09-23 | 2014-11-18 | Samsung Electronics Co., Ltd. | Interrupt on/off management apparatus and method for multi-core processor |
US20110072180A1 (en) * | 2009-09-23 | 2011-03-24 | Ju-Pyung Lee | Interrupt on/off management apparatus and method for multi-core processor |
US9542231B2 (en) * | 2010-04-13 | 2017-01-10 | Et International, Inc. | Efficient execution of parallel computer programs |
US20110289507A1 (en) * | 2010-04-13 | 2011-11-24 | Et International, Inc. | Runspace method, system and apparatus |
US20110321052A1 (en) * | 2010-06-23 | 2011-12-29 | International Business Machines Corporation | Mutli-priority command processing among microcontrollers |
US10620988B2 (en) | 2010-12-16 | 2020-04-14 | Et International, Inc. | Distributed computing architecture |
US20120226843A1 (en) * | 2011-03-01 | 2012-09-06 | Wen-Tai Lin | Method and Computer System for Processing Data in a Memory |
US20120226842A1 (en) * | 2011-03-02 | 2012-09-06 | Research In Motion Limited, an Ontario, Canada corporation | Enhanced prioritising and unifying interrupt controller |
US20120288012A1 (en) * | 2011-05-13 | 2012-11-15 | Research In Motion Limited | Allocating media decoding resources according to priorities of media elements in received data |
US20130034146A1 (en) * | 2011-08-02 | 2013-02-07 | Hyeonkuk Jeong | Selection of encoder and decoder for a video communications session |
US10045089B2 (en) * | 2011-08-02 | 2018-08-07 | Apple Inc. | Selection of encoder and decoder for a video communications session |
US9122522B2 (en) * | 2011-12-14 | 2015-09-01 | Advanced Micro Devices, Inc. | Software mechanisms for managing task scheduling on an accelerated processing device (APD) |
US20130160017A1 (en) * | 2011-12-14 | 2013-06-20 | Robert Scott Hartog | Software Mechanisms for Managing Task Scheduling on an Accelerated Processing Device (APD) |
US8886392B1 (en) | 2011-12-21 | 2014-11-11 | Intellectual Ventures Fund 79 Llc | Methods, devices, and mediums associated with managing vehicle maintenance activities |
CN103809917A (en) * | 2012-11-12 | 2014-05-21 | 擎泰科技股份有限公司 | Work scheduling method for memory and memory system thereof |
TWI484414B (en) * | 2012-11-12 | 2015-05-11 | Skymedi Corp | Method of scheduling tasks for memories and memory system thereof |
US20140137128A1 (en) * | 2012-11-12 | 2014-05-15 | Skymedi Corporation | Method of Scheduling Tasks for Memories and Memory System Thereof |
US9058208B2 (en) * | 2012-11-12 | 2015-06-16 | Skymedi Corporation | Method of scheduling tasks for memories and memory system thereof |
US9183105B2 (en) | 2013-02-04 | 2015-11-10 | Alcatel Lucent | Systems and methods for dynamic scan scheduling |
US9317330B2 (en) | 2013-11-25 | 2016-04-19 | Tata Consultancy Services Limited | System and method facilitating performance prediction of multi-threaded application in presence of resource bottlenecks |
US20150186180A1 (en) * | 2013-12-30 | 2015-07-02 | David W. Schroth | Systems and methods for affinity dispatching based on network input/output requests |
US9442756B2 (en) | 2014-09-24 | 2016-09-13 | International Business Machines Corporation | Multi-processor command management in electronic components with multiple microcontrollers |
US9552223B2 (en) * | 2014-09-30 | 2017-01-24 | International Business Machines Corporation | Post-return asynchronous code execution |
US20160092264A1 (en) * | 2014-09-30 | 2016-03-31 | International Business Machines Corporation | Post-return asynchronous code execution |
US10007624B2 (en) * | 2014-11-05 | 2018-06-26 | Hella Kgaa Hueck & Co. | Electronic device for blocking interrupt requests |
US20170242808A1 (en) * | 2014-11-05 | 2017-08-24 | Hella Kgaa Hueck & Co. | Electronic Device for Blocking Interrupt Requests |
CN110402430A (en) * | 2017-04-07 | 2019-11-01 | 欧姆龙株式会社 | Control device, control method and control program |
CN110402430B (en) * | 2017-04-07 | 2023-01-10 | 欧姆龙株式会社 | Control device, control method, and recording medium |
US11507524B2 (en) * | 2018-09-30 | 2022-11-22 | Mazen Arakji | RTOS/OS architecture for context switching that solves the diminishing bandwidth problem and the RTOS response time problem using unsorted ready lists |
CN113486356A (en) * | 2021-06-30 | 2021-10-08 | 佛山职业技术学院 | Method and device for controlling operation of interrupt source, terminal equipment and storage medium |
CN113486356B (en) * | 2021-06-30 | 2024-05-07 | 佛山职业技术学院 | Operation method, device, terminal equipment and storage medium for controlling interrupt source |
CN113946445A (en) * | 2021-10-15 | 2022-01-18 | 杭州国芯科技股份有限公司 | An ASIC-based multithreading module and multithreading control method |
US20230128503A1 (en) * | 2021-10-27 | 2023-04-27 | EMC IP Holding Company, LLC | System and Method for Lock-free Shared Data Access for Processing and Management Threads |
CN118689613A (en) * | 2024-08-26 | 2024-09-24 | 珠海市阿普顿电气有限公司 | ARM9 platform management method and system based on Linux system |
Also Published As
Publication number | Publication date |
---|---|
AU5323399A (en) | 2000-02-21 |
WO2000006084A3 (en) | 2000-08-03 |
WO2000006084A2 (en) | 2000-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6061709A (en) | Integrated hardware and software task control executive | |
US8161453B2 (en) | Method and apparatus for implementing task management of computer operations | |
Anderson et al. | Scheduler activations: Effective kernel support for the user-level management of parallelism | |
US7313797B2 (en) | Uniprocessor operating system design facilitating fast context switching | |
Anderson et al. | Scheduler activations: Effective kernel support for the user-level management of parallelism | |
Hoare | Monitors: An operating system structuring concept | |
US6314471B1 (en) | Techniques for an interrupt free operating system | |
US5515538A (en) | Apparatus and method for interrupt handling in a multi-threaded operating system kernel | |
US5995745A (en) | Adding real-time support to general purpose operating systems | |
US7926062B2 (en) | Interrupt and exception handling for multi-streaming digital processors | |
JP3573546B2 (en) | Parallel process scheduling method for parallel computer and processing device for parallel computer | |
KR100591727B1 (en) | Recording media and information processing systems recording scheduling methods and programs for executing the methods | |
US20020161957A1 (en) | Methods and systems for handling interrupts | |
US20050066302A1 (en) | Method and system for minimizing thread switching overheads and memory usage in multithreaded processing using floating threads | |
JP2004288162A (en) | Operating system architecture using synchronous task | |
US20250004830A1 (en) | Scheduling of threads for clusters of processors | |
US20050066149A1 (en) | Method and system for multithreaded processing using errands | |
US20070198997A1 (en) | Customer framework for embedded applications | |
US20250021380A1 (en) | Thread scheduling including preemption of a thread in a kernel persona | |
US20240419485A1 (en) | Thread state transitions | |
US20030014558A1 (en) | Batch interrupts handling device, virtual shared memory and multiple concurrent processing device | |
US20060150185A1 (en) | Hard real-time response | |
JPH0895798A (en) | Data processing device | |
WO2000070482A1 (en) | Interrupt and exception handling for multi-streaming digital processors | |
US7320044B1 (en) | System, method, and computer program product for interrupt scheduling in processing communication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTEGRATED SYSTEMS DESIGN CENTER, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:BRONTE, JEFFREY S.;REEL/FRAME:009515/0778 Effective date: 19980914 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
REMI | Maintenance fee reminder mailed | ||
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
SULP | Surcharge for late payment | ||
AS | Assignment |
Owner name: WIND RIVER SERVICES, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTEGRATED SYSTEMS DESIGN CENTER, INC.;REEL/FRAME:015766/0259 Effective date: 20020110 Owner name: WIND RIVER SYSTEMS, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:WIND RIVER SERVICES, INC.;REEL/FRAME:015766/0263 Effective date: 20040901 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
FPAY | Fee payment |
Year of fee payment: 12 |
|
SULP | Surcharge for late payment |
Year of fee payment: 11 |