KR100378372B1 - Apparatus and method for packet switching in data network - Google Patents

Apparatus and method for packet switching in data network Download PDF

Info

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

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

본 발명은 데이터 네트워크에서 패킷 스위치 장치에 있어서, 패킷 송/수신 명령 및 데이터 패킷의 입/출력을 담당하는 복수개의 포트들과, 상기 패킷 송/수신 명령에 대응하여 그룹별로 세분화된 정보 리소스들을 억세스하고 해당 데이터 패킷을 패킷 메모리에 저장하거나 또는 상기 패킷 메모리에 저장된 해당 데이터 패킷을 해당 포트로 전송하는 복수개의 송/수신 제어부들과, 패킷 스위칭에 필요한 정보들을 그룹별로 나누어 각각 저장하며 상기 복수개의 송/수신 제어부들에게 저장된 정보를 제공하는 복수개의 정보 리소스들과, 상기 각 정보 리소스들과 연결되며 상기 송/수신 제어부들의 억세스를 스케줄링하는 복수개의 정보 리소스 스케줄러들로 이루어짐을 특징으로 한다.The present invention provides a packet switch device in a data network, comprising: accessing a plurality of ports that are responsible for a packet send / receive command and data packet input / output, and information resources subdivided into groups in correspondence to the packet send / receive command And a plurality of transmit / receive controllers for storing the corresponding data packet in the packet memory or transmitting the corresponding data packet stored in the packet memory to the corresponding port, and storing information necessary for packet switching in groups, respectively, and storing the plurality of transmissions. And a plurality of information resources that provide stored information to the reception control units, and a plurality of information resource schedulers connected to the respective information resources and scheduling access of the transmission / reception control units.

Description

데이터 네트워크에서 패킷 스위치 장치 및 방법{APPARATUS AND METHOD FOR PACKET SWITCHING IN DATA NETWORK}Packet switch device and method in data network {APPARATUS AND METHOD FOR PACKET SWITCHING IN DATA NETWORK}

본 발명은 데이터 네트워크에서 패킷 스위치 시스템에 관한 것으로, 특히 병렬 처리 패킷 스위치 장치 및 방법에 관한 것이다.The present invention relates to a packet switch system in a data network, and more particularly, to a parallel processing packet switch apparatus and method.

점-대-점(Point To Point) 네트워크를 제외한 모든 형태의 네트워크에는 데이터를 집중하였다가 다시 분산되게 하는 디바이스(Device)가 존재한다. 그 가장 좋은 예는 스위치와 라우터(Router)라고 할 수가 있다. 상기 디바이스에는 두 개 이상의 포트(Ports)들이 존재하는 경우가 일반적이다. 그리고 상기 디바이스는 각 포트들을 통하여 데이터를 입력하고 필요한 처리를 수행하고 난 후, 다시 하나 혹은 두 개 이상의 포트들을 통하여 상기 처리된 데이터를 출력한다. 이때, 상기 처리과정에서 필연적으로 폭주(Congestion)가 발생하여 데이터 전송의 지연(Latency)이 생기게 된다. 여러 가지 이유로 인하여 폭주가 발생하게 되는데, 그 중에서 가장 중요한 부분을 차지하는 것은 데이터 처리(Processing)에 소요되는 시간을 들수가 있다.In all types of networks except point-to-point networks, there is a device that concentrates and re-distributes data. The best example is a switch and a router. Typically, there are two or more ports in the device. The device inputs data through each port and performs necessary processing, and then outputs the processed data through one or more ports. At this time, congestion occurs inevitably in the process, resulting in latency of data transmission. Congestion can occur for a variety of reasons, the most important of which is the time spent on data processing.

한편, 패킷 스위치 시스템에서 종래의 패킷 처리 과정은 하기와 같다. 먼저 제1과정에서 어떤 한 개의 포트가 데이터 패킷을 입력한다. 그리고 제2과정에서 선입-선출부(First-In-First-Out:이하 FIFO라 칭한다.)는 상기 입력 데이터 패킷을 일시 저장한다. 그리고 제3과정에서 상기 입력된 데이터 패킷은 먼저 입력된 데이터 패킷들이 처리되고 있는 동안 대기한다. 그리고 제4과정에서 데이터 패킷 처리부는 FIFO에 저장된 상태에서 상기 입력 데이터 패킷에 대하여 필요한 데이터 처리를 수행한다. 이때, 상기 데이터 처리과정은 복잡한 판단과정을 요하게 되며, 상기 판단은 판단주체 (Decision Maker, Controller)와 정보원(Information Resource)간의 정보이동(Information Transfer)을 필요로 하게 된다. 그리고 상기 패킷의 처리가 끝나면, 제5과정에서 데이터 패킷 처리부는 해당 출력포트에 먼저 처리된 다른 패킷들이 존재하는지를 검사한다. 그리고 상기 선처리 패킷이 존재하면, 제6과정에서 데이터 패킷 처리부는 상기 처리된 패킷을 버퍼에 저장한다. 그리고 데이터 패킷 처리부는 선처리 패킷이 모두 출력되면, 제7과정에서 상기 버퍼에 저장된 처리 패킷을 상기 출력포트로 전송한다.Meanwhile, in the packet switch system, the conventional packet processing process is as follows. First, in the first step, a single port inputs a data packet. In a second process, a first-in-first-out unit (hereinafter referred to as FIFO) temporarily stores the input data packet. In the third process, the input data packet waits while the first input data packet is being processed. In the fourth process, the data packet processor performs necessary data processing on the input data packet while stored in the FIFO. In this case, the data processing process requires a complicated determination process, and the determination requires information transfer between a decision maker (Controller) and an information resource. After the processing of the packet, the data packet processing unit checks whether there are other packets that have been processed at the corresponding output port. If the preprocessing packet is present, the data packet processor stores the processed packet in a buffer in a sixth step. When all of the preprocessing packets are output, the data packet processor transmits the processing packets stored in the buffer to the output port in step 7.

한편, 상기 제3과정에서 볼 때, 종래의 데이터 패킷 처리 과정은 단일의 데이터 패킷 처리부가 복수개의 포트들을 제어하며 단순하게 한 번에 한 개의 패킷에 대해서만 처리를 하였기 때문에, 간단하고 구현(Implementation)이 쉬운 장점이 있다.Meanwhile, in the third process, the conventional data packet processing process is simple and implemented since a single data packet processing unit controls a plurality of ports and simply processes only one packet at a time. This has an easy advantage.

그러나 상기의 방식은 데이터 처리 시간에 비해 입력되는 패킷의 개수가 많아지면(실제 대부분의 패킷 스위치와 라우터들이 이러한 특성을 가지고 있다.) 실제의 데이터 라인은 아이들(Idle)하고 있으나 즉, 데이터를 전송하고 있지 않음에도 불구하고 데이터 패킷 처리부 내부에서 패킷의 딜레이(Delay)가 발생하는 단점이 존재한다. 특히, 심하게는 패킷을 잃어버리는(loss) 경우까지 발생하게 된다.However, in the above method, when the number of input packets increases compared to the data processing time (many packet switches and routers have these characteristics), the actual data line is idle, i.e., transmits data. Despite this, there is a disadvantage in that a packet delay occurs in the data packet processor. In particular, it will occur even if the packet is lost (loss).

한편, 패킷 처리(Processing)에 있어서 크게 두 가지 요소가 고려될 수가 있다. 즉, 전체 프로세싱 절차를 전반적으로 제어하고 판단하는 제어부와, 상기 제어부가 판단을 하는데 필요한 정보를 저장 및 제공하는 정보 리소스(Information Resource)이다. 그리고 대개의 경우 상기 정보 리소스는 레지스터 및 메모리 형태가 된다. 그런데 이때, 패킷 스위치 시스템에서 상기한 종래의 패킷 데이터 처리 방식이 '한 번에 한 개의 패킷에 대해서만 처리'하는 궁극적인 이유는 상기 리소스가 단일의 메모리로 구현되어 있기 때문이다.On the other hand, two factors can be considered in packet processing. That is, the control unit controls and judges the entire processing procedure as a whole, and an information resource for storing and providing information necessary for the control unit to make the determination. And in most cases the information resources are in the form of registers and memory. However, the reason why the conventional packet data processing method in the packet switch system "processes only one packet at a time" is that the resource is implemented as a single memory.

따라서 종래의 문제점을 해결하기 위해서는 리소스에 저장되어야 할 정보들이 그룹별로 세분화되어 서로 다른 리소스에 저장되며 기존의 한 개이었던 송/수신 제어부가 복수 개(예: 상기 그룹별 서로 다른 리소스들의 개수 이상)로 할당되어, 입력되는 데이터 패킷에 대한 처리 오버헤드를 줄이고 빠르게 패킷을 처리할 수 있는 방안이 필요하게 된다. 또한 상기 각 송/수신 제어부들은 포트별로 할당될 수가 있다. 그리고 상기 각 송/수신 제어부들은 동시에 상기 그룹별 복수개의 정보 리소스들을 접근하여 제어 오버헤드를 줄이고 빠르게 패킷을 처리할 수가 있다.Therefore, in order to solve the conventional problem, information to be stored in a resource is divided into groups and stored in different resources, and there are a plurality of transmission / receiving controllers (for example, more than the number of different resources for each group). In order to reduce the processing overhead for incoming data packets, a method for quickly processing a packet is required. In addition, each transmission / reception control unit may be assigned to each port. In addition, the transmission / reception controllers may simultaneously access a plurality of information resources for each group, thereby reducing control overhead and processing packets quickly.

한편, 복수개의 송/수신 제어부들은 복수개의 정보 리소스들을 공유할 수 있어야 한다. 따라서 중재부(Arbiter) 또는 스케줄러(Scheduler)는 각 송/수신 제어부들이 한번에 하나의 리소스만을 억세스 하도록 해야한다. 만약 어떤 특정한 정보 리소스에 송/수신 제어부들의 억세스가 과도하게 되면, 그룹을 다시 조정하여 억세스 로드가 밸런스(Balance)를 유지하도록 해야한다.Meanwhile, the plurality of transmission / reception control units should be able to share a plurality of information resources. Therefore, the Arbiter or Scheduler should ensure that each transmit / receive control unit accesses only one resource at a time. If the transmission / reception controllers have excessive access to a particular information resource, the group should be readjusted so that the access load is balanced.

도 1은 종래의 패킷 스위치 장치의 일 예를 도시한다.1 shows an example of a conventional packet switch device.

호스트(100)는 패킷 스위치 장치의 전반적인 동작을 제어한다. 그리고 호스트(100)는 가장 높은 계층(Layer)을 담당하며, 패킷 스위치 장치 자체에 입력되는 명령을 수행한다. 제1 MAC 포트(110) 내지 제n MAC 포트(1n0)는 다른 패킷 스위치 장치 또는 라우터 또는 PC에 연결될 수가 있으며, 표준 MAC 제어를 수행하여 데이터 패킷 송/수신 명령을 송/수신 제어부(120)로 출력한다. 데이터 교환부(130)는 송/수신 제어부(120)의 제어에 의해, 상기 호스트(100), 제1 MAC 포트(110) 내지 제n MAC 포트(1n0)와 패킷 메모리(150)간의 데이터와 제어신호의 경로를 설정한다. 데이터 교환부(130)는 다중화/역다중화기로 구현될 수가 있다.The host 100 controls the overall operation of the packet switch device. The host 100 is responsible for the highest layer and performs a command input to the packet switch device itself. The first MAC port 110 to the n-th MAC port 1n0 may be connected to another packet switch device, a router, or a PC, and perform standard MAC control to transmit / receive a data packet transmission / reception command to the transmission / reception control unit 120. Output The data exchange unit 130 controls data and control between the host 100, the first MAC port 110 to the nth MAC port 1n0, and the packet memory 150 under the control of the transmission / reception control unit 120. Set the signal path. The data exchange unit 130 may be implemented as a multiplexer / demultiplexer.

서치 메모리(140)는 수신된 패킷의 목적지 어드레스에 해당하는 출력 MAC 포트를 판단하는 정보를 저장하며, 등록되어 있는 맥 어드레스를 찾을 수 있게 한다. 그리고 패킷 메모리(150)는 어드레스 테이블(152), 포트 테이블(154) 및 패킷 디스크립터(Descriptor)(156)와 같은 복수개의 정보 리소스들을 구비한다. 또한 패킷 메모리(150)는 입력되는 데이터 패킷을 저장한다. 어드레스 테이블(152)은 맥 어드레스에 대한 정보를 저장하며, 포트 테이블(154)은 각 MAC 포트들의 상태정보와 인에이블 정보, 수신 동작 완료 정보등을 저장한다. 그리고 패킷 디스크립터(156)는 패킷 메모리(150)에 저장된 각 패킷들의 정보(예: 패킷 연결정보)를 저장한다.The search memory 140 stores information for determining an output MAC port corresponding to the destination address of the received packet, and enables the search of the registered MAC address. The packet memory 150 includes a plurality of information resources such as an address table 152, a port table 154, and a packet descriptor 156. In addition, the packet memory 150 stores an input data packet. The address table 152 stores information on the MAC address, and the port table 154 stores status information, enable information, reception operation completion information, and the like of each MAC port. The packet descriptor 156 stores information (eg, packet connection information) of each packet stored in the packet memory 150.

송/수신 제어부(120)는 상기 패킷 송/수신 명령에 따라 제1 MAC 포트(110) 내지 제n MAC 포트(1n0)를 통하여 입/출력되는 패킷의 송/수신 제어를 수행한다. 즉, 송/수신 제어부(120)는 수신된 데이터 패킷을 일시 저장하며, 서치 메모리(140)를 억세스하여 수신 패킷의 헤더(Header)의 목적지 어드레스가 등록되어 있는 어드레스인지를 검사하고, 등록되어 있는 맥 어드레스 정보가 어드레스 테이블(152)의 어디에 저장되어 있는지를 알아낸다. 그리고 송/수신 제어부(120)는 상기 수신 패킷이 출력될 MAC 포트를 결정한다.The transmission / reception control unit 120 performs transmission / reception control of packets input / output through the first MAC port 110 to the nth MAC port 1n0 according to the packet transmission / reception command. That is, the transmission / reception control unit 120 temporarily stores the received data packet, accesses the search memory 140 and checks whether the destination address of the header of the received packet is an address registered therein. Find out where the MAC address information is stored in the address table 152. The transmission / reception control unit 120 determines a MAC port to which the received packet is output.

그리고 송/수신 제어부(120)는 어드레스 테이블(152), 포트 테이블(154) 및 패킷 디스크립터(156)를 억세스하여, 수신되는 데이터 패킷을 패킷 메모리(150)에 저장한다. 그리고 패킷 송신시, 송/수신 제어부(120)는 어드레스 테이블(152), 포트 테이블(154) 및 패킷 디스크립터(156)를 억세스 하여, 패킷 메모리(150)에 저장된 데이터 패킷을 해당 출력포트를 통하여 전송한다.The transmission / reception control unit 120 accesses the address table 152, the port table 154, and the packet descriptor 156, and stores the received data packet in the packet memory 150. At the time of packet transmission, the transmission / reception control unit 120 accesses the address table 152, the port table 154, and the packet descriptor 156, and transmits the data packet stored in the packet memory 150 through the corresponding output port. do.

도 2는 종래의 패킷 스위치 장치의 다른 일 예를 도시한다.2 shows another example of a conventional packet switch device.

버스 인터페이스(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를 구비하며, 서브 패킷들을 일시적으로 저장한다.The bus interface 212 inputs a data packet from the host bus 210 and outputs the data packet to the first MAC port 211 to the nth MAC port 21n, and also outputs a data packet transmitted from the MAC ports to the host bus ( 210). The first MAC port 211 to n-th MAC port 21n perform standard MAC control and output a data packet transmission / reception command to the transmission / reception control unit 120. The MAC port interface 238 performs an interface operation between the MAC ports and the transmission / reception control unit 228. In addition, the MAC port interface 238 has a transmit / receive FIFO for each MAC port, and temporarily stores subpackets.

다중화부(Multiplexer)(224)는 MAC 포트 인터페이스(238)로부터 출력되는 포트별 데이터 패킷들 중에서 해당 데이터 패킷을 선택하여 송/수신 제어부(228)로 출력한다. 역다중화부(Demultiplexer)(226)는 송/수신 제어부(228)로부터 출력되는 데이터 패킷을 역다중화하여 해당 포트로 출력한다.The multiplexer 224 selects a corresponding data packet from among data packets for each port output from the MAC port interface 238 and outputs the data packet to the transmission / reception control unit 228. The demultiplexer 226 demultiplexes the data packet output from the transmit / receive control unit 228 and outputs it to the corresponding port.

서치 메모리(236)는 수신된 패킷의 목적지 어드레스에 해당하는 출력 MAC 포트를 판단하는 정보를 저장한다. 그리고 패킷 메모리(234)는 어드레스 테이블, 포트 테이블 및 패킷 디스크립터와 같은 복수개의 정보 리소스들을 구비한다. 그리고 패킷 메모리(234)는 입력되는 데이터 패킷을 저장한다.The search memory 236 stores information for determining the output MAC port corresponding to the destination address of the received packet. The packet memory 234 includes a plurality of information resources such as an address table, a port table, and a packet descriptor. The packet memory 234 stores the input data packet.

송/수신 제어부(228)는 상기 패킷 송/수신 명령에 따라 제1 MAC 포트(211) 내지 제n MAC 포트(21n)를 통하여 입/출력되는 패킷의 송/수신 제어를 수행한다. 즉, 송/수신 제어부(228)는 수신된 데이터 패킷을 일시 저장하며, 서치 메모리 (236)를 억세스하여 수신 패킷의 헤더(Header)의 목적지 어드레스가 등록되어 있는 어드레스인지를 검사하고, 등록되어 있는 맥 어드레스 정보가 패킷 메모리(234)에 구비되는 어드레스 테이블(도시하지 않음.)의 어디에 저장되어 있는지를 알아낸다. 그리고 송/수신 제어부(228)는 상기 수신 패킷이 출력될 MAC 포트를 결정한다.The transmission / reception control unit 228 performs transmission / reception control of packets input / output through the first MAC port 211 to the nth MAC port 21n according to the packet transmission / reception command. That is, the transmission / reception control section 228 temporarily stores the received data packet, accesses the search memory 236, checks whether the destination address of the header of the reception packet is a registered address, and It is found out where the MAC address information is stored in the address table (not shown) provided in the packet memory 234. The transmission / reception control unit 228 determines the MAC port to which the received packet is output.

그리고 송/수신 제어부(228)는 패킷 메모리(234)에 구비되는 어드레스 테이블, 포트 테이블 및 패킷 디스크립터(도시하지 않음.)를 억세스하여, 수신되는 데이터 패킷을 패킷 메모리(234)에 저장한다. 그리고 패킷 송신시, 송/수신 제어부(228)는 상기 어드레스 테이블, 포트 테이블 및 패킷 디스크립터를 억세스하여, 패킷 메모리(234)에 저장된 데이터 패킷을 해당 출력포트를 통하여 전송한다.The transmission / reception control unit 228 accesses an address table, a port table, and a packet descriptor (not shown) included in the packet memory 234 and stores the received data packet in the packet memory 234. At the time of packet transmission, the transmission / reception control unit 228 accesses the address table, the port table, and the packet descriptor, and transmits the data packet stored in the packet memory 234 through the corresponding output port.

상기 도 1 내지 도 2의 설명에서, 종래의 패킷 스위치 장치는 단일의 송/수신 제어부가 복수개의 포트들로부터 데이터 패킷 송/수신 명령을 받고 있으며, 어드레스 테이블, 포트 테이블 등과 같은 종류별 정보 리소스들이 단일의 패킷 메모리에 저장되어 있었기 때문에, 한번에 하나의 패킷만을 처리하였다는 것을 알 수가 있다. 따라서 실제의 데이터 라인은 아이들(Idle)하고 있으나 데이터 패킷 처리 과정에서 패킷의 딜레이가 발생하는 단점이 존재한다. 예를 들어, 단일의 송/수신 제어부가 어떤 포트로부터의 명령을 수행하고 있는 동안 다른 어떤 포트로부터의 패킷은 상기 명령에 대한 수행이 완료될 때까지 대기해야 할 것이다.In the description of FIGS. 1 and 2, in the conventional packet switch apparatus, a single transmit / receive control unit receives a data packet transmit / receive command from a plurality of ports, and each type of information resource such as an address table, a port table, etc. Since it was stored in the packet memory of the system, it can be seen that only one packet was processed at a time. Therefore, although the actual data line is idle, there is a disadvantage in that packet delay occurs during data packet processing. For example, while a single transmit / receive control unit is executing a command from a port, packets from any other port may have to wait until execution of the command is complete.

도 3은 종래의 패킷 스위치 시스템에서 수신 제어를 도시한 상태 흐름도이다. 이하 상기 도 1을 참조하여 설명한다.3 is a state flowchart showing reception control in a conventional packet switch system. A description with reference to FIG. 1 is as follows.

먼저, 여기서 수신 제어(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)에 이르기까지 다수의 제어 상태들이 있음을 알 수가 있다.First, the Rx control may be referred to as a series of operations based on information obtained after the search operation of the transmission / reception control unit 120 is finished. That is, FIG. 3 refers to a series of controls in which the transmission / reception control unit 120 receives a data packet from the first MAC port 110 to the nth MAC port 1n0 and stores the data packet in the packet memory 150. In addition, FIG. 3 is a state transition diagram which is the simplest representation except for the case of processing various errors, address mismatch, filtering, and the like. In the states of FIG. 3, the time taken for processing a 64 byte packet is indicated when operating at 50 MHz. As shown, it can be seen that there are a number of control states ranging from the idle state 300 to the Xfer_pkt state 332 which sends the actual data packet to the packet memory 150.

하기 <표 1>은 상기 도 3의 종래의 패킷 스위칭 방법의 수신 제어 시에, 각 상태에서 수행되는 동작을 나타낸다. 또한 하기 <표 1>은 각 상태에서 송/수신 제어부(120)가 데이터 교환부(130)를 통하여 패킷 메모리(150), 어드레스 테이블 (152), 포트 테이블(154) 중에서 어느 것을 억세스 하는지를 나타내며, 64byte 패킷 수신 동작의 경우 50MHz로 동작했을 때 각 상태별로 데이터 처리 시간을 표시하고 있다.Table 1 below shows operations performed in each state in the reception control of the conventional packet switching method of FIG. In addition, Table 1 below shows which of the packet memory 150, the address table 152, and the port table 154 are accessed by the transmit / receive control unit 120 through the data exchange unit 130 in each state. In the case of the operation of receiving a 64 byte packet, the data processing time is displayed for each state when operating at 50 MHz.

상 태condition 동 작Action 리소스 종류Resource type 처리시간Processing time get Rx_infoget Rx_info Read receive port table informationRead receive port table information Port tablePort table 420ns420ns Src lookupSrc lookup Read address table(source addr)Read address table (source addr) Addr tableAddr table 300ns300ns Dst lookupDst lookup Read address table(destination addr)Read address table (destination addr) Addr tableAddr table 320ns320ns
get pkt count

get pkt count
Read ATM port table packet counts
:may be skipped in Ethernet operation
Read ATM port table packet counts
may be skipped in Ethernet operation

Port table

Port table

40ns

40ns
deQ EBdeQ EB Dequeue an empty bufferDequeue an empty buffer Port tablePort table 220ns220ns init descinit desc Initialize packet descriptorInitialize packet descriptor Packet memPacket mem 200ns200ns get cur_addrget cur_addr Determine addr at which to write dataDetermine addr at which to write data Port tablePort table 20ns20ns get pkt lengthget pkt length Read various information from
packet desc
Read various information from
packet desc
Packet memPacket mem 60ns60ns
update src ATupdate src AT Update statistics in sourceUpdate statistics in source Addr tableAddr table 80ns80ns update dst ATupdate dst AT Update statistics in destination address tableUpdate statistics in destination address table Addr tableAddr table 120ns120 ns Xfer pktXfer pkt Transfer packet(subapcket)Transfer packet (subapcket) Packet memPacket mem 460ns460 ns DeQ RxDeQ Rx Dequeue Rx bufferDequeue Rx buffer Port tablePort table 40ns40ns EnQ TxEnQ Tx Enqueue Tx bufferEnqueue Tx buffer Port tablePort table 80ns80ns

상기 <표 1>에서 알 수 있는 바와 같이, 종래의 패킷 스위칭 방식은 송/수신 제어부(120)가 실제로 패킷 메모리(150)에 데이터 패킷을 저장하는 동작 외에, 포트 테이블(154), 어드레스 테이블(152)을 억세스하여 정보를 주고 받는 동작에 많은 시간을 소요하고 있다는 것을 알 수가 있다.As can be seen from Table 1, in the conventional packet switching scheme, in addition to the operation of the transmission / reception control unit 120 actually storing the data packet in the packet memory 150, the port table 154 and the address table ( It can be seen that it takes a lot of time to access and send information by accessing 152).

그리고 수신 동작 사이클(Cycle)에서 각 상태들이 포트 테이블(154), 어드레스 테이블(152) 및 패킷 메모리(150)를 억세스 하는데 소요되는 시간을 정리해보면 하기와 같다. 즉, 상기 도 1의 종래의 패킷 스위치 장치를 실제로 구현하여 50MHz에서 동작 시켰을 때 64바이트 데이터 패킷 수신 동작의 경우, 포트 테이블(154)을 억세스하는데 요하는 시간은 총 820nS 이며, 패킷 메모리(150)를 억세스 하는데 요하는 시간은 총 720nS이며, 어드레스 테이블(152)을 억세스 하는데 요하는 시간은 총 820nS 가 된다.In addition, the states of the states in the reception operation cycle (Cycle) to access the port table 154, the address table 152 and the packet memory 150 are summarized as follows. That is, when the conventional packet switch device of FIG. 1 is actually implemented and operated at 50 MHz, the time required for accessing the port table 154 is 820 nS in total in the case of a 64-byte data packet reception operation, and the packet memory 150 The time required for accessing the data is 720 nS in total, and the time required for accessing the address table 152 is 820 nS in total.

따라서 예를 들어, 송/수신 제어부(120)가 제1 MAC 포트(110) 내지 제n MAC 포트(1n0)별로 독립적으로 배치되고 각 MAC 포트별 포트 테이블들이 상기 각 포트별 송/수신 제어부들에게 분산 배치된다면, 포트 테이블 억세스 시간이 현저하게 줄어들게 될 것이다. 따라서 전체 수신 제어 사이클에 요하는 시간이 820nS 정도(어드레스 테이블(152) 억세스 시간을 기준함.)로 줄어들 것이다.Thus, for example, the transmit / receive control unit 120 is independently disposed for each of the first MAC port 110 to the n-th MAC port 1n0, and port tables for each MAC port are transmitted to the transmit / receive control units for each port. If distributed, port table access times will be significantly reduced. Therefore, the time required for the entire reception control cycle will be reduced to about 820 nS (based on the access time of the address table 152).

그리고 어드레스 테이블(152)이 패킷 메모리(150)로부터 분리되고, 상기 각 포트별 송/수신 제어부들이 동시에 어드레스 테이블(152)과 패킷 메모리(150) 중에서 필요한 것을 억세스 한다면, 서로 다른 포트 송/수신 제어부들이 어드레스 테이블(152)과 패킷 메모리(150)를 동시에 억세스 할 수 있다. 따라서 패킷 전송의 딜레이가 줄어들 수가 있으며, 효율적인 데이터 전송이 가능하게 될 것이다. 특히, 어드레스 테이블(152)과 상기 각 포트별 송/수신 제어부들이 동일한 칩에 내장되며 어드레스 테이블(152)에 대한 억세스가 32Bit 이상이 보장된다면 상기 어드레스 테이블(152)을 억세스 하는데 요하는 시간이 820nS 이하가 될 것이다. 따라서 전체수신 제어 사이클 중에서 Bottleneck은 패킷 메모리 억세스에 요하는 시간(720nS)이 될 것이다. 즉, 수신 제어 사이클에 요하는 시간이 720nS 이하로 줄어들게 될 것이다.If the address table 152 is separated from the packet memory 150 and the transmission / reception control units for each port simultaneously access the necessary ones from the address table 152 and the packet memory 150, different port transmission / reception control units are provided. Can access the address table 152 and the packet memory 150 at the same time. Therefore, the delay of packet transmission can be reduced and efficient data transmission will be possible. In particular, if the address table 152 and the transmit / receive control units for each port are embedded in the same chip, and access to the address table 152 is guaranteed to be 32 bit or more, the time required to access the address table 152 is 820 nS. Will be Thus, during the entire receive control cycle, Bottleneck will be 720 nS for packet memory access. In other words, the time required for the reception control cycle will be reduced to 720 nS or less.

하기 <표 2>는 상기 도 1의 종래의 패킷 스위치 장치가 송신 제어를 수행하는 경우의 각 상태에서 수행되는 동작을 나타낸다.Table 2 below shows operations performed in each state when the conventional packet switch apparatus of FIG. 1 performs transmission control.

IdleIdle read Port Tableread Port Table read pkt desc
read pkt desc
pkt Xferpkt Xfer update pkt descupdate pkt desc
Idle

Idle
Port TablePort table Packet descPacket desc Packet memPacket mem Pkt descPkt desc 220ns220ns 300ns300ns 540ns540ns 160ns160 ns

상기 <표 2>에서 read port table 상태는 하기와 같은 동작을 수행할 수가 있다. 즉, 송/수신 제어부(120)는 포트 테이블(154)을 억세스하여, 전송 현재 어드레스 포인터를 읽는다.(Read the transmit current address pointer.) 그리고 송/수신 제어부(120)는 현재 전송하고자 하는 패킷이 SOP(Start of Packet)인 경우, 포트 테이블(154)의 전송 바이트(Transmit byte)를 초기화하고, 패킷 디스크립터(156)를 억세스하여 패킷 데이터 포인터를 읽는다. 만약 전송하고자 하는 패킷이 멀티캐스트에 해당하면 멀티캐스트 데이터 포인터를 읽는다.In Table 2, the read port table state may perform the following operations. That is, the transmit / receive control unit 120 accesses the port table 154 and reads the transmit current address pointer. The transmit / receive control unit 120 transmits a packet to be transmitted at present. In the case of a start of packet (SOP), the transmit byte of the port table 154 is initialized, and the packet descriptor 156 is accessed to read a packet data pointer. If the packet to be transmitted corresponds to multicast, the multicast data pointer is read.

그리고 상기 <표 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'이면, 해당 포트 큐를 비활성화 시킨다.In Table 2, the Xfer_pkt state may perform the following operations. That is, the transmission / reception control unit 120 accesses the packet memory 150 to read the subpacket to be transmitted. The transmission / reception control unit 120 accesses the port table 154 to update the transmission byte. When the packet to be transmitted is EOP (End of Packet), the transmit / receive control unit 120 de-queues a transmit buffer provided in the packet memory 150, and an empty buffer ( Enqueue an Empty Buffer. The transmission / reception control unit 120 decreases the current packet count. If the current packet count is '0', the transmit / receive control unit 120 deactivates the corresponding port queue.

한편, 상기 도 1의 패킷 스위치 장치가 송신 제어를 수행하는 경우, 제어 오버헤드(Control Overhead)가 실제 데이터 패킷을 송신하는 동작에 비하여 그리 크지는 않다. 그러나 수신 제어 시와 마찬가지로 제어동작(Control Action)과 전송동작(Transfer Action)이 분리된다면, 데이터 패킷의 처리에 요하는 시간이 줄어들 수가 있을 것이다. 예를 들어, 패킷 디스크립터(156)가 각 포트별 송/수신 제어부의 송신 블록에 구비된다면 전체 송신 사이클에 요하는 시간이 줄어들 수가 있을 것이다.On the other hand, when the packet switch apparatus of FIG. 1 performs transmission control, the control overhead is not so large as compared with the operation of transmitting the actual data packet. However, if the control action and the transfer action are separated as in the reception control, the time required for processing the data packet may be reduced. For example, if the packet descriptor 156 is provided in the transmission block of the transmission / reception control unit for each port, the time required for the entire transmission cycle may be reduced.

도 4는 상기 도 2의 종래의 패킷 스위치 장치에서 맥 인터페이스와 송/수신 제어부가 패킷을 주고 받는 경우의 타이밍도의 일 예를 도시한다.4 illustrates an example of a timing diagram when a MAC interface and a transmission / reception control unit exchange packets in the conventional packet switch device of FIG. 2.

상기 도 4는 송/수신되는 각 패킷들의 크기가 일정한 64 바이트인 경우의 타이밍도 이다. 따라서 하나의 패킷이 SOP인 동시에 EOP가 된다. 또한 상기 도 4의 동작 주파수는 50MHz이고, 클럭 주파수는 1/20nS 이다.4 is a timing diagram when the size of each packet transmitted / received is a constant 64 bytes. Therefore, one packet is both an SOP and an EOP. In addition, the operating frequency of FIG. 4 is 50MHz, and the clock frequency is 1 / 20nS.

송/수신 제어부(228)는 데이터 수신 상태(424)에서 미리 서치가 된 소정 MAC 포트로부터의 패킷을 처리한다. 그리고 서치송신상태(426)에서는 다음에 처리해야할, 예를 들어 상기 MAC 포트가 아닌 다른 MAC 포트로부터 출력된, 패킷에 대한 서치 동작과 현재 송신해야할 패킷을 해당 MAC 포트로 송신하는 동작을 수행한다. 그리고 송/수신 제어부(228)는 상기 서치송신상태(426)가 완료되면, 송신상태(428)로 진입하여 패킷을 송신하는 동작을 수행한다. 그리고 송신상태(428)가 완료되면 패킷 처리의 한 사이클이 끝난다. 이때, 데이터 수신 상태(424)의 주기는 2480nS이고, 서치송신상태(426)와 송신상태(428)의 주기를 합친 시간은 1520nS이다.The transmit / receive control unit 228 processes a packet from a predetermined MAC port previously searched in the data reception state 424. In the search transmission state 426, a search operation for a packet output from a MAC port other than the MAC port to be processed next, and a packet to be transmitted currently are transmitted to the corresponding MAC port. When the search transmission state 426 is completed, the transmission / reception control unit 228 enters the transmission state 428 and transmits a packet. When the transmission state 428 is completed, one cycle of packet processing ends. At this time, the period of the data reception state 424 is 2480 nS, and the time of combining the periods of the search transmission state 426 and the transmission state 428 is 1520 nS.

상기 도 4에서, 수신 제어 오버헤드(Rx Control Overhead)는 하기 <수학식 1>로 표현할 수가 있다.In FIG. 4, the Rx control overhead may be expressed by Equation 1 below.

여기서 상기 '2480'은 데이터 수신 상태(424)의 주기를 나타내고, 상기 '320'은 송/수신 제어부(228)가 해당 MAC 포트로부터 실제 수신 데이터 패킷을 패킷 메모리(150)에 저장하는데 걸리는 시간을 의미한다.Here, '2480' represents a period of the data reception state 424, and '320' represents a time taken by the transmit / receive control unit 228 to store the actual received data packet in the packet memory 150 from the corresponding MAC port. it means.

또한 상기 도 4에서, 송신 제어 오버헤드(Tx Control Overhead)는 하기 <수학식 2>로 표현할 수가 있다.In addition, in FIG. 4, the transmission control overhead (Tx Control Overhead) can be expressed by Equation 2 below.

여기서 상기 '1520'은 서치송신상태(426)의 주기와 송신상태(428)의 주기를 합친 시간을 나타내고, 상기 '320'은 송/수신 제어부(228)가 실제 송신 데이터 패킷을 패킷 메모리(234)로부터 해당 MAC 포트로 송신하는데 걸리는 시간을 의미한다.Here, '1520' represents the time in which the period of the search transmission state 426 and the period of the transmission state 428 are combined, and '320' indicates that the transmission / reception control unit 228 sends the actual transmission data packet to the packet memory 234. ) Means the time it takes to transmit to the corresponding MAC port.

또한 상기 도 4에서, 총 제어 오버헤드(Total Control Overhead)는 하기 <수학식 3>으로 표현할 수가 있다.In addition, in FIG. 4, the total control overhead can be expressed by Equation 3 below.

여기서, 상기 '4000'은 패킷 처리의 한 사이클 동안의 시간을 의미하며, 상기 '640'은 송/수신 제어부(228)가 패킷 메모리(234)를 억세스하여 실제 데이터 패킷을 전송하는데 요하는 시간을 의미한다.Here, '4000' refers to the time during one cycle of packet processing, and '640' refers to the time required for the transmission / reception control unit 228 to access the packet memory 234 to transmit the actual data packet. it means.

상기 <수학식 3>에서 볼 때, 상기 도 2의 종래의 패킷 스위치 장치의 패킷 크기가 64byte인 경우의 제어 오버헤드는 84%임을 알 수가 있다. 즉, 데이터 패킷을 하나 입력하고 해당 처리하여 출력하는데 사용되는 시간의 84%는 제어동작을 하는데 사용되며 나머지 16%만이 실제로 데이터를 전송하는데 사용되어 진다는 것을 알 수가 있다.In Equation 3, it can be seen that the control overhead when the packet size of the conventional packet switch device of FIG. 2 is 64 bytes is 84%. That is, 84% of the time used for inputting one data packet, processing it, and outputting it is used for a control operation. Only 16% of the time is actually used for transmitting data.

따라서, 본 발명의 목적은 데이터 네트워크에서, 제어 오버헤드를 줄여서 고속의 패킷 스위칭을 수행하는 장치를 제공함에 있다.Accordingly, an object of the present invention is to provide an apparatus for performing high speed packet switching by reducing control overhead in a data network.

그리고 본 발명의 다른 목적은 데이터 네트워크에서, 정보 리소스를 그룹별로 세분화하여 서로 다른 정보 리소스들에 저장하고 복수개의 송/수신 제어부들이 독립적으로 상기 복수개의 정보 리소스들을 억세스하여, 제어 오버헤드를 줄이고 빠르게 패킷을 처리할 수 있는 장치를 제공함에 있다.Another object of the present invention is to segment information resources into groups and store them in different information resources in a data network, and a plurality of transmit / receive controllers independently access the plurality of information resources to reduce control overhead and speed up the process. The present invention provides a device capable of processing a packet.

그리고 본 발명의 또 다른 목적은 데이터 네트워크에서, 정보 리소스를 그룹별로 세분화하여 서로 다른 정보 리소스들에 저장하고 복수개의 포트별 송/수신 제어부들이 독립적으로 상기 복수개의 정보 리소스들을 억세스하여, 제어 오버헤드를 줄이고 빠르게 패킷을 처리할 수 있는 장치를 제공함에 있다.Another object of the present invention is to subdivide information resources into groups in a data network, store them in different information resources, and transmit / receive control units for a plurality of ports independently access the plurality of information resources, thereby controlling overhead. It is to provide a device that can reduce the speed and process packets quickly.

그리고 본 발명의 또 다른 목적은 데이터 네트워크에서, 패킷 디스크립터, 포트 테이블, 링크 메모리, 어드레스 테이블 등과 같은 패킷 스위칭에 필요한 정보 리소스들을 그룹별로 세분화하고 복수개의 송/수신 제어부들이 스케줄링에 의해 상기 정보 리소스들을 병렬로 억세스 하여 고속의 패킷 스위칭을 할 수 있는 장치 및 방법을 제공함에 있다.In addition, another object of the present invention is to subdivide information resources required for packet switching, such as packet descriptor, port table, link memory, address table, etc., by group, and to transmit / receive control information by scheduling It is an object of the present invention to provide an apparatus and method capable of fast packet switching by accessing in parallel.

상기한 목적들을 달성하기 위한 본 발명은 데이터 네트워크에서 패킷 스위치 장치가, 패킷 송/수신 명령 및 데이터 패킷의 입/출력을 담당하는 복수개의 포트들과, 상기 패킷 송/수신 명령에 대응하여 그룹별로 세분화된 정보 리소스들을 억세스하고 상기 복수개의 포트들 중 해당 포트로부터의 데이터 패킷을 패킷 메모리 스케줄러의 스케줄링에 의해 패킷 메모리에 저장하거나 또는 상기 패킷 메모리 스케줄러의 스케줄링에 의해 상기 패킷 메모리에 저장된 해당 데이터 패킷을 상기 복수개의 포트들 중 해당 포트로 전송하는 복수개의 송/수신 제어부들과, 상기 복수개의 송/수신 제어부들에 의한 패킷 스위칭에 필요한 정보들을 그룹별로 나누어 각각 저장하며 상기 복수개의 송/수신 제어부들에게 상기 저장된 정보를 제공하는 복수개의 정보 리소스들과, 상기 각 정보 리소스들과 연결되며 상기 송/수신 제어부들로부터의 억세스를 스케줄링 하여 상기 정보 리소스들로부터 관리되고 있는 정보 리소르가 상기 송/수신 제어부들로 전달될수 있도록 하는 복수개의 정보 리소스 스케줄러들로 이루어짐을 특징으로 한다.The present invention for achieving the above object is a packet switch device in a data network, a plurality of ports responsible for the packet transmission / reception command and the input / output of the data packet, and group by group corresponding to the packet transmission / reception command Access the granular information resources and store the data packet from the corresponding one of the plurality of ports in the packet memory by the scheduling of the packet memory scheduler or the corresponding data packet stored in the packet memory by the scheduling of the packet memory scheduler. The plurality of transmit / receive control units transmitting to the corresponding port among the plurality of ports and the information required for packet switching by the plurality of transmit / receive control units are divided and stored for each group, respectively. A plurality of information resources for providing the stored information to the And a plurality of information resources connected to the respective information resources and scheduling access from the transmission / reception control units so that information resources managed from the information resources can be delivered to the transmission / reception control units. Characterized by consisting of schedulers.

그리고 본 발명은 데이터 네트워크에서 패킷 스위치 방법이, 복수개의 송/수신 제어부들이 그룹별로 세분화된 정보 리소스들을 억세스하기 위하여 각 정보 리소스들의 스케줄러들에게 해당 억세스 신호를 출력하는 제1단계와, 상기 각 정보 리소스별 스케줄러들이 상기 복수개의 송/수신 제어부들이 한 번에 한 개의 정보 리소스를 억세스 할 수 있도록 상기 억세스 신호들에 대하여 스케줄링을 수행하는 제2단계와, 상기 복수개의 송/수신 제어부들이 억세스 경로가 연결되면 해당 정보 리소스들을 참조하여 상기 수신 데이터 패킷을 상기 패킷 메모리에 저장하거나 상기 패킷 메모리에 저장된 데이터 패킷을 상기 복수개의 포트들 중 해당 포트로 출력하는 제3단계로 이루어짐을 특징으로 한다.According to another aspect of the present invention, there is provided a packet switch method in a data network, comprising: a first step in which a plurality of transmit / receive controllers output corresponding access signals to schedulers of respective information resources in order to access information resources divided into groups; A second step in which schedulers for each resource perform scheduling on the access signals so that the plurality of transmit / receive controllers can access one information resource at a time, and the plurality of transmit / receive controllers have access paths. When connected, the method may include storing the received data packet in the packet memory with reference to the corresponding information resources or outputting the data packet stored in the packet memory to a corresponding one of the plurality of ports.

도 1은 종래의 패킷 스위치 장치의 일 예를 도시한 도면.1 is a view showing an example of a conventional packet switch device.

도 2는 종래의 패킷 스위치 장치의 다른 일 예를 도시한 도면.2 is a view showing another example of a conventional packet switch device.

도 3은 종래의 패킷 스위치 시스템에서 수신 제어를 도시한 상태 흐름도.3 is a state flowchart showing reception control in a conventional packet switch system.

도 4는 상기 도 2의 종래의 패킷 스위치 장치에서 맥 인터페이스와 송/수신 제어부가 패킷을 주고 받는 경우의 타이밍도의 일 예.4 is an example of a timing diagram when a MAC interface and a transmission / reception control unit exchange packets in the conventional packet switch device of FIG.

도 5는 데이터 네트워크에서 본 발명의 제1실시 예에 따른 패킷 스위치 장치를 도시한 도면.5 is a diagram illustrating a packet switch device according to a first embodiment of the present invention in a data network.

도 6은 데이터 네트워크에서 본 발명의 제2실시 예에 따른 패킷 스위치 장치를 도시한 도면.6 illustrates a packet switch apparatus according to a second embodiment of the present invention in a data network.

도 7a 내지 도 7c는 본 발명의 일 실시 예에 따른 패킷 스위치 장치의 전체 수신 제어 동작의 흐름도.7A to 7C are flowcharts of an entire reception control operation of a packet switch apparatus according to an embodiment of the present invention.

도 8은 본 발명의 일 실시 예에 따른 패킷 스위치 장치의 전체 송신 제어 동작의 흐름도.8 is a flowchart of an overall transmission control operation of a packet switch apparatus according to an embodiment of the present invention.

도 9는 데이터 네트워크에서 본 발명의 제3실시 예에 따른 패킷 스위치 장치를 도시한 도면.9 illustrates a packet switch apparatus according to a third embodiment of the present invention in a data network.

도 10은 데이터 네트워크에서 본 발명의 제4실시 예에 따른 패킷 스위치 장치를 도시한 도면.10 is a diagram illustrating a packet switch device according to a fourth embodiment of the present invention in a data network.

도 11은 데이터 네트워크에서 본 발명의 제5실시 예에 따른 패킷 스위치 장치를 도시한 도면.11 illustrates a packet switch apparatus according to a fifth embodiment of the present invention in a data network.

이하 본 발명의 바람직한 실시 예를 첨부된 도면들을 참조하여 상세히 설명한다. 또한, 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description of the present invention, detailed descriptions of related well-known functions or configurations are omitted when it is determined that the detailed description may unnecessarily obscure the subject matter of the present invention.

도 5는 데이터 네트워크에서 본 발명의 제1실시 예에 따른 패킷 스위치 장치를 도시한다.5 illustrates a packet switch apparatus according to a first embodiment of the present invention in a data network.

제1 MAC 포트(512) 내지 제n MAC 포트(5n2)는 각각 다른 패킷 스위치 장치 또는 라우터 또는 PC에 연결될 수가 있다. 그리고 제1 MAC 포트(512) 내지 제n MAC 포트(5n2)는 표준 MAC 제어를 수행하며, 해당 패킷 송/수신 명령을 각각 연결된 제1포트 송/수신 제어부(516) 내지 제n포트 송/수신 제어부(5n6)로 출력한다. 그리고 상기 MAC 포트들은 수신되는 데이터 패킷을 각각 연결된 송/수신 제어부들로 전송하며, 해당 송/수신 제어부로부터의 데이터 패킷을 대응되는 프로토콜 제어부로 출력한다. 상기 프로토콜 제어부는 다른 패킷 스위치 장치 또는 라우터 또는 PC에구비될 수가 있다.Each of the first MAC port 512 to the nth MAC port 5n2 may be connected to another packet switch device or a router or a PC. In addition, the first MAC port 512 to the n-th MAC port 5n2 performs standard MAC control, and the first port transmit / receive control unit 516 to n-th port transmit / receive connected to the corresponding packet transmit / receive command, respectively. Output to control part 5n6. The MAC ports transmit the received data packet to the connected transmit / receive control units, respectively, and output the data packet from the corresponding transmit / receive control unit to the corresponding protocol control unit. The protocol control unit may be provided in another packet switch device or router or PC.

제1포트 송/수신 제어부(516) 내지 제n포트 송/수신 제어부(5n6)는 연결된 해당 MAC 포트로부터 출력되는 패킷 송/수신 명령에 따라, 패킷의 송/수신 제어를 수행한다.The first port transmit / receive control unit 516 to the nth port transmit / receive control unit 5n6 perform packet transmit / receive control according to a packet transmit / receive command output from the connected MAC port.

그리고 제1데이터 교환부(518) 내지 제n데이터 교환부(5n8)는 각각 해당되는 포트 송/수신 제어부의 제어에 의해, 데이터 패킷과 제어신호의 경로를 제공한다. 그리고 제1포트 테이블(514) 내지 제n포트 테이블(5n4)은 각각 해당하는 MAC 포트에 대한 포트정보 등을 저장하며 각 포트별로 분산 배치된다. 각 MAC 포트에 대한 정보는 다른 포트들에서 관여할 필요가 없는 독립적인 것이다. 상기 도 5에서 제1포트 테이블(514) 내지 제n포트 테이블(5n4)은 각각 해당하는 포트 송/수신 제어부에 연결된다.The first data exchanger 518 to the n-th data exchanger 5n8 provide a path of a data packet and a control signal, respectively, under the control of a corresponding port transmit / receive control unit. The first port table 514 to the n-th port table 5n4 store port information about corresponding MAC ports, and are distributed in respective ports. The information for each MAC port is independent of the other ports need not be involved. In FIG. 5, the first port table 514 to the nth port table 5n4 are connected to corresponding port transmission / reception control units, respectively.

제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 방식을 사용할 수가 있다.The information resources to be referred to when the first port transmit / receive control unit 516 to the nth port transmit / receive control unit 5n6 perform transmission / reception control on a packet for each corresponding port are divided into groups. According to the fifth embodiment, the first port table 514 to the nth port table 5n4, the search memory 524, the address table 534, the control queue manager 535, and the packet memory ( 544). The first port transmit / receive control unit 516 to the nth port transmit / receive control unit 5n6 independently operate the search memory 524, the address table 534, the control queue manager 535, and the packet memory 544. By accessing, the received data packet is stored in the packet memory 150 or the data packet stored in the packet memory 150 is transmitted through the corresponding output port. That is, each port transmission / reception control unit accesses four schedulers except each port table among a plurality of information resources separated from each other to perform packet reception and transmission control. And each scheduler can use Round-Robin method.

서치 스케줄러(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 동작을 수행한다.The search scheduler 520 allows the first port transmit / receive control unit 516 to the nth port transmit / receive control unit 5n6 to share the search memory 524. That is, the search scheduler 520 allows only a single port transmission / reception control unit to access the search memory 524 at any point in time. Similar to the search scheduler 520, the address table scheduler 530 and the packet memory scheduler 540 also include the first port transmit / receive control unit 516 to the nth port transmit / receive control unit 5n6, respectively. And the packet memory 544 can be shared. The control queue manager 535 allows the first port transmit / receive control unit 516 to the nth port transmit / receive control unit 5n6 to share itself. The control queue manager 535 stores pointer information of each queue for the queuing operation with respect to the packet memory 544, and updates the pointer information according to the queuing operation. The control queue manager 535 outputs pointer information to the selected port transmission / reception control unit. As a result, the port transmission / reception control unit performs a queuing operation.

한편, 상기 도 5에서 패킷 메모리(544)만을 제외한 나머지 구성들은 단일의 칩으로 구성될 수가 있다. 그리고 각 포트 송/수신 제어부들이 공유할 수 있도록, 패킷 디스크립터(546)도 패킷 메모리(544)에서 분리될 수가 있다. 또한 각 포트 송/수신 제어부들은 복수개의 태스크를 생성하여 송/수신 제어를 수행할 수가 있다.Meanwhile, in FIG. 5, the remaining components except for the packet memory 544 may be configured as a single chip. The packet descriptor 546 can also be separated from the packet memory 544 so that each port transmit / receive control unit can share it. In addition, each port transmit / receive control unit may generate a plurality of tasks to perform transmit / receive control.

이하, 상기한 도 5의 구성으로부터, 본 발명의 실시 예에 따른 패킷 스위칭 동작의 일 예를 설명하면 하기와 같다. 각 포트 송/수신 제어부들은 수신된 데이터 패킷을 일시 저장한다. 그리고 각 포트 송/수신 제어부들은 서치 스케줄러(520)를 통하여 서치 메모리(524)를 억세스 하여, 수신 패킷의 헤더(Header)의 목적지 어드레스가 등록되어 있는 어드레스인지를 검사하고, 등록되어 있는 맥 어드레스 정보가 어드레스 테이블(534)의 어디에 저장되어 있는지를 알아낸다. 그리고 각 포트 송/수신 제어부들은 상기 수신 패킷이 출력될 MAC 포트를 결정한다.Hereinafter, an example of a packet switching operation according to an embodiment of the present invention will be described with reference to the configuration of FIG. 5. Each port transmit / receive control unit temporarily stores the received data packet. Each port transmit / receive control unit accesses the search memory 524 through the search scheduler 520, checks whether the destination address of the header of the received packet is a registered address, and registers the registered MAC address information. Where is stored in the address table 534. Each port transmission / reception controller determines a MAC port to which the received packet is output.

그리고 각 포트 송/수신 제어부들은 어드레스 테이블 스케쥴러(530)를 통하여 어드레스 테이블(534)를 억세스 하여 상기 수신 패킷의 소오스 어드레스와 목적지 어드레스를 검사한다. 그리고 각 포트 송/수신 제어부들은 자신에게 직접 연결된 해당 포트 테이블을 억세스하여 포트 정보를 검사하고, 어드레스 테이블 스케줄러(530) 및 패킷 메모리 스케줄러(540)를 통하여 어드레스 테이블(534) 및 패킷 디스크립터(546)를 억세스하여 맥 어드레스 정보 및 패킷 정보를 검사한다. 그리고 각 포트 송/수신 제어부들은 상기 일시 저장된 패킷을 패킷 메모리(546)에 저장한다. 그리고 패킷 송신시, 각 포트 송/수신 제어부들은 자신에게 연결된 해당 포트 테이블을 참조하며, 어드레스 테이블 스케줄러(530) 및 패킷 메모리 스케줄러(540)를 통하여 각각 어드레스 테이블(534) 및 패킷 디스크립터(546)를 억세스하여, 패킷 메모리(544)에 저장된 데이터 패킷을 해당 출력포트를 통하여 전송한다.Each port transmit / receive control unit accesses the address table 534 through the address table scheduler 530 and checks the source address and the destination address of the received packet. Each port transmit / receive control unit accesses a corresponding port table directly connected to the terminal, and checks port information. The address table 534 and the packet descriptor 546 are provided through the address table scheduler 530 and the packet memory scheduler 540. Access the MAC address information and packet information. Each port transmission / reception control unit stores the temporarily stored packet in the packet memory 546. When transmitting a packet, each port transmit / receive control unit refers to a corresponding port table connected to itself, and through the address table scheduler 530 and the packet memory scheduler 540, respectively, the address table 534 and the packet descriptor 546 The data packet stored in the packet memory 544 is transmitted through the corresponding output port.

그리고 각 포트 송/수신 제어부들은 에러 검사 동작을 수행한다. 즉, 패킷에대하여 MAC 에러, Unknown Source Address, Address Move, Destination Address가 발생하면, 각 포트 송/수신 제어부들은 Drop 또는 Broadcast 또는 Forward to Host를 결정한다.Each port transmit / receive control unit performs an error check operation. That is, when a MAC error, Unknown Source Address, Address Move, and Destination Address occurs for a packet, each port transmit / receive control unit determines a drop, broadcast, or 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한다.Meanwhile, an example of a process in which each port transmit / receive control unit stores the data packet in the packet memory 544 and outputs the data packet stored in the packet memory 544 to the corresponding MAC port will be described below. Each port transmit / receive control unit accesses the corresponding port table when the packet is received, stores the received packet while enqueueing the Dequeue Empty Buffer and the Receive Queue with reference to the pointer information of the control queue manager 535. Each port transmit / receive control unit accesses the corresponding port table and performs a queuing operation with reference to pointer information of the control queue manager 535 to connect each packet stored in the packet memory 544 using a pointer. The information of each of the packets is stored in the packet descriptor 546. In addition, each port transmit / receive control unit enqueues an Rx queue by referring to pointer information of the control queue manager 535 when a packet currently in progress is not an EOP when a packet is received from the corresponding port. If the current packet is EOP, the reception queue is dequeued by referring to the pointer information of the control queue manager 535 and enqueued to the Tx queue provided in the packet memory 544.

그리고 패킷 송신시, 각 포트 송/수신 제어부들은 패킷 디스크립터(546)를 억세스하여 각 패킷의 정보를 참조하고, 패킷 메모리(544)에 저장된 해당 패킷을 출력포트의 MAC으로 송신한다. 이때 각 포트 송/수신 제어부들은 해당 포트 테이블을 억세스하고, 제어 큐 매니저(535)의 포인터 정보를 참조하여 Dequeue Tx Queue하고 Enqueue Empty Buffer 한다.In packet transmission, each port transmission / reception control unit accesses the packet descriptor 546 to refer to the information of each packet, and transmits the corresponding packet stored in the packet memory 544 to the MAC of the output port. At this time, each port transmit / receive control unit accesses the corresponding port table, and dequeues Tx queue and enqueue empty buffers by referring to pointer information of the control queue manager 535.

도 6은 데이터 네트워크에서 본 발명의 제2실시 예에 따른 패킷 스위치 장치를 도시한다.6 illustrates a packet switch apparatus according to a second embodiment of the present invention in a data network.

상기 도 6의 패킷 스위치 장치는 버스 인터페이스(600)를 통하여 호스트(도시하지 않음.)와 복수개의 패킷 스위치 장치들(도시하지 않음.)과 연결될 수가 있다. 그리고 상기 도 6의 패킷 스위치 장치는 버스 인터페이스(600)를 통하여 라우터나 PC에 연결될 수가 있다.The packet switch device of FIG. 6 may be connected to a host (not shown) and a plurality of packet switch devices (not shown) through the bus interface 600. 6 may be connected to a router or a PC through the bus interface 600.

제1 MAC 포트(604) 내지 제n MAC 포트(606)는 표준 MAC 제어를 수행하여 패킷 송/수신 명령을 출력한다. 그리고 상기 각 MAC 포트들은 데이터 패킷의 입/출력을 담당한다. 즉, 상기 MAC 포트들은 수신되는 데이터 패킷을 각각 연결된 송/수신 제어부들로 전송하며, 해당 송/수신 제어부로부터의 데이터 패킷을 대응되는 프로토콜 제어부로 출력한다. 그리고 상기 각 MAC 포트들은 Full Duplex 동작 또는 Half Duplex 동작을 수행할 수가 있다. 그리고 상기 각 MAC 포트들은 패킷 스위치 장치 외부에서 위치할 수가 있다.The first MAC port 604 to the n-th MAC port 606 perform standard MAC control to output a packet transmit / receive command. Each MAC port is in charge of input / output of a data packet. That is, the MAC ports transmit the received data packet to the connected transmit / receive control units, respectively, and output the data packet from the corresponding transmit / receive control unit to the corresponding protocol control unit. Each MAC port may perform a full duplex operation or a half duplex operation. Each MAC port may be located outside the packet switch device.

제1 MAC 인터페이스부(608) 내지 제n MAC 인터페이스부(614)는 각각 연결된 MAC 포트와 포트 송/수신 제어부 간의 인터페이스를 수행한다. 상기 각 MAC 인터페이스부들은 서브 패킷의 전송을 담당한다. 상기 각 MAC 인터페이스부들은 송신 FIFO와 수신 FIFO를 구비하며 각 서브 패킷들을 임시 저장한다. 그리고 상기 각 MAC 인터페이스부들은 송신 또는 수신이 활성화(Available) 되면, 연결된 해당 포트 송/수신 제어부로 패킷 송/수신 명령을 출력한다.The first MAC interface unit 608 to n-th MAC interface unit 614 respectively perform an interface between the connected MAC port and the port transmission / reception control unit. Each MAC interface unit is responsible for the transmission of subpackets. Each MAC interface unit includes a transmission FIFO and a reception FIFO and temporarily stores each subpacket. Each of the MAC interface units outputs a packet transmit / receive command to a corresponding port transmit / receive control unit when transmission or reception is enabled.

제1 포트 송/수신 제어부(620) 내지 제n 포트 송/수신 제어부(624)는 MAC 포트별로 구비될 수가 있다. 상기 각 포트 송/수신 제어부들은 제1포트 테이블(622) 내지 제n포트 테이블(626)을 구비한다. 상기 각 포트 송/수신 제어부들은 상기 패킷 송/수신 명령이 입력되면, 구비되는 포트 테이블을 억세스 하여 어드레스 서치 동작을 수행한다. 그리고 상기 각 포트 송/수신 제어부들은 패킷 메모리(642) 또는 어드레스 테이블(644) 또는 서치 메모리(646)를 억세스 하기 위하여 패킷 메모리 스케줄러(628) 또는 어드레스 테이블 스케줄러(630) 또는 서치 스케줄러(632)에게 연결(Connection) 요구 신호를 출력한다. 그리고 상기 각 포트 송/수신 제어부들은 원하는 정보 리소스들과의 연결이 완료되면, 서브 패킷 전송 동작, 각 서브 패킷에 대한 SOP 프로세싱 및 EOP 프로세싱, Enqueueing Packets, Dequeueing Packets 동작을 수행한다. 또한 상기 각 포트 송/수신 제어부들은 소오스/목적지 어드레스에 대한 통계정보를 갱신(Update Statistics)한다.The first port transmission / reception control unit 620 to the nth port transmission / reception control unit 624 may be provided for each MAC port. Each port transmission / reception controller includes a first port table 622 to an nth port table 626. Each port transmission / reception control unit performs an address search operation by accessing a port table provided when the packet transmission / reception command is input. Each of the port transmit / receive controllers transmits to the packet memory scheduler 628 or the address table scheduler 630 or the search scheduler 632 to access the packet memory 642 or the address table 644 or the search memory 646. Outputs a connection request signal. When the connection with the desired information resources is completed, the respective port transmit / receive controllers perform sub packet transmission, SOP processing and EOP processing, enqueueing packets, and dequeueing packets for each sub packet. In addition, each of the port transmit / receive controllers updates statistical information on the source / destination address (Update Statistics).

패킷 메모리 스케줄러(628)는 상기 각 포트 송/수신 제어부들과 연결된다. 그리고 어드레스 테이블 스케줄러(630)는 상기 각 포트 송/수신 제어부들로부터의 연결 요구 신호들을 스케줄링 하여, 선택된 해당 포트 송/수신 제어부와 어드레스 테이블(644)을 연결한다. 또한 본 발명의 실시 예에 따라, 패킷 메모리 스케줄러(628)는 제어 큐 매니저(634)에 구비되는 Empty Queue, 호스트 Queue '0'와 '1', Multicast Queue를 제어할 수가 있다. 또한 본 발명의 실시 예에 따라, 패킷 메모리 스케줄러(628)는 제어 큐 매니저(634)의 Rx Queue, Tx Queue등의 큐들에 대한 Enqueue 및 Dequeue 동작을 제어할 수도 있다.The packet memory scheduler 628 is connected to each of the port transmit / receive control units. The address table scheduler 630 schedules connection request signals from the respective port transmit / receive control units, and connects the selected port transmit / receive control unit with the address table 644. In addition, according to an exemplary embodiment of the present disclosure, the packet memory scheduler 628 may control an empty queue, a host queue '0' and '1', and a multicast queue provided in the control queue manager 634. In addition, according to an embodiment of the present invention, the packet memory scheduler 628 may control the Enqueue and Dequeue operations for queues such as Rx Queue and Tx Queue of the control queue manager 634.

제어 큐 매니저(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 들을 포함하게 된다.The control queue manager 634 is connected to each of the port transmit / receive control units. The control queue manager 634 schedules connection request signals from each of the port transmit / receive control units and performs enqueue and dequeue operations on queues such as an Rx queue and a Tx queue. The queue manager 634 includes an empty queue, a multicast queue, a host queue '0', '1', and an expansion queue. If a host (not shown) is attached to the bus interface 600, the expansion queue includes the host queues.

어드레스 테이블 스케줄러(630)는 상기 각 포트 송/수신 제어부들과 연결된다. 그리고 어드레스 테이블 스케줄러(630)는 상기 각 포트 송/수신 제어부들로부터의 연결 요구 신호들을 스케줄링 하여, 선택된 해당 포트 송/수신 제어부와 어드레스 테이블(644)을 연결한다.The address table scheduler 630 is connected to each of the port transmit / receive control units. The address table scheduler 630 schedules connection request signals from the respective port transmit / receive control units, and connects the selected port transmit / receive control unit with the address table 644.

또한 서치 스케줄러(632)는 상기 각 포트 송/수신 제어부들과 연결된다. 그리고 서치 스케줄러(632)는 상기 각 포트 송/수신 제어부들로부터의 연결 요구 신호들을 스케줄링 하여, 선택된 해당 포트 송/수신 제어부와 서치 메모리(646)를 연결한다.In addition, the search scheduler 632 is connected to each of the port transmission and reception control units. The search scheduler 632 schedules connection request signals from the respective port transmit / receive control units, and connects the selected port transmit / receive control unit with the search memory 646.

패킷 메모리 인터페이스(636)는 패킷 메모리 스케줄러(628)와 패킷 메모리(642)간의 인터페이스를 수행한다. 그리고 어드레스 테이블 인터페이스(638)는 어드레스 테이블 스케줄러(630)와 어드레스 테이블(644)간의 인터페이스를 수행한다. 그리고 서치 메모리 인터페이스(640)는 서치 스케줄러(632)와 서치 메모리(646)간의 인터페이스를 수행한다.The packet memory interface 636 performs an interface between the packet memory scheduler 628 and the packet memory 642. The address table interface 638 performs an interface between the address table scheduler 630 and the address table 644. The search memory interface 640 performs an interface between the search scheduler 632 and the search memory 646.

제1포트 테이블(622) 내지 제n포트 테이블(626)은 각 MAC 포트들의 상태정보와 인에이블 정보, 수신 동작 완료 정보 등을 저장한다. 그리고 패킷 메모리(642)는 서브 패킷들을 저장하며, 이때 저장된 각 서브 패킷들에 대한 정보는 패킷 디스크립터(648)에 저장된다. 어드레스 테이블(644)은 등록되어 있는 패킷의 목적지 MAC 어드레스와 소오스 MAC 어드레스를 저장한다. 그리고 서치 메모리(646)는 수신된 패킷의 목적지 어드레스에 해당하는 출력 MAC 포트를 판단하는 정보를 저장하며, 등록되어 있는 MAC 어드레스를 찾을 수 있도록 한다.The first port table 622 to n-th port table 626 store state information, enable information, and reception operation completion information of each MAC port. The packet memory 642 stores subpackets, and information on each stored subpacket is stored in the packet descriptor 648. The address table 644 stores the destination MAC address and the source MAC address of the registered packet. The search memory 646 stores information for determining an output MAC port corresponding to the destination address of the received packet, and allows the searched MAC address to be found.

이하, 상기한 도 6의 구성으로부터, 본 발명의 실시 예에 따른 패킷 스위칭 동작의 일 예를 설명하면 하기와 같다. 상기 도 6의 구성에서, 수신제어는 포트별 MAC 인터페이스부에 저장된 서브 패킷을 패킷 메모리(642)에 저장시키는 일련의 과정을 의미한다. 해당 MAC 인터페이스부는 수신 서브 패킷이 FIFO에 입력되면, MAC 인터페이스부는 해당 패킷 수신 명령을 출력한다. 상기 포트 송/수신 제어부는 상기한 명령이 입력되면 수신되는 서브 패킷의 헤더 정보를 검사하여 필요한 정보를 얻는다.Hereinafter, an example of a packet switching operation according to an embodiment of the present invention will be described from the above-described configuration of FIG. 6. In the configuration of FIG. 6, reception control means a series of processes for storing the sub-packet stored in the MAC interface unit for each port in the packet memory 642. When the received sub packet is input to the FIFO, the MAC interface unit outputs a corresponding packet reception command. The port transmission / reception control unit obtains necessary information by checking header information of a received subpacket when the command is input.

상기 포트 송/수신 제어부는 수신 서브 패킷이 SOP에 해당하면 먼저 서치 스케줄러(632)를 통하여 서치 메모리(646)를 억세스하여 서치 동작을 수행한다. 이때, 본 발명의 실시 예에 따른 포트 송/수신 제어부는 상기 서치 동작이 수행되고 있는 동안에, 입력되는 패킷 송신 명령이 서치 동작이 아니라면 패킷 송신 명령을 부분적으로 수행할 수가 있다.The port transmit / receive controller performs a search operation by first accessing the search memory 646 through the search scheduler 632 when the received subpacket corresponds to the SOP. In this case, while the search operation is being performed, the port transmission / reception control unit according to an embodiment of the present invention may partially execute the packet transmission command if the input packet transmission command is not the search operation.

그리고 상기 포트 송/수신 제어부는 상기 서치 동작과 어드레스 테이블(644)및 해당 포트 테이블로부터 얻은 정보를 기반으로 State Machine을 자체적으로 돌리며 여러 가지 필요한 판단을 내린다. 그리고 수신된 서브 패킷을 패킷 메모리(646)에 저장한다.The port transmit / receive controller makes various necessary decisions by running the state machine itself based on the search operation, the address table 644 and the information obtained from the corresponding port table. The received subpacket is then stored in the packet memory 646.

한편, 상기 각 상태들은 각각의 필요한 명령들을 패킷 메모리 스케줄러(628)와 어드레스 테이블 스케줄러(630) 그리고 큐 매니저(634)에게 출력하고, 해당 명령이 상기 스케줄러들에 의해 선택되어 지면 패킷 디스크립터(648)와 어드레스 테이블(644)을 억세스하여 필요한 정보를 얻는다. 그리고 상기 포트 송/수신 제어부는 패킷 메모리 스케줄러(628)에 Xfer_Packet 명령을 의뢰하여 해당 MAC 인터페이스에 저장된 서브 패킷을 패킷 메모리(642)에 저장한다. 그리고 상기 포트 송/수신 제어부는 수신 서브 패킷이 EOP에 해당하면 즉, 전체 프레임(예: 이더넷 프레임)에 대한 저장이 완료되면, Rx Queue에서 Dequeue 시키고 목적지 MAC 포트에 대한 Tx Queue를 Enqueue 시킨다.Meanwhile, the states output respective necessary commands to the packet memory scheduler 628, the address table scheduler 630, and the queue manager 634, and when the corresponding commands are selected by the schedulers, the packet descriptor 648. And the address table 644 are accessed to obtain necessary information. The port transmit / receive control unit requests the Xfer_Packet command from the packet memory scheduler 628 to store the subpacket stored in the MAC interface in the packet memory 642. When the reception subpacket corresponds to the EOP, that is, the storage of the entire frame (for example, the Ethernet frame) is completed, the port transmission / reception control unit dequeues the Rx queue and enqueues the Tx queue for the destination MAC port.

한편, 상기 전체 프레임에 대한 서브 패킷 수신이 완료되면, 해당 목적지 MAC 포트의 명령에 의해 해당 송/수신 제어부는 패킷 송신 제어를 수행한다. 이때, 패킷 송신은 서브 패킷 단위로 이루어지며 송신 중에 필요한 정보들은 패킷 디스크립터(648) 및 해당 포트 테이블로부터 얻는다.On the other hand, when the reception of the subpackets for the entire frame is completed, the transmission / reception control unit performs packet transmission control by a command of the corresponding destination MAC port. In this case, packet transmission is performed in sub-packet units, and information necessary during transmission is obtained from the packet descriptor 648 and the corresponding port table.

도 7a 내지 도 7c는 본 발명의 일 실시 예에 따른 패킷 스위치 장치의 전체 수신 제어 동작의 흐름도를 도시한다. 각 과정 자체의 동작은 패킷 스위치 시스템에서 일반적인 데이터 패킷 처리를 수행하는 것이다.7A to 7C are flowcharts illustrating the overall reception control operation of the packet switch apparatus according to an embodiment of the present invention. The operation of each process itself is to perform general data packet processing in a packet switch system.

도 8은 본 발명의 일 실시 예에 따른 패킷 스위치 장치의 전체 송신 제어 동작의 흐름도를 도시한다. 각 과정 자체의 동작은 패킷 스위치 시스템에서 일반적인 데이터 패킷 처리를 수행하는 것이다.8 is a flowchart illustrating the overall transmission control operation of the packet switch apparatus according to an embodiment of the present invention. The operation of each process itself is to perform general data packet processing in a packet switch system.

도 9는 데이터 네트워크에서 본 발명의 제3실시 예에 따른 패킷 스위치 장치를 도시한다.9 illustrates a packet switch apparatus according to a third embodiment of the present invention in a data network.

상기 도 9는 상기 도 5의 구성과 유사하나, 상기 도 5에서 패킷 메모리(544)에 구비되는 정보 리소스인 패킷 연결정보를 분리한다. 즉, 링크 메모리(934)는 패킷 메모리(944)로부터 분리되어 패킷 연결정보를 저장한다. 패킷 연결정보는 넥스트 디스크립터들(Next Descriptor)과 송신 큐 포인터들로 이루어질 수가 있다. 상기 각 넥스트 디스치립터는 패킷 메모리(944)의 각 방(Room)에 대응되며, 다음에 연결된 방(Next Linked Room)의 어드레스 정보를 가질 수가 있다. 상기 송신 큐 포인터들은 헤더(Header)와 테일(Tail)정보와 해당 큐와 관련된 현재 방의 번호(The Number of Current Rooms) 정보들을 가질 수가 있다.9 is similar to the configuration of FIG. 5, but separates packet connection information, which is an information resource included in the packet memory 544 in FIG. 5. That is, the link memory 934 is separated from the packet memory 944 to store packet connection information. The packet connection information may be composed of next descriptors and transmit queue pointers. Each next discoverer corresponds to each room of the packet memory 944 and may have address information of a next linked room. The transmission queue pointers may have header and tail information and the number of current rooms associated with the queue.

제어 큐 매니저(930)는 제1포트 송/수신 제어부(916) 내지 제n포트 송/수신 제어부(9n6)가 자신을 공유할 수 있도록 한다. 그리고 제어 큐 매니저(930)는 링크 메모리(934)를 억세스하여 패킷 연결정보를 참조 및 갱신하고 패킷 메모리(944)에 대한 Queueing 동작을 위한 각 Queue들의 포인터 정보를 저장하며, 상기 Queueing 동작에 따른 포인터 정보를 갱신한다. 그리고 제어 큐 매니저(930)는 선택된 해당 포트 송/수신 제어부로 포인터 정보를 출력한다. 이로 인해 상기 포트 송/수신 제어부는 Queueing 동작을 수행한다.The control queue manager 930 allows the first port transmit / receive control unit 916 to the nth port transmit / receive control unit 9n6 to share itself. The control queue manager 930 accesses the link memory 934 to refer to and update packet connection information, stores pointer information of each queue for queuing operations on the packet memory 944, and a pointer according to the queuing operation. Update the information. The control queue manager 930 outputs pointer information to the selected port transmission / reception control unit. As a result, the port transmission / reception control unit performs a queuing operation.

한편, 상기 도 9를 참조하면, 상기 도 5의 어드레스 테이블(534)의 구성은서치 메모리(924)에 포함된다. 따라서 상기 도 9의 구성에서 각 포트 송/수신 제어부들은 서치 스케줄러(920)를 억세스하여 어드레스 정보를 얻는다.Meanwhile, referring to FIG. 9, the configuration of the address table 534 of FIG. 5 is included in the search memory 924. Accordingly, in the configuration of FIG. 9, each port transmit / receive control unit accesses the search scheduler 920 to obtain address information.

도 10은 데이터 네트워크에서 본 발명의 제4실시 예에 따른 패킷 스위치 장치를 도시한다.10 illustrates a packet switch apparatus according to a fourth embodiment of the present invention in a data network.

상기 도 10은 상기 도 6의 구성과 유사하나, 상기 도 6에서 패킷 메모리(642)에 구비되는 정보 리소스인 패킷 연결정보를 분리한다. 즉, 링크 메모리(1044)는 패킷 메모리(1042)로부터 분리되어 패킷 연결정보를 저장한다. 패킷 연결정보는 넥스트 디스크립터들(Next Descriptor)과 송신 큐 포인터들로 이루어질 수가 있다. 상기 각 넥스트 디스치립터는 패킷 메모리(944)의 각 방(Room)에 대응되며, 다음에 연결된 방(Next Linked Room)의 어드레스 정보를 가질 수가 있다. 상기 송신 큐 포인터들은 헤더(Header)와 테일(Tail)정보와 해당 큐와 관련된 현재 방의 번호(The Number of Current Rooms) 정보들을 가질 수가 있다.FIG. 10 is similar to the configuration of FIG. 6, but separates packet connection information, which is an information resource included in the packet memory 642 in FIG. 6. That is, the link memory 1044 is separated from the packet memory 1042 and stores packet connection information. The packet connection information may be composed of next descriptors and transmit queue pointers. Each next discoverer corresponds to each room of the packet memory 944 and may have address information of a next linked room. The transmission queue pointers may have header and tail information and the number of current rooms associated with the queue.

제어 큐 매니저(1030)는 제1포트 송/수신 제어부(916) 내지 제n포트 송/수신 제어부(9n6)가 자신을 공유할 수 있도록 한다. 제어 큐 매니저(1030)는 상기 각 포트 송/수신 제어부들과 연결된다. 그리고 제어 큐 매니저(1030)는 상기 각 포트 송/수신 제어부들로부터의 연결 요구 신호들을 스케줄링 하며, Rx Queue, Tx Queue등의 큐들에 대한 Enqueue 및 Dequeue 동작을 수행한다.The control queue manager 1030 allows the first port transmit / receive control unit 916 to the nth port transmit / receive control unit 9n6 to share itself. The control queue manager 1030 is connected to each of the port transmit / receive control units. The control queue manager 1030 schedules connection request signals from each of the port transmit / receive control units, and performs enqueue and dequeue operations on queues such as Rx queues and Tx queues.

그리고 제어 큐 매니저(930)는 링크 메모리(934)를 억세스하여 패킷 연결정보를 참조 및 갱신하고 패킷 메모리(944)에 대한 Queueing 동작을 위한 각 Queue들의 포인터 정보를 저장하며, 상기 Queueing 동작에 따른 포인터 정보를 갱신한다.The control queue manager 930 accesses the link memory 934 to refer to and update packet connection information, stores pointer information of each queue for queuing operations on the packet memory 944, and a pointer according to the queuing operation. Update the information.

그리고 상기 도 10 참조하면, 상기 도 6의 어드레스 테이블(644)의 구성은 서치 메모리(1046)에 포함된다. 따라서 상기 도 10의 구성에서 각 포트 송/수신 제어부들은 서치 스케줄러(1032)를 억세스하여 어드레스 정보를 얻는다.10, the configuration of the address table 644 of FIG. 6 is included in the search memory 1046. Accordingly, in the configuration of FIG. 10, each port transmit / receive control unit accesses the search scheduler 1032 to obtain address information.

다른 한편, 패킷 스위치 장치의 성능은 여러 가지로 요소에 의해 평가될 수가 있다. 그리고 상기 요소들 중에서 가장 중요한 것은 Throughput이라고 할 수가 있다. 여기서 Throughput은 단위 시간당 처리할 수 있는 데이터 량이라고 말할 수가 있다. 이더넷(Ethernet) 패킷 등과 같은 가변적인 패킷의 크기 때문에 Throughput이 가장 열악한 64byte 패킷을 처리 능력을 흔히 패킷 스위치 장치의 성능으로 말한다. 특히, 64byte 유니케스트(Unicast) 패킷들을 모든 포트들로 입력시키고 각각 서로 다른 모든 포트들로 출력 시켰을 때, 입력 스피드와 출력 스피드가 동일하면 그 패킷 스위치는 Wire-Speed를 지원한다고 한다.On the other hand, the performance of the packet switch apparatus can be evaluated by various factors. And the most important of the above elements can be said to be throughput. Throughput can be said to be the amount of data that can be processed per unit time. Due to the variable size of packets such as Ethernet packets, processing capacity is often referred to as the performance of a packet switch device. In particular, when 64byte unicast packets are inputted to all ports and outputted to all different ports, the packet switch supports wire-speed if the input speed and output speed are the same.

하기 <표 3>은 단일의 노멀한 유니케스트 패킷에 대한 상기 도 10과 같은 구성의 패킷 스위치 장치의 송/수신 처리 과정의 일 예를 나타낸다.Table 3 below shows an example of a transmission / reception process of a packet switch device having a configuration as shown in FIG. 10 for a single normal unicast packet.

statestate DescriptionDescription Required clockRequired clock 처리블록Processing block 수신
제어동작
reception
Control operation
DeQ EB, EnQ RxDeQ EB, EnQ Rx Empty 버퍼에서 빈방 하나를 빼와서 수신되는 패킷을 저장할 방을 마련한다.Remove an empty room from the Empty buffer to make room for incoming packets. 1414 CQMCQM
Init DescInit Desc 각 패킷의 정보인 디스키립터를 패킷 메모리에 저장한다.A descriptor which is information of each packet is stored in the packet memory. 11clk{1clk(scheduling)+3clk(hand-shaking between PCU and PMI) +4clk(Data Xfer)+ 3clk (precharge SGRAM)}11clk {1clk (scheduling) + 3clk (hand-shaking between PCU and PMI) + 4clk (Data Xfer) + 3clk (precharge SGRAM)} PMIPMI Xfer PacketXfer Packet 실제 데이터를 패킷 메모리에 저장한다.Store the actual data in packet memory. 23(1+3+16+3)23 (1 + 3 + 16 + 3) PMIPMI DeQ Rx, EnQ TxDeQ Rx, EnQ Tx 수신이 완료된 방을 TX Queue에 저장한다.The room where reception is completed is stored in TX queue. 1717 CQMCQM 송신
제어동작
send
Control operation
Read DescRead Desc TX할 패킷의 정보를 읽는다.Read the information of the packet to be TX. 12clk{1clk(scheduling)+4clk(hand_shaking)+ 4clk(Data Xfer)+ 3clk (precharge SGRAM)}12clk {1clk (scheduling) + 4clk (hand_shaking) + 4clk (Data Xfer) + 3clk (precharge SGRAM)} PMIPMI
Xfer PacketXfer Packet 전송할 데이터를 읽어온다.Read data to transfer. 24(1+4+16+4)24 (1 + 4 + 16 + 4) PMIPMI DeQ Tx, EnQ EBDeQ Tx, EnQ EB 전송이 끝난 방은 다시 빈방으로 쓰기 위해 Empty 버퍼에 Enqueue 한다.The transferred room is enqueued in the Empty buffer to write back to the empty room. 2020 CQMCQM

상기 <표 3>에서 CQM은 제어 큐 매니져(Control Queue Manager)의 약어이며, PMI는 패킷 메모리 인터페이스의 약어이다. 또한 상기 <표 3>에서 PCU는 Port Control Unit의 약어로서, 포트 송/수신 제어부를 의미한다.In Table 3, CQM stands for Control Queue Manager, and PMI stands for Packet Memory Interface. In Table 3, PCU is an abbreviation of Port Control Unit, and means a port transmission / reception control unit.

상기 <표 3>에서 단일의 유니케스트 패킷을 처리하는데 패킷 메모리 인터페이스가 소요하는 시간은 모두 합쳐서 70 클럭이라는 것을 알 수가 있다. 또한 제어 큐 매니저가 소요하는 시간은 모두 합쳐서 51 클럭이라는 것을 알 수가 있다. 따라서 전체 프로세스에서 Bottleneck은 PMI이며 결국 64바이트 패킷의 송신과 수신에걸리는 시간은 총 70클럭이 소요된다는 결론이 내려진다. 한편, 64바이트 이더넷 패킷의 경우 각 유니케스트 패킷은 12바이트의 Inter Frame Gap과 8바이트의 프리앰블을 포함하고 있으므로 84바이트 곱하기 8바이트 즉, 672비트로 이루어진다.In Table 3, it can be seen that the total time required for the packet memory interface to process a single unicast packet is 70 clocks. In addition, the total time taken by the control queue manager is 51 clocks. Therefore, it is concluded that Bottleneck is PMI in the whole process, and eventually it takes 70 clocks to send and receive 64 byte packets. Meanwhile, in the case of a 64-byte Ethernet packet, each unicast packet includes 12 bytes of Inter Frame Gap and 8 bytes of preamble, so that 84 bytes times 8 bytes, that is, 672 bits.

따라서, 상기 도 10의 구성에서 MAC 포트가 8개 인 경우, 672비트 패킷에 대한 Throughput은 66MHz의 경우 하기 <수학식 4>로 표시할 수가 있다.Accordingly, in the configuration of FIG. 10, when eight MAC ports are used, throughput for a 672-bit packet may be represented by Equation 4 below at 66 MHz.

상기 <수학식 4>에서 볼 때, MAC 포트가 8개인 경우 상기 도 10의 패킷 스위치 장치는 1.6Gbps의 처리 속도를 가져야만 Wire-Speed를 지원한다고 할 수 있다.In Equation 4, when there are eight MAC ports, the packet switch device of FIG. 10 may support wire-speed only when the packet switch has a processing speed of 1.6 Gbps.

도 11은 데이터 네트워크에서 본 발명의 제5실시 예에 따른 패킷 스위치 장치를 도시한다.11 illustrates a packet switch apparatus according to a fifth embodiment of the present invention in a data network.

상기 도 11은 상기 도 10의 구성과 유사하나, 상기 도 10에서 패킷 메모리(1042)에 구비되는 정보 리소스인 패킷 디스크립터(1048)를 분리한다. 즉, 패킷 디스크립터를 따로 저장해서 처리할 수 있는 메모리가 추가된다. 상기 추가되는 메모리는 칩의 내부 또는 외부에 구비될 수가 있다. 이로인해, 패킷 메모리(1144)의 로드(Load)가 줄어들게 되어, 패킷 스위치 장치의 송/수신 제어 시간이 줄어들 수가 있다. 패킷 디스크립터 메모리(1146)에 저장되는 각 패킷의 정보는 실제 패킷 메모리(1144)에 저장되는 각 패킷과 일대일로 매핑될 수가 있다. 즉, 상기 메모리 중에서 어느 하나의 어드레스만 알고 있으면 다른 하나의 어드레스를 항상 알 수가 있다.11 is similar to the configuration of FIG. 10, but separates the packet descriptor 1048, which is an information resource included in the packet memory 1042 in FIG. 10. That is, a memory for storing and processing packet descriptors separately is added. The added memory may be provided inside or outside the chip. As a result, the load of the packet memory 1144 is reduced, so that the transmission / reception control time of the packet switch device can be reduced. Information of each packet stored in the packet descriptor memory 1146 may be mapped one-to-one with each packet stored in the actual packet memory 1144. That is, if only one address of the memory is known, the other address can always be known.

상기 도 11에서 패킷 디스크립터 메모리(1146)는 패킷 메모리(1144)로부터 분리되며 각 패킷들의 정보를 저장한다. 패킷 디스크립터 메모리 스케줄러(1130)는 각 포트 송/수신 제어부들과 연결된다. 그리고 패킷 디스크립터 메모리 스케줄러(1130)는 상기 각 포트 송/수신 제어부들로부터의 연결 요구 신호들을 스케줄링 하며, 패킷 디스크립터 메모리(1146)에 저장된 각 패킷들의 정보를 억세스할 수 있도록 한다.In FIG. 11, the packet descriptor memory 1146 is separated from the packet memory 1144 and stores information of each packet. The packet descriptor memory scheduler 1130 is connected to each port transmit / receive control unit. The packet descriptor memory scheduler 1130 schedules connection request signals from the respective port transmit / receive controllers, and accesses information on each packet stored in the packet descriptor memory 1146.

상기 도 11의 경우, 유니케스트 패킷에 대한 패킷 스위치 장치의 송/수신 처리에 걸리는 시간은 하기와 같다. 즉, 패킷 송신(Tx) 및 수신(Rx)시 패킷 메모리 인터페이스부(1138)가 순수하게 Xfer Packet을 하는 데 47 클럭이 소요된다. 그리고 패킷 디스크립터 메모리 인터페이스(1138)가 패킷 디스크립터 메모리(1146)를 초기화하고 억세스하는데 23 클럭이 소요된다. 또한 상기한 바와 같이 제어 큐 매니저(1132)는 51 클럭을 소요한다. 상기 도 11의 구성에서의 Botleneck은 제어 큐 매니저(1132)가 되며, 이때의 Throughput은 하기 <수학식 5>로 나타낼 수가 있다.In the case of FIG. 11, the time taken for the transmission / reception processing of the packet switch apparatus for the unicast packet is as follows. That is, 47 packets are required for the packet memory interface unit 1138 to purely Xfer Packet at the time of packet transmission (Tx) and reception (Rx). The packet descriptor memory interface 1138 takes 23 clocks to initialize and access the packet descriptor memory 1146. As described above, the control queue manager 1132 takes 51 clocks. The Botleneck in the configuration of FIG. 11 becomes the control queue manager 1132, and the throughput at this time can be expressed by Equation 5 below.

상기 <수학식 5>에서 볼 때, 상기 도 11과 같은 패킷 스위치 장치의 구성은 8포트의 경우 유니 패킷에 대하여 1.6Gbps 이상의 처리속도를 가지므로 Wire-Speed를 지원한다고 말 할 수가 있다.In Equation 5, the packet switch device shown in FIG. 11 can be said to support Wire-Speed because 8 ports have a processing speed of 1.6 Gbps or more for a uni packet.

상술한 바와 같이 데이터 네트워크에서 본 발명의 실시 예에 따른 패킷 스위치 처리 장치 및 방법은 패킷 디스크립터, 포트 테이블, 링크 메모리, 어드레스 테이블 등과 같은 패킷 스위칭에 필요한 정보 리소스들을 그룹별로 세분화하고 복수개의 송/수신 제어부들이 스케줄링에 의해 상기 정보 리소스들을 병렬로 억세스 하여 제어 오버헤드가 줄어들게 된다. 이로 인해 본 발명은 종래의 패킷 스위치 장치의 구조 변경으로 고속의 패킷 스위칭을 할 수 있는 이점이 있다.As described above, the apparatus and method for processing a packet switch according to an embodiment of the present invention in a data network subdivides information resources required for packet switching, such as a packet descriptor, a port table, a link memory, an address table, by group, and transmits / receives a plurality of groups. The controllers access the information resources in parallel by scheduling, thereby reducing the control overhead. For this reason, the present invention has the advantage of enabling high-speed packet switching by changing the structure of the conventional packet switch device.

Claims (21)

데이터 네트워크에서 패킷 스위치 장치에 있어서,In a packet switch device in a data network, 패킷 송/수신 명령 및 데이터 패킷의 입/출력을 담당하는 복수개의 포트들과,A plurality of ports responsible for packet transmission / reception command and data packet input / output, 상기 패킷 송/수신 명령에 대응하여 그룹별로 세분화된 정보 리소스들을 억세스하고 상기 복수개의 포트들 중 해당 포트로부터의 데이터 패킷을 패킷 메모리 스케줄러의 스케줄링에 의해 패킷 메모리에 저장하거나 또는 상기 패킷 메모리의 스케줄러의 스케줄링에 의해 상기 패킷 메모리에 저장된 해당 데이터 패킷을 상기 복수개의 포트들 중 해당 포트로 전송하는 복수개의 송/수신 제어부들과,Access the information resources subdivided into groups in correspondence to the packet transmit / receive command and store data packets from the corresponding one of the plurality of ports in the packet memory by scheduling of the packet memory scheduler or the scheduler of the packet memory. A plurality of transmission / reception controllers for transmitting the corresponding data packet stored in the packet memory to the corresponding one of the plurality of ports by scheduling; 상기 복수개의 송/수신 제어부들에 의한 패킷 스위칭에 필요한 정보들을 그룹별로 나누어 각각 저장하며 상기 복수개의 송/수신 제어부들에게 상기 저장된 정보를 제공하는 복수개의 정보 리소스들과,A plurality of information resources for storing the information necessary for packet switching by the plurality of transmission / reception control units in groups and providing the stored information to the plurality of transmission / reception control units, respectively; 상기 각 정보 리소스들과 연결되며 상기 송/수신 제어부들로부터의 억세스를 스케줄링 하여 상기 리소스들로부터 관리되고 있는 정보 리소스가 상기 송/수신 제어부들로 전달될 수 있도록 하는 복수개의 정보 리소스 스케줄러들로 이루어짐을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.A plurality of information resource schedulers are connected to each of the information resources and schedule access from the transmission / reception control units so that information resources managed from the resources can be delivered to the transmission / reception control units. Packet switch device in a data network, characterized in that. 제 1항에 있어서, 상기 복수개의 송/수신 제어부들이,The method of claim 1, wherein the plurality of transmission / reception control units, 상기 각 포트별로 구비됨을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.Packet switch device in the data network, characterized in that provided for each port.
제 2항에 있어서, 상기 복수개의 정보 리소스들이,The method of claim 2, wherein the plurality of information resources, 패킷 디스크립터, 링크 메모리, 서치 메모리, 포트 테이블임을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.Packet switch device in a data network, characterized in that the packet descriptor, link memory, search memory, port table.
제 3항에 있어서, 상기 포트 테이블이,The method of claim 3, wherein the port table, 상기 각 포트별로 구비됨을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.Packet switch device in the data network, characterized in that provided for each port.
복수개의 포트들을 대상으로 하여 수신 데이터 패킷들을 패킷 메모리로 저장하거나 상기 패킷 메모리로부터의 송신 데이터 패킷을 상기 복수개의 포트들 중 해당 포트로 출력하는 데이터 네트워크에서 패킷 스위치 방법에 있어서,A packet switch method in a data network for storing received data packets in a packet memory for a plurality of ports or outputting a transmission data packet from the packet memory to a corresponding one of the plurality of ports. 복수개의 송/수신 제어부들이 그룹별로 세분화된 정보 리소스들을 억세스하기 위하여 각 정보 리소스들의 스케줄러들에게 해당 억세스 신호를 출력하는 제1단계와,A first step of outputting a corresponding access signal to the schedulers of the respective information resources by the plurality of transmission / reception controllers to access the information resources divided by groups; 상기 각 정보 리소스별 스케줄러들이 상기 복수개의 송/수신 제어부들이 한 번에 한 개의 정보 리소스를 억세스 할 수 있도록 상기 억세스 신호들에 대하여 스케줄링을 수행하는 제2단계와,A second step in which the schedulers for each information resource perform scheduling on the access signals so that the plurality of transmission / reception controllers can access one information resource at a time; 상기 복수개의 송/수신 제어부들이 억세스 경로가 연결되면 해당 정보 리소스들을 참조하여 상기 수신 데이터 패킷을 상기 패킷 메모리에 저장하거나 상기 패킷 메모리에 저장된 데이터 패킷을 상기 복수개의 포트들 중 해당 포트로 출력하는 제3단계로 이루어짐을 특징으로 하는 데이터 네트워크에서 패킷 스위치 방법.When the access paths are connected, the plurality of transmission / reception controllers store the received data packet in the packet memory or output the data packet stored in the packet memory to a corresponding port among the plurality of ports with reference to corresponding information resources. Packet switch method in a data network, characterized in that consisting of three steps. 제 5항에 있어서, 상기 복수개의 송/수신 제어부들이,The method of claim 5, wherein the plurality of transmission / reception control units, 복수개의 포트별로 구비됨을 특징으로 하는 데이터 네트워크에서 패킷 스위치 방법.Packet switching method in a data network, characterized in that provided for each of a plurality of ports.
제 6항에 있어서, 상기 복수개의 정보 리소스들이,The method of claim 6, wherein the plurality of information resources, 패킷 디스크립터, 링크 메모리, 서치 메모리, 포트 테이블임을 특징으로 하는 데이터 네트워크에서 패킷 스위치 방법.Packet switch method in a data network, characterized in that the packet descriptor, link memory, search memory, port table.
제 7항에 있어서, 상기 포트 테이블이,The method of claim 7, wherein the port table, 상기 각 포트별로 구비됨을 특징으로 하는 데이터 네트워크에서 패킷 스위치 방법.The packet switch method in the data network, characterized in that provided for each port.
복수개의 포트들을 대상으로 하여 수신 및 송신되는 패킷 데이터들을 스위칭 하는 패킷 스위치 시스템의 패킷 데이터 처리 장치에 있어서,A packet data processing apparatus of a packet switch system for switching received and transmitted packet data for a plurality of ports, 상기 복수개의 포트들 중 해당 포트로부터의 수신 패킷 데이터에 대한 처리를 수행하여 패킷 메모리 스케줄러의 스케줄링에 의해 패킷 메모리에 저장하거나 상기 패킷 메모리에 저장된 패킷 데이터를 상기 패킷 메모리 스케줄러의 스케줄링에 의해 억세스 하여 상기 복수개의 포트들 중 해당 포트로 전송하는 상기 복수개의 포트들 각각에 할당된 송/수신 제어부와,Processing of received packet data from a corresponding port among the plurality of ports is performed to store in the packet memory by scheduling of the packet memory scheduler or to access the packet data stored in the packet memory by scheduling of the packet memory scheduler. A transmission / reception control unit allocated to each of the plurality of ports transmitting to a corresponding port among a plurality of ports; 상기 송/수신 제어부에 의해 패킷 스위칭에 필요한 정보를 그룹별로 나누어 각각 저장하며 상기 복수개의 포트들 각각에 대응하여 할당된 각 송/수신 제어부로 저장된 정보를 제공하는 복수개의 정보 리소스와,A plurality of information resources for storing the information necessary for packet switching by the transmission / reception control unit for each group and providing the stored information to each transmission / reception control unit allocated corresponding to each of the plurality of ports; 상기 복수개의 포트들 각각에 대응하여 할당된 송/수신 제어부가 한 번에 한 개의 상기 정보 리소스를 억세스 할 수 있도록 억세스 제어를 수행하는 상기 복수개의 억세스 제어부로 이루어짐을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.And a plurality of access controllers configured to perform access control so that an allocated transmission / reception control unit corresponding to each of the plurality of ports can access one information resource at a time. Device. 제 9항에 있어서, 상기 복수개의 정보 리소스가,The method of claim 9, wherein the plurality of information resources, 패킷 디스크립터, 어드레스 테이블 및 서치 메모리임을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.Packet switch device in a data network, characterized in that the packet descriptor, address table and search memory.
제 10항에 있어서,The method of claim 10, 상기 포트별로, 정보 리소스인 포트 테이블이 더 할당됨을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.And a port table, which is an information resource, is further allocated for each port.
제 11항에 있어서, 상기 어드레스 테이블과 서치 메모리가,The method of claim 11, wherein the address table and the search memory, 동일한 칩 내에 구비됨을 특징으로 하는 데이터 네트워크에서 패킷 스위치장치.Packet switch device in a data network, characterized in that provided in the same chip.
제 12항에 있어서, 상기 복수개의 억세스 제어부가,The method of claim 12, wherein the plurality of access control unit, 스케줄러임을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.Packet switch device in a data network, characterized in that the scheduler.
복수개의 포트들을 대상으로 하여 수신 및 송신되는 패킷 데이터들을 스위칭 하는 패킷 스위치 시스템의 패킷 데이터 처리 방법에 있어서,A packet data processing method of a packet switch system for switching received and transmitted packet data for a plurality of ports, 상기 복수개의 포트별로 할당된 각 송/수신 제어부가 그룹별로 나뉘어 관리되고 있는 복수개의 서로 다른 정보 리소스들 중 원하는 정보 리소스를 억세스하기 위해 상기 복수개의 정보 리소스들 각각에 대응하는 복수개의 억세스 제어부들 중 상기 원하는 정보 리소스와의 인터페이스를 담당하는 억세스 제어부로 해당 제어신호를 전달하는 제1과정과,Each of the plurality of access controllers corresponding to each of the plurality of information resources to access a desired information resource among a plurality of different information resources, each of which is allocated and managed by the plurality of ports, is divided and managed by a group. A first process of transmitting a corresponding control signal to an access controller in charge of an interface with the desired information resource; 상기 복수개의 억세스 제어부들 각각이 적어도 두 개의 송/수신 제어부들로부터 동시에 제어신호들이 전달될 시 상기 적어도 두 개의 송/수신 제어부들이 순차적으로 해당 정보 리소스를 억세스 할 수 있도록 억세스 제어를 수행하는 제2과정과,A second for performing access control so that each of the plurality of access controllers can sequentially access the corresponding information resource when the control signals are simultaneously transmitted from at least two transmit / receive controllers; Process, 상기 해당 제어신호를 전달한 적어도 두 개의 송/수신 제어부들 각각이 상기 억세스 제어에 의해 상기 해당 정보 리소스를 억세스하고 상기 억세스한 정보 리소스에 의해 연결된 데이터 경로를 통하여 패킷 데이터를 입력포트 및 출력포트로 송/수신하는 제3과정으로 이루어짐을 특징으로 하는 데이터 네트워크에서 패킷 스위치 방법.Each of the at least two transmission / reception control units which have transmitted the corresponding control signal access the corresponding information resource by the access control and transmit packet data to an input port and an output port through a data path connected by the accessed information resource. Packet switching method in a data network, characterized in that the third step of receiving / receiving. 복수개의 포트들을 대상으로 하여 수신 및 송신되는 패킷 데이터들을 스위칭 하는 패킷 스위치 시스템의 패킷 데이터 처리 장치에 있어서,A packet data processing apparatus of a packet switch system for switching received and transmitted packet data for a plurality of ports, 상기 복수개의 포트별로 할당되며 송신용 및 수신용의 선입선출 메모리 구조를 구비하여 입력되는 패킷 데이터를 서브패킷 단위로 송/수신하는 포트 인터페이스부들과,Port interface units allocated to the plurality of ports and having a first-in, first-out memory structure for transmission and reception, for transmitting / receiving incoming packet data in subpacket units; 상기 포트 인터페이스부에 각각 할당되고 상기 송/수신되는 패킷 데이터에 대한 처리를 수행하여 입력되는 패킷 데이터를 패킷 메모리에 저장하거나 상기 패킷 메모리에 저장된 패킷 데이터를 해당 포트 인터페이스부로 전송하는 송/수신 제어부들과,Transmitting / receiving controllers each of which is allocated to the port interface unit and performs processing on the transmitted / received packet data to store input packet data in a packet memory or transmit packet data stored in the packet memory to a corresponding port interface unit. and, 상기 해당 포트 인터페이스부와 상기 패킷 메모리간에 있어서의 패킷 스위칭에 필요한 정보를 그룹별로 나누어 각각 저장하며 상기 각 송/수신 제어부로부터의 요청에 의해 해당 그룹에 대응하여 저장된 정보를 제공하는 복수개의 정보 리소스들과,A plurality of information resources for storing the information necessary for packet switching between the corresponding port interface unit and the packet memory for each group and provide the stored information corresponding to the group by request from each of the transmission and reception control unit and, 상기 송/수신 제어부들이 동시에 동일한 정보 리소스를 억세스 하고자 할 시상기 송/수신 제어부가 순차적으로 상기 정보 리소스를 억세스 할 수 있도록 억세스 제어를 수행하는 상기 복수개의 억세스 제어부로 이루어짐을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.In the data network, characterized in that the plurality of access control unit for performing the access control so that the transmission / reception control unit to sequentially access the information resource when the transmission / reception control unit wants to access the same information resource at the same time Packet switch device. 제 15항에 있어서, 상기 포트가,The method of claim 15, wherein the port is, 맥(MAC) 포트임을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.Packet switch device in a data network, characterized in that the MAC (MAC) port.
제 16항에 있어서, 상기 복수개의 정보 리소스가,The method of claim 16, wherein the plurality of information resources, 패킷 디스크립터, 어드레스 테이블, 서치 메모리 및 포트 테이블임을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.Packet switch device in a data network, characterized in that the packet descriptor, address table, search memory and port table.
제 17항에 있어서,The method of claim 17, 상기 패킷 디스크립터가 각 패킷에 대한 정보를 저장하고,The packet descriptor stores information about each packet, 상기 어드레스 테이블이 맥(MAC) 디바이스에 대한 정보를 저장하며,The address table stores information about a MAC device, 상기 포트 테이블이 상기 맥(MAC) 포트에 대한 정보를 저장하며,The port table stores information about the MAC port, 상기 서치 메모리가 등록되어 있는 맥(MAC) 어드레스 정보를 저장함을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.And a MAC address information in which the search memory is registered.
제 18항에 있어서, 상기 포트 테이블이,The method of claim 18, wherein the port table, 상기 포트별로 할당됨을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.Packet switch device in the data network, characterized in that assigned to the port.
제 19항에 있어서, 상기 어드레스 테이블과 서치 메모리가,The method of claim 19, wherein the address table and the search memory, 동일한 칩 내에 구비됨을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.Packet switch device in a data network, characterized in that provided in the same chip.
제 20항에 있어서, 상기 복수개의 억세스 제어부가,The method of claim 20, wherein the plurality of access control unit, 스케줄러임을 특징으로 하는 데이터 네트워크에서 패킷 스위치 장치.Packet switch device in a data network, characterized in that the scheduler.
KR10-2000-0032255A 1999-06-12 2000-06-12 Apparatus and method for packet switching in data network KR100378372B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2000-0032255A KR100378372B1 (en) 1999-06-12 2000-06-12 Apparatus and method for packet switching in data network

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
KR19990021940 1999-06-12
KR1019990021940 1999-06-12
KR1019990060235 1999-12-22
KR19990060235 1999-12-22
KR10-2000-0032255A KR100378372B1 (en) 1999-06-12 2000-06-12 Apparatus and method for packet switching in data network

Publications (2)

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

Family

ID=27349989

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0032255A KR100378372B1 (en) 1999-06-12 2000-06-12 Apparatus and method for packet switching in data network

Country Status (1)

Country Link
KR (1) KR100378372B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100440200B1 (en) * 2001-10-23 2004-07-14 엘지전자 주식회사 MAC Address Table Management Method In L2 Switch
US10324440B2 (en) 2015-06-22 2019-06-18 Lsis Co., Ltd. Programmable logic controller system

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7113518B2 (en) * 2001-12-19 2006-09-26 Agere Systems Inc. Processor with reduced memory requirements for high-speed routing and switching of packets
KR200495799Y1 (en) * 2021-07-02 2022-08-22 권홍 Apparstus for paying automatically toll money of vehicle

Citations (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
JPH09168016A (en) * 1995-12-18 1997-06-24 Toshiba Corp Pakcet switch
US9923457B2 (en) * 2015-04-23 2018-03-20 Taiwan Semiconductor Manufacturing Company, Ltd. Regulated power converter and method of operating the same

Patent Citations (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
JPH09168016A (en) * 1995-12-18 1997-06-24 Toshiba Corp Pakcet switch
US9923457B2 (en) * 2015-04-23 2018-03-20 Taiwan Semiconductor Manufacturing Company, Ltd. Regulated power converter and method of operating the same

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100440200B1 (en) * 2001-10-23 2004-07-14 엘지전자 주식회사 MAC Address Table Management Method In L2 Switch
US10324440B2 (en) 2015-06-22 2019-06-18 Lsis Co., Ltd. Programmable logic controller system

Also Published As

Publication number Publication date
KR20010007346A (en) 2001-01-26

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
US6967951B2 (en) System for reordering sequenced based packets in a switching network
US7676597B2 (en) Handling multiple network transport service levels with hardware and software arbitration
US9094327B2 (en) Prioritization and preemption of data frames over a switching fabric
US6922408B2 (en) Packet communication buffering with dynamic flow control
US7483429B2 (en) Method and system for flexible network processor scheduler and data flow
JP2000503828A (en) Method and apparatus for switching data packets over a data network
WO1999063712A1 (en) Method and apparatus for forwarding packets from a plurality of contending queues to an output
US20140163810A1 (en) Method for data transmission among ECUs and/or measuring devices
JP2011024027A (en) Packet transmission control apparatus, hardware circuit, and program
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 (en) Apparatus and method for packet switching in data network
US8131854B2 (en) Interfacing with streams of differing speeds
US7142515B2 (en) Expandable self-route multi-memory packet switch with a configurable multicast 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 (en) Packet switch apparatus and packet switch method
KR100441883B1 (en) Apparatus and method for Ingress control of packet switch system
US20020136229A1 (en) Non-blocking crossbar and method of operation thereof
CN115473862A (en) Method and system for avoiding multicast packet head blocking of switch chip
JP4055752B2 (en) Arbiter, arbitration method thereof, and switch device
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