Data processing system and method of interrupt handling
Abstract
A data processing system is provided which comprises at least two processing units ( 100, 101, 102 ) each for executing a plurality of tasks and an interrupt handling unit ( 200 ) for receiving an interrupt to be processed by the data processing system and for distributing the interrupt to one of the at least two processing units ( 100, 101, 102 ). The processing unit ( 100, 101, 102 ) to which the interrupt is distributed stops its current execution of the task and processes the interrupt. The interrupt handling unit ( 200 ) is adapted to determine whether the processing units ( 100, 101, 102 ) are executing a critical section (CS) of the task. The interrupt handling unit ( 200 ) distributes the interrupt to one of the processing units ( 100, 101, 102 ), which is not executing a critical section (CS) of a task.
Claims
exact text as granted — not AI-modified1. A data processing system, comprising:
at least two processing units, each of the processing units configured to execute a plurality of tasks; and
an interrupt handling unit configured to receive an interrupt, distribute the received interrupt to one of the at least two processing units, wherein the processing unit to which the interrupt is distributed stops execution of a current task and processes the interrupt, wherein the interrupt handling unit is configured to determine whether the processing unit is executing a non-critical section or a critical section of the current task, and distribute the received interrupt to one of the processing units which is executing the non-critical section of the current task based upon a previous interrupt service routine execution time of each of the processing units.
2. The data processing system according to claim 1 , wherein the interrupt handling unit is configured to determine whether another task is waiting to be processed by the processing unit which is executing the critical section of the current task and distribute the interrupt to the processing unit which does not have a task waiting to be processed after the current task.
3. The data processing system according to claim 1 , wherein a flag is respectively associated with each processing unit for indicating whether the respective processing unit is executing the critical section of the current task, and the interrupt handling unit is configured to monitor the respective flag to determine to which processing unit the interrupt is to be distributed to.
4. A data processing system, comprising:
at least two processing units, each of the processing units configured to execute a plurality of tasks, stop execution of a current task after receipt of an interrupt, and process the interrupt; and
an interrupt handling unit configured to receive an interrupt, distribute the received interrupt to one of the at least two processing units, determine whether the processing units are executing a non-critical section or a critical section of the current task, determine a remaining execution time of execution of the critical section of the current task, and distribute the received interrupt to a processing unit with a small remaining execution time based upon a statistical interrupt service routine execution time of each of the processing units.
5. A method of interrupt handling in a data processing system having at least two processing units, each processing unit configured to execute a plurality of tasks, and an interrupt handling unit configured to receive an interrupt to be processed by the data processing system and distribute the received interrupt to one of the at least two processing units, the method comprising:
stopping execution of a current task;
processing the received interrupt;
determining whether the processing units are executing a non-critical section or a critical section of the current task; and
distributing the processed interrupt to the one of the processing units which is executing the non-critical section of the current task, based upon a previous interrupt service routine execution time of each of the processing units.
6. The method of claim 5 , further comprising:
distributing the processed interrupt based upon a priority of a running thread.
7. The method of claim 5 , further comprising:
distributing the processed interrupt based upon a priority of the processing unit.
8. The method of claim 5 , further comprising:
distributing the processed interrupt based upon the interrupt being a context switch.
9. The method of claim 5 , further comprising:
distributing the processed interrupt based upon the interrupt being cache flashing.
10. The method of claim 5 , further comprising:
distributing the processed interrupt based upon an ideal time of the processing unit.
11. The method of claim 5 , further comprising:
setting a flag to designate a high priority task awaiting a processing unit.
12. A method of interrupt handling in a data processing system having at least two processing units, each processing unit configured to execute a plurality of tasks, and an interrupt handling unit configured to receive an interrupt to be processed by the data processing system and distribute the received interrupt to one of the at least two processing units, the method comprising:
stopping execution of a current task;
processing the received interrupt;
determining whether the processing units are executing a non-critical section or a critical section of the current task; and
distributing the processed interrupt to the one of the processing units which is executing the non-critical section of the current task, based upon a statistical interrupt service routine execution time of each of the processing units.Join the waitlist — get patent alerts
Track US8386684B2 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.