KR100488478B1 - 다중 입력/출력 버퍼형 교환기 - Google Patents
다중 입력/출력 버퍼형 교환기 Download PDFInfo
- Publication number
- KR100488478B1 KR100488478B1 KR10-2002-0066889A KR20020066889A KR100488478B1 KR 100488478 B1 KR100488478 B1 KR 100488478B1 KR 20020066889 A KR20020066889 A KR 20020066889A KR 100488478 B1 KR100488478 B1 KR 100488478B1
- Authority
- KR
- South Korea
- Prior art keywords
- output
- input
- buffers
- lines
- exchange
- Prior art date
Links
- 239000000872 buffer Substances 0.000 claims abstract description 122
- 230000015654 memory Effects 0.000 claims description 35
- 238000000034 method Methods 0.000 claims description 23
- 238000007616 round robin method Methods 0.000 claims description 5
- 241001522296 Erithacus rubecula Species 0.000 claims description 3
- 238000007726 management method Methods 0.000 abstract description 10
- 238000013461 design Methods 0.000 description 10
- 238000013459 approach Methods 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3027—Output queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/101—Packet switching elements characterised by the switching fabric construction using crossbar or matrix
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/254—Centralised controller, i.e. arbitration or scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 다중 입력/출력 버퍼를 가지는 교환기에 관한 것으로서, 특히 다중 입출력 선을 가지는 다중 크로스바 교환망을 기본으로 하여 이를 구동하는 중재기(scheduler)를 구현하는 방식과 출력 버퍼에서의 패킷간의 순위 오류를 바로잡기 위한 버퍼 관리 방식을 제안한다. 구체적으로, 본 발명에 의한 다중 입력/출력 버퍼를 가지는 교환기는, 크기가 N인 다중 입력/출력 버퍼형 교환기에 있어서, k개의 입력선과 m개의 출력선을 가지는 (k,m)-다중 크로스바 교환망을 중심으로, 각각의 입력마다 N개의 버퍼(입력 버퍼)를 각각의 출력마다 M개의 버퍼(출력 버퍼)를 구비하며, 상기 각 입력버퍼들로부터 단지 하나의 패킷을 k개의 입력선 중 어느 하나로 이동시키기 위한 N×k 중간연결망; 및 출력단에 도착한 패킷을 m개의 출력선으로부터 M개의 출력 버퍼들 중의 어느 하나로 이동시키기 위한 m×M 중간연결망을 구비하는 것임을 특징으로 한다. 본 발명에 의한 다중 입력/출력 버펴형 교환기는, "속도 높임"이 필요하지 아니한 병렬형 교환기로서, 특히 출력 버퍼형 교환기의 성능과 동일한 성능을 얻으면서도, 구현이 용이한 중재기 및 버퍼 관리 방식을 제공한다.
Description
본 발명은 다중 입력 버퍼들 및 다중 출력 버퍼들을 가지는 교환기에 관한 것으로서, 특히 다중 입력/출력선을 가지는 다중 크로스바 교환망을 기본으로 하여 이를 구동하는 중재기(scheduler)를 구현하는 방식과 출력 버퍼에서의 패킷간의 순위 오류를 바로잡기 위한 버퍼 관리 방식을 제안한다. 이하에서 본 발명에서와 같이, 다중 입력 버퍼들 및 다중 출력 버퍼들을 가지는 교환기를 "다중 입력/출력 버퍼형 교환기"라고 하기로 한다.
요즘의 인터넷 통신은 광통신용 초고속 교환기(또는 라우터, 이하에서 "교환기"라고 함)를 필요로 한다. 광통신은 2.6Gbps 내지 10Gbps인 전송 대역을 가지는 여러 개의 광 전송로(optical fiber)를 가지므로, 전송 능력이 매우 우수함에 비하여, 교환기의 성능은 이에 이르지 못하는 것이 현실이다. 게다가, 전송되는 패킷들에 대한 품질 보장이 더 요구된다.
한편, 고대역 교환기에 대한 요구에 부응하여, 도1에 도시된 바와 같은, 데이터가 전송되는 속도로 작동될 수 있는 입력 버퍼형 교환기가 개발되었지만, 이는 품질 보장의 면에서 출력 버퍼형 교환기에 비하여 성능이 떨어진다. 도2는 출력 버퍼형 교환기 속도 측면과 품질 보장 측면의 두가지 측면을 만족시키기 위하여, 입력/출력 버퍼형 교환기가 개발되었다. 도3은 입력/출력 버퍼형 교환기를 도시한 것이다. 입력/출력 버퍼형 교환기는 내부적인 교환망의 동작 속도를 높이는 방식(즉, "속도 높임" 방식)을 사용하는데, 이를 위하여는 입력단 및 출력단에서 패킷들을 버퍼링한다.
이러한 입력/출력 버퍼형 교환기에서는, 패킷들이 도착하는 속도의 몇 배의 속도로 동작할 때에 출력 버퍼형 교환기의 성능에 도달될 수 있는지가 문제가 되어왔다. 지금까지의 연구에 따르면 패킷들이 도착하는 속도의 2배의 속도로 동작하는 경우, 복잡한 중재 방식을 통하여 출력 버퍼형 교환기의 성능을 낼 수 있는 것으로 알려졌다.
그러나, 이와 같은 "속도 높임"은, 액세스 시간이 짧은 메모리들과 중재기를 필요로 하고, 현실적으로 2배의 속도 높임을 구현하는 것이 매우 어렵다. 따라서 이러한 문제를 극복하기 위하여 "속도 높임"이 필요하지 않은, 병렬형 교환기 구조가 새롭게 제안되었다. 병렬형 교환기 구조에서는 동일한 형태의 교환망을 병렬적으로 두고 입력단에 도착하는 패킷들을 각각의 교환망으로 분배하여 교환하고 다시 집속하여 하나의 출력단으로 내보낸다. 병렬형 교환기 구조에서 출력 버퍼형 교환기의 성능과 동일한 성과를 얻기 위해서는 복잡한 분배 및 집속 알고리즘을 이용하므로 실제적인 구현이 매우 어려운 단점이 있다.
본 발명에서는, 구현 가능한 방식을 바탕으로 출력 버퍼형 교환기의 성능을 통계적으로 따라가는 교환기의 구조를 제시하고자 한다. 이를 위하여 본 발명에서는 다중 입출력 선을 가지는 다중 크로스바 교환망을 기본으로 하여 이를 구동하는 중재기(scheduler)를 구현하는 방식과 출력 버퍼에서의 패킷간의 순위 오류를 바로잡기 위한 버퍼 관리 방식을 제안한다.
이하에서는 첨부된 도면을 참조하면서 본 발명에 의한 다중 입력/출력 버퍼를 가지는 교환기를 상세하게 설명한다.
도4는 본 발명에 의한 다중 입력/출력 버퍼형 교환기의 구조를 도시한 것이다. 크기가 N인 다중 입력/출력 버퍼형 교환기는 (k,m)-다중 크로스바 교환망을 중심으로 각각의 입력마다 N개의 버퍼를 각각의 출력마다 M개의 버퍼를 구비한다. 출력 버퍼의 패킷들을 출력단에 내보내는 방식에 따라서, M은 출력선의 개수(즉 m)이거나, 교환기의 크기(즉 N)이 된다. 구체적으로는, 출력 버퍼의 패킷들을 출력단에 내보내는 방식을 "선행입력/선행출력" 방식으로 하는 경우, M=m이 되고, "품질보장" 방식으로 하는 경우, M=N이 된다.
도4는 예를 들어서, (3.3)-다중 크로스바 교환망을 가지는 다중 입력/출력 버퍼형 교환기의 구조를 도시한 것이다.
본 발명에 의한 다중 입력/출력 버퍼형 교환기의 구조에 의하면, N개의 다중 입력 버퍼들(10)은 HOL(Head of Line) 충돌 현상을 방지하기 위하여 사용되고, (k,m)-다중 크로스바 교환망(20)은 k개의 입력선과 m개의 출력선을 제공한다. 따라서 하나의 입력에서 한번에 k개의 패킷이 출발할 수 있고, 하나의 출력으로 한번에 m개의 패킷이 도착할 수 있다. 이와 같은 본 발명에 의한 다중 입력/출력 버퍼형 교환기의 구조에서는 어느 교환망에서도 "속도 높임"이 전제되지 아니하므로, 각 입력 버퍼로부터 단지 하나의 패킷이 선택되어 N×k 중간연결망(11)을 통하여 k개의 입력선중 어느 하나로 이동한다.
또한, 출력에서의 "속도 높임"이 필요하지 않게 하기 위하여, 출력 버퍼를 다중화하여, 출력에 도착한 m개의 패킷들은 M개의 출력 버퍼들 중의 하나에 대해서 한번에 하나씩만 접근하도록 규정된다. 선행입력/선행출력(FIFO)의 규칙을 따르는 경우, 각 출력단에 m개의 버퍼들(30)이 필요하게 되고(M=m), 패킷들간의 순서상의 오류가 발생하지 않도록 하기 위하여, 특별한 버퍼 관리 방식이 필요하게 된다(이는 후술하기로 한다). 패킷들의 품질 보장을 위하여는, 각 입력에 대하여 적어도 N개의 물리적으로 분리된 출력 버퍼들(30)이 필요하다(M=N). 출력 버퍼들(30)의 앞 단은 m×M 중간연결망(31)이다.
본 발명에 의한 다중 입력/출력 교환기를 위한 중재기는, 패킷을 내보낼 입력 버퍼들과 패킷들이 들어올 출력 버퍼들을 결정하고 이에 맞도록 (k,m)-다중 크로스바 교환망(20)을 구성하는 역할을 한다. 처음에는 각각의 입력이 자신의 입력 버퍼에 관한 사항을 중재기에 보고하고, 이 정보를 바탕으로 중재 결정을 내리고 교환망을 제어한다.
본 발명에서, (k,m)-다중 크로스바 교환망을 가지는 다중 입력/출력 교환기를 구현하기 위하여는 두 가지의 문제가 해결되어야 한다. 첫째는 제한된 시간동안 다-대-다의 중재 결과를 낼 수 있는 중재 방식이 제시되어야 하고, 둘째는 출력 버퍼에서 패킷들간의 입출력 순서를 유지시키기 위한 버퍼 관리 방식이 제시되어야 한다.
먼저, (k,m)-다중 크로스바 교환망을 가지는 다중 입력/출력 교환기를 구현하기 위한 중재 방식을 설명한다.
다중 입력/출력 교환기를 위한 중재기를 설계하기 위하여, 본 발명에서는 새로운 반복적 매칭 알고리즘을 제안한다. 원래 반복적 매칭 알고리즘은 입력 버퍼형 교환기의 중재 문제를 해결하기 위하여 사용되어 오던 것으로서, 요구(request), 승인(grant) 그리고 최종승인(accept)의 세 단계를 거친다. 도5는 반복적 매칭 알고리즘의 하드웨어적인 구현을 설명한 것이다. 본 발명에서 제한하는 새로운 반복적 매칭 알고리즘은, 종래의 반복적 매칭 알고리즘과 비하여, 승인과 최종승인 과정에서 다중 입력/출력 버퍼형 교환기의 입력선과 출력선의 개수에 따라서 다수의 요구를 수용할 수 있다는 것이다. 아래에서 이와 같은 다중 선택이 가능하도록, 도5에 도시된 중재기를 구성하는 조정자(arbiters)를 설계하여 본다.
먼저 고려할 문제는, 들어온 요구들 중에서 다중 선택을 하는 기준을 정하는 일이다. 기본적으로 무작위 선택 방식과 라운드 로빈 방식 중, 구현이 상대적으로 복잡하지 않은 라운드 로빈 방식을 선택하고, 이러한 라운도 로빈 방식으로 다중 선택을 가능하게 하는 조정자를 설계하기 위하여 다중 토큰을 사용한다. 이하에서는 이를 "다중 토큰 조정자"라고 한다.
도6은 본 발명에서의 "다중 토큰 조정자"의 제1 설계 방식을 설명한 것이다. 이 방식은 다중 토큰을 표현하기 위하여 이진 표기 방식을 하드웨어적으로 구현한다. 도6에서 보이는 바와 같이, 예를 들어서, 2개의 토큰을 표현하기 위하여 2개의 제어 라인이 필요하다. 즉, k개의 다중 토큰을 표현하기 위해서는 log2k만큼의 제어 라인이 필요하다. 즉, k가 커지면 제어 라인의 수가 많아져서 구현이 복잡해지는 문제점이 있을 수 있다.
도7은 본 발명에서의 "다중 토큰 조정자"의 제2 설계 방식을 설명한 것이다. 도7에 도시된 방식은 도6에 도시된 제1 설계 방식에서 제어 라인이 많아짐으로 인하여 야기될 수 있는 문제점을 해결하기 위하여 시간적으로 분할된 토큰을 사용한다. 도7에서 보이는 바와 같이, 다중 토큰이 한꺼번에 라운드 로빈 방식으로 순환하는 것이 아니라, 제1 토큰이 먼저 진행하고, 그 다음 클럭에 다음 토큰이 진행하는 방식이다. 이 방식은 추가적인 하드웨어는 요구되지 아니하지만 종래의 입력 버퍼형 교환기를 위한 조정자와 비교하여 볼 때에 시간이 더 드는 단점이 있다. 즉, 기존의 방식이 N 클럭을 요구하는 것과 비교하여, 이 방식은 N+k 만큼의 클럭을 요구한다.
도8은 본 발명에서의 "다중 토큰 조정자"의 제3 설계 방식을 설명한 것이다. 도8에 도시된 방식은 도6 및 도7에 도시된 방식들의 단점들을 극복한 것으로서, 입력 버퍼형 교환기를 위한 조정자와 비교하여 하드웨어적인 구현이 복잡하여 지거나 또는 추가적인 시간이 더 필요하지 아니한 것이다. 이 방식에서는 공간적으로 분할된 토큰을 사용한다. 도8에서 보이는 바와 같이, 처음 클럭부터 다중 토큰이 공간적으로 분할된 채 동작이 시작하고 클럭이 진행됨에 따라서 각각 독립적으로 라운드 로빈을 진행한다. 각각의 토큰이 최대 N클럭을 요구하면서 독립적으로 동작하므로 추가적인 시간이 필요하지 않다. 이하에서는, 본 발명에 의한 제3 설계 방식의 "다중 토큰 조정자"를 "공간 분할 다중 토큰형 조정자"라고 하기로 한다.
"공간 분할 다중 토큰형 조정자"에서 토큰들의 처음 위치를 결정하는데 있어서, 기본적인 방식은 바로 전의 중재 과정에서 승인 혹은 최종 승인을 받은 곳에서 다음 토큰의 진행을 시작하는 것이다. 이는 각 입력단과 출력단의 형평성을 고려한 것으로서, 종래의 입력 버퍼형 교환기의 조정자에서의 방식을 본 발명에서의 "공간 분할 다중 토큰형 조정자"를 위하여 확장한 것으로서 본 발명에서는 각각의 토큰이 각각 독립적으로 라운드 로빈을 진행한다.
아래에서는, 선행입력/선행출력(FIFO)의 규칙을 따르는 경우,출력 버퍼에서 패킷들간의 입출력 순서를 유지시키기 위한 버퍼 관리 방식을 설명한다.
본 발명에서와 같은 다중 입력/출력 버퍼형 교환기는, 다중의 입력/출력선을 통하여 다중의 출력 버퍼에 패킷을 전달하게 되므로 출력 버퍼에서 패킷간의 순서가 뒤바뀌는 경우가 생길 수 있다. 도9는 이러한 예를 설명한 것이다. 따라서, 본 발명에서는 출력 버퍼에서 정해진 패킷 사이의 순서를 유지하도록 하기 위하여, 가상적인 선행입력/선행출력 버퍼 관리 방식을 제안한다. 도10에 도시된 바와 같이, 이 방식에서는 출력 라인을 통하여 패킷들이 도착할 때 이들을 라운드 로빈 방식에 의하여 차례로 출력 버퍼에 저장하고 출력 버퍼에서 외부 출력으로 패킷들을 전송할 때에는 이 순서를 그대로 유지하는 방식을 사용한다. 이 방식에서는 출력 버퍼에 도착한 순서대로 전송되고 또한 입력단에서 하나의 입력 버퍼에서 동시에 두 개의 패킷이 전송될 수 없고 순서의 유지가 요구되는 하나의 스트림을 형성하는 패킷들은 하나의 입력 버퍼를 통해서만 들어오게 되므로, 이 방식에 따르면 패킷들 사이의 전송 순서가 항상 유지된다.
본 발명에 의한 다중 입력/출력 버퍼형 교환기는 종래의 방식으로는 구현이 어려운 비대칭형 교환기를 용이하게 구현할 수 있는 부가적인 장점이 있다. 비대칭형 교환기란, 입력과 출력의 각각의 대역폭이 비대칭적으로 구현될 수 있는 교환기를 말한다. 즉, 각각의 포트별로 다른 입력선(혹은 출력선)을 가질 수 있는 교환기를 말한다. 도11은 본 발명에 의한 다중 입력/출력 버퍼형 교환기에서 비대칭형 교환기를 도시한 것이다. 도11에서는 입력포트를 위에서부터 보면, 4개, 1개, 3개, 2개의 입력선을 가지고, 출력포트를 왼쪽으로부터 보면, 2개, 3개, 2개, 3개의 출력선을 가지는 것을 알 수 있다. 도11에서 보이는 바와 같이, 대역폭은 입력/출력선의 개수에 의하여 비대칭적으로 구현된다.
도11에 도시된 바와 같은 비대칭형 교환기에는 이에 대한 중재기가 필요하다. 이는 위에서 설명된 중재기를 간단하게 변형하여 용이하게 구현할 수 있다. 도12는 도11에 도시된 비대칭형 다중 입력/출력 버퍼형 교환기를 위한 중재기를 도시한 것이다. 도12에서 보이는 바와 같이, 각각의 입력선(또는 출력선)에 해당되는 조장자의 다중 토큰의 개수를 해당되는 입력선(또는 출력선)의 개수와 동일하게 두면 된다. 즉, 승인 조정자(grant arbiter)는 해당되는 출력선의 개수와 같도록 최종 승인 조정자(accept arbiter)는 해당되는 입력선의 개수와 갖도록 두면 된다. 예를 들면, 도11에서 입력 1의 입력선의 개수가 4이므로 도12에서 첫번째 최종 승인 조정자의 토큰 개수는 입력선의 개수와 동일하게 4개로 결정된다. 또한 도11의 출력 2의 출력선의 개수가 3이므로, 도12에서 두번째 최종 승인 조정자의 토큰 개수는 출력선의 개수와 동일하게 3개로 결정된다. 이것은 중재기 내에 각각의 조정자의 동작이 독립적인 것에서 기인한다.
이와 같은 비대칭형 교환기는 각각의 입력/출력선의 동작 속도가 상이할 때에 유용하다. 예를 들어서, 1번 입력에는 10Mbps의 속력을, 2번 입력에는 40Mbps의 속력을 요구하는 것이 그 예이다. 또한, 대역폭을 입력/출력선의 개수로 조정할 수 있다는 점에 착안하여 다중 입력/출력 버퍼형 교환기를 입력 속도보다 낮은 속도로 동작하도록 설계할 수도 있다. 예를 들어서, 1의 속도로 들어오는 외부 입력선을 처리하기 위하여, 0.5의 속도로 동작하는 2개의 입력선을 가진 다중 입력/출력 버퍼형 교환기를 구현할 수도 있는 것이다. 이러한 특징은 특히 광전송의 도입으로 전송 속도가 증가하는 현실에서 매우 유용한 것이다.
도4에 도시된 바와 같이, 본 발명에 의한 다중 입력/출력 버퍼형 교환기는 입력/출력선의 개수에 따라서 크로스바 교환망을 전제로 하여 구현된다. 그러나 대용량의 크로스바 교환망을 실제로 구현하는 것은 결코 용이한 일이 아니다. 따라서, 이하에서는, 본 발명에 의한 다중 입력/출력 버퍼형 교환기를 구현함에 있어서, 작은 용량의 크로스바 교환망을 복수개 사용하여 크로스바 교환망을 구현하는 방식을 소개하고자 한다.
도13은 작은 크로스바 교환망을 선형적으로 연결하여 대용량의 크로스바 교환망을 구현하는 방법을 도시한 것이고, 도14는 크로스바 분할 방식을 사용하여 다중 입력/출력 버퍼형 교환기를 구현한 것을 보여준다. 크로스바 분할 방식은 서로 충돌이 일어날 가능성이 있는 입력과 출력의 수를 줄일 수 있으므로 교환기의 성능 향상에 도움이 된다.
아래에서는, 본 발명에 의한 다중 입력/출력 버퍼형 교환기의 N개의 입력버퍼들을 상용 메모리들을 중복적으로 사용하여 구현하는 것을 설명한다.
도4에 도시된 바와 같이, 본 발명은 HOL(Head of Line) 충돌 현상을 방지하기 위해서 각각의 입력단에 N개의 입력 버퍼들을 사용한다. 이는 종래의 입력 버퍼형 교환기의 경우와 동일하다. 그러나, 종래의 입력 버퍼형 교환기에서는 N개의 입력 버퍼들 중에서 한 번에 하나의 버퍼에서만 출력이 허용되던 것과는 달리, 본 발명에서는 한 번에 여러 개의 버퍼들에서 동시에 패킷들이 출력될 수 있을 것을 요구한다. 따라서 본 발명에서 N개의 입력 버퍼들은 각각의 버퍼가 독립적인 인터페이스를 가지는 각각 분리된 형태로 구현되어야 한다. 이러한 특징은 종래의 입력 버퍼형 교환기에서 N개의 입력 버퍼들이 하나의 상용 메모리 안에 논리적으로 구현되던 것과는 달리 별도로 설계된 반도체 회로 안에 독립된 버퍼들과 인터페이스를 따로 구현할 것을 요구한다.
본 발명에서는 이러한 어려움을 해결하기 위하여, 상용 메모리들을 중복적으로 사용하여 N개의 입력 버퍼들을 구현하는 방식을 제안한다. 도15는 본 발명에 의한 다중 입력/출력 버퍼형 교환기의 N개의 입력버퍼들을 상용 메모리들을 중복적으로 사용하여 구현한 것을 도시한 것이다. 도15에서 보이는 바와 같이, 중복 메모리 방식의 입력 버퍼는 입력선의 갯수(즉 k)만큼의 메모리들과 방송자(broadcaster)로 구성된다. 중복 메모리 방식에 사용된 하나의 메모리는 종래의 입력 버퍼형 교환기에서와 같이 N개의 버퍼를 그 내부에 논리적으로 구현한다. 즉, N개의 버퍼를 위해서 메모리 공간을 논리적으로 할당하고 각 버퍼의 처음과 끝에 해당되는 메모리 주소들을 따로 기억한다. 하나의 논리적 버퍼가 출력을 내보낼 것이 결정되면 이 버퍼의 끝을 가리키는 메모리주소(이하에서는 "포인터"라 함)에 기록된 패킷을 읽어 내고 포인터 값을 그 다음 패킷에 해당되는 주소 값으로 바꾼다.
중복적 메모리 방식에서 k개의 메모리들은 동일한 기억 내용(패킷들)을 동일한 논리적 할당(N개의 버퍼에 대한 처음과 끝의 주소 값들)에 기반하여 동일한 위치(각각의 패킷이 기록된 주소)에 가진다. 즉, k개의 메모리들은 똑같은 내용을 중복적으로 기억한다. 패킷의 입력시에는 방송자를 이용하여 동일한 패킷을 각각의 메모리로 동시에 보내서 동일한 위치에 패킷을 저장하고, 출력시에는 각각의 메모리들에서 서로 다른 버퍼들을 선택하여 이에 해당되는 패킷들을 내보낸다. 단 출력 후에 모든 메모리들은 출력된 패킷들이 하나의 메모리에서 나간 것과 같이 포인터 값을 바꾼다. 예를 들어서, 3개의 메모리들로 구성된 중복적 메모리 방식으로 구현된 N개의 입력 버퍼들을 고려하여 본다. 중복적 메모리 방식에 따라서 3개의 메모리는 동일한 내용의 N개의 논리적 입력 버퍼들을 저장하고 있다. 이때 제1메모리에서 3번 버퍼에 해당하는 패킷을 출력하고, 제2메모리에서 7번 버퍼에 해당하는 패킷을 출력하고, 제3메모리에서 10번 버퍼에 해당하는 패킷을 출력하면, 제1메모리, 제2메모리 및 제3메모리 모두 3번, 7번 및 10번 버퍼에 해당하는 포인터 값을 다음 패킷을 가리키는 주소 값으로 바꾼다. 따라서, 모든 메모리의 각각의 버퍼에 대한 포인터 값들이 동일하게 유지된다.
입력 버퍼를 중복적 메모리 방식으로 구현하는 것은, k배의 메모리 공간을 중복적으로 사용하는 대신에 각각의 메모리 인터페이스를 서로 다른 패킷들의 출력을 위해서 할당할 수 있다. 따라서 도15에서 보이는 바와 같이, 각각의 메모리 인터페이스는 입력선들과 1 대 1로 연결되어 있다. 중복적 메모리 방식의 장점은 N개의 입력 버퍼를 구현함에 있어서 별도의 반도체를 설계할 필요 없이 상용 메모리 소자를 사용할 수 있는 데에 있다.
본 발명에 의한 다중 입력/출력 버펴형 교환기는, "속도 높임"이 필요하지 아니한 병렬형 교환기로서, 특히 출력 버퍼형 교환기의 성능과 동일한 성능을 얻으면서도, 구현이 용이한 중재기 및 버퍼 관리 방식을 제공한다.
도1은 종래의 입력 버퍼형 교환기의 구조도,
도2는 종래의 출력 버퍼형 교환기의 구조도,
도3은 종래의 입력/출력 버퍼형 교환기의 구조도,
도4는 본 발명에 의한 다중 입력/출력 버퍼형 교환기의 구조도,
도5는 일반적인 반복적 매칭 알고리즘의 하드웨어적인 구현을 설명한 것,
도6은 본 발명에서의 "다중 토큰 조정자"의 제1 설계 방식을 설명한 것,
도7은 본 발명에서의 "다중 토큰 조정자"의 제2 설계 방식을 설명한 것,
도8은 본 발명에서의 "다중 토큰 조정자"의 제3 설계 방식을 설명한 것,
도9는 출력 버퍼에서 패킷간의 순서가 뒤바뀌는 경우를 예를 들어서 설명한 것,
도10은 본 발명에서의 가상적인 선행입력/선행출력 버퍼 관리 방식을 설명하는 것,
도11은 본 발명에 의한 다중 입력/출력 버퍼형 교환기에서 비대칭형 교환기를 도시한 것,
도12는 도11에 도시된 비대칭형 다중 입력/출력 버퍼형 교환기를 위한 중재기를 도시한 것,
도13은 본 발명에 의한 다중 입력/출력 버퍼형 교환기를 구현함에 있어서, 작은 크로스바 교환망을 선형적으로 연결하여 대용량의 크로스바 교환망을 구현하는 방식을 도시한 것,
도14는 본 발명에 의한 다중 입력/출력 버퍼형 교환기를 구현함에 있어서, 크로스바 분할 방식을 사용하여 것을 도시한 것이다.
도15는 본 발명에 의한 다중 입력/출력 버퍼형 교환기의 N개의 입력버퍼들을 상용 메모리들을 중복적으로 사용하여 구현한 것을 도시한 것이다.
Claims (12)
- 크기가 N인 다중 입력/출력 버퍼형 교환기에 있어서,k개의 입력선과 m개의 출력선을 가지는 (k,m)-다중 크로스바 교환망을 중심으로, 각각의 입력마다 N개의 버퍼(입력 버퍼)를 구비하고, 각각의 출력마다 M개의 버퍼(출력 버퍼)를 구비하며,상기 각 입력버퍼들로부터 단지 하나의 패킷을 k개의 입력선 중 어느 하나로 이동시키기 위한 N×k 중간연결망; 및 출력단에 도착한 패킷을 m개의 출력선으로부터 M개(M=m 이거나 M=N임)의 출력 버퍼들 중의 어느 하나로 이동시키기 위한 m×M 중간연결망을 구비하고,다-대-다의 중재를 위하여 라운드 로빈 방식으로 작동하는 "다중 토큰 조정자"가 구비된 중재기를 더 포함하되,상기 "다중 토큰 조정자"는, 이진 표기 방식을 하드웨어적으로 구현한 것이거나; 토큰의 이동을 시간적으로 분할시킨 것이거나; 토큰의 위치를 공간적으로 분할시킨 것임을 특징으로 하는 다중 입력/출력 버퍼형 교환기.
- 삭제
- 삭제
- 삭제
- 삭제
- 제1항에 있어서,상기 출력 버퍼들은,선행입력/선행출력의 규칙을 따르는 경우, 상기 출력 버퍼에서의 패킷들간의 입출력을 유지하기 위하여, 출력 라인을 통하여 패킷들이 도착할 때에 이들을 라운드 로빈 방식에 의하여 출력 버퍼에 저장하고, 출력 버퍼로부터 외부 출력으로 패킷들을 전송하도록 관리되는 것임을 특징으로 다중 입력/출력 버퍼형 교환기.
- 제1항에 있어서,입력포트 또는 출력포트 별로 서로 다른 갯수의 입력선(입력포트의 경우) 또는 출력선(출력포트의 경우)을 가지는 비대칭형 교환기인 경우, 각각의 입력/출력선에 해당되는 조정자의 다중 토큰의 개수는 해당하는 입력/출력선의 개수와 같도록 배치되는 것임을 특징으로 하는 다중 입력/출력 버퍼형 교환기.
- 제7항에 있어서,상기 비대칭형 교환기는, 대역폭을 입력/출력선의 개수로 조정하는 것임을 특징으로 하는 다중 입력/출력 버퍼형 교환기.
- 제1항에 있어서,상기 (k.m)-다중 크로스바 교환망은, (k,m)-다중 크로스바 교환망보다 작은 크로스바 교환망을 선형적으로 연결하여 구현된 것임을 특징으로 하는 다중 입력/출력 버퍼형 교환기.
- 제1항에 있어서,상기 (k.m)-다중 크로스바 교환망은, 크로스바 분할 방식으로 구현된 것임을 특징으로 하는 다중 입력/출력 버퍼형 교환기.
- 제1항에 있어서,외부의 입력 속도보다 낮은 속도로 동작하는 것임을 특징으로 하는 다중 입력/출력 버퍼형 교환기.
- 제1항에 있어서,상기 N개이 입력 버퍼는, 중복적 메모리 방식으로 구현된 것임을 특징으로 하는 다중 입력/출력 버퍼형 교환기.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0066889A KR100488478B1 (ko) | 2002-10-31 | 2002-10-31 | 다중 입력/출력 버퍼형 교환기 |
US10/457,225 US7397808B2 (en) | 2002-10-31 | 2003-06-09 | Parallel switching architecture for multiple input/output |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2002-0066889A KR100488478B1 (ko) | 2002-10-31 | 2002-10-31 | 다중 입력/출력 버퍼형 교환기 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040038028A KR20040038028A (ko) | 2004-05-08 |
KR100488478B1 true KR100488478B1 (ko) | 2005-05-11 |
Family
ID=32171567
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2002-0066889A KR100488478B1 (ko) | 2002-10-31 | 2002-10-31 | 다중 입력/출력 버퍼형 교환기 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7397808B2 (ko) |
KR (1) | KR100488478B1 (ko) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040083326A1 (en) * | 2002-10-29 | 2004-04-29 | Yuanlong Wang | Switch scheduling algorithm |
US7324537B2 (en) * | 2003-07-18 | 2008-01-29 | Intel Corporation | Switching device with asymmetric port speeds |
US7706394B2 (en) * | 2003-07-23 | 2010-04-27 | International Business Machines Corporation | System and method for collapsing VOQ's of a packet switch fabric |
US20050036502A1 (en) * | 2003-07-23 | 2005-02-17 | International Business Machines Corporation | System and method for handling multicast traffic in a shared buffer switch core collapsing ingress VOQ's |
US7545804B2 (en) * | 2003-09-11 | 2009-06-09 | Nortel Networks Limited | High throughput rotator switch having excess tandem buffers |
US6958598B2 (en) * | 2003-09-30 | 2005-10-25 | Teradyne, Inc. | Efficient switching architecture with reduced stub lengths |
JP2007528636A (ja) * | 2003-10-30 | 2007-10-11 | チーク テクノロジーズ,インク. | ノンブロッキングで決定論的マルチレートマルチキャストパケットスケジューリング |
US7852836B2 (en) * | 2003-11-19 | 2010-12-14 | Cray Inc. | Reduced arbitration routing system and method |
US7492782B2 (en) * | 2003-12-27 | 2009-02-17 | Electronics And Telecommunications Research Institute | Scalable crossbar matrix switching apparatus and distributed scheduling method thereof |
US20080101402A1 (en) * | 2004-02-04 | 2008-05-01 | Jung-You Feng | Network communication apparatus and related method thereof |
JP2006039677A (ja) * | 2004-07-22 | 2006-02-09 | Fujitsu Ltd | クロスバ |
US7742486B2 (en) | 2004-07-26 | 2010-06-22 | Forestay Research, Llc | Network interconnect crosspoint switching architecture and method |
US20060056424A1 (en) * | 2004-09-15 | 2006-03-16 | Yolin Lih | Packet transmission using output buffer |
US20080123666A1 (en) * | 2004-11-09 | 2008-05-29 | Nxp B.V. | Electronic Device And Method Of Communication Resource Allocation |
WO2006092768A1 (en) * | 2005-03-04 | 2006-09-08 | Koninklijke Philips Electronics N.V. | Electronic device and a method for arbitrating shared resources |
US7489702B2 (en) * | 2005-03-31 | 2009-02-10 | Alcatel-Lucent Usa Inc. | Method and apparatus for increasing radio frequency efficiency for mixed voice over internet protocol and data traffic |
US8559443B2 (en) | 2005-07-22 | 2013-10-15 | Marvell International Ltd. | Efficient message switching in a switching apparatus |
JP4648833B2 (ja) * | 2005-12-28 | 2011-03-09 | 富士通株式会社 | 帯域管理装置 |
US7991926B1 (en) * | 2006-02-22 | 2011-08-02 | Marvell Israel (M.I.S.L) Ltd. | Scalable memory architecture for high speed crossbars using variable cell or packet length |
US7668186B1 (en) * | 2006-03-07 | 2010-02-23 | Xilinx, Inc. | Token ecosystem for buffer management |
FR2898750B1 (fr) * | 2006-03-14 | 2008-06-06 | Alcatel Sa | Dispositif de communtation de donnees a mecanisme d'arbitrage entre demandes de transfert d'ensembles de donnees, pour un noeud d'un reseau de communication a tres haut debit |
US8402181B2 (en) * | 2007-03-14 | 2013-03-19 | Integrated Device Technology, Inc. | Bifurcate arbiter |
WO2010103610A1 (ja) * | 2009-03-09 | 2010-09-16 | 富士通株式会社 | 情報処理装置 |
TW201115458A (en) * | 2009-10-29 | 2011-05-01 | Ralink Technology Corp | Buffer space allocation method and related packet switch |
RU2012130778A (ru) | 2012-07-18 | 2014-01-27 | ЭлЭсАй Корпорейшн | Маршрутизатор пакетов, имеющий иерархическую структуру буфера |
US10205666B2 (en) * | 2013-07-29 | 2019-02-12 | Ampere Computing Llc | End-to-end flow control in system on chip interconnects |
US9465404B2 (en) | 2014-08-06 | 2016-10-11 | Freescale Semiconductor, Inc. | Timing synchronization circuit for wireless communication apparatus |
CN105099956B (zh) | 2015-06-25 | 2018-08-14 | 华为技术有限公司 | 交换网***和数据交换方法 |
US10938715B2 (en) | 2019-06-11 | 2021-03-02 | Mellanox Technologies Tlv Ltd. | Throughput in a crossbar network element by modifying mappings between time slots and ports |
US11601382B2 (en) * | 2020-06-30 | 2023-03-07 | Viscore Technologies Inc. | Asymmetric network infrastructure with distributed broadcast-select switch and asymmetric network interface controller |
CN115941626B (zh) * | 2022-12-06 | 2024-06-18 | 北京航空航天大学 | 一种分组交换机无加速比工作保持分组调度方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6285679B1 (en) * | 1997-08-22 | 2001-09-04 | Avici Systems, Inc. | Methods and apparatus for event-driven routing |
KR100363890B1 (ko) | 1999-10-14 | 2002-12-11 | 주식회사 케이티 | 입출력 버퍼형 스위치의 다중 선택형 2차원 라운드로빈 스케줄링 방법 |
US7088713B2 (en) * | 2000-06-19 | 2006-08-08 | Broadcom Corporation | Switch fabric with memory management unit for improved flow control |
-
2002
- 2002-10-31 KR KR10-2002-0066889A patent/KR100488478B1/ko not_active IP Right Cessation
-
2003
- 2003-06-09 US US10/457,225 patent/US7397808B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US7397808B2 (en) | 2008-07-08 |
KR20040038028A (ko) | 2004-05-08 |
US20040085979A1 (en) | 2004-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100488478B1 (ko) | 다중 입력/출력 버퍼형 교환기 | |
US6160812A (en) | Method and apparatus for supplying requests to a scheduler in an input buffered multiport switch | |
US7539199B2 (en) | Switch fabric scheduling with fairness and priority consideration | |
US6044061A (en) | Method and apparatus for fair and efficient scheduling of variable-size data packets in an input-buffered multipoint switch | |
US6813274B1 (en) | Network switch and method for data switching using a crossbar switch fabric with output port groups operating concurrently and independently | |
US6963576B1 (en) | Scheduling and arbitration scheme for network processing device | |
US7133399B1 (en) | System and method for router central arbitration | |
CN105897621B (zh) | 基于cioq结构的千兆afdx交换机及其交换方法 | |
US20080069125A1 (en) | Means and apparatus for a scalable congestion free switching system with intelligent control | |
US7995472B2 (en) | Flexible network processor scheduler and data flow | |
KR20000047434A (ko) | 입력/출력 테라비트 스위치들을 위한 rrgs-라운드-로빈 그리디 스케쥴링 | |
WO2001067691A1 (en) | NxN CROSSBAR PACKET SWITCH | |
US7889729B2 (en) | System and method for reevaluating granted arbitrated bids | |
US20030179759A1 (en) | Method and apparatus for switching data using parallel switching elements | |
US6735212B1 (en) | Short and long term fair shuffling for crossbar switch arbiter | |
US11256634B2 (en) | System and method for serial interface memory using switched architecture | |
US20140177648A1 (en) | Tagging and synchronization for fairness in noc interconnects | |
JP2002217962A (ja) | 複数の入力ポートから出力ポートにデータパケットをスケジューリングする方法 | |
US6904046B2 (en) | Self-route multi-memory packet switch adapted to have an expandable number of input/output ports | |
CN112073336A (zh) | 基于AXI4 Stream接口协议的高性能数据交换***及方法 | |
KR100468946B1 (ko) | 간단한 파이프라인 방식을 이용한 입력 버퍼형 스위치 및그 경합 방법 | |
US20040062238A1 (en) | Network switching device | |
US7142515B2 (en) | Expandable self-route multi-memory packet switch with a configurable multicast mechanism | |
US7130302B2 (en) | Self-route expandable multi-memory packet switch | |
CN117135107B (zh) | 一种网络通信拓扑***、路由方法、设备及介质 |
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: 20130429 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20140416 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20150226 Year of fee payment: 11 |
|
FPAY | Annual fee payment |
Payment date: 20160412 Year of fee payment: 12 |
|
FPAY | Annual fee payment |
Payment date: 20170414 Year of fee payment: 13 |
|
LAPS | Lapse due to unpaid annual fee |