IP Library Granted Patent US 7,185,183
Granted Patent B1
US 7,185,183 · App. 09/921,400 · Granted Feb 27, 2007

Atomic update of CPO state

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,185,183
App. No.
09/921,400
Granted
Feb 27, 2007
Kind
B1
Abstract

A group of bit set and bit clear instructions are provided for a microprocessor to allow atomic modification of privileged architecture control registers. The bit set and bit clear instructions include an opcode that designates to the microprocessor that the instructions are to execute in privileged (kernel) state only, and that the instructions are to communicate with privileged control registers. Two operands are provided for the instructions, the first designating which of the privileged control registers is to be modified, the second designating a general purpose register that contains a bit mask. The bit set instructions set bits in the designated control register according to bits set in the bit mask. The bit clear instructions clear bits in the designated control register according to bits set in the bit mask. By atomically modifying privileged control registers, a requirement for strict nesting of interrupt routines is eliminated.

Claims (44)

1. A microprocessor having a control register that is atomically modifiable by a privileged (kernel) instruction, the control register having bit fields, the microprocessor comprising:

a core, for receiving the privileged instruction and for atomically modifying the control register upon execution of the privileged instruction, wherein the control register is not accessible when the microprocessor is executing unprivileged instructions;

the privileged instruction comprising:

an opcode, for identifying the instruction as a privileged instruction;

a first operand, for specifying the control register as a register to be modified; and

a second operand, for specifying a location of a second register within the microprocessor, said second register containing a bit mask, said bit mask determining which of the bit fields within the control register are to be modified;

wherein said bit mask is used to atomically set or clear the bit fields in the control register;

whereby the bit fields in the control register are modified atomically by the privileged instruction.

2. The microprocessor as recited in claim 1 , wherein the control register is modified by the privileged instruction in a single cycle.

3. The microprocessor as recited in claim 1 wherein the control register is directly modified by the privileged instruction without requiring the contents of the control register to first be moved to a general purpose (i.e., non-privileged) register.

4. The microprocessor as recited in claim 1 wherein the privileged instruction is executed when the microprocessor receives an interrupt signal.

5. The microprocessor as recited in claim 1 wherein the privileged instruction comprises:

a first instruction, for setting bit fields in the control register according to the contents of said bit mask; or

a second instruction, for clearing bit fields in the control register according to the contents of said bit mask.

6. The microprocessor as recited in claim 5 wherein said first instruction sets bit fields in the control register pertaining to corresponding bits that are set in said bit mask.

7. The microprocessor as recited in claim 5 wherein said second instruction clears bit fields in the control register pertaining to corresponding bits that are set in said bit mask.

8. The microprocessor as recited in claim 1 wherein said second register comprises a general purpose register.

9. The microprocessor as recited in claim 1 wherein the privileged instruction further comprises a field for specifying whether the bit fields in the control register are to be set or cleared according to said bit mask.

10. The microprocessor as recited in claim 1 wherein the control register comprises:

an interrupt mask bit field, said interrupt mask bit field having a plurality of bits, each of said plurality of bits for identifying interrupts received by the microprocessor.

11. The microprocessor as recited in claim 10 wherein by atomically clearing one of said plurality of bits using the privileged instruction, its corresponding interrupt is temporarily disabled.

12. A method for atomically modifying bits within a privileged control register of a microprocessor, the method comprising:

providing a privileged instruction which instructs the microprocessor to atomically modify specified ones of the bits, wherein the control register is not accessible when the microprocessor is executing unprivileged instructions;

providing a register, for specifying which of the particular ones of the bits are to be modified; and

upon receipt of an interrupt by the microprocessor, atomically clearing the particular ones of the bits as specified by the register.

13. The method as recited in claim 12 wherein the bits specify which of a plurality of interrupts have been received by the microprocessor.

14. The method as recited in claim 12 wherein the bits specify which of a plurality of interrupts are enabled.

15. The method as recited in claim 12 wherein the privileged control register comprises a status register having a plurality of bit fields, including the bits.

16. The method as recited in claim 12 wherein the privileged instruction comprises:

an opcode for designating the privileged instruction as privileged;

a first operand for designating the privileged control register as the register to be modified; and

a second operand for designating the location of the register.

17. A tangible computer readable medium comprising program instructions executable by a microprocessor, wherein the program instructions include program code for receiving and executing a privileged instruction, wherein when executed the privileged instruction is operable to:

modify a control register of the microprocessor, wherein the control register is not accessible when the microprocessor is executing unprivileged instructions;

wherein the privileged instruction comprises:

an opcode, for identifying the instruction as a privileged instruction;

a first operand, for specifying the control register as a register to be modified; and

a second operand, for specifying a location of a second register within the microprocessor, said second register containing a bit mask, said bit mask determining which of the bit fields within the control register are to be modified;

wherein said bit mask is used to set or clear the bit fields in the control register;

whereby the bit fields in the control register are modified atomically by the privileged instruction.

18. The tangible computer readable medium as recited in claim 17 wherein the privileged instruction is executed when the microprocessor receives an interrupt signal.

19. The tangible computer readable medium as recited in claim 17 wherein the privileged instruction clears bit fields in the control register pertaining to corresponding bits that are set in said bit mask.

20. The method as recited in claim 12 , wherein the control register is modified by the privileged instruction in a single cycle.

21. The tangible computer readable medium as recited in claim 17 , wherein when executed, the privileged instruction is configured to modify the control register in a single cycle.

Assignments (11)
RELEASE OF SECURITY INTEREST Recorded Dec 29, 2022
From: CAPITAL FINANCE ADMINISTRATION, LLC, AS ADMINISTRATIVE AGENT
To: MIPS TECH, LLC; WAVE COMPUTING INC.
Reel/Frame 062251/0251 →
SECURITY INTEREST Recorded Jun 14, 2021
From: MIPS TECH, LLC; WAVE COMPUTING, INC.
To: CAPITAL FINANCE ADMINISTRATION, LLC
Reel/Frame 056558/0903 →
RELEASE OF SECURITY INTEREST Recorded Jun 14, 2021
From: WAVE COMPUTING LIQUIDATING TRUST
To: MIPS TECH, INC.; HELLOSOFT, INC.; WAVE COMPUTING (UK) LIMITED; IMAGINATION TECHNOLOGIES, INC.; CAUSTIC GRAPHICS, INC.; MIPS TECH, LLC; WAVE COMPUTING, INC.
Reel/Frame 056589/0606 →
SECURITY INTEREST Recorded Feb 26, 2021
From: WAVE COMPUTING, INC.; MIPS TECH, LLC; MIPS TECH, INC.; HELLOSOFT, INC.; WAVE COMPUTING (UK) LIMITED; IMAGINATION TECHNOLOGIES, INC.; CAUSTIC GRAPHICS, INC.
To: WAVE COMPUTING LIQUIDATING TRUST
Reel/Frame 055429/0532 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2018
From: IMAGINATION TECHNOLOGIES LIMITED
To: HELLOSOFT LIMITED
Reel/Frame 046588/0985 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2018
From: HELLOSOFT LIMITED
To: MIPS TECH LIMITED
Reel/Frame 046589/0282 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2018
From: MIPS TECH LIMITED
To: MIPS TECH, LLC
Reel/Frame 046589/0726 →
CHANGE OF NAME Recorded May 1, 2017
From: MIPS TECHNOLOGIES, INC.
To: IMAGINATION TECHNOLOGIES, LLC
Reel/Frame 042375/0221 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2008
From: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
To: MIPS TECHNOLOGIES, INC.
Reel/Frame 021985/0015 →
SECURITY AGREEMENT Recorded Aug 24, 2007
From: MIPS TECHNOLOGIES, INC.
To: JEFFERIES FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 019744/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 2, 2001
From: UHLER, G. MICHAEL
To: MIPS TECHNOLOGIES, INC.
Reel/Frame 012045/0539 →