KR20010007346A - 데이터 네트워크에서 패킷 스위치 장치 및 방법 - Google Patents

데이터 네트워크에서 패킷 스위치 장치 및 방법 Download PDF

Info

Publication number
KR20010007346A
KR20010007346A KR1020000032255A KR20000032255A KR20010007346A KR 20010007346 A KR20010007346 A KR 20010007346A KR 1020000032255 A KR1020000032255 A KR 1020000032255A KR 20000032255 A KR20000032255 A KR 20000032255A KR 20010007346 A KR20010007346 A KR 20010007346A
Authority
KR
South Korea
Prior art keywords
packet
port
information
transmission
data
Prior art date
Application number
KR1020000032255A
Other languages
English (en)
Other versions
KR100378372B1 (ko
Inventor
정진우
우경일
도기종
Original Assignee
윤종용
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 윤종용, 삼성전자 주식회사 filed Critical 윤종용
Priority to KR10-2000-0032255A priority Critical patent/KR100378372B1/ko
Publication of KR20010007346A publication Critical patent/KR20010007346A/ko
Application granted granted Critical
Publication of KR100378372B1 publication Critical patent/KR100378372B1/ko

Links

Classifications

    • 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/112Switch control, e.g. arbitration
    • 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/111Switch interfaces, e.g. port details

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Abstract

본 발명은 데이터 네트워크에서 패킷 스위치 장치에 있어서, 패킷 송/수신 명령 및 데이터 패킷의 입/출력을 담당하는 복수개의 포트들과, 상기 패킷 송/수신 명령에 대응하여 그룹별로 세분화된 정보 리소스들을 억세스하고 해당 데이터 패킷을 패킷 메모리에 저장하거나 또는 상기 패킷 메모리에 저장된 해당 데이터 패킷을 해당 포트로 전송하는 복수개의 송/수신 제어부들과, 패킷 스위칭에 필요한 정보들을 그룹별로 나누어 각각 저장하며 상기 복수개의 송/수신 제어부들에게 저장된 정보를 제공하는 복수개의 정보 리소스들과, 상기 각 정보 리소스들과 연결되며 상기 송/수신 제어부들의 억세스를 스케줄링하는 복수개의 정보 리소스 스케줄러들로 이루어짐을 특징으로 한다.

Description

데이터 네트워크에서 패킷 스위치 장치 및 방법{APPARATUS AND METHOD FOR PACKET SWITCHING IN DATA NETWORK}
본 발명은 데이터 네트워크에서 패킷 스위치 시스템에 관한 것으로, 특히 병렬 처리 패킷 스위치 장치 및 방법에 관한 것이다.
점-대-점(Point To Point) 네트워크를 제외한 모든 형태의 네트워크에는 데이터를 집중하였다가 다시 분산되게 하는 디바이스(Device)가 존재한다. 그 가장 좋은 예는 스위치와 라우터(Router)라고 할 수가 있다. 상기 디바이스에는 두 개 이상의 포트(Ports)들이 존재하는 경우가 일반적이다. 그리고 상기 디바이스는 각 포트들을 통하여 데이터를 입력하고 필요한 처리를 수행하고 난 후, 다시 하나 혹은 두 개 이상의 포트들을 통하여 상기 처리된 데이터를 출력한다. 이때, 상기 처리과정에서 필연적으로 폭주(Congestion)가 발생하여 데이터 전송의 지연(Latency)이 생기게 된다. 여러 가지 이유로 인하여 폭주가 발생하게 되는데, 그 중에서 가장 중요한 부분을 차지하는 것은 데이터 처리(Processing)에 소요되는 시간을 들 수가 있다.
한편, 패킷 스위치 시스템에서 종래의 패킷 처리 과정은 하기와 같다. 먼저 제1과정에서 어떤 한 개의 포트가 데이터 패킷을 입력한다. 그리고 제2과정에서 선입-선출부(First-In-First-Out:이하 FIFO라 칭한다.)는 상기 입력 데이터 패킷을 일시 저장한다. 그리고 제3과정에서 상기 입력된 데이터 패킷은 먼저 입력된 데이터 패킷들이 처리되고 있는 동안 대기한다. 그리고 제4과정에서 데이터 패킷 처리부는 FIFO에 저장된 상태에서 상기 입력 데이터 패킷에 대하여 필요한 데이터 처리를 수행한다. 이때, 상기 데이터 처리과정은 복잡한 판단과정을 요하게 되며, 상기 판단은 판단주체 (Decision Maker, Controller)와 정보원(Information Resource)간의 정보이동(Information Transfer)을 필요로 하게 된다. 그리고 상기 패킷의 처리가 끝나면, 제5과정에서 데이터 패킷 처리부는 해당 출력포트에 먼저 처리된 다른 패킷들이 존재하는지를 검사한다. 그리고 상기 선처리 패킷이 존재하면, 제6과정에서 데이터 패킷 처리부는 상기 처리된 패킷을 버퍼에 저장한다. 그리고 데이터 패킷 처리부는 선처리 패킷이 모두 출력되면, 제7과정에서 상기 버퍼에 저장된 처리 패킷을 상기 출력포트로 전송한다.
한편, 상기 제3과정에서 볼 때, 종래의 데이터 패킷 처리 과정은 단일의 데이터 패킷 처리부가 복수개의 포트들을 제어하며 단순하게 한 번에 한 개의 패킷에 대해서만 처리를 하였기 때문에, 간단하고 구현(Implementation)이 쉬운 장점이 있다.
그러나 상기의 방식은 데이터 처리 시간에 비해 입력되는 패킷의 개수가 많아지면(실제 대부분의 패킷 스위치와 라우터들이 이러한 특성을 가지고 있다.) 실제의 데이터 라인은 아이들(Idle)하고 있으나 즉, 데이터를 전송하고 있지 않음에도 불구하고 데이터 패킷 처리부 내부에서 패킷의 딜레이(Delay)가 발생하는 단점이 존재한다. 특히, 심하게는 패킷을 잃어버리는(loss) 경우까지 발생하게 된다.
한편, 패킷 처리(Processing)에 있어서 크게 두 가지 요소가 고려될 수가 있다. 즉, 전체 프로세싱 절차를 전반적으로 제어하고 판단하는 제어부와, 상기 제어부가 판단을 하는데 필요한 정보를 저장 및 제공하는 정보 리소스(Information Resource)이다. 그리고 대개의 경우 상기 정보 리소스는 레지스터 및 메모리 형태가 된다. 그런데 이때, 패킷 스위치 시스템에서 상기한 종래의 패킷 데이터 처리 방식이 '한 번에 한 개의 패킷에 대해서만 처리'하는 궁극적인 이유는 상기 리소스가 단일의 메모리로 구현되어 있기 때문이다.
따라서 종래의 문제점을 해결하기 위해서는 리소스에 저장되어야 할 정보들이 그룹별로 세분화되어 서로 다른 리소스에 저장되며 기존의 한 개이었던 송/수신 제어부가 복수 개(예: 상기 그룹별 서로 다른 리소스들의 개수 이상)로 할당되어, 입력되는 데이터 패킷에 대한 처리 오버헤드를 줄이고 빠르게 패킷을 처리할 수 있는 방안이 필요하게 된다. 또한 상기 각 송/수신 제어부들은 포트별로 할당될 수가 있다. 그리고 상기 각 송/수신 제어부들은 동시에 상기 그룹별 복수개의 정보 리소스들을 접근하여 제어 오버헤드를 줄이고 빠르게 패킷을 처리할 수가 있다.
한편, 복수개의 송/수신 제어부들은 복수개의 정보 리소스들을 공유할 수 있어야 한다. 따라서 중재부(Arbiter) 또는 스케줄러(Scheduler)는 각 송/수신 제어부들이 한번에 하나의 리소스만을 억세스 하도록 해야한다. 만약 어떤 특정한 정보 리소스에 송/수신 제어부들의 억세스가 과도하게 되면, 그룹을 다시 조정하여 억세스 로드가 밸런스(Balance)를 유지하도록 해야한다.
도 1은 종래의 패킷 스위치 장치의 일 예를 도시한다.
호스트(100)는 패킷 스위치 장치의 전반적인 동작을 제어한다. 그리고 호스트(100)는 가장 높은 계층(Layer)을 담당하며, 패킷 스위치 장치 자체에 입력되는 명령을 수행한다. 제1 MAC 포트(110) 내지 제n MAC 포트(1n0)는 다른 패킷 스위치 장치 또는 라우터 또는 PC에 연결될 수가 있으며, 표준 MAC 제어를 수행하여 데이터 패킷 송/수신 명령을 송/수신 제어부(120)로 출력한다. 데이터 교환부(130)는 송/수신 제어부(120)의 제어에 의해, 상기 호스트(100), 제1 MAC 포트(110) 내지 제n MAC 포트(1n0)와 패킷 메모리(150)간의 데이터와 제어신호의 경로를 설정한다. 데이터 교환부(130)는 다중화/역다중화기로 구현될 수가 있다.
서치 메모리(140)는 수신된 패킷의 목적지 어드레스에 해당하는 출력 MAC 포트를 판단하는 정보를 저장하며, 등록되어 있는 맥 어드레스를 찾을 수 있게 한다. 그리고 패킷 메모리(150)는 어드레스 테이블(152), 포트 테이블(154) 및 패킷 디스크립터(Descriptor)(156)와 같은 복수개의 정보 리소스들을 구비한다. 또한 패킷 메모리(150)는 입력되는 데이터 패킷을 저장한다. 어드레스 테이블(152)은 맥 어드레스에 대한 정보를 저장하며, 포트 테이블(154)은 각 MAC 포트들의 상태정보와 인에이블 정보, 수신 동작 완료 정보등을 저장한다. 그리고 패킷 디스크립터(156)는 패킷 메모리(150)에 저장된 각 패킷들의 정보(예: 패킷 연결정보)를 저장한다.
송/수신 제어부(120)는 상기 패킷 송/수신 명령에 따라 제1 MAC 포트(110) 내지 제n MAC 포트(1n0)를 통하여 입/출력되는 패킷의 송/수신 제어를 수행한다. 즉, 송/수신 제어부(120)는 수신된 데이터 패킷을 일시 저장하며, 서치 메모리(140)를 억세스하여 수신 패킷의 헤더(Header)의 목적지 어드레스가 등록되어 있는 어드레스인지를 검사하고, 등록되어 있는 맥 어드레스 정보가 어드레스 테이블(152)의 어디에 저장되어 있는지를 알아낸다. 그리고 송/수신 제어부(120)는 상기 수신 패킷이 출력될 MAC 포트를 결정한다.
그리고 송/수신 제어부(120)는 어드레스 테이블(152), 포트 테이블(154) 및 패킷 디스크립터(156)를 억세스하여, 수신되는 데이터 패킷을 패킷 메모리(150)에 저장한다. 그리고 패킷 송신시, 송/수신 제어부(120)는 어드레스 테이블(152), 포트 테이블(154) 및 패킷 디스크립터(156)를 억세스 하여, 패킷 메모리(150)에 저장된 데이터 패킷을 해당 출력포트를 통하여 전송한다.
도 2는 종래의 패킷 스위치 장치의 다른 일 예를 도시한다.
버스 인터페이스(212)는 호스트 버스(210)로부터 데이터 패킷을 입력하여 제1 MAC 포트(211) 내지 제n MAC 포트(21n)로 출력하고, 또한 상기 MAC 포트들로부터 전송되는 데이터 패킷을 호스트 버스(210)로 출력한다. 제1 MAC 포트(211) 내지 제n MAC 포트(21n)는 표준 MAC 제어를 수행하여, 데이터 패킷 송/수신 명령을 송/수신 제어부(120)로 출력한다. MAC 포트 인터페이스(238)는 상기 각 MAC 포트들과 송/수신 제어부(228)간의 인터페이스 동작을 수행한다. 또한 MAC 포트 인터페이스(238)는 각 MAC 포트별로 송/수신 FIFO를 구비하며, 서브 패킷들을 일시적으로 저장한다.
다중화부(Multiplexer)(224)는 MAC 포트 인터페이스(238)로부터 출력되는 포트별 데이터 패킷들 중에서 해당 데이터 패킷을 선택하여 송/수신 제어부(228)로 출력한다. 역다중화부(Demultiplexer)(226)는 송/수신 제어부(228)로부터 출력되는 데이터 패킷을 역다중화하여 해당 포트로 출력한다.
서치 메모리(236)는 수신된 패킷의 목적지 어드레스에 해당하는 출력 MAC 포트를 판단하는 정보를 저장한다. 그리고 패킷 메모리(234)는 어드레스 테이블, 포트 테이블 및 패킷 디스크립터와 같은 복수개의 정보 리소스들을 구비한다. 그리고 패킷 메모리(234)는 입력되는 데이터 패킷을 저장한다.
송/수신 제어부(228)는 상기 패킷 송/수신 명령에 따라 제1 MAC 포트(211) 내지 제n MAC 포트(21n)를 통하여 입/출력되는 패킷의 송/수신 제어를 수행한다. 즉, 송/수신 제어부(228)는 수신된 데이터 패킷을 일시 저장하며, 서치 메모리 (236)를 억세스하여 수신 패킷의 헤더(Header)의 목적지 어드레스가 등록되어 있는 어드레스인지를 검사하고, 등록되어 있는 맥 어드레스 정보가 패킷 메모리(234)에 구비되는 어드레스 테이블(도시하지 않음.)의 어디에 저장되어 있는지를 알아낸다. 그리고 송/수신 제어부(228)는 상기 수신 패킷이 출력될 MAC 포트를 결정한다.
그리고 송/수신 제어부(228)는 패킷 메모리(234)에 구비되는 어드레스 테이블, 포트 테이블 및 패킷 디스크립터(도시하지 않음.)를 억세스하여, 수신되는 데이터 패킷을 패킷 메모리(234)에 저장한다. 그리고 패킷 송신시, 송/수신 제어부(228)는 상기 어드레스 테이블, 포트 테이블 및 패킷 디스크립터를 억세스 하여, 패킷 메모리(234)에 저장된 데이터 패킷을 해당 출력포트를 통하여 전송한다.
상기 도 1 내지 도 2의 설명에서, 종래의 패킷 스위치 장치는 단일의 송/수신 제어부가 복수개의 포트들로부터 데이터 패킷 송/수신 명령을 받고 있으며, 어드레스 테이블, 포트 테이블 등과 같은 종류별 정보 리소스들이 단일의 패킷 메모리에 저장되어 있었기 때문에, 한번에 하나의 패킷만을 처리하였다는 것을 알 수가 있다. 따라서 실제의 데이터 라인은 아이들(Idle)하고 있으나 데이터 패킷 처리 과정에서 패킷의 딜레이가 발생하는 단점이 존재한다. 예를 들어, 단일의 송/수신 제어부가 어떤 포트로부터의 명령을 수행하고 있는 동안 다른 어떤 포트로부터의 패킷은 상기 명령에 대한 수행이 완료될 때까지 대기해야 할 것이다.
도 3은 종래의 패킷 스위치 시스템에서 수신 제어를 도시한 상태 흐름도이다. 이하 상기 도 1을 참조하여 설명한다.
먼저, 여기서 수신 제어(Rx Control)라 함은 일단 송/수신 제어부(120)의 서치(Search) 동작이 끝난 후에 얻는 정보를 바탕으로 이루어지는 일련의 동작이라고 할 수가 있다. 즉, 상기 도 3은 송/수신 제어부(120)가 제1 MAC 포트(110) 내지 제n MAC 포트(1n0)로부터 데이터 패킷을 수신하고 패킷 메모리(150)에 저장시키는 일련의 제어를 의미한다. 또한 상기 도 3은 각종 에러, 어드레스 비정상 정합(Mismatch), 필터링(Filtering)등을 처리하는 경우를 제외한 가장 간단하게 표현된 상태 천이도이다. 그리고 상기 도 3의 각 상태(State)들에 50MHz에서 동작되는 경우 64 바이트 패킷의 처리에 걸리는 시간을 표시해 놓았다. 도시된 바와 같이, 아이들 상태(300)에서부터 실제 데이터 패킷을 패킷 메모리(150)로 전송시키는 Xfer_pkt 상태(332)에 이르기까지 다수의 제어 상태들이 있음을 알 수가 있다.
하기 <표 1>은 상기 도 3의 종래의 패킷 스위칭 방법의 수신 제어 시에, 각 상태에서 수행되는 동작을 나타낸다. 또한 하기 <표 1>은 각 상태에서 송/수신 제어부(120)가 데이터 교환부(130)를 통하여 패킷 메모리(150), 어드레스 테이블 (152), 포트 테이블(154) 중에서 어느 것을 억세스 하는지를 나타내며, 64byte 패킷 수신 동작의 경우 50MHz로 동작했을 때 각 상태별로 데이터 처리 시간을 표시하고 있다.
상 태 동 작 리소스 종류 처리시간
get Rx_info Read receive port table information Port table 420ns
Src lookup Read address table(source addr) Addr table 300ns
Dst lookup Read address table(destination addr) Addr table 320ns
get pkt count Read ATM port table packet counts:may be skipped in Ethernet operation Port table 40ns
deQ EB Dequeue an empty buffer Port table 220ns
init desc Initialize packet descriptor Packet mem 200ns
get cur_addr Determine addr at which to write data Port table 20ns
get pkt length Read various information frompacket desc Packet mem 60ns
update src AT Update statistics in source Addr table 80ns
update dst AT Update statistics in destination address table Addr table 120ns
Xfer pkt Transfer packet(subapcket) Packet mem 460ns
DeQ Rx Dequeue Rx buffer Port table 40ns
EnQ Tx Enqueue Tx buffer Port table 80ns
상기 <표 1>에서 알 수 있는 바와 같이, 종래의 패킷 스위칭 방식은 송/수신 제어부(120)가 실제로 패킷 메모리(150)에 데이터 패킷을 저장하는 동작 외에, 포트 테이블(154), 어드레스 테이블(152)을 억세스하여 정보를 주고 받는 동작에 많은 시간을 소요하고 있다는 것을 알 수가 있다.
그리고 수신 동작 사이클(Cycle)에서 각 상태들이 포트 테이블(154), 어드레스 테이블(152) 및 패킷 메모리(150)를 억세스 하는데 소요되는 시간을 정리해보면 하기와 같다. 즉, 상기 도 1의 종래의 패킷 스위치 장치를 실제로 구현하여 50MHz에서 동작 시켰을 때 64바이트 데이터 패킷 수신 동작의 경우, 포트 테이블(154)을 억세스하는데 요하는 시간은 총 820nS 이며, 패킷 메모리(150)를 억세스 하는데 요하는 시간은 총 720nS이며, 어드레스 테이블(152)을 억세스 하는데 요하는 시간은 총 820nS 가 된다.
따라서 예를 들어, 송/수신 제어부(120)가 제1 MAC 포트(110) 내지 제n MAC 포트(1n0)별로 독립적으로 배치되고 각 MAC 포트별 포트 테이블들이 상기 각 포트별 송/수신 제어부들에게 분산 배치된다면, 포트 테이블 억세스 시간이 현저하게 줄어들게 될 것이다. 따라서 전체 수신 제어 사이클에 요하는 시간이 820nS 정도(어드레스 테이블(152) 억세스 시간을 기준함.)로 줄어들 것이다.
그리고 어드레스 테이블(152)이 패킷 메모리(150)로부터 분리되고, 상기 각 포트별 송/수신 제어부들이 동시에 어드레스 테이블(152)과 패킷 메모리(150) 중에서 필요한 것을 억세스 한다면, 서로 다른 포트 송/수신 제어부들이 어드레스 테이블(152)과 패킷 메모리(150)를 동시에 억세스 할 수 있다. 따라서 패킷 전송의 딜레이가 줄어들 수가 있으며, 효율적인 데이터 전송이 가능하게 될 것이다. 특히, 어드레스 테이블(152)과 상기 각 포트별 송/수신 제어부들이 동일한 칩에 내장되며 어드레스 테이블(152)에 대한 억세스가 32Bit 이상이 보장된다면 상기 어드레스 테이블(152)을 억세스 하는데 요하는 시간이 820nS 이하가 될 것이다. 따라서 전체 수신 제어 사이클 중에서 Bottleneck은 패킷 메모리 억세스에 요하는 시간(720nS)이 될 것이다. 즉, 수신 제어 사이클에 요하는 시간이 720nS 이하로 줄어들게 될 것이다.
하기 <표 2>는 상기 도 1의 종래의 패킷 스위치 장치가 송신 제어를 수행하는 경우의 각 상태에서 수행되는 동작을 나타낸다.
Idle read Port Table read pkt desc pkt Xfer update pkt desc Idle
Port Table Packet desc Packet mem Pkt desc
220ns 300ns 540ns 160ns
상기 <표 2>에서 read port table 상태는 하기와 같은 동작을 수행할 수가 있다. 즉, 송/수신 제어부(120)는 포트 테이블(154)을 억세스하여, 전송 현재 어드레스 포인터를 읽는다.(Read the transmit current address pointer.) 그리고 송/수신 제어부(120)는 현재 전송하고자 하는 패킷이 SOP(Start of Packet)인 경우, 포트 테이블(154)의 전송 바이트(Transmit byte)를 초기화하고, 패킷 디스크립터(156)를 억세스하여 패킷 데이터 포인터를 읽는다. 만약 전송하고자 하는 패킷이 멀티캐스트에 해당하면 멀티캐스트 데이터 포인터를 읽는다.
그리고 상기 <표 2>에서 Xfer_pkt 상태는 하기와 같은 동작을 수행할 수가 있다. 즉, 송/수신 제어부(120)는 패킷 메모리(150)를 억세스하여 전송하고자 하는 서브 패킷을 읽는다. 그리고 송/수신 제어부(120)는 포트 테이블(154)을 억세스하여 전송 바이트를 갱신한다. 그리고 송/수신 제어부(120)는 현재 전송하고자 하는 패킷이 EOP(End of Packet)인 경우, 패킷 메모리(150)에 구비되는 전송 버퍼 (Trasmit Buffer)를 디-큐(Dequeue)하고 엠프티 버퍼(Empty Buffer)를 엔-큐 (Enqueue)한다. 그리고 송/수신 제어부(120)는 현재 패킷 카운트를 감소한다. (Decrement the current packet count.) 그리고 송/수신 제어부(120)는 현재 패킷 카운트가 '0'이면, 해당 포트 큐를 비활성화 시킨다.
한편, 상기 도 1의 패킷 스위치 장치가 송신 제어를 수행하는 경우, 제어 오버헤드(Control Overhead)가 실제 데이터 패킷을 송신하는 동작에 비하여 그리 크지는 않다. 그러나 수신 제어 시와 마찬가지로 제어동작(Control Action)과 전송동작(Transfer Action)이 분리된다면, 데이터 패킷의 처리에 요하는 시간이 줄어들 수가 있을 것이다. 예를 들어, 패킷 디스크립터(156)가 각 포트별 송/수신 제어부의 송신 블록에 구비된다면 전체 송신 사이클에 요하는 시간이 줄어들 수가 있을 것이다.
도 4는 상기 도 2의 종래의 패킷 스위치 장치에서 맥 인터페이스와 송/수신 제어부가 패킷을 주고 받는 경우의 타이밍도의 일 예를 도시한다.
상기 도 4는 송/수신되는 각 패킷들의 크기가 일정한 64 바이트인 경우의 타이밍도 이다. 따라서 하나의 패킷이 SOP인 동시에 EOP가 된다. 또한 상기 도 4의 동작 주파수는 50MHz이고, 클럭 주파수는 1/20nS 이다.
송/수신 제어부(228)는 데이터 수신 상태(424)에서 미리 서치가 된 소정 MAC 포트로부터의 패킷을 처리한다. 그리고 서치&송신상태(426)에서는 다음에 처리해야할, 예를 들어 상기 MAC 포트가 아닌 다른 MAC 포트로부터 출력된, 패킷에 대한 서치 동작과 현재 송신해야할 패킷을 해당 MAC 포트로 송신하는 동작을 수행한다. 그리고 송/수신 제어부(228)는 상기 서치&송신상태(426)가 완료되면, 송신상태(428)로 진입하여 패킷을 송신하는 동작을 수행한다. 그리고 송신상태(428)가 완료되면 패킷 처리의 한 사이클이 끝난다. 이때, 데이터 수신 상태(424)의 주기는 2480nS이고, 서치&송신상태(426)와 송신상태(428)의 주기를 합친 시간은 1520nS이다.
상기 도 4에서, 수신 제어 오버헤드(Rx Control Overhead)는 하기 <수학식 1>로 표현할 수가 있다.
여기서 상기 '2480'은 데이터 수신 상태(424)의 주기를 나타내고, 상기 '320'은 송/수신 제어부(228)가 해당 MAC 포트로부터 실제 수신 데이터 패킷을 패킷 메모리(150)에 저장하는데 걸리는 시간을 의미한다.
또한 상기 도 4에서, 송신 제어 오버헤드(Tx Control Overhead)는 하기 <수학식 2>로 표현할 수가 있다.
여기서 상기 '1520'은 서치&송신상태(426)의 주기와 송신상태(428)의 주기를 합친 시간을 나타내고, 상기 '320'은 송/수신 제어부(228)가 실제 송신 데이터 패킷을 패킷 메모리(234)로부터 해당 MAC 포트로 송신하는데 걸리는 시간을 의미한다.
또한 상기 도 4에서, 총 제어 오버헤드(Total Control Overhead)는 하기 <수학식 3>으로 표현할 수가 있다.
여기서, 상기 '4000'은 패킷 처리의 한 사이클 동안의 시간을 의미하며, 상기 '640'은 송/수신 제어부(228)가 패킷 메모리(234)를 억세스하여 실제 데이터 패킷을 전송하는데 요하는 시간을 의미한다.
상기 <수학식 3>에서 볼 때, 상기 도 2의 종래의 패킷 스위치 장치의 패킷 크기가 64byte인 경우의 제어 오버헤드는 84%임을 알 수가 있다. 즉, 데이터 패킷을 하나 입력하고 해당 처리하여 출력하는데 사용되는 시간의 84%는 제어동작을 하는데 사용되며 나머지 16%만이 실제로 데이터를 전송하는데 사용되어 진다는 것을 알 수가 있다.
따라서, 본 발명의 목적은 데이터 네트워크에서, 제어 오버헤드를 줄여서 고속의 패킷 스위칭을 수행하는 장치를 제공함에 있다.
그리고 본 발명의 다른 목적은 데이터 네트워크에서, 정보 리소스를 그룹별로 세분화하여 서로 다른 정보 리소스들에 저장하고 복수개의 송/수신 제어부들이 독립적으로 상기 복수개의 정보 리소스들을 억세스하여, 제어 오버헤드를 줄이고 빠르게 패킷을 처리할 수 있는 장치를 제공함에 있다.
그리고 본 발명의 또 다른 목적은 데이터 네트워크에서, 정보 리소스를 그룹별로 세분화하여 서로 다른 정보 리소스들에 저장하고 복수개의 포트별 송/수신 제어부들이 독립적으로 상기 복수개의 정보 리소스들을 억세스하여, 제어 오버헤드를 줄이고 빠르게 패킷을 처리할 수 있는 장치를 제공함에 있다.
그리고 본 발명의 또 다른 목적은 데이터 네트워크에서, 패킷 디스크립터, 포트 테이블, 링크 메모리, 어드레스 테이블 등과 같은 패킷 스위칭에 필요한 정보 리소스들을 그룹별로 세분화하고 복수개의 송/수신 제어부들이 스케줄링에 의해 상기 정보 리소스들을 병렬로 억세스 하여 고속의 패킷 스위칭을 할 수 있는 장치 및 방법을 제공함에 있다.
상기한 목적들을 달성하기 위한 본 발명은 데이터 네트워크에서 패킷 스위치 장치가, 패킷 송/수신 명령 및 데이터 패킷의 입/출력을 담당하는 복수개의 포트들과, 상기 패킷 송/수신 명령에 대응하여 그룹별로 세분화된 정보 리소스들을 억세스하고 해당 데이터 패킷을 패킷 메모리에 저장하거나 또는 상기 패킷 메모리에 저장된 해당 데이터 패킷을 해당 포트로 전송하는 복수개의 송/수신 제어부들과, 패킷 스위칭에 필요한 정보들을 그룹별로 나누어 각각 저장하며 상기 복수개의 송/수신 제어부들에게 저장된 정보를 제공하는 복수개의 정보 리소스들과, 상기 각 정보 리소스들과 연결되며 상기 송/수신 제어부들의 억세스를 스케줄링 하는 복수개의 정보 리소스 스케줄러들로 이루어짐을 특징으로 한다.
그리고 본 발명은 데이터 네트워크에서 패킷 스위치 방법이, 복수개의 송/수신 제어부들이 그룹별로 세분화된 정보 리소스들을 억세스하기 위하여 각 정보 리소스들의 스케줄러들에게 해당 억세스 신호를 출력하는 제1단계와, 상기 각 정보 리소스별 스케줄러들이 상기 복수개의 송/수신 제어부들이 한 번에 한 개의 정보 리소스를 억세스 할 수 있도록 상기 억세스 신호들에 대하여 스케줄링을 수행하는 제2단계와, 상기 복수개의 송/수신 제어부들이 억세스 경로가 연결되면 해당 정보 리소스들을 참조하여 수신 데이터 패킷을 저장하거나 또는 저장된 데이터 패킷을 송신하는 제3단계로 이루어짐을 특징으로 한다.
도 1은 종래의 패킷 스위치 장치의 일 예를 도시한 도면.
도 2는 종래의 패킷 스위치 장치의 다른 일 예를 도시한 도면.
도 3은 종래의 패킷 스위치 시스템에서 수신 제어를 도시한 상태 흐름도.
도 4는 상기 도 2의 종래의 패킷 스위치 장치에서 맥 인터페이스와 송/수신 제어부가 패킷을 주고 받는 경우의 타이밍도의 일 예.
도 5는 데이터 네트워크에서 본 발명의 제1실시 예에 따른 패킷 스위치 장치를 도시한 도면.
도 6은 데이터 네트워크에서 본 발명의 제2실시 예에 따른 패킷 스위치 장치를 도시한 도면.
도 7a 내지 도 7c는 본 발명의 일 실시 예에 따른 패킷 스위치 장치의 전체 수신 제어 동작의 흐름도.
도 8은 본 발명의 일 실시 예에 따른 패킷 스위치 장치의 전체 송신 제어 동작의 흐름도.
도 9는 데이터 네트워크에서 본 발명의 제3실시 예에 따른 패킷 스위치 장치를 도시한 도면.
도 10은 데이터 네트워크에서 본 발명의 제4실시 예에 따른 패킷 스위치 장치를 도시한 도면.
도 11은 데이터 네트워크에서 본 발명의 제5실시 예에 따른 패킷 스위치 장치를 도시한 도면.
이하 본 발명의 바람직한 실시 예를 첨부된 도면들을 참조하여 상세히 설명한다. 또한, 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.
도 5는 데이터 네트워크에서 본 발명의 제1실시 예에 따른 패킷 스위치 장치를 도시한다.
제1 MAC 포트(512) 내지 제n MAC 포트(5n2)는 각각 다른 패킷 스위치 장치 또는 라우터 또는 PC에 연결될 수가 있다. 그리고 제1 MAC 포트(512) 내지 제n MAC 포트(5n2)는 표준 MAC 제어를 수행하며, 해당 패킷 송/수신 명령을 각각 연결된 제1포트 송/수신 제어부(516) 내지 제n포트 송/수신 제어부(5n6)로 출력한다. 그리고 상기 MAC 포트들은 수신되는 데이터 패킷을 각각 연결된 송/수신 제어부들로 전송하며, 해당 송/수신 제어부로부터의 데이터 패킷을 대응되는 프로토콜 제어부로 출력한다. 상기 프로토콜 제어부는 다른 패킷 스위치 장치 또는 라우터 또는 PC에 구비될 수가 있다.
제1포트 송/수신 제어부(516) 내지 제n포트 송/수신 제어부(5n6)는 연결된 해당 MAC 포트로부터 출력되는 패킷 송/수신 명령에 따라, 패킷의 송/수신 제어를 수행한다.
그리고 제1데이터 교환부(518) 내지 제n데이터 교환부(5n8)는 각각 해당되는 포트 송/수신 제어부의 제어에 의해, 데이터 패킷과 제어신호의 경로를 제공한다. 그리고 제1포트 테이블(514) 내지 제n포트 테이블(5n4)은 각각 해당하는 MAC 포트에 대한 포트정보 등을 저장하며 각 포트별로 분산 배치된다. 각 MAC 포트에 대한 정보는 다른 포트들에서 관여할 필요가 없는 독립적인 것이다. 상기 도 5에서 제1포트 테이블(514) 내지 제n포트 테이블(5n4)은 각각 해당하는 포트 송/수신 제어부에 연결된다.
제1포트 송/수신 제어부(516) 내지 제n포트 송/수신 제어부(5n6)가 각각 해당하는 포트별로 패킷에 대한 송/수신 제어를 수행할 때 참조해야 하는 정보 리소스들은 그룹별로 분리되며 상기 도 5의 실시 예에 의하면, 제1포트 테이블(514) 내지 제n포트 테이블(5n4)과 서치 메모리(524), 어드레스 테이블(534), 제어 큐 매니저(Control Queue Manager)(535) 및 패킷 메모리(544)가 된다. 그리고 제1포트 송/수신 제어부(516) 내지 제n포트 송/수신 제어부(5n6)는 서치 메모리(524), 어드레스 테이블(534), 제어 큐 매니저(535) 및 패킷 메모리(544)를 독립적으로 억세스 하여, 수신되는 데이터 패킷을 패킷 메모리(150)에 저장하거나 패킷 메모리(150)에 저장된 데이터 패킷을 해당 출력포트를 통하여 전송한다. 즉, 상기 각 포트 송/수신 제어부들은 패킷 수신 및 송신 제어를 수행하기 위하여, 복수 개로 분리된 정보 리소스들 중에서 각 포트 테이블들을 제외한 네 개의 스케줄러들을 억세스 한다. 그리고 각 스케줄러들은 Round-Robin 방식을 사용할 수가 있다.
서치 스케줄러(520)는 제1포트 송/수신 제어부(516) 내지 제n포트 송/수신 제어부(5n6)가 서치 메모리(524)를 공유할 수 있도록 한다. 즉, 서치 스케줄러(520)는 어느 시점에서 단일의 포트 송/수신 제어부만이 서치 메모리(524)를 억세스 할 수 있도록 한다. 상기 서치 스케줄러(520)와 마찬가지로 어드레스 테이블 스케줄러(530) 및 패킷 메모리 스케줄러(540)도 각각 제1포트 송/수신 제어부(516) 내지 제n포트 송/수신 제어부(5n6)가 어드레스 테이블(534)과 패킷 메모리(544)를 공유할 수 있도록 한다. 그리고 제어 큐 매니저(535)는 제1포트 송/수신 제어부(516) 내지 제n포트 송/수신 제어부(5n6)가 자신을 공유할 수 있도록 한다. 그리고 제어 큐 매니저(535)는 패킷 메모리(544)에 대한 Queueing 동작을 위한 각 Queue들의 포인터 정보를 저장하며, 상기 Queueing 동작에 따른 포인터 정보를 갱신한다. 그리고 제어 큐 매니저(535)는 선택된 해당 포트 송/수신 제어부로 포인터 정보를 출력한다. 이로 인해 상기 포트 송/수신 제어부는 Queueing 동작을 수행한다.
한편, 상기 도 5에서 패킷 메모리(544)만을 제외한 나머지 구성들은 단일의 칩으로 구성될 수가 있다. 그리고 각 포트 송/수신 제어부들이 공유할 수 있도록, 패킷 디스크립터(546)도 패킷 메모리(544)에서 분리될 수가 있다. 또한 각 포트 송/수신 제어부들은 복수개의 태스크를 생성하여 송/수신 제어를 수행할 수가 있다.
이하, 상기한 도 5의 구성으로부터, 본 발명의 실시 예에 따른 패킷 스위칭 동작의 일 예를 설명하면 하기와 같다. 각 포트 송/수신 제어부들은 수신된 데이터 패킷을 일시 저장한다. 그리고 각 포트 송/수신 제어부들은 서치 스케줄러(520)를 통하여 서치 메모리(524)를 억세스 하여, 수신 패킷의 헤더(Header)의 목적지 어드레스가 등록되어 있는 어드레스인지를 검사하고, 등록되어 있는 맥 어드레스 정보가 어드레스 테이블(534)의 어디에 저장되어 있는지를 알아낸다. 그리고 각 포트 송/수신 제어부들은 상기 수신 패킷이 출력될 MAC 포트를 결정한다.
그리고 각 포트 송/수신 제어부들은 어드레스 테이블 스케쥴러(530)를 통하여 어드레스 테이블(534)를 억세스 하여 상기 수신 패킷의 소오스 어드레스와 목적지 어드레스를 검사한다. 그리고 각 포트 송/수신 제어부들은 자신에게 직접 연결된 해당 포트 테이블을 억세스하여 포트 정보를 검사하고, 어드레스 테이블 스케줄러(530) 및 패킷 메모리 스케줄러(540)를 통하여 어드레스 테이블(534) 및 패킷 디스크립터(546)를 억세스하여 맥 어드레스 정보 및 패킷 정보를 검사한다. 그리고 각 포트 송/수신 제어부들은 상기 일시 저장된 패킷을 패킷 메모리(546)에 저장한다. 그리고 패킷 송신시, 각 포트 송/수신 제어부들은 자신에게 연결된 해당 포트 테이블을 참조하며, 어드레스 테이블 스케줄러(530) 및 패킷 메모리 스케줄러(540)를 통하여 각각 어드레스 테이블(534) 및 패킷 디스크립터(546)를 억세스하여, 패킷 메모리(544)에 저장된 데이터 패킷을 해당 출력포트를 통하여 전송한다.
그리고 각 포트 송/수신 제어부들은 에러 검사 동작을 수행한다. 즉, 패킷에 대하여 MAC 에러, Unknown Source Address, Address Move, Destination Address가 발생하면, 각 포트 송/수신 제어부들은 Drop 또는 Broadcast 또는 Forward to Host를 결정한다.
한편, 각 포트 송/수신 제어부들이 데이터 패킷을 패킷 메모리(544)에 저장하고 다시 패킷 메모리(544)에 저장된 데이터 패킷을 해당되는 MAC 포트로 출력하는 과정의 일 예를 설명하면 하기와 같다. 각 포트 송/수신 제어부들은 패킷이 수신되면 해당 포트 테이블을 억세스하고 제어 큐 매니져(535)의 포인터 정보를 참조하여 Dequeue Empty Buffer 및 수신 Queue를 Enqueue 하면서, 수신 패킷을 저장한다. 그리고 각 포트 송/수신 제어부들은 해당 포트 테이블을 억세스하고 제어 큐 매니저(535)의 포인터 정보를 참조하여 Queueing 동작을 수행하여 패킷 메모리(544)에 저장된 각 패킷을 포인터를 이용하여 연결한다. 상기 각 패킷들의 정보는 패킷 디스크립터(546)에 저장된다. 또한 각 포트 송/수신 제어부들은 상기 해당 포트로부터 패킷이 수신될 시 현재 진행중인 패킷이 EOP가 아니면, 제어 큐 매니저(535)의 포인터 정보를 참조하여 Rx Queue를 Enqueue한다. 그리고 현재 진행중인 패킷이 EOP이면 제어 큐 매니저(535)의 포인터 정보를 참조하여 상기 수신 Queue를 Dequeue하고 패킷 메모리(544)에 구비되는 Tx Queue에 Enqueue한다.
그리고 패킷 송신시, 각 포트 송/수신 제어부들은 패킷 디스크립터(546)를 억세스하여 각 패킷의 정보를 참조하고, 패킷 메모리(544)에 저장된 해당 패킷을 출력포트의 MAC으로 송신한다. 이때 각 포트 송/수신 제어부들은 해당 포트 테이블을 억세스하고, 제어 큐 매니저(535)의 포인터 정보를 참조하여 Dequeue Tx Queue하고 Enqueue Empty Buffer 한다.
도 6은 데이터 네트워크에서 본 발명의 제2실시 예에 따른 패킷 스위치 장치를 도시한다.
상기 도 6의 패킷 스위치 장치는 버스 인터페이스(600)를 통하여 호스트(도시하지 않음.)와 복수개의 패킷 스위치 장치들(도시하지 않음.)과 연결될 수가 있다. 그리고 상기 도 6의 패킷 스위치 장치는 버스 인터페이스(600)를 통하여 라우터나 PC에 연결될 수가 있다.
제1 MAC 포트(604) 내지 제n MAC 포트(606)는 표준 MAC 제어를 수행하여 패킷 송/수신 명령을 출력한다. 그리고 상기 각 MAC 포트들은 데이터 패킷의 입/출력을 담당한다. 즉, 상기 MAC 포트들은 수신되는 데이터 패킷을 각각 연결된 송/수신 제어부들로 전송하며, 해당 송/수신 제어부로부터의 데이터 패킷을 대응되는 프로토콜 제어부로 출력한다. 그리고 상기 각 MAC 포트들은 Full Duplex 동작 또는 Half Duplex 동작을 수행할 수가 있다. 그리고 상기 각 MAC 포트들은 패킷 스위치 장치 외부에서 위치할 수가 있다.
제1 MAC 인터페이스부(608) 내지 제n MAC 인터페이스부(614)는 각각 연결된 MAC 포트와 포트 송/수신 제어부 간의 인터페이스를 수행한다. 상기 각 MAC 인터페이스부들은 서브 패킷의 전송을 담당한다. 상기 각 MAC 인터페이스부들은 송신 FIFO와 수신 FIFO를 구비하며 각 서브 패킷들을 임시 저장한다. 그리고 상기 각 MAC 인터페이스부들은 송신 또는 수신이 활성화(Available) 되면, 연결된 해당 포트 송/수신 제어부로 패킷 송/수신 명령을 출력한다.
제1 포트 송/수신 제어부(620) 내지 제n 포트 송/수신 제어부(624)는 MAC 포트별로 구비될 수가 있다. 상기 각 포트 송/수신 제어부들은 제1포트 테이블(622) 내지 제n포트 테이블(626)을 구비한다. 상기 각 포트 송/수신 제어부들은 상기 패킷 송/수신 명령이 입력되면, 구비되는 포트 테이블을 억세스 하여 어드레스 서치 동작을 수행한다. 그리고 상기 각 포트 송/수신 제어부들은 패킷 메모리(642) 또는 어드레스 테이블(644) 또는 서치 메모리(646)를 억세스 하기 위하여 패킷 메모리 스케줄러(628) 또는 어드레스 테이블 스케줄러(630) 또는 서치 스케줄러(632)에게 연결(Connection) 요구 신호를 출력한다. 그리고 상기 각 포트 송/수신 제어부들은 원하는 정보 리소스들과의 연결이 완료되면, 서브 패킷 전송 동작, 각 서브 패킷에 대한 SOP 프로세싱 및 EOP 프로세싱, Enqueueing Packets, Dequeueing Packets 동작을 수행한다. 또한 상기 각 포트 송/수신 제어부들은 소오스/목적지 어드레스에 대한 통계정보를 갱신(Update Statistics)한다.
패킷 메모리 스케줄러(628)는 상기 각 포트 송/수신 제어부들과 연결된다. 그리고 어드레스 테이블 스케줄러(630)는 상기 각 포트 송/수신 제어부들로부터의 연결 요구 신호들을 스케줄링 하여, 선택된 해당 포트 송/수신 제어부와 어드레스 테이블(644)을 연결한다. 또한 본 발명의 실시 예에 따라, 패킷 메모리 스케줄러(628)는 제어 큐 매니저(634)에 구비되는 Empty Queue, 호스트 Queue '0'와 '1', Multicast Queue를 제어할 수가 있다. 또한 본 발명의 실시 예에 따라, 패킷 메모리 스케줄러(628)는 제어 큐 매니저(634)의 Rx Queue, Tx Queue등의 큐들에 대한 Enqueue 및 Dequeue 동작을 제어할 수도 있다.
제어 큐 매니저(634)는 상기 각 포트 송/수신 제어부들과 연결된다. 그리고 제어 큐 매니저(634)는 상기 각 포트 송/수신 제어부들로부터의 연결 요구 신호들을 스케줄링 하며, Rx Queue, Tx Queue등의 큐들에 대한 Enqueue 및 Dequeue 동작을 수행한다. 그리고 큐 매니저(634)는 Empty Queue, Multicast Queue, Host Queue '0', '1' 그리고 Expansion Queue를 구비한다. 그리고 만약 호스트(도시하지 않음)가 버스 인터페이스(600)에 연결(Attached) 되어 있으면, 상기 Expansion Queue는 상기 Host Queue 들을 포함하게 된다.
어드레스 테이블 스케줄러(630)는 상기 각 포트 송/수신 제어부들과 연결된다. 그리고 어드레스 테이블 스케줄러(630)는 상기 각 포트 송/수신 제어부들로부터의 연결 요구 신호들을 스케줄링 하여, 선택된 해당 포트 송/수신 제어부와 어드레스 테이블(644)을 연결한다.
또한 서치 스케줄러(632)는 상기 각 포트 송/수신 제어부들과 연결된다. 그리고 서치 스케줄러(632)는 상기 각 포트 송/수신 제어부들로부터의 연결 요구 신호들을 스케줄링 하여, 선택된 해당 포트 송/수신 제어부와 서치 메모리(646)를 연결한다.
패킷 메모리 인터페이스(636)는 패킷 메모리 스케줄러(628)와 패킷 메모리(642)간의 인터페이스를 수행한다. 그리고 어드레스 테이블 인터페이스(638)는 어드레스 테이블 스케줄러(630)와 어드레스 테이블(644)간의 인터페이스를 수행한다. 그리고 서치 메모리 인터페이스(640)는 서치 스케줄러(632)와 서치 메모리(646)간의 인터페이스를 수행한다.
제1포트 테이블(622) 내지 제n포트 테이블(626)은 각 MAC 포트들의 상태정보와 인에이블 정보, 수신 동작 완료 정보 등을 저장한다. 그리고 패킷 메모리(642)는 서브 패킷들을 저장하며, 이때 저장된 각 서브 패킷들에 대한 정보는 패킷 디스크립터(648)에 저장된다. 어드레스 테이블(644)은 등록되어 있는 패킷의 목적지 MAC 어드레스와 소오스 MAC 어드레스를 저장한다. 그리고 서치 메모리(646)는 수신된 패킷의 목적지 어드레스에 해당하는 출력 MAC 포트를 판단하는 정보를 저장하며, 등록되어 있는 MAC 어드레스를 찾을 수 있도록 한다.
이하, 상기한 도 6의 구성으로부터, 본 발명의 실시 예에 따른 패킷 스위칭 동작의 일 예를 설명하면 하기와 같다. 상기 도 6의 구성에서, 수신제어는 포트별 MAC 인터페이스부에 저장된 서브 패킷을 패킷 메모리(642)에 저장시키는 일련의 과정을 의미한다. 해당 MAC 인터페이스부는 수신 서브 패킷이 FIFO에 입력되면, MAC 인터페이스부는 해당 패킷 수신 명령을 출력한다. 상기 포트 송/수신 제어부는 상기한 명령이 입력되면 수신되는 서브 패킷의 헤더 정보를 검사하여 필요한 정보를 얻는다.
상기 포트 송/수신 제어부는 수신 서브 패킷이 SOP에 해당하면 먼저 서치 스케줄러(632)를 통하여 서치 메모리(646)를 억세스하여 서치 동작을 수행한다. 이때, 본 발명의 실시 예에 따른 포트 송/수신 제어부는 상기 서치 동작이 수행되고 있는 동안에, 입력되는 패킷 송신 명령이 서치 동작이 아니라면 패킷 송신 명령을 부분적으로 수행할 수가 있다.
그리고 상기 포트 송/수신 제어부는 상기 서치 동작과 어드레스 테이블(644) 및 해당 포트 테이블로부터 얻은 정보를 기반으로 State Machine을 자체적으로 돌리며 여러 가지 필요한 판단을 내린다. 그리고 수신된 서브 패킷을 패킷 메모리(646)에 저장한다.
한편, 상기 각 상태들은 각각의 필요한 명령들을 패킷 메모리 스케줄러(628)와 어드레스 테이블 스케줄러(630) 그리고 큐 매니저(634)에게 출력하고, 해당 명령이 상기 스케줄러들에 의해 선택되어 지면 패킷 디스크립터(648)와 어드레스 테이블(644)을 억세스하여 필요한 정보를 얻는다. 그리고 상기 포트 송/수신 제어부는 패킷 메모리 스케줄러(628)에 Xfer_Packet 명령을 의뢰하여 해당 MAC 인터페이스에 저장된 서브 패킷을 패킷 메모리(642)에 저장한다. 그리고 상기 포트 송/수신 제어부는 수신 서브 패킷이 EOP에 해당하면 즉, 전체 프레임(예: 이더넷 프레임)에 대한 저장이 완료되면, Rx Queue에서 Dequeue 시키고 목적지 MAC 포트에 대한 Tx Queue를 Enqueue 시킨다.
한편, 상기 전체 프레임에 대한 서브 패킷 수신이 완료되면, 해당 목적지 MAC 포트의 명령에 의해 해당 송/수신 제어부는 패킷 송신 제어를 수행한다. 이때, 패킷 송신은 서브 패킷 단위로 이루어지며 송신 중에 필요한 정보들은 패킷 디스크립터(648) 및 해당 포트 테이블로부터 얻는다.
도 7a 내지 도 7c는 본 발명의 일 실시 예에 따른 패킷 스위치 장치의 전체 수신 제어 동작의 흐름도를 도시한다. 각 과정 자체의 동작은 패킷 스위치 시스템에서 일반적인 데이터 패킷 처리를 수행하는 것이다.
도 8은 본 발명의 일 실시 예에 따른 패킷 스위치 장치의 전체 송신 제어 동작의 흐름도를 도시한다. 각 과정 자체의 동작은 패킷 스위치 시스템에서 일반적인 데이터 패킷 처리를 수행하는 것이다.
도 9는 데이터 네트워크에서 본 발명의 제3실시 예에 따른 패킷 스위치 장치를 도시한다.
상기 도 9는 상기 도 5의 구성과 유사하나, 상기 도 5에서 패킷 메모리(544)에 구비되는 정보 리소스인 패킷 연결정보를 분리한다. 즉, 링크 메모리(934)는 패킷 메모리(944)로부터 분리되어 패킷 연결정보를 저장한다. 패킷 연결정보는 넥스트 디스크립터들(Next Descriptor)과 송신 큐 포인터들로 이루어질 수가 있다. 상기 각 넥스트 디스치립터는 패킷 메모리(944)의 각 방(Room)에 대응되며, 다음에 연결된 방(Next Linked Room)의 어드레스 정보를 가질 수가 있다. 상기 송신 큐 포인터들은 헤더(Header)와 테일(Tail)정보와 해당 큐와 관련된 현재 방의 번호(The Number of Current Rooms) 정보들을 가질 수가 있다.
제어 큐 매니저(930)는 제1포트 송/수신 제어부(916) 내지 제n포트 송/수신 제어부(9n6)가 자신을 공유할 수 있도록 한다. 그리고 제어 큐 매니저(930)는 링크 메모리(934)를 억세스하여 패킷 연결정보를 참조 및 갱신하고 패킷 메모리(944)에 대한 Queueing 동작을 위한 각 Queue들의 포인터 정보를 저장하며, 상기 Queueing 동작에 따른 포인터 정보를 갱신한다. 그리고 제어 큐 매니저(930)는 선택된 해당 포트 송/수신 제어부로 포인터 정보를 출력한다. 이로 인해 상기 포트 송/수신 제어부는 Queueing 동작을 수행한다.
한편, 상기 도 9를 참조하면, 상기 도 5의 어드레스 테이블(534)의 구성은 서치 메모리(924)에 포함된다. 따라서 상기 도 9의 구성에서 각 포트 송/수신 제어부들은 서치 스케줄러(920)를 억세스하여 어드레스 정보를 얻는다.
도 10은 데이터 네트워크에서 본 발명의 제4실시 예에 따른 패킷 스위치 장치를 도시한다.
상기 도 10은 상기 도 6의 구성과 유사하나, 상기 도 6에서 패킷 메모리(642)에 구비되는 정보 리소스인 패킷 연결정보를 분리한다. 즉, 링크 메모리(1044)는 패킷 메모리(1042)로부터 분리되어 패킷 연결정보를 저장한다. 패킷 연결정보는 넥스트 디스크립터들(Next Descriptor)과 송신 큐 포인터들로 이루어질 수가 있다. 상기 각 넥스트 디스치립터는 패킷 메모리(944)의 각 방(Room)에 대응되며, 다음에 연결된 방(Next Linked Room)의 어드레스 정보를 가질 수가 있다. 상기 송신 큐 포인터들은 헤더(Header)와 테일(Tail)정보와 해당 큐와 관련된 현재 방의 번호(The Number of Current Rooms) 정보들을 가질 수가 있다.
제어 큐 매니저(1030)는 제1포트 송/수신 제어부(916) 내지 제n포트 송/수신 제어부(9n6)가 자신을 공유할 수 있도록 한다. 제어 큐 매니저(1030)는 상기 각 포트 송/수신 제어부들과 연결된다. 그리고 제어 큐 매니저(1030)는 상기 각 포트 송/수신 제어부들로부터의 연결 요구 신호들을 스케줄링 하며, Rx Queue, Tx Queue등의 큐들에 대한 Enqueue 및 Dequeue 동작을 수행한다.
그리고 제어 큐 매니저(930)는 링크 메모리(934)를 억세스하여 패킷 연결정보를 참조 및 갱신하고 패킷 메모리(944)에 대한 Queueing 동작을 위한 각 Queue들의 포인터 정보를 저장하며, 상기 Queueing 동작에 따른 포인터 정보를 갱신한다.
그리고 상기 도 10 참조하면, 상기 도 6의 어드레스 테이블(644)의 구성은 서치 메모리(1046)에 포함된다. 따라서 상기 도 10의 구성에서 각 포트 송/수신 제어부들은 서치 스케줄러(1032)를 억세스하여 어드레스 정보를 얻는다.
다른 한편, 패킷 스위치 장치의 성능은 여러 가지로 요소에 의해 평가될 수가 있다. 그리고 상기 요소들 중에서 가장 중요한 것은 Throughput이라고 할 수가 있다. 여기서 Throughput은 단위 시간당 처리할 수 있는 데이터 량이라고 말할 수가 있다. 이더넷(Ethernet) 패킷 등과 같은 가변적인 패킷의 크기 때문에 Throughput이 가장 열악한 64byte 패킷을 처리 능력을 흔히 패킷 스위치 장치의 성능으로 말한다. 특히, 64byte 유니케스트(Unicast) 패킷들을 모든 포트들로 입력시키고 각각 서로 다른 모든 포트들로 출력 시켰을 때, 입력 스피드와 출력 스피드가 동일하면 그 패킷 스위치는 Wire-Speed를 지원한다고 한다.
하기 <표 3>은 단일의 노멀한 유니케스트 패킷에 대한 상기 도 10과 같은 구성의 패킷 스위치 장치의 송/수신 처리 과정의 일 예를 나타낸다.
state Description Required clock 처리블록
수신제어동작 DeQ EB, EnQ Rx Empty 버퍼에서 빈방 하나를 빼와서 수신되는 패킷을 저장할 방을 마련한다. 14 CQM
Init Desc 각 패킷의 정보인 디스키립터를 패킷 메모리에 저장한다. 11clk{1clk(scheduling)+3clk(hand-shaking between PCU and PMI) +4clk(Data Xfer)+ 3clk (precharge SGRAM)} PMI
Xfer Packet 실제 데이터를 패킷 메모리에 저장한다. 23(1+3+16+3) PMI
DeQ Rx, EnQ Tx 수신이 완료된 방을 TX Queue에 저장한다. 17 CQM
송신제어동작 Read Desc TX할 패킷의 정보를 읽는다. 12clk{1clk(scheduling)+4clk(hand_shaking)+ 4clk(Data Xfer)+ 3clk (precharge SGRAM)} PMI
Xfer Packet 전송할 데이터를 읽어온다. 24(1+4+16+4) PMI
DeQ Tx, EnQ EB 전송이 끝난 방은 다시 빈방으로 쓰기 위해 Empty 버퍼에 Enqueue 한다. 20 CQM
상기 <표 3>에서 CQM은 제어 큐 매니져(Control Queue Manager)의 약어이며, PMI는 패킷 메모리 인터페이스의 약어이다. 또한 상기 <표 3>에서 PCU는 Port Control Unit의 약어로서, 포트 송/수신 제어부를 의미한다.
상기 <표 3>에서 단일의 유니케스트 패킷을 처리하는데 패킷 메모리 인터페이스가 소요하는 시간은 모두 합쳐서 70 클럭이라는 것을 알 수가 있다. 또한 제어 큐 매니저가 소요하는 시간은 모두 합쳐서 51 클럭이라는 것을 알 수가 있다. 따라서 전체 프로세스에서 Bottleneck은 PMI이며 결국 64바이트 패킷의 송신과 수신에 걸리는 시간은 총 70클럭이 소요된다는 결론이 내려진다. 한편, 64바이트 이더넷 패킷의 경우 각 유니케스트 패킷은 12바이트의 Inter Frame Gap과 8바이트의 프리앰블을 포함하고 있으므로 84바이트 곱하기 8바이트 즉, 672비트로 이루어진다.
따라서, 상기 도 10의 구성에서 MAC 포트가 8개 인 경우, 672비트 패킷에 대한 Throughput은 66MHz의 경우 하기 <수학식 4>로 표시할 수가 있다.
상기 <수학식 4>에서 볼 때, MAC 포트가 8개인 경우 상기 도 10의 패킷 스위치 장치는 1.6Gbps의 처리 속도를 가져야만 Wire-Speed를 지원한다고 할 수 있다.
도 11은 데이터 네트워크에서 본 발명의 제5실시 예에 따른 패킷 스위치 장치를 도시한다.
상기 도 11은 상기 도 10의 구성과 유사하나, 상기 도 10에서 패킷 메모리(1042)에 구비되는 정보 리소스인 패킷 디스크립터(1048)를 분리한다. 즉, 패킷 디스크립터를 따로 저장해서 처리할 수 있는 메모리가 추가된다. 상기 추가되는 메모리는 칩의 내부 또는 외부에 구비될 수가 있다. 이로인해, 패킷 메모리(1144)의 로드(Load)가 줄어들게 되어, 패킷 스위치 장치의 송/수신 제어 시간이 줄어들 수가 있다. 패킷 디스크립터 메모리(1146)에 저장되는 각 패킷의 정보는 실제 패킷 메모리(1144)에 저장되는 각 패킷과 일대일로 매핑될 수가 있다. 즉, 상기 메모리 중에서 어느 하나의 어드레스만 알고 있으면 다른 하나의 어드레스를 항상 알 수가 있다.
상기 도 11에서 패킷 디스크립터 메모리(1146)는 패킷 메모리(1144)로부터 분리되며 각 패킷들의 정보를 저장한다. 패킷 디스크립터 메모리 스케줄러(1130)는 각 포트 송/수신 제어부들과 연결된다. 그리고 패킷 디스크립터 메모리 스케줄러(1130)는 상기 각 포트 송/수신 제어부들로부터의 연결 요구 신호들을 스케줄링 하며, 패킷 디스크립터 메모리(1146)에 저장된 각 패킷들의 정보를 억세스할 수 있도록 한다.
상기 도 11의 경우, 유니케스트 패킷에 대한 패킷 스위치 장치의 송/수신 처리에 걸리는 시간은 하기와 같다. 즉, 패킷 송신(Tx) 및 수신(Rx)시 패킷 메모리 인터페이스부(1138)가 순수하게 Xfer Packet을 하는 데 47 클럭이 소요된다. 그리고 패킷 디스크립터 메모리 인터페이스(1138)가 패킷 디스크립터 메모리(1146)를 초기화하고 억세스하는데 23 클럭이 소요된다. 또한 상기한 바와 같이 제어 큐 매니저(1132)는 51 클럭을 소요한다. 상기 도 11의 구성에서의 Botleneck은 제어 큐 매니저(1132)가 되며, 이때의 Throughput은 하기 <수학식 5>로 나타낼 수가 있다.
상기 <수학식 5>에서 볼 때, 상기 도 11과 같은 패킷 스위치 장치의 구성은 8포트의 경우 유니 패킷에 대하여 1.6Gbps 이상의 처리속도를 가지므로 Wire-Speed를 지원한다고 말 할 수가 있다.
상술한 바와 같이 데이터 네트워크에서 본 발명의 실시 예에 따른 패킷 스위치 처리 장치 및 방법은 패킷 디스크립터, 포트 테이블, 링크 메모리, 어드레스 테이블 등과 같은 패킷 스위칭에 필요한 정보 리소스들을 그룹별로 세분화하고 복수개의 송/수신 제어부들이 스케줄링에 의해 상기 정보 리소스들을 병렬로 억세스 하여 제어 오버헤드가 줄어들게 된다. 이로 인해 본 발명은 종래의 패킷 스위치 장치의 구조 변경으로 고속의 패킷 스위칭을 할 수 있는 이점이 있다.

Claims (21)

  1. 데이터 네트워크에서 패킷 스위치 장치에 있어서,
    패킷 송/수신 명령 및 데이터 패킷의 입/출력을 담당하는 복수개의 포트들과,
    상기 패킷 송/수신 명령에 대응하여 그룹별로 세분화된 정보 리소스들을 억세스하고 해당 데이터 패킷을 패킷 메모리에 저장하거나 또는 상기 패킷 메모리에 저장된 해당 데이터 패킷을 해당 포트로 전송하는 복수개의 송/수신 제어부들과,
    패킷 스위칭에 필요한 정보들을 그룹별로 나누어 각각 저장하며 상기 복수개의 송/수신 제어부들에게 저장된 정보를 제공하는 복수개의 정보 리소스들과,
    상기 각 정보 리소스들과 연결되며 상기 송/수신 제어부들의 억세스를 스케줄링 하는 복수개의 정보 리소스 스케줄러들로 이루어짐을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.
  2. 제 1항에 있어서, 상기 복수개의 송/수신 제어부들이,
    상기 각 포트별로 구비됨을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.
  3. 제 2항에 있어서, 상기 복수개의 정보 리소스들이,
    패킷 디스크립터, 링크 메모리, 서치 메모리, 포트 테이블임을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.
  4. 제 3항에 있어서, 상기 포트 테이블이,
    상기 각 포트별로 구비됨을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.
  5. 데이터 네트워크에서 패킷 스위치 방법에 있어서,
    복수개의 송/수신 제어부들이 그룹별로 세분화된 정보 리소스들을 억세스하기 위하여 각 정보 리소스들의 스케줄러들에게 해당 억세스 신호를 출력하는 제1단계와,
    상기 각 정보 리소스별 스케줄러들이 상기 복수개의 송/수신 제어부들이 한 번에 한 개의 정보 리소스를 억세스 할 수 있도록 상기 억세스 신호들에 대하여 스케줄링을 수행하는 제2단계와,
    상기 복수개의 송/수신 제어부들이 억세스 경로가 연결되면 해당 정보 리소스들을 참조하여 수신 데이터 패킷을 저장하거나 또는 저장된 데이터 패킷을 송신하는 제3단계로 이루어짐을 특징으로 하는 데이터 네트워크에서 패킷 스위치 방법.
  6. 제 5항에 있어서, 상기 복수개의 송/수신 제어부들이,
    복수개의 포트별로 구비됨을 특징으로 하는 데이터 네트워크에서 패킷 스위치 방법.
  7. 제 6항에 있어서, 상기 복수개의 정보 리소스들이,
    패킷 디스크립터, 링크 메모리, 서치 메모리, 포트 테이블임을 특징으로 하는 데이터 네트워크에서 패킷 스위치 방법.
  8. 제 7항에 있어서, 상기 포트 테이블이,
    상기 각 포트별로 구비됨을 특징으로 하는 데이터 네트워크에서 패킷 스위치 방법.
  9. 패킷 스위치 시스템의 패킷 데이터 처리 장치에 있어서,
    송/수신 패킷 데이터에 대한 처리를 수행하여 해당 포트로 입력되는 패킷 데이터를 패킷 메모리에 저장 및 저장된 패킷 데이터를 해당 포트로 전송하는 포트별로 할당된 송/수신 제어부와,
    패킷 스위칭에 필요한 정보를 그룹별로 나누어 각각 저장하며 상기 포트별로 할당된 각 송/수신 제어부로 저장된 정보를 제공하는 복수개의 정보 리소스와,
    상기 각 포트별로 할당된 송/수신 제어부가 한 번에 한 개의 상기 정보 리소스를 억세스 할 수 있도록 억세스 제어를 수행하는 상기 복수개의 억세스 제어부로 이루어짐을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.
  10. 제 9항에 있어서, 상기 복수개의 정보 리소스가,
    패킷 디스크립터, 어드레스 테이블 및 서치 메모리임을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.
  11. 제 10항에 있어서,
    상기 포트별로, 정보 리소스인 포트 테이블이 더 할당됨을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.
  12. 제 11항에 있어서, 상기 어드레스 테이블과 서치 메모리가,
    동일한 칩 내에 구비됨을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.
  13. 제 12항에 있어서, 상기 복수개의 억세스 제어부가,
    스케줄러임을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.
  14. 패킷 스위치 시스템의 패킷 데이터 처리 방법에 있어서,
    포트별로 할당된 각 송/수신 제어부가 그룹별로 나뉘어진 복수개의 정보 리소스를 억세스하기 위해 각 정보 리소스와의 인터페이스를 담당하는 상기 복수개의 억세스 제어부로 해당 제어신호를 송/수신하는 제1과정과,
    상기 복수개의 억세스 제어부가 상기 각 포트별 제어부가 한 번에 한 개의 정보 리소스를 억세스 할 수 있도록 억세스 제어를 수행하는 제2과정과,
    상기 포트별로 할당된 해당 송/수신 제어부가 정보 리소스를 억세스하고 연결된 데이터 경로를 통하여 패킷 데이터를 입력포트 및 출력포트로 송/수신하는 제3과정으로 이루어짐을 특징으로 하는 데이터 네트워크에서 패킷 스위치 방법.
  15. 패킷 스위치 시스템의 패킷 데이터 처리 장치에 있어서,
    포트별로 할당되며 송신용 및 수신용의 선입선출 메모리 구조를 구비하여 입력되는 패킷 데이터를 서브패킷 단위로 송/수신하는 포트 인터페이스부와,
    상기 포트 인터페이스부에 각각 할당되고 송/수신되는 패킷 데이터에 대한 처리를 수행하여 입력되는 패킷 데이터를 패킷 메모리에 저장 및 저장된 패킷 데이터를 해당 포트 인터페이스부로 전송하는 송/수신 제어부와,
    패킷 스위칭에 필요한 정보를 그룹별로 나누어 각각 저장하며 상기 각 송/수신 제어부로 저장된 정보를 제공하는 복수개의 정보 리소스와,
    상기 각 송/수신 제어부가 한 번에 한 개의 상기 정보 리소스를 억세스 할 수 있도록 억세스 제어를 수행하는 상기 복수개의 억세스 제어부로 이루어짐을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.
  16. 제 15항에 있어서, 상기 포트가,
    맥(MAC) 포트임을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.
  17. 제 16항에 있어서, 상기 복수개의 정보 리소스가,
    패킷 디스크립터, 어드레스 테이블, 서치 메모리 및 포트 테이블임을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.
  18. 제 17항에 있어서,
    상기 패킷 디스크립터가 각 패킷에 대한 정보를 저장하고,
    상기 어드레스 테이블이 맥(MAC) 디바이스에 대한 정보를 저장하며,
    상기 포트 테이블이 상기 맥(MAC) 포트에 대한 정보를 저장하며,
    상기 서치 메모리가 등록되어 있는 맥(MAC) 어드레스 정보를 저장함을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.
  19. 제 18항에 있어서, 상기 포트 테이블이,
    상기 포트별로 할당됨을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.
  20. 제 19항에 있어서, 상기 어드레스 테이블과 서치 메모리가,
    동일한 칩 내에 구비됨을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.
  21. 제 20항에 있어서, 상기 복수개의 억세스 제어부가,
    스케줄러임을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.
KR10-2000-0032255A 1999-06-12 2000-06-12 데이터 네트워크에서 패킷 스위치 장치 및 방법 KR100378372B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0032255A KR100378372B1 (ko) 1999-06-12 2000-06-12 데이터 네트워크에서 패킷 스위치 장치 및 방법

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
KR1019990021940 1999-06-12
KR19990021940 1999-06-12
KR19990060235 1999-12-22
KR1019990060235 1999-12-22
KR10-2000-0032255A KR100378372B1 (ko) 1999-06-12 2000-06-12 데이터 네트워크에서 패킷 스위치 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20010007346A true KR20010007346A (ko) 2001-01-26
KR100378372B1 KR100378372B1 (ko) 2003-03-29

Family

ID=27349989

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0032255A KR100378372B1 (ko) 1999-06-12 2000-06-12 데이터 네트워크에서 패킷 스위치 장치 및 방법

Country Status (1)

Country Link
KR (1) KR100378372B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100440200B1 (ko) * 2001-10-23 2004-07-14 엘지전자 주식회사 엘투 스위치에서의 맥 어드레스 테이블 관리 방법
KR100937283B1 (ko) * 2001-12-19 2010-01-18 에이저 시스템즈 인크 프로세서, 처리 시스템 및 패킷 처리 방법
KR200495799Y1 (ko) * 2021-07-02 2022-08-22 권홍 차량 통행료 자동지불단말기

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101870492B1 (ko) 2015-06-22 2018-06-22 엘에스산전 주식회사 Plc 시스템

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5319638A (en) * 1991-09-12 1994-06-07 Bell Communications Research, Inc. Link-by-link congestion control for packet transmission systems
JP3441276B2 (ja) * 1995-12-18 2003-08-25 株式会社東芝 パケットスイッチ
US9923457B2 (en) * 2015-04-23 2018-03-20 Taiwan Semiconductor Manufacturing Company, Ltd. Regulated power converter and method of operating the same

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100440200B1 (ko) * 2001-10-23 2004-07-14 엘지전자 주식회사 엘투 스위치에서의 맥 어드레스 테이블 관리 방법
KR100937283B1 (ko) * 2001-12-19 2010-01-18 에이저 시스템즈 인크 프로세서, 처리 시스템 및 패킷 처리 방법
KR200495799Y1 (ko) * 2021-07-02 2022-08-22 권홍 차량 통행료 자동지불단말기

Also Published As

Publication number Publication date
KR100378372B1 (ko) 2003-03-29

Similar Documents

Publication Publication Date Title
CA2310909C (en) Packet switching apparatus and method in data network
AU767085B2 (en) Optimizing the transfer of data packets between LANs
US8917740B2 (en) Channel service manager
US7676597B2 (en) Handling multiple network transport service levels with hardware and software arbitration
US6967951B2 (en) System for reordering sequenced based packets in a switching network
US6922408B2 (en) Packet communication buffering with dynamic flow control
US9094327B2 (en) Prioritization and preemption of data frames over a switching fabric
US7483429B2 (en) Method and system for flexible network processor scheduler and data flow
EP3562110A1 (en) Traffic management for high-bandwidth switching
EP1080560A1 (en) Method and apparatus for forwarding packets from a plurality of contending queues to an output
JP2000503828A (ja) データネットワーク上でデータパケットをスイッチングする方法および装置
KR20160117108A (ko) 다수의 링크된 메모리 리스트들을 사용하기 위한 방법 및 장치
JP2011024027A (ja) パケット送信制御装置、ハードウェア回路およびプログラム
EP0960501A2 (en) Data communication system utilizing a scalable, non-blocking, high bandwidth central memory controller and method
US6882655B1 (en) Switch and input port thereof
KR100378372B1 (ko) 데이터 네트워크에서 패킷 스위치 장치 및 방법
US8131854B2 (en) Interfacing with streams of differing speeds
US7583678B1 (en) Methods and apparatus for scheduling entities using a primary scheduling mechanism such as calendar scheduling filled in with entities from a secondary scheduling mechanism
US10715455B2 (en) Packet switching device modifying paths of flows of packets taken within while outputting packets in received intra-flow order but not necessarily inter-flow order
JP2009177256A (ja) パケットスイッチ装置およびパケットスイッチ方法
US20020136229A1 (en) Non-blocking crossbar and method of operation thereof
CN115473862A (zh) 避免交换芯片组播包队头阻塞的方法及系统
KR20030079454A (ko) 패킷 스위치 시스템의 입력 제어장치 및 방법
Moss An egress queue manager for 8 x 100 Mbps and 1 x 1 Gbps ethernet switch port controllers
Khani et al. A Configurable Packet Switch Core

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

Payment date: 20130227

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20140227

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee