Memory Port Controller Push Mechanism for QoS Priority

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory transaction management systems face challenges in effectively prioritizing and handling high-priority Quality of Service (QoS) transactions, leading to inefficiencies and delays in completing higher-priority tasks due to the presence of lower-priority transactions in the pipeline.

Innovation Solution

A memory port controller is implemented to manage transactions by 'pushing' lower-priority transactions when a high-priority QoS transaction is received, ensuring that higher-priority transactions are completed quickly by treating lower-priority transactions as high priority and maintaining a count of outstanding high-priority transactions to facilitate efficient processing across different clock domains.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If lower-priority transactions are allowed to proceed through the memory pipeline, then the memory system maintains continuous operation and resource utilization, but high-priority QoS transactions experience delays and cannot be completed promptly

Engineering Contradiction:
ImproveQoS guaranteeVSAvoidtransaction completion time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system dynamically adjusts the priority treatment of transactions in the pipeline based on the arrival of high-priority QoS transactions. When a high-priority transaction is detected, the memory port controller dynamically changes the processing mode from normal FIFO ordering to push mode, where subsequent lower-priority transactions are pushed forward and treated as high-priority. This dynamic adaptation resolves the contradiction by allowing the system to maintain QoS guarantees when needed while preserving normal continuous operation during standard conditions.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system performs preliminary actions by maintaining a count of outstanding high-priority QoS transactions and proactively pushing lower-priority transactions before they complete processing. By anticipating the need to clear the pipeline for high-priority transactions and performing the push action in advance, the system ensures that high-priority transactions can be completed promptly without waiting for lower-priority transactions to naturally complete, thus resolving the time delay issue while maintaining QoS reliability.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If the memory port controller pushes lower-priority transactions to make way for high-priority QoS transactions, then high-priority transaction completion is improved, but the complexity of transaction management and coordination increases

Engineering Contradiction:
Improvehigh-priority transaction throughputVSAvoidtransaction control mechanism
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system employs feedback mechanisms where the memory port controller monitors the arrival of high-priority QoS transactions and the completion status of pushed transactions. The controller receives feedback about outstanding high-priority transactions and adjusts its pushing behavior accordingly. This feedback loop enables the system to improve high-priority transaction throughput through intelligent pushing while managing complexity by using automated monitoring and control rather than manual or overly complex arbitration mechanisms.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The memory port controller acts as an intermediary between the coherency port and the memory system, mediating the conflicting requirements of high-priority and low-priority transactions. It introduces a push control mechanism that coordinates transaction flow, counting outstanding high-priority transactions and selectively pushing lower-priority transactions. This intermediary approach improves high-priority throughput while containing complexity by localizing the control logic to a single coordination point rather than distributing complexity throughout the entire memory subsystem.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Speed

If multiple clock domains are used for different memory components, then each component can operate at optimal speeds, but coordinating transaction pushing across clock domains becomes more difficult

Engineering Contradiction:
Improvecomponent operation speedVSAvoidclock domain coordination
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The memory port controller serves as a clock domain intermediary, receiving high-priority transaction signals from the coherency port controller in one clock domain and coordinating the pushing of transactions to the memory system in another clock domain. It maintains a count of outstanding high-priority transactions and uses this information to trigger push operations at the appropriate moments, bridging the timing differences between clock domains. This intermediary approach enables each component to operate at its optimal speed while managing clock domain coordination complexity through centralized timing control.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8719506B2Push mechanism for quality of service (QoS) support in coherency port
Publication Date: 2014.05.06 APPLE INC
  • US8719506B2 patent drawing
  • US8719506B2 patent drawing
  • US8719506B2 patent drawing

AI summary

In an embodiment, a memory port controller (MPC) is coupled to a memory port and receives transactions from processors and a coherency port (ACP) used by one or more peripheral devices that may be cache coherent. The transactions include various quality of service (QoS) parameters. If a high priority QoS transaction is received on the ACP, the MPC may push previous (lower priority) transactions until the high priority transaction may be completed. The MPC may maintain a count of outstanding high priority QoS transactions. The L2 interface controller and ACP controller may push increment and decrement events based on processing the high priority QoS transactions, and the MPC may push the memory transactions when the count is non-zero. In an embodiment, the MPC may continue pushing transactions until the L2 interface controller informs the MPC that the earlier transactions have been completed.