Task-Based Cache Isolation Using Mask Descriptors
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In complex computing systems, especially those with safety-critical tasks like self-driving vehicle control, conventional cache locking mechanisms can lead to insufficient protection of safety-critical data and decreased performance due to unpredictable cache location and increased complexity.
Innovation Solution
A method and system for task-based cache isolation using mask descriptors and identifiers, where a cache controller stores mask descriptors representing cache portions, generates index identifiers based on memory addresses and mask descriptors, and applies memory transactions to specific cache elements, ensuring isolation and efficient access.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If conventional cache locking mechanisms are used to protect safety-critical data, then data protection is improved, but device complexity increases and protection becomes insufficient due to unpredictable cache locations
Solution Approach 1:
The cache is segmented into multiple regions, each associated with a specific task or process. Mask descriptors divide the cache into protected and non-protected portions, allowing safety-critical data to be isolated in specific segments. This segmentation enables targeted protection without requiring system-wide complexity.
Solution Approach 2:
Mask descriptors are pre-configured to define protected cache regions before execution. The system performs preliminary setup of cache isolation boundaries, so that when safety-critical tasks execute, their protected regions are already established and ready to prevent eviction without real-time complexity.
2Reliability
If cache locking is applied to protect safety-critical data, then data protection is improved, but cache performance decreases due to reduced cache availability
Solution Approach 1:
Instead of applying uniform locking across the entire cache, the system applies protection locally to specific cache regions identified by mask descriptors. Only the portions of cache containing safety-critical data are protected, while other regions remain fully available for general use, maintaining overall cache performance.
Solution Approach 2:
The system applies partial locking - only sufficient portions of the cache are protected to ensure safety-critical data protection, rather than excessive full-cache locking. This partial action maintains the necessary protection while preserving cache performance through available unprotected regions.
3Reliability
If the cache is locked to prevent eviction of safety-critical data, then data protection is improved, but the system becomes less adaptable to growing complexity and unpredictable data locations
Solution Approach 1:
Mask descriptors serve multiple functions: they define protected regions, identify cache segments, and provide task-specific isolation boundaries. This universal mechanism adapts to different tasks and data locations without requiring separate locking mechanisms for each case, providing versatility in complex systems.
Solution Approach 2:
The cache protection system is dynamic rather than static. Mask descriptors can be configured for different tasks and can adapt to where safety-critical data actually resides in the cache. This dynamic approach allows the system to handle unpredictable data locations and evolving system complexity effectively.
Data Source
AI summary
A method of task-based cache isolation includes: storing, in association with a cache controller, (i) a plurality of mask descriptors representing respective portions of a cache memory, and (ii) for each mask descriptor, a mask identifier; receiving, at the cache controller, a memory transaction request containing a memory address and an active one of the mask identifiers; retrieving, at the cache controller, an active one of the mask descriptors corresponding to the active mask identifier; generating, based on the memory address and the active mask descriptor, an index identifier corresponding to a cache element within the portion of the cache memory represented by the active mask descriptor; and applying the memory transaction to the cache memory at the index identifier.


