Bi-directional Bus Data Transfer Latency Reduction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Bi-directional bus data transfer experiences inefficiency due to a required latency period of one full clock cycle, limiting the data transfer rate and causing inactivity during multiple clock cycles, which affects the overall performance of computing systems.

Innovation Solution

Implementing a method and apparatus with multiple bi-directional buses and registers that allow for simultaneous data transfer across both buses, enabling efficient data transfer between a memory controller and a single memory device by buffering write data and synchronizing commands, thereby overcoming latency constraints.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is transferred across a bi-directional bus, then data transfer occurs, but a latency period of one full clock cycle is required between transfers in opposite directions

Engineering Contradiction:
Improvedata transfer rateVSAvoidlatency period
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The invention divides the data transfer process into separate write and read phases. Write data is transferred during a write phase, and read data is transferred during a read phase, preventing simultaneous bidirectional transfers that would cause latency conflicts.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Write data is buffered in advance in write data buffers before the corresponding write command is executed. This preliminary buffering allows the system to prepare data ahead of time, reducing waiting time and improving overall transfer efficiency.

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If a single bi-directional bus is used for data transfer, then the bus structure is simple, but the bus remains inactive during latency periods reducing productivity

Engineering Contradiction:
Improvebus structureVSAvoiddata transfer efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The data bus is segmented into separate write data buffers and read data buffers, allowing independent transfer operations. This segmentation enables the bus to remain active continuously by separating conflicting write and read operations into different buffer structures.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Write data buffers act as intermediary storage structures between the data bus and the array. These buffers absorb the latency by holding write data until the array is ready, preventing bus idle time while maintaining data integrity.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If write data is transferred before the write command, then data transfer efficiency improves, but data may be lost if not properly synchronized

Engineering Contradiction:
Improvedata transfer efficiencyVSAvoiddata synchronization
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

Write data is transferred to write data buffers in advance of the write command execution. This preliminary action improves efficiency by preparing data ahead of time while the buffer structure ensures data is held safely until the array is ready to receive it.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses command timing and buffer management to provide feedback control. The write command timing is coordinated with the buffer status, ensuring data is transferred only when the array is ready, maintaining synchronization and reliability.

Inventive Principle:
Principle #23Feedback

Data Source

PatentEP1955172B1Method and apparatus for data transfer
Publication Date: 2010.07.14 ATI TECHNOLOGIES ULC
  • EP1955172B1 patent drawingFigure 1~3
  • EP1955172B1 patent drawingFigure 4~6
  • EP1955172B1 patent drawingFigure 5

AI summary

A method and apparatus for data transfer includes receiving a first data packet across a first bi-directional bus and receiving a second data packet across a second bi-directional bus. Next, the first data packet is written to a first register operably coupled to the first bi-directional bus and the second bi-directional bus. The second data packet is written to a second register operably coupled to the first bi-directional bus and the second bi-directional bus. The second data packet is then transferred across the first bi-directional bus and the first data packet is transferred across the second bi-directional bus, thereby providing data transfer across a plurality of bi-directional buses and providing for data to be transferred across those buses to be stored at an intermediate register so that the data may be transferred in the next clock cycle, overcoming any latency requirements.