IP Library Granted Patent US 10,289,330
Granted Patent B2
US 10,289,330 · App. 15/474,355 · Granted May 14, 2019

Allocating shared memory among multiple tasks in a multiprocessor environment

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,289,330
App. No.
15/474,355
Granted
May 14, 2019
Kind
B2
Abstract

The present disclosure generally relates to a method and system for efficiently sharing limited memory among multiple processors. Each processor has a local linked list. The local linked list identifies the pages allocated to the specific processor as well as the number of free codewords for each allocated page. Additionally, the local linked list includes the location of the next free codeword(s) for each allocated page. When all codewords are available, the page is considered free and may be sent back to the page pool used by all of the processors. If there are a sufficient number of contiguous free codewords on an allocated page, then new codeword data may be stored in the page. If there is not a sufficient number of contiguous free codewords on any allocated page, then a new page is allocated from the page pool. Thus, efficient allocate of memory resources is achieved.

Claims (39)

1. A method, comprising:

checking a local linked list on a first processor of a plurality of processors;

determining that any allocated page of a plurality of allocated pages on the local linked list has a number of contiguous codewords that is greater than or equal to a number of codewords to be allocated;

allocating codewords from an allocated page of the plurality of allocated pages having the number of contiguous codewords greater than or equal to the number of codewords to be allocated;

incrementing a number of a first codeword free for the allocated page in the local linked list; and

decreasing a number of codewords free for the allocated page in the local linked list, and wherein each page of the local linked list is searched for the number of contiguous codewords that is greater than or equal to a number of codewords to be allocated.

2. The method of claim 1 , further comprising:

checking the local linked list on the first processor;

determining that any allocated page from the plurality of allocated pages does not have sufficient contiguous codewords available; and

obtaining a new page from a page pool shared by the plurality of processors.

3. The method of claim 2 , further comprising allocating codewords from the new page.

4. The method of claim 3 , further comprising updating the local linked list.

5. The method of claim 4 , further comprising:

freeing a plurality of codewords from a second page allocated to the first processor;

determining that all of the codewords for the second page are free; and

returning the second page to a page pool.

6. The method of claim 1 , further comprising:

checking a second local linked list on a second processor of a plurality of processors;

determining that any allocated page of a second plurality of allocated pages on the second local linked list of the second processor has a number of contiguous codewords that is greater than or equal to a number of codewords to be allocated;

allocating codewords from an allocated page of the second plurality of allocated pages having the number of contiguous codewords greater than or equal to the number of codewords to be allocated;

incrementing a number of a first codeword free for the allocated page of the second plurality of allocated pages in the second local linked list; and

decreasing a number of codewords free for the allocated page of the second plurality of allocated pages in the second local linked list.

7. The method of claim 6 , further comprising:

freeing a plurality of codewords from a second page allocated to the second processor;

determining that all of the codewords for the second page are free; and

returning the second page to a page pool.

8. The method of claim 7 , further comprising:

checking the local linked list on the second processor;

determining that any allocated page from the second plurality of allocated pages does not have sufficient contiguous codewords available; and

obtaining a new page from a page pool shared by the plurality of processors.

9. A method, comprising:

searching all allocated pages of a local linked list for at least one page with an allocation of at least one free codeword;

freeing one or more codewords in any one of the plurality of allocated pages, wherein an allocated page of the plurality of allocated pages having one or more codewords freed is allocated to a first processor of a plurality of processors;

incrementing a number of codewords free in the allocated page in the local linked list for the first processor;

determining whether the allocated page has any codewords allocated; and

returning the allocated page to a page pool, wherein the page pool is shared by the plurality of processors.

10. The method of claim 9 , wherein determining whether the allocated page has any codewords allocated includes determining that the first codeword free in the allocated page is equal to 0.

11. The method of claim 10 , wherein determining whether the allocated page has any codewords allocated includes determining that the number of codewords free in the allocated page is equal to the total number of codewords in the allocated page.

12. The method of claim 9 , wherein determining whether the allocated page has any codewords allocated includes determining that the number of codewords free in the allocated page is equal to the total number of codewords in the allocated page.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2017
From: DREYER, DAVID GEORGE; WENDZEL, KEVIN JAMES; GRONSETH, ALEX ROBERT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 042115/0692 →