[go: up one dir, main page]

KR19980080498A - 피브리 채널 스위칭 시스템과 방법 - Google Patents

피브리 채널 스위칭 시스템과 방법 Download PDF

Info

Publication number
KR19980080498A
KR19980080498A KR1019980009677A KR19980009677A KR19980080498A KR 19980080498 A KR19980080498 A KR 19980080498A KR 1019980009677 A KR1019980009677 A KR 1019980009677A KR 19980009677 A KR19980009677 A KR 19980009677A KR 19980080498 A KR19980080498 A KR 19980080498A
Authority
KR
South Korea
Prior art keywords
port
frame
message
memory
buffer
Prior art date
Legal status (The legal status 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 status listed.)
Withdrawn
Application number
KR1019980009677A
Other languages
English (en)
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 KR19980080498A publication Critical patent/KR19980080498A/ko
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks
    • H04L49/357Fibre channel switches
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/407Bus networks with decentralised control
    • H04L12/413Bus networks with decentralised control with random access, e.g. carrier-sense multiple-access with collision detection [CSMA-CD]
    • 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/101Packet switching elements characterised by the switching fabric construction using crossbar or matrix
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/20Support for services
    • H04L49/205Quality of Service based
    • 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/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/351Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Small-Scale Networks (AREA)
  • Multi Processors (AREA)

Abstract

모듈러 피브리 채널 스위치는 스위치 포트들간에 논리적인 점-대-점 접속을 제공하기 위해 데이타 스위칭 경로와 메시지 스위칭 경로를 포함한다. 데이타 스위칭 경로는 각각의 스위치 포트에 의해 타임 슬라이싱된 프로토콜로 액세스되는 공유된 SRAM 메모리 장치의 뱅크를 포함한다. 수신 스위치 포트가 공유된 SRAM의 뱅크에 데이타를 기입하고 나면, 전송 스위치 포트는 공유된 SRAM으로부터 데이타 프레임을 판독하여 논리적인 점-대-점 접속을 이룬다. 스위치 포트는 프레임 어드레스의 임의적인 시작을 허용하는 프레임 논리 회로를 포함하기 때문에, 각각의 프레임은 제1 가용 DRAM 장치에 기입될 수 있어서, 선정된 DRAM 장치가 타임 슬라이싱된 프로토콜로 싸이클링하기까지 기다리는 동안 데이타 프레임을 버퍼링할 필요성이 없어진다. 메시지 스위칭 경로는 스위치 포트들간의 메시지 전달을 위해 타임 슬라이싱된 형식으로 배럴 쉬프팅되는 메시지 크로스바 스위치(message crossbar switch)를 포함한다. 스위치는 임베딩된(embedded) G_포트 ASIC을 포함하는 마더 보드, 메시지 전달을 처리하는 메시지 크로스바 스위치, 및 데이타 스위칭을 수행하는데 사용되는 공유된 메모리를 포함한다. 스위치는 또한 중앙 처리 장치 도터 보드(daughter board)와 외부 스위치 포트 도터 보드를 포함한다.

Description

