KR20170109375A - Apparatus for frequency adaptation to transfer asynchronous data - Google Patents

Apparatus for frequency adaptation to transfer asynchronous data Download PDF

Info

Publication number
KR20170109375A
KR20170109375A KR1020160033413A KR20160033413A KR20170109375A KR 20170109375 A KR20170109375 A KR 20170109375A KR 1020160033413 A KR1020160033413 A KR 1020160033413A KR 20160033413 A KR20160033413 A KR 20160033413A KR 20170109375 A KR20170109375 A KR 20170109375A
Authority
KR
South Korea
Prior art keywords
clock
signal
frequency
buffer
data
Prior art date
Application number
KR1020160033413A
Other languages
Korean (ko)
Inventor
이승우
강헌식
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020160033413A priority Critical patent/KR20170109375A/en
Publication of KR20170109375A publication Critical patent/KR20170109375A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0091Transmitter details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/0001Arrangements for dividing the transmission path
    • H04L5/0003Two-dimensional division
    • H04L5/0005Time-frequency
    • H04L5/0007Time-frequency the frequencies being orthogonal, e.g. OFDM(A), DMT
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/22Arrangements affording multiple use of the transmission path using time-division multiplexing
    • H04L5/26Arrangements affording multiple use of the transmission path using time-division multiplexing combined with the use of different frequencies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

Disclosed is a frequency adaptation apparatus to transmit asynchronous data. The frequency adaptation apparatus to transmit asynchronous data comprises: a buffer which is formed with a dual port RAM having two different frequency characteristics; a divider which converts a host clock and a client clock respectively into a divided clock signal of the host clock and a divided clock signal of the client clock; a phase detector which outputs a set signal and a clear signal by each of the converted divided clocks in the divider; a threshold generator which receives the set signal and the clear signal outputted from the phase detector and outputs the signals during a predetermined period so that a PD-DET value becomes one; and a threshold value detector which continuously outputs data stored in the buffer by setting a dummy_sel signal to zero if the PD_DET signal outputted by the threshold generator maintains one during the predetermined period. Thus, the present invention can transmit asynchronous data easily.

Description

비동기 데이터의 전송을 위한 주파수 적응 장치{APPARATUS FOR FREQUENCY ADAPTATION TO TRANSFER ASYNCHRONOUS DATA}[0001] APPARATUS FOR FREQUENCY ADAPTATION TO TRANSFER ASYNCHRONOUS DATA [0002]

본 발명은 비동기 데이터의 전송을 위한 주파수 적응 장치에 관한 것으로, 더욱 상세하게는 비동기 특성을 갖는 끊김 없는 데이터를 전송하기 위한 호스트 주파수를 갖는 데이터를 클라이언트 주파수에 정해진 주파수 비율로 매칭(matching)하거나 클라이언트 주파수를 갖는 데이터를 호스트 주파수에 정해진 주파수 비율로 매칭하여 용이하게 데이터를 전달하기 위한 비동기 데이터의 전송을 위한 주파수 적응 장치에 관한 것이다.The present invention relates to a frequency adaptation apparatus for transmitting asynchronous data, and more particularly, to a frequency adaptation apparatus for transmitting data having a host frequency for transmitting seamless data having asynchronous characteristics to a client frequency at a predetermined frequency ratio, To a frequency adaptation apparatus for transmitting asynchronous data for easily transmitting data by matching data having a frequency to a host frequency at a predetermined frequency ratio.

코히어런트(coherent) 광 OFDM(orthogonal frequency-division multiplexing)은 광통신 분야에서 최근 주목받는 변조(modulation) 방법이다. 이는 코히어런트 광검출 방식과 OFDM의 강력한 2가지 기법을 조합하여 만들어졌다. 특히, OFDM은 지난 10년 동안 무선통신에서 각광받은 물리계층의 인터페이스 기술에 해당된다. 이 기술을 이용하여 다수의 캐리어를 사용하는 OFDM 방식의 광트랜시버를 이용하는 경우, 단일 캐리어를 사용하는 경우에 비해서 효율적으로 높은 대역폭을 갖는 채널을 지원할 수 있다는 장점을 갖는다.Coherent optical orthogonal frequency-division multiplexing (OFDM) is a recently-noted modulation method in the field of optical communications. It is made by combining two powerful techniques of coherent optical detection and OFDM. In particular, OFDM corresponds to the interface technology of the physical layer that has been spotlighted in wireless communication for the last 10 years. When an OFDM optical transceiver using a plurality of carriers is used by using this technique, a channel having a higher bandwidth can be efficiently supported as compared with the case of using a single carrier.

특히, OFDM과 장거리 전송을 위한 FEC를 추가하여 수신하는 경우 수신단에서는 프레임 단위로 동기를 맞추는 것이 중요하다. 이를 위하여 FEC의 코드 블록 단위의 크기와 OFDM을 이용하여 전송하는 프레임의 크기를 배수 단위로 맞추는 것이 반드시 필요하다. 이 경우, 호스트에서 전송하는 데이터 비트율(Data bit rate)은 OTU 프레임을 전송하지만, 정해진 한 프레임의 코드 블록과는 정해진 비트율이 서로 상이하여 두 신호들의 동작 주파수의 데이터 비트율을 맞춰주기 위한 주파수 적응 블록 설계가 필요하다. 참고로, 일반적으로 호스트의 동작 주파수는 클라이언트의 동작 주파수보다 느리다.In particular, when receiving FEC for OFDM and long distance transmission, it is important to synchronize frame by frame at the receiving end. For this purpose, it is necessary to adjust the size of the FEC code block unit and the size of the frame to be transmitted using OFDM in units of multiples. In this case, the data bit rate transmitted from the host transmits the OTU frame, but the frequency adaptation block for matching the data bit rate of the operation frequency of the two signals, Design is required. For reference, the operating frequency of the host is generally slower than the operating frequency of the client.

종래의 서로 다른 클럭 주파수를 갖는 비동기 네트워크에서 데이터를 전달하고, 클럭 주파수를 맞추기 위한 설계는 완충 버퍼(elastic buffer)를 많이 사용한다. 하지만, 이는 거의 수백 ppm 단위의 주파수 차이를 갖는 송수신 기능의 물리 계층에서 주로 사용하지만, 클럭 주파수의 차이가 많이 발생하는 경우에는 사용하기 힘들다는 문제점이 있다.Conventional designs for transferring data in asynchronous networks with different clock frequencies and matching clock frequencies often use an elastic buffer. However, this is mainly used in the physical layer of the transmitting / receiving function having a frequency difference of several hundreds of ppm, but it is difficult to use it when the difference in clock frequency occurs a lot.

상기한 바와 같은 문제점을 극복하기 위한 본 발명의 목적은 비동기 특성을 갖는 데이터를 호스트 및 클라이언트 클럭의 주파수 비율에 맞춰서 정해진 형식을 갖는 더미 데이터를 추가 또는 제거하여 손쉽게 비동기 데이터를 전달할 수 있도록 한 비동기 데이터의 전송을 위한 주파수 적응 장치를 제공하는 것이다.In order to overcome the problems described above, an object of the present invention is to provide an asynchronous data transfer method and an asynchronous data transfer method capable of easily transferring asynchronous data by adding or removing dummy data having a predetermined format according to a frequency ratio of a host and a client clock, And to provide a frequency adaptation device for the transmission of the signal.

상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 비동기 데이터의 전송을 위한 주파수 적응 장치는, 두개의 서로 다른 주파수 특성을 갖는 이중 포트 램으로 구성된 완충 버퍼와, 호스트 클럭과 클라이언트 클럭을 각각 호스트 클럭의 분주된 클럭 신호와 클라이언트 클럭의 분주된 클럭 신호로 변환하는 분주기와, 상기 분주기에서 각각 변환된 분주 클럭에 따라서 SET 신호 및 CLEAR 신호를 출력하는 위상 검출기와, 상기 위상 검출기에서 출력되는 SET 신호 및 CLEAR 신호를 입력받아 일정 구간 동안 PD_DET값이 '1'이 되도록 출력하는 임계치 생성기 및 상기 임계치 생성기에서 출력한 PD_DET 신호가 일정 구간 동안 '1'을 유지하면 dummy_sel 신호를 '0'으로 설정하여 상기 완충 버퍼에 저장된 데이터를 지속적으로 출력하는 임계치 검출기를 포함한다.According to an aspect of the present invention, there is provided a frequency adaptation apparatus for transmitting asynchronous data, the apparatus including: a buffer buffer having a dual port RAM having two different frequency characteristics; A phase detector for outputting a SET signal and a CLEAR signal in accordance with the divided clocks respectively converted in the frequency divider; A threshold generator for receiving the SET signal and the CLEAR signal and outputting a PD_DET value of '1' for a predetermined period, and a dummy_sel signal being set to '0' when the PD_DET signal output from the threshold generator maintains '1' And a threshold detector for continuously outputting data stored in the buffer buffer.

상술한 바와 같은 비동기 데이터의 전송을 위한 주파수 적응 장치에 따르면, 비동기 데이터에 더미 데이터를 주기적으로 추가 및 삭제함으로써 용이하게 데이터를 전송하여 끊김 없이 일정한 비율의 주파수 변환이 가능한 효과를 제공할 수 있다.According to the frequency adaptation apparatus for transmitting asynchronous data as described above, it is possible to easily transmit data by periodically adding and deleting dummy data to asynchronous data, thereby providing an effect of seamlessly performing frequency conversion at a constant rate.

도 1은 일반적인 완충 버퍼를 사용한 장치의 구성을 도시한 블록도이다.
도 2는 본 발명의 일 실시예에 따른 호스트 장치로부터 호스트 클럭 주파수에 동기된 데이터를 입력받아서 클라이언트 클럭 주파수에 동기된 데이터를 클라이언트 장치에 공급하기 위한 장치의 구성을 도시한 블록도이다.
도 3은 클라이언트로부터 클라이언트 클럭 주파수에 동기된 데이터를 입력받아서 호스트에 호스트 클럭 주파수에 동기된 데이터를 공급하기 위한 장치의 구성을 도시한 블록도이다.
도 4는 호스트 클럭과 클라이언트 클럭의 각각 분주된 클럭 신호의 위상 차이가 발생하는 경우에 데이터를 전송하기 위한 장치의 신호 별 타이밍도를 나타낸다.
도 5는 도 4와 동일한 조건에서 호스트 클럭과 클라이언트 클럭의 각각 분주된 클럭 신호의 위상 차이가 발생하지 않는 경우에 더미 데이터를 전송하기 위한 장치의 신호별 타이밍도를 나타낸다.
도 6은 호스트 클럭과 클라이언트 클럭의 각각 분주된 클럭 신호의 위상 차이가 발생하는 경우에 데이터를 수신하기 위한 장치의 신호 별 타이밍도를 나타낸다.
도 7은 도 6과 동일한 조건에서 호스트 클럭과 클라이언트 클럭의 각각 분주된 클럭 신호의 위상 차이가 발생하지 않는 경우에 더미 데이터를 수신하기 위한 장치의 신호별 타이밍도를 나타낸다.
도 8은 본 발명의 일 실시예에 따른 호스트 장치로부터 호스트 클럭 주파수에 동기된 데이터를 입력받아서 클라이언트 클럭 주파수에 동기된 데이터를 클라이언트 장치에 공급하기 위한 방법을 도시한 흐름도이다.
도 9는 클라이언트로부터 클라이언트 클럭 주파수에 동기된 데이터를 입력받아서 호스트에 호스트 클럭 주파수에 동기된 데이터를 공급하기 위한 방법을 도시한 흐름도이다.
1 is a block diagram showing the configuration of a device using a general buffer buffer.
2 is a block diagram illustrating a configuration of an apparatus for receiving data synchronized with a host clock frequency from a host apparatus according to an embodiment of the present invention and supplying data synchronized with a client clock frequency to a client apparatus.
3 is a block diagram showing a configuration of an apparatus for receiving data synchronized with a client clock frequency from a client and supplying data synchronized with the host clock frequency to the host.
4 is a timing chart for each signal of an apparatus for transmitting data when a phase difference between clock signals of a host clock and a client clock is generated.
5 is a timing chart for each signal of an apparatus for transmitting dummy data when a phase difference between divided clock signals of a host clock and a client clock does not occur under the same condition as FIG.
FIG. 6 shows a signal-specific timing diagram of an apparatus for receiving data when a phase difference between a clock signal of a host clock and a clock signal of a client clock is generated.
FIG. 7 is a timing chart for each signal of the apparatus for receiving dummy data when the phase difference between the divided clock signals of the host clock and the client clock does not occur under the same condition as FIG.
8 is a flowchart illustrating a method for receiving data synchronized with a host clock frequency from a host device according to an embodiment of the present invention and supplying data synchronized with the client clock frequency to the client device.
9 is a flowchart illustrating a method for receiving data synchronized with a client clock frequency from a client and supplying data synchronized with the host clock frequency to the host.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 기재에 의해 정의된다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자 이외의 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention and the manner of achieving them will become apparent with reference to the embodiments described in detail below with reference to the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. And is provided to fully convey the scope of the invention to those skilled in the art, and the present invention is defined by the claims. It is to be understood that the terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. In the present specification, the singular form includes plural forms unless otherwise specified in the specification. It is noted that " comprises, " or "comprising," as used herein, means the presence or absence of one or more other components, steps, operations, and / Do not exclude the addition.

이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가급적 동일한 부호를 부여하고, 또한 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있는 경우에는 그 상세한 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the drawings, the same reference numerals are given to the same or similar components, and in the following description of the present invention, Detailed explanations of the detailed description will be omitted when the gist of the present invention can be obscured.

도 1은 일반적인 완충 버퍼를 사용한 장치의 구성을 도시한 블록도이다.1 is a block diagram showing the configuration of a device using a general buffer buffer.

도 1을 참조하면, 서로 다른 클럭 주파수를 갖는 비동기 네트워크에서 데이터를 전달하고, 클럭 주파수를 맞추기 위하여 완충 버퍼(elastic buffer)(101)를 사용한다. 하지만, 이는 거의 수백 ppm 단위의 주파수 차이를 갖는 송수신 기능의 물리 계층에서 주로 사용하지만, 클럭 주파수의 차이가 많이 발생하는 경우에는 사용하기 힘들다.Referring to FIG. 1, an elastic buffer 101 is used to transfer data in an asynchronous network having different clock frequencies and to adjust a clock frequency. However, this is mainly used in the physical layer of the transmitting and receiving function having a frequency difference of several hundreds of ppm, but it is difficult to use when the difference in the clock frequency is large.

