IP Library Patent Application 15177068
Patent Application
App. No. 15/177,068

PERFORMING A SYNCHRONIZATION OPERATION ON AN ELECTRONIC DEVICE

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 None
App. No.
15/177,068
Abstract

In an illustrative example, a method of operation of an electronic device includes identifying a plurality of threads. Each thread of the plurality of threads is configured to execute a plurality of instructions including a barrier instruction corresponding to a target of a synchronization operation. The method further includes selecting a master thread to perform one or more operations associated with the synchronization operation. The method also includes providing an indication of a number of threads included in the plurality of threads to the master thread.

Claims (38)

1 . A method of operation of an electronic device, the method comprising:

identifying a plurality of threads corresponding to a synchronization operation, wherein each thread of the plurality of threads is configured to execute a plurality of instructions including a barrier instruction corresponding to a target of the synchronization operation;

selecting a master thread to perform one or more operations associated with the synchronization operation; and

providing an indication of a number of threads included in the plurality of threads to the master thread.

2 . The method of claim 1 , further comprising providing an indication of the master thread to each thread of the plurality of threads.

3 . The method of claim 1 , wherein identifying the plurality of threads, selecting the master thread, and providing the indication of the number of threads are performed during an initialization operation at the electronic device.

4 . The method of claim 1 , further comprising:

providing a first message to the master thread, the first message indicating that a first thread of the plurality of threads has executed the barrier instruction;

determining whether a number of messages satisfies a threshold; and

in response to the number of messages failing to satisfying the threshold, refraining from initiating the synchronization operation.

5 . The method of claim 4 , further comprising:

providing a second message to the master thread, the second message indicating that a second thread of the plurality of threads has executed the barrier instruction;

after receiving the second message, determining whether the number of messages satisfies the threshold; and

in response to the number of messages satisfying the threshold, initiating the synchronization operation.

6 . The method of claim 5 , wherein initiating the synchronization operation includes setting a flag in a register of the electronic device.

7 . A method of operation of an electronic device, the method comprising:

executing, by the electronic device, a plurality of threads, the plurality of threads comprising a subset of threads, wherein the subset of threads comprises a first number of threads;

detecting, by a master thread executed by the electronic device, messages from the subset of threads executed by the electronic device, wherein each of the messages indicates that a thread of the subset of threads has executed a barrier instruction; and

initiating a synchronization operation in response to a number of the messages satisfying a threshold that is based on the first number.

8 . The method of claim 7 , wherein each of the messages includes an object identifier associated with a target of the synchronization operation.

9 . The method of claim 7 , further comprising selecting a particular thread executed by the electronic device as the master thread during an initialization operation performed by the electronic device.

10 . The method of claim 9 , wherein the particular thread is selected as the master thread based on a thread identifier associated with the particular thread.

11 . The method of claim 10 , further comprising:

identifying the subset of threads based on the subset of threads including the barrier instruction; and

providing the subset of threads an indication of the thread identifier during the initialization operation to enable the subset of threads to send the messages to the master thread.

12 . The method of claim 7 , further comprising initiating a sleep mode of operation by the master thread in response to the number of the messages failing to satisfy a threshold.

13 . The method of claim 7 , further comprising initiating an active mode of operation by the master thread in response to the number of the messages satisfying the threshold.

14 . The method of claim 7 , wherein the subset of threads includes the master thread.

15 . The method of claim 7 , wherein the subset of threads excludes the master thread.

16 . The method of claim 7 , further comprising, in response to the number of the messages satisfying the threshold, setting a flag associated with the synchronization operation to a ready status.

17 . An apparatus comprising:

circuitry configured to store a flag associated with a synchronization operation, wherein a first value of the flag indicates a hold status associated with a synchronization operation among a subset of threads executed by one or more processors, and wherein a first number of threads of the subset is less than a second number of threads executed by the one or more processors; and

a processor configured to detect messages from the subset of threads and to set the flag to a second value in response to a number of the messages satisfying a threshold, the second value indicating a ready status of the synchronization operation.

18 . The apparatus of claim 17 , wherein the circuitry includes a register configured to store the flag.

19 . The apparatus of claim 17 , further comprising:

a memory configured to store initialization instructions; and

one or more processing units configured to execute the initialization instructions to identify the subset of threads and to select a master thread.

20 . The apparatus of claim 17 , wherein a first thread of the subset of threads includes a barrier instruction executable by the processor to send a first message of the messages.

Assignments (4)
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 →
SECURITY INTEREST Recorded Nov 11, 2016
From: KNUEDGE INCORPORATED
To: XL INNOVATE FUND, L.P.
Reel/Frame 040601/0917 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 8, 2016
From: MENDEZ LOJO, MARIO; WHITE, ANDREW
To: KNUEDGE INCORPORATED
Reel/Frame 038847/0809 →