피브리 채널 스위칭 시스템과 방법
본 발명은 네트워크 스위칭 장치에 관한 것으로, 보다 구체적으로는, 피브리 채널 스위칭 장치(Fibre channel switching device)에 관한 것이다.
(ANSI: American National Standards Institute에 의해 개발된) 표준 피브리 채널군은 피브리 채널 인터페이스를 갖는 퍼스널 컴퓨터, 워크스테이션, 메인프레임, 수퍼컴퓨터, 저장 장치 및 서버와 같은 다양한 하드웨어 시스템들간의 많은 양의 데이타 전송을 위한 고속의 통신 인터페이스를 정의하고 있다. 대용량의 저장, 의학 및 과학 화상, 멀티미디어 통신, 거래 처리, 분산형 컴퓨팅, 및 분산형 데이타베이스 처리 응용과 같은 높은 대역폭과 낮은 대기 시간(latency)의 I/O를 요하는 클라이언트/서버 분야에서 피브리 채널의 사용이 확산되고 있다.
피브리 채널은 종래의 채널 및 네트워크 기술에 비해 이점을 제공한다. 종래의 채널 기술(예를 들어, 전화)는 한 장치로부터 다른 장치로의 점-대-점 접속(서비스)를 제공한다. 종래의 채널은 높은 속도와 낮은 대기 시간으로 데이타를 전달한다. 그러나, 이들은 많은 클라이언트들간의 접속을 제공하기에는 적합하지 않으며, 또한, 작은-패킷의 버스트 트래픽(bursty traffic)에도 적합하지 않다. 종래의 네트워크는 대역폭에 대한 공유된 액세스를 제공하며, 예측불가능한 버스트 트래픽을 처리하도록 설계되어 있다. 그러나, 네트워크는 소프트웨어 집중적(software intensive)이며, 많은 클라이언트/서버 응용의 증가하는 대역폭 요구를 충족시킬 수 없다.
피브리 채널은 종래의 채널과 네트워크 접속 기술에 대한 대안이며, 높은 속도와 낮은 대기 시간으로 많은 클라이언트들간의 접속을 달성하는데 사용된다. 피브리 채널은 발원지 장치 노드(포트)로부터 목적지 장치 노드(포트)로의 논리적인 점-대-점 접속(논리적 포트-대-포트 직렬 채널)을 설정한다. 논리적 포트-대-포트 직렬 채널은 발원지 장치 (노드)로부터 목적지 장치 노드로 데이타를 전송하는데 사용된다. 각각의 노드(발원지 및 목적지)는 버퍼(전송 버퍼 또는 수신 버퍼)를 가지며, 데이타 전송은 발원지 노드의 전송 버퍼로부터 목적지 노드의 수신 버퍼로 데이타를 이동시킴으로써 실행된다. 전송 방법은 논리적으로 점-대-점(노드-대-노드)이기 때문에, 피브리 채널이 다양한 네트워크 프로토콜을 처리할 필요가 없다. 피브리 채널에 있어서, 데이타는 데이타 형식이나 의미에 관계없이 한 노드로부터 다른 노드로 이동된다.
피브리 채널은 논리적 점-대-점 직렬 채널을 설정하기 위해 몇 개의 토폴러지(topology)[예를 들어, 점-대-점 토폴러지, 패브릭(fabric) 토폴러지, 루프 토폴러지] 중 하나를 사용한다. 피브리 채널 점-대-점 토폴러지는 2개의 피브리 채널 시스템을 직접적으로 접속시킨다. 피브리 채널 루프 토폴러지는 공유된 대역폭에 대한 조정된 액세스(arbitrated access)를 제공하는 링형 접속의 조정된 루프이다. 피브리 채널 패브릭 토폴러지는 한 노드에서 다른 노드로의 양방향 접속을 제공하기 위해 하나 이상의 피브리 채널 스위치로부터 만들어진 스위칭 패브릭을 사용한다. 패브릭 토폴러지에서, 각각의 피브리 채널 노드(장치)는 자신과 패브릭간에 간단한 점-대-점 접속만을 관리하며, 패브릭은 노드들간의 접속을 관리 및 수행한다. 각각의 전송 노드(포트)는 프레임 헤더 내에 목적지 노드(포트)의 어드레스를 집어 넣으며, 패브릭은 접속을 설정한다.
종래의 스위칭 시스템과 방법은 피브리 채널의 높은 대역폭 및 낮은 대기 시간 요건에 대해 적합하지 않다. 따라서, 개선된 스위칭 시스템과 방법이 필요하다.
본 발명에 따라, 스위칭 시스템은 데이타 스위칭 경로 및 메시지 스위칭 경로를 가진다. 데이타 스위칭 경로는 수신 포트로부터 전송 포트로 높은 대역폭과 낮은 대기 시간으로 데이타 프레임들을 전송하기 위해 공유 메모리와 메모리 제어 회로를 포함한다. 공유 메모리는 각각의 포트에 의한 타임 슬라이싱된(time sliced) 액세스(타임 슬라이싱)를 위해 적합하게 구성된 복수의 메모리 모듈을 포함한다. 수신 포트는 스트라이핑(striping) 방법에 따라 중앙 메모리에 데이타 프레임을 기입하고, 전송 포트는 중앙 메모리로부터 데이타 프레임을 판독하여 데이타 프레임을 스위칭한다.
본 발명에 따라, 각각의 포트는 중앙 메모리 내에 위치한 각각의 메모리 모듈로 액세스하기 위한 고유의 타임 슬롯을 할당받는다. 타임 슬롯 프로토콜(타임 슬라이싱)은 복수의 포트에 의한 중앙 메모리로의 동시 액세스를 허용한다. 중앙 메모리로의 동시 액세스는, 각각의 액세싱 포트가 각각의 타임 슬롯 동안에 중앙 메모리 내의 서로 다른 모듈에 액세스하기 때문에 가능하다. 본 발명에 따라, 데이타 프레임은 중앙 메모리 내의 복수의 메모리 모듈을 가로질러 스트라이핑된다. 스트라이핑은 데이타 프레임을 작은 부분들로 나누고, 각각의 작은 부분을 메모리 모듈의 각 부분에 저장함으로써 수행된다. 양호하게, 프레임의 시작부는 제1 메모리 모듈에 저장되고, 나머지 프레임 부분들은 타임 슬롯(타임 슬라이스) 프로토콜에 따라 순차적으로 액세스되는 메모리 모듈들(예를 들어, 순차 타임 슬롯들에 대응하는 모듈들) 내에 저장된다.
본 발명에 따라, 메모리 모듈들은 각각의 프레임을 복수의 인접한 버퍼 라인들 내에 저장하도록 구성된다. 버퍼 라인은 모든 메모리 모듈을 가로지르는 하나의 메모리 위치이다. 양호하게, 프레임 버퍼는 32개의 버퍼 라인을 포함한다. 물리적 제1 메모리 모듈(예를 들어, 가장 낮은 어드레스)에 대응하는 타임 슬롯을 기다리기보다는 다음번의 가용 타임 슬롯 내에 수신된 데이타 프레임을 기입함으로써 더 빠른 스위칭이 얻어진다. 이것은 프레임의 시작부가 어떠한 메모리 메듈에 기입되어도 좋으며, 반드시 물리적으로 제1 메모리 모듈일 필요는 없다는 뜻이다. 프레임의 시작부(예를 들어, 프레임의 개시)를 저장하는 메모리 모듈은 전송 포트에게 식별되어져, 전송 포트가 명시된 메모리 모듈에서 시작하는 프레임의 판독을 개시할 수 있게 된다. 수신측 메모리 제어 회로에 포함된 카운터 회로를 사용하여 프레임의 개시에 대응하는 메모리 모듈이 결정된다. 카운터 회로는 공유 메모리에 기입된 프레임과 관련된 버퍼 라인 옵셋을 결정한다(예를 들어, 버퍼 라인 옵셋은 데이타 프레임의 시작부를 포함하는 메모리 모듈을 가리킨다). 유익하게, 다음번 가용 타임 슬롯 동안에 스위칭이 개시되어 스위치 대기 시간이 감소되고 회로 복잡성이 감소된다. 메모리 제어 회로는 어느 메모리 모듈이 프레임의 시작부를 포함하는지를 가리키는 메시지를 발생시키고, 이 메시지를 전송 포트에 전송한다. 전송 포트는, 데이타 프레임을 저장하는 다양한 메모리 모듈의 액세스를 위해 할당받은 타임 슬롯 동안에, 타임 슬라이스 프로토콜에 따라 중앙 메모리로부터 데이타 프레임을 판독한다.
본 발명에 따르면, 메시지는 배럴 쉬프트 프로토콜(barrel shift protocol)에 따라 제1 포트로부터 제2 포트로 전달된다. 배럴 쉬프트 프로토콜에서, 선정된 접속 패턴에 따라 타임 슬로팅된 스위치 재구성을 위해 크로스바 스위치(crossbar switch)가 구성된다. 따라서, 각각의 포트는 서로 다른 포트에 타임 슬라이싱된 액세스를 하며, 메시지를 목적지 포트로의 접속을 위해 할당받은 타임 슬롯 동안에 전송함으로써, 한 포트에서 다른 포트로 메시지가 전송된다.
본 발명의 또 다른 특징에 따르면, 스위치는 복수의 입력/출력(I/O) 포트, 각각의 포트에 결합된 중앙(공유) 메모리, 및 각각의 포트에 관련 및 결합되어 있는 공유 메모리 액세스 제어 회로를 포함한다. 공유 메모리 액세스 제어 회로는 수신 및 송신 제어 회로, 및 데이타 프레임의 시작부의 위치에 대응하는 버퍼 라인 옵셋을 결정하는 카운터 회로를 포함한다. 스위치는 각각의 포트에 결합된 메시지 크로스바 회로와 크로스바 스위치에 결합된 임베딩된(embedded) 포트를 포함한다. 스위치는 또한 중앙 처리 장치를 포함하는 중앙 처리 회로, 버스 인터페이스 회로, 메모리 모듈, 및 전면 패널 인터페이스와 외부 네트워크 인터페이스를 포함한다.
도 1은 본 발명에 따른 피브리 채널 스위치의 블럭도.
도 2는 도 1에 도시된 중앙 메모리의 타임 슬라이싱된 액세스를 도시하는 타이밍도.
도 3은 도 1에 도시된 스위치에 사용되는 프레임 형식.
도 4는 도 1에 도시된 G_포트 ASIC의 기능 블럭도.
도 5는 도 4에 도시된 라우팅 논리의 기능 블럭도.
도 6은 도 4에 도시된 RX-to-TX 논리 회로의 기능 블럭도.
도 7은 도 4에 도시된 TX-from-RX 논리 회로의 블럭도.
도 8은 도 6에 도시된 RX-to-TX 기술자의 타임 슬라이싱된 액세스를 도시하는 도면.
도 9는 멀티캐스트 또는 유니캐스트 프레임을 위한 큐잉 동작의 일반적인 형태를 도시하는 타이밍도.
도 10은 도 1에 도시된 중앙 메모리 내의 메모리 모듈의 조직을 도시하는 도면.
도 11은 도 1에 도시된 스위치에 사용된 배럴 쉬프트 메시지 전달 방식의 타이밍도.
도 12는 도 4에 도시된 버퍼 논리에 포함된 회로의 기능 블럭도.
도 13은 도 4에 도시된 CMI 회로에 관련된 타임 슬롯에 관한 B-M_인덱스 펄스의 타이밍도.
도면의 주요 부분에 대한 부호의 설명
100 : 피브리 채널 스위치
101 : 스위치 회로
102 : 메시지 크로스바
103 : 임베딩된 중앙 처리 장치
104 : 임베딩된 포트
105 : G_포트 도터 보드
106 : FL_포트 도터 보드
107 : 마더 보드
108 : 중앙 메모리
109 : 데이타 경로 제어 회로
110 : 32K×36 SRAM 모듈
111 : G_포트 ASIC
112 : 세르데(serdes)
113 : OE 장치
도 1은 본 발명에 따른 피브리 채널 스위치(스위치, 100)의 블럭도이다. 스위치(100)은 16개까지의 피브리 채널 컴플레인트 장치 포트(Fibre channel complaint device port, N_포트)에 대한 접속을 제공한다. 스위치(100)은 클래스 2, 클래스 3, 및 F 서비스를 지원한다. 클래스 2 및 클래스 3 서비스는 N_포트 관련 트래픽을 운송하며, 클래스 F는 제어 및 관리를 위해 스위치 패브릭에서 사용된다. 유익하게, 스위치(100)은 사용자들이 토폴러지 내의 복수의 스위치들을 상호접속하여 중간급 내지 대형의 피브리 채널 스위칭 패브릭을 형성할 수 있도록 해준다. 추가 스위치(100)이 패브릭에 추가될 때 채널 토폴러지가 변할 수 있다.
스위치(100)은 스위치 회로(101), 메시지 크로스바(102), 임베딩된 중앙 처리 장치(CPU, 103), 및 임베딩된 포트(104)를 포함한다. 스위치(100)은 G_포트 도터 보드(G_port daughter board, 105)도 역시 포함한다. G_포트 도터 보드(105)는 G_포트 ASIC(111), 2개의 세르데(serdes, 112), 및 2개의 OE 장치를 포함한다. G_포트 ASIC(111)은 2개의 피브리 채널 컴플레인트 G_포트(114)를 지원하는 회로를 포함하는 주문형 집적 회로이다. G_포트(114)는 E_포트나 F_포트로서 동작하는 일반 스위치 포트이다. E-포트는 또 다른 스위치의 E_포트로 접속하여 대규모 스위치 패브릭을 형성하는데 사용되는 스위치간 확장 포트이다. F_포트는 N_포트와의 접속에 사용되는 패브릭 액세스 포트이다. G_포트 도터 보드(105)는 1.0625 Gigabaud의 접속 속도를 지원하는 풀 듀플렉스 모드(full duplex mode)에서 동작한다. OE 장치(113)은 인입되는 변조된 빛 신호(광 신호)를 직렬 미분 PECL 신호로 변환하는 전기적 변환 장치에 대한 종래의 광학 장치이다. 각각의 OE 장치(113)은 세르데(112)에 접속된다. 세르데(112)는 직렬 데이타를 병렬 데이타로, 병렬 데이타를 직렬 데이타로 변환하는 직렬화/비직렬화 장치(serializing/deserializing device)이다. 각각의 세르데(112)는 OE 장치(113)으로부터 수신된 직렬 데이타를 G_포트 ASIC(111)에 결합시키며, G_포트 ASIC(111)로부터 수신된 병렬 데이타를 OE 장치(113)에 결합시킨다.
G_포트 ASIC(111)은 (F_포트로서) 외부 N_포트나 (E_포트로서) 다른 스위치(100)에 접속되는 2개의 피브리 채널 포트(G_포트, 114)를 제공하는 주문형 집적 회로이다. 각각의 G_포트(114)는 세르데(112)로부터 수신된 데이타를 스위치 회로(101)이나 메시지 크로스바(102)에 결합시킨다.
임베딩된 CPU(103)은 CPI 버스 인터페이스(121), 프로세스(122), RAM(123), 플래쉬 PROM(124), 구성 플래쉬 메모리(125), 이더넷 포트(126), 직렬 포트(127), 및 전면 패널 논리(128)을 포함한다. 임베딩된 CPU(103)은 스위치(100)의 초기화, 구성, 및 관리를 담당한다.
프로세서(122)는 클럭 속도 25MHz의 Intel i960JF 프로세서이다. RAM(123)은 프로세서(122)에 결합된 4M 바이트의 DRAM이다. RAM(123)은 펌웨어 텍스트(firmware text) 및 데이타 구조를 저장한다. 이더넷 포트(126)은 직렬 포트이며, 10 baseT 이더넷 포트이다. 플래쉬 PROM(124)는 펌웨어 텍스트 및 초기화된 데이타를 위한 플래쉬 EPROM이며, 스위치(100)의 구성 정보를 저장하기 위한 것이다. 전면 패널 논리(128)은 프로세서(122)가 전면 패널 상에 문자를 디스플레이하고 전면 패널 버턴의 상태를 판독할 수 있도록 해주는 논리 회로이다.
CPI 버스 인터페이스(121)은 16비트 양방향 멀티플렉스된 어드레스/데이타 버스, 레이디알(radial) 선택 라인(G_포트당 하나), 및 접수통지 라인(모든 포트에 대해 공유)을 포함한다. 모든 버스 처리는 임베딩된 CPU(103)에 의해 개시된다. CPI 버스는 임베딩된 CPU(103)과 피브리 채널 클럭에 비동기적으로 동작한다. 이것은 (많은 포트를 갖는 스위치들에 과중한 부하가 될 수도 있는) 버스 상에 느슨한 타이밍을 허용한다. 또한, 프로세스(122) 클럭이 피브리 채널 G_포트(114)와는 다른 주파수가 되는 것을 허용한다.
마더 보드(107)은 스위칭 기능을 수행하는 회로[예를 들어, 메시지 크로스바(102), 스위치 회로(101), 및 임베딩된 포트(104)]를 포함한다 임베딩된 포트(104)는 피브리 채널 접속 제어, 스위치 관리, 라우팅 테이블 관리, 및 어드레스 할당/관리 기능을 담당하는 논리적인 N_포트이다. 임베딩된 포트(104)는 멀티캐스트 및 브로드캐스트 기능을 지원하기 위해 SNMP 중개자(agent), 피브리 채널 네임 서버(Fibre channel name server), 및 알리아스 서버(alias server)로서 동작한다. 플래쉬 메모리(도시되지 않음)는 필드 펌웨어 갱신(field firmware update)을 지원하기 위해 임베딩된 CPU(103)과 관련되며, 용이한 변경과 보강을 제공한다. 스위치 회로(101)은 중앙 메모리(108)과 데이타 경로 제어 회로(data path control circuit, 109)를 포함한다. 중앙 메모리(108)은 18개의 32K×36 SRAM 모듈(110)로 된 뱅크이다.
스위치(100)의 스위칭 기능은 중앙 메모리(108)과 데이타 경로 제어 회로(109)에 기초한다. 각각의 G_포트(114)는 수신된 프레임을 중앙 메모리(108) 내에 저장하며, 포워딩 포트(forwarding port)의 전송기에 버퍼 포인터(buffer point)를 전달한다. 포워딩 포트는 또 다른 G_포트(114)이다.
이러한 중앙 메모리 구조에서, 중앙 메모리(108) 내의 한 세트의 버퍼는 프레임의 수신을 위해 사용되기 위해 각각의 G_포트(114)에 할당된다. G_포트(114)가 프레임을 수신하여 확인하고 나면, 이를 중앙 메모리(108) 내의 수신 버퍼들 중 하나에 저장하고, 라우팅 요청을 적절한 목적지 G_포트(114)로 포워딩한다. 목적지 G_포트(114)가 프레임을 전송할 수 있을 때, 중앙 메모리(108)로부터 프레임 내용을 읽어, 이 프레임을 전송 인터페이스에 포워딩한다. 일단, 목적지 G_포트가(114)가 프레임 전송을 준비하는 내부 전송 큐로부터 프레임에 대한 엔트리를 제거하면, 목적지 G_포트(105)는 프레임을 수신한 G_포트(105)에 전송 완료 종료 메시지를 보내어, 수신 G_포트(114)가 수신된 후속 프레임들을 위해 중앙 메모리(108) 내의 버퍼를 재사용할 수 있도록 허용한다.
중앙 메모리(108) 내의 각각의 SRAM 모듈(110)은 모든 G_포트(114)에 대해 공유되며, 타임 슬라이싱되는 형식으로 액세스된다.
도 2는 도 1에 도시된 중앙 메모리(108)로의 액세스와 관련한 타임-슬라이싱 타이밍도를 도시한다. 명칭 r×0 내지 r×15는 각각의 외부적으로 액세스가능한 G_포트(114)에 대해 중앙 메모리(108)에 기입된 수신 데이타를 언급하는 반면, r×16과 t×16은 임베딩된 CPU(103)이 사용하도록 할당받은 버퍼 기입 타임 슬롯과 버퍼 판독 타임 슬롯을 가리킨다.
각각의 SRAM 모듈(110)로의 액세스는 모든 G_포트(114)에 대해 수신 및 전송 기능 사이에서 타임 슬라이싱된다. 또한, 각각의 SRAM 모듈(110)으로의 주어진 G_포트(114)의 액세스는, 각각의 G_포트(114)가 매 2클럭마다 서로 다른 SRAM 모듈(110)에서 타임 슬라이스(타임 슬롯)을 가지도록 시퀀싱된다. 한 클럭 동안 SRAM 모듈(110)으로 기입되거나 그로부터 판독되는 비트수는 G_포트(114)와 데이타 경로 칩(109) 사이에 전송되는 비트수의 2배이기 때문에, 각각의 G_포트(114)와 집합 중앙 메모리(108)간에 인터럽트되지 않은 워드 스트림이 각각의 방향(전송 및 수신)으로 교환되는 것이 허용된다. 이러한 방식으로, 각각의 G_포트(114)로부터의 데이타는 중앙 메모리(108) 내의 모든 SRAM 모듈(110)을 가로질러 스트라이핑된다.
SRAM 모듈(110)과 데이타 경로 제어 회로(109)에 의한 중앙 메모리(108)에 결합된 데이타 버스의 동시 구동을 방지하기 위해, 메모리 판독과 메모리 기입간의 스위칭이 있을 때는 언제나 버스 전환(bus turnaround) 싸이클이 필요하다. 버스 전환 싸이클의 수를 최소화하기 위해, 메모리를 통한 전 싸이클은 다음과 같이 셋업된다: (i) 모든 G_포트에 대해 모든 메모리 기입을 수행(데이타의 수령); (ii) 버스 전환 싸이클을 수행, (iii) 모든 메모리 판독을 수행(데이타 전송); (iv) 다음번 싸이클을 대비하여 버스 전환 싸이클을 수행. 결과적으로, 17개 포트에 대해 총 36개의 메모리 싸이클이 필요하다.
도 10은 중앙 메모리(108) 내의 SRAM 모듈(110)의 배치를 도시한다. 각각의 G_포트(114)는 데이타 프레임을 저장하기 위해 각각의 SRAM 모듈(110)의 일부를 할당받는다. 데이타 프레임들은 전 SRAM 모듈(110)을 가로지르는 하나의 메모리 위치에 저장된 데이타이다. 중앙 메모리(108)은 프레임 버퍼(1002)들로 분할된다. 각각의 프레임 버퍼(1002)는 프레임당 총 2304 바이트의 프레임 버퍼 용량에 대해 32개의 버퍼 라인을 포함한다. 각각의 G_포트(114)는 프레임들을 다음번 가용 SRAM(110) 타임 슬롯에서 시작하는 대응하는 할당된 프레임 버퍼(1002)에 기입한다. 유익하게, 각각의 G_포트(114)는 관련된 프레임 버퍼(1002)에 기입하여 (다음번 가용 모듈이 어떠한 SRAM 모듈(110)이라도 관계없이) 프레임 버퍼의 제1 버퍼 라인 내의 조정 SRAM 모듈(110)에 프레임의 시작부를 저장한다. 각각의 메모리 장치에서의 36비트는 32비트(4바이트)의 데이타와 하나의 프레임 구분 비트, 및 하나의 패러티 비트를 저장하는데 사용된다. 나머지 2개의 데이타 비트는 사용되지 않는다. 메모리 구성은 18개의 SRAM 모듈(110)들을 포함하기 때문에, 각각의 버퍼 라인은 72바이트(18개의 SRAM 모듈(110)×장치당 4바이트)의 데이타를 저장하는데 사용된다.
G_포트(114)와 중앙 메모리(108)을 결합하는 데이타 경로는 17 비트폭이며, 32비트 워드 전체를 메모리로/메모리로부터 전송하는데는 2개 클럭이 필요하다. 전송된 제1 17비트는 버퍼 데이타의 상위 16비트의 반쪽 워드와 프레임 구분 비트를 구축하는데 사용된다. 전송된 제2 17비트는 하위 16비트 반쪽 워드를 위한 것이다. 여기서, 17번째 비트(최상위 비트)는 광역 패러티를 제공하며, 홀수 패러티가 사용된다.
임베딩된 CPU(103)은 수신된 프레임을 위해 사용되는 한 세트의 인접한 버퍼들을 각각의 G_포트(114)에 할당한다. 최대 128개 버퍼가 임의의 한 G_포트(114)에 할당될 수도 있다.
중앙 메모리(108) 내의 마지막 프레임 버퍼는 프레임들의 버퍼링을 위해 사용되지는 않는다. 어떠한 프레임 데이타도 수신되지 않고 있을 때, 각각의 G_포트(114)에 대한 수신된 데이타 타임 슬롯은 여전히 메모리로의 기입 발생을 유발할 것이다. 임의의 프레임 데이타의 파괴를 피하기 위해, 마지막 프레임 버퍼 내의 마지막 버퍼 라인은 수신된 데이타가 없을 때에 메모리로의 기입이 명령되는 스크래치 영역으로서 사용된다.
도 3은 중앙 메모리내의 프레임(300)의 형식을 도시한다. 프레임(300)은 제1 미사용부(301), 프레임-시작 워드(302), 프레임 몸체(303), 프레임 CRC(304), 프레임-끝 워드(305), 및 제2 미사용부(306)을 포함한다. 프레임 몸체(303)은 24바이트의 피브리 채널 프레임 헤더와 0 내지 2112 바이트의 프레임 페이로드(payload)를 포함한다. 프레임 CRC(304)는 프레임 구분 비트를 포함한다. 프레임 구분 비트는 프레임에 의해 점유된 다른 모든 중앙 메모리 워드에 대해 0이 될 것이다.
프레임(300)이 수신될 때, 수신 G_포트(114)는 프레임(300)을 디코딩한 다음, 프레임을 중앙 메모리(108) 내의 버퍼의 제1 버퍼 라인에 기입할 것이다. 대기 시간을 최소화하기 위해, G_포트(114)는, 사용되고 있는 SRAM 모듈(110)이 어떠한 것이든 관계없이 그 SRAM 모듈로의 프레임 기입을 개시할 것이다. 이것은 프레임 워드의 시작부는 프레임 버퍼의 제1 버퍼 라인 내에서 임의의 오프셋에 위치할 수 있다는 것을 의미한다. 전송 G_포트(114)로 프레임을 포워딩할 때, 버퍼 라인 내의 프레임 시작부의 옵셋은 풋 메시지(Put message)의 일부로서 운반된다. 전송 G_포트(114)는 프레임의 시작부가 위치해 있는 중앙 메모리(108)에서 자신이 타임 슬롯이 발생하고 나서야 때문에, 프레임 전송을 개시할 수 있기 때문에, 전송이 개시되기 전에 약간의 대기 시간이 발생될 것이다. 메모리의 타임 슬라이싱의 결과 유발될 수 있는 최대 대기 시간은 모든 수신기와 전송기에 걸쳐 시퀀싱하는데 필요한 총 시간과 동일하다.
일반적으로, 수신 G_포트(114)로부터 전송 G_포트(114)로 포워딩된 프레임(300)에 대해, 프레임 몸체(303)와 프레임 CRC(304)는 스위치(100)에 의한 변경을 받지 않고 수신된 데이타 스트림으로부터 직접 복사된다. 그러나, 프레임-시작과 프레임-끝(302, 305)는, 스위치(100)에 의해 사용되는 추가 정보가 이들 워드들로 인코딩되는 것을 허용하기 위해, 압축된 형식으로 되어 있다.
표 1은 프레임 버퍼 내에 저장된 프레임 시작 워드(302)의 형식을 보여준다.
프레임-시작 워드
비트 기능
31-27 보류
26-24 프레임-시작 구분기= SOFf에 대해 0,0,0= SOFc1에 대해 0,0,1= SOFi1에 대해 0,1,0= SOFn1에 대해 0,1,1= SOFi2에 대해 1,0,0= SOFn2에 대해 1,0,1= SOFi3에 대해 1,1,0= SOFn3에 대해 1,1,1
23-1 보류
0 전송시 CRC 검사/발생CRC 검사시 0CRC 발생시 1
정상적인 프레임 포워딩에 대해, 수신 G_포트(114)는 프레임 시작 워드(302)의 인코딩을 도시된 바와 같이 인코딩하고, 버퍼로부터의 프레임 CRC(304)가 어떠한 수정도 없이 목적지 G_포트(114)로 포워딩될 것임을 나타내기 위해 비트0을 0으로 설정한다. 임베딩된 CPU(103)에 의해 발생된 프레임(300)은, 전송 G_포트(114)가 프레임 CRC(304)를 발생시켜 이를 전송될 프레임 내에 삽입시킬 것을 가리키기 위해 비트0가 일반적으로 1인 것을 제외하고는 동일한 형식을 가진다.
표 2는 프레임 버퍼 내에 저장된 프레임-끝 워드(305)의 형식을 보여주고 있다.
프레임-끝 워드
비트 기능
31-27 보류
26-24 프레임-끝 구분기EOFt에 대해 0,0,0EOFdt에 대해 0,0,1EOFa에 대해 0,1,0EOFn에 대해 0,1,1EOFdti에 대해 1,0,0EOFni에 대해 1,0,1
23-11 보류
10 수신된 프레임 내에 부정확한 S_ID
9 (클래스 1 및 일부 클래스 F 프레임들에 대해 설정되 는) 무효한 서비스-클래스
8 무효한 유니캐스트 가상 채널 ID
7 무효한 멀티캐스트 서비스-클래스
6 라우팅 불능의 D_ID 형식
5 라우팅 테이블 내에 없는 D_ID
4 최대 프레임 크기 초과
3 절삭된 프레임이 탐지됨
2 무효한 프레임-끝 구분자가 탐지됨
1 인코딩 또는 디스플레이 에러가 탐지됨
0 부정확한 CRC
프레임-끝 워드(305)는 수신된 구분기의 유형을 가리킨다. 만일, 인바운드(수신된) 프레임(300) 상에서 에러가 검출되면, 프레임-끝 워드(305)가 중앙 메모리(108)에 기입되기 전에, 비트 0 내지 비트 10에 있는 에러 플래그들 중 하나가 수신 G_포트(114)에 의해 세트될 것이다. (만일 에러가, 임베딩된 G_포트(104)로 프레임을 포워딩시키는 종류의 것이 아니라면) 이것은 프레임 구분자가 목적지 G_포트(114)로 전송될 때, 전송 포트(114)로 하여금 프레임 구분자를 프레임-끝 정상-무효로 바꾸도록 한다.
(1)부정확한 CRC 플래그: CRC 검사기가 배드 CRC를 검출하면, 부정확한 CRC 플래그가 수신 G_포트(114)에 의해 세트된다. 이러한 에러 상태를 갖는 프레임(300)은 여전히 목적지 G_포트(114)로 포워딩된다.
(2)인코딩 또는 패러티 불일치 검출 플래그: 인코딩 또는 패러티 불일치 검출 에러는, 8b/10b 디코딩 논리에 의해 문제가 검출되면, 수신 G_포트(114)에 의해 세트된다. 에러 CRC와 함께, 이러한 종류의 에러를 갖는 프레임(300)은 프레임-끝 구분자가 EOFni로 변경된채 목적지 G_포트(114)로 전송된다.
(3)무효한 프레임-끝 플래그: 만일 프레임(300)이 유효한 프레임-끝 구분자가 아닌 K28.5 캐릭터를 포함하는 오더 세트(ordered set)로 끝난다면, 무효한 프레임-끝 구분자 검출 비트가 세트된다. 이 상태는, 무효한 프레임 구분기가 EOFni 구분기로 대체되어, 프레임이 목적지 포트로 전송되도록 유발한다.
(4)절삭된 프레임 검출 플래그: 프레임의 시작 구분기와 프레임-끝 구분기 사이의 길이가 (24바이트의 헤더+4바이트의 CRC에 대응하는) 28바이트보다 작은 프레임(300)은 절삭된 프레임 검출 에러를 발한다. 다시 한번, 이러한 종류의 에러를 갖는 프레임들은 EOFni가 추가되어 목적지 G_포트(114)로 포워딩된다.
(5)최대 프레임 크기 초과 플래그: 최대 프레임 크기 초과 비트는 프레임 몸체가 24바이트의 헤더 + 2112바이트의 페이로드 + CRC를 초과할 때 세트된다. 이러한 종류의 에러를 갖는 프레임(300)도 역시 목적지 물리적 포트로 전송된다.
(6)라우팅 테이블에 없는 D_ID 플래그: 스위치(100)에 의해 지원되는 D_ID가 수신된 헤더에서는 발견되나, D_ID에 대응하는 어떠한 유효한 엔트리도 라우팅 테이블에서 발견되지 않는다면, 라우팅 테이블에 없는 D_ID 비트가 세트된다. 이 경우에, 프레임은 어떠한 목적지 포트로도 전송되지 않고, 대신에, 임베딩된 G_포트(104)[임베딩된 패브릭 포트]로 포워딩된다
(7)무효한 D_ID 형식 플래그: D_ID의 필드들의 어떤 조합은 스위치(100)에 의해 사용되지 않는다. 이 경우에, 무효한 D_ID 형식 비트가 세트되고, 프레임(300)은 임의의 물리적 패브릭 포트[예를 들어, G_포트(114)]가 아니라 임베딩된 CPU(103)로 포워딩된다.
(8)무효한 멀티캐스트 서비스 클래스 플래그: 무효한 멀티캐스트 서비스 클래스 비트는 멀티캐스트 그룹에 어드레싱된 프레임이 클래스 3 프레임이 아닌 경우에 세트된다. 이러한 종류의 프레임들은 임베딩된 G_포트(104)로 포워딩되어 F_RJT 반응의 발생을 허용한다.
(9)무효한 유니캐스트 가상 채널 ID 플래그: 유니캐스트 트래픽은 가상 채널 0 내지 5상에서 운송되므로, D_ID의 임의의 가상 채널 필드 내에서 6 또는 7의 값과 더불어 수신된 임의의 프레임들은 무효한 유니캐스트 가상 채널 ID 플래그를 세트시킨다. 이러한 유형에 드는 프레임들도 역시 임베딩된 G_포트(104)로 전송된다.
(10)무효한 서비스-클래스 플래그: 클래스 1의 프레임 구분자의 시작과 더불어 수신된 모든 프레임들은 무효한 서비스-클래스 표시자를 턴온시킨다. 이와 같은 프레임들에 대한 적절한 반응이 F_RJT이다. 이러한 유형의 프레임들은 임베딩된 G_포트(104)로 포워딩된다. 또한, 임베딩된 G_포트(104)를 제외한 임의의 어드레스로 향하는 클래스 F 프레임들 역시 무효한 서비스-클래스 비트를 턴온시킬 것이다.
(11)부정확한 ID 플래그: 프레임이 수신되면, S_ID 검사가 인에이블링되고, 프레임의 S_ID 필드가 포트를 위해 프로그램된 S_ID와 정합하지 않는다면, 수신된 프레임은 부정확한 S_ID임 비트가 세트될 것이다. 이러한 에러를 갖는 프레임들은 임베딩된 CPU(103)으로 포워딩될 것이다.
도 4는 본 발명에 따른 G_포트 ASIC(111)의 기능 블럭도이다. G_포트 ASIC(111)은 CPI 인터페이스 회로(401), 통계 논리(402), 하위 수준 인터페이스 논리(403), 특별 메모리 인터페이스(204), RX-to-TX 논리(405), TX-from-RX 논리(406), 수신기 논리(407), 버퍼 회로(410), 제어 메시지 인터페이스(411), 전송기 논리(412), 및 버퍼-to-버퍼 크레딧 논리(413)을 포함한다.
CPI 인터페이스 회로(401)은 다양한 G_포트 ASIC(111) 레지스터(도시되지 않음)를 임베딩된 CPU(103)에 인터페이스시킨다. G_포트 ASIC(111)은 구성, 초기화 및 인터페이스 정보를 제어하는 레지스터들을 포함한다. 전송기 논리(412)는 데이타를 세르데 회로(112)에 결합시키는 전송 회로이다. 하위 수준 인터페이스 논리(403)은 임베딩된 CPU(103)에 감시 능력을 제공하며, 세르데 회로(112)에 사용되는 다양한 인터페이스 신호들을 정의한다.
버퍼 회로(410)은 버퍼 어드레스 발생 논리(430)과 버퍼 타이밍 논리(431)을 포함한다. 버퍼 타이밍 논리(431)은 버퍼 라인 옵셋을 결정하고 G_포트 ASIC의 다른 부분들로 타임 슬롯 타이밍 정보를 운반하는 카운터 회로이다. 버퍼 라인 옵셋은 프레임 버퍼가 시작하는 SRAM 모듈(110)을 가리킨다. 버퍼 타이밍 논리(431)은 메시지 크로스바(102)에 대한 타임 슬롯 정보도 유지한다.
도 12는 메모리 모듈을 가리키는 버퍼 라인 옵셋 신호를 발생시키는 버퍼 논리(410)에 포함된 회로(1200)의 기능 블럭도이다. 회로(1200)은 [마더 보드(107)에 포함된] 인덱스 펄스 발생기로부터 인덱스 펄스 신호를 수신한다. 회로(1200)은 카운터(1202), 레지스터(1203 및 1204), 및 처리 회로(1205)를 포함한다. 인덱스 펄스 발생기(1201)은 중앙 메모리(108)의 싸이클 또는 로테이션마다 한번씩 확정되는 펄싱된 출력인 B_M_Index를 발생시킨다. 인덱스 펄스는 모든 G_포트 ASIC(111), 스위치 회로(101), 및 메시지 크로스바(102)로 분배되어 이들 모든 장치들간의 타임 슬라이싱을 조정한다. 중앙 메모리(108)를 통한 싸이클 또는 로테이션은 전송기 및 수신기에 대한 모든 G_포트(111)을 통한 싸이클이다. 도 13은 타임 슬롯에 관련된 B_M_Index 펄스의 타이밍을 도시한다. 카운터(1202)는 처리 회로(1205)의 출력에 결합된 클리어 입력을 가진다. 레지스터(1203)은 스위치(100)에 포트의 개수를 저장하고, 레지스터(1204)는 포트 번호를 저장한다. 처리 회로(1205)는 카운터(1202)의 출력과 레지스터(1203 및 1204)의 출력에 결합된다. 처리 회로(1205)는 레지스터(12030 및 1204)에 저장된 카운트와 값에 응답하는 버퍼 라인 옵셋을 발생시킨다. 버퍼 라인 옵셋은 데이타 프레임의 시작부를 포함하는 메모리 모듈을 가리킨다. 처리 회로(1205)는 또한 스위치(100) 내의 포트의 개수와 포트 번호 레지스터(1204)에 저장된 값을 기초로 카운터(1202)에 로딩될 값을 계산한다.
수신기 논리(407)은 세르데 회로(112)와 G_포트 ASIC(111)에 내부적인 다양한 논리 회로들 사이의 인터페이스를 제공하는 회로이다. 수신기 논리(407)은 Rx 라우팅 논리(408)과 버퍼 크레딧 논리(409)를 포함한다. 도 5는 Rx 라우팅 논리(408)의 블럭도이다. Rx 라우팅 논리(408)은 라우팅 테이블(501, 502)와 D_ID 분리 회로(503)을 포함한다. D_ID 분리 회로(503)은 프레임이 라우팅될 논리적 패브릭 내의[예를 들어, 스위치(100) 내의] 목적지 물리적 포트[예를 들어, G_포트(111)]을 결정하기 위해 라우팅 테이블(501, 502)를 사용한다. D_ID 분리 회로(503)은 목적지 ID와 수신기 논리(407)에 의해 수신된 서비스 정보의 클래스를 사용하며, RX-to-TX 논리(405)로 전송될 가상 채널 번호와 목적지 물리적 포트 번호를 발생시킨다. 추가적으로, 어떤 라우팅 관련 에러 신호는 수신기 논리(407)로 되전달되어 프레임 버퍼 내의 프레임-끝 워드(305)내에 포함된다. D_ID 분리 회로(503)은, 프레임이 유니캐스트인지 멀티캐스트인지, 프레임이 임베딩된 CPU(103)에 의해 처리되는지의 여부를 가리키는 RX-to-TX 논리(405)로 포워딩되는 신호들을 발생시킨다.
특별 메모리 인터페이스(special memory interface, 404)는 임베딩된 CPU(103)과 중앙 메모리(108) 사이의 인터페이스를 제어하는 회로이다. 통계 논리(402)는 각각의 G_포트(114)에 대한 프레임 트래픽 통계치를 유지하는 회로이다.
G_포트 ASIC(111)은 2개의 TX-from-RX 회로(406)을 포함한다. 각각의 TX-from-RX 회로(406)은, G_포트 ASIC(111) 내의 각각의 G_포트(114) 전송기와 관련되어 국부 패브릭 요소내의 [예를 들어, 스위치(100) 내의] 수신기들로부터의 프레임 전송 요청을 큐잉한다. 각각의 TX-from-RX 논리(406)은 중앙 메모리(108)로부터 세르데 회로(112)로 프레임을 전송하기 위해 전송기 논리(412)와 핸드쉐이킹하며, 또한, 어떤 가상 채널이 전송 크레딧을 가지고 있는지를 결정하기 위해 버퍼-대-버퍼 크레딧 논리(413)으로부터의 신호 상태를 감시하며, 특정 가상 채널 상에 프레임이 전송된 때를 가리키기 위해 버퍼-대-버퍼 크레딧 논리(413) 신호를 전송한다.
RX-to-TX 논리(405)는 수신기 논리(407)로부터 수신된 데이타 프레임의버퍼링을 제어한다. 도 6은 RX-to-TX 논리(405)의 기능 블럭도이다. RX-to-TX 논리(405)는 종료 메시지 핸들러(601), 임베딩된 프로세서 인터페이스(602), Rx 헤더 핸들링(603), 기타 버퍼 리스트 기술자(604), RX 버퍼 기술자(605), RX 버퍼 리스트 링크(606), 리스트 제어 논리(607), 유니캐스트 리스트 기술자(608), 유니캐스트 큐 논리(609), 멀티캐스트 큐 논리(610), 및 풋 메시지 발생기(611)을 포함한다.
G_포트 ASIC(111)은 최대 128개의 수신된 프레임 버퍼에 대응하는 각각의 G_포트(114)에 대한 128개의 기술자 어레이를 제공한다. 각각의 버퍼 기술자는 관련된 수신 버퍼의 상태에 따라 많은 리스트 중 하나에 링크될 수도 있다. 수신 버퍼 기술자의 형식이 아래의 표 3에 도시되어 있다.
RX 버퍼 기술자 형식
비트 기능
12 F_CTL로부터의 End_Sequence
11-7 타임아웃 데드라인
6-0 프레임-시작에 대한 라인옵셋
End_Sequence 비트는 풋 메시지 내에서 전송기로 전달된다. 이 비트는 우선 순위 논리에 의해 사용된다. 프레임 타임 아웃이 탐지될 때, 타임아웃 데드라인은 풋 메시지 내에서 전송 G_포트(114)로 전달된다. 이것은 타임아웃이 발생했는지의 여부를 결정하는데 사용되며, 수신된 프레임들 상의 헤더 처리의 일부로서 RX 버퍼 기술자(605)에도 기입된다. 프레임-시작 워드로서 버퍼 논리(410)으로부터 취해지는 프레임-시작에 대한 라인 옵셋은, 수신된 프레임을 위해 중앙 메모리(108)에 기입된다. 풋 메시지 내에서 전송 G_포트(114)로 전달되는 이 파라미터는 수신된 헤더의 처리 동안에 Rx 버퍼 기술자(605) 내에 기록된다.
수신된 버퍼를 위한 리스트 링크 필드는 수신된 버퍼들의 링크된 리스트를 생성하기 위해 Rx 버퍼 리스트 링크(606)을 구축하는데 사용된다. 링크는 리스트 내에 다음번 수신 버퍼를 위한 포트의 버퍼 번호, 및 링크된 버퍼의 포트 번호를 가리키기 위한 추가 비트(최상위 비트)를 포함한다. 일반적으로, 리스트의 끝은, 버퍼 기술자 내에서 널 리스트 링크를 검사하기보다는 관심 리스트의 테일 포인터(tail pointer)와 버퍼 번호를 비교함으로써 검출된다. 이것은 다양한 큐 조작 동작에 대한 버퍼 기술자로의 기입을 절약한다.
G_포트 ASIC(114)는 [임베딩된 G_포트(104)를 제외한] 스위치(100) 내의 각각의 가능한 전송기(64) 상의 각각의 유니캐스트 가상 채널(6)에 대한 수신 버퍼 기술자[유니캐스트 버퍼 기술자(608)]의 독립적인 링크된 리스트를 유지한다. 각각의 유니캐스트 리스트 기술자(608)은 G_포트 ASIC(111)의 2개의 수신기들[수신 G_포트(114)] 사이에서 공유된다. 하나의 384워드×16비트 RAM이 리스트 포인터를 저장하는데 사용된다. 이 RAM 내의 리스트 기술자 엔트리의 형식이 표4에 아래와 같이 도시되어 있다.
유니캐스트 RX-to-TX 큐 리스트 기술자 형식
비트 기능
15-8 리스트 헤더 포인터
7-0 리스트 테일 포인터
버퍼 기술자 내의 링크와 더불어, 각각의 포인터의 최상위 비트는 G_포트 ASIC(111) 내의 G_포트(114)를 가리키는 반면, 나머지 7개의 비트는 지정된 포트 내의 버퍼 번호를 가리킨다.
기타 버퍼 리스트 기술자(604)는 수신된 버퍼들의 다양한 상태를 다루기 위해 하드웨어 레지스터 헤드 및 테일 포인터(각각 7비트)를 가지는 링크된 리스트이다. 리스트는 프리 버퍼 리스트, 타임-아웃 버퍼 리스트, 요처리 리스트, 이용불능 전송기 리스트, 및 수신기 포화 리스트를 포함한다.
리스트 제어 논리(607)은 유니캐스트 리스트 기술자(608)과 RX 버퍼 기술자(605)를 포함하여 수행될 수 있는 다양한 동작들을 제어한다. 리스트 링크 필드는 RX-to-TX 버퍼 기술자의 리메인더(remainder)에 독립하게 기입될 수 있다. 이것은 기존 리스트의 테일에 새로운 버퍼를 추가할 때 버퍼 기술자 엔트리 상에 판독-수정-기입을 수행할 필요성을 없애준다.
일반적으로, 리스트 기술자와 버퍼 기술자는 함께 액세스된다. 매 2클럭당 한번씩 종료 메시지가 CMI(411)로부터 도달할 것이기 때문에, 이들 기술자들은 중앙 메모리(108)의 하나 걸러 하나씩의 타임 슬롯을 이용하여 종료 메시지가 처리되면서, 타임 슬라이스 방식으로 액세스된다.
도 8은 RX-to-TX 기술자(608)의 타임 슬라이스된 액세스를 도시한다. 각각의 포트 상의 타임 슬라이스는 한 클럭의 길이이며, 판독 포트 상에 할당된 타임 슬라이스는 기입 포트 상에 할당된 타임 슬라이스와 위상이 어긋나 있다. 그 결과, 종료 메시지는, 매 2개 클럭당 한번씩 판독 및 기록 액세스를 수행하면서, 한 클럭에서 RAM의 판독 포트를 사용하고, 다음번 클럭에서 RAM의 기입 포트를 사용하고, 이후의 클럭들 상에서 RAM의 판독 포트를 사용하는 것이 허용된다. 기술자들의 다른 사용자들은 종료 메시지 처리에 관한한 RAM에 대한 동일한 액세스를 가지지만, 종료 메시지 타임 슬롯에 있어서 인터리빙(interleaving)되어 있다.
표5는 비종료 메시지 타임 슬롯 내의 버퍼 리스트에 액세스할 수 있는 요소들을 보여주고 있다. 고정된 우선 순위에 기초하여 조정이 이루어진다. 표에 리스트된 우선 순위 중에서, 레벨 0이 가장 높다.
버퍼 리스트 액세스
우선 순위 타임 슬롯 # 기능
0 1 수신된 헤더, 포트 0
1 1 수신된 헤더, 포트 1
2 1-2 임베딩된 CPU 액세스
3 1-2 아웃바운드 풋 메시지
표에 표시된 수신된 헤더 엔트리는 유니캐스트 및 멀티캐스트 프레임 처리 모두에 적용된다. 포트 0에 대한 우선 순위가 포트 1에 대한 우선 순위보다 높다는 것에 주목한다. 이것은 다소 임의적이며, 수행능력이나 신뢰성에 영향을 주지는 않는다. 이는, 버퍼 리스트에서 사용된 싸이클의 관점에서 수신된 버퍼 처리를 수행하는데 필요한 시간은 최소 프레임 타임에 비교해 짧기 때문이다. 고정된 우선 순위 방법은 회로 구현을 단순화시킨다. 도 9는 유니캐스트 또는 멀티캐스트 수신된 프레임에 대한 큐잉 동작의 일반적인 형식를 도시한다.
rx_routed가 확정된(asserted) 클럭 동안에, 큐잉 논리(609, 610)은 이후 클럭 내의 다음번 판독 슬롯의 사용을 조정한다. 만일, 수신된 프레임이 유니캐스트이면, 가상 채널 번호 외에, 라우팅 표의 출력(전송기 번호)이 포착될 것이다. 또한, [수신기(407) 내의] RX 라우팅 논리에 의해 생성된 다양한 플래그들이 포착된다.
rx_routed의 확정 이후의 클럭 (또는 slot_a가 확정된 후속 클럭)에서, 수신된 헤더를 처리하기 위해 다양한 RX-to-TX 큐잉 논리 RAM에 대한 판독 싸이클이 수행될 것이다. 이후의 클럭(slot_a가 무효화됨)에서, 수신된 헤더 처리에 관련된 임의의 기입이 수행될 것이다.
일반적으로, slot_a가 확정되면, 다음과 같은 동작들이 수행될 것이다.
(i) 종료 슬롯에 대한 RX-to-TX Queue RAM 판독 어드레스를 발생시킨다(종료 동작은 slot_a가 무효화된 때에 실제로 발생한다). 모든 RAM 어드레스는 이들이 사용되는 클럭에 선행하는 클럭에서 발생됨에 유의한다.
(ii) 비-종료(non-finish) 슬롯에 대한 RX-to-TX Queue RAM 판독 어드레스를 발생시킨다. 비-종료 슬롯에 대한 RAM 판독은 slot_a가 확정된 때에 발생하기 때문에, 이들 슬롯에 대한 기입은 slot_a가 무효화된 때에 발생한다.
slot_a가 무효화된 때, 다음과 같은 동작들이 수행될 것이다.
(i) 비-종료 슬롯의 사용을 조정한다. 비-종료 동작을 위해 사용되는 RAM 판독 어드레스는 (비-종료 동작에 대한 RAM 판독이 실제로 발생하는 때에) 이후의 클럭에서 사용되기 위해, 이 클럭 동안에 (조정 동작과 동시에) 발생된다.
(ii) 종료 동작에 대한 RAM 기입 어드레스를 발생시킨다. slot_a가 무효화된 때의 타임 슬라이스는 종료 동작을 위한 RAM 판독이 발생하는 타임 슬라이스이다; 따라서, 이것은 (후속 클럭에서 사용될) RAM 기입 어드레스가 발생되는 클럭이기도 하다.
임베딩된 프로세서 인터페이스(602)는, RX 버퍼 기술자(605)로의 직접 액세스를 수행할 뿐만 아니라 다양한 리스트 추가 및 삭제를 수행하기 위해, 리스트 제어 논리(607)과 핸드쉐이킹한다.
각각의 G_포트(114)에 대한 RX 라우팅 논리는 목적지 물리적 포트 정보와 RX 헤더 표시 신호를 RX 헤더 핸들러(603)으로 포워딩한다. 다음으로, RX 헤더 핸들러(603)은 대응하는 버퍼를 적절한 수신된 버퍼 리스트에 추가한다. 정상적인 유니캐스트 프레임에 대해, 유니캐스트 리스트 기술자(608)에 버퍼가 추가되고, 유니캐스트 큐잉 논리(609)에 엔트리가 추가된다. 임베딩된 CPU(103)으로 향하는 프레임에 대해, 요처리 리스트[기타 리스트 기술자(604)들 중 하나]에 버퍼가 추가된다. 이 리스트가 비게 될 때, 임베딩된 CPU(103)에 인터럽트가 발생할 수 있다.
수신된 멀티캐스트 프레임들은 엔트리가 멀티캐스트 큐잉 논리내에 추가되도록 유발한다.
종료 메시지 핸들러(603)은 2개의 피브리 채널 포트들 중 하나[G_포트(114)]에 어드레싱된 인바운드 종료 메시지를 취하며, 수신된 버퍼 리스트[RX 버퍼 기술자(605) 및 RX 버퍼 링크된 리스트(606)]를 갱신한다.
유니캐스트 큐잉 논리(609)는 풋 메시지가 가상 채널 상의 특정 목적지 전송기[G_포트(114)]에 발생되어야 하는 때를 기억한다. 이를 달성하기 위해, 하드웨어 플래그 세트가 사용된다. 모든 가능한 목적지 전송기 상에는 각각의 유니캐스트 가상 채널과 관련된 Unicast PutMe 플래그가 있다. 유니캐스트 트래픽은 임베딩된 CPU(103)이 아니라 물리적 스위치 포트로만 전송될 수 있기 때문에, 이것은 총 384개(=64 포트 × 6개 유니캐스트 가상 채널)의 PutMe 플래그를 요구한다. 모든 PutMe 플래그들은 G_포트 리셋에 의해 클리어된다. 제1 엔트리가 특정의 전송 G_포트(114)에 대해 유니캐스트 큐에 추가될 때, 대응하는 PutMe 플래그가 세트된다. 유니캐스트 큐잉 논리(609)는 모든 PutMe 플래그들간의 조정을 담당하고, 결과적 정보를 PutMe 메시지 발생기(611)에 포워딩한다. 유니캐스트 큐잉 논리(609)는 풋 메시지를 구축하는데 필요한 나머지 필드들을 얻기 위해, [RX 버퍼 기술자(605) 내의] 적절한 RX 버퍼 기술자 엔트리를 판독하기 위한 싸이클을 수행한다. PutMe 플래그들간의 조정을 위해, 유니캐스트 큐잉 논리(609)는 가상 채널 우선 순위 레벨에 따라 플래그들의 우선 순위를 매긴다. 우선 순위 레벨 내에서, 유니 캐스트 큐잉 논리(609)는 PutMe 플래그들간의 라운드-로빈(round-robin) 알고리즘을 수행한다.
특정의 수신된 버퍼 큐에 대해 풋 메시지가 발생될 때, 대응하는 PutMe 플래그가 클리어된다. 종료 메시지가 큐로부터 수신될 때 PutMe 플래그가 다시 세트되어, 새로 수신된 버퍼 엔트리가 버퍼 리스트의 새로운 헤더가 될 수 있도록 유발한다.
PutMe 플래그들은 수신된 헤더 동작으로 인해 비어있지 않음(non-empty) 리스트에 새로운 버퍼를 추가된다고 세트되지는 않는다는 것에 주목한다. 일반적으로, PutMe 플래그의 상태는 리스트의 현재 헤더에 대해 풋 메시지가 발효되었는지의 여부를 가리키며, 리스트의 헤더가 아닌 아이템의 상태를 반영해서는 안된다.
멀티캐스트 큐잉 논리(610)은 각각의 G_포트(114)에 대해 16개 멀티캐스트 큐 엔트리 세트를 포함한다. 각각의 엔트리는 비트 필드, 가상 채널 번호, 및 버퍼 번호로 구성되며, 하드웨어 레지스터 세트로서 구현된다.
풋 메시지 발생기(611)은 풋 메시지 발생에 대한 유니캐스트 큐잉 논리(609)로부터의 요청과 멀티캐스트 큐잉 논리(610)으로부터의 논리를 수락한다. 차례로, 풋 메시지 발생기(610)은 2개의 인터페이스들간에서 선택하며, 풋 메시지를 CMI(411)로 포워딩한다. 풋 메시지 발생기(611)은 또한 수신 G_포트(114)에 대한 국부 버퍼 번호에 베이스 버퍼 번호 레지스터의 내용을 추가한다. 풋 메시지 발생기(611)은 추가적인 풋 메시지의 발생을 허용하기 위해 유니캐스트 및 멀티캐스트 큐잉 논리(609, 610)과의 핸드쉐이킹을 제공한다.
[CPI 버스 인터페이스 논리(401)에 포함된] 베이스 버퍼 번호 레지스터는 G_포트(114)에 대한 수신된 버퍼를 위해 사용될 시작 버퍼 번호를 명시한다. 특정의 버퍼 기술자에 대응하는 버퍼 번호는 베이스 버퍼 번호+G_포트(114)의 국부 버퍼 번호(포트에 대한 기술자 어레이 내의 버퍼 기술자의 옵셋)과 동일하다.
내부적으로, G_포트 ASIC(111)은 대부분의 리스트 동작에 대해 포트[G_포트(114)]의 (0에서 시작하는) 버퍼 번호를 사용한다. 그러나, 풋 메시지가 발생될 때, 이 레지스터로부터의 베이스 버퍼 번호는 메시지의 버퍼 번호 필드에 위치되기 전에 포트의 버퍼 번호에 추가된다.
베이스 버퍼 번호 레지스터
비트 기능
15-13 보류
12-0 베이스 버퍼 번호
도 7은 도 4에 도시된 TX-from-RX 회로(406)의 블럭도이다. TX-from-RX 회로(406)은 TX-from-RX 상태 머쉰(701), 타임아웃/오프라인 검색 엔진(702), 풋 메시지 핸들러(703), 큐 RAM(704), 종료 메시지 발생기(705), 플래그 메모리(706), 및 전송 프레임 선택 회로(707)을 포함한다. TX-from-RX 상태 머쉰(701)은 큐 RAM(704)와 플래그들(706)에 대한 싸이클을 수행하기 위해 TX-from-RX 회로(406)의 다양한 부분들로부터의 요청을 수락한다. TX-from-RX 상태 머쉰(701)은 종료 메시지 발생기(705)로의 다양한 스트로브와 큐 앤트리 추가와 삭제를 나타내는 todo 플래그뿐만 아니라 큐 RAM(704)를 제어하는 신호들을 발생한다.
큐 RAM(704) 상에 수행되는 동작들에는 (i) Put(큐 엔트리를 기입, 'todo 플래그를 세트함), (ii) 타임아웃/오프라인(큐 엔트리를 판독, todo 플래그를 클리어하고 종료 메시지를 전송), (iii) 전송 프레임 선택(큐 엔트리를 판독하여 todo 플래그를 클리어하고 종료 메시지를 전송), 및 (iv) 임베딩된 프로세서(디버깅을 위한 엔트리를 판독)이 있다. 큐 RAM(704)는 하나의 판독 전용 포트와 하나의 기입 전용 포트가 있다. 기입 전용 포트는 풋 메시지 처리 전용인 반면, 판독 전용 포트는 다른 기능을 위해 공유된다.
프레인 선택 전송 싸이클에 대한 대기 시간을 최소화하기 위해, 고정된 우선 순위 조정 방식이 사용된다. 우선 순위는 최고 순위에서 최저 순위의 순서이다: 1) 전송 프레임 선택, 2) 임베딩된 프로세서 액세스, 및 3) 타임아웃/오프라인 처리.
풋 메시지 핸들러(703)은 대응하는 전송 G_포트(114)로 향하는 풋 메시지를 수락하며, 전송 프레임 큐 엔트리가 큐 RAM(704) 내에 구축되도록 유발한다. CMI(411)은 풋 메시지를 풋 메시지 핸들러(703)으로 전달하고, 핸들러는 레지스터에 큐 엔트리를 구축하는데 필요한 정보를 포착한다. 이후의 클럭 상에서, 큐 엔트리가 큐 RAM(704) 내에 기입되고, 대응하는 todo 플래그가 세트된다. 큐 RAM(704)의 기입 포트는 풋 메시지 처리 전용이기 때문에, 큐 RAM(704)로의기입을 위한 어떠한 조정도 필요없다. 싸이클이 수행될 때, 풋 메시지 버퍼 레지스터의 내용은 큐 RAM 버퍼 어드레스(발원지 포트 번호 + 가상 채널 ID)+엔트리의 내용을 명시하는데 사용된다. 또한, TX-from-RX 상태 머쉰(701)은 TX Todo 플래그들로의 스트로브를 발생하여 새로운 큐 엔트리에 대응하는 플래그가 세트되도록 유발한다.
플래그(706)은 큐 RAM(704) 내의 엔트리가 전송될 프레임을 설명하는 때 플래그되기 위해 사용된다. [원격 G_포트 ASIC(111) 내의 한 쌍의 수신기마다의 가상 채널마다 하나의 엔트리에 대응하는] 스위치(100) 내의 가능한 수신기[수신 G_포트(114)]의 한 쌍마다 8개의 todo 플래그가 있다. 풋 메시지가 수신될 때 todo 플래그가 세트되어 프레임 전송 요청을 표시한다. 이 플래그는, 프레임 타임 아웃, 포트 오프라인 상태, 또는 전송 프레임 선택 회로(707)에 의한 프레임의 전송등으로 인해 큐 RAM(704)로부터 요청이 제거될 때, 클리어된다.
큐 RAM(704)는 전송될 프레임을 기술하는데 필요한 정보를 저장한다. 이 큐 내의 필드들이 표7에 도시되어 있다.
큐 RAM 엔트리
비트 기능
26 RX 포트 번호의 LSbit
25 F_CTL로부터의 End_Sequence
24-20 프레임 타임아웃 데드라인
19-13 라인 옵셋
12-0 버퍼 번호
이들 모든 필드들은 프레임이 큐잉되도록 유발하는 풋 메시지로부터 취해진다. 큐 RAM(704) 내의 각각의 엔트리는 발원지 G_포트 ASIC(111) 내의 한 쌍의 수신기[G_포트(114)]에 의해 공유된다. 큐 엔트리로부터 구축된 종료 메시지의 어드레싱을 허용하기 위해서는 추가적인 정보가 기록되어야 한다. 이러한 목적을 위해, (풋 메시지의 발원지 포트 필드로부터) 수신기의 포트 번호의 최하위 비트가 큐 엔트리에 기록된다.
수신된 프레임의 F_CTL 필드로부터의 End_Sequence 비트는 수신된 풋 메시지 내의 TX-from-RX 큐잉 회로(406)으로 포워딩될 것이다.
풋 메시지로부터의 프레임 타임 데드라인도 역시 기록된다. 이것은, 타임아웃/오프라인 검색 엔진(702)가 가능한 타임아웃 상태에 대한 큐 엔트리를 검사하는데 사용된다.
라인 옵셋 및 버퍼 번호 필드는 중앙 메모리(108) 내의 프레임의 위치를 기술한다. 이들은, 전송용 프레임 판독을 개시하기 위해 전송 프레임 선택 회로(707)에 의해 [버퍼 회로(410) 내에 포함된] 버퍼 타이밍 논리와 버퍼 어드레스 발생 논리로 포워딩된다.
큐 RAM(704)는 각각의 G_포트(114)에 대해 264 워드×27 비트 RAM을 사용하여 구현된다. 큐 RAM(704)로의 어드레스는 Rx 포트 번호의 상위 6개 비트와 가상 채널 번호를 결합하고, 가상 채널 필드는 3개의 하위 비트를 형성하여 발생된다.
전송 프레임 선택 회로(707)은 TX Todo 플래그 내에 세트된 비트들에 기초하여 전송할 프레임들을 선택한다. 8개의 가상 채널은 4개의 서로 다른 우선 순위 레벨 0 내지 3을 가진다. 전송 프레임 선택 회로(707)은 각각의 가상 채널 내의 모든 TX todo 플래그들을 OR함으로써 8개의 가상 채널 프레임 전송 요청 신호를 발생시킨다. 그 다음, 채널에 대한 어떠한 가상 채널 전송 요청도 무시한다. 이들 나머지 요청 중에서, 전송 프레임 선택 회로(707)은, 최상위 우선 순위로써 가상 채널을 선택한다.
어떤 주어진 우선 순위 레벨의 하나 이상의 가상 채널이 전송할 프레임들을 가진다면, 전송 프레임 선택 회로(707)은 바로 이 우선 순위 레벨 내의 가상 채널들 간에 라운드-로빈 공평성 알고리즘을 실행한다.
전송 프레임 선택 회로(707)이 프레임 전송을 위한 큐 엔트리를 선택했을 때, 큐 RAM(7)로의 싸이클을 위해 TX-from-RX 상태 머쉰(701)로 요청이 포워딩된다. 이 싸이클은 큐 RAM(704)로부터 선택된 엔트리를 제거하여 종료 메시지 발생기(705)로 하여금 발원지 수신기에 메시지를 전송하도록 한다. 또한, 전송 프레임 선택 회로(707)에 의해 발생된 스트로브는 큐 엔트리로부터의 버퍼 번호 및 라인 옵셋 필드가 버퍼 논리(410) 내로 로딩되어 버퍼 판독 동작을 개시하도록 한다.
종료 메시지 발생기(705)는 엔트리가 큐 RAM(704)로부터 제거될 때마다 종료 메시지를 생성하도록 TX-from-RX 상태 머쉰(701)에 의해 트리거된다. 타임아웃/오프라인 검색 엔진(702)로부터의 신호는 종료 메시지 발생기가 메시지 내의 상태를 명시하는데 사용된다. 발원지 포트 파라미터는 예외로 하고, 나머지 종료 메시지 필드들은 큐 RAM(704) 어드레스(수신 포트 번호+가상 채널 ID)와 큐 엔트리(수신 포트 번호의 최하위 비트 어드레스)로부터 유도된다.
종료 메시지 발생기(705)는 전송을 위해 큐잉된 하나의 종료 메시지를 CMI(411) 상에 유지하기 위해 2개의 레지스터를 포함한다. 그리고, 하나의 추가 종료 메시지는 중첩된 동작을 위한 것이다. 이들 레지스터들의 오버런(overrun)을 방지하기 위해, TX-from-RX 상태 머쉰(701)은, 2개 레지스터 모두가 유효한 종료 메시지를 포함할 때, 전송 프레임 선택 회로(707)과 타임아웃/오프라인 검색 엔진(702)이 의한 큐 RAM(704)로 액세스하는 것을 차단한다.
타임아웃/오프라인 검색 엔진(702)는 타임 아웃된 프레임들에 대한 큐 엔트리를 [큐 RAM(704)]로부터 제거한다. 또한, 타임아웃/오프라인 검색 엔진(702)는 관련된 전송기[전송 G_포트(114)]가 오프라인되었다면 큐로부터 모든 엔트리를 제거한다.
도 1 및 도 4를 다시 참조하면, 각각의 G_포트 ASIC(111)은 제어 메시지 인터페이스(CMI, 411)을 포함한다. CMI(411)은 하나의 G_포트 ASIC(111) 마다 18비트 폭의 입력 메시지 포트+18비트 폭의 출력 메시지 포트를 포함한다. CMI(411)은 수신 G_포트 ASIC(111)로부터의 전송 요청(Put 메시지)를 전송 G_포트 ASIC(111)로 포워딩하고, 전송 G_포트 ASIC(111)로부터의 완료 상태(종료 메시지)를 수신 G_포트 ASIC(111)로 전송하는데 사용된다.
CMI(411)은 메시지 크로스바(102)를 통해 서로 접속된다. 각각의 G_포트 ASIC(111)은 자신의 출력 메시지 포트를 스위치(100) 내의 각각의 가능한 목적지 G_포트 ASIC(111)로 타임 슬라이싱한다. 만일, 특정의 G_포트 ASIC(111)이 대응하는 타임 슬롯 동안에 특정의 목적지 G_포트 ASIC(111)로 전송할 메시지를 가진다면, G_포트 ASIC(111)은 메시지를 전송할 타임 슬롯을 가질 것이다. 그렇지 않다면, 출력 메시지 포트 라인은 어떠한 메시지도 존재하지 않음을 나타내도록 드라이브될 것이다.
G_포트 ASIC(111)의 출력 메시지 포트의 타임 슬라이싱은, 어떤 주어진 클럭 싸이클에서, 각각의 G_포트 ASIC(111) 출력 메시지 포트가 서로 다른 목적지 G_포트 ASIC(111)에 타임 슬라이싱되도록 서로간에 위상차가 나도록 배치될 것이다. 따라서, 주어진 G_포트 ASIC(111)의 입력 포트에 나타나는 메시지도 역시 스위치(100) 내의 각각의 가능한 발원지 G_포트 ASIC(111)을 통해 타임 슬라이싱될 것이다.
메시지 크로스바(102)는 발원지 G_포트 ASIC(111) 출력 메시지 포트로부터 목적지 G_포트 ASIC(111) 입력 메시지 포트로 메시지를 전송하기 위해서 2개의 클럭을 필요로 한다. 주어진 목적지에 대한 각각의 타임 슬라이스는 2개의 클럭으로 구성된다. 이것은 목적지 G_포트 ASIC(111)로 하나의 메시지를 전송하는데 필요한 시간의 양이다.
메시지 크로스바(102)의 동작을 설명하는 타이밍도가 도 11에 도시되어 있다.
메시지 크로스바(102)는 복수의 접속 상태를 가지며, 각각의 상태는 복수의 G_포트(111)-대-G_포트(111)의 접속을 가진다. 메시지 크로스바(102)는 각각의 G_포트(111)을 서로 다른 G_포트(111)로 접속하기 위해 복수의 접속 상태를 통해 싸이클링한다. CMI(411)은 인덱스 펄스 발생기(1201) 카운터에 의해 발생된 B_M_인덱스를 사용하여 현재의 접속 상태를 결정하는 회로를 포함한다.
수신자 G_포트 ASIC(111)은 프레인이 전송되었다는 통지를 받았을 때 수신 버퍼를 자유로이 재사용한다. 수신 버퍼가 자유로인 된 때를 결정하기 위해 멀티캐스트의 경우 복수의 통지가 필요하다. CMI(411)을 통한 전송을 위해 2개의 메시지, 즉, Put 및 종료 메시지가 정의된다. 풋 메시지는 수신 G_포트 ASIC(111)이 전송 G_포트 ASIC(111)에게 포워딩할 프레임이 도달했음을 알리는데 사용된다. 풋 메시지는 유니캐스트 및 멀티캐스트 모두에게 사용된다. 수신된 멀티캐스트 프레임에 대해서는 복수의 풋 메시지가 내려진다. 풋 메시지의 형식은 표8에 도시되어 있다.
풋 메시지 형식
워드 비트 기능
0 17 메시지 존재여부 비트, 0=메시지 존재, 1=메시지 없음
0 16-15 Op 코드 비트 0,1 = Put 메시지
0 14-2 시스템-와이드(system-wide) 버퍼 번호
0 1 사용되지 않음
0 0 원천지 수신기의 버퍼 번호
1 17 목적지 전송기의 버퍼 번호
1 16-14 가상 채널 번호
1 13 RX 프레임의 F_CTL로부터의 End_Sequence 비트
1 12 보류
1 11-7 타임아웃 값
1 6-0 라인옵셋
목적지 G_포트 ASIC(111)과 발원지 G_포트 ASIC(111)은 메시지가 론칭되는 메시지 타임 슬롯 내에서의 위치에 의해 유추된다. 그러나, 각각의 G_포트 ASIC(111)은 2개의 피브리 채널 포트[2개의 G_포트(114)]를 포함하기 때문에, 메시지에 대한 발원지 및 목적지 포트를 충분히 결정하기 위해서는 발원지 수신기 포트 번호를 위한 한 비트와 목적지 전송기 포트 번호를 위한 비트가 필요하다.
프레임이 포워딩될 가상 채널을 가리키기 위해 3비트 폭의 가상 채널 필드가 필요하다.
수신된 프레임의 F_CTL의 End_Sequence가 포착되어 G_포트 ASIC(111) 전송 큐잉 논리 내의 우선 순위 논리에 의해 사용되기 위해 풋 메시지로 포워딩된다.
타임아웃 처리에 사용되기 위해 풋 메시지 내의 타임 스탬프 값에 5비트가 할당된다.
라인 옵셋 값은 수신된 프레임(300)에 대해 프레임-시작 워드(302)의 버퍼 라인 내의 32비트 워드 옵셋을 가리킨다.
풋 메시지로 포워딩된 버퍼 번호는 프레임(300)이 저장된 중앙 메모리(108) 내의 버퍼의 스위치-와이드(switch-wide) 번호이다.
종료 메시지는 전송 G_포트 ASIC(111)이 수신 G_포트 ASIC(111)에게 전송기가 프레임(300)의 전송을 완료했음을 통지하는데 사용된다. 종료 메시지의 형식이 표9에 도시되어 있다.
종료 메시지 형식
워드 비트 기능
0 17 메시지 존재 여부 비트, 0=메시지 존재1=메시지 없음
0 16-15 Op 코드 비트 1,1 = 종료 메시지
0 14-2 시스템-와이드 버퍼 번호
0 1 사용되지 않음
0 0 목적지 전송기의 포트 번호
1 17 원천지 전송기의 포트 번호
1 16-14 가상 채널 번호
1 13-12 상태
1 11-0 사용되지 않음
풋 메시지에서, 발원지 및 목적지 G_포트 ASIC(111) 번호는 메시지 몸체 내의 메시지 타임 슬라이스+전송기 포트 번호+수신기 포트 번호 비트를 사용하여 구축된다.
종료 메시지의 상태 필드를 위한 값들이 표10에 도시되어 있다.
종료 메시지 상태
의미
0x7F-4 보류
3 수신기 넘침
2 전송기 이용불능
1 타임아웃 탐지
0 성공적인 동작
만일, 임베딩된 CPU(103)이 특정 수신기 G_포트 ASIC(111)과 관련된 모든 엔트리들을 목적지 포트[또 다른 G_포트 ASIC(111)]로부터 포화되도록 강제한다면, 수신기 포화됨 상태가 리턴될 것이다.
전송기 이용불능 상태는, 목적지 G_포트 ASIC(111)이 임베딩된 CPU(103)에 의해 이용불능으로 표시되었을 가리킨다.
프레임(300) 상에서 타임아웃이 탐지되면 전송기에 의해 타임아웃 탐지가 전송된다.
성공적인 동작은 앞서 말한 상태들이 없을 시에 리턴될 것이다.
상술한 설명에서, 본 발명은 신규한 유익한 피브리 채널 스위칭 시스템과 방법을 제공한다. 앞에서의 논의들은 본 발명의 예시적 방법과 실시예들을 다루고 있다. 당업자라면, 본 발명은 그 정신과 근본적인 특징으로부터 벗어나지 않고 다른 특정한 형태로 구현될 수도 있음을 이해할 것이다. 따라서, 앞선 설명들은 첨부된 청구 범위를 예시하는 것이지 제한하기 위한 것은 아니다.
스위칭 시스템은 데이타 스위칭 경로 및 메시지 스위칭 경로를 가지며, 각각의 포트는 중앙 메모리 내에 위치한 각각의 메모리 모듈로 액세스하기 위한 고유의 타임 슬롯을 할당받으며, 메모리 모듈들은 각각의 프레임을 복수의 인접한 버퍼 라인들 내에 저장하도록 구성되며, 메시지는 배럴 쉬프트 프로토콜(barrel shift protocol)에 따라 제1 포트로부터 제2 포트로 전달되며, 스위치는 복수의 입력/출력(I/O) 포트, 각각의 포트에 결합된 중앙(공유) 메모리, 및 각각의 포트에 관련 및 결합되어 있는 공유 메모리 액세스 제어 회로를 포함하는 피브리 채널 스위칭 장치가 제공된다.

Claims (8)

  1. 복수의 포트(port), 및 복수의 메모리 모듈을 포함하는 중앙 메모리를 갖는 네트워크에서 각각이 프레임 시작부를 갖고 있는 데이타 프레임들을 스위칭하는 방법에 있어서,
    제1 포트에서 데이타 프레임을 수신하는 단계;
    목적지 포트를 결정하는 단계;
    중앙 메모리 내의 복수의 메모리 모듈을 가로질러 상기 데이타 프레임을 스트라이핑(striping)하는 단계;
    어떤 메모리 모듈이 상기 프레임의 시작부를 저장하는지를 가리키는 메시지를 발생하는 단계; 및
    상기 목적지 포트로 상기 메시지를 전송하는 단계
    를 포함하는 것을 특징으로 하는 데이타 프레임들을 스위칭하는 방법.
  2. 제1항에 있어서, 상기 중앙 메모리 내의 상기 복수의 메모리 모듈을 가로질러 상기 데이타 프레임을 스트라이핑하는 단계는, 다음번의 가용 메모리 모듈에 상기 데이타 프레임의 시작부를 기입하는 단계를 포함하는 것을 특징으로 하는 데이타 프레임들을 스위칭하는 방법.
  3. 제1항에 있어서,
    상기 메시지를 수신하는 단계;
    어떤 메모리 모듈이 상기 프레임의 시작부를 저장하는지를 결정하는 단계; 및
    상기 프레임의 시작부를 저장하는 메모리 모듈에 대응하는 다음번 타임 슬롯(time slot)에서 시작하는 중앙 메모리로부터 상기 데이타 프레임을 판독하는 단계
    를 더 포함하는 것을 특징으로 하는 데이타 프레임들을 스위칭하는 방법.
  4. 제1항에 있어서, 각각의 포트로부터 하나 거른 다른 포트로의 타임 슬롯팅된 메시지 경로를 발생시키기 위해, 각각의 포트를 하나 거른 다른 포트와 실질적으로 결합시키는 단계를 더 포함하는 것을 특징으로 하는 데이타 프레임들을 스위칭하는 방법.
  5. 제1 포트로부터 제2 포트로 데이타를 스위칭시키기 위한 복수의 포트를 갖는 네트워크 스위칭 시스템에 있어서,
    메시지 경로(message path)는 각각의 포트에 결합된 복수의 접속 상태를 갖는 크로스바 스위치(crossbar switch), 및 각각의 포트 및 상기 크로스바 스위치와 결합되어 상기 크로스바 스위치로의 액세스를 제어하는 메시지 컨트롤러(message controller)를 포함하며,
    데이타 경로(data path)는 각각의 포트에 결합된 복수의 메모리 모듈을 포함하는 중앙 메모리(central memory), 및 각각의 포트에 결합되어 상기 포트들이 상기 복수의 메모리 모듈에 액세스하는 것을 제어하기 위한 메모리 액세스 컨트롤러(memory access controller)를 포함하는 것
    을 특징으로 하는 네트워크 스위칭 시스템.
  6. 제5항에 있어서, 상기 메모리 액세스 컨트롤러는
    카운터 출력 및 컨트롤 입력을 갖는 카운팅 회로(counting circuit);
    상기 카운터의 상기 제어 입력에 결합된 펄스화된 출력(pulsed output)을 갖는 인덱스 펄스 발생기(index pulse generator);
    포트 번호를 저장하는 레지스터(register); 및
    상기 카운팅 회로에 결합된 제1 입력, 상기 레지스터에 결합된 제2 입력, 및 메모리 모듈 옵셋을 가리키는 출력을 갖는 처리 회로(processing circuit)
    를 포함하는 것을 특징으로 하는 네트워크 스위칭 시스템.
  7. 제5항에 있어서, 상기 메시지 컨트롤러는
    카운트 출력과 제어 입력을 갖는 카운팅 회로;
    상기 카운터의 상기 제어 입력에 결합된 펄스화된 출력을 갖는 인덱스 펄스 발생기; 및
    상기 카운팅 회로에 결합된 제1 입력, 및 상기 크로스바 스위치의 접속 상태를 가리키는 출력을 갖는 처리 회로
    를 포함하는 것을 특징으로 하는 네트워크 스위칭 시스템.
  8. 복수의 포트, 및 복수의 메모리를 포함하는 중앙 메모리를 갖는 네트워크에서 데이타 프레임들을 스위칭하는 방법에 있어서,
    각각의 메모리 모듈로의 액세스를 위해 각각의 포트에 타임 슬롯을 할당하는 단계;
    복수의 포트에서 데이타 프레임을 수신하는 단계; 및
    각각의 수신된 데이타 프레임에 대해,
    상기 데이타 프레임을 제1 부분을 포함하는 여러 부분들로 분할하는 단계;
    다음번에 발생하는 메모리 액세스 타임 슬롯 동안, 메모리 모듈에 상기 제1 부분을 기입하는 단계;
    상기 포트에 할당된 타임 슬롯 동안, 상기 중앙 메모리에 나머지 프레임 부분들을 기입하는 단계;
    목적지 포트를 결정하는 단계; 및
    상기 목적지 포트에 판독 요청을 전송하는 단계
    를 포함하는 것을 특징으로 하는 데이타 프레임들을 스위칭하는 방법.
