Circular Cache Data Mapping for Motion Compensation Conflict Resolution
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing motion compensation systems face performance degradation due to data conflicts in cache memory systems, particularly in H.264/AVC decoders, where off-chip memory access is inefficient due to unwanted data being overwritten, leading to reduced cache performance.
Innovation Solution
A data-mapping method and reconfigurable circular cache system that partitions frames into macroblocks and access units, mapping current and reference data into specific memory groups based on frame width, avoiding data conflicts by using a circular cache with reconfigurable memory groups and a data-mapping unit that selects cache indices from physical addresses.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If data is loaded into cache memory banks based on frame width, then memory access efficiency is improved, but data conflicts occur causing performance degradation
Solution Approach 1:
The cache memory system is divided into multiple independently controllable memory banks (BK1-BK8). The patent segments the frame data and uses different memory banks for current frame data and reference frame data, preventing data conflicts by spatial separation of data types within the cache structure.
Solution Approach 2:
The patent dynamically configures memory bank assignments based on frame width and access unit characteristics. The system adapts which memory banks store current frame data versus reference frame data, optimizing for different video scenarios and preventing conflicts through dynamic resource allocation rather than fixed assignments.
2Ease of operation
If access units are sequentially fetched from external memory, then decoding order is maintained, but unwanted data is overwritten in cache reducing performance
Solution Approach 1:
The patent extracts and separates reference frame data from the sequential access unit fetch process. Reference frame data is identified and directed to specific memory banks dedicated for reference data storage, while current frame data goes to other banks. This extraction prevents reference data from being overwritten during sequential fetching operations.
Solution Approach 2:
The system performs preliminary identification of reference frame data within access units before the actual cache storage operation. By pre-identifying which data is reference data versus current frame data, the system can pre-assign appropriate memory banks, preventing future overwrite conflicts before they occur during the sequential fetching process.
Data Source
AI summary
Frame data stored in an external memory is partitioned into a plurality of macroblocks, and a plurality of access units each comprising at least one macroblock are provided. A plurality of frames are fetched from the external memory by loading the plurality of access units in a predetermined sequence. A current data for decoding a macroblock of the first access unit and a reference data for decoding a macroblock of the second access unit are loaded from the first access unit, and respectively mapped to a first memory group and a second memory group of a circular cache according to the frame width.


