Control Transfer Table Structuring for Cache Miss Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Control transfer tables induce performance overhead due to inefficient memory hierarchy utilization, particularly in cache-hungry applications, leading to increased cache misses and page faults, as they are randomly generated and lack compiler control during construction.
Innovation Solution
A software tool structures control transfer tables based on entry hotness and architectural characteristics, regrouping entries to prioritize frequently accessed ones and minimize conflicts, using profile information to optimize memory access patterns.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If control transfer tables are randomly generated, then flexibility is provided, but memory hierarchy utilization becomes inefficient leading to increased cache misses
Solution Approach 1:
The linker performs preliminary structuring of the control transfer table by ordering entries based on profile information about execution frequency before the program runs. This preliminary organization of hot entries near each other reduces cache misses during execution without requiring runtime intervention.
Solution Approach 2:
The invention changes the arrangement parameter of control transfer table entries from random to ordered based on profile information. By reordering entries according to their execution frequency (hotness), the system optimizes memory hierarchy utilization while maintaining flexibility through profile-driven organization.
2Productivity
If control transfer tables are structured by hotness, then cache misses are reduced, but entry organization complexity increases
Solution Approach 1:
The complex task of optimizing entry organization is performed in advance by the linker during the linking stage, using profile information to determine entry order. This shifts the complexity from runtime to build time, where profile data is already available, avoiding the need for complex runtime analysis.
Solution Approach 2:
The system uses profile information as a template or copy to guide the structuring process. Instead of analyzing actual runtime behavior in detail, the linker copies the organizational pattern from pre-collected profile data about execution frequency, simplifying the structuring task while achieving optimal cache performance.
3Quantity of substance
If control transfer tables span multiple memory pages, then larger tables are supported, but page faults increase due to sparse hot entries
Solution Approach 1:
The control transfer table is segmented into memory pages, and the invention applies different organization strategies to different segments. By concentrating hot entries in specific pages and ordering them optimally, the system reduces the impact of page faults even when the overall table spans multiple pages.
Solution Approach 2:
The invention changes the distribution parameter of entries across memory pages by ordering hot entries to fit within fewer pages or concentrate them in specific pages. This parameter change reduces the number of active pages and consequently reduces page faults while supporting large table sizes.
Data Source
AI summary
It has been discovered that a control transfer table can be structured to reduce the overhead resulting from its use (e.g., misses from accessing the control transfer table). Entries of a control transfer table (e.g., a jump table or a procedure linkage table) can be organized in accordance with their respective use frequencies, as well as other parameters. For example, entries can be organized in a manner that would group the most frequently used entries, thus facilitating their contemporaneous availability in a memory (e.g., cache). The use frequencies may be determined from profile information for a code that references the control transfer table.


