Configurable Cache with Automatic Line Locking for Microprocessors

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Microcontroller designs face limitations due to high memory access times and the complexity of implementing large caches, which are costly and not suitable for small microcontrollers, necessitating a configurable cache solution that balances low latency and high throughput.

Innovation Solution

A configurable cache module for microprocessors or microcontrollers, featuring a cache control unit, memory, and cache lines with control bits for locking, validity, and type indication, along with a prefetch unit for sequential instruction loading, allowing for on-the-fly configuration and efficient use of cache resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If large caches are used to reduce memory access time, then memory access latency is reduced, but device complexity and cost increase

Engineering Contradiction:
Improvememory access latencyVSAvoidcache size
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The cache is divided into multiple cache lines with individual control bits for each line, allowing selective locking and validation of specific lines rather than managing a large monolithic cache. This segmentation enables efficient use of small cache resources by keeping only frequently accessed instructions in locked cache lines.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The cache system dynamically adjusts its behavior through control bits that can be set or cleared based on runtime conditions. The branch trail bit automatically locks cache lines when branch instructions are detected, and the valid bit enables dynamic validation, allowing the cache to adapt to changing execution patterns without requiring a large fixed cache size.

Inventive Principle:
Principle #15Dynamics

2Productivity

If cache size is increased to improve throughput, then throughput is improved, but microcontroller design complexity increases

Engineering Contradiction:
ImprovethroughputVSAvoidcache configuration
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The cache system performs self-service through automatic branch trail detection and cache line locking. When a branch instruction is executed, the system automatically sets the branch trail bit for the current cache line, locking it without requiring external control logic. This self-managing behavior improves throughput while keeping the control mechanism simple.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The cache lines include control bits (valid bit, branch trail bit, lock bit) that change parameters of individual cache lines based on execution context. These parameter changes enable the cache to optimize throughput for different instruction patterns without requiring complex overall cache configuration, as each line can be independently configured through simple bit operations.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If manual cache control is implemented to optimize performance, then performance is optimized, but ease of operation decreases

Engineering Contradiction:
ImproveperformanceVSAvoidcache management
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The system provides self-service cache management through automatic branch trail detection. When branch instructions are executed, the system automatically identifies and locks the relevant cache lines using the branch trail bit, eliminating the need for manual cache control operations while maintaining optimized performance.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The control functionality is merged into the cache line structure itself through control bits embedded in each cache line. This integration combines the cache storage and control functions, allowing performance optimization through simple bit manipulations rather than separate control operations, thereby improving ease of operation while maintaining performance benefits.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentEP2095243B1Configurable cache for a microprocessor
Publication Date: 2012.11.14 MICROCHIP TECHNOLOGY INC
  • EP2095243B1 patent drawingFigure 1
  • EP2095243B1 patent drawingFigure 2
  • EP2095243B1 patent drawingFigure 3

AI summary

A cache module for a central processing unit has a cache control unit coupled with a memory, and a cache memory coupled with the control unit and the memory wherein the cache memory has a plurality of cache lines, each cache line having a storage area for storing instructions to be issued sequentially and associated control bits, wherein at least one cache line of the plurality of cache lines has at least one branch trail control bit which when set provides for an automatic locking function of the cache line in case a predefined branch instruction has been issued.