IP Library Granted Patent US 10,649,773
Granted Patent B2
US 10,649,773 · App. 15/092,915 · Granted May 12, 2020

Processors supporting atomic writes to multiword memory locations and methods

Inventors: Ranjit J. Rozario (San Jose, CA); Andrew F. Glew (Santa Clara, CA); Sanjay Patel (Santa Clara, CA); James Robinson (Santa Clara, CA); Sudhakar Ranganathan (Santa Clara, CA)
Assignee: MIPS Tech, LLC
G06F9/30043G06F9/3001G06F9/3004G06F9/30087G06F9/3834G06F12/0875G06F12/0897G06F12/0811G06F12/0817G06F2212/452
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 10,649,773
App. No.
15/092,915
Granted
May 12, 2020
Kind
B2
Abstract

A system and method process atomic instructions. A processor system includes a load store unit (LSU), first and second registers, a memory interface, and a main memory. In response to a load link (LL) instruction, the LSU loads first data from memory into the first register and sets an LL bit (LLBIT) to indicate a sequence of atomic instructions is being executed. The LSU further loads second data from memory into the second register in response to a load (LD) instruction. The LSU places a value of the second register into the memory interface in response to a store conditional coupled (SCX) instruction. When the LLBIT is set and in response to a store (SC) instruction, the LSU places a value of the second register into the memory interface and commits the first and second register values in the memory interface into the main memory when the LLBIT is set.

Claims (28)

1. A processor system comprising:

a load store unit (LSU) configured to execute load and store instructions;

a first register;

a second register;

a memory interface;

wherein the LSU is configured to, in response to processing an instruction, set a link load bit (LLBIT) to indicate that atomic operations are to be executed;

wherein the LSU is configured to place a value of the second register into the memory interface in response to a store conditional coupled (SCX) instruction, and wherein the LSU is configured to place a value of the first register into the memory interface in response to a store (SC) instruction; and

a main memory, and wherein the LSU will only commit the first and second register values in the memory interface into the main memory when the LLBIT is set when the SC instruction is executed, wherein the SC instruction is only executed if the LLBIT is still set.

2. The processor system of claim 1 wherein the LSU is configured to load first data from the main memory through the memory interface into the first register in response to a load link (LL) instruction and to set the LLBIT in response to the LL instruction, wherein the LSU is further configured to load second data from the main memory through the memory interface into the second register in response to a load (LD) instruction, and where the value of the second register is a different value than the second data before the value of the second register is placed into the memory interface in response to the SCX instruction.

3. The processor system of claim 2 further comprising:

an arithmetic logical unit (ALU) configured to execute an ALU instruction operating on the value of the second register to create the different value than the second data.

4. The processor system of claim 1 wherein the LSU will not commit the first and second register values in the memory interface into the main memory when the LLBIT is not set, and wherein the processor system is configured to replay the atomic operations when the LLBIT is not set.

5. The processor system of claim 1 further comprising:

a level two (L2) cache shared between two or more processors.

6. The processor system of claim 1 wherein the SC instruction is executed immediately after the SCX instruction.

7. The processor system of claim 1 wherein the LSU is configured to clear the LLBIT in response to determining that no SC instruction immediately follows the SCX instruction.

8. The processor system of claim 1 wherein the first register and the second register are both 32-bit registers.

9. A method of executing atomic instructions in a multithreaded system comprising:

executing a load link (LL) instruction to load a first data value from a memory block and set a corresponding LLBIT to indicate that a read from this memory block is part of a sequence of atomic instructions;

executing a load word (LW) instruction to load a second data value from another location in the memory block;

executing a store conditional coupled (SCX) instruction to write the second data value back to a memory interface but not committing data in the memory interface to the memory block; and

only if the LLBIT is still set, executing a store conditional (SC) instruction to write the first data value to the memory interface and if the LLBIT is still set committing the first data value and the second data value in the memory interface to the memory block.

10. The method of claim 9 further comprising:

changing value of the first data value before the first data value is written to the memory interface.

11. The method of claim 9 further comprising:

executing the SCX and the SC instructions back-to-back.

12. The method of claim 9 further comprising:

resetting the LLBIT when an instruction immediately following the SCX instruction is not the SC instruction.

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 Apr 19, 2018
From: MIPS TECH LIMITED
To: MIPS TECH, LLC
Reel/Frame 045593/0662 →
CHANGE OF NAME Recorded Jan 26, 2018
From: HELLOSOFT LIMITED
To: MIPS TECH LIMITED
Reel/Frame 045168/0922 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2018
From: IMAGINATION TECHNOLOGIES LIMITED
To: HELLOSOFT LIMITED
Reel/Frame 045136/0975 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 7, 2016
From: ROZARIO, RANJIT J.; GLEW, ANDREW F.; PATEL, SANJAY; ROBINSON, JAMES; RANGANATHAN, SUDHAKAR
To: IMAGINATION TECHNOLOGIES LIMITED
Reel/Frame 038218/0480 →