도 2는 본 발명의 일 실시예에 따른 호스트 장치로부터 호스트 클럭 주파수에 동기된 데이터를 입력받아서 클라이언트 클럭 주파수에 동기된 데이터를 클라이언트 장치에 공급하기 위한 장치의 구성을 도시한 블록도이다.2 is a block diagram illustrating a configuration of an apparatus for receiving data synchronized with a host clock frequency from a host apparatus according to an embodiment of the present invention and supplying data synchronized with a client clock frequency to a client apparatus.

도 2를 참조하면, 본 발명의 장치는 원형 버퍼(circular buffer) 또는 완충 버퍼(elastic buffer)(201)와, 분주기(divider)(202,203)와, 위상 검출기(phase detector)(204)와, 임계치 생성기(threshold generator)(205)와, 임계치 검출기(threshold detector)(206)를 포함한다.2, the apparatus of the present invention includes a circular buffer or an elastic buffer 201, a plurality of divider units 202 and 203, a phase detector 204, A threshold generator 205, and a threshold detector 206. The threshold generator 206 may be implemented as a digital filter.

완충 버퍼(201)는 2개의 서로 다른 주파수 특성을 갖는 이중 포트 램(dual port RAM)으로 구성하고, 쓰기 주소 및 읽기 주소는 크기가 N인 버퍼(buffer)의 주솟값을 나머지 계산을 통해 순환(circulate)하도록 된다.The buffer buffer 201 is composed of a dual port RAM having two different frequency characteristics. The write address and the read address are generated by circulating a sine value of a buffer having a size of N, circulate.

분주기(202,203)는 완충 버퍼(201)의 주소와는 별도로 쓰기 및 읽기 동작을 수행할 때마다 카운트하여 1/n로 분주한다. 일단, 분주기(202)는 호스트 클럭에 맞춰서 호스트로부터 입력받은 데이터는 지속적으로 완충 버퍼(201)에 쓰기 동작을 수행한다. 반면, 분주기(203)는 클라이언트 클럭에 맞춰서 완충 버퍼(201)에 저장된 데이터를 읽기 동작을 통해서 읽어간다. 이때, 호스트 클럭의 주파수는 클라이언트 클럭의 주파수보다 느리기 때문에 호스트 클럭에 의해 저장되지 않은 시점에 클라이언트 클럭에 의해서 데이터를 읽어가게 되어 언더플로우(underflow) 현상이 발생할 수 있다. 본 발명에서는 이를 방지하기 위하여 주기적으로 완충 버퍼(201)에 저장된 데이터를 대신하여 더미 데이터를 클라이언트 데이터로 출력한다. 여기서, 더미 데이터를 전송하는 시점은 다음과 같다.Separate from the address of the buffer 201, the divider 202 or 203 counts each time the write and read operations are performed, and divides by 1 / n. First, in the frequency divider 202, data received from the host in accordance with the host clock is continuously written to the buffer buffer 201. On the other hand, the divider 203 reads the data stored in the buffer 201 in accordance with the client clock through a read operation. At this time, since the frequency of the host clock is slower than the frequency of the client clock, data is read by the client clock at a time when it is not stored by the host clock, and underflow phenomenon may occur. In the present invention, dummy data is periodically output as client data instead of data stored in the buffer buffer 201 to prevent this. Here, the time point at which the dummy data is transmitted is as follows.

본 발명에서 더미 데이터를 생성하는 시점은 다음과 같이 정해진다.The time point at which dummy data is generated in the present invention is determined as follows.

우선, 호스트 클럭과 클라이언트 클럭은 각각 정해진 분주수(n)를 갖는 분주기(202,203)를 통해 호스트 클럭의 분주된 클럭 count_wr 신호와 클라이언트 클럭의 분주된 클럭 count_rd 신호로 변환된다. 각각 변환된 분주 클럭들은 위상 검출기(204)로 입력된다.First, the host clock and the client clock are converted into the frequency-divided clock count_wr signal of the host clock and the frequency-divided clock count_rd signal of the client clock through the frequency dividers 202 and 203 having the predetermined frequency division number (n), respectively. The respective frequency-divided clocks are input to the phase detector 204.

위상 검출기(204)는 입력된 분주 클럭에 따라서 쓰기 동작을 수행하는 count_wr이 '1'로 상승(rise)되는 시점에 SET을 수행하여 PD_DET 값이 '1'이 되도록 한다. 그리고, 읽기 동작을 수행하는 count_rd 값이 '1'로 상승(rise)되는 시점에 CLEAR를 수행하여 PD_DET 값이 '0'이 되도록 한다.The phase detector 204 performs SET at a time point when the count_wr that performs the write operation according to the input dividing clock rises to '1', so that the PD_DET value becomes '1'. Then, when the count_rd value for performing the read operation rises to '1', CLEAR is performed so that the PD_DET value becomes '0'.

전술한 바와 같이, count_wr 및 count_rd 신호는 각 클럭을 1/n만큼 분주한 클럭 신호이다. 분주 클럭 count_wr 신호와 count_rd 신호의 위상이 차이가 발생하면 위상 검출기(204)의 출력인 SET 및 CLEAR 신호에 의해 PD_DET 값이 '1'이 되는 일정한 구간이 발생하고 이는 위상 차이가 발생하는 구간에 해당한다. 이는 쓰는 동작에 의해 저장된 데이터를 읽는 동작에 의해 읽을 수 있는 데이터가 저장되어 있음을 의미한다. 따라서, 읽기 동작을 수행하기 전에 PD_DET 값이 '1'인 경우에는 완충 버퍼(201)에 저장된 데이터를 출력하여 클라이언트에 제공할 수 있음을 의미한다.As described above, the count_wr and count_rd signals are clock signals obtained by dividing each clock by 1 / n. When the phase of the frequency-divided count_wr signal and the frequency of the count_rd signal are different, a constant interval in which the PD_DET value becomes '1' occurs due to the SET and CLEAR signals output from the phase detector 204, do. This means that the readable data is stored by the operation of reading the stored data by the writing operation. Therefore, if the PD_DET value is '1' before performing the read operation, it means that the data stored in the buffer buffer 201 can be output to the client.

앞서 설명한 SET 및 CLEAR 신호는 서로 다른 클럭에 의해서 동작하는 제어 신호이다. 따라서 PD_DET 값을 읽어가는 클럭인 클라이언트 클럭에 동기되어 SET 및 CLEAR 신호가 동작하도록 제어하기 위하여 호스트 클럭에 동기된 SET 신호를 클라이언트 클럭에 다시 동기시키도록 리타이밍(retiming)을 위한 로직이 필요하다. 일반적으로 사용하는 플립플롭(Flip-Flop)을 연속 2개를 사용하여 신호를 리타이밍(retiming)하면 비동기 신호에 의한 meta-stability 문제를 해결할 수 있다. 따라서, 앞으로 설명할 SET 신호는 meta-stability가 해결되어 클라이언트 클럭에 다시 동기된 신호(SETr)와 동일한 의미를 갖는다.The SET and CLEAR signals described above are control signals operated by different clocks. Therefore, logic for retiming the SET signal synchronized to the host clock to the client clock is necessary to control the SET and CLEAR signals to operate in synchronization with the client clock, which is the clock reading the PD_DET value. Retiming the signal using two commonly used flip-flops can solve the meta-stability problem caused by asynchronous signals. Therefore, the SET signal to be described in the following description has the same meaning as the signal (SETr) synchronized with the client clock after the meta-stability is solved.

