Adaptive Core Grouping for Multi-Processor Cache Hit Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-core processor systems, the random assignment of data packets to processing cores leads to decreased performance due to frequent cache misses, as processors often need to access slower L2 caches or memory instead of faster L1 caches, which are limited in size and expensive.

Innovation Solution

A method and system where data packets are routed to processors optimized for specific tasks, with program code stored in the L1 cache, allowing for increased cache hit rates and efficient processing by dynamically assigning processors based on workload and task requirements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If data packets are randomly assigned to processing cores, then packet distribution is simple, but cache hit rate decreases and processing performance slows down

Engineering Contradiction:
Improvepacket assignment simplicityVSAvoidprocessing throughput
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system dynamically assigns packets to processor cores based on the packet type and the processing tasks required, rather than using static random assignment. The task assignment unit selects processor cores that have the appropriate program code in their L1 caches, making the assignment adaptive and dynamic to maximize cache hit rates and processing throughput.

Inventive Principle:
Principle #15Dynamics

2Productivity

If L1 cache size is increased to improve cache hit rate, then processing speed improves, but cost increases due to expensive high-speed memory

Engineering Contradiction:
Improvecache hit rateVSAvoidL1 cache memory capacity
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

Each processor core is equipped with an L1 cache that can store program code for multiple different packet processing tasks, not just a single dedicated task. This multi-functionality allows the L1 cache to serve various processing needs without requiring separate caches for each task, thereby improving cache hit rates without proportionally increasing total L1 cache capacity across the system.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The system pre-loads the appropriate program code into the L1 cache of selected processor cores before packets requiring those tasks arrive. The task assignment unit identifies which processor cores have the required code in their L1 caches and assigns packets to those cores, ensuring the code is already cached and ready for immediate execution, thus achieving high cache hit rates without needing large L1 caches.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If processor cores access L2 cache or memory instead of L1 cache, then more program code is available, but processing speed decreases significantly

Engineering Contradiction:
Improveprogram code availabilityVSAvoidprocessing speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The task assignment unit monitors which processor cores have which program code in their L1 caches and uses this feedback information to make intelligent assignment decisions. When a packet requires specific processing tasks, the system queries which cores have the corresponding code cached and assigns the packet to one of those cores, ensuring that the required program code is already in the fast L1 cache rather than needing to be fetched from slower L2 cache or memory.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10198262B2Adaptive core grouping
Publication Date: 2019.02.05 QUEST SOFTWARE INC
  • US10198262B2 patent drawing
  • US10198262B2 patent drawing
  • US10198262B2 patent drawing

AI summary

The present invention relates to a system, method, and non-transitory storage medium executable by one or more processors at a multi-processor system that improves load monitoring and processor-core assignments as compared to conventional approaches. A method consistent with the present invention includes a first data packet being received at a multi-processor system. After the first packet is received it may be sent to a first processor where the first processor identifies a first processing task associated with the first data packet. The first data packet may then be forwarded to a second processor that is optimized for processing the first processing task of the first data packet. The second processor may then process the first processing task of the first data packet. Program code associated with the first processing task may be stored in a level one (L1) cache at the first processor.