KR100412010B1 - 원격 고속 인터페이스 어플리케이션용의 플로우 아키텍처 - Google Patents

원격 고속 인터페이스 어플리케이션용의 플로우 아키텍처 Download PDF

Info

Publication number
KR100412010B1
KR100412010B1 KR10-2001-0031220A KR20010031220A KR100412010B1 KR 100412010 B1 KR100412010 B1 KR 100412010B1 KR 20010031220 A KR20010031220 A KR 20010031220A KR 100412010 B1 KR100412010 B1 KR 100412010B1
Authority
KR
South Korea
Prior art keywords
bus
queue
remote
interface
packets
Prior art date
Application number
KR10-2001-0031220A
Other languages
English (en)
Other versions
KR20020000711A (ko
Inventor
메틴 아이드미르
앤드류존3세 린도스
조지롤랜도 로드리게즈
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 KR20020000711A publication Critical patent/KR20020000711A/ko
Application granted granted Critical
Publication of KR100412010B1 publication Critical patent/KR100412010B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • 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/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing

Landscapes

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

Abstract

원격 버스들 간에 고속 스위칭 인터페이스를 갖는 시스템이 개시되어 있다. 이 시스템은 복수의 원격 버스 인터페이스가 접속되는 스위치 구조를 포함한다. 원격 버스 인터페이스의 프로토콜 요건에 따라 패킷을 스케쥴링하기 위해 복수의 병렬 논리적 플로우 큐(queue)를 포함하는 프로그래머블 플로우 큐가 사용된다.

Description

원격 고속 인터페이스 어플리케이션용의 플로우 아키텍처{FLOW ARCHITECTURE FOR REMOTE HIGH-SPEED INTERFACE APPLICATION}
본 발명은 일반적으로 통신 네트워크를 운영하기 위한 개선된 방법 및 시스템에 관한 것이다. 특히, 본 발명은 통신 네트워크 내의 스위칭 플로우 제어 메커니즘에 관한 것이다. 보다 상세히는, 본 발명은, 종래의 우선순위화된 출력의 대기 행렬을, 플로우 제어 뿐만 아니라 데이터 정렬도 동시에 처리될 수 있도록, 원격 버스 접속과 같이 이용될 수 있는 스위칭 구조 내에서 구현되는 논리적 플로우 제어 메커니즘으로 대체하기 위한 방법 및 시스템에 관한 것이다.
종래, TCP/IP(Transmission Control Protocol/Internet Protocol)과 같은 상위층의 프로토콜에 의해 제공되는 저속의 네트워크 속도와 플로우 제어는, 스위치에서의 플로우 제어에 문제가 발생하지 않게 하였다. 최근, 통신 네트워크 내의 노드 간 플로우 제어 및 데이터 전송 매체의 개량으로 인해, 브릿지나 스위치의 정체(congestion)가 보다 많은 문제를 발생시키게 되었다. 전이중(full-duplex) 전송 능력으로 접속된 네트워크의 속도가 최근 초당 수 기가바이트까지 증가함으로써, 플로우 제어 메커니즘이 필요하게 되었다. 이러한 플로우 제어의 목표는 효율성과 공평성을 포함한다.
서버 I/O(input/output)는 넥스트 제너레이션 I/O(Next Generation I/O:NGIO), 퓨쳐 I/O(Future I/O: FIO), 및 시스템 I/O(System I/O: SIO)와 같은 새로운 기술에 의해 규정된 방향으로 발달되고 있다. NGIO, FIO, 및 SIO는 인피니밴드(InfiniBand) 컨소시엄에 의해 인피니밴드 아키텍처에 결합되었다. 이러한 I/O 어댑터는 HCA(Host Channel Adapter)를 TCA(Target Channel Adpater)에 상호 접속하는 스위칭 구조를 필요로 한다.
IBM사에 의해 생산되는 PRIZMA 스위칭 구조와 같이, 수많은 종래의 스위칭 구조들은 프로그래머블 패킷 플로우 우선순위 방식을 이용하였다. 초기화 시에 있어서, 이용가능한 우선순위의 번호가 1 내지 n 중의 하나의 값으로 설정될 수 있다. 따라서, 이러한 방식의 스위치는 n-큐 우선순위화 방식에 의해 구현된 n 우선순위 레벨까지 지원할 수 있었다. 플로우 제어 메커니즘은 스위칭 구조의 입출력에서 우선순위를 달리하는 패킷들의 플로우를 제어하는 데 이용될 수 있다. 이러한 스위칭 구조의 입력 플로우 제어는 각각의 패킷의 헤더에 있는 수신 승인 정보 또는 온칩 핀들을 이용하여 달성될 수 있다. 이러한 스위칭 구조의 출력 플로우 제어는 송신 승인 핀들에 의해 제공될 수 있다.
이러한 우선순위 플로우 제어 방식에서, 우선순위의 디스에이블 상태는 모든 하위 우선순위 순서들을 또한 디스에이블이 되게 한다. 따라서, n개의 우선순위 레벨에 대응하는 n개의 큐는, 우선순위가 높은 큐에서 대기 중인 패킷이 어떤 하위 우선순위의 큐도 서비스되기 전에 전송되도록 하는 우선순위 규칙으로 서비스된다.
종래의 스위칭 구조의 플로우 제어 임계치와 백 프레서(back pressure) 트리거는, 상이한 큐 사이즈에 대하여 누적 출력 큐 사이즈를 이용하는 대기 행렬 기반의 우선순위에 기초한다. 그러므로, 상위의 우선순위가 디스에이블하게 될 때마다, 모든 하위 우선순위의 트래픽이 디스에이블되는 것이 보장된다. PCI(peripheral component interconnect) 버스 인터페이스와 같은 직렬 큐는, 고속 네트워크 스위칭 인터페이스를 이용한 성능상의 이점을 감소시킬 가능성이 있는 병목 상태가 될 수 있다. PCI는, 퍼스널 컴퓨터 내의 사용자 디스플레이, 디스크 드라이브, 모뎀 등과 같은 주변 장치에 고속 액세스하도록 설계된 32/64 비트 로컬 버스용의 공지된 표준이다.
스위치 I/O에서의 버스 인터페이스의 물리적 인터럽트에 기인하여, 적절한 버퍼 관리는 인트라 스위치 버퍼가 오버플로우 또는 언더플로우를 방지하도록 제공되어야 한다. 스위칭 구조 내에서 직렬로 유지되는, 원격 PCI 버스 인터페이스 등의 직렬 큐는 플로우 제어의 잠재적인 병목 상태가 된다.
그러므로, 원격 버스 인터페이스가 원격으로 스위칭될 수 있는 병렬 플로우 제어 및 데이터 정렬 메커니즘을 유지하는 스위치의 대기 행렬 능력을 이용한, 개선된 시스템 및 방법의 필요성이 인식될 수 있다.
원격 버스들 간의 고속 스위칭 인터페이스를 갖는 시스템이 본 명세서에 개시된다. 이 시스템은 복수의 원격 버스 인터페이스가 접속된 스위칭 구조를 포함한다. 복수의 병렬 논리적 플로우 큐를 포함하는 프로그래머블 플로우 큐가, 원격 버스 인터페이스의 프로토콜 요건에 따라 패킷들을 스케줄링하는 데 사용된다.
본 발명의 모든 목적, 특징, 장점들은 후술되는 상세한 설명에서 보다 명확하게 될 것이다.
도 1은 본 발명이 구현되는 플로우 아키텍처에서의 통신 스위치를 도시하는 도면.
도 2는 본 발명의 바람직한 일 실시예에 따른 인트라 스위치 패킷 구조를 도시하는 도면.
도 3a는 본 발명의 바람직한 일 실시예에 따라 패킷을 물리적 포트에 대기 행렬하도록 하는 논리적 포트 어댑터를 도시하는 도면.
도 3b는 도 3a의 논리적 포트 어댑터 내에 구현될 수 있는 버스 아키텍처 사양 규칙들을 도시하는 도면.
도 4는 본 발명의 바람직한 일 실시예에 따른 스위치 아키텍처의 블럭도.
도 5는 본 발명의 바람직한 일 실시예에 따른 프로그래머블 패킷 출력 대기 행렬의 블럭도.
<도면의 주요 부분에 대한 부호의 설명>
100 : 통신 스위치
102 : 입력 포트
104 : 공유 패킷 메모리
106 : 출력 포트
108, 110, 112 : 논리적 플로우 큐
본 발명의 특성으로 간주되는 신규한 특성들은 첨부된 특허청구범위에 기재되어 있다. 그러나, 유용한 바람직한 실시예 뿐만 아니라 본 발명 그 자체, 나아가 본 발명의 목적과 장점은, 예시된 실시예의 후술되는 상세한 설명에 대하여 참조로서 첨부된 도면과 함께 읽을 때 가장 바람직하게 이해될 것이다.
본 발명은, 이전 n개의 우선순위 큐들이 n개의 논리적 플로우 큐들에 의해 대체되는 논리적 플로우 제어 아키텍쳐로 종래의 인트라-스위치 플로우의 우선순위 형태를 대체한다. 따라서, PCI-대-PCI 스위칭과 같은 구현을 지원하기 위해, 포트당 다수의 플로우를 구비하는 스위칭 구조 조직이 개시된다. 본 발명은 다수의 다양한 트래픽 플로우를 효과적으로 지원하기 위해, 새로이 개선된 PRIZMA 스위치(IBM사 제품) 내에서 찾아볼 수 있는 등의 종래의 스위칭 구조를 변형한다.
이러한 새로운 출력 큐 아키텍쳐는 다수의 논리적 플로우들에 대한 독립적인 서비스 및 플로우 제어를 가능하게 한다. 이러한 플렉시블 큐 아키텍쳐는, 예를 들어, PCI 버스 순서 명령들이 관찰되어야 하는 구현에서 요구된다. 각각의 논리적 플로우는 종래의 우선순위 큐들과 유사하게 물리적 출력 포트에 큐(즉, 논리적 포트)를 구비한다. 논리적 플로우 큐들은 개별적 및 독립적으로 전송이 인에이블 및 디스에이블될 수 있다. 종래의 우선순위 큐들과는 달리, 이들 논리적 플로우 큐들은 고유의 상호 의존성 순서 형태로 사전에 프로그램되지 않는다. 물리적 출력 포트는 소망하는 구현에 따라서 프로그램에 의해 결정되는 순서로 논리적 플로우 큐들을 서비스한다. 예를 들어, 논리적 플로우 큐 집합으로부터 물리적 출력 포트로의 출력 플로우는 "라운드-로빈(round-robin)" 형태로 수행되거나, 또는 PCI 버스 어플리케이션에서는, PCI 버스 명령 순서 규칙에 의해 수립되는 요건들을 실행하도록 플로우 스케쥴링이 프로그램될 것이다.
이제, 동일 참조 부호들은 동일 부분 내지 대응 부분들을 참조하는 도면들을 참조하여, 특히 도 1을 참조하면, 본 발명의 플로우 아키텍쳐가 구현되는 통신 스위치(100; "스위치 구조"라고도 함)가 도시된다. 도시된 실시예에서, 스위치(100)는 16개의 쌍방향 포트들을 구비하는 패킷 기반 16 x 16 스위칭 유닛이다. 포트들의 쌍방향 특성을 용이하게 설명하기 위해, 16개의 입력 포트(102)는 16개의 출력 포트(106)에 대응하도록 도시된다. 스위치(100)는 각 포트가 각 방향으로 2Gbps의 대역폭 또는 그 이상을 제공할 수 있는 PRIZMA 스위치이어도 좋다. 이러한 포트 스피드는 스위치(100)가 오늘날 고속 네트워킹 I/O에서 요구되는 대역폭을 제공하기에 특히 적합하도록 한다.
도 1에 도시된 바와 같이, 스위치(100)는 임의의 다양한 컴퓨터 메모리 디바이스를 포함하는 공유 패킷 메모리 모듈(104)을 포함한다. 도 2 및 3을 참조하여 더욱 상세히 설명되듯이, 입력 포트들(102) 중 하나로부터 인입 패킷은 초기화 때에 프로그램될 수 있다. 이러한 관점에서, 도시된 실시예는 3 바이트 헤더 및 데이터 필드를 포함하는 32 바이트의 패킷 사이즈를 가정한다. 목적 포트(출력 포트들(106) 중 하나)가 패킷 헤더에서 특정된다. 목적 포트 어드레스를 비트맵 포맷으로 제공함으로써 임의의 출력 포트(106)로부터 멀티캐스팅이 이루어진다.
스위치(100)는 출력 포트 0과 관련된 논리적 플로우 큐(108), 출력 포트 1과 관련된 논리적 플로우 큐(110), 및 출력 포트 15와 관련된 논리적 플로우 큐(112)를 포함하는 논리적 플로우 큐들의 집합내에 구현되는 프로그램 가능 패킷 이송(큐)을 구비한다.
메시지 구조
도 2를 참조하면, 본 발명의 바람직한 실시예에 따른 인트라-스위치 패킷 구조가 도시된다. 이하 보다 상세히 설명되는 바와 같이, 스위치(100)는 원격 버스로부터의 서비스 또는 액세스에 응답하여 트랜잭션 패킷(200)을 구성한다. 도 2에 도시된 바와 같이, 트랜잭션 패킷(200)은 스위치(100)를 통해 올바른 출력 (타겟) 포트로의 인트라-스위치 라우팅에 관련되는 라우팅 정보를 포함하는 트랜잭션 헤더(208)를 포함한다. 트랜잭션 패킷(200)은 타겟 버스 인터페이스 논리(도시되지 않음)에 의해 인터럽트 및 실행될 메시지를 포함하는 트랜잭션 페이로드(206)를 포함한다. PCI-대-PCI 스위칭의 콘텍스트에서, 이러한 버스 인터페이스 논리는 타겟 버스 PCI 시퀀서일 수 있다.
트랜잭션 패킷(200) 내의 오리지널 메시지는 메시지 헤더(204) 및 메시지 페이로드(202)를 포함한다. 메시지 헤더(204)는 트랜잭션-특정 정보(명령, 어드레스, 바이트 인에이블 등)을 포함하고, 메시지 페이로드(202)는 32 바이트까지의 데이터를 포함한다. 32 바이트 미만의 페이로드 데이터를 갖는 메시지들이 트랜잭션 헤더(208) 내에서 태그될 수도 있다. 이러한 태그는 1 워드 이상의 데이터를 전송하기 위한 Memory Write 명령의 시퀀스를 생성하도록 상술된 타겟 버스 인터페이스논리(시퀀서)에 의해 사용된다.
큐 구조(Queue Structure)
이제 도 3a를 참조하여, 본 발명의 바람직한 실시예에 따라, 입력 포트에서 물리적 출력 포트로 패킷을 대기행렬에 넣는(queuing) 논리적 포트 어댑터(300)를 서술한다. 본 발명의 대기열 시스템의 주요한 특징 중 하나는 임의의 특정 원격 버스 아키텍쳐에 적용할 수 있는 융통성 있는 라우팅(routing) 및 출력 대기를 제공한다는 것이다. 기술 및 설명의 목적으로, 나머지 도면은 PCI 대 PCI 스위칭 구성의 정황을 기술할 것이다.
논리 포트 어댑터(300)는 출력 포트 대기를 사용하는 스위치(100)의 스위칭 구조(때로는 "스위칭 코어"라 칭함)로 구현된다. 따라서, 논리적 플로우 큐 전체(108 내지 112)는 출력, 혹은 스위치(100)의 "다운사이드"으로 향하는 출력을 갖는다. 도 3a는 스위치 코어로 구현되는 논리적 플로우의 조직을 기술한다. 구체적으로, 논리적 플로우 큐 Q1, Q2, Q3, 및 Q4는 프로그래머블 플로우 큐 블럭(302)을 포함한다. 프로그래머블 플로우 큐 블럭(302)은 원격 버스(B)와 관련된 출력 포트(310)와 연관된다는 것에 유의해야 한다. 유사하게, 논리적 플로우 큐 Q1', Q2', Q3', 및 Q4'는 원격 버스(A)의 입력 포트(308)와 관련되는 프로그래머블 플로우 큐 블럭(304)을 포함한다. 기술된 예에 있어서, 버스 A 및 버스 B는 쌍방향성이고 따라서 동시에 소스 및 착신지로서 역할을 할 수 있다. 비록 그러한 버스 단지 두 개만 도 3a에 기술되지만, 논리 포트 어댑터(300)는 하나 이상의 소스 버스 및 하나 이상의 착신지 버스를 갖는 구성을 지원할 수 있다는 것을 유의해야 한다.
버스 B에 전달될 트랜잭션 패킷(200)과 같은 트랜잭션 패킷들은 프로그래머블 논리적 플로우 큐(302)를 통해 출력 포트(31)로 전송된다. 트랜잭션의 각 형태에 할당된 큐는 다음 기준(criteria)에 따라 결정된다. 우선, 시스템을 통해 흐르는(flowing) 트랜잭션은 버스 A 및/혹은 버스 B에 의해 이용되는 데이터 오더링 룰을 만족해야 한다. 다음으로, 독립적인 평행한 경로에서 이동하는 다수의 트랜잭션은 우수한 플로우 및 버퍼링 성능을 제공할 것이다.
이제 도 3b을 참조하면, 버스 아키텍쳐 사양 규칙의 도식적 기술은 큐 할당에 대한 상술한 제1 기준을 참고하여 도 3a에서의 논리 포트 어댑터 내에서 구현될 수 있다. 기술된 예에 따르면, 논리 포트 어댑터(300)를 통해 통과하는 패킷 데이터는 도 3b에서 데이터 오더링 룰을 만족해야 한다. 도 3b 내에서 열(row) -> 행(column) 지시는 허용 가능한 이동을 나타낸다. 도 3b에 도시된 상세 룰은 이하, 도 4 및 도 5에서 기술된 실시예에 관하여 큐 체계 및 명령 핸드링이 수행되는 전형적인 상황을 제공하도록 사용될 것이다.
명령 핸드링(Command Handling)
이제 도 4를 참조하여, 본 발명의 바람직한 실시예에 따라 스위치 아키텍쳐(400)를 나타내는 블럭도가 기술된다. 스위치 아키텍쳐(400)는 쌍방향성 PCI 버스(A 및 B) 및 대응 PCI 인터페이스(404 및 418)를 포함한다. 스위치 아키텍쳐(400)는 버스 B의 출력 포트에 관련된 프로그래머블 플로우 큐(412), 및 버스 A의 출력에 관련된 프로그래머블 플로우 큐(410)을 더 포함한다. 프로그래머블 플로우 큐(412 및 410)는 복수의 논리적 포트 대기열을 포함하고, 따라서 프로그래머블 플로우 큐(302 및 304)와 유사하다.
도 4에 더 기술된 바와 같이, 스위치 아키텍쳐(400)는 TWQ(transaction work queue; 406) 및 TWQ(416)를 포함하고, 이는 프로그래머블 플로우 큐(410 및 412)을 통해 PCI 인터페이스(418 및 404) 사이에서 전달될 들어오고(incoming) 나가는(outgoing) 패킷을 처리한다. 쌍방향성 명령 플로우 및 데이터에 대해 사용되는 스위치 아키텍쳐(400)의 고 레벨 조직은 이하 기술된다.
a. 통지된 메모리 기입(Posted Memory Write)
PCI 인터페이스(404) 내에 있는 프리페쳐블(prefetchable) 어드레스 스페이스에서 PCI 메모리 기입(MW; Memory Write) 요청의 수신에 응답하여, 스페이스가 TWQ(406)에서 이용가능할 때 PCI 트랜잭션 정보가 TWQ(406)에 로드된다. TWQ(406)에 어떠한 스페이스도 없을 때, 트랜잭션은 TWQ(406) 내에 충분히 할당될 때 까지 재시도된다. 이어서, TWQ(406) 내의 로직은 트랜잭션 패킷을 구성하고 이 패킷을 타겟 버스(B)의 PMW(posted memory write)로서 지시되는, 도 3a에 도시된 바와 같은 지시된 트랜잭션 대기열 Q1에 전송한다. 이러한 패킷은 따라서, 트랜잭션 패킷의 트랜잭션 헤더에 지시된 바와 같은 타겟 버스(B)로 라우트될(routed) 것이다.
PCI 인터페이스(404 혹은 418)에 입력되는 인입 패킷 각각은 그것의 메시지 헤더 내로 운송하여, PCI 기입 트랜잭션을 PMW 패킷과 연관시키는 일련 번호가 생성된다. 제2 일련 번호는 각 소스 버스에 대해 유지된다. 이러한 추가적인 일련 번호는 각 시간마다 증가되고, 기입 트랜잭션이 소스 PCI 버스 인터페이스에서 수행된다. 소스 버스에서 단일 PCI 기입 조작과 관련된 시퀀스 내의 최종 PMW 역시 1과 동일한 최종 PMW 시퀀스 지시자 세트를 운송할 것이다.
동일한 버스 상의 PMW 트랜잭션과 동일한 방향으로 이동하는 소스 버스의 판독 트랜잭션은 TWQ(406) 내의 메시지 헤더에서 이러한 일련 번호를 픽업할 것이다. 타겟 버스(B)에 도착할 때, 판독 트랜잭션은 그것이 진행되도록 허가되기 전에, 자신의 일련 번호와 동일하거나 그 이하인 일련 번호와 함께 모든 PMW 트랜잭션을 기다릴 것이다. 이러한 방식으로 PCI 인터페이스에 대한 데이터 오더링은 비-직렬 전송 상황(non-serial transmission context)으로 유지된다.
전송이 소스 버스(A)에서 완료될 때, 및 이러한 트랜잭션과 관련된 데이터 버퍼 (버퍼; 408) 내의 모든 데이터는 패킷화되고, 스위치 구조로 조성될 때, 트랜잭션 정보는 TWQ(406)로부터 소거된다.
b. 지연된 판독 요청 및 지연된 판독 완성
스위치 아키텍쳐(400)는 PCI I/O 판독 요청, 구성 판독, 메모리 판독(MR), MRL, 또는 MRM에 응답한다. 판독 요청을 위한 인입 패킷내의 인코드된 트랜잭션 정보는 TWQ(406)에서 현재 처리중인 트랜잭션의 트랜잭션 정보와 비교된다. 매칭되면 스위치 아키텍쳐(400)내에 인입 패킷과 연관된 트랜잭션에 대한 활성 지연 판독 요청(DRR)이 있다는 것을 가리킨다.
활성 DRR의 경우(매칭이 있음), 데이터 이용가능 플래그를 검사하여 트랜잭션용 데이터가 현재 데이터 버퍼(408)내에 있는지를 결정한다. 이러한 트랜잭션 데이터가 데이터 버퍼(408)내에 있으면, 해당 데이터는 요청한 마스터로 전송된다.상기 트랜잭션 데이터가 데이터 버퍼(408)에 없으면, 트랜잭션이 재시도된다.
인입 패킷 (요청 트랜잭션) 내의 인코드된 트랜잭션 정보가 TWQ(406)에서 현재 처리중인 어떤 트랜잭션에 대한 트랜잭션 정보와도 매칭되지 않는 경우, 스위치 아키텍쳐(400)의 응답은 TWQ(406) 내의 큐(queue)의 현재 이용가능성에 의존한다. 작업 큐가 이용가능하지 않고 데이터 버퍼(408)내에 이용가능한 버퍼 공간이 없는 경우(스위치 비지 상태), 인입 트랜잭션 요청(판독 요청)은 나중에 재시도된다. 작업 큐가 TWQ(406)내에서 현재 이용가능하거나 데이터 버퍼(408)내의 버퍼 공간이 이용가능하면, 트랜잭션 관련 제어 정보(커맨드, 어드레스, 바이트 인에이블)가 TWQ(406)에 저장되는 동안 PCI 트랜잭션 요청이 재시도된다.
트랜잭션 제어 정보가 TWQ(408)에 부가되면, 스위치 아키텍쳐(400)는 트랜잭션 패킷을 구성하여 이 패킷을 착신지 버스 B의 지연된 트랜잭션 큐(지연된 판독 요청 Q2)로 전송한다. 이렇게 대기행렬화된 트랜잭션 패킷에는 PMW 시퀀스로부터 시퀀스 번호가 지정된다. 트랜잭션 패킷은 프로그래머블 플로우 큐(302)내의 논리에 의해 트랜잭션 패킷 헤더에 표시된 바와 같이 타겟 버스 B로 라우팅된다. 메시지 페이로드는 DRR을 위해 비여있다.
메시지 헤더의 카피는 TWQ(406)에 보유되고, 메모리 공간은 데이터 버퍼(408)에 할당되며, 이들 자원은 관련 DRC가 타겟 버스 B로부터 수신될 때 이용된다. 부가적인 PCI 판독 커맨드는 다음의 조건중 하나가 검출될 때까지 서비스될 수 있다: (1) TWQ(406) 및/또는 데이터 버퍼(408)내의 모든 공간이 할당되었다. (2) 타겟 버스 B에 대한 Q2 (DRR) 큐가 (스위치 코어의 수신 허가를 통해 신호된바와 같이) 채워져 있다.
DRR이 Q2의 입력에 도달하면, 프로그래머블 플로우 큐(302)내의 시퀀서 로직은 DRR에 대한 시퀀스 번호를, 타겟에 이미 도달해 있는 PMW가 수반하는 시퀀스 번호 및 "시퀀스내의 최종 PMW" 플래그와 비교한다. 요청된 모든 PMW가 방출되고, 모든 기록 데이터가 타겟으로 보내졌으면, 시퀀서 로직은 타겟 버스 B의 요청을 개시하여 메모리로부터 한 캐시 라인을 판독한다. 해당 데이터가 타겟으로부터 (이 경우 메로리로부터) 수신되면, DRC 패킷이 구성되어 소스 버스 A와 연관된 Q3 (DRC/DWC 큐)로 전송된다. PCI 커맨드가 MRM이라면, 프로그래머블 플로우 큐내의 시퀀서 로직은 버스상의 요청을 개시하여 메모리로부터 추가의 캐시 라인을 판독함으로써 PCI 마스터를 위해 데이터를 프리패치한다. 타겟 버스 시퀀서는 마스터가 PCI 전송을 활성상태로 유지하는 한 데이터 프리패치를 계속한다.
DRC 패킷이 Q3의 개시 버스에 수신되면, 그 패킷은 큐의 헤드에 도달할 때 이동된다. 메시지 헤더내의 정보는 지정된 TWQ(406)에 매칭되고, 메시지 페이로드의 데이터는 할당된 데이터 버퍼(408)로 이동된다.
타겟 버스 B 인터페이스(418)와 연관된 로직은 소스 버스 A의 데이터 버퍼가 적당한 공간을 갖지 않으면 데이터를 소스 버스 A에 보낼 수 없다. 타겟 버스 B 인터페이스(418)내의 프리패치 로직은 추가 데이터를 소스 버스 A 인터페이스(404)의 버퍼로 보낼 수 있는 시간에 대해 소스 버스 A 인터페이스(404)와 협상한다. 이러한 협상 메시지가 전달되는 고신뢰성 매체로서 우선순위 큐 Q4가 사용된다.
본 발명의 바람직한 실시예에 따른 프로그래머블 패킷 출력 대기행렬화의 블록도를 도시하는 도 5를 참조한다. 도 5에 도시된 바와 같이, 스위칭 인터페이스(500)는 스케쥴러(502)와 통신 접촉하는 프로그래머블 플로우 큐(504)를 포함한다. 프로그래머블 플로우 큐는 도 3a 및 3b에 도시된 바와 같은 복수의 병렬 논리적 플로우 큐를 포함한다.
도 5에 도시된 바와 같이, 스케쥴러(502)에는 큐 임계 입력(506) 및 데이터 오더링 입력(508)이 적용된다. 스케쥴러내의 프로그래머블 로직은 큐 임계 입력(506) 및 데이터 오더링 입력(508)으로부터의 입력을 프로그래머블 플로우 큐(508)에 대한 스케쥴링 명령어로 번역하여 스위칭 인터페이스(500)로부터 인출 패킷이 프로토콜 요건 및 실시간 큐 상태에 따라 전송되게 한다.
본 발명의 바람직한 실시예는 전술한 방법을 실행하도록 프로그램된 컴퓨터 시스템 및 프로그램 제품을 포함한다. 컴퓨터 시스템에 따르면, 본 발명의 방법 및 시스템을 실행하기 위한 명령어 세트는 하나 이상의 컴퓨터 시스템의 ROM 또는 RAM과 같은 저장 장치에 들어있다. 컴퓨터 시스템에 의해 요청될 때까지, 명령어 세트는, 예컨대 디스크 드라이브내의 다른 컴퓨터 메모리(여기에는 디스크 드라이브에서 사용할 수 있는 광 디스크 또는 플로피 디스크와 같은 이동가능한 메모리가 포함된다)에 컴퓨터 프로그램 제품으로서 저장될 수 있다.
본 발명이 바람직한 실시예를 참조하여 특정하게 도시되고 설명되었지만, 본 기술분야에 숙련된 자라면 본 발명의 정신 및 범주에서 벗어나지 않고도 그 형태 및 세부사항에 있어 다양한 변경이 가능하다는 것을 이해할 것이다.
본 발명에 따르면, 종래의 우선순위화된 출력의 대기 행렬을, 플로우 제어 뿐만 아니라 데이터 정렬도 동시에 처리될 수 있도록, 원격 버스 접속과 같이 이용될 수 있는 스위칭 구조 내에서 구현되는 논리적 플로우 제어 메커니즘으로 대체하는 것이 가능하다.

Claims (15)

  1. 원격 버스들 - 각각의 상기 버스는 상기 버스에 대한 데이터 오더링(data ordering)을 결정하기 위한 특정 버스 아키텍쳐를 구비함 - 간에서 고속 스위칭 인터페이스를 제공하기 위한 장치에 있어서,
    스위치 구조(switch fabric),
    상기 스위치 구조와 인터페이스되는 적어도 두 개의 원격 버스, 및
    상기 원격 버스 인터페이스의 프로토콜 요건에 따라 패킷을 스케줄링하기 위한 것이며, 상기 버스 아키텍쳐에 따라 패킷을 스케줄링하기 위한 데이터 오더링 로직(data ordering logic)을 포함하는 프로그래머블 플로우 큐
    를 포함하는 고속 스위칭 인터페이스 제공 장치.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 제1항에 있어서, 상기 프로그래머블 플로우 큐는 복수의 병렬 로직 플로우 큐를 포함하고, 상기 데이터 오더링 로직은 상기 버스 아키텍쳐에 따라 상기 복수의 병렬 로직 플로우 큐를 특성화하는 고속 스위칭 인터페이스 제공 장치.
  7. 제6항에 있어서, 상기 프로그래머블 플로우 큐는 상기 복수의 병렬 로직 플로우 큐의 각각의 로직 플로우 큐에 대하여 서로 독립적으로 그 큐 임계치 요건들을 프로그램가능하게 조절하기 위한 로직을 더 포함하는 고속 스위칭 인터페이스 제공 장치.
  8. 제1항에 있어서, 상기 스위치 구조는 상기 원격 버스들로부터 인입 패킷들을 수신하기 위한 소스 포트를 포함하고,
    상기 버스 아키텍쳐에 따라서 상기 프로그래머블 플로우 큐로 상기 인입 패킷들을 라우팅하기 위한 버스 아키텍쳐 명령어들을 유지하는 트랜잭션 작업 큐를 더 포함하는 고속 스위칭 인터페이스 제공 장치.
  9. 스위치 구조를 통해 원격 버스들 - 각각의 상기 버스는 상기 버스에 대한 데이터 오더링을 결정하기 위한 특정 버스 아키텍쳐를 구비함 - 간에 고속 스위칭 인터페이스를 제공하는 방법에 있어서,
    적어도 두 개의 원격 버스를 상기 스위치 구조에 인터페이싱하는 단계, 및
    상기 원격 버스 인터페이스의 프로토콜 요건들 및 상기 버스 아키텍쳐에 따라서 패킷들을 스케쥴링하는 단계
    를 포함하는 고속 스위칭 인터페이스 제공 방법.
  10. 삭제
  11. 삭제
  12. 제9항에 있어서, 상기 프로그래머블 플로우 큐는 복수의 병렬 로직 플로우 큐를 포함하고,
    상기 방법은,
    상기 복수의 병렬 로직 플로우 큐의 각 로직 플로우 큐에 대해 서로 독립적으로 큐 임계치 요건을 조절하는 단계를 더 포함하는 고속 스위칭 인터페이스 제공 방법.
  13. 제9항에 있어서, 상기 스위치 구조는 상기 원격 버스들로부터 인입 패킷들을 수신하기 위한 소스 포트를 포함하고,
    상기 방법은,
    상기 버스 아키텍쳐에 따라 상기 인입 패킷들을 상기 프로그래머블 플로우 큐로 라우팅하는 단계를 더 포함하는 고속 스위칭 인터페이스 제공 방법.
  14. 제7항에 있어서, 상기 데이터 오더링 로직은 서로 다른 병렬 로지컬 플로우 큐들을 통하여 라우팅된 패킷들이 그럼에도 불구하고 적절한 순서로 처리되도록 해주는 오더 무결성 로직을 더 포함하며, 상기 적절한 순서는 상기 패킷들이 상기 원격 버스 인터페이스에 입력된 순서인 고속 스위칭 인터페이스 제공 장치.
  15. 제12항에 있어서, 서로 다른 병렬 로지컬 플로우 큐를 통하여 라우팅된 패킷들이 그럼에도 불구하고 적절한 순서로 처리된다는 것을 보장하는 단계를 더 포함하며, 상기 적절한 순서는 상기 패킷들이 상기 원격 버스 인터페이스에 입력된 순서인 고속 스위칭 인터페이스 제공 방법.
KR10-2001-0031220A 2000-06-27 2001-06-04 원격 고속 인터페이스 어플리케이션용의 플로우 아키텍처 KR100412010B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/604,446 US6678782B1 (en) 2000-06-27 2000-06-27 Flow architecture for remote high-speed interface application
US09/604,446 2000-06-27

Publications (2)

Publication Number Publication Date
KR20020000711A KR20020000711A (ko) 2002-01-05
KR100412010B1 true KR100412010B1 (ko) 2003-12-24

Family

ID=24419633

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2001-0031220A KR100412010B1 (ko) 2000-06-27 2001-06-04 원격 고속 인터페이스 어플리케이션용의 플로우 아키텍처

Country Status (4)

Country Link
US (1) US6678782B1 (ko)
KR (1) KR100412010B1 (ko)
CN (1) CN1219385C (ko)
GB (1) GB2367712B (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6622194B1 (en) * 2000-08-28 2003-09-16 Intel Corporation Efficient use of multiple buses for a scalable and reliable high-bandwidth connection
US6831916B1 (en) * 2000-09-28 2004-12-14 Balaji Parthasarathy Host-fabric adapter and method of connecting a host system to a channel-based switched fabric in a data network
US6775719B1 (en) 2000-09-28 2004-08-10 Intel Corporation Host-fabric adapter and method of connecting a host system to a channel-based switched fabric in a data network
US7181541B1 (en) 2000-09-29 2007-02-20 Intel Corporation Host-fabric adapter having hardware assist architecture and method of connecting a host system to a channel-based switched fabric in a data network
US7107359B1 (en) 2000-10-30 2006-09-12 Intel Corporation Host-fabric adapter having hardware assist architecture and method of connecting a host system to a channel-based switched fabric in a data network
US20020071450A1 (en) * 2000-12-08 2002-06-13 Gasbarro Dominic J. Host-fabric adapter having bandwidth-optimizing, area-minimal, vertical sliced memory architecture and method of connecting a host system to a channel-based switched fabric in a data network
US7190667B2 (en) * 2001-04-26 2007-03-13 Intel Corporation Link level packet flow control mechanism
US20020159458A1 (en) * 2001-04-27 2002-10-31 Foster Michael S. Method and system for reserved addressing in a communications network
US20070180150A1 (en) * 2005-12-01 2007-08-02 Firestar Software, Inc. System and method for exchanging information among exchange applications
US8566496B2 (en) * 2010-12-03 2013-10-22 Lsi Corporation Data prefetch in SAS expanders
US9025467B2 (en) * 2011-09-29 2015-05-05 Nec Laboratories America, Inc. Hitless protection for traffic received from 1+1 protecting line cards in high-speed switching systems
CN102571609B (zh) * 2012-03-01 2018-04-17 重庆中天重邮通信技术有限公司 快速串行接口pci‑e协议数据完成包的重组排序方法
CN112948310B (zh) * 2021-03-25 2023-04-14 山东英信计算机技术有限公司 一种资源分配方法、装置、设备及计算机可读存储介质

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5315708A (en) * 1990-02-28 1994-05-24 Micro Technology, Inc. Method and apparatus for transferring data through a staging memory
US6263374B1 (en) * 1992-09-17 2001-07-17 International Business Machines Corporation Apparatus for coupling a bus-based architecture to a switch network
US5764924A (en) 1995-08-24 1998-06-09 Ncr Corporation Method and apparatus for extending a local PCI bus to a remote I/O backplane
IL116989A (en) 1996-01-31 1999-10-28 Galileo Technology Ltd Switching ethernet controller
IL116988A (en) 1996-01-31 1999-12-31 Galileo Technology Ltd Bus protocol
US5764961A (en) 1996-04-03 1998-06-09 Ncr Corporation Predictable diverse data delivery enablement method and apparatus for ATM based computer system
US6442172B1 (en) * 1996-07-11 2002-08-27 Alcatel Internetworking, Inc. Input buffering and queue status-based output control for a digital traffic switch
US5790816A (en) 1996-09-09 1998-08-04 Gigalabs, Inc. Apparatus for transferring information from a bus to a network without the use of protocol engines
US5887144A (en) 1996-11-20 1999-03-23 International Business Machines Corp. Method and system for increasing the load and expansion capabilities of a bus through the use of in-line switches
EP0844567A1 (en) 1996-11-21 1998-05-27 Hewlett-Packard Company Long haul PCI-to-PCI bridge
US5802333A (en) 1997-01-22 1998-09-01 Hewlett-Packard Company Network inter-product stacking mechanism in which stacked products appear to the network as a single device
US6167054A (en) 1997-02-14 2000-12-26 Advanced Micro Devices, Inc. Method and apparatus providing programmable thresholds for full-duplex flow control in a network switch
US5909564A (en) 1997-03-27 1999-06-01 Pmc-Sierra Ltd. Multi-port ethernet frame switch
US6275491B1 (en) * 1997-06-03 2001-08-14 Texas Instruments Incorporated Programmable architecture fast packet switch
US6067301A (en) * 1998-05-29 2000-05-23 Cabletron Systems, Inc. Method and apparatus for forwarding packets from a plurality of contending queues to an output

Also Published As

Publication number Publication date
GB0115530D0 (en) 2001-08-15
KR20020000711A (ko) 2002-01-05
CN1219385C (zh) 2005-09-14
GB2367712B (en) 2003-12-17
US6678782B1 (en) 2004-01-13
GB2367712A (en) 2002-04-10
CN1330472A (zh) 2002-01-09

Similar Documents

Publication Publication Date Title
US5367643A (en) Generic high bandwidth adapter having data packet memory configured in three level hierarchy for temporary storage of variable length data packets
US7457895B2 (en) Dynamic memory allocation between inbound and outbound buffers in a protocol handler
US6747949B1 (en) Register based remote data flow control
EP0459752B1 (en) Network adapter using buffers and multiple descriptor rings
US7577773B1 (en) Method and system for DMA optimization
US6912604B1 (en) Host channel adapter having partitioned link layer services for an infiniband server system
US7996583B2 (en) Multiple context single logic virtual host channel adapter supporting multiple transport protocols
EP0459757B1 (en) Network adapter
US20040252685A1 (en) Channel adapter with integrated switch
US7865633B2 (en) Multiple context single logic virtual host channel adapter
US7136355B2 (en) Transmission components for processing VLAN tag and priority packets supported by using single chip&#39;s buffer structure
US20130290558A1 (en) Data transfer, synchronising applications, and low latency networks
US5592472A (en) High performance path allocation system and method for a fiber optic switch for a fiber optic network
KR100412010B1 (ko) 원격 고속 인터페이스 어플리케이션용의 플로우 아키텍처
US7403525B2 (en) Efficient routing of packet data in a scalable processing resource
US6691178B1 (en) Fencepost descriptor caching mechanism and method therefor
US7912077B2 (en) Multi-queue single-FIFO architecture for quality of service oriented systems
TWI411264B (zh) 非阻塞式網路系統及其封包仲裁方法
US6816889B1 (en) Assignment of dual port memory banks for a CPU and a host channel adapter in an InfiniBand computing node
US7209489B1 (en) Arrangement in a channel adapter for servicing work notifications based on link layer virtual lane processing
US20080263171A1 (en) Peripheral device that DMAS the same data to different locations in a computer
US6052387A (en) Enhanced interface for an asynchronous transfer mode segmentation controller
US20200356497A1 (en) Device supporting ordered and unordered transaction classes
US7272151B2 (en) Centralized switching fabric scheduler supporting simultaneous updates
US7840643B2 (en) System and method for movement of non-aligned data in network buffer model

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

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee