IP Library Granted Patent US 7,434,039
Granted Patent B2
US 7,434,039 · App. 11/470,728 · Granted Oct 7, 2008

Computer processor capable of responding with comparable efficiency to both software-state-independent and state-dependent events

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 7,434,039
App. No.
11/470,728
Granted
Oct 7, 2008
Kind
B2
Abstract

A technique for enabling a computer processor to be capable of responding with comparable efficiency to both: (i) events whose handling is independent on the state of the software machine that responds to the events, and (ii) events whose handling is dependent on the state of the software machine that responds to the events. Each time a software state machine enters a state, one or more event control registers are programmed to direct the illustrative embodiment where to resume execution when each possible event occurs. This enables the illustrative embodiment to automatically branch to the code that is appropriate for the combination of the event and the state of the software machine.

Claims (66)

1. A processor comprising:

an activation controller;

a pluralilty of hardware contexts, each of the hardware contexts associated with a predetermined first event and a predetermined second event and comprising:

(1) a program counter that stores a first memory address;

(2) a first programmable event control register associated with a first event, the first programmable event control register programmed to designate that a first sum of the first memory address and a first offset is to be stored in the program counter when said first event occurs;

(3) a second programmable event control register associated with a second event, the second programmable event control register programmed to designate that a second sum of the first memory address and a second offset is to be stored in the program counter when said second event occurs; and

(4) the activation controller for responding to said first event and said second event by:

(4.1) respectively storing the first sum and the second sum into said program counter when said first event and said second event occurs.

2. The processor of claim 1 wherein said activation controller is also for (4.2) ignoring said first event when said programmable event control register is programmed to ignore said first event.

3. A processor comprising:

an activation controller;

a context controller for controlling the processor between multiple hardware contexts; and

a plurality of hardware contexts, each of the plurality of hardware contexts comprising:

(1) a program counter that stores a first memory address and a second memory address;

(2) a first programmable event control register associated with a first event and a second programmable event control register associated with a second event; and

(3) the activation controller responding to said event by:

(3.1) leaving said first memory address unmodified when said programmable event control register is programmed to leave said first memory address unmodified when said first event occurs,

(3.2) storing a first sum of a second memory address plus a first offset into said program counter when said first programmable event control register is programmed to store a sum of the first memory address plus said first offset when said first event occurs, and

(3.3) storing the second sum into said program counter when said second programmable event control register is programmed to store the second sum when said second event occurs.

4. The processor of claim 3 wherein said activation controller is also for storing a sum of said first memory address plus a third offset into said program counter when said first programmable event control register is programmed to store the sum of said first memory address plus said third offset into said program counter when said first event occurs.

5. The processor of claim 3 wherein said activation controller is also for (3.4) ignoring said first event when said first programmable event control register is programmed to ignore said first event.

6. A processor comprising:

a context controller for controlling the processor between multiple hardware contexts;

an activation controller; and

a plurality of hardware contexts, each of the plurality of hardware contexts comprising:

(1) a program counter that stores a first memory address;

(2) a first programmable event control register associated with a first event; and

(3) a second programmable event control register associated with a second event,

(4) the activation controller responding to said first event and said second event by:

(4.1) storing the sum of said first memory address plus a first offset into said program counter when said first programmable event control register is programmed to store the sum of said first memory address plus said first offset into said program counter when said first event occurs, and

(4.2) storing the sum of said first memory address plus a second offset into said program counter when said second programmable event control register is programmed to store the sum of said first memory address plus said second offset into said program counter when second event occurs.

7. The processor of claim 6 wherein said first offset is an integral multiple of an integer and said second offset is an integral multiple of said integer.

8. The processor of claim 6 wherein said activation controller is also for:

(4.3) storing a second memory address into said program counter when said first programmable event control register is programmed to store said second memory address into said program counter when said first event occurs, and

(4.4) storing a third memory address into said program counter when said second programmable event control register is programmed to store said third memory address into said program counter when said second event occurs.

9. The processor of claim 6 wherein said activation controller is also for:

(4.3) storing the sum of a second memory address plus a third offset into said program counter when said first programmable event control register is programmed to store the sum of said second memory address plus said third offset into said program counter when said first event occurs, and

(4.4) storing the sum of said second memory address plus a fourth offset into said program counter when said second programmable event control register is programmed to store the sum of said second memory address plus said fourth offset into said program counter when said second event occurs.

10. The processor of claim 9 wherein said third offset is an integral multiple of an integer and said fourth offset is an integral multiple of said integer.

11. The processor of claim 9 wherein said activation controller is also for:

(4.3) leaving said first memory address unmodified when said first programmable event control register is programmed to leave said first memory address unmodified when said first event occurs, and

