IP Library Granted Patent US 12,443,443
Granted Patent B2
US 12,443,443 · App. 16/799,745 · Granted Oct 14, 2025

Workload scheduler for memory allocation

Inventors: Yipeng Wang (Portland, OR); Ren Wang (Portland, OR); Tsung-Yuan C. Tai (Portland, OR); Yifan Yuan (Champaign, IL); Pravin Pathak (Bridgewater, NJ); Sundar Vedantham (Allentown, PA); Chris MacNamara (Limerick, IE)
Assignee: SK Hynix NAND Product Solutions Corp.
G06F9/5016G06F12/023G06F12/0253G06F12/0862G06F2212/1044G06F2212/602
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 12,443,443
App. No.
16/799,745
Granted
Oct 14, 2025
Kind
B2
Abstract

Examples described herein relate to a work scheduler that includes at least one processor and at least one queue. In some examples, the work scheduler receives a request to allocate a region of memory and based on availability of a memory segment associated with a central cache to satisfy the request to allocate a region of memory, provide a memory allocation using an available memory segment entry associated with the central cache from the at least one queue. In some examples, the work scheduler assigns a workload to a processor and controls when to pre-fetch content relevant to the workload to store in a cache or memory accessible to the processor based on a position of the workload in a work queue associated with the processor.

Claims (23)

1. An apparatus comprising:

an interface;

circuitry, coupled to the interface, the circuitry comprising a processor, the circuitry to:

cause pre-fetch of packet data and content associated with a workload to be stored in a cache accessible to the processor core based on a position of an identifier of the workload in a work queue associated with the processor, wherein the pre-fetch of the packet data causes copying of the packet data into the cache before processing of the packet data by the workload, wherein the pre-fetch of the content causes copying of: a software environment to process the packet data, cryptographic keys used to process the packet data, and instructions executed to process the packet data, and wherein the packet data associated with the workload includes packet payload and packet connection context; and

a second circuitry to determine whether to permit eviction or not permit eviction of the pre-fetched packet data in the cache based at least in part on a position of the identifier of the workload in the work queue.

2. The apparatus of claim 1 , wherein the circuitry is to pre-fetch the packet data associated with the workload by accessing a look-up table to determine one or more memory locations of packet data associated with the workload.

3. The apparatus of claim 1 , wherein the circuitry is to update the position of the identifier of the workload in the work queue based on completion of another workload identified in the work queue.

4. The apparatus of claim 1 , wherein based on the position of the identifier of the workload, the circuitry is to cause a pre-fetch of the packet data associated with the workload to store in the cache accessible to the processor core.

5. The apparatus of claim 1 , wherein the second circuitry is to prevent the packet data associated with the workload from being evicted from the cache based on the position of the identifier of the workload within an offset from a head of the work queue.

6. The apparatus of claim 1 , comprising a central processing unit (CPU) to offload data processing scheduling to the circuitry.

7. The apparatus of claim 1 , further comprising a server, data center, or rack, wherein the server, data center, or rack comprises a central processing unit (CPU) to offload work scheduling to the circuitry.

8. The apparatus of claim 1 , wherein the circuitry is to not cause pre-fetch of packet data that is stored in the cache.

9. The apparatus of claim 1 , wherein the workload comprises a packet processing workload based on Network Function Virtualization (NFV), software-defined networking (SDN), or virtualized network function (VNF).

10. The apparatus of claim 1 , wherein the packet data associated with the workload includes packet context comprising one or more of: Media Access Control (MAC) context information, Internet Protocol (IP) context information, or application context information.

11. The apparatus of claim 1 , wherein the second circuitry is to assign a priority level to the packet data in the cache based on the position indicator, wherein a high priority level is associated with the position indicator associated with a head of the work queue and a low priority level is associated with the position indicator associated with a bottom of the work queue, and wherein permission to evict the packet data is inverse to the priority level.

12. A method comprising:

assigning, using an offload circuitry, a workload to a processor;

the offload circuitry causing pre-fetch of packet data and content associated with the workload to a memory accessible to the processor based on a position of an identifier of the workload in a work queue associated with the processor, wherein the pre-fetched packet data associated with the workload includes packet payload and packet connection context, and the pre-fetched content includes a software environment to process the packet data, cryptographic keys, and instructions executed to process the packet data; and

adjusting an ability to evict at least a portion of the packet data associated with the workload from the memory, based on a change in the position of the identifier of the workload in the work queue, wherein the adjusting the ability to evict the at least a portion of the packet data associated with the workload comprises setting the ability to not evict based on the position of the identifier of the workload in the work queue being within an offset from a head of the work queue.

13. The method of claim 12 , comprising:

updating the position of the identifier of the workload in the work queue based on completion of another workload identified in the work queue.

14. The method of claim 12 , comprising:

reassigning the workload to another work queue based on load balancing of work among the processor and at least one other processor.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2025
From: INTEL CORPORATION
To: SK HYNIX NAND PRODUCT SOLUTIONS CORP. (DBA SOLIDIGM)
Reel/Frame 072549/0289 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 11, 2020
From: WANG, YIPENG; WANG, REN; TAI, TSUNG-YUAN C.; YUAN, YIFAN; PATHAK, PRAVIN; VEDANTHAM, SUNDAR; MACNAMARA, CHRIS
To: INTEL CORPORATION
Reel/Frame 053452/0668 →
Continuity (1)
Related Publication 20200192715A1 · Jun 18, 2020
References Cited (23)
US 10951525B2 · Vasudevan · 2021 [cited by applicant]
US 11573816B1 · Featonby · 2023 [cited by examiner]
US 20030163608A1 · Tiwary · 2003 [cited by examiner]
US 20080188209A1 · Dorogusker · 2008 [cited by examiner]
US 20080222343A1 · Veazey · 2008 [cited by examiner]
US 20110072218A1 · Manne · 2011 [cited by examiner]
US 20130268700A1 · Fuhs · 2013 [cited by examiner]
US 20130326113A1 · Wakrat · 2013 [cited by examiner]
US 20140164711A1 · Loh · 2014 [cited by examiner]
US 20150081726A1 · Izenberg · 2015 [cited by examiner]
US 20170286337A1 · Wang et al. · 2017 [cited by applicant]
US 20180335824A1 · MacNamara · 2018 [cited by examiner]
US 20190116127A1 · Pismenny · 2019 [cited by examiner]
US 20190121781A1 · Kasichainula · 2019 [cited by examiner]
US 20190243685A1 · Bernat et al. · 2019 [cited by applicant]
US 20190253357A1 · Pathak et al. · 2019 [cited by applicant]
US 20190317802A1 · Bachmutsky et al. · 2019 [cited by applicant]
Berger, Emery, D., et. al., “Hoard: A Scalable Memory Allocator for Multithreaded Applications”, Copyright 2000 ACM, 12 pages. [cited by applicant]
Evans, Jason, “A Scalable Concurrent malloc(3) Implementation for FreeBSD”, Apr. 16, 2006, 14 pages. [cited by applicant]
Ghemawat, Sanjay, et.al., “TCMalloc : Thread-Caching Malloc”, http://goog-perftools.sourceforge.net/doc/tcmalloc.html, downloaded from the Internet Jul. 8, 2022, 5 pages. [cited by applicant]
Kanev, Svilen, et. al., “Profiling a warehouse-scale computer”, ISCA'15, Jun. 13-17, 2015, Portland, OR USA, 12 pages. [cited by applicant]
Kennelly, Chris, “Announcing TCMalloc”, Abseil Blog, https://abseil.io/blog/20200212-tcmalloc, Feb. 12, 2020, 5 pages. [cited by applicant]
Maas, Martin, et. al., “A Hardware Accelerator for Tracing Garbage Collection”, Appears in the Proceedings of the 45th ACM/IEEE International Symposium on Computer Architecture 2018 IEEE, 14 pages. [cited by applicant]