Multicore Performance Simulation via Cache Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional techniques for calculating performance values of programs on multicore processors with shared cache memory suffer from reduced accuracy due to varying results from cache hits and misses based on the order of core access, especially when multiple cores access the same or close destinations.

Innovation Solution

A calculating device and method that executes simulations for each core, synchronizes these simulations, and corrects performance values by simulating cache operations after synchronization, ensuring accurate calculation of cache hits and misses.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If performance values are calculated for each core independently without synchronization, then calculation speed is improved, but accuracy of performance value calculation deteriorates due to incorrect cache hit/miss prediction

Engineering Contradiction:
Improvecalculation speedVSAvoidaccuracy of performance value calculation
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent performs preliminary actions by executing simulations for each core independently to obtain initial performance values and access instruction sequences. These preliminary simulation results are then used to determine the order of access instructions, which is subsequently used to synchronize the simulations and calculate accurate cache hit/miss predictions. This preliminary independent calculation enables later accurate synchronization without requiring complete dependency resolution beforehand.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements feedback by using the results of independent core simulations to determine the order of access instructions, which then feeds back into the synchronization process. The performance values and access patterns obtained from initial simulations are fed back to establish the correct execution order, allowing accurate cache simulation afterward. This feedback loop ensures that the synchronization uses actual observed behavior rather than assumptions.

Inventive Principle:
Principle #23Feedback

2Loss of time

If cache memory operation is simulated for each core independently, then simulation time is reduced, but correctness of cache hit/miss determination deteriorates

Engineering Contradiction:
Improvesimulation timeVSAvoidcorrectness of cache hit/miss determination
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The patent segments the simulation process into two distinct phases: first, independent simulations for each core to obtain performance values and access instruction sequences; second, synchronized simulation of cache memory operations using the determined order of access instructions. This segmentation allows the first phase to run quickly without correctness constraints, while the second phase ensures correctness by using the order information from the first phase. The segmentation resolves the contradiction by separating speed-oriented and correctness-oriented operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary simulation of each core's execution to determine the order of access instructions before performing the cache memory operation simulation. This preliminary action captures the execution sequence without immediately simulating cache effects, allowing fast independent simulation followed by accurate synchronized cache simulation. The preliminary determination of access order enables correct cache simulation without requiring simultaneous execution tracking.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If access instructions from multiple cores are executed in parallel without synchronization, then execution efficiency is improved, but accuracy of performance evaluation deteriorates due to race conditions in shared cache memory

Engineering Contradiction:
Improveexecution efficiencyVSAvoidaccuracy of performance evaluation
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The patent executes access instructions from multiple cores in parallel during the preliminary simulation phase to determine their execution order. This preliminary parallel execution captures the race condition behavior and determines the correct sequence in which access instructions should be processed. The determined order is then used in the second phase to synchronize cache memory operations, ensuring accurate performance evaluation while maintaining the efficiency of parallel execution in the first phase.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses feedback from parallel execution to determine the correct order of access instructions. By observing which core's access instruction executes first in the parallel simulation, the system feeds back this ordering information to the synchronization mechanism. This feedback ensures that the subsequent cache memory simulation respects the actual execution order, resolving the accuracy issue while maintaining parallel execution efficiency in the preliminary phase.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10402510B2Calculating device, calculation method, and calculation program
Publication Date: 2019.09.03 FUJITSU LTD
  • US10402510B2 patent drawing
  • US10402510B2 patent drawing
  • US10402510B2 patent drawing

AI summary

A calculating device including; a controller configured to execute, for a multicore processor, a first calculation process of calculating a first performance value of a first code executed by the first core and including a first access instruction by executing a first simulation, a second calculation process of calculating a second performance value of a second code executed by the second core and including a second access instruction by executing a second simulation, a synchronization process of synchronizing the first and the second simulations when the first access instruction is executed in the first simulation, and a correction process of correcting the first performance value, by executing a third simulation to simulate an operation of the cache memory when the first core accesses the main memory through the cache memory in accordance with the first access instruction, after the synchronization by the synchronization process.