I/O Data Routing Logic for Cache Allocation Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In data processing systems, the existing methods for determining the destination of incoming data at an input/output (I/O) interface are not optimal, leading to inefficient memory transfers and cache space wastage due to unpredictable data usage, as they rely on user programming or hardware configuration.

Innovation Solution

Implementing a mechanism for automatic routing and allocation of data based on message attributes such as tags, source address, and payload size, which enables or disables cache stashing, and influences cache allocation policies, using routing and allocation logic to direct data to either a system level cache or memory, thereby optimizing data placement.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If data is directed to a memory device, then cache space is preserved, but additional memory transfers are required when data is needed

Engineering Contradiction:
Improvecache spaceVSAvoidmemory transfer time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The system performs preliminary action by stashing incoming data in cache before it is actually needed by the processor. The routing logic predicts that incoming data will likely be used, so it proactively places the data in cache memory in advance, avoiding future memory transfer delays when the processor needs the data.

Inventive Principle:
Principle #10Preliminary action

2Speed

If data is stored directly in a cache via cache stashing, then data access is accelerated, but cache space is wasted and additional memory transfers are required to evict data

Engineering Contradiction:
Improvedata access speedVSAvoidmemory transfer energy
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The routing logic uses feedback from the message receive queue to make intelligent decisions about data placement. By monitoring whether incoming data matches expected message patterns, the system receives feedback on actual data usage needs and adjusts its stashing decisions accordingly, avoiding cache pollution with data that won't be used.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system changes the parameter of data placement decision from static (always stash or never stash) to dynamic based on message attributes. The routing logic evaluates parameters such as message identifier matches, payload size, and queue depth to determine the optimal placement destination for each incoming data packet.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If automatic routing based on message attributes is implemented, then data placement is optimized, but device complexity increases

Engineering Contradiction:
Improvedata placement efficiencyVSAvoidrouting logic complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The routing logic performs multiple functions within a single component: it determines cache stashing enable/disable decisions, sets allocate attributes, sets priority attributes, and directs data to appropriate destinations. This multi-functionality reduces the need for separate control mechanisms while achieving optimized data placement.

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

Data Source

PatentUS10733106B2I/O driven data routing and cache allocation
Publication Date: 2020.08.04 ARM LTD
  • US10733106B2 patent drawing
  • US10733106B2 patent drawing
  • US10733106B2 patent drawing

AI summary

A method and apparatus are provided for automatic routing of messages in a data processing system. An incoming message at an input/output (I/O) interface of the data processing system includes a message identifier and payload data. Match information, including an indicator or whether the message identifier of the incoming message matches an identifier of a request in a receive queue (RQ), is used to determine a destination for the incoming message. The incoming message is forwarded to the determined destination. Information, such as payload size and RQ position, may be used to determine allocation of the payload within a cache or cache hierarchy.