Priority-Byte Transfer Logic Across Variable-Width SoC Buses

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In System-on-Chip (SoC) environments, transferring a limited amount of data requested by a component can result in performance loss due to delays when the data is not prioritized for transmission in the first clock cycle, especially over buses with varying data widths, leading to inefficiencies and latency issues.

Innovation Solution

A data responder selects between granting a request for a priority byte for immediate transfer or ignoring it, determining the optimal transfer mode based on latency and bus width to balance efficiency and performance, allowing the priority byte to be transferred in the first clock cycle when beneficial.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If data is transferred without prioritizing the requested byte, then the transfer follows natural alignment boundaries, but latency increases when the requested byte is not in the first clock cycle

Engineering Contradiction:
ImprovelatencyVSAvoiddata transfer efficiency
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The system performs preliminary analysis of the data block to identify which byte contains the requested data before actual transfer begins. This allows the prioritization logic to be pre-computed and ready, enabling the requested byte to be transferred in the first clock cycle when it falls within the first word boundary, thereby reducing latency without compromising transfer efficiency

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The data block is segmented into multiple words (e.g., 32-bit or 64-bit units) that can be transferred in separate clock cycles. By dividing the block into these transferable units, the system can selectively prioritize the word containing the requested byte for immediate transfer in the first clock cycle, while other words follow in subsequent cycles, thus resolving the latency-efficiency contradiction

Inventive Principle:
Principle #1Segmentation

2Loss of time

If the requested byte is prioritized for immediate transfer, then latency is reduced, but the complexity of the transfer logic increases

Engineering Contradiction:
ImprovelatencyVSAvoidtransfer logic complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The prioritization logic applies local quality by treating the word containing the requested byte differently from other words in the data block. Specifically, the system identifies the word boundary containing the requested byte and applies priority marking only to that specific word, while other words maintain their normal transfer characteristics. This localized approach reduces overall logic complexity compared to reordering the entire block

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The transfer logic dynamically adapts based on the position of the requested byte within the data block. When the requested byte falls within the first word boundary, the system dynamically switches to a simplified transfer mode where the first word is sent immediately. When it falls in subsequent words, the system dynamically adjusts to transfer the first word(s) first, then the remaining words. This dynamic behavior reduces complexity by using conditional logic rather than complex reordering mechanisms

Inventive Principle:
Principle #15Dynamics

3Productivity

If data blocks are transferred in fixed word boundaries, then the transfer process is simplified, but performance loss occurs when the requested byte is not aligned with word boundaries

Engineering Contradiction:
Improvedata transfer efficiencyVSAvoidlatency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs preliminary identification of the word boundary containing the requested byte before the transfer operation begins. By calculating which word (e.g., word 0, word 1, etc.) contains the requested byte based on the byte address and word size, the system can prepare the prioritization logic in advance. This preliminary action enables the requested byte to be transferred in the first clock cycle when it falls within the first word, eliminating latency without requiring complex runtime reordering

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The transfer mechanism dynamically adjusts its behavior based on the alignment of the requested byte with word boundaries. When the requested byte is aligned with the first word boundary, the system dynamically activates a fast-path mode that transfers the first word immediately. When misaligned, the system dynamically switches to a mode that transfers subsequent words in sequence. This dynamic adaptation resolves the contradiction by maintaining fixed word boundary transfers while optimizing for aligned cases and accepting minimal latency for misaligned cases

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS12386764B2Selective transfer of data including a priority byte
Publication Date: 2025.08.12 SIFIVE INC
  • US12386764B2 patent drawing
  • US12386764B2 patent drawing
  • US12386764B2 patent drawing

AI summary

A data responder may determine a selection between granting a request for a priority byte to be prioritized for transmission ahead of other bytes via a bus and ignoring the request. Granting the request may include transferring a block of bytes of data across multiple clock cycles with the priority byte transferred in a first clock cycle before other clock cycles of the multiple clock cycles. Ignoring the request may include transferring the block across multiple clock cycles with the priority byte transferred in a clock cycle after the first clock cycle. The data responder may receive the request from a data requestor. The data responder may assert a signal on a wire, connected to the data requestor, to indicate a grant of the request and a transfer of the priority byte in the first clock cycle.