KR20140065409A - 데이터 패킷의 수신 시점을 식별하기 위한 시스템 및 방법 - Google Patents

데이터 패킷의 수신 시점을 식별하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20140065409A
KR20140065409A KR1020147006303A KR20147006303A KR20140065409A KR 20140065409 A KR20140065409 A KR 20140065409A KR 1020147006303 A KR1020147006303 A KR 1020147006303A KR 20147006303 A KR20147006303 A KR 20147006303A KR 20140065409 A KR20140065409 A KR 20140065409A
Authority
KR
South Korea
Prior art keywords
data
parallel data
clock signal
parallel
paths
Prior art date
Application number
KR1020147006303A
Other languages
English (en)
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 나파테크 에이/에스
Publication of KR20140065409A publication Critical patent/KR20140065409A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04JMULTIPLEX COMMUNICATION
    • H04J3/00Time-division multiplex systems
    • H04J3/02Details
    • H04J3/06Synchronising arrangements
    • H04J3/0635Clock or time synchronisation in a network
    • H04J3/0685Clock or time synchronisation in a node; Intranode synchronisation
    • H04J3/0697Synchronisation in a packet node
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/02Speed or phase control by the received code signals, the signals containing no special synchronisation information
    • H04L7/033Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop
    • H04L7/0331Speed or phase control by the received code signals, the signals containing no special synchronisation information using the transitions of the received signal to control the phase of the synchronising-signal-generating means, e.g. using a phase-locked loop with a digital phase-locked loop [PLL] processing binary samples, e.g. add/subtract logic for correction of receiver clock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/0008Synchronisation information channels, e.g. clock distribution lines
    • H04L7/0012Synchronisation information channels, e.g. clock distribution lines by comparing receiver clock with transmitter clock
    • 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)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)

Abstract

SERDES의 파트를 형성하는 것과 같은 직렬변환해제기가 개시되며, 상기 직렬변환해제기에서, 직렬 데이터 경로 상에서의 SOF와 같은 데이터 패킷의 특별한 파트의 수신 시점이 병렬 데이터 경로를 제어하는 클록 및 병렬 레인들 중 상기 파트가 출력되는 레인의 지식으로부터 비롯된, 그 파트가 병렬 데이터 경로 상에 출력되는 시점으로부터 결정된다.

Description

