Configurable Way Allocation for Packet Processing Cache

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional cache mapping in packet processing devices is inefficient due to hardware-defined allocations that cannot be altered, leading to high miss rates for frequently used data types, as the same device may be used in different systems with varying requirements and packet types.

Innovation Solution

Implementing a configurable way allocation system in the cache, where different operating modes are defined based on packet protocol types and data types, allowing dynamic allocation of cache ways to optimize storage and eviction strategies, such as separating ranges for context and descriptor data, and using an eviction engine to manage cache usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If hardware-defined cache allocation is used, then device complexity is reduced and manufacturing is simplified, but cache hit rate deteriorates and processing efficiency decreases

Engineering Contradiction:
Improvepacket processing efficiencyVSAvoidcache configuration complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements dynamic cache way allocation where the cache configuration can be modified at runtime based on traffic patterns. The system includes a cache manager that receives traffic information, determines optimal way allocations, and dynamically reconfigures the cache accordingly. This allows the cache to adapt to different packet types and traffic conditions, improving hit rates without requiring multiple fixed hardware configurations.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If fixed hardware configuration is used, then manufacturing precision is maintained, but adaptability to different systems and protocols deteriorates

Engineering Contradiction:
Improvecache allocation adaptabilityVSAvoidcache configuration precision
Core Design Contradiction:
Adaptability or versatilityVSManufacturing precision

Solution Approach 1:

The patent pre-defines multiple cache way allocation configurations corresponding to different traffic patterns and packet types before runtime. The cache manager has access to a set of predefined allocations that can be selected and applied based on current traffic conditions. This allows the system to quickly switch between optimized configurations without complex real-time calculations, maintaining precision while achieving adaptability.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If cache ways are allocated for all packet types, then coverage is improved, but cache memory usage increases and efficiency decreases

Engineering Contradiction:
Improvecache utilization efficiencyVSAvoidcache memory capacity
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent changes the allocation parameters of cache ways dynamically based on traffic patterns. Instead of allocating a fixed number of ways to each packet type, the system adjusts the number of ways allocated to different packet types according to their actual usage patterns. This allows the cache to concentrate memory resources on the most frequently accessed packet types, improving utilization efficiency without requiring additional cache capacity.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10846242B1Configurable way allocation for cache
Publication Date: 2020.11.24 AMAZON TECH INC
  • US10846242B1 patent drawing
  • US10846242B1 patent drawing
  • US10846242B1 patent drawing

AI summary

Systems and methods in accordance with various embodiments of the present disclosure provide approaches for configurable allocation of ways in a cache. When a packet is received, the packet can be parsed to determine its type and a corresponding operating mode can be looked up. Based on the operating mode, one or more specific ranges of ways may be determined for the packet's data. For example, a first range of ways may be defined to include context data, a second range of ways may be defined to include descriptor data, and a third range of ways may be defined that can include both context and descriptor data. An eviction engine may clear data from and/or store data to a particular way in the cache based on the operating mode.