Serial Flash XIP Caching for Embedded Processor Speed

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Embedded processor systems face challenges in increasing memory size due to limited pin count, making it difficult to implement external serial flash memory access efficiently, as direct access to external flash memory is slow and increases processing overhead.

Innovation Solution

A configurable cache memory module is introduced between the processor and external serial flash memory, allowing the processor to access external serial flash memory as if it were main memory, with the cache module determining whether data is stored in the cache or the flash memory and managing communication via a serial interface.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If direct access to external serial flash memory is implemented, then memory size can be increased, but access speed decreases and processing overhead increases

Engineering Contradiction:
Improvememory sizeVSAvoidaccess speed
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

A cache memory module is introduced as an intermediary between the processor and external serial flash memory. The cache memory stores frequently accessed code and data, allowing the processor to read from fast local memory rather than slow external flash memory for common operations. This mediator resolves the contradiction by providing both large memory capacity (through external flash) and fast access (through local cache).

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The memory system is segmented into two distinct parts: a small, fast local cache memory for frequently accessed data, and a large, slow external serial flash memory for storage capacity. This segmentation allows each component to optimize for its specific function, with the cache handling speed-critical operations and flash providing bulk storage, thereby resolving the speed-capacity tradeoff.

Inventive Principle:
Principle #1Segmentation

2Quantity of substance

If external serial flash memory is accessed directly, then memory capacity is increased, but processing overhead increases

Engineering Contradiction:
Improvememory capacityVSAvoidprocessing overhead
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The cache memory pre-loads frequently accessed code and data into its local storage before they are needed by the processor. This preliminary action eliminates the need for the processor to repeatedly access the external flash memory, thereby reducing processing overhead and improving productivity while maintaining large memory capacity.

Inventive Principle:
Principle #10Preliminary action

3Speed

If cache memory is introduced between processor and flash memory, then access speed improves, but device complexity increases

Engineering Contradiction:
Improveaccess speedVSAvoiddevice complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The cache memory serves as a simple intermediary component that sits between the processor and external flash memory. It provides basic caching functionality with standard read/write operations, managing the complexity of coordinating between different memory systems while improving access speed. The intermediary handles the complexity of data translation and access routing automatically.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9262318B1Serial flash XIP with caching mechanism for fast program execution in embedded systems
Publication Date: 2016.02.16 MARVELL ASIA PTE LTD
  • US9262318B1 patent drawing
  • US9262318B1 patent drawing
  • US9262318B1 patent drawing

AI summary

A system including a processor, a memory controller, and a flash memory module. The processor is configured to generate a request to retrieve information corresponding to an address. The memory controller module includes a cache memory configured to store information, and a cache control logic module configured to determine whether the cache memory stores the information corresponding to the address, if the cache memory stores the information corresponding to the address, retrieve the information from the cache memory and provide the information to the processor, and if the cache memory does not store the information corresponding to the address, generate a flash memory read request based on the address. The flash memory module is configured to, in response to receiving the flash memory read request, provide the information corresponding to the address to the memory controller module.