[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20170042800A - 낮은 레이턴시 스위칭 장치 및 그 방법 - Google Patents

낮은 레이턴시 스위칭 장치 및 그 방법 Download PDF

Info

Publication number
KR20170042800A
KR20170042800A KR1020177009077A KR20177009077A KR20170042800A KR 20170042800 A KR20170042800 A KR 20170042800A KR 1020177009077 A KR1020177009077 A KR 1020177009077A KR 20177009077 A KR20177009077 A KR 20177009077A KR 20170042800 A KR20170042800 A KR 20170042800A
Authority
KR
South Korea
Prior art keywords
data
switch
output
fpga
logic
Prior art date
Application number
KR1020177009077A
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
Priority claimed from AU2014903158A external-priority patent/AU2014903158A0/en
Application filed by 메타마코 테크놀로지 엘피 filed Critical 메타마코 테크놀로지 엘피
Publication of KR20170042800A publication Critical patent/KR20170042800A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/407Bus networks with decentralised control
    • H04L12/413Bus networks with decentralised control with random access, e.g. carrier-sense multiple-access with collision detection [CSMA-CD]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/74591Address table lookup; Address filtering using content-addressable memories [CAM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Logic Circuits (AREA)

Abstract

데이터 스위칭 방법. 데이터는 적어도 하나의 크로스포인트 스위치 입력단에서 수신된다. 상기 크로스포인트 스위치는 적어도 하나의 상기 크로스포인트 스위치의 출력단에 상기 데이터를 캐스팅 한다. 상기 크로스포인트 스위치의 각각의 출력단은 FPGA와 같은 논리 함수 디바이스의 각각의 입력단에 연결된다. 상기 논리 함수 디바이스는 상기 크로스포인트 스위치의 각각의 출력단으로부터 수신한 데이터에 어드레스 필터링 또는 멀티플렉싱 같은 논리 함수를 적용하고, 복수의 논리 함수 디바이스 출력 인터페이스에 처리된 데이터를 출력한다. 또한, 상위 계층 함수로 상기 데이터를 복사하는 동안, 수신한 데이터를 출력으로 스위칭하는 회로를 포함하는 스위칭 방법.

Description

낮은 레이턴시 스위칭 장치 및 그 방법{APPARATUS AND METHOD FOR LOW LATENCY SWITCHING}
본 발명은 네트워크 데이터 스위칭에 관한 것으로, 보다 구체적으로는, 원하는 네트워킹(networking) 기능을 수행하기 위한 FPGA 또는 ASIC와 같은 하나 이상의 논리 함수 디바이스로 이루어진 하나 이상의 크로스포인트 스위치들의 조합을 이용한 낮은 레이턴시 데이터 스위칭에 관한 것이다.
하나의 소스로부터 데이터 패킷들을 획득하고, 상기 데이터 패킷들을 하나 이상의 가능한 데스티네이션들로 송신하는 것이 종종 요구된다. 예를 들어, 이것은 주식거래에서 잠재적으로 패킷들을 수신하는 증권 트레이더 컴퓨터들과 같은 수많은 기계들이 요구되는 증권 거래소에서 다운스트림 방향의 케이스이다.
몇몇 어플리케이션(application)에서 하나의 포트(port)로부터 다수의 포트로 브로드캐스트(broadcast) 또는 멀티캐스트(multicast)하는 것이 적절하다. 예를 들어, 스위치와 같은 디바이스의 입력에서 스위치의 모든 출력으로 모든 패킷들을 멀티캐스트하거나 또는 브로드캐스트하는 것은, 크로스포인트 스위치를 사용함으로써 달성될 수 있다. 그러나 패킷 스위치의 경우와 같은 다른 시나리오에서는, 2개의 엔드 포인트들 간의 유니캐스트 통신은 전용이어야 한다.
예를 들어, 어드레서블 스위칭은 몇몇의 메커니즘을 이용하여 다운스트림 패킷들을 처리함으로써 종래의 패킷 스위치에서 컨텐츠 어드레서블 메모리(content addressable memory)와 같은 직접 회로에서 수행될 수 있다. 이러한 과정은, 하나의 송수신기에서 데이터를 수신하는 과정, 어드레스와 연관된 포트를 식별하기 위해 룩업 테이블(lookup table)을 참조하는 과정, 및 식별된 포트에 패킷을 디렉팅(directing)하는 과정을 수반한다. 이러한 접근은 대역폭 사용을 최적화하는 원리에 기초하나, 스위치에서 상대적으로 복잡한 회로 구조를 요구한다.
계층1(물리 계층(physical layer))로 돌아가기 전에, 현재 네트워크 스위치들은 어드레스 확인을 위해 계층1 데이터가 계층2(데이터 링크 계층(data link layer))로 변환될 것을 요구한다. 주파수에 대해 직렬 스트림에서 계층2 특성을 수행하기 어렵기 때문에, 계층1에서 계층2로 데이터를 변환하는 것은 병력 스트림에서 데이터 역직렬화(deserialization)하는 것을 요구한다. 이것은 어떠한 계층2도 계층1보다 훨씬 느리고, 가장 빠른 계층2 네트워크 스위치들이라 하더라도 계층2 어드레스 체킹(address checking)이 약 200-400ns의 상당한 지연을 일으킨다는 것을 의미한다. 복수의 트레이더들의 데이터 트래픽(data traffic)이 하나의 스트림으로 집계되는 업스트림 집계가 사용되는 경우, 이것은 원치 않는 레이턴시를 증가시키는, Metamako LP로부터 MetaConnect C16 스위치에 추가된 이더넷(Ethernet) 스위치와 같은 다대일 스위치의 사용을 요구한다. 또한, 네트워크 스위치들은 시그널 패스(signal path)들을 복잡하게 하고, 클라킹 리미테이션(clocking limitation)들을 일으키는 업스트림 데이터 패스와 다운스트림 데이터 패스들을 하나의 디바이스에서 함께 처리해야 한다. 존재하는 다수의 스위치들은 대역폭 및 다수의 용도의 사용의 유연성을 최적화 하기 위해 설계된다.
본 발명의 상세한 설명에 포함된 문서, 행동, 재료, 디바이스, 물품에 대한 어떠한 논의는 오직 본 발명의 컨텍스트(context)를 제공하는 목적에 관한 것이다. 이들 중 일부 또는 전부는 종래 기술의 일부를 형성하거나, 또는 본 발명의 각 청구항의 우선일 이전에 존재하는 것과 같이 본 발명의 관련 분야에서 공통적이고 일반적인 상식으로 인정하는 것은 아니다.
발명의 상세한 설명을 통해 "포함한다"는 용어나 이에 대한 변형례는, 언급된 구성 요소(element), 정수(interger), 단계(step)의 조합이거나 또는 구성요소, 정수, 단계의 그룹을 함축하는 것으로 이해되어야 하며, 다른 구성 요소, 정수, 단계나 구성 요소, 정수, 단계들의 그룹을 배제하는 것은 아니다.
본 발명의 상세한 설명에서, 옵션들의 리스트에 대한 "적어도 하나"라는 표현은 리스트된 옵션들 각각의 하나를 의미하거나 또는 리스트된 옵션들의 두개 또는 그 이상의 조합을 의미하는 것이다.
본 발명의 일실시예에 따른 데이터 스위칭 방법은, 적어도 하나의 크로스포인트 스위치의 입력단에서 데이터를 수신하는 단계; 상기 크로스포인트 스위치가 복수의 상기 크로스포인트 스위치의 출력단들로 데이터를 멀티캐스팅(multicasting)하는 단계; 논리 함수 디바이스(logic function device)의 입력단에 상기 크로스포인트 스위치의 각각의 출력단을 연결하는 단계; 상기 논리 함수 디바이스가 크로스포인트 스위치의 복수의 출력단들의 각각으로부터 수신한 데이터에 논리 함수(logic function)를 적용하는 단계; 및 복수의 논리 함수 디바이스의 출력 인터페이스에 처리된 데이터(processed data)를 출력하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 데이터 스위치는, 크로스포인트 스위치 및 논리 함수 디바이스를 포함하고,
상기 크로스포인트 스위치는, 적어도 하나의 데이터를 수신하기 위한 입력단과 복수의 출력단을 가지고, 상기 크로스포인트의 적어도 하나의 상기 입력단에서 수신한 데이터를, 적어도 하나의 상기 출력단으로 멀티캐스트 하도록 설정되고,
상기 논리 함수 디바이스는,
상기 크로스포인트 스위치의 각각의 복수의 출력단에 각각 연결된 복수의 입력단을 가지고, 상기 크로스포인트의 복수의 상기 출력단으로부터 수신한 데이터에 적용되는 복수의 논리 함수로 구성되고, 각각의 상기 논리 함수의 출력 인터페이스로 처리된 데이터를 출력할 수 있다.
본 발명의 일실시예에 따른 데이터 스위치의 재구성을 위한 비 일시적인 컴퓨터 판독 가능 매체에 있어서, 하나 이상의 프로세서에 의해 실행될 때, 퍼포먼스(performance)를 발생시키는 명령을 포함하고,
상기 퍼포먼스는, 적어도 하나의 크로스포인트 스위치의 입력단에서 데이터를 수신하고, 상기 크로스포인트 스위치는 적어도 하나의 상기 크로스포인트 스위치의 출력단에 데이터를 멀티캐스팅하고, 상기 크로스포인트 스위치의 각각의 출력단을 논리 함수 디바이스의 복수의입력단들의 각각에 연결하고,
상기 논리 함수 디바이스는, 상기 크로스포인트 스위치의 상기 복수의 출력단들의 각각으로부터 수신한 데이터에 논리 함수를 적용하고, 복수의 각각의 논리 함수 디바이스 출력 인터페이스에 처리된 데이터를 출력할 수 있다.
본 발명의 일실시예에 따른 컴퓨터 프로그램 제품에 있어서, 컴퓨터가 데이터 스위치의 소프트웨어 컨트롤러(software controller)를 위한 프로시저(procedure)를 실행하도록 하는 컴퓨터 프로그램 코드 수단(means); 처리될 데이터와 연관하여 복수의 논리 함수 디바이스 중 하나를 선택하는 컴퓨터 프로그램 코드 수단; 상기 크로스포인트 스위치의 적어도 하나의 입력단에서 수신한 데이터를 상기 크로스포인트 스위치의 복수의 출력단으로 멀티캐스트하는 상기 크로스포인트 스위치를 제어하는 컴퓨터 프로그램 코드 수단; 상기 크로스포인트 스위치의 복수의 출력단들의 각각이 상기 논리 함수의 각각의 입력단으로 연결된 컴퓨터 프로그램 코드 수단; 및 상기 논리 함수 디바이스를 제어하기 위한 컴퓨터 프로그램 코드 수단을 포함하고,
상기 논리 함수는, 상기 크로스포인트 스위치의 복수의 출력단들의 각각으로부터 수신한 데이터에 선택된 논리 함수를 적용하고, 상기 논리 함수의 복수의 각각의 출력 인터페이스로 처리된 데이터를 출력할 수 있다.
본 발명의 일실시예에 따른 데이터 스위칭 방법은, 적어도 하나의 크로스포인트 스위치의 입력단에서 데이터를 수신하는 단계; 상기 크로스포인트 스위치가 적어도 하나의 상기 크로스포인트 스위치의 출력단으로 데이터를 캐스팅(casting)하는 단계; 논리 함수 디바이스(logic function device)의 입력단에 상기 크로스포인트 스위치의 각각의 출력단을 연결하는 단계; 상기 논리 함수 디바이스가 크로스포인트 스위치의 출력단으로부터 수신한 데이터에 논리 함수(logic function)를 적용하는 단계; 및 하나 이상의 논리 함수 디바이스의 출력 인터페이스에 처리된 데이터(processed data)를 출력하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 데이터 스위치는, 크로스포인트 스위치 및 논리 함수 디바이스를 포함하고,
상기 크로스포인트 스위치는, 적어도 하나의 데이터를 수신하기 위한 입력단과 복수의 출력단을 가지고, 상기 크로스포인트의 적어도 하나의 상기 입력단에서 수신한 데이터를, 적어도 하나의 상기 출력단으로 캐스트 하도록 설정되고,
상기 논리 함수 디바이스는,
상기 크로스포인트 스위치의 각각의 출력단에 각각 연결된 하나 이상의 입력단을 가지고, 상기 크로스포인트의 상기 출력단으로부터 수신한 데이터에 적용되는 적어도 하나의 논리 함수로 구성되고, 각각의 상기 논리 함수의 출력 인터페이스로 처리된 데이터를 출력할 수 있다.
본 발명의 일실시예에 따른 데이터 스위치의 재구성을 위한 비 일시적인 컴퓨터 판독 가능 매체에 있어서, 하나 이상의 프로세서에 의해 실행될 때, 퍼포먼스(performance)를 발생시키는 명령을 포함하고,
상기 퍼포먼스는, 적어도 하나의 크로스포인트 스위치의 입력단에서 데이터를 수신하고, 상기 크로스포인트 스위치는 적어도 하나의 상기 크로스포인트 스위치의 출력단에 데이터를 캐스팅하고, 상기 크로스포인트 스위치의 각각의 출력단을 논리 함수 디바이스의 각각의 입력단에 연결하고,
상기 논리 함수 디바이스는, 상기 크로스포인트 스위치의 상기 각각의 출력단으로부터 수신한 데이터에 논리 함수를 적용하고, 하나 이상의 각각의 논리 함수 디바이스 출력 인터페이스에 처리된 데이터를 출력할 수 있다.
본 발명의 일실시예에 따른 컴퓨터 프로그램 제품에 있어서, 컴퓨터가 데이터 스위치의 소프트웨어 컨트롤러(software controller)를 위한 프로시저(procedure)를 실행하도록 하는 컴퓨터 프로그램 코드 수단(means); 처리될 데이터와 연관하여 복수의 논리 함수 디바이스 중 하나를 선택하는 컴퓨터 프로그램 코드 수단; 상기 크로스포인트 스위치의 적어도 하나의 입력단에서 수신한 데이터를 상기 크로스포인트 스위치의 적어도 하나의 출력단으로 캐스트하는 상기 크로스포인트 스위치를 제어하는 컴퓨터 프로그램 코드 수단; 상기 크로스포인트 스위치의 각각의 출력단이 상기 논리 함수의 각각의 입력단으로 연결된 컴퓨터 프로그램 코드 수단; 및 상기 논리 함수 디바이스를 제어하기 위한 컴퓨터 프로그램 코드 수단을 포함하고,
상기 논리 함수는, 상기 크로스포인트 스위치의 각각의 출력단으로부터 수신한 데이터에 선택된 논리 함수를 적용하고, 상기 논리 함수의 하나 이상의 각각의 출력 인터페이스로 처리된 데이터를 출력할 수 있다.
본 발명의 실시예들에 따르면, 상기 크로스포인트 스위치의 적어도 하나의 출력단으로 상기 데이터를 캐스팅하는 상기 크로스포인트 스위치는 상기 크로스포인트 스위치의 복수의 출력단으로 상기 데이터를 멀티캐스팅하는 상기 크로스포인트 스위치를 포함할 수 있다.
본 발명의 실시예들에 따르면, 상기 크로스포인트 스위치의 적어도 하나의 출력단으로 상기 데이터를 캐스팅하는 상기 크로스포인트 스위치는 상기 크로스포인트 스위치의 복수의 출력단으로 상기 데이터를 유니캐스팅하는 상기 크로스포인트 스위치를 포함할 수 있다.
상기 논리 함수 디바이스는 필드 프로그래머블 게이트 어레이(field programmable gate array: FPGA), x86 CPU와 같은 프로세서 또는 내부 네트워크 인터페이스를 가지는 프로세서 또는 멀티코어(multicore) 마이크로프로세서로 구성되는 주문형 반도체(ASIC) 또는 복수의 그런 디바이스들을 포함할 수 있다. 본 발명의 실시예들에서, FPGA를 이용한다는 설명은 ASIC 또는 본 발명의 범위(scope)내에 포함된 프로세서들에도 적용할 수 있다.
본 발명의 실시예들은 대역폭 사용 최적화의 포기를 통해, 향상된 낮은 레이턴시 및/또는 향상된 디터미니즘(determinism) (약간의 MAC 충돌)을 위한 최적화를 효과적으로 포함할 수 있다. 하나 이상의 수신기로 상기 데이터를 분배하는 크로스포인트 스위치의 브로드캐스팅 기능을 사용함으로써, 가능한 총 대역폭이 줄어들고, 각각의 하드웨어 구성요소의 데이터 처리량이 필수적으로 최대화 되지는 않지만, 본 발명은 다수의 동일한 데이터 스트림의 병렬 프로세싱이 다른 유리한 효과를 가진다는 것을 인식한다. 본 발명은 다수의 존재하는 스위치들은 대역폭 및 다수의 용도의 사용의 유연성을 최적화 하기 위해 설계 되지만, 이것은 높은 레이턴시와 높은 디터미니즘이 발생하는 것을 인식한다.
상기 데이터는, 하나 이상의 서버들로부터 생성 되고 다수의 클라이언트 디바이스를 위해 만들어진 다운스트림 데이터가 될 수 있다. 추가적으로 또는 대신에, 상기 데이터는, 하나 이상의 클라이언트 디바이스로부터 생성되고 하나 이상의 서버를 위해 만들어진 업스트림 데이터가 될 수 있다. 추가적으로 또는 대신에, 상기 데이터는, 고성능 컴퓨팅 클러스터(high performance computing cluster)의 노드(node) 사이에서 또는 데이터 중앙 네트워크의 노드 사이에서 스위칭 되는 데이터와 같은 피어 투 피어(peer to peer) 데이터가 될 수 있다.
본 발명의 실시예들에 있어서, 상기 크로스포인트 스위치의 상기 출력단의 상기 FPGA의 상기 입력단으로의 연결은 직접연결을 포함하거나 다른 실시예들에서, AC 커플링 커패시터(coupling capacitor) 또는 레벨 변환(level translation), 버퍼링(buffering), 증폭(amplification), 또는 신호 복원(signal recovery)을 수행하는 ICs 와 같은 추가된 회로 구성 요소가 될 수 있다.
각각의 FPGA 출력 인터페이스는 복수의 출력단, PCIe출력, 다른 출력 인터페이스, 또는 고속 통신 인터페이스의 스트림 그룹을 포함할 수 있다.
본 발명의 실시예들에서, 상기 데이터는 서버와 같은 원격 위치로부터 수신되며, 하나 이상의 클라이언트 디바이스로부터 크로스포인트 스위치로 분배되고자 하는 다운스트림 데이터이다. 디바이스들이 스위치와 연결되고, 스위치를 통해 좀더 넓은 네트워크에 인터페이싱(interfacing) 한다면, 디바이스가 스위치와 같은 물리적 로컬리티(locality)가 아니더라도, 디바이스들은 스위치에 대해 로컬로 고려될 수 있다. 이러한 실시예들에서, 상기 FPGA에 의해 적용된 상기 논리 함수는 어드레스 필터링(address filtering)과 같은 컨텐츠 기반(content-based)의 필터링을 포함할 수 있고, 상기 크로스포인트 스위치는 상기 크로스포인트의 복수의 출력단으로 상기 데이터를 멀티캐스트 하고, 복수의 상기 클라이언트 디바이스는 각각 복수의 상기 FPGA의 출력단과 연관되고, 상기 FPGA는 특정 로컬 클라이언트 디바이스에 어드레스된 데이터가 각각의 상기 논리 함수 디바이스의 출력단으로부터 출력되는 방식으로 상기 크로스포인트 스위치의 각각의 출력단으로부터의 데이터를 필터한다. 이러한 실시예들은 효과적인 브로드캐스팅을 위한 상기 크로스포인트 스위치와, 효과적인 어드레싱 및 다른 함수를 위한 상기 FPGA를 이용한다. 상기 컨텐츠 기반의 필터링은 상기 데스티네이션 또는 L2, L3 또는 L4로부터의 소스 어드레스를 참조하는 어드레싱을 포함할 수 있지만, 또한 프로토콜 기반(protocol based)의 필터링, 상태 기반(state-based)의 필터링 및 방화벽, 딥 패킷(deep packet) 검사, 침입 탐지(intrusion detection) 또는 구축 탐지(extrusion detection)의 경우 필터 될 무효 패킷들이나 상기 FPGA에서 수행되는 다른 논리 함수에 의한 필터링을 포함할 수 있다. 상기 FPGA의 하나 이상의 논리 블록으로 상기 데이터스트림을 복사하는 상기 크로스포인트 스위치를 이용하는 것은 상기 FPGA의 동일한 데이터에서 동시에 다수의 논리가 수행되도록 허용한다. 상기 실시예들에서, 상기 FPGA의 하나의 송수신기는 각각의 필터를 위한 송신기 및 수신기 역할을 할 수 있다. 대신에, 상기 FPGA의 출력단에 연결된 상기 클라이언트 디바이스 같은 다른 디바이스가 어드레스 필터로 대신 구성된 실시예들에서, 상기 FPGA는 어드레스 필터 없이 출력단으로 데이터를 전송할 수 있다. 상기 실시예들은 최적화된 대역폭 계층2 룩업 접근들과는 반대로 각각의 어드레싱 데이터 패킷으로의 '브로드캐스트 및 필터' 접근을 이용할 수 있다.
다른 실시예들에서, 상기 데이터는 상기 크로스포인트 스위치로의 하나 이상의 클라이언트 로컬로부터 수신되고 하나 이상의 서버들과 같이 하나 이상의 원격 위치로의 전송을 위해 만들어진 업스트림 데이터일 수 있다. 상기 실시예들에서, 상기 FPGA에 의해 제공된 상기 논리 함수는 멀티플렉싱(multiplexing)될 수 있다. 멀티플렉싱은 각각의 데이터 클락들을 동기화 하기 위한 FIFO 버퍼(FIFO buffer) 또는 메모리 큐(memory queue)로 연결되고, 하나 이상의 클라이언트 디바이스로부터의 하나의 업스트림 데이터 스트림으로 데이터를 멀티플렉스(multiplex) 하는 멀티플렉서로 각각의 FIFO 또는 메모리 큐의 출력을 전송하는 상기 FPGA의 각각의 수신기의 입력단에 의해 제공될 수 있다. 예를 들어, 상기 업스트림 데이터 스트림은 상기 FPGA의 포트에서 송신기에 의해 출력될 수 있고, 외부 네트워크 전방 패널 포트(external network front panel port) 또는 좀 더 일반적으로 상기 크로스포인트 스위치로의 내부 네트워크 인터페이스 카드(network interface card)를 포함할 수 있는 클라이언트 디바이스로 전송을 위한 상기 크로스포인트 스위치로 전송될 수 있다. 몇몇 실시예들에서, 상기 FPGA 논리는 IP 어드레싱 같은 계층3 또는 계층4인 방화벽 또는 잠재적으로 병렬로 수행되는 패킷 변환을 수행하도록 구성될 수 있다. 몇몇 실시예들은 로컬 디바이스에서 상기 FPGA의 복수의 멀티플렉서들로 업스트림 데이터를 멀티캐스팅 하는 상기 크로스포인트 스위치; 및 포트를 위해 어드레스 될 때, 각각의 상기 멀티플렉서에서 각각의 외부 네트워크 포트로 데이터가 지연되도록 어드레싱 필터를 가지는 각각의 멀티플렉서의 출력 필터링에 의해
로컬 디바이스에서 복수의 원격 지역으로의 데이터 전송을 더 제공할 수 있다.
몇몇 실시예들에서, 상기 크로스포인트 스위치는 업스트림 데이터 및 다운스트림 데이터를 모두 처리할 수 있고, 상기 데이터 스트림 중 하나는 상기 크로스포인트 스위치에 상기 FPGA로 유도될 수 있고, 데이터의 다른 스트림은 크로스포인트 스위치의 전방 포트(front port)와 다수의 클라이언트 디바이스 사이에 직접 연결될 수 있다.
상기 FPGA는 모든 송수신기(transceiver)에 전용 라우팅 테이블(dedicated routing table)을 제공함으로써, 계층3 라우팅을 수행하도록 설정될 수 있다.
본 발명의 일실시예는 분리된 FPGA 또는 상기 업스트림 데이터논리와 다운스트림 데이터 논리의 각각을 위한 분리된 FPGA 논리를 제공할 수 있다. 상기 FPGA의 논리에서 사용될 더 적은 파이프라인 스테이지(pipeline stage)들을 허용하고 감소된 레이턴시 및 라우팅 딜레이(routing delay)를 제공하는 상기 실시예들은 상기 FPGA에서 업스트림 논리 및/또는 다운스트림 논리가 물리적으로 더 작아지는 것을 허용한다. 업스트림 데이터 구성요소들 및 다운스트림 데이터 구성요소를 위한 논리가 송수신기 같은 하드웨어를 공유하지 않는 것을 보장하는 것은 라우팅 혼잡 완화에 유리하다. 유사한 사항들은 고 성능 컴퓨팅 어플리케이션들(high performance computing application)의 프로세서 코어(processor core) 사이에서 로드 레벨링(load leveling)을 위한 상기 데이터 스위치의 사용 같은 피어 투 피어(peer-to-peer) 구성을 적용한다.
본 발명은 매우 빠른 I/Os와 데이터 버스(data bus)들을 이용하여 간단하거나 복잡한 디지털 컴퓨테이션(digital computation)을 실행하는 논리 게이트(logic gate) 및 RAM 블록의 큰 리소스(resources)를 제공하는 FPGA를 제공하는 것을 인식한다. 상기 FPGA의 논리 함수는 재설정 가능하기 때문에, 각각의 포트 출력은 간단한 필터, 다수의 입력 스트림의 멀티플렉스, 멀티플렉스 및 필터, 또는 종래의 TCAM(ternary content addressable memory) 기반의 계층2 스위치 함수와 같은 다른 실행된 논리 함수를 잠재적으로 가진다. 또한, 상기 함수들은 요구 되는 경우 및 프로그래머블(programmable)하고, 마켓 트레이딩 데이터(market trading data)를 처리할 때와 같이 시간에 민감한 재설정이 요구되는 어플리케이션에 대해 중요할 수 있는 시의 적절한 때에 업데이트될 수 있다. 본 발명의 몇몇 실시예들은 적용 가능한 하드웨어 기술 언어 등을 사용하고, 마이크로초(microsecond)안에 필터 함수 또는 하드 코딩된 라우팅 규칙의 조정과 같은 신속한 원격 재설정을 허용하는 상기 FPGA의 논리 블록을 리프로그램(reprogram)할 수 있는 관리 컴퓨터를 더 제공할 수 있다. 예를 들어, 상기 관리 컴퓨터는 인터넷을 통하는 것 같이 바람직하게 원격으로 접근 가능한 64bit x86 프로세서를 포함할 수 있다. 상기 관리 컴퓨터는 PCIe(PCI express)와 같은 고속 시리얼 컴퓨터 익스팬션 버스(high speed serial computer expansion bus) 또는 네트워크 링크(network ling)를 통해 상기 FPGA로 명령을 전송할 수 있다. 몇몇 실시예들에서, 상기 필터 또는 다른 논리 함수는 상기 FPGA의 행동에 의해 내부적으로 자동 설정 될 수 있다. 예를 들어, 종래의 스위치에서 논리를 학습하는 MAC 어드레스를 모방하는 목적을 위하는 것처럼, 설정 정보는 멀티플렉서들, 필터 또는 상기 FPGA의 논리 함수 블록들 간의 낮은 대역폭 경로에서 전송될 수 있다.
몇몇 실시예들에서, 상기 FPGA는 원하는 함수와 연관된 상기 FPGA의 포트로 데이터를 스위칭 하는 상기 크로스포인트 스위치에 의해 순응적으로 선택된 복수의 상기 원하는 함수들로 설정될 수 있다.
상기 크로스포인트 스위치로부터의 데이터는 상기 FPGA가 계층1에서 수행하는 더 간단한 통신 프로토콜(protocol)에서의 AND 또는 XOR와 같은 간단한 논리 게이트들 또는 필터링 및/또는 멀티플렉싱과 같은 더 복잡한 조합된 함수들을 포함하는 상기 FPGA에 의해 제공된 어떠한 적합한 논리 함수로 향할 수 있다. 상기 논리 함수는 입력으로 패킷 필드(packet field)의 컨텐츠를 사용할 수 있고, 순차적이고 조합된 논리의 적절한 사용으로 다른 패킷 필드의 컨텐츠를 수정할 수 있다. 몇몇 실시예들에서, 필터링은 하나 이상의 필드 또는 필드의 조합을 기반으로 할 수 있고, 표현 또는 프로그램으로부터 동적으로 컴파일(compile)된 필터를 이용할 수 있고, 딥 패킷(deep packet) 검사에 의한 상태 기반 검사를 포함할 수 있고, 또는 금융 시장 데이터 위험 확인 게이트웨이(gateway)를 포함할 수 있다. 상기 논리 함수는 계층3 라우팅(예를 들어, IP 어드레스 정보에 기초한 MAC 주소를 변환하는 이더넷(Ethernet)/IP), 계층4 라우팅(예를 들어 NAT를 실행하여 UDP 또는 TCP 포트 정보를 기반으로 하는 IP 어드레스를 변환하는 IP/UDP 또는 IP/TCP), 금융 시장 데이터 티커 플랜트(ticker plant) 또는 파서(parser), 또는 어플리케이션 프로토콜 변환기와 같은 변환을 포함할 수 있다. 상기 논리 함수는 다수의 소스로부터의 데이터를 공급하고 중복을 무시(예를 들어, 손실이 있어도, 느리지만 안정적인 고성능 커뮤니케이션 링크를 결합하는 것)하는 것 같이 결정권자에 영향을 미칠 수 있다. 몇몇 실시예들에서, 상기 FPGA는 계층1 함수와 동일한 디바이스에서 계층2 함수를 제공하는 상기 데이터 스트림의 데이터의 타임 스탬핑(time stamping)에 영향을 미치도록 설정될 수 있다. 상기 FPGA를 타임 스탬핑 하는 것에 영향을 미치는 것은 그것의 입력 데이터 인터페이스에서 패킷의 시작을 감지할 수 있고, 메타데이터(metadata)로 패킷에 추가되고, 늦은 프로세싱을 위해 저장되고, 분석을 위해 다른 디바이스로 보내지고, 및/또는 FCS(frame check sequence) 또는 IFG(interframe gap)의 패킷에 추가될 수 있는 타임스탬프(timestamp)를 생성할 수 있다. 상기 FPGA에 의해 제공되는 추가 함수는 데이터 패킷 캡쳐(data packet capture)가 될 수 있고, 상기 크로스포인트는 데이터 패킷 캡쳐 RAM, 디스크 및/또는 PCIe링크에 직접 또는 간접적으로 복제 데이터 스트림을 전달한다.
몇몇 실시예들에서, 상기 FPGA는 큰 데이터 메모리 또는 큰 컴퓨팅 용량과 같은 더 큰 규모의 함수들로의 상기 FPGA의 연결을 가능하게 하는 외부 커넥터(connector)에 외부 고속 시리얼 버스 연결이 더 제공될 수 있다.
상기 FPGA는 정해진 시간(일반적으로 초의 시작)에 펄스를 생성하는 외부 타임 소스(GPS와 같은)와 동기화 된 내부 클락(일반적으로 타임스탬핑을 위해 사용되는)을 허용하기 위해 수신한 데이터 심볼(data symbol)의 리딩 엣지(leading edge)를 감지하는 PPS 모니터(pulse-per-second monitor) 역할을 하도록 설정된 논리가 더 제공될 수 있다.
상기 크로스포인트 스위치의 데이터 포트는 10GBASE-T 인터페이스 타입(type) 또는 1000BASE-T 인터페이스 타입을 사용하는 구리 케이블, 100BASE-TX 구리 케이블, 10GBASE-R/1000BASE-X를 사용하는 광섬유, 직접 연결 구리 케이블 등을 포함하는 적절한 케이블(cable)로부터 데이터를 수신할 수 있다. 상기 크로스포인트 스위치는 SFP, SFP+, QSFP, QSFP+, CFP와 같은 적절하고 접속 가능한 모듈(module)로부터 데이터를 수신할 수 있다. 상기 모듈은 직접 부착 구리 케이블, 1GBase-SX, 10GBase_SR, 1GBase_LR, DWDM, 또는 다른 연결 스탠다드(connectivity standard)를 통해 연결을 허용할 수 있다. 대신에, 상기 크로스포인트 스위치는 커넥터(connector)나 프린트된 회로 보드(printed circuit board)를 사용하는 다른 디바이스에 직접적으로 연결될 수 있다.
상기 크로스포인트는 상기 FPGA와 물리적으로 분리된 ASIC로서 제공될 수 있다.
몇몇 실시예들에서, 상기 FPGA의 송수신기는 상기 FPGA와 크로스포인트 스위치를 포함하는 디바이스의 전방 패널 포트(front panel port)에 직접 연결될 수 있다. 대신에, 상기 FPGA의 송수신기는 상기 크로스포인트 스위치에 연결되고, 상기 전방 패널 포트로부터 분리 될 수 있다.
본 발명의 실시예들에 따르면, 컴퓨터 코드 또는 명령은 스위치 오너(owner) 또는 관리자의 하드웨어를 컴퓨터 코드 또는 명령들에 의해 가능해진 새로운 논리들로 재구성하기 위해, 그들에 의한 구매를 위해 이용 가능한 서버에 있을 수 있다. 상기 컴퓨터 코드 또는 명령은 소스 코드, FPGA HDL(hardware description language), 또는 HDL로 컴파일 될 수 있는 상위 레벨 언어로 된 명령을 포함할 수 있다.
물리 계층 데이터 스위칭 방법을 제공하는 본 발명에 따른 상기 방법은, 스위치의 적어도 하나의 입력단에서 데이터를 수신하는 단계; 회로가 상기 스위치의 적어도 하나의 출력단으로 데이터를 스위칭하는 단계; 및 상위 계층 프로세스로 데이터를 복사하는 단계를 포함할 수 있다.
물리 계층 데이터 스위치를 제공하는 본 발명에 따른 상기 데이터 스위치는, 하나 이상의 데이터 출력으로 각각 서킷 스위치 될 수 있는 하나 이상의 데이터 입력, 제1 데이터로부터 서킷 스위치된 데이터를 수신하는 제1 데이터 출력, 제1 입력으로부터 데이터의 복사본을 수신하는 제2 데이터 출력 및 제2 데이터 출력에 연결된 상위 계층 함수 회로를 포함할 수 있다.
하나 이상의 프로세서들에 의해 실행될 때, 퍼포먼스를 발생시키는 명령을 포함하는 데이터 스위치의 재설정을 위한 비 일시적인 컴퓨터 판독 가능 매체를 제공하는 본 발명에 따른 상기 퍼포먼스는, 회로가 스위치의 적어도 하나의 입력단에서 수신한 데이터를 상기 스위치의 적어도 하나의 출력단으로 스위칭하는 단계; 및 상위 계층 프로세스로 데이터를 복사하는 단계를 포함할 수 있다.
물리 계층 데이터 스위칭의 방법을 제공하는 본 발명에 따른 상기 방법은, 스위치의 적어도 하나의 입력단에서 데이터를 수신하는 단계; 회로가 스위치의 적어도 하나의 출력단으로 데이터를 스위칭하는 단계; 및 상위 계층 프로세스가 데이터를 수정 또는 보충하고, 상기 스위치의 제2 출력단에서 제2 데이터를 생산하는 단계를 포함할 수 있다.
본 발명은 낮은 레이턴시(low latency)에서 물리 계층 프로세싱 결과와 프로토콜의 유연성을 인식할 수 있지만, 물리 계층 스위치들은 오직 상위 계층에서 추출될 수 있는 유용한 카운터(counter)들과 통계(statistics)들을 제공하지 않고, 데이터 링크를 모니터하고 문제를 진단하는 스위치를 이용하는 것이 가능하지 않기 때문에 상기 물리 계층 스위치들은 네트워크 관리자들에게 불이익을 제공할 수 있다.
종래의 물리 계층 스위치와는 달리, 본 발명의 실시예들은 데이터 처리량에 대한 어떠한 레이턴시의 추가도 없이 높은 계층 기능을 제공하면서 대신에 낮은 레이턴시와 프로토콜 유연성의 이점을 유지하는 상기 물리 계층을 제공할 수 있다. 보다 구체적으로는, 데이터를 직접 입력에서 출력으로 회로 스위칭함으로써, 상기 물리 계층 스위치는 낮은 레이턴시 레벨에서 작동한다. 또한, 스위치와 상위 계층 프로세스로 같은 데이터를 복사함으로써, 상위 레벨 모니터링 함수는 상기 스위칭과 병렬로 수행되기 때문에 상기 상위 레벨 모니터링 함수는 상기 물리 계층 스위칭의 레이턴시에 영향을 주지 않고 실행될 수 있다. 본 발명의 몇몇 실시예들에서, 상기 상위 계층 프로세스는 네트워크에서 사용되는 일반적인 프로토콜인, IP 식별 패킷들과 이더넷 프레임(Ethernet frame)들을 포함할 수 있다. 다른 프로토콜은 Fibre Channel, InfiniBandTM 및 SDI를 포함할 수 있다. 이러한 유사점은 상위 레벨 모니터링 카운터(high level monitoring counter)들과 통계가 추가적인 프로세스 시간을 가지더라도 데이터가 상기 스위치를 통과할 때 지연되지 않는다는 것을 의미한다. 본 발명의 몇몇 실시예들에서, 카운터들 및 통계와 같은 상기 상위 레벨 프로세스의 출력은 상기 스위치의 관리 인터페이스(management interface)를 통해 접근되고, 상기 상위 레벨 프로세스(들)는 데이터 패스(data path)의 낮은 레이턴시를 지연시키지 않는다.
본원에서 상기 상위 레벨 프로세스의 참조는 상기 물리 계층에서 수행되지 않는 프로세스를 참조하는 것으로 이해될 수 있다. 본 발명의 실시예들에 따르면, 상기 상위 계층 프로세스는 물리 계층의 이상적인 패턴 및 8B/10B 코드 위반과 같은 물리 계층의 에러를 감지하는 것을 포함하는 상위 레벨 프로세싱을 위한 물리 계층 데이터의 변환을 포함할 수 있다.
본 발명의 몇몇 실시예들에서, 복수의 데이터 입력단에서 수신한 가급적 모든 데이터 입력은 하나 이상의 상위 계층 프로세스로 각각 복사될 수 있다. 상기 일실시예들은 레이턴시에 영향 없이 각각의 인터페이스에 대한 패킷 식별과 같은 상위 계층 프로세스를 제공하면서 동시에 모든 데이터 입력의 각각 또는 모두를 스위칭하는 계층1에 영향을 미칠수 있다.
본 발명의 실시예들에서, 상위 계층 함수는 상기 각각의 인터페이스에 대한 데이터 패킷 통계의 카운터를 포함할 수 있다.
본 발명의 몇몇 실시예들에서, 상기 상위 계층 함수는 추가적으로 또는 대신에 송수신된 다수의 옥텟(octet)의 카운터를 포함할 수 있다.
본 발명의 몇몇 실시예들에서, 상기 상위 계층 함수는 추가적으로 또는 대신에 유니캐스트, 멀티케스트, 및 브로드캐스트 타입에 의한 다수의 패킷의 카운터를 포함할 수 있다.
본 발명의 몇몇 실시예들에서, 상기 상위 계층 함수는 추가적으로 또는 대신에 이더넷(Ethernet), IP, UDP, TCP, HTTP, SSH, SNMP, ARP 등의 프로토콜에 의한 다수의 패킷들의 카운터를 포함할 수 있다.
본 발명의 몇몇 실시예들에서, 상기 상위 계층 함수는 추가적으로 또는 대신에 다수의 64바이트(byte), 65-127바이트, 256-511바이트 등의 데이터 패킷 사이즈에 의한 패킷들의 카운터를 포함할 수 있다.
본 발명의 몇몇 실시예들에서, 상기 상위 계층 함수는 추가적으로 또는 대신에 불명확한 FCS(frame check sequence), 패킷 '런트(runt)', 패킷 '자이언트(giant)' 및/또는 정렬된 에러 등에 의한 다수의 패킷 에러의 카운터를 포함할 수 있다.
본 발명의 몇몇 실시예들에서, 상기 상위 계층 함수는 추가적으로 또는 대신에 드랍된(dropped) 프레임의 수의 카운터를 포함할 수 있다.
본 발명의 몇몇 실시예들에서, 상기 상위 계층 함수는 추가적으로 또는 대신에 VLAN 및/또는 MACsec 카운터들을 포함할 수 있다.
본 발명의 몇몇 실시예들에서, 상기 상위 계층 함수는 추가적으로 또는 대신에 이상적인 링크 상태 감지를 포함할 수 있다.
본 발명의 몇몇 실시예들에서, 상기 상위 계층 함수는 추가적으로 또는 대신에 이상적인 패턴을 주입하거나 와이어(wire)로 전송될 이상적인 패턴을 발생시키는 기능을 포함할 수 있다.
본 발명의 몇몇 실시예서, 상기 상위 계층 함수는 추가적으로 또는 대신에 8B/10B 코드 에러들과 같은 물리 계층 에러들을 위한 상기 물리 계층의 비트 에러 비율에 대한 추정치를 계산할 수 있는 카운터를 포함할 수 있다.
본 발명의 몇몇 실시예들에서, 상기 상위 계층 함수는 추가적으로 또는 대신에 패킷 MAC 어드레스 조사를 함으로써 각각의 연결의 다른 끝부분에서 호스트 및/또는 디바이스를 식별하는 것과 같이, 스위칭 디바이스에서 휴리스틱스(heuristics)를 제공하는 패킷 조사를 포함할 수 있다.
본 발명의 몇몇 실시예들에서, 상기 상위 계층 함수는 수신 인터페이스와 송신 인터페이스 중 하나 또는 모두에서 캡쳐된 데이터에 적용될 수 있다.
본 발명의 몇몇 실시들예에서, 통계 카운터 값(statistic counter value)와 같은 상기 상위 계층 프로세스의 출력은 스위치의 관리 모듈에 의해 보고 될 수 있다. 상기 몇몇 실시예들에서, 관리 모듈 기능은 커맨드 라인(command line), 웹 인터페이스 및/또는 분리된 컴퓨터가 질의 하거나 퍼블리쉬(publish)된 카운트 값을 수신하는 것을 허용하는 SNMP와 같은 다른 메커니즘을 포함할 수 있다.
본 발명의 몇몇 실시예들에서, 상기 상위 계층 함수는 추가적으로 또는 대신에 패킷을 타임스탬프(timestamp)하는 기능을 포함할 수 있다. 상기 실시예들은 스위치에서의 타임스탬핑(timestamping)은 네트워크 레이턴시를 측정하는 것과 추후 심사, 과거 네트워크 트래픽(traffic)을 테스팅(testing)/모델링(modelling)/리플레잉(replaying) 하는 것에 대해 사용될 수 있는 정확한 레코드(record)들에 유용하다는 것을 인식할 수 있다. 이더넷 패킷(Ethernet packet)들을 처리하고 패킷이 정확한 타임스탬핑 정보에 대한 필드(field)를 가지지 않는 것을 참조하는 실시예들에서, 상기 타임스탬핑 정보는 타임스탬프 데이터에 첨부된 패킷의 사이즈(size)를 증가시킴으로써 상기 패킷에 추가될 수 있다.
대신에, 타임스탬프 데이터는 다른 정보를 위해 사용되는 패킷의 부분을 대체함으로써 각각의 패킷에 추가될 수 있다. 본 발명의 실시예들은 더 큰 패킷을 위한 채널에 더 이상의 공간 없이 완전히 포화된 링크에서 상기 패킷을 타임스탬프 하는 것이 가능한 이점을 가진다. 패킷의 사이즈에 영향을 주지 않는 하나의 접근은 32-bit 타임스탬프의 값을 가지는 이더넷 프레임에서 FCS(frame check sequence) 필드를 대체하는 것이다. 이것은 오직 상기 FCS가 체크(check)되고 에러가 없다는 것이 확인된 후에 이루어진다. 상기 FCS에 에러가 있는 경우, 영향을 받은 패킷에서 특별한 타임스탬프의 값이 사용될 수 있다. 상기 특별한 타임스탬프는 명확한 패킷에 대해서 절대로 발생하지 않는 것이다. 32-bit 타임스탬프는 즉각적인 참조를 인지하는 분리된 프로세스에 의해 절대 시간의 단위로 해석될 수 있는 인지된 즉각적인 참조에서의 나노 초(nanosecond)의 숫자를 나타낼 수 있다. 예를 들어, 상기 32-bit 타임스탬프는 나노 초에서 절대 시간의 최하위 32bits 나타낼 수 있다. 다른 일실시예에서, 상기 이더넷 프레임의 서두는 타임스탬프 값으로 부분적으로 대체될 수 있다.
데이터 스트림에서 데이터의 복사본의 타임스탬핑을 제공하는 본 발명의 실시예들은 동일한 디바이스에서 계층1 스위칭과 같은 계층2 함수를 제공한다. 디바이스를 타임스탬핑 하는 것에 영향을 미치는 것은 디바이스의 입력 데이터 인터페이스들에서 패킷들의 시작을 감지 할 수 있고, 메타데이터(metadata)로서 상기 패킷에 추가되고 늦은 프로세싱을 위해 저장되며 분석을 위한 다른 디바이스로 전송되고 및/또는 FCS 또는 IFG(Interframe gap)에서 상기 패킷에 추가되는 타임스탬프를 생성 할 수 있다.
상위 계층 함수가 타임스탬핑 패킷들을 포함하는 본 발명의 실시예들에서, 상위 계층 디바이스는 지연되고 타임스탬프된 원본 데이터 스트림의 복사본을 포함하는 제2 데이터를 출력할 수 있다. 상기 실시예들은 마지막 사용자에 의한 분리된 분석을 위한 로깅(logging) 디바이스/컴퓨터에 연결될 수 있는 추가된 타임스탬프 정보와 동일한 데이터의 지연된 복사본을 생성하면서, 낮은 레이턴시에서 상기 데이터를 출력단으로에 전달할 수 있다.
상위 계층 함수가 타임스탬핑 패킷들을 포함하는 본 발명의 실시예들에서, 상기 타임스탬프 값은 스위치의 수신 인터페이스에서 감지된 패킷의 시작 순간에 카운터 레지스터(register)를 샘플링함으로써 얻어질 수 있다. 다른 실시예들에서, 타임스탬핑은 스위치의 출력 인터페이스에서 수행될 수 있다. 상기 카운터 레지스터는 나노 초에서 정확한 현재 시간을 나타내도록 가급적 정기적으로(예를 들어, 나노 초마다) 업데이트 된다. 상기 카운터는 PPS(pulse per second) 신호 또는 PTP(precision time protocol) 등을 통해 외부 시간 참조 및 외부 스위치에 동기화 될 수 있다. 대신에, 상기 타임스탬프의 값은 패킷의 시작 이후 몇몇 고정된 시간 오프셋에서 얻어질 수 있고, 패킷의 시작이 수신된 실제 시간은 상기 타임스탬프의 값에서 상기 고정된 시간 오프셋을 뺌으로써 얻어질 수 있다. 상기 실시예들에서, 뺄셈은 상기 타임스탬프가 상기 FCS 필드로 쓰여지기 이전 또는 타임스탬프된 데이터 스트림을 추후 프로세싱 할 때 수행될 수 있다.
본 발명의 몇몇 실시예들에서, 상기 상위 계층 함수는 추가적으로 또는 대신에 데이터 패킷 캡쳐를 포함할 수 있으며, 복제된 데이터 스트림의 일부 또는 전부는 MAC(media access controller)를 통해 처리 될 수 있고, 데이터 패킷 캡쳐 RAM, 디스크 및/또는 PCIe 링크로 전달될 수 있다. 상기 실시예들에서, 패킷이 동시에 복사되고 소프트웨어/관리 포트(management port)를 통해 마지막 사용자에게 보고 되는 동안, 상기 패킷이 딜레이 없이 라인 레이트(line rate)에서 전송되도록 관리 플랫폼(management platform)은 인터페이스를 통해 전송되는 상기 패킷을 캡쳐(capture)하는 것이 요구될 수 있다. 몇몇 실시예들에서, 상기 상위 계층 함수는 MAC 프로세싱 없이 데이터를 캡쳐할 수 있다. 일실시예에서, 상기 상위 계층 함수는 하나 이상의 포트로부터 캡쳐된 데이터를 집계할 수 있다.
본 발명의 몇몇 실시예들에서, 상기 데이터는 하나 이상의 서버에서 시작하고, 하나 이상의 클라이언트 디바이스들을 위해 만들어진 다운스트림 데이터가 될 수 있다. 추가적으로 또는 대신에, 상기 데이터는 하나 이상의 클라이언트 디바이스들에서 시작하고, 하나 이상의 서버들을 위해 만들어진 업스트림 데이터가 될 수 있다. 추가적으로 또는 대신에, 상기 데이터는 고성능 컴퓨팅 클러스터(high performance computing cluster)의 노드들 사이 또는 데이터 중앙 네트워크의 노드들 사이에서 스위치 되는 피어 투 피어 데이터가 될 수 있다.
본 발명의 몇몇 실시예들에서, 상기 상위 계층 함수는 추가적으로 또는 대신에 방화벽, 침입 탐지(intrusion detection) 또는 구축 탐지(extrusion detection)의 경우 딥 패킷 검사를 포함할 수 있다.
본 발명의 몇몇 실시예들에서, 상기 상위 계층 함수는 추가적으로 또는 대신에 물리 계층으로 전송되는 MAC의 출력과 함께 인터페이스 MAC(media access controller)로 패킷을 주입하는 기능을 포함할 수 있다. 즉, 상기 실시예들에서, 사용자 소프트웨어는 관리 인터페이스를 통해 스위치로 패킷을 전달할 수 있고, 상기 상위 계층 함수는 특정 인터페이스에 대한 수신 MAC 또는 송신 MAC 중 어느 하나로 패킷을 주입하는 것을 포함할 수 있다. 상기 패킷은 와이어에서 인터페이스로부터 전송될 수 있다. 상기 패킷은 대신에 디바이스에서 소프트웨어 또는 하드웨어(예를 들어, FPGA)에 의해 생성될 수 있다. 즉, 상기 패킷은 상기 관리 인터페이스를 넘어 전송되는 대신 상기 디바이스에서 생성될 수 있다. 상기 몇몇 실시예들은 IGMP(Internet Group Management Protocol Version2) 인터넷 사회 RFC2236의 주제, 및/또는 PIM(protocol-independent multicast) 라우팅 프로토콜, 및/또는 BGP(border gateway protocol) 등에 따라서 인터넷 다운스트림 호스트들을 대신하여 멀티캐스트 하는 것을 신청하기 위해서 하나의 패킷 또는 패킷들을 주입할 수 있다. IGMP의 경우, 이 논리를 수행하는 다운스트림 호스트를 가지는 필요를 제거함으로써, 그룹을 멀티캐스트 하는 것을 신청 하는 것 또는 해지 하는 것은 본 발명의 스위치의 포트에 연결된 다운스트림 클라이언트들 대신에 멀티캐스트 패킷들을 수신하는 멀티캐스트 그룹에서 레지스터하는 인접한 멀티캐스트 라우터로의 전송을 위한 IGMP 패킷들을 주입하는 것을 포함할 수 있다.
본 발명의 몇몇 실시예들에서, 상기 스위치의 데이터 포트는 10GBASE-T 인터페이스 타입(type) 또는 1000BASE-T 인터페이스 타입을 사용하는 구리 케이블, 100BASE-TX 구리 케이블, 10GBASE-R/1000BASE-X를 사용하는 광섬유, 직접 연결 구리 케이블 등을 포함하는 적절한 케이블로부터 데이터를 수신할 수 있다. 상기 스위치는 SFP, SFP+, QSFP, QSFP+, CFP와 같은 적절하고 접속 가능한 모듈(module)로부터 데이터를 수신할 수 있다. 상기 모듈은 직접 연결 구리 케이블, 1GBase-SX, 10GBase_SR, 1GBase_LR, DWDM, 또는 다른 연결 스탠다드(connectivity standard)를 통해 연결을 허용할 수 있다. 대신에 상기 스위치는 커넥터(connector)나 프린트된(printed) 회로 보드(circuit board)를 사용하는 다른 디바이스에 직접 연결될 수 있다.
본 발명의 몇몇 실시예들에서, 복사된 데이터에 대한 상기 상위 계층 함수는 상기 복사된 데이터의 스트림을 상위 계층 함수에 각각 연결된 상기 스위치의 다수의 출력 중 하나로 스위칭 함으로써 선택될 수 있다. 상기 실시예들은 복사된 데이터 스트림에 적용되는 하나 이상의 상위 계층 함수의 동적인 선택을 허용한다. 상기 실시예들에서, 상기 상위 계층 함수의 출력은 상기 크로스포인트 스위치의 선택된 출력에 대한 상기 상위 계층 함수의 출력의 동적이고 설정 가능한 스위칭을 허용하는 상기 크로스포인트 스위치로 돌아갈 수 있다.
본 발명의 몇몇 실시예들에서, 상기 상위 계층 함수는 데이터가 복사되는 상기 크로스포인트 스위치의 입력 및/또는 출력에 위치한 시그널 컨디셔닝 블록(signal conditioning block)에 의해 영향을 받을 수 있다.
도 1은 본 발명의 일실시예를 수행하기 위해 사용되는 하드웨어를 도시한 도면이다.
도 2는 본 발명의 업스트림 데이터(upstream data)의 처리를 도시한 도면이다.
도 3은 본 발명의 다운스트림 데이터(downstream data)의 처리를 도시한 도면이다.
도 4는 도 1의 도면에서 다운스트림 데이터의 브로드캐스팅(broadcasting)을 도시한 도면이다.
도 5는 재설정 가능한 다운스트림 데이터 필터링을 제공하는 본 발명의 다른 일실시예의 데이터 플로우 다이어그램(data flow diagram)이다.
도 6은 재설정 가능한 업스트림 데이터 필터링을 제공하는 본 발명의 다른 일실시예의 데이터 플로우 다이어그램이다.
도 7은 하나의 FPGA에서 이용되는 하나 이상의 멀티플렉서에서의 다른 일실시예를 도시한 도면이다.
도 8a는 본 발명의 다른 일실시예에 따라 완전 교차 연결된 스위치를 도시한 도면이고, 도 8b는 8a의 상기 일실시예에서 하나의 패킷의 처리를 도시한 도면이다.
도 9는 본 발명의 일실시예를 수행하기 위해 사용되는 하드웨어를 도시한 도면이다.
도 10은 본 발명의 다른 일실시예를 수행하기 위해 사용되는 하드웨어를 도시한 도면이다.
도 11은 본 발명의 또 다른 일실시예를 수행하기 위해 사용되는 하드웨어를 도시한 도면이다.
도 12는 본 발명의 또 다른 일실시예를 수행하기 위해 사용되는 하드웨어를 도시한 도면이다.
도 13은 본 발명의 다른 일실시예를 수행하기 위해 사용되는 하드웨어를 도시한 도면이다.
도 14는 도 13의 실시예에 따른 시그널 컨디셔닝 블록의 도면이다.
도 1은 본 발명의 일실시예를 수행하기 위해 사용되는 하드웨어를 도시한 도면이다. 도 1은 다른 디바이스들에 연결될 수 있는 몇몇 전방 패널 포트(front panel port)들, 전방 패널 포트와 통신할 수 있는 송수신기(transceiver)들을 가지는 몇몇 FPGA들 및 재배치할 수 있고, 하나의 포트에서 다수의 포트로 데이터를 멀티캐스트 할 수 있는 크로스포인트 스위치(crosspoint switch)로 구성될 수 있다. 도 1은 몇몇 포트들이 데이터 출력을 외부디바이스로 제공하는 것이 필요해지는 것처럼 모든 크로스포인트 스위치의 출력들이 필수적으로 FPGA들의 논리 함수들에 연결될 것이라는 것은 아니다.
도 1의 디바이스의 업스트림 구성요소들에 대하여, 디바이스는 다수의 입력 스트림을 획득하고 그것들을 하나로 멀티플렉스(multiplex) 하는 FPGA를 제공한다. 멀티플렉스된 싱글(single) 스트림은 크로스포인트(crosspoint)를 통해 반납될 수 있다. 디바이스에 아주 작은 다른 논리가 있기 때문에, 짧은 파이프라인(pipeline) 또는 FPGA의 논리 구성요소의 그룹핑(grouping)과 함께 하이 클락 레이트(high clock rate)에서 발생되는 FPGA를 의미하는 작은 혼잡이 생길 수 있다. 즉, 단순화된 데이터 패스웨이(data pathway)는 각각의 구성요소가 고도로 최적화 되는 것을 허용할 수 있다. 이것은 낮은 레이턴시(low latency)와 다른 논리를 감안할 수 있다.
도 1의 방식으로 FPGA와 크로스포인트 스위치를 결합함으로써, 크로스포인트 스위치에서 브로드캐스트(broadcast) 함수에 영향을 미치는 것과 필터(filter) 함수 또는 FPGA 내부의 다른 함수들에 영향을 미치는 것이 가능할 수 있다. 오직 필터링 함수에서 FPGA로 이동하는 브로드캐스트 구성요소는 크로스포인트 내에서 낮은 레이턴시로 효과적인 관리가 되는 이점이 있을 수 있다. 즉, FPGA내부의 각각의 필터는 입력 및 출력을 포함한다. 이것은 복잡한 논리 및 클락킹(clocking)을 극단적으로 로컬(잠재적으로 송수신기 자체의 짧은 거리 내)하게 할 수 있다. 이것은 순차적으로 디바이스 내부의 더 낮은 레이턴시를 위해 허용할 수 있다. 또한, 이것은 가까운 송수신기를 제외하고, FPGA내부의 데이터를 전송할 필요가 없기 때문에, 다운스트림(downstream) 구성요소(필터링 논리)에 대한 송수신기가 다수의 FPGA들 사이에서 퍼질 수 있다는 것을 의미할 수 있다.
그리고, 이것은 업스트림(upstream) 구성요소가 잠재적으로 훨씬 효과적인 업스트림 실행(예를 들어 적은 사이클(cycle) 및 더 낮은 레이턴시)을 고려하여 다운스트림 논리와의 상호작용 없이 근접한 송수신기에서 실행될 수 있다는 것을 의미할 수 있다. 본 발명의 범위내의 다른 실시예들에서, 업스트림 논리 구성요소와 다운스트림 논리 구성요소 사이의 상호작용은 때때로 플로우 컨트롤 또는 1000BASE-X 자동 협상을 실행하는 때와 같이 요구될 수 있다.
도 2에서 보여지는 것과 같이, 업스트림 논리와 다운스트림 논리는 분리된 FPGA들에서도 실행될 수 있다. 이러한 설정에서, 디바이스 내부의 많은 논리를 전체적으로 일치 시킬 수 있다. 다른 실시예들은 하나의 FPGA 또는 ASIC에서 업스트림 함수 및 다운스트림 함수 모두를 실행할 수 있지만, 실시예들에서 업스트림 구성요소 및 다운스트림 구성요소에 대한 논리는 하드웨어 리소스(보다 구체적으로는, 송수신기)를 공유할 필요가 없고, 따라서 라우팅(routing) 혼잡을 완화하는 FPGA의 같은 부분에 있지 않을 수 있다.
다운스트림 구성요소는 도 3에서 보여질 수 있다. 이 구성요소에서 논리는 간단해 질 수 있다. 업스트림 서버가 어드레스된(addressed) 데이터를 노드들 중 하나로 전송할 때, 데이터는 FPGA내부의 하나 이상의 필터에 대한 크로스포인트 스위치에 의해 브로드캐스트될 수 있다. 각각의 필터는 아주 작고 독립적이며, 송수신기들 사이의 FPGA를 지나는 장거리 데이터의 라우팅이 없을 수 있다. 필터에 대한 수신과 송신 모두 FPGA의 동일한 송수신기에서 실행될 수 있다. 필터는 크로스포인트로 스위치로부터 수신한 데이터에 작동할 수 있고, 필터가 데이터를 전송하면, 데이터는 오직 (크로스포인트 스위치를 통해 다시) 다운스트림 클라이언트(client)로 전송될 수 있다.
도 4에 보여지는 것과 같이, 모든 클라이언트가 필터링과 독립적인 모든 데이터를 수신해야 한다면, 크로스포인트 스위치는 FPGA로 데이터를 전송하지 않고 클라이언트들에게 데이터를 직접 브로드캐스트 할 수 있다.
본 발명의 다른 실시예들에서, 멀티플렉스 기능 및 필터 기능은 다수의 업스트림 서버들을 처리하거나 완전히 교차 연결된 스위치를 만들기 위해 결합 될 수 있다.
도 5는 재설정 가능한 다운스트림 데이터 필터링을 제공하는 본 발명의 일실시예의 데이터 플로우 다이어그램이다. 다운스트림의 경우에, 보여지는 것처럼 데이터는 업스트림 서버(502)에서 다수의 다운스트림 클라이언트(512, 515)들로 전송될 수 있다. 데이터는 업스트림 서버(502)로부터 전송되고, 크로스포인트 스위치(520)로 들어가는 외부의 포트에서 수신될 수 있다. 데이터는 FPGA(530)로의 크로스포인트 스위치(520)에 의해서 필터(536,538)당 하나의 송수신기(532,534)로 멀티캐스트 될 수 있다. 모든 포트가 다른 필터링 요청을 가지면 다운스트림 클라이언트(512,514) 당 하나의 필터를 사용할 수 있고, 그렇지 않으면 크로스포인트 스위치(520)을 적절히 설정함으로써 FPGA(530)의 하나의 필터로부터 다수의 클라이언트들 또는 원하는 포트들로 브로드캐스트 할 수 있다. 도 5의 일실시예는 다운스트림 포트당 하나인 두개의 필터를 포함할 수 있다. 각각의 필터(536,538)는 필터와 관련된 송수신기(532,534)를 가질 수 있고, 송신 및 수신(즉, 회복된 클락에 의해 구동되는 TX) 모두 또는 FIFO의 사용을 위한 하나의 클락 도메인(clock domain), 또는 다수의 클락 도메인들에서 교차하는 다른 클락 도메인 중 어느 하나를 선택할 수 있다. 송신 및 수신 모두 또는 FIFO의 사용에 대한 클락 도메인은 가능한 가장 낮은 레이턴시를 위해 선호될 수 있지만, 몇몇 실시예들은 데이터를 완전히 리클락(re-clock)하고 전송을 위한 최고의 시그널 퀄리티(signal quality)를 제공하기 위해서 다수의 클락 도메인에서 교차하는 다른 클락 도메인을 사용할 수 있다. 선택은 요구되는 시그널 퀄리티에 따를 수 있다. 도 5에서 하나의 클락 도메인에서 수행되는 필터를 볼 수 있다.
각각의 송수신기(532,534)에 의해 수신된 데이터는 크로스포인트 스위치(520)에 의해 모든 필터(536,538)로 전송될 수 있다. 각각의 송수신기(532, 534)는 데이터를 역직렬화(desirialize) 할 수 있다. 필터와 연관된 클라이언트로 데이터가 어드레스(address)되면, 보여지는 필터(536)처럼, 필터는 동일한 송수신기를 사용하는 데이터를 필터는 재전송할 수 있는 것과 같이, 데이터가 요구되는 표준과 일치하는 경우, 필터 논리(536,538)는 데이터를 해석할 수 있다. 이 정렬의 결과와 같이, 필터 논리(536,538) 각각의 송수신기(532,534)에 아주 가까울 수 있다. 보여지는 필터(538)처럼, 데이터가 필터와 연관된 클라이언트에 어드레스 되지 않은 것과 같이, 데이터가 필터 표준에 일치하지 않는 경우, 데이터는 재전송되지 않을 수 있다. 크로스포인트 스위치(520)는 관리 컴퓨터(management computer)(540)에 의해 필터(536,538)들의 출력을 클라이언트(512,514)들과 연관된 적절한 포트(들)로 전송하도록 설정될 수 있다. 또한, 관리 컴퓨터(540)는 필터(536,538)가 클라이언트(512, 514)와 연관된 포트로 전송되어야 하는 데이터를 선택하도록 필터(536,538)를 설정할 수 있다. 필터 논리(536,538)는 요구되는 필터링 표준 및 요구되는 복잡성의 레벨에 따라 매우 간단하거나 매우 복잡할 수 있다.
도 6은 재설정 가능한 업스트림 데이터 필터링을 제공하는 본 발명의 일실시예의 데이터 플로우 다이어그램이다. 업스트림의 경우, 크로스포인트(620)는 FPGA(630)에서 클라이언트(612,614)와 연관된 포트로부터 독립적인 송수신기(632, 634)로 데이터를 다시 보낼 수 있다. 송수신기(632,634)의 전송함수는 사용되지 않고, 오직 수신 함수만 사용될 수 있다. 송수신기(632,634)로부터의 역직렬화된(deserialized) 데이터는 교차 클락 도메인(clock domain)들에 각각 사용되는 각각의 FIFO(636,638)을 통해 수신될 수 있다. 멀티플렉싱(multiplexing) 논리(640)는 FIFO(636,638)로부터 데이터를 수신하기 위해 사용될 수 있다. 데이터의 패킷은 (642)에 보여지는 하나의 출력 스트림으로 멀티플렉스(multiplex)될 수 있다. 다른 실시예들에서 하나의 송수신기의 사용을 절약하면서, 송수신기(635) 대신 수신 송수신기(632,634) 중 하나의 송신기가 사용된다고 하더라도, 멀티플렉스된 데이터는 다른 송수신기(635)를 통해서 보내질 수 있다.
도 5 및 도 6에서 유리하게, 업스트림 논리는 FPGA에서 다운스트림 논리와 물리적으로 분리 될 수 있다. 이것은 적은 파이프라인 단계와 더 낮은 레이턴시를 가능하게 하는 FPGA에서 논리가 물리적으로 더 작아지는 것을 허용할 수 있다.
도 7은 싱글 FPGA에서 이용되는 하나 이상의 멀티플렉서에서의 다른 일실시예를 도시한 도면이다. 클라이언트들에서 다수의 멀티플렉서(740,742)로 패킷을 브로드캐스팅 및 분리된 필터(750,752)로 멀티플렉서(740,742)의 출력을 필터링 함으로써, 이 일실시예는 다수의 업스트림 서버(760,762)들을 다룰 수 있다. 두개의 서버로 보여지는 것과 달리, 다른 실시예들은 아날로그 방식으로 더 많은 서버들을 준비하는 것이 좋을 수 있다. 이 실시예는 본 발명의 이점을 제공하면서, 완전히 연결된 스위치의 상호연결을 제공할 수 있다. 도 7에서, 클라이언트 디바이스(712,714)들에서 발생한 업스트림 패킷은 크로스포인트 스위치(720)에 의해 FPGA(730)에서 실행되는 두개의 다른 멀티플렉싱 모듈(multiplexing module)(712,714)들로 멀티캐스트 될 수 있다. 각각의 멀티플렉싱 모듈(740,742)은 패킷을 멀티플렉스 하고, 필터(750,752)는 각각의 필터의 표준과 일치하지 않는 것들을 폐기하는 두개의 멀티플렉스된 스트림들을 필터할 수 있다. 도 7에서, 필터(752)는 서버B(762)를 위해 만들어진 각각의 데이터 스트림(743)을 전송할 수 있고, 필터(750)는 서버A(760)을 위해 만들어진 것이 아닌 것처럼 데이터 스트림(741)을 폐기할 수 있다. 도 7의 일실시예의 변형에서, 대역폭(bandwidth)은 논리(740,742)를 멀티플렉싱하기 이전에 필터링을 수행하는 네개의 필터들을 제공함으로써 증가될 수 있다. 또한, 몇몇 어플리케이션에서(application)에서, 각각의 서버가 서버로 어드레스 되지 않은 데이터를 폐기하는 것이 예상된다면, 멀티플렉스된 데이터가 서버(760,762)들 모두로 전송되는 것은 수용될 수 있다. 이 경우, 필터(750,752)는 레이턴시를 더 줄이는 것이 생략될 수 있다.
도 1 내지 도 7의 실시예들은 아날로그 도메인에서 다수의 포인트(point)로 데이터를 멀티캐스트 하는 크로스포인트 스위치를 사용할 수 있다. 동일한 데이터의 다수의 복사본을 생성함으로써, 각각의 실시예는 다른 FPGA 또는 ASIC, 또는 싱글 FPGA 또는 ASIC의 다른 부분 건너로 동일한 디바이스내의 다른 함수들을 위한 논리를 퍼뜨릴 수 있다.
도 8a는 본 발명의 다른 일실시예에 따라 완전 교차 연결된(3 x 3) 스위치를 도시한 도면이다. 보여지는 것과 같이, 먹스-필터 논리 함수((mux-and-filter logical function)의 확장은 더 많은 멀티플렉서와 필터를 FPGA에 추가하는 것일 수 있다. 이것은 패킷이 각각의 클라이언트에서 하나 이상의 호스트로 보내지는 것을 허용할 수 있다. 이 일실시예에서, 각각의 클라이언트 인터페이스는 특유의 멀티플렉서와 연관될 수 있고, 이것은 패킷이 다른 포트로 전송되게 할 수 있다. 전용(dedicated) 필터는 각각의 포트를 위해 제공될 수 있고, 각각의 포트로부터 수신한 패킷들을 오직 포트로 어드레스된 패킷들이 되게 하도록 제한하는데 사용될 수 있다. 이 구조는 종래의 이더넷 스위치(Ethernet switch)를 실행하기 위해서 사용될 수 있다: 필터는 오직 필터가 필터링 하기 위한 포트에 연결된 네트워크에 연결된 것으로 알려진 어드레스로 어드레스된 패킷들을 향하도록 설정될 수 있다.
도 8b는 8a의 일실시예에서 하나의 패킷의 처리를 도시한 도면이다. 이 예시에서, 필터는 오직 연관된 클라이언트로 어드레스된 패킷들만 수신하도록 설정될 수 있고, 패킷은 보여지는 패스(path)를 획득할 수 있다. 클라이언트C는 "클라이언트A"의 데스티네이션(destination) 어드레스를 가진 패킷을 전송할 수 있다. 크로스포인트 스위치(825)는 FPGA(830)의 세개의 다른 송수신기들로 패킷을 멀티캐스트 하도록 설정될 수 있다. 패킷은 송수신기들에 의해 수신될 수 있고, 세개의 독립적인 멀티플렉싱 논리(840,842,844)의 세트(set)들로 전송될 수 있다. 각각의 멀티플렉싱 논리 함수는 수신한 데이터를 멀티플렉스 할 수 있고, 패킷을 각각의 필터(850,852,854)로 전송할 수 있다. 논리(840)를 멀티플렉스 하기 위한 필터(850)는 패킷이 클라이언트A로 어드레스 되는 것처럼 패킷을 패킷과 연관된 송수신기로 전송할 수 있다. 클라이언트B 및 클라이언트C를 위한 필터(852,854)는 패킷을 전송하지 않을 수 있다. 논리(840)를 멀티플렉스 하기 위한 송수신기는 패킷을 크로스포인트 스위치(820)으로 전송할 수 있다. 크로스포인트 스위치(820)는 필터(850)으로부터 수신한 데이터를 클라이언트A로 유니캐스트 하도록 설정될 수 있고, 패킷은 올바른 데스티네이션(destination)에 도달할 수 있다. N2 송수신기들 및 N 멀티플렉서들은 N-port 스위치를 실행하도록 요구될 수 있기 때문에, 리소스의 이용은 대역폭을 위해 최적화 되지 않을 수 있다. 그러나, 이러한 시스템(system)은 공유된 리소스를 가지는 시스템보다 더 낮은 레이턴시와 더 좋은 디터미니즘(determinism)을 가지도록 만들어 질 수 있다.
도 8의 일실시예가 본 발명에 따라 완전히 교차 연결된 N포트 스위치의 실행을 도시하는 반면에, 데이터 요구를 처리하는 다른 실시예들은 각각의 클라이언트 또는 크로스포인트 스위치의 각각의 포트에 대해 동일하지 않을 수 있다. 예를 들어, 도 8의 일실시예는 몇몇 실시예들에서, 포트들에서 수신한 데이터를 멀티플렉싱 하는 동안에 다른 하나의 포트에서 수신한 데이터를 타임스탬핑(timestamping)할 수 있도록 수정될 수 있다.
도 9는 본 발명의 일실시예를 수행하기 위해 사용되는 하드웨어를 도시한 도면이다. 스위치(900)는 일반적으로 다른 디바이스들에 연결될 수 있는 (902)에 보여지는 다수의 전방 패널 포트(front panel port)들과 재배치뿐만 아니라 하나의 포트에서 다수의 포트들로 데이터를 멀티캐스트 할 수 있는 크로스포인트 스위치(910)를 포함할 수 있다.
다른 때에 재설정될 수 있는 도 9에 보여지는 설정에서, 입력 데이터는 데이터 소스(920)으로부터 수신되고, 크로스포인트 스위치(910)에 의해 의도된 데스티네이션(930)에 연관된 각각의 데이터 출력(904)으로 서킷 스위치(circuit switched) 될 수 있다. 이런 의미에서, 스위치(900)는 물리 계층 스위치로서 수행할 수 있다. 입력(902)들에 별도의 표시를 하면서, 전형적인 랙(rack) 장착 디바이스에서, 출력(904)들은 입력(902)들을 가지는 디바이스의 프론트 패널에서 동일 위치에 배치될 수 있다. 입력(902)들과 출력(904)들은 각각 하나의 데이터 입력(902)와 하나의 데이터 출력(904)에 영향을 미치는 복수의 송수신기들에 의해 영향을 받을 수 있다. 크로스포인트 스위치(910) 내부의 현재 활성 스위칭 패스들은 간단한 설명 목적을 위한 퍼머(firmer) 라인들에 의해 도 9에서 보여진다.
본 발명에 따르면, 데이터 소스(920)으로부터 수신된 데이터는 데스티네이션(930)으로 전송될 뿐만 아니라 크로스포인트 스위치(910)에 의해 스위치(900)내의 디바이스(906)에 의해 수행되는 상위 계층 프로세스(higher layer process)로 복사될 수 있다.
일실시예에서, 디바이스(906)는 데이터의 제2 스트림이 디바이스(906)에서 데스티네이션(930)으로 전송될 수 있도록 타임스탬핑 함수를 포함할 수 있다. 데스티네이션(930)은 디바이스(906)에 의한 추가적인 레이턴시로 인한 더 큰 레이턴시에도 불구하고, 타임스탬프된 복사본을 수신하면서, 극도로 낮은 레이턴시 패스(latency path)를 통해 원본 데이터(original data)를 수신할 수 있다.
도 10은 본 발명의 일실시예를 수행하기 위해 사용되는 하드웨어를 도시한 도면이다. 스위치(1000)는 일반적으로 다른 디바이스들에 연결될 수 있는 (1002)에 보여지는 다수의 전방 패널 포트들과 재배치뿐만 아니라 하나의 포트에서 다수의 포트들로 데이터를 멀티캐스트 할 수 있는 크로스포인트 스위치(1010)를 포함할 수 있다.
다른 때에 재설정될 수 있는 도 10에 보여지는 설정에서, 입력 데이터는 데이터 소스(1020)으로부터 수신되고, 크로스포인트 스위치(1010)에 의해 의도된 데스티네이션(1030)에 연관된 각각의 데이터 출력(1004)으로 서킷 스위치(circuit switched) 될 수 있다. 이런 의미에서, 스위치(1000)는 물리 계층 스위치로서 수행할 수 있다. 입력(1002)들에 별도의 표시를 하면서, 전형적인 랙(rack) 장착 디바이스에서, 출력(1004)들은 입력(1002)들을 가지는 디바이스의 프론트 패널에서 동일 위치에 배치될 수 있다. 입력(1002)들과 출력(1004)들은 각각 하나의 데이터 입력(1002)와 하나의 데이터 출력(1004)에 영향을 미치는 복수의 송수신기들에 의해 영향을 받을 수 있다. 크로스포인트 스위치(1010) 내부의 현재 활성 스위칭 패스들은 간단한 설명 목적을 위한 퍼머(firmer) 라인들에 의해 도 10에서 보여진다.
본 발명에 따르면, 데이터 소스(1020)으로부터 수신된 데이터는 데스티네이션(1030)으로 전송될 뿐만 아니라 크로스포인트 스위치(1010)에 의해 스위치(1000)내의 디바이스(1006)에 의해 수행되는 상위 계층 프로세스로 복사될 수 있다.
이 일실시예에서, 디바이스(1006)는 IGMP 패킷들이 디바이스(1020 및/또는 1022)가 그룹 멀티캐스트를 신청 또는 해지하는 인접한 라우터(1030)로 전송되는 데이터 스트림으로 주입될 수 있도록, 멀티캐스팅 신청 함수를 포함할 수 있다. 데스티네이션(1030)은 디바이스(1006)에 의한 추가적인 레이턴시로 인해 더 높은 레이턴시를 가지더라도, 특정 인터페이스를 위한 전송 MAC 중 어느 하나로 주입되는 IGMP 데이터 패킷과 같은 상위 계층 함수 데이터를 수신하는 동안, 극도로 낮은 레이턴시 패스를 통해 디바이스(1020)으로부터 데이터를 수신할 수 있다.
도 11은 본 발명의 일실시예를 수행하기 위해 사용되는 하드웨어를 도시한 도면이다. 스위치(1100)는 일반적으로 다른 디바이스들에 연결될 수 있는 (1102)에 보여지는 다수의 전방 패널 포트들과 재배치뿐만 아니라 하나의 포트에서 다수의 포트들로 데이터를 멀티캐스트 할 수 있는 크로스포인트 스위치(1110)를 포함할 수 있다.
다른 때에 재설정될 수 있는 도 11에 보여지는 설정에서, 입력 데이터는 데이터 소스(1120)으로부터 수신되고, 크로스포인트 스위치(1110)에 의해 의도된 데스티네이션(1130)에 연관된 각각의 데이터 출력(1104)으로 서킷 스위치(circuit switched) 될 수 있다. 이런 의미에서, 스위치(1100)는 물리 계층 스위치로서 수행할 수 있다. 입력(1102)들에 별도의 표시를 하면서, 전형적인 랙(rack) 장착 디바이스에서, 출력(1104)들은 입력(1102)들을 가지는 디바이스의 프론트 패널에서 동일 위치에 배치될 수 있다. 입력(1102)들과 출력(1104)들은 각각 하나의 데이터 입력(1102)와 하나의 데이터 출력(1104)에 영향을 미치는 복수의 송수신기들에 의해 영향을 받을 수 있다. 크로스포인트 스위치(1110) 내부의 현재 활성 스위칭 패스들은 간단한 설명 목적을 위한 퍼머(firmer) 라인들에 의해 도 11에서 보여진다.
본 발명에 따르면, 데이터 소스(1120)으로부터 수신된 데이터는 데스티네이션(1130)으로 전송될 뿐만 아니라 크로스포인트 스위치(1110)에 의해 스위치(1100)내의 디바이스(1106)에 의해 수행되는 상위 계층 프로세스로 복사될 수 있다.
이 일실시예에서, 디바이스(1106)는 관리자(1132)에게 데이터 링크 통계를 제공하도록 설정된 링크 컨트롤러(link controller)를 포함할 수 있다. 이 일실시예에서, 디바이스(1106)는 이상적인 물리 계층 패턴들 및 물리 계층 에러들을 감지하고, 타입, 프로토콜 및 사이즈에 따라 데이터 패킷들을 카운팅하며, 불명확한 FCS, 패킷 사이즈 또는 정렬을 포함하는 에러 타입에 따라 데이터 패킷 에러들을 카운팅하는 것과 연결된 디바이스들을 식별하기 위한 패킷 MAC 어드레스 조사를 포함하는 복수의 상위 계층 함수들을 제공할 수 있다.
따라서, 데스티네이션(1130)은 디바이스(1106)에 의한 추가적인 레이턴시로 인한 더 큰 레이턴시에도 불구하고, 디바이스(1132)가 데이터 링크 통계를 수신하는 동안, 극도로 낮은 레이턴시 패스(latency path)를 통해 원본 데이터(original data)를 수신할 수 있다.
도 12는 본 발명의 일실시예를 수행하기 위해 사용되는 하드웨어를 도시한 도면이다. 스위치(1200)는 일반적으로 다른 디바이스들에 연결될 수 있는 (1202)에 보여지는 다수의 전방 패널 포트들과 재배치뿐만 아니라 하나의 포트에서 다수의 포트들로 데이터를 멀티캐스트 할 수 있는 크로스포인트 스위치(1210)를 포함할 수 있다.
다른 때에 재설정될 수 있는 도 12에 보여지는 설정에서, 입력 데이터는 데이터 소스(1220)으로부터 수신되고, 크로스포인트 스위치(1210)에 의해 의도된 데스티네이션(1230)에 연관된 각각의 데이터 출력(1204)으로 서킷 스위치(circuit switched) 될 수 있다. 이런 의미에서, 스위치(1200)는 물리 계층 스위치로서 수행할 수 있다. 입력(1202)들에 별도의 표시를 하면서, 전형적인 랙(rack) 장착 디바이스에서, 출력(1204)들은 입력(1202)들을 가지는 디바이스의 프론트 패널에서 동일 위치에 배치될 수 있다. 입력(1202)들과 출력(1204)들은 각각 하나의 데이터 입력(1202)와 하나의 데이터 출력(1204)에 영향을 미치는 복수의 송수신기들에 의해 영향을 받을 수 있다. 크로스포인트 스위치(1210) 내부의 현재 활성 스위칭 패스들은 간단한 설명 목적을 위한 퍼머(firmer) 라인들에 의해 도 12에서 보여진다.
본 발명에 따르면, 데이터 소스(1220)로부터 수신된 데이터는 데스티네이션(1230)으로 전송될 뿐만 아니라 크로스포인트 스위치(1210)에 의해 스위치(1200)내의 디바이스(1206)에 의해 수행되는 상위 계층 프로세스(higher layer process)로 복사될 수 있다. 이 일실시예에서, 디바이스(1206)는 복사된 데이터를 디바이스(1206)의 각각의 입력으로 스위칭함으로써 원하는 함수가 간단히 선택될 수 있도록 선택된 상위 계층 함수와 각각 연관된 복수의 입력들을 가질 수 있다. 또한, 디바이스(1206)의 출력은 크로스포인트 스위치(1210)로 돌아갈 수 있고, 출력단(1204)에 선택적으로 스위치 될 수 있으며, 도 12에서 보여지는 시간에서, 다른 때에 출력이 다른 데스티네이션들로 스위치 되더라도, 디바이스(1200)는 상위 계층 디바이스(1206)의 출력을 데스티네이션(1230)으로 스위치 하도록 설정될 수 있다. 관리 시스템 프로세서(management system processor)(1240)는 타임스탬핑을 가능하게 하는 PPS(pulse per second) 입력을 수신하고, 또한 외부 관리를 허용하는 관리 인터페이스(management interface)를 통해 통신하는 할 수 있다. 관리 시스템(1240)은 크로스포인트(1210) 및 상위 계층 디바이스(1206)를 제어하고, 크로스포인트(1210) 및 상위 계층 디바이스(1206)와 통신할 수 있다.
도 13은 본 발명의 일실시예를 수행하기 위해 사용되는 하드웨어를 도시한 도면이다. 스위치(1300)는 일반적으로 다른 디바이스들에 연결될 수 있는 (1302)에 보여지는 다수의 전방 패널 포트들과 재배치뿐만 아니라 하나의 포트에서 다수의 포트들로 데이터를 멀티캐스트 할 수 있는 크로스포인트 스위치(1310)를 포함할 수 있다.
다른 때에 재설정될 수 있는 도 13에 보여지는 설정에서, 입력 데이터는 데이터 소스(1320)으로부터 수신되고, 크로스포인트 스위치(1310)에 의해 의도된 데스티네이션(1330)에 연관된 각각의 데이터 출력(1304)으로 서킷 스위치(circuit switched) 될 수 있다. 이런 의미에서, 스위치(1300)는 물리 계층 스위치로서 수행할 수 있다. 입력(1302)들에 별도의 표시를 하면서, 전형적인 랙(rack) 장착 디바이스에서, 출력(1304)들은 입력(1302)들을 가지는 디바이스의 프론트 패널에서 동일 위치에 배치될 수 있다. 입력(1302)들과 출력(1304)들은 각각 하나의 데이터 입력(1302)와 하나의 데이터 출력(1304)에 영향을 미치는 복수의 송수신기들에 의해 영향을 받을 수 있다. 크로스포인트 스위치(1310) 내부의 현재 활성 스위칭 패스들은 간단한 설명 목적을 위한 퍼머(firmer) 라인들에 의해 도 13에서 보여진다.
본 발명에 따르면, 데이터 소스(1320)로부터 수신된 데이터는 데스티네이션(1330)으로 전송될 뿐만 아니라 크로스포인트 스위치(1310)에 의해 스위치(1300)내의 디바이스(1306)에 의해 수행되는 상위 계층 프로세스로 복사될 수 있다. 이 일실시예에서, 디바이스(1364)는 도 14에 보여지는 타입의 시그널 컨디셔닝 블록(signal conditioning block)일 수 있다. 다른 때에는 출력이 다른 데스티네이션들로 스위치 될 수 있음에도 불구하고, 상위 계층 디바이스(1364)의 출력은 데스티네이션(1330)으로 전송될 수 있다. 관리 시스템 프로세서 (1340)은 타임스탬핑을 가능하게 하는 PPS(pulse per second) 입력을 수신하고, 외부 관리를 허용하는 관리 인터페이스를 통해 통신할 수 있다. 관리 시스템(1340)은 크로스포인트 스위치(1310)를 제어하고, 크로스포인트 스위치(1310)와 통신하며, 모든 컨디셔닝 블록 1350내지 1354 및 1360 내지 1366을 제어 할 수 있다.
도 14에서 보여지는 시그널 컨디셔닝 블록(1364)에서, 입력 데이터는 도 14의 양방향 화살표(doubl-ended arrow)에 의해 보여지는 관리 인터페이스(1340)을 통해 설정 가능한 EQ블록(1402)을 통해 전송될 수 있다. EQ 블록(1402)은 통신 채널(케이블)을 통한 전송의 효과를 보충하여 에러의 가능성을 줄이는 수신한 신호에서 필터링을 수행하는 이퀄라이저(equalizer)일 수 있다. EQ블록(1402)은 신호의 주파수 구성요소들을 조정할 수 있고, 언이퀄라이즈(unequalize)된 수신 신호보다 이상적인 데이터를 나타내는 것에 더 가까운 출력인 멀티 패스 디스토션(multi-path distortion)을 삭제할 수 있다. 데이터는 EQ(1402)로부터 관리 인터페이스(1340)를 통해 설정 가능한 CDR(clock data recovery) 블록(1404)으로 전송될 수 있다. 데이터는 CDR(1404)에서 관리 시스템 프로세서(1340)에 의해 제어되는 상위 계층 함수(1406) 및 멀티플렉서(1408) 모두로 전송될 수 있다. 또한, 상위 계층 함수 블록(1406)의 출력은 멀티플렉서(1408)로 전송될 수 있다. 멀티플렉서(1408)로부터 멀티플렉스된 낮은 레이턴시 데이터 및 상위 계층 함수 출력 데이터는 데이터의 이상적인 것에 더 가까운 신호를 수신하는 데스티네이션을 야기하는 통신 채널(케이블)의 기대효과를 보상하여 에러의 가능성을 줄이는 송신기 신호의 주파수 구성요소를 수정하는 프리-엠퍼시스 블록(pre-emphasis block)(1410)으로 전송될 수 있다. 프리-엠퍼시스 블록(1410)으로부터 멀티플렉스된 낮은 레이턴시 데이터 및 상위 계층 함수 출력 데이터는 시그널 컨디셔닝 블록(1364)에 의해 출력 될 수 있다. 도 13의 일실시예에서 어떤 또는 모든 시그널 컨디셔닝 블록 1350 내지 1354 및 1360 내지 1366은 도 14에서 보여지는 것과 같이 설정 될 수 있다.
넓게 설명된 본 발명의 사상 또는 범위에 벗어남 없이 특정한 실시예들에서 보여지는 것처럼 많은 변형들 및/또는 수정들이 본 발명에 이루어질 수 있음은 당업자에 의해 이해될 수 있다. 예를 들어, 40G와 같은 멀티 레인 스탠다드(multi-lane standard)와 연관하여 적용된 실시예들에서, 40G에 대한 필터링이 네개의 송수신기들의 그룹에서 발생하는 것 및 하나 이상의 크로스포인트 디바이스에서 네개의 레인에 대한 브로드캐스트가 발생하는 것과 같이 이것들은 유사한 방식으로 다루어질 수 있다. 따라서, 본 실시예들은 제한되지 않고 예시가 되는 모든 관점에서 고려될 수 있다.

Claims (5)

  1. 물리 계층 데이터 스위칭 방법에 있어서,
    스위치의 적어도 하나의 입력단에서 데이터를 수신하는 단계;
    상기 스위치의 적어도 하나의 출력단에서 데이터를 회로 스위칭(circuit switching)하는 단계;
    상위 계층 프로세스(higher layer process)에 상기 데이터를 복사하는 단계
    를 포함하는 물리 계층 데이터 스위칭 방법.
  2. 물리 계층 데이터 스위치에 있어서,
    복수의 데이터 입력들은, 복수의 데이터 출력들로 각각 회로 스위치(circuit switch)될 수 있고,
    제1 데이터 입력으로부터 회로 스위치된 데이터를 수신하는 제1 데이터 출력;
    제1 데이터 입력으로부터 데이터의 복사본(copy)을 수신하는 제2 데이터 출력; 및
    상기 제2 데이터 출력과 연결되는 상위 계층 함수 회로
    를 포함하는, 물리 계층 데이터 스위치.
  3. 제2항에 있어서,
    상기 상위 계층 함수 회로는 패킷 타임스탬핑(packet timestamping)을 실행하도록 구성되는,
    물리 계층 데이터 스위치.
  4. 제2항 또는 제3항에 있어서,
    상기 상위 계층 함수 회로는 패킷 캡쳐를 실행하도록 구성되는,
    물리 계층 데이터 스위치.
  5. 제2항 또는 제3항에 있어서,
    상기 상위 계층 함수 회로는, 제1 데이터 출력의 레이턴시에 영향을 주지 않으면서 데이터 패킷의 카운팅을 실행하도록 구성되는,
    물리 계층 데이터 스위치.
KR1020177009077A 2014-08-13 2014-12-03 낮은 레이턴시 스위칭 장치 및 그 방법 KR20170042800A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
AU2014903158A AU2014903158A0 (en) 2014-08-13 Apparatus and Method for Low Latency Switching
AU2014903158 2014-08-13
AU2014904247A AU2014904247A0 (en) 2014-10-23 Apparatus and Method for Low Latency Switching
AU2014904247 2014-10-23
PCT/AU2014/050391 WO2016023062A1 (en) 2014-08-13 2014-12-03 Apparatus and method for low latency switching

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020167031097A Division KR101748546B1 (ko) 2014-08-13 2014-12-03 낮은 레이턴시 스위칭 장치 및 그 방법

Publications (1)

Publication Number Publication Date
KR20170042800A true KR20170042800A (ko) 2017-04-19

Family

ID=55303681

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020177009077A KR20170042800A (ko) 2014-08-13 2014-12-03 낮은 레이턴시 스위칭 장치 및 그 방법
KR1020167031097A KR101748546B1 (ko) 2014-08-13 2014-12-03 낮은 레이턴시 스위칭 장치 및 그 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020167031097A KR101748546B1 (ko) 2014-08-13 2014-12-03 낮은 레이턴시 스위칭 장치 및 그 방법

Country Status (7)

Country Link
US (2) US10630608B2 (ko)
EP (3) EP4394614A3 (ko)
JP (1) JP2017519449A (ko)
KR (2) KR20170042800A (ko)
AU (1) AU2014403783B2 (ko)
CA (1) CA2946896A1 (ko)
WO (1) WO2016023062A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017197465A1 (en) * 2016-05-20 2017-11-23 Metamako General Pty Ltd In Its Capacity As General Partner Of Metamako Technology Lp Systems for transmitting a data stream and methods for transmitting a data stream
US11218401B2 (en) * 2017-08-10 2022-01-04 Arista Networks, Inc. Computer network device, a computer internetwork and a method for computer networking
CN107885694B (zh) * 2017-10-18 2018-10-23 广东高云半导体科技股份有限公司 一种支持系统级集成电路芯片
US10708127B1 (en) * 2017-12-29 2020-07-07 Arista Networks, Inc. Low-latency network switching device with latency identification and diagnostics
US10545925B2 (en) 2018-06-06 2020-01-28 Intel Corporation Storage appliance for processing of functions as a service (FaaS)
US12003608B2 (en) * 2018-07-12 2024-06-04 Netscout Systems, Inc. System and method for repurposing layer 2 switch as a layer 1 switch
US10387356B1 (en) * 2018-10-02 2019-08-20 Teradyne, Inc. Generating timestamps on a packet-oriented bus
US10630606B1 (en) * 2019-03-18 2020-04-21 Brightways Corporation System, method and architecture for data center network switching
US11652561B2 (en) * 2019-06-21 2023-05-16 Intel Corporation Techniques for determining timestamp inaccuracies in a transceiver
JP6960011B2 (ja) * 2020-04-20 2021-11-05 株式会社インタフェース Tsn対応エンドコントローラを備えたネットワークシステム
CA3161220A1 (en) 2021-07-27 2023-01-27 Orthogone Technologies Inc. Low latency network device and method for treating received serial data
US11722435B2 (en) * 2021-11-18 2023-08-08 United States Of America As Represented By The Secretary Of The Navy System with layer-one switch for flexible communication interconnections
CN114338032B (zh) * 2021-12-02 2022-09-30 上海健交科技服务有限责任公司 面向深度学习的高精度时间戳安全校验加速方法和装置
WO2023156626A1 (de) * 2022-02-18 2023-08-24 Hirschmann Automation And Control Gmbh Bedingte filterung für zeitdeterministische firewalls
CN114884903B (zh) * 2022-04-29 2023-06-02 绿盟科技集团股份有限公司 数据处理方法、现场可编程门阵列芯片及网络安全设备
WO2024167645A1 (en) * 2023-02-10 2024-08-15 Commscope Technologies Llc Techniques for diminishing latency in a distributed antenna system

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2830750B2 (ja) * 1994-02-24 1998-12-02 日本電気株式会社 画像多地点通信制御装置と画像通信端末および画像通信システム
JPH11261622A (ja) * 1998-03-12 1999-09-24 Sumitomo Electric Ind Ltd フレーム変換装置
US20030204618A1 (en) 2001-04-27 2003-10-30 Foster Michael S. Using virtual identifiers to process received data routed through a network
US20060013135A1 (en) * 2004-06-21 2006-01-19 Schmidt Steven G Flow control in a switch
US7224184B1 (en) * 2004-11-05 2007-05-29 Xilinx, Inc. High bandwidth reconfigurable on-chip network for reconfigurable systems
US8797870B2 (en) * 2006-01-05 2014-08-05 Cisco Technology, Inc. Method and system for calculation of QOV metrics
US20070280223A1 (en) 2006-04-14 2007-12-06 Hammerhead Systems, Inc. Hybrid data switching for efficient packet processing
US7521961B1 (en) * 2007-01-23 2009-04-21 Xilinx, Inc. Method and system for partially reconfigurable switch
US7920557B2 (en) 2007-02-15 2011-04-05 Harris Corporation Apparatus and method for soft media processing within a routing switcher
JP4847585B2 (ja) * 2007-06-12 2011-12-28 富士通株式会社 コンフィグレーション装置
US8706606B2 (en) 2008-11-10 2014-04-22 Zomojo Pty Ltd Automated trading system
JP5240028B2 (ja) * 2009-04-10 2013-07-17 ソニー株式会社 画像処理装置および画像処理部の制御方法
US20100317374A1 (en) * 2009-06-11 2010-12-16 Yaron Alpert Apparatus for and method of managing paging interval access on a mobile station
US8537697B2 (en) * 2010-02-19 2013-09-17 Gigamon Inc. Packet timing measurement
US9160668B2 (en) * 2010-05-03 2015-10-13 Pluribus Networks Inc. Servers, switches, and systems with switching module implementing a distributed network operating system
JP5487135B2 (ja) * 2011-02-09 2014-05-07 株式会社東芝 送受信システム及び信号伝送方法
JP2012208975A (ja) * 2011-03-29 2012-10-25 Renesas Electronics Corp 半導体装置
JP2013131973A (ja) * 2011-12-22 2013-07-04 Alaxala Networks Corp パケット廃棄制御方法、中継装置、パケット処理装置
US8891528B2 (en) * 2012-06-21 2014-11-18 Breakingpoint Systems, Inc. Managing the capture of packets in a computing system
US9674118B2 (en) * 2014-03-19 2017-06-06 xCelor LLC System and method for low-latency network data switching

Also Published As

Publication number Publication date
EP3641234C0 (en) 2024-06-26
AU2014403783A1 (en) 2016-10-06
US10630608B2 (en) 2020-04-21
US20200244595A1 (en) 2020-07-30
EP3130107A4 (en) 2017-09-06
KR101748546B1 (ko) 2017-06-16
EP3641234A1 (en) 2020-04-22
EP3641234B1 (en) 2024-06-26
EP4394614A3 (en) 2024-08-28
CA2946896A1 (en) 2016-02-18
US20170111295A1 (en) 2017-04-20
US11228538B2 (en) 2022-01-18
KR20160137644A (ko) 2016-11-30
EP4394614A2 (en) 2024-07-03
EP3130107B1 (en) 2019-11-06
WO2016023062A1 (en) 2016-02-18
JP2017519449A (ja) 2017-07-13
EP3130107A1 (en) 2017-02-15
AU2014403783B2 (en) 2019-10-03

Similar Documents

Publication Publication Date Title
KR101748546B1 (ko) 낮은 레이턴시 스위칭 장치 및 그 방법
US9172647B2 (en) Distributed network test system
US11233720B2 (en) Hierarchical time stamping
Naous et al. NetFPGA: reusable router architecture for experimental research
Kannan et al. Precise time-synchronization in the data-plane using programmable switching asics
CN105357075A (zh) 基于软件定义网络的流量监测系统和方法
US9900267B2 (en) Systems and methods for packet switching
US20170012850A1 (en) Using timestamps to analyze network topologies
AU2014101296A4 (en) Apparatus and Method for Improved Physical Layer Switching
US20200125524A1 (en) Standardized hot-pluggable transceiving unit, hosting unit and method for applying delays based on port positions
Li et al. SDN-based switch implementation on network processors
Ficara et al. A cooperative PC/Network-Processor architecture for multi gigabit traffic analysis
US11671281B1 (en) Handling interface clock rate mismatches between network devices
Guruprasad et al. An optimized packet transceiver design for ethernet-MAC layer based on FPGA
US11985200B2 (en) System and a method for distributing information
Su et al. The high speed switching experiment based on NetFPGA SUME
Zabołotny Optimized Ethernet transmission of acquired data from FPGA to embedded system
Orosz et al. A NetFPGA-based network monitoring system with multi-layer timestamping: Rnetprobe
Kannan Improving Network Diagnostics Using Programmable Networks
Pan et al. PF_IPOPTION: A kernel extension for IP option packet processing
Hildin et al. Airborne Network Switch With IEEE-1588 Support
CN117560426A (zh) 报文转发处理方法、装置、设备及存储介质
Kaushik et al. Available Online at www. ijesar. in

Legal Events

Date Code Title Description
A107 Divisional application of patent
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid