Interrupt and trap handling in an embedded multi-thread processor to avoid priority inversion and maintain real-time operation
First Claim
1. A method for operating a multi-threaded system having a plurality of active threads, the method comprising:
- assigning an interrupt priority value to each of a plurality of interrupts;
specifying an interrupt threshold value; and
processing a requested interrupt only when the interrupt priority value of the requested interrupt is higher than the interrupt threshold value.
2 Assignments
0 Petitions
Accused Products
Abstract
A real-time, multi-threaded embedded system includes rules for handling traps and interrupts to avoid problems such as priority inversion and re-entrancy. By defining a global interrupt priority value for all active threads and only accepting interrupts having a priority higher than the interrupt priority value, priority inversion can be avoided. Switching to the same thread before any interrupt servicing, and disabling interrupts and thread switching during interrupt servicing can simplify the interrupt handling logic. By storing trap background data for traps and servicing traps only in their originating threads, trap traceability can be preserved. By disabling interrupts and thread switching during trap servicing, unintended trap re-entrancy and servicing disruption can be prevented.
-
Citations
36 Claims
-
1. A method for operating a multi-threaded system having a plurality of active threads, the method comprising:
-
assigning an interrupt priority value to each of a plurality of interrupts;
specifying an interrupt threshold value; and
processing a requested interrupt only when the interrupt priority value of the requested interrupt is higher than the interrupt threshold value. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A method for operating a multi-threaded system having a plurality of active threads, the method comprising:
-
accepting a request for an interrupt;
switching execution to a predetermined one of the plurality of active threads; and
executing an interrupt service request from the predetermined one of the plurality of active threads to service the interrupt. - View Dependent Claims (23)
-
-
24. A method for operating a multi-threaded embedded system having a plurality of active threads, the method comprising processing traps only in the active threads originating the traps.
-
25. A multi-threaded system comprising:
-
thread execution logic for generating instruction requests from an executing thread; and
threshold interrupt logic for generating an interrupt threshold value, wherein the thread execution logic only accepts interrupts having an interrupt priority higher than the interrupt threshold value. - View Dependent Claims (26, 27, 28)
-
-
29. A multi-threaded system comprising:
-
means for specifying an interrupt threshold value; and
means for processing a requested interrupt only when an interrupt priority value of the requested interrupt is higher than the interrupt threshold value. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36)
-
Specification