KR1019980009677A 1997-03-21 1998-03-20 피브리 채널 스위칭 시스템과 방법 Withdrawn KR19980080498A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8/823,025 1997-03-21
US08/823,025 US6160813A (en) 1997-03-21 1997-03-21 Fibre channel switching system and method

Publications (1)

Publication Number Publication Date
KR19980080498A true KR19980080498A (ko) 1998-11-25

Family

ID=25237592

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980009677A Withdrawn KR19980080498A (ko) 1997-03-21 1998-03-20 피브리 채널 스위칭 시스템과 방법

Country Status (5)

Country Link
US (2) US6160813A (ko)
EP (1) EP0876075A3 (ko)
JP (1) JPH118636A (ko)
KR (1) KR19980080498A (ko)
CA (1) CA2232696A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100309257B1 (ko) * 1999-12-29 2001-09-28 서평원 교환기에서 멀티 채널데이터 그룹 스위칭 방법 및 그 장치

Families Citing this family (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978379A (en) 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
US6118776A (en) * 1997-02-18 2000-09-12 Vixel Corporation Methods and apparatus for fiber channel interconnection of private loop devices
US6185203B1 (en) 1997-02-18 2001-02-06 Vixel Corporation Fibre channel switching fabric
US6160813A (en) 1997-03-21 2000-12-12 Brocade Communications Systems, Inc. Fibre channel switching system and method
JPH11145996A (ja) 1997-11-12 1999-05-28 Canon Inc 通信ネットワーク及びそこで用いる伝送制御方法
US6289386B1 (en) * 1998-05-11 2001-09-11 Lsi Logic Corporation Implementation of a divide algorithm for buffer credit calculation in a high speed serial channel
US6195703B1 (en) 1998-06-24 2001-02-27 Emc Corporation Dynamic routing for performance partitioning in a data processing network
US6438595B1 (en) 1998-06-24 2002-08-20 Emc Corporation Load balancing using directory services in a data processing system
US6421711B1 (en) * 1998-06-29 2002-07-16 Emc Corporation Virtual ports for data transferring of a data storage system
US6260120B1 (en) 1998-06-29 2001-07-10 Emc Corporation Storage mapping and partitioning among multiple host processors in the presence of login state changes and host controller replacement
US6597691B1 (en) * 1998-09-01 2003-07-22 Ancor Communications, Inc. High performance switching
US6381647B1 (en) 1998-09-28 2002-04-30 Raytheon Company Method and system for scheduling network communication
US6266702B1 (en) 1998-09-28 2001-07-24 Raytheon Company Method and apparatus to insert and extract data from a plurality of slots of data frames by using access table to identify network nodes and their slots for insertion and extraction data
US6317415B1 (en) 1998-09-28 2001-11-13 Raytheon Company Method and system for communicating information in a network
US6484207B1 (en) * 1998-11-17 2002-11-19 Cisco Technology, Inc. Switching system having interconnects dedicated to store and retrieve data including management of dedicated memory segments allocated when a general memory is depleted
US6526452B1 (en) 1998-11-17 2003-02-25 Cisco Technology, Inc. Methods and apparatus for providing interfaces for mixed topology data switching system
US6463065B1 (en) 1998-11-17 2002-10-08 Cisco Technology, Inc. Mixed topology data switching system
US6665673B1 (en) 1998-11-17 2003-12-16 Cisco Technology, Inc. Channel communication system
US7430171B2 (en) * 1998-11-19 2008-09-30 Broadcom Corporation Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost
US6608819B1 (en) * 1999-01-12 2003-08-19 Mcdata Corporation Method for scoring queued frames for selective transmission through a switch
US6982974B1 (en) * 1999-01-15 2006-01-03 Cisco Technology, Inc. Method and apparatus for a rearrangeably non-blocking switching matrix
US6724757B1 (en) 1999-01-15 2004-04-20 Cisco Technology, Inc. Configurable network router
US7293090B1 (en) 1999-01-15 2007-11-06 Cisco Technology, Inc. Resource management protocol for a configurable network router
US6934305B1 (en) 1999-01-15 2005-08-23 Cisco Technology, Inc. Method and apparatus for detecting errors in a backplane frame
US6856627B2 (en) 1999-01-15 2005-02-15 Cisco Technology, Inc. Method for routing information over a network
US6226299B1 (en) * 1999-01-20 2001-05-01 Emulex Corporation Sanitizing fibre channel frames
US7031305B1 (en) * 1999-05-24 2006-04-18 Advanced Micro Devices, Inc. Apparatus and method for programmable memory access slot assignment
US6842422B1 (en) * 1999-06-15 2005-01-11 Marconi Communications, Inc. Data striping based switching system
US6697359B1 (en) * 1999-07-02 2004-02-24 Ancor Communications, Inc. High performance switch fabric element and switch systems
US6381642B1 (en) * 1999-10-21 2002-04-30 Mcdata Corporation In-band method and apparatus for reporting operational statistics relative to the ports of a fibre channel switch
WO2001043328A1 (en) * 1999-12-10 2001-06-14 Qlogic Switch Products, Inc. Fibre channel credit extender and repeater
US6742034B1 (en) * 1999-12-16 2004-05-25 Dell Products L.P. Method for storage device masking in a storage area network and storage controller and storage subsystem for using such a method
GB2358764B (en) * 2000-01-28 2004-06-30 Vegastream Ltd Casualty-based memory access ordering in a multriprocessing environment
US7978695B2 (en) * 2000-06-05 2011-07-12 Qlogic Switch Products, Inc. Hardware-enforced loop and NPIV hard zoning for fibre channel switch fabric
AU2001275252A1 (en) * 2000-06-05 2001-12-17 Qlogic Switch Products, Inc. Hardware-enforced loop-level hard zoning for fibre channel switch fabric
US6526024B1 (en) * 2000-06-30 2003-02-25 Marconi Communications, Inc. Synchronization of asynchronous back-pressure from one destination to multiple sources
AU2001278944A1 (en) * 2000-08-07 2002-02-18 Inrange Technologies Corporation Method and apparatus for imparting fault tolerance in a director switch
US6999460B1 (en) * 2000-10-16 2006-02-14 Storage Technology Corporation Arbitrated loop port switching
US7301956B2 (en) * 2001-05-10 2007-11-27 Brocade Communications Systems, Inc. System and method for storing and retrieving multi-speed data streams within a network switch
US9094328B2 (en) 2001-04-24 2015-07-28 Brocade Communications Systems, Inc. Topology for large port count switch
US20040004966A1 (en) * 2001-04-27 2004-01-08 Foster Michael S. Using virtual identifiers to route transmitted data through a network
US6567413B1 (en) * 2001-05-18 2003-05-20 Network Elements, Inc. Optical networking module including protocol processing and unified software control
US6728848B2 (en) * 2001-06-11 2004-04-27 Hitachi, Ltd. Method and system for backing up storage system data
US7042842B2 (en) * 2001-06-13 2006-05-09 Computer Network Technology Corporation Fiber channel switch
US7072298B2 (en) * 2001-06-13 2006-07-04 Computer Network Technology Corporation Method and apparatus for rendering a cell-based switch useful for frame based protocols
US7260104B2 (en) * 2001-12-19 2007-08-21 Computer Network Technology Corporation Deferred queuing in a buffered switch
US7218636B2 (en) * 2001-06-13 2007-05-15 Inrange Technology Corporation Method and apparatus for rendering a cell-based switch useful for frame based application protocols
US6941357B2 (en) * 2001-07-18 2005-09-06 Dell Products L.P. Fibre channel switching appliance
US7809852B2 (en) * 2001-07-26 2010-10-05 Brocade Communications Systems, Inc. High jitter scheduling of interleaved frames in an arbitrated loop
US7054312B2 (en) * 2001-08-17 2006-05-30 Mcdata Corporation Multi-rate shared memory architecture for frame storage and switching
US6862293B2 (en) * 2001-11-13 2005-03-01 Mcdata Corporation Method and apparatus for providing optimized high speed link utilization
US7599360B2 (en) 2001-12-26 2009-10-06 Cisco Technology, Inc. Methods and apparatus for encapsulating a frame for transmission in a storage area network
US7499410B2 (en) 2001-12-26 2009-03-03 Cisco Technology, Inc. Fibre channel switch that enables end devices in different fabrics to communicate with one another while retaining their unique fibre channel domain—IDs
US7616637B1 (en) 2002-04-01 2009-11-10 Cisco Technology, Inc. Label switching in fibre channel networks
US6920510B2 (en) * 2002-06-05 2005-07-19 Lsi Logic Corporation Time sharing a single port memory among a plurality of ports
US7206288B2 (en) 2002-06-12 2007-04-17 Cisco Technology, Inc. Methods and apparatus for characterizing a route in fibre channel fabric
US7154886B2 (en) 2002-07-22 2006-12-26 Qlogic Corporation Method and system for primary blade selection in a multi-module fiber channel switch
US7230929B2 (en) * 2002-07-22 2007-06-12 Qlogic, Corporation Method and system for dynamically assigning domain identification in a multi-module fibre channel switch
WO2004012399A1 (en) * 2002-07-30 2004-02-05 Xyratex Technology Limited Apparatus and method for connecting fibre channel devices via bypass buffers
US7089234B2 (en) * 2002-07-31 2006-08-08 International Business Machines Corporation Communicating state information in a network employing extended queries and extended responses
US7334046B1 (en) 2002-08-05 2008-02-19 Qlogic, Corporation System and method for optimizing frame routing in a network
US7397768B1 (en) 2002-09-11 2008-07-08 Qlogic, Corporation Zone management in a multi-module fibre channel switch
US7362717B1 (en) 2002-10-03 2008-04-22 Qlogic, Corporation Method and system for using distributed name servers in multi-module fibre channel switches
US6886141B1 (en) 2002-10-07 2005-04-26 Qlogic Corporation Method and system for reducing congestion in computer networks
US7319669B1 (en) 2002-11-22 2008-01-15 Qlogic, Corporation Method and system for controlling packet flow in networks
US7433326B2 (en) 2002-11-27 2008-10-07 Cisco Technology, Inc. Methods and devices for exchanging peer parameters between network devices
KR101086592B1 (ko) * 2003-04-22 2011-11-23 에이저 시스템즈 인크 패킷 저장 방법, 버퍼 관리 방법, 손실 버퍼 검출 방법 및공유형 메모리
US7139963B1 (en) 2003-05-15 2006-11-21 Cisco Technology, Inc. Methods and apparatus to support error-checking of variable length data packets using a multi-stage process
US7152132B2 (en) * 2003-07-16 2006-12-19 Qlogic Corporation Method and apparatus for improving buffer utilization in communication networks
US7388843B2 (en) 2003-07-16 2008-06-17 Qlogic, Corporation Method and apparatus for testing loop pathway integrity in a fibre channel arbitrated loop
US7525910B2 (en) 2003-07-16 2009-04-28 Qlogic, Corporation Method and system for non-disruptive data capture in networks
US7620059B2 (en) 2003-07-16 2009-11-17 Qlogic, Corporation Method and apparatus for accelerating receive-modify-send frames in a fibre channel network
US7355966B2 (en) 2003-07-16 2008-04-08 Qlogic, Corporation Method and system for minimizing disruption in common-access networks
US7463646B2 (en) 2003-07-16 2008-12-09 Qlogic Corporation Method and system for fibre channel arbitrated loop acceleration
US7453802B2 (en) 2003-07-16 2008-11-18 Qlogic, Corporation Method and apparatus for detecting and removing orphaned primitives in a fibre channel network
US7471635B2 (en) 2003-07-16 2008-12-30 Qlogic, Corporation Method and apparatus for test pattern generation
US7420982B2 (en) 2003-07-21 2008-09-02 Qlogic, Corporation Method and system for keeping a fibre channel arbitrated loop open during frame gaps
US7580354B2 (en) 2003-07-21 2009-08-25 Qlogic, Corporation Multi-speed cut through operation in fibre channel switches
US7894348B2 (en) 2003-07-21 2011-02-22 Qlogic, Corporation Method and system for congestion control in a fibre channel switch
US7525983B2 (en) 2003-07-21 2009-04-28 Qlogic, Corporation Method and system for selecting virtual lanes in fibre channel switches
US7558281B2 (en) 2003-07-21 2009-07-07 Qlogic, Corporation Method and system for configuring fibre channel ports
US7684401B2 (en) 2003-07-21 2010-03-23 Qlogic, Corporation Method and system for using extended fabric features with fibre channel switch elements
US7430175B2 (en) 2003-07-21 2008-09-30 Qlogic, Corporation Method and system for managing traffic in fibre channel systems
US7522529B2 (en) 2003-07-21 2009-04-21 Qlogic, Corporation Method and system for detecting congestion and over subscription in a fibre channel network
US7466700B2 (en) 2003-07-21 2008-12-16 Qlogic, Corporation LUN based hard zoning in fibre channel switches
US7406092B2 (en) 2003-07-21 2008-07-29 Qlogic, Corporation Programmable pseudo virtual lanes for fibre channel systems
US7646767B2 (en) 2003-07-21 2010-01-12 Qlogic, Corporation Method and system for programmable data dependant network routing
US7573909B2 (en) 2003-07-21 2009-08-11 Qlogic, Corporation Method and system for programmable data dependant network routing
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
US7447224B2 (en) 2003-07-21 2008-11-04 Qlogic, Corporation Method and system for routing fibre channel frames
US7630384B2 (en) 2003-07-21 2009-12-08 Qlogic, Corporation Method and system for distributing credit in fibre channel systems
US7583597B2 (en) 2003-07-21 2009-09-01 Qlogic Corporation Method and system for improving bandwidth and reducing idles 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
US7522522B2 (en) 2003-07-21 2009-04-21 Qlogic, Corporation Method and system for reducing latency and congestion in fibre channel switches
US7477655B2 (en) 2003-07-21 2009-01-13 Qlogic, Corporation Method and system for power control of fibre channel switches
US7120789B2 (en) * 2003-08-14 2006-10-10 International Business Machines Corporation System and method for portable on-demand central processing unit
US7225440B2 (en) * 2003-08-14 2007-05-29 International Business Machines Corporation System and method for manufacturing and updating insertable portable operating system module
US20050038945A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation System and method for interfacing a portale processing unit with computer system
US7225448B2 (en) * 2003-08-14 2007-05-29 Lenovo (Singapore) Pte. Ltd. System and method for hibernating application state data on removable module
US7308584B2 (en) * 2003-08-14 2007-12-11 International Business Machines Corporation System and method for securing a portable processing module
US7032053B2 (en) * 2003-08-14 2006-04-18 International Business Machines Corporation System and method for loading, executing, and adapting a portable running operation system from a removable module to multiple computer systems
US20050038879A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation System and method for discovery of remote device driver functionality and interface
US7352701B1 (en) 2003-09-19 2008-04-01 Qlogic, Corporation Buffer to buffer credit recovery for in-line fibre channel credit extension devices
US7415002B2 (en) * 2003-10-24 2008-08-19 Brocade Communications, Inc. Circuit synchronization over asynchronous links
US7103504B1 (en) 2003-11-21 2006-09-05 Qlogic Corporation Method and system for monitoring events in storage area networks
US7620695B2 (en) * 2003-12-02 2009-11-17 International Business Machines Corporation Storing fibre channel information on an Infiniband administration data base
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
US7350000B2 (en) * 2004-02-25 2008-03-25 International Business Machines Corporation User interface for representing logical path information and displaying available adapters in a storage subsystem
JP2005267502A (ja) * 2004-03-22 2005-09-29 Hitachi Ltd データ転送用スイッチ
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
US7669190B2 (en) 2004-05-18 2010-02-23 Qlogic, Corporation Method and system for efficiently recording processor events in host bus adapters
JP3780457B2 (ja) * 2004-06-07 2006-05-31 株式会社トヨタIt開発センター 信号処理装置、方法、プログラムおよび記録媒体
US20060013135A1 (en) * 2004-06-21 2006-01-19 Schmidt Steven G Flow control in a switch
US7623519B2 (en) * 2004-06-21 2009-11-24 Brocade Communication Systems, Inc. Rule based routing in a switch
US20050281282A1 (en) * 2004-06-21 2005-12-22 Gonzalez Henry J Internal messaging within a switch
US7404020B2 (en) 2004-07-20 2008-07-22 Qlogic, Corporation Integrated fibre channel fabric controller
US7593997B2 (en) 2004-10-01 2009-09-22 Qlogic, Corporation Method and system for LUN remapping in fibre channel networks
US7676611B2 (en) 2004-10-01 2010-03-09 Qlogic, Corporation Method and system for processing out of orders frames
US7411958B2 (en) 2004-10-01 2008-08-12 Qlogic, Corporation Method and system for transferring data directly between storage devices in a storage area network
US8295299B2 (en) 2004-10-01 2012-10-23 Qlogic, Corporation High speed fibre channel switch element
US7380030B2 (en) 2004-10-01 2008-05-27 Qlogic, Corp. Method and system for using an in-line credit extender with a host bus adapter
US7593324B2 (en) 2004-10-25 2009-09-22 Cisco Technology, Inc. Graceful port shutdown protocol for fibre channel interfaces
US7916628B2 (en) 2004-11-01 2011-03-29 Cisco Technology, Inc. Trunking for fabric ports in fibre channel switches and attached devices
US7649844B2 (en) 2004-12-29 2010-01-19 Cisco Technology, Inc. In-order fibre channel packet delivery
US7814280B2 (en) * 2005-01-12 2010-10-12 Fulcrum Microsystems Inc. Shared-memory switch fabric architecture
US7519058B2 (en) 2005-01-18 2009-04-14 Qlogic, Corporation Address translation in fibre channel switches
US8854980B2 (en) * 2005-05-06 2014-10-07 Lockheed Martin Corporation Switching module
US7730276B1 (en) * 2005-10-25 2010-06-01 Xilinx, Inc. Striping of data into memory of a network data switch to prevent read and write collisions
US7568074B1 (en) 2005-10-25 2009-07-28 Xilinx, Inc. Time based data storage for shared network memory switch
US7439763B1 (en) 2005-10-25 2008-10-21 Xilinx, Inc. Scalable shared network memory switch for an FPGA
US7996604B1 (en) 2005-10-25 2011-08-09 Xilinx, Inc. Class queue for network data switch to identify data memory locations by arrival time
US7945816B1 (en) 2005-11-30 2011-05-17 At&T Intellectual Property Ii, L.P. Comprehensive end-to-end storage area network (SAN) application transport service
US8464238B1 (en) 2006-01-31 2013-06-11 Qlogic, Corporation Method and system for managing storage area networks
US7548560B1 (en) 2006-02-27 2009-06-16 Qlogic, Corporation Method and system for checking frame-length in fibre channel frames
US8554943B1 (en) * 2006-03-31 2013-10-08 Emc Corporation Method and system for reducing packet latency in networks with both low latency and high bandwidths requirements
US8274993B2 (en) * 2006-06-16 2012-09-25 Cisco Technology, Inc. Fibre channel dynamic zoning
US7613816B1 (en) 2006-11-15 2009-11-03 Qlogic, Corporation Method and system for routing network information
US7916718B2 (en) * 2007-04-19 2011-03-29 Fulcrum Microsystems, Inc. Flow and congestion control in switch architectures for multi-hop, memory efficient fabrics
JP2009003525A (ja) * 2007-06-19 2009-01-08 Toshiba Corp 情報通信装置及び医療情報装置
US7787375B2 (en) * 2007-08-06 2010-08-31 International Business Machines Corporation Performing a recovery action in response to a credit depletion notification
US7975027B2 (en) * 2007-08-06 2011-07-05 International Business Machines Corporation Credit depletion notification for transmitting frames between a port pair
US20110252185A1 (en) * 2010-04-08 2011-10-13 Silicon Storage Technology, Inc. Method Of Operating A NAND Memory Controller To Minimize Read Latency Time
US9225656B2 (en) 2011-02-07 2015-12-29 Brocade Communications Systems, Inc. Quality of service in a heterogeneous network
DE102014101305A1 (de) * 2014-02-03 2015-08-06 Heraeus Medical Gmbh Vorrichtung zum Lagern und Mischen von Knochenzement
US9912709B2 (en) 2014-09-30 2018-03-06 Level 3 Communications, Llc Allocating capacity of a network connection to data streams based on type
US9843597B2 (en) * 2015-01-05 2017-12-12 International Business Machines Corporation Controller area network bus monitor
US10411954B2 (en) * 2015-10-13 2019-09-10 International Business Machines Corporation Pattern based network configuration
CN113726574B (zh) * 2021-08-31 2025-02-28 杭州迪普信息技术有限公司 一种生成snmp响应报文的方法及装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3649763A (en) * 1970-05-27 1972-03-14 Bell Telephone Labor Inc Time division switching system
US5345228A (en) * 1991-10-31 1994-09-06 International Business Machines Corporation Very large scale modular switch
US5528584A (en) * 1994-10-27 1996-06-18 Hewlett-Packard Company High performance path allocation system and method with fairness insurance mechanism for a fiber optic switch
US5603064A (en) * 1994-10-27 1997-02-11 Hewlett-Packard Company Channel module for a fiber optic switch with bit sliced memory architecture for data frame storage
US5502719A (en) * 1994-10-27 1996-03-26 Hewlett-Packard Company Path allocation system and method having double link list queues implemented with a digital signal processor (DSP) for a high performance fiber optic switch
US5519695A (en) * 1994-10-27 1996-05-21 Hewlett-Packard Company Switch element for fiber channel networks
US5592472A (en) * 1994-10-27 1997-01-07 Hewlett-Packard Company High performance path allocation system and method for a fiber optic switch for a fiber optic network
US5490007A (en) * 1994-10-31 1996-02-06 Hewlett-Packard Company Bypass switching and messaging mechanism for providing intermix data transfer for a fiber optic switch
JPH08185380A (ja) * 1994-12-28 1996-07-16 Hitachi Ltd 並列計算機
US5548590A (en) * 1995-01-30 1996-08-20 Hewlett-Packard Company High performance frame time monitoring system and method for a fiber optic switch for a fiber optic network
US5592160A (en) * 1995-10-26 1997-01-07 Hewlett-Packard Company Method and apparatus for transmission code decoding and encoding
US5610745A (en) * 1995-10-26 1997-03-11 Hewlett-Packard Co. Method and apparatus for tracking buffer availability
US5894481A (en) * 1996-09-11 1999-04-13 Mcdata Corporation Fiber channel switch employing distributed queuing
US6160813A (en) 1997-03-21 2000-12-12 Brocade Communications Systems, Inc. Fibre channel switching system and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100309257B1 (ko) * 1999-12-29 2001-09-28 서평원 교환기에서 멀티 채널데이터 그룹 스위칭 방법 및 그 장치

Also Published As

Publication number Publication date
EP0876075A3 (en) 1998-11-11
EP0876075A2 (en) 1998-11-04
CA2232696A1 (en) 1998-09-21
JPH118636A (ja) 1999-01-12
US6160813A (en) 2000-12-12
US6731646B1 (en) 2004-05-04

Similar Documents

Publication Publication Date Title
US6160813A (en) Fibre channel switching system and method
US6240096B1 (en) Fibre channel switch employing distributed queuing
US5136582A (en) Memory management system and method for network controller
US5613070A (en) System for providing improved communication to data and computer communications network using parallel and serial communication buses and master and local routers
US5502719A (en) Path allocation system and method having double link list queues implemented with a digital signal processor (DSP) for a high performance fiber optic switch
US4893302A (en) Arrangement for switching concentrated telecommunications packet traffic
US7009985B2 (en) Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost
US8798091B2 (en) Fibre channel arbitrated loop bufferless switch circuitry to increase bandwidth without significant increase in cost
US5598541A (en) Node loop port communication interface super core for fibre channel
US4942574A (en) Concurrent resource request resolution mechanism
US5619497A (en) Method and apparatus for reordering frames
US6763417B2 (en) Fibre channel port adapter
JP2001524727A (ja) 低レイテンシ共有メモリスイッチ構造
EP1454440A1 (en) Method and apparatus for providing optimized high speed link utilization
US7436845B1 (en) Input and output buffering
Jurgens Fibre channel: A connection to the future
US7218638B2 (en) Switch operation scheduling mechanism with concurrent connection and queue scheduling
US20040081158A1 (en) Centralized switching fabric scheduler supporting simultaneous updates
EP1561312B1 (en) Method and apparatus for processing superframes using an arbitration system

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 19980320

PG1501 Laying open of application
PC1203 Withdrawal of no request for examination
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid