Unified Cache Code Data Prioritization via Partitioning
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing cache designs face challenges in efficiently managing large code and data footprints in unified caches, leading to code vs. data contention and inefficient prioritization, which affects performance in applications like Hadoop and web search applications.
Innovation Solution
Implementing separate fill partitions for code and data within a unified cache using hardware support, with dynamic reassignment of cache resources and capacity bit masks to prioritize applications, allowing for per-class-of-service (CLOS) isolation or overlap of code and data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If a unified cache is used to store both code and data, then cache capacity is maximized, but code vs. data contention occurs leading to inefficient prioritization
Solution Approach 1:
The unified cache is segmented into separate fill partitions for code and data using hardware support. Capacity bit masks are used to define which cache ways are allocated to code versus data for each class of service, enabling independent management and prioritization while maintaining overall cache capacity utilization.
2Productivity
If separate caches for code and data are implemented, then code vs. data contention is eliminated, but device complexity increases
Solution Approach 1:
Separate code and data fill partitions are merged within a single unified cache structure rather than implementing completely separate physical caches. This combination maintains the benefits of reduced contention while avoiding the complexity of multiple independent cache systems, using capacity bit masks to manage the merged structure.
3Adaptability or versatility
If dynamic reassignment of cache resources is implemented, then adaptability to different applications is improved, but control complexity increases
Solution Approach 1:
The cache allocation is made dynamic through software-configurable capacity bit masks that can be reassigned based on application priorities and workload characteristics. The system can adapt to different application requirements by dynamically adjusting the code versus data partitioning without requiring complex control logic, as the reassignment is driven by software configuration rather than complex hardware control mechanisms.
Data Source
AI summary
Systems and methods for cache allocation with code and data prioritization. An example system may comprise: a cache; a processing core, operatively coupled to the cache; and a cache control logic, responsive to receiving a cache fill request comprising an identifier of a request type and an identifier of a class of service, to identify a subset of the cache corresponding to a capacity bit mask associated with the request type and the class of service.