임계치 생성기(205)는 생성된 SET 신호 및 CLEAR 신호를 입력받아서 일정 구간 동안 PD_DET값이 '1'이 되도록 출력한다. 이는 SET 신호를 입력받으면 PD_DET 신호를 '1'로 설정하고, CLEAR 신호를 입력받으면 PD_DET 신호를 '0'으로 설정한다.The threshold generator 205 receives the generated SET signal and CLEAR signal, and outputs the PD_DET value so that the PD_DET value is '1' for a predetermined period. When the SET signal is received, the PD_DET signal is set to '1', and when the CLEAR signal is received, the PD_DET signal is set to '0'.

임계치 검출기(206)는 임계치 생성기(205)에서 출력한 PD_DET 신호가 일정 구간 동안 '1'을 유지하면 dummy_sel 신호를 '0'으로 설정하여 완충 버퍼(201)에 저장된 데이터를 지속적으로 출력한다.The threshold detector 206 continuously outputs the data stored in the buffer 201 by setting the dummy_sel signal to '0' when the PD_DET signal output from the threshold generator 205 holds '1' for a predetermined period.

앞서 설명한 바와 같이, 호스트 클럭의 주파수는 클라이언트 클럭의 주파수보다 느리기 때문에 클라이언트 클럭의 분주된 클럭 신호인 count_rd 신호의 위상과 count_wr의 위상 차이는 점차 줄어든다. 결국, count_wr에 의한 SET 되는 시점과 count_rd에 의해 CLEAR 되는 시점이 동일한 시점에 발생하는 경우가 발생한다. 이 경우에는 임계치 생성기(205)의 PD_DET 값은 지속적으로 '0'을 유지하고, 임계치 검출기(206)는 PD_DET 값이 '0'이 되는 구간 중에서 dummy_sel 신호를 한 사이클 동안 '1'을 유지하여 정해진 더미 데이터를 출력하게 된다.As described above, since the frequency of the host clock is slower than the frequency of the client clock, the phase difference between the count_rd signal and the count_wr, which is the frequency-divided clock signal of the client clock, is gradually reduced. As a result, there is a case where the time of SET by count_wr and the time of CLEAR by count_rd occur at the same time. In this case, the PD_DET value of the threshold generator 205 continuously maintains '0', and the threshold detector 206 keeps '1' during one cycle of the dummy_sel signal in the interval where the PD_DET value becomes '0' Dummy data is output.

도 3은 클라이언트로부터 클라이언트 클럭 주파수에 동기된 데이터를 입력받아서 호스트에 호스트 클럭 주파수에 동기된 데이터를 공급하기 위한 장치의 구성을 도시한 블록도이다.3 is a block diagram showing a configuration of an apparatus for receiving data synchronized with a client clock frequency from a client and supplying data synchronized with the host clock frequency to the host.

도 3을 참조하면, 본 발명의 장치는 원형 버퍼(circular buffer) 또는 완충 버퍼(elastic buffer)(301)와, 분주기(divider)(302,303)와, 위상 검출기(phase detector)(304)와, 임계치 생성기(threshold generator)(305)와, 임계치 검출기(threshold detector)(306)를 포함한다.3, the apparatus of the present invention includes a circular buffer or an elastic buffer 301, a divider 302 and 303, a phase detector 304, A threshold generator 305, and a threshold detector 306. The threshold generator 306 may be implemented by a processor.

완충 버퍼(301)는 도 2에서 서술한 바와 동일하게 2개의 서로 다른 주파수 특성을 갖는 이중 포트 램(dual port RAM)으로 구성된다.The buffer buffer 301 is composed of a dual port RAM having two different frequency characteristics as described in FIG.

분주기(302,303)는 완충 버퍼(301)의 주소와는 별도로 쓰기 및 읽기 동작을 수행할 때마다 카운트하여 1/n로 분주한다. 일단, 분주기(302)는 클라이언트 클럭에 맞춰서 클라이언트로부터 입력받은 데이터는 지속적으로 완충 버퍼(301)에 쓰기 동작을 수행한다. 반면, 분주기(303)는 호스트 클럭에 맞춰서 완충 버퍼(301)에 저장된 데이터는 읽기 동작을 수행하여 읽어간다. 이때, 클라이언트 클럭의 주파수는 호스트 클럭의 주파수보다 빠르기 때문에 클라이언트 클럭에 의해 저장되지 않은 시점에 호스트 클럭에 의해서 데이터를 읽어가게 되어 오버플로우(overflow) 현상이 발생할 수 있다. 이를 방지하기 위하여 주기적으로 일반 데이터에 포함된 더미 데이터를 무시하고 제거(disard)하여 원형 버퍼에 저장하지 않는 더미 데이터 제거 로직이 필요하다.Separate from the address of the buffer buffer 301, the divider 302 and 303 counts each time the write and read operations are performed, and divides by 1 / n. First, in the frequency divider 302, the data received from the client according to the client clock continuously performs a write operation to the buffer 301. On the other hand, in the frequency divider 303, the data stored in the buffer 301 is read by performing a read operation in accordance with the host clock. At this time, because the frequency of the client clock is faster than the frequency of the host clock, the data is read by the host clock at a time when the client clock does not store the data, thereby causing an overflow phenomenon. To prevent this, there is a need for a dummy data removal logic that periodically discards the dummy data included in the general data and disposes the data so as not to be stored in the circular buffer.

더미 데이터를 제거하는 시점은 다음과 같이 정해진다.The point at which dummy data is removed is determined as follows.

우선, 호스트 클럭과 클라이언트 클럭은 각각 정해진 분주수(1/n)를 갖는 분주기(302,303)를 통해 분주된 클럭 count_rd과 count_wr 신호로 변환된다. 각각 변환된 클럭은 위상 검출기(304)에 입력된다.First, the host clock and the client clock are converted into the clocks count_rd and count_wr signals divided through the dividers 302 and 303 having the predetermined division number (1 / n), respectively. Each converted clock is input to a phase detector 304.

위상 검출기(304)는 입력된 분주된 클럭에 따라서 쓰기 동작을 수행하는 count_wr이 '1'로 상승(rise)되는 시점에 SET을 수행하여 PD_DET 값이 '1'이 되도록 한다. 그리고, count_rd 값이 '1'로 상승(rise)되는 시점에 CLEAR를 수행하여 PD_DET 값이 '0'이 되도록 한다. 앞서 서술한 바와 같이, count_wr 및 count_rd 신호는 각 클럭을 1/n만큼 분주한 클럭 신호이다.The phase detector 304 performs SET at a time point when the count_wr that performs the write operation according to the inputted divided clock rises to '1', so that the PD_DET value becomes '1'. Then, CLEAR is performed at the time when the count_rd value rises to '1', so that the PD_DET value becomes '0'. As described above, the count_wr and count_rd signals are clock signals obtained by dividing each clock by 1 / n.

