IP Library Granted Patent US 10,120,732
Granted Patent B1
US 10,120,732 · App. 15/499,796 · Granted Nov 6, 2018

Exclusion monitors

Inventors: Ricardo Jorge Lopez (San Marcos, CA); Robert N. Hilton (San Diego, CA)
Assignee: FRIDAY HARBOR LLC
G06F9/526G06F3/065G06F3/0619G06F3/0653G06F15/7807G06F17/30982
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,120,732
App. No.
15/499,796
Granted
Nov 6, 2018
Kind
B1
Abstract

Systems, devices, and techniques for processor synchronization are described. A described system includes exclusion monitor circuitry, a content addressable memory (CAM) coupled with the exclusion monitor circuitry, and processors coupled with the exclusion monitor circuitry. The processors can perform synchronization via the exclusion monitor circuitry using an identifier tag. The exclusion monitor circuitry can utilize the CAM to store information for handling one or more named mutual exclusions. The exclusion monitor circuitry and the CAM can be configured to concurrently handle multiple identifier tags that correspond to different mutual exclusions.

Claims (30)

1. An apparatus comprising:

exclusion monitor circuitry;

a content addressable memory (CAM) coupled with the exclusion monitor circuitry, wherein the CAM is configured to store CAM entries, wherein a CAM entry of the CAM entries comprises a CAM tag and a release register; and

processors coupled with the exclusion monitor circuitry, wherein the processors perform synchronization via the exclusion monitor circuitry using an identifier tag,

wherein a first processor of the processors is configured to send a release request to the exclusion monitor circuitry, the release request comprising the identifier tag,

wherein, in response to receiving the release request, the exclusion monitor circuitry is configured to perform a first lookup in the CAM based on the identifier tag of the release request,

wherein the exclusion monitor circuitry is configured to, based on the first lookup missing in the CAM, write the identifier tag of the release request as the CAM tag in the CAM entry, mark the CAM entry as valid, write a processor identifier of the first processor in the release register of the CAM entry, and cause the first processor to enter a stalled state,

wherein a second processor of the processors is configured to send an acquire request to the exclusion monitor circuitry, the acquire request comprising the identifier tag,

wherein, in response to receiving the acquire request, the exclusion monitor circuitry is configured to perform a second lookup in the CAM based on the identifier tag of the acquire request, and

wherein the exclusion monitor circuitry is configured to, based on the second lookup hitting in the CAM, issue a grant to the second processor and release the first processor from the stalled state using the processor identifier stored in the release register of the CAM entry.

2. The apparatus of claim 1 , wherein the exclusion monitor circuitry is configured to release the first processor from the stalled state by sending a retry command to the first processor, wherein the first processor sends an additional release request comprising the identifier tag in response to the retry command that causes the exclusion monitor circuitry to invalidate the CAM entry.

3. The apparatus of claim 1 , wherein the stalled state causes the first processor to sleep such that a program counter associated with the second processor does not advance.

4. The apparatus of claim 1 , wherein the exclusion monitor circuitry is configured to cause the second processor to enter the stalled state based on the i) second processor sending an additional acquire request comprising the identifier tag and ii) the identifier tag of the additional acquire request matching the CAM tag in the CAM entry.

5. The apparatus of claim 4 , wherein the first processor sends an additional release request comprising the identifier tag, wherein the additional release request causes the exclusion monitor circuitry to release the second processor from the stalled state.

6. A method for performing synchronization between processors, comprising:

sending, by a first processor, a release request to exclusion monitor circuitry, wherein the release request comprises an identifier tag;

performing, by the exclusion monitor circuitry in response to receiving the release request, a first lookup in a content addressable memory (CAM) based on the identifier tag of the release request;

operating the exclusion monitor circuitry, based on the first lookup missing in the CAM, to write the identifier tag of the release request as a CAM tag in a CAM entry of the CAM, mark the CAM entry as valid, write a processor identifier of the first processor in a release register of the CAM entry, and cause the first processor to enter a stalled state;

sending, by a second processor, an acquire request to the exclusion monitor circuitry, wherein the acquire request comprises the identifier tag;

performing, by the exclusion monitor circuitry, a second lookup in the CAM based on the identifier tag of the acquire request; and

operating the exclusion monitor circuitry, based on the second lookup hitting in the CAM, to issue a grant to the second processor, and to release the first processor from the stalled state using the processor identifier stored in the release register of the CAM entry.

7. The method of claim 6 , wherein operating the exclusion monitor circuitry to release the first processor from the stalled state comprises sending a retry command to the first processor, the method further comprising:

operating the first processor to send an additional release request comprising the identifier tag in response to the retry command that causes the exclusion monitor circuitry to invalidate the CAM entry.

8. The method of claim 6 , wherein the stalled state causes the first processor to sleep such that a program counter associated with the second processor does not advance.

9. The method of claim 6 , comprising:

operating the second processor to send an additional acquire request comprising the identifier tag; and

operating the exclusion monitor circuitry to cause the second processor to enter the stalled state based on i) a receipt of the additional acquire request and ii) the identifier tag of the additional acquire request matching the CAM tag in the CAM entry.

10. The method of claim 9 , comprising:

operating the first processor to send an additional release request comprising the identifier tag; and

operating the exclusion monitor circuitry to release the second processor from the stalled state in response to a receipt of the additional release request.

Assignments (4)
SECURITY INTEREST Recorded Jan 18, 2019
From: KNUEDGE INCORPORATED
To: XL INNOVATE FUND, LP
Reel/Frame 048091/0399 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 26, 2018
From: KNUEDGE, INC.
To: FRIDAY HARBOR LLC
Reel/Frame 047156/0582 →
SECURITY INTEREST Recorded Oct 27, 2017
From: KNUEDGE INCORPORATED
To: XL INNOVATE FUND, LP
Reel/Frame 044637/0011 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2017
From: LOPEZ, RICARDO JORGE; HILTON, ROBERT N.
To: KNUEDGE INCORPORATED
Reel/Frame 042484/0313 →