Data Space Profiling for Multi-Core Processor Memory Bottlenecks

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional profiling tools fail to effectively detect bottlenecks related to memory systems in modern multi-core, multi-threaded processor systems, as they focus on instruction execution rather than data movement, and lack the ability to provide context-specific data on hardware and software execution costs.

Innovation Solution

A system and method for data space profiling that involves sampling request and reply messages to detect runtime system events, such as remote memory access or cache-to-cache transfers, and associating these events with source type information to identify performance bottlenecks, allowing for targeted optimization of application code and memory hierarchy.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional instruction-centric profiling tools are used, then instruction execution costs can be measured, but memory system bottlenecks and data motion costs cannot be effectively detected

Engineering Contradiction:
Improvememory system bottleneck detectionVSAvoidprofiling tool applicability
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The patent inverts the traditional profiling approach by shifting focus from instruction-centric to data space-centric monitoring. Instead of tracking what instructions are executed, the system monitors what data is accessed and how it moves through the memory hierarchy, using reply messages from memory subsystems to trigger profiling events that reveal memory bottleneck characteristics

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The patent introduces reply messages as an intermediary mechanism between the memory subsystem and profiling tools. These messages carry source type information that acts as a mediator, translating internal memory subsystem operations into observable profiling events that can be correlated with application behavior without requiring direct access to memory controller internals

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If code instrumentation techniques are used to profile application behavior, then execution characteristics can be sampled, but program behavior may be altered and overhead is imposed

Engineering Contradiction:
Improveexecution characteristics samplingVSAvoidoriginal program behavior
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The memory subsystem performs self-service profiling by automatically generating reply messages that contain source type information. This eliminates the need for external instrumentation in the application code, as the memory subsystem itself provides the profiling data through its normal operation, ensuring the application behavior remains unaltered

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

Reply messages serve as an intermediary that carries profiling information from the memory subsystem without requiring modification of the application code. This mediator approach allows execution characteristics to be sampled while maintaining the integrity of the original program behavior

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If hardware event counters are used for profiling, then some aspects can be off-loaded to dedicated hardware, but context-specific data on hardware and software execution costs is not provided

Engineering Contradiction:
Improveprofiling data collection efficiencyVSAvoidcontext-specific execution cost data
Core Design Contradiction:
ProductivityVSLoss of information

Solution Approach 1:

The patent segments profiling information by source type, categorizing memory accesses into different types (e.g., cache hits, cache misses, remote memory accesses) based on source type information in reply messages. This segmentation allows efficient hardware-based counting while preserving detailed context-specific information about each access type's cost and characteristics

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the parameter being monitored from generic event counts to source type-specific metrics. By extracting and analyzing source type information from reply messages, the system transforms raw hardware event data into context-rich profiling information that distinguishes between different kinds of memory operations and their respective costs

Inventive Principle:
Principle #35Parameter changes

4Speed

If multi-threaded cores are used to hide data latency, then throughput performance can be improved, but data motion constraints still limit achievable gain

Engineering Contradiction:
Improvethroughput performanceVSAvoiddata movement waiting time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent applies partial profiling by focusing specifically on data motion events rather than profiling all instruction execution. By selectively monitoring reply messages that indicate data movement bottlenecks, the system identifies the portion of execution time lost to data motion without the overhead of comprehensive instruction-level profiling, enabling targeted optimization of the limiting factor

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8762951B1Apparatus and method for profiling system events in a fine grain multi-threaded multi-core processor
Publication Date: 2014.06.24 SUN MICROSYSTEMS INC
  • US8762951B1 patent drawing
  • US8762951B1 patent drawing
  • US8762951B1 patent drawing

AI summary

A system and method for profiling runtime system events of a computer system may include associating a data source type with detected system events. The system events may be detected dependent on information included in a reply message received by a processor in response to a data request or other transaction request message. The reply message may include information characterizing a source type of a source of data included in the reply message. The source type information may indicate that the source is remote or local; that it is a shared or a private storage location; that the data is supplied via a cache-to-cache transfer; or that the data is sourced from a coherency domain other than that of the requesting process. Instructions, events, messages, and replies may be sampled, and extended address information corresponding to the samples may be stored in an event set database for performance analysis.