Programmable Hashing Cache Controller for Image Scan Line Conflict Resolution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current cache designs face high cache miss rates when handling large images, as only a small number of scan lines can be kept in the cache due to direct mapping schemes, leading to data preloading issues and increased latency.

Innovation Solution

A programmable hashing address method is employed to generate unique cache indices for each scan line, preventing multiple scan lines from hitting the same bank and set, thereby improving cache hit rates through adaptive bit shift operations based on image size and cache capacity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a direct mapping scheme is used for cache addressing, then the hardware complexity and latency are reduced, but the cache hit rate deteriorates because multiple scan lines map to the same bank and set

Engineering Contradiction:
Improvehardware complexityVSAvoidcache hit rate
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The patent applies parameter changes by introducing a programmable hash function that transforms the address mapping parameters. Instead of direct mapping, the system uses a configurable hash function with adjustable parameters (such as polynomial coefficients or bit shift amounts) to redistribute scan lines across different cache banks and sets, thereby reducing conflicts while maintaining manageable hardware complexity

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent implements dynamics by making the hash function programmable and configurable rather than fixed. The hash parameters can be dynamically adjusted based on image characteristics, cache size, and access patterns, allowing the system to adapt to different scenarios and optimize cache hit rates without requiring complete hardware redesign

Inventive Principle:
Principle #15Dynamics

2Reliability

If the cache size is increased to hold more scan lines, then the cache hit rate improves, but the data processing latency increases due to longer access times

Engineering Contradiction:
Improvecache hit rateVSAvoiddata processing latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies segmentation by dividing the image data into smaller units (scan lines or blocks) and distributing them across multiple cache banks and sets through the hash function. This segmentation allows the system to maintain a larger effective cache capacity without increasing the physical cache size, as multiple small segments can be managed concurrently across parallel cache structures, reducing access latency

Inventive Principle:
Principle #1Segmentation

3Reliability

If a fully associative cache is used, then the cache hit rate improves by allowing any memory location to map to any cache location, but the hardware complexity and latency increase

Engineering Contradiction:
Improvecache hit rateVSAvoidhardware complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary hash function layer between the memory address and the cache selection logic. This intermediary component processes the address through a configurable hash function to determine cache bank and set, acting as a mediator that simplifies the selection process compared to full associativity while still achieving high hit rates through intelligent address transformation

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9760492B2Method for controlling access of cache through using programmable hashing address and related cache controller
Publication Date: 2017.09.12 MEDIATEK SINGAPORE PTE LTD
  • US9760492B2 patent drawing
  • US9760492B2 patent drawing
  • US9760492B2 patent drawing

AI summary

A method for controlling access of a cache includes at least following steps: receiving a memory address; utilizing a hashing address logic to perform a programmable hash function upon at least a portion of the memory address to generate a hashing address; and determining an index of the cache based at least partly on the hashing address.