Flow-ID Dependency Checking Logic for Transaction Ordering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In systems on chip (SoC), maintaining the order of memory transactions with flow-ID dependencies is challenging due to non-first-in-first-out queues, which can disrupt the coherence of transactions within the coherence point.

Innovation Solution

Implementing a coherence point with current transaction tables (CTTs) that include input request queues (IRQs) with flow-ID fields and linked-list structures to ensure transactions are processed in the order they were received, by linking dependent transactions and updating head pointers accordingly.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a non-FIFO queue is used to store transactions in the coherence point, then queue utilization and throughput are improved, but transaction ordering coherence is disrupted

Engineering Contradiction:
ImprovethroughputVSAvoidtransaction ordering coherence
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments transactions into different linked-list chains based on flow-ID matching. Each chain maintains ordering coherence independently while allowing other chains to proceed in parallel, thus maintaining both throughput and coherence. The segmentation is implemented by dividing the transaction queue into multiple ordered sequences (chains) where each chain handles a specific flow-ID group.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary mechanism (the linked-list structure with head pointers and tail pointers) between the non-FIFO queue storage and the transaction issuance process. This intermediary maintains the ordering relationship by linking transactions with the same flow-ID together, allowing the system to use efficient non-FIFO queue storage while preserving ordering coherence through the linked-list mediation.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of manufacture

If transactions are stored in a non-FIFO queue, then storage efficiency is improved, but dependency tracking complexity increases

Engineering Contradiction:
Improvestorage efficiencyVSAvoiddependency tracking complexity
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The patent creates a copied structure (linked-list) that mirrors the ordering relationships without duplicating the actual transaction data storage. The linked-list nodes contain pointers to related transactions, creating a lightweight copy of the dependency structure that is much more efficient than storing full transaction copies while still enabling effective dependency tracking.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent adds another dimension to the transaction storage by introducing linked-list chains that operate alongside the queue structure. Instead of trying to maintain ordering within the single queue dimension, the solution creates a second dimensional layer (the linked-list chains) that tracks dependencies, effectively separating storage efficiency from ordering complexity.

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

Data Source

PatentUS9201791B2Flow-ID dependency checking logic
Publication Date: 2015.12.01 APPLE INC
  • US9201791B2 patent drawing
  • US9201791B2 patent drawing
  • US9201791B2 patent drawing

AI summary

Systems and methods for maintaining an order of transactions in the coherence point. The coherence point stores attributes associated with received transactions in an input request queue (IRQ). When a new transaction is received with a device ordered attribute, the IRQ is searched for other entries with the same flow ID as the new transaction. If one or more matches are found, the new transaction entry points to the entry for the most recently received transaction with the same flow ID. The new transaction is prevented from exiting the coherence point until the transaction it points to has been sent to its destination.