Inclusion monitors
First Claim
1. An apparatus comprising:
- inclusion monitor circuitry;
a content addressable memory (CAM) coupled with the inclusion monitor circuitry;
a first processor configured to send a first release request to the inclusion monitor circuitry, wherein the first release request comprises an identifier tag;
a second processor configured to send a second release request to the inclusion monitor circuitry, wherein the second release request comprises the identifier tag; and
a third processor configured to send an acquire request to the inclusion monitor circuitry, wherein the acquire request comprises the identifier tag and a weight value,wherein the inclusion monitor circuitry is configured to create a CAM entry in the CAM based on receiving the first release request, the second release request, or the acquire request, and use the identifier tag as a tag of the CAM entry,wherein the inclusion monitor circuitry, in response to receiving the first release request, is configured to perform a first lookup in the CAM based on the identifier tag of the first release request, increment an arrival counter of the CAM entry, and cause the first processor to enter a stalled state based on (i) a first determination that the arrival counter of the CAM entry does not satisfy a threshold criterion specified by a weight value of the CAM entry or (ii) a first determination that the acquire request has not yet been received by the inclusion monitor circuitry, andwherein the inclusion monitor circuitry, in response to receiving the second release request, is configured to perform a second lookup in the CAM based on the identifier tag of the second release request, increment the arrival counter of the CAM entry, and cause the second processor to enter the stalled state based on (i) a second determination that the arrival counter of the CAM entry does not satisfy the threshold criterion specified by the weight value of the CAM entry or (ii) a second determination that the acquire request has not yet been received by the inclusion monitor circuitry, andwherein the inclusion monitor circuitry, in response to receiving the acquire request, is configured to perform a third lookup in the CAM based on the identifier tag of the acquire request, store the weight value of the acquire request as the weight value of the CAM entry, and release the first processor and the second processor from the stalled state based on a determination that the arrival counter of the CAM entry does satisfy the threshold criterion.
3 Assignments
0 Petitions
Accused Products
Abstract
Systems, devices, and techniques for processor synchronization are described. A described system includes sending, from first processors, release requests to an inclusion monitor, the release requests including an identifier tag; sending, from a second processor, an acquire request to the inclusion monitor circuitry, the acquire request including a weight value and the identifier tag; creating a content addressable memory (CAM) entry based on a receipt of at least one of the release or acquire requests; maintaining a count of the release requests that correspond to the identifier tag by using the entry'"'"'s arrival counter; causing the first processors to stall if the entry'"'"'s arrival counter does not satisfy a threshold criterion specified by the entry'"'"'s weight value or if the acquire request has not been received; storing the acquire request'"'"'s weight value as the entry'"'"'s weight value; and releasing the first processors if the entry'"'"'s arrival counter satisfies the criterion.
-
Citations
20 Claims
-
1. An apparatus comprising:
-
inclusion monitor circuitry; a content addressable memory (CAM) coupled with the inclusion monitor circuitry; a first processor configured to send a first release request to the inclusion monitor circuitry, wherein the first release request comprises an identifier tag; a second processor configured to send a second release request to the inclusion monitor circuitry, wherein the second release request comprises the identifier tag; and a third processor configured to send an acquire request to the inclusion monitor circuitry, wherein the acquire request comprises the identifier tag and a weight value, wherein the inclusion monitor circuitry is configured to create a CAM entry in the CAM based on receiving the first release request, the second release request, or the acquire request, and use the identifier tag as a tag of the CAM entry, wherein the inclusion monitor circuitry, in response to receiving the first release request, is configured to perform a first lookup in the CAM based on the identifier tag of the first release request, increment an arrival counter of the CAM entry, and cause the first processor to enter a stalled state based on (i) a first determination that the arrival counter of the CAM entry does not satisfy a threshold criterion specified by a weight value of the CAM entry or (ii) a first determination that the acquire request has not yet been received by the inclusion monitor circuitry, and wherein the inclusion monitor circuitry, in response to receiving the second release request, is configured to perform a second lookup in the CAM based on the identifier tag of the second release request, increment the arrival counter of the CAM entry, and cause the second processor to enter the stalled state based on (i) a second determination that the arrival counter of the CAM entry does not satisfy the threshold criterion specified by the weight value of the CAM entry or (ii) a second determination that the acquire request has not yet been received by the inclusion monitor circuitry, and wherein the inclusion monitor circuitry, in response to receiving the acquire request, is configured to perform a third lookup in the CAM based on the identifier tag of the acquire request, store the weight value of the acquire request as the weight value of the CAM entry, and release the first processor and the second processor from the stalled state based on a determination that the arrival counter of the CAM entry does satisfy the threshold criterion. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method comprising:
-
sending, from a first processor, a first release request to inclusion monitor circuitry, wherein the first release request comprises an identifier tag; sending, from a second processor, a second release request to the inclusion monitor circuitry, wherein the second release request comprises the identifier tag; sending, from a third processor, an acquire request to the inclusion monitor circuitry, wherein the acquire request comprises a weight value and the identifier tag; creating, in a content addressable memory (CAM) by the inclusion monitor circuitry, a CAM entry based on a receipt of the first release request, the second release request, or the acquire request, wherein creating the CAM entry comprises using the identifier tag as a tag of the CAM entry; incrementing, in response to receiving the first release request, an arrival counter of the CAM entry; causing the first processor to enter a stalled state based on (i) a first determination that the arrival counter of the CAM entry does not satisfy a threshold criterion specified by a weight value of the CAM entry or (ii) a first determination that the acquire request has not yet been received by the inclusion monitor circuitry; incrementing, in response to receiving the second release request, the arrival counter of the CAM entry; causing the second processor to enter the stalled state based on (i) a second determination that the arrival counter of the CAM entry does not satisfy the threshold criterion specified by the weight value of the CAM entry or (ii) a second determination that the acquire request has not yet been received by the inclusion monitor circuitry; storing, in response to receiving the acquire request, the weight value of the acquire request as the weight value of the CAM entry; and releasing the first processor and the second processor from the stalled state based on a determination that the arrival counter of the CAM entry does satisfy the threshold criterion. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
14. A system comprising:
-
inclusion monitor circuitry comprising a controller and a content addressable memory (CAM) configured to store a plurality of CAM entries; and processors to perform synchronization via the inclusion monitor circuitry using an identifier tag, wherein first processors of the processors are configured to respectively send release requests to the controller, the release requests comprising the identifier tag, wherein a second processor of the processors is configured to send an acquire request to the controller, the acquire request comprising a weight value and the identifier tag, wherein the controller is configured to mark a CAM entry of the CAM entries as valid based on receiving at least one of the release requests or the acquire request, and write the identifier tag of the at least one of the release requests or the acquire request as a tag of the CAM entry, wherein the controller is configured to perform first lookups in the CAM based on the identifier tag of the release requests, maintain a count of the release requests that correspond to the identifier tag by using an arrival counter of the CAM entry, and cause the first processors to enter a stalled state based on a determination that the arrival counter of the CAM entry does not satisfy a threshold criterion specified by a weight value of the CAM entry or a determination that the acquire request has not yet been received by the controller, and wherein the controller is configured to perform a second lookup in the CAM based on the identifier tag of the acquire request, store the weight value of the acquire request as the weight value of the CAM entry, and release the first processors from the stalled state based on a determination that the arrival counter of the CAM entry does satisfy the threshold criterion. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification