Cache Controller Parallel Pipelines for CPU-DMA Contention

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In multi-core System on Chip (SoC) architectures, CPU transactions can stall due to cache misses, causing DMA transactions to be delayed, leading to potential deadlocks and performance degradations, especially when CPU and DMA transactions contend for shared memory resources.

Innovation Solution

Implementing separate parallel pipelines for CPU and DMA transactions within the cache controller, with arbitration schemes to ensure fair bandwidth distribution and separate interfaces for return data and acknowledgments, preventing CPU stalls from affecting DMA transactions and maintaining system stability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If CPU and DMA transactions share a single access pipeline to cache memory, then device complexity is reduced, but CPU stalls due to cache misses cause DMA transactions to be delayed leading to potential deadlocks and performance degradation

Engineering Contradiction:
Improvecache controller structureVSAvoidtransaction completion reliability
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The cache controller is segmented into multiple independent access pipelines: a first pipeline dedicated to CPU transactions and a second pipeline dedicated to DMA transactions. Each pipeline operates independently to access cache memory, preventing CPU stalls from blocking DMA transactions and eliminating potential deadlocks while maintaining system reliability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system transitions from a single-dimensional shared access model to a multi-dimensional parallel access model by implementing separate pipelines for CPU and DMA transactions. This dimensional separation allows both transaction types to proceed simultaneously without interference, resolving the reliability issue while managing complexity through structured organization.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Ease of manufacture

If CPU and DMA transactions share a single access pipeline to cache memory, then manufacturing simplicity is improved, but performance degradation occurs due to transaction delays and deadlocks

Engineering Contradiction:
Improvecache controller implementationVSAvoidsystem throughput
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The cache controller is divided into separate access pipelines for CPU and DMA transactions. This segmentation enables parallel processing of transactions, increasing system throughput and productivity while maintaining ease of manufacture through modular pipeline design that can be implemented using standard multi-core processor architectures.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

By providing dedicated pipelines for CPU and DMA transactions, the system ensures continuous processing of both transaction types without interruptions or stalls. DMA transactions can complete without being blocked by CPU cache misses, maintaining continuous useful action and maximizing system productivity.

Inventive Principle:
Principle #20Continuity of useful action

3Reliability

If separate parallel pipelines are implemented for CPU and DMA transactions, then transaction reliability is improved by preventing deadlocks, but device complexity increases

Engineering Contradiction:
Improvetransaction completion reliabilityVSAvoidcache controller structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The cache controller is segmented into dedicated pipelines for CPU and DMA transactions, improving reliability by preventing deadlocks. The complexity is managed through clear functional separation and standardized interface designs that align with existing multi-core processor architectures.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The separate pipeline architecture provides universal benefits across different transaction types and workloads. The same pipeline structure handles various CPU and DMA transactions uniformly, improving reliability through consistent behavior while the modular design keeps implementation complexity manageable through reuse of standard components.

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

4Productivity

If separate parallel pipelines are implemented for CPU and DMA transactions, then system throughput is improved by preventing stalls, but manufacturing complexity increases

Engineering Contradiction:
Improvesystem throughputVSAvoidcache controller implementation
Core Design Contradiction:
ProductivityVSEase of manufacture

Solution Approach 1:

The cache controller is segmented into parallel pipelines that can be manufactured using standard multi-core processor techniques. Each pipeline is a self-contained module with defined interfaces, making the overall system easier to manufacture through modular assembly while achieving high throughput through parallel operation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The continuous operation of separate pipelines for CPU and DMA transactions maximizes system throughput by eliminating stalls. The modular pipeline design maintains ease of manufacture by using repeatable, standardized building blocks that can be assembled through conventional multi-core processor manufacturing processes.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS8904115B2Cache with multiple access pipelines
Publication Date: 2014.12.02 TEXAS INSTRUMENTS INC
  • US8904115B2 patent drawing
  • US8904115B2 patent drawing
  • US8904115B2 patent drawing

AI summary

Parallel pipelines are used to access a shared memory. The shared memory is accessed via a first pipeline by a processor to access cached data from the shared memory. The shared memory is accessed via a second pipeline by a memory access unit to access the shared memory. A first set of tags is maintained for use by the first pipeline to control access to the cache memory, while a second set of tags is maintained for use by the second pipeline to access the shared memory. Arbitrating for access to the cache memory for a transaction request in the first pipeline and for a transaction request in the second pipeline is performed after each pipeline has checked its respective set of tags.