Method and memory manager for managing a memory in a multi-processing environment

US9250968B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9250968-B2
Application numberUS-56675209-A
CountryUS
Kind codeB2
Filing dateSep 25, 2009
Priority dateSep 26, 2008
Publication dateFeb 2, 2016
Grant dateFeb 2, 2016

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 memory managing method and memory manager for a multi processing environment are provided. The memory manager adjusts the number of processors assigned to a consumer process and/or an assignment unit size of data to be consumed by the consumer process based on a condition of a shared queue which is shared by a producer process producing data and the consumer process consuming the data.

First claim

Opening claim text (preview).

What is claimed is: 1. A memory manager in a multi-processing environment, comprising: one or more producer processors configured to produce jobs; one or more consumer processors configured to consume the produced jobs; and a controller configured to manage the one or more consumer processors based on a condition of a bandwidth between a memory and the producer processors, wherein the controller determines a variation in length of a shared queue shared by the processors including calculating a moving average of the shared queue determined according to the number and specific time of jobs to be processed in the shared queue and manages the one or more consumer processors based on the variation in length of the shared queue. 2. The memory manager of claim 1 , wherein the controller comprises: a bandwidth monitor configured to check the condition of the bandwidth between the memory and the producer processors. 3. The memory manager of claim 2 , wherein the bandwidth monitor comprises: a queue monitor configured to check a length of a shared queue shared by the producer processors and the consumer processors, determined according to the number of jobs to be processed in the shared queue. 4. The memory manager of claim 2 , wherein the bandwidth monitor comprises: a queue monitor configured to calculate the moving average of the shared queue shared by the producer processors and the consumer processors, determined according to the number and specific time of jobs to be processed in the shared queue. 5. The memory manager of claim 1 , wherein the controller adjusts the number of consumer processors based on the condition of the bandwidth. 6. The memory manager of claim 5 , wherein the controller comprises: a process adjustor configured to increase the number of consumer processors when a length of a shared queue is greater than a predetermined upper limit, and configured to decrease the number of consumer processors when the length of the shared queue is less than a predetermined lower limit. 7. The memory manager of claim 5 , wherein the controller comprises: a process adjustor configured to decrease an assignment unit size of data to be consumed by the one or more consumer processors when a length of a shared queue is greater than a predetermined upper limit, and configured to increase the assignment unit size of data to be consumed by the one or more consumer processors when the length of the shared queue is less than a predetermined lower limit. 8. The memory manager of claim 5 , wherein the controller comprises: a process adjustor configured to increase the number of consumer processors when a length of a shared queue continues to increase for a given period of time, and configured to decrease the number of consumer processors when the length of the shared queue continues to decrease for a given period of time. 9. The memory manager of claim 5 , wherein the controller comprises: a process adjustor configured to decrease an assignment unit size of data to be consumed by the one or more consumer processors when a length of a shared queue continues to increase for a given period of time, and configured to increase the assignment unit size of data to be consumed by the one or more consumer processors when the length of the shared queue continues to decrease for a given period of time. 10. A memory managing method in a multi-processing environment comprising a producer process, a consumer process and a memory, the method comprising: checking a condition of a bandwidth between the memory and one or more producer processors assigned to the producer process and one or more consumer processors assigned to the consumer process; and managing the consumer process based on the condition of the bandwidth, wherein the checking condition of the bandwidth comprises determining of a variation in length of a shared queue including calculating a moving average of the shared queue determined according to the number and specific time of jobs to be processed in the shared queue, and wherein the managing the consumer process comprises managing the one or more consumer processors based on the variation in length of the shared queue. 11. The method of claim 10 , wherein the checking of the condition of the bandwidth comprises determining a length of a shared queue shared by the producer process and the consumer process according to the number of jobs to be processed in the shared queue. 12. The method of claim 10 , wherein the managing of the consumer process comprises adjusting the number of consumer processors assigned to the consumer process based on the condition of the bandwidth. 13. The method of claim 12 , wherein: the adjusting the number of consumer processors comprises increasing the number of consumer processors assigned to the consumer process when a length of a shared queue is greater than a predetermined upper limit, and decreasing the number of consumer processors assigned to the consumer process when the length of the shared queue is less than a predetermined lower limit. 14. The method of claim 12 , wherein: the adjusting the number of consumer processors comprises increasing the number of consumer processors assigned to the consumer process when a length of a shared queue continues to increase for a given period of time, and decreasing the number of consumer processors assigned to the consumer process when the length of the shared queue continues to decrease for a given period of time. 15. The method of claim 10 , wherein: the managing of the consumer process comprises decreasing an assignment unit size of data to be consumed by the consumer process when a length of a shared queue is greater than a predetermined upper limit, and increasing the assignment unit size of data to be consumed by the consumer process when the length of the shared queue is less than a predetermined lower limit. 16. The method of claim 10 , wherein: the managing of the consumer process comprises decreasing an assignment unit size of data to be consumed by the consumer process when a length of a shared queue continues to increase for a given period of time, and increasing the assignment unit size of data to be consumed by the consumer process when the length of the shared queue continues to decrease for a given period of time. 17. A non-transitory computing device for use in a multi-processing environment, comprising: a shared queue shared by a first process configured to produce jobs and a second process configured to consume the jobs produced by the first process; and a controller comprising a processor and configured to determine a condition of a bandwidth between a memory and one or more processors assigned to the first process, based on a condition of the shared queue; and manage the second process based on the determined condition of the bandwidth, wherein the controller is configured to determine a variation in length of the shared queue including calculating a moving average of the shared queue determined according to the number and specific time of jobs to be processed in the shared queue, and to manage the second process based on the variation in length of the shared queue. 18. The non-transitory computing device of claim 17 , wherein the controller adjusts a number of processors assigned to the second process based on the determined condition of the bandwidth. 19. The non-transitory computing device of claim 17 , wherein the controller further comprises: a queue monitor which checks a length of the shared queue, the length being

Assignees

Inventors

Classifications

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 US9250968B2 cover?
A memory managing method and memory manager for a multi processing environment are provided. The memory manager adjusts the number of processors assigned to a consumer process and/or an assignment unit size of data to be consumed by the consumer process based on a condition of a shared queue which is shared by a producer process producing data and the consumer process consuming the data.
Who is the assignee on this patent?
Sihn Kue-Hwan, Baik Hyun-Ki, Kim Jong-Tae, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F9/5016. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 02 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). 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).