Legal claims defining the scope of protection, as filed with the USPTO.
1. A method for synchronizing multiple processor cores performing spinning attempts to request a lock, wherein the lock is allocated to at most one of the multiple cores for a mutually exclusive operation thereof, the method comprising the steps of: allocating the lock to a first core requesting the lock; establishing for each core an indication of a waiting time for receiving the lock; selecting at least one of the spinning cores based on the waiting time indications; upon return of the lock, conditionally allocating the lock to the selected core for a predefined time window, the predefined time window starting with the return of the lock; and if the selected core performs a spinning attempt within the predefined time window, allocating the lock to the selected core.
2. The method according to claim 1 , wherein the step of selecting at least one of the spinning cores comprises selecting a core with a longest waiting time.
3. The method according to claim 2 , comprising the step of allocating the lock to a core with a second longest waiting time, if within the predefined time window no spinning attempt of the core with the longest waiting time is detected.
4. The method according to claim 1 , wherein the waiting time indications established for the spinning cores comprise at least one of time stamps and a monotonous sequence of numbers.
5. The method according to claim 1 , further comprising a step of assigning a priority to each spinning core, wherein the step of selecting at least one of the spinning cores further comprises selecting a core based on its priority.
6. The method according to claim 5 , wherein a core is selected if its priority is at least the priority of the core to which the lock is currently allocated.
7. The method according to claim 1 , wherein the steps of selecting a core and allocating the lock to the selected core are repeatedly performed until the time window expires.
8. The method according to claim 1 , wherein the lock is allocated to the selected core for a predefined time period.
9. The method according to claim 8 , comprising the step of sending a control signal to the core to which the lock has been allocated, if on expiry of the predefined time period the core still holds the lock.
10. The method according to claim 8 , wherein the predefined time period is equal to the duration of the time window.
11. The method according claim 1 , further comprising the step of after the time window expires, repeating the steps of method 1.
12. A non-transitory computer program product comprising program code portions for performing the method of claim 1 , when the non-transitory computer program product is executed on one or more computing devices.
13. The non-transitory computer program product of claim 12 , stored on a computer readable recording medium.
14. A spinlock module for synchronizing multiple cores, comprising: a component adapted to allocate a lock to a first core requesting the lock; a component adapted to establish for each core an indication of a waiting time for receiving the lock; a component adapted to select at least one of the spinning cores based on the waiting time indications; and a component adapted to conditionally allocate the lock to the selected core for a predefined time window, the predefined time window starting with a return of the lock, and if the selected core performs a spinning attempt within the predefined time window, allocating the lock to the selected core.
15. The spinlock module according to claim 14 , further comprising a component adapted to assign a priority to each spinning core.
16. A multi-core system comprising a spinlock module according to claim 14 .
Unknown
August 6, 2013
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.