KR100823385B1 - 고기능 프로브로부터 논리 분석기로의 정보 전송 방식 - Google Patents

고기능 프로브로부터 논리 분석기로의 정보 전송 방식 Download PDF

Info

Publication number
KR100823385B1
KR100823385B1 KR1020050094828A KR20050094828A KR100823385B1 KR 100823385 B1 KR100823385 B1 KR 100823385B1 KR 1020050094828 A KR1020050094828 A KR 1020050094828A KR 20050094828 A KR20050094828 A KR 20050094828A KR 100823385 B1 KR100823385 B1 KR 100823385B1
Authority
KR
South Korea
Prior art keywords
point
link
information
links
packet
Prior art date
Application number
KR1020050094828A
Other languages
English (en)
Other versions
KR20060079076A (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 인텔 코오퍼레이션
Publication of KR20060079076A publication Critical patent/KR20060079076A/ko
Application granted granted Critical
Publication of KR100823385B1 publication Critical patent/KR100823385B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/25Testing of logic operation, e.g. by logic analysers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/43Assembling or disassembling of packets, e.g. segmentation and reassembly [SAR]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Communication Control (AREA)
  • Analysing Materials By The Use Of Radiation (AREA)

Abstract

지점 간 링크(point-to-point link)로부터 캡처된(captured) 정보를 분리된 단편들로 분할하고 각각의 분리된 단편들을 자신의 지점 간 링크를 통해 논리 분석기 호스트로 송신함으로써 정보를 전달하는 단계를 포함하는 방법이 기술된다. 지점 간 링크는 링크 기반 컴퓨팅 시스템(link-based computing system)의 일부이다.
지점 간 링크, 논리 분석기, 링크 기반 컴퓨팅 시스템(link-based computing system), CRC 값, 제어 문자

Description

고기능 프로브로부터 논리 분석기로의 정보 전송 방식{INFORMATION TRANSPORTATION SCHEME FROM HIGH FUNCTIONALITY PROBE TO LOGIC ANALYZER}
본 발명은 첨부 도면들에서, 한정이 아닌 예로서 예시되고, 비슷한 참조번호들은 유사한 요소들을 가리킨다.
도 1a는 멀티 드롭 버스(multi-drop bus)를 통해 상호 접속된 구성요소들을 보여준다.
도 1b는 지점 간 링크(point-to-point link)들의 네트워크를 통해 상호 접속된 구성요소들을 보여준다.
도 2는 링크 기반 컴퓨팅 시스템(link-based computing system) 안의 탐침된 지점 간 링크로부터 추출된 정보를 추적 저장(trace storage)을 위해, 링크 트래픽 캡처 및 프로토콜 디코딩 전단(a link traffic capture and protocol decoding front end)에서 특수 직렬 링크를 경유하여, 전형적으로 관찰되는 시스템 바깥에 있는, 후단으로 전달하기 위한 논리 분석기 탐침 아키텍쳐(logic analyzer probing architecture)를 보여준다.
도 3은 탐침된 지점 간 링크에서 저장 모듈들로 다운스트림을 전달하기 위해 도 2의 아키텍쳐가 설계될 수 있는 병렬 패킷 정보 콘텐츠 형식을 보여준다.
도 4는 링크측 인터페이스에서 호스트측 인터페이스로 전송된 전송 패킷 (transfer packet)들의 예를 보여준다.
도 5는 도 2의 아키텍쳐가 병렬 패킷들을 다운스트림으로 전달하는 것을 구현하도록 설계될 수 있는 신호 프로토콜/형식의 예를 보여준다.
<도면의 주요 부분에 대한 부호의 설명>
201: 구동기
203: 수신기
204: 캡처 제어기
206: 다중화기
207: 타임스탬프
236: 디코딩된 정보
242: CRC 발생기
216: 다중화기
217: 인코더
218: 병렬-직렬 변환기
209: 전송 제어기
223: 수신 제어기
214: 지점 간 링크들
본 발명의 분야는 일반적으로 링크 기반 컴퓨팅 시스템들을 위한 디버깅/검증/검사 도구들에 관련되고, 더 자세하게는 저장을 위해 고기능 프로브로부터 논리 분석기로 데이터 및 제어 정보를 운반하기 위한 정보 전달 방식에 관한 것이다.
도 1a는 버스(120)를 보여준다. 버스(120)는 전자 구성요소들(101a-10Na 및 110a) 사이의 통신들을 전송하는데 사용되는 멀티 드롭 통신 구조인 "공유 매체(shared medium)" 이다. 공유 매체는 서로 통신하는 구성요소들(101a-10Na 및 110a)이 동일한 병렬 신호 전자 와이어(electronic wiring)(120)를 물리적으로 공유하고, 동일한 병렬 신호 전자 와이어(120)에 접속된다는 것을 의미한다. 즉, 와이어(120)는 임의의 구성요소들(101a-10Na 및 110a)이 임의의 다른 구성요소들(101a-10Na 및 110a)과 통신하기 위해 사용하는 공유 자원이다. 예를 들면, 구성요소(101a)가 구성요소(10Na)와 통신하고자 한다면, 구성요소(101a)는 와이어(120)를 따라 구성요소(10Na)에 정보를 보낼 것이다; 만약 구성요소(103a)가 구성요소(110a)와 통신하고자 한다면, 구성요소(103a)는 동일한 와이어(120)를 따라 구성요소(110a)에 정보를 보내는 것 등이다.
컴퓨팅 시스템들은 전통적으로 멀티 드롭 버스(multi-drop bus)들을 사용해왔다. 예를 들면, 소정의 IBM 호환 PC들에 대해, 구성요소들(101a-10Na)이 "I/O" 구성요소들(예를 들면, LAN 네트워킹 어댑터 카드들, 모뎀들, 하드 디스크 저장 장치들 등)에 대응하고, 구성요소(110a)는 ICH(I/O Control Hub)에 대응하는 경우, 버스(120)는 PCI 버스에 대응한다. 또 다른 예로서, 소정의 멀티프로세서(multiprocessor) 컴퓨팅 시스템들에 대해, 구성요소들"(101a-10Na)은 마이크로프로세서들에 대응하고 구성요소(110a)는 메모리 컨트롤러에 대응하는 경우, 버스(120)는 "전면(front side)" 버스에 대응한다.
"용량성 부하(capacitve loading)" 및 "불균일 전송 라인 신호 무결성 퇴화(non-uniform transmission line signal integrity degradation)"라고 불리는 인공물 때문에, 버스들은 컴퓨팅 시스템의 속도가 증가함에 따라 점점 더 쓸모없게 된다. 원래, 임의의 와이어의 용량성 부하가 증가함에 따라, 와이어가 정보를 전송할 수 있는 최대 속도는 감소한다. 즉, 와이어의 용량성 부하와 동일한 와이어의 속도 사이에는 역의 관계가 있다. 와이어에 더해진 각 구성요소는 와이어의 용량성 부하를 증가시킨다. 마찬가지로, 증가된 주파수들에서, 토폴로지(topology) 복잡성들(브랜치(branch)들 및 전송 라인의 임피던스가 변하는 임의의 다른 점들에서의 불연속들), 유전체들에서 고주파 손실들(high frequency losses), 신호간 커플링(inter-signal coupling), 및 다른 고주파 효과들로 인해, 버스를 형성하는 전송 라인들은 증가된 신호 무결성 저하를 겪는다. 그래서, 버스들은 전형적으로 다수의 구성요소들을 결합하기 때문에, 버스 와이어(120)는 전형적으로 신호 퇴화 문제들을 제한하는 다른 전송 레이트(rate)를 가질 뿐만 아니라 용량으로 힘들게 로딩되는 것으로 여겨진다.
과거에, 컴퓨팅 시스템 클록 속도들이 상대적으로 느렸을 때(예를 들면, 100㎒ 아래), 버스 와이어의 (용량성 부하 및 다른 퇴화 효과들 때문에) 퇴화된 최고 속도가 컴퓨팅 시스템의 내부 클록 속도들을 수용하는데 필요한 전송 속도들에 여전히 잘 맞았기 때문에 컴퓨팅 시스템 버스들의 용량성 부하는 심각한 문제가 아니 었다. 오늘날의 적어도 몇몇 컴퓨팅 시스템들에 대해서는 동일하다고 말해질 수 없다. 즉, 여러 해에 걸쳐 컴퓨팅 시스템 클록 속도들이 계속적으로 증가함에 따라, 오늘날의 컴퓨팅 시스템들의 속도는, 정전 용량으로 힘겹게 로딩되고 및/또는 다른 고 주파수 퇴화 효과들을 나타내는 (버스 와이어(120)와 같이) 와이어들의 최고 속도 성능에 도달하고 (및/또는 아마도 넘어서고) 있다.
그래서 컴퓨팅 시스템들은 "링크 기반(link-based)" 구성요소 간 상호접속 방식으로 이동하고 있다. 도 1b는 도 1a의 멀티 드롭 구성과 비교하여 지점 간 링크들이 상호접속된 시스템의 비교예를 보여준다. 도 1b의 접근법에 따르면, 컴퓨팅 시스템 구성요소들(101b-10Nb 및 110b)은 고속 양방향 지점 간 링크들(1301 내지 130N)의 네트워크(140)를 통해 상호접속된다. 각 지점 간 링크는 정보를 제1 방향으로 전송하는 제1 단방향 지점 간 링크 및 정보를 제1 방향의 반대인 제2 방향으로 전송하는 제2 단방향 지점 간 링크를 포함한다. 단방향 지점 간 링크는 전형적으로 단일 종단점 및, 간단한 분기되지 않은 토폴로지를 가지기 때문에, 그 용량성 부하 및 다른 고 주파수 퇴화 효과들은 공유 매체 버스의 것보다 실질적으로 적다.
각 단방향 지점 간 링크는 구리 또는 광섬유 케이블 및 적합한 구동기들 및 수신기들(예를 들면, 구리 기반 케이블들을 위한 단일 혹은 차동 라인 구동기들 및 수신기들; 및 광섬유 케이블들을 위한 LASER 또는 LED 전기/광학 송신기들 및 광학/전기 수신기들 등)로 구성될 수 있다. 각 구성요소가 지점 간 링크에 의해 모든 다른 구성요소에 접속된다는 점에서 도 1b에서 보여지는 네트워크(140)는 극 단적으로 단순하다. 더 복잡한 방식들에서, 네트워크(140)는 링크 중계기(repeater)들 및/또는 라우팅/스위칭 노드들과 같은 부가적인 요소들을 가진다. 여기서, 모든 구성요소가 지점 간 링크에 의해 모든 다른 구성요소와 연결될 필요는 없다. 대신, 소스 구성요소에서 목적지 구성요소까지 정보를 전송하기 위해 라우팅/스위칭 노드들을 통해 복수의 링크들에 걸친 홉(hop)들이 일어날 수 있다. 구현에 따라, 라우팅/스위칭 기능은 네트워크 내에서 독립적이거나 컴퓨팅 시스템의 실질적인 구성요소(예를 들면, 프로세서, 메모리 컨트롤러, I/O 유닛 등)에 통합될 수 있다.
버스 기반 컴퓨팅 시스템들에서, 논리 분석기들은 컴퓨팅 시스템 내에서 발생하는 정보 흐름들을 디버깅(de-bug)하기 위해 컴퓨팅 시스템 안의 버스를 "스누프(snoop)" 하는데 사용되어 왔다. 그러나 링크 기반 컴퓨팅 시스템들의 출현 때문에, 새로운 논리 분석기를 설계하는 것이 적절하다.
도 2는 링크 기반 컴퓨팅 시스템 내의 탐침된 지점 간 링크로부터 추출된 정보를 전달하기 위한 논리 분석기 탐침 아키텍쳐를 보여준다. 도 2의 도시에 따르면, 링크(202)는 대응하는 구동기(201) 및 수신기(203)를 갖는 링크 기반 컴퓨팅 시스템의 임의의 단방향 지점 간 링크에 대응한다. 탐침 아키텍쳐는: 1) 링크측 논리 분석기 인터페이스(221); 2) 호스트측 논리 분석기 인터페이스(222); 및, 3) 인터페이스들(221, 222) 사이의 복수의 지점 간 링크들(214)을 포함한다. 아래에 서 더 상세하게 기술되는 바와 같이, 지점 간 링크들(214)은 사용자에게 자신의 측정 결과들을 실제로 표시하는 것을 담당하는 논리 분석기의 일부(예를 들면, 컴퓨팅 시스템(233))가 링크측 논리 분석기 인터페이스(221)와 물리적으로 분리될 수 있게 한다.
링크 기반 컴퓨팅 시스템들은 전통적인 버스 기반 컴퓨팅 시스템들의 거리를 초과하는 거리들로 퍼져나갈 잠재력을 갖기 때문에, 탐침된 링크들이 논리 분석기의 "호스트(host)"(예를 들면, 메인프레임, 디스플레이, 사용자 인터페이스, 및/또는 제어 센터)와 물리적으로 분리될 수 있게 함으로써 추적형 링크 기반 컴퓨팅 시스템 안에서 전달되는 트래픽이, 탐침되고 있는 링크들 자체가 실제로 상당한 거리들에 걸쳐 뻗어나가는 중심 위치에서 모니터링 될 수 있다. 또한, 복수의 링크들(214)은 탐침된 링크(202)로부터 수집된 정보가 "전송(transfer)" 패킷들의 형태로 빠른 속도로 다운스트림으로(즉, 링크로부터 멀리, 그리고 논리 분석기 안에서 더 깊이) 전달될 수 있게 한다. 이렇듯, 고성능 논리 분석기가 실현될 수 있다.
도 2의 아키텍쳐에 대한 하나의 시각은, 캡처 컨트롤러(204)라고 불리는, 고도로 지능적인 장치가 "탐침된 링크(202)에서 벗어나" 있는 것이다. 즉, 캡처 컨트롤러(204)는 탐침되고 있는 링크(202)에 물리적으로 연결된 논리 분석기 인터페이스(221) 상에 위치한다. 한 실시예에서, 캡처 컨트롤러(204)(또는 캡처 컨트롤러와 링크(202) 사이의 회로)는 전력 스플리터(splitter) 및 재구동기(205) 회로를 포함하여, 1) 구동기(201)에 의해 구동된 신호를 한 쌍의 신호들로 분리하고; 2) 신호들의 이런 쌍에 대하여, 링크(202)의 나머지를 통해 제1 신호를 수신기(203)로 재구동하고 링크의 정보성 콘텐츠가 탐침될 수 있도록 제2 신호를 캡처 컨트롤러(204)로 향하게 한다. 이러한 회로는, 금지적 전파 지연(prohibitive propagation delay)을 구동기(201)와 수신기(203) 사이와 같은 링크에 부과하지 않으면서 링크(202)에 최대의 가시성을 제공한다.
한 실시예에서, 링크 특정, "프로토콜 인식(aware)" 캡처 컨트롤러(204)가 다음 기능들: 1) 패킷 경계들 및 링크(202) 상의 개별적인 패킷들을 인지하는 기능; 2) 링크(202) 상의 패킷들의 헤더들의 콘텐츠를 이해하는 기능; 3) (패킷 헤더들을 매칭시키거나 링크(202) 상에 특정한 데이터 페이로드들을 가짐으로써, 특정한 패킷 유형들을 찾도록 프로그램적으로 명령된 캡처 컨트롤러(204)의 결과로서) 패킷 캡처 필터링 및 트리거 이벤트들의 검출을 위한 제어로서 링크(202) 상의 특정한 "찾는(looked for)" 패킷들의 존재를 식별하는 기능; 4) 링크(202) 상에 나타난 페이로드 및/또는 패킷의 헤더 내에서 발견된 정보의 추적을 위해 캡처를 제공하는 기능; 5) 링크의 상태(예를 들면, "초기화(initialization)", "다운(down)", "액티브(active)" 등)를 이해하는 기능; 6) (특정한 찾는 패킷 또는 패킷들의 시퀀스가 링크상에 출현한 것과 같은) 찾는 이벤트가 발생했다는 것을 의미하는 하나 또는 그 이상의 "트리거" 신호들(211)을 디코딩된 정보로서 다운스트림 회로에 제공하는 기능(주의: 트리거 신호 그 자체와 함께 캡처 컨트롤러(204)는 찾는 패킷의 페이로드의 특정한 부분들의 디코드들(decodes) 또는 찾는 패킷의 유형 또는 아이덴티티(identity)와 같은 추가 정보도 제공할 것이다), 및 7) 갭 타이밍이 각 갭(gap)의 끝에서 타임스탬프 값으로 측정되고 전달되는 갭을 데이터 스트림에 만들 어서 패킷 시퀀스들의 주기들 또는 각각이 저장될 것인지 또는 드롭(drop)되는지를 나타내는 기능을 수행할 수 있다.
따라서, 도 2에서 보여지는 캡처 컨트롤러(204)의 입력들 및 출력들을 참조하면, "미가공 데이터(raw data)" 출력(235)은 링크(202) 상에 나타난 패킷의 헤더 및/또는 페이로드 정보가 제공되는 출력에 대응하고; "디코딩된 정보" 출력(236)은 링크 상에 나타난 패킷의 특정한 유형의 아이덴티티(예를 들면, 링크 초기화 패킷, 링크 기반 컴퓨팅 시스템 내에서 사용된 요청 패킷, 링크 기반 컴퓨팅 시스템 내에서 사용된 데이터 패킷, 링크 기반 컴퓨팅 시스템 내에서 사용된 제어 패킷 등)가 제공되거나 특정 유형의 링크 이벤트 또는 상태(예를 들면, 액티브, 초기화, 재초기화 등)가 제공되는 출력에 대응한다. 트리거 출력(211)은 전술된 트리거 신호를 제공하는데 쓰인다.
필터 출력(205)은, 유효 패킷 또는 타임스탬프 대 필터링된 갭이 해당 시점에 나타나는지에 대해 각 수신된 패킷에 대해 신호하는데 사용된다. 유효 패킷들 및 타임스탬프들만이 저장을 위한 전송 패킷들로서 전송 컨트롤러(209)의 제어 아래 링크(214)를 통해 전달될 대기열(215)에 축적된다. 제어 입력(212)은 캡처 컨트롤러(204)가 링크(202) 상에서 소정의 패킷들/이벤트들을 찾도록 프로그램하고 그에 응답하여 출력들(235/236/211/250)에서 링크(202) 정보의 디코드들을 제공하는데 사용된다. 호스트(233)로부터 링크측(221) 및 호스트측(222) 인터페이스 모두로의 통신 입력들(251, 252)은 이들 및 다른 파라미터들(parameters)을 각각에 설정하는 것을 각각 허용한다.
캡처 컨트롤러(204)를 포함하는 전체 링크측 논리 분석기 인터페이스(221)는 (예를 들면, CMOS 회로(예를 들면, ASIC)로 만들어진 극초고밀도 또는 초고밀도 집적 회로와 같은) 고밀도의 로직 반도체 장치로 구현될 것이라고 생각된다. 본 출원은 캡처 컨트롤러(204)에 의해 제공된 정보가 논리 분석기 내에서 다운스트림으로 전달되는 방식에 관한 것일 뿐 아니라 당업자들이 불필요한 실험 없이도 전술된 기능들을 수행하는 캡처 컨트롤러를 설계할 수 있을 것이기 때문에, 캡처 컨트롤러(204)에 관한 특정한 디자인의 세부사항들이 지금 논의될 필요가 없다는 것이 이해될 것이다.
레지스터(208)를 경유한 타임스탬프(207)의 이전에 저장된 값과 타임스탬프(207)로부터의 현재값으로부터 계산된, 필터링된 주기 경과 시간의 입력 및 캡처 컨트롤러(204)의 시스템 링크(202) 패킷 미가공 데이터(235)는 전송 처리 체인들(210)의 대기열로 전달하기 위해 이들 중 하나 또는 다른 것을 선택하는 다중화기(multiplexer)(206)로의 입력들이다.
전형적인 동작에 따르면, 추적되지 않을, 현재 관심대상이 아닌 패킷들(즉, 유휴 패킷들 또는 출처가 명시되지 않거나 특정한 목표 시스템 링크 에이전트/기능들로 어드레스되지 않는 패킷들)에 대하여, 특정한 "찾는(looked for)" 패킷들이 추적될 링크(202) 상에 나타나기를 대기하는 시간 주기들 동안 캡처 컨트롤러(204)가 기다리고 있는 것이 일반적이다. 예를 들면, 캡처 컨트롤러(204)가, 커맨드 = "ABC"를 갖고 데이터 페이로드 = "012...7" 를 갖는 패킷들이 링크(202) 상에 나타날 때만 식별하고 캡처하도록 프로그램되고; "ABC"+"012...7"을 가진 패킷들이 단 지 이따금(예를 들면, 5㎳마다) 링크(202)에 나타난다면; 캡처 컨트롤러(204)는 이따금 저장할 패킷 정보만 가질 것이다. 타임스탬프 구조들(207, 208)이 사용되어 실질적인 캡처 컨트롤러 출력들 사이에 경과한 시간량의 정밀한 측정 및 추적 저장을 제공한다.
즉, 현재의 예로 계속하면, "ABC"+"012...7"을 가진 링크(202) 상의 패킷들의 제1 인스턴스(instance)와 제2 인스턴스 사이에 5㎳가 경과했다면, 그 후 캡처 컨트롤러(204)에 의해, 제1 패킷의 도착과 제2 패킷의 도착 사이에 링크상에서 5㎳가 경과했다는 사실을 전달하는데 타임스탬프 구조들(207, 208)이 쓰일 것이다. 특정한 실시예에서, 5㎳의 경과 시간의 타임스탬프는, 콘텐츠의 표시 및 제2 패킷의 디코드들과 함께 링크측 인터페이스(221)로부터 호스트측 인터페이스(222)로의 순방향 다운스트림(forward downstream)일 것이다.
즉, 호스트측 인터페이스(222)의 시각에서, 호스트측 인터페이스(222)는 제1 패킷(즉, 해당 패킷의 컨텐츠 및 디코드(decode))의 도착의 표시를 우선 받을 것이다. 그 후, 얼마 후(약 5㎳ 후), 호스트 측 인터페이스(222)는 제2 패킷 콘텐츠 및 디코드 정보 직전에 5㎳의 타임스탬프 값을 먼저 수신할 것이다. 그 후, 논리 분석기는 이 정보 흐름을, 링크(202) 상에서 측정된, 제1 패킷 후 5㎳에 제2 패킷이 도착했다는 것을 의미하는 것으로 해석할 수 있다.
타임스탬프 구조 자체는 다음과 같이 작동한다. 가장 최근에 찾는(즉, 필터링되지 않은) 특성 패킷이 링크(202) 상에 나타난 로컬 장치 시간 카운터 값(타임스탬프)이 레지스터(208)에 저장된다. 그래서, 만약 "ABC"+"012...7"을 가진 제1 패킷이 절대 시간 1.020 초에 링크(202) 상에 나타나면, 그 후 1.020라는 값이 제1 패킷의 출현시에 레지스터(208)에 저장되고 제2 패킷의 출현 후까지 남아있을 것이다.
측정된 장치 절대시간 1.025초에(즉, 제1 패킷의 출현 후 5㎳ 후에) 제2 패킷이 출현하는 것에 응답하여, 경과된 시간(선행 타임스탬프 값 - 현재 타임스탬프 값)이 호스트측 인터페이스(222)에 대해 순방향 다운스트림이도록 캡처 컨트롤러(204)는 다중화기(206)의 타임스탬프 입력을 선택할 것이다. 계속해서, 1.025초라는 새로운 절대 시간은, 가장 최근의 찾은 특성이 링크(202) 상에 출현한 절대 시간으로 레지스터(208)를 갱신시키기 위해 레지스터(208)에 전달될 것이다.
주의할 점은, 필터 신호(250)를 캡처 컨트롤러(204)로부터의 "캡처 인에이블(enable capture)" 상태로 어써팅(asserting)함으로써 나타내는 바와 같이, 페이로드가 "ABC"+"012...7"인 제1 및 제2 패킷들 모두의 도착으로 인해 전송 컨트롤러(209)가 제1 타임스탬프 지연값을 저장하고 그 후 뒤따르는 필터링되지 않은 링크 패킷들을 다운스트림 전송하기 위해 대기열(215)에 저장할 것이라는 것이다. 즉, 링크(202) 상에 제1 패킷의 출현시, 캡처 컨트롤러는 필터= "캡처 인에이블"이라는 값을 필터 라인(250) 상에 발행하고, 다중화기(206)에 대한 신호(213)를 사용하여 "ABC" +"012...7"을 가진 각 패킷의 출력(235)에서 패킷 콘텐츠 및 디코드들을 대기열(215)로 전달하도록 선택할 것이다. "캡처 인에이블"을 가리키는 필터 신호에 응답하여, 전송 컨트롤러(209)는 버스(242) 상의 정보를 대기열(215)에 저장할 것이다. 동시에, 캡처 컨트롤러는 절대 시간 1.025초라는 타임스탬프 카운터(207) 값이 레지스터(208)에 입력되게 할 것이다.
링크(202) 상에 제2 패킷의 출현시, 캡처 컨트롤러(204)는, 마지막으로 필터링된 패킷에 대응하는 주기 동안, 다중화기(206)에 의해 출력될 타임스탬프 지연 입력(현재 타임스탬프값과 이전에 입력된 타임스탬프값 사이의 차이)을 선택하고, 그 후 제2 패킷에 대응하는 주기 동안, 다중화기(206)로의 입력(235)을 선택할 것이다. 이들 각각에 대해, 캡처 컨트롤러는 라인(250) 상에 "캡처 인에이블"로 어써트되는 필터 신호를 다시 발행할 것이다. 한 실시예에서, 필터 신호의 어써트에 응답하여, 전송 컨트롤러(209)는 전달된 경과 지연을 저장하고 그 후 대기열에 충분한 데이터가 가용해지는 대로 호스트측 인터페이스로 전송하기 위해 패킷을 대기열(215)에 저장할 것이다.
이렇듯, 호스트측 인터페이스(222)는 링크(202) 상에서 5㎳가 경과했다는 표시와 제2 패킷의 콘텐츠 둘 다를 수신할 것이다. 그래서, 논리 분석기 호스트는 "ABC" +"012...7"의 페이로드를 가진 패킷들이 5㎳의 시간 주기만큼 떨어져서 링크(202) 상에 출현했다는 사실을 적절하게 종합할 수 있다. 1.025초라는 절대 시간도 찾는 패킷의 제3의 도착을 준비하기 위해 레지스터(208)로 전달될 것이다. 제2 패킷에 대한 전술된 프로세스는 그 후 링크(202) 상의 찾는 패킷의 각 출현에 대해 반복될 것이다.
주의할 점은, 캡처 컨트롤러(204)는 다수의 유형의 패킷들 또는 이벤트들을 링크(202)상에서 동시에 찾도록 구성될 수 있다는 것이다. 예를 들면, 캡처는 페이로드 "000...0"을 가진 패킷들과 페이로드 "000...1"을 가진 패킷들 모두를 찾도 록 구성될 수 있다. 만약 그렇다면, 출력(235)에 제공되는 정보 및 캡처 컨트롤러의 버스(242)에서 출력들(236)과 결합된 정보를 제외하면 그 동작은 전술된 것과 일치할 수 있다. 즉, 만약 제1 패킷이 페이로드 "000...0"을 가지고 만약 제2 패킷이 페이로드 "000...1"을 가진다면, 미가공 데이터 출력(235)이 각각에 대해 실제의 패킷 콘텐츠를 포함하는 한편, 출력(236)은 (전술되었듯이) 제1 패킷에 대해 페이로드 "000...0"의 검출된 패킷을 가리킬 것이지만, 대신 제2 패킷에 대해 페이로드 "000...1"의 패킷을 가리킬 것이다.
전술된 것과 동일한 다른 동작들을 사용하면, 논리 분석기 호스트는 페이로드 "000...0"을 가진 패킷이 링크(202) 상에 나타난 후 타임스탬프 지연만큼 경과하는 것과 같은 지연을 가지고 페이로드 "000...1"을 가진 패킷이 링크(202)에 출현한다는 것을 적절하게 이해할 수 있다. 위의 예들 둘 다에서, 출력(235)이 패킷들의 정확한 페이로드 콘텐츠를 가리키기 위해 사용되어 왔음에도 불구하고. 찾는 패킷들의 아이덴티티를 가지는 디코딩된 정보(236)는 인코딩된 값들(예를 들면, 00= "000...0"의 페이로드; 01="000...1"의 페이로드) 또는 개별적인 디코딩된 패킷 식별자들(예 "매치하는") 비트들로 식별될 수 있다고 가정된다.
전송 패킷들로서 링크(214)를 통한 전송을 위해 전송 채널 처리 체인들을 통한, 캡처 컨트롤러(204)의 버스(242)에 직접 전달되는 디코딩된 정보(236) 및 다중화기(206)로부터의 타임스탬프 지연 또는 출력들(235)로부터의 실재적인 정보 및 타임스탬프 정보의 라우팅이 다음에 설명된다. 한 실시예에서, 링크측 인터페이스(221)에서부터 호스트측 인터페이스(222)로의 정보의 전달은 "가로방향 (widthwise)" 패킷들로서 보여질 수 있다. 즉, 링크들(214) 중의 각 링크는 병렬 링크들(214)을 통해 병렬로 호스트측 인터페이스(222)까지 전달되는 전송 패킷의 서로 다른 부분(들)을 전달하는데 사용되는 레인(lane)으로 보여진다.
여기서, 인터페이스(221)에서 인터페이스(222)로 전달되는 패킷들을 호스트하는 가로방향 LAI가 링크(202)로부터 캡처된 그러한 패킷들에 대해 똑같은 콘텐츠 전체를 최대로 전할 수 있더라도(예를 들면, 링크(202)로부터 캡처된 전체 패킷은 캡처 컨트롤러 출력(235)에 나타나고 링크들(214)의 서브세트를 통해 인터페이스(222)까지 가로방향으로 라우팅된다), 디코딩된 정보 및/또는 다른 추가 정보의 전달이 제공되기 때문에, 링크들(214)을 통해 인터페이스(222)까지 라우팅되는 가로방향 전송 패킷들은 모든 경우에 링크(202)상에 나타난, 그들이 참조하는 패킷의 단순히 정확한 복사본이 아닌 어떤 것이라는 것이 이해되어야 한다.
특히, 이들 전송 패킷들은 목표 링크 패킷 콘텐츠 뿐만 아니라, 링크(214) 제어 및 오류 검출 정보와 아울러 패킷들에서 선택된 디코드들(트리거들) 및 타임스탬프들도 운반한다. 마찬가지로, 목표 시스템 링크(202) 패킷은 시스템 링크(202) 상의 다수의 원시(primitive) 전송 패킷들로 구성될 수 있고 그래서 링크 인터페이스(221)에서 호스트측(222) 로직까지 단일 링크(214) 전송 패킷 전송으로 전해질 수 있는 것보다 더 많은 전체 콘텐츠를 가질 수 있다. 그런 경우들에, 전송은 순차적인 시스템 링크(202) 패킷들을, 링크(214) 상에 출현하는 다수의 링크측(221) 내지 호스트측(222) 전송 패킷들(예를 들면, 도 4의 구역(402)에서 나타냄)로 묶는 것을 요구할 것이다.
도 3은 링크들(214)을 통해 나타날 수 있는 가로방향 전송 패킷의 한 실시예를 보여준다. 도 2 와 3을 모두 참조하면, 가로방향 전송 패킷의 폭은, 인코딩된 데이터의 N+Y개 유닛(예를 들면, N+Y 인코드된 데이터 바이트)이며, 여기서 페이로드는 (다중화기(206)를 통해 선택된) 인코딩된 시스템 링크 미가공 데이터 또는 타임스탬프 지연의 N개 유닛이고 디코딩된 정보는 디코딩된 정보(236)로서 캡처 컨트롤러(204)에서 시작된 인코딩된 데이터의 Y개 유닛이다. 그래서, 도 3에서 보여지듯, 가로방향 전송 패킷의 페이로드(301)는 1 내지 N 레인을 소비하고 가로방향 전송 패킷의 디코딩된 정보(302)는 N+1 내지 N+Y 레인을 소비한다. 도 2의 링크들/레인들(214)은 도 3의 링크들/레인들(314)에 대응한다. 인코딩된 데이터의 유닛은 소정의 고정된 데이터량을 인코딩한 결과이다. 예를 들어, 8B/10B 인코딩의 경우에, 1 바이트의 데이터를 인코딩해서 생기는 인코딩된 데이터의 유닛은 10 비트이다.
도 2와 3의 접근법에 따르면, 가로방향 전송 패킷의 페이로드(301)는 다중화기(206)에 의해 제공되는 정보(시스템 링크 패킷 콘텐츠(235) 또는 경과된 타임스탬프 값)를 디코딩된 시스템 링크 정보(236)와 병렬로 전달한다. 즉, 임의의 특정한 가로방향 전송 패킷(301)의 페이로드는 타임스탬프 정보 또는 링크(202) 상에서 캡처된 패킷으로부터의 페이로드를 전달하고, 언제나 캡처 컨트롤러(204)로부터의 디코딩된 정보(235)를 포함한다.
여기서, 레인들(1 내지 N)의 각 레인은 가로방향 전송 패킷 페이로드(301)의 서로 다른 부분을 운반하기 때문에, 다중화기(206)가 N 구획들로 나뉘고, 각각의 N 구획들은 N개의 레인 처리 채널들(2101 내지 210N) 중 서로 다른 것에 대응하고 호스트에 대한 링크들(214)의 대응 페이로드 레인들에 대응하는 것이 자명하다. 이렇듯, 다중화기(206) 출력(242)은 처음에 (디코딩된 정보(236)와 병합되기 전에), 각각의 N 구획들이 인코딩될 다중화기(206)로부터의 데이터의 서로 다른 서브세트(유닛)에 대응하는 N 넓이의 채널로서 인출된다. 레인 처리 채널들(210N+1 내지 210N+Y)에 도착하기 전에 디코딩된 정보(236)는 다중화기(206)의 출력과 함께 버스(242)로 병합된다.
Y 넓이 채널로 표현된 "디코딩된 정보"에 대해, Y 구획의 각 유닛은 디코딩된 정보(236)의 서로 다른 서브세트(유닛)에 대응한다. 예를 들면, 한 실시예에서, N 및 Y개 구획들 각각은 다중화기(206)의 출력에서 제공되는 정보 및 디코딩된 정보(236)의 서로 다른 바이트(8 비트)에 각기 대응한다. 그래서, 링크(214) 레인들의 수가 96이며, 80은 페이로드에 해당되고 16은 디코딩된 정보에 해당된다면(즉, N=80이고 Y=16), 각각 8비트 폭의 입력을 가지고 다중화기(206)의 80 바이트 폭 구획들로부터의 입력들을 수신하고, 링크 캡처된 트래픽(link captured traffic)(235) 또는 타임스탬프를 결합하는, 페이로드를 위한 80구획의 레인 처리 채널들(2101 내지 210N)도 있다. 링크(214)의 남아있는 16 레인들을 위한 남아있는 레인 처리 채널들(21081 내지 21096)은 캡처 컨트롤러(204)의 디코딩된 정보(236)에 대한 입력들을 수신한다.
전송 컨트롤러(209)는 링크측 논리 분석기 인터페이스(221)에서 호스트측 논리 분석기 인터페이스(222)로 전달되는 정보의 흐름을 감독하는 것을 담당한다. 특히, 전송 컨트롤러(209)는, 대응하는 패킷 디코드 정보와 병렬로 미가공 패킷들 또는 타임스탬프 지연들로 포맷되는, 링크(202) 트래픽이 인코딩될 대기열(215)에 축적되고 링크(214)를 통해 다운스트림 전송된 때를 인지한다.
도 2는 캡처 컨트롤러(204)에 의해 버스(242)를 경유하여 제공되는 N+Y 데이터 유닛들 중에서 제1 데이터 유닛을 처리하는데 사용되는 레인 처리 채널(2101)의 한 실시예를 상세하게 보여준다. 버스(242) 상의 정보 세트 각각이 저장하기에 유효하다고 필터 신호(250)에 의해 표시됨에 따라, 전송 컨트롤러는 대기열(215)에 해당 정보를 저장한다. CRC 생성기(242) 및 다중화기(216)의 역할은 뒤에서 도 5에 관해 더 상세하게 기술될 것이다. 이 항목들을 잠시 무시하면, 호스트(233)에 저장될 정보 유닛들은 대기열(215)에 대기되는 것과 같이 축적되고 결국 인코딩을 위해 대기열(215)에서 인코더(217)로 전달된다.
지점 간 링크에서 불균형한 데이터 패턴들(예를 들면, "전부 1" 또는 "전부 0")로부터 생기는 데이터 손상의 가능성을 실질적으로 감소시키는 특성들을 포함하도록 인코딩 방식들이 설계될 수 있다. 지금 가장 일반적인 인코딩 유형은 다른 유형들(예를 들면 4b/5b, 64b/66b)이 존재함에도 불구하고 8b/10b이다. 인코더는 인코딩 기능을 수행하도록 설계된 회로이다.
일단 데이터의 각 유닛이 인코딩되면 병렬-직렬 변환기(218)를 통해 전달되 고 링크들(214)이 포함되는 회로 기판 또는 동축 전기 또는 광섬유 케이블을 통해 구동기(219)에 의해 (아마도 전기 또는 광섬유 케이블 커넥터(220)를 통해) 구동된다. 주의할 점은, 구리 케이블의 경우에, 인터페이스들(221, 222) 사이에 구동된 신호는 차동 종단되거나 또는 단일 종단될 수 있다는 것이다. 캡처 컨트롤러로부터의 출력 버스(242)가 N+Y개 구획들로 분할된다고 가정하면, 각 처리 채널들(2101 내지 210N+Y)이 대응하는 인코딩된 데이터 유닛을 인터페이스(222)로 보낼 것이라고 생각된다.
만약 가로방향 전송 패킷의 페이로드의 서로 다른 부분들이 다양한 레인들을 통해 다른 시간에 인터페이스(222)에 도착한다면, 적당한 정렬 프로토콜 및 메카니즘들을 통해, 호스트측 인터페이스(222)는 필요에 따라 그들을 적절하게 정렬할 수 있을 것이다. 그러한 적당한 정렬 프로토콜의 논의가 도 5와 관련해서 뒤에서 보다 상세하게 논의된다. 주의할 점은, 광섬유 케이블의 경우에, 전송 처리 체인들에 의해 생성된 인코딩된 데이터의 서로 다른 유닛들이 일반적인 광섬유 링크 상으로 파장 분할 다중화될 수 있다(즉, 링크들(214)이 적은 수, 심지어 단일 물리적 링크로 줄어든다)는 것이다.
도 4는 링크(214)를 통한 전송 패킷들의 흐름의 한 예를 보여준다. 링크(214)에 대한 링크측 전송 패킷들은 다중화기(216)를 통한 적합한 데이터 구조(CRC, 또는 패킷 데이터/디코딩들)의 선택을 통해 간단히 구성되고, 그 후, 인코더(217)에 의한 인코딩되고, 직렬화기(218)를 통한 직렬화되고, 구동기(219)에 의해 대응하는 레인을 통해 (아마도 커넥터(220)와 같은 커넥터를 통해) 구동된다.
미가공 패킷 데이터 또는 목표 대용의 타임스탬프 지연 및 병렬 디코드 정보를 CRC와 아울러 포함하는 모든 전송 패킷 페이로드 신호값들은 신호들(239)을 사용하여 전송 컨트롤러(209)에 의해 다중화기(216)를 통해 선택된다. 프로토콜 제어 신호들(Kcom 및 링크 트레이닝(link training) 및 호스트측 저장 동기화, 시동, 및 정지에 필요한 임의의 다른 것들)은 제어라인(240) 및 인코더(217)를 통해(즉, 인코더(217)가 프로토콜 제어 신호들을 생성함) 전송 컨트롤러에 의해 모든 레인 처리 채널들에서 동시에 선택된다.
각 N+Y개 링크 레인들(214)에 대해, 적합한 CRC 또는 대기된 패킷 페이로드/디코드들의 다중화기(216)를 통한 올바른 선택은 전송 컨트롤러(209)에 의해 제어된다. 전송 컨트롤러(209)는 대기열(215)에 로딩된 패킷들을 추적하고 인코딩을 허용할 정도로 충분히 가용할 때 인코딩 및 호스트로의 전송을 위한 값들의 세트들을 선택한다. 만약 대기열 데이터가 충분히 가용하지 않으면, N+Y 레인들의 전체 폭을 통한 전송 및 인코딩하기에 충분한 양의 데이터가 대기열에 있을 때까지 전송 컨트롤러는 (예를 들면, 도 4의 구역(401)에서 도시된 바와 같이) 전송 패킷에 대응하는 하나 또는 그 이상의 Kcom + CRC 쌍들을 대신 전송한다.
각 레인에 대기열 데이터가 있을 때, 전송 컨트롤러는 N+Y 레인들의 전체 폭을 통해 (예를 들면, 링크(202) 상에서 보여지는 링크 패킷 0(402), 1(403), 및 2(404)에 각기 대응하는 제1 내지 제3(402), 제4(403) 및 제5 내지 제6(404) 전송 패킷들에 대한 구역들(402, 403, 404)에서 각각 보여지듯이) 페이로드 및 디코딩된 정보를 전송한다.
이것은, 캡처된 값들을 저장하는 것을 정지해야 할 때임을 가리키는 트리거 신호(211)가 캡처 컨트롤러에 의해 어써트될 때까지 계속되고, 그때 전송 컨트롤러는 더 이상의 저장될 데이터가 없다는 것을 호스트 인터페이스에 나타내는(캡처 컨트롤러로부터 전달되는 데이터가 없을 때의 전송과 실제로 동일하게 보임) Kcom+ CRC 쌍들만 전송하기 시작한다(예를 들면, 도 4의 구역(405)에서 도시됨). Kcom 및 CRC 쌍들(구역들(401 및 405))은 추가의 링크(214) 제어 및 오류 검출 오버헤드일 뿐이기 때문에, 동기화 및 전송 무결성이 유지되는 것을 보장하도록 처리되지만, 호스트측 인터페이스 논리 분석기에 저장되지는 않는다. 결국, 일단 링크측이 연속적인 Kcom 및 CRC 쌍들을 전송하기 시작하면, 호스트 컴퓨터 시스템(233)은, 호스트측 수신 처리 체인들의 셧다운을 정밀하게 동기화할 필요 없이 편리한 때에 호스트측 인터페이스(222)에서 캡처를 중지할 수 있으며, 호스트측 인터페이스를 상용 FPGA들과 같은 다수의 병렬 장치들로 분할할 수 있다.
모든 호스트측 수신 처리 체인들(225)이 언제나 링크(214)로부터 동일한 제어 패킷들을 수신하기 때문에, 호스트측 인터페이스(222)가 각각 (전체 링크(214) 폭에 대해 줄어든 폭에서) 소정 개수의 수신 처리 채널들 및 복제된 전체 수신기 컨트롤러(223)를 각각에서 구현하는 독립장치들로 분할되더라도, 완벽한 동기화를 용이하게 수립하고 유지할 수 있다. 링크(214) 상에서 전달되는 프로토콜을 통해 단일 링크측 인터페이스(221)에 의한, 추적 캡처/필터링/정지의 중앙집중식 제어로 인해, 이러한 기능에 대한 종래 기술에서 전형적인 트리거링 및 캡처 제어를 위한 고속의 장치간 동기화를 지원하기 위한 분할된 호스트측 인터페이스는 필요없다.
만약 수신된 채널들 사이의 동기화의 손실을 가져올 수 있는, 인입 링크상에서 프레이밍(framing)하는 기호의 손실로 인한 것과 같이, 영속적인 오류가 분할들 중 임의의 것에 의해 검출되면 호스트 인터페이스 분할들은 단지 서로 신호해 줄 필요만 있다. 분할된 호스트측 인터페이스(222)의 집단적 요소들이, 전송에 대한 링크(214) 재-초기화 및 재개시를 수행하도록 단일 링크측 인터페이스(221)에 요청할 수 있게 하기 위해, 그러한 검출된 오류들에 대한 정정 조치는 단일 또는 소수의 신호들(260)을 통한 전송을 필요로 한다.
도 4에 관해서, Kcom 및 다른 제어 문자들(Ktrain, Kstart)이 전송될 때, 동일한 제어 문자가 모든 레인 상에 전송되어 레인 간 디코드 상호작용들을 필요로 하지 않고 호스트 끝에서 각 레인상에서 최고 속도로 쉽게 디코딩될 수 있다. 각 Kcom 전송(트레이닝 동안은 제외)에 이어서, 각 레인은 Kcom에 이르기까지 해당 레인의 모든 문자들에 대해 해당 레인에 대한 축적된 CRC를 전송하고 다음 축적 주기동안 리셋한다. 목표 시스템 링크 패킷을 호스트로 운반하기 위해 하나 이상의 고정된 길이(링크 폭에 의해 지시됨)의 링크(214) 전송 패킷이 요구될 수 있다. 이것은 목표 시스템 링크들에서 가능성 있는 자연적인 가변 패킷 길이를 반영한다. 보조 정보(각 링크(214) 패킷에 대한 콘텐츠를 정의하고 생산된 트리거들과 같은 다른 정보를 운반하는, 링크 트래픽의 디코드)는, "긴(long)" 목표 시스템 패킷을 호스트로 운반하기 위해서 다수의 전송 패킷들을 사용해야 함에도 불구하고, 각 패킷에서 고정된 형식으로 운반된다(즉, 다수의 전송 패킷들에 걸쳐 축적되지 않는 다).
도 5에서, 링크측 인터페이스(221)와 호스트측 인터페이스(222) 사이의 통신들은, 링크측 인터페이스(221)에서부터 호스트측 인터페이스(222)까지 보내지는 실질적인 정보 없이 시간 주기(501) 동안 "쉬고" 있다. 단순성을 위해 1차원(단일 레인) 설명만이 보여진다. 단일 차원의 도면이 가로방향 링크(214)의 각 레인을 통한 복제들이라는 것이 명백하다. 도 5에 설명되었듯이, 유휴 시간 주기들 동안, "Kcom, CRCR"의 패턴은 모든 레인들에서 동시에 계속적으로 반복된다(501).
주의할 점은, 도 5에서 보여진 특정한 시퀀스에서, 추적은 시간(402)에 모든 레인에서 전송되는 "START" 제어 문자(502)에 의해 강제로 동기화되는 분할된 또는 단일의 호스트 인터페이스 추적 모듈들로 막 시작하고 있는 것으로 보여진다는 것이다. START 문자(502) 앞의 그리고 뒤의, "Kcom, CRCR" 데이터 패턴들(501, 503)의 전송은 저장 인터페이스를 "유휴" 상태로 유지하며, 즉, 패킷 페이로드/디코드가 전송되지 않기 때문에, 추적은 저장되지 않는다. Kcom 문자는, 한 실시예에서, 인코더(217, 317)에 의한 생성을 위해 제어 신호들(240, 340)을 사용하여 전송 컨트롤러(209)에 의해 선택된 8b/10b K 제어문자인 COMMA 이다.
Kcom 문자는 임의의 인코딩되지 않은 데이터 문자에 대응하지 않는다고 알려진(인코딩 알고리즘에 따름), 인코더에 의해 제공되는 값이다. 즉, 인코딩은 인코딩되지 않은 데이터를 취하는 것 및 그것을 더 많은 수의 인코딩된 데이터 비트들로 인코딩하는 것으로 구성된다. 인코딩되지 않은 데이터의 각 가능한 패턴은 인 코딩된 데이터의 대응하는 패턴으로 변환된다. 한편 인코딩된 데이터 패턴들은 인코딩된 데이터 패턴들의 비트 폭의 관점에서 구성될 수 있는, 가능한 데이터 패턴들의 전체 세트보다 작은 데이터 패턴들의 그룹으로부터 구성된다. 전형적으로, 불균형한 패턴들은 전술된 그룹 안에 없는 반면, 균형잡힌 패턴들(허가된 인코딩된 각 값에 있어서 같은 숫자의 1 및 0)은 전술된 그룹 안에 있다.
한 실시예에서, Kcom 문자들은 전술된 그룹에서 생성되지만, 임의의 데이터 값들과 다른 인코딩들을 갖고, 그래서 임의의 데이터 인코딩들과 대응하지 않는 것으로 바로 식별가능하다. 따라서, Kcom 문자는 도 5의 경우에 데이터보다 오히려 제어 기호들이 보내지고 있다는 것을 나타내기 위해서 사용될 수 있다. Kcom 문자를 보내는 것이 적합할 때, 전송 컨트롤러(209)는 각 가로방향 패킷 레인들 및 라인들에 대해 라인들(240)을 활성화시킨다. 이 활성화는 각 레인의 인코더가 자신의 대응하는 레인으로 Kcom 문자를 전송하게 한다.
CRCR 데이터 구조는 CRC(Cyclic Redundancy Check) RESET 값이다. CRC(Cyclic Redundancy Check)들은 데이터 검사 방식들이다. 다양한 실시예들에서, CRC 방식은 특정한 입력값들에 응답하여 특정한 출력값들을 계산하는데 특정한 수학 함수를 사용한다. 데이터 스트림의 경우, 새로운 데이터 단편 각각(예를 들면, 데이터의 각 새로운 바이트)에 대해 알고리즘은 자신의 이전 출력값 및 새로운 데이터의 단편들을 입력값으로 사용하여 새로운 출력값을 다시 계산한다. 데이터의 시퀀스/스트림이 전송될 때, 해당 시퀀스에 대해 계산된 CRC는 그 뒤에 함께 수 신단(호스트측 인터페이스(222)의 경우)으로 보내진다. 만약 수신단이 수신된 데이터 스트림으로부터의 CRC 값과 매치하는 CRC 값을 다시 계산할 수 있다면, 그 데이터는 전송 프로세스에 의해 "손상되지 않은(not corrupted)"것으로 간주된다. 한편, 수신단이 수신된 데이터 스트림으로부터 보내진 CRC 값과 다른 값을 다시 계산하면, 전송 프로세스에 의해 "손상된" 것으로 간주된다.
CRC RESET 값(CRCR)은 CRC 값이 CRC 계산 프로세스의 시작시 설정되는 값이다(즉, 데이터 스트림의 제1 단편이 CRC 계산을 위해 제공될 때 사용될 CRC 출력값). CRC 생성기(242)들은, 라인(238)을 활성화시키는 경우 전송 컨트롤러(209)에 의해, CRC 생성기(242)에 CRC RESET 값 CRCR를 로딩시켜, 모든 레인들에 대해 리셋된다. 새로운 CRC 값이 대기열(215)로부터의 후속 데이터 바이트들에 대해 축적될 수 있도록, CRC의 값이 인코딩을 위해 선택될 때마다 CRC는 리셋된다. 유사하게, 인코딩을 위해 대기열(215)로부터 값이 꺼내어질 때, 라인(261)을 활성화시키는 전송 컨트롤러(209)에 의해 선택되는 해당 시점에 때맞추어 적절하게 CRC가 새로운 출력값을 계산한다.
새로운 CRC 값이 이전의 CRC 출력값 및 대기열(215)로부터의 현재 값으로부터 계산된다. 라인(239)을 활성화시켜 다중화기(216)의 채널 A가 선택되도록 하는 전송 컨트롤러(209)에 의해 CRCR 값은 인코딩될 바이트들의 스트림에 포함되도록 선택된다. 그 결과, CRCR 문자는 인코딩되고 링크(214)의 각 레인을 통해 전송된다. 바로 위에서 기술되었듯이, Kcom 문자 생성을 위한 라인들(240)의 활성화와 CRCR 문자 리셋, 생성 및 선택을 위한 라인들(261, 238, 239)의 활성화 사이의 교대에 의해, 시간 주기(501)에 걸쳐 도 5에서 보여지듯 전송 컨트롤러(209)는 효과적으로 Kcom 및 CRCR 문자들을 교대로 전송할 것이다.
대안적인 실시예에서, 전송에 이용가능한 데이터가 대기열(215)에 없을 때, 오류 검출을 제공하기 위한 CRCR 문자들을 전송하기보다는, Kcom 문자만 보내진다. 이러한 감소된 논리 접근법에 있어 CRC 생성기(242) 및 다중화기(216)는 전송의 유휴 기간들 동안 필요하지 않지만, 링크로 전달된 손상된 비유휴 데이터의 검출을 지원하는데 이러한 동일한 메카니즘들이 요구되기 때문에, 오류 검출도 손실될 것이다.
소정의 시점에, 캡처 컨트롤러(204)는, 추적이 멈추어야 함을 나타내는, 찾고자 하는 항목(item) 또는 이벤트가 링크(202) 상에 출현했다는 트리거 신호를 출력들(235, 236)을 경유하여 전달된 링크 트래픽 및 트리거 디코드들과 함께 보내는 경향이 있다. 트리거 신호(211)에 응답하여, 전송 컨트롤러(209)는 링크(214)를 통해 Kcom 과 CRC를 교대로 보내는 모드로 변경한다.
호스트 인터페이스 장치(들)(222)에 추적이 시작되어야 한다고 신호하기 위해(즉, 데이터의 저장을 저장 버퍼들 안의 내부적으로 프로그램된 시작점에 동기화시키는 것을 시작하기 위해), 전송 컨트롤러는 Kstart 가로방향 전송 패킷(502)을 만들고 보낸다. 이것은 전형적으로 호스트 컴퓨터(233)의 요청시 전송 컨트롤러 (209)에 대해 레지스터 비트들을 액세스(accessing) 및 설정함으로써(또는 전용의 분리된 라인들(251, 252)을 사용하여 신호함으로써) 수행된다. 요청시, 전송 컨트롤러(209)는 단순히 각 레인 처리 채널들(2101 내지 210N+Y)에 대해 라인들(240)을 활성화하여 인코더가 Kstart 문자(502)를 링크(214)의 모든 레인들상에 생성하게 한다. 이러한 조치들의 결과로, START 가로방향 패킷(502)은 호스트측 인터페이스(222)까지 전달될 것이다. 링크(214)의 모든 레인에서 Kstart 문자를 수신함으로써, 호스트측 인터페이스는 START 패킷(502)의 존재를 인지할 수 있을 것이다.
도 5의 특정한 프로토콜을 따라, 전송할 추적 데이터가 있을 때까지 START 가로방향 패킷 뒤에는 반복되는 "Kcom, CRCR" 쌍들(503)이 온다. "Kcom, CRCR" 쌍들(503)은 캡처 컨트롤러(204)에 의해 캡처된 실질적인 데이터(예를 들면, 출력(236)에 제공되는 디코딩된 데이터 및 출력(235)로부터의 미가공 데이터 또는 타임스탬프 지연들)가 대기열들(215)로 로딩되게 한다. 대기열들(215)에 충분한 값들을 가지고 다음 CRC 전송에 후속하여, 송신기는 모든 레인 처리 채널들(2101 내지 210N+Y)의 대기열로부터 이러한 각 채널들의 다중화기(216)를 통해 데이터값을 선택하여, 인코딩하고, 직렬화하고 자신의 대응 링크를 통해 구동하게 한다.
이 동작을 수행하기 위해, 전송 컨트롤러(209)는 채널 B를 선택하도록 이러한 각 채널들의 선택 라인(239)을 활성화시킨다. 주의할 점은, 링크(214) 상의 각 패킷(314)의 페이로드 구획의 캡처된 미가공 시스템 링크 패킷(235)에 대한 타임스탬프 지연값의 존재는, 캡처 컨트롤러(204)에 의해 제공되고 페이로드와 함께 헤더 (302)에서 수정되지 않고 전달되는 디코딩된 정보 필드들의 비트들 또는 인코딩들(encodings)에 의해 구체적으로 식별된다는 것이다. 전송 컨트롤러는, 대기열(215)로 전달되는 모든 값들을 똑같이 취급하기 때문에, 링크(214) 패킷의 페이로드가 시스템 링크 미가공 데이터인지 타임스탬프 지연값인지 여부에 대해 모르고 알 필요도 없다. 그래서 Kstart의 전송 후에 캡처 컨트롤러로부터 대기열을 통해 전달된 제1 값들은 타임스탬프 값이거나 미가공 데이터일 수 있다.
도 5에서 보여진 프로토콜의 예에서, 캡처된 실질적인 정보는 Kcom, CRC 및 (Kcom, CRC 쌍들(503) 후의) 타임스탬프 값(504) 후에 시작하고, 그 후, 각각이 관련된 디코딩된 정보 비트들/필드들을 또한 운반하고, 이러한 모든 패킷들이 인코딩되고, 직렬화되고, 링크(214)를 경유하여 호스트측 인터페이스(222)로 전달되는, X개의 미가공 데이터 페이로드들(505)의 스트림으로서 보여진다. 만약 캡처 컨트롤러(204)가 다중화기(206)를 통해 미가공 데이터를 연속적으로 선택하면, 도 5에서 설명된 일련의 가로방향 미가공 데이터 패킷들이 발생한다. 예를 들면, 만약 캡처 컨트롤러(204)가 제1의 찾고자 하는 패킷이 관찰된 후 링크(202) 상에서 관찰되는 각 패킷을 전달하도록 프로그램되어 있다면; 또는 링크(202) 상에서 관찰된 패킷 또는 이벤트를 기술하는데 사용되는 실질적인 데이터가 다중화기(206)의 출력(242)의 폭을 초과하면, 이러한 것이 일어날 수 있다.
임의의 경우, 실질적인 데이터를 호스트측 인터페이스(222)로 운반하는 X개의 가로방향 패킷들(505) 각각은, 전송 컨트롤러에 의해 입력 대기열(215)로부터의 실질적인 데이터의 값들을 각 채널들(1 내지 N)로부터 페이로드(301)로서 전달하 고, 연관된 디코드 정보를 각 채널들(N+1 내지 N+Y)로부터 헤더(302)로서 전달함으로써 만들어진다.
한 실시예에서, 연속적인 실질적 데이터(505) 가로방향 패킷들이 보내지는 동안, 동작하고 있는 CRC는 각 레인을 따라(예를 들면, 레인 1에 대해 CRC 생성기(242)에 의해) 계산되는 값이다. 일단 대기열(215)로부터의 실질적인 데이터가 인코딩을 계속하기에 충분히 남지 않은 지점에 이르면(캡처 컨트롤러(204)에 의해 필터링되거나 또는 버스(242) 상의 필터링되지 않은 최대 패킷 레이트에 대한, 링크(214)에 있어서의 더 높은 패킷 전송 레이트 때문에), 전송 컨트롤러는 대기열로부터 값들을 전송하는 것을 일시중지하고 대신 Kcom, CRC 쌍들(506)을 송신하기 시작한다. 대기열(215)로부터의 값들의 시퀀스 뒤에 오는 이러한 쌍들 중 처음은 데이터 값들의 해당 선행 시퀀스에 대한 CRC를 운반한다. 주의할 점은, CRC 값들이 전송되기 전에 Kcom이 발생하고, 다음 문자가 이전의 CRC 전송 직후까지의 값들의 선행 시퀀스에 대해 각 레인에 대한 축적된 CRC가 될 것이라는 것을 가리키는 Kcom의 포함을 수신기 채널 프로세서들(225)이 간단히 인지하도록 요구된다는 것이다. 또한, 주의할 점은, 각 레인(214) 상의 CRC는 해당 레인을 따라 독립적으로 전해지나, 다른 모든 레인들과 동시에 링크상에서 발생한다는 것이다.
추가 실시예들에서 링크 트레이닝 패턴은 다운스트림 SERDES를 트레이닝하기 위해 전송되고, 링크 콘텐츠 무결성의 손실 및 저장 모듈들에 의한 재트레이닝 요청의 경우 링크 초기화 및 재 초기화 시에 송신되고; 및/또는 CRC를 전송하는 추적 데이터가 Kcom에 선행하는 (있을 경우) 페이로드의 체크섬을 다시 운반하지 않으 면, 반복되는 (Kcom, CRC) 필러(filler) 및 동기화 검사가 사용된다.
다시 도 2를 참조하면, 호스트측 인터페이스는 (예를 들면, 링크들(214) 중 임의의 것보다 느린 속도로 동작하는 버스 또는 지점 간 링크를 통해서) 전송 컨트롤러(209)와 통신가능하게 연결된 수신 컨트롤러(223)를 포함한다. 한 실시예에서, 수신 컨트롤러(223)는 캡처 컨트롤러(204)를 프로그램하려는 목적으로 전송 컨트롤러(209)에 커맨드들을 보낸다. 예를 들면, 수신 컨트롤러는 캡처 컨트롤러 프로그래밍 커맨드들을 전송 컨트롤러(209)에 보내고, 그것은 다시 이러한 커맨드들을 제어 라인(212)을 따라 캡처 컨트롤러(204)로 전달할 수 있다. 프로그래밍 커맨드를 인식함으로써, 가로방향 패킷 헤더들을 구성할 때 전송 컨트롤러(209)를 도울 수 있는 것을 수행하도록 캡처 컨트롤러(204)가 프로그램되었다는 것을 전송 컨트롤러(209)가 이해할 수 있다. 링크 기반 컴퓨팅 시스템 안의 다른 링크들 뿐만 아니라 링크(202) 상의 전체 캡처 전략을 감독할 책임이 있는 컴퓨팅 시스템(도 2에서 도시되지 않음)(233)과 수신 컨트롤러(223)가 또한 통신가능하게 연결될 수 있다.
데이터 무결성 검사에 대한 메카니즘들의 대안적인 구현들은 다양한 접근법들을 구현할 수 있다. 한 실시예에서, 설계는 각 전송 패킷(314)의 헤더(302) 폭을 확장하여 CRC 또는 다른 데이터 무결성 검사 콘텐츠를 고유한 비트 필드들로서 운반할 수 있다. 또 다른 실시예는, 호스트 인터페이스(222)에서 동기화를 유지하기 위해 고유한 식별 Kcode를 링크(214)상의 CRC 값들보다 앞서서 또는 뒤따라 송신하게 하는, 캡쳐 컨트롤러로부터 전송 컨트롤러로의 추가적인 신호를 필요로 하 더라도, 정상적으로 필터링된 패킷 시간들 동안 값들을 버스(242)를 통하여 선택된 값들의 스트림으로 다중화하는 캡처 컨트롤러(204)내의 CRC들(또는 다른 유형의 체크섬들)을 계산할 수 있다.
호스트측 인터페이스(222)는 N+Y 채널들 각각에 대한 수신 처리 채널(2251 내지 225N+Y)도 포함한다. 도 2의 실시예에 따르면, 각 수신 처리 채널은 1) 대응하는 레인의 링크에의 결합을 위한 커넥터(226); 2) 수신기(227); 3) 직렬-병렬 변환기(228); 4) 디코더(229); 5) CRC 검사기(231); 및, 6) 출력 대기열(230)을 포함한다. N+Y 레인들 각각에 대해, 수신 컨트롤러(223)는 Kcom(및 Kstart와 같은 다른 Kcode) 값들의 존재를 디코더(229)로부터 검출할 수 있고, 그래서 CRCR 값들에 대해 수신된 스트림에서의 위치를 결정하고, CRC 검사기(231) 내의 수신된 CRC(또는 디코더(229)의 출력)와, 일부가 재계산된 CRC의 비교를 위해 언제 검사해야 할지를 알 수 있다.
그래서, 수신 컨트롤러(223)는 모든 레인들을 통해 유휴 전송들을 검출할 수 있다. 수신 컨트롤러(223)는 모든 레인들을 통해 Kstart 문자들이 수신되는 것을 관찰함으로써 START 가로방향 패킷들도 검출할 수 있다. 타임스탬프 패킷들은 미가공 데이터 패킷들과 함께 논리 분석기 저장소에 단순히 저장되기 때문에 언제 도착하는지 인지할 필요는 없다. 수신 컨트롤러는 CRC 검사기(231)로 CRC 값들을 검사할 수도 있다. 일단 실질적인 데이터가 성공적으로 수신되면 특히 추적 저장 공간을 보존하기 위해, 이러한 아키텍쳐에 특징적인 간헐적 필터링으로 인한, 프로브 링크측 인터페이스로부터의 고르지 않은 흐름을 수용하기 위한 전통적인 "유효한 값들(values valid)" 전략들을 사용하는 각 경우들에 대해, 로컬 수신 대기열(230)에 저장된 후, (SRAM 또는 DRAM 어레이들에) 국부적으로 저장되거나 또는 종래의 논리 분석기 메인프레임으로 해당 장치에 편리한 레이트로 전달된다.
전술된 명세서에서, 본 발명은 특정한 예시적 실시예들과 관련하여 기술되었다. 그러나, 첨부된 청구항들에서 제공되는 본 발명의 더 넓은 사상 및 범위에서 벗어나지 않고 다양한 수정 및 변경이 만들어질 수 있다는 것이 명백하다. 따라서, 본 명세서 및 도면들은 한정하는 의미라기보다는 예시적인 의미로 여겨져야 한다.
본 발명에 따르면 링크 기반 컴퓨팅 시스템에 적합한 정보 전송 방식 및 장치가 제공된다.

