IP Library Granted Patent US 8,190,865
Granted Patent B2
US 8,190,865 · App. 12/576,942 · Granted May 29, 2012

Instruction encoding for system register bit set and clear

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 8,190,865
App. No.
12/576,942
Granted
May 29, 2012
Kind
B2
Abstract

An instruction encoding architecture is provided for a microprocessor to allow atomic modification of privileged architecture registers. The 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, a field for designating which of a plurality of privileged architecture registers is to be modified, a field for designating which bit fields within the designated privileged architecture register is to be modified, and a field to designate whether the whether the designated bit fields are to be set or cleared. The instruction encoding allows a single instruction to atomically set or clear bit fields within privileged architecture registers, without reading the privileged architecture registers into a general purpose register. In addition, the instruction encoding allows a programmer to specify whether the previous content of a privileged architecture register is to be saved to a general purpose register during the atomic modification.

Claims (33)

1. A microprocessor having an architecture register that is modifiable by an instruction, the microprocessor comprising:

an execution core, for receiving the instruction and for modifying the architecture register upon execution of the instruction,

wherein the instruction comprises:

a first operand that is an immediate value to specify a particular bit field within the architecture register to be modified upon execution of the instruction;

a second operand to identify the architecture register to be modified; and

a third operand to specify whether the particular bit field is to be set or cleared; and

whereby the architecture register is modified atomically when the instruction executes.

2. The microprocessor recited in claim 1 , wherein the execution core is further configured to copy one or more bits of the architecture register to a general purpose register in response to executing the instruction.

3. The microprocessor recited in claim 1 , wherein the architecture register is directly modified by the instruction without requiring one or more bits of the architecture register to first be moved to a general purpose register.

4. The microprocessor recited in claim 1 , wherein the instruction is configured to set the particular bit field in the architecture register as specified by the second operand.

5. The microprocessor recited in claim 1 , wherein the instruction is configured to clear the particular bit field in the architecture register as specified by the second operand.

6. The microprocessor recited in claim 5 , wherein said instruction clears bit fields in the architecture register according to a value of said first operand.

7. The microprocessor recited in claim 1 , wherein the instruction comprises an opcode to specify that an atomic update to the architecture register is requested.

8. The microprocessor recited in claim 1 , wherein the architecture register comprises an interrupt enable bit field to indicate to the microprocessor whether interrupts are enabled or disabled.

9. The microprocessor recited in claim 8 , wherein said interrupt enable bit field indicates to the microprocessor that if the interrupts are disabled, the microprocessor will ignore further interrupts.

10. A method for modifying an architecture register in a microprocessor having an architecture register, comprising:

decoding an instruction comprising:

an immediate value to specify a particular bit field within the architecture register;

a second operand to identify the architecture register to be modified; and

a third operand to specify whether the particular bit field is to be set or cleared; and

executing an instruction to atomically modify the specified particular bit field within the architecture register.

11. The method recited in claim 10 , further comprising copying one or more bits of the architecture register to a general purpose register.

12. The method recited in claim 10 , wherein executing the instruction directly modified the architecture register without requiring one or more bits of the architecture register to first be moved to a general purpose register.

13. The method recited in claim 10 , wherein executing the instruction sets the particular bit field in the architecture register as specified by the second operand.

14. The method recited in claim 10 , wherein executing the instruction clears the particular bit field in the architecture register as specified by the second operand.

15. The method recited in claim 14 , wherein said instruction clears bit fields in the architecture register according to a value of said first operand.

16. The method recited in claim 10 , wherein the instruction comprises an opcode to specify that an atomic update to the architecture register is requested.

17. The method recited in claim 10 , wherein the architecture register comprises an interrupt enable bit field to indicate to the microprocessor whether interrupts are enabled or disabled, further comprising ignoring interrupts in accordance with the interrupt enable bit field.

18. A microprocessor having an architecture register that is modifiable by an instruction, the microprocessor comprising:

an execution core, for receiving the instruction and for modifying the architecture register upon execution of the instruction, wherein the instruction comprises:

a first operand that is an immediate value to specify a particular bit field within the architecture register to be modified upon execution of the instruction; and

a second operand to specify whether the particular bit field is to be set or cleared; and

whereby the architecture register is modified atomically when the instruction executes.

Assignments (8)
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 →