Spinlock method and apparatus

US2017344403A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2017344403-A1
Application numberUS-201615166840-A
CountryUS
Kind codeA1
Filing dateMay 27, 2016
Priority dateMay 27, 2016
Publication dateNov 30, 2017
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Apparatuses, methods and storage medium associated with spinlock are disclosed herein. In embodiments, an apparatus for computing may comprise a first and a second processor core to correspondingly execute a first and a second thread; a storage location to store a spinlock to facilitate exclusive access by the first or the second thread to a plurality of resources implicitly shared by the first and second threads; and spin logic to be executed by the second processor core to occupy the second processor core to suspend execution of the second thread to prevent the second thread from using any one of the implicitly shared resources, whenever the spinlock is set by the first thread for exclusive access to one or more of the implicitly shared resources. Other embodiments may be disclosed or claimed.

First claim

Opening claim text (preview).

What is claimed is: 1 . An apparatus for computing, comprising: a processor having at least a first and a second processor core to correspondingly execute a first and a second firmware or software thread; a storage location to store a spinlock to facilitate exclusive access by the first or the second thread to a plurality of resources implicitly shared by the first and second threads; and spin logic to be executed by the second processor core to occupy the second processor core to suspend execution of the second thread to prevent the second thread from using any one of the implicitly shared resources, whenever the spinlock is set by the first thread for exclusive access to one or more of the implicitly shared resources; wherein the second thread does not have a need for exclusive access to one or more of the implicitly shared resources. 2 . The apparatus of claim 1 , wherein the spin logic has higher execution priority than the second thread. 3 . The apparatus of claim 1 , wherein the first thread is to set the spinlock, without having to check a state of the spinlock, prior to commencing execution of a critical section of the first thread to ensure the implicitly shared resources are available to the first thread, if needed, during execution of the critical section of the first thread. 4 . The apparatus of claim 3 , wherein the first thread is to release the spinlock on completion of execution of the critical section of the first thread. 5 . The apparatus of claim 4 , wherein the spin logic is to cease occupation of the second processor core to resume execution of the second thread on release of the spinlock by the first thread. 6 . The apparatus of claim 3 , further comprising a spinlock service to initialize the spinlock at the storage location; wherein the storage location is accessible to the first thread and visible to the spin logic. 7 . The apparatus of claim 6 , wherein the first thread is to obtain the storage location from the spinlock service, or the apparatus further comprises a loader to load the first thread for execution, and provide the first thread with the storage location. 8 . The apparatus of claim 6 , wherein the second thread is to register with the spinlock service to receive a spinlock set event notification from the spinlock service whenever the spinlock is set; and wherein the spinlock service is to accept registration of the second thread, monitor the spinlock, and on detection that the spinlock is set, provide the second thread with the spinlock set event notification. 9 . The apparatus of claim 6 , further comprising a basic input/output system (BIOS) having the spinlock service or the spin logic. 10 . The apparatus of claim 1 , wherein the processor comprises a control register, and the storage location is disposed within the control register, or the apparatus further comprises a system memory having the storage location; and wherein the plurality of resources of the apparatus implicitly shared by the first and second threads comprise a system memory, a memory controller, or a system bus of the apparatus. 11 . The apparatus of claim 1 , wherein the second thread comprises the spin logic. 12 . The apparatus of claim 1 , wherein the spin logic is a first spin logic, the processor core further comprises a third processor core to execute a third firmware or software thread; and the spinlock is to facilitate exclusive access by the first, the second or the third thread to the plurality of resources implicitly shared by the first and second threads, as well as the third thread; and wherein the apparatus further comprises: second spin logic to be executed by the third processor core to occupy the third processor core to effectively suspend execution of the third thread to prevent the third thread from using any one of the implicitly shared resources, wherein the third thread does not have a need for exclusive access to one or more of the implicitly shared resources. 13 . The apparatus of claim 1 , wherein the processor core further comprises a third processor core to execute a third firmware or software thread; and the spinlock is to facilitate exclusive access by a subset of the first, the second and the third thread to the plurality of resources implicitly shared by the first and second threads, as well as the third thread; and wherein the spin logic is to be executed by the second processor core to occupy the second processor core to effectively suspend execution of the second thread to prevent the second thread from using any one of the implicitly shared resources, whenever the spinlock is set by either the first thread, the third thread or both the first and third thread for exclusive access to one or more of the implicitly shared resources. 14 . The apparatus of claim 13 , wherein the first or third thread is to set the spinlock, without having to first check a state of the spinlock, prior to commencing execution of a semi-critical section of the first or third thread to increase likelihood of the implicitly shared resources are available to the first or third thread, if needed, during execution of the semi-critical section of the first or third thread. 15 . The apparatus of claim 14 , wherein the spinlock is a counter with an initial value, and the first or third thread sets the spinlock by incrementing the counter; and wherein the first or third thread is to release the spinlock on completion of execution of the semi-critical section of the first or third thread by decrementing the counter; and wherein the spin logic is to cease occupation of the second processor core to resume execution of the second thread on release of the spinlock by the first and third threads, when the spinlock counter is decremented to the initial value. 16 . A method for computing on an apparatus with a first processor core executing a first firmware or software thread, the method comprising: executing, by a second processor core of the apparatus, a second firmware or software thread; wherein the apparatus includes a plurality of resources implicitly shared by the first and second threads; and executing , by the second processor core, a spin logic to occupy the second processor core to suspend execution of the second thread to prevent the second thread from using any one of the implicitly shared resources, whenever a spinlock disposed at a storage location of the apparatus is set by the first thread for exclusive access to the implicitly shared resources; wherein the second thread does not have a need for exclusive access to one or more of the implicitly shared resources. 17 . The method of claim 16 , further comprising setting, by the first thread, the spinlock, without checking a state of the spinlock, prior to commencing execution of a critical section of the first thread to ensure the implicitly shared resources are available to the first thread, if needed, during execution of the critical section of the first thread; releasing, by the first thread, the spinlock on completion of execution of the critical section of the first thread; and ceasing, by the spin logic, occupation of the second processor core to resume execution of the second thread on release of the spinlock by the first thread. 18 . The method of claim 16 , wherein the spin logic is a first spin logic, the apparatus further comprises a third processor core to execute a third firmware or software thread; and the spinlock is to facilitate exclusive access by the first, the second or the third thread to the plurality of resources implicitly shared by

Assignees

Inventors

Classifications

  • G06F9/524Primary

    Deadlock detection or avoidance · CPC title

  • considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2017344403A1 cover?
Apparatuses, methods and storage medium associated with spinlock are disclosed herein. In embodiments, an apparatus for computing may comprise a first and a second processor core to correspondingly execute a first and a second thread; a storage location to store a spinlock to facilitate exclusive access by the first or the second thread to a plurality of resources implicitly shared by the first…
Who is the assignee on this patent?
Wind River Systems Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/524. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Nov 30 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).