IP Library Granted Patent US 9,575,911
Granted Patent B2
US 9,575,911 · App. 14/246,832 · Granted Feb 21, 2017

Interrupt controller and a method of controlling processing of interrupt requests by a plurality of processing units

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,575,911
App. No.
14/246,832
Granted
Feb 21, 2017
Kind
B2
Abstract

An interrupt controller for controlling processing of interrupt requests by a plurality of processing units. The processing units have at least two modes: an active mode and an inactive mode. The interrupt controller comprises a controller input, an interrupt router coupled to the controller input and a monitoring unit. The monitoring unit outputs a routing change signal to the interrupt router if it determines that a selected processing unit, to which, in response to a received interrupt request, an execution of an interrupt service routine was initially routed, is in inactive mode while a preselected one is in the active mode. The interrupt router reroutes the execution of the interrupt service routine to the preselected processing unit.

Claims (30)

1. An interrupt controller for controlling processing of interrupt requests by a plurality of processing units, the processing units having at least two modes, said mode comprising an active mode and an inactive mode, the interrupt controller comprising:

a controller input for receiving an interrupt request;

an interrupt router coupled to the controller input arranged to route a received interrupt request, to a selected processing unit out of the plurality of processing units, in response to which the selected processing unit initiates execution of an interrupt service routine, comprising a sequence of operations, the interrupt router comprising a router input for receiving a routing change signal, the interrupt router arranged to route the execution of the interrupt service routine from the selected processing unit to another preselected processing unit of the plurality of processing units in response to receiving the routing change signal;

a monitoring unit comprising a monitoring input coupled to the plurality of the processing units to monitor the mode of the processing units, and a monitoring output coupled to the router input arranged to provide the routing change signal when the monitoring unit determines that the selected processing unit has changed to said inactive mode subsequent to initiation of execution of the interrupt service routine while the preselected one of the plurality of the processing units is in said active mode, and the interrupt request associated with the interrupt service routine has a priority level above a predetermined priority threshold.

2. An interrupt controller as claimed in claim 1 comprising a priority controller arranged to assign the priority level to the received interrupt request.

3. An interrupt controller as claimed in claim 1 , wherein the interrupt router is further arranged to suspend the execution of the interrupt service routine if the associated interrupt request has a priority level lower than a predetermined priority threshold when the selected processing unit goes into inactive mode.

4. An interrupt controller as claimed in claim 1 , wherein the interrupt router is further arranged to route all the interrupt requests from the selected one of the processing units to the preselected one.

5. An interrupt controller as claimed in claim 1 , wherein the interrupt router is further arranged to preselect a specific processing unit of the plurality when the selected processing unit is in the active mode or upon one or more of the group comprising: start-up, interrupt controller reset, and processing unit reset, and to reroute to the preselected processing unit in response to receiving the routing change signal.

6. An interrupt controller as claimed in claim 1 , wherein the monitoring unit outputs the routing change signal in response to a software failure or to a hardware failure in the selected processing unit, or when the selected processing unit out of the plurality of processing units has changed of state.

7. An interrupt controller according to claim 1 , wherein each one of plurality of the processing units is further arranged, when operating in lockstep, to simultaneously execute a same sequence of operations in parallel with a second corresponding partner processing unit, wherein the monitoring unit is a lockstep monitoring unit for monitoring a difference in the executing of the same sequence of operations between each processing unit and the respective partner processing unit to detect a processing error, and wherein the monitoring output is arranged to provide the routing change signal if the lockstep monitoring unit detects the processing error.

8. An interrupt controller according to claim 1 , wherein the interrupt request is a non-maskable interrupt request.

9. An interrupt controller according to claim 1 , wherein the monitoring unit is further arranged to monitor one or more of a hardware failure, a software failure, or change of mode of the plurality of processing units in response to which the monitoring unit is arranged to output the routing change signal via the monitoring output.

10. An interrupt controller as claimed in claim 9 wherein the monitoring unit is a watchdog timer.

11. An interrupt controller as claimed in claim 1 wherein the monitoring unit further comprises a fault collection unit arranged to store the routing change signal.

12. A microprocessor comprising the interrupt controller according to claim 1 , and the plurality processing units.

13. A microprocessor comprising the interrupt controller according to claim 1 , and further comprising the plurality of processing units and the corresponding partner processing unit, arranged to operate in lockstep with the plurality of processing units.

14. An automotive vehicle comprising the interrupt controller as claimed in claim 1 .

15. A method of controlling processing of interrupt requests by a plurality of processing units, the processing units having at least two modes, said modes comprising an active and an inactive mode, the method comprising:

receiving an interrupt request,