Claims (28)

  1. 링크 기반 컴퓨팅 시스템의 일부인 지점 간 링크로부터 캡처된(captured) 정보를 전달하는 단계를 포함하며,
    상기 전달하는 단계는 상기 정보를 분리된 단편들로 분할하고 상기 분리된 각 단편들을 상기 단편들 자신의 지점 간 링크를 통해 논리 분석기 호스트로 송신함으로써 행해지는 방법.
  2. 제1항에 있어서,
    추가적인 파생 정보(derived information)를 추가적인 분리된 단편들로 분할하고 상기 추가적인 분리된 단편들을 상기 단편들 자신의 추가적인 지점 간 링크들을 따라 송신함으로써 상기 추가적인 파생 정보를 상기 논리 분석기 호스트에 송신하는 단계를 더 포함하고,
    상기 추가적인 파생 정보는 상기 정보를 특징지우는, 방법.
  3. 제2항에 있어서,
    상기 정보는 상기 지점 간 링크에서 캡처된 패킷으로부터의 미가공 데이터(raw data)이고 상기 추가적인 파생 정보는 상기 정보가 상기 지점 간 링크의 패킷으로부터 캡처된 미가공 데이터임을 식별하는 방법.
  4. 제2항에 있어서,
    상기 추가적인 파생 정보는 상기 지점 간 링크상의 찾고자 하는 패킷(looked for packet)이 상기 지점 간 링크상에서 관찰되었음을 확인하는 방법.
  5. 제2항에 있어서,
    상기 지점 간 링크들 및 상기 추가적인 지점 간 링크들을 따라, 상기 송신 단계들에 앞서, 상기 지점 간 링크와 상기 추가적인 지점 간 링크가 상기 정보 및 상기 추가적인 파생 정보 이외의 다른 것을 일시적으로 운반하지 않는다는 것을 상기 논리 분석기 호스트에 알려주는 고유 인코딩들을 상기 지점 간 링크들 및 상기 추가적인 지점 간 링크들 상에서 송신하는 단계를 더 포함하는 방법.
  6. 제5항에 있어서,
    상기 지점 간 링크들 및 상기 추가적인 지점 간 링크들 각각을 따라, 상기 정보의 송신 단계 대신, 상기 링크 기반 컴퓨팅 시스템 정보 및 상기 추가적인 파생 정보가 송신하기에 현재 가용하지 않다는 것을 상기 논리 분석기 호스트에 알리는 콤마(comma) 문자를 송신하는 단계를 더 포함하고, 상기 콤마 문자의 송신 단계는 상기 지점 간 및 추가적인 지점 간 링크들의 모든 레인을 통해서 이루어지는 방법.
  7. 제6항에 있어서,
    상기 지점 간 링크들 및 추가적인 지점 간 링크들 각각을 따라, 상기 콤마 문자의 송신 단계 직후에, CRC 값들을 송신하기 전에 송신된 상기 정보 및 상기 추가적인 파생 정보의 손상을 검출하는 능력을 상기 논리 분석기 호스트에 제공하는 CRC 값을 각 레인상으로 송신하는 단계를 더 포함하고,
    상기 정보 및 추가적인 파생 정보 대신 상기 CRC 값을 송신하는 방법.
  8. 제1항에 있어서,
    상기 송신 단계에 앞서, 상기 정보가 캡처된 시간으로부터 파생된 정보가 상기 논리 분석기 호스트로 송신되는 방법.
  9. 제8항에 있어서,
    상기 추가적인 지점 간 링크들을 따라, 상기 송신 단계들 바로 이전의 송신 단계에서, 상기 정보보다는 상기 정보가 캡처된 시간으로부터 파생된 상기 정보가 상기 송신 단계들 직전에 상기 지점 간 링크들로 운반된다는 것을 상기 논리 분석기 호스트에게 알리는 정보를 송신하는 단계
    를 더 포함하는 방법.
  10. 제9항에 있어서,
    상기 정보가 도착하려고 한다는 것을 상기 논리 분석기 호스트에게 알리는 상기 정보의 송신 단계와 상기 추가적인 정보의 송신 단계 사이에 콤마 문자를 송신하는 방법.
  11. 논리 분석기 링크측 인터페이스를 포함하고,
    상기 논리 분석기 링크측 인터페이스는,
    링크 기반 컴퓨팅 시스템의 일부인 지점 간 링크 상의 패킷을 캡처하기 위한 중계기(repeater) 또는 전력 스플리터(splitter); 및,
    복수의 지점 간 링크들 상에 상기 패킷으로부터 파생된 정보의 분리된 단편들을 구동하기 위한 복수의 구동기들 - 상기 복수의 지점 간 링크들은 상기 정보를 논리 분석기 호스트로 향하게 함 -
    을 포함하는 장치.
  12. 제11항에 있어서,
    상기 패킷으로부터의 미가공 데이터; 및
    상기 패킷이 상기 링크에서 캡처된 시간으로부터 파생된 타이밍 정보
    를 포함하는 그룹에서 선택된 정보들 사이에서 선택하기 위해 상기 중계기 또는 전력 스플리터와 상기 복수의 구동기들 사이에 다중화기를 더 포함하는 장치.
  13. 제11항에 있어서,
    상기 복수의 지점 간 링크들의 각 링크에 대한 분리된 대기열을 더 포함하고, 상기 대기열은 상기 분리된 단편들 중 자신의 것을 저장하기 위한 것인 장치.
  14. 제13항에 있어서,
    상기 복수의 지점 간 링크들의 각 링크에 대한 또 다른 다중화기를 더 포함하고, 상기 다중화기는 자신의 대응하는 상기 대기열의 출력과 CRC 값 사이에서 선택하기 위한 것인 장치.
  15. 제11항에 있어서,
    상기 복수의 지점 간 링크들의 각 링크에 대한 분리된 인코더를 더 포함하고, 상기 인코더는 상기 분리된 단편들 중 자신의 것을 인코딩하기 위한 것인 장치.
  16. 제11항에 있어서,
    상기 복수의 지점 간 링크들의 각 링크에 대한 분리된 직렬화기를 더 포함하고, 상기 직렬화기는 상기 분리된 단편들 중 자신의 것을 병렬 데이터에서 직렬 데이터로 변환하기 위한 것인 장치.
  17. 제11항에 있어서,
    상기 복수의 지점 간 링크들은 구리 케이블들을 더 포함하는 장치.
  18. 제11항에 있어서,
    상기 복수의 지점 간 링크들은 광섬유 케이블들을 더 포함하는 장치.
  19. 제18항에 있어서,
    상기 구동기들은 E/O 구동기들을 더 포함하는 장치.
  20. a) 링크 기반 컴퓨팅 시스템;
    b) 상기 링크 기반 컴퓨팅 시스템 안의 지점 간 링크에 결합된 논리 분석기 링크측 인터페이스
    를 포함하고,
    상기 논리 분석기 링크측 인터페이스는
    상기 지점 간 링크 상에서 패킷을 캡처하기 위한 중계기 또는 전력 스플리터; 및
    복수의 지점 간 링크들 상에 상기 패킷으로부터 파생된 정보의 분리된 단편들을 구동하기 위한 복수의 구동기들 - 상기 복수의 지점 간 링크들은 상기 정보를 논리 분석기 호스트로 향하게 함 -
    을 포함하는 장치.
  21. 제20항에 있어서,
    상기 패킷으로부터의 미가공 데이터; 및
    상기 패킷이 상기 링크상에서 캡처된 시간으로부터 파생된 타이밍 정보
    를 포함하는 그룹에서 선택된 정보들 사이에서 선택하기 위해 상기 중계기 또는 전력 스플리터와 상기 복수의 구동기들 사이에 다중화기를 더 포함하는 장치.
  22. 제20항에 있어서,
    상기 복수의 지점 간 링크들의 각 링크에 대한 분리된 대기열을 더 포함하고, 상기 대기열은 상기 분리된 단편들 중 자신의 것을 저장하기 위한 것인 장치.
  23. 제22항에 있어서,
    상기 복수의 지점 간 링크들의 각 링크에 대한 또 다른 다중화기를 더 포함하고, 상기 다중화기는 자신의 대응하는 상기 대기열의 출력과 CRC 값 사이에서 선택하기 위한 것인 장치.
  24. 제20항에 있어서,
    상기 복수의 지점 간 링크들의 각 링크에 대한 분리된 인코더를 더 포함하고, 상기 인코더는 상기 분리된 단편들 중 자신의 것을 인코딩하기 위한 것인 장치.
  25. 제20항에 있어서,
    상기 복수의 지점 간 링크들의 각 링크에 대한 분리된 직렬화기를 더 포함하고, 상기 직렬화기는 상기 분리된 단편들 중 자신의 것을 병렬 데이터에서 직렬 데이터로 변환하기 위한 것인 장치.
  26. 제20항에 있어서,
    상기 복수의 지점 간 링크들은 구리 케이블들을 더 포함하는 장치.
  27. 제20항에 있어서,
    상기 복수의 지점 간 링크들은 광섬유 케이블들을 더 포함하는 장치.
  28. 제27항에 있어서,
    상기 구동기들은 E/O 구동기들을 더 포함하는 장치.
