Mid-level instruction cache for network processor coherence

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern network processors face challenges in optimizing cache hierarchy communication, particularly in maintaining coherence and reducing bandwidth usage due to the complexity of managing cache directories and invalidations across multiple processor cores, which affects the efficiency and security of network operations.

Innovation Solution

A memory subsystem with a three-level cache hierarchy, including L1, mid-level, and low-level caches, where the low-level cache maintains a directory to track instruction and data locations, and selectively sends invalidation commands to prevent unnecessary communications, optimizing cache operations and reducing bandwidth usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a three-level cache hierarchy is implemented with directory tracking, then cache coherence is maintained across multiple processor cores, but bandwidth usage increases due to invalidation commands

Engineering Contradiction:
Improvecache coherenceVSAvoidbandwidth usage
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent applies partial action by selectively sending invalidation commands only to caches that actually contain the invalidated instruction. The directory tracks which caches hold each instruction, allowing the system to send invalidations only where needed rather than broadcasting to all caches, thus reducing unnecessary bandwidth consumption while maintaining coherence.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The directory structure automatically tracks instruction locations across caches, enabling the system to self-determine which caches require invalidation without external intervention. This self-service mechanism reduces the overhead of coherence management by having the directory maintain its own validity information.

Inventive Principle:
Principle #25Self-service

2Productivity

If a three-level cache hierarchy is implemented, then cache communication efficiency is improved, but device complexity increases

Engineering Contradiction:
Improvecache communication efficiencyVSAvoidcache hierarchy complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the cache system into three distinct levels (L1, mid-level, and low-level caches), each with specific functions. L1 caches provide fast per-core access, the mid-level cache handles shared data between cores, and the low-level cache manages overall coherence. This segmentation improves communication efficiency by placing data closer to where it's needed while distributing complexity across manageable components.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The mid-level cache acts as an intermediary between L1 caches and the low-level cache, reducing the complexity of direct communication between all cache levels. It handles coherence protocols and invalidation distribution, simplifying the overall system architecture by providing a dedicated mediation layer.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If invalidation commands are sent to all caches, then cache coherence is ensured, but unnecessary communications increase bandwidth consumption

Engineering Contradiction:
Improvecache coherenceVSAvoidcommunication volume
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The directory provides feedback information about which caches currently hold each instruction. When an instruction is invalidated, the system queries the directory to receive feedback on which caches need invalidation, enabling precise targeting of invalidation commands and avoiding unnecessary communications with caches that don't contain the instruction.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The directory pre-tracks the location of instructions in various caches before invalidation is needed. This preliminary tracking action enables the system to immediately identify which caches require invalidation when a change occurs, eliminating the need for broadcast invalidations to all caches and reducing communication volume.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11036643B1Mid-level instruction cache
Publication Date: 2021.06.15 MARVELL ASIA PTE LTD
  • US11036643B1 patent drawing
  • US11036643B1 patent drawing
  • US11036643B1 patent drawing

AI summary

A network processor includes a memory subsystem serving a plurality of processor cores. The memory subsystem includes a hierarchy of caches. A mid-level instruction cache provides for caching instructions for multiple processor cores. Likewise, a mid-level data cache provides for caching data for multiple cores, and can optionally serve as a point of serialization of the memory subsystem. A low-level cache is partitionable into partitions that are subsets of both ways and sets, and each partition can serve an independent process and/or processor core.