Cache Memory in Non-Volatile Memory Transaction Path

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Non-volatile memory in data processing systems consumes high energy and has slow read speeds, making it inefficient for use as execute-in-place memory due to the large energy required for reading data.

Innovation Solution

Incorporating a cache memory between the interconnect circuitry and non-volatile memory to cache data read from the non-volatile memory, thereby reducing the need for frequent, energy-intensive read operations and improving data access speeds.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If non-volatile memory is used as execute-in-place memory, then data storage capacity is improved, but energy consumption increases and read speed decreases

Engineering Contradiction:
Improvedata storage capacityVSAvoidenergy consumption
Core Design Contradiction:
Quantity of substanceVSUse of energy by moving object

Solution Approach 1:

The memory system is segmented into two distinct parts: non-volatile memory for bulk data storage and cache memory for frequently accessed data. This segmentation allows the system to maintain large storage capacity while reducing energy consumption for read operations by serving data from the smaller, energy-efficient cache when possible.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A cache memory is introduced as an intermediary component between the non-volatile memory and the processor. This intermediary buffer stores copies of frequently accessed data, reducing the frequency of direct reads from non-volatile memory and thereby lowering overall energy consumption while maintaining fast access speeds.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Quantity of substance

If non-volatile memory is used as execute-in-place memory, then data storage capacity is improved, but operation speed decreases

Engineering Contradiction:
Improvedata storage capacityVSAvoidread speed
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The memory hierarchy is segmented into non-volatile memory for capacity and cache memory for speed. This segmentation enables the system to leverage the high storage capacity of non-volatile memory while using the faster cache memory to satisfy time-critical read operations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Data is preliminarily loaded into the cache memory from non-volatile memory before being accessed by the processor. This preliminary action of pre-caching frequently accessed instructions and data ensures that subsequent reads occur at cache speeds rather than slower non-volatile memory speeds.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If cache memory is added between interconnect circuitry and non-volatile memory, then data access efficiency is improved, but device complexity increases

Engineering Contradiction:
Improvedata access efficiencyVSAvoiddevice complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The cache memory is designed to work with the existing interconnect circuitry and memory architecture, serving multiple functions including data caching, address translation, and memory management. This multi-functionality justifies the added complexity by providing broad system benefits across different operational modes.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS10120808B2Apparatus having cache memory disposed in a memory transaction path between interconnect circuitry and a non-volatile memory, and corresponding method
Publication Date: 2018.11.06 ARM LTD
  • US10120808B2 patent drawing
  • US10120808B2 patent drawing
  • US10120808B2 patent drawing

AI summary

A data processing system includes interconnect circuitry providing a plurality of memory transaction paths between one or more transaction masters, including a processor, debugging circuitry and a DMA unit, and one or more transaction slaves including a non-volatile memory, a DRAM memory and an I/O interface. A cache memory is provided between the interconnect circuitry and the non-volatile memory. This cache memory may be a two way set associative cache memory. The cache memory may serve as a read-only cache memory. A cache miss will result in a line fill of a cache line including the target data which was missed. If prefetching is enabled for the cache memory and the transaction was attempting to read a program instruction, then a prefetch operation may be performed in which a further contiguous cache line of data is also fetched into the cache memory upon the cache miss.