위상 검출기(304)의 출력인 SET 및 CLEAR 신호는 count_wr과 count_rd 신호의 위상이 차이가 발생하면 PD_DET 값이 '1'이 일정한 구간, 즉 위상 차이가 발생하는 구간에 해당한다. 이는 쓰는 동작에 의해 저장된 데이터를 읽는 동작에 의해 읽을 수 있는 데이터가 저장되어 있음을 의미한다. 따라서, 쓰기 동작을 수행하기 전에 PD_DET 값이 '1'인 경우에는 완충 버퍼(301)에 일반 데이터를 저장하여 호스트가 읽어갈 수 있도록 한다.The SET and CLEAR signals output from the phase detector 304 correspond to a period in which the PD_DET value is '1' constant, that is, a phase difference occurs when the count_wr and count_rd signals differ in phase. This means that the readable data is stored by the operation of reading the stored data by the writing operation. Therefore, if the PD_DET value is '1' before performing the write operation, the general data is stored in the buffer 301 so that the host can read it.

앞서 설명한 바와 같이, 클라이언트 클럭의 주파수는 호스트 클럭의 주파수보다 빠르기 때문에 클라이언트 클럭의 분주된 클럭 신호인 count_wr 신호의 위상과 count_rd의 위상 차이는 점차 증가한다. 결국, count_wr에 의해 SET 되는 시점과 count_rd에 의해 CLEAR 되는 시점이 동일한 시점에 발생하는 경우가 발생한다. 이 경우에는 PD_DET 값은 지속적으로 '1'을 유지하고, 한번만 정해진 더미 데이터를 제거하여 저장하는 동작을 중지한다.As described above, since the frequency of the client clock is faster than the frequency of the host clock, the phase difference between the count_wr signal and the count_rd of the frequency-divided clock signal of the client clock gradually increases. As a result, it may happen that the time set by count_wr and the time cleared by count_rd occur at the same time. In this case, the PD_DET value is continuously maintained at '1', and the operation of removing and storing the predetermined dummy data is stopped.

도 4는 호스트 클럭과 클라이언트 클럭의 각각 분주된 클럭 신호의 위상 차이가 발생하는 경우에 데이터를 전송하기 위한 장치의 신호 별 타이밍도를 나타낸다.4 is a timing chart for each signal of an apparatus for transmitting data when a phase difference between clock signals of a host clock and a client clock is generated.

도 4를 참조하면, 완충 버퍼의 주소 크기는 18개이고, count_wr 및 count_rd는 10분주되어 n 값이 10인 경우에 해당된다. 도 4에서 노란색 부분(A)에 속한 신호들인 DATA_HOST, wrAddr, count_wr, SET 신호들은 CLK_HOST 클럭 신호에 동기된 신호들이고, 녹색 부분(B)에 속한 신호들인 SETr, PD_DET, CLEAR, count_rd, rdAddr, DATA_CLIENT, dummy_sel 신호들은 CLK_CLIENT 클럭에 동기되어 동작하는 신호들이다.Referring to FIG. 4, the address size of buffer buffer is 18, count_wr and count_rd are divided by 10, and n corresponds to 10. In FIG. 4, signals DATA_HOST, wrAddr, count_wr, and SET belonging to the yellow part A are signals synchronized with the CLK_HOST clock signal, and signals belonging to the green part B, such as SETr, PD_DET, CLEAR, count_rd, rdAddr, DATA_CLIENT , and dummy_sel signals are signals that operate in synchronization with the CLK_CLIENT clock.

우선, 완충 버퍼의 주소 크기는 18이기 때문에 wrAddr은 ad1~ad18까지의 주소 값을 갖고, 데이터는 저장되는 코드 블록 단위를 10개의 데이터를 하나의 코드 블록으로 가정한다. 따라서, count_wr 값은 10 분주하도록 동작한다.First, since the buffer size of the buffer is 18, wrAddr assumes an address value from ad1 to ad18, and the data is assumed to be a block of code blocks and 10 data blocks as one code block. Therefore, the count_wr value operates to divide by 10.

도 4에 에서와 같이, count_wr이 분주될 때마다 SET 신호는 한클럭 사이클 동안 '1'이 된다. 이 SET 신호는 CLK_CLIENT 클럭에 동기된 신호인 SETr 신호로 리타이밍(retiming)되고, SETr 신호는 PD_DET 값을 '1'로 설정하게 된다. 반면, rdAddr 역시 ad1~ad18까지의 주소 값을 갖고, 데이터를 읽어가는 코드 블록 단위를 10개의 데이터가 하나의 코드 블록으로 가정하기 때문에 count_rd 값은 10분주하도록 동작한다. Count_rd 값이 분주될 때마다 CLEAR 신호를 한클럭 사이클 동안 '1'이되고, 이 CLEAR 신호는 PD_DET 값을 '0'으로 리셋하게 된다. 또한, count_rd가 분주되는 시점, 즉 CLEAR 신호가 '1'이 되는 시점은 10개의 코드 블록을 읽어가는 시점인데, 이 때 PD_DET가 '1'을 유지하면 완충 버퍼에 저장된 데이터를 읽어가면 된다. 따라서, dummy_sel은 '0' 값을 갖는다.As shown in FIG. 4, whenever the count_wr is divided, the SET signal becomes '1' for one clock cycle. This SET signal is retimed to the SETr signal which is a signal synchronized with the CLK_CLIENT clock, and the SETr signal sets the PD_DET value to '1'. On the other hand, rdAddr also has address values from ad1 to ad18, and count_rd value operates by 10 times because 10 data blocks are assumed to be one code block. Each time the Count_rd value is divided, the CLEAR signal becomes '1' for one clock cycle, and this CLEAR signal resets the PD_DET value to '0'. In addition, when the count_rd is divided, that is, when the CLEAR signal becomes '1', 10 code blocks are read. If the PD_DET holds '1' at this time, the data stored in the buffer can be read. Therefore, dummy_sel has a value of '0'.

도 5는 도 4와 동일한 조건에서 호스트 클럭과 클라이언트 클럭의 각각 분주된 클럭 신호의 위상 차이가 발생하지 않는 경우에 더미 데이터를 전송하기 위한 장치의 신호별 타이밍도를 나타낸다.5 is a timing chart for each signal of an apparatus for transmitting dummy data when a phase difference between divided clock signals of a host clock and a client clock does not occur under the same condition as FIG.

도 4와 동일하게 count_wr이 분주되는 시점에 SETr 신호가 리타이밍(retiming)되어 PD_DET 값을 '1'로 설정하지만, 동시에 CLEAR 신호도 PD_DET 값을 '0'으로 설정하게 된다. 이렇게 동시에 SET과 CLEAR가 발생하는 경우, 본 발명에서는 PD_DET 값이 '1'로 설정되도록 동작한다.4, the SETr signal is retimed at a time when the count_wr is divided and the PD_DET value is set to '1', and at the same time, the C_LEAR signal also sets the PD_DET value to '0'. When SET and CLEAR occur simultaneously, the PD_DET value is set to '1' in the present invention.