routing the received interrupt request to a selected processing unit of the plurality,

initiating execution of an interrupt service routine comprising a sequence of operations at the selected processor in response to routing the received interrupt request,

monitoring the mode of the processing units to obtain a routing change signal from the selected processor when the selected processing unit has changed to said inactive mode subsequent to initiating execution of the interrupt service routing,

routing the executing of the interrupt service routine from the selected processing unit to another processing unit that is in said active mode in response to the obtained routing change state when the executing interrupt service routing has a priority level above a predetermined priority threshold.

16. The method of claim 15 further comprising before routing:

assigning the priority level to the received interrupt request.

17. The method of claim 16 further comprising after assigning:

suspending the execution of the interrupt service routine if the associated interrupt request has a priority level below a predetermined priority threshold.

18. A device comprising: a plurality of processing units including a first processing unit and a second processing unit, each of the plurality of processors having a plurality of modes including a first mode, and an inactive mode;

a monitoring unit coupled to the plurality or processors to provide a change indicator that indicates the first processing unit has changed state from the first mode to the inactive mode;

an interrupt router coupled to the output of the monitoring unit and to the plurality of processors, the interrupt router to initiate execution of an interrupt service routing by the first processor in response to receiving an interrupt request and in response to the first processor being in the first mode, and, when the interrupt request has a priority level above a predetermined priority level, the interrupt router further arranged to route the execution of the interrupt service routine from the first processing unit to the second processing unit in response to receiving the change indicator after execution of the interrupt service routine has been initiated at the first processing unit.

Assignments (29)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2026
From: NXP USA, INC.
To: NEX-X SILICON LLC
Reel/Frame 075615/0773 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040925 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Feb 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V. F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 052917/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 040928 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Jan 17, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 052915/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051030/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042762 FRAME 0145. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051145/0184 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 042985 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12298143 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Oct 22, 2019
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 051029/0387 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050744/0097 →
RELEASE OF SECURITY INTEREST Recorded Sep 10, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 050745/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 039361 FRAME 0212. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042762/0145 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12681366 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded May 9, 2017
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 042985/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040626 FRAME: 0683. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME EFFECTIVE NOVEMBER 7, 2016. Recorded Jan 12, 2017
From: NXP SEMICONDUCTORS USA, INC. (MERGED INTO); FREESCALE SEMICONDUCTOR, INC. (UNDER)
To: NXP USA, INC.
Reel/Frame 041414/0883 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNMENT DOCUMENTATION - INITIAL CONVENYANCE LISTED CHANGE OF NAME. PREVIOUSLY RECORDED ON REEL 040579 FRAME 0827. ASSIGNOR(S) HEREBY CONFIRMS THE UPDATE CONVEYANCE TO MERGER AND CHANGE OF NAME EFFECTIVE NOVEMBER 7, 2016. Recorded Dec 15, 2016
From: NXP SEMICONDUCTORS USA, INC. (MERGED INTO); FREESCALE SEMICONDUCTOR, INC. (UNDER)
To: NXP USA, INC.
Reel/Frame 040945/0252 →
CHANGE OF NAME Recorded Nov 16, 2016
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 040626/0683 →
CHANGE OF NAME Recorded Nov 9, 2016
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 040579/0827 →
RELEASE OF SECURITY INTEREST Recorded Nov 7, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP B.V.
Reel/Frame 040928/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 21, 2016
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: NXP, B.V., F/K/A FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 040925/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 14/258,829 AND REPLACE ITWITH 14/258,629 PREVIOUSLY RECORDED ON REEL 037444 FRAME 0082. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OFSECURITY INTEREST IN PATENTS. Recorded Aug 10, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039639/0332 →
CORRECTIVE ASSIGNMENT OF INCORRECT APPLICATION 14/258,829 PREVIOUSLY RECORDED ON REEL 037444 FRAME 0109. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Aug 10, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039639/0208 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE APPLICATION 12092129 PREVIOUSLY RECORDED ON REEL 038017 FRAME 0058. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY AGREEMENT SUPPLEMENT. Recorded Jul 14, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039361/0212 →
SUPPLEMENT TO THE SECURITY AGREEMENT Recorded Jun 16, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 039138/0001 →
SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2016
From: NXP B.V.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 038017/0058 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 5, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037444/0109 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 5, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037444/0082 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037357/0903 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Aug 1, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 033462/0293 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Aug 1, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 033462/0267 →
SUPPLEMENT TO IP SECURITY AGREEMENT Recorded Aug 1, 2014
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 033460/0337 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2014
From: MCMENAMIN, DAVID; SCOBIE, JAMES ANDREW COLLIER
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 032619/0598 →