Atomic Pool Manager

US2021149731A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2021149731-A1
Application numberUS-202016838441-A
CountryUS
Kind codeA1
Filing dateApr 2, 2020
Priority dateNov 14, 2019
Publication dateMay 20, 2021
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.

A computing device receives, from a thread of a multi-thread application, a release message. Each of the threads indicates operation(s) on a memory associated with the application. The release message indicates that a data object used by the thread is released. The device indicates that a memory slot of a data pool is unlocked permitting storage of an indication of a location of the data object in the memory. Each memory slot of the data pool is individually lockable such that a locked memory slot of the data pool indicates storing a location in the locked memory slot will not be permitted even though storing the location in an unlocked memory slot of the data pool will be permitted. The device stores, in the memory slot of the data pool, an indication of a location of the data object. The data object comprises the location of the memory slot.

First claim

Opening claim text (preview).

1 . A computer-program product tangibly embodied in a non-transitory machine-readable storage medium, the computer-program product including instructions operable to cause a computing device to: receive, by a pool manager of a data pool, from a first thread of an application with multiple threads, a first release indication, wherein: each of the multiple threads indicates one or more operations on a first region of memory associated with the application; the first release indication indicates that a first data object used by the first thread in the one or more operations is released from use by the first thread for the pool manager to retain or destroy access for the application to the first data object; and the first data object, released from use by the first thread, is stored at a location addressed in the first region of the memory associated with the application; the data pool is in a second region of the memory associated with the application; the data pool comprises a plurality of memory slots in the second region for storing respective address content indicating a respective location of a respective object in the first region, wherein the second region is addressed with different addresses than the first region; indicate that a first memory slot of the data pool is in an unlocked status permitting storage of the respective address content, wherein each respective memory slot of the data pool is associated with a respective lock indicator in the second region that indicates one of two statuses that is a status for the respective memory slot irrespective of a status of any other memory slot of the data pool, wherein the two statuses comprise: a locked status for an associated locked memory slot that indicates: the associated locked memory slot is not available for a given thread of the multiple threads to read the respective address content from the associated locked memory slot, and the associated locked memory slot is not available for the given thread of the multiple threads to write the respective address content to the associated locked memory slot; and the unlocked status for an associated unlocked memory slot that indicates: the associated unlocked memory slot is available for the given thread of the multiple threads to read the respective address content from the associated locked memory slot, and the associated unlocked memory slot is available for the given thread of the multiple threads to write the respective address content to the associated locked memory slot; and refrain from destroying access by the application to the first data object by storing, while the first memory slot remains in the unlocked status, in the first memory slot of the data pool, a location indication of a location of the first data object released by the first thread, wherein the first data object is modified by the pool manager to reference a location, in the second region, of the first memory slot of the data pool. 2 . The computer-program product of claim 1 , wherein each memory slot of the data pool is individually lockable by changing a stored setting of the respective lock indicator associated with a respective memory slot of the data pool. 3 . (canceled) 4 . The computer-program product of claim 1 , wherein the instructions are operable to cause the computing device to: receive, from a given thread of the multiple threads, a request for a given data object; change a given lock indicator associated with a given memory slot of the data pool to the locked status, wherein the given memory slot comprises an indication of a location of the given data object in the data pool; retrieve, using the indication of the location of the given data object in the data pool, the first data object, wherein the first data object comprises a first value for a given memory slot in the data pool; and change content of the given memory slot by storing the first value in the given memory slot, wherein the storing the content changes the given lock indicator from the locked status to the unlocked status. 5 . The computer-program product of claim 4 , wherein the instructions are operable to cause the computing device to: receive a request from a second thread of the multiple threads for another data object; and indicate that the data pool is empty and the second thread will need to request an allocation of a new data object from an operating system. 6 . The computer-program product of claim 4 , wherein the instructions are operable to cause the computing device to: receive a request from a second thread of the multiple threads for another data object; and set a value for a counter for searching for an indication of an available object of the data pool; and indicate that a memory slot of the data pool indicates a location for the another data object by: checking each of the memory slots of the data pool and finding no indication of the available object of the data pool; augmenting the value of the counter; and checking at least one of the memory slots again and finding the available object of the data pool. 7 . The computer-program product of claim 1 , wherein the instructions are operable to cause the computing device to indicate to the first thread that a memory slot of a data pool is in the unlocked status by: responsive to the first release indication, allocating a preconfigured number of memory slots to the data pool in the memory associated with the application; and indicating a location of an allocated memory slot of the data pool. 8 . The computer-program product of claim 7 , wherein the allocating comprises allocating at least four memory slots of the plurality of memory slots, wherein the at least four memory slots are located contiguously in a region of the memory associated with the application. 9 . The computer-program product of claim 7 , wherein the allocating comprises allocating at least four memory slots of the plurality of memory slots, wherein the at least four memory slots are located noncontiguously in a region of the memory associated with the application. 10 . The computer-program product of claim 1 , wherein the data pool is configured for random access by the multiple threads of the application without regard to an order of memory slots of the plurality of memory slots; and wherein the computing device is configured to: randomly access the memory slot of the data pool to store the location indication of the location of the first data object released by the first thread; and prevent access to all other threads of the multiple threads besides the first thread to the memory slot while the first thread is accessing the memory slot. 11 . The computer-program product of claim 1 , wherein the instructions are operable to cause the computing device to: set a value for a counter for searching for a memory slot of the data pool that does not indicate a location; and indicate that a memory slot of a data pool is in the unlocked status by: checking each of memory slots of the data pool and finding a given memory slot of the data pool either in the locked status or with data indicating a respective object of one or more objects; augmenting the value of the counter; and checking at least one of the memory slots of the data pool again and finding one of the memory slots of the data pool in the unlocked status and not indicating the location of a given object of the one or more objects. 12 . The computer-program product of claim 1 , wherein the instructions are operable to cause the computing device to: receive a second release indication from a second thread of the multiple threads for a second data object; and indicate that th

Assignees

Inventors

Classifications

  • Activation functions · CPC title

  • Recurrent networks, e.g. Hopfield networks · CPC title

  • Backpropagation, e.g. using gradient descent · CPC title

  • using electronic means · CPC title

  • Correctness of operation, e.g. memory ordering · 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 US2021149731A1 cover?
A computing device receives, from a thread of a multi-thread application, a release message. Each of the threads indicates operation(s) on a memory associated with the application. The release message indicates that a data object used by the thread is released. The device indicates that a memory slot of a data pool is unlocked permitting storage of an indication of a location of the data object…
Who is the assignee on this patent?
Sas Inst Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/526. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu May 20 2021 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).