KR1020050094828A 2004-12-30 2005-10-10 고기능 프로브로부터 논리 분석기로의 정보 전송 방식 KR100823385B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/027,116 2004-12-30
US11/027,116 US20060155843A1 (en) 2004-12-30 2004-12-30 Information transportation scheme from high functionality probe to logic analyzer

Publications (2)

Publication Number Publication Date
KR20060079076A KR20060079076A (ko) 2006-07-05
KR100823385B1 true KR100823385B1 (ko) 2008-04-17

Family

ID=36395777

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050094828A KR100823385B1 (ko) 2004-12-30 2005-10-10 고기능 프로브로부터 논리 분석기로의 정보 전송 방식

Country Status (5)

Country Link
US (1) US20060155843A1 (ko)
EP (1) EP1686479A3 (ko)
KR (1) KR100823385B1 (ko)
CN (1) CN100542101C (ko)
TW (1) TWI317586B (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7844854B2 (en) * 2005-06-30 2010-11-30 Intel Corporation Opportunistic transmission of computing system state information within a link based computing system
US7730246B2 (en) * 2005-06-30 2010-06-01 Intel Corporation Opportunistic transmission of software state information within a link based computing system
JP4852963B2 (ja) * 2005-10-14 2012-01-11 株式会社日立製作所 伝送装置
US8045542B2 (en) 2005-11-02 2011-10-25 Nokia Corporation Traffic generation during inactive user plane
US7813288B2 (en) * 2005-11-21 2010-10-12 Intel Corporation Transaction detection in link based computing system
US20080019517A1 (en) * 2006-04-06 2008-01-24 Peter Munguia Control work key store for multiple data streams
US8326968B1 (en) * 2006-05-30 2012-12-04 Intel Corporation Multi-link correlation
ES2886158T3 (es) 2007-06-05 2021-12-16 Constellation Designs Llc Método y aparato para la señalización con constelaciones de capacidad optimizada
US8265175B2 (en) 2007-06-05 2012-09-11 Constellation Designs, Inc. Methods and apparatuses for signaling with geometric constellations
US9191148B2 (en) 2007-06-05 2015-11-17 Constellation Designs, Inc. Methods and apparatuses for signaling with geometric constellations in a Raleigh fading channel
US7911970B2 (en) * 2009-02-02 2011-03-22 Harvey Timothy J Systems and methods for presenting electronic communication packets using a logic analyzer
KR20100089227A (ko) * 2009-02-03 2010-08-12 삼성전자주식회사 반도체 메모리 시스템
US8242784B2 (en) * 2009-12-07 2012-08-14 International Business Machines Corporation Qualifying circuit board materials
US8897377B2 (en) * 2009-12-31 2014-11-25 Broadcom Corporation Transcoding multiple media elements for independent wireless delivery
KR101396912B1 (ko) * 2013-05-30 2014-05-19 주식회사 이노와이어리스 SerDes 네트워크에서의 직렬 링크 동기화 방법
US9319862B2 (en) * 2014-03-06 2016-04-19 Qualcomm Incorporated Supplemental cross-technology discovery
DE102015121940A1 (de) * 2015-12-16 2017-06-22 Intel IP Corporation Eine Schaltung und ein Verfahren zum Anhängen eines Zeitstempels an eine Tracenachricht
US10334334B2 (en) * 2016-07-22 2019-06-25 Intel Corporation Storage sled and techniques for a data center

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990050572A (ko) 1997-12-17 1999-07-05 이계철 분산 노드 환경에서 점대점 프로토콜 및 다중링크 프로토콜을 이용한 서비스 처리 방법
KR20030094436A (ko) 2002-06-04 2003-12-12 삼성전자주식회사 두 호스트 사이의 통신을 위한 다중 링크 관리장치 및 방법
KR20040029458A (ko) 2001-08-30 2004-04-06 마이크론 테크놀로지, 인크 고속 메모리 시스템에서의 광 상호접속
KR20040056828A (ko) 2002-12-24 2004-07-01 한국과학기술원 외부 비간섭성 광원을 주입하여 파장 고정된 페브리-페롯레이저를 이용한 광 가입자 망
KR20050107724A (ko) 2004-05-10 2005-11-15 인텔 코오퍼레이션 링크-기반 컴퓨팅 시스템 내에서의 i/o 구성 메시징

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5369640A (en) * 1993-04-16 1994-11-29 Digital Equipment Corporation Method and apparatus for clock skew reduction through remote delay regulation
US5717729A (en) * 1994-06-30 1998-02-10 Digital Equipment Corporation Low skew remote absolute delay regulator chip
US6044400A (en) * 1995-03-25 2000-03-28 Lucent Technologies Inc. Switch monitoring system having a data collection device using filters in parallel orientation and filter counter for counting combination of filtered events
US6018809A (en) * 1997-03-28 2000-01-25 Emc Corp Apparatus and method for capturing information off a plurality of bi-directional communication buses
US6009488A (en) * 1997-11-07 1999-12-28 Microlinc, Llc Computer having packet-based interconnect channel
US6507923B1 (en) * 1999-04-19 2003-01-14 I-Tech Corporation Integrated multi-channel fiber channel analyzer
US6535489B1 (en) * 1999-05-21 2003-03-18 Advanced Micro Devices, Inc. Method and apparatus in a network switch for handling link failure and link recovery in a trunked data path
IES20010397A2 (en) * 2000-07-06 2002-02-06 Richmount Computers Ltd Performance monitoring in a storage enclosure
JP3525869B2 (ja) * 2000-07-12 2004-05-10 日本電気株式会社 パケット通信システムの接続装置及び方法
US6708292B1 (en) * 2000-08-18 2004-03-16 Network Associates, Inc. System, method and software for protocol analyzer remote buffer management
US7096261B2 (en) * 2001-03-12 2006-08-22 Qualcomm Incorporated Method and apparatus for providing multiple quality of service levels in a wireless packet data services connection
US20040153813A1 (en) * 2002-12-17 2004-08-05 Swoboda Gary L. Apparatus and method for synchronization of trace streams from multiple processors
ATE554443T1 (de) * 2003-06-25 2012-05-15 Koninkl Philips Electronics Nv Anweisungsgesteuerte datenverarbeitungseinrichtung und -verfahren
US7424076B2 (en) * 2004-01-22 2008-09-09 Nokia Corporation System and method for providing synchronization information to a receiver
US7710965B2 (en) * 2004-11-23 2010-05-04 Broadlogic Network Technologies Inc. Method and system for multi-program clock recovery and timestamp correction

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR19990050572A (ko) 1997-12-17 1999-07-05 이계철 분산 노드 환경에서 점대점 프로토콜 및 다중링크 프로토콜을 이용한 서비스 처리 방법
KR20040029458A (ko) 2001-08-30 2004-04-06 마이크론 테크놀로지, 인크 고속 메모리 시스템에서의 광 상호접속
KR20030094436A (ko) 2002-06-04 2003-12-12 삼성전자주식회사 두 호스트 사이의 통신을 위한 다중 링크 관리장치 및 방법
KR20040056828A (ko) 2002-12-24 2004-07-01 한국과학기술원 외부 비간섭성 광원을 주입하여 파장 고정된 페브리-페롯레이저를 이용한 광 가입자 망
KR20050107724A (ko) 2004-05-10 2005-11-15 인텔 코오퍼레이션 링크-기반 컴퓨팅 시스템 내에서의 i/o 구성 메시징

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
IEEE, 1991

Also Published As

Publication number Publication date
TW200629813A (en) 2006-08-16
EP1686479A2 (en) 2006-08-02
TWI317586B (en) 2009-11-21
EP1686479A3 (en) 2007-12-05
US20060155843A1 (en) 2006-07-13
KR20060079076A (ko) 2006-07-05
CN1798065A (zh) 2006-07-05
CN100542101C (zh) 2009-09-16

Similar Documents

Publication Publication Date Title
KR100823385B1 (ko) 고기능 프로브로부터 논리 분석기로의 정보 전송 방식
US10552358B2 (en) Interface for bridging out-of-band information from a downstream communication link to an upstream communication link
US8307265B2 (en) Interconnection techniques
JP4732594B2 (ja) 複数ギガビットイーサネット(r)アーキテクチャの方法および装置
EP0826179B1 (en) Source synchronous clocked data link
US7079528B2 (en) Data communication method
US8385374B1 (en) Multilane communication device
EP0859495A2 (en) High speed multimedia data network
US10498561B2 (en) Adaptive equalization channel extension retimer link-up methodology
US7050468B2 (en) Multiplexed signal transmitter/receiver, communication system, and multiplexing transmission method
CN108259127B (zh) Pcie双冗余万兆网ip核
KR20030085141A (ko) 지연 시간 보상 코어, 병렬-직렬 구조 시스템 및 지연시간 보상 방법
US9672182B2 (en) High-speed serial ring
US20120219005A1 (en) Aggregating communication channels
WO2004105312A2 (en) Deskewing parallel data
EP2127145B1 (en) Mechanism for channel synchronization
EP1700224B1 (en) Receiver corporation
US9178692B1 (en) Serial link training method and apparatus with deterministic latency
KR102518285B1 (ko) PCIe 인터페이스 및 인터페이스 시스템
EP1139242A2 (en) Non-synchronized multiplex data transport across synchronous systems
CN114442514B (zh) 一种基于fpga的usb3.0/3.1控制系统
US20070028152A1 (en) System and Method of Processing Received Line Traffic for PCI Express that Provides Line-Speed Processing, and Provides Substantial Gate-Count Savings
US6990538B2 (en) System comprising a state machine controlling transition between deskew enable mode and deskew disable mode of a system FIFO memory
CN116506063A (zh) 发送器模块、接收器模块和通信系统
US5721891A (en) Detection of N length bit serial communication stream

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment
FPAY Annual fee payment
LAPS Lapse due to unpaid annual fee