Method, Apparatus, and Chip for Implementing Mutually-Exclusive Operation of Multiple Threads

US2016019100A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016019100-A1
Application numberUS-201514872946-A
CountryUS
Kind codeA1
Filing dateOct 1, 2015
Priority dateApr 1, 2013
Publication dateJan 21, 2016
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.

Multiple lock assemblies are distributed on a chip, each lock assembly manage a lock application message for applying for a lock and a lock release message for releasing a lock that are sent by one small core. Specifically, embodiments include receiving a lock message sent by a small core, where the lock message carries a memory address corresponding to a lock requested by a first thread in the small core; calculating, using the memory address of the requested lock, a code number of a lock assembly to which the requested lock belongs; and sending the lock message to the lock assembly corresponding to the code number, to request the lock assembly to process the lock message.

First claim

Opening claim text (preview).

What is claimed is: 1 . A method, comprising: receiving a lock message sent by a small core, wherein the lock message carries a memory address corresponding to a lock requested by a first thread in the small core; calculating, using the memory address corresponding to the requested lock, a code number of a lock assembly to which the requested lock belongs; and sending the lock message to a lock assembly corresponding to the calculated code number, to request the lock assembly to process the lock message. 2 . The method according to claim 1 , wherein calculating the code number of a lock assembly to which the requested lock belongs, comprises: calculating a remainder by dividing the memory address corresponding to the requested lock by a quantity of lock assemblies of a computer node, and using the remainder as the code number of the lock assembly to which the requested lock belongs. 3 . The method according to claim 1 , wherein: information about the requested lock comprises the memory address corresponding to the requested lock, a state of the requested lock, a quantity and code numbers of threads waiting for the requested lock, a code number of a thread currently using the requested lock, and information indicating a next thread to acquire the requested lock; the state of the requested lock is an idle state or an occupied state; and the sending the lock message to the lock assembly corresponding to the code number, to request the lock assembly to process the lock message, comprises: locating the information about the requested lock according to the memory address corresponding to the requested lock that is carried in the lock message; sending the lock message to the lock assembly corresponding to the calculated code number, to request the lock assembly to process the lock message according to the information about the requested lock; and updating the information about the requested lock. 4 . The method according to claim 1 , wherein: information about the requested lock comprises the memory address corresponding to the requested lock, a state of the requested lock, a quantity of threads waiting for the requested lock, a code number of a thread currently using the requested lock, a vector indicating states of threads on a chip, and information indicating a next thread to acquire the requested lock; the states of the threads on a chip comprise the thread is waiting for the requested lock or the thread is not waiting for the requested lock; and sending the lock message to the lock assembly corresponding to the code number, to request the lock assembly to process the lock message, comprises: locating the information about the requested lock according to the memory address corresponding to the requested lock that is carried in the lock message; sending the lock message to the lock assembly corresponding to the calculated code number, to request the lock assembly to process the lock message according to the information about the requested lock; and updating the information about the requested lock. 5 . An apparatus, comprising: a receiver, configured to receive a lock message sent by a small core, wherein the lock message carries a memory address corresponding to a lock requested by a first thread in the small core; a computer-readable storage medium storing a program to be executed by the processor, the program including instructions for calculating, using the memory address corresponding to the requested lock, a code number of a lock assembly to which the requested lock belongs; and a transmitter, configured to transmit the lock message to the lock assembly corresponding to the calculated code number, to request the lock assembly to process the lock message. 6 . The apparatus according to claim 5 , wherein calculating the code number of a lock assembly to which the requested lock belongs, comprises: calculating a remainder by dividing the memory address corresponding to the requested lock by a quantity of all lock assemblies of the apparatus, and using the remainder as the code number of the lock assembly to which the requested lock belongs. 7 . The apparatus according to claim 5 , wherein: information about the requested lock comprises the memory address corresponding to the requested lock, a state of the requested lock, a quantity of and code numbers of threads waiting for the requested lock, a code number of a thread currently using the requested lock, and information indicating a next thread to acquire the requested lock, a state of the requested lock is an idle state or an occupied state; and transmitting the lock message to the lock assembly corresponding to the calculated code number, to request the lock assembly to process the lock message, comprises: finding the information about the requested lock according to the memory address corresponding to the requested lock that is carried in the lock message; transmitting the lock message to the lock assembly corresponding to the code number, to request the lock assembly to process the lock message according to the information about the requested lock; and updating the information about the requested lock. 8 . The apparatus according to claim 5 , wherein, information about the requested lock comprises the memory address corresponding to the requested lock, a state of the requested lock, a quantity of threads waiting for the requested lock, a code number of a thread currently using the requested lock, a vector indicating states of threads on a chip, and information indicating a next thread to acquire the requested lock, the states of the threads comprise the thread is waiting for the requested lock and the thread is not waiting for the requested lock; and transmitting the lock message to the lock assembly corresponding to the calculated code number, to request the lock assembly to process the lock message, comprises: locating the information about the requested lock according to the memory address corresponding to the requested lock that is carried in the lock message; transmitting the lock message to the lock assembly corresponding to the code number, to request the lock assembly to process the lock message according to the information about the requested lock; and updating the information about the requested lock. 9 . A chip, comprising: a small core; a routing component, configured to: receive a lock message sent by the small core, wherein the lock message carries a memory address corresponding to a lock requested by a first thread in the small core; calculate, using the memory address corresponding to the requested lock, a code number of a lock assembly to which the requested lock belongs; and transmit the lock message to the lock assembly corresponding to the calculated code number, to request the lock assembly to process the lock message; and the lock assembly, configured to receive a lock message from the routing component and process the lock message. 10 . The chip according to claim 9 , wherein calculating the code number of a lock assembly to which the requested lock belongs, comprises: calculating a remainder by dividing the memory address corresponding to the requested lock by a quantity of lock assemblies of the chip, and using the remainder as the code number of the lock assembly to which the requested lock belongs. 11 . The chip according to claim 9 , wherein: information about the requested lock comprises the memory address corresponding to the requested lock, a state of the requested lock, a quantity of and code numbers of threads waiting for the requested lock, a code number of a thread currently using the requested lock, and information indicating a

Assignees

Inventors

Classifications

  • Energy efficient computing, e.g. low power processors, power management or thermal management · CPC title

  • Program synchronisation; Mutual exclusion, e.g. by means of semaphores · CPC title

  • Key-lock mechanism · CPC title

  • G06F9/526Primary

    Mutual exclusion algorithms · 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 US2016019100A1 cover?
Multiple lock assemblies are distributed on a chip, each lock assembly manage a lock application message for applying for a lock and a lock release message for releasing a lock that are sent by one small core. Specifically, embodiments include receiving a lock message sent by a small core, where the lock message carries a memory address corresponding to a lock requested by a first thread in the…
Who is the assignee on this patent?
Huawei Tech Co Ltd
What technology area does this patent fall under?
Primary CPC classification G06F12/1466. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Jan 21 2016 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).