따라서, count_rd가 분주되는 시점의 첫번째는 PD_DET 값이 '0'이지만, 이후는 count_rd가 분주되는 시점에서 PD_DET값은 '1'로 유지된다. 그러므로, 한 사이클 동안은 dummy_sel이 '1'을 유지하여 더미 데이터를 선택하여 전달하도록 동작하고, 나머지 사이클 동안은 dummy_sel 값이 '0'을 유지하여 완충 버퍼에 저장된 데이터를 선택하여 전달하도록 동작한다.Therefore, the PD_DET value is '0' at the first time when the count_rd is divided, but the PD_DET value is maintained at '1' when the count_rd is divided. Therefore, during one cycle, the dummy_sel maintains '1' to select and transmit the dummy data, and during the remaining cycles, the dummy_sel value is maintained at '0' to select and transmit the data stored in the buffer.

도 6은 호스트 클럭과 클라이언트 클럭의 각각 분주된 클럭 신호의 위상 차이가 발생하는 경우에 데이터를 수신하기 위한 장치의 신호 별 타이밍도를 나타낸다. 도 6에서는 일례로 완충 버퍼의 주소 크기는 18개이고, count_wr 및 count_rd는 10분주되어 n 값이 10인 경우에 해당된다.FIG. 6 shows a signal-specific timing diagram of an apparatus for receiving data when a phase difference between a clock signal of a host clock and a clock signal of a client clock is generated. In FIG. 6, for example, the address size of the buffer buffer is 18, and count_wr and count_rd are divided by 10 and the value of n is 10.

도 7은 도 6과 동일한 조건에서, 호스트 클럭과 클라이언트 클럭의 각각 분주된 클럭 신호의 위상 차이가 발생하지 않는 경우에 더미 데이터를 수신하기 위한 장치의 신호별 타이밍도를 나타낸다.7 is a timing chart for each signal of the apparatus for receiving dummy data when the phase difference between the divided clock signals of the host clock and the client clock does not occur under the same condition as in Fig.

도 8은 본 발명의 일 실시예에 따른 호스트 장치로부터 호스트 클럭 주파수에 동기된 데이터를 입력받아서 클라이언트 클럭 주파수에 동기된 데이터를 클라이언트 장치에 공급하기 위한 방법을 도시한 흐름도이다.8 is a flowchart illustrating a method for receiving data synchronized with a host clock frequency from a host device according to an embodiment of the present invention and supplying data synchronized with the client clock frequency to the client device.

도 8을 참조하면, 완충 버퍼는 쓰기 주소 및 읽기 주소는 크기가 N인 버퍼(buffer)의 주소 값을 나머지 계산을 통해 순환(circulate)하도록 된다(S801).Referring to FIG. 8, the buffer buffer circulates an address value of a buffer having a size N to a write address and a read address through a remaining calculation (S801).

이어서, 분주기는 완충 버퍼의 주소와는 별도로 쓰기 및 읽기 동작을 수행할 때마다 카운트하여 1/n로 분주한다(S802). 이때, 호스트 클럭에 맞춰서 호스트로부터 입력받은 데이터는 지속적으로 완충 버퍼에 쓰기 동작을 수행한다. 또한, 클라이언트 클럭에 맞춰서 완충 버퍼에 저장된 데이터를 읽기 동작을 통해서 읽어간다. 이때, 호스트 클럭의 주파수는 클라이언트 클럭의 주파수보다 느리기 때문에 호스트 클럭에 의해 저장되지 않은 시점에 클라이언트 클럭에 의해서 데이터를 읽어가게 되어 언더플로우(underflow) 현상이 발생할 수 있다. 본 발명에서는 이를 방지하기 위하여 주기적으로 완충 버퍼에 저장된 데이터를 대신하여 더미 데이터를 클라이언트 데이터로 출력한다. 여기서, 더미 데이터를 생성하는 시점을 살펴보면, 호스트 클럭과 클라이언트 클럭은 각각 정해진 분주수(n)를 갖는 분주기를 통해 호스트 클럭의 분주된 클럭 count_wr 신호와 클라이언트 클럭의 분주된 클럭 count_rd 신호로 변환된다. 각각 변환된 분주 클럭들은 위상 검출기로 입력된다.Subsequently, the frequency divider is counted and divided by 1 / n every time the write and read operations are performed separately from the address of the buffer buffer (S802). At this time, the data input from the host according to the host clock continuously performs the write operation to the buffer buffer. Also, the data stored in the buffer buffer is read through the read operation in accordance with the client clock. At this time, since the frequency of the host clock is slower than the frequency of the client clock, data is read by the client clock at a time when it is not stored by the host clock, and underflow phenomenon may occur. In order to prevent this, the present invention periodically outputs dummy data as client data instead of data stored in the buffer. Here, the dummy data is generated. The host clock and the client clock are respectively converted into a frequency-divided clock count_wr signal of the host clock and a frequency-divided clock count_rd signal of the client clock through a frequency divider having a predetermined frequency division number (n) . The converted divided clocks are input to the phase detector.

이어서, 위상 검출기는 입력된 분주 클럭에 따라서 쓰기 동작을 수행하는 count_wr이 '1'로 상승(rise)되는 시점에 SET을 수행하여 PD_DET 값이 '1'이 되도록 하고, 읽기 동작을 수행하는 count_rd 값이 '1'로 상승(rise)되는 시점에 CLEAR를 수행하여 PD_DET 값이 '0'이 되도록 한다(S803). 이때, count_wr 및 count_rd 신호는 각 클럭을 1/n만큼 분주한 클럭 신호이다. 분주 클럭 count_wr 신호와 count_rd 신호의 위상이 차이가 발생하면 위상 검출기의 출력인 SET 및 CLEAR 신호에 의해 PD_DET 값이 '1'이 되는 일정한 구간이 발생하고 이는 위상 차이가 발생하는 구간에 해당한다. 이는 쓰는 동작에 의해 저장된 데이터를 읽는 동작에 의해 읽을 수 있는 데이터가 저장되어 있음을 의미한다. 따라서, 읽기 동작을 수행하기 전에 PD_DET 값이 '1'인 경우에는 완충 버퍼에 저장된 데이터를 출력하여 클라이언트에 제공할 수 있음을 의미한다.Then, the phase detector sets a PD_DET value to '1' by performing a SET at a time when count_wr, which performs a write operation according to the inputted dividing clock, rises to '1', and counts a count_rd value CLEAR at the time of rising to '1' so that the PD_DET value becomes '0' (S803). At this time, the count_wr and count_rd signals are clock signals in which each clock is divided by 1 / n. When the phase of the divided clock count_wr signal and the signal of the count_rd signal differ from each other, a constant interval in which the PD_DET value becomes '1' occurs due to the SET and CLEAR signals output from the phase detector, which corresponds to a period in which a phase difference occurs. This means that the readable data is stored by the operation of reading the stored data by the writing operation. Therefore, if the PD_DET value is '1' before performing the read operation, it means that the data stored in the buffer buffer can be output to the client.

