KR100612442B1 - 버퍼형 스위치 및 그 스케쥴링 방법 - Google Patents
버퍼형 스위치 및 그 스케쥴링 방법 Download PDFInfo
- Publication number
- KR100612442B1 KR100612442B1 KR1020040004843A KR20040004843A KR100612442B1 KR 100612442 B1 KR100612442 B1 KR 100612442B1 KR 1020040004843 A KR1020040004843 A KR 1020040004843A KR 20040004843 A KR20040004843 A KR 20040004843A KR 100612442 B1 KR100612442 B1 KR 100612442B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- path
- input
- buffer
- shift
- Prior art date
Links
Images
Classifications
-
- E—FIXED CONSTRUCTIONS
- E04—BUILDING
- E04H—BUILDINGS OR LIKE STRUCTURES FOR PARTICULAR PURPOSES; SWIMMING OR SPLASH BATHS OR POOLS; MASTS; FENCING; TENTS OR CANOPIES, IN GENERAL
- E04H1/00—Buildings or groups of buildings for dwelling or office purposes; General layout, e.g. modular co-ordination or staggered storeys
- E04H1/12—Small buildings or other erections for limited occupation, erected in the open air or arranged in buildings, e.g. kiosks, waiting shelters for bus stops or for filling stations, roofs for railway platforms, watchmen's huts or dressing cubicles
- E04H1/1205—Small buildings erected in the open air
- E04H1/1216—Public W.C.s
-
- 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/3045—Virtual queuing
-
- E—FIXED CONSTRUCTIONS
- E03—WATER SUPPLY; SEWERAGE
- E03B—INSTALLATIONS OR METHODS FOR OBTAINING, COLLECTING, OR DISTRIBUTING WATER
- E03B7/00—Water main or service pipe systems
- E03B7/09—Component parts or accessories
- E03B7/10—Devices preventing bursting of pipes by freezing
- E03B7/12—Devices preventing bursting of pipes by freezing by preventing freezing
-
- 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/252—Store and forward routing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Architecture (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Hydrology & Water Resources (AREA)
- Public Health (AREA)
- Water Supply & Treatment (AREA)
- Civil Engineering (AREA)
- Structural Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명은 버퍼형 스위치 및 그 스케쥴링 방법에 관한 것으로서, 특히 충돌감지 및 랜덤 셀렉션 논리구성이 필요없는 버퍼형 스위치 및 그 스케쥴링 방법에 관한 것으로서, 각 입력포트로부터 입력된 직렬 데이터를 병렬 데이터로 변환하기 위한 입력버퍼부; 현재 저장된 데이터와 상기 입력버퍼부에 의해 정렬된 병렬 데이터를 비교하여 데이터 유효성 여부에 따라 데이터를 출력할 경로를 결정하고, 데이터 전송에 필요한 연결 시간을 계산하는 쉬프트 및 비교부; 상기 입력포트를 통해 수신한 데이터를 수신 속도와 동일한 속도로 데이터를 출력하기 위한 출력버퍼부; 상기 쉬프트 및 비교부와 상기 출력버퍼부간의 경로를 연결하는 스위칭부; 및 상기 쉬프트 및 비교부의 설정 경로와 연결 시간에 따라 입력버퍼부와 출력버퍼부간 연결버퍼를 연결시간 동안 인에이블시켜 경로를 설정하는 제어부를 포함하여 이루어지는 특징이 있다.
버퍼형 스위치, 스케쥴링 방법, 풀메쉬, 와이어 브릿지, PIM
Description
도 1은 일반적인 4x4 구조 스위치의 동작을 나타낸 도면,
도 2a 내지 도 2d는 일반적인 4x4 구조 스위치의 경로 설정 과정을 나타내는 도면,
도 3은 본 발명의 일실시예에 따른 4x4 입력 버퍼형 스위치에 관한 도면,
도 4는 본 발명의 직렬 데이터를 병렬 데이터로 변환하는 과정을 설명하기 위한 도면,
도 5는 본 발명의 경로 설정 및 설정 시간 결정 과정을 설명하기 위한 도면,
도 6은 본 발명의 스위치 모듈에 적용되는 풀 메쉬 형태의 연결 과정을 설명하기 위한 도면,
도 7은 본 발명의 스위치 모듈에 적용되는 와이어 브릿지 형태의 연결 과정을 설명하기 위한 도면,
도 8은 본 발명의 제어모듈에 의해 제어되는 경로 설정, 경로 제한, 우선권 설정 과정을 설명하기 위한 도면,
도 9는 본 발명의 제어모듈에 의해 제어되는 대역폭 설정 과정을 설명하기 위한 도면,
도 10은 본 발명의 일실시예에 따른 n*n 스위치의 스케쥴링 방법에 관한 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
310 : 입력포트 320 : 입력버퍼모듈
330 : 쉬프트 및 비교모듈 340 : 제어모듈
350 : 출력버퍼모듈 360 : 출력포트
370 : 스위치
본 발명은 버퍼형 스위치 및 그 스케쥴링 방법에 관한 것으로서, 특히 충돌감지 및 랜덤 셀렉션 논리구성이 필요없는 버퍼형 스위치 및 그 스케쥴링 방법에 관한 것이다.
통합 서비스 망에서 다양한 서비스를 제공하기 위하여 지난 10여년 동안 많은 연구가 진행되어 오고 있다.
특히, 서비스 계약을 지키는 사용자에게 서비스 계약을 어기는 플로우(flow)에 영향을 받지 않고 대역과 지연을 보장해주기 위해서 많은 스케줄링 방식이 제안되어 왔다.
이를 위해, 셀이 남아있는 경우 시간을 허비하지 않는 작업 보존(work-conserving) 방식으로는 '가상 시간(virtual clock)', '지연(delay)-EDD(delay-Earliest-Due-Date)', 'WFQ(Weighted Fair Queueing)', 'WF2Q(Worst-case Fair Weighted Fair Queueing)', 'SCFQ(Self-Clocked Fair Queueing)' 등이 있다.
반면, 셀이 남아있는 경우 지연 변동 등을 생각해 셀 타임을 그냥 유휴(idle)하게 지나가기도 하는 비작업 보존(nonwork-conserving)방식으로는 '지터(jitter)-EDD', '스탑 앤 고우(stop-and-go)', 'HRR(Hierarchical Round Robin)', 'RCSP(Rate-Controlled Static Priority)' 등이 있다.
지금까지는 대부분의 이러한 연구가 출력 버퍼형 스위치에 대해 이루어졌다.
이러한 출력 버퍼형 스위치는 QoS(Quality of Service) 제공에 많은 장점을 가지고 있지만, 메모리 속도가 전체 입력속도의 합만큼 빨라야 한다는 한계가 있다.
기술적으로 메모리 속도의 증가율이 프로세서 속도의 증가율보다 낮기 때문에 앞으로는 메모리 속도 한계가 전체 속도에서 병목(bottleneck)현상을 일으키는 원인이 될 것으로 예상된다.
반면, 입력 버퍼형 스위치에서는 메모리 속도가 한 채널의 속도보다 많이 빠를 필요가 없다. 따라서, 현재의 기술수준에서 입력 버퍼형 스위치가 출력 버퍼형 스위치 또는 공유 버퍼형 스위치보다 확장성이 더 좋은 것으로 고려되고 있다.
그렇지만, 입력 버퍼형 스위치는 HOL(Head-Of-Line) 블로킹으로 인해 균일한 입력 트래픽에 대해 수율(throughput)이 58.6%까지 밖에 나오지 않는다는 한계가 있다.
그러나, 이는 입력 버퍼를 FIFO(First In First Out) 방식으로 동작시킬 때 성능이고, 입력 버퍼에서 VOQ(Virtual Output Queueing)방식으로 각 출력 버퍼마다 큐를 분리해서 관리하면 수율이 100%까지 증가할 수 있음이 알려지면서 최근에 입력 버퍼형 스위치가 증가하고 있다.
이러한 입력 버퍼형 스위치들은 주로 입력 버퍼를 둔 크로스바(crossbar)스위치의 형태가 많다. 그 예로는 'PMC'사의 'TT1/Enhanced TT1 스위치', '시스코(Cisco)'의 '12000GSR', '50-Gb/s IP router' 등이 있다.
특히, '시스코(Cisco)'의 'IP router'는 내부적으로 셀 스위칭을 하기 때문에 가변 길이의 패킷이 도착하면 그 패킷을 고정된 길이의 셀로 나누고 각각 셀 스위치를 통과시킨 다음 재조립해서 내보내는 방식을 취하고 있다.
크로스바 스위치는 구현의 복잡도가 N-포트(port) 크로스바의 경우 N2에 비례해서 증가한다는 점과 입력단과 출력단에서 모두 충돌을 해결해야하기 때문에 QoS를 보장하기 위해서는 제어가 더 복잡해지는 단점이 있지만, 구조가 간단해 VLSI(very large scale integrated circuit)칩으로 구현이 용이하고 높은 속도로 동작이 가능하다.
입력 버퍼는 충돌이 발생하게 되는데, 첫째로 입력 버퍼에서 VOQ방식으로 큐를 관리하는 입력 버퍼형 스위치에서는 실제 한 셀타임에 하나의 입력 포트로 들어갈 수 있는 셀의 개수는 하나인데 여러 VOQ에서 셀을 보내기를 원할 수 있기 때문 에 스위치의 입력단에서 충돌이 발생하게 되고, 둘째로 입력단을 통해서 크로스바와 같은 스위치 패브릭(fabric)으로 들어간다 하더라도 서로 다른 입력을 통해 들어온 셀들이 같은 출력 포트로 나가고자 하는 경우가 발생할 수 있는데 이런 경우에도 충돌이 발생하게 된다.
이러한 2가지 충돌을 해결하기 위해서 입력 버퍼형 스위치는 중재(arbitration) 알고리즘을 사용해서 전송시 전송될 차례에 관해 질서를 잡아주게 된다.
이러한 중재 알고리즘으로는 'PIM(parallel iterative matching)', 'RRM(Round-Robin Matching)', 'iSLIP', 'i-LQF(iterative Longest Queue First)', 'i-OCF(iterative Oldest Cell First)', 'FARR(Fari Arbitrated Round Robin)', 'FIRM(Fcfs In Round-robin Matching)' 등이 있다.
PIM 기법은 전송요청(request), 전송선택(grant), 전송확정(accept)의 3단계 동작으로 이루어진다. 전송요청(request) 단계에서는 N2의 입력 큐에서 출력포트별로 전송요청을 보낸다. 전송선택(grant) 단계에서는 각 출력포트에서 자신이 받은 전송요청(request) 중에서 하나를 확률적으로 전송선택(grant)하고, 그 결과를 각 입력포트에 알려준다.
한편, 하나의 입력포트에서 동시에 여러 개의 전송선택(grant)을 각 출력포트에서 받을 수 있으므로 전송확정(accept) 단계에서는 입력포트가 받은 전송선택들(grants) 중 하나를 확률적으로 전송확정(accept)한다.
이와 같이 PIM 기법에서, 전송요청, 전송선택, 전송확정의 3단계 동작을 여러 번 반복하면 알고리즘의 성능향상이 있지만, 전송선택과 전송확정 단계에서 확률함수를 사용해야 하므로 고속동작이 어렵다는 문제점이 있다.
PIM의 확률동작을 없앤 것이 SLIP 기법이다. 이 SLIP 기법은 N. McKweon 등이 Electronics Letters, Vol. 29, No. 25, Dec. 1993,에 발표한 논문 "Scheduling cells in an input-queued switch"에 상세하게 기술되어 있다.
SLIP 기법은 PIM 기법의 전송선택 단계와 전송확정 단계에서 확률함수대신 라운드로빈(round-robin)을 이용한다.
즉, 확률적으로 여러 개의 전송요청들(requests) 중 하나를 선택하거나 여러 개의 전송선택들(grants) 중 하나를 선택하는 대신 라운드로빈 포인터(round-robin pointer)를 사용한다.
현재 라운드로빈 포인터 값이 i일 경우, 전송요청(request)을 보낸 입력포트 중에서 i번째 이후의 제일 처음 입력포트를 전송선택(grant)한다.
그리고, 그 전송선택(grant)이 입력포트에서 전송확정(accept) 되어야만 라운드로빈 포인터 값을 1 증가시킨다. 입력포트의 전송확정(accept) 동작에서도 라운드로빈 포인터가 사용된다.
그러나, 이러한 SLIP 기법은 여러 개의 출력포트들에서 동일한 입력포트를 전송선택(grant)하는 동기화(synchronization) 현상이 발생되는 문제점이 있다.
이러한 동기화(synchronization) 현상을 없애기 위해 SLIP 알고리즘을 여러 번 반복해야 하는 바, N×N 스위치에서 최악의 경우 N번을 반복해야 알고리즘이 완 전히 수렴한다.
또한, SLIP 알고리즘에서는 입출력포트의 개수가 커지면 전송선택(grant) 단계와 전송확인(accept) 단계에서 검색해야 하는 전송요청(request)이나 전송선택(grant)의 개수가 증가한다. 즉, 입출력포트의 개수가 커지면 고속동작이 어렵다는 문제점이 있다.
2DRR 알고리즘은 R. O. LaMaire 등이 IEEE/ACM Trans. Networking., Vol. 2., No. 5., Oct. 1994에 발표한 논문 "Two-dimensioanl round-robin schedulers for packet switches with multiple input queues" 및 미합중국특허 제5299190호에 상세하게 기술되어 있다.
이 2DRR 기법은 N2의 전송요청을 N×N 2차원 행렬로 나타낸 전송요청행렬(request matrix)을 N 단계만에 검색하여 전송할 전송요청(request)을 결정한다. 2DRR 알고리즘은 SLIP 알고리즘이 N번 실행된 경우와 동일한 서비스 공평성을 갖는다.
상기 논문 및 선행 특허에서 기본 2DRR(basic 2DRR) 알고리즘은 패턴시퀀스행렬(pattern sequence matrix)에 정의된 검색순서대로 전송요청행렬을 검색하여, 전송할 전송요청(request)을 결정한다.
상기 논문 및 선행 특허에서 향상된 2DRR(enhanced 2DRR) 알고리즘은 특정한 트래픽(traffic) 패턴에 대해 공평성의 향상을 보인다. 2DRR 알고리즘은 입출력포트의 개수(N)가 커지면 알고리즘 수행에 필요한 단계 수도 커지므로 고속동작이 어 렵다.
한편, C. Lund 등은 입력버퍼형 스위치의 경합제어시 시간정보를 사용하면서 서비스의 공평성을 개선한 방법을 미국특허 제5517495호에서 제안하였다. 이 발명에서는 각 입력포트에서 각 출력포트별로 우선순위를 고려하여 가장 오래 대기한 셀의 전송을 통신 경합제어모듈에 전송요청(request)한다.
경합제어모듈에서는 이 중 가장 오래 대기한 셀에 대해 전송선택(grant)하고, 그 결과를 각 입력포트에 알린다. 각 입력포트에서는 동시에 여러 개의 출력포트에서 전송선택(grant)을 받을 수 있는데 그 중 가장 오래 대기한 셀에 대해서 전송확정(accept)한다.
상기 발명은 PIM 기법이나 SLIP 기법에 비해서 우수한 성능을 보이고 있지만, 전송선택(grant), 전송확정(accept)시에 시간정보를 전송해야 하고, 또 다수의 시간정보에서 최소값을 매 단위시간마다 찾아야 하므로 고속동작이 불가능하다.
도 1은 일반적인 4 x 4 구조 스위치의 동작을 나타낸 것으로서, 각 입력포트(110a~110d)에 들어오는 데이터는 목적지 포트 번호(destination port No.)를 포함하여 들어오게 된다.
도 1에서 입력포트 1(110a)로 들어온 기준시간 데이터는 목적지 포트 번호가 1번이고, 입력포트 2(110b)로 들어온 기준시간 데이터는 목적지 포트 번호가 3번이며, 입력포트 3(110c)으로 들어온 기준시간 데이터는 목적지 포트 번호가 3번이며, 입력포트 4(110d)로 들어온 기준시간 데이터는 목적지 포트 번호가 1번이다.
이때 경로를 설정하는 알고리즘(Algorithm)의 일반적인 방식인 PIM(Parallel Iterative Matching) 방식을 사용하게 되는데, 기준시간에 서로 다른 입력 포트 2 , 3(110b, 110c)이 동일한 목적지 3으로 가고자 하므로 동일 시간에 한 출력포트 3(130c)으로 두개의 데이터가 통과될 수 없으므로 블록킹(Blocking)이 발생하게 되어 정상적인 흐름을 유지할 수 없게 된다.
이와 같은 블록킹(Blocking)을 해결하여, 먼저 보내야 할 데이터 다음에 보내야하는 데이터를 결정하고 보내줄 데이터의 입력포트(110a~110d)와 출력포트(130a~130d)의 경로를 결정하는 스케쥴링 알고리즘(Scheduling Algorithm)이 필요하게 된다.
경로 결정 및 블록킹(blocking) 해결을 위해 각 입력포트(110a~110d) 및 출력 포트(130a~130d) 간에 전송요청(request), 전송선택(grant), 전송확정(accept) 사이클(cycle)을 모든 경로 완료시까지 반복하여야 한다.
도 2a 내지 도 2d는 일반적인 4x4 구조 스위치의 경로 설정 과정을 나타내는 도면이다.
도 2a는 출력포트 1,4의 선택 과정을 설명하기 위한 도면으로서, 입력포트 1에는 목적지 포트 번호가 1인 데이터가, 그리고, 입력포트 2에는 목적지 포트 번호가 1과 3인 데이터가, 입력포트 3에는 목적지 포트 번호가 3인 데이터가, 입력포트 4에는 목적지 포트 번호가 3과 4인 데이터가 있다.
기준시간이 되면 보낼 데이터가 있는 모든 입력포트는 전송요청(request) 신호를 발생하며, 도 2a에서는 입력포트 1은 출력포트 1로, 그리고 입력포트 2는 출력포트 1과 3으로, 입력포트 3은 출력포트 3으로, 입력포트 4는 출력포트 3과 4로 전송요청(request) 신호를 발생한다.
이때, 출력포트 1은 입력포트 1과 2중 하나를 선택하여 전송선택(grant) 신호를 전송하게 되는데, 도 2a에서는 입력포트 1로 전송선택 신호를 전송하고, 출력포트 3은 입력포트 4로, 출력포트 4는 입력포트 4로 전송선택 신호를 전송한다.
이렇게 되면, 입력포트 4는 출력포트 3과 출력포트 4로부터 동시에 전송선택 신호를 수신하게 되며, 이때 입력포트 4는 동시에 도착한 전송선택 신호중 하나를 선택하여 전송확정(accept) 신호를 전송한다. 도 2a에서는 출력포트 4를 선택하여 전송확정(accept)신호를 전송한다.
도 2b는 출력포트 3의 선택 과정을 설명하기 위한 도면으로서, 입력포트 2는 출력포트 1과 3으로 전송요청(request) 신호를 전송하고, 입력포트 3도 출력포트 3으로 전송요청 신호를 전송한다.
그러면, 출력포트 1과 3은 전송선택(grant) 신호를 전송하게 되는데, 도 2b에서는 출력포트 3이 입력포트 3으로 전송선택 신호를 전송하는 것을 보여준다. 그러면, 입력포트 3은 출력포트 3으로 전송확정(accept) 신호를 전송한다.
도 2c는 출력포트 1과 3의 선택 과정을 설명하기 위한 도면으로서, 입력포트 2는 출력포트 1과 3으로 전송요청(request) 신호를 전송하고, 입력포트 4는 출력포트 3으로 전송요청 신호를 전송한다.
그러면, 출력포트 1은 입력포트 2로 전송선택 신호를 전송하고, 출력포트 3은 동시에 도착한 전송요청 신호중 입력포트 4로 전송선택 신호를 전송한다.
그리고, 입력포트 2는 출력포트 1로, 입력포트 4는 출력포트 3으로 전송확정 신호를 전송한다.
마지막으로 도 2d는 출력포트 3의 선택과정을 나타내는 도면으로서, 보낼 데이터가 있는 입력포트 2는 출력포트 3으로 전송요청 신호를 전송한다.
그러면, 출력포트 3은 입력포트 2로 전송선택 신호를 전송하며, 입력포트 2는 출력포트 3으로 전송확정 신호를 전송한다.
상기 도 2a 내지 도 2d는 4 x 4 스위치의 입력포트/출력포트의 경로의 연결 과정을 4단계로 표시한 것으로서, 경로의 설정은 출력포트/입력포트 중재부(arbiter)의 충돌 감지와 임의의 선택 과정을 반복하여 각 입력포트/출력포트의 경로를 연결함을 기본 원리로 이루어진다. 경로를 연결하는 한 사이클은 전송요청(Request), 전송선택(grant), 전송확정(accept) 등 3회를 반복해야 경로를 완성할수 있고, 각 포트의 경로가 불행히도 1개씩만 선택된다면 4개의 데이터 경로(data path)를 연결하는데는 4(time slot) x 4(port) x 3(cycle)이 필요해 최대 48번의 동작을 해야하는 번거로움이 있다.
따라서, 종래의 PIM 방식에 따라 입력포트와 출력포트의 경로를 설정하는데 있어서는 다음과 같은 문제점이 발생한다.
1. 입력포트(input)/출력포트(output) 중재부(arbiter)에 충돌 감지 및 임의선택(Random selection) 논리가 필요.
2. 전송요청(Request), 전송선택(grant), 전송확정(accept) 사이클을 모든 경로 완료 시까지 반복해야 함.
3. 랜덤(Random) 논리에 의한 경로 선택으로 우선순위(Priority) 설정이나 경로(path) 연결 제한 등 경로 설정에 대해 제어가 불가능.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 상기 문제점에서 지적된 충돌 감지 및 랜덤 선택 논리구성이 필요없는 버퍼형 스위치 및 그 스케쥴링 방법을 제공하는데 그 목적이 있다.
또한, 본 발명은 동일한 사이클을 수회반복함으로써 동작상의 로드가 커지는 것을 방지하고, 경로 선택시 우선권 설정이나 경로 연결 제한등의 경로 제어가 가능한 버퍼형 스위치 및 그 스케쥴링 방법을 제공하는데 목적이 있다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 버퍼형 스위치는 각 입력포트로부터 입력된 직렬 데이터를 병렬 데이터로 변환하기 위한 입력버퍼부; 현재 저장된 데이터와 상기 입력버퍼부에 의해 정렬된 병렬 데이터를 비교하여 데이터 유효성 여부에 따라 데이터를 출력할 경로를 결정하고, 데이터 전송에 필요한 연결 시간을 계산하는 쉬프트 및 비교부; 상기 입력포트를 통해 수신한 데이터를 수신 속도와 동일한 속도로 데이터를 출력하기 위한 출력버퍼부; 상기 쉬프트 및 비교부와 상기 출력버퍼부간의 경로를 연결하는 스위칭부; 및 상기 쉬프트 및 비교부의 설정 경로와 연결 시간에 따라 입력버퍼부와 출력버퍼부간 연결버퍼를 연결 시간동안 인에이블시켜 경로를 설정하는 제어부를 포함하여 이루어진 것을 특징으로 한다.
상기 입력버퍼부는 상기 출력포트의 수량에 대응하는 병렬버퍼를 가지며, 해당 입력포트의 직렬 데이터를 병렬데이터로 정렬하여 저장한다.
상기 쉬프트 및 비교부는 상기 입력버퍼부에 입력된 데이터와 쉬프트 및 비교부에 수신된 데이터를 비교하여 데이터가 같으면 유효한 것으로 판단하여 목적지 출력포트로 경로를 설정하고 데이터 개수만큼 연결시간을 설정한다.
상기 쉬프트 및 비교부는 상기 입력버퍼부에 입력된 데이터와 쉬프트 및 비교부에 수신된 데이터를 비교하여 데이터가 다르면, 데이터 이동중(shifting)이거나 데이터 이상 상태로 간주하여 현재 진행중인 경로에 대한 연결시간을 유지한다.
상기 쉬프트 및 비교부는 상기 입력버퍼부에 입력된 데이터와 쉬프트 및 비교부에 수신된 데이터를 비교하여 연속된 데이터가 반복되어 동일하면, 목적지 출력포트로 경로를 설정하고 데이터 개수만큼 연결시간을 설정한다.
상기 스위칭부는 풀메쉬 형태 또는 와이어 브릿지 형태이다.
상기 제어부는 경로 제한 여부를 확인하여 제한된 경로를 인에이블 시키지 않음으로써 경로 제한 기능을 수행한다.
상기 제어부는 각 경로의 우선순위를 설정하고 우선순위에 따라 상기 쉬프트 및 비교부에서 설정한 경로를 처리하여 우선순위 기능을 수행한다.
상기 제어부는 입력포트 및/또는 출력포트에에근거하여 우선순위를 결정하여 우선순위 기능을 수행한다.
상기 제어부는 우선순위가 설정되지 않은 포트는 라운드 로빈 방식에 의하여 경로를 설정한다.
상기 제어부는 각 포트에 대역폭을 할당하여 할당된 대역폭에 해당하는 데이터는 허용하고 이후에 들어오는 데이터는 드랍시킴으로써 대역폭 설정 기능을 수행한다.
또한, 상기의 목적을 달성하기 위한 본 발명에 따른 버퍼형 스위치의 스케쥴링 방법은, 제어모듈은 각각의 입력포트에 입력된 데이터를 입력버퍼모듈의 각각의 병렬 버퍼로 쉬프트시킴으로써 직렬 데이터를 병렬 데이터로 변환시키는 단계; 쉬프트 및 비교모듈은 현재 저장된 데이터와 상기 입력버퍼모듈에 의해 정렬된 병렬 데이터를 비교하여 데이터 유효성 여부에 따라 데이터를 출력할 경로를 결정하고, 데이터 전송에 필요한 연결 시간을 계산하는 단계; 상기 제어모듈은 상기 연결 시간 계산 단계에서 계산된 시간만큼 해당 경로로 연결하는 단계; 및 출력버퍼모듈은 수신한 데이터를 입력포트에 수신시 수신한 속도와 동일한 속도로 출력하는 단계를 포함하는 것을 특징으로 한다.
상기 제어모듈은 대역폭 할당에 대한 제한이 있는 경우에 할당된 대역폭 이상의 데이터는 드랍시킴으로써 대역폭 할당의 제한 요구를 만족시키는 단계를 더 포함한다.
상기 경로 결정 및 연결 시간 계산 단계는, 상기 쉬프트 및 비교모듈이 현재 저장된 데이터와 상기 입력버퍼모듈에 의해 정렬된 병렬 데이터를 비교하여 데이터 유효성을 검사하는 단계; 상기 검사단계의 검사결과 상기 입력버퍼모듈에 입력된 데이터와 쉬프트 및 비교모듈에 수신된 데이터를 비교하여 데이터가 같으면 유효한 것으로 판단하여 목적지 출력포트로 경로를 설정하고 데이터 개수만큼 연결시간을 설정하는 단계를 포함한다.
상기 경로 결정 및 연결 시간 계산 단계는, 상기 쉬프트 및 비교모듈이 현재 저장된 데이터와 상기 입력버퍼모듈에 의해 정렬된 병렬 데이터를 비교하여 데이터 유효성을 검사하는 단계; 상기 검사단계의 검사결과 상기 입력버퍼모듈에 입력된 데이터와 쉬프트 및 비교모듈에 수신된 데이터를 비교하여 데이터가 다르면, 데이터 이동중(shifting)이거나 데이터 이상 상태로 간주하여 현재 진행중인 경로에 대한 연결시간을 유지하는 단계를 포함한다.
상기 경로 결정 및 연결 시간 계산 단계는, 상기 쉬프트 및 비교모듈이 현재 저장된 데이터와 상기 입력버퍼모듈에 의해 정렬된 병렬 데이터를 비교하여 데이터 유효성을 검사하는 단계; 상기 검사단계의 검사결과 상기 입력버퍼모듈에 입력된 데이터와 쉬프트 및 비교모듈에 수신된 데이터를 비교하여 연속된 데이터가 반복되어 동일하면, 목적지 출력포트로 경로를 설정하고 데이터 개수만큼 연결시간을 설정하는 것을 특징으로 한다.
상기 경로 설정 결정 단계 이후에, 상기 제어모듈은 우선순위 결정표에 근거하여 데이터에 대한 우선권을 부여하는 단계를 더 포함하며, 상기 제어모듈은 경로 설정 결정에 따른 설정시간 단계에서 부여된 우선권에 따라 경로를 설정하고 경로 설정 유지시간동안 경로 설정을 유지한다.
상기 경로 설정 결정 단계 이후에, 상기 제어모듈은 경로 설정 제한을 확인하여 경로 설정 제한이 있는 경로인 경우에 경로 설정을 디스에이블 시키는 단계를 포함한다.
이하, 본 발명이 속하는 분야에 통상의 지식을 지닌자가 본 발명을 용이하게 실시할 수 있도록 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세히 설명한다.
도 3은 본 발명의 일실시예에 따른 4x4 입력 버퍼형 스위치이다.
도 3을 참조하면, 스위치는 4개의 입력버퍼모듈(320a~320d), 4개의 쉬프트 및 비교 모듈(330a~330d), 풀메쉬 또는 와이어 브릿지로 구성되어 있는 스위치 모듈(370), 제어모듈(340), 4개의 출력버퍼 모듈(350a~350d)을 포함한다.
입력포트(310a~310d)의 총 개수는 4개이며 입력포트(310a~310d)는 각 입력버퍼모듈(320a~320d)에 연결되어 있다. 각 입력버퍼 모듈(320a~320d)은 출력포트(360a~360d)의 개수와 일치하는 병렬 버퍼를 구비한다.
즉 여기에서 각 입력버퍼 모듈(320a~320d)은 4개의 출력포트(360a~360d)에 대응하는 4개의 병렬 버퍼를 구비한다.
그리고, 각 입력버퍼 모듈(320a~320d)에 구비된 4개의 병렬 버퍼는 각각 4개의 직렬 버퍼로 구성된다.
이처럼, 각 입력버퍼모듈(320a~320d)에 구비된 병렬 버퍼는 각 입력포트(310a~310d)로부터 수신되는 직렬 데이터를 병렬 데이터로 변환시킨다.
쉬프트 및 비교 모듈(330a~330d)은 각 입력버퍼모듈(320a~320d)에 구비된 4개의 병렬 버퍼에 대응되는 4개의 병렬 쉬프트 및 비교 버퍼를 구비하고 있으며, 정렬된 병렬의 각 데이터를 비교하여 연결될 입력 및 출력 경로를 결정하고, 연결 시간(path gating time)을 결정한다.
제어모듈(340)은 쉬프트 및 비교 모듈(330a~330d)과 출력버퍼모듈(350a~350d)에 접속하여 버퍼 제어를 수행하고, 경로 설정을 수행하며, 대역폭(bandwidth) 설정 및 경로 연결 설정 제한을 수행한다.
이하에서, 본 발명의 바람직한 일실시예의 동작을 상세히 설명하면 다음과 같다.
먼저, 입력포트(310a~310d)는 목적지 포트 번호를 포함하고 있는 데이터를 직렬로 입력받게 된다.
본 발명의 직렬 데이터를 병렬 데이터로 변환하는 과정을 설명하기 위한 도 4를 참조하면, 입력포트 1(310a)은 FIFO 버퍼로서 목적지 주소 번호가 1, 2, 2, 4, 3, 1, 4, 2인 데이터를 입력받게 된다. 그리고, 입력포트 2(310b)도 FIFO 버퍼로서 목적지 주소 번호가 2, 4, 2, 3, 4, 3, 4, 1인 데이터를 입력받게 된다.
입력포트 3(310c)은 FIFO 버퍼로서 목적지 주소 번호가 1, 3, 3, 1, 3, 1, 2, 2인 데이터를 입력받고, 입력포트 4(310d)도 FIFO 버퍼로서 목적지 주소 번호가 2, 2, 2, 2, 3, 1, 4, 4인 데이터를 입력받게 된다.
그리고, 일반적으로 n*n 스위치에서 필요로 하는 입력 버퍼와 출력버퍼가 "n"개가 되며 이때 그룹으로 처리해야할 기준 타임 슬롯 역시 "n"의 숫자와 동일하게 된다.
즉, 입력버퍼와 출력버퍼의 수량은 스위치 구조를 기준으로 결정하며 "n"과 동일하게 된다.
예를 들어 4*4 구조의 스위치의 경우 4개의 데이터를 그룹화하여 1타임슬롯으로 처리하고, 256*256의 경우는 256개의 데이터를 그룹화하여 1타임 슬롯으로 처리하게 된다. 이때, 각 입력포트별로 필요한 입력포트/출력포트 버퍼로 역시 "n"개의 숫자와 동일한 "n"개가 각각 소요되게 된다.
도 4에서 기준 타임 슬롯은 "4"개의 입력포트 버퍼의 입력 데이터를 처리할 수 있는 시간이 되며, 입력포트 1(310a)의 경우 기준 타임 슬롯 시간에 "4"개의 입력 데이터를 입력버퍼 모듈의 각 병렬 버퍼(410a∼410d)에 쉬프트시킨다.
즉, 입력포트 1(310a)은 목적지 주소가 1인 데이터를 입력버퍼 모듈의 병렬 버퍼(410a~410d)중에서 첫 번째 병렬 버퍼(410a)로 쉬프트시킨다.
그리고, 입력포트 1(310a)은 목적지 주소가 2인 2개의 데이터를 입력버퍼 모듈의 병렬 버퍼(410a~410d)중에서 두 번째 병렬 버퍼(410b)로 쉬프트시킨다.
또한, 입력포트 1(310a)은 목적지 주소가 4인 데이터를 입력버퍼 모듈의 병렬 버퍼(410a~410d)중에서 네번째 병렬 버퍼(410d)로 쉬프트시킨다.
한편, 입력포트 4(310d)는 목적지 주소가 2인 4개의 데이터를 입력버퍼 모듈의 병렬 버퍼(440a~440d)중에서 두 번째 병렬 버퍼(440b)로 쉬프트시킨다.
이처럼, 각 입력포트(310a~310d)에서 입력된 직렬 데이터는 입력버퍼모듈에서 병렬 데이터로 변환되는데, 입력버퍼모듈은 각 영역에 따라 출력포트에 해당하는 고유 영역을 가지고 있으며, 이 분류에 따라 입력 데이터의 목적지 주소 번호에 해당하는 영역으로 데이터를 저장하게 된다.
저장 결과를 보면 입력버퍼모듈의 첫 번째 입력버퍼의 첫 번째 병렬 버퍼(410a)에는 1개의 데이터가, 두 번째 병렬 버퍼(410b)에는 2개의 데이터가, 네 번째 병렬 버퍼(410d)에는 1개의 데이터가 저장되어 있다.
또한, 입력버퍼모듈의 네 번째 입력버퍼의 두 번째 병렬 버퍼(440b)에는 4개의 데이터가 저장된다. 이때 각 데이터의 개수는 이후 경로의 설정(gating) 시간이 됨으로 카운팅하여야 한다.
다음으로, 해당 타임 슬롯 시간에 데이터의 유효성을 검증하기 위해 쉬프트 및 비교 모듈(450a~490d)은 데이터를 이동시키고 해당 데이터의 유효성을 검증한다.
도 5를 참조하면, 쉬프트 및 비교 모듈(510a~510d)는 쉬프트되어 현재 저장된 데이터와 상기 입력버퍼모듈(410a~410d)에 정렬되어 있는 병렬 데이터를 비교하여 데이터 유효성을 검증한다.
유효성 검증 결과 도 5(a)와 같이 상기 입력버퍼모듈(410a~410d)에 입력된 데이터와 쉬프트 및 비교모듈(510a~540d)에 수신된 데이터를 비교하여 데이터가 같으면 데이터가 유효한 것으로 판단하여, 해당 데이터를 목적지 출력포트로 경로를 설정하고 데이터 개수만큼 연결하도록 경로 연결 시간을 설정한다.
그리고 유효성 검증결과 도 5(b)와 같이 상기 입력버퍼모듈(410a~410d)에 입력된 데이터와 쉬프트 및 비교모듈(510a~540d)에 수신된 데이터를 비교하여 데이터가 다르면 데이터 무효로 판정하여, 데이터 이동중(shifting)이거나 데이터 이상 상태로 간주하고 현재 진행중인 경로에 대한 연결시간을 유지시킨다.
또한 유효성 검증 결과 도 5(c)와 같이 상기 입력버퍼모듈(410a~410d)에 입 력된 데이터와 쉬프트 및 비교모듈(510a~540d)에 수신된 데이터를 비교하여 연속된 데이터가 반복되어 동일하면,연속하는 데이터가 입력되는 특수한 경우로서 목적지 출력포트로 경로를 설정하고 데이터 개수만큼 연결시간을 설정한다.
이때는 다음 입력되는 데이터 역시 연속하는 동일값을 가지므로 쉬프트 및 비교 동작과 경로 설정 시간 유지 중 어느 동작을 우선시 하여야 하는지 구분이 되지 않을 수 있으나 우연히 데이터가 동일하여 발생하는 현상일 뿐(실제는 다음 데이터가 입력버퍼로 이동하는 과정임)이므로 경로 설정 시간 유지가 우선시 되어야 한다(즉 경로 설정 유지 시간내에는 쉬프트 및 비교의 결과보다 경로 유지가 우선이다).
한편, 위에서 설명한 설정된 정보를 바탕으로 입력포트(310a~310d)와 출력포트(360a~360d)를 연결하는 과정은 풀메쉬(full meshed) 형태의 구성이나 와이어 브릿지(wire bridge) 형태를 고려할 수 있다.
표현 편의상 쉬프트 및 비교모듈(330a~330d)의 x 번째 병렬 버퍼에 대하여 s(x, y, z)을 사용할 경우에 입력포트 "x"의 데이터가 출력포트 "y"로 출력되는데 "z*기준시간" 동안 경로 설정 시간이 유지되는 것으로 이해된다.
예를 들어 s(4, 3, 3)은 입력포트 4(310d)로 들어온 데이터가 출력포트 3(360c)로 연결된다는 표시이며, 3기준시간동안 경로가 유지된다는 의미가 내포되어 있다.
또한, 출력 버퍼 모듈(350a~350d)의 병렬 버퍼에 대하여 d(x, y)의 표시는 출력포트 x로 입력포트 y로 입력된 데이터가 입력된다는 표시이다.
각 포트의 s(x, y, z)과 d(x, y)의 의미를 정리하면 다음 (표 1)과 같다.
각 연결과정별 세부내역을 살펴보면 다음과 같다.
도 6은 본 발명의 스위치 모듈에 적용되는 풀 메쉬 형태의 연결 과정을 설명하기 위한 도면이다.
풀 메쉬(Full meshed) 형태의 연결은 각 포트(port)의 연결은 s(x,y)에서 소스(source), 목적지(destination)를 의미 하는 x,y를 d의 y,x값이 되도록 하여 두 입력(input)/출력(output)포트의 경로를 연결한다. 즉, 쉬프트 및 비교 모듈(330a~330d)의 첫 번째 쉬프트 및 비교 버퍼(330a)의 첫 번째 병렬 버퍼는 s(1,1)을 가지게 되는데, 이는 입력포트1에서 들어온 데이터로서 출력포트 1로 출력되어야 하는 것을 의미하며, 이에 따라 출력버퍼 모듈(350a~350d)의 첫 번째 출력버퍼(350a)의 첫 번째 병렬 버퍼와 연결된다.
그리고, 첫 번째 쉬프트 및 비교 버퍼(330a)의 두번째 병렬 버퍼는 s(1,2)을 가지게 되는데, 이는 입력포트1에서 들어온 데이터로서 출력포트 2로 출력되어야 하는 것을 의미하며, 이에 따라 출력버퍼 모듈(350a~350d)의 두 번째 출력버퍼(350b)의 첫 번째 병렬 버퍼와 연결된다.
쉬프트 및 비교 모듈(330a~330d)에서 확인된 각 데이터의 중복된 수는 s( )의 z 자리에 입력하여 입력/출력 포트의 경로 설정 시간(Z * 기준타임) 동안 데이터 경로를 유지할수 있도록 한다. 출력버퍼 모듈(350a~350d)에 도착한 데이터는 병렬 데이터가 직렬 데이터로 변환을 거쳐 출력 포트의 출력 레이트(output port speed rate)에 맞추어 최종 출력된다.
도 7은 본 발명의 스위치 모듈에 적용되는 와이어 브릿지 형태의 연결 과정을 설명하기 위한 도면이다.
와이어 브릿지(Wire bridge)는 풀메쉬(Full meshed) 형태와 달리 연결 경로를 공통으로 사용하게 되므로 도 7과 같이 트리-버퍼(Tri-buffer)를 사용하여 입력/출력 포트를 제어하게 된다. 연결의 예는 도 7과 같으며 각 포트의 연결은 s(x,y,z) 및 d(x,y)의 의미는 풀 메쉬(Full meshed)의 경우와 동일하게 사용 된다.
풀메쉬(Full meshed)와 다른 점은 출력포트(output port)의 버퍼(buffer)(350a~350d)를 각 입력포트(input port)을 수용할수 있도록 나누어 쓰지 않고 한 개의 버퍼(buffer)를 사용하였으며 이로 인해 출력포트로 출력할때 병렬 데이터를 직렬 데이터로 변환하는 과정을 거치지 않고 직접 출력포트 출력 레이트(output port speed rate)에 맞추어 최종 출력한다.
예를 들어 s(3,3,3)의 의미는 입력포트(input port) 3의 데이터를 출력포트 3에 "3 * 기준시간"동안 경로를 연결한다는 의미가 된다.
한편, 제어모듈(340)은 버퍼제어, 경로 설정, 대역폭 결정, 우선권 설정, 경 로 연결 제한 등의 실행하게 된다.
도 8은 도 3의 제어모듈의 동작을 설명하기 위한 도면이다.
도면을 참조하면, 제어모듈(340)은 크로스바/와이어 브릿지의 해당 쉬프트 및 비교모듈(330a~330d)의 해당 쉬프트 및 비교버퍼의 병렬버퍼와 출력버퍼모듈(350a~350d)의 해당 출력버퍼의 병렬 버퍼를 동시에 인에이블(enable)시킴으로써 경로 설정을 수행한다.
일예로 도 8에서는 쉬프트 및 비교모듈(330a~330d)의 첫 번째 쉬프트 및 비교버퍼(330a)의 첫 번째 병렬버퍼와 출력버퍼모듈(350a~350d)의 첫 번째 출력버퍼(350a)의 첫 번째 병렬버퍼를 인에이블시킴으로 경로를 설정하고 있음을 보여준다.
또한, 제어모듈(340)은 경로를 제한받게 되면 비록 쉬프트 및 비교모듈(330a~330d)에서 연결 경로를 확인한다고 해도 제한된 경로를 인에이블 시키지 않도록 제어한다.
또한, 제어모듈(340)은 각 경로의 우선순위가 필요한 경우에 우선순위에 따라 쉬프트 및 비교모듈(330a~330d)에서 확인한 경로를 처리한다.
즉, 경로를 설정하는데 충돌이 발생한 경우에는 우선순위를 확인하여 우선순위에 따라 경로를 설정하며 표 2는 우선순위 설정표이다.
표 2를 보면 소스 포트뿐만 아니라 출력포트에서 우선권의 설정이 가능함을 알 수 있으며, z의 개수에 따라 우선권을 제한할 수 있음을 알 수 있다.
표 2에서 소스 포트가 1이고 출력포트가 2이며 동시에 z가 1 이상일 때 첫 번째 우선권을 가짐을 알 수 있으며, 출력포트가 4이고 입력포트가 1일 때 두 번째 우선권을 가짐을 알 수 있다.
또한, 출력포트가 2이고 입력포트가 2이며 z가 1 이상일 때 세 번째 우선권을 가짐을 알 수 있으며, 소스 포트가 3이고 출력포트가 2일 때 z가 1 이상일 때 네 번째 우선권을 가짐을 알 수 있다.
제어모듈(340)은 우선 데이터의 유무를 판단하여 z=0이면 우선순위에서 제외한다. 그리고, 제어모듈(340)은 우선순위가 없는 포트는 정해진 방식(round-robin 등)을 기준으로 우선 순위를 설정하여 경로를 설정한다.
표 3은 표 2에 의한 제어모듈(340)의 우선순위 결과표이다.
표 3을 살펴보면 s(1,2)의 경우, 즉 입력포트 1과 출력포트 2의 경우에 z=0으로 보낼 데이터가 없어 우선순위를 부여할 필요가 없음을 알 수 있다.
그리고, d(4, 1)인 경우 즉 출력포트가 4이고 입력포트가 1인 경우에 여기에서는 실질적으로 z=2임으로 1순위가 된다.
그리고, d(2,2)인 경우 즉 출력포트가 2이고 입력포트가 2인 경우에 z=1임으로 2순위가 된다.
또한, s(3,2,3)인 경우 즉 입력포트가 3이고 출력포트가 2인 경우에는 z=3임으로 3순위가 되며, 나머지 s(1,1, 2)나 d(4,3)의 경우에는 라운드로빈 등에 의해 우선순위가 설정된다.
한편, 제어모듈(340)은 대역폭 설정 기능을 가지게 되는데, 도 9는 도 3의 제어모듈이 대역폭 설정 기능을 설명하기 위한 도면이다.
도 9를 참조하면, 입력포트 1(310a)의 경우 n=4일 때 각 비교 데이터 1개는 전체의 1/4씩이므로 25%의 대역폭을 의미하게 된다.
이때, 입력포트1(310a)의 용량을 50%로 제한할 경우에 2개의 데이터자리만을 허용하고 이후에 들어오는 데이터를 드랍시키는 방법으로 입력을 50%로 제한할 수 있다.
일반적으로 n*n 구조에서 데이터 1개가 (1/n)%를 의미하게 되며 A%까지 허용되는 경우에는 필요한 데이터(허용 가능한 데이터,D)는 다음 (수학식 1)로 표현된다.
가 된다.
도 9에서는 쉬프트 및 비교모듈(330a~330d)의 첫 번째 쉬프트 및 비교버퍼(330a)가 허용 대역폭 100%안에서 4개의 데이터를 받아들인 것을 나타내고 있으며, 네 번째 쉬프트 및 비교모듈(330d)에서 허용 대역폭 100%안에서 유효 데이터 3개를 받아들여 실제 사용되는 대역폭이 75%임을 알 수 있다.
도 10은 본 발명의 일실시예에 따른 n*n 스위치의 스케쥴링 방법의 흐름도이다.
도 10을 참조하면, 먼저 제어모듈은 각각의 입력포트에 입력된 데이터를 입력버퍼모듈의 각각의 병렬 버퍼로 쉬프트시킴으로써 직렬 데이터를 병렬 데이터로 변환시킨다(S100).
이때, 제어모듈은 대역폭 할당에 대한 제한이 있는 경우에 할당된 대역폭 이 상의 데이터는 드랍시킴으로써 대역폭 할당의 제한 요구를 만족시킨다.
그리고, 쉬프트 및 비교모듈은 병렬 데이터를 쉬프트 시키면서 유효성을 검사하게 되며(S110), 검사결과 유효한 데이터인 경우에 입력포트에서 출력포트로 전송되어야 할 데이터임으로 경로 설정 및 경로 유지 과정이 진행되도록 한다.
즉, 제어모듈은 우선순위 결정표에 근거하여 데이터에 대한 우선권을 부여하며(S140), 부여된 우선권에 따라 경로를 설정하고 경로 설정 유지시간동안 경로 설정을 유지한다(S170).
이때, 제어모듈은 경로 설정에 대한 제한이 있는지를 검사하여 경로 설정에 대한 제한이 있으면 경로를 설정하지 않는다(S160).
한편, 쉬프트 및 비교모듈의 유효성 검사 결과, 무효인 데이터인 경우 또는 특수한 데이터인 경우에는 데이터를 쉬프트시키는 것이 아니라 현재의 경로 설정 및 경로 유지 과정을 진행시킨다.
이상 본 발명의 바람직한 실시예에 대해 상세히 기술되었지만, 본 발명이 속하는 기술분야에 있어서 통상의 지식을 가진 사람이라면, 첨부된 청구 범위에 정의된 본 발명의 정신 및 범위를 벗어나지 않으면서 본 발명을 여러 가지로 변형 또는 변경하여 실시할 수 있음을 알 수 있을 것이다. 따라서 본 발명의 앞으로의 실시예들의 변경은 본 발명의 기술을 벗어날 수 없을 것이다.
상기와 같은 본 발명에 따르면, 기존 PIM 방식의 스케쥴링(scheduling)은 전 송요청(request), 전송선택(grant), 전송확정(accept) 등의 과정을 거쳐 입력/출력 포트의 충돌 감지 및 랜덤 선택으로 수회의 반복을 거쳐 모든 경로가 연결되는 과정을 거쳐 데이터 전달을 향상시키는 방법과 달리 질의, 응답, 획득의 과정을 거치지 않고 입력된 데이터의 목적지를 직접 확인하여 출력포트로 연결하도록 하는 효과가 있다.
또한, 본 발명에 따르면 랜덤 방식으로 경로를 선택하지 않으므로 우선권 설정이나 경로 연결 제한 등 경로 설정에 대해 제어가 가능하다는 효과가 있다.
또한, 본 발명에 따르면 입력포트와 출력포트의 상호 연결 관계가 s(x,y,z) ↔ d(y,x) 과 같이 단순히 정리되므로 스케쥴링 방법의 구현이 간단하고 용이하다는 효과가 있다.
또한, 본 발명에 따르면 구현하고자하는 스위치 형태에 따라 풀메쉬/와이어 브릿지 방식을 선택적으로 적용할수 있도록 하는 효과가 있다.
또한, 본 발명에 따르면 입력/출력 버퍼의 숫자 및 용량을 스위치 구조(n * n)에 맞도록 설정하게 되므로 최대 데이터 전송을 보장할 수 있도록 하는 효과가 있다.
Claims (21)
- 각 입력포트로부터 입력된 직렬 데이터를 병렬 데이터로 변환하기 위한 입력버퍼부;현재 저장된 데이터와 상기 입력버퍼부에 의해 정렬된 병렬 데이터를 비교하여 데이터 유효성 여부에 따라 데이터를 출력할 경로를 결정하고, 데이터 전송에 필요한 연결 시간을 계산하는 쉬프트 및 비교부;상기 입력포트를 통해 수신한 데이터를 수신 속도와 동일한 속도로 데이터를 출력하기 위한 출력버퍼부;상기 쉬프트 및 비교부와 상기 출력버퍼부간의 경로를 연결하는 스위칭부; 및상기 쉬프트 및 비교부의 설정 경로와 연결 시간에 따라 입력버퍼부와 출력버퍼부간 연결버퍼를 연결시간 동안 인에이블시켜 경로를 설정하는 제어부를 포함하는 버퍼형 스위치.
- 제 1 항에 있어서, 상기 입력버퍼부는상기 출력포트의 수량에 대응하는 병렬버퍼를 가지며, 해당 입력포트의 직렬 데이터를 병렬데이터로 정렬하여 저장하는 것을 특징으로 하는 버퍼형 스위치.
- 제 1 항에 있어서, 상기 쉬프트 및 비교부는상기 입력버퍼부에 입력된 데이터와 쉬프트 및 비교부에 수신된 데이터를 비교하여 데이터가 같으면 유효한 것으로 판단하여 목적지 출력포트로 경로를 설정하고 데이터 개수만큼 연결시간을 설정하는 것을 특징으로 하는 버퍼형 스위치.
- 제 1 항에 있어서, 상기 쉬프트 및 비교부는상기 입력버퍼부에 입력된 데이터와 쉬프트 및 비교부에 수신된 데이터를 비교하여 데이터가 다르면, 데이터 이동중(shifting)이거나 데이터 이상 상태로 간주하여 현재 진행중인 경로에 대한 연결시간을 유지하는 것을 특징으로 하는 버퍼형 스위치.
- 제 1 항에 있어서, 상기 쉬프트 및 비교부는상기 입력버퍼부에 입력된 데이터와 쉬프트 및 비교부에 수신된 데이터를 비교하여 연속된 데이터가 반복되어 동일하면, 목적지 출력포트로 경로를 설정하고 데이터 개수만큼 연결시간을 설정하는 것을 특징으로 하는 버퍼형 스위치.
- 제 1 항에 있어서, 상기 스위칭부는풀메쉬 형태인 것을 특징으로 하는 버퍼형 스위치.
- 제 1 항에 있어서, 상기 스위칭부는와이어 브릿지 형태인 것을 특징으로 하는 버퍼형 스위치.
- 제 1 항 내지 제 7 항 중 어느 하나에 있어서, 상기 제어부는경로 제한 여부를 확인하여 제한된 경로를 인에이블 시키지 않아 경로 제한 기능을 수행하는 것을 특징으로 하는 버퍼형 스위치.
- 제 1 항 내지 제 7 항 중 어느 한 항에 있어서, 상기 제어부는각 경로의 우선순위를 설정하고 우선순위에 따라 상기 쉬프트 및 비교부에서 설정한 경로를 처리하여 우선순위 기능을 수행하는 것을 특징으로 하는 버퍼형 스위치.
- 제 9 항에 있어서, 상기 제어부는입력포트에 근거하여 우선순위를 결정하여 우선순위 기능을 수행하는 것을 특징으로 하는 버퍼형 스위치.
- 제 9 항에 있어서, 상기 제어부는출력포트에 근거하여 우선순위를 결정하여 우선순위 기능을 수행하는 것을 특징으로 하는 버퍼형 스위치.
- 제 9 항에 있어서, 상기 제어부는입력포트와 출력포트에 근거하여 우선순위를 결정하여 우선순위 기능을 수행하는 것을 특징으로 하는 버퍼형 스위치.
- 제 9 항에 있어서, 상기 제어부는우선순위가 설정되지 않은 포트는 라운드 로빈 방식에 의하여 경로를 설정하는 것을 특징으로 하는 버퍼형 스위치.
- 제 1 항 내지 제 7 항 중 어느 한 항에 있어서, 상기 제어부는각 포트에 대역폭을 할당하여 할당된 대역폭에 해당하는 데이터는 허용하고 이후에 들어오는 데이터는 드랍시킴으로써 대역폭 설정 기능을 수행하는 것을 특징으로 하는 버퍼형 스위치.
- 제어모듈은 각각의 입력포트에 입력된 데이터를 입력버퍼모듈의 각각의 병렬 버퍼로 쉬프트시킴으로써 직렬 데이터를 병렬 데이터로 변환시키는 단계;쉬프트 및 비교모듈은 현재 저장된 데이터와 상기 입력버퍼모듈에 의해 정렬된 병렬 데이터를 비교하여 데이터 유효성 여부에 따라 데이터를 출력할 경로를 결정하고, 데이터 전송에 필요한 연결 시간을 계산하는 단계;상기 제어모듈은 상기 연결 시간 계산 단계에서 계산된 시간만큼 해당 경로로 연결하는 단계; 및출력버퍼모듈은 수신한 데이터를 입력포트에 수신시 수신한 속도와 동일한 속도로 출력하는 단계를 포함하는 버퍼형 스위치의 스케쥴링 방법.
- 제 15 항에 있어서, 상기 제어모듈은대역폭 할당에 대한 제한이 있는 경우에 할당된 대역폭 이상의 데이터는 드랍시킴으로써 대역폭 할당의 제한 요구를 만족시키는 단계를 더 포함하여 이루어진 버퍼형 스위치의 스케쥴링 방법.
- 제 15 항 또는 제 16 항에 있어서, 상기 경로 결정 및 연결 시간 계산 단계는,상기 쉬프트 및 비교모듈이 현재 저장된 데이터와 상기 입력버퍼모듈에 의해 정렬된 병렬 데이터를 비교하여 데이터 유효성을 검사하는 단계;상기 검사단계의 검사결과 상기 입력버퍼모듈에 입력된 데이터와 쉬프트 및 비교모듈에 수신된 데이터를 비교하여 데이터가 같으면 유효한 것으로 판단하여 목적지 출력포트로 경로를 설정하고 데이터 개수만큼 연결시간을 설정하는 단계를 포함하는 것을 특징으로 하는 버퍼형 스위치의 스케쥴링 방법.
- 제 15 항 또는 제 16 항에 있어서, 상기 경로 결정 및 연결 시간 계산 단계는,상기 쉬프트 및 비교모듈이 현재 저장된 데이터와 상기 입력버퍼모듈에 의해 정렬된 병렬 데이터를 비교하여 데이터 유효성을 검사하는 단계;상기 검사단계의 검사결과 상기 입력버퍼모듈에 입력된 데이터와 쉬프트 및 비교모듈에 수신된 데이터를 비교하여 데이터가 다르면, 데이터 이동중(shifting)이거나 데이터 이상 상태로 간주하여 현재 진행중인 경로에 대한 연결시간을 유지하는 단계를 포함하는 것을 특징으로 하는 버퍼형 스위치의 스케쥴링 방법.
- 제 15 항 또는 제 16 항에 있어서, 상기 경로 결정 및 연결 시간 계산 단계는,상기 쉬프트 및 비교모듈이 현재 저장된 데이터와 상기 입력버퍼모듈에 의해 정렬된 병렬 데이터를 비교하여 데이터 유효성을 검사하는 단계;상기 검사단계의 검사결과 상기 입력버퍼모듈에 입력된 데이터와 쉬프트 및 비교모듈에 수신된 데이터를 비교하여 연속된 데이터가 반복되어 동일하면, 목적지 출력포트로 경로를 설정하고 데이터 개수만큼 연결시간을 설정하는 것을 특징으로 하는 버퍼형 스위치의 스케쥴링 방법.
- 제 15 항 또는 제 16 항에 있어서, 상기 경로 설정 결정 단계 이후에,상기 제어모듈은 우선순위 결정표에 근거하여 데이터에 대한 우선권을 부여하는 단계를 더 포함하며,상기 제어모듈은 경로 설정 결정에 따른 설정시간 단계에서 부여된 우선권에 따라 경로를 설정하고 경로 설정 유지시간동안 경로 설정을 유지하는 것을 특징으로 하는 버퍼형 스위치의 스케쥴링 방법.
- 제 15 항 또는 제 16 항에 있어서, 상기 경로 설정 결정 단계 이후에,상기 제어모듈은 경로 설정 제한을 확인하여 경로 설정 제한이 있는 경로인 경우에 경로 설정을 디스에이블 시키는 단계를 포함하여 이루어진 버퍼형 스위치의 스케쥴링 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040004843A KR100612442B1 (ko) | 2004-01-26 | 2004-01-26 | 버퍼형 스위치 및 그 스케쥴링 방법 |
US11/023,622 US20050163127A1 (en) | 2004-01-26 | 2004-12-29 | Buffer switch and scheduling method thereof |
CNA2005100057547A CN1649329A (zh) | 2004-01-26 | 2005-01-25 | 缓冲开关及其调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040004843A KR100612442B1 (ko) | 2004-01-26 | 2004-01-26 | 버퍼형 스위치 및 그 스케쥴링 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050076978A KR20050076978A (ko) | 2005-07-29 |
KR100612442B1 true KR100612442B1 (ko) | 2006-08-16 |
Family
ID=34793319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040004843A KR100612442B1 (ko) | 2004-01-26 | 2004-01-26 | 버퍼형 스위치 및 그 스케쥴링 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20050163127A1 (ko) |
KR (1) | KR100612442B1 (ko) |
CN (1) | CN1649329A (ko) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7457303B2 (en) * | 2003-06-06 | 2008-11-25 | International Business Machines Corporation | One-bounce network |
JP4465394B2 (ja) * | 2008-04-08 | 2010-05-19 | 富士通株式会社 | パケット中継装置、パケット中継方法およびパケット中継プログラム |
GB2461693B (en) * | 2008-07-07 | 2012-08-15 | Micron Technology Inc | Switching method |
GB2461881B (en) * | 2008-07-15 | 2012-10-03 | Micron Technology Inc | Switching device |
ES2548542T3 (es) * | 2011-05-16 | 2015-10-19 | Huawei Technologies Co., Ltd. | Método y dispositivo de red para transmitir un flujo de datos |
CN111464461B (zh) * | 2019-01-22 | 2022-05-03 | 清华大学 | 用于交换机的优先级调度方法和装置 |
FR3112050B1 (fr) * | 2020-06-30 | 2023-03-03 | Thales Sa | Commutateur pour un systeme de communication avionique, et systeme de communication avionique et procede de transmission associes |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4814979A (en) * | 1981-04-01 | 1989-03-21 | Teradata Corporation | Network to transmit prioritized subtask pockets to dedicated processors |
US4945471A (en) * | 1981-04-01 | 1990-07-31 | Teradata Corporation | Message transmission system for selectively transmitting one of two colliding messages based on contents thereof |
US4734907A (en) * | 1985-09-06 | 1988-03-29 | Washington University | Broadcast packet switching network |
DE3788649T2 (de) * | 1987-10-20 | 1994-06-23 | Ibm | Schnelle modulare Vermittlungseinrichtung für Durchschaltverkehr und paketvermittelten Verkehr. |
US5655096A (en) * | 1990-10-12 | 1997-08-05 | Branigin; Michael H. | Method and apparatus for dynamic scheduling of instructions to ensure sequentially coherent data in a processor employing out-of-order execution |
US5517495A (en) * | 1994-12-06 | 1996-05-14 | At&T Corp. | Fair prioritized scheduling in an input-buffered switch |
US6359923B1 (en) * | 1997-12-18 | 2002-03-19 | At&T Wireless Services, Inc. | Highly bandwidth efficient communications |
US7260104B2 (en) * | 2001-12-19 | 2007-08-21 | Computer Network Technology Corporation | Deferred queuing in a buffered switch |
US7386008B2 (en) * | 2001-07-19 | 2008-06-10 | Eci Telecom Ltd. | Method and apparatus for converting data packets between a higher bandwidth network and a lower bandwidth network having multiple channels |
KR20100114942A (ko) * | 2002-05-13 | 2010-10-26 | 페어차일드 세미컨덕터 코포레이션 | 직렬화기 및 비직렬화기 기능을 갖는 교차점 스위치 |
US7193994B1 (en) * | 2002-08-16 | 2007-03-20 | Intel Corporation | Crossbar synchronization technique |
-
2004
- 2004-01-26 KR KR1020040004843A patent/KR100612442B1/ko not_active IP Right Cessation
- 2004-12-29 US US11/023,622 patent/US20050163127A1/en not_active Abandoned
-
2005
- 2005-01-25 CN CNA2005100057547A patent/CN1649329A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN1649329A (zh) | 2005-08-03 |
KR20050076978A (ko) | 2005-07-29 |
US20050163127A1 (en) | 2005-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7492782B2 (en) | Scalable crossbar matrix switching apparatus and distributed scheduling method thereof | |
Mhamdi et al. | CBF: A high-performance scheduling algorithm for buffered crossbar switches | |
US8902883B1 (en) | Method and apparatus for priority-provisioned arbitration scheduling for a switch fabric | |
US6556571B1 (en) | Fast round robin priority port scheduler for high capacity ATM switches | |
US7397808B2 (en) | Parallel switching architecture for multiple input/output | |
CA2401332C (en) | Packet switching | |
US7020131B1 (en) | System and method for hierarchical switching | |
US7889729B2 (en) | System and method for reevaluating granted arbitrated bids | |
WO2003017594A1 (en) | Method and apparatus for weighted arbitration scheduling separately at the input ports and the output ports of a switch fabric | |
CA2540002A1 (en) | Matching process | |
Chrysos et al. | SCOC: High-radix switches made of bufferless clos networks | |
EP1856860A2 (en) | Input buffered switch | |
KR100363890B1 (ko) | 입출력 버퍼형 스위치의 다중 선택형 2차원 라운드로빈 스케줄링 방법 | |
KR100612442B1 (ko) | 버퍼형 스위치 및 그 스케쥴링 방법 | |
Wang et al. | A distributed switch architecture with dynamic load-balancing and parallel input-queued crossbars for terabit switch fabrics | |
Pan et al. | Localized independent packet scheduling for buffered crossbar switches | |
Rojas-Cessa et al. | Maximum weight matching dispatching scheme in buffered Clos-network packet switches | |
Minkenberg | On packet switch design | |
Elhanany et al. | Packet scheduling in next-generation multiterabit networks | |
Kleban et al. | CRRD-OG: A packet dispatching algorithm with open grants for three-stage buffered Clos-network switches | |
Qu et al. | Designing fully distributed scheduling algorithms for contention-tolerant crossbar switches | |
KR100404376B1 (ko) | 다중 입출력 버퍼를 둔 분할형 크로스바 스위치 | |
Xu | Performance analysis of optical burst switched networks | |
Zheng et al. | An efficient round-robin algorithm for combined input-crosspoint-queued switches | |
EP2169883B1 (en) | Asynchronous flow control and scheduling method |
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: 20090730 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |