Buffer Pointer Synchronization Across Different Clock Domains

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Integrated circuit devices face challenges in synchronizing data transfer across different clock signals, leading to frequency differences that affect data storage and retrieval efficiency in buffers, requiring a mechanism to accurately compare and synchronize pointers across distinct clock domains.

Innovation Solution

A buffer controller is designed with a pointer generator, code converter, synchronizer, and comparator to encode and synchronize pointers across different clock signals, using transmission codes that change only a single bit per clock period, ensuring accurate comparison and synchronization of pointers to manage buffer states.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is stored and retrieved using clock signals from different sources, then data transfer between integrated circuit devices can proceed, but frequency differences in the clock signals cause synchronization issues between pointers

Engineering Contradiction:
Improvedata transfer speedVSAvoidpointer synchronization accuracy
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

A synchronizer circuit is introduced as an intermediary component between the write pointer (operating on first clock signal) and the read pointer (operating on second clock signal). The synchronizer receives the write pointer, synchronizes it with the second clock signal domain, and outputs a synchronized pointer that can be accurately compared with the read pointer. This mediator resolves the frequency difference issue without affecting the data transfer speed between the two clock domains.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The pointer synchronization process is divided into separate stages: (1) pointer generation in the first clock domain, (2) clock domain crossing through the synchronizer, and (3) pointer comparison in the second clock domain. This segmentation allows each stage to operate independently with its own timing requirements, preventing the frequency differences from causing synchronization errors while maintaining overall system throughput.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If a buffer is used to compensate for frequency differences, then data can be stored according to one clock signal and output according to another, but pointer synchronization becomes complex

Engineering Contradiction:
Improveclock signal compatibilityVSAvoidpointer synchronization mechanism
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The synchronizer acts as a dedicated intermediary that handles all clock domain crossing requirements for the pointer. By concentrating the synchronization logic in this single component, the design achieves clock signal compatibility between different domains while keeping the overall pointer synchronization mechanism relatively simple and localized.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The synchronizer is designed to handle multiple pointer types and clock frequency combinations through a unified synchronization mechanism. This multi-functional approach allows the same synchronizer circuit to work with different buffer sizes, different clock frequencies, and different data widths, reducing the need for multiple specialized synchronization circuits and thereby reducing overall device complexity.

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

Data Source

PatentUS10509760B2Buffer controller, memory device, and integrated circuit device
Publication Date: 2019.12.17 SAMSUNG ELECTRONICS CO LTD
  • US10509760B2 patent drawing
  • US10509760B2 patent drawing
  • US10509760B2 patent drawing

AI summary

A buffer controller includes a pointer generator, a code converter, a synchronizer, a code restorer, and a comparator. The pointer generator operates according to a first clock signal, and generates a first pointer by encoding a first address of a buffer with a first code. The code converter generates a first transmission pointer by converting the first pointer with a second code or a third code according to an amount of data stored in or read from the first address. The synchronizer synchronizes the first transmission pointer with a second clock signal. The code restorer generates a first comparison pointer by restoring the first transmission pointer, synchronized with the second clock signal, with the first code. The comparator compares the first comparison pointer with a second pointer. The second pointer defines a second address of the buffer with the first code.