KR19980063447A - 스위칭 시스템 - Google Patents

스위칭 시스템 Download PDF

Info

Publication number
KR19980063447A
KR19980063447A KR1019970044770A KR19970044770A KR19980063447A KR 19980063447 A KR19980063447 A KR 19980063447A KR 1019970044770 A KR1019970044770 A KR 1019970044770A KR 19970044770 A KR19970044770 A KR 19970044770A KR 19980063447 A KR19980063447 A KR 19980063447A
Authority
KR
South Korea
Prior art keywords
cell
switching
input
output
address
Prior art date
Application number
KR1019970044770A
Other languages
English (en)
Other versions
KR100292191B1 (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 KR19980063447A publication Critical patent/KR19980063447A/ko
Application granted granted Critical
Publication of KR100292191B1 publication Critical patent/KR100292191B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1553Interconnection of ATM switching modules, e.g. ATM switching fabrics
    • H04L49/1561Distribute and route fabrics, e.g. Batcher-Banyan
    • 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/20Support for services
    • H04L49/201Multicast operation; Broadcast operation
    • H04L49/203ATM switching fabrics with multicast or broadcast capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/256Routing or path finding in ATM switching fabrics
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5619Network Node Interface, e.g. tandem connections, transit switching
    • H04L2012/562Routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5625Operations, administration and maintenance [OAM]
    • 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/5629Admission control
    • H04L2012/563Signalling, e.g. protocols, reference model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5638Services, e.g. multimedia, GOS, QOS
    • H04L2012/5646Cell characteristics, e.g. loss, delay, jitter, sequence integrity
    • H04L2012/5652Cell construction, e.g. including header, packetisation, depacketisation, assembly, reassembly
    • 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/5681Buffer or queue management

Landscapes

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

Abstract

본 발명은 한 세트의 M개의 입력 포트에서 한 세트의 M개의 출력 포트 중 임의의 포트로 셀을 루팅(routing)하는 스위칭 시스템(switching system)에 관한 것으로, 기존의 기술로 복잡한 네트워크, 멀티미디어 어플리캐이션 및 고속 통신에 있어서 시스템의 속도를 증가시키기 위해, 한 세트의 M개 수신기, 한 세트의 M개 입력 루터 및 한 세트의 M개 ASA 레지스터를 갖는 저장부, 한 세트의 M개 출력 루터, 한 세트의 M개 드라이버 및 한 세트의 M개 ARA 레지스터를 갖는 검색부, 입력 처리 제어부 및 출력 처리 제어부를 갖는 제어부, 셀이 출력 포트로 전송되는 횟수를 등록하는 수단 등을 포함하는 스위칭 시스템이 제공된다.
이러한 스위칭 시스템에 의해, 고속화가 실현된다.

Description

스위칭 시스템
본 발명은 통신(telecommunication)에 관한 것으로, 특히 한 세트의 M개 입력 포트 중 한 포트로부터 한 세트의 M개 출력 포트중의 임의의 한 포트로의 셀(cell)의 루팅(routing)을 실현하는 스위칭 시스템(switching system)에 관한 것이다.
보다 복잡한 네트워크, 멀티미디어 애플리케이션 및 고속 통신의 개발에 의해 고속 시스템의 필요성이 특히 증가하고 있다.
오늘날에는 100 Gigabit/s 스위치가 더욱 더 필요로 되도록 하는 요구가 있다. 그러나, 첫 번째 문제는 스위치의 속도가 사용되는 실제 기술에 크게 의존한다는 사실에서 발생된다. 따라서, 제한된 기술 상태에 있어서는, 공지된 스위치를 개선하는 것이 어렵다. 따라서, 모듈의 내부 기능 및 효율을 여전히 유지하는 방식으로 기본 스위칭 모듈을 집합시킬 필요가 있다. 특히, 스위칭 구조의 조합이 그 배치를 실행하기 위한 입력 또는 출력 포트를 필요로 하지 않고, 따라서 고객을 위해 남겨지는 포트의 수가 줄어드는 것이 필수적이다. 또한, 집합 스위칭 시스템이 단일 스테이지에 유지되는 것이 필요하다.
두 번째 문제는, 고객 구내영역(premisses)에 비교적 아주 장기간 동안 고정되어 위치가 정해지는 라인 부착(lines attachments)을 갖춘다는 사실에서 발생하는데, 그 이유는 적어도 통신 장비를 위해 이루어지고 있는 투자가 철저하게 손실될 수는 없기 때문이다. 따라서, 비록 고속 스위칭 시스템이 매우 필요하다 할지라도, 이미 이루어진 투자를 보호하고, 따라서 광범위의 부착을 허용하고자 하는 요구가 있다.
또한, 스위칭 시스템은 ATM 통신 링크에 적합하고, 광범위한 멀티캐스팅 기능(즉, 셀이 상이한 출력 포트에서 복제되도록 스위치로 입력되는 셀의 복제(duplication) 가능성)을 제공해야 하며, 또한 상이한 라인 부착이 상이한 물리적 영역에서 실현될 수 있도록 허용해야 한다.
1992년 10월의 16차 국제 스위칭 심포지엄에서 W.E. Denzel, A.P.J. Engbersen, I. Illiadis, G. Karlsson 에 의해 발표된 A highly modular packet switch for Gb/s rate 란 제목의 종래 기술의 문헌에는 고속 스위칭 시스템에 관해 기재되어 있다.
본 발명의 목적은 주어진 기술로 보다 높은 속도를 허용하는 스위칭 모듈에 기초하여 스위칭 시스템을 제공하는 것이다. 또한, 스위칭 시스템은 ATM 라인을 포함하는 넓은 범위의 기존 부착을 허용하고 또한 광범위한 멀티캐스팅 기능 및 용이한 물리적 접속을 허용해야 한다.
스위칭 모듈의 새로운 구성은 특허청구의 범위 제1항에 정의된 바와 같이, 제한된 기술에 의해서도 보다 높은 속도를 제공하기 위해 용이한 조합을 허용하도록 설계되었다. 기본적으로, 스위칭 모듈은 한 세트의 M개 수신기, 한 세트의 M개 입력 루터를 갖는 저장부를 포함하고, 이들 루터는 셀 저장부의 상이한 위치 중의 임의의 위치로의 M개의 입력 포트의 접속을 실현한다. 저장부는 셀 저장부에 셀을 저장하기 위해 사용되는 어드레스를 입력 루터에 제공하는 한 세트의 M개 ASA 레지스터를 더 포함한다. 또한, 스위칭 모듈은 상기 셀 저장부의 임의의 위치에 위치한 데이터를 검색하는 한 세트의 M개 출력 루터 및 상기 셀 저장부로 출력되는 셀의 어드레스를 출력 루터에 제공하는 한 세트의 M개 ARA 레지스터를 포함한다.
특정 제어부에는 스위치에 입력되는 셀의 입력 프로세스 및 출력 프로세스가 제공된다.
입력 제어부는 빈 위치(location)의 어드레스를 셀 저장부로 제공하는 FAQ 어드레스 발생 수단 및 FAQ 회로에 의해 발생되는 어드레스 또는 제1 외부 버스에 의해 제공되는 어드레스를 상기 M개 ASA 레지스터에 제공하는 제1 멀티플렉싱 수단을 포함한다. 셀이 셀 저장부에 입력되고 있는 한, 모듈 루팅 헤더를 유지하기 위해 한 세트의 홀딩 레지스터가 사용된다.
출력 제어부는 출력 포트로 송신될 셀을 포함하는 상기 셀 저장부내 위치의 어드레스를 큐잉(queueing)하는 한 세트의 M개 OAQ 큐잉 수단을 포함한다. 각 큐잉 수단은 ASA 레지스터의 내용을 수신하는 입력을 갖고, 상기 M개의 출력 포트 중 대응하는 포트와 관련된다. 또한, 제어 수단은 홀딩 레지스터에 의해 유지되는 모듈 루팅 헤더를 수신하고, 셀이 복제되어야 하는 출력 포트와 관련된 각각의 큐에 ASA 레지스터의 내용(contents)을 로드하기 위해, 모든 큐잉 수단에 대한 WE 제어 신호를 발생한다. 또한, 큐잉 수단에 의해 제공되는 어드레스 또는 제2 외부 버스에 의해 제공되는 어드레스를 M개의 ARA 레지스터에 제공하기 위해 제2 멀티플렉싱 수단이 제공된다.
고려하는 어드레스 중 마지막으로 발생한 어드레스가 큐잉 수단의 내용에서 사라지는 한, 셀 저장부로 입력되는 어드레스가 이용가능하게 되는 것을 방지하기 위해 특정한 북 킵 메모리 등록 회로(Book_Keep_Memory registration circuit)(7)가 사용된다. 제1 및 제2 멀티플렉서에 의해, 내부 또는 외부에서 루팅 프로세스를 실현하는 것이 가능하게 된다. 또한, 입력 및 출력 프로세스 모두를 실행하기 위해 사용되는 어드레스는, 어드레스 발생 수단 및 제어 회로를 포함하여 내부에 위치한 회로를 이용하여 발생될 수도 있으며, 또는 (고려하는 모듈에 대하여) 외부 회로를 이용하여 실현될 수도 있다.
이러한 방식으로, 상이한 스위칭 모듈을 집합(aggregate)시키고 그것을 제1 및 제2 버스에 의해 ASA 및 ARA 레지스터에 필요한 어드레스가 제공되는 마스터 모듈의 제어하에 속도 확장 모드에서 동작시키는 것이 아주 용이하게 된다. 이것은 정해진 기술 상태에 의해서도, 다수의 스위칭 모듈을 포함하는 스위칭 장치의 전체 속도를 증가시키는 실질적인 장점을 수반한다.
본 발명의 특정 실시예에 있어서, 스위칭 구조는, 직렬 통신 링크를 통해 입력 및 출력 포트와 통신하는, 한 세트의 분산 기본 스위치 코어 억세스 레이어(Switch Core Access Layer: SCAL) 엘리먼트와 유효하게 결합된다. 각 SCAL 엘리먼트는 PINT 회로를 포함하고, 이 PINT 회로는 특정 프로토콜 어댑터 또는 프로토콜 엔진으로의 부착을 허용하고, 집합되는 각각의 개별 모듈에 대응하는 수신 및 송신부를 위한 한 세트의 FIFO를 포함한다. 수신부의 각 FIFO는 속도 확장 모드로 동작하는 스위칭 구조의 대응하는 스위칭 모듈에 의해 그 대응하는 부분이 처리될 수 있도록 슬라이스(sliced)된 셀의 일부를 수신한다. 또한, 각 SCAL 엘리먼트는 각 PINT 회로가 하나의 포트로 1/4 대역폭에 대한 억세스를 획득할 수 있도록, 스위칭 구조를 가진 통신 링크의 시분할 다중(Time Division Multiplex: TDM)을 수행하는 제어 수단을 포함한다. 이것은 결과적으로 기존의 상이한 라인 어댑터와의 매우 다양한 부착을 허용하는 전체 스위칭 아키텍쳐를 제공한다. SCAL 엘리먼트는 직렬화(serialized)된 케이블을 이용하여 스위치 코어와 통신하며, 따라서, SCAL 엘리먼트가 중앙 집중식 스위치 코어 시스템으로부터 상당한 거리에 위치될 수 있도록 허용한다.
바람직하게, 각 PINT 회로의 수신부는, 제1 단계로 스위칭 구조를 제어하고 제2 단계로 PINT 송신 회로를 제어하기 위해 사용되게 되는 루팅 헤더를 전달하기 위해 예비되는 적어도 하나의 여분의 바이트를 모든 셀에 삽입하는 수단을 포함한다. 또한, 모든 PINT 회로의 송신부는 데이터 셀을 저장하는 적어도 하나의 제2 FIFO 저장부 뿐 만 아니라, 고려하는 SCAL 엘리먼트가 부착되는 스위칭 구조의 출력 포트에서 발생되는 모든 셀을 수신하는 제어 모듈을 포함한다. 적어도 하나의 여분 바이트에 의해 전달되는 값에 따라, 제어 수단은 셀을 폐기할 것인가의 여부를 결정한다. PINT 회로의 수신부는 루팅 및 멀티캐스팅 연산에 필요한 여분의 바이트의 삽입을 수행하는 동안, 이것을 수행하기 위해 필요한 정확한 값이 루팅 테이블의 두 개의 연속하는 판독 연산, 즉 스위칭 시스템 내에서의 셀의 루팅 이전에 수행되는 제1 연산 및 각 출력 포트의 레벨에서 셀을 루팅한 후 실행되는 제2 연산을 이용하여 스위칭 시스템으로 발생된다. 이들 2개의 연속하는 판독 연산은 SCAL 엘리먼트가 스위칭 시스템의 상이한 물리적 영역에 분산되는 경우에도, 광범위한 멀티캐스팅 능력을 제공하는 2-레벨 멀티캐스트 특성을 실현한다.
본 발명의 바람직한 실시예에서, 스위칭 구조 또는 PINT 송신 회로에 필요한 값을 제공하기 위해 사용되는 테이블은 중앙 집중식 스위치 코어에 위치하는 동일한 저장 모듈에 로드된다. 이것은 루팅 테이블의 갱신 제어 메카니즘을 매우 용이하게 한다.
도1은 본 발명을 구현하기 위해 사용되는 스위칭 모듈(401)의 도면이 완전하고 이해되기 쉽도록 하기 위해 도2 및 도3의 배치를 도시한 도면.
도2 및 도3은 본 발명의 바람직한 실시예에 사용되는 스위칭 모듈의 구조를 도시한 도면.
도4는 스위칭 장치를 실행하기 위해 하나의 스위칭 모듈을 사용하는 것을 예시한 도면.
도5는 고속으로 동작하는 개선된 스위칭 구조를 실현하기 위해 포트 속도 확장 방식으로 배치된 다수의 스위칭 모듈을 사용하는 것을 도시한 도면.
도6은 스위치 코어 억세스 레이어 엘리먼트와 관련된 도5의 스위칭 구조에 기초한 스위치 코어를 포함하는 일반적인 스위치 패브릭을 도시한 도면.
도7은 분산 스위치 코어 패브릭 실시예의 논리 흐름을 도시한 도면.
도8은 본 발명의 SCAL의 PINT 수신부(511)를 도시한 도면.
도9는 본 발명의 SCAL의 PINT 송신부(611)를 도시한 도면.
도10은 광범위한 멀티캐스트 성능을 제공하기 위해 개선된 콤팩트 스위치 패브릭 실시예를 도시한 도면.
도11은 광범위한 멀티캐스트 성능을 제공하기 위해 개선된 분산 스위치 패브릭 실시예를 도시한 도면.
도12 및 도13은 제어 루팅 테이블의 갱신 및 생성 절차를 예시한 도면.
도14는 ATM 셀을 전달하는 인터페이싱 라인에 매우 적합한 프로토콜 엔진의 구조를 도시한 도면.
도15는 한 세트의 4개의 수신라인 인터페이스(971-974) 및 4개의 송신라인 인터페이스(976-979)를 통한 4라인 OC3 라인 인터페이스의 부착에 적합한 구조를 도시한 도면.
도16은 ATM 프로토콜 엔진의 블록(910)의 수신부를 도시한 도면.
도17은 ATM 프로토콜 엔진의 블록(950)의 송신부를 도시한 도면.
*도면의 주요 부분에 대한 부호의 설명*
1 : 셀 저장부
2 : 입력 루터
3 : 출력 루터
5 : 프리 억세스 큐(FAQ)
7 : 북 킵 메모리
20, 21, 22,23 : ASA 레지스터
26, 27, 112, 113 : 멀티플렉서
50, 51 : OAQ
60, 61, 62, 63 : 홀딩 레지스터(HE)
114, 115 : 파이프라인 레지스터
도2 및 도3은 본 발명에 따른 스위칭 장치를 구현하기 위해 사용되는 스위칭 모듈을 도시하고 있다. 블록(401)으로 나타낸 이 모듈은 그곳에 로드된 셀을 출력하고 그 셀을 스위칭 모듈의 임의의 출력 포트로 전송하는 검색부에 부가하여, 16개 입력 포트중 어느 하나의 포트를 통해 공통 셀 저장부(1)로 들어오는 셀의 저장 프로세스를 실행하는 저장부를 구비한 데이터부를 포함한다.
이 저장부는 16개의 상이한 입력 포트에 대한 물리적 인터페이스를 나타내는 한 세트의 16개 RCVR 수신기(10(0)-10(15))(수신기(10(15))는 도면에서 검게 나타냄)를 사용한다. 한 세트의 16개 대응 루터(router)(2(0)-2(15))(루터(2(15))도 도면에서 마찬가지로 검게 나타냄)는 셀 저장부(1)의 128개 위치 중 임의의 위치에 대한 입력 포트의 접속을 실현한다. 타이밍을 고려하여, 이 저장부는 또한 한 세트의 16개 바운더리 래치(boundary latch)(101(0)-101(15))(래치(101(15))는 도면에서 검게 나타냄) 및 한 세트의 파이프라인 회로(103(0)-103(15))를 포함하여, 수신기(10(i))에 의해 전송되는 데이터가 그의 대응하는 바운더리(boundary) 래치(101(i)) 및 파이프라인(103(i))을 거쳐 루터(2(i))로 전달되도록 한다.
한편, 스위칭 모듈(401)의 검색부는 스위칭 모듈의 16개 출력 포트를 인터페이스하기 위해 사용되는 한 세트의 16개 오프 칩 드라이버(Off-Chip-Driver: OCD) 드라이버(11(0)-11(15))를 포함한다. OCD 드라이버는 각각의 루터(3(i))가 셀 저장부(1)에서 이용가능한 128개 위치에 위치하는 모든 데이터를 검색하고 대응하는 OCD 드라이버(11(i))를 거쳐 적절한 수신지 출력 포트(i)를 향해 그 데이터를 전송할 수 있도록, 16개 루터(3(0)-3(15))로부터 관련된 세트의 16개 바운더리 래치(102(0)-102(15))(타이밍을 고려하기 위해 사용됨)를 거쳐 데이터를 수신한다.
데이터부에 부가하여, 스위칭 모듈은 셀 저장부(1)의 빈 위치의 어드레스를 저장하기 위해 사용되는 프리 억세스 큐(Free Access Queue: FAQ) 회로(5)(도3에 도시함)를 기반으로 하는 제어부를 더 포함한다. 출력 큐 메모리(4)는 2개의 상이한 세트의 8개 출력 어드레스 큐(Output Address Queue: OAQ)(50(0)-50(7))(큐(50(7))은 도면에서 검게 나타냄,51(0)-51(7))(51(7)은 도면에서 검게 나타냄)으로 구성된다. 다음에 상세히 설명하는 바와 같이, 이들 2개의 세트는 출력 포트로 송신될 데이터 셀을 저장하는 셀 저장부(1)내의 위치의 어드레스를 저장하기 위해 사용된다. 두 세트의 8개 레지스터, 즉 ASA 레지스터(20(0)-20(7))(레지스터(20(7))은 검게 나타냄) 및 ASA 레지스터(21(0)-21(7))(후자를 검게 나타냄)는 한 세트의 2개 버스, 즉 ODD 버스(104) 및 EVEN 버스(105) 상에 어드레스를 발생하기 위해 각각 사용되며, 이들 2개의 버스는 16개 루터(2(0)-2(15)) 및 OAQ 큐(4)에 접속된다. 버스(104)는 ASA 레지스터(20(0)-20(7))의 8개 출력 버스의 조합으로부터 구성되며, 버스(105)는 8개 ASA 레지스터(21(0)-21(7))의 출력 버스의 조합으로부터 구성되는 64 바이트 버스이다.
또한, EVEN 버스(104)는 버스(91)을 거쳐 FAQ(5)로부터의 프리 어드레스를 제2 입력에서 수신하는 MUX 멀티플렉서(106)의 제1 입력 버스에 접속된다. MUX(106)의 출력은 바운더리 래치(108)에 접속되고, 이 래치의 출력은 한 세트의 8개 오프 칩 드라이버(OCD)(40(0)-40(7))의 입력 및 샤도우 래치(shadow latch)(110)에 접속된다. OCD 드라이버(40(0)-40(7))은 8비트 버스(510)(8개 출력(510(0)-510(7))으로 형성됨)을 형성하도록 각각 접속되고 대응하는 RCVR 수신기(44(0)-44(7))의 입력에도 접속된 출력을 갖는다. RCVR 수신기(44(0)-44(7))의 출력은 리던던시 래치(redundancy latch)(180)에 접속되고, 이 래치의 출력은 MUX 멀티플렉서(112)의 하나의 입력 버스에 접속되고, 이 멀티플렉서의 제2 입력은 샤도우 래치(110)의 내용을 수신한다. MUX 멀티플렉서(112)는 다음에 설명하는 바와 같이, 적절한 ASA 레지스터(22(0)-22(7))로 전달되는 데이터를 로드하기 위해 파이프라인 레지스터(114)에 접속된 출력을 갖는다.
마찬가지로, ODD 버스(105)는 버스(92)를 거쳐 FAQ(5)로부터의 프리 어드레스를 제2 입력에서 수신하는 MUX 멀티플렉서(107)의 제1 입력 버스에 접속된다. MUX(107)의 출력은 바운더리 래치(109)에 접속되고, 이 래치의 출력은 한 세트의 8개 오프 칩 브라이버(OCD)(41(0)-41(7))의 입력 및 샤도우 래치(111)에 접속된다. OCD 드라이버(41(0)-41(7))는 8비트 버스(509)를 형성하도록 각각 조립되고 8개 RCVR 수신기(45(0)-45(7))의 입력에 접속된 출력(509(0)-509(7))을 갖는다. RCVR 수신기(45(0)-45(7))의 출력은 리던던시 래치(181)에 접속되고, 이 래치의 출력은 MUX 멀티플렉서(113)의 하나의 입력 버스에 접속되고, 이 멀티플렉서의 제2 입력은 샤도우 래치(111)의 내용을 수신한다. MUX 멀티플렉서(113)는 다음에 설명하는 바와 같이, 어드레스가 적절한 ASA 레지스터(23(0)-23(7))에 이용가능하게 될 수 있도록 파이프라인 레지스터(115)에 접속된 출력을 갖는다.
제어부는 4세트의 홀딩 레지스터(60(0)-60(7))(레지스터(60(7))은 검게 나타냄), (61(0)-61(7)(검게 나타냄)), (62(0)-62(7),63(0)-63(7))을 포함하며, 이들 레지스터는 다음에 상세히 설명하는 바와 같이 스위칭 프로세스를 실행하기 위해 사용된다.
데이터 저장부로 돌아가서, 16개 입력 포트가 2세트의 8개 ASA 레지스터(20(0)-20(7)) 및 ASA 레지스터(21(0)-21(7))의 내용에 의해 정의되는 어드레스에서 셀 저장부(1)에 16개 셀을 동시에 로드할 수 있다는 것을 알아야 한다. 이때, 각각 8개 레지스터,즉 ARA 레지스터(32(0)-32(7))(도면에서 레지스터(32(7))는 검게 나타냄) 및 ARA 레지스터(33(0)-33(7)(검게 나타냄))의 2개 세트에 배치된 16개의 ARA 레지스터의 내용에 의해 정의되는 어드레스에서 셀 저장부(1)로부터 16개 셀이 추출될 수 있다. ARA 레지스터(32(0)-32(7))는 듀얼 멀티플렉서 회로(800)의 제1 입력에 접속된 EVEN 버스(98)를 거쳐 대응하는 NRA 레지스터(28(0)-28(7))의 내용을 수신한다.
마찬가지로, ARA 레지스터(33(0)-33(7))는 듀얼 멀티플렉서 회로(800)의 제2 입력에 접속된 ODD 버스(99)를 거쳐 대응하는 NRA 레지스터(29(0)-29(7))의 내용을 수신한다. 듀얼 멀티플렉서(800)는 제3 및 제4 입력 버스에서 제1 및 제2 세트의 OAQ 큐(50(0)-50(7),51(0)-51(7))의 출력을 각각 수신한다. 듀얼 멀티플렉서는 바운더리 래치(30) 및 바운더리 래치(31)에 각각 접속된 2개의 출력 버스를 갖는다.
NRA 레지스터(28(0)-28(7))는 MUX 멀티플렉서 회로(26)의 출력을 수신하도록 접속되고, 이 멀티플렉서 회로는 샤도우 래치(34) 및 바운더리 래치(80)의 내용을 각각 수신하는 제1 및 제2 입력을 갖는다. 마찬가지로, NRA 레지스터(29(0)-29(7))은 MUX 멀티플렉서 회로(27)의 출력을 수신하도록 접속되고, 이 멀티플렉서 회로는 샤도우 래치(35) 및 바운더리 래치(81)의 내용을 각각 수신하는 제1 및 제2 입력을 갖는다. 래치(30)의 출력은 샤도우 래치(34)의 입력 버스 및 한 세트의 8개 오프 칩 드라이버(OCD)(42(0)-42(7))의 입력에 접속되고, 이 드라이버의 출력(520(0)-520(7))은 한 세트의 8개 RCV 수신기(46(0)-46(7))의 입력에 접속되는 버스(520)를 형성하도록 조립된다. 마찬가지로, 래치(31)의 출력은 샤도우 래치(35)의 입력 버스 및 한 세트의 8개 오프 칩 드라이버(OCD)(43(0)-43(7))의 입력에 접속되고,이 드라이버의 출력(521(0)-521(7))은 버스(521)을 형성하고, 한 세트의 8개 RCVR 수신기(47(0)-47(7))의 대응하는 입력에 접속된다. RCVR 수신기(46(0)-46(7)의 출력은 래치(80)의 입력 버스에 접속되고, RCVR 수신기(47(0)-47(7))의 출력은 래지(81)의 입력 버스에 접속된다.
다음에 설명하는 바와 같이, 본 발명의 구성은 한 세트의 16개 셀이 셀 저장부(1)로부터 동시에 추출되어 적절한 출력 포트로 루트될 수 있도록 허용한다는 것은 명백하다.
하나의 셀이 N 바이트(예를 들면 54 바이트)를 포함하면, 스위칭 모듈은 한 세트의 N개 클럭 사이클에서, 셀 저장부(1)에 16개 셀을 저장하고 셀 저장부(1)로부터 16개 셀을 검색하는 가능성을 제공한다.
이하, 스위칭 모듈(401)에서 수반되는 입력 및 출력 프로세스를 보다 상세하게 설명한다.
1. 입력 프로세스
입력 프로세스는 (16개 셀이 실제로 동시에 입력된다고 고려하면) 하나의 기본 셀에 포함된 한 세트의 N개 바이트의 완전한 저장을 실현하기 위해 수반된다. 입력 프로세스는 기본적으로 특유의 연산에 관계되는데, 먼저, 후술되는 바와 같이 셀은 16개 수신기(10(0)-10(15))를 거쳐 데이터부로 입력된다. 이 제1 단계는 한 세트의 N개 클럭 사이클에서 실현된다. 또한, 두 번째 연산은 셀 저장부(1)내의 어드레스를 준비하거나, 또는 보다 정확하게 말하면, 그 다음에 이어지는 차기 세트의 16개 셀의 로딩을 위해 셀 저장부내에서 사용될 16개 어드레스를 계산하기 위해 수행된다. 본 발명의 바람직한 실시예에서, 이 두 번째 어드레스 계산 단계는 한 세트의 8개 기본 사이클 만으로 실현된다. 또한, 첫 번째 사이클은 입력 포트 0 및 1에 의해 사용되는 어드레스를 계산하기 위해 사용되고, 두 번째 사이클은 포트 2 및 3에 의해 필요하게 될 어드레스의 결정을 수행하고, 보다 일반적으로 말하면, 사이클 n은 포트 2n 및 2n+1을 거쳐 들어오는 셀을 입력하기 위해 수반되는 셀 저장부(1) 내의 2개의 어드레스의 계산에 제공된다.
입력 연산을 준비하기 위해, 셀 저장부(1)의 프리(free) 어드레스는 프리 어드레스 큐(5)에 의해 제공되어 제1 세트의 ASA 레지스터(20(0)-20(7)) 및 제2 세트의 ASA 레지스터(21(0)-21(7))에 로드된다. 설명을 간략하게 하기 위해, ASA 레지스터(20(0)-20(7))을 구별하지 않고 고려하면, ASA 레지스터(20) 하나만 참조한다. 마찬가지로, ASA 레지스터(21)는 8개의 ASA 레지스터(21(0)-21(7))이 이용을 대표한다. 이들을 구별할 때는 정상 참조 부호가 다시 설정되게 된다. 이러한 단순화는 또한 ARA 레지스터(32(0)-32(7)), NRA 레지스터(28(0)-28(7)) 등과 같이 다른 군의 7개 또는 15개 개별 엘리먼트에 대한 설명의 나머지 부분에서도 사용된다.
이하, ASA 레지스터(20,21)의 풀 로딩(full loading)에 대해 설명한다. 전술한 바와 같이, 이것은 멀티플레서(106), 바운더리 래치(108), 샤도우 래치(110), 멀티플렉서(112), 파이프라인 레지스터(114) 및 멀티플레서(112)를 거쳐 FAQ 회로(5)에 의해 제공되는 어드레스의 8번의 연속되는 전송에 의해 실현된다. 예를 들면, (20(0))의 로딩은 멀티플레서(106), 래치(108,110), 멀티플렉서(112), 파이프라인 레지스터(114) 및 ASA 레지스터(22(0))를 거쳐 (버스(91) 상의) FAQ 회로(5)에 의해 제공되는 어드레스의 전송에 의해 실현된다. 다음에, ASA 레지스터(20(1))는 그의 대응하는 ASA 레지스터(22(1)) 등을 거쳐 유사한 전송에 의해 로드된다. 마찬가지로, ASA 레지스터 세트(21)의 로딩은 멀티플레서(107), 바운더리 래치(109), 샤도우 래치(111), 멀티플렉서(113), 파이프라인 레지스터(115) 및 한 세트의 8개 ASA 레지스터(23)을 거쳐 연속적으로 실행된다. 전술한 바와 같이, 멀티플렉서(106,107)는 ASA 레지스터(20,21)의 내용을 각각 수신하도록 접속된 제2 입력을 갖는다. 멀티플레서(106,107)의 제2 입력을 사용하는 것에 의해, ASA 레지스터(20,21)(예를 들면, 8개 기본 사이클 중에서 사이클 i동안 전송이 수행중일 때 ASA 레지스터(20(i)))에 로드되는 어드레스의 재순환이 허용된다. 두 세트의 ASA 레지스터가 스위치 모듈의 16개 입력 포트와 관련되는 전체 군의 16개 레지스터를 형성하는 것을 주목하자. 본 발명은 셀 저장부(1)에 16개 셀을 로딩하기 위해 사용되는 16개 어드레스를 계산하는 데 요구되는 기본 사이클 수를 줄이기 위해 각각 8개 레지스터의 두 군에 ASA 레지스터 세트(20,21)를 배치하는 것을 이용한다. 8개의 연속되는 사이클만으로, 본 발명은 16개의 상이한 입력 포트를 처리하는 가능성을 제공한다.
프리 어드레스가 ASA 레지스터(20,21)에 로드될 때, 셀 저장부(1)로의 N_바이트 셀의 실제 로딩을 실현하는 셀 사이클이 개시될 수 있다. 또한, 각 입력 포트에 대하여, 어드레스트는 한 세트의 16개 ASA 레지스터중 대응하는 레지스터로 이용가능하게 된다. 특히, 입력 포트 번호 2n(n이 0과 7 사이의 정수이므로 짝수)에서 제공되는 셀은 ASA 레지스터(20(n))의 내용에 의해 정의되는 어드레스를 가진 위치에서, 대응하는 루터(2(2n))을 거쳐 셀 저장부(1)로 로드된다. 홀수, 즉 2n+1(n은 0과 7 사이의 정수)이 되는 입력 포트에서 제공되는 셀은 ASA 레지스터(21(n))의 내용에 의해 정의되는 어드레스를 가진 위치에서, 루터(2(2n+1))를 거쳐 셀 저장부(1)로 로드된다. 이러한 구성에 있어서, N개의 기본 바이트의 완전한 셀의 완전한 저장은 한 세트의 N 기본 클럭의 주기를 필요로하고, ASA 레지스터(20,21)의 저장을 허용하는 제어부는 8개 기본 사이클을 필요로 하는 것처럼 보인다. 그러나, 각 루터(2)가 16개 ASA 레지스터(20,21) 중의 대응하는 하나의 레지스터에 관련되므로, 16개 셀이 동시에 저장부(1)에 로드될 수 있다는 것을 알아야 한다. 특히, 루터(2(2n))는 ASA 레지스터(20(n))의 출력 버스를 수신하지만, 루터(2(2n+1))는 ASA 레지스터(21(n))의 출력 버스를 수신한다.
이제, 전술한 ASA 레지스터(20,21)의 로딩과 동시에, 입력 셀의 루팅 프로세스가 어떻게 실행되는가에 대해 설명한다. 본 발명의 바람직한 실시예에서, 이 루팅 프로세스는 하나 또는 두 바이트로 이루어질 수 있는 루팅 헤더의 사용에 기초한다.
헤더가 단일 바이트로 제한되는 경우에, 본 발명에 따른 스위치 모듈은 헤더의 최상위 비트(Most Significant Bit: MSB)에 따라 다르게 동작한다. 또한, 다음에 설명하는 바와 같이, 스위치는 1바이트 루팅 헤더가 제로로 설정될 때에는 유니캐스트 모드(unicast mode)로 동작하고, MSB가 1로 고정될 때에는 멀티캐스트 모드로 동작하도록 설계된다.
유니캐스트 모드에서, 헤더는 다음의 포맷으로 정의된다
bit0 !bit1 bit2 bit3 !bit4 bit5 bit6 bit7
0 ! module number(모듈번호) ! port number(포트번호) !
모듈 번호는 셀을 루트하는 정확한 모듈을 정의한다. 포트 번호는 셀이 루트되어야 할 포트의 식별을 정의한다.
반대로, MSB가 1로 고정될 때 - 1바이트 멀티캐스트 모드의 특성임 - 1바이트 헤더의 7개 나머지 비트는 후술되는 바와 같이 셀이 복제되어야 할 출력 포트를 판단하기 위해 사용되는 멀티캐스트 레이블(label)로서 사용된다.
1바이트 헤더에 부가하여, 본 발명의 스위칭 모듈은 또한 2바이트 헤더로도 동작하도록 설계된다. 이 경우에, 2바이트 헤더의 16 비트는 셀이 복제될 출력 포트를 정의하기 위해 사용된다. 또한, 헤더의 16 비트의 각 비트는 하나의 출력 포트에 관련되는데, 예를 들면 MSB는 출력 포트 번호 0에 대응하고, 1로 설정되는 헤더의 모든 비트는 그 헤더를 갖는 셀이 고려하는 비트와 관련된 출력 포트로 복제되어야 하는 것을 나타낸다. 예를 들면, 1로 설정되는 MSB는 셀이 출력 포트 0에 복제되도록 하지만, 1로 설정된 비트 번호 1은 출력 포트 번호 1에 동일한 복제를 초래하는 등과 같이 이루어진다.
상이한 모드를 초래하는, 이러한 헤더의 상이한 포맷의 사용 가능성에 의해, 스위칭 모듈에는 큰 융통성이 허용되며, 단지 그 스위칭 모듈로 로드되는 마이크로코드(microcode)의 적응(adaptation) 만을 필요로 한다.
이제, 유니캐스트 1바이트 헤더 모드(소위 유니캐스트 모드(Unicast mode)), 멀티캐스트 1바이트 헤더 모드(소위 통합 멀티캐스트 모드(integrated multicast mode)) 및 2바이트 헤더 모드( 소위 비트 맵(bit-map) 모드)에 대해 상세히 설명한다.
1.1. 유니캐스트 모드(유니캐스트 1바이트 헤더 모드)의 설명
유니캐스트 모드는 전체 세트의 16개 홀딩 레지스터를 형성하는 두 세트의 홀딩 레지스터(60,61)의 사용에 기초한다. 16개 셀(N 바이트로 각각 형성됨)의 로딩과 동시에, 각 셀의 1바이트 헤더는 전술한 16개 홀딩 레지스터(60,61) 중에서 대응하는 하나의 레지스터에 로드된다. 이들 16개 홀딩 레지스터(즉, 레지스터(60(0)-60(7),61(0)-61(7)))는 셀의 전체 로딩 프로세스가 완전히 종료하지 않은 한 헤더를 유지한다. 본 발명의 구성에 있어서, 포트(2n)를 거쳐 들어오는 셀의 헤더는 홀딩 레지스터(60(n))에 로딩되고, 포트(2n+1)를 거쳐 들어오는 셀의 헤더는 홀딩 레지스터(61(n))에 로드된다. 이들 16개 홀딩 레지스터에 로드되는 16개의 값은 스위칭 모듈의 제어부에 의해 사용되게 된다. 도2 및 도3에서 명확한 바와 같이, 각 홀딩 레지스터(60(i))는 EVEN 버스(150)를 거쳐 제어 모듈(200) 뿐만 아니라 멀티캐스트 테이블 저장부(6)에도 접속된다. 마찬가지로, 각 홀딩 레지스터(61(i))는 ODD 버스(151)를 거쳐 제어 모듈(200) 및 멀티캐스트 테이블 저장부(6)에 접속된다. 전술한 ASA 레지스터(20,21)의 로딩 프로세스와 마찬가지로, 16개 홀딩 레지스터(60,61)의 억세스는 버스(150,151)에 대한 듀얼 홀수-짝수(ODD-EVEN) 홀딩 레지스터의 억세스를 각각 제공하는 8개의 연속하는 기본 클럭 주기에 의해 실현된다. 구체적으로, 예를 들면 클럭 주기 번호0 동안에, 홀딩 레지스터(60(0),(61(0))는 각각 그 내용을 제어 모듈(200)로 전송하기 위해 EVEN 버스(150) 및 ODD 버스(151)에 대해 억세스 한다. 다음 클럭 주기에서, 버스(150,151)는 홀딩 레지스터(60(1),61(1))의 내용을 전송하기 위해 사용되는 등 이와 같이 진행된다. 제어 모듈(200)에 대한 홀딩 레지스터(60(i),61(i))의 억세스는 특히 스위칭 모듈로 입력되는 각 셀의 헤더의 MSB의 감시(monitoring)를 허용한다는 것을 주목하자. 이것은 특히 제어 모듈로 하여금 각 입력 포트에 관련되는 정확한 동작 모드 - 유니캐스트 또는 통합 멀티 캐스트 - 를 인식할 수 있도록 한다. 예를 들면, 홀딩 레지스터(60(i))에 로드되는 헤더가 - 멀티캐스트 동작 모드를 나타내는 - 제로로 설정된 MSB를 가지면, 제어 모듈(200)은 고려하는 입력 포트(2n)가 유니캐스트 처리를 필요로 하는 것으로 판단한다. 이와 반대로, 홀딩 레지스터(61(i))의 MSB가 통합 멀티캐스트의 특성이 있는 1을 가지면, 제어 모듈(200)은 관련된 셀이 후술되는 통합 멀티캐스트 모드에 따라 처리되도록 한다. 따라서, 본 발명의 스위칭 모듈은 고려하는 입력 포트에 의해 전송되는 루팅 헤더의 내용에 따라 16개 입력 포트가 매우 독립적으로, 즉, 상이한 모드 - 유니캐스트 또는 통합 멀티캐스트 - 에서 동작할 수 있도록 허용한다는 것은 명백하다.
유니캐스트 루팅 프로세스는 다음과 같이 동작한다.
출력 큐(Queue)는 각각 8개씩의 큐 세트(50,51)로 형성된다. 이들 세트(50,51)의 각각의 개별 OAQ 큐는 EVEN 버스(104) 및 ODD 버스(105)에 접속된 적어도 64 바이트의 듀얼 입력 포트이다. 또한, 각각의 OAQ 큐는 제어 모듈(200)로부터 ODD 라이트-인에이블(write-enable) 및 EVEN 라이트-인에이블 제어 신호를 수신한다. 16개 세트의 ODD 및 EVEN 라이트-인에이블 제어 리드(leads)는 32-리드 버스(210)를 형성한다. 위에서 이미 사용된 표기법과 마찬가지로, 각 OAQ 큐는 스위칭 모듈의 16개 출력 포트 중 대응하는 하나의 포트에 관련된다. 따라서, 출력 포트 번호 2n은 OAQ 큐(50(n))과 관련되고, 출력 포트 2n+1은 OAQ 큐(51(n))에 대응한다.
소정의 순간에 있어서(사이클 n 으로서 언급됨), 두 개의 입력 포트(2n,2n+1)는 다음과 같이 처리된다. 제어 회로(200)는 버스(150)를 거쳐 홀딩 레지스터(60(n))의 내용(즉, 입력 포트 2n 상의 셀의 헤더)을 억세스하고 버스(151)를 거쳐 레지스터(61(n))의 내용(즉, 입력 포트 2n+1 에서 수신되는 셀의 헤더)을 억세스 한다. 제어 모듈은 ASA 레지스터(20(n),(21(n))의 내용이 16개 OAQ 큐(50,51)중 하나 또는 2개의 큐에 로드되도록 적절한 ODD 및 EVEN 라이트-인에이블 제어 신호를 발생하기 위해 이들 헤더를 이용한다. 특히, 제어 모듈은, 1바이트 헤더의 비트4-7에 의해 정의되는 포트 번호 필드에 따라, ASA 레지스터(20(n))의 내용이 16개 OAQ 큐(50,51)중에서 홀딩 레지스터(60(n))로 전송되어 로드되는 헤더의 내용으로부터 핀단될 수 있는 출력 포트에 대응하는 하나의 큐로 로드되도록 라이트-인에이블 제어 신호를 발생한다는 것을 주목하자. 이와 동시에, ASA 레지스터(21(n))의 내용은 16개 출력 큐(50,51)중에서, 홀딩 레지스터(61(n))에 로드되는 헤더의 내용, 특히 헤더의 비트4-7로부터 판단될 수 있는 출력 포트에 대응하는 하나의 출력 큐로 로드된다. 보다 정확하게 말하면, 명료성을 위해 입력 포트(2n)를 고려할 때, 홀딩 레지스터(60(n))의 내용이 정수 2p와 동일하면, ASA 레지스터(20(n))의 내용은 출력 큐(50(p))로 로드된다. 다음에 설명하는 바와 같이, 이것에 의해, 입력 포트 2n에서 수신되는 셀이 그 셀에 의해 전달되는 루팅 헤더의 내용에 따라 출력 포트 번호 2p로 루트된다. 홀딩 레지스터(60(n))의 내용이 정수 2p+1과 동일하면, 제어 모듈(200)은 ASA 레지스터(20(n))의 내용이 OAQ(51(p))에 로드되어 입력 포트 2n에서 수신된 셀이 출력 포트 2p+1로 루트되도록, 버스(210)상에서 적절한 라이트 인에이블 제어 신호를 발생한다.
마찬가지로, 입력 포트 2n+1을 고려할 때, 홀딩 레지스터(61(n))의 내용이 정수 2q와 동일하면, ASA 레지스터(21(n))의 내용은 출력 큐(50(q))에 로드된다(따라서, 셀은 출력 포트 2q로 루트됨). 그러나, 홀딩 레지스터(61(n))의 내용이 2q+1과 동일하면, 제어 모듈(200)은 ASA 레지스터(21(n))의 내용이 출력 큐(51(q))에 로드되어 셀이 출력 포트 2q+1로 루트되도록 적절한 라이트 인에이블 제어 신호를 발생한다.
입력 포트 2n 및 2n+1에서 입력되어 저장부(1)에 로드되는 두 개의 셀은 그 2개의 셀에 의해 전달되는 헤더에 따라 동일한 출력 포트, 예를 들면 출력 포트 2p(각각 2p+1)로 향하게 되는 일이 발생할 수 있다. 이 경우에, 홀딩 레지스터(60(n),61(n))는 동일한 헤더를 갖고, 그 결과 ASA 레지스터(20(n),21(n))의 내용이 유일한 출력 큐(50(p))(각각 51(p))에 로드되는 것은 명백하다. 본 발명에 있어서, 이러한 형태의 논쟁은 16개 출력 큐(50,51)의 각각을 구현하기 위해 듀얼 포트 저장부를 사용하므로써 효과적으로 해소된다.
1.2. 1-바이트 헤더 멀티캐스트 모드(통합 멀티캐스트)의 설명
통합 멀티캐스트 모드는 모두 16개 레지스터를 형성하는 두 세트의 홀딩 레지스터(60,61)의 사용에 기초한다.
상기와 같이, 입력 포트 2n에서 입력되는 셀의 헤더는 홀딩 레지스터(60(n))에 로드되고, 입력 포트 2n+1에서 입력되는 셀의 헤더는 홀딩 레지스터(61(n))에 로드된다. 16개 홀딩 레지스터(60,61)의 로딩은 상기와 같이, 두 개의 레지스터를 동시에 로드할 수 있으므로, 8개 클럭 주기를 필요로 한다. 전술한 바와 같이, 각 셀에 포함되는 1 바이트 헤더의 MSB를 감시하는 것에 의해, 제어 모듈(200)은 하나의 입력 포트에서 입력되는 모든 셀에 대하여 실행되어야 하는 적절한 처리 - 유니캐스트 또는 통합 멀티캐스트 - 를 인식한다.
통합 멀티캐스트 루팅 프로세스는 다음과 같이 동작한다.
상기와 같이, OAQ 큐(4)의 16개 듀얼 포트 출력 큐(50,51)는 출력 포트 2n이 큐(50(n))와 관련되고, 출력 포트 2n+1이 큐(50(n))과 관련되도록 배치된다. 주어진 예에 있어서, 사이클 n동안, 두 개의 입력 포트 2n 및 2n+1은 다음과 같이 처리된다. 전술한 바와 같은 멀티캐스트 레벨에 대응하는 홀딩 레지스터(60(n),61(n))에 각각 로드되는 두 개의 헤더의 7개 최하위 비트(Low Significant Bit: LSB)는 버스 (150,151)을 거쳐 멀티캐스트 테이블 저장부(6)를 어드레스하기 위해 동시에 사용된다. 이것은 멀티캐스트 테이블 저장부(6)를 구현하는 데 사용되는 듀얼 포트 메모리의 동시 판독 연산의 실행을 수반한다. 멀티캐스트 테이블 저장부(6)는 이들 멀티플렉서(64)의 제1 16-비트 입력 버스 및 멀티플렉서(65)의 제1 16-비트 입력 버스에 각각 접속된 2개의 16-비트 데이터 버스(152,153)에 접속된다. 멀티플레서(64)(각각 (65))는 두 개의 8-비트 홀딩 레지스터(60(n),62(n))(각각, 홀딩 레지스터(61(n)),63(n)))의 내용을 수신하도록 각각 접속된 제2 입력 버스를 갖는다. 멀티플렉서(64,65)의 제2 입력 버스의 사용은 비트 맵 멀티캐스트 모드에 관한 전술한 설명을 고려하면 보다 분명해질 것이다. 멀티플렉서(64,65)는 제어 모듈(200)의 전용부(소위, 멀티캐스트 또는 MC)에 각각 접속된 16-비트 출력 버스를 갖는다.
저장부(6)의 두번의 동시 판독 연산의 결과는 각각 멀티플렉서(64,65)를 거쳐 제어 모듈(200)에 제공된다. 본 발명의 스위칭 모듈에서 사용되는 모든 멀티플레서의 제어는 범용 마이크로프로세서(도시하지 않음)와 같은 일반적인 제어 장치에 의해 실현된다는 것을 주목하자. 따라서, 통합 멀티캐스트 처리 요구시 제어 모듈(200)에 의해 식별되는 입력 포트에 대하여, 제어 모듈은 각각 멀티플렉서(64,65)를 통해 버스(154,155)를 거쳐 통과되는 멀티캐스트 테이블의 내용을 사용하여, ASA 레지스터(20(n),21(n)))의 내용이 멀티캐스트 동작을 위해 수반되는 출력 포트에 대응하는 적절한 큐(50,51)에 로드되도록 버스(210) 상에 적절한 라이트 인에이블 제어 신호를 발생한다.
이것은 다음과 같이 실현된다. 입력 포트 2n의 헤더에 의해 전달되어 홀딩 레지스터(60(n))에 로드된 멀티캐스트 레벨에 따라, 멀티캐스트 테이블 저장부(6)에서 실행된 판독 연산의 결과는 버스(152)상에 제공되는 16-비트 워드를 제공한다. 이 워드를 형성하는 16 비트의 각각은 스위칭 모듈의 하나의 출력 포트에 관련된다. 예를 들면, MSB는 OCD 드라이버(11(0))에 관련된 출력 포트 번호 0에 대응하게 되고, LSB는 출력 포트 15에 대응한다. 따라서, 버스(152)상에 제공된 워드의 16개 비트는 고려하는 1-바이트 헤더를 갖는 셀이 복제되어야 할 상이한 출력 포트를 정의한다. 셀이 EVEN 출력 포트(즉, 포트 0, 2, 4, ..., 14)에서 복제되면, 워드는 X'AAAA'(16진법)이 되게 된다. 셀이 모든 출력 포트에서 복제되면(소위, 브로드캐스트 멀티캐스트(broadcast multicast)에 대응함), 워드는 X'FFFF'가 된다.
보다 일반적으로는, 제어 모듈(200)은 버스(210) 상에 라이트 인에이블 제어 신호를 발생하여, ASA 레지스터(20(n))의 내용이 블록(4)의 16개 출력 큐(50,51) 중에서, 버스(152) 상에 전달된 워드에 의해 결정된 하나의 출력 포트에 대응하는 적절한 큐 군으로 로드된다. 마찬가지로, 레지스터(21(n)))의 내용은 OAQ 블록(4)의 16개 출력 큐 중에서 버스(155)에 의해 전달된 값에 의해 결정되는 출력 포트에 대응하는 군으로 로드된다. 보다 정확하게는, 사이클 n동안, 버스(154)의 비트 번호 2p를 고려할 때, 이 비트가 1로 설정되는 것으로 나타나면, ASA 레지스터(20(n))의 내용(입력 포트 2n에 대응함)이 출력 큐(50(p))로 로드되게 된다. 이것은 출력 포트 2p로의 셀의 복제를 초래하게 된다. 동일한 사이클 n동안 버스(154)의 비트 번호 2p+1을 고려할 때, 이 비트가 1'로 설정되면, 이것은 OAQ 출력 큐(5(p))에 전송될 ASA 레지스터(20(n))의 내용(여전히 입력 포트 2n에 대응함)을 로드하기 위해 필요로 될 때 제어 모듈(200)에 의해 해석되게 된다. 이것은 출력 포트 2p+1에서 입력 포트 2n에 입력되는 셀의 복제를 초래한다. 이 메카니즘은 출력 포트의 어떤 조합에 있어서도 하나의 셀(고려하는 예에서 입력 포트 2n에 입력됨)의 복제를 허용한다.
버스(155)의 비트 번호 2q 및 사이클 n을 다시 고려할 때, 상기 비트 번호가 1로 설정되면, 이것에 의해, 제어 모듈(200)은 ASA 레지스터(21(n))의 내용(입력 포트 2n+1에 대응함)이 출력 큐(50(q))로 전달되게 한다. 전술한 바와 같이, 이것은 입력 포트 2n+1에 도달하는 셀이 출력 포트 2q로 복제되는 결과를 초래한다. 마찬가지로, 버스(155)의 비트 번호 2q+1가 사이클 n동안 1로 설정되면, ASA 레지스터(21(n))의 내용은 출력 큐(51(q))에 로드되고, 이것에 의해 출력 포트 2q+1에서 셀의 복제가 발생하게 된다.
전술한 메카니즘으로부터, 입력 포트 2n 및 2n+1에 도달하는 두 개의 셀이 브로드캐스트 동작에 각각 대응하는 헤더를 포함하고, 이 경우에 모든 출력 포트에 대하여 셀의 복제가 요구되는 상황이 만족스럽게 발생할 수 있다는 것은 명백하다. 이러한 매우 특정한 경우에 있어서, 16개 포트 처리에 필요한 8개 클럭 주기의 사이클 n동안, 두 개의 버스(154,155)는 동일한 정보, 즉 X'FFFF'(16진법)를 전달하게 된다. 제어 모듈(200)은 버스(210) 상에 32개의 라이트 인에이블 제어 신호를 동시에 발생하므로, 사이클 n 동안 처리된 두 개의 ASA 레지스터(20(n),21(n))의 내용이 16개 OAQ 출력 큐(50,51)에 로드되게 된다. 이들 큐가 듀얼 포트 저장부에 의해 구현되므로, 모든 논쟁이 효과적으로 해소되는 것은 명백하다.
다음에, ASA 레지스터(20(n),21(n))에 의해 전달된 두 개의 어드레스와 관련된 출력 프로세스를 준비하기 위한 특정 연산이 수반된다. 이 메카니즘은 북 킵 메모리 회로(Book Keep Memory circuit)(7)의 사용을 수반한다. 또한, 사이클 n동안, 버스(104) 상에 제공된 ASA 레지스터(20(n))의 내용에 의해 정의된 어드레스는, 북 킵 메모리(7)를 어드레스하고 ASA(20(n))내의 고려하는 어드레스가 출력 큐(4)에 저장되는 실제 횟수, 즉 셀 저장부(1)에 로드되는 고려하는 셀에 대하여 실행되어야 할 복제 횟수를 저장하기 위한 어드레스로서 사용된다. 구체적으로, 유니캐스트 동작에 대하여, ASA 레지스터(20(n))의 내용에 의해 정의된 어드레스에 있어서 북 킵 메모리(7)에 로드된 값은 1과 동일하다. 포트 2n에 도달하는 셀에 관한 멀티캐스트 동작의 경우, 로드되는 값은 버스(154) 상에 존재하는 1의 수, 즉 셀이 출력 포트에 대하여 복제되는 횟수를 나타낸다.
이와 동시에, 사이클 n동안, ASA 레지스터(21(n))에 로드되는 어드레스는 동일한 방식으로 처리된다. 따라서, 입력 포트 2n+1에 관한 유니캐스트 동작에 대하여, ASA 레지스터(21(n))의 내용에 의해 정의된 어드레스에서 북 킵 메모리(7)에 로드되는 값은 1과 같지만, 멀티캐스트 동작에 있어서, 그 값은 버스(155)상에 존재하는 실제적인 1의 수와 동일하게 된다.
1.3. 2-바이트 헤더 멀티캐스트 모드(비트 맵 모드)의 설명
비트 맵 모드에 있어서, 멀티플레서(64,65)는 1-바이트 헤더 모드와 달리 그들의 교대하는 위치에서 스위치된다(도면에는 도시하지 않은 어떤 내부 제어 장치에 의함). 따라서, 데이터가 버스(156)에서 버스(154)로 직접 전송될 수 있고, 마찬가지로 버스(157) 상에 나타나는 데이터도 버스(155)로 직접 전송될 수 있다는 것은 명확하다. 비트 맵 모드는 홀딩 레지스터(60,61,62,63)의 사용에 기초하므로, 각각 8-비트의 전체 32개 레지스터 세트를 형성한다. 입력 포트 2n을 거쳐 입력되는 셀의 2 바이트 헤더는 홀딩 레지스터(60(n),62(n))에 로드되고, 입력 포트 2n+1에 도달하는 셀의 헤더는 홀딩 레지스터(61(n))0 및 (63(n))에 로드된다. 32개 홀딩 레지스터의 전체 로딩은 한 세트의 8 연속 사이클을 필요로한다. 비트 맵 모드에 있어서, 멀티캐스트 테이블(6) 및 버스(150,151,152,153)는 사용되지 않는다. 또한, 제어 모듈(200)을 이 비트 맵 모드로 설정하기 위해서는 초기화 주기가 수반되며, 따라서, 제어 모듈은 버스(210) 상에 적절한 라이트-인에이블 제어 신호를 발생하기 위해, 버스(154,155) 상에 제공되는 16-비트 워드 - 입력 포트 2n 및 2n+1에 도달하는 셀의 2-바이트 헤더와 각각 일치함 - 를 이용할 수 있게 된다. 그 결과, ASA 레지스터(20(n),21(n))의 내용은 1.2절에서 통합 멀티캐스트 모드에 대하여 설명한 바와 같이, 멀티캐스트 동작을 위해 수반되는 정확한 출력 포트에 대응하는 적절한 큐(50,51)에 로드된다.
유니캐스트 동작이 입력 포트 2n에 도달하는 하나의 셀에 실행되는 특정 경우에, 2-바이트 헤더가 하나의 유일한 1을 갖고, 여기서 정확히 16개 비트중 그 위치는 셀이 루트될 목표 출력 포트를 정확히 정의하게 된다는 것을 주목하자.
적어도, 북 킵 메모리는, ASA 레지스터(20(n),21(n))에 로드되었던 특정 어드레스를 사용하게 될 출력 프로세스를 준비할 목적으로, 전술한 바와 유사하게 처리된다.
이제, 출력 프로세스에 대해 보다 상세하게 설명한다.
2. 스위칭 모듈에 의해 실행되는 출력 프로세스의 설명
출력 프로세스는 입력 프로세스와 무관하며, 두 개의 상이한 단계를 수반한다.
먼저, 일련의 8개의 연속되는 사이클을 필요로 하는 예비적인 제1 단계가 먼저 개시된다. 사이클 n동안, 출력 포트 2n 및 2n+1에 대한 연산이 동시에 준비된다. 제1 단계는 16개 ARA 레지스터(32,33)의 로딩을 허용한다. 이것은 다음과 같이 실현된다. 사이클 n 동안, 출력 어드레스 큐(50(n)에 로드되는 어드레스가 추출되어 바운더리 래치(30), 샤도우 레지스터(34) 및 멀티플렉서(26)(도면에는 도시하지 않은 내부 프로세서에 의해 제어됨)을 거쳐 NRA 레지스터(28(n))로 전송된다. 이와 동시에, 출력 어드레스 큐(51(n))에 로드되는 어드레스가 추출되어 바운더리 래치(31), 샤도우 레지스터(35) 및 멀티플렉서(27)를 거쳐 NRA 레지스터(29(n))으로 전송된다. 따라서, 16개 NRA 레지스터(28,29)의 로딩이 한 세트의 8개의 기본 클럭 사이클을 필요로 한다는 것은 명백하다. 이들 8개 사이클이 완료되면, 16개 레지스터(28,29) 중에서 각 NRA 레지스터의 내용은 16개 NRA 레지스터(32,33) 중의 대응하는 하나의 레지스터로 동시에 로드된다. 이러한 로딩은 제1 초기화 단계를 완료한다.
다음에, 제2 단계가 개시될 수 있다. ARA 레지스터(32,33)에서 이용가능한 16개 어드레스는 그들의 대응하는 출력 루터(3(0)-3(15))에 제공된다. 다음에, 각 루터는 대응하는 ARA 레지스터(32 또는 33)의 내용에 의해 정의된 어드레스에 의해 지정되는 셀 저장부(1) 내의 128개 위치 중의 하나에 대한 그의 대응하는 출력 포트의 접속을 실행한다. 구체적으로, p=0 내지 7을 갖는 각 루터 (3(2p))는 ARA 레지스터(32(p))의 내용에 의해 정의된 셀 저장부(2) 내의 적절한 위치에 대한 출력 포트 2p의 접속을 실행한다. 그와 동시에, p=0 내지 7을 갖는 각 루터(3(2p+1))는 ARA 레지스터(33(p))의 내용에 의해 지정된 저장부(1) 내의 적절한 위치에 대한 출력 포트 2p+1의 접속을 실행한다. 따라서, 16개 검색 동작이 동시에 실행될 수 있고 16개 셀이 16개 OCD 드라이버(11)을 향하여 루트될 수 있으므로, 매우 효과적인 스위칭 메카니즘이 허용된다는 것은 명백하다. 셀의 완전한 추출은 다수의 N 클럭 주기를 필요로 한다는 것을 알아야 한다.
출력 프로세스의 종료시, ARA 레지스터에 포함되는 16개 어드레스는 한 세트의 16개 이전의(old) 검색 어드레스(ORA) 레지스터(24(0)-24(7),25(0)-25(7))의 대응하는 위치로 전달된다. 이것은 ARA 레지스터(32(n),33(n)))의 내용을 ORA 레지스터(24(n),25(n))에 한번 전송하는 것에 의해 실현된다.
본 발명의 바람직한 실시예에서, NRA 레지스터(28(n),29(n))의 내용을 대응하는 ARA 레지스터(32(n),33(n))로 이중 전송하는 것은 ARA 레지스터(32(n),33(n))의 내용을 ORA 레지스터(24(n),25(n))로 이중 전송하는 것과 동시에 실현된다는 것을 주목하자.
다음에, 프로세스는 그곳에 로드되었던 셀의 추출이 가능하므로 다시 이용가능하게 되는 셀 저장부(1)의 어드레스를 재순환하는 것으로 진행한다. 이 처리는 멀티캐스트 모드시 다수의 부킹(booking) 가능성을 고려하기 위해 북 킵 메모리(7)을 사용한다. 또한, 멀티캐스트 셀의 경우, 이 셀에 대하여 첫 번째로 검색 동작을 실행한 본 발명에 의해 셀의 최종 복제가 실제로 완료될 때까지 셀 저장부(1)의 고려하는 위치를 이용할 수 있다. 또한, 본 발명에 사용되는 프로세스는 예를 들어 셀이 3개의 상이한 출력 포트에서 3번 복제되는 경우에, 각 출력 포트에 대하여 동시에 3번의 검색 동작이 잘 발생하지 않는 다는 사실을 고려한 것이다. 동일한 셀의 실제 검색 동작에 있어서의 차이는 고려되는 출력 포트에 대응하는 OAQ 큐의 실제 로딩, 즉 출력 포트의 실제 트래픽에 명백하게 의존한다. 재순환 처리는 다음과 같이 실행되는 한 세트의 8개 기본 사이클을 필요로한다. 사이클 n 동안, ORA 레지스터(24(n))의 내용은 버스(158)을 거쳐 프리 어드레스 큐(Free Address Queue: FAQ) 회로(5) 및 북 킵 메모리 회로(7)에 제공된다. 버스(158)에 의해 전달된 값에 의해 정의된 고려하는 어드레스에 대하여, 북 킵 메모리(7)는 잔여 예약의 수, 즉 고려된 위치에 저장된 셀이 검색되어야 할 횟수를 제공한다. 이 수는 하나씩 감소되고, 그 결과에 대하여 테스트가 실행된다. 그 결과가 제로와 같지 않으면, 결과는 동일한 어드레스에서 북 킵 메모리 회로(7)의 저장부에 다시 로드된다. 그러나, 감소의 결과가 제로와 같게 되면(검색 동작이 헤더에 의해 요구되었던 최종 복제에 대응하는 것을 나타냄), 이 결과는 동일한 어드레스에서 북 킵 메모리 회로(7)의 내부 저장부에 다시 로드되고, 또한 회로(7)는 버스(158)에 존재하는 어드레스를 FAQ 회로(5)의 내부 저장부에 로드하기 위해 리드(160)상에 라이트 인에이블 제어 신호를 발생한다. 따라서, 상기 결과는 또 다른 셀 기억 동작의 이용가능한 위치로서 등록된다.
버스(159)를 거쳐 북 킵 메모리 회로(7) 및 FAQ 회로(5)의 입력 버스에 제공되는 ORA 레지스터(25(n))에 저장되는 어드레스의 값에 대하여 동일한 처리가 동시에 실행된다. 상기와 마찬가지로, 버스(159)에 의해 전달된 어드레스에서 회로(7)에 로드되는 값에 대하여 실행되는 1씩의 감소 결과가 제로와 동일하게 되면, 회로(7)는 FAQ 회로(5)의 내부 저장부에 고려한 어드레스를 로드하기 위해 FAQ 회로(5)에 대하여 리드(161)상에 라이트-인에이블 제어 신호를 발생한다. 이것이 완료될 때, 고려한 어드레스는 입력 프로세스에 관하여 1절에서 설명한 바와 같이, 또 다른 셀 기억 동작을 위해 다시 이용가능하게 된다.
본 발명이 2개의 회로(5,7)의 내부 저장부를 구현하는 듀얼 포트 저장부 사용의 큰 장점을 취한다는 것을 주목하자. 또한, 이것은 셀 저장부(1) 내의 상이한 어드레스를 처리하기 위해 필요한 사이클의 수를 2배로 감소시키는 가능성을 허용한다. 본 발명에서는 16-입력 및 16-출력 포트 스위칭 모듈을 제공하기 위해 8개의 기본 사이클 만을 필요로 한다.
도4는 스위칭 장치를 제공하기 위해 본 발명의 스위칭 모듈(401)을 하나만 사용하는 것을 도시하고 있다. 도면에 도시한 바와 같이, 특정 셀(410)은 스위칭 모듈(401)에 의해 수신되고 전술한 루팅 프로세스에 따라 루트된다. 화살표(420)를 참조하여 도시된 셀은 모듈(401)의 적절한 출력 포트에서 이용가능하게 된다. 이 도면에 있어서, 이하 스위치 패브릭(switch fabric)이라 하는 스위칭 장치는 하나의 단일 모듈(401)을 기반으로 하고, 기본적으로 주어진 기술에 의해 고정되는 속도로 동작한다.
그러나, 단일 저장부 아키텍쳐에서는 고속이 요구된다. 본 발명의 스위칭 모듈은 동일한 기술에 의해서도 보다 높은 속도가 얻어질 수 있도록 한다. 이것은 유익하게도 후술되는 소위 속도 확장 모드에서 다수의 상이한 스위칭 모듈을 집합시키는 매우 단순하고 효과적인 가능성을 허용하는 동일한 스위칭 모듈(401)의 특정한 배치에 의해 형편좋게 허용된다. 도5는 4개의 상이한 스위칭 모듈(401-404)이 고속으로 동작하는 더 강력한 스위칭 구조(450)가 구성되도록 집합되어 있는 구조를 도시하고 있다. 이러한 4개의 스위칭 모듈(401-404)의 구성에 있어서, 집합 스위칭 구조(450)의 입력 포트 p에 제공되는 각 셀(410)은 4개의 상이한 부분(411), (412),(413,414)으로 논리적으로 분할된다. 이 셀의 제1 부분(411)은 모듈(401)의 입력 포트 p로 제공되고, 제2 부분(412)는 모듈(402)의 포트 p로 입력된다. 마찬가지로, 제3 및 제4 부분(413,414)는 스위칭 모듈(403,404)의 입력 포트 p에 각각 제공된다. 다음에 명백하게 되는 바와 같이, 스위칭 모듈(401-404)의 내부 설계는 그러한 구성이 효과적으로 이루어지도록 하며, 따라서 셀(410)의 4개의 상이한 부분이 동시에 처리되게 된다. 한편, 셀은 검색되어 각 스위칭 모듈(401-404)의 적절한 출력 포트를 향하여 루트된다. 구체적으로, 셀(420)의 제1 부분(421)은 스위칭 모듈(401)의 적절한 출력 포트 q에서 루트되고, 셀(420)의 제2 부분(422)는 스이칭 모듈(402)의 적절한 출력 포트 q로 전송된다. 마찬가지로, 셀의 제3 및 제4 부분(423,424)은 스위칭 모듈(403,404)의 적절한 포트 q에서 각각 제공된다.
셀(410)의 4개의 상이한 부분의 동시 처리에 의해 각 개별 스위칭 모듈에 의해 실제로 처리되는 셀의 크기가 4배로 감소되는 것은 명백하다. 따라서, 4개의 스위칭 모듈은 스위칭 구조의 유효 속도를 4배로 하기위해 완전히 결합된다. 이러한 구성은 주어진 기술에 대하여 스위칭 처리의 속도를 실질적으로 증가시키는 것이 가능하게 되므로, 실질적인 효과를 수반한다. 다음에 더욱 상세히 설명하는 바와 같이, 속도의 실질적인 증가는 도2 및 도3의 다수의 스위칭 모듈을 단순히 집합시키는 것만으로 가능하게 될 수 있다. 셀 사이클이 주어진 스위칭 모듈(401-404)에 대하여 4배 감소되므로, 더욱 강력한 스위칭 구조(450)를 실현하기 위해 다수의 스위칭 모듈을 집합시킴에 있어서 단 하나의 제한은 주어진 기술에 의해 부여된 가능성을 가지고, 전술한 입력 및 출력 프로세스 모두에 필요로되는 8개 기본 클럭 사이클을 실행하는 필요성에 있다는 것은 명백하다. 본 발명에 있어서, 향상된 스위칭 구조(450)는 4개의 스위칭 모듈(401-404)을 기반으로 하며, 이러한 특정 구성에 대한 설명이 상세하게 이루어지게 된다. 그러나, 당업자는 스위칭 모듈의 어떤 다른 조합에 대해서도 다음의 설명을 용이하게 적용한다는 것을 주목하자.
바람직한 실시예의 구성에 있어서, 스위칭 모듈(401)이 셀(410)의 제1 부분, 즉 전술한 바와 같은 루팅 프로세스를 제어하는 데 사용되는 루팅 헤더를 포함하는 부분(401)으로 제공되는 것은 명백하다. 따라서, 스위칭 모듈(401)은 집합 구조(450)내에서 마스터 모듈로서 사용되고, 즉 모듈(401)의 제어부는 4개의 스위칭 모듈(401-404)의 전체 세트에 대하여 동작한다. 나머지 3개 스위칭 모듈(402-404)은 루팅 프로세스에 대하여 슬레이브로서 동작하므로, 출력 셀(420)을 구성하는 4개의 상이한 부분이 동일한 출력 포트(들) q에 동시에 나타나게 된다. 마스터 스위칭 모듈(401)의 셀 저장부(1) 내부의 저장 프로세스가 주어진 때에 이용가능한 저장 위치에 따라 랜덤하게 동작하므로, 4개의 스위칭 모듈을 통해 루트되는 셀의 보전이 보장되도록 동일한 저장 프로세스가 슬레이브 스위칭 모듈(402-404) 내에서 실행되는 것을 보장하는 것이 매우 필요하다. 본 발명에 있어서, 이것은 유익하게도 마스터 스위칭 모듈(401)의 제어하에 있는 특정 속도 확장 제어 버스(500)의 사용에 의해 보장된다.
본 발명의 바람직한 실시예에서, 속도 확장 버스(500)는 4개의 상이한 부분으로 구성된 32 비트 버스이다. 속도 확장 버스(500)는 제1 세트의 8개 리드(510(0)-510(7))를 포함하고, 이들 리드는 도2에 대하여 설명된 수신기(44(0)-44(7))의 입력 및 드라이버 (40(0)-40(7))의 출력에 각각 접속된다. 또한, 속도 확장 버스(500)는 제2 세트의 8개 리드(509(0)-509(7))을 포함하고, 이들 리드는 상술한 8개 드라이버(41(0)-41(7))의 출력 리드의 각각에 접속되고 또한 8개 수신기(45(0)-45(7))의 입력 리드에 각각 접속된다. 또한, 속도 확장 버스(500)는 버스(520)(즉, 8개 수신기(46)의 입력 리드 및 드라이버(42)의 출력)에 접속된 제3 세트의 8개 리드 및 버스(521)(즉, 8개 수신기(47)의 입력 리드 및 8개 드라이버(43)의 출력)에 접속된 제4 세트의 8개 리드를 포함한다.
따라서, 속도 확장 버스(500)가 스위칭 구조를 형성하는 4개의 스위칭 모듈 사이의 완전한 접속을 실현하는 것은 명백하다. 속도 확장 모드는 다음과 같이 동작한다. 마스터 모듈(401)에서, 상이한 OCD 드라이버(40,41,42,43)는 인에이블된다. 따라서, 이들은 버스(500)을 거쳐 다른 슬레이브 스위칭 모듈(402-404)로 전달될 루팅 데이터를 제공한다. 또한, 멀티플렉서(112)(각각 멀티플렉서(113))은 레지스터(110)(각각 레지스터(111))의 내용이 파이프라인 레지스터(114)(각각 파이프라인 레지스터(115))로 전달되도록 (도시하지 않은 내부 프로세서에 의해) 제어된다. 멀티플렉서(26)(각각 멀티플렉서(27))는 이 경우에 사용되는 파이프라인 레지스터가 없으므로, 레지스터(34)(각각 (35))의 내용이 NRA 레지스터(28)(각각 NRA 레지스터(29))로 전달되도록 구성된다.
슬레이브 스위칭 모듈(402-404)에서, 상이한 OCD 드라이버(40), (41), (42,43)은 디스에이블된다. 멀티플렉서(112)(각각 멀티플렉서(113))는 바운더리 래치(180)(각각 바운더리 래치(181))의 출력이 EVEN 버스(각각 ODD 버스)를 거쳐 파이프라인 레지스터(114)(각각 파이프라인 레지스터(115))에 접속되도록 제어된다. 한편, 멀티플렉서(26)(각각 멀티플렉서(27))는 바운더리 래치(80)(각각 바운더리 래치(81))의 출력이 한 세트의 NRA 레지스터(28)(각각 NRA 레지스터(29))에 접속되도록 구성된다. 따라서, 각 셀 사이클에서, 모든 스위칭 모듈(401-404)의 ASA 레지스터(20,21), ARA 레지스터(32,33)은 동일한 데이터를 포함하므로, 집합 스위칭 구조의 4개의 구성 요소에서 동일한 루팅 프로세스가 보장된다. 이것은 4개의 상이한 스위칭 모듈 내에서실행되는 완전히 동일한 루팅 프로세스를 실현하고, 셀(410)의 4개의 상이한 부분이 모듈(401-404)의 동일한 적절한 출력 포트에 동시에 나타나는 것을 허용한다. 완전한 동기는 바운더리 및 샤도우 래치(110), (111), (80,81)의 사용에 의해 두드러지게 실현된다.
따라서, 본 발명의 스위칭 모듈이 고속으로 동작하는 강력한 스위칭 구조를 실현하기 위해 다른 모듈과 용이하게 집합될 수 있다는 것은 명백하다.
비록 상기 설명은 4개의 개별 스위칭 모듈(401-404)의 사용에 근거하였지만, 다른 구성도 실현될 수 있다는 것을 알아야 한다. 또한, 유사한 모듈을 집합시키는 가능성이 4개에 한정되는 것은 물론 아니다. 속도 확장 모드에서 동작하는 2개의 모듈을 사용할 때, 스위치 속도를 2배로 증가시킬 수 있다.
2개, 4개 또는 그 이상의 스이칭 모듈(401)에 근거하는 스위칭 구조의 성능은 시장에 존재하는 여러 가지 요구를 만족하도록 설계된 특정 회로의 사용에 의해 본 발명에서 더욱 향상된다. 또한, 본 발명은 셀을 4개의 부분(본 발명의 바람직한 실시예)으로 분할하기 위해 필요한 셀 분할에 부가하여, 매우 다양한 고객이 필요로 하는 상이한 인터페이스를 제공하는 한 세트의 어댑터를 이용한다. 따라서, 본 발명은 최상의 스위칭 요구에 부합할 수 있는 매우 융통성 있는 스위칭 시스템을 실현한다.
도6은 매우 다양한 라인 부착을 실현하는 고속 스위칭 구조(450)에 근거하는 스위칭 아키텍쳐의 일예를 도시하고 있다. 스위치 코어는 하나의 빌딩에 위치할 수 있고, 한 세트의 N개의 상이한 입력 및 출력 원격 통신 포트(본 발명의 실시예에서는 16개 포트)를 제공한다. 1.6 Gigabit/s 원격 통신 링크를 제공하는 하나의 포트는 어댑터(4500)를 고속 통신 링크(화살표(4400)으로 나타냄)에 제공하기 위해 사용될 수 있다. 스위치 코어(1130)는 1.6 Gigabit/s 포트 i를 포함하고, 이 포트는 통신 링크(1400)를 스위치 코어 억세스 레이어(SCAL) 엘리먼트(1000)에 제공한다. SCAL 엘리먼트(1000)는 s/4 통신 링크를 각각 제공하는 4개의 소위 프로토콜 엔진 어댑터(1600,1700,1800,1900)에 대한 부착을 제공한다. 스위치 코어(1130)의 제3 포트는 다른 SCAL 엘리먼트(2000)로의 링크(2400)에 전용으로 되어 있으며, 이것에는 2개의 s/2 프로토콜 엔진 어댑터에 대한 부착이 제공된다. 스위치 코어(1130)에 의해 제공된 1.6 Gigabit/s 통신 링크(3400)를 공유하는 2개의 PE 어댑터(3500,3600)에 부착된 추가의 SCAL 엘리먼트(3000)에 의해 유사한 부착이 제공될 수 있다. 적어도, 도면에 도시한 예에 있어서, SCAL 엘리먼트(5000)는 4개의 s/4 프로토콜 엔진(5500-5800)에 대한 부착을 허용하고, 이것은 링크(4400)를 거쳐 스위치 패브릭(450)의 포트 j의 1.6 Gigabit/s 데이터흐름에 대해 억세스 한다. 본 발명의 바람직한 실시예에서, SCAL 엘리먼트(1000,2000,3000)는 전자 카드의 형태를 취하는 상이한 프로토콜 엔진에 부착되는 전자 패키지의 형태를 취한다.
다음에 더욱 상세히 설명하는 바와 같이, 본 발명은 일반적인 아키텍쳐의 2개의 상이한 실시예를 제공하는데, 이들 중의 일예는 도6에 도시되어 있다. 또한, 고객의 요구에 따라, 스위치 패브릭은 두 가지 상이한 형태, 즉 제1의 소위 콤팩트 스위치 패브릭 아키텍쳐(compact switch fabric architecture) 및 제2의 소위 분산 스위치 패브릭 아키텍쳐(distrubuted switch fabric architecture)를 취할 수 있다.
콤팩트 스위치 패브릭 아키텍쳐로서 언급되는 본 발명의 제1 실시예는 높은 융통성 및 강력한 스위치가 폐쇄된 밀집 영역에서 필요할 때 사용된다. 이 경우, 스위치 코어(1130) 및 상이한 SCAL 엘리먼트(1000,2000,3000,5000)는 동축 케이블의 사용에 기초하여 직접 1.6 Gigabit/s 통신 링크를 이용하여 동일한 제한된 물리적 영역에 위치한다.
그러나, 대부분의 경우, 라인 부착은 산업적 빌딩군의 상이한 물리적 영역에 위치한다. 이 경우, 본 발명은 광섬유 통신 링크, 적어도 데이터용의 4개의 500 Mbits/s 광학 링크에 각각 근거하는 1.6 Gigabit/s 통신 링크(1400,2400,3400)에 의해 스위치 코어(1130)에서 100 미터까지 충분히 떨어진 위치에 SCAL 엘리먼트가 위치하게 한다. 이것에 의해, 소위 스위치 패브릭 이라고 불리는 스위칭 아키텍쳐를 형성하는 상이한 엘리먼트의 부착을 위해 단순한 접속이 실행된다.
각 SCAL 엘리먼트(1000-5000)의 수신 및 송신부의 구조는 SCAL 엘리먼트(1000)의 수신부(스위치 코어(1130)의 포트 i를 거쳐 통신함)와 스위치 코어(1130)의 포트 j에 부착된 SCAL 엘리먼트(5000)의 송신부 사이의 논리적인 데이터 흐름을 보여주는 도7에 대하여 도시되어 있다. 이 도면은 각 스위치 코어 억세스 레이어 엘리먼트(1000-5000)가 스위치 코어(1130)에서 적어도 100 미터 까지의 거리에 위치하는 스위치 패브릭의 전술한 분산 실시예를 특히 도시한다. 이하, 하나의 SCAL 엘리먼트의 수신 및 송신부를 설명하고 이 SCAL 엘리먼트에 4개의 프로토콜 엔진으로의 부착이 제공된다고 가정한다. 그러나, 본 발명의 SCAL 구조가 이러한 4개의 프로토콜 엔진의 특정 배치에 한정되지 않는 다는 것을 알아야 한다. 프로토콜 엔진(1600-1900)은 예를 들면 CCITT 권고안에 따라 각각 2개의 OC3/STM1 링크 또는 여전히 8개 DS3 통신 링크에 대한 부착을 제공할 수 있다. 본 발명에 있어서, SCAL 엘리먼트에 접속된 각 프로토콜 엔진은 하나의 소위 PINT 엘리먼트와 관련된다. SCAL 엘리먼트(1000)의 수신부에 대하여, PE(1600)(각각 PE(1700), PE(1800), PE(1900))는 버스(541)(각각, 542, 543 및 544)를 거쳐 PINT 엘리먼트(511)(각각, 512, 513, 514)와 관련되고, SCAL 엘리먼트(5000)(포트 j에 접속됨)의 수신측에 대하여, PE(5500)(각각 5600, 5700, 5800)는 버스(641)(각각, 642, 643, 644)를 거쳐 PINT(611)(각각 612, 613, 614)에서 데이터 셀을 수신한다. SCAL 엘리먼트(예를 들면, SCAL(2000))에 부착된 프로토콜 엔진의 수가 2개로 제한되면, SCAL 엘리먼트는 한 세트의 2개의 PINT 회로만을 포함한다. 또한, SCAL 엘리먼트에는 시리얼라이저/디시리얼라이저 회로가 설치되어, 동축 케이블(콤팩트 스위치 코어) 또는 광섬유(분산 스위치 코어)의 수가 줄어들도록 데이터 흐름의 변환을 허용한다.
따라서, 도7은 2개의 결정된 포트, 예를 들면 수신측 포트 i와 송신측 포트 j 사이의 데이터의 논리적 흐름을 도시하고 있다. 따라서, 스위칭 구조(450)의 좌측에 도시된 각 엘리먼트는 포트 번호 i에 대한 그의 대응성을 나타내는 표시 i를 가져야 한다. 마찬가지로, 블록(450) 우측에 있는 모든 엘리먼트는 수신지(destination) 출력 포트 j를 나타내는 표시 j를 가져야 한다. 그러나, 명료성을 위하여, 이 표시는 다음의 설명이 간략하게 되도록 도6에서는 삭제되어 있다. 그러나, 개선된 스위칭 시스템의 멀티캐스트 설명을 고려할 때, 이러한 표시의 사용은 도 9에 도입된다.
일반적인 용어 프로토콜 엔진이 시장에 존재하는 상이한 라인들의 라인 적응 레이어를 나타내는 것을 알아야 한다. 기본적으로, 이 용어는 당업자에게 잘 알려진 하드웨어 및 소프트웨어 기능 구성요소를 나타내고, 소비자에 의해 사용되는 상이한 라인에 대한 라인 인터페이스 적응을 제공한다. 이러한 라인은 ATM 프로토콜 T3, DS3, AT1, E1 및 FCS, ESCON 등과 같은 인터페이스를 전달하는 라인을 포함할 수 있다. 이러한 시스템은 예를 들면 IBM에 의해 NWay 2220 모델 500로 출시된 트렁크 포트 어댑터(Trunk Port Adapter)가 될 수 있다.
이하, 특히 개선된 ATM 프로토콜 엔진을 도14 내지 도17을 참조하여 상세히 설명한다. 그러나, 인터페이스되는 특정 형태의 라인이 무엇이든지, 프로토콜 엔진이 고객에 의해 사용되는 라인을 인터페이스하고 SCAL 엘리먼트(1000)에 스위치 코어(450)를 위해 의도된 셀이 제공되도록 사용되고, 상기 셀이 루팅 헤더 및 페이로드(payload)를 포함하는 것을 명심해야 한다. 셀의 루팅 헤더는 전술한 루팅 메카니즘에 따라 사용된다.
도8은 스위치 코어 억세스 레이어 엘리먼트(1000)의 PINT 회로(511-514)의 수신부중 하나의 구조를 도시하고 있다. 8-비트 입력 버스(541)상에 입력하는 데이터흐름은 첫 번째 바이트가 FIFO(701)에 입력되고, 두 번째 바이트가 FIFO(702)에 입력되고, 세 번째 바이트가 FIFO(703)에 입력되고, 네 번째 바이트가 FIFO(704)에 입력되고, 다섯번째 바이트가 FIFO(701)에 다시 입력되는 것과 같이 되도록 4개의 FIFO 저장부(701-704)를 통하여 분산된다. 따라서, 8비트 데이터 흐름은 구조(450)의 4개의 스위칭 모듈에 의해 요구되는 4바이트 출력 버스(540)로 변환된다. 소위 콤팩트 스위치 패브릭 실시예에 있어서, 각 바이트는 시리얼라이저/디시리얼라이저 및 공통 동축 케이블에 의해 전송되고, 분산 스위치 코어에서는 각 바이트가 시리얼라이저/디시리얼라이저 및 장거리 광섬유에 의해 형성된 경로를 사용한다. 따라서, 버스(540)에는 각 개별 스위칭 모듈의 4세트의 수신기로 향하는 4 바이트 흐름이 제공된다.
스위치 패브릭의 콤팩트 및 분산 실시예에 있어서, 버스(540)의 첫 번째 바이트(8 MSB)는 제1 모듈(401)의 적절한 입력 포트에서 수신기(10)의 8비트 입력 버스로 전송되도록 의도되었다는 것을 알아야 한다. 마찬가지로, 버스(540)의 제2 바이트(비트 번호 9-15)는 제2 스위치 모듈(402)의 적절한 입력 포트에서 수신기(10)의 입력으로 송신되며, 기타 등등이다. 셀이 N 사이클에서 엘리먼트(511)의 입력 포트(541)에서 수신되면, N/4 사이클에서 4개의 스위칭 모듈(401-404)의 입력에 동일한 셀이 거의 제공된다. 본 발명의 바람직한 실시예에서, 입력 버스(541)에 도달하는 셀은 58 바이트를 갖는다. 이 58 바이트 세트는 60 바이트 셀이 형성되도록 셀 내의 적절한 위치에 포함되는 2개의 추가 바이트에 의해 완성되고, 상기 60 바이트 셀은 4개의 FIFO를 통하여 분산될 때, 스위칭 모듈(401-404)에 의해 처리될수 있는 연속하는 15 세트의 4 바이트 워드를 제공한다. 58개의 원래의 바이트에 더해지는 두 개의 추가 바이트는 전술한 비트 맵 모드 또는 2바이트 헤더 멀티캐스트 모드와 관련하여 사용된다. 이것을 실현하기 위해, 마스터로서 동작하는 스위칭 모듈이 모듈(401)이라고 가정하면, 제어 회로(710)는 FIFO(701)내의 제1 및 제2 위치(즉, 버스(541) 상에서 수신되는 셀의 제1 및 제5 위치)에서 2 비트 맵 바이트의 병합을 제공한다. 따라서, 스위칭 모듈(401)은 그의 입력 포트에서 입력하는 데이터 흐름의 제1 위치에서 루팅 헤더를 형성하는 2개의 비트-맵 바이트를 수신한다. 2개의 버스(541,540)의 속도는 전자가 후자보다 더 낮을 수 있으므로 대부분 독립적이라는 것을 알아야 한다. 스위치가 20 나노초(1.6 gigbit/s의 총 데이터 흐름에 대응함)의 속도로 동작한다고 가정하면, 버스(541)에 대하여 허용되는 더 높은 속도는 60/58x20 나노초가 된다. PINT 회로에 부가하여, SCAL 엘리먼트(1000)는 제어 로직을 더 포함하고, 이 제어 로직은 PINT 회로(511-514)의 4개의 인에이블 출력 입력 리드(도시하지 않음)의 제어를 제공하여, 집합 스위칭 구조(450)가 회로(511)에 의해 수신된 셀(바람직한 실시예에서 15개 사이클을 요구함)을 처리하고, 다음에 엘리먼트(512)에 의해 수신된 셀을 처리하고, 다음에 엘리먼트(513)에 의해 수신된 셀을 처리하며, 기타 등등으로 연속 처리할 수 있게 된다. 이 방식으로 각 PINT 회로(511-514)는 버스(540)의 1/4 대역폭을 억세스 한다.
도9는 PINT 회로(611-614)의 4개의 송신부의 구조를 도시하고 있다. 각 PINT 엘리먼트(611-614)는 모두 32 비트 버스(640)를 수용한다. 후자는 4개의 광 링크(상이한 SCAL이 스위치 코어(1130)에 대하여 상이한 물리적 위치에 위치하는 분산 스위치 패브릭) 또는 SCAL(콤팩트 실시예)로부터 스위치 코어를 분리하는 4개의 동축 케이블에서 수신되는 시리얼라이즈된 바이트의 4개의 병렬 흐름을 수신한다. 각 PINT 엘리먼트(611)는 한 세트의 4개의 FIFO(801-804)를 갖추고 있으며, 이것은 수신부에서 사용되는 FIFO 보다 훨씬 더 높은 저장 용량을 제공낸다. 본 발명의 바람직한 실시예에서, FIFO 저장부(801-804)와 FIFO 저장부(701-704) 사이의 비율은 많은 셀이 동일한 출력 포트를 향할 때 높은 버퍼링이 보장되도록 적어도 250으로 고정된다. 예를 들어, 송신 블록(611)을 고려할 때, 제어 모듈(810)은 버스(640)에서 입력되는 데이터를 수신하고, 수신 셀로부터 비트 맵 2 바이트를 추출한다. 이들 2 바이트에 의해 현재 전달되는 값에서, 제어 모듈(810)은 셀이 한 세트의 4개의 FIFO 레지스터(801-804)에 로드되어야 하는 가 또는 폐기되어야 하는 가를 판단한다. 첫 번째 경우에 있어서, 제어 모듈(810)은 32 비트 버스(640)에 의해 전달되는 4 바이트의 각각이 그의 대응하는 FIFO 레지스터(801-804)에 로드되게 하는 로드 제어 신호를 발생한다. 예를 들면, 버스(640)의 비트 0 내지 7에 나타나는 제1 바이트는 FIFO(801)에 로드되고, 제2 바이트(비트 8 내지 15)는 FIFO(802)로 전달되며, 기타 등등이다. 두 번째 경우에 있어서, 셀이 고려하는 송신 블록에 의해 폐기되는 것으로 나타나면, 제어 모듈(810)은 로드 제어 신호를 발생하지 않으므로, 셀이 FIFO 레지스터로 로딩되는 것이 방지된다.
4개의 엘리먼트(611-614) 중의 임의의 하나의 엘리먼트는 공통 버스(640) 상에 나타나는 동일한 셀을 수신한다. 그러나, 고려하는 셀이 내부 FIFO 큐에 로드되는 것을 제어하거나 제어하지 않기 위해 각각의 엘리먼트(611-614)에 의해 2바이트 비트 맵 헤더가 사용되므로, 이 헤더도 버스(640)로 입력되는 셀의 다수의 출력 방향으로의 복제를 여전히 허용하는 멀티캐스트 동작을 실현한다는 것은 명백하다. 본 발명의 바람직한 실시예에서, 헤더의 제1 비트는 셀이 출력 버스(641)로 복제되어야 하는 가의 여부를 결정하기 위해 제어 모듈(810)에 의해 사용되고, 2-바이트 헤더의 제2 비트는 엘리먼트(612)의 제어 모듈에 의해 사용되며, 기타 등등이다. 각 블록(611-614)에 있어서, 4개의 FIFO는 제어 모듈(820)에 의해 억세스되고, 상기 제어 모듈은 8비트 버스(641)상에 셀을 형성하는 상이한 바이트의 시퀀스를 재생하기 위해 사용된다. 또한, 제어 모듈(820)은 셀이 SCAL 회로(1000)의 수신부에 의해 수신된 것과 동일하게 되도록 비트 맵 1-바이트 헤더의 제거를 제공한다. 본 발명의 바람직한 실시예에서, 이것은 비트 맵 헤더가 셀을 형성하는 60 바이트 내에서 고정된 위치를 항상 점유하므로 간단하게 실현된다.
프로토콜 엔진(5500-5800)에는 블록(611-614)에 의해 발생된 적절한 셀 트레인이 제공된다.
강력한 스위칭 구조(450)와 모든 포트에 부착되는 상이한 SCAL 엘리먼트 사이의 효과적인 협동으로 인해 본 발명은 광범위한 융통성을 가진 2개의 독립적인 실시예를 제공한다는 것을 주목하자. 하나의 실시예에서, SCAL 엘리먼트는 모두 스위치 코어(1130)에 근접하여 위치되어, 콤팩트 스위칭 아키텍쳐를 제공하는 것을 보여주었다. 두 번째 실시예에서, 다수의 라인 어댑터 부착이 광범위한 산업 영역에서 요구는 경우에, 본 발명은 적어도 100 미터 길이를 달성할 수 있는 링크를 실현하기 위해 광섬유와 관련하여 시리얼라이저/디시리얼라이저를 사용한다.
도10은 콤팩트 및 분산 스위치 패브릭 실시예에 대하여 광범위한 멀티캐스트 기능을 제공하는 도7의 스위칭 패브릭으로 될 수 있는 실질적인 선택적 개선을 도시하고 있다. 명료성을 위해, 시리얼라이저, 광 채널 및 디시리얼라이저로 형성된 추가 경로(스위치 코어(1130)의 각 입력 포트에서 32 폭 버스를 다시 형성하기 위해 필요로 됨)를 사용하지 않고 SCAL 엘리먼트가 버스(540)를 이용하여 스위칭 구조(450)와 직접 통신할 수 있는 콤팩트 스위치 패브릭 실시예에 대하여 설명한다. 이 도면에 있어서, 표시 i 및 j는 하나의 입력 포트 i에 도달하여 출력 포트 j로 루트되는 셀의 논리적 경로를 명확하게 도시하기 위해 도입된 것이다. 또한, 스위칭 구조에 부착되는 16개 SCAL은 유사한 구조에 기초하며, 즉 4개의 동일한 PINT 엘리먼트(4개의 대응하는 포로토콜 엔진과 관련됨)를 포함하는 것으로 가정한다. 도면에는 스위칭 구조(450)를 SCAL 엘리먼트(1000)의 PINT 수신 회로(511-i,512-i,512-i,512-i)에 접속하는 버스 (540-i)가 루팅 제어 장치(1001-i)의 삽입에 의해 두 개의 부분으로 분리된 것으로 도시되어 있다. 마찬가지로, 집합 스위칭 구조(450)의 출력을 SCAL(500-j)의 PINT 송신 회로(611-j,612-j,613-j,614-j)에 접속하는 버스(640-j)는 다른 제어 루팅 장치(1010-j)의 삽입에 의해 분리된다. 스위칭 구조(450)의 32개의 입력 및 출력 버스에 삽입되는 32개 제어 장치 세트 중의 각 제어 장치는 셀의 루팅 프로세스를 실행하기 위해 사용되는 대응하는 루팅 제어 테이블(1002-i,1020-j)에 관련된다. 예를 들면, 제어 장치(1001-i)는 그의 대응하는 루팅 제어 테이블(1002-i)과 관련되고, 제어 장치(1010-j)는 그의 대응하는 루팅 제어 테이블(1020-j)과 관련된다.
이러한 향상된 콤팩트 스위치 패브릭은 다음과 같이 동작한다. 예를 들어, 포트 i에서 프로토콜 엔진(1600-i)이 페이로드를 수반하는 스위치 루팅 헤더(Switch Routing Header: SRH)를 포함하는 셀을 발생하는 것으로 가정한다. 이 SHR은 이 셀을 수신하는 수신지 프로토콜 엔진의 특성이다. 셀이 하나의 유일한 수신지 PE로 전달되면, 스위칭은 유니캐스트로 되어야 한다. 그 반대의 경우에는 다수의 수신지 프로토콜 엔진이 있고 스위칭은 멀티캐스트로 된다. 전술한 설명에 따르면, 셀은 PINT 수신 회로(511-i)로 입력되고, 이것은 후에 루팅 제어 장치(1001-i)에 의해 결정되는 비트 맵의 위치에 영향을 주는 2-바이트 세트를 셀 내에 삽입한다. 다음에, 셀은 전술한 바와 같이 버스(540-i)상에 전파되고, 광 라인 상의 통신후 루팅 제어 장치(1001-i)로 제공된다. 이 엘리먼트는 진행중에 다음의 동작을 실행한다. 먼저, 후자는 어드레스로서 SRH를 사용하여, 관련된 루팅 제어 테이블(1002-i)을 억세스한다. 이 테이블에서 추출되는 값은 PINT 수신 회로(511-i)에 전에 삽입되었던 2개의 추가 위치에서 진행중에 셀 내에 삽입된다. 따라서, 마스터 스위칭 모듈(401)은 그의 입력 포트에서 입력되는 셀 내의 그의 첫 번째 위치에 이들 두 바이트를 수용하고, 2 바이트 헤더 멀티캐스트 모드(비트 맵 모드)에 따라 그들을 사용할 수 있다.
셀이 루팅 제어 장치(1001-i)에 의해 처리된 후, 후자는 집합 스위칭 모듈(450)의 입력 버스에 제공되므로, 마스터 모듈(401)은 4개의 엘리먼트에 대한 모든 루팅 메카니즘을 제어하기 위해 그의 첫 번째 두 바이트에 나타나는 비트 맵을 사용할 수 있다. 그러나, 동일한 메카니즘을 하나의 단일 스위칭 모듈에도 사용할 수 있다는 것을 알아야 한다. 스위칭 구조(450)는 적절한 출력 포트에서 수신된 셀을 복제시킨다. 고려하는 셀이 포트 j, k 및 l에서 복제된다고 가정하면, 이것은 버스(640-j,640-k,640-l) 상에 나타난다.
버스(640-j) 상에 제공되는 셀은 루팅 제어 장치(1010-j)로 입력되고, 이 장치는 상기와 같이, SCAL 회로(1000)의 PINT 엘리먼트(100-j)의 송신부에 의해 사용되는 2 바이트 비트 맵을 포함하는 데이터를 추출하기 위해 관련 루팅 제어 테이블(1020-j)을 억세스한다. 이러한 추출은 수신되는 셀에 포함된 SRH 데이터를 사용한다. 상기와 같이, 루팅 제어 테이블(1020-j)의 억세스가 제어 목적을 위해 유익하게 사용될 수 있는 추가 비트를 제공하는데 사용될 수 있다는 것을 알아야 한다. 다음에, 새로 추출된 비트 맵 헤더는 PINT 송신 회로(611-j,612-j,613-j,614-j) 중 어느 것(들)이 셀을 전달해야 하는 가를 결정하기 위해 SCAL 회로(500-j)에 의해 사용된다. 예를 들어, 비트 맵이 하나의 1 만을 포함하면, 셀은 하나의 엘리먼트(예를 들면, 블록(611-j))로 전달되고, 비트 맵이 두 개의 1을 포함하면, 셀은 2개의 상이한 엘리먼트에 의해 전달된다. 따라서, 제2 복제 단계가 도입되어 이전 복제가 스위칭 구조(450) 내에서 발생하는 것은 명백하다. 다음에, 각 프로토콜 엔진(5500-j,5600-j,5700-j,5800-j)은 루팅 제어 장치(1010-j)에 의해 결정되었던 비트 맵에 따라 셀에 의해 억세스될 수 있으며, 비트 맵은 셀에 의해 전달되었던 SRH에 따라 유일하게 결정된 것이다.
각 프로토콜 엔진에 의해 결정되는 SRH는 스위칭 구조(450) 및 SCAL(100-j)이 PINT 회로에 의해 그들의 페이로드의 일부로서 고려되고, 스위칭 메카니즘을 제어하기 위해 사용되는 루팅 헤더가 이 SRH에서 국부적으로 발생된다는 것은 명백하다.
동일한 메카니즘이 포트 k 및 l에도 적용되므로, 셀은 PINT 엘리먼트(100-k,100-l)의 하나 이상의 엘리먼트(611-k,612-k,613-k) 또는 (614-k,611-l,612-l,613-l) 또는 (614-l)에 의해 복제되게 된다. 따라서, 2개의 상이한 멀티플렉싱 스테이지를 통한 멀티프렉싱의 가능성이 스위칭 시스템 내에서 허용된다.
본 발명의 바람직한 실시예에서, 루팅 제어 장치는 스위치 코어(450) 내에 위치한다. 이것은 다수의 제어 루팅 테이블의 상이한 내용을 갱신하는 것이 매우 단순하게 되므로 스위치의 가능성을 실질적으로 향상시킨다. 또한, 이것은 하나의 셀 사이클 동안의 연산중에 연속적으로 발생할 수 있으므로, 속도가 매우 빨라야 하는 멀티캐스트 테이블(6)을 구현하기 위해 사용되는 것 보다 더 느리고 더 저렴하며 더 큰 메모리를 사용할 가능성이 있다는 장점을 제공한다. 또한, 제어 루팅 테이블을 구현하기 위해 더 큰 저장부의 제공 가능성(이 저장부가 스위칭 모듈의 칩 외부에 위치될 수도 있다는 사실에서 기인함)으로 인해 루팅 SRH 레이블의 수를 증가시킨다.
결국 이러한 특징은 SCAL 엘리먼트(1000-5000)가 산업 영역의 상이한 물리적 위치에 위치하는 제2의 소위 분산 스위치 패브릭을 구현하기 위해 매우 단순하게 되는 것으로 나타난다. 도11은 큰 융통성 및 고속을 제공하고 또한 전술한 제어 루팅 메카니즘을 사용함으로써 광범위한 멀티플렉싱 성능을 허용하는 분산 스위치 패브릭의 구성을 도시하고 있다. 점선은 모듈 또는 패키지의 물리적 경계를 나타낸다. 이 도면은 각각 전자 칩인 적어도 4개의 스위칭 기본 모듈을 포함하는 카드의 형태로 일반적으로 구현되는 스위치 구조(450)를 포함하는 하나의 물리적 장치의 형태를 취하는 스위치 코어(1130)를 도시하고 있다. 동일한 포트 i에 관련된 2개의 루팅 제어 장치(1001-i,1010-i)는 도9를 참조하여 설명된 2개의 루팅 제어 테이블(1002-i,1020-i)을 포함하는 대응하는 저장부(1120-i)와 관련된 동일한 물리적 칩(1110-i)으로 구현된다. 따라서, 스위치 구조(450) 및 16개 관련 모듈(1110,1120)은 유익하게도 동일한 물리적 패키지에 위치하고, 상이한 SCAL 엘리먼트는 라인 부착 필요성이 나타나는 산업상 구내영역의 상이한 물리적 영역에 분산되는 것은 명백하다.
전술한 바와 같이, 분산 스위치 패브릭은 N개의 물리적으로 분산된 SCAL 패키지 세트(N은 본 발명의 바람직한 실시예에서 16과 같음)를 포함하는데, 도면에는 SCAL 패키지(1000)만이 도시되어 있다. 모든 SCAL 패키지는 하나의 부착된 프로토콜 엔진에 각각 관련된 PINT 수신 및 송신 회로를 포함한다. 후자는 SCAL 전자 회로 보드에 플러그되는 추가 카드의 형태로 구현된다. 각 SCAL과 스위치 코어(1130) 사이의 1.6 Gigabit/s 통신 링크가 광섬유 세트(데이타 경로에 대하여 적어도 4개)를 이용하여 실현되므로, 2개의 엘리먼트는 광섬유에 의해 장거리로 분리될 수 있다. 이것은 산업상 구내영역에서 상이한 원격 통신 링크의 위치가 무엇이든지 간에 강력한 스위칭 접속을 실현하는 것이 가능하게 되므로 매우 유익하다. 예를 들어 ATM 링크가 제1 빌딩에 위치하고 OC3가 제2 빌딩에 위치하면, 본 발명은 제1 빌딩에서 ATM PE를 수신하는 제1 SCAL 패키지, 제2 빌딩의 제2 SCAL 엘리먼트를 단순히 사용하는 것에 의해 스위칭 접속을 실현한다. 이 예는 네트워크에 배열된 다수의 스위치(각 스위치는 하나의 구내영역에 위치함) 또는 고가의 원격 통신 케이블에 기초하는, 따라서 네트워크 접속을 위해 그들의 포트를 사용하는 종래 해결책의 문제점을 특별히 회피하는 본 발명의 해결책의 큰 융통성을 보여준다. 사용되는 포트가 상이한 스위치의 네트워크 접속을 실현하므로, 이들 네트워크 접속 포트가 통신 링크에 영향을 받을 수 없으므로 고객의 견지에서 이들이 상실되는 것이 명백하게 된다. 본 발명의 아키텍쳐는 모든 이러한 문제점을 제거한다.
또한, 1.6 Ggabit/s 통신 링크(1400,2400,3400,4400)를 구현하는 가능성을 제공하기 위해, 1996년 2월 9일에 발간된 IEEE iSSCC96, Session 7, ATM/SOMET/PAPER FA 7.7에서 A. Wilmer 등의 문헌 Single-chip 4x500 Mbaud CMOS Transceiver 의 교훈을 이용할 수 있는데, 이것은 단순한 참조로써 포함되어 있다. 이 문헌은 소위 8B/10B의 사용 가능성을 보여준다. 플래그로 표시된 아이들 주기 동안, 데이터가 아닌 콤마 문자(non-data comma character)로 시작하는 충분한 양의 데이터 패킷(fill packets of data)이 송신된다. 콤마는 시리얼 링크 상의 바이트 및 셀 경계를 표시한다. 따라서, 바이트 및 패킷(packet) 레벨의 동기가 마련될 수 있고, 1.6 Gigabit/s 통신 링크가 단일 세트의 4개의 광 케이블(동축 또는 광)에 의해 구현될 수 있다. 이러한 특징이 없으면, 1.6 Gigabit/s 통신 링크를 구현하기위해 적어도 5 또는 6개 광 라인이 필요하게 되므로 케이블 수의 감소는 중요하다.
스위치 코어 패키지(1130)가 제어를 목적으로 패키지 내의 모든 저장부 및 레지스터를 억세스할 수 있는 프로세서(1160)를 포함하는 것을 알아야 한다. 또한, X'0000'으로 설정된 특정 비트 맵 헤더의 존재를 감시하는 추가 회로가 포함되어 있으며, 이것은 셀이 ASA 및 NSA를 이용하는 정상적인 데이터 처리로부터 추출되어 도면에 제어 패킷 저장부로 도시된 저장부(1) 내의 하나의 특정한 고정 위치에 직접 로드되도록 한다. 이것은 프로세서가 셀을 제어하기 위해 억세스할 수 있도록 일반적인 추출 프로세스를 실현한다. 이와 반대로, 이 프로세스에는 메모리의 최종 위치에 로드된 셀이 출력 포트 중 임의이 하나의 포트로 향하여 전달될 가능성을 허용하는 삽입 프로세스를 갖고 있다.
특정 비트 맵 X'0000'는 제어 프로세서(스위치 코어 내에 있음)와 스위치 패브릭의 다른 구성 요소 사이의 제어를 목적으로 사용되기 때문에, 후자의 값은 더 이상 셀의 폐기에 이용가능하지 않다. 이러한 가능성은 추가의 제어 비트에 의해 재설정되며, 이 제어 비트는 소위 유효 비트가 셀을 폐기하기 위해 유익하게 사용된다. 유효 비트는 테이블(1002,1020)의 판독 연산으로부터 제공된다.
따라서, 스위치 코어 패키지 내에 위치하는 일반적 제어 프로세서가 16개 저장 모듈(1120)로 구현되는 16개 루팅 제어 테이블내의 값들을 억세스하고 로드할 수 있다는 것은 명백하다.
이하, 동일한 칩에 위치하는 루팅 제어 테이블(1002-i,1020-i)을 생성하고 갱신하기 위해 사용되는 일반적 절차를 설명한다. 이 절차는 도12에 도시되어 있다. 먼저, 이 절차는 초기화 단계(1220)로 시작하고, 이 단계에서, 제어 프로세서(1160)는 한 세트의 SRH 루팅 레이블에 영향을 준다. 이것은 프로세서가 자신의 토폴로지를 인식하고 따라서 상이한 포트에 접속된 상이한 프로토콜 엔진을 구별할 수 있는 소정의 SRH 값을 할당할 수 있으므로 가능하게 된다. 이것은 다음의 할당 절차를 사용하여 실현된다. 프로세서는 먼저 주어진 출력 포트에 관련된 프토콜 엔진의 수를 판단하고, 다음에 PE가 서로 구별되도록 다수의 SRH 값을 할당한다. 예를 들면, 포트 번호 0가 4개의 상이한 프로토콜 엔진(SCAL(1000)에 접속됨)에 관련된다고 가정하면, 프로세서는 각 프로토콜 엔진에 4개의 상이한 SRH 값을 예비하는 등의 방식으로 진행된다. 따라서, 스위치 아키텍쳐의 토폴로지에 따르면, 제어 프로세서(1160)는 상이한 프로토콜 엔진을 구별하기 위해 필요한 원하는 수의 SRH 값을 할당한다.
다음에, 루팅 테이블 생성이 실행될 수 있다. 먼저, 버스(540-i)에 도달하는 (그리고 동일한 SRH 루팅 레이블을 포함하는) 모든 셀이 동일한 출력 포트로 전달되어야 하므로, 각 테이블(1002-i)이 동일한 데이터를 포함하게 된다는 것을 주목하자. SRH는 수신지의 특성은 나타내지만 접속의 특성은 나타내지 않는다. 따라서, 프로세서는 다음의 포맷을 따르는 테이블을 구축한다
어드레스 ! 테이블(1002-0)에 로드된 데이터 테이블(1020-0)에 로드된 데이터
(좌측 정렬).
X'0000' X'8000' (450)의 포트 0 X'8000' SCAL(1000-0)의 PINT상
의 PE 번호 0
X'0001' X'8000' (450)의 포트 0 0100 0000 0000 0000을 나타내 는 X'4000' PINT상의 PE 번호 1
X'0002' X'8000' (450)의 포트 0 X'2000' PINT상의 PE 번호 2
X'0003' X'8000' (450)의 포트 0 X'1000' PINT상의 PE 번호 3
X'0004' X'8000' (450)의 포트 1 X'8000' PINT상의 PE 번호 0
1000-1
유사한 포맷이 테이블(1002-1,1020-1), (1002-2,1020-2) 등에 대하여 사용되지만, 그곳에 로드되는 값은 제로로 설정된다(유효 비트는 제외). 유효 비트의 사용이 명확하게 설명되는 더욱 상세한 테이블은 첨부된 별첨 A에서 볼수 있다. 또한, 특정 SRH 값은 프로세서(1160)와 임의의 PE 사이의 통신을 위해 예비된다.
초기화 절차는 상이한 제어 루팅 테이블이 로드될 때 종료한다. 다음에, 단계(1230)에서, 프로세서(1160)는 그것에 할당되었던 특정 SRH 값을 프로토콜 엔진에 통지하기 위해, 특정한 포맷에 특징이 있는 셀을 모든 프로토콜 엔진으로 전송하기 위해 일반적인 삽입 기능을 사용한다. 따라서, 각각의 PE는 그것을 다른 것과 구별하는 특정한 SRH 값을 인식한다.
다음에, 단계(1240)에서, 각 어댑터는 프로세서(1160)과 PE 사이의 통신을 위해 지정된 특정 SRH 값을 이용하여 이 할당을 승인한다.
다음에, 하나의 특정 프로토콜 엔진 내에서 동작하는 스위치 에이전트(switch agent)는 상이한 접속을 관리하기 위해 사용된다. 그러한 기능은 당업자에게 잘 알려져 있고, 특정 ATM의 경우, VP/VC 파라미터의 할당 관리를 수반한다. 이 스위치 에이전트는 각 프로토콜 엔진에 영향을 주었던 SRH 루팅값과 상이한 접속 사이의 대응성을 처리하기 위해 사용된다. 다수의 접속이 하나의 단일 PE에 관련될 수 있다는 것을 알아야 한다. 일반적으로, 스위치 에이전트는 도11에 도시한 바와 같은 상당한 수의 상이한 스위치를 포함할 수 있는 네트워크의 정확한 토폴로지를 인식한다. 특히, 스위치 에이전트는 하나의 국가에 위치한 스위치 X가 다른 지역에 위치한 스위치 Y와 통신하길 원할 때, 이 통신에 어느 출력 포트가 수반시되는지를 판단할 수 있다. 따라서, 사용되어야 할 출력 포트를 알고 있으므로, 필요한 유니캐스트 SRH(즉, 초기화 주기(1220) 동안 제공된 SRH)를 판단할 수 있다 따라서, 단계 (1250)에서, 스위치 에이전트는 스위치 내의 프로세서(1160)로 향하는 커맨드(COMMAND) 셀의 구축을 개시한다. 이 셀은 다음과 같이 배열되는 페이로드를 갖는다.
!커맨드 ! SRH_접속 ! 레이블1 레이블2 레이블3...!
첫 번째 필드(커맨드)는 스위치 에이전트에 의해 요구되는 특정 커맨드를 정의한다. 두 번째 필드, 즉 SRH_접속(connection) 필드는 접속에 영향을 받고, 하나 이상의 유니캐스트 루팅 레이블을 따르는 SRH를 정의하기 위해 사용되며, 이 유니캐스트 루팅 레이블은 두 번재 필드에서 정의된 SRH를 포함하는 셀에 대한 수신지 프로토콜 엔진을 정의한다. 기본적으로, 세 번째 필드는 수신지 PE의 유니캐스트 루팅 레이블(초기화 주기(1220)에 의해 이미 영향을 받았음)의 분산 리스트를 포함한다.
따라서, 단계(1260)에서, 프로세서(1160)는 상이한 제어 루팅 장치를 제어하기 위해 사용되는 데이터를, 두 번째 필드(SRH_접속)에 의해 정의된 어드레스에서 메모리(1002-i)에 저장하기 위해 이 수신되는 정보를 사용한다. 이것은 초기화 절차 동안 이루어졌던 유니캐스트 SRH 할당을 사용하는 후속 갱신 루팅 알고리즘에 의해 유익하게 실현된다.
갱신 알고리즘은 도13에 도시되어 있고, 다음과 같이 동작한다.
단계(1310)에서, 프로세서(1160)는 스위치 에이전트 커맨드 셀의 두 번째 필드에 의해 전달된 값에 의해 정의된 어드레스에서 테이블(1002-i)의 판독 연산을 실행한다. 다음에, 단계(1320)에서, 프로세서(1160)는 스위치 에이전트 커맨드 셀의 세 번째 필드에 의해 전달된 제1 루팅 레이블에 의해 결정되는 어드레스에서 테이블(1002-i)의 판독 연산을 실행한다. 이러한 판독 연산은 X 값을 복귀시킨다.
단계(1330)에서, 프로세서는 단계(1320)의 값 X와 단계(1310)에 의해 복귀된 값의 논리적 OR을 실행한다. 이 논리적 OR의 결과로서 유니캐스트 구성에서 누락된 포트가 추가된다. 다음에, OR 연산의 결과는 어드레스 SRH_접속에서 테이블(1002)에 로드된다.
단계(1340)에서, 프로세서(1160)는 스위치 에이전트 커맨드 셀의 두 번째 필드에 의해 전달된 값에 의해 정의된 어드레스에서 테이블(1020-i)의 판독 연산을 실행한다. 단계(1350)에서, 프로세서(1160)는 스위치 에이전트 커맨드 셀의 세 번째 필드에 의해 전달된 제1 루팅 레이블에 의해 결정되는 어드레스에서 테이블(1020-i)의 판독 연산을 실행한다. 이것은 값 Y를 복귀시킨다. 다음에, 단계(1360)에서, 논리적 OR는 단계(1350)에서 복귀된 값 Y와 단계(1340)에서 복귀된 값 사이에서 실행되고, OR 연산의 결과는 스위치 에이전트 커맨드 메시지에 의해 전달된 두 번째 SRH_접속 필드에 의해 정의되는 어드레스에서 테이블(1020-i)에 저장된다.
단계(1310-1360)는 16개 테이블(1002,1020) 모두가 갱신될 수 있도록 모든 포트에 대하여 실행된다(단계 1370). 스위치 에이전트 커맨드 메시지가 하나 이상의 루팅 레이블, 예를 들면 레이블2 및 레이블3을 포함하는 세 번째 필드를 가진 경우에, 나머지 레이블 모두에 대하여 이전의 절차가 다시 실행된다(단계 1380). 예를 들면, 세 번째 필드에 나타나는 제2 레이블에 대하여, 절차는 다음과 같이 된다.
프로세서(1160)는 스위치 에이전트 커맨드 셀의 두 번째 필드에 의해 전달된 값에 의해 정의된 어드레스에서 테이블(1002-i)의 판독 연산을 실행한다(단계 1310). 다음에, 프로세서(1160)는 스위치 에이전트 커맨드 셀의 세 번째 필드에 의해 전달된 제2 루팅 레이블에 의해 결정되는 어드레스에서 테이블(1002-i)의 판독 연산을 실행한다(단계 1320). 이러한 판독 연산은 X 값을 복귀시킨다. 다음에, 두 개의 값 사이의 논리적 OR가 실행될 수 있고 그 결과는 어드레스 SRH_접속에서 테이블(1002-i)에 로드될 수 있다.
다음에, 테이블(1020-i)의 갱신은 어드레스 SRH_접속에 의해 정의된 어드레스에서 추출된 값과 제2 루팅 레벨에 의해 정의된 어드레스에서 추출된 값의 논리적 OR을 수행하므로써 실행될 수 있다. 그 결과는 어드레스 SRH_접속에서 테이블(1020-i)에 로드될 수 있다.
다음에, 제2 루팅 레벨의 처리는 모든 다른 테이블(1002,1020)의 갱신으로 이어진다. 당업자는 테이블(1020-i)의 갱신 프로세스를 시작하기 전에 테이블(1002-i)을 직접 갱신하기 위해 단계(1320,1330)을 유익하게 루프(loop)할 수도 있다는 것을 주목하자. 그러나, 그러한 구현의 상세는 특정 콘텍스트에 의존하게 된다.
이 알고리즘은 스위치의 내부 토폴로지를 인식하지 않고, 일반적으로 스위칭 시스템의 프로토콜 엔진에 위치하는 스위치 에이전트로 하여금 스위치 코어(1130)의 상이한 루팅 테이블을 갱신할 수 있도록 할 때 특히 효과적으로 나타난다. 논리적 OR 연산은 스위치 에이전트가 알 필요가 없는 유니캐스트 구성에 출력 포트를 용이하게 추가하는 것을 허용한다.
위에서 설명한 갱신 프로세스는 스위치 에이전트에 의해 요구되는 모든 새로운 접속에 대하여 실행될 수 있다는 것을 알아야 한다. 새로운 접속이 요구될 때마다, 단순한 접속 케이블을 사용하여 정상적인 데이터를 경로를 거쳐 스위치 에이전트 커맨드 셀을 단순히 전송하는 것에 의해 루팅 테이블(1002,1020)의 갱신이 용이하게 실현될 수 있다.
이하, SRH 접속에서 하나의 레이블의 삭제 프로세스에 수반되는 기능 연산을 설명한다. 그 원리는 테이블(1020-i)에서, 고려하는 레이블에 의해 정의된 어드레스에서 유효 비트가 온으로 설정된 것으로 나타나는 특정한 값 i를 탐색하는 것이다. 이 위치에 있어서, 테이블(1020-i)의 내용, 즉 비트맵은 값 X로서 유지된다. 다음 단계에서는, 그곳에 로드된 비트맵(즉, Y)를 얻기 위해 SRH_접속의 특정 값에 의해 정의된 어드레스에서 판독 연산이 테이블(1020-i)에서 실행된다. 다음에는, Y와 X의 반전된 값 사이에서 AND 연산이 실행된다. 그 결과 Z는 SRH_접속 필드에 의해 정의되었던 어드레스에 다시 저장된다. 상기 결과 Z가 제로가 아니면(따라서 이 SRH_접속에 유니캐스트 레이블이 여전히 남는 것을 의미함), 비트맵은 상태 온으로 유지되어야 한다. 테이블(1002-i)는 영향을 받지 않는다.
그러나, Z의 값이 제로와 동일하면(따라서, SRH_접속을 형성하는 최종 레이블에 대하여 삭제 연산이 실행되었던 것을 의미함), 처리되는 특정 SRH_접속에 대응하는 유효 비트는 오프로 설정된다. 또한, 최종 프로토콜 엔진이 사라져야 하므로, 모든 상이한 테이블(1002-i)(i = 0 내지 15)은 어드레스 SRH_접속에서 출력 포트(후자의 프로토콜 엔진에 대응함)가 억제되도록 갱신된다. 최종 비트맵이 제로와 같은 경우, 유효 비트를 제로로 설정하기 위해 추가 단계가 실행된다. 생성 프로세스와 마찬가지로, 삭제 연산은 스위치 에이전트가 스위칭 시스템의 정확한 토폴로지를 인식하는 것을 요구하지 않으므로, 매우 단순하게 된다. 이것은 레이블 억제를 허용하는 부울 연산(booleans operations)을 이용하므로써 간단하게 실현된다.
도14는 ATM 셀을 전달하는 라인을 인터페이스하는 데 매우 적합한 개선된 프로토콜 엔진 구성 요소의 구체적 실시예를 도시하고 있다. 도면에 도시한 바와 같이, 프로토콜 엔진(521)은 ATM 입력 흐름을 관리하고 후자를 SCAL 셀(1000)로의 부착을 위해 준비하기 위한 수신 프로세스 블록(910)에 기초한다. 수신 블록(910)은 2바이트 버스(911)에 접속된 입력, 및 유사한 버스, 즉 버스(541)에 접속된 출력을 갖는다. 그와 반대로, 송신(Xmit) 블록(950)은 버스(641)에서 루트된 셀을 수신하여, 버스(951)상에 ATM 셀을 제공한다. 도면에 도시한 예에 있어서, PE는 하나의 OC12/STM4 라인에 대한 부착을 제공한다. 당업자에게 알려진 바와 같이, 그러한 부착은 리드(921)상의 물리적인 1-비트 데이터 흐름을 버스(911)상의 16비트 ATM 셀로 변환하기 위해, 클럭 복구(recovery)(914), 디시리얼라이징(deserializing)(912) 및 ATM 셀 디리니에이션(delineation)(913)과 같은 통상의 기능을 수반한다. 그러한 기능은 공지의 회로, 즉 라인 인터페이스에 전통적으로 사용되는 회로를 수반하므로, 상세히 설명하지 않는다. 그와 반대로, 송신 경로는 16 비트 버스(951) 상에 ATM 셀을 제공하는 X블럭(950)을 수반하며, 이 셀은 블록(952) 및 시리얼라이저(serializer)(953)를 거쳐 리드(961)상의 1-비트 물리적 매체로 전송된다. 블록(952)은 동기 디지털 레이어(Synchronous Digital Hierarchy: SDH) 비트 스트림으로의 ATM 셀의 삽입을 제공한다.
도15는 한 세트의 4개 수신 라인 인터페이스(971-974) 및 4개의 송신 라인 인터페이스(976-979)를 거쳐 4라인 OC3 라인 인터페이스의 부착을 위해 적합한 유사한 구조를 도시하고 있다. 예를 들어, 수신 라인 인터페이스(971)는 도15의 회로(914,912,913)를 포함하고, 송신 라인 인터페이스(976)는 도15의 회로(952,953)를 포함할 수 있다. 수신부에 대하여, 4개의 블록(971-974)의 출력은 셀이 버스(911)상에서 발생되기 전의 셀 레벨에서 멀티플렉스된다. 마찬가지로, Xmit 블록(950)에 의해 발생되는 셀의 흐름은 적절한 OC3 라인 인터페이스로 전송되는 4개의 셀 트레인을 발생하기 위해 셀 레벨에서 디멀티플렉스된다. 본 발명의 하나의 실시예에서, 수신기(910)에 의해 수신되는 셀의 포맷은 3개의 필드, 즉 현재 셀이 수신되었던 정확한 라인을 정의하는 제1의 1-바이트 필드, 5-바이트 ATM 헤더를 포함하는 제2 필드 및 ATM 페이로드를 포함하는 제3 필드를 포함할 수 있다. 그러나, 다른 실시예는 ATM 레이어에 수개의 라인 인터페이스를 제어하는 기능을 제공하는 소위 레벨_2 UTOPIA 인터페이스의 이점을 취한다는 것을 알아야 한다. 이러한 기술은 당업자에게 잘 알려져 있으므로, 더 설명하지는 않는다. 이 경우라면, 수신기(910)에 의해 수신된 셀은 ATM 셀(즉, 헤더 및 페이로드) 만을 포함할 수 있고, 관련된 라인을 정의하는 정보는 분리된 경로(도시하지 않음)를 이용하여 수신기(910)에 제공된다.
도16은 수신 블록(910)의 상세한 구조를 도시하고 있다. 기본적으로, 블록(910)은 버스(911) 상에 나타나는 셀을 버스(541) 상의 스위치 셀로 변환하기 위해, 기본 연산을 연속적으로 실행하는 파이프라인 구조를 기반으로 하는데, 이것은 국부적으로 부착된 SCAL(1000)의 대응하는 PINT 엘리먼트에 의해 처리된다.
먼저, 수신기(910)는 탐색 블록(920)을 포함하고, 이 블록은 리드(911) 상의 셀을 수신하고 SI/VP/VC 필드를 사용하여 입력 인덱스가 제공되도록 LI/VP/VC 테이블(924)을 억세스한다. 그러한 테이블의 억세스 메카니즘은 잘 알려져 있으며, 예를 들면, 많은 수의 상이한 어드레스(예를 들면 16000)가 요구될 때 효과적인 해결책을 보여주는 IBM사 소유(문서 번호 SZ994001)의 유럽 특허원 제94909050.0호의 기술을 이용할 수도 있다. LI/VP/VC가 테이블(924)에 포함되지 않게 되는 특정 경우에 있어서, 블록(920)은 셀이 수신기 블록(910)의 나머지 부분에 의해 처리되지 않게 되도록 셀을 폐기시킨다. 입력 인덱스가 셀에 의해 전달되는 특정 SI/VP/VC 값에 관련되는 경우에 있어서, 입력은 제2 테이블, 즉 수신 조사 테이블(RECEIVE Look Up Table)(922)을 억세스하기 위해 사용되며, 이 테이블(922)은 각 입력 인덱스에 대해, 수신기(910)에 의해 사용되는 처리의 나머지 부분에 필요하게 되는 한 세트의 추가 인덱스를 포함하도록 구성된다.
구체적으로, 테이블(922)은 다음의 인덱스, 즉 접속(CONNECTION) 인덱스, 리어셈블리(REASSEMBLY) 인덱스, 연산 및 유지보수(OPERATION AND MAINTENANCE : OAM) 인덱스, 셀 추출(CELL EXTRACT) 인덱스, 스위치 패브릭과 특히 PINT 엘리먼트 및 스위치 코어에 의해 사용되는 스위치 루팅 헤더(SWITCH ROUTING HEADER), 및 송신 블록(950)과 관련하여 사용되는 출력(OUTPUT) 인덱스 필드를 포함하도록 구성된다.
블록(920)이 그 처리를 완료하면, 셀은 고려하는 셀이 속하는 특정 ATM 셀 접속을 위해 정의되었던 트래픽 파라미터에 관한 셀의 일치성을 검사하기 위해 폴리싱(POLICING) 블록(925)에 의해 처리된다. 이것을 실현하기 위해, 블록(925)은 테이블(922)에 대한 억세스에 의해 복귀된 접속 인덱스를 사용하여, 입력 셀을 검사하기 위해 폴리싱 파라미터 카운터 테이블(926)을 억세스한다. 블록(925)은 ITU(International Telecommunication Union)에 의해 권고되고 당업자에게 잘 알려져 있는 GCRA(Generic Cell Rate Algorithm)에 대한 셀의 일치성을 검사할 수 있다. GCRA 알고리즘에 대한 일치성이 검출되지 않으면, 셀은 전술한 권고안에 따라 폐기될 수 있다.
블록(925)에 의해 수행되는 일치성 처리후, 셀은 AAL5 블록(930)에 의해 수신되는데, 이 블록은 현재 수신된 셀이 다음 블록(935)으로 직접 전송되어야 하는지 또는 공지의 AAL5 포맷에 따라 리어셈블되어야 하는지를 판단하기 위해 테이블(924)에 의해 제공되는 리어셈블리 인덱스를 사용한다. 후자의 경우, AAL5 블록(930)은 셀에 전송되는 페이로드가 버퍼(도시하지 않음)로 로드되도록 한다. 저장 용량은 제한되므로, 동시에 실행가능한 리어셈블링 연산의 수도 제한된다는 것을 알아야 한다.
전체 메시지가 이 메모리에 이용가능할 때, 후자는 프로토콜 엔진내에 위치하는 제어 프로세서에 의해 억세스될 수 있다.
셀이 리어셈블될 것이 아니면, 블록(930)은 셀이 OAM 블록(935)에 의해 처리되게 한다. OAM 블록은 수신된 셀이 I.610 ITU 권고안에 지정된 바와 같은 OAM 성능 감시가 이루어졌는지 판단을 수행한 접속(VP/VC에 의해 정해짐)에 속하는지 여부를 판단하기 위해 OAM 리소스(RESSOURCES) 인덱스를 사용한다. 셀이 OAM 성능 감시하에 있으면, 블록(935)은 셀이 다음 블록(940)에 의해 처리되게 한다. 그러나, 그 반대의 경우에, 블록(935)은 경우에 따라 이미 수신 또는 송신된 사용자 셀의 실제 갯수에 따라, 특정 OAM 셀이 삽입될 것인지 또는 추출될 것인지를 판단한다. 예를 들면, 셀 삽입의 경우, 블록(935)은 최종 OAM 셀 삽입 이래로 이미 송신되었던 고려하는 접속에 속하는 셀의 실제 갯수에 따라, (특정 VP/VC를 가진) 추가 OAM 셀을 삽입하는 기회를 판단한다. 셀 추출의 경우는 그와 반대로, 블록(935)이 수신되는 OAM 셀의 추출을 실현한다. 수신 블록(910)이 파이프라인 장치에 근거하므로, 삽입 메카니즘은 실제적으로 파이프라인내의 첫 번째 비어있는 셀 슬롯에서 수행된다는 것을 알아야 한다. 이것은 수신 블록(910)이 그것에 부착된 라인의 정확한 데이터 처리능력 보다 약간 빠르게 동작하도록 설계되어 있으며, 셀 흐름 내에 충분한 빈 셀 슬롯이 존재하는 것을 보장하므로 가능하게 된다. 또한, 독립적인 셀 추출/삽입 블록(915)은 셀 추출 필드의 내용에 따라 추출을 수행하거나 또는 적절한 때에 셀을 삽입할 수 있도록 수신기 블록(910) 내부의 제어 프로세서에 합치된다.
블록(935)이 그 프로세스를 완료하면, 셀은 스위치 헤더 삽입 블록(940)에 의해 수신되는데, 이 블록은 테이블(922)에 대한 억세스로부터 판독되었던 스위치 루팅 헤더를 사용하고 VP/PI 스왑 블록(945)으로 전송되기 전에 수신되는 셀에 헤더를 첨부한다. 이 블록(945)은 VP의 8개 LSB 대신 셀 내에 삽입되는 출력 인덱스의 내용과 헤더 정정 코드(HEC) 필드를 함께 이용한다. 다음에 더욱 상세하게 설명하는 바와 같이, 헤더 정정 코드는 PE의 출력에 요구되는 최종 VP/VC를 설정하도록 프로토콜 엔진의 송신부에 의해 사용된다. 본 발명의 다른 실시예에 있어서, OI 필드도 셀의 첫 번째 위치에 위치할 수 있는 분리 필드로서 전송될 수 있다. 출력 인덱스는 상이한 프로토콜 엔진에 수반되는 특정 프로세스의 특성이 된다는 것을 알아야 한다. 따라서, 2개의 상이한 접속이 동일한 출력 인덱스를 사용하는 일이 발생할 수 있다. 이것은 간단한 멀티포인트-투-포인트(multipoint to point) 접속을 실현하는 가능성을 달성한다.
전술한 메카니즘으로부터, SCAL(1000)은 도면에 도시한 형태를 가진 버스(541)상의 스위치 셀을 수신한다. 수신기(910)의 구조에 기인하는 실질적 효과는, 각 블록(920,925,930,935,940,945)이 경로에서 뒤 따르는 블록에 의해 이루어지는 처리에 앞서 기본 연산을 수행하도록 허용하는 파이프라인에서의 구성 및 메모리로 상이한 테이블을 배치하는 것으로부터 초래된다. 이것은 고속 라인에 대하여 필수적으로 나타나는 제한된 주기에서 전체 수신 처리가 실현되는 것을 보장한다.
송신부(950)는 도17에 도시되어 있다. SCAL(1000)로부터 수신되는 스위치 셀은 송신부(Xmit)로 입력되어 셀로부터 SRH를 삭제하는 블록(960)에 의해 처리된다. 또한, 블록(960)은 고려하는 출력 인덱스에 대응하는 다음의 필드, 즉 ATM 접속에 대하여 멀티캐스트 동작을 실행하기 위해 사용되는 차기_출력(NEXT_OUTPUT) 인덱스, 큐(QUEUE) 인덱스, OAM 리소스 인덱스 및 수신기(910)에 의해 수신된 상태로 셀을 재설정하기 위해 사용되는 새로운(NEW) LI/VP/VC를 제공하도록 배열된 송신 조사(XMIT Look Lp) 테이블(964)를 억세스하기 위해 셀 내에 위치된 출력 인덱스를 사용한다.
다음에, 셀은 승인 제에 모듈(965)에 의해 처리되며, 이 모듈은 처리되는 셀에 대응하는 특정 접속에 관련된 큐의 상태를 검사한다. 또한, 본 발명의 바람직한 실시에에서, 송신기 블록(950)은 적어도 16000개 큐를 처리하도록 설계된다. 블록(965)이 셀을 수신하면, 어느 큐가 고려하는 셀에 관련되는가를 판단하고, 특히 이 큐에 관한 소정의 파라미터를 포함하는 저장부(966)로 어드레하기 위해 큐 인덱스가 사용된다. 이러한 파라미터는 큐에 로드되는 셀의 수 또는 오버로드 상태로 인해 고려하는 큐에 로드될 수 있는 셀의 수를 포함할 수도 있다. 이들 파라미터로 부터, 블록(965)은 처리된 셀이 고려하는 큐 인덱스에 관련된 큐에 로드되도록하는 할 것인지 여부를 판단할 수 있다. 본 발명의 바람직한 실시예에서, 큐 내에 로드되는 셀의 현재의 수를 감시하고 이 값과 소정의 임계값을 비교하는 특정 메카니즘이 사용된다. 전자가 후자를 초과하면, 블록(965)은 모든 추가 셀을 거부하거나 또는 몇몇 제한된 경우에, 그들이 우선순위 접속에 대응할 때에는 추가 셀을 받아들일 수도 있다.
셀을 적절한 큐에 로드하는 것과 병행하여, LI/VP/VC 블록(975)은 셀의 새로운 헤더의 구성을 수행한다. 이것은 수신되는 셀로부터 OI/VC를 삭제하고, 그것을 NEW_LI/VP/VC에 의해 제공된 내용으로 교체하는 것에 의해 실현된다. 이러한 구성은 VC 필드가 변경되지 않도록 할 수 있으며, 이 경우에 VP 스위칭이 실행된다는 것을 알아야 한다. 그러나, 보다 일반적으로 말하면 전체 VP/VC 필드는 변경될 수 있다.
Xmit 블록(950)에 사용되는 16000개 큐의 구성에 부가하여, 각 순차화된 리스트가 16000개 큐 중의 하나에 대응하도록 셀이 로드되는 버퍼의 순차화된 리스트가 유지되는 것을 보장하기 위해, 큐 관리 시스템이 제공된다. 또한, 성형(Shaping) 장치(985)는 상이한 큐로 로드되는 셀의 출력을 평활하게(Smooth) 한다. 이것은 특히 각 큐에 할당되는 출력 비율에 의존한다.
수신 블록(910)과 마찬가지로, OAM 성능 감시 셀을 삽입 또는 추출하기 위해 OAM 블록(970)이 사용된다. 셀이 OAM 성능 감시하에 있으면, 블록(970)은 동작하지 않는다. 그러나, 그 반대의 경우에 있어서, 블록(970)은 상기와 같이, 경우에 따라 이미 수신 또는 송신된 사용자 셀의 실제 갯수에 따라, 특정 OAM 셀이 삽입 또는 추출될 것인지 여부를 판단한다.
수신기 블록(910)에 대하여 전술한 바와 같이, 본 발명은 상이한 인덱스를 관리하기 위해 사용되는 상이한 테이블의 특정 구성을 이용한다. 이로인해 대형이고 고가의 메모리의 사용을 방지할 수 있다. 이러한 매우 효과적인 구성은 600 Mbit/s 접속을 허용하는 ATM 프로토콜 엔진을 위한 수신기 및 송신 블록을 갖추고 있다. 상기 설명으로부터, 스위치 코어에 의해 루트되는 스위치 셀의 페이로드에 삽입된 추가 출력 인덱스를 이용하여 VP/VC 스왑을 수행하기 위해 PE가 사용된다는 것은 명백하다. 이러한 특정 기능이 없으면, PE 수신기의 레벨에서 VP/VC 스왑을 실행할 필요가 있으므로, 스위치 코어에 의한 그의 루팅 전에 셀의 복제가 이루어지는 결과를 초래한다. 본 발명의 PE에 사용되는 이러한 매우 효과적인 메카니즘에 의하면, 스위치 코어를 통하여 하나의 셀 만이 루트되므로, 스위치 코어의 오버로드가 최소화 되고, VO/VC 스왑은 셀이 라인 상으로 전송되기 전에 송신측(Xmit) 프로토콜 엔진의 레벨에서 실행된다. 따라서, 프로토콜 엔진의 수신기 부분에 의해 삽입된 출력 인덱스의 사용은 전술한 스위치 코어의 효율과 유익하게 조합된다.
또한, 메카니즘은 접속시 셀을 멀티캐스팅하는 가능성이 제공되는 제2 기능을 위해 출력 인덱스를 사용하므로써 더욱 향상된다. 이것은 멀티캐스트 버퍼를 테이블(964)에 대한 억세스에 의해 발생되는 차기_출력 인덱스 필드의 특정 비트의 이용에 기반한 추가적인 메카니즘과 조합하므로써 가능하게 된다. 그러한 메카니즘은 본 발명과 같은 우선일을 갖고, 동일한 양수인에게 양도되었으며, 본 명세서에 단순히 참조되어 포함된, 발명의 명칭이 METHOD AND SYSTEM FOR MULTICASTING CELLS IN AN ATM PROTOCOL ADAPTER 인 1996년 12월 20일자로 출원된 유럽특허원 제96480122.9호를 참조하여 용이하게 설명된다.
본 발명에 의하면, 기존의 기술로 복잡한 네트워크, 멀티미디어 애플리케이션 및 고속 통신에 있어서 시스템의 속도를 증가시키기 위해, 한 세트의 M개 수신기, 한 세트의 M개 입력 루터 및 한 세트의 M개 ASA 레지스터를 갖는 저장부, 한 세트의 M개 출력 루터, 한 세트의 M개 드라이버 및 한 세트의 M개 ARA 레지스터를 갖는 검색부, 입력 처리 제어부 및 출력 처리 제어부를 갖는 제어부, 셀이 출력 포트로 전송되는 횟수를 등록하는 수단 등을 포함하여, 고속화가 실현된다.
테이블어드레스SRH 1002-i 1020-0 1020-1 1020-2 1020-3 ..
X'0000' X'8000' X'8000' 유효 비트 오프 유효 비트 오프 유효 비트 오프
X'0001' X'4000'
X'0002' X'2000'
X'0003' X'1000'
X'0004' X'4000' 유효 비트 오프 X'8000' 유효 비트 오프 유효 비트 오프
X'0005' X'4000'
X'0006' X'2000'
X'0007' X'1000'
X'0008' X'2000' 유효 비트 오프 유효 비트 오프 X'8000' 유효 비트 오프
X'0009' X'4000'
X'000A' X'2000'
X'000B' X'1000'
X'000C' X'1000' 유효 비트 오프 유효 비트 오프 유효 비트 오프 X'8000'
X'000D' X'4000'
X'000E' X'2000'
X'000F' X'1000'
... ... ... ... ... ... ...
X'0100'프로세서 X'0000' 유효 비트 오프 유효 비트 오프 유효 비트 오프 유효 비트 오프
.. .. .. .. .. .. ..
테이블 A

Claims (9)

  1. 한 세트의 M개 입력 포트중 어느 하나의 포트를 통해 공통 셀 저장부(Common Cell Storage)(1)로 입력하는 셀의 저장을 수행하기 위한 저장부 및 그 내부에 로드된 셀 - 여기서, 각각의 셀은 그 셀이 어느 출력 포트로 루팅될 것인지 정의하는 모듈 루팅 헤더(module rouing header)와 관련된 페이로드를 포함함 - 을 출력하여 그것은 한 세트의 M개 출력 포트 중 어느 하나의 포트로 전송하기 위한 검색부를 포함하는 셀 스위칭 모듈에 있어서,
    상기 저장부는,
    M개의 상이한 입력 포트에 대한 물리적 인터페이스를 수행하기 위한 한 세트의 M개 수신기 수단(10);
    상기 셀 저장부(1)의 상이한 위치중 어느 하나의 위치로의 상기 M개 입력 포트의 접속을 실현하기 위한 한 세트의 M개 입력 루터(2); 및
    상기 셀을 상기 셀 저장부(1)에 저장하기 위해 사용될 어드레스를 상기 입력 루터(2)에 제공하기 위한 한 세트의 M개 ASA 레지스터(20,21)를 포함하고,
    상기 검색부는,
    상기 셀 저장부(1)의 임의의 위치에 위치한 데이터를 검색하기 위한 한 세트의 M개 출력 루터;
    상기 스위칭 모듈의 출력 포트를 인터페이스하기 위한 한 세트의 M개 드라이버(11); 및
    상기 셀 저장부로부터 출력될 셀의 어드레스를 상기 출력 루터(3)에 제공하기 위한 한 세트의 M개 ARA 레지스터를 포함하고,
    상기 모듈은 상기 스위칭 모듈을 거쳐 전달되는 데이터 셀의 입력 프로세스 및 출력 프로세스를 실행하기 위한 제어 수단을 더 포함하고,
    상기 입력 프로세스 제어 수단은,
    상기 셀 저장부(1)에 빈 위치의 어드레스를 제공하기 위한 어드레스 발생 수단(FAQ 5);
    상기 어드레스 발생 수단(FAQ 5)에 의해 발생되는 어드레스 또는 제1 외부 버스(509, 510)에 의해 제공되는 어드레스를 상기 M개 ASA 레지스터(20, 21)에 제공하기 위한 제1 멀티플렉싱 수단(106, 107, 112, 113); 및
    상기 입력 포트에서 입력되는 셀에 포함된 상기 모듈 루팅 헤더를 유지하는 홀딩 레지스터(60, 63)를 포함하고,
    상기 출력 프로세스 제어 수단은,
    상기 M개 출력 포트 중 대응하는 하나의 포트에 관련되며 상기 ASA 레지스터(20, 21)의 내용을 수신하는 하나의 입력을 각각 갖고 있으며, 출력 포트로 전송될 셀을 포함하는 상기 셀 저장부(1)내 위치의 어드레스를 큐잉하기 위한 한 세트의 M개 큐잉 수단(OAQ 50, 51);
    상기 모듈 루팅 헤더를 수신하여, 상기 한 세트의 M개 큐잉 수단(OAQ 50, 51)중에서 상기 모듈 루팅 헤더의 내용으로부터 판단될 수 있는 출력 포트에 대응하는 큐잉 수단으로 상기 ASA 레지스터의 내용이 로드되도록 하기 위해, 상기 큐잉 수단(50, 51)을 위한 제어 신호(WEs, 210)를 발생하기 위한 제어 수단(150, 200); 및
    상기 큐잉 수단(OAQ 50, 51)에 의해 제공되는 어드레스 또는 제2 외부 버스(520, 521)에 의해 제공되는 어드레스를 상기 M개 ARA 레지스터에 제공하기 위한 제2 멀티플렉싱 수단(800, 26, 27)을 포함하고,
    상기 스위칭 모듈은,
    셀이 여전히 출력 포트로 전송될 횟수를 등록하고, 마지막으로 발생한 어드레스가 상기 큐잉 수단(OAQ 50, 51)으로부터 사라지기 전에 고려하는 위치 어드레스가 상기 어드레스 발생 수단(FAQ, 5)에 이용가능하게 되는 것을 방지하기 위한 수단(7); 및
    상기 스위칭 모듈이, 마스터 모드에서 상기 어드레스 발생 수단(FAQ, 5)에 의해 제공되는 어드레스에 따라 또는 슬레이브 모드에서 상기 제1 및 제2 외부 버스(509, 510, 520, 521)에 의해 제공되는 어드레스에 의해, 수신되는 셀의 루팅 제어 메카니즘을 동작시킬 수 있도록, 상기 제1 및 제2 멀티플렉싱 수단(106, 107, 112, 113, 800, 26, 27)을 제어하기 위한 제어 수단을 더 포함하는 셀 스위칭 모듈.
  2. 제1항에 있어서,
    각 세트의 ASA 레지스터(20, 21), ARA 레지스터(32, 33) 및 큐잉 수단(OAQ 50, 51)은 2개의 어드레스가 동시에 결정되고 처리되어 셀의 루팅 처리에 필요한 사이클 수가 2배 만큼 감소될 수 있도록 2개의 상이한 부분으로 분리되는 스위칭 모듈.
  3. 제1항에서 정의된 2개의 스위칭 모듈을 포함하는 스위칭 구조에 있어서,
    제1 스위칭 모듈은 모듈 루팅 헤더의 프로세스에 따라 그 ASA 및 ARA 레지스터에 로드되는 어드레스의 발생을 수반하는 루팅 프로세스를 실현하고, 다른 스위칭 모듈이 상기 제1 스위칭 모듈에 대하여 슬레이브 모드로 동작하도록 상기 제1 및 제2 버스 상의 제어 신호를 상기 다른 스위칭 모듈에 제공하는 스위칭 구조.
  4. 제1항 내지 제3항 중 어느 한 항에서 정의된 4개의 스위칭 모듈을 포함하는 스위칭 시스템에 있어서,
    제1 스위칭 모듈이 루팅 헤더를 갖는 분할된 셀의 제1 부분을 수신하고, 제2 스위칭 모듈이 분할된 셀의 제2 부분을 수신하고, 제3 스위칭 모듈이 분할된 셀의 제3 부분을 수신하며, 제4 스위칭 모듈이 분할된 셀의 제4 부분을 수신하도록, 수신되는 셀의 셀 분할을 수행하기 위한 수단(1000, 5000)을 포함하고, 상기 루팅 헤더를 수신하는 상기 제1 스위칭 모듈은 상기 제2, 제3 및 제4 스위칭 모듈에서 동일한 루팅 프로세스를 실행하기 위해 상기 제2, 제3 및 제4 스위칭 모듈의 상기 제1 및 제2 버스로 전송되는 제어 신호를 제공하는 스위칭 시스템.
  5. 제1항 내지 제4항중 어느 한 항에서 정의된 2개의 스위칭 모듈을 포함하는 스위칭 시스템에 있어서,
    제1 스위칭 모듈이 루팅 헤더를 갖는 분할된 셀의 제1 부분을 수신하고, 제2 스위칭 모듈이 분할된 셀의 제2 부분을 수신하도록, 수신되는 셀의 셀 분할을 수행하기 위한 수단(1000, 5000)을 포함하고, 상기 루팅 헤더를 수신하는 제1 스위칭 모듈은 제2 스위칭 모듈에서 동일한 루팅 프로세스를 실행하기 위해 상기 제2 스위칭 모듈의 상기 제1 및 제2 버스로 전송되는 제어 신호를 제공하는 스위칭 시스템.
  6. 제1 항 내지 제5항 중의 어느 한 항에서 정의된 스위칭 구조를 포함하는 스위칭 시스템에 있어서,
    각각 하나의 통신 링크(1400, 1600)를 거쳐 상기 스위칭 구조(1300)의 입력 및 출력 포트와 통신하고, 적어도 하나의 프로토콜 어댑터(프로토콜 엔진 1600- 1900)에 대한 부착을 허용하는 한 세트의 분산 개별 스위치 코어 억세스 레이어 엘리먼트(SCAL)(1000)를 포함하고,
    각각의 분산 SCAL 엘리먼트는 적어도 하나의 프로토콜 어댑터(프로토콜 엔진 1600-1900)중 대응하는 하나의 어댑터와 각각 관련되는 한 세트의 PINT 회로(511-515, 611-614)를 포함하고, 또한,
    수신되는 셀을 저장하기 위한 적어도 하나의 FIFO 저장부(701-704)를 포함하고 부착된 프로토콜 어댑터(프로토콜 엔진 1600)로부터 데이터 셀을 수신하며, 스위칭 구조내의 루팅 프로세스를 제어하기 위해 상기 스위칭 구조에 의해 사용될 루팅 헤더(비트 맵)를 위해 예비되게 되는 적어도 하나의 여분 바이트를 모든 셀에 삽입하는 수신부;
    상기 제1 FIFO 저장부 보다 실질적으로 더 큰 용량을 가진 적어도 하나의 제2 FIFO 저장부와, 상기 적어도 하나의 여분 바이트에 의해 전달되는 값에 따라 셀을 폐기하거나 폐기하지 않기 위한 수단(810)을 포함하고, 상기 스위칭 구조의 관련 출력 포트로부터 루팅되는 모든 셀을 수신하는 송신부;
    상기 분산 개별 SCAL 엘리먼트(1000)와 상기 스위칭 구조 사이의 통신 링크(1400,4400)에 대한 상기 적어도 하나의 제1 및 제2 FIFO의 시분할 다중(TDM) 억세스를 수행하기 위한 제어 수단;
    상기 적어도 하나의 제1 FIFO로부터 출력되는 셀을 상기 통신 링크(1400)를 통해 전송되는 적어도 하나의 대응하는 비트 트레인으로 변환하는 것을 수행하기 위한 시리얼라이징 수단;
    관련된 출력 포트로부터 수신되는 비트 흐름을 상기 적어도 하나의 제2 FIFO(801-804)의 입력에 제공될 수 있는 대응하는 적어도 하나의 바이트 트레인으로 변환하는 것을 수행하기 위한 디시리얼아이징 수단을 포함하는 스위칭 시스템.
  7. 제6항에 있어서,
    상기 스위칭 구조는,
    상기 셀이 상기 스위칭 구조를 통해 루팅되기 전에, 루팅되는 셀의 페이로드에 포함된 상기 프로토콜 어댑터(프로토콜 엔진 1600)에 의해 발생되는 루팅 레이블(SRH)에 따라 루팅 헤더(비트 맵)로 상기 PINT 회로에 의해 삽입되는 상기 적어도 하나의 여분 바이트를 대체하기 위한 수단; 및
    상기 셀의 스위칭 이후 상기 셀이 상기 PINT 회로의 상기 송신부로 전송되기 전에, 루팅되는 셀의 페이로드에 포함된 상기 루팅 레이블(SRH)의 값에 따라 제2 루팅 헤더로 상기 적어도 하나의 여분 바이트를 대체하기 위한 수단을 포함하는 것을 특징으로 하는 스위칭 시스템.
  8. 제1 항 내지 제7항 중의 어느 한 항에 있어서,
    상기 SCAL과 상기 스위칭 구조 사이의 상기 시리얼라이즈된 비트 스트림은 한 세트의 동축 케이블을 이용하여 실현되는 것을 특징으로 하는 스위칭 시스템.
  9. 제1 항 내지 제7항 중의 어느 한항에 있어서,
    상기 SCAL과 상기 스위칭 구조 사이의 상기 시리얼라이즈된 통신 링크는 한 세트의 광 케이블을 이용하여 실현되고, 각각의 광 케이블은 각각의 개별 스위칭 모듈에 지정된 하나의 바이트 흐름을 전송하기 위해 사용되며, 따라서 분산 스위칭 아키택쳐를 제공하는 것을 특징으로 하는 스위칭 시스템.
KR1019970044770A 1996-12-20 1997-08-30 스위칭시스템 KR100292191B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP96480117.9 1996-12-20
EP96480117 1996-12-20

Publications (2)

Publication Number Publication Date
KR19980063447A true KR19980063447A (ko) 1998-10-07
KR100292191B1 KR100292191B1 (ko) 2001-09-07

Family

ID=8225471

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970044770A KR100292191B1 (ko) 1996-12-20 1997-08-30 스위칭시스템

Country Status (3)

Country Link
US (1) US6055235A (ko)
KR (1) KR100292191B1 (ko)
DE (1) DE69733741T2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030083114A (ko) * 2002-04-19 2003-10-30 한국원자력연구소 시분할 방식을 이용한 고정형 망 교환장치
KR100681235B1 (ko) * 2005-06-18 2007-02-09 최영철 샤워기 헤드
US8403241B2 (en) 2009-02-18 2013-03-26 Kntec Co., Ltd. Filter case for shower having function of adjusting quantity of outflow of filling material

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0938212A1 (en) * 1998-02-19 1999-08-25 International Business Machines Corporation Process and system of flow control for a switching system
JP3141850B2 (ja) * 1998-07-10 2001-03-07 日本電気株式会社 時分割スイッチング装置および時分割スイッチング方法、並びに記録媒体
JP3002726B1 (ja) * 1998-07-31 2000-01-24 東京大学長 可変速度ディジタル交換方式
EP0982898B1 (en) * 1998-08-28 2002-11-06 International Business Machines Corporation Switching apparatus comprising at least one switch core access element for the attachment of various protocol adapters
US6687246B1 (en) * 1999-08-31 2004-02-03 Intel Corporation Scalable switching fabric
US6914901B1 (en) 2001-12-05 2005-07-05 Cisco Technology, Inc. System and method for communicating using multiple memory banks
DE10240634B4 (de) * 2002-03-12 2007-07-19 Minebea Co., Ltd. Hydrodynamisches Lager für einen Spindelmotor
US7206325B2 (en) * 2002-05-08 2007-04-17 Stmicroelectronics Ltd. Frame assembly circuit for use in a scalable shared queuing switch and method of operation
US7430167B2 (en) * 2003-09-18 2008-09-30 International Business Machines Corporation Method and system to enable an adaptive load balancing in a parallel packet switch
KR20050075488A (ko) * 2004-01-15 2005-07-21 유티스타콤코리아 유한회사 Ip 패킷 데이터의 전송이 가능한 hans-5 스위치라우터
GB2412275B (en) * 2004-03-18 2006-04-12 Motorola Inc A method of selecting operational parameters in a communication network
EP2566118B1 (en) 2011-09-01 2013-08-28 Alcatel Lucent Network element for switching time division multiplex signals
US12058874B1 (en) 2022-12-27 2024-08-06 Eliyan Corporation Universal network-attached memory architecture

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5365519A (en) * 1991-03-05 1994-11-15 Hitachi, Ltd. ATM switch1ng system connectable to I/O links having different transmission rates
JP3064650B2 (ja) * 1992-03-27 2000-07-12 株式会社日立製作所 同報通信装置
US5321691A (en) * 1993-01-11 1994-06-14 At&T Bell Laboratories Asynchronous transfer mode (ATM) switch fabric
JPH0774749A (ja) * 1993-09-01 1995-03-17 Hitachi Ltd スイッチングシステム
US5612952A (en) * 1993-09-20 1997-03-18 Kabushiki Kaisha Toshiba Packet switch and buffer for storing and processing packets routing to different ports
JP3178949B2 (ja) * 1993-09-30 2001-06-25 富士通株式会社 Atmスイッチ方式
US5475679A (en) * 1994-12-08 1995-12-12 Northern Telecom Limited Large capacity ATM switch
US5898687A (en) * 1996-07-24 1999-04-27 Cisco Systems, Inc. Arbitration mechanism for a multicast logic engine of a switching fabric circuit

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030083114A (ko) * 2002-04-19 2003-10-30 한국원자력연구소 시분할 방식을 이용한 고정형 망 교환장치
KR100681235B1 (ko) * 2005-06-18 2007-02-09 최영철 샤워기 헤드
US8403241B2 (en) 2009-02-18 2013-03-26 Kntec Co., Ltd. Filter case for shower having function of adjusting quantity of outflow of filling material

Also Published As

Publication number Publication date
US6055235A (en) 2000-04-25
KR100292191B1 (ko) 2001-09-07
DE69733741T2 (de) 2006-04-20
DE69733741D1 (de) 2005-08-25

Similar Documents

Publication Publication Date Title
KR100261380B1 (ko) 라인 어댑터에 대한 부착을 허용하는 분산 엘리먼트를 구비하고 멀티캐스팅 능력을 가진 스위칭 시스템
EP0849917B1 (en) Switching system
JP3026801B2 (ja) 交換システムのフロ―制御方法および交換システム
US7636358B1 (en) Asynchronous transfer mode (ATM) switch and method for switching ATM traffic
US6621828B1 (en) Fused switch core and method for a telecommunications node
US5446738A (en) ATM multiplexing system
KR100292191B1 (ko) 스위칭시스템
US5809024A (en) Memory architecture for a local area network module in an ATM switch
US5734656A (en) Method and apparatus for dynamically allocating bandwidth on a TDM bus
US5852606A (en) Method and apparatus for transmitting cells across an ATM switch bus
US6343081B1 (en) Method and apparatus for managing contention in a self-routing switching architecture in a port expansion mode
US5619499A (en) Protocol processor in communication network transferring data in asynchronous transfer mode
US6944153B1 (en) Time slot interchanger (TSI) and method for a telecommunications node
US6760327B1 (en) Rate adjustable backplane and method for a telecommunications node
JP2000295289A (ja) 大型結合広帯域および狭帯域交換機
WO1991002420A1 (en) Communication switching element and method for transmitting variable length cells
US6324164B1 (en) Asynchronous transfer mode (A.T.M.) protocol adapter for a high speed cell switching system
US6628657B1 (en) Method and system for transporting synchronous and asynchronous traffic on a bus of a telecommunications node
JPH07321824A (ja) セル・スイッチ・ファブリック用チップ
US6920156B1 (en) Method and system for transporting synchronous and asynchronous traffic on a synchronous bus of a telecommunications node
KR20010005539A (ko) 통신용 다중-서비스 회로
US6778529B1 (en) Synchronous switch and method for a telecommunications node
EP0944286B1 (en) Asynchronous transfer mode apparatus
US6101184A (en) Data switching method and data switching apparatus for efficiently handling scan data in information communication network
US5550821A (en) ATM remote maintenance connection establishing system

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: 20110201

Year of fee payment: 11

LAPS Lapse due to unpaid annual fee