9612949

Memory Allocation in a Multi-Core Processing System Based on a Threshold Amount of Memory

PublishedApril 4, 2017
Assigneenot available in USPTO data we have
Technical Abstract

Patent Claims
19 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method of allocating memory to processing cores in a multi-core processing system, the system comprising: plural processing cores for performing processing tasks, each processing core processing each task allocated to that processing core to produce a result for that task; a buffer comprising an allocated amount of memory for storing results that are produced by the plural processing cores; and a task allocator that allocates to the processing cores tasks to be processed, the task allocator indicating to the processing cores memory portions in the buffer for storing the results produced for the tasks; the method comprising: the task allocator allocating to each processing core of the plural processing cores a respective set of tasks to be processed by that processing core, the task allocator also indicating to each processing core of the plural processing cores a respective particular memory portion in the buffer for storing the results produced by that processing core for its set of tasks; the method further comprising each processing core of the plural processing cores, when processing a particular task of the set of tasks to be processed by that processing core: (i) processing the particular task to produce a particular result for the particular task; (ii) storing the particular result in the respective particular memory portion of the allocated memory of the buffer indicated to the processing core by the task allocator; (iii) determining whether there is less than a threshold amount of memory remaining in the respective particular memory portion indicated to the processing core by the task allocator; and (iv) if there is less than the threshold amount of memory remaining in the respective particular memory portion indicated to the processing core by the task allocator, requesting the task allocator to indicate a new memory portion to the processing core; and the method further comprising the task allocator, in response to a new memory portion being requested by a particular processing core of the plural processing cores: indicating a new memory portion to the particular processing core.

2

2. The method of claim 1 , wherein the tasks performed by the processing cores comprise data compression tasks.

3

3. The method of claim 1 , wherein the processing system comprises a graphics processing system, the processing cores comprise graphics processing cores, and the tasks performed by the processing cores comprise graphics processing tasks.

4

4. The method of claim 1 , wherein indicating a new memory portion to the particular processing core comprises the task allocator providing a new memory index to the particular processing core, the new memory index being derived by the task allocator from a counter of the task allocator.

5

5. The method of claim 1 , wherein storing the particular result in the respective particular memory portion comprises the processing core deriving the location of the respective particular memory portion from a memory index that is provided to the processing core by the task allocator.

6

6. The method of claim 5 , wherein deriving the location of the particular memory portion comprises the processing core determining an address from the memory index, wherein determining the address comprises multiplying the memory index by a predetermined size for the memory portions and/or adding an offset.

7

7. The method of claim 1 , wherein the processing of the tasks is performed in respect of plural output buffers or render targets, the task allocator maintaining a separate counter for deriving memory indexes for each of the plural output buffers or render targets.

8

8. The method of claim 1 , wherein determining whether there is less than a threshold amount of memory remaining in the respective particular memory portion comprises the processing core determining whether the difference between the amount of unused memory in the respective particular memory portion and the amount of memory needed to store subsequent results for subsequent tasks is less than a threshold.

9

9. The method of claim 1 , comprising suspending the processing of the tasks and storing a counter value of the task allocator as a restart value, and subsequently resuming the processing of the tasks on the basis of the restart value.

10

10. A multi-core processing system comprising: plural processing cores for performing processing tasks, each processing core processing each task allocated to that processing core to produce a result for that task; a buffer comprising an allocated amount of memory for storing results that are produced by the plural processing cores; and a task allocator that allocates to the processing cores tasks to be processed, the task allocator indicating to the processing cores memory portions in the buffer for storing the results produced for the tasks; wherein the task allocator is configured to allocate to each processing core of the plural processing cores a respective set of tasks to be processed by that processing core, the task allocator also being configured to indicate to each processing core of the plural processing cores a respective particular memory portion in the buffer for storing the results produced by that processing core for its set of tasks; wherein each processing core of the plural processing cores is configured to, when processing a particular task of the set of tasks to be processed by that processing core: (i) process the particular task to produce a particular result for the particular task; (ii) store the particular result in the respective particular memory portion of the allocated memory of the buffer indicated to the processing core by the task allocator; (iii) determine whether there is less than a threshold amount of memory remaining in the respective particular memory portion indicated to the processing core by the task allocator; and (iv) if there is less than the threshold amount of memory remaining in the respective particular memory portion indicated to the processing core by the task allocator, request the task allocator to indicate a new memory portion to the processing core; and wherein the task allocator is further configured to, in response to a new memory portion being requested by a particular processing core of the plural processing cores: indicate a new memory portion to the particular processing core.

11

11. The multi-core processing system of claim 10 , wherein the tasks performed by the processing cores comprise data compression tasks.

12

12. The multi-core processing system of claim 10 , wherein the processing system comprises a graphics processing system, the processing cores comprise graphics processing cores, and the tasks performed by the processing cores comprise graphics processing tasks.

13

13. The multi-core processing system of claim 10 , wherein indicating a new memory portion to the particular processing core comprises the task allocator providing a new memory index to the particular processing core, the new memory index being derived by the task allocator from a counter of the task allocator.

14

14. The multi-core processing system of claim 10 , wherein storing the particular result in the respective particular memory portion comprises the processing core deriving the location of the respective particular memory portion from a memory index that is provided to the processing core by the task allocator.

15

15. The multi-core processing system of claim 14 , wherein deriving the location of the respective particular memory portion comprises the processing core determining an address from the memory index, wherein determining the address comprises multiplying the memory index by a predetermined size for the memory portions and/or adding an offset.

16

16. The multi-core processing system of claim 10 , wherein the processing of the tasks is performed in respect of plural output buffers or render targets, the task allocator maintaining a separate counter for deriving memory indexes for each of the plural output buffers or render targets.

17

17. The multi-core processing system of claim 10 , wherein determining whether there is less than a threshold amount of memory remaining in the respective particular memory portion comprises the processing core determining whether the difference between the amount of unused memory in the respective particular memory portion and the amount of memory needed to store subsequent results for subsequent tasks is less than a threshold.

18

18. The multi-core processing system of claim 10 , comprising suspending the processing of the tasks and storing a counter value of the task allocator as a restart value, and subsequently resuming the processing of the tasks on the basis of the restart value.

19

19. A non-transitory computer readable storage medium storing computer software code which when executing on a processor performs a method of allocating memory to processing cores in a multi-core processing system, the system comprising: plural processing cores for performing processing tasks, each processing core processing each task allocated to that processing core to produce a result for that task; a buffer comprising an allocated amount of memory for storing results that are produced by the plural processing cores; and a task allocator that allocates to the processing cores tasks to be processed, the task allocator indicating to the processing cores memory portions in the buffer for storing the results produced for the tasks; the method comprising: the task allocator allocating to each processing core of the plural processing cores a respective set of tasks to be processed by that processing core, the task allocator also indicating to each processing core of the plural processing cores a respective particular memory portion in the buffer for storing the results produced by that processing core for its set of tasks; the method further comprising each processing core of the plural processing cores, when processing a particular task of the set of tasks to be processed by that processing core: (i) processing the particular task to produce a particular result for the particular task; (ii) storing the particular result in the respective particular memory portion of the allocated memory of the buffer indicated to the processing core by the task allocator; (iii) determining whether there is less than a threshold amount of memory remaining in the respective particular memory portion indicated to the processing core by the task allocator; and (iv) if there is less than the threshold amount of memory remaining in the respective particular memory portion indicated to the processing core by the task allocator, requesting the task allocator to indicate a new memory portion to the processing core; and the method further comprising the task allocator, in response to a new memory portion being requested by a particular processing core of the plural processing cores: indicating a new memory portion to the particular processing core.

Patent Metadata

Filing Date

Unknown

Publication Date

April 4, 2017

Inventors

Oskar Flordal
Hakan Persson
Andreas Engh-Halstvedt

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “MEMORY ALLOCATION IN A MULTI-CORE PROCESSING SYSTEM BASED ON A THRESHOLD AMOUNT OF MEMORY” (9612949). https://patentable.app/patents/9612949

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.