데이터 패킷의 수신 시점을 식별하기 위한 시스템 및 방법{A SYSTEM AND A METHOD FOR IDENTIFYING A POINT IN TIME OF RECEIPT OF A DATA PACKET}
본 발명은 데이터 패킷을 타임 스템핑(time stamping)하거나 데이터 패킷의 수신 시점(point in time of reciept)을 식별하기 위한 시스템 및 방법에 관한 것이다.
일반적인 통신에서, 데이터 패킷들은 하나 이상의 데이터 경로들 또는 케이블들 상에서 직렬 데이터로서 장거리에 걸쳐 전송된다. 이러한 상황이 도 1에 예시된다. 이러한 데이터가 검출 및 사용되어야 하거나 분석되어야 할 때, 상기 데이터는 직렬 링크(12)로부터 검출되고, 분석 회로들의 요구되는 주파수를 감소시키기 위해 병렬 데이터로 변환되어 병렬 데이터 버스(16) 상으로 피딩(feed)된다. 상기 변환은 일반적으로, 타임 스템퍼(10)의 직렬변환기/직렬변환해제기(Serializer/Deserializer) 즉, SERDES(14)에서 수행된다. 직렬변환해제기(14)는 링크(12)로부터 클록 신호를 이끌어내고(derive), 상기 클록 신호를 버스(16)의 폭으로 나누며, 또한 출력되는 이 감소된 클록 신호(24)에 따라 버스(16) 상에 데이터를 출력한다. 그 다음, 직렬변환해제된 데이터는 상기 데이터로 하여금 일 클록 도메인(클록(24))으로부터 타 클록 도메인(클록(26))으로 흐르게끔 하기 위해 다수의 비동기식 FIFO들(18)에 피딩된다. SERDES(14)와 FIFO들(18)과의 사이에서, 디코더(28)가 수신된 직렬 데이터의 코딩을 제거하기 위해 제공될 수 있다. 이 디코딩은 64b/66b-코딩 또는 6b/8b-코딩일 수 있다. 이 코딩은 클록(24)에 의해 제어된다. 다른 클록 도메인은 FIFO들(18)의 다른 측에 존재하고, 이 클록(26)은 FIFO들(18)로부터 병렬 버스(20)로의 병렬 데이터의 판독(reading out)뿐만 아니라 타임 스템핑과 같은 프로세서(22)에서의 상기 병렬 데이터의 어떤 후속적인 프로세싱을 제어한다.
두 개의 클록 도메인들이 존재하는 이유는 링크(12) 상에 직렬 데이터를 포워딩하는 주파수와 추가로 데이터 경로(20)를 따라 상기 데이터를 분석하는 주파수와의 사이의 ppm 차이들이 존재할 수 있다는 사실에 있다. 이는 FIFO들(18) 및 상기 FIFO들(18)이 과동작하지 않게끔 하는 데이터/패킷 드롭 정책(data/packet drop policy)에 의해 다루어진다. 전형적으로, 데이터 패킷들을 드롭함 없이 이러한 드롭을 할 수 있게 하도록 유휴(idle) 데이터/패킷들이 상기 직렬 데이터에 도입된다.
직렬 링크(12) 상에서 수신된 데이터 패킷의 타임 스템핑은 FIFO들(18) 외부의 데이터를 판독하여 프레임 헤더의 시작(SOF: Start Of Frame header)이 병렬 데이터 경로(20) 상에서 인식되는 시점을 식별함으로써 제2 클록 도메인에서 수행된다.
주목할 사항으로서, 도 1에 예시된 바와 같은 다수의 셋업(setup)들이 전체 전송 대역폭을 증가시키도록 병렬로 제공될 수 있다. 이 상황에서, 데이터 패킷들 또는 블록들은 가령 라운드 로빈 기법(round robin strategy)을 이용하여 링크들(12)에 순차적으로 피딩되며, 그럼으로써 SOF는 버스들(20) 중 하나에 존재하게 될 것이다.
그러나, 이러한 타임 스템프는 매우 부정확하다. 먼저, 잠재적인 데이터(예컨대, 유휴 심볼들) 드롭은, 어떤 패킷들이 드롭된 경우 얼마나 많은 패킷들이 드롭되었는지 알려지지 않음에 따라 예컨대, 버스(20) 상의 SOF를 판독한 시점으로부터 SOF를 출력하는 시간을 결정하는 것을 불가능하게 할 것이다. 추가적으로, 병렬 버스들(16 및 20) 상의 클록 주파수가 버스(12) 상의 클록 주파수보다 (버스 폭으로 나누어져) 낮아짐에 따라, 타임 스템프의 입도(granularity) 역시 (버스 폭과 곱해져서) 낮아진다. 이러한 타임 스템프는 SOF가 식별되는 버스(20)의 레인(lane)과 관계없이 동일할 것이다.
더욱이, 일반적으로 SERDES(14), 버스(16) 및 FIFO들(18)은 이른바 PHY에서 제공되는 바, 이들의 출력은 바람직하게는, 예컨대 AUI 또는 MII/GMII 표준들에 부합하며, 그럼으로써 예컨대, 버스(20)의 제1 레인에 SOF가 제공되도록 하는 것이 요구될 수 있거나, 또는 도 1의 셋업들과 같은 복수의 셋업들이 사용되는 경우 추가의 지연들이 개별 버스들(20) 상의 데이터를 정렬시키도록 도입된다. 이 상황에서, 타임 스템핑 불확실성은 다시 증가된다.
본 발명은 이러한 문제에 대한 해법 및 타임 스템프 결정이 더욱 정밀하게 이루어질 수 있는 셋업에 관한 것이다.
다음에서, 본 발명의 양호한 실시예들이 도면들을 참조하여 기술될 것이다.
도 1은 타임 스템핑 셋업을 도시한다.
도 2는 직렬 링크 상에서의 시점과 병렬 링크 상에서의 시점 및 레인 번호와의 사이의 상호관계를 도시한다.
도 3은 본 발명에 따른 타임 스템핑 셋업의 제1 실시예를 도시한다.
도 4는 복수의 직렬 링크들 상에서 데이터를 수신하는 제2 실시예를 도시한다.
제1 양상에서, 본 발명은 미리 결정된 파트(part)를 가지는 데이터 패킷의 수신 시점을 식별하기 위한 시스템에 관한 것이며, 상기 시스템은
- 직렬변환해제기와, 상기 직렬 변환해제기는
직렬 데이터 경로로부터 직렬 데이터를 수신하고,
상기 직렬 데이터 경로로부터 제1 주파수를 가진 제1 클록 신호를 이끌어내며,
상기 제1 주파수를 미리 결정된 정수로 나눈 주파수인 제2 주파수를 가진 제2 클록 신호를 이끌어내고, 그리고
미리 결정된 수의 병렬 데이터 경로들을 가진 병렬 데이터 버스에 병렬 데이터 - 상기 병렬 데이터는 직렬 데이터와 관련되고, 상기 병렬 데이터는 상기 제2 클록 신호에 따라 출력되고 - 를 출력하도록 되어 있고,
- 상기 병렬 데이터 경로들 중 상기 미리 결정된 파트의 적어도 일부분을 출력하는 경로를 식별하도록 된 식별자와,
- 상기 병렬 데이터 경로들 중 상기 식별된 경로 및 상기 제2 클록 신호로부터 상기 시점을 추정하도록 된 타이밍 디바이스를 포함하여 구성된다.
이 맥락에서, 시스템은 단일 회로/칩/FPGA와 같은 단일 요소에 의해 형성될 수 있거나 또는 상기 시스템은 전기적, 광학적, 전자기적 신호들 또는 기타 등등을 통해 서로와 통신하도록 된 다수의 요소들에 의해 형성될 수 있다. 따라서, 개별적인 요소들은 가령 동일한 하우징 내에 그리고/또는 동일한 인쇄 회로 보드 상에서 서로에게 가까이 위치될 수 있거나 또는 가령 별개의 하우징들, 서로 다른 방(room)들 또는 서로 다른 빌딩(building)들 내에 원격으로 위치될 수 있다.
본 시스템은 네트워크 분석기, 스위치, 라우터 또는 기타 등등과 같은 더 거대한 시스템의 부분을 형성할 수 있고, 이 부분에서 데이터의 수신 시점이 결정된다. 상기 시점은 데이터 패킷들의 순서를 유지하도록 하는 것과 같은 다수의 목적들을 위해 사용될 수 있다.
데이터 패킷은 네트워크, 데이터 케이블, 데이터 버스, 트렁크(trunk) 또는 기타 등등 상에서 전송되거나 또는 이들에 의해 수송될 어떤 타입의 데이터 유닛일 수 있다. 일반적으로, 데이터 패킷/유닛은 하나 이상의 데이터 표준들에 부합하는 바, 상기 하나 이상의 표준들은 다수의 서로 다른 표준들 또는 UDP 및 TCP 데이터 패킷들과 같은 데이터 패킷 타입들이 존재하는 하나의 우산(umbrella)인 이더넷, SONET, 인피니밴드(Infiniband) 또는 파이버채널(Fibrechannel) 표준과 같은 것이다. 데이터 패킷은 일반적으로, 어드레스 데이터, 페이로드 또는 기타 등등과 같은 다수의 서로 다른 정보 아이템들 또는 타입들을 가지는 바, 이들은 데이터 패킷 내에 잘 정의되거나 잘 알려진 위치들에 각각 위치된다. 이러한 위치들 및 타입들은 전형적으로, 데이터 패킷 타입마다 다르겠지만, 일반적으로, 상기 데이터 패킷 타입 및 이에 따른 상기 데이터 패킷의 개별 컨텐츠의 위치들은 실제 데이터 패킷으로부터 결정될 수 있고, 그 이후에, 어드레스 데이터 및/또는 페이로드와 같은 개별 데이터 아이템들이 이끌어 내지고, 변경되며 그리고/또는 어떤 타입의 분석에 사용된다. 이 타입 또는 표준은 가령, 패킷의 특별한 데이터 아이템이 상기 타입/표준을 식별할 때 데이터 패킷으로부터 직접적으로 이끌어 내어질 수 있거나, 또는 가령, 데이터 패킷의 데이터 아이템의 타입들 및 위치들의 인식 및 후속적으로는, 상기 데이터 패킷 - 상기 데이터가 이 데이터 패킷 내의 상기 위치(들)에서 발견될 수 있다 - 의 타입(들) 또는 표준(들)의 결정에 기초하여 상기 데이터 패킷으로부터 이끌어 내어진 데이터로부터 이끌어 내어질 수 있다.
또한, 데이터 패킷은 가령 에러 체크를 제공하기 위해, 혹은 신호 내에 충분한 영교차 밀도(zero crossing density)를 제공하도록, 혹은 초기 데이터 패킷을 더 작은 파트들 - 그 다음, 이 파트들은 파트의 컨텐츠를 기술하는 헤더(header)와 함께 네트워크를 통해 전송된다 - 로 쪼개질(breaking into) 때 보여지는 바와 같이 인코딩되거나 인코딩되었을 수 있다. 서로 다른 인코딩 기법들이 서로 다른 목적들을 위해 존재한다. 인코딩 기법들은 Manchester 코드, 4b/5b, 6b/8b, 8b/10b, 64b/66b, 64b/67b 및 128b/130b 인코딩과 같은 코드들을 포함하고, 여기서 예컨대, 본래의 데이터 패킷의 4비트는 5비트 블록들로 인코딩되고 그 다음, 상기 5비트 블록들은 포워딩되며, 이후에 본래 패킷으로 디코딩된다.
명확하게는, 패킷 또는 유닛은 잘 정의된 시작 비트/바이트 및 잘 정의된 컨텐츠 또는 파트들을 가진다. 종종, 패킷은 어드레스 또는 인코딩 헤더와 같은 하나 이상의 필수 요소들 및 페이로드와 같은 하나 이상의 선택에 따른(optional) 요소들을 가진다.
시점은 다수의 방식으로 이끌어 내어지고 정의될 수 있고, 모든 데이터 패킷들이 동일한 방식으로 결정된 자신의 시점들을 가지는 한 정확하게 어느 시점인지는 무의미하다. 물론, 이는 또한 동적으로 이루어질 수 있어서, 식별될 실제 파트는 각각의 패킷, 패킷 타입, 프로토콜 또는 기타 등등에 대해 개별적으로 정의될 수 있다.
물론, 가령 직렬 데이터의 수신과 병렬 데이터의 출력 사이의 하나 이상의 파이프라인식 단계들로부터의 지연이 존재할 수 있다. 이 지연은 시점을 결정할 때 고려될 수 있다.
시점은 데이터 패킷의 최초 (또는 최종) 비트가 직렬변환해제기에 도달하는 시점일 수 있거나 또는 시점은 이러한 도달 시점으로부터 오프셋(offset)될 수 있다. 시점은 대안적으로 또는 추가적으로는, 데이터 패킷의 다른 파트가 직렬변환해제기에 도달하는 시점일 수 있거나 또는 시점은 이러한 도달 시점으로부터 오프셋될 수 있다.
데이터 패킷의 상기 파트들 중 어느 것은 시점을 이끌어내기 위해 식별 및 사용될 수 있다.
이러한 맥락에서, 직렬 데이터는 가령, 직렬 케이블 상에서 또는 무선으로 비트단위로 전송되는 데이터이다. 따라서, 직렬 데이터의 모든 비트 또는 바이트와 같은 모든 파트는 서로 다른 전송 및 수신의 시점들을 가진다. 직렬 데이터는 컴퓨터, 서버, 네트워크 요소, 스위치, 라우터 또는 기타 등등으로부터와 같이 전기적, 광학적 또는 무선 링크로부터 수신될 수 있다. 대안적으로는, 직렬 데이터는 어떤 타입의 스토리지 요소, 안테나 또는 다른 수신기/전송기로부터 수신될 수 있다.
한편, 병렬 데이터는 한 번에 하나 보다 많은 비트가 출력된다. 이는 복수의 병렬 전기적 컨덕터(conductor)들, 이른바 데이터 버스 상에 데이터를 출력할 때 보여질 수 있고, 여기서 이른바 버스의 폭에 대응하는 다수의 비트들이 가령 동일한 클록 신호 상에서 동시에 출력 및 전송된다. 일반적으로, 병렬 데이터는 다수의 병렬 컨덕터들 상에 출력되지만, 광학 케이블로, 전기적 케이블로 그리고/또는 무선으로 복수의 파장 또는 주파수 상에서 데이터를 동시에 출력하는 것이 또한 가능하다.
클록 신호는 데이터의 영점 교차로부터 이끌어 내어지는 것과 같이 다수의 방식들로 데이터로부터 이끌어 내어질 수 있다. 언급된 바와 같이, 직렬 데이터는 충분한 수의 영점 교차들을 가지도록 될 수 있어서 타이밍 또는 클록 신호가 이끌어 내어질 수 있다.
대안적으로는, 클록 신호는 요구되는 경우, 신호의 다른 특성들로부터 이끌어 내어질 수 있다.
따라서, 제1 주파수는 바람직하게는, 직렬 신호의 비트들이 전송 및/또는 수신되는 주파수이다.
따라서, 직렬변환해제기는 신호 또는 데이터를 수신하며, 미리 결정된 수의 데이터 경로들 또는 컨덕터들을 가진 병렬 데이터 버스 상으로 데이터를 피딩한다. 바람직하게는, 병렬 데이터는 제1 주파수를 데이터 버스의 폭(병렬로 전송되는 비트들의 수, 전기적 데이터 버스의 경우 병렬 컨덕터들의 수)으로 나눈 주파수로 출력된다. 이 방식으로, 직렬변환해제기 안밖의 대역폭은 동일하다.
이러한 맥락에서, 병렬 데이터는, 수신되는 것과 동일한 수의 비트/바이트들이 출력되거나 또는 제거 또는 추가된 데이터의 양이 알려져 있을 때 직렬 데이터와 관련된다. 바람직하게는, 전체 데이터는 전혀 제거되지 않는다. 따라서, 비트/바이트들은 데이터 패킷들 내에서 또는 데이터 패킷들 간에 교체될 수 있지만, 어떤 비트/바이트들도 교체 없이 드롭되지 않는다. 이 교체는 바람직하게는, 비트에 대해 비트로 또는 바이트에 대해 바이트로 이루어진다. 데이터가 드롭되는 경우, 이러한 정보는 타이밍 디바이스가 이를 고려하도록 상기 타이밍 디바이스에 피딩될 수 있다. 이러한 교체는 요구되지 않는 헤더들 또는 유휴 패킷들과 같은 데이터 패킷들의 제거일 수 있고, 이러한 파트들은 비트/바이트들의 전체 수가 동일한 한은 어떤 타입의 정보로 교체될 수 있다. 하기에 더 설명될 바와 같이, 이는 제2 클록 및 병렬 경로 ID로부터 예컨대, 직렬 링크로부터의 동일한 데이터의 수신 시점을 결정하는 것을 가능하게 한다.
데이터가 제거 또는 추가되는 경우, 시점은 직렬 및 (어떤) 추가된 데이터 - 또는 감소된 직렬 데이터 - 가 병렬 레인들에 포워딩되는 방식과 같이 여전히 결정될 수 있다.
상기의 정수는 1보다 큰 어떤 정수 일수 있고, 일반적으로, 2의 인수(factor): 2, 4, 8, 16, 32, 64, 128, 512 등일 수 있다.
바람직하게는, 병렬 데이터 경로들/컨덕터들 상에 출력된 데이터는, 비록 각각의 경로/컨덕터 상에 데이터를 출력하는 주파수가 제2 주파수인 한 이 데이터를 서로 다른 시점에 출력하는 것이 가능하지만, 동시에 출력된다.
비록, 어떤 방식 또는 기법이 직렬 데이터 경로로부터 수신되는 각각의 데이터 비트에 대해 병렬 데이터 경로들/컨덕터들 중 그 비트를 포워딩할 곳을 결정하기 위해 사용될 수 있지만, 연속적인 데이터 비트들이 연속적인 데이터 경로들/컨덕터들에 피딩되고 비트가 최종 경로/컨덕터에 피딩되었을 때 다음 비트가 최초 경로/컨덕터에 피딩되는 라운드 로빈 기법이 사용되는 것이 바람직하다.
시점은 레인들/경로들/컨덕터들 중 미리 결정된 파트의 데이터 패킷이 출력되는 곳에 관한 것이다. 상술된 바와 같은 미리 결정된 파트는 데이터 패킷의 어떤 파트일 수 있다. 병렬 경로들/컨덕터들 상에 데이터를 출력하는 것은 제2 클록 신호에 의해 타이밍이 맞춰(timed)진다.
데이터 패킷들의 파트의 식별은 일반적으로 이 기술 분야에서 일반적인 바와 같이 패킷의 분석을 요할 것이다. 일부 예들에서, 상기 파트들은 알려진 수의 비트들로 간격화되고, 그럼으로써 분석이 아니라 간단한 카운팅 또는 계산만으로도 충분할 수 있다.
따라서, 식별자는 병렬 데이터 경로들 중 적어도 미리 결정된 파트의 적어도 일부분을 출력하는 경로를 식별하도록 된 것이며, 이 곳에서 이후에, 타이밍 디바이스는 이 시점을 추정하도록 된다.
직렬 링크로부터 수신된 비트들/바이트들의 수가 병렬 경로들/버스 상의 출력의 비트들/바이트들의 수와 동일할 때, 그리고 기법이 병렬 경로들 중 어느 경로 상에 데이터가 출력될지 제어하기 위한 알려진 기법일 때, 미리 결정된 파트를 출력하기 위한 제2 클록 신호의 시점 및 이의 병렬 경로/컨덕터는 예컨대 데이터 패킷의 그 파트를 수신할 시의 제1 클록 신호의 시점을 계산하는 데 사용될 수 있다.
바람직한 실시예에서, 시스템은 병렬 데이터 경로들로부터 데이터를 수신하고 제3 클록 신호에 따라 데이터를 출력하기 위한 하나 이상의 선입선출(First-In-First-Out) 요소들을 더 포함한다. 일반적으로, 상기 FIFO들 안밖의 대역폭은 적어도 시간에 걸쳐 동일하다. 이와는 달리, FIFO들이 과동작하는 경우 데이터는 드롭되어야만 할 수 있다. 회로의 이 위치에서, 예컨대 유휴 패킷들 및 다른 불필요한 정보를 드롭하는 것은 일반적일 수 있다. 그러나, 두 개의 클록 도메인들(제2 및 제3 클록)에서의 클록들의 위상은 시간에 걸쳐 달라질 수 있고, 이는 이러한 클록 경계들을 제공하는 전반적인 이유가 된다.
일 실시예에서, 시스템은
하나 이상의 추가적인 직렬변환해제기들을 더 포함하고, 상기 추가적인 직렬변환해제기 각각은
- 별개의 직렬 데이터 경로로부터 직렬 데이터를 수신하고,
- 미리 결정된 수의 병렬 데이터 경로들을 가지는 별개의 병렬 데이터 버스에 병렬 데이터 - 상기 병렬 데이터는 직렬 데이터와 관련되고, 상기 병렬 데이터는 추가적인 클록 신호에 따라 출력되고 - 를 출력하도록 되어 있고,
여기서 식별자는 병렬 데이터 경로들 중 미리 결정된 파트의 적어도 일부분을 출력하는 경로를 식별하도록 된 것이고, 그리고
타이밍 디바이스는 상기 병렬 데이터 경로들 중 식별된 경로 및 제2 클록 신호 - 상기 제2 클록 신호에 따라 상기 병렬 데이터가 상기 병렬 데이터 경로들 중 식별된 경로에 출력된다 - 로부터 시점을 추정하도록 된 것이다.
따라서, 추가적인 직렬변환해제기(들)는 상기에 더 기술되었던 것과 동일한 타입으로 이루어질 수 있지만, 이들이 제1 및 제2 클록들을 결정할 필요가 없음에 따라 보다 간단해질 수 있다. 특히, 제1 직렬 경로 및 추가적인 직렬 경로 상에 전송된 데이터가 동일한 엔티티(entity)에 의해 출력될 때, 상기 경로 상의 데이터는 동기화되어서 제1 직렬변환해제기로부터의 제1 및 제2 클록 신호들은 추가적인 직렬변환해제기(들)에 의해 사용될 수 있고, 여기서 추가적인 클록 신호는 그 후 제2 클록 신호가 된다. 이러한 상황이 아닌 경우, 추가적인 직렬변환해제기(들)는 또한, 직렬 데이터 경로로부터 제1 주파수를 갖는 별개의 제1 클록 신호를 이끌어내고 추가적인 클록 신호를 제2 주파수를 갖는 별개의 제2 클록 신호로 이끌어내도록 될 수 있으며, 상기 제2 주파수는 관련된 제1 주파수를 미리 결정된 정수로 나눈 주파수 이다.
또한, 동일한 식별자 및/또는 타이밍 디바이스가 사용될 수 있거나 또는 별개의 식별자들 및/또는 타이밍 디바이스들이 서로 다른 직렬변환해제기들에 대해 사용될 수 있다.
동일한 엔티티가 제1 직렬 경로 및 추가적인 직렬 경로(들) 상에 데이터를 포워딩할 때, 이 엔티티는 단일 직렬 경로 상에 전체 데이터 패킷들을 포워딩하도록 결정할 수 있다. 대안적으로는, 데이터 패킷들은 때때로 플릿(flit)들로 지칭되는 더 작은 파트들로 분리될 수 있고, 상기 더 작은 파트들은 라운드 로빈 기법과 같은 어떤 기법에 따라 직렬 경로들 상으로 포워딩된다. 따라서, 패킷의 미리 결정된 파트는 직렬 경로들 중 어느 경로 상으로 포워딩될 수 있고 따라서, 직렬변환해제기들 중 어느 것에 의해 출력될 수 있다. 이 상황에서, 시스템은 패킷이 이러한 방식으로 전송됨을 알고 있을 것이며, 직렬변환해제기들에 의한 출력에 후속하여, 요구되는 경우, 상기 데이터 패킷은 다시 어셈블될 수 있다.
물론, 직렬변환해제기의 병렬 출력의 버스 폭은 최소 데이터 패킷 사이즈보다 클 수 있고, 따라서 별개의 데이터 패킷들의 복수의 미리 결정된 파트들이 동시에 출력될 수 있다. 선행 기술의 시스템들에서, 이러한 상황은 결과적으로, 데이터 패킷들이 동일한 타임 스템프를 가지게 할 수 있다.
본 발명의 일 실시예에서, 식별자는 복수의 병렬 데이터 경로들 - 상기 복수의 데이터 경로들의 각각에서 데이터 패킷의 적어도 미리 결정된 파트가 출력된다 - 을 바람직하게는 동시에 식별하도록 된 것이며, 여기서 타이밍 디바이스는 복수의 병렬 데이터 경로들의 각각에 대해, 상기 병렬 데이터 경로들 중 식별된 경로 및 제2 클록 신호 - 상기 제2 클록 신호에 따라 병렬 데이터가 상기 병렬 데이터 경로들 중 식별된 경로에 출력된다 - 로부터 시점을 추정하도록 된 것이다. 그 다음, 병렬 경로들이 물론 서로 다름에 따라, 예컨대 직렬 경로 상의 실제 수신 시점들이 두 개의 데이터 패킷들에 대하여 서로 다른 바와 같이, 또한 요구되는 시점들 역시도 서로 다를 것이다.
상기의 또는 다른 실시예에서, 시스템은 입력 및 출력을 갖는 디코더를 더 포함하고, 상기 디코더는 병렬 데이터 버스 상에 출력된 데이터를 수신하고 상기 데이터 패킷의 적어도 파트를 제거하며 출력 상에 상기 데이터 패킷의 나머지 파트를 출력하도록 된 것이다.
상술된 바와 같이, 코딩 기법들은 에러 체크를 제공하는 것 또는 큰 패킷을 링크에 걸쳐 포워딩되는 가령 동일한 사이즈의 작은 파트들로 나누는 것과 같은 다수의 목적들을 위해 사용될 수 있다. 후자의 경우, 작은 파트들은 예컨대, 이 파트가 패킷의 제1 파트인지 제2 파트인지 기술하는 헤더와 함께 각각 제공될 수 있다. 특히, 파트들이 패킷의 제1 파트로서 마킹될 때, 이 파트의 식별은 이 헤더만이 식별될 필요가 있음에 따라 특히 쉽다. 예컨대, 6b/8b-코딩에서, 이 헤더는 2-비트 헤더이고, 상기 2-비트 중 1 비트는 상기 헤더가 데이터 패킷의 제1 파트를 가진 파트의 헤더임을 나타낸다. 그 다음, 이 비트가 출력되는 병렬 경로는 식별자에 의해 쉽게 식별된다.
본 발명의 제2 양상은 미리 결정된 파트를 가진 데이터 패킷의 수신 시점을 식별하는 방법에 관한 것이며, 상기 방법은
- 직렬 데이터 경로로부터 직렬 데이터를 수신하는 단계와,
- 상기 직렬 데이터 경로로부터 제1 주파수를 갖는 제1 클록 신호를 이끌어내는 단계와,
- 상기 제1 주파수를 미리 결정된 정수로 나눈 주파수인 제2 주파수를 갖는 제2 클록 신호를 이끌어내는 단계와, ,
- 미리 결정된 수의 병렬 데이터 경로들을 가진 병렬 데이터 버스에 병렬 데이터 - 상기 병렬 데이터는 상기 직렬 데이터와 관련되고, 상기 병렬 데이터는 상기 제2 클록 신호에 따라 출력되고 - 를 출력하는 단계와,
- 병렬 데이터 경로들 중 미리 결정된 파트의 적어도 일부분을 출력하는 경로를 식별하는 단계와, 그리고
- 상기 병렬 데이터 경로들 중 상기 식별된 경로 및 상기 제2 클록 신호로부터 시점을 추정하는 단계를 포함한다.
상술된 바와 같이, 시점은 글로벌 또는 로컬 클록과 관련되거나 또는 심지어는, 시간이 정수들 중 하나에 의해 식별되고 이 정수가 클록의 각각의 클록 주기에 대하여 변화되는 (일반적으로 증가하지만, 랩 어라운드(wrap around)되는) 정수들의 간격(interval) 내의 정수와 관련될 수 있다.
또한, 미리 결정된 파트는 패킷의 어떤 파트일 수 있다. 일반적으로, 상기 미리 결정된 파트는 관련된 모든 패킷들이 가지는 파트인 바, 그 이유는 이러한 파트는 식별이 쉽게 이루어지게 하기 때문이다. 바람직하게는, 미리 결정된 파트는 단일 비트인 바, 상기 단일 비트는 예컨대, 데이터 패킷의 어떤 요구되는 파트의 최초 또는 최종 비트일 수 있다. 일반적으로, 데이터 패킷들은 어드레스들 및 기타 등등과 같은 데이터 패킷의 서로 다른 표준 파트들을 또한 정의하는 하나 이상의 표준들에 부합한다.
일반적으로, 직렬 데이터 경로로부터 직렬 데이터를 수신하는 것은 한 번에 데이터 일 비트를 수신하는 것을 의미한다.
직렬 데이터 경로로부터 제1 주파수를 가진 제1 클록 신호를 이끌어내는 단계는 제1 데이터의 식별된 영점 교차들의 주파수에 기초하여 수행될 수 있지만 또한, 다른 방법들도 알려져 있다.
데이터가 직렬 링크 상에서 수신되는 대역폭이 직렬변환해제기로부터 출력될 수 있음을 지지하기 위해서, 제2 클록 신호는 바람직하게는, 제1 주파수를 병렬 경로들의 수, 즉 병렬 버스들의 폭으로 나눈 주파수 이다.
병렬 데이터가 출력될 때, 이는 바람직하게는, 제2 클록 신호에 의해 제어되어서, 병렬 데이터는 제2 클록이 변경될 때마다 모든 병렬 경로들 상에 동시에 출력된다.
병렬 데이터가 직렬 데이터와 관련될 때, 수신되는 데이터의 총량은 출력되는 데이터의 양의 총량이다. 데이터는 어떤 데이터도 드롭되지 않는 한 교체될 수 있다. 이 대역폭 매칭은 직렬변환해제기가 스토리지를 가지거나 또는 스토리지로의 액세스를 가지는 경우 적은 시간량에 걸쳐 달라질 수 있다. 그러나, 시간에 걸쳐 대역폭 매칭이 요구된다.
상술된 바와 같이, 어떤 기법은 직렬 링크 상에서 수신된 비트가 병렬 경로들 중 어느 경로에 포워딩되어야 하는지 결정하기 위해 사용될 수 있다. 그러나, 일반적으로, 라운드 로빈 기법이 사용된다.
부분 또는 미리 결정된 파트를 식별할 때, 식별자는 병렬 경로들로부터 데이터 패킷의 파트를 어셈블하고 상기 미리 결정된 파트 및 부분을 식별하기 위해 이 파트들을 분석할 수 있다. 데이터 패킷들이 동일한 또는 알려진 사이즈들을 가지거나 또는 데이터 패킷들이 동일한 또는 알려진 사이즈들로 분리된 경우와 같은 다른 상황들에서, 식별자는 마지막 부분의 가장 끝 위치(very position)로부터, 다음 부분이 어디에 있을지 알 수 있다. 대안적으로는, 이 마지막 부분은 다음 부분을 찾을 위치에 대해 식별자를 안내하기 위해 사용될 수 있다.
전형적으로, 이 부분은 단일 비트일 것이며, 이 비트는 패킷 헤더 또는 어드레스와 같은 패킷의 파트의 제1 비트와 같은 데이터 패킷의 어떤 비트일 수 있다. 데이터 패킷이 표준에 부합하는 상황에서, 데이터 패킷의 분석은 비트/부분을 식별하기 위해 상기 표준에 따라 상기 데이터 패킷 내의 위치들을 식별하도록 수행될 수 있다.
식별된 병렬 데이터 경로는 단일 데이터 경로이거나 또는 예컨대, 부분이 출력되는 경로들 중 제1(예컨대, 최저 번호) 경로일 수 있다.
일 실시예에서, 방법은 병렬 데이터 경로들로부터 데이터를 수신하고 제3 클록 신호에 따라 데이터를 출력하기 위한 하나 이상의 FIFO 요소들을 더 포함한다. 상술된 바와 같이, 별개의 클록 도메인들의 사용은 특정한 장점들을 가지며, 데이터는 드롭되거나 또는 이 클록의 경계를 넘어가지 않을 수 있다.
이러한 또는 다른 실시예에서, 방법은
- 하나 이상의 추가적인 직렬 데이터 경로들로부터 추가적인 직렬 데이터를 수신하는 단계, 및
- 미리 결정된 수의 추가적인 병렬 데이터 경로들을 가지는 추가적인 별개의 병렬 데이터 버스에 추가적인 병렬 데이터를 출력하는 단계를 더 포함하고, 상기 추가적인 병렬 데이터는 추가적인 직렬 데이터와 관련된다.
상기의 상황에서와 같이, 바람직하게는 어떤 데이터도 드롭되지 않지만, 데이터는 교체될 수 있다.
이 실시예에서, 상기 식별 및 추정 단계들은 또한, 이 추가적인 데이터의 병렬 데이터를 고려할 수 있거나 또는,
- 추가적인 병렬 데이터 경로들 중 미리 결정된 파트의 적어도 일부분을 출력하는 경로를 식별하는 단계, 및
- 추가적인 병렬 데이터 경로 중 식별된 경로 및 추가적인 클록 신호 - 이 클록 신호에 따라 추가적인 병렬 데이터가 상기 추가적인 병렬 데이터 경로들 중 식별된 경로에 출력된다 - 로부터 시점을 추정하는 단계와 같은
별개의 식별 및 추정 단계들이 상기 병렬 데이터의 이러한 식별 및 추정 단계에 더하여 이 추가적인 데이터에 대해 수행될 수 있다.
또한, 병렬 데이터의 출력 및 식별은, 그 다음 추가적인 클록 신호가 되는 상기 제2 클록 신호에 기초하여 수행될 수 있거나 또는 상기 방법은 추가적인 직렬 데이터 경로로부터 제1 주파수를 가진 별개의 제1 클록 신호를 이끌어내는 단계 및, 그 다음 추가적인 클록 신호가 되는 제2 주파수를 가진 별개의 제2 클록 신호를 이끌어내는 단계를 추가적으로 포함할 수 있고, 상기 제2 주파수는 상기 제1 주파수를 미리 결정된 정수로 나눈 주파수이다.
제1 상황은 직렬 링크들 상에서 포워딩된 데이터가 동일한 엔티티(컴퓨터, 서버 또는 기타 등등)에 의해 출력되고 그리고/또는 시간에 있어 동기화될 때 선호될 수 있다. 제2 상황은 직렬 링크들 상에서 포워딩된 데이터가 서로 다른 엔티티들에 의해 출력되고 따라서 동기화되지 않을 때 선호될 수 있다.
또한, 이 직렬변환해제를 이용하는 어떤 기법도 병렬 경로들 중 어느 경로에 수신된 비트를 출력할지 결정하기 위해 사용될 수 있다.
일 실시예에서, 식별 단계는 복수의 병렬 데이터 경로들을 식별하는 단계를 포함하고, 상기 복수의 병렬 데이터 경로들의 각각에서 미리 결정된 파트의 적어도 미리 결정된 파트가 출력되며, 추정 단계는 상기 복수의 병렬 데이터 경로들의 각각에 대해 병렬 데이터 경로들 중 식별된 경로 및 제2 클록 신호 - 상기 제2 클록 신호에 따라 병렬 데이터가 상기 복수의 병렬 데이터 경로들 중 식별된 경로에 출력된다 - 로부터 시점을 추정하는 단계를 포함한다. 이는 전체 버스 폭이 최소 데이터 패킷 사이즈를 초과하는 상황일 수 있다.
최종적인 실시예에서, 방법은 병렬 데이터 버스 상에서 출력된 데이터를 수신하는 단계, 상기 데이터 패킷의 적어도 파트를 제거하는 단계 및 출력 상으로 상기 데이터 패킷의 나머지 파트를 출력하는 단계를 더 포함한다. 이는 이전에 코딩된 데이터 패킷들의 상술된 디코딩일 수 있다.
도 1은 상기에 기술되었다.
도 3에서, 도 1에 관하여 상술된 것과 동일한 다수의 요소들이 사용되거나 또는 타임 스템퍼(10')에서 사용될 수 있다. 따라서, 데이터 패킷들 또는 다른 타입의 디지털 정보가 직렬 링크(12) 상에 전송되고 분석 회로의 요구되는 주파수를 감소시키기 위해서 병렬 데이터로 변환되어 병렬 데이터 버스(16) 상으로 피딩된다. 이 변환은 또다시, 타임 스템퍼(10')의 직렬변환기/직렬변환해제기 즉 SERDES(14)에서 수행될 수 있다. 직렬변환해제기(14)는 또다시, 링크(12)로부터 클록 신호를 이끌어내고, 버스(16)의 폭으로 상기 클록 신호를 나누며, 또한 출력되는 이 감소된 클록 신호(24)에 따라 버스(16) 상에 데이터를 출력한다.
이 실시예에서, 버스(16) 상의 정보는 타임 스템핑 회로(22')에 피딩되고, 상기 정보는 패킷 헤더와 같은 패킷의 미리 결정된 파트가 버스(16)의 병렬 레인들 또는 컨덕터들 중 어느 것 상에 존재하는지 식별한다.
주목할 사항으로서, 타임 스템핑이 헤더와 같은 데이터 패킷의 어떤 파트에 기초하여 수행될 수 있다. 따라서, 회로(22')는 패킷의 제1 비트 또는 제1 파트 또는 단지 미리 결정된 파트를 탐색할 수 있다.
회로(22')가 클록(24)에 의해 타이밍이 맞춰지거나 또는 적어도 상기 클록(24)을 수신함에 따라, 어떤 데이터도 SERDES(14)에 의한 수신과 회로(22')에 의한 수신 사이에서 드롭되지 않을 때 예컨대, SERDES(14)에 의한 데이터 패킷의 이 파트의 수신의 시간이 결정 또는 추정될 수 있다.
일반적으로 SERDES(14)는 라운드 로빈 방식으로 버스(16) 상에 수신된 데이터를 출력한다. 이러한 경우가 아니라면, 회로(22')는 바람직하게는, 클록(24) 상의 클록 시간 및 레인/컨덕터 번호를 수신의 시간(버스(12) 상의 클록 시간)으로 변환할 수 있도록 하기 위해 SERDES(14)가 버스(16)의 레인들/컨덕터들 상에 수신된 비트들을 출력하는 순서를 알 수 있다.
회로(22')는 버스(16)상의 레인/컨덕터 번호 및 클록(24)의 클록 시간을 버스(12) 상의 신호에 관한 시간으로 변환하기 위한 것이다. 서로 다른 데이터 패킷들의 동일한 파트가 "타이밍이 맞춰질" 때, 수신의 상대적인 시점이 결정될 수 있고, 패킷들이 이에 상응하게 처리될 수 있다.
도 1에 관하여 상술된 바와 같이, 직렬변환해제된 데이터는 그 다음, 데이터가 일 클록 도메인(클록(24))으로부터 다른 클록 도메인(클록(26))으로 흐르도록 하기 위해 다수의 비동기식 FIFO들(18)에 피딩될 수 있다.
FIFO들(18) 앞에 또는 뒤에서와 같이, 회로(22') 뒤에, 디코더(28)가 수신된 직렬 데이터의 코딩을 제거하기 위해 제공될 수 있다. 이 코딩은 예컨대, 64b/66b-코딩 또는 6b/8b-코딩일 수 있다. 이 디코딩은 클록(24) 또는 클록(26)에 의해 제어된다.
주목할 사항으로서, 어떤 데이터도 링크(12)로부터의 데이터의 SERDES(14)에 의한 수신과 회로(22')에 의한 수신 사이에서 드롭되지 않음이 요구된다. 명확하게는, 데이터가 시간차 T로 링크로부터 SERDES(14)에 의해 수신된 두 개의 데이터 패킷들 사이에서 드롭되는 경우, 상기 패킷들은 T보다 적은 시간차로 회로(22')에 의해 타이밍이 맞춰질 수 있다.
데이터를 드롭시키지 않는 대신, 이러한 원하지 않는 데이터가 교체될 수 있어서, 각각의 데이터 패킷에서 그리고/또는 두 개의 데이터 패킷들 사이에서 SERDES(14)에 의해 수신되는 데이터의 총량은 회로(22')에 의해 수신되는 데이터의 총량과 동일하다. 이러한 데이터는 링크(12) 상으로 전송되는 유휴 패킷들 또는 64b/66b 인코딩과 같은 인코딩 기법에서 사용되는 헤더들, VLAN 헤더들 또는 기타 등등과 같은 추가적인 헤더들일 수 있다. 이러한 데이터는 동일한 수의 비트/바이트로 교체될 수 있거나 또는 그렇지 않으면, 회로(22')에 전송될 때 유지된다. 회로(22)는 수신된 데이터를 출력할 수 있거나 또는, 가령 데이터가 출력되는 데이터 버스 상에 사용되는 대역폭을 감소시키도록 이러한 헤더들, 유휴 패킷들 또는 기타 등등이 제거된 감소된 데이터를 출력할 수 있다.
일 상황에서, 타임 스템핑에 관한 정보는 회로(22')로부터 출력될 때 데이터 패킷 내로 도입될 수 있다. 이 정보는 데이터 패킷의 다른 파트들, 유휴 패킷들을 교체할 수 있거나 또는 버스(16) 상에 출력되는 정보/데이터에 더하여 제공될 수 있다.
물론, 버스(16) 상에서 전송된 데이터 패킷들은 회로(22')를 통해 전송될 필요가 없다. 회로(28), FIFO들(18) 및/ 다른 회로들은 버스(16)로부터 바로 데이터 패킷들을 수신하도록 연결될 수 있다. 이 상황에서, 회로(22')는 버스(16) 상의 또는 상기 버스의 다른 출력(미도시)으로부터의 타임 스템프 정보를 출력할 수 있다.
도 2는 직렬 링크(12) 상의 시점을 클록(24)의 시점 및 버스(16) 상의 레인 번호에 상호 관계시키는 방식을 도시한다. 기술된 바와 같이, 클록 신호(24)는 링크(12) 상의 클록의 주파수를 버스(16) 상에서 레인들의 수로 나눈 주파수를 가진다. 도 2에서 이 수는 8이다. 따라서, 신호(24)의 주파수는 링크(12)의 주파수를 8로 나눈 주파수이다. 명확하게는, 8비트가 버스(16) 상에서 동시에 그렇지만 서로 다른 레인 상에서 출력되며 이 8비트가 링크(12)로부터 서로 다른 시점에서 수신됨에 따라, 버스(12) 상의 비트의 수신의 시점(서클)을 버스(16) 상의 레인 번호 및 클록(24)의 시점에 상호 관계시키는 것이 가능하다.
도 4는 실시예(10'')를 도시하고, 여기서 데이터 패킷들은 복수의 링크들(12) 상에서 수신된다. 링크들(12) 상에 포워딩된 데이터 패킷들은 동일한 요소 또는 서로 다른 요소들에 의해 포워딩될 수 있다. 모든 데이터 패킷들은 링크들(12) 중 일 링크 상으로만 전송될 수 있거나 또는 데이터 패킷들은 일 링크(12) 상에서 부분적으로 그리고 다른 링크(12) 상에서 부분적으로 포워딩될 수 있어서, 총 수신된 데이터 패킷은 두 SERDES(14)에 의해 출력된 데이터로부터 어셈블될 수 있다. 이는 시스템의 이 파트의 동작에 중대한 사항이 아니다.
각각의 링크(12)로부터의 데이터는 SERDES(14)에 의해 수신 및 직렬변환해제되고, 그 다음, 병렬 버스(16)에 출력되며, 타임 스템핑을 위해 회로(22')에 피딩된다. 회로(22')는 단일 SERDES(14)로부터 출력된 클록 신호(24)에 의해 제어될 수 있고, 이는 전형적으로, 링크들(12)로부터 수신된 데이터가 동일한 요소에 의해 출력되고 따라서, 동기적으로 전송될 때의 경우일 수 있다. 대안적으로는, 각각의 회로(22')는 SERDES(14)로부터 클록(24)을 수신할 수 있고, 또한, 상기 SERDES(14)로부터 데이터를 수신(도 3에서의 사선들)한다.
물론, 전체 시점은 모든 SERDES(14) 또는 회로들(22')에 대해 설정될 수 있고, 여기서 클록(들)(24)은 그 다음, 시점을 증가시키기 위해 사용될 수 있어서, 클록들의 페이즈들은 서로 다를 수 있지만, 전체 시점은 적어도 거의 동일하다.
이 실시예에서, 모든 수신된 패킷들은 이들이 수신되는 링크와 관계없이, 그리고 각각의 패킷이 링크들(12) 중 단 하나 상으로 보내지는지 또는 둘 모두 상으로 보내지는지와 관계없이 타임 스템핑된다. 회로들(22') 모두는 데이터 패킷의 미리 결정된 파트를 탐색할 수 있고, 식별될 때 타이밍 정보를 출력할 것이다. 그 다음, 이 정보는 버스들(16) 중 일 버스 상에서 출력되는지, 회로들(22') 중 일 회로 상에서 출력되는지 또는 복수의 이러한 버스들/회로들 상에서 출력되고 그 이후에 단일 버스 또는 기타 등등으로 어셈블되는지와 관계없이 패킷을 뒤따를 수 있다.
물론, 하나보다 많은 데이터 패킷의 복수의 이러한 미리 결정된 파트들은 버스(16) 상에서 동시에 식별될 수 있다. 주목할 사항으로서, 이 상황에서, 타임 스템프 정보가 버스(16) 상의 레인/컨덕터 번호뿐만 아니라 시간 신호(24)의 전체 시점에 관한 것일 때 서로 다른 시점들이 여전히 결정될 것이다.

Claims (10)

  1. 미리 결정된 파트(part)를 가진 데이터 패킷의 수신 시점(point in time of receipt)을 식별하기 위한 시스템으로서,
    - 직렬변환해제기(de-serializer)와, 상기 직렬변환해제기는
    직렬 데이터 경로로부터 직렬 데이터를 수신하고,
    상기 직렬 데이터 경로로부터 제1 주파수를 가진 제1 클록 신호를 이끌어내고(deriving), 그리고
    상기 제1 주파수를 미리 결정된 정수로 나눈 주파수인 제2 주파수를 가진 제2 클록 신호를 이끌어내고;
    미리 결정된 수의 병렬 데이터 경로들을 가진 병렬 데이터 버스에 병렬 데이터 - 상기 병렬 데이터는 상기 직렬 데이터와 관련(relating)되고, 상기 병렬 데이터는 상기 제2 클록 신호에 따라 출력되며 - 를 출력하도록 되어 있고;
    - 상기 병렬 데이터 경로들 중 상기 미리 결정된 파트의 적어도 일부분을 출력하는 경로를 식별하도록 된 식별자와;
    - 상기 병렬 데이터 경로들 중 상기 식별된 경로 및 상기 제2 클록 신호로부터 상기 시점을 추정하도록 된 타이밍 디바이스를 포함하여 구성된 것을 특징으로 하는 미리 결정된 파트를 가진 데이터 패킷의 수신 시점을 식별하기 위한 시스템.
  2. 제1항에 있어서,
    상기 병렬 데이터 경로들로부터 데이터를 수신하고, 제3 클록 신호에 따라 데이터를 출력하기 위한 하나 이상의 FIFO(First-In-First-Out) 요소들을 더 포함하여 구성된 것을 특징으로 하는 미리 결정된 파트를 가진 데이터 패킷의 수신 시점을 식별하기 위한 시스템.
  3. 제1 또는 2항에 있어서,
    하나 이상의 추가적인 직렬변환해제기들을 더 포함하여 구성되고, 상기 직렬변환해제기들의 각각은
    별개의 직렬 데이터 경로로부터 직렬 데이터를 수신하고,
    미리 결정된 수의 병렬 데이터 경로들을 가진 별개의 병렬 데이터 버스에 병렬 데이터 - 상기 병렬 데이터는 상기 직렬 데이터와 관련되고, 상기 병렬 데이터는 추가적인 클록 신호에 따라 출력되며 - 를 출력하도록 되어 있고,
    상기 식별자는 상기 병렬 데이터 경로들 중 상기 미리 결정된 파트의 적어도 일부분을 출력하는 경로를 식별하도록 된 것이며, 그리고
    상기 타이밍 디바이스는 상기 병렬 데이터 경로들 중 상기 식별된 경로 및 상기 추가적인 클록 신호 - 상기 추가적인 클록 신호에 따라 상기 병렬 데이터가 상기 병렬 데이터 경로들 중 상기 식별된 경로에 출력되고 - 로부터 상기 시점을 추정하도록 된 것을 특징으로 하는 미리 결정된 파트를 가진 데이터 패킷의 수신 시점을 식별하기 위한 시스템.
  4. 선행하는 청구항들 중 어느 한 항에 있어서,
    상기 식별자는 복수의 병렬 데이터 경로들을 식별하도록 된 것이고, 상기 병렬 데이터 경로들의 각각에는 상기 데이터 패킷의 적어도 미리 결정된 파트가 출력되고, 상기 타이밍 디바이스는 상기 복수의 병렬 데이터 경로들의 각각에 대해, 상기 병렬 데이터 경로들 중 상기 식별된 경로 및 상기 제2 클록 신호 - 상기 제2 클록 신호에 따라 상기 병렬 데이터가 상기 병렬 데이터 경로들 중 상기 식별된 경로에 출력되고 - 로부터 시점을 추정하도록 된 것을 특징으로 하는 미리 결정된 파트를 가진 데이터 패킷의 수신 시점을 식별하기 위한 시스템.
  5. 선행하는 청구항들 중 어느 한 항에 있어서,
    입력 및 출력을 가지는 디코더를 더 포함하여 구성되며, 상기 디코더는 상기 병렬 데이터 버스 상에 출력된 데이터를 수신하고, 상기 데이터 패킷의 적어도 일 파트를 제거하며 그리고 출력 상으로 상기 데이터 패킷의 나머지 파트를 출력하도록 된 것을 특징으로 하는 미리 결정된 파트를 가진 데이터 패킷의 수신 시점을 식별하기 위한 시스템.
  6. 미리 결정된 파트를 가진 데이터 패킷의 수신 시점을 식별하는 방법으로서,
    - 직렬 데이터 경로로부터 직렬 데이터를 수신하는 단계와;
    - 상기 직렬 데이터 경로로부터 제1 주파수를 가진 제1 클록 신호를 이끌어내는 단계와;
    - 상기 제1 주파수를 미리 결정된 정수로 나눈 주파수인 제2 주파수를 가진 제2 클록 신호를 이끌어내는 단계와;
    - 미리 결정된 수의 병렬 데이터 경로들을 가진 병렬 데이터 버스에 병렬 데이터 - 상기 병렬 데이터는 상기 직렬 데이터와 관련되고, 상기 병렬 데이터는 상기 제2 클록 신호에 따라 출력되며 - 를 출력하는 단계와;
    - 상기 병렬 데이터 경로들 중 상기 미리 결정된 파트의 적어도 일부분을 출력하는 경로를 식별하는 단계와; 그리고
    - 상기 병렬 데이터 경로들 중 상기 식별된 경로 및 상기 제2 클록 신호로부터 상기 시점을 추정하는 단계를 포함하는 것을 특징으로 하는 미리 결정된 파트를 가진 데이터 패킷의 수신 시점을 식별하는 방법.
  7. 제6항에 있어서,
    상기 병렬 데이터 경로들로부터 데이터를 수신하고, 제3 클록 신호에 따라 데이터를 출력하기 위한 하나 이상의 FIFO 요소들을 더 포함하여 구성된 것을 특징으로 하는 시스템.
  8. 제6 또는 7항에 있어서,
    - 하나 이상의 추가적인 직렬 데이터 경로들로부터 추가적인 직렬 데이터를 수신하는 단계와;
    - 미리 결정된 수의 추가적인 병렬 데이터 경로들을 가지는 추가적인 별개의 병렬 데이터 버스에 추가적인 병렬 데이터 - 상기 추가적인 병렬 데이터는 상기 추가적인 직렬 데이터와 관련되고, 상기 병렬 데이터는 추가적인 클록 신호에 따라 출력되며 - 를 출력하는 단계와;
    - 상기 추가적인 병렬 데이터 경로들 중 상기 미리 결정된 파트의 적어도 일부분을 출력하는 경로를 식별하는 단계와; 그리고
    - 상기 추가적인 병렬 데이터 경로들 중 상기 식별된 경로 및 상기 추가적인 클록 신호 - 상기 추가적인 클록 신호에 따라 상기 추가적인 병렬 데이터가 상기 추가적인 병렬 데이터 경로들 중 상기 식별된 경로에 출력되고 - 로부터 상기 시점을 추정하는 단계를 더 포함하는 것을 특징으로 하는 미리 결정된 파트를 가진 데이터 패킷의 수신 시점을 식별하는 방법.
  9. 청구항 제6 내지 8항 중 어느 한 항에 있어서,
    상기 식별하는 단계는 복수의 병렬 데이터 경로들을 식별하는 단계를 포함하고, 상기 복수의 병렬 데이터 경로들의 각각에는 시작 헤더(starting header)의 적어도 미리 결정된 파트가 출력되고,
    상기 추정하는 단계는 상기 복수의 병렬 데이터 경로들의 각각에 대해, 상기 병렬 데이터 경로들 중 상기 식별된 경로 및 상기 제2 클록 신호 - 상기 제2 클록 신호에 따라 상기 병렬 데이터가 상기 병렬 데이터 경로들 중 상기 식별된 경로에 출력되고 - 로부터 시점을 추정하는 단계를 포함하는 것을 특징으로 하는 미리 결정된 파트를 가진 데이터 패킷의 수신 시점을 식별하는 방법.
  10. 청구항 제6 내지 9항 중 어느 한 항에 있어서,
    상기 병렬 데이터 버스 상에 출력된 데이터를 수신하는 단계, 상기 데이터 패킷의 적어도 일 파트를 제거하는 단계, 및 출력 상으로 상기 데이터 패킷의 나머지 파트를 출력하는 단계를 더 포함하는 것을 특징으로 하는 미리 결정된 파트를 가진 데이터 패킷의 수신 시점을 식별하는 방법.
KR1020147006303A 2011-09-02 2012-08-30 데이터 패킷의 수신 시점을 식별하기 위한 시스템 및 방법 KR20140065409A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201161530763P 2011-09-02 2011-09-02
US61/530,763 2011-09-02
PCT/EP2012/066895 WO2013030298A1 (en) 2011-09-02 2012-08-30 A system and a method for identifying a point in time of receipt of a data packet

Publications (1)

Publication Number Publication Date
KR20140065409A true KR20140065409A (ko) 2014-05-29

Family

ID=46801480

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147006303A KR20140065409A (ko) 2011-09-02 2012-08-30 데이터 패킷의 수신 시점을 식별하기 위한 시스템 및 방법

Country Status (7)

Country Link
US (1) US9729259B2 (ko)
EP (1) EP2751941B1 (ko)
JP (1) JP6174581B2 (ko)
KR (1) KR20140065409A (ko)
CN (1) CN103797734B (ko)
BR (1) BR112014003824A2 (ko)
WO (1) WO2013030298A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3015971B1 (en) * 2014-10-28 2019-07-31 Napatech A/S A system and a method of deriving information
US10380335B1 (en) * 2015-07-15 2019-08-13 Security Together Corporation Systems and methods for providing security to a host endpoint device
US11050782B2 (en) 2015-07-15 2021-06-29 Security Together Corporation Systems and methods for providing security to an integrated circuit in an endpoint device using a dynamic security architecture environment (DSAE)
CN106126466B (zh) * 2016-06-27 2019-10-11 哈尔滨明快机电科技有限公司 一种并行数据变串行数据的传输方法
US11178263B2 (en) 2017-12-13 2021-11-16 Arista Networks, Inc. System and a method for controlling timing of processing network data
US11003206B1 (en) * 2020-01-03 2021-05-11 Rockwell Collins, Inc. Field-programmable gate array precision input timing
US11940835B2 (en) 2022-02-25 2024-03-26 FMAD Engineering (SNG) Pte. Ltd. Clock disciplining and synchronizing

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5835498A (en) * 1995-10-05 1998-11-10 Silicon Image, Inc. System and method for sending multiple data signals over a serial link
US6295563B1 (en) * 1998-01-30 2001-09-25 Unisys Corporation Control system for recreating of data output clock frequency which matches data input clock frequency during data transferring
US7362797B2 (en) 2002-03-21 2008-04-22 Broadcom Corporation Physical layer device having an analog SERDES pass through mode
US7535844B1 (en) 2004-01-28 2009-05-19 Xilinx, Inc. Method and apparatus for digital signal communication
JP4335730B2 (ja) * 2004-03-31 2009-09-30 Necエレクトロニクス株式会社 デマルチプレクサ装置
JP4579108B2 (ja) 2004-09-07 2010-11-10 ルネサスエレクトロニクス株式会社 同期装置及び半導体装置
TW200620938A (en) 2004-09-07 2006-06-16 Nec Electronics Corp Synchronization device and semiconductor device
JP2006250824A (ja) 2005-03-11 2006-09-21 Nec Electronics Corp 半導体集積回路およびその半導体集積回路におけるデータ解析方法
JP4652261B2 (ja) * 2006-03-30 2011-03-16 ルネサスエレクトロニクス株式会社 パラレル変換回路
US8666257B2 (en) 2007-05-24 2014-03-04 Finisar Corporation Optoelectronic devices with intelligent transmitter modules
US7843771B2 (en) 2007-12-14 2010-11-30 Guide Technology, Inc. High resolution time interpolator
US7882474B2 (en) * 2008-03-17 2011-02-01 Avago Technologies Enterprise IP (Singapore) Pte. Ltd. Testing phase error of multiple on-die clocks
WO2011059439A2 (en) 2009-11-12 2011-05-19 Mentor Graphics Corporation Scan test application through high-speed serial input/outputs
JP5544896B2 (ja) 2010-01-22 2014-07-09 富士通株式会社 受信回路、情報処理装置、およびバッファ制御方法
JP5531655B2 (ja) 2010-02-08 2014-06-25 富士通株式会社 シリアルデータ受信回路装置及びシリアルデータ受信方法

Also Published As

Publication number Publication date
JP6174581B2 (ja) 2017-08-02
EP2751941A1 (en) 2014-07-09
WO2013030298A1 (en) 2013-03-07
EP2751941B1 (en) 2019-04-17
CN103797734A (zh) 2014-05-14
US20140211816A1 (en) 2014-07-31
JP2014529245A (ja) 2014-10-30
US9729259B2 (en) 2017-08-08
CN103797734B (zh) 2017-09-12
BR112014003824A2 (pt) 2017-06-13

Similar Documents

Publication Publication Date Title
CN111194529B (zh) 包分类与加时间戳系统和方法
EP2751941B1 (en) A system and a method for identifying a point in time of receipt of a data packet
US8982897B2 (en) Data block output apparatus, communication system, data block output method, and communication method
US20160020985A1 (en) Timestamp predictor for packets over a synchronous protocol
CN111095860B (zh) 时钟同步的方法和装置
US7742505B2 (en) Systems and methods for enabling clock signal synchronization
CN111193635A (zh) 测量递送等待时间的方法、系统和计算机可读介质
JP5798807B2 (ja) 光通信装置および信号調整方法
US7751708B2 (en) Optical switching transmission system with timing correction
EP3531597B1 (en) Link-fault tolerance in a distributed antenna system
US7388888B2 (en) Method for transmitting and receiving ethernet data in system based on broadcast/communication convergence
EP3729752B1 (en) Data communication
CN109150350B (zh) 设备延时补偿方法、系统及存储介质
US9225446B2 (en) Methods and apparatus for minimizing wander generation in constant bit rate asynchronously mapped digital transport systems
CN109429553B (zh) 时间同步方法及设备
US20020037018A1 (en) Apparatus and method for reducing the line rate of time-multiplexed signals
EP1798917B1 (en) Method of passing a constant bit rate digital signal through an ethernet interface and system for carrying out the method
US20080170577A1 (en) Station Device, Message Transfer Method, and Program Storage Medium Storing Program Thereof
US9319319B2 (en) Communication network traffic control element
EP2456134A1 (en) Communication network traffic control element

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application