IP Library › Granted Patent US 12,346,748
Granted Patent B2
US 12,346,748 · App. 17/697,737 · Granted Jul 1, 2025

Determination of workload distribution across processors in a memory system

Inventor: Alex Frolikov (San Jose, CA)
Assignee: Micron Technology, Inc.
G06F9/5083G06F9/4881
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,346,748
App. No.
17/697,737
Filed
Mar 17, 2022
Granted
Jul 1, 2025
Kind
B2
Art Unit
2400
USPC
718/105
Abstract

A memory system having a set of media, a set of resources, and a controller configured via firmware to use the set of resources in processing requests from a host system to store data in the media or retrieve data from the media. The memory system has a workload manager that analyzes activity records in an execution log for a time period where each of the activity records can indicate whether a processor of the controller is in an idle state during a time slot in the time period. The workload manager identifies idle time slots within the time period during which time slots one or more lightly-loaded processors in the plurality of processors are in the idle state, and adjusts a configuration of the controller to direct tasks from one or more heavily-loaded processors to the one or more lightly-loaded processors.

Claims (40)

1. A memory system, comprising:

a set of media; and

a controller having a plurality of processors, configured to perform tasks to process requests from a host system to store data in the media or retrieve data from the media;

wherein a workload manager analyzes activity records in an execution log for a time period, identifies idle time slots within the time period during which time slots one or more first processors in the plurality of processors are in idle state, and adjusts a configuration of the controller to direct tasks from one or more second processors to the one or more first processors to reduce total idle time slots among the plurality of processors.

2. The memory system of claim 1 , wherein the set of media includes a flash memory.

3. The memory system of claim 2 , wherein the memory system is a solid state drive.

4. The memory system of claim 1 , wherein the workload manager balances idle time slots among the plurality of processors.

5. The memory system of claim 1 , wherein the workload manager reduces or eliminates a total idle time slots among the plurality of processors.

6. The memory system of claim 1 , wherein each of the processors has one or more running instances of task managers of different types; and the workload manager counts idle time slots of the running instances to estimate workloads of different types of tasks.

7. The memory system of claim 5 , wherein the workload manager adjusts the configuration by adding, in the one or more first processors, a running instance of a task manager that has a running instance in the one or more second processors.

8. The memory system of claim 5 , wherein the workload manager adjusts the configuration by changing a ratio for assigning tasks between a running instance of a task manager in the one or more first processors and a running instance of the task manager in the one or more second processors.

9. The memory system of claim 1 , wherein the workload manager identifies the one or more second processors having fewer idle time slots in the time period than the one or more first processors.

10. The memory system of claim 9 , wherein the workload manager determines workloads of the plurality of processors based on percentages of idle time slots in the time period.

11. A method, comprising:

providing a set of media and a controller in a memory system, the controller having a plurality of processors, configured to perform tasks to process requests from a host system to store data in the media or retrieve data from the media;

analyzing, by a workload manager of the memory system, activity records in an execution log for a time period, each of the activity records indicating whether a processor of the controller is in an idle state during a time slot in the time period;

identifying, by workload manager, idle time slots within the time period during which time slots one or more first processors in the plurality of processors are in the idle state; and

adjusting, by the workload manager, a configuration of the controller to direct tasks from one or more second processors to the one or more first processors to reduce total idle time slots among the plurality of processors.

12. The method of claim 11 , wherein the set of media includes a flash memory;

and the memory system is a solid state drive.

13. The method of claim 11 , further comprising:

balancing or eliminating idle time slots among the plurality of processors.

14. The method of claim 11 , wherein each of the processors has one or more running instances of task managers of different types; and method further comprises:

counting idle time slots of the running instances to estimate workloads of different types of tasks.

15. The method of claim 14 , wherein the adjusting the configuration includes:

adding, in the one or more first processors, a running instance of a task manager that has a running instance in the one or more second processors.

16. The method of claim 14 , wherein the adjusting the configuration includes:

changing a ratio for assigning tasks between a running instance of a task manager in the one or more first processors and a running instance of the task manager in the one or more second processors.

17. The method of claim 11 , further comprising:

identifying the one or more second processors having no idle time slots or having fewer idle time slots in the time period than the one or more first processors.

18. The method of claim 17 , further comprising:

determining workloads of the plurality of processors based on percentages of idle time slots in the time period.

19. A non-transitory computer storage medium storing instructions which, when executed by a memory system having a set of media and a controller having a plurality of processors, cause the memory system to perform a method, the method comprising:

running instances of task managers of different types in the plurality of processors, each of the task manager configured to perform a type of tasks in processing requests from a host system to store data in the media or retrieve data from the media;

analyzing activity records in an execution log for a time period, each of the activity records indicating whether a processor of the controller is in an idle state during a time slot in the time period; and

identifying idle time slots within the time period during which time slots one or more first processors in the plurality of processors are in the idle state;

identifying the one or more second processors having no idle time slots or having fewer idle time slots in the time period than the one or more first processors; and

adjusting a configuration of the controller to direct tasks from the one or more second processors to the one or more first processors to reduce or eliminate total idle time slots among the plurality of processors.

20. The non-transitory computer storage medium of claim 19 , wherein the method further comprises:

counting idle time slots of the running instances to estimate workloads of the different types of task managers.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 17, 2022
From: FROLIKOV, ALEX
To: MICRON TECHNOLOGY, INC.
Reel/Frame 059299/0490 →
Continuity (2)
Continuation 15945533 · Apr 4, 2018
Related Publication 20220206874A1 · Jun 30, 2022
References Cited (16)
US 6292875B1 · Tanaka · 2001 [cited by examiner]
US 11281501B2 · Frolikov · 2022 [cited by applicant]
US 20050086359A1 · Banerjee · 2005 [cited by examiner]
US 20060005082A1 · Fossum et al. · 2006 [cited by applicant]
US 20060259621A1 · Ranganathan et al. · 2006 [cited by applicant]
US 20070233843A1 · Frey-ganzel et al. · 2007 [cited by applicant]
US 20110302586A1 · Chung · 2011 [cited by examiner]
US 20120131594A1 · Morgan · 2012 [cited by examiner]
US 20120192200A1 · Rao et al. · 2012 [cited by applicant]
US 20130042123A1 · Smith · 2013 [cited by examiner]
US 20130227236A1 · Flynn et al. · 2013 [cited by applicant]
US 20150007185A1 · Dey et al. · 2015 [cited by applicant]
US 20170220384A1 · Anderson et al. · 2017 [cited by applicant]
US 20180018101A1 · Benisty · 2018 [cited by examiner]
US 20190310892A1 · Frolikov · 2019 [cited by applicant]
Title: Determination of Workload Distribution across Processors in a Memory System, U.S. Appl. No. 15/945,533, filed Apr. 4, 2018, Inventor: Alex Frolikov, Status: Patented Case, Status Date: May 24, 2021. [cited by applicant]