KR100440574B1 - 가변길이 패킷 스위칭 장치 - Google Patents

가변길이 패킷 스위칭 장치 Download PDF

Info

Publication number
KR100440574B1
KR100440574B1 KR10-2001-0085016A KR20010085016A KR100440574B1 KR 100440574 B1 KR100440574 B1 KR 100440574B1 KR 20010085016 A KR20010085016 A KR 20010085016A KR 100440574 B1 KR100440574 B1 KR 100440574B1
Authority
KR
South Korea
Prior art keywords
data
packet
switching
input
fifo
Prior art date
Application number
KR10-2001-0085016A
Other languages
English (en)
Other versions
KR20030055466A (ko
Inventor
김찬
한경수
고제수
유태환
이종현
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR10-2001-0085016A priority Critical patent/KR100440574B1/ko
Priority to US10/247,174 priority patent/US7245641B2/en
Publication of KR20030055466A publication Critical patent/KR20030055466A/ko
Application granted granted Critical
Publication of KR100440574B1 publication Critical patent/KR100440574B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/606Hybrid ATM switches, e.g. ATM&STM, ATM&Frame Relay or ATM&IP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/40Constructional details, e.g. power supply, mechanical construction or backplane
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/608ATM switches adapted to switch variable length packets, e.g. IP packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5619Network Node Interface, e.g. tandem connections, transit switching
    • H04L2012/562Routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5651Priority, marking, classes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric

Landscapes

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

Abstract

본 발명은 다수의 포트를 가지는 가변 길이 패킷 스위칭 장치에 관한 것으로서, 더욱 자세하게는 데이터를 오버헤드를 포함하는 일정 길이의 유닛으로 나누어 처리하는 칩을 다수개 병렬로 사용하여 스위칭하고, 그 전후단에서는 포트 단위로 다중화/역다중화하고 버퍼링과 포맷변환을 하여, 소프트웨어의 개입없이 넌블럭킹으로 고속 처리할 수 있으며 다양한 신호를 수용하여 용량 확장이 가능한 가변길이 패킷 스위칭 장치에 관한 것으로, ATM 셀이나 가변길이 패킷 데이터를 병렬로 스위칭하는 적어도 두 개 이상의 스위칭수단; 상기 스위칭수단의 전단에 위치하여 라인카드로부터 상기 스위칭수단으로 입력되는 데이터를 둘 또는 네개의 포트에 대해서 패킷 단위로 다중화 한 후, 한 개의 패킷을 상기 스위칭수단의 개수만큼 분할하여 상기 스위칭수단에 제공하는 복수개의 다중화 처리수단; 및 상기 스위칭수단의 후단에 위치하여 상기 적어도 두 개 이상의 스위칭수단에 의해 각각 병렬로 스위칭되어 입력되는 패킷을 모아 상기 라인카드에 적합한 포맷으로 변환한 후 둘 또는 네 개의 포트 중 해당하는 포트로 출력하는 역다중화 처리수단을 포함하는 것을 특징으로 한다.

Description

가변길이 패킷 스위칭 장치{Variable Length Packet Switch}
본 발명은 다수의 포트를 가지는 가변 길이 패킷 스위칭 장치에 관한 것으로서, 더욱 자세하게는 데이터를 오버헤드를 포함하는 일정 길이의 유닛으로 나누어 처리하는 칩을 다수개 병렬로 사용하여 스위칭하고, 그 전후단에서는 포트 단위로 다중화/역다중화하고 버퍼링과 포맷변환을 하여, 소프트웨어의 개입없이 넌블럭킹으로 고속 처리할 수 있으며 다양한 신호를 수용하여 용량 확장이 가능한 가변길이 패킷 스위칭 장치에 관한 것이다.
종래의 가변길이 패킷 스위칭 장치는, 예를 들어 ETRI에서 개발된 MASCON을 쓰는 경우에는 스위치 칩이 8비트 입출력 포트 16개를 가지고 있고, 이것을 이용하여 16개의 16비트 포트를 스위칭 하기 위해서는, MASCON 칩 두개를 병렬로 구성하여 입출력 데이터 16비트를 상,하위 8비트씩으로 나누어 각각의 MASCON 칩을 사용하여 스위칭하였다. 이와 같은 종래의 스위칭 장치는 백플레인이 16비트로 되어 있어 신호가 많아지는 단점이 있으며, 현재의 기술로는 50MHz로 동작하여 16비트로 16개의 포트를 스위칭함으로써, 최대10Gbps 스위칭 시스템을 만들 수 있다. 또한, 이 방법을 사용하면 백플레인을 32비트로 하고, 각 바이트에 대해 네 개의 MASCON 칩을 사용하여 50MHz로 동작하면서 스위치 보드의 포트 속도가 두 배(1.25Gbps)까지는 올릴 수는 있으나, 32포트 이상에 대해서는 스위칭을 할 수 없는 단점이 있다. 또한 종래의 스위칭장치는 ATM 셀에 대해서만 사용할 수 있는 문제점이 있다.
따라서, 본 발명은 데이터를 오버헤드를 포함하는 일정 길이의 유닛으로 나누어 처리하는 칩을 다수개 병렬로 사용하여 스위칭하고, 그 전후단에서는 포트 단위로 다중화/역다중화하고 버퍼링과 포맷변환을 하여, 소프트웨어의 개입없이 넌블럭킹으로 고속 처리할 수 있으며 다양한 신호를 수용하여 용량 확장이 가능한 가변길이 패킷 스위칭 장치를 제공하는데 그 목적이 있다.
도1은 본 발명에 이용되는 스위치 칩의 입출력 데이터 포맷을 나타낸 도면
도2는 본 발명에 따른 가변길이 패킷 스위칭장치의 개략적인 블록 구성도.
도3은 백 플레인 셀 포맷을 나타낸 도면.
도4는 본 발명에 따른 다중화 처리부의 셀 포맷 변환 과정을 설명하는 도면.
도5는 본 발명에 따른 역다중화 처리부의 셀 포맷 변환 과정을 설명하는 도면.
도6은 본 발명에 따른 스위칭 장치의 일 예 구성도.
도7은 본 발명에 따른 FPGA의 내부 구성도.
도8은 백플레인 코어의 인터페이스를 나타낸 도면.
도9는 도7의 인터페이스부의 상세 구성도.
도10은 도9의 송신부의 상세 구성도.
도11은 도10의 SPE 맵퍼의 타이밍도.
도12는 도9의 수신부의 상세 구성도.
도13은 본 발명에 따른 다중/역다중 처리부의 상세 블록 구성도.
도14는 본 발명에 따른 다중화 처리부의 상세 블록 구성도.
도15a는 패킷의 길이가 짝수일 때의 입력쓰기블록의 타이밍도.
도15b는 패킷의 길이가 홀수일 때의 입력쓰기블록의 타이밍도.
도16은 입력읽기블록과 입력포맷팅/병렬분할블록 사이의 인터페이스를 나타낸 도면.
도17은 입력읽기블록의 타이밍도.
도18은 입력포맷팅/병렬분할블록의 타이밍도.
도19는 본 발명에 따른 역다중화 처리부의 블록 구성도.
도20a는 패킷 길이가 50일 때의 출력쓰기블록의 타이밍도.
도20b는 패킷 길이가 51일 때의 출력쓰기블록의 타이밍도.
도21은 출력포맷변환블록의 타이밍도.
상기 목적을 달성하기 위한 본 발명은, ATM 셀이나 가변길이 패킷 데이터를 병렬로 스위칭하는 적어도 두 개 이상의 스위칭수단;
상기 스위칭수단의 전단에 위치하여 라인카드로부터 상기 스위칭수단으로 입력되는 데이터를 둘 또는 네개의 포트에 대해서 패킷 단위로 다중화 한 후, 한 개의 패킷을 상기 스위칭수단의 개수만큼 분할하여 상기 스위칭수단에 제공하는 복수개의 다중화 처리수단; 및
상기 스위칭수단의 후단에 위치하여 상기 적어도 두 개 이상의 스위칭수단에 의해 각각 병렬로 스위칭되어 입력되는 패킷을 모아 상기 라인카드에 적합한 포맷으로 변환한 후 둘 또는 네 개의 포트 중 해당하는 포트로 출력하는 역다중화 처리수단을 포함하는 것을 특징으로 한다.
본 발명에 있어서 스위치 보드는 600Mbps의 속도를 갖는 32개 또는 64개의 포트에 대해 스위칭을 처리해 준다. 32 포트의 경우 전체의 스위칭 성능은 600Mbps x 32 = 20Gbps가 된다. 본 발명에서 스위칭은 3개의 처리단계를 거쳐 일어나게 되는데, 실제로 스위칭을 할 때는 전체의 포트를 16개의 포트 그룹으로 나누어 16개의 포트 그룹에 대해 가운데 단계에서 스위칭을 처리하고, 첫번째 단계에서는 전체의 입력 포트를 16개의 포트 그룹으로 다중화시키는 기능을, 세번째 단계에서는 스위칭된 16개의 포트 그룹 데이터를 각각 원래의 포트로 역다중화시키는 기능을 수행한다. 첫째 단에서는 포트 수가 32개일 경우에는 2포트 씩 하나로 묶어 16개의 그룹을 만들고, 포트 수가 64개일 경우에는 4포트 씩 하나로 묶어 역시 16개의 그룹을 만들어 처리한다. 가운데 단계에서는 16개의 포트를 가지는 기본 스위치 칩을 2개 또는 4개 사용하여 병렬 처리하도록 되어 있는데, 32포트를 스위칭할 경우에는 16포트를 가지는 스위치 칩 2개를 사용하여 16개의 포트그룹으로 만들어진 두개의 병렬 스트림에 대해 병렬로 스위칭을 하며, 64포트를 스위칭할 경우에는 16포트를 가지는 스위치 칩 4개를 사용하여 역시 16개의 포트 그룹으로 만들어진 네 개의 병렬 스트림에 대해 병렬로 스위칭을 하게 된다. 본 발명의 두 번째 단계에서 사용되는 스위치 칩은 ETRI와 얼랑사가 공동으로 개발한 SE-C 칩이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
도1은 본 발명에 이용되는 스위치칩인 SE-C 칩의 입출력 데이터의 포맷을 나타낸다.
도1에 도시된 바와 같이, 데이터는 10비트로 구성되어 있으며, 17 클럭의 데이터가 기본 스위칭 유닛이 되고, 각 유닛의 첫번째 10비트는 제어정보, 나머지 16 클럭동안의 데이터는 패킷 데이터이다. 가변길이의 패킷이 스위칭되기 위해서는 하나의 패킷이 여러 개의 유닛으로 나뉘어서 두번 째 단계로 입력되고, 스위칭 후에 같은 포맷으로 두번째 단계로부터 출력된다. 이를 위하여 데이터와 함께 유닛의 시작(SOU: Start of Unit) 신호가 있어서 유닛의 시작위치를 알려 주는데, 이 SOU 신호는 패킷의 시작 유닛일 경우에는 도1과 같이 유닛의 시작에서 두 클럭동안 '1'을 유지하며, 그렇지 않을 경우에는 유닛의 시작위치에서 한 클럭 동안만 '1'의 상태를 유지한다.
각 유닛의 첫번째 10비트 데이터는 오버헤드로서 제어 정보를 가지고 있고, 첫번째 유닛의 상위 두 비트도 모두 제어 오버헤드이다. 도1에서 RGA(Requested Group Address)는 16개의 포트 그룹으로 보았을 때 스위칭되어야 할 목적지 포트 그룹을 나타내는 목적지 그룹 어드레스이고, RT(Routing Tag)는 원래의 스위치 보드에서 보았을 때 32개 또는 64개의 포트 중 최종 목적지를 나타내는 라우팅 태그인데, 병렬 스트림으로 나뉘는 과정에서 32비트의 1/2 또는 64비트의 1/4 씩 나뉘어 전달된다. 라우팅 태그(RT)는 처음 다중화 처리부(21)에서 해당 목적지 포트 그룹인 목적지 그룹 어드레스(RGA)를 만드는데 사용되고, 16 비트씩 각각 다른 병렬 스트림에 실려서 스위칭되는 패킷에 실려 역다중화 처리부(23)에 전달된 후에, 역다중화 처리부(23)에서 다시 32비트 또는 64비트로 모아진 후에 최종 목적지 포트를 알아내기 위해 사용된다. 셀유닛수(NCU: Number of Cell Unit)는 해당 패킷이 몇 개의 유닛으로 구성되었는지를 나타낸다. 우선순위(Pri: Priority)는 해당 패킷의 우선순위를 나타낸다. 패킷의 시작 유닛을 제외한 나머지 유닛의 제어정보에는 하위 두 비트에 A와 E 비트를 가지고 있는데, A비트는 해당 유닛이 유효(Available)한 데이터를 가지고 있는지를 나타내며, 패킷의 중간에 유효하지 않은 빈 유닛이 위치할 수도 있다. 또한 E 비트는 해당 유닛의 패킷의 마지막 유닛인지를 나타낸다.
이와 같이 하나의 패킷은 여러개의 유닛으로 분리되어 병렬로 2개 또는 4개의 스위치칩 SE-C(22)에 입력되고, 병렬로 같은 시간에 스위칭되어 다시 같은 형태로 출력된 후에 원래의 패킷으로 만들어진다.
두개의 스위치 칩인 SE-C 칩(22)을 병렬로 사용하여, 622Mbps의 포트 32개에 대해서 스위칭을 하는 과정을 도2를 참조하여 설명한다.
도2는 본 발명에 따른 가변길이 패킷 스위칭 장치의 개략적인 전체 블록 구성이다.
20Gbps 시스템에서는 하나의 다중화 처리부(21)가 두 개의 600Mbps 입력 포트를 담당하고, 각 포트에서 입력된 데이터는 분리되어, 두 개의 스위치 칩(22)의 동일한 포트로 병렬로 출력된다. 그러니까 스위치 장치의 포트 0 ~ 31 중에서 포트 0과 1로 들어 온 데이터는 다중화 처리부(21) 내부에서 패킷 단위로 다중화 된 후, 한 개의 패킷이 다시 두개의 데이터로 나뉘어져서, 두개의 스위치 칩(22)의 포트 0로 각각 입력되는 것이다. 이렇게 분리되어 스위치를 거친 데이터는 동일한 처리를 통하여, 예를 들어, 포트 0에서 31 중에서 6이나 7로 가는 경우 각각 스위치 칩(22)의 포트 3으로 출력되는데(같은 패킷에 해당하는 데이터), 해당 역다중화 처리부(23)에 입력되어 32비트 라우팅 태그가 다시 조합된 후에 라우팅 태그에 따라 다시 시스템 포트6이나 7로 전달된다.
이와 같이 20Gbps 스위칭에서는 하나의 패킷이 두개의 스위치 칩(22)으로 나뉘어 처리되고, 40Gbps 스위칭에서는 하나의 패킷이 네 개의 스위치 칩으로 나뉘어 처리된다. 이 때, 페이로드를 어떻게 나눌 것인가에는 제약이 없다. 한 방법으로서 하나의 패킷이 16비트로 변환되어 상하 8비트 단위로 나뉘어서 스위칭 되도록 할 수 있다.
이러한 다중화 처리부와 역다중화 처리부의 기능은 FPGA에 구현될 수도 있고, ASIC에 구현될 수도 있으며, 여러 개의 포트를 처리하는 회로가 하나의 칩에 구현될 수 있다. 예를 들어, 4포트 처리하는 다중화 처리부와 역다중화 처리부를 하나의 FPGA에 구현할 수 있고, 8포트 처리하는 다중화 처리부와 역다중화 처리부를 하나의 FPGA에 구현할 수도 있다.
백 플레인에서 입력되고 백플레인으로 출력되는 셀 포맷은 일반적인 형태를가질 수 있는데, 예를 들어, 도3과 같이 정해질 수 있다.
병렬 백플레인을 사용할 경우 패킷의 시작을 나타내는 SOP(Start of Packet) 신호를 사용할 수도 있으나, 직렬 인터페이스를 사용할 경우에는 별도의 시작신호가 없으므로, 수신부에서 패킷의 시작을 알 수 있도록 해 주어야 한다. 본 발명에서는 기본 길이를 64바이트로 하고, 패킷이 있을 경우에는 도3과 같은 가변길이 패킷을 전송하고, 전송할 패킷이 없을 경우에는 길이가 64바이트인 휴지(idle) 패킷을 전송하도록 한다. 패킷의 시작패턴은 데이터가 있을 경우에는 "FF"이며, 이 때 패킷의 길이는 length에 의해 정해진다. 전송할 패킷이 없는 경우에는 패킷의 시작패턴은 "FE"이며, 이 때 패킷의 길이는 64이다. 백플레인 수신부에서의 패킷 경계식별 방법에 대해서는 이 후에 설명하기로 한다.
이 경우 백플레인에서 수신부가 패킷의 경계식별을 하는 방법으로는 ITU-T I.432에 나오는 셀 경계식별과 비슷한 방법을 사용한다. 백플레인 수신부에서는 상태머신을 두어 패킷경계식별 상태를 관리하게 되는데, 초기에는 추적상태에 있게 되고, 추적상태(hunt)에서 시작패턴을 한 번 찾으면 준동기상태(pre-sync)로 천이하며, 그 다음 패킷의 시작위치에서 다시 시작패턴을 검사하는 방식으로 연속 6번 이상 시작패턴이 맞으면 동기상태(sync)로 천이한다. 준동기상태에서 시작패턴이 나와야 하는 위치에서 패턴이 틀리면, 다시 추적상태(hunt)로 가게 된다. 동기상태에서는 휴지(idle) 패킷의 경우 길이가 64이고, 유효패킷의 경우 길이정보를 추출하여 길이를 알아내어 다음 패킷이 나오는 시점에 다시 시작패턴을 검사하는 방식으로 동기상태를 계속 검사하게 된다. 만약, 동기상태에서 7번 이상 시작패턴이틀리게 되면 추적상태로 가게 된다.
Length[7:0]은 라우팅 태그와 BIP(Parity)사이에 위치하는 패킷의 길이를 나타내며, Routing Tag[31:0]는 0에서 31번 시스템 포트 중에서 해당 패킷이 전달되어야 할 포트를 비트 맵으로 나타낸다. 라우팅 태그에 두 비트 이상 1이 있는 경우 해당 포트로 동시에 패킷이 전달되어야 함을 뜻한다. 또한 Priority[7:0]는 해당 패킷의 우선순위를 나타내는데, 스위치 보드 내의 두번째 단계에서는 패킷을 보관한 후에 우선순위대로 스케쥴링을 하여 출력하도록 설계되어 있다.
위의 백플레인 상의 패킷이 가지고 있는 라우팅 태그(RT)는 다중화 처리부를 통과하면서 다시 두 비트씩 논리합(OR)하여 16비트의 RGA로 만들어지는데, 실제로 스위치 칩에서 스위칭에 사용되는 값은 이 RGA값이다. 예를 들어, 시스템 포트 3으로 가는 셀은 RGA[15:0]에서 RGA[1]가 1로 변환된다. 그러면 이 셀은 스위치 칩을 통과해서 스위치 칩의 포트 1로 나오게 되고, 나중에 역다중화 처리부에서 본래의 라우팅 태그 32비트가 다시 모아져서 포트그룹에 해당하는 부분 라우팅 태그인 RTAG[3:2]을 보고 다시 시스템 포트 3으로 나가는 것이다. 예를 들어, 두개의 스위치 칩을 병렬로 사용하여 20Gbps 스위칭을 구현하는 경우에 백 플레인에서 입력된 패킷은 다중화 처리부를 통과하면서 도4와 같이 변환된다.
먼저, 예비(reserved) 바이트는 없어지고, Length부터 시작하여 교대로 16바이트의 상,하로 옮겨지며, 마지막 패리티 바이트도 없어진다. 라우팅 태그와 패리티(Parity)사이의 바이트 수, 즉 Length가 홀수일 경우에는 하위 바이트에 패리티(Parity) 바이트가 그대로 전달된다. 이 패리티 바이트는 이미 다중화 처리부의 입력부에서 에러를 검출하기 위해 사용되고 난 후이다. 이렇게 16비트 변환된 데이터는 상하로 나뉘고, 매 16바이트마다 앞부분의 1 바이트의 오버헤드가 붙게 된다. 이 오버헤드는 패킷의 시작(BOP)에 해당하는 유닛일 경우 셀유닛수(NCU), 즉 해당 패킷에 존재하는 유닛의 수와 우선순위(PRI)를 나타낸다. 패킷의 연속(COP: Continuation of Packet)일 경우에는 하위 2비트에 해당 유닛이 유효(valid)한지 아닌지의 정보와 함께 패킷의 끝(EOP: End of Packet) 유닛인지 아닌지 정보를 담게 된다. 또한 이 데이터에 상위부분에 2비트의 오버헤드가 붙게 되는데, 패킷의 시작(BOP) 유닛에서는 이 값은 RGA(스위치 칩 내부에서 사용하는 라우팅 태그 값)와 라우팅 태그(RT)(입력된 32비트 라우팅 태그에서 16비트씩 선택된 값)를 포함하게 된다.
이렇게 다중화 처리부를 통과한 데이터는 상하의 스위치 칩에 각각 나뉘어서 입력되는데, 17단위의 유닛으로 구성되고, 주기적으로 유닛의 시작점을 나타내는 펄스를 가지고 있게 된다. 이 펄스는 패킷의 시작(BOP) 부분에서 2 클럭동안 유지되고, 나머지 부분에서는 1 클럭동안 유지된다. 마찬가지로, 스위치 칩을 통과해서 다시 역다중화 처리부로 모여 입력되는 패킷은 도5와 같이 오버헤드가 제거되고 원래의 패킷 모양으로 구성된다.
다음의 전술한 바와 같은 본 발명을 구체적으로 구현한 예를 설명한다.
도6은 본 발명에 따른 가변길이 패킷 ATM 스위칭 장치의 구성 예를 도시한 것이다.
도6에 도시된 스위칭 장치는, 중앙에 2개의 스위치 칩이 있으며, 백플레인과스위치 칩들 사이에 다중/역다중 처리부 기능을 하는 4개의 FPGA가 있다. 4개의 FPGA는 각각 Agere사의 ORT8850H 칩이며, 하나의 칩 안에는 8개의 포트에 대한 다중화 처리부와 역다중화 처리부의 회로가 구현되었다. 즉, 하나의 FPGA안에 4개의 다중화 처리부와 역다중화 처리부가 들어있고, 하나의 다중화 처리부와 역다중화 처리부가 2개의 포트를 담당한다. 32개의 포트에 대해서 스위칭을 하는 20Gbps 스위칭을 할 경우 위와 같이 FPGA 하나에 8포트 처리하는 회로를 구현한다고 하면 보드 전체의 구성은 도6과 같다.
도7은 도6의 FPGA의 상세 구성을 도시한 것이다.
FPGA는 8개의 포트에 대해 백플레인 인터페이스를 담당하는 코어(300)와, 8개의 포트에 대해서 스위칭의 첫번째 단계인 다중화 처리부와 세번째 단계인 역다중화 처리부를 담당하는 다중/역다중 처리부(100), 8개의 포트에 대해서 백플레인 인터페이스 코어(300)와 다중/역다중 처리부(100)의 인터페이스를 담당하는 인터페이스부(200)로 구성된다. 앞에서 설명한 바와 같이 8개의 포트의 회로를 하나의 FPGA에 구현할 수도 있고, 편의에 따라 다른 갯수를 지원할 수도 있다.
도7은 백플레인에 고속 직렬 인터페이스를 사용하는 경우에 대한 것으로서, 백플레인이 pseudo-STM(백플레인 용도로 사용되며, 일부 오버헤드를 사용하지 않고 전송속도가 622Mbps보다 높은 850Mbps인 STM 전송방식) 프레임을 사용하는 방식을 사용하는 경우에, 그에 대한 SPE(Synchronous Payload Envelope, G.709 규격참조) 구간신호부분에 데이터를 실어 보내고 받는 것을 표시한다.
인터페이스부(200)는 8개의 포트에 대해서 위의 다중/역다중 처리부(100)를백플레인 직렬 인터페이스 코어(300)에 접속하는 기능을 담당한다. 본 발명에서 사용하는 백플레인 인터페이스는 Agere사의 ORT8850H FPSC 내부에 존재하며, STM 신호와 비슷하지만, 전송속도만 850Mbps이고, 일부 오버헤드만 사용하지 않는 pseudo - STM 방식이며, 이 전송을 담당하는 프레이머 및 클럭, 데이터 복원 기능을 가지는 코어의 송신부는 FPGA 로직으로부터 프레임의 시작을 나타내는 SYS_FP를 받도록 되어 있고, 이에 해당하는 SPE구간에서 FPGA 로직으로부터 송신할 데이터를 받아 직렬신호로 보내도록 되어 있다. 또한, 이 코어의 수신부에서는 수신된 pseudo-STM신호에서 데이터를 복구하여 SPE신호와 함께 FPGA 로직으로 전달하도록 되어 있다.
다중/역다중 처리부(100)와 백플레인 인터페이스 코어(300) 사이에서 전달기능을 담당하는 인터페이스부(200)는 송신부에 있어서는 직렬인터페이스 코어에 SYS_FP신호를 보내고, 그에 대한 각 포트별 SPE신호(같아도 상관없음)를 역다중처리부에 보내어 sian0_8p 부분의 코어측 회로가 해당 구간에만 동작할 수 있도록 하며, SPE 신호에 해당하는 데이터를 백플레인 인터페이스 코어(300)에 전달하고, 수신부에 있어서는 SPE신호와 함께 전달되는 패킷에서 패킷의 시작을 찾아서 SOP(start of packet) 신호와 함께 다중화 처리부로 전달한다. 백플레인 인터페이스 코어(300)에서 전달되는 SPE신호는 sian0_8p부분의 코어측 회로에도 전달되어 해당 구간에만 동작되도록 한다.
2포트에 해당하는 인그레스 데이터(라인카드에서 스위치카드로 입력되는 데이터)를 처리하는 것이 다중화 처리부가 되고, 2 포트에 해당하는 이그레스데이터(스위치카드에서 라인카드로 출력되는 데이터)를 처리하는 것이 역다중화 처리부가 되며, FPGA 내부에는 이러한 다중화 처리부와 역다중화 처리부가 짝이 되어서 각각 네 개 존재한다. 따라서, 하나의 FPGA는 여덟 개의 포트를 처리하도록 되어 있다.
직렬 백플레인을 사용할 경우에는 도7에 나타낸 바와 같이 직렬 백플레인 인터페이스 코어(300)와 다중화 처리부, 역다중화 처리부 회로 사이의 적응기능을 담당하는 회로가 있어야 한다. 그러므로, 직렬 백플레인으로서 Agere Systems사에서 나오는 ORT8850 코어를 사용하는 경우에 대해서 설명한다.
스위치 장치에서 직렬 백플레인 ORT8850을 통해 라인카드와 통신하기 위해서는 도8에 도시된 바와 같은 CDR(Clock and Data Receover)+STM(Synchronous Transport Module) 블럭과 인터페이스해야 한다. 송신측으로는 8채널에 대해서 데이터와 PAR의 9비트 데이터를 넣어 주어야 하며, 프레임의 시작점을 지시하기 위하여 SYS_FP를 넣어 주어야 한다. 이러한 송신부는 코어에서 제공되는 SYS_CLK에 의해 이루어진다. 8B10B용 K-control 입력은 사용되지 않는다. OLT와 같이 일반적인 데이터 전송용으로 사용될 때는 DATA, PAR, SYS_FP 만 삽입하면 되는데, 대신에 SYS_FP 신호를 기준으로 볼 때의 SPE 구간에만 데이터를 넘겨 주어야 한다. SPE 구간 외에는 STM 코어가 TOH를 삽입하도록 되어 있다.
수신측으로는 8채널에 대해서 DATA, LINE_FP, SPE 구간신호, C1J1 시작점, PAR, 그리고 EN신호가 입력된다. Pointer interpreter를 바이패스하는 경우에는 8개의 복구된 클럭이 나온다. TOH 블럭에서는 TOH값이 추출되어 TOH_CK_EN과 TOH_FP신호와 함께 나오도록 되어 있다. OLT와 같이 일반적인 데이터 전송용으로 사용될 때는 DATA, PAR, SPE만 사용하면 된다. 또한, 보호 스위칭(Protection switching)을 위한 4개의 입력을 제공해 주어야 한다.
위와 같은 STM/CDR 코어를 사용할 경우에(이 때 전달되는 데이터의 포맷은 Lucent ASX, ACE를 사용하는 경우와 Erlang사의 SIAN-1을 사용하는 경우에 따라 다르다.) 수신부의 경우에는 SPE신호와 함께 오는 DATA, PAR 신호를 받아서 처리하면 되고, 송신부의 경우에는 SYS_FP신호와 함께 DATA, PAR 만 전달해 주면 된다.
일반적인 ATM 셀 처리회로가 ORT8850의 STM/CDR 코어와 인터페이스 할 수 있도록 적응(adaptation) 로직을 설계하였다. 이 회로는 FPGA 내에 용이한 구현을 위하여, 또 다중화 처리부와 역다중화 처리부가 FIFO를 이미 가지고 있으므로, 더 이상의 FIFO가 필요없도록 설계되는 것이 좋다.
도9는 한 포트에 대한 도7의 인터페이스부(200)의 상세 구성을 나타낸다.
송신할 경우 FPGA 로직에서는 tx_spe구간에 대해서 송신셀 인에이블(tx_cell_en), 송신셀 시작(tx_cell_soc), 송신셀 데이터(tx_cell_data)만 주면 되고, 셀의 길이는 64바이트를 가정한다. 반대로 수신할 경우에는 rx_spe 구간신호와 함께 수신셀 인에이블(rx_cell_en), 수신셀 시작(rx_cell_soc), 수신셀 데이터(rx_cell_data)만 출력되고 길이는 64바이트이다. cell_en은 active high이며, cell_en은 셀 데이터가 있는 구간에서만 high가 되고, cell_soc는 셀 데이터의 처음 바이트 부분에서만 1이다. 송신과 수신에 대해 각각 spe구간에만 동작하게 된다.
도10은 도9의 인터페이스부의 송신부 로직(220)의 상세 구성도이다.
여기서, 셀은 ATM 셀 뿐만 아니라 일반적인 길이의 패킷을 의미할 수 있다. 도10에서 spe 신호 발생기(221)는 SPE 신호를 발생하며, SPE 구간 중에 spe 맵퍼(222)로부터 오는 데이터를 래치(latch)하여 패리티(parity) 값과 함께 코어(300)쪽으로 전달해 준다. 이와 동시에 sys_fp 신호도 발생하여 전달함으로써, 코어(300)로 하여금 프레임의 시작점을 알 수 있도록 한다. 이를 위하여 9x270x4의 STM 프레임의 타이밍 정보를 얻기 위하여 카운터를 다단 구성하여 필요한 SPE신호를 발생하고, 역시 카운터를 디코드하여 sys_fp 신호를 만든다. Spe 신호 발생기와 spe 맵퍼 사이의 타이밍은 도11과 같다.
Spe 맵퍼(222)는 spe가 0인 구간에서는 동작하지 않는다. Spe 맵퍼(222)는 cell_en, cell_soc, cell_data를 받아, 패킷의 시작위치에서 cell_en이 1이면 유효한 셀의 시작패턴을 삽입하고, 길이를 추출하여 관찰하여 다음 패킷의 시작위치에서 cell_soc와 함께 cell_en을 검사하여 다시 유효할 패킷의 시작패턴을 삽입하든지 아니면 휴지(idle) 패킷의 시작패턴을 삽입한다.
도11에서 spe_x는 FPGA 로직쪽으로 보내는 SPE 신호이고, DATA_I, PAR_I는 FPGA 로직으로부터 받는 데이터와 패리티 비트이다. SYS_FP_X 신호는 SPE_X와 같은 기준을 가지는 SPE 신호 발생기 내부의 SYS_FP(STM 프레임의 시작위치를 나타내는 신호)이다. SPE 신호 발생기(도10의 221)는 SPE_X 구간에서 DATA_I와 PAR_I를 받아 리타이밍(retiming)하여 STM 코어측으로 출력한다. 또한 SYS_FP_X신호를 한 클럭 지연시켜 패리티 값과 함께 STM 코어측으로 제공한다.
도12는 도9 인터페이스부의 수신부(210)의 상세 구성도이다.
셀경계식별기(211)는 코어(300)에서 SPE신호를 받아 spe 구간에만 동작하며, 셀의 경계를 찾아서 spe_cell_soc와 spe_cell_data 신호를 만들어 spe 디맵퍼(212)에 전달하는 기능을 한다. Spe_cell_soc와 spe_cell_data는 spe구간에만 존재하는 신호이며, 나머지 부분에서는 변하지 않는다. 간편하게 셀의 경계를 찾기 위해서 앞에 설명한 대로 셀의 시작패턴을 검사하고, 유효셀인 경우는 추출된 길이정보를 사용하고, 휴지(idle) 셀인 경우에는 64를 기본길이를 생각하여, 다음 패킷의 시작위치에서 시작패턴을 검사하는 방식으로, 셀의 경계를 식별하여 동기를 획득한다. 유효(valid) 셀의 경우 처음 바이트가 "FF"인 것으로, 휴지(Idle)셀의 경우에는 처음 바이트가 "FE"인 것으로 정하였다. 셀경계식별기(211)는 셀 경계식별을 위해 패킷의 길이를 검사하면서 시작 패턴(상위 7비트가 all 1인 것)을 검사하여 경계식별 동기신호를 운용한다. 이 동기는 ATM 물리계층에서 셀 경계 식별하는 상태머신(statemachine)과 같이 추적상태(hunt), 준동기상태(presync), 동기상태(sync)를 가지며, 추적상태(hunt)에서 시작패턴을 바이트 단위로 찾고, 일단 한 번 찾으면 준동기상태(presync)로 천이하여 셀 단위로 시작패턴을 검사하여 6번 연속으로 일치하면 동기상태(sync)로 천이한다. 준동기상태에서 시작패턴이 틀리면 다시 추적상태(hunt)로 돌아간다. 또한 동기상태에서는 7번 연속 시작패턴이 틀리면 추적상태로 빠지도록 되어 있다. (하위 1비트는 유효(valid) 셀인지 휴지(idle)셀인지 구분하기 위함). 동기획득에 있어 상태천이 조건으로 사용되는 연속 성공 및 실패 횟수는 변할 수 있다.
spe 디맵퍼(212)는 spe 구간신호와 함께 spe_cell_data, spe_cell_soc를 받아 soc부분에서 휴지(idle) 패킷인지 검사하고, 휴지(idle) 패킷이 아닌 경우에는 cell_en 신호와 함께 FPGA 로직쪽으로 전달한다. 여기서, 이 부분은 64 바이트 슬롯을 두지 않고 처리하도록 수정할 수도 있다.
다음은 다중화 처리부와 역다중화 처리부에 대해서 설명한다.
도13은 두 개의 포트를 처리하는 다중/역다중 처리부의 상세 구성도이다.
도13에서 직렬 백플레인을 쓸 경우 인그레스 백프레슈어(132)나 이그레스 백프레슈어(131)는 백플레인에서 별도의 신호선을 사용하지 않고, 각각 이그레스 데이터 패킷(133)이나 인그레스 데이터 패킷(134)에 실려서 전달될 수 있다. 이 경우 스위치로부터 라인카드로 전달되는 인그레스 백프레슈어(ibpin0,ibpin1)는 이그레스 데이터에 실려 전달되면 되고, 라인카드로부터 스위치로 전달되는 이그레스 백프레슈어(ebpin0,ebpin1)는 인그레스 데이터에 실려 전달되면 된다.
도14는 다중화 처리부의 상세 구성도이다.
백플레인 쪽부터 시작하여 입력쓰기블록(111)은 SPE 구간신호를 클럭인에이블로 사용하여 동작하며, 입력된 데이터에서 예비(RESERVED)바이트를 제외하고, 두 바이트씩 모아 16비트로 바꾸어 FIFO(112)에 쓰는 기능을 담당한다. 이와 동시에 하나의 유닛이 쓰여질 때마다(16 워드) inc펄스를 발생하여 준다. 또한 패킷의 처음 부분에서 length 정보를 추출하여 워드의 수를 알아내고, FIFO(112)에 쓰면서 워드 단위로 감소시키는데 패킷의 마지막 유닛을 쓴 경우에는 16워드가 되지 않았더라도 마지막 워드를 쓰면서 inc 펄스를 발생한다.
도15a와 도15b는 패킷의 길이(라우팅 태그와 BIP사이의 바이트 수)가 짝수일 때와 홀수일 때의 예를 들어 이러한 입력쓰기블록(111)의 타이밍을 나타낸 도면이다.
데이터를 쓰는 클럭과 데이터를 읽는 클럭이 다른 경우에는 클럭의 경계에서 이 INC 펄스를 읽는 클럭에 동기시키는 것이 필요하다. 도15에서는 충분히 긴 펄스를 만들어 다른 클럭에서 전이(transition)를 검출하여 사용하도록 하였다.
입력쓰기블록(111) 내부에서 preCNT값은 SOC로 1이 되고, 계속 증가하게 하다가 legnthT+1이 되면 0으로 되고, 0 에서는 멈추게 하AU, CNT값은 preCNT값의 지연된 값이다. length는 추출된 값으로서 라우팅 태그와 BIP사이에 있는 바이트 수가 되고, lengthT는 이 값에 6을 더한 값이다. 패킷의 길이가 홀수이거나 짝수일 때와 상관없이 쓰기가 이루어지도록 하기 위한 조건은, 첫째 lengthT가 짝수이면, CNT가 홀수에서 CNT 상위 7비트가 lengthT의 상위 7 비트보다 작을 때, 둘째 lengthT가 홀수이면, CNT가 홀수에서 CNT 상위 7비트가 lengthT의 상위 7 비트보다 작거나 같을 때가 된다.
입력읽기블록(113)은 SPE 구간신호를 클럭인에이블로 하여 전달되는 inc0와 inc1 펄스를 받아 스위치 칩의 동작 클럭에 동기시켜, 각 FIFO(112)에 저장된 유닛의 수를 증가시키며, 이 증가신호는 SPE 구간신호에만 의미가 있다. 이 값이 non zero값을 가지면, 해당 FIFO에서 데이터를 읽어 입력 포맷팅/병렬 분할블록(114)으로 전달하는 기능을 담당하는데, 두 FIFO(112)에 모두 패킷이 있을 경우에는 같은 우선순위로 교대로 서비스한다.
읽는 유닛이 패킷의 처음 유닛일 경우에는 length정보를 추출하여 워드의 수를 계산하여 감소시키고, 패킷의 마지막 유닛을 읽고 있을 경우에는(워드의 수로 알 수 있다.) 16 워드에서 모자라는 부분은 0으로 패딩하여 출력한다. 또한, 유닛의 시작 위치에 주기적으로 셀의 시작신호(soc)를 출력하고, 패킷의 시작에 해당하는 유닛의 경우에는 패킷의 시작신호(sop)를 출력해 준다. 또한 오버헤드가 삽입되어야 하는 위치에 해당하는 곳에서는 미리 FIFO를 읽지 않음으로써, 건너 뛰게 하고 0으로 패딩하여 출력한다. 또한, 뒷단인 입력 포맷팅/병렬 분할블록(114)에서의 오버헤드 생성을 위해서 패킷의 시작에 해당하는 유닛에 대해서는 라우팅 태그(RT)값과 NCU(number of units in the packet)값을 만들어 전달해 준다. 입력읽기블록과 입력 포맷팅/병렬 분할블록 사이의 인터페이스는 도16과 같다.
입력읽기블록(113)에서 하나의 FIFO를 읽어, 이와 같은 인터페이스에 맞추어 데이터를 보내는 타이밍은 도17과 같다.
도면에서 SmpEn은 유닛의 시작 위상을 정해주기 위해 주기적으로 입력되는 신호이며, 이 값으로 PreCnt를 0으로 하여 중가시키고, Cnt는 PreCnt의 지연된 값이다. WordCnt를 증가시키기 위한 WordCntEn신호와 FIFO읽기 신호인 Read신호는 도17과 같이 발생한다. 데이터가 읽혀져서 리타임되고 나면, 오버헤드 위치에는 공백을 채우고, FIFO에서 읽힌 데이터를 다중화하여 출력하게 된다. 위에서 읽기신호를 제어하기 위해 WordCnt값 외에 새로운 패킷의 읽기가 시작됨을 뜻하는NewStart, 현재 어느 FIFO를 읽고 있는지 나타내는 nowis0, nowis1 등 플래그 들이 사용된다.
입력 포맷팅/병렬 분할블록(114)은 입력읽기블록(113)으로부터 입력되는 16비트 형태의 데이터를 8비트로 나누어 상위와 하위의 스위치 칩에 전달하면서 비어있는 오버헤드 위치에 rtag와 ncu값을 이용하여 스위치 칩에서 사용할 값을 채워넣는 기능을 수행한다. 입력 포맷팅/병렬분할블록(114)의 타이밍은 도18과 같다.
직렬 백플레인을 사용하고 별도의 백프레슈어 신호선이 없을 경우에는 라인카드로부터 스위치로 오는 이그레스 백프레슈어는 인그레스 데이터에 실려 전달되게 된다. 이 경우에는 입력쓰기블록 내부에 이그레스 백프레슈어를 추출하는 기능과 함께 추출된 정보를 이용하여 스위치 칩이 받을 수 있는 형태로 백프레슈어 신호를 생성하여 스위치 칩으로 전달하는 기능이 추가된다.
다음은, 역다중화 처리부의 구조 및 동작을 살펴본다.
역다중화 처리부는 도19와 같이 스위치 칩 ASIC에서 각각 입력되는 데이터를 합하여 목적지에 따라 16비트 형태로 해당 출력 FIFO(122)에 써 주는 출력쓰기블록(121), 출력 포트별로 데이터를 저장하는 두개의 16비트 FIFO(122)(SE-C 칩을 네개 사용할 경우 폭은 32비트가 된다), 그리고 각각의 FIFO에 대응되게 구비되어, FIFO(122)에서 데이터를 읽어 백 플레인으로 전달하는 출력포맷변환블록(123)으로 구성된다.
출력쓰기블록(121)은 두 스위치 칩으로부터 입력되는 데이터(동일한 패킷에 해당하는 데이터임)를 합하여 목적지에 따라 16비트 형태로 해당 출력 FIFO(122)에 써 주는 역할을 하는데, 입력되는 유닛이 패킷의 시작 유닛일 경우에는 라우팅 태그 부분을 추출한 후에 출력포트에 해당하는 두 비트의 라우팅 정보를 보고, 어떤포트로 나갈 것인지의 정보를 알아내며, 또한 패킷의 길이정보를 추출하여 몇 개의 워드가 쓰여져야 하는지 알아낸다. 처음 3 워드에서 얻어진 이 정보를 이용해서 스위치 칩 용도의 오버헤드를 제외한 부분을 16비트 형태로 해당하는 FIFO에 써 주게 된다. 또는, 여기서는 백플레인의 속도가 스위치 칩의 동작속도보다 더 빠를 경우를 대비하여 유닛이 아닌 패킷단위로 증가펄스(inc)를 출력하여 출력포맷 변환블록(123)으로 전달한다.
도20a는 패킷의 길이가 50일 경우의 출력쓰기블록의 타이밍을 나타내고, 도 20b는 패킷의 길이가 51일 경우의 타이밍을 나타낸다.
출력포맷변환블록(123)은 inc 펄스를 받아 내부의 카운터(패킷의 수)를 증가시키고, 1개 이상의 패킷이 FIFO에 존재할 경우에 FIFO의 패킷을 읽어, 백 플레인으로 전달하는 기능을 담당한다. 이 때, 16비트 단위로 읽어 처음 8비트의 백플레인 신호 형태로 내 보내므로, 2클럭에 한 번 읽기가 일어난다. 처음 읽은 세 워드는 백 플레인 신호의 오버헤드를 다시 만드는데 사용된다.
도21은 출력포맷변환블록의 타이밍을 나타낸다.
출력포맷변환블록 내부에는 도21과 같이 토글되는 위상신호가 있고, 이 위상(phase)신호가 0일 때 플래그(flag)가 1이면 상태(state)를 1로 바꾸고, 이 상태(state)에서 읽기 카운트가 final_cnt[8:1]과 같아질 때까지 머무르다가 상태(state) 2를 거쳐서 다시 상태(state) 0으로 오는 상태머신(state machine)이 있다. 상태(State) 2동안에는 갭(gap)신호가 있고, 이 상태(state)와 위상(phase)신호를 이용해서 FIFO(122)에서 읽혀진 데이터를 상하 바이트 선택 및 BIP를 삽입을 하게 된다.
스위치 칩에서 출력되는 인그레스 백프레슈어는 20Gbps 스위칭을 할 경우 8개의 유닛에 걸쳐 한 프레임이 입력되며, 두 칩에서 나뉘어 입력되는데, 이그레스 측의 ESOU값으로 첫번째 유닛을 나타낸다. 직렬 백플레인을 사용하고, 별도의 백프레슈어 신호선이 없을 경우에는 인그레스 백프레슈어는 이그레스 데이터에 실려 라인카드로 전달되게 되는데, 이 경우 FIFO 읽기블록 내부에는 인그레스 백프레슈어를 전달하는 기능을 포함한다. 출력포맷변환블록은 두 개의 스위치 ASIC에서 입력되는 두개의 인그레스 백프레슈어 신호를 받아, 이 값에서 전체적인 백프레슈어, 16개의 포트 각각에 대한 백프레슈어 값, 8개의 등급 각각에 대한 백프레슈어 값을 추출하여, 이 값을 라인카드에서 처리할 수 있는 형태로 만들어 전용 신호선을 통해, 또는 이그레스 데이터의 오버헤드 부분에 실어 전달한다.
상기와 같은 본 발명은 20Gb/s 용량의 622Mb/s 16x16포트(또는 채널) 또는 2.5Gb/s 4x4포트(또는 채널)에 대한 스위칭을 소프트웨어의 개입없이 non-blocking으로 고속 처리할 수 있다. 또한 ATM, IP등의 프로토콜에 관계없이 ATM, 10/100 이더넷, GE, packet over SDH 등의 다양한 신호를 수용하며, 간단하게 40Gb/s까지의 용량 확장이 가능하다. 그리고, 본 발명은 ATM-PON 장치의 OLT에서 20Gb/s급 ATM분배 스위칭 기능의 단일 보드화 구현이 가능하고, 보드간 연결의 고속화로 신호전달의 신뢰도 향상 및 단순화 구현이 가능하여 비용 효율적인 OLT 장치를 구성할 수 있다.

Claims (5)

  1. ATM 셀이나 가변길이 패킷 데이터를 병렬로 스위칭하는 적어도 두 개 이상의 스위칭수단;
    상기 스위칭수단의 전단에 위치하여 라인카드로부터 상기 스위칭수단으로 입력되는 데이터를 패킷 단위로 다중화 한 후, 한 개의 패킷을 상기 스위칭수단의 개수만큼 분할하여 상기 스위칭수단에 제공하는 복수개의 다중화 처리수단; 및
    상기 스위칭수단의 후단에 위치하여 상기 적어도 두 개 이상의 스위칭수단에 의해 각각 병렬로 스위칭되어 입력되는 패킷을 모아 상기 라인카드에 적합한 포맷으로 변환한 후 출력하는 역다중화 처리수단을 포함하는 것을 특징으로 하는 가변길이 패킷 스위칭장치.
  2. 제 1 항에 있어서,
    상기 다중화 처리수단은,
    상기 라인카드로부터 상기 스위치수단으로 입력되는 데이터를 각 포트에 대해 8비트 데이터를 두 배, 또는 네 배의 비트 폭으로 바꾸어 입력포트별 FIFO에 저장하는 입력쓰기수단;
    상기 입력쓰기수단에서 쓰는 폭이 넓어진 입력 데이터를 저장하기 위해 포트별로 구비된 FIFO;
    두 개 또는 네 개의 FIFO에 대해 하나씩 구비되어, 두 개 또는 네 개의 FIFO를 관찰하면서 어떤 FIFO에 입력된 데이터가 있을 때 해당 FIFO를 읽어내고, 읽으면서 패킷의 앞부분에서 추출한 제어정보도 함께 정렬시켜 출력하는 입력읽기수단; 및
    상기 입력읽기수단에서부터 전달되어 오는 데이터를 상기 각 병렬 스위칭수단으로 전달될 부분으로 비트 위치별로 나누고, 라우팅 정보, 우선순위 정보, 패킷의 시작점 정보를 이용하여 오버헤드를 삽입하여 상기 스위칭수단으로 전달하는 입력 포맷팅 및 병렬 분할수단을 포함하되,
    상기 입력읽기수단은, 상기 FIFO에서 읽은 데이터를 상기 입력포맷팅 및 병렬 분할수단으로 전달할 때, 상기 입력포맷팅 및 병렬 분할수단에서 오버헤드가 삽입될 위치에서는 상기 FIFO 읽기를 해당 클럭 동안 읽지 않음으로써, 해당 위치의 데이터는 의미없는 값이 전달되도록 하는 것을 특징으로 하는 가변길이 패킷 스위칭장치.
  3. 제 2 항에 있어서,
    상기 입력쓰기수단은 상기 FIFO의 레벨을 증가시키는 신호를 상기 입력읽기수단에 보내 주고, 상기 증가신호가 상기 스위칭수단에서 사용하는 기본 단위인 17클럭길이의 10비트단위의 유닛 데이터에 대해서 한번 씩 발생되고, 패킷의 마지막 부분에서 하나의 유닛 데이터 분량의 데이터가 없을 경우에도 패딩을 고려하면 하나의 유닛이 되는 것을 고려하여 증가신호를 발생시키며,
    입력읽기수단은 상기 FIFO에 1개 이상의 유닛데이터가 있을 경우 읽어 내기를 시작하고, 패킷의 처음 유닛을 읽어낼 때는 길이정보를 추출하여 내고, 유닛을 하나씩 읽어내다가 길이정보를 이용하여 마지막 유닛을 읽는 경우에는 모자라는 부분에는 패딩 바이트를 삽입하며, 상기 입력 포맷팅 및 병렬 분할수단에서 오버헤드를 삽입할 위치에 대해서는 FIFO을 읽지 않는 것을 특징으로 하는 가변길이 패킷 스위칭장치.
  4. 제 1 항에 있어서,
    상기 역다중화 처리수단은,
    상기 스위칭수단으로부터 병렬로 스위칭된 후에 병렬로 입력되는 데이터를 비트 위치에 맞게 모아서, 상기 모아진 데이터와 같은 데이터 비트 폭을 가지는 두 개 또는 네 개의 FIFO 중에서 최종적으로 보내져야 할 최종 출력포트에 따라 해당하는 FIFO에 곧바로 쓰되, 오버헤드부분에서는 쓰기를 일시적으로 막아 실제 패킷만 버퍼에 저장되도록 하는 출력쓰기수단;
    상기 출력쓰기수단에서 쓰는 폭이 넓어진 출력 데이터를 저장하기 위해 최종 포트별로 존재하는 두 개 또는 네 개의 FIFO;
    상기 각 FIFO에 대해 하나씩 존재하면서 상기 FIFO의 상태를 관찰하여 저장된 데이터가 존재하는 경우 상기 FIFO의 데이터를 읽어 상기 라인카드에 적합한 포맷으로 변환하여 출력하는 출력 포맷 변환수단을 포함하는 것을 특징으로 하는 가변길이 패킷 스위칭장치.
  5. 제 4 항에 있어서,
    상기 출력쓰기수단은 백플레인 전송속도가 스위치의 속도보다 더 높은 경우 상기 FIFO의 레벨증가신호를 만들 때, 패킷단위로 증가시켜주거나, 패킷의 길이를 고려하여 패킷의 일정 부분 데이터가 저장되었을 대 증가신호를 발생시켜주는 것을 특징으로 하는 가변길이 패킷 스위칭장치.
KR10-2001-0085016A 2001-12-26 2001-12-26 가변길이 패킷 스위칭 장치 KR100440574B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2001-0085016A KR100440574B1 (ko) 2001-12-26 2001-12-26 가변길이 패킷 스위칭 장치
US10/247,174 US7245641B2 (en) 2001-12-26 2002-09-19 Variable length packet switching system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2001-0085016A KR100440574B1 (ko) 2001-12-26 2001-12-26 가변길이 패킷 스위칭 장치

Publications (2)

Publication Number Publication Date
KR20030055466A KR20030055466A (ko) 2003-07-04
KR100440574B1 true KR100440574B1 (ko) 2004-07-21

Family

ID=19717592

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0085016A KR100440574B1 (ko) 2001-12-26 2001-12-26 가변길이 패킷 스위칭 장치

Country Status (2)

Country Link
US (1) US7245641B2 (ko)
KR (1) KR100440574B1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6985943B2 (en) 1998-09-11 2006-01-10 Genesys Telecommunications Laboratories, Inc. Method and apparatus for extended management of state and interaction of a remote knowledge worker from a contact center
USRE46528E1 (en) 1997-11-14 2017-08-29 Genesys Telecommunications Laboratories, Inc. Implementation of call-center outbound dialing capability at a telephony network level
US7907598B2 (en) * 1998-02-17 2011-03-15 Genesys Telecommunication Laboratories, Inc. Method for implementing and executing communication center routing strategies represented in extensible markup language
US7362751B2 (en) * 2001-10-03 2008-04-22 Topside Research, Llc Variable length switch fabric
KR100460148B1 (ko) * 2002-05-14 2004-12-08 주식회사 코어세스 이더넷 기반의 역다중화 시스템 및 그 방법
US7174398B2 (en) * 2003-06-26 2007-02-06 International Business Machines Corporation Method and apparatus for implementing data mapping with shuffle algorithm
US7315549B2 (en) * 2003-07-24 2008-01-01 Intel Corporation Formatting data for a buffer
EP1673683A4 (en) * 2003-10-14 2010-06-02 Raptor Networks Technology Inc MEDIATION SYSTEM WITH DISTRIBUTED COUPLING FIELD
US7570654B2 (en) * 2003-12-22 2009-08-04 Intel Corporation Switching device utilizing requests indicating cumulative amount of data
US7623524B2 (en) * 2003-12-22 2009-11-24 Intel Corporation Scheduling system utilizing pointer perturbation mechanism to improve efficiency
US20050207436A1 (en) * 2004-03-18 2005-09-22 Anujan Varma Switching device based on aggregation of packets
US7742486B2 (en) * 2004-07-26 2010-06-22 Forestay Research, Llc Network interconnect crosspoint switching architecture and method
US8559443B2 (en) 2005-07-22 2013-10-15 Marvell International Ltd. Efficient message switching in a switching apparatus
US9008075B2 (en) 2005-12-22 2015-04-14 Genesys Telecommunications Laboratories, Inc. System and methods for improving interaction routing performance
US20080159145A1 (en) * 2006-12-29 2008-07-03 Raman Muthukrishnan Weighted bandwidth switching device
JP5879246B2 (ja) * 2011-12-19 2016-03-08 アラクサラネットワークス株式会社 ネットワーク中継装置
US10397137B2 (en) * 2016-11-10 2019-08-27 LDA Technologies Ltd. Distributed FPGA solution for high-performance computing in the cloud
US10725789B2 (en) * 2017-11-22 2020-07-28 Electronics And Telecommunications Research Institute Data generation device for parallel processing

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5475679A (en) * 1994-12-08 1995-12-12 Northern Telecom Limited Large capacity ATM switch
JPH10229415A (ja) * 1997-02-14 1998-08-25 Hitachi Ltd Atmスイッチを用いたルータ装置
JPH10294743A (ja) * 1997-04-21 1998-11-04 Nec Corp Atmセルに多重された可変長パケットの多重分離方式及び装置
US6052368A (en) * 1998-05-22 2000-04-18 Cabletron Systems, Inc. Method and apparatus for forwarding variable-length packets between channel-specific packet processors and a crossbar of a multiport switch
JP2000332781A (ja) * 1999-05-19 2000-11-30 Hitachi Ltd 可変長パケットスイッチ

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108311A (en) * 1996-04-29 2000-08-22 Tellabs Operations, Inc. Multichannel ring and star networks with limited channel conversion
KR100236604B1 (ko) 1997-08-23 2000-01-15 서평원 구내교환 시스템에서의 비동기 전송모드 교환기
JPH11154954A (ja) * 1997-11-20 1999-06-08 Hitachi Ltd Atmスイッチ
KR100287908B1 (ko) 1998-12-30 2001-05-02 서평원 사설 교환기의 셀 스위치 시스템

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5475679A (en) * 1994-12-08 1995-12-12 Northern Telecom Limited Large capacity ATM switch
JPH10229415A (ja) * 1997-02-14 1998-08-25 Hitachi Ltd Atmスイッチを用いたルータ装置
JPH10294743A (ja) * 1997-04-21 1998-11-04 Nec Corp Atmセルに多重された可変長パケットの多重分離方式及び装置
US6052368A (en) * 1998-05-22 2000-04-18 Cabletron Systems, Inc. Method and apparatus for forwarding variable-length packets between channel-specific packet processors and a crossbar of a multiport switch
JP2000332781A (ja) * 1999-05-19 2000-11-30 Hitachi Ltd 可変長パケットスイッチ

Also Published As

Publication number Publication date
KR20030055466A (ko) 2003-07-04
US20030118058A1 (en) 2003-06-26
US7245641B2 (en) 2007-07-17

Similar Documents

Publication Publication Date Title
KR100440574B1 (ko) 가변길이 패킷 스위칭 장치
EP1091513B1 (en) Semi transparent tributary for synchronous transmission
EP0468498B1 (en) Routing system capable of effectively processing routing information
US6631130B1 (en) Method and apparatus for switching ATM, TDM, and packet data through a single communications switch while maintaining TDM timing
US7386008B2 (en) Method and apparatus for converting data packets between a higher bandwidth network and a lower bandwidth network having multiple channels
JP4338728B2 (ja) 単一の通信スイッチを経てatm、tdm及びパケットデータを交換するための方法及び装置
US6646983B1 (en) Network switch which supports TDM, ATM, and variable length packet traffic and includes automatic fault/congestion correction
EP1518366B1 (en) Transparent flexible concatenation
US20090141719A1 (en) Transmitting data through commuincation switch
US7061935B1 (en) Method and apparatus for arbitrating bandwidth in a communications switch
US8107362B2 (en) Multi-ring resilient packet ring add/drop device
US7006536B1 (en) System and method for transporting multiple low-bit-rate signals over a single high-bit-rate medium
US7197031B2 (en) Cross-connection of high bandwidth signal traffic across independent parallel shelves
CA2399619C (en) Methods and apparatus for selecting the better cell from redundant streams within a cell-oriented environment
JP2003101502A (ja) 多重転送システム及び装置
EP1124355B1 (en) 10 Gigabit ethernet mappings for a common lan/wan pmd interface
US6636511B1 (en) Method of multicasting data through a communications switch
US7688833B2 (en) Synchronous transmission network node
CA2377452C (en) Stm mapping circuit and method
JP3591586B2 (ja) チャネルデータ抽出回路及び方法
EP1407565B1 (en) Method and apparatus for converting data packets between a higher bandwidth network and lower bandwidth network
JP4292687B2 (ja) 通信装置及びネットワーク
JP3481841B2 (ja) 時分割多重データ/セル変換回路及びセル/時分割多重データ変換回路
JP2000036797A (ja) マルチリンク多重化伝送装置およびマルチリンク多重化伝送方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20100701

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee