KR19990087752A - 효율적인 출력 요구 패킷 스위치와 방법 - Google Patents

효율적인 출력 요구 패킷 스위치와 방법 Download PDF

Info

Publication number
KR19990087752A
KR19990087752A KR1019980707224A KR19980707224A KR19990087752A KR 19990087752 A KR19990087752 A KR 19990087752A KR 1019980707224 A KR1019980707224 A KR 1019980707224A KR 19980707224 A KR19980707224 A KR 19980707224A KR 19990087752 A KR19990087752 A KR 19990087752A
Authority
KR
South Korea
Prior art keywords
packet
connection
port
ingress
queue
Prior art date
Application number
KR1019980707224A
Other languages
English (en)
Other versions
KR100334922B1 (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 비센트 비.인그라시아
Publication of KR19990087752A publication Critical patent/KR19990087752A/ko
Application granted granted Critical
Publication of KR100334922B1 publication Critical patent/KR100334922B1/ko

Links

Classifications

    • 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
    • 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/104Asynchronous transfer mode [ATM] switching fabrics
    • H04L49/105ATM switching elements
    • H04L49/107ATM switching elements using shared medium
    • 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
    • H04L49/3081ATM peripheral units, e.g. policing, insertion or extraction
    • H04L49/309Header conversion, routing tables or routing tags
    • 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/5672Multiplexing, e.g. coding, scrambling
    • H04L2012/5674Synchronisation, timing recovery or alignment
    • 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/5678Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
    • H04L2012/5679Arbitration or scheduling

Landscapes

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

Abstract

A) 패킷들을 메모리에 저장하고 ; B) 각 패킷에 대한 도착 정보를 그 패킷에 대한 목적지 에그레스 포트에 전송하고 ; C) 각 목적지 에그레스 포트의 메모리에 도착 정보를 저장하고 ; D) 소정의 계획에 따라 각 목적지 에그레스 포트에 의해 패킷 메모리로부터 패킷들을 요구하고 ; 및 E) 요구된 패킷을 목적지 에그레스 포트들로 패킷 메모리에 의해 전송하는 단계를 이용해서, 복수의 수신된 패킷을 복수의 인그레스 포트로부터 에그레스 포트로의 효율적인 스위칭을 위한 방법(1200, 1500, 1600, 1700, 1800)과 패킷 스위치(500, 600, 700, 1400, 1900, 2000).

Description

효율적인 출력 요구 패킷 스위치와 방법
패킷 스위칭은 복수의 사용자로부터의 데이타를 패킷이라 불리는 단위로 나누어 통상의 전송 선로를 통해 전송하는 네트워킹 시스템을 위한 기술이다. 패킷 스위칭은 회로 스위칭에 대역폭의 장기간 할당이 제공되는 것과는 반대로, 논리적 접속들의 요구에 동적으로 할당되는 대역폭을 사용한다는 점에서 회로 스위칭과 다르다. 패킷 스위칭은 회로 스위칭보다 더 나은 네트워크 자원들의 분배를 제공함으로써 네트워크 사용자들의 비용을 감소하게 한다. 패킷 스위치된 서비스는 음성, 영상 및 데이타와 같은 트래픽 형의 어떠한 혼합도 동시에 처리할 능력을 가지고 있다. 또한 지연, 지터(jitter) 및 손실율에 있어서, 다른 종류의 서비스를 다른 접속들에게 제공할 수도 있다.
패킷 통신 네트워크들은 패킷들을 만들어내고 수신하고 또는 전송하기 위한 장치들인 "노드들"과 두개의 노드들을 연결하는 "링크들"로 구성된다. 패킷 통신 네트워크에서는 패킷 메세지들을 일련의 링크들과 노드들을 거쳐 네트워크의 목적지 노드로 전송하기 위해 소스(source) 노드에서 디지털로 코드화한다. 주어진 전송 경로에는 일반적으로 한 개 또는 그 이상의 중간 노드들 혹은 "스위치들"이 존재하며, 여기에서 각 스위치는 복수의 소스와 목적지 링크들을 연결한다.
도 1에서 참조부호 100은 각각 레이트 R의 N개의 입력 링크들과 N개의 출력 링크들을 연결하는 스위치에 대한 개략적인 도시이다. 전체 스위치의 최대 처리 능력은 N*R(102)보다 적거나 같다(여기에서 *는 승산을 나타냄). 입력 링크 상에 도달한 각 패킷에 대한 출력 링크의 선택은 패킷 내의 선정된 로케이션(location)에 저장된 정보에 의존한다. 선행 기술로서 알려진 3가지 종류의 패킷 스위치 디자인들은 출력 대기 행렬 스위치, 입력 대기 행렬 스위치 및 공용 메모리 스위치이다.
도 2에서 참조부호 200은 선행 기술로서 알려진 전형적인 출력 대기 행렬 스위치 구조내의 패킷 흐름들을 도시하는 블럭 다이어그램이다. 스위치에 의해 각 패킷상에 수행되는 프로세싱 (Processing)은 인그레스 포트(IP:202, 204, 206, ..., 208)에서 수행하는 인그레스 프로세싱과 에그레스 포트(EP:226, 228, 230, ..., 232)에서 수행하는 에그레스 프로세싱 두 가지 부분을 가지고 있다. 패킷들은 IP들에 도착하고 예를 들면 모든 도착 패킷들을 전송(속도 N*R)할 수 있는 스위치 구조(234)를 통해 선택된 EP로 향하게 된다. 도 2는 다른 형태[교차점형, 반얀형(banyan)]들이 가능하지만 예를 들면 공용 매체 스위치 구조를 도시하고 있다. 어드레스 필터들(210, 212, 214, ..., 216)은 특정 EP에 어드레스된 패킷들을 선택한다. 선택된 패킷들은 예를 들면 FIFO 버퍼들(226, 228, 230, ..., 232)에 저장된 후 에그레스 포트(226, 228, 230, ..., 232)로 전송된다.
출력 대기 행렬 스위치에서, IP들에 도착한 모든 패킷들은 일정 시간내에 출력 FIFO들로 전송된다. 그러나, 도 3의 도시처럼 다수의 패킷들이 동시에 똑같은 에그레스 포트로 향할 수도 있다는 점에 주목하라. FIFO들에 대한 필요성이 생기는 것도 패킷 전송에서의 이러한 돌발성 때문이다. 스위치 구조(334)를 거치는 IP들(302, 304, 306, ..., 308)로의 레이트 R의 N개의 스위치 입력들이 있다면, 복수의 어드레스 필터들(310, 312, 314, ...316) 중 하나로부터 출력을 수신하는 FIFO들(318, 320, 322, ... 324)은 레이트 N*R에서 패킷을 수신하도록 디자인되어야 하며, 한편 패킷들은 레이트 R에서 FIFO들(326, 328, 330, .., 332)로부터 판독된다. 큰 스위치들에 있어서 이러한 FIFO들은 대용량, 초고속 메모리를 필요로 한다.
선행 기술인 본 디자인을 근거로 한 변화로는 안토니 아캠포라 등에 의해 미국 특허 제 4,760,570에 기술되어 있는 낙 아웃(Knockout) 스위치가 있으며, 이것은 제한된 패킷들의 수(k)가 EP에서 수신될 수 있게 한다. 단 이때 k<N이다. 만약 k개 이상의 패킷들이 EP에 도달한다면 낙아웃 스위치는 과다 패킷들을 드롭(drop)한다. 그래서 낙아웃 스위치는 기록 속도를 N*R에서 k*R로 줄임으로써 FIFO의 비용을 감소할 수 있지만, 그 대가로, 일부분의 패킷들이 손실될 수도 있다.
도 4에서 참조부호 400은 선행 기술로서 전형적인 입력 대기 행렬 구조의 패킷 흐름들을 가진 장치의 블록 다이어그램이다. 출력 대기 행렬의 경우와 마찬가지로, IP들(402, 404, 406, ...408), EP들(426, 428, 430, ...432), FIFO들(410, 412, 414, ..., 416)과 스위치 구조 (예를 들면, 속도 N*R의 공용 매체 구조 434)가 있다. 그러나 입력 대기 행렬 스위치에서는 각 EP는 한 번에 단지 한 개의 패킷을 수신할 수 있다. 복수의 IP들이 똑같은 EP로 보내야 할 패킷을 하나씩 가지고 있을 때, 아비트레이션 블럭들(418, 420, 422, ..., 424)은 단지 하나의 패킷만이 전송되도록 하고, 나머지는 지연하거나 "차단"한다. FIFO들은 지연된 패킷을 저장하기 위해 이용된다. 이러한 "헤드-오브-라인 블록킹(Head-of-line blocking)"기능은 출력 대기 행렬 스위치들의 성능보다 상당히 낮은 성능의 원인이 된다. 그러나, FIFO들은 데이타를 레이트 R로 기록하고 판독하는 것만이 요구된다.
그래서, 복수의 인그레스 포트로부터 복수의 에그레스 포트로 복수의 패킷을 효율적으로 스위칭하기 위한 패킷 스위치가 필요하다.
본 발명은 디지털로 코드화된 패킷을 전송하기 위한 패킷 통신 네트워크에 관한 것이며, 특히 패킷 통신 네트워크에서 효율적인 패킷 스위칭에 관한 것이다.
도 1은 각각 레이트 R의 N개의 입력 링크들과 N개의 출력 링크들을 연결하는 스위치를 개략적으로 도시한다.
도 2는 선행 기술로서 전형적인 출력 대기 행렬 스위치 구조내의 패킷 흐름들을 가진 장치의 블록 다이어그램이다.
도 3은 도 2의 스위치 구조에서 복수의 패킷들이 동일한 EP로 향하는 장치의 블록 다이어그램을 도시한 것이다.
도 4는 선행 기술로서 입력 대기 행렬 스위치 구조를 도시한 블록 다이어그램이다.
도 5는 본 발명에 따른 패킷 흐름들을 가진 패킷 스위치 구조를 가진 장치에 대한 실시예의 블록 다이어그램이며, 여기에서 패킷들을 인그레스 포트들에 있는 패킷 메모리들에 저장한다.
도 6은 본 발명에 따른 효율적인 패킷 스위치 구조를 가진 장치의 블록 다이어그램이다.
도 7은 본 발명에 따른 장치의 실시예에 대한 블록 다이어그램을 도시한 것으로서, 인그레스에서 에그레스로 하나의 패킷을 보내는 동작 구조가 더욱 상세히 도시되어 있다.
도 8은 본 발명의 제 1의 실시예에 따른 도착 경로, 요구 경로 및 패킷 경로 를 따른 제어 흐름과 패킷 흐름을 도시하는 블록 다이어그램이다.
도 9는 본 발명에 따른 0부터 N-1의 식별 번호로 된 N개의 IP들과 EP들을 가진 스위치에 있어서 소정의 동기 아비트레이션 계획(scheme)을 이용하는 장치를 구현한 도면이다.
도 10은 본 발명에 따른 인그레스/에그레스 포트들에 의해 이용될 수 있는 소정의 아비트레이션 계획에 대한 단계들의 실시예를 도시하는 순서도이다.
도 11은 본 발명에 따른 소정의 아비트레이션 계획에 따른 단계들에 대한 실시예를 도시하는 순서도이다.
도 12는 본 발명에 따른 방법에 대한 단계들의 실시예를 도시하는 순서도이다.
도 13은 선행 기술로서 전형적인 공용 메모리 스위치 내의 패킷 흐름들을 가진 장치의 블록 다이어그램이다.
도 14는 패킷들이 중앙 공용 메모리에 저장되어 있는 경우, 본 발명에 따른 장치의 실시예를 도시하는 도면이다.
도 15는 태그 메모리가 작은 접속 테이블로 대체되어 있는 경우, 본 발명에 따른 방법의 단계들의 실시예에 대한 순서도이다.
도 16은 고속의 작동이 달성될 수 있는, 본 발명에 따른 방법의 단계들의 또 하나의 실시예의 순서도이다.
도 17은 도착 정보를 접속당 많아야 하나의 태그를 저장하여 EP에 저장하는,본 발명의 방법에 따른 단계들의 실시예에 대한 순서도이다.
도 18은 고속 파이프 라인 동작이 구현될 수 있는, 본 발명의 방법에 따른 단계들의 실시예에 대한 순서도이다.
도 19는 본 발명에 따른 스위칭 장치의 실시예의 순서도이다.
도 20은 본 발명에 따른 복수의 수신된 패킷을 복수의 인그레스 포트들로부터 복수의 에그레스 포트들로 효율적인 스위칭을 위한 장치의 실시예에 대한 블록 다이어그램이다.
도 21은 패킷들이 사전 조정된 경로들을 따라 이동하는, 본 발명의 실시예에 따른 도착 경로,요구 경로 및 패킷 경로 상의 제어 흐름과 패킷 흐름을 도시하는 블록 다이어그램이다.
본 발명은 새로운 출력 요구 메카니즘에 의해 패킷 스위칭을 수행한다. 이에 의하면 본 발명은 패킷 스위칭 성능에 있어서는 출력 대기 행렬 스위치와 필적하지만 메모리 처리능력의 필요성은 더욱 낮아져 더 적은 비용이 가능하게 된다.
도 5에서 참조부호 500은 본 발명에 따른 패킷 흐름들을 가진 패킷 스위치 구조를 지닌 장치의 실시예에 대한 블록 다이어그램이다. 패킷들은 N개의 인그레스 포트들(IP)(502, 504, 506, ..., 508)에 도착해서, 버퍼들(510, 512, 514, ..., 516)에 저장된 후 버퍼들로부터 스위치 구조(예를 들면 공용 버스 526)로 진행하며, N개의 에그레스 포트들(EP)(518, 520, 522, ..., 524)로 전송된다. 각 인그레스/에그레스 포트는 연관된 메모리를 가진 인그레스 프로세서와 에그레스 프로세서를 포함하고 있고 여기에서 3개의 경로가 패킷 스위칭에 이용된다. 분명히 수많은 경로의 실현에는, 예를 들면 시공유 버스들 및/또는 전용 접속들이 이용될 수 있다.
도 5의 구조에 있어서, EP들은 기술된 제어 경로들을 이용해서 IP들로부터 패킷들을 요구한다. IP들은 요구된 패킷들을 연관된 버퍼로부터 판독할 수 있도록 함으로써 요구들에 응답한다. 각 입력 링크상의 패킷 도착 속도를 R이라고 하면, 패킷이 각 버퍼로부터 판독될 수 있는 속도는 k*R(여기에서 k는 N보다 적거나 같은 선정된 정수이다)로 제한된다. 패킷이 임의의 버퍼로부터 k*R이상의 속도로 요구되는 경우 과도한 요구들은 거절된다. 거절된 요구는 요구가 수락될 때까지 반복된다.
k>1인 경우에는, 이러한 출력 요구 구조는 입력 대기 행렬 스위치들보다 더 나은 처리 능력을 제공한다. N에 비하여 상대적으로 작은 값 k(예를 들면 k=4, N=16)의 경우에는, 스위치 처리 능력이 출력 대기 행렬의 것에 접근하며, 평균 대기 행렬 길이는 더 작아진다. 그러므로, 낙 아웃트 스위치와 마찬가지로, 이러한 구조는 높은 처리 능력을 제공하며 버퍼의 전송 속도를 N*R 대신에 k*R 로 줄임으로써 버퍼의 비용을 감소할 수 있다. 그러나 낙 아웃트 스위치와는 달리 어떤 패킷도 손실되지는 않는다.
본 발명이 출력 대기 행렬 구조와 다른 또 하나의 특징은 구조의 전체 패킷 속도가 N*R일 필요가 없다는 점이다. 도 5에 도시한 것처럼, 스위치 구조의 전체 패킷 속도는 c*N*R이며, 여기에서 c는 0부터 1까지의 범위내에서 미리 지정된 값이다. c의 값은 전체 스위치의 평균 처리 능력 요구를 충분히 지지할 수 있도록 정해진다.
도 6에서 참조부호 600은 본 발명에 따른 효율적인 패킷 스위치 구조를 가진 장치의 블록 다이어그램이다. 각 포트는 인그레스 포트들(IP0..., IPN-1)(602, ..., 604)과 에그레스 포트들(EP0, ..., EPN-1)(610, ..., 612)를 가지고 있고, 복수의 IP들(602, ..., 604)의 각 IP는 수신된 패킷을 저장하기 위한 연관된 패킷 메모리(606, ..., 608)에 접속되어 있고, 복수의 EP(610, ..., 612)들의 각 EP는 귀속된 EP로 전송하기 위해 IP에서 대기 중인 패킷에 관한 정보를 저장하는데 이용되는 대응하는 태그 메모리(614, ..., 616)에 접속되어진다. N은 스위치 내부의 포트 갯수를 가르키는 선정된 정수이다. 인그레스 포트들과 에그레스 포트들은 서로 연결되어 있다(618). 수신되는 패킷들은 IP를 경유해서 들어오고, 나가는 패킷들은 EP를 경유해서 떠난다.
도 7에서 참조부호 700은 본 발명에 따른 장치의 실시예를 도시하고 있으며, 하나의 패킷을 인그레스로부터 에그레스에 전송하는 작동에 대한 구조가 더 상세히 도시되어 있다. 도시된 단계들은 : A) 수신 IP(702, ..., 704)에 의해, 제 1의 소정의 계획에 따라 수신된 패킷에 대한 목적지 EP를 결정하고 수신된 패킷을 수신 IP에 접속된 패킷 메모리(706, ..., 708)에 저장하는 단계; B) 수신 IP에 의해서, 패킷이 저장된 장소를 가르키는 적어도 하나의 메모리 로케이션과 IP번호를 가진 도착 태그를 목적지 EP로 전송하는 단계; C) 목적지 EP(710, ..., 712)에 의해, 도착 태그/태그들을 수신하고 목적지 EP에 연결된 태그 메모리(714, ..., 716) 안에 도착 태그/태그들을 저장하는 단계; D) 목적지 EP에 의해, 제 2의 소정의 계획에 따라 저장된 도착 태그를 선택하고, 도착 태그와 연관된 수신 패킷의 전송을 요구하기 위해 도착 태그를 전송한 IP로, 선택되어 저장된 도착 태그를 되돌려 보내는 단계; E) IP에 의해서, 선택되어 저장된 도착 태그를 수신하고, 도착 태그와 연관된 수신 패킷을 검색하여, 도착 태그와 연관된 수신 패킷을 목적지 EP에 전송하는 단계; 및 F) 목적지 EP에 의해, 도착 태그와 연관된 수신 패킷을 수신하고 수신된 패킷을 목적지 EP로부터 디스패치(Dispatch) 하는 단계를 포함한다.
도 7과 도 8에서 참조부호 700과 800에 도시한 전형적인 구현에서, IP와 EP들은 도착 경로(718, 818), 요구 경로(720, 820) 및 패킷 경로(722, 822)를 경유해서 서로 연결되어 있다. 도시한 예에서, 하나의 패킷은 IP1에 도착하고 하나의 인그레스 패킷 메모리(804)에 저장된다(a). 도착 태그는 도착 경로(818) 상으로 전송되며(b), EP2(806)의 하나의 태그 메모리(808)내에 저장된다(c). 도착 태그는 태그 메모리(808)로부터 검색되어(d), 요구 경로(820)를 이용해서 IP1(802)으로 되돌려 보내진다(E). 그리고 나서 IP1(802)은 패킷 경로(822)를 통해서 요구된 패킷을 목적지 EP에 전송한다. 분명히 다수의 경로 구현 예를 들면 시간 공유 버스 및/혹은 전용 접속등이 이용될 수 있다.
선택적으로, 도착 태그는 목적지 EP내에서 패킷을 스케줄링하기 위한 정보를 포함할 수도 있다. 예를 들면 선택된 구현들에서, EP들은 대기 패킷을 나타내는 태그들을 다른 접속, 우선권 또는 서비스의 질을 나타내는 복수의 대기 행렬로 구성할 수도 있다.
상기한 대로 패킷을 인그레스로부터 에그레스에 전송하는 동작의 (e) 단계에서, IP가 복수의 EP들로부터의 패킷들에 대한 요구를 표시하는 복수의 도착 태그를 수신한 구현에서, IP는 소정의 요구 속도에 따라 요구를 만족시킬 수도 있고 소정의 요구 속도를 초과하는 경우에는 요구를 거절할 수도 있다. EP의 요구가 거절되는 경우 EP는 소정의 시간 후에 전형적으로 요구를 반복한다.
패킷 경로가 모든 에그레스 포트들의 최대 속도의 합보다는 적고 모든 에그레스 포트들의 평균 속도의 합보다는 큰 정보 속도를 가진 구현에서는, EP에 의해 요구 경로상에서 허용되는 패킷 요구의 속도는 패킷 경로의 정보 속도를 초과하지 않는 소정의 수준으로 제한할 수 있다. 예를 들면, 도 5는 모든 에그레스 포트들의 최대 속도들의 합이 N*R이지만 패킷 경로는 단지 c*N*R의 속도를 가진 스위치를 도시하고 있다. 평균 링크 트래픽 속도가 최대 속도보다 크게 적은 스위치의 적용에 있어서는, 패킷 경로가 그러한 감소된 속도를 다룰 수 있도록 디자인하는 것이 비용의 감소를 가져다준다. EP들로부터의 요구 속도를 제한하여 패킷 경로가 수용 가능한 것보다 고속으로 패킷들을 요구하는 것을 피하는 메카니즘의 구현예가 이후에 기술된다.
본 발명의 효율적인 패킷 스위치는 클럭 발생기(918)에 의해 중앙 집권적으로 발생된 클럭(CELLCLK) 신호에 의해 셀 사이클로 동기화될 수 있으며, 여기에서 셀 사이클은 단지 하나의 패킷이 복수의 IP들(902, ..., 904)중 각각의 IP에 도착한 기간인 경우에, 각각의 IP가 셀 사이클마다 단지 하나의 도착 태그를 만들어내고, 복수의 EP들(906, ..., 908)중 각 EP가 셀 사이클마다 하나의 요구를 만들어낸다. 게다가, 각 EP는 출력 링크상에 셀 사이클마다 최대의 하나의 패킷을 전송한다. 각 EP는 START값 레지스터(910, ..., 914)와 SOURCE 카운터(912, ..., 916)를 가지고 있다. 그래서 도 9에서 참조부호 900은 본 발명에 따른 0부터 N-1까지의 ID 숫자를 가진 각각 N개의 IP들과 N개의 EP들을 가진 스위치를 위한 소정의 동기 아비트레이션 계획을 이용한 장치의 구현예이다. 효율적인 패킷 스위치가 셀 사이클로 동기화되는 경우, 스위치는 각 사이클마다 각 IP마다 수락되는 요구의 갯수를 IP에 관련된 선정된 정수 k로 제한하고, 모든 IP들에 의해 수락되어지는 요구의 총 갯수를 선정된 정수 M(여기에서 M≤ c*N)으로 제한하는 소정의 아비트레이션 계획을 이용한다. 선정된 극한 k는 다른 IP들에서는 다르다. 다음의 구현에서는 계획이 "분산된" 것이며, 이것은 중앙 아비트레이션 제어 단위에 의해 수행되지 않고 모든 IP들과 EP들에 의해 수평적으로 수행된다는 것을 의미한다.
소정의 동기 아비트레이션 계획은 두 개의 타이밍 신호들을: A) 셀 사이클 타이밍 신호 CELLCLK와 B) 아비트레이션 사이클 타이밍 신호 CLK(여기서 CELLCLK의 각 사이클마다 적어도 CLK의 N+1개 사이클에 존재하고, N은 스위치에서 에그레스 포트들의 갯수이다)를 이용한다. 그리고 세 개의 제어 신호들을: A) EP로부터 IP로의 REQUEST 신호(여기에서 EP가 패킷을 요구하는 경우에 True인 VALID 비트와 패킷이 요구되는 IP를 지정하는 인그레스 포트 식별 번호를 포함한다)와, B) IP로부터 EP로의 ACKNOWLEDGE 비트와 C) EP들을 동기화하기 위한 와이어드(wired) OR 동기(SYNC) 비트(어느 EP가 와이어드 OR SYNC 비트를 표명하면 와이어드 OR SYNC는 TRUE 이고 그렇지 않으면 False이다)를 이용한다.
REQUEST 신호가 요구 버스상에 전송되는 전형적 구현에서는, ACKNOWLEDGE 비트는 모든 IP들과 EP들을 연결하는 확인 응답선 위에 전송되고 SYNC 비트는 모든 EP들을 연결하는 와이어드 OR SYNC 선 상에 전송된다.
도 10에서 참조부호 1000의 순서도에 도시한 아비트레이션 방법의 단계들은 전형적으로 아래와 같은 단계들(1∼4)을 포함한다.
1. 각 셀 사이클의 개시점에서, 모든 EP들은 동일한 "START" 값을 포함한다. 우선 모든 EP들은 START 값을 0(1002)로 설정한다. 연이은 START 값들은 아래 기술한 대로 얻어진다. START 값은 아비트레이션을 시작하는 EP를 지정한다. START 값과 동일한 ID 숫자를 가진 에그레스 포트를 시작으로 해서, EP들은 N 클럭 사이클(1004)동안 클럭 사이클마다 하나의 REQUEST 속도로 REQUEST경로상에 순차적으로 REQUEST를 송출한다. REQUEST는 : a) EP가 현재 셀 사이클상에서 만드는 하나의 REQUEST를 가진 경우에는 TRUE가 되고 그렇지 않으면 False가 되는 VALID 비트, 및 b) VALID 비트가 TRUE인 경우에는 요구된 셀을 포함하고 있는 IP의 수를 포함한다.
2. 각 REQUEST후의 소정의 클럭 사이클(전형적으로 1-2 클럭 사이클)에서, 어드레스된 IP는 ACKNOWLEDGE 비트를 구동해서 "수락" 또는 "거절"(1006)로 표시한다. IP가 현재 셀 사이클에서 이미 k(선정된 정수 값)개의 REQUEST들을 수락했거나 혹은 M( M은 N보다 작은 선정된 값이며, N은 인그레스 포트들의 갯수이다)개의 REQUEST들이 확인 응답 경로상에서 어떤 IP에 의해 이미 수락되었다면 ACKNOWLEDGE 비트는 "거절"이다. 그렇지 않으면 ACKNOWLEDGE 비트는 "수락"이다. REQEST를 만들었던 EP는 ACKNOWLEDGE 비트를 수신한다.
3. 모든 EP들은 현재 REQUEST를 만드는 EP들의 수를 추적하고, 이러한 "요구하고 있는 EP" 값을 클럭 사이클(모듈로 N)마다 한 번씩 증가시킨다. REQUEST가 거절되는 각 셀 사이클의 최초 시기에는 모든 EP들은 START 값들을 거절된 EP의 수로 로드한다. 어떤 REQUEST도 거절되지 않으면, START 값은 변하지 않는다.(1008)
4. (선택적) 에러를 검색하고 새로운 EP들을 동기화하기 위해 와이어드 OR SYNC 신호가 있다. SOURCE 카운터 값이 0(1010)일때마다 모든 EP들에 의해 SYNC 신호는 표명된다. 그러므로 모든 EP들이 동기화된 경우에 SYNC 신호는 각 셀 사이클의 단지 하나의 클럭 사이클에서 표명된다. SYNC 신호가 한 개의 사이클 이상에서 표명된 경우에서는 동기 에러가 있다. EP는 SYNC 신호가 하나의 셀 사이클에서 하나 이상의 클럭 사이클에 표명된 것을 검출할 때마다 EP의 START 값을 0으로 설정하고 EP는 나머지 셀 사이클에서 SYNC 신호를 표명한다
아비트레이션 프로세스의 마지막에서, 각 EP는 EP의 REQUEST가 만족될 지 여부와 어느 EP가 다음 셀 사이클에서 아비트레이션 프로세스를 시작할 것인지를 결정한다. ACKNOWLEDGE 비트는 REQUEST 신호 뒤로 적어도 하나의 클럭 사이클만큼 지연되기 때문에 전체 아비트레이션 프로세서는 적어도 N+1 사이클이 필요하다.
스위치는 각각 유일한 식별 번호 ID를 가진 N개의 인그레스 포트들과 N개의 에그레스 포트들을 포함하며, 에그레스 포트로부터 인그레스 포트까지 요구 경로를 가지고 있고, 인그레스 포트로부터 에그레스 포트까지는 확인 응답선을 가지고 있다. 소정의 아비트레이션 계획의 단계들은 A) 현재의 REQUEST를 가진 복수의 각 에그레스 포트들에 의해 요구 경로상에 REQUEST를 송출하는 단계, 여기에서 REQUEST는 True 와 False값을 가지는 VALID 비트와 인그레스 포트 ID를 지정하는 QPORT 숫자를 포함하며,복수의 에그레스 포트들의 REQUEST들은 소정의 시퀀스에 따라 한 번에 하나씩 송출한다. B) VALID 비트가 True인 각 REQUEST에 이어서, REQUEST의 QPORT와 일치하는 ID를 가진 인그레스 포트에 의해 인그레스 포트가 적어도 k개의 REQUEST들을 이미 수락했는지의 여부와 M(k와 M은 소정의 정수들이다.)개의 REQUEST들이 현재의 셀 사이클내에서 수락되었는지 여부를 기초로 해서 수락 또는 거절이라는 ACKNOWLEDGE 비트를 응답하는 단계를 포함한다.
N개의 에그레스 포트들은 0부터 N-1까지의 유일한 아비트레이션 시퀀스 번호들을 가지고 있고 단계 A에서 REQUEST 신호들을 아비트레이션 시퀀스 숫자들의 라운드 로빈 순서로 송출하며, 에그레스 포트로부터의 REQUEST가 거절됐을 때 현재의 셀 사이클 내에서 거절된 REQUEST를 송출한 최초 에그레스 포트를 다음 셀 사이클의 새로운 개시점으로 이용한다.
일반적으로 모든 에그레스 포트들은 START 레지스터와 SOURCE 카운터를 포함하며, 소정의 아비트레이션 계획의 단계들은 A) REQUEST를 만드는 에그레스 포트의 아비트레이션 시퀀스 번호를 가르키는 SOURCE 카운터를 각 에그레스 포트에 의해 유지하고, 에그레스 포트의 SOURCE 카운터가 소정의 값과 동일할 때마다 SYNC 신호를 표명하는 단계와 B) 각 에그레스 포트에 의해 SYNC 신호를 모니터하고 SYNC 신호가 하나의 셀 사이클에 한 번 이상의 클럭 사이클에 표명되는 경우 에그레스 포트에 의해서 START 값을 선정된 값으로 재설정하는 단계(여기에서 선정된 값은 모든 에그레스 포트들에서 일정하다)를 포함한다.
도 11에서 참조부호 1100은 스위치가 0부터 N-1까지로 나타낸 N개의 인그레스 포트들 IP와 에그레스 포트들 EP에, 셀 사이클 타이밍 신호 CELLCLK 및 타이밍 신호 CLK를 가진 경우에, 각 CELLCLK의 사이클마다 적어도 N+1 사이클의 CLK가 통상적으로 있고, CELLCLK 신호들과 CLK 신호들은 상기 스위치의 모든 인그레스 포트들과 에그레스 포트들에 제공되며, 모든 에그레스 포트들은 CLOCK 카운터를 가지고 있다. 본 구현에서 소정의 아비트레이션 계획은 A) 모든 에그레스 포트들의 START 값들을 0으로 초기화하고(1102) 다음 CELLCLK 사이클의 개시점에서 단계 B로 진행하는 단계; B) 각 에그레스 포트 EP에서 CLOCK 카운터를 0으로 초기화하고(1104),각 EP에서 START 값을 SOURCE 카운터에 복사하고,단계 H로 진행하는 단계(1116); C) 마지막 REQUEST의 VALID 비트가 True일 때 단계 D로 진행하고(1106),그렇지 않으면,단계 F로 진행하는 단계 (1112); D) 확인 응답 경로상에서, 인그레스 포트에 의해, 인그레스 포트의 숫자가 마지막 REQUEST에 있는 QPORT 숫자와 매칭(Matching)됐을 때, 수락과 거절중 하나의 ACKNOWLEDGE 비트로 응답하는 단계(1108), 여기에서 IP가 이미 k 개의 REQUEST들을 수락했거나 M개의 REQUEST들이 현재 셀 사이클의 개시 이후로 어떤 인그레스 포트에 의해서 이미 수락되었다면 ACKNOWLEDGE 비트는 거절이고 그렇지 않으면 수락이다. 여기에서 IP마다 수락되어지는 REQUEST의 숫자는 IP와 연관된 소정의 정수 k로 제한되며, 복수의 IP들에 의해 수락되어지는 REQUEST들의 총수는 선정된 정수 M으로 제한된다.; E) 마지막 REQUEST를 만든 EP에 의해서, ACKNOWLEDGE 비트를 아비트레이션의 마지막 결과로 획득하는 단계(1110); F) 모든 EP들에 의해 ACKNOWLEDGE 비트를 획득함으로써 START 값을 동기화하고(1112), 여기에서 ACKNOWLEDGE 비트가 현재 셀 사이클에서 최초 거절인 경우에 START 값을 현재의 SOURCE 카운터 값으로 설정하는 단계; G) CLOCK 카운터 값이 N보다 적은 경우에는 단계 H(1116)으로 진행하고 그렇지 않으면 단계 J(1120)로 진행하는 단계; H) IP의 숫자가 현재 SOURCE 카운터 값과 매치한 경우 EP가 패킷을 요구시 VALID 비트가 True인 REQUEST 신호와 패킷이 요구되어진 IP를 지정하는 QPORT 숫자를 IP에 의해서 보내는 단계(1116) ; I) 모든 EP들내의 CLOCK 카운터 값과 SOURCE 카운터 값을 증가시키고, 새로운 SOURCE 카운터 값이 N과 동일한 경우에 모듈로 N 카운터를 제공하기 위해 SOURCE 카운터 값을 0로 재설정하는 것과 CLK의 다음 사이클의 개시점에서 단계 (C)로 되돌아 가는 단계 ; 및 J) EP에 의해서, 다음 CELLCLK 사이클의 개시점에서 단계 B로 되돌아 가는(1120) 단계를 포함한다.
선택적으로, 아비트레이션 계획은 에러가 발생하는 경우에 회복 메카니즘을 가지고 있는데, EP의 SOURCE 카운터 값이 0일때 와이어드 OR SYNC 신호를 EP에 의해서 표명하고, 각 클럭 사이클 내의 SYNC 신호를 EP에 의해 모니터하고, SYNC 신호가 현재의 하나의 셀 사이클내에서 한 개 이상의 클럭 사이클에서 표명된 경우 START 값은 0로 설정하고 선택적으로 현재의 셀 사이클의 나머지에는 SYNC 신호를 표명하는 단계가 CLK의 다음 사이클의 시작점에서 단계 C로 되돌아오기 전에 단계 1에 첨가된다.
그래서,도 12의 참조부호 1200에 도시한 것처럼, 복수의 인그레스 포트들로부터 복수의 에그레스 포트들로의 복수의 패킷에 대한 효율적인 스위칭의 방법은 A) 패킷을 메모리에 저장하는 단계(1202); B) 각 패킷에 대한 도착 정보를 (1204)를 패킷에 대한 목적지 에그레스 포트에 전송하는 단계; C) 각 목적지 에그레스 포트의 컨트롤러 메모리 내부에 도착 정보를 저장하는 단계(1206); D) 각 목적지 에그레스 포트의 컨트롤러에 의해, 소정의 계획에 따라 패킷 메모리로부터 패킷들을 요구하는 단계(1208); E) 패킷 메모리에 의해, 요구된 패킷들을 목적지 에그레스 포트들에 보내는 단계(1210)들을 포함한다.
특히, 인그레스 포트는 소정의 전송 속도까지의 속도로 요구된 패킷들은 전송하고 소정의 전송 속도를 초과하는 전송 속도로 요구된 패킷은 전송하지 못하며, 패킷 전송이 실패한 경우에 목적지 에그레스 포트들은 전송되지 못한 패킷들을 재요구한다.
도 12에서 참조부호 1200에 도시된 방법의 양호한 실시예에서, 복수의 인그레스 포트들은 모든 에그레스 포트들의 최대 속도의 합보다는 적고 평균 속도의 합보다는 훨씬 큰 속도를 가진 속도 제한 스위치 구조를 통해서 복수의 에그레스 포트들에 연결되어진다.
도 13에서 참조부호 1300은 선행 기술로서 전형적인 공유 메모리 구조에서의 패킷 흐름을 가진 장치의 블록 다이어그램이다. 공용 메모리 스위치에서, IP에 도착한 모든 패킷들은 중앙 패킷 메모리(1302)에 전송되며, EP에 보내지는 모든 패킷들은 중앙 패킷 메모리로부터 온다. 달성된 수행능력은 출력 대기 행렬 스위치와 유사하지만 N개의 입력 링크들과 출력 링크들을 속도 R로 지원하기 위해서 패킷 메모리는 패킷을 고속, 특히 2*N*R로, 패킷을 액세스 하도록 디자인되어야 한다.
도 14에서 참조부호 1400은 본 발명에 따른 장치의 실시예를 도시하고 있으며, 여기에서 패킷들은 중앙 공용 메모리에 저장된다. 본 발명의 공용 메모리 스위치에서 IP들(1402, ..., 1404)에 도착한 모든 패킷들은 중앙 패킷 메모리(1406)에 전송되며, EP(1408, ..., 1410)들로 보내진 모든 패킷들은 중앙 패킷 메모리(1406)로부터 온다. 복수의 EP들(1408, ..., 1410)의 각 EP는 상기한 대로 이용되는 대응하는 태그 메모리(1412, ..., 1414)에 연결된다. 또한, N은 스위치의 포트 갯수를 표시하는 선정된 정수이다. 패킷 메모리는 (1+c)*N*R의 속도로 패킷을 액세스 하도록 디자인되어야 하며 이 때 0≤ c ≤ 1이며 c는 전 스위치의 평균 처리능력 요구를 지원하기 충분하게 선택된다.
접속 지향 네트워크, 다시 말하면, 패킷이 미리 정열된 경로를 흐르는 네트워크에서, 출력 요구 패킷 스위칭은 접속당 많은 태그들을 포함하는 태그 메모리 대신에 접속당 하나의 엔트리를 포함하는 작은 접속 테이블을 사용해서 수행되어 질 수 있다. 도 5에서 참조부호 1500은 액티브(active) 접속마다 많아야 하나의 태그를 저장하는 본 발명에 따른 출력 요구 패킷 스위칭을 수행하는 방법의 한 실시예를 도시하고 있다. 방법은 다음의 단계들을 포함한다. 첫째, EP들이 모든 접속에 대한 ACTIVE 비트를 False로 초기화한 경우에 인그레스 포트를 경유해서 IP에 도착한 수신된 패킷은 메모리 내의 대기 행렬에 저장되며(1504), 여기에서 각 대기 행렬은 각각의 접속에 대응한다. 그리고나서 IP에 도착한 각 패킷에 대해서, IP는 패킷이 빈 대기 행렬에 도착했는지 여부를 결정하고(1506), 그리고 패킷이 빈 대기 행렬에 도착했을 경우에, IP는 접속 식별 코드를 가진 도착 태그를 발생시키며(1508), 도착 태그는 선택적으로 스케줄링 정보를 포함할 수도 있다. 도착 태그가 발생되면, IP는 도착 태그를 패킷에 대한 목적지 EP에 보낸다. EP는 도착 태그를 수신하고(1510), EP에 결합된 접속 테이블에 ACTIVE 비트를 설정함으로써 도착 태그의 도착을 기록하며, 여기에서 접속 테이블은 EP를 통과한 각 접속에 대해서는 ACTIVE 비트를 가지고 있다. 접속 테이블에 설정된 ACTIVE 비트를 가진 모든 접속들중의 하나로부터 소정의 계획과 일치하는 접속을 선택하고(1512), 선택된 접속에 있어서 ACTIVE 비트를 클리어하고, 적어도 하나의 접속 식별자를 포함하는 요구를 도착 태그를 전송한 IP에 되돌려 보낸다. 요구를 받았을 때, IP는 접속 식별자를 이용해서(1514) 패킷 대기 행렬을 로케이트(locate) 시키고 다음 패킷을 디큐(dequeue)하며, 대기 행렬 내에 남아있는 패킷이 있으면 True, 그렇지 않으면 False인 MORE 비트로 패킷을 레이블(lable)해서 패킷을 요구하는 EP에 전송한다. 그리고 나서, EP는 요구된 패킷을 수신하고(1516) 연관된 에그레스 포트로부터 패킷을 전송한다. 패킷 내부의 MORE 비트가 True인 경우에(1518), EP도 또한 접속에 대한 ACTIVE 비트를 설정한다(1520).
도 15에 도시한 작동예로서, 접속 "C" 에 대한 인그레스 포트 대기 행렬이 처음에는 비어있고, 그리고 나서 두 개의 패킷들은 빠른 순서로 도착해서 본 대기 행렬에 놓여진다고 가정하자. 제 1의 패킷이 빈 대기 행렬에 도착한 후 도착 태그는 접속 C의 EP로 보내지며, 접속 C에 대한 ACTIVE 비트를 True로 설정하게 한다. EP는 소정의 계획을 이용해서 ACTIVE 비트가 True인 접속들을 주기적으로 선택한다. EP가 접속 C를 선택할 때, 요구는 접속 C에 대해 IP로 전송된다. 그러면 IP는 두 개의 패킷중 제 1의 것을 디큐하고 그것을 EP로 되돌려 보낸다. 또 하나의 패킷이 대기 행렬에 남아있기 때문에 패킷과 함께 전송된 MORE 비트는 True로 설정된다.
제 2의 패킷은 다르게 다루어진다. 제 2의 패킷은 빈 대기 행렬에 도착하지 않았기 때문에, 어떤 도착 태그도 EP로 보내지 않는다. 그러나 접속 C에 대한 ACTIVE 비트는 True로 남으며, 그래서 EP는 결국 접속 C를 다시 선택한다. 그때 EP는 IP로부터 접속 C의 새로운 패킷을 요구한다. IP는 MORE = False를 가진 제 2의 패킷을 되돌려 보낸다. 왜냐하면, 더 이상의 패킷이 대기 행렬 내에 남아있지 않기 때문이다. False인 MORE 비트는 EP로 하여금 ACTIVE비트를 False로 설정하게 하며, 그 결과 더 이상의 패킷이 EP에 의해 요구되지 않을 것이다.
여기에서 공정은 더 높은 처리능력을 위해 파이프 라인(pipeline)될 수도 있다. 파이프라인은 순차적 처리 과정을 각 부속 처리 과정이 특별한 전용 모듈(module)내에서 실행되는 부속 처리 과정으로 파티션(partitiion)하는 기술과 다수의 모듈들이 다른 데이타 요소 상에서 동시에 작동하는(본 경우에서는 다른 패킷들 상에서 작동하는) 기술을 말한다.
도 15에 도시된 동작과 같이, 어떤 접속의 복수의 패킷들이 EP에 의해 요구되는 것을 기다리고 있는 경우에, EP는 패킷을 요구하고나서 다음 패킷을 요구하기 전까지 요구한 패킷이 도착하기를 기다린다. 파이프 라인된 시스템의 고속의 작동을 위해서, 절차를 에그레스 포트가 요구 가능한 대기 패킷의 갯수에 관한 정보를 에그레스 포트에 제공하도록 변형할 수도 있다. 예를 들면, 인그레스 포트에서 각 접속에 도착한 패킷의 순서 카운트를 유지하는 것이나 에그레스 포트에 의해서 요구될 때마다 패킷과 연관된 접속에 대한 최후의 시퀀스 카운트로 패킷을 레이블함으로서 행해질 수 있다. 에그레스 포트는 또한 에그레스 포트가 송출하는 패킷 요구들의 각 접속에 대한 시퀀스 카운트를 유지할 수도 있다. 그래서 에그레스 포트는 인그레스 대기 행렬 내에 대기된 더 많은 패킷이 있는지 여부를 결정하기 위해 에그레스 포트의 시퀀스 카운트와 도착 패킷내의 카운트를 비교할 수 있다. 파이프 라인 시스템의 이러한 변형으로, EP는 다음 패킷을 요구하기 전에 EP에 도착할 각 요구된 패킷을 기다리기 보다는, 빠른 순서로 동일한 접속으로부터 복수의 패킷을 요구할 수 있다.
도 16에서 참조부호 1600에 보여준 것처럼, 본 발명의 방법이 다음과 같이 구현될 수도 있다. 하나의 IP를 통과한 각 접속에 있어서, 전형적으로 1 내지 4 비트의 길이인 연관된 모듈로 시퀀스 카운트 값 ARRIVSEQ이 존재하며, 여기에서 ARRIVSEQ의 모듈로는 S이고 "#"는 애디션(addition) 모듈로 S를 나타낸다. 초기 각 접속에 대한 ARRIVSEQ의 값은 임의의 값으로 설정된다. 또한 EP에 결합되어, EP를 통과한 각 접속에 대한 엔트리를 가진 접속 테이블이 있는데, 이것은 적어도 ACTIVE 비트, MANY 비트, REQSEQ 값 및 LASTSEQ 값을 포함하며, 여기에서 REQSEQ 와 LASTSEQ 값은 ARRIVSEQ와 동일한 숫자의 비트를 가지고 있다. 각 접속에 있어서의 ACTIVE 비트 및 MANY 비트는 초기에 False로 설정된다(1602). 다음에서 "∥"는 불(Boolean) 연산자 OR를 표시한다. 다음의 단계에 의해 패킷을 인그레스 포트로부터 에그레스 포트로 스위치한다.
A) IP에 의해, 수신된 각 패킷에 대하여, IP는 패킷을 메모리내의 패킷 대기 행렬에 저장하며(1604), 여기에서 각 대기 행렬은 각각의 접속에 대응한다. IP도 접속에 대한 ARRIVSEQ 값을 ARRIVSEQ #1로 갱신한다. 즉, ARRIVSEQ는 모듈로 S로 증가한다.
B) IP에 도착하는 각 패킷에 대하여, IP는 패킷이 빈 대기 행렬에 도착한지 여부을 결정하고(1606),패킷이 빈 대기 행렬에 도착한 경우에는 단계 C(1608)로 진행하며, 그렇지 않으면, 단계 E(1612)로 진행한다.
C) IP는 접속 식별자 코드를 가지고 선택적으로는 스케줄링 정보를 포함하는 도착 태그를 만들어내고(1608), 도착 태그를 패킷의 목적지 EP에 전송한다. IP는 접속에 대한 ARRIVSEQ의 값을 미리 선택된 값 SEQSTART #1으로 설정한다.
D) EP는 도착 태그를 수신하고(1610), 접속에 대한 접속 테이블 엔트리내의 ACTIVE 비트를 True로, REQSEQ를 SEQSTART로, LASTSEQ를 SEQSTART#1로 각각 설정함으로써 도착 태그의 도착을 기록한다.
E) EP는 소정의 계획을 이용해서 접속 테이블 내에 ACTIVE 비트가 True인 접속들 중에서 하나의 접속을 선택한다(1612). 선택된 접속에 대하여, EP는 적어도 하나의 접속 식별자를 가진 요구를 도착 태그를 전송한 IP에 되돌려 전송한다. EP는 또한 선택된 접속에 대한 REQSEQ 값을 REQSEQ#1로 갱신하고, REQSEQ의 새로운 값과 선택된 접속에 대한 LASTSEQ의 값과 비교한다. 그들이 동일하고 접속에 대한 MANY 비트가 False이면, EP는 접속에 대한 ACTIVE 비트를 클리어한다(1616).
F) 요구를 받았을 때, IP는 접속 식별자를 이용해서 패킷 대기 행렬을 로케이트 시키고(1618) 다음 패킷을 디큐한다. IP는 접속에 대한 ARRIVSEQ 값으로 패킷을 레이블하고, 패킷 대기 행렬내의 패킷의 갯수가 S보다 크거나 같은 경우에는,패킷내의 MANY 비트를 True로 설정하고 그렇지 않으면 False로 설정한다. 그리고 나서 IP는 패킷을 요구하는 EP에 전송한다.
G) EP는 요구된 패킷을 수신하고(1620), 패킷내의 ARRIVSEQ의 레이블을 접속 테이블내의 접속에 대한 LASTSEQ 값에 복사하며, 패킷내의 MANY 비트를 접속 테이블내의 접속에 대한 MANY 비트에 복사한다. 접속에 대하여 LASTSEQ ≠REQSEQ∥MANY = True인 경우에 EP는 접속에 대한 ACTIVE 비트를 True로 설정한다.
상기 절차에서, ARRIVSEQ,REQSEQ 및 LASTSEQ는 패킷 시퀀스 숫자들, 모듈로 S로 간주될 수도 있다. IP에서 ARRIVSEQ 값은 도착한 마지막 패킷의 시퀀스 숫자이다. EP에 전송된 각 패킷은 가장 새로운 ARRIVSEQ 값을 동반하며, 이 ARRIVSEQ 값은 LASTSEQ로서 EP에 저장된다. LASTSEQ는 EP가 행해야 할 마지막 요구의 시퀀스 숫자를 EP에 말해준다. EP는 현재 요구 시퀀스 숫자를 REQSEQ로 유지한다. REQSEQ가 LASTSEQ까지 도달했을때, EP는 패킷 요구를 중지한다. REQSEQ와 LASTSEQ는 모듈로 카운트들이기 때문에, 많은 패킷들이 IP의 대기 행렬에 남아있을지라도 동일할 수 있지만 그러한 경우에는 MANY 비트가 EP가 중단하는 것을 막는다.
도 16의 도시에 대한 동작예로서, SEQSTART의 값을 0로, 모듈로 S를 4로 설정하자. 접속 "C"에 대한 인그레스 포트 대기 행렬이 초기에 비어있고, 그리고 나서 여섯개의 패킷이 빠른 순서로 도착하고 본 대기 행렬에 놓여진다고 가정하자. 제 1의 패킷이 하나의 빈 대기 행렬에 도착했기 때문에, ARRIVSEQ는 SEQSTART #1 = 0 + 1 mod 4 = 1 로 설정한다. 또한, 도착 태그가 접속 C에 대한 EP로 전송되며, EP로 하여금 접속에 대하여 REQSEQ = 0, LASTSEQ = 1 및 ACTIVE = True로 설정하게 한다.
연이은 패킷 도착은 IP에서의 ARRIVSEQ 값을 6 mod 4 = 2까지 반복적으로 증가시킨다. EP는 소정의 계획을 이용해서 ACTIVE 비트가 True인 접속들을 주기적으로 선택한다. EP가 최초로 접속 C를 선택할 때, REQSEQ는 1로 증가되고, REQSEQ가 현재 LASTSEQ와 동일하기 때문에 접속에 대한 ACTIVE 비트를 False 로 설정한다. 요구가 접속 C에 대한 IP에 전송되고, 응답해서 IP는 최초의 패킷을 디큐해서 그것을 EP에 되돌려 보낸다. IP는 패킷을 ARRIVSEQ의 현재값 2로, MANY = True로 레이블 하는데 이것은 대기 행렬에 남아있는 패킷의 숫자가 S보다 큰 5이기 때문이다. 이 패킷을 받았을 때, EP는 접속에 대하여 LASTSEQ = ARRIVSEQ = 2 및 MANY = True로 설정한다. LASTSEQ의 새로운 값이 REQSEQ와 다르기 때문에 접속에 대한 ACTIVE 비트도 True로 설정된다.
마지막 5개의 패킷들은 빈 대기 행렬에 도착하지 않으므로 어떤 도착 태그도 EP로 전송하지 않는다. 그러나 접속 C에 대한 ACTIVE 비트가 True로 남아있어서, EP는 결국 접속 C를 다시 선택한다. 그때 EP는 IP로부터 접속 C의 다음 패킷을 요구하고 REQSEQ를 2로 갱신한다. MANY는 True이기 때문에, ACTIVE는 True로 남아있다. IP는 제 2의 패킷을 전송하고 다시 ARRIVSEQ = 2 및 MANY = True로 레이블 한다.
EP가 접속 C를 두번째로 선택시는, REQSEQ는 3으로 갱신되고, LASTSEQ = 2는 REQSEQ = 3과 같지 않으므로 ACTIVE 비트는 True로 남는다. EP의 요구를 받았을 때, IP는 제 3의 패킷을 전송하고 이때 ARRIVSEQ = 2 및 MANY = False로 레이블된다. 왜냐하면 S 보다 더 작은 수의 패킷들이 현재 대기 행렬에 남아있기 때문이다.
똑같이, EP가 접속 C를 선택하고 패킷을 요구하는 세번째, 네번째에서는 REQSEQ는 4 mod 4 = 0까지 증가되며, 그리고 나서 1까지, 그리고 ACTIVE는 True로 남는다. IP에 의해 전송된 패킷들, 즉 제 4및 제 5의 패킷들은 아직도 ARRIVSEQ = 2 및 MANY = False로 레이블되어 있다.
EP가 접속 C를 선택하는 다섯번째의 경우에 REQSEQ는 2로 증가된다. REQSEQ는 LASTSEQ과 동일하고, MANY = False이므로 ACTIVE 비트는 False로 설정된다. 여섯번째이고 마지막인 패킷이 요구되어지고 아직도 ARRIVSEQ = 2 및 MANY = False로 레이블되어 IP에 의해 전송된다. 접속에 대한 ACTIVE 비트가 현재 False이므로 EP는 이 접속으로부터 더 이상의 패킷들을 요구하지 않는다.
최대 속도 동작을 위해서, 모듈로 S는 단계 D에서의 패킷의 요구와 단계 F에서 수신된 패킷 사이의 지연 동안에, EP에 의해 요구될 수 있는 패킷의 수보다 더 크게 선택되어진다.
상기한 모듈로 시퀀스 카운터는 얼마나 많은 비요구된 패킷이 대기 행렬에 존재하는가에 관한 정보를 EP에게 제공하는 유일한 방법이다. 더 일반적으로는, 본 발명의 방법은 다음과 같다.
최초로, IP를 통한 각 접속에 대하여, IP는 제 1의 소정의 개시값으로 설정된 대기 행렬 상태 정보를 가지고 있고, EP를 통한 각 접속에 있어서 EP에 결합된 접속 테이블에는 최초 False로 설정된 적어도 하나의 ACTIVE 표시자, 제 2의 소정의 개시값으로 최초 설정된 요구 상태 정보 및 제 1의 소정의 개시값으로 최초 설정되는 대기 행렬 상태 정보를 포함하는 엔트리가 있다. 인그레스 포트에 도착한 패킷들은 패킷 대기 행렬에 저장되고, 거기에서 각 대기 행렬은 각각의 접속과 대응한다. 셀들은 인그레스 포트로부터 에그레스 포트로 다음 단계로 스위치한다.
A) IP에 도착하는 각 패킷에 있어서, IP는 연관된 접속에 대한 대기 행렬 상태 정보를 갱신하고, 패킷이 빈 대기 행렬에 도착했는지 여부를 결정한다. 패킷이 빈 대기 행렬에 도착했을 경우, IP는 접속 식별자 코드를 가지고 선택적으로 스케줄링 정보를 포함하는 도착 태그를 만들어낸다. 도착 태그가 만들어지면, IP는 도착 태그를 패킷에 대한 목적지 에그레스 포트 EP로 보내고, 단계 B로 진행하고 그렇지 않으면, 단계 C로 진행한다.
B) EP는 도착 태그를 수신하고 접속에 대한 ACTIVE 표시자를 True로 설정함으로써 도착 태그의 도착을 기록한다.
C) EP는 소정의 계획을 이용해서 접속 테이블에 ACTIVE 표시자가 True인 접속중에서 하나의 접속을 선택하고, 적어도 하나의 접속 식별자를 포함한 요구를 도착 태그를 보낸 IP에 되돌려 보낸다. EP는 또한 접속에 대한 요구 상태 정보를 갱신한다. 대기 행렬 상태 정보 및 요구 상태 정보들중 적어도 하나를 이용해서, EP는 EP에 의해 요구받지 않은 패킷이 패킷 대기 행렬내에 남아 있는가를 결정하고, EP에 의해 요구받지 않은 패킷이 패킷 대기 행렬내에 남아 있는 경우에 EP는 접속 테이블내의 ACTIVE 표시자를 False로 설정한다.
D) 요구를 받았을 때, IP는 접속 식별자를 이용해서 패킷 대기 행렬을 로케이트시키고 다음 패킷을 디큐하며, 대기 행렬 상태 정보를 갱신하고, 패킷 대기 행렬내에 요구되지 않은 패킷의 잔존 여부를 결정하기 위해 EP가 사용하게 되는 대기 행렬 정보 상태로 패킷을 레이블하고, 패킷을 요구한 EP에 전송한다.
E) EP는 요구한 패킷을 수신하고 대기 행렬 상태 정보를 저장한다. 선택된 접속에 대한 ACTIVE 표시자가 False 인 경우에, 대기 행렬 상태 정보와 요구 상태 정보 중 적어도 하나를 이용해서 EP에 의해서 요구되지 않은 패킷이 패킷 대기 행렬에 남아 있는지를 결정하고, EP에 의해서 요구되지 않은 패킷이 패킷 대기 행렬내에 남아 있는 경우에 EP는 접속 테이블의 ACTIVE 표시자를 True로 설정한다.
또 하나의 실시예에서는, 도착 정보는 접속 테이블내에 ACTIVE 표시자를 설정하는 것 뿐만 아니라 혹은 대신에, 전형적으로 대기 행렬 순서로 도착 태그를 저장함으로써 EP에 기록된다. 이러한 계획에서, EP는 많아야 접속당 하나의 태그를 저장한다. 예를 들면, 도 17에서 참조부호 1700에 도시된 것처럼, 하나의 실시예가 다음 단계에 의해서 동작한다. 우선, 인그레스 포트를 경유하여 IP에 도착한 수신 패킷은 메모리내의 대기 행렬에 저장되고(1702), 여기에서 각 대기 행렬은 각각의 접속에 상응한다. IP에 도착한 각 패킷에 대하여, IP는 패킷이 빈 대기 행렬에 도착한지 여부를 결정하고(1704), 패킷이 빈 대기 행렬에 도착한 경우에, IP는 접속 식별자를 가지고 선택적으로 스케줄링 정보를 포함하는 도착 태그를 발생시키고(1706), 도착 태그가 만들어지면 IP는 도착 태그를 패킷에 대한 목적지 EP에 전송한다. 도착 태그가 만들어진 경우에 EP는 도착 태그를 수신하고 저장한다(1708). EP는 소정의 계획, 예를 들면 태그를 FIFO 방식으로 제거하는 계획에 따라서 저장된 도착 태그를 선택하고(1710), 도착 태그를 전송한 IP에 도착 태그를 되돌려 보낸다. 요구를 받았을 때, IP는 접속 식별자를 이용해서(1712) 패킷 대기 행렬을 로케이트시키고 다음 패킷을 디큐하며, 대기 행렬에 남아있는 패킷이 더 있다면 MORE 비트를 True로 그렇지 않은 경우에는 False로 패킷을 레이블해서, 요구하는 EP로 패킷을 전송한다. EP는 요구된 패킷을 수신하고(1714), 패킷을 연관된 에그레스 포트로 전송한다(1716). 패킷내에 MORE 비트가 True(1716)인 경우에, EP는 대기하는 다음 패킷에 대응하는 도착 태그를 발생시키고(1718), 도착 태그를 다른 도착 태그들로 저장한다.
실시예에서, 상기 방법은 요구 가능한 대기 패킷의 숫자에 관한 정보를 에그레스 포트에 보냄으로써 고속 파이프 라인 동작을 위해 변형할 수도 있다. 도 18에서 참조부호 1800에 도시한 본 구현은 다음과 같이 구현된다. IP를 통과한 각 접속에 있어서, 전형적으로 1 내지 4 비트의 길이를 가진 연관된 모듈로 시퀀스 카운트 값 ARRIVSEQ이 있는데 여기에서 ARRIVSEQ의 모듈로는 S이고 "#"는 애디션 모듈로 S를 표시한다. 우선 각 접속에 대한 ARRIVSEQ값은 임의의 값으로 설정된다(1802). 또한 EP와 결합되어서, EP를 통과한 각 접속에 대한 엔트리를 가진 접속 테이블이 있는데 이는 최소한 ACTIVE 비트, MANY 비트, REQSEQ값과 LASTSEQ값을 포함하고 있으며, 여기에서 REQSEQ 과 LASTSEQ 값은 ACTIVE와 같은 비트의 갯수를 가지고 있다. 각 접속에 있어서 ACTIVE 비트와 MANY 비트는 최초 False로 설정된다. 이하의 단계에 의해서 인그레스 포트로부터 에그레스 포트로 패킷들을 스위치한다.
A) 우선, 인그레스 포트를 경유하여 IP에 도착한 수신 패킷은 메모리 내의 대기 행렬에 저장되고(1804), 여기에서 각 대기 행렬은 각각의 접속에 대응하며, IP는 접속과 연관된 ARRIVSEQ값을 ARRIVSEQ #1로 갱신한다.
B) IP에 도착하는 각 패킷에 대하여, IP는 패킷이 빈 대기 행렬에 도착 했는지 여부를 결정하고(1806), 패킷이 빈 대기 행렬에 도착한 경우에, 단계 C(1808)로 진행하고, 그렇지 않으면 단계 E(1812)로 진행한다.
C) IP는 접속 식별자 코드를 가지고 선택적으로 스케줄링 정보를 포함하는 도착 태그를 만들고(1808), 도착 태그를 패킷에 대한 목적지 EP에 전송한다. IP는 접속에 대한 ARRIVSEQ 값을 미리 선정된 값 SEQSTART#1로 설정한다.
D) EP는 도착 태그를 수신해서 저장하고(1810), 접속에 대한 접속 테이블 엔트리내의 ACTIVE 비트를 True로, REQSEQ를 SEQSTART로, LASTSEQ를 SEQSTART#1로 설정한다.
E) EP는 소정의 계획을 이용해서(1812) 저장된 도착 태그를 선택한다. 선택된 접속에 대하여, EP는 적어도 하나의 접속 식별자를 포함하는 요구를 도착 태그를 전송한 IP에 되돌려 보낸다. EP는 선택된 접속에 대한 REQSEQ 값을 REQSEQ #1로 갱신하고, REQSEQ의 새로운 값과 선택된 접속에 대한 LASTSEQ 값을 비교한다. REQSEQ ≠ LASRSEQ 또는 접속에 대한 MANY 비트가 True인 경우에(1814), EP는 대기중인 다음 패킷에 대응하는 도착 태그를 만들고(1818), 도착 태그를 다른 도착 태그들로 저장한다. 그렇지 않으면, EP는 접속에 대한 ACTIVE 비트를 False로 설정한다(1816).
F) 요구를 받았을 때, IP는 접속 식별자를 이용해서 패킷 대기 행렬을 로케이트시키고 다음 패킷을 디큐한다. IP는 패킷을 접속에 대한 ARRIVSEQ 값으로 레이블하고, 패킷 대기 행렬의 패킷의 갯수가 S보다 크거나 같은 경우에는, 패킷내의 MANY 비트를 True로 그렇지 않으면 False로 설정한다. 그리고 나서 IP는 패킷을 요구하는 EP에 전송한다.
G) EP는 요구된 패킷을 수신하고(1822), 패킷내의 ARRIVSEQ 레이블을 접속 테이블에서 접속에 대한 LASTSEQ 값에 복사한다. ACTIVE가 False이고, LASTSEQ ≠ REQSEQ ∥MANY=True(1824)인 경우에는 단계 H(1826)로 진행하고 그렇지 않으면 END이다.
H) EP는 대기중인 다음 패킷에 대응하는 도착 태그를 만들고(1826), 도착 태그를 다른 도착 태그들로 저장하며, 접속에 대한 ACTIVE 비트를 True로 설정한다.
도 19에서 참조부호 1900은 본 발명에 따른 장치의 실시예에 대한 블록 다이어그램이다. 상기 장치는 접속 지향 네트워크에서 복수의 인그레스 포트로부터 복수의 에그레스 포트로 복수의 패킷에 대한 효율적인 스위칭을 제공한다. 장치는 각각 인그레스 메모리(1910, ...), 인그레스 대기 행렬 관리자(1908, ...), 도착 컨트롤러(1906, ...)을 포함하는 복수의 인그레스 포트들(1902, ..., 1904), 및 접속 테이블(1918, ...), 스케줄러(1916, ...) 및 에그레스 패킷 핸들러(1918, ...)를 각각 포함하는 복수의 에그레스 포트들을 포함한다. 인그레스 메모리 (1910, ...)는 복수 접속들의 각 접속에 대한 패킷들의 대기 행렬을 저장하는데 이용된다. 인그레스 대기 행렬 관리자(1908, ...)는 인그레스 포트 메모리(1910, ...)에 결합되며, 입력 링크로부터 패킷을 수신하고 인그레스 메모리에 패킷을 저장하고 그리고 접속과 연관된 대기 행렬 상태 정보를 갱신하는데 이용된다. IP는 IP를 통과하는 각 접속에 대한 대기 행렬 상태 정보를 가지고 있고, 에그레스 포트의 스케줄러(1916, ...)로부터 접속 식별자를 수신했을때, 인그레스 메모리 내의 대응하는 대기 행렬로부터 패킷을 검색하고, 접속에 대한 대기 행렬 상태 정보를 갱신하고, EP에 의해 요구되지 않은 패킷이 패킷 대기 행렬내에 존재 여부를 결정하는 대기 행렬 상태 정보와 함께 패킷을 EP에 의해 목적지 에그레스 포트로 전송한다. 도착 컨트롤러(1906, ...)는 인그레스 대기 행렬 관리자((1908, ...)에 결합되고, 패킷이 도착했을 때 접속에 대한 대기 행렬이 비었을 경우에 적어도 하나의 접속 식별자를 포함하는 도착 태그를 패킷에 대한 목적지 에그레스 포트에 전송하는데 이용된다. 출력 포트(1912, ..., 1914)는 인그레스 포트(1902, ..., 1904)와 결합되어진다. 접속 테이블(1918, ...)은 각 접속에 대하여 적어도 하나의 ACTIVE 표시자, 요구 상태 정보 및 대기 행렬 상태 정보를 저장하는데 이용된다. 스케줄러(1916, ...)는 접속 테이블(1918, ...)과 결합되고 인그레스 포트에 의해 전송된 도착 태그를 수신하고 접속 테이블(1918)내의 상응하는 ACTIVE 표시자를 True로 설정하는데 이용되며, 소정의 계획에 따라 설정된 ACTIVE 표시자를 갖는 접속들을 선택하고, 각 선택된 접속에 대하여 대응하는 도착 태그를 전송한 입력 포트로부터 패킷을 요구하며, 요구 상태 정보를 갱신하고, 대기 행렬 상태 정보와 요구 상태 정보중 적어도 하나를 이용해서 EP에 의해 요구되지 않은 패킷이 패킷 대기 행렬내에 남아있는지 여부를 결정하고 패킷 대기 행렬이 비어 있는 경우에는 EP에 의해 접속 테이블의 ACTIVE 표시자를 False로 설정하는데 이용된다. 에그레스 패킷 핸들러(1920, ...)는 접속 테이블(1908, ...)과 결합되고, 연관된 스케줄러(1916, ...)에 의해 요구된 패킷을 수신하고, 패킷에 동반하는 대기 행렬 상태 정보를 저장하고, 패킷을 출력 링크상에 태스크 지명하고, 선택된 접속에 대하여 ACTIVE 표시자가 False인 경우에 대기 행렬 상태 정보 및 요구 상태 정보중 적어도 하나를 이용해서, EP에 의해 요구되지 않은 패킷이 패킷 대기 행렬내에 잔존 여부를 결정하고, EP에 의해 요구되지 않은 패킷이 패킷 대기 행렬내에 존재하는 경우에, 접속 테이블(1918, ...)내의 ACTIVE 표시자를 True로 설정하는데 이용된다.
다른 방법으로, 도 20의 참조부호 2000에 도시된 것처럼, 수신된 복수의 패킷을 복수의 인그레스 포트로부터 에그레스 포트로의 효율적인 스위칭을 위한 장치는 인그레스 메모리(2010, ...), 인그레스 대기 행렬 관리자(2008, ...) 및, 도착 컨트롤로(2006, ...) 각각을 포함하는 복수의 인그레스 포트들(2002, 2004 ,...)과 접속 테이블(2018, ...), 태그 메모리(2020, ...), 스케줄러(2016, ...) 및 에그레스 패킷 핸들러(2022, ...)를 각각 포함하는 복수의 에그레스 포트들(2012, 2104, ...)로 기술되어질 수 있다. 인그레스 메모리(2010, ...)는 복수의 접속들의 각 접속에 대한 패킷들의 대기 행렬을 저장하는데 이용된다. 인그레스 대기 행렬 관리자(2008, ...)는 인그레스 메모리(2010)에 결합되며, 입력 링크로부터 패킷을 수신하고 인그레스 메모리(2010, ...)에 패킷을 저장하고, 접속과 연관된 대기 행렬 상태 정보를 갱신하고, 여기에서 IP는 IP를 통과한 각 접속에 대한 대기 행렬 상태 정보를 가지고 있으며, 에그레스 포트의 스케줄러(2012)로부터 접속 식별자를 수신했을 때, 인그레스 메모리(2010, ...)에서 대응하는 대기 행렬로부터 패킷을 검색하고, 접속에 대한 대기 행렬 상태 정보를 갱신하고, EP에 의해 요구되지 않은 패킷이 패킷 대기 행렬내에 잔존하는지 여부를 결정하기 위한 대기 행렬 상태 정보를 가진 패킷을 목적지 에그레스 포트(2012, 2014, ...)로 전송하는데 이용된다. 도착 컨트롤러(2006, ...)는 인그레스 대기 행렬 관리자(2008, ...)에 결합되고, 패킷이 도착했을 때 접속에 대한 대기 행렬이 비어있는 경우에 적어도 하나의 접속 식별자를 포함하고 있는 도착 태그를 패킷에 대한 목적지 에그레스 포트로 전송하는데 이용한다. 또한, 에그레스 포트들(2012, 2014, ...)은 인그레스 포트들(2002,2004, ...)과 결합된다. 접속 테이블(2018, ...)은 각 접속에 대하여 적어도 하나의 ACTIVE 표시자, 요구 상태 정보 및, 대기 행렬 상태 정보를 저장하는데 이용된다. 태그 메모리(2020, ...)는 접속당 기껏해야 하나의 태그를 저장하는데 이용된다. 스케줄러(2016, ...)는 접속 테이블(2018, ...)과 태그 메모리(2020, ...)와 결합되어지고, 인그레스 포트에 의해 전송된 도착 태그를 수신하고, 태그 메모리(2020, ...)에 도착 태그를 저장하고, 접속 테이블(2018, ...)내의 대응하는 ACTIVE 표시자를 True로 설정하며, 소정의 계획에 의해 저장된 도착 태그를 선택하고, 선택된 각 도착 태그에 있어서, 도착 태그를 전송한 인그레스 포트로부터 패킷을 요구하고, 요구 상태 정보를 갱신하고, 대기 행렬 상태 정보 및 요구 상태 정보 중 적어도 하나를 이용해서 EP에 의해 요구되지 않은 패킷이 패킷 대기 행렬내에 잔존여부를 결정하고 패킷 대기 행렬이 비어 있는 경우에는 EP에 의해서 접속 테이블(2018, ...)내의 ACTIVE 표시자를 False로 설정하는데 이용된다. 에그레스 패킷 핸들러(2022, ...)는 접속 테이블(2018, ...)과 태그 메모리(2020, ...)와 결합되며, 연관된 스케줄러에 의해 요구된 패킷을 수신하고, 패킷과 동반한 대기 행렬 상태 정보를 저장하고, 출력 링크 상에 패킷을 디스패치하고, 선택된 접속에 대한 ACTIVE 표시자가 False인 경우에 대기 행렬 상태 정보와 요구 상태 정보중 적어도 하나를 이용해서 EP에 의해 요구되지 않은 패킷이 패킷 대기 행렬에 남아있는지 여부를 결정하고, EP에 의해 요구되지 않은 패킷이 패킷 대기 행렬에 남아 있는 경우에 다음 대기 중인 패킷에 대응하는 도착 태그를 만들고 도착 태그를 태그 메모리(2020, ...)에 저장하고 접속 테이블(2018, ...)내의 ACTIVE 표시자를 True로 설정하는데 이용된다.
도 21에서 참조부호 2100은 접속 지향의 네트워크에 대한 본 발명의 실시예에 따른 도착 경로, 요구 경로 및, 패킷 경로를 통한 제어 흐름과 패킷 흐름을 도시하는 블록 다어어그램이다. 패킷은 IP(2102)에 도착하여 각 접속에 상응하는 대기 행렬(2104)에 저장된다. IP는 패킷이 빈 대기 행렬에 도착할때만 도착 태그를 전송한다. 전형적으로는 도착 태그는 저장된 패킷의 메모리 위치보다는 접속 식별자 코드를 포함한다. EP는 접속 테이블(2108)에 태그들을 저장한다. 각 EP는 태그를 선택하고 요구 경로(d)를 거쳐서 IP에 전송한다. IP가 요구 경로를 거쳐 태그를 수신할 때, IP는 태그내의 접속 식별자 코드를 이용해서 패킷이 저장된 패킷 대기 행렬을 로케이트 시키고 다음 패킷을 디큐한다. IP는 대기 행렬 내에서 대기하는 다른 패킷들의 갯수로 패킷을 레이블하고, 그리고 나서 패킷 경로(e)상으로 패킷을 EP를 경유하여 출력 링크에 전송한다.
실시예가 상기 기술되었지만 기술계에서 숙련된 사람들에게는 본 발명을 벗어나지 않고 많은 변화와 변형이 만들어질 수 있다는 것은 자명하다. 따라서, 이후 청구 범위에 정의된 본 발명의 정신과 범주내에 모든 그러한 변화와 변형이 포함된다.

Claims (10)

  1. 복수의 수신된 패킷들을 복수의 인그레스 포트로부터 복수의 에그레스 포트로 효율적으로 스위칭하는 방법에 있어서,
    상기 인그레스 포트에 도착한 패킷들은 저장되며, 상기 패킷들을 목적지 에그레스 포트로 스위칭하는 방법은,
    A) 적어도 하나의 패킷이 도착되었다는 것을 나타내는 도착 정보를 상기 목적지 에그레스 포트로 전송하는 단계; 및
    B) 각 목적지 에그레스 포트에 의해 상기 저장된 패킷 / 패킷들을 소정의 계획(scheme)에 따라 요구하는 단계를
    포함하는 것을 특징으로 하는 스위칭 방법.
  2. 제1항에 있어서, 각 인그레스 포트에 의해 상기 인그레스 포트의 소정의 전송 속도까지의 속도로 요구된 패킷들은 전송하고, 소정의 전송 속도보다 큰 전송 속도를 필요로하는 요구된 패킷들은 전송되지 못하며, 상기 패킷이 전송되지 않은 경우, 상기 전송되지 않은 패킷들을 상기 목적지 에그레스 포트에 의해 재요구하는 것을 특징으로 하는 스위칭 방법.
  3. 제1항에 있어서, 상기 모든 에그레스 포트들의 최대 속도의 합보다는 적고 평균 속도의 합보다는 큰 속도를 갖는 속도 제한 스위치 구조를 통해서 상기 복수의 인그레스 포트들이 상기 복수의 에그레스 포트들에 연결되는 것을 특징으로 하는 스위칭 방법.
  4. 제1항에 있어서, 에그레스 포트를 통과하는 각 접속에 대해서, 대응하는 ACTIVE 지시자는 False로 초기화되고 상기 인그레스 포트들에 도착한 상기 패킷들은 각 접속에 대응하는 패킷 대기 행렬에 저장되며, 상기 스위칭 방법은,
    A) 상기 인그레스 포트에 의해서, 상기 인그레스 포트에 도착한 각 패킷에 대하여 상기 패킷이 빈 대기 행렬에 도착했는지 여부를 결정하고, 상기 패킷이 빈 대기 행렬에 도착했을 경우에는 상기 인그레스 포트에 의해 접속 식별자 코드를 가진 도착 태그를 만들어 내고, 상기 인그레스 포트에 의해, 상기 패킷에 대한 목적지 에그레스 포트에 상기 도착 태그를 전송한 후 단계 B로 진행하며, 상기 패킷이 빈 대기 행렬에 도착하지 않은 경우에는 단계 C로 진행하는 단계;
    B) 상기 에그레스 포트에 의해, 상기 도착 태그를 수신하고 상기 에그레스 포트에 결합된 접속 테이블 - 여기에서 상기 접속 테이블은 상기 에그레스 포트를 통과하는 각 접속에 대해 ACTIVE 지시자를 가지고 있음 - 내의 ACTIVE 지시자를 True로 설정함으로써 도착 태그의 도착을 기록하는 단계;
    C) 상기 에그레스 포트에 의해, 상기 접속 테이블의 상기 ACTIVE 지시자가 True인 상기 접속들중에서, 소정의 계획에 따라 하나의 접속을 선택하고, 상기 선택된 접속에 대한 상기 ACTIVE 지시자를 False로 설정하고, 상기 도착 태그를 전송한 상기 인그레스 포트에 적어도 하나의 접속 식별자를 가진 요구를 되돌려 보내는 단계;
    D) 상기 인그레스 포트에 의해, 상기 요구를 받았을때, 접속 식별자를 이용해서 패킷 대기 행렬을 로케이트시키고 다음 패킷을 디큐(dequeue)하며, 대기 행렬내에 다른 패킷이 남아 있는 경우에는 MORE 지시자를 True로 그렇지 않으면 False로 상기 패킷을 레이블하며, 상기 패킷을 요구하는 에그레스 포트에 전송하는 단계; 및
    E) 상기 에그레스 포트에 의해, 상기 요구된 패킷을 수신하고 상기 패킷내의 MORE 지시자가 True인 경우에 상기 에그레스 포트에 의해 접속 테이블내의 ACTIVE 지시자를 True로 설정하는 단계를
    포함하는 것을 특징으로 하는 스위칭 방법.
  5. 제1항에 있어서, 인그레스 포트를 통과하는 각 접속에 대하여, 연관 모듈로 시퀀스 카운트 값 ARRIVSEQ이 있고, 여기에서 ARRIVSEQ의 모듈로는 S이고 "#"는 어디션 모듈로 S를 나타내며 "∥"는 불(Boolean) OR 연산자를 나타내고, 에그레스 포트를 통과하는 각 접속에 대해서는, 적어도 하나의 ACTIVE 비트, 하나의 MANY 비트, 하나의 REQSEQ 값 및 하나의 LASTSEQ 값을 포함하는 상기 에그레스 포트와 결합되는 접속 테이블의 엔트리가 있고, 각 접속에 대한 상기 ACTIVE비트는 초기에 False로 설정되고, 상기 스위칭 방법은
    A) 인그레스 포트에 의해 패킷 대기 행렬 - 각 대기 행렬은 각 접속에 대응함 - 에 수신된 패킷을 메모리에 저장하고, 상기 접속에 연관된 ARRIVSEQ 값을 ARRIVSEQ #1로 갱신하는 단계;
    B) 상기 인그레스 포트에 의해, 상기 인그레스 포트에 도착한 각 패킷에 대해서 상기 패킷이 빈 대기 행렬에 도착했는지를 결정하고, 상기 패킷이 빈 대기 행렬에 도착했을 경우에 단계 C로 진행하고, 그렇지 않으면 단계 E로 진행하는 단계;
    C) 상기 인그레스 포트에 의해, 접속 식별자 코드를 가지며 선택적으로 스케줄링 정보를 포함하는 도착 태그를 만들어 내고 상기 인그레스 포트에 의해 도착 태그를 상기 패킷에 대한 목적지 에그레스 포트로 전송하고, 상기 접속에 연관된 ARRIVSEQ 값을 선정된 값 SEQSTART#1로 설정하는 단계;
    D) 상기 에그레스 포트에 의해, 상기 도착 태그를 수신하고 상기 접속에 대한 접속 테이블 엔트리내의 ACTIVE 비트를 설정하고, REQSEQ를 SEQSTART로 설정하고, LASTSEQ를 SEQSTART#1로 설정함으로써 상기 도착 태그의 도착을 기록하는 단계;
    E) 상기 에그레스 포트에 의해, 상기 접속 테이블내의 ACTIVE 비트가 설정된 접속들 중에서 소정의 계획에 따라 하나의 접속을 선택하고, 상기 도착 태그를 전송한 상기 인그레스 포트로 적어도 하나의 접속 식별자를 가진 요구를 되돌려 보내고, 상기 선택된 접속에 대한 REQSEQ 값을 REQSEQ#1로 갱신하며, 상기 선택된 접속에 대해 REQSEQ의 새로운 값과 LASTSEQ 값을 비교하며, 그들이 동일하고 상기 접속에 대한 MANY 비트가 False인 경우에 상기 접속에 대한 상기 ACTIVE 비트를 False로 설정하는 단계;
    F) 상기 인그레스 포트에 의해, 상기 요구를 받았을 때 상기 접속 식별자를 이용해서 상기 패킷을 로케이트시키고 다음 패킷을 디큐하고, 상기 접속에 대한 ARRIVSEQ 값으로 패킷을 레이블하며, 상기 패킷 대기 행렬내의 패킷의 수가 S보다 크거나 같으면 상기 패킷에 대한 MANY 비트가 True이고 그렇지 않으면 False로 설정하는 단계; 및
    G) 상기 에그레스 포트에 의해, 상기 요구된 패킷을 수신하고 상기 패킷내의 상기 ARRIVSEQ 레이블을 상기 접속 테이블내의 상기 접속에 대한 상기 LASTSEQ 값에 복사하며, 상기 패킷내의 상기 MANY 비트를 상기 접속 테이블내의 상기 접속에 대한 MANY비트에 복사하고, 상기 접속에 대해서 LASTSEQ ≠ REQSEQ ∥ MANY = True인 경우에 접속에 대한 ACTIVE 비트를 True로 설정하는 단계를
    포함하는 것을 특징으로 하는 방법.
  6. 복수의 인그레스 포트들로부터 복수의 에그레스 포트들로 복수의 수신된 패킷들을 스위칭하기 위한 효율적인 패킷 스위치에 있어서,
    상기 인그레스 포트들에 도착하는 상기 패킷들은 저장되고, 상기 패킷 스위치는,
    A) 각 인그레스 포트가 하나의 도착 컨트롤러를 가지고 있고, 적어도 하나의 패킷이 도착했다는 것을 나타내는 도착 정보를 상기 목적지 에그레스 포트에 전송하기 위한 복수의 도착 컨트롤러들; 및
    B) 각 에그레스 포트는 하나의 스케줄러를 가지고 있고, 상기 복수의 도착 컨트롤러들과 결합되어 각 목적지 에그레스 포트에 의해 저장된 상기 패킷/패킷들을 소정의 계획에 따라 요구하기 위한 복수의 스케줄러들
    을 포함하는 것을 특징으로 하는 패킷 스위치.
  7. 제6항에 있어서, 상기 복수의 인그레스 포트들중 하나로부터 상기 복수의 인그레스 포트들 중의 하나로 하나의 수신된 패킷을 스위칭하기 위해서,
    A) 상기 수신된 패킷에 대한 상기 목적지 에그레스 포트를 결정하고 수신된 패킷을 저장하기 위해 연관 패킷 메모리들에 접속된 상기 복수의 인그레스 포트들; 및
    B) 대응하는 태그 메모리들에 접속된 상기 복수의 에그레스 포트들 - 여기에서 상기 인그레스 포트들과 에그레스 포트들은 서로 연결됨 -을
    포함하는 것을 특징으로 하며,
    상기 효율적인 패킷 스위치는,
    B1) 상기 수신된 패킷에 대한 상기 목적지 에그레스 포트를 결정하고 상기 수신된 패킷을 상기 수신 인그레스 포트와 연결된 상기 패킷 메모리내에 저장하고;
    B2) 상기 수신 인그레스 포트에 의해 상기 패킷이 저장된 곳을 나타내는 적어도 하나의 메모리 로케이션과 IP 번호를 도착 태그를 상기 목적지 에그레스 포트로 전송하고;
    B3) 상기 목적지 에그레스 포트에 의해 상기 도착 태그들을 수신하고 상기 목적지 에그레스 포트와 연결된 태그 메모리에 상기 도착 태그들을 저장하고;
    B4) 상기 목적지 에그레스 포트에 의해, 소정의 계획에 따라 저장된 도착 태그를 선택하고 상기 도착 태그와 연관된 상기 수신된 패킷의 전송을 요구하기 위해 상기 선택된 저장 도착 태그를 상기 도착 태그를 전송한 상기 인그레스 포트로 되돌리고;
    B5) 상기 인그레스 포트에 의해 상기 선택된 저장 도착 태그를 수신하고 상기 도착 태그와 연관된 상기 수신 패킷을 검색하며, 상기 도착 태그와 연관된 상기 수신 패킷을 상기 목적지 에그레스 포트로 전송하고; 및
    B6) 상기 목적지 에그레스 포트에 의해 상기 도착 태그와 연관된 수신 패킷을 수신하고 상기 목적지 에그레스 포트로부터 상기 수신 패킷을 디스패치함으로써 작동하는 것을 특징으로 하는 패킷 스위치
  8. 제7항에 있어서, 상기 도착 태그를 상기 목적지 에그레스 포트내의 상기 패킷을 스케줄링하기 위해서 대기중인 패킷들을
    A) 다른 접속들;
    B) 우선권들; 및
    C) 서비스 질들
    중 적어도 하나를 나타내는 다수의 대기 행렬로 표시하는 태그들을 조직화하기 위한 정보를 포함하고;
    하나의 인그레스 포트가 복수의 에그레스 포트들로부터 패킷들에 대한 요구들을 표시하는 복수의 도착 태그들을 수신한 경우에, 상기 인그레스 포트는 소정의 요구 속도에 따라 요구된 패킷들은 전송하고 상기 소정의 요구 속도를 초과하는 요구들은 거절하고, 하나의 에그레스 포트의 요구가 거절되는 경우에 상기 에그레스 포트가 상기 요구를 반복하는 것을
    특징으로 하는 패킷 스위치.
  9. 제7항에 있어서, 상기 패킷 스위치는 모든 인그레스와 에그레스 포트들에 연결된 셀 클럭 라인을 통해 제공되는 중앙 집권적으로 발생된 CELLCLK 신호에 의해서 셀 사이클들로 동기화되고, 여기에서 하나의 셀 사이클에 단지 하나의 패킷이 각 인그레스 패킷에 도착하는 기간인 경우, 각 인그레스 포트는 셀 사이클마다 단지 하나의 도착 태그를 만들어내고, 각 에그레스 포트가 셀 사이클마다 단지 하나의 요구를 만들어내며, 각 에그레스 포트는 에그레스 링크상에서 셀 사이클마다 최대의 하나의 패킷을 전송하는 것을 특징으로 하는 패킷 스위치.
  10. 복수의 인그레스 포트(IP)들로부터 복수의 에그레스 포트(EP)들로 복수의 수신된 패킷을 스위칭하는 장치에 있어서,
    A) 복수 접속들의 각 접속에 대한 패킷들의 하나의 대기 행렬을 저장하기 위한 하나의 인그레스 메모리;
    B) 상기 인그레스 메모리와 결합되어 있으며, 입력 링크로부터 패킷들을 수신하고 인그레스 메모리에 상기 패킷들을 저장하고, 상기 접속과 연관된 대기 행렬 상태 정보를 갱신하고 - 상기 IP는 상기 IP를 통과하는 각 접속에 대해서 대기 행렬 상태 정보를 가지고 있음 - 에그레스 포트의 스케줄러로부터 접속 식별자를 받을 때에는, 인그레스 포트 메모리내의 연관되는 대기 행렬로부터 하나의 패킷을 검색하고, 상기 접속에 대한 상기 대기 행렬 상태 정보를 갱신하고, 상기 EP에 의해 요구되지 않은 패킷들이 상기 패킷 대기 행렬에 남아있는지 여부를 상기 EP에 의해 결정하기 위해 대기 행렬 상태 정보와 함께 상기 패킷을 상기 목적지 에그레스 포트들로 전송하기 위한 인그레스 대기 행렬 관리자; 및
    C) 상기 인그레스 대기 행렬 관리자에 결합되어 있으며, 상기 패킷이 도착할 때 접속에 대한 상기 대기 행렬이 비어있는 경우에 적어도 하나의 접속 식별자를 포함하는 하나의 도착 태그를 상기 패킷에 대한 하나의 목적지 에그레스 포트로 전송하기 위한 도착 컨드롤러
    를 각각 포함하는 복수의 인그레스 포트들; 및
    D) 각 접속에 대해 적어도 하나의 ACTIVE 지시자, 요구 상태 정보 및 대기 행렬 상태 정보를 저장하기 위한 접속 테이블;
    E) 상기 접속 테이블에 결합되어 있으며, 인그레스 포트들에 의해 전송된 도착 태그를 수신하고, 상기 접속 테이블내의 대응하는 ACTIVE 지시자를 True로 설정하며, 소정의 계획에 따라 ACTIVE 지시자가 설정되어 있는 접속들 중에서 선택하고, 선택된 접속에 대하여 상기 대응 도착 태그를 전송한 상기 인그레스 포트로부터 상기 패킷을 요구하고, 상기 요구 상태 정보를 갱신하고, 대기 행렬 상태 정보 및 상기 요구 상태 정보 중 적어도 하나를 이용해서 상기 EP에 의해 요구되지 않은 패킷들이 상기 패킷 대기 행렬에 남아있는지를 결정하고 상기 패킷 대기 행렬이 비어 있을 경우에는 상기 EP에 의해 상기 접속 테이블내의 상기 ACTIVE 지시자를 False로 설정하기 위한 스케줄러; 및
    F) 상기 접속 테이블에 결합되어 있으며, 상기 연관된 스케줄러에 의해 요구되는 상기 패킷을 수신하고 상기 패킷과 동반하는 상기 대기 행렬 상태 정보를 저장하고, 출력 링크상에 상기 패킷을 디스패치하며, 상기 선택된 접속에 대한 상기 ACTIVE 지시자가 False인 경우에 상기 대기 행렬 상태 정보와 상기 요구 상태 정보중 적어도 하나를 이용해서 상기 EP에 의해 요구되지 않은 패킷들이 상기 패킷 대기 행렬에 남아있는지 여부를 결정하고, 상기 EP에 의해 요구되지 않은 패킷들이 상기 패킷 대기 행렬에 남아있는 경우에는 상기 접속 테이블내의 상기 ACTIVE 접속자를 True로 설정하기 위한 에그레스 패킷 핸들러
    를 각각 포함하는 복수의 에그레스 포트들 - 상기 에그레스 포트들은 상기 인그레스 포트들에 결합됨 - 을
    포함하는 것을 특징으로 하는 스위칭 장치.
KR1019980707224A 1996-03-14 1997-03-13 효율적인출력요구패킷스위치와방법 KR100334922B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/616,024 US5790545A (en) 1996-03-14 1996-03-14 Efficient output-request packet switch and method
US08/616,024 1996-03-14
US8/616,024 1996-03-14
PCT/US1997/003920 WO1997034394A1 (en) 1996-03-14 1997-03-13 Efficient output-request packet switch and method

Publications (2)

Publication Number Publication Date
KR19990087752A true KR19990087752A (ko) 1999-12-27
KR100334922B1 KR100334922B1 (ko) 2002-06-20

Family

ID=24467752

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980707224A KR100334922B1 (ko) 1996-03-14 1997-03-13 효율적인출력요구패킷스위치와방법

Country Status (10)

Country Link
US (1) US5790545A (ko)
EP (1) EP0886939B1 (ko)
JP (1) JP3415628B2 (ko)
KR (1) KR100334922B1 (ko)
CN (1) CN1152532C (ko)
AU (1) AU2208597A (ko)
CA (1) CA2247447C (ko)
DE (1) DE69739399D1 (ko)
HK (1) HK1019529A1 (ko)
WO (1) WO1997034394A1 (ko)

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6016307A (en) 1996-10-31 2000-01-18 Connect One, Inc. Multi-protocol telecommunications routing optimization
US6295299B1 (en) * 1997-08-29 2001-09-25 Extreme Networks, Inc. Data path architecture for a LAN switch
US7100020B1 (en) * 1998-05-08 2006-08-29 Freescale Semiconductor, Inc. Digital communications processor
US6185635B1 (en) * 1998-05-30 2001-02-06 Alcatel Networks Corporation Method and circuit for transporting data based on the content of ingress data words and egress data words
US6145010A (en) * 1998-07-14 2000-11-07 3Com Corporation Method and apparatus for bandwidth control in an over subscribed computer network switch
US6147969A (en) * 1998-10-14 2000-11-14 Lucent Technologies Inc. Flow control method for ABR service in an asynchronous transfer mode network
US6735190B1 (en) 1998-10-21 2004-05-11 Lucent Technologies Inc. Packet transport method device utilizing header removal fields
US6408001B1 (en) 1998-10-21 2002-06-18 Lucent Technologies Inc. Method for determining label assignments for a router
US6597690B1 (en) 1999-01-22 2003-07-22 Intel Corporation Method and apparatus employing associative memories to implement limited switching
US6570887B2 (en) * 1999-01-22 2003-05-27 Intel Corporation Method and apparatus employing associative memories to implement message passing
US6711163B1 (en) * 1999-03-05 2004-03-23 Alcatel Data communication system with distributed multicasting
US6747971B1 (en) 1999-04-20 2004-06-08 Cisco Technology, Inc. Crosspoint switch with independent schedulers
US6625160B1 (en) * 1999-07-02 2003-09-23 Cisco Technology, Inc. Minimum bandwidth guarantee for cross-point buffer switch
US6633576B1 (en) 1999-11-04 2003-10-14 William Melaragni Apparatus and method for interleaved packet storage
US6721316B1 (en) 2000-02-14 2004-04-13 Cisco Technology, Inc. Flexible engine and data structure for packet header processing
US6977930B1 (en) * 2000-02-14 2005-12-20 Cisco Technology, Inc. Pipelined packet switching and queuing architecture
US6813243B1 (en) 2000-02-14 2004-11-02 Cisco Technology, Inc. High-speed hardware implementation of red congestion control algorithm
US6731644B1 (en) * 2000-02-14 2004-05-04 Cisco Technology, Inc. Flexible DMA engine for packet header modification
US6778546B1 (en) 2000-02-14 2004-08-17 Cisco Technology, Inc. High-speed hardware implementation of MDRR algorithm over a large number of queues
US6813274B1 (en) 2000-03-21 2004-11-02 Cisco Technology, Inc. Network switch and method for data switching using a crossbar switch fabric with output port groups operating concurrently and independently
US6975626B1 (en) 2000-03-31 2005-12-13 Sun Microsystems, Inc. Switched network for low latency communication
US7020161B1 (en) 2000-03-31 2006-03-28 Sun Microsystems, Inc. Prescheduling arbitrated resources
US7061929B1 (en) 2000-03-31 2006-06-13 Sun Microsystems, Inc. Data network with independent transmission channels
US7065580B1 (en) * 2000-03-31 2006-06-20 Sun Microsystems, Inc. Method and apparatus for a pipelined network
US6829651B1 (en) * 2000-04-11 2004-12-07 International Business Machines Corporation Local MAC address learning in layer 2 frame forwarding
US7236489B1 (en) * 2000-04-27 2007-06-26 Mosaid Technologies, Inc. Port packet queuing
US6816489B1 (en) 2000-10-05 2004-11-09 Cisco Technology, Inc. Efficient method for packet switching on asynchronous transfer mode switch based platforms
US7042891B2 (en) * 2001-01-04 2006-05-09 Nishan Systems, Inc. Dynamic selection of lowest latency path in a network switch
WO2002062023A1 (en) * 2001-01-31 2002-08-08 Teldix Gmbh Modular and scalable switch and method for the distribution of fast ethernet data frames
WO2002091672A2 (en) * 2001-05-07 2002-11-14 Vitesse Semiconductor Corporation A system and a method for processing data packets or frames
US7295563B2 (en) * 2001-10-01 2007-11-13 Advanced Micro Devices, Inc. Method and apparatus for routing packets that have ordering requirements
US7221678B1 (en) 2001-10-01 2007-05-22 Advanced Micro Devices, Inc. Method and apparatus for routing packets
US7103051B2 (en) * 2001-11-01 2006-09-05 International Business Machines Corporation QoS scheduler and method for implementing quality of service with aging time stamps
US7046676B2 (en) * 2001-11-01 2006-05-16 International Business Machines Corporation QoS scheduler and method for implementing quality of service with cached status array
US6982986B2 (en) * 2001-11-01 2006-01-03 International Business Machines Corporation QoS scheduler and method for implementing quality of service anticipating the end of a chain of flows
US7317683B2 (en) * 2001-11-01 2008-01-08 International Business Machines Corporation Weighted fair queue serving plural output ports
US7280474B2 (en) * 2001-11-01 2007-10-09 International Business Machines Corporation Weighted fair queue having adjustable scaling factor
US7310345B2 (en) * 2001-11-01 2007-12-18 International Business Machines Corporation Empty indicators for weighted fair queues
US6973036B2 (en) * 2001-11-01 2005-12-06 International Business Machines Corporation QoS scheduler and method for implementing peak service distance using next peak service time violated indication
CA2365688A1 (en) * 2001-12-19 2003-06-19 Alcatel Canada Inc. System and method for providing gaps at ingress to a network element
US20030128688A1 (en) * 2001-12-26 2003-07-10 Lg Electronics Inc. ATM based MPLS-LER system and method for establishing connection
US7352741B2 (en) * 2002-02-21 2008-04-01 Sun Microsystems, Inc. Method and apparatus for speculative arbitration
US7680043B2 (en) 2002-03-20 2010-03-16 International Business Machines Corporation Network processor having fast flow queue disable process
US7257124B2 (en) * 2002-03-20 2007-08-14 International Business Machines Corporation Method and apparatus for improving the fairness of new attaches to a weighted fair queue in a quality of service (QoS) scheduler
US6956861B2 (en) * 2002-04-16 2005-10-18 Interactics Holdings, Llc Controlled shared memory smart switch system
US7397768B1 (en) 2002-09-11 2008-07-08 Qlogic, Corporation Zone management in a multi-module fibre channel switch
US7620059B2 (en) 2003-07-16 2009-11-17 Qlogic, Corporation Method and apparatus for accelerating receive-modify-send frames in a fibre channel network
US7471635B2 (en) 2003-07-16 2008-12-30 Qlogic, Corporation Method and apparatus for test pattern generation
US7453802B2 (en) 2003-07-16 2008-11-18 Qlogic, Corporation Method and apparatus for detecting and removing orphaned primitives in a fibre channel network
US7525910B2 (en) 2003-07-16 2009-04-28 Qlogic, Corporation Method and system for non-disruptive data capture in networks
US7646767B2 (en) 2003-07-21 2010-01-12 Qlogic, Corporation Method and system for programmable data dependant network routing
US7525983B2 (en) 2003-07-21 2009-04-28 Qlogic, Corporation Method and system for selecting virtual lanes in fibre channel switches
US7792115B2 (en) 2003-07-21 2010-09-07 Qlogic, Corporation Method and system for routing and filtering network data packets in fibre channel systems
US7477655B2 (en) 2003-07-21 2009-01-13 Qlogic, Corporation Method and system for power control of fibre channel switches
US7512067B2 (en) 2003-07-21 2009-03-31 Qlogic, Corporation Method and system for congestion control based on optimum bandwidth allocation in a fibre channel switch
US7466700B2 (en) 2003-07-21 2008-12-16 Qlogic, Corporation LUN based hard zoning in fibre channel switches
US7684401B2 (en) 2003-07-21 2010-03-23 Qlogic, Corporation Method and system for using extended fabric features with fibre channel switch elements
US7522529B2 (en) 2003-07-21 2009-04-21 Qlogic, Corporation Method and system for detecting congestion and over subscription in a fibre channel network
US7522522B2 (en) 2003-07-21 2009-04-21 Qlogic, Corporation Method and system for reducing latency and congestion in fibre channel switches
US7430175B2 (en) 2003-07-21 2008-09-30 Qlogic, Corporation Method and system for managing traffic in fibre channel systems
US7420982B2 (en) * 2003-07-21 2008-09-02 Qlogic, Corporation Method and system for keeping a fibre channel arbitrated loop open during frame gaps
US7447224B2 (en) 2003-07-21 2008-11-04 Qlogic, Corporation Method and system for routing fibre channel frames
US7558281B2 (en) 2003-07-21 2009-07-07 Qlogic, Corporation Method and system for configuring fibre channel ports
US7583597B2 (en) * 2003-07-21 2009-09-01 Qlogic Corporation Method and system for improving bandwidth and reducing idles in fibre channel switches
US7406092B2 (en) 2003-07-21 2008-07-29 Qlogic, Corporation Programmable pseudo virtual lanes for fibre channel systems
US7580354B2 (en) 2003-07-21 2009-08-25 Qlogic, Corporation Multi-speed cut through operation in fibre channel switches
US7573909B2 (en) 2003-07-21 2009-08-11 Qlogic, Corporation Method and system for programmable data dependant network routing
US7630384B2 (en) 2003-07-21 2009-12-08 Qlogic, Corporation Method and system for distributing credit in fibre channel systems
US7894348B2 (en) 2003-07-21 2011-02-22 Qlogic, Corporation Method and system for congestion control in a fibre channel switch
US7543142B2 (en) 2003-12-19 2009-06-02 Intel Corporation Method and apparatus for performing an authentication after cipher operation in a network processor
US20050149744A1 (en) * 2003-12-29 2005-07-07 Intel Corporation Network processor having cryptographic processing including an authentication buffer
US7512945B2 (en) 2003-12-29 2009-03-31 Intel Corporation Method and apparatus for scheduling the processing of commands for execution by cryptographic algorithm cores in a programmable network processor
US7529924B2 (en) * 2003-12-30 2009-05-05 Intel Corporation Method and apparatus for aligning ciphered data
US7480293B2 (en) 2004-02-05 2009-01-20 Qlogic, Corporation Method and system for preventing deadlock in fibre channel fabrics using frame priorities
US7564789B2 (en) 2004-02-05 2009-07-21 Qlogic, Corporation Method and system for reducing deadlock in fibre channel fabrics using virtual lanes
US7340167B2 (en) * 2004-04-23 2008-03-04 Qlogic, Corporation Fibre channel transparent switch for mixed switch fabrics
US7930377B2 (en) 2004-04-23 2011-04-19 Qlogic, Corporation Method and system for using boot servers in networks
US20060171386A1 (en) * 2004-09-01 2006-08-03 Interactic Holdings, Llc Means and apparatus for a scaleable congestion free switching system with intelligent control III
CN1747440B (zh) * 2004-09-08 2012-05-02 华为技术有限公司 一种实现信元重排序的芯片
US8295299B2 (en) 2004-10-01 2012-10-23 Qlogic, Corporation High speed fibre channel switch element
US7593997B2 (en) 2004-10-01 2009-09-22 Qlogic, Corporation Method and system for LUN remapping in fibre channel networks
US7281093B1 (en) * 2004-12-21 2007-10-09 Xilinx, Inc. Memory apparatus for a message processing system and method of providing same
US7519058B2 (en) 2005-01-18 2009-04-14 Qlogic, Corporation Address translation in fibre channel switches
US7548560B1 (en) 2006-02-27 2009-06-16 Qlogic, Corporation Method and system for checking frame-length in fibre channel frames
EP1860033B1 (en) * 2006-05-26 2011-01-12 MTC - Macchine Trasformazione Carta Srl Banding machine for logs of sheet material
US7923341B2 (en) * 2007-08-13 2011-04-12 United Solar Ovonic Llc Higher selectivity, method for passivating short circuit current paths in semiconductor devices
JP2009177256A (ja) * 2008-01-21 2009-08-06 Fujitsu Ltd パケットスイッチ装置およびパケットスイッチ方法
JP5143203B2 (ja) * 2010-09-24 2013-02-13 株式会社東芝 メモリシステム
EP2668753B1 (en) * 2011-01-28 2017-10-04 Napatech A/S An apparatus and a method for receiving and forwarding data packets
US8694994B1 (en) * 2011-09-07 2014-04-08 Amazon Technologies, Inc. Optimization of packet processing by delaying a processor from entering an idle state
US20140379780A1 (en) * 2013-06-25 2014-12-25 Sap Ag Determining a support package status
US9894013B2 (en) 2015-02-03 2018-02-13 Avago Technologies General Ip (Singapore) Pte. Ltd. Early queueing network device
RU175722U1 (ru) * 2017-03-01 2017-12-15 Общество с ограниченной ответственностью "КЬЮТЭК" Ethernet коммутатор
WO2019214801A1 (en) * 2018-05-07 2019-11-14 Huawei Technologies Co., Ltd. Memory device for a high bandwidth high capacity switch

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4623996A (en) * 1984-10-18 1986-11-18 Mcmillen Robert J Packet switched multiple queue NXM switch node and processing method
JPS61214694A (ja) * 1985-03-18 1986-09-24 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション データ伝送のスイッチング装置
FR2623954B1 (fr) * 1987-11-27 1993-11-19 Alcatel Cit Element de commutation de donnees transmises par multiplexage temporel asynchrone
US5001706A (en) * 1989-06-23 1991-03-19 At&T Bell Laboratories Packet cross connect switch system including improved throughput
GB9309468D0 (en) * 1993-05-07 1993-06-23 Roke Manor Research Improvements in or relating to asynchronous transfer mode communication systems

Also Published As

Publication number Publication date
EP0886939A4 (en) 2000-04-19
CN1214168A (zh) 1999-04-14
EP0886939A1 (en) 1998-12-30
CA2247447A1 (en) 1997-09-18
JP2000506701A (ja) 2000-05-30
KR100334922B1 (ko) 2002-06-20
DE69739399D1 (de) 2009-06-25
CA2247447C (en) 2003-10-21
CN1152532C (zh) 2004-06-02
WO1997034394A1 (en) 1997-09-18
JP3415628B2 (ja) 2003-06-09
HK1019529A1 (en) 2000-02-11
AU2208597A (en) 1997-10-01
US5790545A (en) 1998-08-04
EP0886939B1 (en) 2009-05-13

Similar Documents

Publication Publication Date Title
KR100334922B1 (ko) 효율적인출력요구패킷스위치와방법
AU676926B2 (en) A cell switch and a method for routing cells therethrough
CA2054355C (en) Data channel scheduling discipline arrangement and method
US7173931B2 (en) Scheduling the dispatch of cells in multistage switches
EP0981878B1 (en) Fair and efficient scheduling of variable-size data packets in an input-buffered multipoint switch
US7230923B2 (en) Time based packet scheduling and sorting system
US6791992B1 (en) Earliest-deadline-first queuing cell switching architecture and method
US6940851B2 (en) Scheduling the dispatch of cells in non-empty virtual output queues of multistage switches using a pipelined arbitration scheme
US7400629B2 (en) CAM based system and method for re-sequencing data packets
WO1997022195A1 (en) Multi-level rate scheduler
AU5982494A (en) Controlled access atm switch
US4995032A (en) Label-switching and control interface for asynchronous fast-packet switching
US5742597A (en) Method and device for multipoint switching and arbitration in output-request packet switch
US6445706B1 (en) Method and device in telecommunications system
US7023865B2 (en) Packet switch
US20020061028A1 (en) Scheduling the dispatch of cells in multistage switches using a hierarchical arbitration scheme for matching non-empty virtual output queues of a module with outgoing links of the module
EP0870415B1 (en) Switching apparatus
US7269158B2 (en) Method of operating a crossbar switch
US7142515B2 (en) Expandable self-route multi-memory packet switch with a configurable multicast mechanism
JPH07183897A (ja) 空間分割交換マトリクスの入力へ接続するための入力待ち行列システム
US7130302B2 (en) Self-route expandable multi-memory packet switch
JP2001268082A (ja) 同一宛先セルの優先制御装置及びその方法
JPH06216932A (ja) Atmスイッチ
WO1997004541A2 (en) Multipoint to multipoint processing in a network switch having data buffering queues

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120329

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20130329

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20160407

Year of fee payment: 15

EXPY Expiration of term