앞서 설명한 SET 및 CLEAR 신호는 서로 다른 클럭에 의해서 동작하는 제어 신호이다. 따라서 PD_DET 값을 읽어가는 클럭인 클라이언트 클럭에 동기되어 SET 및 CLEAR 신호가 동작하도록 제어하기 위하여 호스트 클럭에 동기된 SET 신호를 클라이언트 클럭에 다시 동기시키도록 리타이밍(retiming)을 위한 로직이 필요하다. 일반적으로 사용하는 플립플롭(Flip-Flop)을 연속 2개를 사용하여 신호를 리타이밍(retiming)하면 비동기 신호에 의한 meta-stability 문제를 해결할 수 있다. 따라서, 앞으로 설명할 SET 신호는 meta-stability가 해결되어 클라이언트 클럭에 다시 동기된 신호(SETr)와 동일한 의미를 갖는다.The SET and CLEAR signals described above are control signals operated by different clocks. Therefore, logic for retiming the SET signal synchronized to the host clock to the client clock is necessary to control the SET and CLEAR signals to operate in synchronization with the client clock, which is the clock reading the PD_DET value. Retiming the signal using two commonly used flip-flops can solve the meta-stability problem caused by asynchronous signals. Therefore, the SET signal to be described in the following description has the same meaning as the signal (SETr) synchronized with the client clock after the meta-stability is solved.

이어서, 임계치 생성기는 생성된 SET 신호 및 CLEAR 신호를 입력받아서 일정 구간 동안 PD_DET값이 '1'이 되도록 출력한다(S804). 이는 SET 신호를 입력받으면 PD_DET 신호를 '1'로 설정하고, CLEAR 신호를 입력받으면 PD_DET 신호를 '0'으로 설정한다.Subsequently, the threshold generator receives the generated SET signal and CLEAR signal, and outputs the PD_DET value so that the PD_DET value becomes '1' (S804). When the SET signal is received, the PD_DET signal is set to '1', and when the CLEAR signal is received, the PD_DET signal is set to '0'.

이어서, 임계치 검출기는 임계치 생성기에서 출력한 PD_DET 신호가 일정 구간 동안 '1'을 유지하면 dummy_sel 신호를 '0'으로 설정하여 완충 버퍼에 저장된 데이터를 지속적으로 출력한다(S805). 이때, 호스트 클럭의 주파수는 클라이언트 클럭의 주파수보다 느리기 때문에 클라이언트 클럭의 분주된 클럭 신호인 count_rd 신호의 위상과 count_wr의 위상 차이는 점차 줄어든다. 결국, count_wr에 의한 SET 되는 시점과 count_rd에 의해 CLEAR 되는 시점이 동일한 시점에 발생하는 경우가 발생한다. 이 경우에는 임계치 생성기의 PD_DET 값은 지속적으로 '0'을 유지하고, 임계치 검출기는 PD_DET 값이 '0'이 되는 구간 중에서 dummy_sel 신호를 한 사이클 동안 '1'을 유지하여 정해진 더미 데이터를 출력하게 된다.If the PD_DET signal output from the threshold generator maintains '1' for a predetermined period, the threshold detector sets the dummy_sel signal to '0' to continuously output the data stored in the buffer buffer (S805). At this time, since the frequency of the host clock is slower than the frequency of the client clock, the phase difference between the count_rd signal and the count_wr, which is the frequency-divided clock signal of the client clock, gradually decreases. As a result, there is a case where the time of SET by count_wr and the time of CLEAR by count_rd occur at the same time. In this case, the PD_DET value of the threshold generator keeps '0' continuously, and the threshold detector keeps '1' during the cycle of the dummy_sel signal in the interval where the PD_DET value becomes '0' to output the determined dummy data .

도 9는 클라이언트로부터 클라이언트 클럭 주파수에 동기된 데이터를 입력받아서 호스트에 호스트 클럭 주파수에 동기된 데이터를 공급하기 위한 방법을 도시한 흐름도이다.9 is a flowchart illustrating a method for receiving data synchronized with a client clock frequency from a client and supplying data synchronized with the host clock frequency to the host.

도 9를 참조하면, 완충 버퍼는 쓰기 주소 및 읽기 주소는 크기가 N인 버퍼(buffer)의 주소 값을 나머지 계산을 통해 순환(circulate)하도록 된다(S901).Referring to FIG. 9, in the buffer buffer, the write address and the read address are circulated through the remaining calculation of the address value of the buffer having the size N (S901).

이어서, 분주기는 완충 버퍼의 주소와는 별도로 쓰기 및 읽기 동작을 수행할 때마다 카운트하여 1/n로 분주한다(S902). 이때, 클라이언트 클럭에 맞춰서 클라이언트로부터 입력받은 데이터는 지속적으로 완충 버퍼에 쓰기 동작을 수행한다. 반면, 호스트 클럭에 맞춰서 완충 버퍼에 저장된 데이터는 읽기 동작을 수행하여 읽어간다. 이때, 클라이언트 클럭의 주파수는 호스트 클럭의 주파수보다 빠르기 때문에 클라이언트 클럭에 의해 저장되지 않은 시점에 호스트 클럭에 의해서 데이터를 읽어가게 되어 오버플로우(overflow) 현상이 발생할 수 있다. 이를 방지하기 위하여 주기적으로 일반 데이터에 포함된 더미 데이터를 무시하고 제거(disard)하여 원형 버퍼에 저장하지 않는 더미 데이터 제거 로직이 필요하다.Next, the frequency divider is counted and divided by 1 / n every time the write and read operations are performed separately from the address of the buffer buffer (S902). At this time, the data received from the client according to the client clock continuously performs a write operation to the buffer. On the other hand, the data stored in the buffer buffer according to the host clock is read by reading. At this time, because the frequency of the client clock is faster than the frequency of the host clock, the data is read by the host clock at a time when the client clock does not store the data, thereby causing an overflow phenomenon. To prevent this, there is a need for a dummy data removal logic that periodically discards the dummy data included in the general data and disposes the data so as not to be stored in the circular buffer.

더미 데이터를 제거하는 시점을 살펴보면, 호스트 클럭과 클라이언트 클럭은 각각 정해진 분주수(1/n)를 갖는 분주기를 통해 분주된 클럭 count_rd과 count_wr 신호로 변환되고, 각각 변환된 클럭은 위상 검출기에 입력된다.The host clock and the client clock are respectively converted into clocks count_rd and count_wr signals divided through a frequency divider having a predetermined frequency division ratio (1 / n), and the converted clocks are input to the phase detector do.

이어서, 위상 검출기는 입력된 분주된 클럭에 따라서 쓰기 동작을 수행하는 count_wr이 '1'로 상승(rise)되는 시점에 SET을 수행하여 PD_DET 값이 '1'이 되도록 하고, count_rd 값이 '1'로 상승(rise)되는 시점에 CLEAR를 수행하여 PD_DET 값이 '0'이 되도록 한다(S903). 이때, count_wr 및 count_rd 신호는 각 클럭을 1/n만큼 분주한 클럭 신호이다. 위상 검출기의 출력인 SET 및 CLEAR 신호는 count_wr과 count_rd 신호의 위상이 차이가 발생하면 PD_DET 값이 '1'이 일정한 구간, 즉 위상 차이가 발생하는 구간에 해당한다. 이는 쓰는 동작에 의해 저장된 데이터를 읽는 동작에 의해 읽을 수 있는 데이터가 저장되어 있음을 의미한다. 따라서, 쓰기 동작을 수행하기 전에 PD_DET 값이 '1'인 경우에는 완충 버퍼에 일반 데이터를 저장하여 호스트가 읽어갈 수 있도록 한다.Then, the phase detector sets the PD_DET value to '1' and count_rd value is '1' by performing the SET at the time when the count_wr that performs the write operation according to the inputted divided clock rises to '1' CLEAR is performed at the time when the PD_DET value is increased to '0' (S903). At this time, the count_wr and count_rd signals are clock signals in which each clock is divided by 1 / n. The SET and CLEAR signals output from the phase detector correspond to a period in which the PD_DET value is '1', that is, a period in which a phase difference occurs, when the count_wr and count_rd signals differ in phase. This means that the readable data is stored by the operation of reading the stored data by the writing operation. Therefore, if the PD_DET value is '1' before performing the write operation, the general data is stored in the buffer to allow the host to read it.

