KR100431372B1 - 파이버 채널 중재 루프에서의 공정한 가변 액세스 방법 - Google Patents

파이버 채널 중재 루프에서의 공정한 가변 액세스 방법 Download PDF

Info

Publication number
KR100431372B1
KR100431372B1 KR10-2002-7001404A KR20027001404A KR100431372B1 KR 100431372 B1 KR100431372 B1 KR 100431372B1 KR 20027001404 A KR20027001404 A KR 20027001404A KR 100431372 B1 KR100431372 B1 KR 100431372B1
Authority
KR
South Korea
Prior art keywords
loop
port
fair
loop circuit
ports
Prior art date
Application number
KR10-2002-7001404A
Other languages
English (en)
Other versions
KR20020025209A (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 KR20020025209A publication Critical patent/KR20020025209A/ko
Application granted granted Critical
Publication of KR100431372B1 publication Critical patent/KR100431372B1/ko

Links

Classifications

    • 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/42Loop networks
    • 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/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • H04L12/433Loop networks with decentralised control with asynchronous transmission, e.g. token ring, register insertion

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Small-Scale Networks (AREA)
  • Time-Division Multiplex Systems (AREA)

Abstract

본 발명은 파이버 채널 중재 루프에서 공정한 포트가 루프를 차지하고 있는 부분에서는 불공정하게 행동하고 다른 부분에서는 공정하게 행동하는 방법에 관한 것이다. 양호한 구현예에서 공정한 포트는 처음의 목적지 포트와 함께 제1 루프 회로를 형성한다. 루프의 제어를 중재하는 포트로 넘겨주기 전에, 이 공정한 포트는 다른 목적지 포트들과 함께 하나 이상의 뒤이은 루프 회로를 형성한다. 공정한 포트가 루프의 제어를 포기하고 재중재하지 않고, 루프 회로들이 차례로 형성된다. 이것은 (1)공정한 포트가 정보를 교환하기 희망하는 모든 목적지 포트와 함께 루프 회로를 형성할 때까지, (2) 고정된 시간 기간이 경과할 때까지, 및/또는 (3) 미리 정해진 최대 수의 루프 회로들이 형성될 때가지 계속된다.
본 발명의 하나 이상의 실시예에 관한 자세한 사항은 첨부된 도면과 이하의 상세한 설명에 나와 있다. 본 발명의 다른 특성, 목적, 장점들은 발명의 상세한 설명, 도면, 및 청구항을 통해 명백해질 것이다.

Description

파이버 채널 중재 루프에서의 공정한 가변 액세스 방법 {VARIABLE ACCESS FAIRNESS IN A FIBRE CHANNEL ARBITRATED LOOP}
파이버 채널 중재 루프(fibre channel arbitrated lool, FCAL) 기술에서 "루프"란 모든 포트들에 의해 공유되는 자원이다. 중재 프로토콜은 루프에 연결된 개별 포트(장치 노드)가 루프를 액세스하는 것을 제어하는 방법을 제공한다. 이 프로토콜은 한 포트에서 보내진 정보가 상이한 포트에서 보내진 정보를 방해하지 않도록 보장한다. 이는 어느 시점이든 단지 하나의 포트만이 루프를 "차지"하고 있다는 것을 보장함으로써 달성된다.
소스 포트가 다른 포트와 루프 회로를 형성하여 프레임 전송을 시작하기 전에, 소스 포트는 루프에 대한 액세스를 위하여 중재를 거쳐야 하고, 중재에서 이겨야 한다. 만일 하나 이상의 포트가 동시에 루프에 대한 액세스를 요구한다면, 각 포트는 중재를 거치며, 프로토콜이 어떤 포트가 중재에서 이기는지를 결정한다. 중재에서 이기지 못하는 포트들은 현재의 루프 회로가 닫히기 전에 중재에서 이기기 위해 계속해서 중재에 참가해야 할 수도 있다.
이러한 중재 프로토콜은 각 포트의 루프 어드레스에 기초하여 동시에 일어나는 중재 요청을 해결한다. 각 루프 어드레스는 어떤 포트가 중재에서 이기는지 결정하는 관련된 고정된 우선 순위를 가지고 있다. 만일 우선 순위가 더 높은 포트들이 이들이 원할 때마다 중재에서 이기도록 허용된다면, 보다 낮은 우선 순위의 포트들은 루프에 대한 액세스를 전혀 얻어내지 못할지도 모른다. 우선 순위가 더 높은 포트들이 루프를 액세스하는 것을 독점하는 것을 방지하기 위하여, 중재 프로토콜이 "공정한 액세스(access fairness)" 규칙을 사용한다. 이러한 공정한 액세스 규칙은 다중 포트들이 중재를 거치고 있는 기간 동안에 공정한 액세스 윈도우(access fairness window)를 형성한다. 이 윈도우 동안에 공정한 액세스를 준수하는 각 포트는 중재에서 한번 이기도록 제한된다. 일단 포트가 중재에서 이겼다면, 이 포트는 새로운 공정한 액세스 윈도우가 시작할 때까지 기다려야 다시 중재할 수 있다. 현재의 윈도우 동안에 중재를 거치고 모든 포트들이 중재에서 이겼을 때, 공정한 액세스 윈도우가 리셋되고, 기다리고 있던 포트들은 루프를 필요로 할 때 중재를 거치기 시작할 수 있다. 공정한 액세스를 준수하는 포트들은 "공정한 포트들"이라고 불린다. 그렇지 않은 포트들은 "불공정한 포트들"이라고 불린다. 공정하게 행동할지 또는 불공정하게 행동할지에 대한 결정은 시스템 설계자에게 맡겨지고, 업무 로드에 따라 고정적일 수도 있고, 동적으로 변화할 수도 있다.
어떤 애플리케이션들은 하나 이상의 포트에게 불공정하도록 허용하는 한편 남아 있는 포트들에게는 공정한 액세스를 준수하도록 요구함으로써 이익을 얻을 수도 있다.
어느 포트가 중재에서 이긴 후에, "루프 회로"가 다른 포트를 가지고 형성된다. 루프 회로는 서로간의 프레임 전송과 수신을 위해 조절된 두개의 포트간의 논리적 연결이다. 루프 상의 다른 포트들은 일단 현재의 루프 회로가 닫히면, 유휴(idle) 상태에서 루프를 모니터하고 있거나, 자신의 액세스를 요구하고 액세스를 위해 중재를 거치고 있다. 포트들이 프레임 전송을 완료했을 때, 루프 회로가 닫히고 이 루프는 다른 포트들에 의해 이용가능하게 된다.
현재, 전송 프로토콜이 특정 환경하에서 루프에서의 공정한 액세스의 효율성을 향상시키기 위해 사용된다. 전송 프로토콜은 전송 동작을 수행하기 위한 규칙들을 포함하고, 이러한 "전송 동작"에 의하여 루프의 현재 소유자(즉, 중재에서 이긴 "공정한" 포트)가 상이한 장치와의 새로운 루프 회로를 형성하기 위하여 (루프의 제어를 포기하고 재중재할 필요 없이) 현재 열려있는 루프 회로를 닫는다. 이것은 예를 들어, 어떤 장치가 루프상의 다중 목적 장치들에게 파일을 복사해주길 원할 때 바람직할 수 있다. 이렇게 함으로써, 전송 동작은 다중 목적지를 위한 프레임들을 가지고 있는 포트가 루프를 한번 소유하는 동안에 연속된 루프 회로에서 상기 프레임들을 전송할 수 있도록 한다. 루프의 현재 소유자가 루프를 액세스하기 위하여 재중재할 필요성이 없기 때문에, 이것은 중재와 관련된 오버헤드를 상당히 감소시킨다.
전송 동작은 루프의 현재 소유자가 공정하게 중재에서 이겼는지 불공정하게 중재에서 이겼는지에 관계없이 일어날 수 있다. 이렇게 해서, 불공정한 포트들을위한 전송 동작 규칙들은 현재의 소유자가 중재중인 어떠한 포트라도 무시하도록 한다. 반면에 공정한 포트는 명확하게 공정하게 행동하여야 한다. 결과적으로 새로운 전송 동작이 무시되고, 제어는 중재에서 이긴 포트로 넘겨진다. 이렇게 해서, 공정한 포트는, 다른 포트가 중재중이라면, 전송 프로토콜의 향상된 프레임 전송 효율성을 이용할 수 없다.
발명자들은 공정한 포트가 때로는 불공정하게 행동하도록 허용함으로써 상당한 성능 향상이 실현될 수 있다는 것을 발견하였다.
알려진 몇몇 FCAL의 구현에 있어서 루프는 공정하거나 불공정할 것을 선별적으로 고를 수 있다. 그러한 경우에 공정한지 불공정한지에 대한 결정은 포트에 위치한 펌웨어 또는 하드웨어에 의하여 제어되고, 상황이 지시하는 대로 동적으로 변화될 수 있다. 이는 루프 포트가 프레임 전송 동작을 동적으로 평가하여, 정상적인 동작 기간 동안에는 공정하게 행동하고 피크 활동 기간 동안에는 불공정하게 행동하도록 바뀌는 반응을 하도록 해 준다. 그러나, 이러한 구현예들 중 어느 것도 공정한 포트(즉, 공정하게 중재에서 이긴 포트)가 불공정하게 행동하도록 해 주는 방법을 제시하는 것은 없다. 대신, 포트는 공정한지 또는 불공정한지 중재 전에 설계되고, 루프를 차지하는 동안 내내 그러한 기능을 유지한다.
본 발명은 파이버 채널 중재 루프 프로토콜에 관한 것으로서, 보다 구체적으로는 단일 소스 노드에서 다중 목표 노드들로 패킷을 효율적으로 전송하기 위한 시스템 및 방법에 관한 것이다.
도1은 본 발명에 따른 전형적인 파이버 채널 중재 루프의 전체적인 구조도.
도2는 본 발명의 전형적인 실시예에 따른 중재와 공정한 액세스를 도시하는 동작 흐름도.
본 발명은 파이버 채널 중재 루프에서 공정한 포트가 루프를 차지하고 있는 부분에서는 불공정하게 행동하고 다른 부분에서는 공정하게 행동하는 방법에 관한 것이다. 양호한 실시예에서 공정한 포트는 첫번째 목적지 포트와 함께 제1 루프회로를 형성한다. 루프에 대한 제어를 중재를 거치고 있는 포트에 넘겨주기 전에, 공정한 포트는 -전송 프로토콜의 제어 하에서- 다른 목적지 포트들과 함께 하나 이상의 뒤이은 루프 회로를 형성한다. 루프 회로들은 공정한 포트가 루프에 대한 제어를 포기하고 재중재하지 않고도 차례로 형성된다. 이것은 (1)공정한 포트가, 정보를 교환하기를 희망하는 모든 목적지 포트와 함께 루프 회로를 형성할 때까지, (2) 고정된 시간이 경과할 때까지, 및/또는 (3) 미리 정해진 최대 수의 루프 회로들이 형성될 때까지 계속된다.
포트는 일반적으로 파이버 채널 호스트 어댑터 카드이다. 이 카드는 루프에 연결된 장치들이 루프의 제어를 얻게끔 하는 중재 프로토콜 프로세스를 실행하도록 프로그램적으로 만들어질 수 있다. 카드는 또한 루프의 현재 소유자가 하나 이상의 장치로 전송하도록(즉, 하나 이상의 전송 동작을 수행하도록) 허용하는 전송 프로토콜 프로세스를 실행한다.
중재 프로토콜은 개시 포트(initiator port)가 루프상의 다른 포트들로/로부터 데이터를 전송하고 수신할 수 있도록 중재에서 이기도록 한다. 개시 포트는 공정하거나 불공정하게 중재에서 이기고, 시스템 구성과 원하는 성능 파라미터에 기초하여 정적이거나 동적으로 중재에서 이기도록 적응가능한 타입일 수 있다. 그러나, 본 발명은 정상적인 공정한 액세스 규칙에 따라 중재에서 이길 때만 적용된다. 다시 말해서, 본 발명은 개시 포트가 "공정한 포트"일 때만 적용된다. 공정한 포트가 루프에 대한 제어를 얻은 후에, 공정한 루프에 연결된 장치(즉, 루프의 현재 소유자)와 첫번째 목적지 장치간에 루프 회로 연결이 형성된다. 이것은 종래의 방법을 사용하여 행해진다. 새로운 (두번째) 루프 회로를 열고 처음의 루프 회로를 닫기 위하여, 전송 프로토콜 프로세스가 호출된다.
본 발명의 실시예에서 전송 프로토콜 프로세스는 다른 포트들이 루프의 제어를 원하고 있는지에 관계없이 전송 동작을 허용하도록 적응되어 있다. 이렇게 해서, 전송 모드로 동작할 때 공정한 포트가 본질적으로 불공정하게 행동하도록 적응되어 있다. 본 실시예에서는 불공정함이 전송 동작에만 제한되어 있고, 중재에는 제한되어 있지 않다.
개시 포트가 모든 장치들로의 전송을 완료하였을 때 (또는 전송 프로토콜 프로세스에 의하여 인터럽트될 때), 전송 프로토콜 프로세스가 종결되고, 공정한 포트는 다시 공정한 포트처럼 행동하도록 돌아간다. 이것은 중재 프로토콜 프로세스에 의해 지시된 종래의 공정한 액세스 규칙에 따라 루프에 대한 제어를 포기하는 것을 의미한다.
도1에서 FCAL(10)은 다수의 장치(11-16)가 이들과 연관된 루프-가능한(loop-capable) 포트(21-26)에 의해 공통된 루프(20)에 연결되어 있는 형태로 구성되어 있다. 전술한 바와 같이, 루프 가능한 포트(21-26)는 파이버 채널 호스트 어댑터카드일 수도 있고, 관련 장치의 시스템 구성의 일부로서 일체적으로 형성되어 있을 수도 있다. 장치(11-16)는 예를 들어, 기억 장치, 워크스테이션, 및 타일(tile) 서버일 수 있다. FCAL 토폴로지는 이러한 장치들이 함께 연결되어 예를 들면 고성능 네트워크 및 부문별 클러스터의 기억장치 인터페이스로서의 역할을 하도록 허용한다. 링 또는 루프로 배치된 포트들은 단방향 링크(30)에 의해 연결되어 함께 파이버 채널 연결들을 형성한다. 이러한 연결들은 모든 포트(21-26) 사이에 중재를 통해 대역폭을 나누어 액세스하는 것을 용이하게 한다. 각 포트는 전송을 처리하고 다양한 장치(11-16)의 요구를 수신하는데 적합한 하드웨어와 펌웨어를 포함하고 있다. 여기서 언급된 중재 프로토콜과 전송 프로토콜은 일반적으로 FACL Rev 7.0 (FC-AL-2) ANCI 명세서에 의해 정의된다. 이러한 ANSI 명세서는 공정한 액세스 중재를 제공하고 전송 동작 동안에 루프 회로를 형성하기 위한 일반적인 규칙들을 정의하고 있다.
좀 더 자세히 아래에서 설명될 본 발명은 FCAL에서 대역폭의 효율성을 향상시키는 향상된 전송 동작 방법을 정의하기 위하여 ANSI 명세서에 정의된 대로 FCAL 네트워크 프로토콜의 유연성(flexibility)을 이용한다.
도2는 본 발명의 일 실시예에 따른 중재와 전송 프로토콜 프로세스의 동작을 나타내는 흐름도이다.
개시 포트로부터 다중 포트로 차례대로 연속된 프레임을 전송하는 것은 이러한 개시 포트가 루프(20)를 제어할 필요가 있다고 인식하는 데서 출발한다(단계 110). 이 때 내부 액세스 비트는 일반적으로 루프 회로의 생성에 의해서 그리고각각의 루프-가능한 포트(21-26)의 루프 활동을 모니터함으로써 설정되고 리셋된다. 이러한 액세스 비트는 각 포트가 현재의 공정한 액세스 윈도우 동안에 루프를 제어하기 위하여 자유롭게 중재해도 되는지를 결정하도록 해 준다. 액세스 비트의 설정은 당업자라면 이해할 수 있는 사항이며, 본 발명의 일부를 구성하는 것이 아니다.
중재에서 이기기 위하여 그리고 공정하게 중재에서 이기기 위하여 공정한 개시 포트는 먼저 자신의 액세스 비트를 검사할 것이다. 이 액세스 비트가 참이면(단계 120), 개시 포트가 루프 상에 중재 신호(ARB(x))를 내보낼 것이다(단계 130). 개시 포트는 자신의 ARB(x)가 다시 수신될 때까지 ARB(x)를 계속해서 내보낸다(단계 140). 이것은 루프에 대한 제어를 또 얻고자 하는 포트가 유사하게 자신의 ARB(x) 신호를 브로드캐스트하고 있기 때문이다. 공정한 액세스 규칙에 의하면, 오직 내부 액세스 비트가 현재 참으로 설정되어 중재를 거치고 있는 포트만이 현재의 공정한 액세스 윈도우 동안에 중재에서 이길 기회를 가질 것이다. 마찬가지로, 만일 액세스가 참이고, 상기 수신된 ARB(x)가 우선 순위가 낮다면, 개시 포트는 인바운드(inbound) ARB(x)를 루프(20)에 연결되어 귀기울이고 있는 모든 포트에 대한 자신의 ARB(x) 요청으로 대체한다(단계 120). (만일 인바운드 ARB(x)가 더 높은 우선 순위를 가지고 있다면, 공정한 액세스는 개시 포트에게 인바운드 ARB(x)를 루프상에서 다음으로 귀기울기고 있는 포트로 넘겨주기를 요구한다.) 이렇게 해서, 개시 포트는 자신의 ARB(x)를 다시 수신할 때까지 계속해서 중재를 한다(즉, 더 낮은 우선 순위의 인바운드 ARB(x)를 자신의 ARB(x)로 대체한다). 개시 포트가 자신의 ARB(x) 요청을 다시 수신할 때, 개시 포트는 자유롭게 자신의 프레임들을 전송한다(단계 150). 개시 포트는 중재에서 이겼고, 이제 루프(20)의 현재 주인이 된 것이다. 또한, 이 포트는 루프(20)의 제어를 위해 공정하게 중재를 거쳤기 때문에 "공정한 포트"이다.
제1 루프 회로가 상기 공정한 포트와 임의의 목적지 포트 사이에 형성되는데, 공정한 포트는 현재 데이터를 전송하거나 수신하기를 바라는 임의의 목적지 포트와 연결을 형성할 수 있다(단계 160). 양호한 구현예에서 일단 루프 회로가 형성되면, 공정한 포트가 전송_상태_카운트(transfer_state_count) 변수를 제로에 해당하는 초기 카운트로 리셋한다(단계 170). 이 전송_상태_카운트는 전송 동작이 공정한 포트에 의해 개시될 때마다 하나씩 증가한다. 점유_타이머(occupancy_timer) 변수도 또한 제로에 해당하는 초기 타이머 카운트로 설정된다(단계 180). 이 점유_타이머 변수는 포트가 얼마나 많은 시간 동안 루프(20)를 제어하는지를 계속하여 추적한다. 정보를 수신하기 위하여 현재 연결되어 있는 목적지 포트를 목적지로 하는 데이터의 프레임 시퀀스들이 공정한 포트로부터 상기 목적지 포트로 전송된다(단계 160). 전송은 상기 목적지 포트로 전송할 프레임이 더 이상 존재하지 않을 때까지 인터럽트 없이 계속된다(단계 200).
공정한 포트는 결국 이 제1 루프 회로에서 전송을 마치고, 회로를 닫을 수 있다(단계 210). 추가적인 프레임들이 상이한 목적지 포트로 전송될 필요가 있을 때, 즉, 전송 동작이 필요할 때(단계 220), 현재의 루프 소유자(즉, 공정한 포트)는 공정한 포트가 재중재 없이 루프(20)를 계속 제어할 수 있도록 하는 전송 프로토콜을 호출한다. 만일 상기 공정한 포트가 다른 포트로 프레임들을 전송할 필요가 없다면, 전송 동작이 불필요하며, 공정한 포트가 루프(20)의 제어를 포기한다. 만일 공정한 액세스 윈도우가 여전히 열려 있다면(즉, 적어도 하나의 다른 포트가 자신의 ARB(x)를 전송하고 있다면), 공정한 액세스 규칙이 새로운 공정한 액세스 윈도우가 열리기 전에 상기 포트들이 루프(20)의 제어를 얻을 수 있도록 지시한다. 만일 새로운 윈도우가 열려 있다면, 장치들이 다르게 지시된 우선 순위를 가지고 있지 않는 한, 각 포트에 의한 루프(20)의 제어는 다시 단 한번 그리고 첫번째가 먼저 액세스한다는 원칙(a first-to-access basis)에 따라 허용될 것이다.
정상적인 공정한 액세스 규칙 하에서, 상기 공정한 포트는 새로 지정된 목적지 포트로 프레임들을 전송하도록 허용되며, 이 새 포트를 가지고 새로운 루프 회로를 형성할 수 있으나, 이는 다른 포트가 중재를 거치고 있지 않을 경우에만 가능하다. 이는 다른 포트가 루프(20)의 제어를 얻기를 기다리고 있을 때에도 새로운 루프 회로가 형성되는 경우를 제외하고 본 발명에 적용된다. 상기 공정한 포트는 나머지 대기 포트가 루프의 제어를 요청하는 것을 무시한다. 전송 프로토콜은 상기 새로 지정된 목적지 포트를 가지고 제2 루프 회로를 형성하는 전송 동작을 수행할 것이다(단계 250).
공정한 포트가 이 제2 루프 회로를 형성하는 동안이나 형성하기 전에 현재의 점유_타이머 변수 값을 최대_점유_시간(max_occupancy_time) 값과 비교할 수도 있다(단계 240). 이 두가지 값이 동일할 때, 공정한 포트는 소정의 프레임 전송 기간을 도과한 것이므로, 루프(20)의 제어를 포기해야 한다. 만일 비교가 이루어질때 루프 회로가 벌써 활성화되어 있다면(단계 270), 공정한 포트는 완전한 프레임을 전송하기 위하여 기다려서(단계 280), 루프 회로를 닫은 후(단계 290), 제어를 포기할 것이다.
다른 대안으로 공정한 포트가 현재 활성화된 루프 회로를 닫기 전에 일련의 프레임 전체를 전송하는 것을 마칠 때까지 기다릴 수 있다. 어떤 경우든지, 공정한 포트는 시간의 경과에 응답하여 루프(20)의 제어를 포기한다.
공정한 포트는 전송할 데이터가 더 이상 없을 때까지 제2 루프 회로를 통하여 데이터를 계속해서 전송할 것이고, 결국 루프 회로를 닫을 것이다(단계 300, 310). 다른 실시예에 따르면, 공정한 포트가 루프 상의 목적지 포트들과 함께 추가적인/뒤이은 루프 회로를 (순서대로) 계속해서 형성할 수 있다(단계 320, 340). (이것은 공정한 포트가 상이한 목적지 포트에 연결된 후에 추가적인 프레임 시퀀스들을 계속 전송하기 위하여 처음의 목적지 포트로 다시 돌아갈 가능성을 포함한다.) 전송_상태_카운트 변수는 단일 루프 점유 동안에 수행되는 전송 동작의 수가 언제 허용된 최대_전송_카운트 값과 동일한지 확인하는데 사용된다(단계 330). 이것은 시간 경과와 유사하고, 처음에 "공정하게" 중재에 이겼다는 사실과 독립적으로, 하나의 포트에 의한 루프 독점을 제어하는 또다른 방법을 제공한다.
본 발명은 이렇게 해서 단일 루프 점유 동안에 처음의 루프 회로가 닫힌 후에는, 다른 목적지 포트가 루프의 제어를 원하고 있을 때 조차 현재의 소유자(개시 포트)를 다중 목적지 포트들과 연결하도록 하는 전송 프로토콜 규칙을 채용한다. 양호한 구현예에서 이것은 공정한 포트에 위치한 드라이버 펌웨어에 의해 수행될수 있으며, 보드상의 프로세서(즉, CPU)에 의해 실행되거나, 다른 대안으로, 주문형 집적 회로(application specific integrated circuit)에 의해 실행될 수 있다. 공정한 포트의 펌웨어는 다수의 뒤이은 루프 회로 각각에 대하여 다양한 목적지 포트로 전송하는 동작을 처리한다.
지금까지 본 발명의 실시예가 설명되었다. 그러나, 본 발명의 정신과 범위를 벗어나지 않고 다양한 변경이 가해질 수 있음을 이해할 수 있을 것이다. 더욱이, 당업자에게는 명백하게 인식되는 바와 같이 처리 단계의 일부는 주문(order)에 독립적인 것이므로, 전술한 방법과 다른 순서로 행해질 수 있다. 따라서, 본 발명은 특정하여 설명된 실시예에 한정되는 것이 아니라 첨부된 청구항에 의하여 한정된다는 것을 이해할 수 있을 것이다.

Claims (20)

  1. 파이버 채널 중재 루프(Fibre Channel Arbitrated Loop)의 공정한 액세스 윈도우(access fairness window)의 단일 루프 점유 동안에 공정한 포트에 의하여 루프를 통하여 연속적인 프레임들을 다수의 목적지 포트들로 전송하는 방법에 있어서,
    (a) 상기 공정한 포트에 의하여 첫번째 목적지 포트와 함께 제1 루프 회로를 형성하는 단계와,
    (b) 상기 제1 루프 회로를 닫는 단계와,
    (c) 상기 공정한 포트가 임의의 중재중인 포트들에게 제어를 내주지 않고, 재중재하지 않고, 상기 공정한 포트와 두번째 목적지 포트간에 제2 루프 회로를 여는 단계를 포함하는 것을 특징으로 하는 프레임 전송 방법.
  2. 제1항에 있어서,
    (a) 상기 제2 루프 회로를 닫는 단계와,
    (b) 첫번 째 수의 연속된 루프 회로들을 상기 공정한 포트와 두번째 수의 목적지 포트들 사이에 순서대로 여는 단계를 더 포함하고,
    상기 제1 루프 회로, 상기 제2 루프 회로, 및 상기 첫번째 수의 연속된 루프 회로들은 모두 상기 단일 루프 점유 동안에 열리는 것을 특징으로 하는 프레임 전송 방법.
  3. 제2항에 있어서, 언제 상기 루프에 대한 제어를 포기할지를 확인하는 단계를 더 포함하는 것을 특징으로 하는 프레임 전송 방법.
  4. 제3항에 있어서, 상기 제어를 언제 포기할지 확인하는 단계는 최대의 프레임 전송 기간을 확인하는 단계를 포함하는 것을 특징으로 하는 프레임 전송 방법.
  5. 제4항에 있어서,
    (a) 상기 최대 프레임 전송 기간이 언제 경과하는지 확인하는 단계와,
    (b) 상기 최대 프레임 전송 기간의 끝에 현재의 프레임이 전송되는 것을 확인하는 단계와,
    (c) 상기 현재 프레임이 전송된 이후에 즉시 상기 연속된 루프 회로들 중 마지막 루프 회로를 닫는 단계를 더 포함하는 것을 특징으로 하는 프레임 전송 방법.
  6. 제4항에 있어서,
    (a) 상기 최대 프레임 전송 기간이 언제 경과하는지 확인하는 단계와,
    (b) 상기 최대 프레임 전송 기간의 끝에 현재의 프레임이 전송되는 것을 확인하는 단계와,
    (c) 상기 현재 프레임을 포함하는 연속된 프레임들 중에 마지막 프레임이 전송된 이후에 즉시 상기 연속된 루프 회로들 중 마지막 루프 회로를 닫는 단계를 더포함하는 것을 특징으로 하는 프레임 전송 방법.
  7. 제3항에 있어서, 상기 제어를 언제 포기할지 확인하는 단계는 상기 모든 연속된 프레임들을 상기 모든 목적지 포트들로 전송하는 것이 언제 일어났는지 확인하는 단계를 포함하는 것을 특징으로 하는 프레임 전송 방법.
  8. 제3항에 있어서, 전송 동작이 설정될 때 전송_상태_카운트(transfer_state_count)를 증가시키는 단계를 더 포함하고, 상기 제어를 언제 포기할지 결정하는 단계는 상기 전송_상태_카운트를 최대_전송_카운트(max_transfer_count)와 비교하는 단계를 포함하는 것을 특징으로 하는 프레임 전송 방법.
  9. 제2항에 있어서, 상기 첫번째 수는 상기 두번째 수보다 많은 것을 특징으로 하는 프레임 전송 방법.
  10. 제2항에 있어서,
    (a) 상기 연속된 프레임들 중 마지막 프레임이 전송된 다음에 상기 공정한 포트와 상기 목적지 포트 사이의 상기 연속된 루프 회로 중 마지막 루프 회로를 닫는 단계와,
    (b) 다른 중재중인 포트가 루프를 형성하는 것을 허가하는 단계를 더 포함하는 것을 특징으로 하는 프레임 전송 방법.
  11. 컴퓨터로 판독가능한 매체에 저장된 컴퓨터 프로그램으로서,
    파이버 채널 중재 루프(Fibre Channel Arbitrated Loop)의 공정한 액세스 윈도우(access fairness window)의 단일 루프 점유 동안에 공정한 포트에 의하여 루프를 통하여 연속적인 프레임들을 다수의 목적지 포트들로 전송하기 위한 컴퓨터 프로그램에 있어서,
    공정한 포트가
    (a) 첫번째 목적지 포트와 함께 제1 루프 회로를 형성도록 하는 명령어와,
    (b) 상기 제1 루프 회로를 닫도록 하는 명령어와,
    (c) 상기 공정한 포트가 임의의 중재중인 포트들에게 제어를 내주지 않고, 재중재하지 않고, 상기 공정한 포트와 두번째 목적지 포트간에 제2 루프 회로를 열도록 하는 명령어를 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  12. 제11항에 있어서,
    (a) 상기 제2 루프 회로를 닫는 명령어와,
    (b) 상기 공정한 포트와 두번째 수의 목적지 포트들 사이에 순서대로 첫번 째 수의 연속된 루프 회로들을 여는 명령어를 더 포함하고,
    상기 제1 루프 회로, 상기 제2 루프 회로, 및 상기 첫번째 수의 연속된 루프 회로들은 모두 상기 단일 루프 점유 동안에 열리는 것을 특징으로 하는 컴퓨터프로그램.
  13. 제12항에 있어서, 상기 루프의 제어를 언제 포기할지 확인하는 명령어를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  14. 제13항에 있어서, 상기 루프의 제어를 언제 포기할지 확인하는 명령어는 최대 프레임 전송 기간이 언제 경과하는지 확인하는 것을 포함하는 컴퓨터 프로그램.
  15. 제14항에 있어서,
    (a) 상기 최대 프레임 전송 기간의 끝에 현재의 프레임이 전송되는 것을 확인하는 명령어와,
    (b) 상기 현재 프레임이 전송된 이후에 즉시 상기 연속된 루프 회로들 중 마지막 루프 회로를 닫는 명령어를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  16. 제14항에 있어서,
    (a) 상기 최대 프레임 전송 기간의 끝에 현재의 프레임이 전송되는 것을 확인하는 명령어와,
    (b) 상기 현재 프레임을 포함하는 연속된 전체 프레임들이 전송된 이후에 즉시 상기 연속된 루프 회로들 중 마지막 루프 회로를 닫는 명령어를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  17. 제13항에 있어서, 상기 제어를 언제 포기할지 확인하는 명령어는 상기 모든 연속된 프레임들을 상기 모든 목적지 포트들로 전송하는 것이 언제 일어났는지 확인하는 것을 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  18. 제13항에 있어서, 전송 동작이 설정될 때마다 전송_상태_카운트를 증가시키는 명령어를 더 포함하고, 상기 제어를 언제 포기할지 결정하는 명령어는 상기 전송_상태_카운트를 최대_전송_카운트와 비교하는 것을 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
  19. 제12항에 있어서, 상기 첫번째 수는 상기 두번째 수보다 많은 것을 특징으로 하는 컴퓨터 프로그램.
  20. 제12항에 있어서,
    (a) 상기 연속된 프레임들 중 마지막 프레임이 전송된 다음에 상기 공정한 포트와 상기 목적지 포트 사이의 상기 연속된 루프 회로 중 마지막 루프 회로를 닫는 명령어와,
    (b) 다른 중재중인 포트가 루프를 형성하는 것을 허가하는 명령어를 더 포함하는 것을 특징으로 하는 컴퓨터 프로그램.
KR10-2002-7001404A 1999-08-06 2000-08-02 파이버 채널 중재 루프에서의 공정한 가변 액세스 방법 KR100431372B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/370,096 US6459701B1 (en) 1999-08-06 1999-08-06 Variable access fairness in a fibre channel arbitrated loop
US09/370,096 1999-08-06

Publications (2)

Publication Number Publication Date
KR20020025209A KR20020025209A (ko) 2002-04-03
KR100431372B1 true KR100431372B1 (ko) 2004-05-13

Family

ID=23458205

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-7001404A KR100431372B1 (ko) 1999-08-06 2000-08-02 파이버 채널 중재 루프에서의 공정한 가변 액세스 방법

Country Status (6)

Country Link
US (1) US6459701B1 (ko)
EP (1) EP1203466A1 (ko)
JP (1) JP3782350B2 (ko)
KR (1) KR100431372B1 (ko)
CA (1) CA2380420A1 (ko)
WO (1) WO2001011810A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185631B1 (en) * 1998-10-14 2001-02-06 International Business Machines Corporation Program for transferring execution of certain channel functions to a control unit and having means for combining certain commands and data packets in one sequence
US6999460B1 (en) * 2000-10-16 2006-02-14 Storage Technology Corporation Arbitrated loop port switching
US7346674B1 (en) * 2001-06-07 2008-03-18 Emc Corporation Configurable fibre channel loop system
US7397788B2 (en) * 2002-07-02 2008-07-08 Emulex Design & Manufacturing Corporation Methods and apparatus for device zoning in fibre channel arbitrated loop systems
US7630300B2 (en) * 2002-07-02 2009-12-08 Emulex Design & Manufacturing Corporation Methods and apparatus for trunking in fibre channel arbitrated loop systems
US7664018B2 (en) 2002-07-02 2010-02-16 Emulex Design & Manufacturing Corporation Methods and apparatus for switching fibre channel arbitrated loop devices
US7660316B2 (en) * 2002-07-02 2010-02-09 Emulex Design & Manufacturing Corporation Methods and apparatus for device access fairness in fibre channel arbitrated loop systems
US7240135B2 (en) * 2004-03-05 2007-07-03 International Business Machines Corporation Method of balancing work load with prioritized tasks across a multitude of communication ports
US7839865B2 (en) * 2005-01-26 2010-11-23 Emulex Design & Manufacturing Corporation Dynamically controlling fair access to a system packet interface attached switch enclosure
US7609649B1 (en) * 2005-04-26 2009-10-27 Cisco Technology, Inc. Methods and apparatus for improving network based virtualization performance
US10644975B2 (en) 2017-08-08 2020-05-05 Arista Networks, Inc. Method and system for probing forwarding elements of network elements
US10644969B2 (en) * 2017-08-08 2020-05-05 Arista Networks, Inc. Method and system for network elements to internally probe their forwarding elements

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60250742A (ja) * 1984-05-28 1985-12-11 Nec Corp 伝送路システムのアクセス制御方式
JPH0818588A (ja) * 1994-06-27 1996-01-19 Nippon Telegr & Teleph Corp <Ntt> リング型ネットワークの経路切換え方法
US5535035A (en) * 1994-09-15 1996-07-09 International Business Machines Corporation Optical fiber ring communications system and communications method
US5598541A (en) 1994-10-24 1997-01-28 Lsi Logic Corporation Node loop port communication interface super core for fibre channel
US5754549A (en) 1995-12-05 1998-05-19 International Business Machines Corporation Inexpensive two-way communications switch
US5751715A (en) * 1996-08-08 1998-05-12 Gadzoox Microsystems, Inc. Accelerator fiber channel hub and protocol
US5922077A (en) 1996-11-14 1999-07-13 Data General Corporation Fail-over switching system
US5991891A (en) * 1996-12-23 1999-11-23 Lsi Logic Corporation Method and apparatus for providing loop coherency
US6055228A (en) * 1996-12-23 2000-04-25 Lsi Logic Corporation Methods and apparatus for dynamic topology configuration in a daisy-chained communication environment
US5978379A (en) * 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
US5919599A (en) * 1997-09-30 1999-07-06 Brewer Science, Inc. Thermosetting anti-reflective coatings at deep ultraviolet
WO1999043002A2 (en) * 1998-02-24 1999-08-26 Seagate Technology Llc Preserving loop fairness with dynamic half-duplex
US6934546B1 (en) * 1998-04-30 2005-08-23 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for control of soft handoff usage in radiocommunication systems
US6101166A (en) * 1998-05-01 2000-08-08 Emulex Corporation Automatic loop segment failure isolation
US6064679A (en) * 1998-05-01 2000-05-16 Emulex Corporation Hub port without jitter transfer
US6157652A (en) * 1998-05-01 2000-12-05 Emulex Corporation Hub port with constant phase
US6188668B1 (en) * 1998-05-01 2001-02-13 Emulex Corporation Automatic isolation in loops
US6226269B1 (en) * 1998-05-01 2001-05-01 Emulex Corporation Elimination of invalid data in loop network
US6167026A (en) * 1998-05-01 2000-12-26 Emulex Corporation Programmable error control circuit
US6282188B1 (en) * 1998-05-01 2001-08-28 Emulex Corporation Scalable hub
US6215775B1 (en) * 1998-10-22 2001-04-10 Emulex Corporation Node insertion and removal in a loop network

Also Published As

Publication number Publication date
WO2001011810A1 (en) 2001-02-15
JP2003527777A (ja) 2003-09-16
US6459701B1 (en) 2002-10-01
CA2380420A1 (en) 2001-02-15
EP1203466A1 (en) 2002-05-08
JP3782350B2 (ja) 2006-06-07
KR20020025209A (ko) 2002-04-03

Similar Documents

Publication Publication Date Title
US6138185A (en) High performance crossbar switch
US6675268B1 (en) Method and apparatus for handling transfers of data volumes between controllers in a storage environment having multiple paths to the data volumes
KR100431372B1 (ko) 파이버 채널 중재 루프에서의 공정한 가변 액세스 방법
JPH02242462A (ja) データ・バスへのアクセスを制御する装置
US5473762A (en) Method and system for pipelining bus requests
JP2000507428A (ja) 有限メモリコンピュータシステム上におけるクライアント管理フロー制御方法及び装置
US7773618B2 (en) System and method for preventing deadlock in richly-connected multi-processor computer system using dynamic assignment of virtual channels
WO2008057830A2 (en) Using a pool of buffers for dynamic association with a virtual channel
US6657973B1 (en) Communications node, network system and method of controlling network system
JPH03123952A (ja) アービトレーシヨンを制御するための方法及び装置
KR100232237B1 (ko) 근거리 통신망 인터페이스 장치 및 방법
US7702717B2 (en) Method and apparatus for controlling management agents in a computer system on a packet-switched input/output network
JPH09116570A (ja) ネットワークメッセージルート指定装置のための待ち時間短縮及びルート裁定方法
JPH01270161A (ja) 共通バス制御方法
US20040225734A1 (en) Method and system to control the communication of data between a plurality of inteconnect devices
JP4368478B2 (ja) エレベータのローカル機器ネットワークおよびこれの送信制御方法
JP2003124934A (ja) アドレステーブルのアドレス数の制御方法
US7773617B2 (en) System and method for arbitration for virtual channels to prevent livelock in a richly-connected multi-processor computer system
US20020194332A1 (en) Method and apparatus to manage resources for a multi-threaded device driver
JP3759708B2 (ja) コンピュータネットワークにおけるスタベーションを回避する方法及び装置
WO2024066604A1 (zh) 节点控制方法、装置、处理系统
JP2001325212A (ja) マルチプロセッサシステムにおけるソースプロセッサから宛先プロセッサにデータブロックを送信する方法と装置
JPH06295289A (ja) 複数計算機におけるブート方法
CN116980366A (zh) 多级交换网络及输入输出端口匹配方法
JPH0863443A (ja) データ転送方法および相互接続スイッチ装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee