Program Arrangement Method for Instruction Cache Conflict Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for reducing instruction cache conflicts in computer systems with small cache capacities are ineffective as they do not consider the granularity of cache line units, leading to frequent conflicts and slower program execution.

Innovation Solution

The method involves dividing functions into instruction code blocks equal to the cache line size, tracing call relations to create flow information, and calculating neighborhood weights to optimize the arrangement of functions in memory space, thereby minimizing cache conflicts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If functions are arranged in memory space without considering cache line granularity, then the arrangement process is simple, but instruction cache conflicts occur frequently

Engineering Contradiction:
Improvearrangement process complexityVSAvoidprogram execution speed
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent segments functions into instruction code blocks with sizes matching cache line units. This segmentation allows the arrangement method to consider cache line granularity, preventing instruction cache conflicts while maintaining systematic organization. The segmentation transforms the arrangement problem from function-level to cache-line-level, resolving the contradiction between arrangement simplicity and execution efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent changes the arrangement parameters from function-level metadata to cache line-level details including instruction code block sizes and addresses. By introducing neighborhood weight calculations based on call relations and cache line characteristics, the arrangement process optimizes for cache performance without excessive complexity, improving program execution speed.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If functions with high call frequency are arranged together to reduce conflicts, then cache line utilization improves, but memory space arrangement complexity increases

Engineering Contradiction:
Improvecache line utilization efficiencyVSAvoidarrangement calculation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces neighborhood weight as a feedback mechanism that quantifies call relations between functions. This feedback allows the arrangement method to systematically identify and prioritize high-call-frequency function pairs, arranging them to share cache lines effectively. The feedback-driven approach improves cache line utilization while keeping arrangement complexity manageable through automated calculation.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent transforms qualitative call relation information into quantitative neighborhood weight parameters. This parameter transformation enables systematic arrangement decisions based on calculated weights rather than heuristic methods, improving cache utilization efficiency while maintaining consistent and reproducible arrangement results.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If instruction code blocks are divided to match cache line size, then cache conflict reduction becomes effective, but program division and arrangement complexity increases

Engineering Contradiction:
Improvecache conflict reduction effectivenessVSAvoidprogram division complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments programs into instruction code blocks with sizes precisely matching cache line units. This segmentation is performed systematically based on instruction boundaries and call relation analysis, making the division process structured rather than arbitrary. The segmentation enables effective cache conflict reduction by ensuring each block maps to a single cache line, preventing conflicts while managing division complexity through systematic rules.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates a universal arrangement method that works across different programs and cache configurations by using standardized cache line size matching. This universal approach handles program division systematically, applying the same principles regardless of program structure, thereby reducing cache conflicts effectively while keeping division complexity manageable through consistent methodology.

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

Data Source

PatentUS8732687B2Arrangement method of programs to memory space, apparatus, and recording medium
Publication Date: 2014.05.20 NEC CORP
  • US8732687B2 patent drawing
  • US8732687B2 patent drawing
  • US8732687B2 patent drawing

AI summary

For a program that is made up of functions in units, each function is divided into instruction code blocks having a size CS where CS is the instruction cache line size of a target processor and an instruction code block that is Xth counting from the top of each function F is expressed as (F, X). Flow information of nodes that take (F, X) as identification names is extracted from an executable file of the function program. For each identification name, as neighborhood weight of each identification name that differs from that identification name, information for which that the frequency of appearance of each identification name is taken into consideration that belongs to a function that differs from that function in the neighborhood of each appearing node in the flow information is found. Based on said neighborhood weight information, the functions are arranged in the memory space such that the number of conflicts of said instruction cache is reduced.