이어서, 임계치 생성기는 SET 신호를 입력받으면 PD_DET 신호를 '1'로 설정하고, CLEAR 신호를 입력받으면 PD_DET 신호를 '0'으로 설정한다(S904).Then, the threshold generator sets the PD_DET signal to '1' upon receiving the SET signal, and sets the PD_DET signal to '0' upon receiving the CLEAR signal (S904).

이어서, 클라이언트 클럭의 주파수는 호스트 클럭의 주파수보다 빠르기 때문에 클라이언트 클럭의 분주된 클럭 신호인 count_wr 신호의 위상과 count_rd의 위상 차이는 점차 증가한다. 결국, count_wr에 의해 SET 되는 시점과 count_rd에 의해 CLEAR 되는 시점이 동일한 시점에 발생하는 경우가 발생한다. 임계치 검출기는 이 경우에 PD_DET 값은 지속적으로 '1'을 유지하고, 한번만 정해진 더미 데이터를 제거하여 저장하는 동작이 중지될 수 있도록 한다(S905).Then, since the frequency of the client clock is faster than the frequency of the host clock, the phase difference between the count_wr signal and the count_rd signal gradually increases, which is the divided clock signal of the client clock. As a result, it may happen that the time set by count_wr and the time cleared by count_rd occur at the same time. In this case, the threshold detector keeps the PD_DET constantly at '1', so that the operation of removing and storing the dummy data set once can be stopped (S905).

이상, 본 발명의 바람직한 실시예를 통하여 본 발명의 구성을 상세히 설명하였으나, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 명세서에 개시된 내용과는 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 보호범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구의 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, It is to be understood that the invention may be embodied in other specific forms. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. The scope of the present invention is defined by the appended claims rather than the detailed description, and all changes or modifications derived from the scope of the claims and their equivalents should be construed as being included within the scope of the present invention.

201, 301 : 완충 버퍼
202, 203, 302, 303 : 분주기
204, 304 : 위상 검출기
205, 305 : 임계치 생성기
206, 306 : 임계치 검출기
201, 301: buffer buffer
202, 203, 302, and 303:
204, 304: phase detector
205, 305: threshold value generator
206, 306: Threshold detector

Claims (1)

비동기 데이터의 전송을 위한 주파수 적응 장치로서,
두개의 서로 다른 주파수 특성을 갖는 이중 포트 램으로 구성된 완충 버퍼;
호스트 클럭과 클라이언트 클럭을 각각 호스트 클럭의 분주된 클럭 신호와 클라이언트 클럭의 분주된 클럭 신호로 변환하는 분주기;
상기 분주기에서 각각 변환된 분주 클럭에 따라서 SET 신호 및 CLEAR 신호를 출력하는 위상 검출기;
상기 위상 검출기에서 출력되는 SET 신호 및 CLEAR 신호를 입력받아 일정 구간 동안 PD_DET값이 '1'이 되도록 출력하는 임계치 생성기; 및
상기 임계치 생성기에서 출력한 PD_DET 신호가 일정 구간 동안 '1'을 유지하면 dummy_sel 신호를 '0'으로 설정하여 상기 완충 버퍼에 저장된 데이터를 지속적으로 출력하는 임계치 검출기를 포함하는 비동기 데이터의 전송을 위한 주파수 적응 장치.
A frequency adaptation device for transmission of asynchronous data,
A buffer buffer composed of dual port RAMs having two different frequency characteristics;
A frequency divider for converting the host clock and the client clock into a divided clock signal of the host clock and a divided clock signal of the client clock, respectively;
A phase detector for outputting a SET signal and a CLEAR signal according to the frequency-divided clocks respectively converted in the frequency divider;
A threshold generator for receiving a SET signal and a CLEAR signal output from the phase detector and outputting a PD_DET value of '1' for a predetermined period; And
And a threshold detector for continuously outputting data stored in the buffer by setting a dummy_sel signal to '0' when the PD_DET signal output from the threshold generator keeps '1' for a predetermined period, Adaptive device.
KR1020160033413A 2016-03-21 2016-03-21 Apparatus for frequency adaptation to transfer asynchronous data KR20170109375A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160033413A KR20170109375A (en) 2016-03-21 2016-03-21 Apparatus for frequency adaptation to transfer asynchronous data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160033413A KR20170109375A (en) 2016-03-21 2016-03-21 Apparatus for frequency adaptation to transfer asynchronous data

Publications (1)

Publication Number Publication Date
KR20170109375A true KR20170109375A (en) 2017-09-29

Family

ID=60035533

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160033413A KR20170109375A (en) 2016-03-21 2016-03-21 Apparatus for frequency adaptation to transfer asynchronous data

Country Status (1)

Country Link
KR (1) KR20170109375A (en)

Similar Documents

Publication Publication Date Title
US10103830B2 (en) Latency-optimized physical coding sublayer
US8270526B2 (en) Communication system
JP5230367B2 (en) Parallel optical transmission apparatus and method
KR20100086009A (en) Bit identification circuit
US10257795B2 (en) Signal conversion apparatus, signal restoration apparatus and information processing apparatus
US8923347B2 (en) Data transmission involving multiplexing and demultiplexing of embedded clock signals
CN105578585B (en) Method, device and communication equipment for determining link delay
CN111800109B (en) Method and device for aligning multi-channel high-speed data
US8675798B1 (en) Systems, circuits, and methods for phase inversion
CN108449086B (en) Method and circuit for synchronizing parallel ports of multi-channel high-speed serial bus sending end
US20150063516A1 (en) Communication circuit and information processing device
EP3975456A1 (en) Clock synchronization device, optical transmitter, optical receiver and method
US11888586B2 (en) Low latency network device and method for treating received serial data
US20140293826A1 (en) Data transport system, receiver and transmitter
JP5610540B2 (en) Serial communication interface circuit and parallel serial conversion circuit
KR20170109375A (en) Apparatus for frequency adaptation to transfer asynchronous data
KR101746203B1 (en) Method and Apparatus for Calibrating Phase Difference of Clock Signal between Chip and Chip in Multi Chip System
WO2016192321A1 (en) Phase ambiguity correction method and device, and computer storage medium
IL259732A (en) Serial data multiplexing
CN113169801A (en) Improved burst mode clock data recovery for 10G-PON
CN114050957B (en) Symbol synchronization device of wireless communication test system
KR101920073B1 (en) Method and apparatus for converting signal for bandwidth variable data transmission/reception
KR100198421B1 (en) Multiplexing of 10g sync repeater
JP2007142860A (en) Transmitter, receiver, and data transmission method
KR102225619B1 (en) High-speed serial data receiving apparatus