# US 2022/0035679 A1 · Hardware resource configuration for processing system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2022/0035679 A1
- Document ID: US20220035679A1
- Status: Published application
- Kind: A1
- Application number: 16/943,117
- Filed: 2020-07-30
- Published: 2022-02-03
- Earliest claimed: 2020-07-30
- Assignees: Arm Limited
- Applicants: Arm Limited
- Inventors: Dam SUNWOO; Supreet JELOKA; Saurabh Pijuskumar SINHA; Jaekyu LEE; Jose Alberto JOAO; Krishnendra NATHELLA
- Web page: https://patentgrep.com/patent/US20220035679A1

## CPC

- G06F 9/5044: {considering hardware capabilities}
- G06N 20/20: Ensemble learning
- G06F 9/5038: {considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups)}
- G06F 9/505: {considering the load}
- G06N 3/0499: Feedforward networks
- G06N 3/09: Supervised learning
- G06N 5/04: Inference or reasoning models
- G06N 20/00: Machine learning
- G06N 3/04: Architecture, e.g. interconnection topology
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06N: COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS

## Abstract

A method for controlling hardware resource configuration for a processing system comprises obtaining performance monitoring data indicative of processing performance associated with workloads to be executed on the processing system, providing a trained machine learning model with input data depending on the performance monitoring data; and based on an inference made from the input data by the trained machine learning model, setting control information for configuring the processing system to control an amount of hardware resource allocated for use by at least one processor core. A corresponding method of training the model is provided. This is particularly useful for controlling inter-core borrowing of resource between processor cores in a multi-core processing system, where resource is borrowed between respective cores, e.g. cores on different layers of a 3D integrated circuit.

## Claims

### Claim 1

A computer-implemented method for controlling hardware resource configuration for a processing system comprising at least one processor core; the method comprising:
obtaining performance monitoring data indicative of processing performance associated with workloads to be executed on the processing system;
providing input data to a trained machine learning model, the input data depending on the performance monitoring data; and
based on an inference made from the input data by the trained machine learning model, setting control information for configuring the processing system to control an amount of hardware resource allocated for use by the at least one processor core.

### Claim 2 (depends on 1)

The method of claim 1, in which:
the processing system comprises a plurality of processor cores and is configured to support a first processor core processing a workload using borrowed hardware resource of a second processor core; and
the control information is set based on the inference, to control an amount of inter-core borrowing of hardware resource between the plurality of processor cores.

### Claim 3 (depends on 1)

The method of claim 1, in which:
in at least one configuration selectable based on the inference made by the trained machine learning mode, a first subset of hardware resource of a given processor core is allocated for use by the given processor core, and a second subset of hardware resource of the given processor core is not allocated for use by the given processor core.

### Claim 4 (depends on 1)

The method of claim 1, in which the processing system comprises a plurality of processor cores and the input data for the trained machine learning model is dependent on a first set of performance monitoring data corresponding to a first workload to be executed on a first processor core and a second set of performance monitoring data corresponding to a second workload to be executed on a second processor core.

### Claim 5 (depends on 1)

The method of claim 1, in which the processing system comprises a plurality of processor cores and the input data for the trained machine learning model comprises at least one event count difference value, each event count difference value indicative of a difference between corresponding performance counter values obtained for a first workload to be executed on a first processor core and a second workload to be executed on a second processor core.

### Claim 6 (depends on 5)

The method of claim 5, in which the method comprises reading the at least one event count difference value from at least one event count difference storage element provided in hardware in the processing system, the processing system comprising hardware circuit logic to maintain the at least one event count difference value stored in the at least one event count difference storage element.

### Claim 7 (depends on 5)

The method of claim 5, in which the input data for the trained machine learning model also comprises at least one event count magnitude value indicative of a magnitude of at least one of the corresponding performance counter values.

### Claim 8 (depends on 1)

The method of claim 1, comprising selecting a group of workloads to execute in parallel on respective processor cores of the processing system, based on at least one selection criterion which favours grouping together of workloads for which the performance monitoring data indicates that the workloads have differing performance or resource utilisation requirements.

### Claim 9 (depends on 1)

The method of claim 1, in which the input data for the trained machine learning model also comprises one or more of:
a workload identifier identifying at least one workload to be executed on the processing system; and
a workload type indication indicative of a workload type of said at least one workload.

### Claim 10 (depends on 1)

The method of claim 1, in which the processing system is configured to support a plurality of alternative hardware resource configurations corresponding to different allocations of hardware resource to the at least one processor core; and
the inference made by the trained machine learning model comprises a configuration suitability indication indicative of at least one of a plurality of alternative hardware resource configurations as a suitable hardware resource configuration for executing at least one workload.

### Claim 11 (depends on 1)

The method of claim 1, in which the inference is capable of indicating two or more alternative hardware resource configurations as each being suitable hardware resource configurations for executing at least one workload.

### Claim 12 (depends on 11)

The method of claim 11, comprising:
in response to determining that the inference indicates at least two alternative hardware resource configurations as each being suitable hardware resource configurations for executing the at least one workload, selecting between said at least two alternative hardware resource configurations based on at least one selection criterion,
where the at least one selection criterion includes at least one of:
a first selection criterion to prioritise selection of one of said at least two alternative hardware resource configurations with lower expected power consumption in preference to another of said at least two alternative hardware resource configurations with higher expected power consumption;
a second selection criterion to prioritise selection of one of said at least two alternative hardware resource configurations with higher expected performance in preference to another of said at least two alternative hardware resource configurations with lower expected performance;
a third selection criterion to prioritise selection of one of said at least two alternative hardware resource configurations with a greater amount of inter-core borrowing of hardware resources in preference to another of said at least two alternative hardware resource configurations with a smaller amount of inter-core borrowing of hardware resources;
a fourth selection criterion to prioritise selection of one of said at least two alternative hardware resource configurations with a smaller amount of inter-core borrowing of hardware resources between processor cores in preference to another of said at least two alternative hardware resource configurations with a greater amount of inter-core borrowing of hardware resources between processor cores; and
a fifth selection criterion to prioritise selection of one of said at least two alternative hardware resource configurations which requires less change in hardware resource configuration relative to a current hardware resource configuration in preference to another of said at least two alternative hardware resource configurations which requires more change in hardware resource configuration relative to the current hardware resource configuration.

### Claim 13 (depends on 1)

The method of claim 1, in which the control information comprises configuration parameters for controlling allocation of at least two different types of hardware resource of the processing system.

### Claim 14 (depends on 1)

The method of claim 1, in which the control information specifies configuration of at least one type of hardware resource, said at least one type of hardware resource comprising one or more of:
instruction queue storage capacity;
fetch, decode or issue slots for fetching, decoding or issuing an instruction;
at least one execution unit for executing processing operations in response to instructions;
MAC units;
shader cores;
register storage;
reorder buffer capacity in a reorder buffer for tracking commitment of instructions executed out-of-order in an out-of-order processing pipeline;
cache storage capacity;
tightly coupled memory;
buffers;
translation lookaside buffer storage capacity; and
branch prediction state storage capacity.

### Claim 15 (depends on 1)

The method of claim 1, in which the processing system comprises a plurality of processor cores on different layers of a three-dimensional integrated circuit.

### Claim 16 (depends on 2)

The method of claim 2, in which the processing system comprises three or more processor cores;
the processing system is configured to support a plurality of alternative hardware resource configurations corresponding to different amounts of inter-core borrowing of hardware resources between the plurality of processor cores; and
the plurality of alternative hardware resource configurations restrict borrowing of resource between respective pairs of processor cores to limit which pairs or groups of processor cores are allowed to borrow hardware resource from each other when the processing system is operating in a state in which the three or more processor cores are configured to execute at least two distinct workloads.

### Claim 17 (depends on 1)

A non-transitory storage medium storing a computer program for controlling a processing system to perform the method of claim 1.

### Claim 18

A computer-implemented training method for training a machine learning model for controlling hardware resource configuration for a processing system comprising at least one processor core; the method comprising:
for each of a plurality of workloads or groups of workloads selected as a selected workload or selected group of workloads, performing a training operation comprising:
obtaining performance monitoring data indicative of processing performance for the selected workload or selected group of workloads when processed in a plurality of different hardware resource configurations of at least one processor core, the plurality of hardware resource configurations including hardware resource configurations in which different amounts of hardware resource are made available for use when processing the selected workload or selected group of workloads;
training the machine learning model to adapt model parameters for the machine learning model based on the performance monitoring data for the selected workload or selected group of workloads and the plurality of different hardware resource configurations; and
recording trained model parameters for the machine learning model resulting from the training operation performed for the plurality of workloads or groups of workloads.

### Claim 19 (depends on 18)

A non-transitory storage medium storing a computer program for controlling a processing system to perform the method of claim 18.

### Claim 20

A processing system comprising:
at least one processor core;
performance monitoring circuitry to obtain performance monitoring data indicative of processing performance associated with workloads to be executed on the processing system; and
configuration control circuitry to set, based on an inference made by a trained machine learning model from input data depending on the performance monitoring data, control information for controlling an amount of hardware resource allocated for use by the at least one processor core.