(4.4) leaving said second memory address unmodified when said second programmable event control register is programmed to leave said second memory address unmodified when said second event occurs.

12. The processor of claim 6 wherein said activation controller is also for:

(4.3) ignoring said first event when said first programmable event control register designates that said first event is to be ignored, and

(4.4) ignoring said second event when said second programmable event control register designates that said second event is to be ignored.

13. A multi-threaded processor comprising:

(1) a context controller;

(2) an activation controller; and

(3) a plurality of hardware contexts, wherein each of said hardware contexts comprises:

(3.1) a program counter that stores a first memory address.

(3.2) a first programmable event control register associated with a first event, wherein said first programmable event control register can be programmed to designate:

(3.2.1) that said first memory address is to be left unmodified when said first event occurs

(3.2.2) that the sum of a second memory address plus a first offset is to be stored in said program counter when said first event occurs; and

(3.3) a second programmable event control register associated with a second event, wherein said second programmable event control register can be programmed to designate:

(3.3.1) that said first memory address is to be left unmodified when said second event occurs

(3.3.2) that the sum of a second memory address plus a second offset is to be stored in said program counter when said second event occurs.

14. The processor of claim 13 wherein said first offset is an integral multiple of an integer and said second offset is an integral multiple of said integer.

15. The processor of claim 13 wherein said first programmable event control register can also be programmed to designate:

(3.2.3) that the sum of said first memory address plus a first offset is to be stored in said program counter when said first event occurs, and

wherein said second programmable event control register can also be programmed to designate:

(3.3.3) that the sum of said first memory address plus a first offset is to be stored in said program counter when said first event occurs.

16. The processor of claim 15 wherein said third offset is an integral multiple of an integer and said fourth offset is an integral multiple of said integer.

17. The processor of claim 13 wherein said first programmable event control register can also be programmed to designate:

(3.2.3) that said first event is to be ignored, and

wherein said second programmable event control register can also be programmed to designate:

(3.3.3) that said second event is to be ignored.

Assignments (32)
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 11759915 AND REPLACE IT WITH APPLICATION 11759935 PREVIOUSLY RECORDED ON REEL 037486 FRAME 0517. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Dec 10, 2019
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 053547/0421 →
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 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 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 TO CORRECT THE APPLICATION NO. FROM 13,883,290 TO 13,833,290 PREVIOUSLY RECORDED ON REEL 041703 FRAME 0536. ASSIGNOR(S) HEREBY CONFIRMS THE THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS.. Recorded Feb 20, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: SHENZHEN XINGUODU TECHNOLOGY CO., LTD.
Reel/Frame 048734/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE NATURE OF CONVEYANCE PREVIOUSLY RECORDED AT REEL: 040632 FRAME: 0001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Sep 21, 2017
From: FREESCALE SEMICONDUCTOR INC.
To: NXP USA, INC.
Reel/Frame 044209/0047 →
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 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 PATENTS 8108266 AND 8062324 AND REPLACE THEM WITH 6108266 AND 8060324 PREVIOUSLY RECORDED ON REEL 037518 FRAME 0292. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS. Recorded Feb 1, 2017
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 041703/0536 →
CHANGE OF NAME Recorded Nov 8, 2016
From: FREESCALE SEMICONDUCTOR, INC.
To: NXP USA, INC.
Reel/Frame 040632/0001 →
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 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 13, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037518/0292 →
ASSIGNMENT AND ASSUMPTION OF SECURITY INTEREST IN PATENTS Recorded Jan 12, 2016
From: CITIBANK, N.A.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037486/0517 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037354/0807 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0553 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037354/0225 →
PATENT RELEASE Recorded Dec 21, 2015
From: CITIBANK, N.A., AS COLLATERAL AGENT
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 037356/0143 →
SECURITY AGREEMENT Recorded Nov 6, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 031591/0266 →
SECURITY AGREEMENT Recorded Jun 18, 2013
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 030633/0424 →
SECURITY AGREEMENT Recorded May 13, 2010
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 024397/0001 →
SECURITY AGREEMENT Recorded Mar 12, 2009
From: FREESCALE SEMICONDUCTOR, INC.
To: CITIBANK, N.A.
Reel/Frame 022380/0409 →
SECURITY AGREEMENT Recorded Feb 2, 2007
From: FREESCALE SEMICONDUCTOR, INC.; FREESCALE ACQUISITION CORPORATION; FREESCALE ACQUISITION HOLDINGS CORP.; FREESCALE HOLDINGS (BERMUDA) III, LTD.
To: CITIBANK, N.A. AS COLLATERAL AGENT
Reel/Frame 018855/0129 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2006
From: FISCHER, MICHAEL ANDREW
To: FREESCALE SEMICONDUCTOR, INC.
Reel/Frame 018336/0197 →