KR20010024291A - 전이중 통신 프로세서 - Google Patents

전이중 통신 프로세서 Download PDF

Info

Publication number
KR20010024291A
KR20010024291A KR1020007003187A KR20007003187A KR20010024291A KR 20010024291 A KR20010024291 A KR 20010024291A KR 1020007003187 A KR1020007003187 A KR 1020007003187A KR 20007003187 A KR20007003187 A KR 20007003187A KR 20010024291 A KR20010024291 A KR 20010024291A
Authority
KR
South Korea
Prior art keywords
processor
frame
transmission
receiving
computer network
Prior art date
Application number
KR1020007003187A
Other languages
English (en)
Other versions
KR100315245B1 (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 KR20010024291A publication Critical patent/KR20010024291A/ko
Application granted granted Critical
Publication of KR100315245B1 publication Critical patent/KR100315245B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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/2801Broadband local area networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/28DMA
    • G06F2213/2802DMA using DMA transfer descriptors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/12Protocol engines

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Software Systems (AREA)
  • Computer And Data Communications (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

전이중 통신 프로세서(20)는 데이터 프레임 및 커맨드를 동시에 송신 및 수신한다. 각각의 송신 프로토콜 엔진(32) 및 수신 프로토콜 엔진(30)은 별도의 시퀀서에 의해 제어된다. 이것에 의해 프레임 처리 단위의 CPU(40)와 관련되지 않고 데이터 프레임을 동시에 수신 및 송신할 수 있게 된다.

Description

전이중 통신 프로세서{FULL-DUPLEX COMMUNICATION PROCESSOR}
최근 컴퓨터 및 주변 기기들이 급속히 증가하고 있다. 이로 인해, 이 장치들을 상호 접속하는 개선된 방법이 요구되고 있다. 다른 종류의 컴퓨터 및 주변 기기가 서로 통신할 수 있도록 하는 광범위한 네트워크가 개발되고 있다.
이러한 네트워크를 따라 데이터를 교환할 때 속도 면에서 문제가 발생한다. 이와 같은 문제 발생은 네트워크 아키텍쳐 속도의 증가가 보다 빠른 컴퓨터 처리 속도에 보조를 맞추지 못하기 때문에 놀라운 일은 아니다. 컴퓨터 칩의 처리 능력은 약 18개월마다 2배가 되며, 이로 인해 점점 더 강력한 머신이 생성되고 처리 대역폭은 그에 미치지 못하고 있다. 1 메가비트/초의 입출력이 처리 능력 "MIPS(millions of instructions per second)" 마다 통상 요구된다라고 추정되고 있다. CPU가 쉽게 200MIPS를 초과하기 때문에. 네트워크 아키텍쳐가 보다 빠른 속도에 보조를 맞추기란 어렵다.
광대역 네트워크(예를 들면, LAN 및 WAN) 및 채널은 컴퓨터 네트워크 아키텍쳐용으로 개발되고 있는 2가지의 접근 수단이다. 종래의 네트워크는 다량의 유연성 및 비교적 장거리 기능을 제공한다. 채널, 예를 들면 엔터프라이즈 시스템 접속(ESCON) 및 소형 컴퓨터 시스템 인터페이스(SCSI)는 고성능 및 고신뢰성용으로 개발되고 있다. 통상적으로 채널은 컴퓨터 사이 또는 컴퓨터와 주변 기기 사이의 전용 단거리 접속을 사용한다.
채널 및 네트워크의 특징은 "파이버 채널"로 알려진 새로운 네트워크 표준 규격에 통합되어 왔다. 파이버 채널 시스템은 네트워크의 유연성 및 접속성에 채널의 속도 및 신뢰성을 결합한다. 파이버 채널은 현재 매우 높은 데이터 전송률, 예를 들면 266 또는 1062Mbps로 동작할 수 있다. 이러한 속도는 수요가 꽤 급증하고 있는 어플리케이션, 예를 들면 비압축된 풀 모션 고화질 비디오를 처리하기에 충분하다.
파이버 채널을 전개하는 데에는 통상 3가지 방법이 있는데, 단순한 포인트 투 포인트 접속, 중재형 루프 및 교환 패브릭(fabrics)이 그것이다. 가장 단순한 토폴로지는 포인트 투 포인트 구성이며, 단순히 임의의 2개의 파이버 채널 시스템을 직접 접속한다. 중재형 루프는 중재를 통해 대역폭에 대한 공유 액세스를 제공하는 파이버 채널 링 접속이다. "패브릭"으로 칭해지는 교환 파이버 채널 네트워크는 크로스 포인트 스위칭의 이점을 균형있게 함으로써 초고성능을 산출한다.
파이버 채널 패브릭은 종래의 전화 시스템처럼 동작한다. 패브릭은 여러 장치, 예를 들면 파이버 채널 인터페이스 포트를 갖는 워크 스테이션, PC, 서버, 라우터, 메인 프레임, 및 격납 장치를 접속할 수 있다. 각각의 이러한 장치는 프레임 헤더에 목적지 포트 어드레스를 기입함으로써 패브릭을 "호출(call)"하는 발신 포트를 가진다. 파이버 채널 명세에는 이 프레임의 구조가 정의되어 있다. 이 프레임 구조는 이하에서 논의되고 본원 발명에 의해 처리될 데이터 전송 이슈를 제기한다. 파이버 채널 패브릭에서 소망의 접속을 세팅하는 모든 작업이 행해지기 때문에, 프레임 발신기는 복잡한 경로 알고리즘과 관련될 필요가 없다. 복잡한 영구 가상 회로(PVC)를 세팅하지 않아도 된다. 파이버 채널 패브릭은 16million 어드레스 이상 처리할 수 있기 때문에 대규모 네트워크를 수용할 수 있다. 패브릭은 단순히 포트를 부가하는 것으로 확대될 수 있다. 완전히 형성된 파이버 채널 네트워크의 총 데이터 전송률은 테라(terra) bps 범위 내에 있을 수 있다.
도 1은 파이버 채널 접속의 3가지의 기본 형태를 도시하고 있으며, 파이버 채널 테크놀로지를 사용하는 여러 가지 방법이 도시되어 있다. 특히, 포인트 투 포인트 접속(10)은 메인프레임을 상호 접속하고 있다. 파이버 채널 중재형 루프(11)는 디스크 기억 장치를 접속하고 있다. 파이버 채널 스위치 패브릭(12)은 워크 스테이션(13), 메인 프레임(14), 서버(15), 디스크 드라이브(16) 및 LAN(17)을 접속하고 있다. LAN은 예를 들면, 이더넷, 토큰 링 및 FDDI 네트워크를 포함하고 있다.
ANSI 명세(X3.230-1994)는 파이버 채널 네트워크를 정의하고 있으며, 5개 층사이에 파이버 채널 기능을 분배한다. 도 2에 도시된 바와 같이, 파이버 채널의 5개의 기능층은 FC-0(물리적 매개층), FC-1(코딩 및 디코딩층), FC-2(프레임 프로토콜 및 노드간의 흐름 제어를 포함한 실제 전송 메카니즘), FC-3(공통 서비스층), FC-4(최상층 프로토콜) 이다.
파이버 채널이 비교적 고속으로 동작하기는 하지만, 보다 빠른 프로세서의 요구에 부응하기 위해서는 속도를 한층 더 증가시키는 것이 바람직하다. 속도를 증가시키기 위한 한 방법으로는 인터페이스 포인트에서 발생하는 지연을 제거, 감소시키는 것이 있다. 이러한 지연은 FC-1층에서 FC-2 층으로의 프레임 전송시에 발생한다. 이 인터페이스에서, 파이버 채널 데이터 링크에 의해 연결된 장치는 파이버 채널 프레임을 연속적으로 수신한다. 프로토콜 엔진은 이 프레임을 수신하여 다음 층, 즉 도 2에 도시된 FC-2층에서 그것들을 처리한다. 프로토콜 엔진의 기능은 각 프레임을 타당성 여부를 확인하고, 각 프레임을 호스트에 전송하기 위해 DMA 오퍼레이션을 대기시키고, 송신 프레임을 작성한다.
높은 비트 속도의 파이버 채널 데이터 링크는 프로토콜 엔진의 최종 요청에 중점을 둔다. 그러므로, 일부 프로토콜 엔진은 반이중 모드로만 동작하며, 이것은 프로코콜 엔진이 동시에 한 방향으로만 데이터를 처리할 수 있다는 것을 의미한다. 송신 또는 수신 태스크 중 하나가 다른 태스크를 실행하는 동안에는 대기해야만 하기 때문에 데이터 전송의 속도를 상당히 저하시킨다.
전이중 프로토콜 엔진은 수신된 프레임과 송신된 프레임을 동시에 처리할 수 있다. 그래서, 전이중 프로토콜 엔진은 데이터 처리 효율을 상당히 증가시킨다. 그러나, 전이중 프로토콜 엔진에서 로컬 RAM을 각각 갖는 2개의 마이크로프로세서는 통상 송신 및 수신 오퍼레이션을 각각 처리하도록 요구된다. 이러한 기능을 위한 마이크로프로세서의 사용으로 프로토콜 엔진의 비용이 상당히 증가된다.
프레임을 처리하는 종래의 방법은 대개 프레임 처리 단위의 호스트 CPU와 관련된다. 예를 들면, 수신된 프레임의 타당성 여부 확인 및 직접 메모리 액세스(DMA) 동작 및 응답은 통상 호스트 CPU와 관련되며, 이것은 프레임 송신 및 수신 속도를 한정하고 호스트 CPU가 다른 태스크를 처리하지 못하게 한다. 또한, 소프트 프로토콜 "스택"을 갖는 호스트 CPU는 빠른 네트워크, 예를 들면 파이버 채널에 보조를 맞추지 못한다.
전술된 점에 비추어 볼 때, 본 발명의 목적은, 파이버 채널 네트워크와 같은 고속 네트워크에서 데이터 전송 처리 속도를 증가시키고, 데이터 프레임의 프로토콜 엔진의 처리 속도를 증가시킬 수 있는 방법을 제공하고, 프레임 처리 단위의 호스트 CPU와 상관없이 고속 전이중 데이터 처리를 실행할 수 있는 프로토콜 엔진을 제공하고, 프로토콜 엔진과 프레임 처리 단위 호스트 CPU와의 데이터 트래픽을 최소화하고, 호스트 CPU로부터의 프로토콜 처리를 오프로딩하는데 있다.
본원 발명은 컴퓨터 네트워크에서의 데이터 전송 장치에 관한 것으로, 구체적으로 말하면 컴퓨터 네트워크 경계선을 지나는 데이터 프레임을 수신, 발생 및 송신하는 장치에 관한 것이다.
도 1은 파이버 채널 테크놀로지를 이용한 종래의 복잡한 컴퓨터 네트워크의 블록도이다.
도 2는 종래의 파이버 채널 표준의 5가지 기능층을 도시한 도면이다.
도 3은 본 발명의 양호한 실시예에 따른 통신 처리 시스템의 단순화된 블록도이다.
도 4는 종래의 파이버 채널 데이터 프레임을 도시한 도면이다.
도 5는 본 발명의 양호한 실시예에 따른 전이중 통신 프로세서의 단순화된 블록도이다.
도 6은 본 발명의 양호한 실시예에 따른 교환 콘택스트 리소스 인덱스(XRI)를 도시한 도면이다.
본 발명은 컴퓨터 데이터 링크에서의 데이터 프레임의 처리 및 전송에 관한 것이다. 본 발명은 프레임 처리 단위의 호스트 CPU에 관련되지 않고 상주 마이크로프로세서를 구비하지 않고 송신 프레임을 작성하고, 수신 프레임의 타당성 여부를 판정하고 호스트 CPU를 셋업하는데 이중 마이크로코드 엔진 및 특정 하드웨어를 사용하는 전이중 통신 프로세서에 관한 것이다. 본 발명의 양호한 실시예에서는 독립 송수신 프로토콜 프로세서를 사용하고 있다. 이 독립 프로세서는 전송 큐를 이용하여 서로 통신한다. 콘택스트(context) 관리자는 수신된 프레임의 타당성 여부를 판정하기 위해 수신 프로세서에 의해 사용되고 송신 프레임 헤더를 작성하기 위해 송신 프로세서에 의해 사용되는 콘택스트 정보를 공급한다.
더 구체적으로는, 본 발명의 양호한 실시예에서, 1) 호스트 메모리 상주 "커맨드", "불필요한 데이터", "응답" 링을 통해 호스트 드라이버 소프트웨어로 직접 통신하는 독립의 송신 및 수신 프로세서를 구비한 전이중 통신 프로세서를 이행하고, 2) 송신 프로세서로 하여금 송신 프로세서 작업을 대기시키도록 이중 프로세서간에 통신을 설정하며, 상기 송신 프로세서는 원격 장치로 하여금 수신 프로세서에 프레임을 전송하도록 하며, 상기 수신 프로세서는 호스트 CPU와 관련되지 않고 원격 장치에 데이터를 전송하도록 송신 프로세서를 "웨이크-업(wake-up)"하고, 3) 송신 및 수신 프로세서로 하여금 동일 입출력 커맨드를 동작하게 하는 인터록된 정보 테이블을 설정한다.
양호한 실시예에서, 데이터 채널은 파이버 채널 링크이며 전이중 통신 프로세서는 FC-2 프로토콜 파이버 채널 프레임을 처리하도록 구성된다.
본 발명은 파이버 채널과 같은 고속 데이터 링크에서 프레임 송수신 속도를 증가시키는 전이중 통신 프로세서에 관한 것이다. 호스트 드라이버 소프트웨어와 직접적으로 통신하는 독립 송신 및 수신 마이크로코드 엔진을 사용함으로써 전이중 인터-프로세서 통신은 호스트 CPU와 관련없이 이루어진다.
도 3은 본 발명의 양호한 실시예에 따른 전이중 통신 프로세서(22)를 이용하는 파이버 채널 통신 시스템(20)을 도시하고 있다. 일련의 데이터는 파이버 채널 데이터 링크(24)를 따라 수신된다. 통상적으로 프레임은 3개 부분, 프리엠블, 데이터 즉 "페이로드", 꼬리 부분으로 구성된다. 파이버 채널 데이터 링크에서, 예를 들면 파이버 채널 프레임은 프레임 개시부(SOF) 워드(4바이트); 프레임 헤더(6바이트), 0~2112 페이로드 바이트 및 순환 중복 검사(CRC) 워드(4바이트)를 포함한 데이터부; 프레임의 엔드부(EOF) 워드(4바이트)로 구성된다. 프레임 헤더는 링크 어플리케이션을 제어하고 장치 프로토콜 전송을 제어하고 잘못된 프레임을 검출하는데 사용된다. CRC 워드는 전송시에, 예를 들면 데이터 변조와 같은 문제가 있는지의 여부, 또는 프레임의 일부가 전송동안 누락되었는지의 여부를 나타낸다.
파이버 채널 데이터 링크(24)로부터 수신된 프레임은 입력되는 일련의 데이터를 디코딩하여 워드로 병렬처리하는 NL 포트(36)를 통해 처리된다. NL 포트(36)는 프레임으로 워드를 어셈블리한다. 또한, NL 포트(36)는 수신된 각 프레임에 대하여 CRC 워드를 점검하고, EOF 워드로부터 생성되는 EOF 상태 워드내의 다른 상태 정보 비트에 결과로서 생성되는 "굿-배드(good-bad)" CRC 상태 표시기를 부가한다. 그런다음, NL 포트(36)는 수신 프레임 FIFO 버퍼(28)에 프레임을 기록한다. 또한, 바람직한 FIFO 버퍼 모듈(28)에 관한 설명은 본원 발명의 동일 양수인에게 양도된 1997년 9월 23일 출원된 "프레임 바이패스의 엔드를 갖는 수신 프레임 FIFO(RECEIVE FRAME FIFO WITH END OF FRAME BYPASS)"라는 명칭하에 공동 계속 출원중인 제08/935,898호에 기재되어 있다.
파이버 채널 프레임은 전이중 통신 프로세서(22)에 의해 수신되며, 이 프로세서는 프로토콜 엔진이라고 칭해진다. 또한, 전이중 통신 프로세서(22)에 의해 몇 가지 기능이 실행된다; 즉, 1) 직접 메모리 액세스(DAM)를 통해 수신된 프레임의 데이터를 호스트 메모리에 기록하기 위해 호스트 커맨드를 대기시키고, 2) 프레임이 수신될 다음 논리 프레임인지를 확인하기 위해 프레임 헤더의 타당성 여부를 확인하고, 3) 프레임이 결함이 있는지의 여부를 판정하고, 4) 수신된 프레임 또는 호스트에 의해 생성된 송신 커맨드에 응답하여 송신 프레임을 발생하는 기능이 수행된
종래의 프로토콜 엔진과 달리, 전이중 통신 프로세서(22)는 마이크로프로세서를 구비하지 않는다. 대신에 이중 마이크로코드 엔진을 사용하여, 프로토콜 엔진 송신 태스크와 프로토콜 엔진 수신 태스크를 분리한다. 특히, 전이중 통신 프로세서(22)는 수신 프로토콜 엔진(30) 및 송신 프로토콜 엔진(32)을 포함한다. 이 프로토콜 엔진은 전송 대기 큐(60)를 통해 서로 통신한다. 수신 프로토콜 엔진(30)은 수신 프레임 버퍼(28)로부터 수신된 수신 프레임 헤더의 타당성 여부를 확인한다. 송신 프로토콜 엔진(32)은 송신 프레임을 작성하여 송신 FIFO(66) 및 NL 포트(36)를 통해 파이버 채널 데이터 링크(24)에 보낸다.
전이중 통신 프로세서(22)는 호스트 드라이버 소프트웨어(38) 및 호스트 메모리(42)를 포함하는 호스트 컴퓨터(40)와 결합하여 동작한다. 특히, 송신 프로토콜 엔진 및 수신 프로토콜 엔진(30, 32)은 호스트 드라이버 소프트웨어(38)에 의해 직접 통신한다. 수신 및 송신 프로토콜 엔진이 독립적으로 그리고 동시에 동작하기 때문에 전이중 통신이 이루어진다. 인터록된(interlocked) 콘택스트 정보 테이블은 이하에서 더 상세히 기술되는 바와 같이 수신 및 송신 프로토콜 엔진이 동일 I/O 커맨드를 동작시킬 수 있게 하는데 사용된다.
전이중 통신 프로세서(22)는 프레임 처리 단위의 호스트 CPU를 사용하지 않고도 프레임을 처리할 수 있다. 예를 들면, 전이중 통신 프로세서(22)의 기능의 한 예는 원격 장치로 하여금 파이버 채널 링크(24)를 따라 수신 프로토콜 엔진(30)에 프레임을 보낼 수 있게 한 것이며, 여기서 수신 프로토콜 엔진(30)은 NL 포트(36)를 통한 원격 장치에서의 데이터를 파이버 채널 링크(24)에 보내기 위해 송신 프로토콜 엔진(32)을 "웨이크-업(wake-up)"한다. 이러한 데이터는 예를 들면 호스트 메모리(42)에 상주한다.
도 5는 본 발명의 양호한 실시예의 전이중 통신 프로세서(22)에 관하여 추가하여 상세하게 도시하고 있다. 전이중 통신 프로세서(22)는 호스트 메모리(42)에 상주하는 데이터 구조를 포함하며, 인접한 물리적 메모리 및 비인접한 물리적 메모리를 포함한다.
파이버 채널 프레임은 NL 포트(36)를 통해 수신 프로토콜 엔진(30)에 의해 수신된다. NL 포트 상태 유닛(44)은 수신 프레임 시퀀스의 시간 조정 및 NL 포트 인터럽트 모니터링 기능을 행한다. 수신된 프레임은 수신 버퍼(50)에 수신된 프레임을 배치하는 수신 버퍼 제어 유닛(48)에 시퀀서(46)를 통해 전송된다. 그런다음, 수신 버퍼(50)의 프레임 헤더는 수신 프로토콜 엔진(30)에 자동 배치된다.
각 프레임 헤더내의 룩업 필드는 관련 콘택스트에 관한 포인터를 포함한다. 통상적으로, 관련 콘택스트는 호스트 메모리(41)내의 호스트 드라이버(38)에 의해 초기화되고, 호스 메모리(42)에서 특정 데이터 프레임이 배치되는 곳을 나타내는 정보를 포함한다. 구체적으로 말하면, 콘택스트는 예를 들면 최대 프레임 크기, 현재 버퍼 포인터 및 길이, 소형 컴퓨터 시스템 인터페이스(SCSI) 상태 정보를 포함하며, 버퍼의 리스트에 형성된다.
호스트 메모리 유닛(42)은 많은 메가비트의 메모리를 다수개 포함하며, 각 특정 프레임은 그 메모리의 한 슬롯에 적절하다. 각 프레임 헤더는 수신 프로토콜 엔진이 그 프레임의 타당성 여부를 판정할 수 있도록 수신 프로토콜 엔진(30)에 그 특정 프레임에 대하여 액세스 또는 "풀-다운"될 콘택스트를 알린다. 콘택스트는 호스트 메모리 인터페이스(54)를 통해 콘택스트 관리자 엔진(52)의 제어 하에서 호스트 메모리(42)로부터 풀다운된다. 수신 프로토콜 엔진 시퀀서(46)는 프레임의 타당성 여부를 확인한다.
프레임 타당성 여부 확인이 종료되면, 프레임 헤더에 의해 나타나는 콘택스트는 프레임을 처리할 것을 수신 프로토콜 엔진(30)에 알린다. 여러 가능성이 있다: 1) 라우팅 제어/타입(R_CTL/TYPE) 링 제어 유닛(56) 밖으로 전송하고 나서, 호스트 메모리 인터페이스(52)를 통해 호스트 메모리(42)로 전송된다; 2) 그 프레임을 버퍼 리스트 링 제어 유닛(58)을 통해 호스트 메모리내의 버퍼 포인터 리스트의 한 세그먼트에 전송한다; 3) 비데이터 수신 프레임 및 관련 페이로드를 처리한다. (예를 들면, 프레임은 타겟이 데이터를 수신할 준비가 되어 있음을 송신기에 알리는 "전송 대기"와 같은 전달 프레임일 수 있다. 이러한 전달로 인해 수신 프레임이 전송 대기 큐(60)를 통과하게 되며, 그런 다음 송신 커맨드는 송신 프로토콜 엔진(32)에 전송될 것이다)
두 번째 경우는 버퍼 기술어(buffer descriptor)의 순차 리스트인 버퍼 포인터 리스트에 프레임을 전송하는 것을 포함한다. 리스트의 제1 엔트리는 총 전송 크기 바이트를 포함한다. 전술된 실시예에서, 워드 전송만이 전이중 통신 프로세서(22)에 의해 실행된다. 따라서, 총 전송 크기가 4바이트 워드의 정수가 아니면 추가 바이트는 다음 경계로 전송된다. 버퍼 리스트의 다음 엔트리는 2개 부분으로 구성되는데, 한 부분은 버퍼의 개시점을 나타내는 멀티바이트 어드레스이고 다른 부분은 버퍼의 크기 및 용도를 나타낸다.
본 발명에 의하면, 각 버퍼 포인터 리스트는 버퍼 용도를 기술하는 버퍼 리스트 변경자(BLM) 비트를 포함하고, 각 송신 프레임용 출발 파이버 채널 프레임 헤더(FC-2 헤더)를 작성하는데 사용된다. 전이중 통신 프로세서(22)는 프레임 헤더 및 대응하는 프레임 제어(F_CTL) 비트를 작성해야 하며, DMA를 통해 페이로드를 전송하기전에 송신 FIFO(66)에 프레임 헤더를 전송한다. BLM 비트 및 버퍼 리스트의 버퍼 길이는 전이중 통신 프로세서(22)가 프레임이 일련 프레임 중에서 최후 프레임인지의 여부를 판정할 때 도움이 된다. 수신 프로토콜 엔진에 대하여, BLM 비트는 수신 데이터의 적절한 배치 및 버퍼 세그먼트의 상태 정보를 제어한다. BLM 비트는 본 발명에서 참조되는 본 발명과 동일한 양수인에게 양도된 "버퍼 리스트 변경자 제어 비트를 갖는 통신 프로세서"라는 명칭하에 1997년 9월 24일자로 출원된 관련 특허 출원 제08/937,065호에 기술되어 있다.
전이중 통신 프로세서(22)에 의해 실행되는 태스크의 일례는 파이버 채널 링크(24)상의 디스크 드라이브에의 데이터 기록을 명령하는 원격 장치로부터의 데이터 기록 커맨드를 실행하는 것이다. 기록 커맨드는 전송되며, 전이중 통신 프로세서는 그 기록 커맨드를 디스크 드라이브에 전송하고, 데이터를 수신할 준비가 되어 있음을 나타내는 전송 대기 메시지를 수신 프로토콜 엔진(30)에 반송한다. 이 메시지는 송신 프로토콜 엔진(32)으로 하여금 호스트 메모리(42)로부터 데이터를 복구하도록 명령하고 프레임을 발생하여 디스크 드라이브에 그 데이터를 송신하는 전송 대기 큐(60)로 보내진다.
송신 프로토콜 엔진(32)은 2개의 이벤트 중 하나에 의해 트리거링되는데, 하나는 전송 대기 큐(60)의 엔트리의 존재이고, 나머지는 커맨드 링 컨트롤러(62)의 동작에 의한 것이다. 이하에서 기술될 교환 콘택스트 리소스 인덱스(XRI)는 각 커맨드를 처리하는데 사용된다. 커맨드 링은 커맨드 엔트리의 순환 큐, 통상 판독 및 기록 커맨드를 말한다. 이러한 판독 및 기록 커맨드는 예를 들면, 디스크 드라이브와 같은 원격 장치에 커맨드를 전달하는데 사용된다. 커맨드 링의 크기 및 베이스 메모리 어드레스는 다음과 같은 커맨드 링을 관리하기 위해 사용되는 "쓰기(put)" 및 "읽기(get)" 포인터를 포함하는 커맨드 링 베이스 레지스터에 규정되어 있다: 호스트 드라이버(38)는 커맨드 링(62)에 커맨드가 대기할 때마다 포인터가 증가하는 쓰기 포인터를 관리한다. 전이중 통신 프로세서(22)는 링으로부터 커맨드가 판독될 때마다 포인터가 증가하는 읽기 포인터를 관리한다.
모든 프레임 전송 이외의 커맨드는 버퍼 포인터 리스트에 포인터를 제공한다. 버퍼 포인터 리스트는 제1 버퍼 리스트 엔트리의 총 버퍼 크기 및 다음 버퍼 리스트 엔트리의 버퍼 포인터-크기 쌍을 포함한다. 커맨드의 XRI 필드는 콘택스트 관리자(52)로 하여금 송신 프로토콜 엔진(32)에 적절한 콘택스트를 풀다운하도록 명령하는데 사용된다. 교환으로 칭해지는 이러한 전송은 프레임이 얼마나 많은 데이터를 가지고 있으며 그것이 어느 단계에 있는지 등을 그 특정 버퍼 링 리스트에 있는 송신 프로토콜 엔진(32)에 알린다. 또한, 콘택스트는 다음의 프레임 헤더를 포함한다. 다음 프레임 헤더는 호스트 드라이버(38)에 의해 초기에 작성되지만 그 후에 송신 프로토콜 엔진(32)은 다음의 프레임 헤더를 작성한다. 콘택스트 관리자(52)는 호스트 메모리(42)로부터 각 프레임 헤더를 복구하고 그 헤더를 송신 헤더 컨트롤러(68)에 패스하며, 그 프레임 헤더를 송신 FIFO(66)를 통해 NL 포트(36)에 전송한다.
프레임 헤더가 작성되면, 시스템은 호스트 메모리로부터 데이터를 모으는 처리에서 버퍼 리스트의 뒤를 따르기 시작한다. 커맨드용 콘택스트는 버퍼 리스트에 포인터를 포함한다. 엔트리는 동시에 버퍼 리스트 링 컨트롤러(70)에 의해 버퍼 리스트로부터 풀다운된다. 프레임 헤더는 송신 헤더 제어부(68)를 통해 송신 FIFO(66)에 전송된다. 페이로드 세그먼터(72)는 페이로드를 풀인(pull in)하기 시작하여 송신 FIFO(66)에 페이로드 데이터를 배치한다. 일단 프레임 헤더 및 페이로드 데이터가 송신 FIFO(66)에 있기만 하면, 최후 태스크는 송신 FIFO(66)에 프레임 엔드(EOF) 워드를 기록하는 것이다. EOF 워드는 어셈블링된 프레임을 파이버 채널 링크(24)로의 전송을 시작하도록 NL 포트(36)에 알리기 위한 표시이다. 모든 프레임이 연속적으로 전송되자마자, 응답이 발생되어 호스트 드라이버(38)에 전송되며, 이 응답은 미결정의 커맨드와 관련된 프레임이 사실상 연속적으로 전송되는지를 나타낸다.
마찬가지로, 수신 프로토콜 엔진(30)은 수신을 확인하기 위해 송신자에게 파이버 채널 링크(24)상으로 반송되는 응답 프레임(acknowledge frame)(수신 프레임 헤더의 변경 형태)을 발생하는 응답 FIFO(74)를 포함한다.
또한, 전이중 통신 프로세서(22)는 수신 및 송신 프로토콜 엔진 레지스터(76, 78)를 포함한다. 이 레지스터는 콘텍스트 관리자(52)의 콘텍스트 레지스터를 통해 연결되어 동기되는 자동 프로토콜 관리 기능을 포함한다. 콘텍스트 관리자(52)는 호스트 메모리(42)로부터 교환 콘텍스트의 코히런시(coherency) 및 고속 처리(caching)를 관리하고, 또 수신 및 송신 프로토콜 엔진(30, 32)에 의한 액세스를 콘텍스트 레지스터(80)에 포함된 고속 처리된 콘텍스트에 동기시킨다.
양호한 실시예에서, 콘텍스트 관리자(52), 송신 및 수신 프로토콜 엔진(30, 32)은 호스트 메모리 인터페이스(54)를 통해 호스트(40)와 통신하며, 주변 요소 인터페이스(PCI), 직접 메모리 액세스(DMA) 컨트롤러(도시되지 않음),및 PCI 슬레이브 인터페이스(도시되지 않음)를 포함한다. 프로토콜 엔진 레지스터(76, 78)는 프로토콜 엔진용(30, 32)용 인터럽트 컨트롤러 및 PCI 슬레이브 인터페이스를 포함한다. 콘텍스트 관리자(52), 수신 및 송신 프로토콜 엔진(30, 32)은 PCI 슬레이브 인터페이스 및 인터럽트 컨트롤러에 대하여 프로토콜 엔진 레지스터(76, 78)에 상태를 제공하고 그리고 그로부터 상태를 제공받는다.
수신 및 송신 프로토콜 엔진(30, 32)은 2개의 독립 프로그래머블 시퀀서(46, 63)를 사용함으로써 파이버 채널 프로토콜을 이행한다. 시퀀서(46, 63)의 사용으로 프로토콜 엔진 상태 머신이 가변 기록 가능 제어 스토어 RAM에서 이행될 수 있으며, 초기화 동안에 수신 및 송신 프로토콜 레지스터(76, 78)로 다운 로딩된다. 호스트(40)는 이 기록 가능 제어 스토어 RAM을 액세스하여 판독하고 프로토콜 레지스터 맵을 통해 기록 가능 제어 스토어 RAM에 기록한다. 기록가능 제어 스토어 RAM의 코드를 교환함으로써 새롭거나 또는 다른 기능이 전이중 통신 프로세서(22)에 다운로딩될 수 있기 때문에, 시퀀서의 사용은 프로토콜 엔진 상태 머신 이행에 있어 상당한 유연성을 부가한다.
전이중 통신 프로세서(22)는 단일 칩상(예를 들면 어플리케이션 특정 집접 회로(ASCI))상에서 단독으로 또는 다른 기능과 함께 이행될 수 있다. 예를 들면, 전술된 실시예에서, 전이중 통신 프로세서(22)는 가장 최근의 송신 및 수신 콘텍스트의 일례를 고속 처리할 수 있다. 그러나, 추가 온칩 메모리를 부가함으로써, 추가 콘텍스트의 일례를 고속 처리할 수 있다.
XRI 콘택스트
양호한 실시예에서, 각 콘택스트는 2개의 호스트 메모리 구조, 즉 원격 포트 콘택스트 및 교환 콘택스트로 나누어진다. 교환 콘택스트는 커맨드를 처리하는데 사용되는 교환 콘택스트 리소스 인덱스(XRI)에 포함된다. 특히, 교환 콘택스트는 하나 이상의 시퀀스의 완전 교환 또는 제어 전송을 기술하는 구조이다. 이 구조는 교환 포인터 테이블에서의 엔트리에 의해 표시된다. XRI 콘택스트는 즉각 또는 개별 시퀀스를 통해 발생하는 동작에 필요한 지원 콘택스트를 포함한다. 송신될 데이터, 또는 데이터를 수신할 버퍼는 실제 사용 버퍼를 가리키는 버퍼 리스트 엔트리 세트로 구성된 버퍼 포인터 리스트에 의해 기술된다. 전술된 바와 같이, 버퍼 리스트 엔트리는 버퍼의 어드레스 및 길이, 초기화된 시퀀스, 교환 엔드, 시퀀스 엔드 등을 나타내는 제어 비트를 포함한다. 다수의 시퀀스 동작에 대하여, XRI 콘택스트는 동작중인 레지스터 콘텐트의 격납을 제공한다.
양호한 실시예에서, XRI 콘택스트는, 시발되는 파이버 채널 프로토콜(FCP) 교환, 전송 교환, 단일 프레임 또는 다수의 프레임 시퀀스의 전송을 제어하기 위한 일시적인 목적을 위해 전이중 통신 프로세서(22)에 의해 사용된다. XRI 콘택스트는 데이터가 버퍼 링 버퍼로 수신되는 교환 트랙을 유지하기 위해 호스트 드라이버(38)에 의해 사용될 수 있다.
XRI 콘택스트의 일례는 도 6에 도시된다. 제1 워드는 XRI 제어 상태 워드이다. XRI 제어 상태 워드는 호스트 드라이버에 의해 설정되는 구성 필드를 포함한다. 총 전송 크기 워드는 시퀀서 액티비티를 반영한다. 시발되는 파이버 채널 프로토콜(FCP) 교환을 위해, XRI 제어-상태 워드는 기록 동작용의 나머지 바이트 카운트 및 판독 동작용의 누적 수신되는 바이트 카운트를 나타낸다. 송신 시퀀스 커맨드에 대하여, XRI 제어 상태 워드는 완전 시퀀스가 송신되기 전에 동작이 정지되는 경우 나머지 바이트 카운트를 나타낸다. Rxeng 제어 상태 워드는 프레임의 타당성 여부를 확인하는데 수신 프로토콜 엔진(30)에 의해 사용된다. 현재 버퍼 리스트 어드레스 워드는 현재 버퍼 오프셋 어드레스 워드를 처리하는 시퀀서 액티비티를 반영한다.
버퍼 리스트 변경자(BLM) 비트는 시퀀서 제어하에서 판독되는 버퍼 리스트 엔트리(BLE)의 대응 비트로부터 설정된다. 워드 5의 잔여 버퍼 길이는 시퀀서 액티비트를 반영한다. 시퀀서가 BLE를 판독할 때마다, 이 필드는 버퍼 워드 카운트를 수신한다. 시퀀서가 버퍼에 데이터를 송신하거나 또는 버퍼로부터 데이터를 수신하는 DMA 동작을 발행할때마다, 워드 카운트는 전송 데이터의 길이만큼 감소된다. 또한, 현재 버퍼 버스트 길이 워드는 송신 시퀀서 액티비티를 반영하기도 한다.
워드 7-12의 파이버 채널 FC_2 헤더는 송신 프로토콜 엔진(22)에 의해 송신되는 각 프레임에 대하여 헤더 정보를 발생하는데 사용된다.
도 5를 다시 참조하면, R_CTL/TYPE 링 제어부(56)는 FCP 응답기 프레임을 제외한 모든 프레임을 수신하기 위해, 즉 국부적으로 시발되는 FCP 교환을 위해 사용되는 버퍼 링을 제어한다. 3개의 R_CTL/TYPE 버퍼 링은 적절한 드라이버 엔트리 포인트에 대해 수신되는 프레임을 역다중화시킬 때 호스트를 보조한다. R_CTL/TYPE 버퍼 링은 버퍼 기술어에 관한 고정 크기의 순차 리스트이다. 이 리스트는 로직컬 링으로서 하드웨어에 의해 관리된다. 버퍼 기술어는 버퍼 포인터 리스트에서 버퍼 리스트 엔트리와 같지만, BLM 비트를 포함하지는 않는다.
호스트 드라이버(42)는 대응하는 베이스 레지스터에서 각 버퍼 링의 위치 및 크기를 나타낸다. 특정 레지스터는 R_CTL/TYPE 버퍼 링에서의 엔트리가 유효한지를 나타낸다. 각 엔트리는 쓰기 포인터 및 읽기 포인터로 구성된다. 각 링용 수신 버퍼는 호스트 드라이버가 링에 대응하는 버퍼 기술(記述)을 쓰는 정확한 순서로 사용된다.
루프 초기화는 호스트 제어 하에서 국부적으로 초기화되거나 또는 일부 다른 포트에 의해 원격적으로 초기화된다. 호스트 드라이버(38), 송신 및 수신 시퀀서(46, 63), NL 포트(36) 로직 모두는 루프 초기화 처리를 완료하기 위해 함께 동작한다. 이 처리 동안에, 호스트 드라이버는 파이버 채널 확장된 링크 서비스(ELS) 프레임으로 시작하거나 또는 패스되며, 이 프레임은 루프상에서 포트의 어드레스 및 기능을 결정한다. 호스트 드라이버(38)는 루프 초기화 처리를 보다 용이하게 하는 루프 초기화 선택 마스터(LISM) ELS 프레임을 발행한다.
수신 및 송신 프로토콜 엔진(30, 32)이 전이중으로 동작하는 2개의 자동 엔진이고 그 2개의 엔진간에 최소의 통신을 하기 때문에 초기화를 필요로 한다. 초기화 동안에, 송신 프로토콜 엔진(32)은 턴오프되고 수신 프로토콜 엔진(32)은 프레임을 수신할 수 있게 되고, 그런다음 그것들을 송신 프로토콜 엔진(32)을 통해 보낸다. 그러므로, 수신 프로토콜 엔진은 송신 프로토콜 엔진 하드웨어의 "오너쉽(ownership)"을 선택하여, 포워드 프레임, 특히 송신 LISM 제어 모듈(82)을 이용하여 송신되는 LISM 프레임에 그 하드웨어를 사용한다.
본 발명의 전이중 통신 프로세서는 로컬 RAM을 구비한 마이크로프로세서를 필요로 하지 않는 저가 네트워크 인터페이스 카드의 전개를 허용하고, 또한 이하의 장점을 제공한다.
독립의 송신 및 수신 프로세서;
상기 수신 프로세서는 송신 프로세서의 작업을 대기시킬 수 있다;
상기 송신 및 수신 프로세서는 송신 및 수신 엔진으로 하여금 동일 I/O 커맨드를 동작하게 한다;
상기 송신 및 수신 프로세서는 호스트가 송신 또는 수신 프레임과 크기가 상이한 메모리 버퍼를 대기시키는 단일 버퍼 리스트를 추종한다;
수신 프레임은 호스트 CPU와 관련되지 않고 인터록 정보 테이블에 대하여 타당성 여부가 확인된다;
수신 프레임에 대한 응답은 호스트 CPU와 관련되지 않고 발생된다;
I/O 동작의 효율적인 중지/리쥼(resume)
본 발명의 여러 실시예들이 기술되고 있지만, 본원 발명의 사상 및 범위를 벗어나지 않는 범위 내에서 다양한 수정이 가능하다는 것을 이해할 것이다. 따라서, 본 발명이 기술된 특정 실시예에 의해 한정되지 않고 청구 범위에 의해서만 한정된다는 것을 이해할 것이다.

Claims (26)

  1. (a) 컴퓨터 네트워크에 결합되어 커맨드를 포함하는 데이터 프레임을 수신하여 그 타당성 여부를 확인하는 수신 프로세서와;
    (b) 상기 컴퓨터 네트워크에 결합되어 송신 프레임을 구성하는 송신 프로세서와;
    (c) 상기 수신 프로세서 및 송신 프로세서 사이에 결합되어, 상기 수신 프로세서로부터의 커맨드를 갖는 각 데이터 프레임의 커맨드를 상기 송신 프로세서에 송신하는 전송 대기 큐와;
    (d) 상기 수신 프로세서 및 송신 프로세서와 상기 전송 대기 큐를 CPU 및 호스트 메모리를 구비하는 프로그램된 호스트 컴퓨터와 결합하는 인터페이스 회로와;
    (e) 콘택스트 정보를 포함하는 인터록 정보 테이블을 포함하며, 상기 수신 프레임 프로세서는 상기 콘택스트 정보를 이용하여 CPU와 관련되지 않고 수신 프레임을 처리하는 것을 특징으로 하는 통신 프로세서.
  2. 제1항에 있어서, 상기 수신 프로세서는 상기 콘택스트 정보를 이용하여 수신 프레임의 타당성 여부를 확인하는 것을 특징으로 하는 통신 프로세서.
  3. 제1항에 있어서, 상기 송신 프로세서는 상기 콘택스트 정보를 이용하여 송신 프레임을 작성하는 것을 특징으로 하는 통신 프로세서.
  4. 제2항 또는 제3항에 있어서, 상기 콘택스트 정보를 처리하는 콘택스트 관리자를 더 포함하며, 상기 콘택스트 관리자는 호스트 드라이버 소프트웨어의 제어하에 있는 것을 특징으로 하는 통신 프로세서.
  5. 제1항에 있어서, 상기 송신 프로세서 및 수신 프로세서는 독립 마이크로코드 엔진을 각각 포함하며, 이것에 의해 상기 수신 프로세서 및 송신 프로세서는 각각의 수신 및 송신 프레임을 각각 동시에 처리할 수 있는 것을 특징으로 하는 통신 프로세서.
  6. 제5항에 있어서, 상기 마이크로코드 엔진은 시퀀서이고, 상기 통신 프로세서는 마이크로프로세서를 포함하지 않는 것을 특징으로 하는 통신 프로세서.
  7. 제1항에 있어서, 상기 데이터 프레임은 파이버 채널 프레임인 것을 특징으로 하는 통신 프로세서.
  8. 제7항에 있어서, 상기 수신 프로세서 및 송신 프로세서는 FC-2 파이버 채널 통신 프로토콜을 각각 실행하는 것을 특징으로 하는 통신 프로세서.
  9. 제1항에 있어서, 상기 수신 프로세서 및 송신 프로세서와 상기 전송 대기 큐는 단일 집적 회로 내에 포함되는 것을 특징으로 하는 통신 프로세서.
  10. 제1항에 있어서, 상기 인터페이스 회로는 직접 메모리 액세스(DMA) 인터페이스인 것을 특징으로 하는 통신 프로세서.
  11. 컴퓨터 네트워크에서 데이터 프레임을 처리하는 방법에 있어서,
    (a) 상기 컴퓨터 네트워크에 결합된 마이크로코드 수신 프로세서에서 제1 데이터 프레임을 수신하는 단계와;
    (b) 상기 수신 프로세서로부터의 상기 제1 데이터 프레임을 전송 대기 큐에에 전송하는 단계와;
    (c) 상기 제1 데이터 프레임에 관련된 콘택스트 정보를 정보 테이블에 격납하는 단계와;
    (d) 상기 콘택스트 정보를 사용하여 상기 제1 데이터 프레임의 타당성 여부를 확인하는 단계와;
    (e) 상기 컴퓨터 네트워크에 결합된 마이크로코드 송신 프로세서에 상기 전송 대기 큐로부터의 상기 제1 데이터 프레임을 전송하는 단계와;
    (f) 상기 송신 프로세서에서 상기 제1 데이터 프레임에 격납된 정보를 사용하는 송신 프레임을 구성하는 단계와;
    (g) 상기 컴퓨터 네트워크에 상기 송신 프레임을 전송하는 동시에 상기 수신 프로세서에서 제2 데이터 프레임을 수신하는 단계를 포함하는 것을 특징으로 하는 데이터 프레임 처리 방법.
  12. 제11항에 있어서, 상기 제1 및 제2 데이터 프레임은 파이버 채널 프레임이며, 상기 송신 프레임을 구성하는 단계는 파이버 채널 송신 프레임을 구성하는 단계를 포함하는 것을 특징으로 하는 데이터 프레임 처리 방법.
  13. 제11항에 있어서, 콘택스트 관리자가 상기 콘택스트 정보를 처리하는 단계를 더 포함하는 것을 특징으로 하는 데이터 프레임 처리 방법.
  14. 제11항에 있어서, 호스트 컴퓨터에 상기 수신 프로세서 및 송신 프로세서를 결합하는 단계와, 상기 호스트 컴퓨터의 호스트 드라이버 소프트웨어를 사용하여 상기 수신 프로세서 및 송신 프로세서를 제어하는 단계를 더 포함하는 것을 특징으로 하는 데이터 프레임 처리 방법.
  15. 제14항에 있어서, 상기 호스트 컴퓨터에 배치된 메모리에 상기 콘택스트 정보를 격납하는 단계를 더 포함하는 것을 특징으로 하는 데이터 프레임 처리 방법.
  16. 제14항에 있어서, 직접 메모리 액세스(DMA) 인터페이스를 통해 상기 호스트 컴퓨터에 상기 수신 프로세서 및 송신 프로세서를 결합하는 단계를 더 포함하는 것을 특징으로 하는 데이터 프레임 처리 방법.
  17. (a) 소스 및 목적지 컴퓨터 장치와;
    (b) 상기 소스 및 목적지 컴퓨터 장치에 결합된 통신 채널과;
    (c) 상기 통신 채널에 각각 결합되어, 커맨드를 포함하는 일련의 데이터 프레임을 상기 소스 컴퓨터 장치로부터 수신하여 그 수신된 데이터 프레임의 타당성 여부를 확인하는 수신 프로세서와;
    (d) 컴퓨터 네트워크에 결합되어 송신 프레임을 구성하는 송신 프로세서와;
    (e) 상기 송신 프로세서 및 수신 프로세서 사이에 결합되어, 상기 수신 프로세서로부터 커맨드를 갖는 데이터 프레임의 커맨드를 상기 송신 프로세서에 전송하는 전송 대기 큐와;
    (f) CPU, 메모리 및 호스트 드라이버 소프트웨어를 포함하는 호스트 컴퓨터와;
    (g) 상기 수신 프로세서 및 송신 프로세서와 상기 전송 대기 큐를 상기 호스트 컴퓨터와 결합하는 인터페이스 수단과;
    (h) 콘택스트 정보를 포함하는 인터록 정보 테이블을 포함하며, 상기 수신 프레임 프로세서는 CPU와 관련되지 않고 상기 콘택스트 정보를 이용하여 상기 수신 프레임을 처리하는 것을 특징으로 하는 컴퓨터 네트워크.
  18. 제17항에 있어서, 상기 수신 프레임 프로세서는 상기 콘택스트 정보를 이용하여 수신 프레임의 타당성 여부를 확인하는 것을 특징으로 하는 컴퓨터 네트워크.
  19. 제17항에 있어서, 상기 송신 프레임 프로세서는 상기 콘택스트 정보를 이용하여 송신 프레임을 작성하는 것을 것을 특징으로 하는 컴퓨터 네트워크.
  20. 제17항에 있어서, 상기 콘택스트 정보를 처리하는 콘택스트 관리자를 더 포함하며, 상기 콘택스트 관리자는 상기 호스트 드라이버 소프트웨어의 제어 하에 있는 것을 특징으로 하는 컴퓨터 네트워크.
  21. 제17항에 있어서, 상기 데이터 프레임은 파이버 채널 프레임인 것을 특징으로 하는 컴퓨터 네트워크.
  22. 제21항에 있어서, 상기 송신 및 수신 프레임 프로세서는 FC-2 파이버 채널 통신 프로토콜을 각각 실행하는 것을 특징으로 하는 컴퓨터 네트워크.
  23. 제17항에 있어서, 상기 인터페이스 수단은 직접 메모리 액세스(DMA) 인터페이스를 포함하는 것을 특징으로 하는 컴퓨터 네트워크.
  24. 제17항에 있어서, 상기 인터록 정보 테이블은 상기 호스트 메모리에 배치되는 것을 특징으로 하는 컴퓨터 네트워크.
  25. 제17항에 있어서, 상기 콘택스트 정보는 원격 포트 콘택스트 및 교환 콘택스트를 포함하는 것을 특징으로 하는 컴퓨터 네트워크.
  26. 제17항에 있어서, 상기 프레임은 특정 콘택스트 정보를 나타내는 룩업 필드를 갖는 헤더를 포함하는 것을 특징으로 하는 컴퓨터 네트워크.
KR1020007003187A 1997-09-24 2000-03-24 파이버 채널 프레임용 전이중 통신 프로세스 KR100315245B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/937,066 US6005849A (en) 1997-09-24 1997-09-24 Full-duplex communication processor which can be used for fibre channel frames
US08/937,066 1997-09-24
PCT/US1998/020003 WO1999016195A1 (en) 1997-09-24 1998-09-24 Full-duplex communication processor

Publications (2)

Publication Number Publication Date
KR20010024291A true KR20010024291A (ko) 2001-03-26
KR100315245B1 KR100315245B1 (ko) 2001-11-26

Family

ID=25469444

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007003187A KR100315245B1 (ko) 1997-09-24 2000-03-24 파이버 채널 프레임용 전이중 통신 프로세스

Country Status (6)

Country Link
US (1) US6005849A (ko)
EP (1) EP1021879A4 (ko)
JP (1) JP2001517895A (ko)
KR (1) KR100315245B1 (ko)
CA (1) CA2304340C (ko)
WO (1) WO1999016195A1 (ko)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185203B1 (en) * 1997-02-18 2001-02-06 Vixel Corporation Fibre channel switching fabric
US6118776A (en) * 1997-02-18 2000-09-12 Vixel Corporation Methods and apparatus for fiber channel interconnection of private loop devices
US6304910B1 (en) * 1997-09-24 2001-10-16 Emulex Corporation Communication processor having buffer list modifier control bits
US8782199B2 (en) 1997-10-14 2014-07-15 A-Tech Llc Parsing a packet header
US7133940B2 (en) 1997-10-14 2006-11-07 Alacritech, Inc. Network interface device employing a DMA command queue
US6687758B2 (en) 2001-03-07 2004-02-03 Alacritech, Inc. Port aggregation for network connections that are offloaded to network interface devices
US6697868B2 (en) 2000-02-28 2004-02-24 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US8621101B1 (en) 2000-09-29 2013-12-31 Alacritech, Inc. Intelligent network storage interface device
US6389479B1 (en) 1997-10-14 2002-05-14 Alacritech, Inc. Intelligent network interface device and system for accelerated communication
US7174393B2 (en) 2000-12-26 2007-02-06 Alacritech, Inc. TCP/IP offload network interface device
US6658480B2 (en) 1997-10-14 2003-12-02 Alacritech, Inc. Intelligent network interface system and method for accelerated protocol processing
US8539112B2 (en) 1997-10-14 2013-09-17 Alacritech, Inc. TCP/IP offload device
US7185266B2 (en) 2003-02-12 2007-02-27 Alacritech, Inc. Network interface device for error detection using partial CRCS of variable length message portions
US7089326B2 (en) 1997-10-14 2006-08-08 Alacritech, Inc. Fast-path processing for receiving data on TCP connection offload devices
US6226680B1 (en) 1997-10-14 2001-05-01 Alacritech, Inc. Intelligent network interface system method for protocol processing
US7042898B2 (en) 1997-10-14 2006-05-09 Alacritech, Inc. Reducing delays associated with inserting a checksum into a network message
US6807581B1 (en) 2000-09-29 2004-10-19 Alacritech, Inc. Intelligent network storage interface system
US6427171B1 (en) 1997-10-14 2002-07-30 Alacritech, Inc. Protocol processing stack for use with intelligent network interface device
US6427173B1 (en) 1997-10-14 2002-07-30 Alacritech, Inc. Intelligent network interfaced device and system for accelerated communication
US6757746B2 (en) 1997-10-14 2004-06-29 Alacritech, Inc. Obtaining a destination address so that a network interface device can write network data without headers directly into host memory
US6434620B1 (en) 1998-08-27 2002-08-13 Alacritech, Inc. TCP/IP offload network interface device
US7167927B2 (en) 1997-10-14 2007-01-23 Alacritech, Inc. TCP/IP offload device with fast-path TCP ACK generating and transmitting mechanism
US6591302B2 (en) 1997-10-14 2003-07-08 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US7284070B2 (en) * 1997-10-14 2007-10-16 Alacritech, Inc. TCP offload network interface device
US7237036B2 (en) 1997-10-14 2007-06-26 Alacritech, Inc. Fast-path apparatus for receiving data corresponding a TCP connection
US7076568B2 (en) 1997-10-14 2006-07-11 Alacritech, Inc. Data communication apparatus for computer intelligent network interface card which transfers data between a network and a storage device according designated uniform datagram protocol socket
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
US6353612B1 (en) 1998-06-19 2002-03-05 Brocade Communications Systems, Inc. Probing device
US7664883B2 (en) 1998-08-28 2010-02-16 Alacritech, Inc. Network interface device that fast-path processes solicited session layer read commands
US6772207B1 (en) 1999-01-28 2004-08-03 Brocade Communications Systems, Inc. System and method for managing fibre channel switching devices
US7328270B1 (en) * 1999-02-25 2008-02-05 Advanced Micro Devices, Inc. Communication protocol processor having multiple microprocessor cores connected in series and dynamically reprogrammed during operation via instructions transmitted along the same data paths used to convey communication data
US6643748B1 (en) 2000-04-20 2003-11-04 Microsoft Corporation Programmatic masking of storage units
US8019901B2 (en) 2000-09-29 2011-09-13 Alacritech, Inc. Intelligent network storage interface system
US20020118692A1 (en) * 2001-01-04 2002-08-29 Oberman Stuart F. Ensuring proper packet ordering in a cut-through and early-forwarding network switch
US7042891B2 (en) * 2001-01-04 2006-05-09 Nishan Systems, Inc. Dynamic selection of lowest latency path in a network switch
US6807599B2 (en) * 2001-10-15 2004-10-19 Advanced Micro Devices, Inc. Computer system I/O node for connection serially in a chain to a host
FR2831686B1 (fr) * 2001-10-30 2005-05-20 Siemens Vdo Automotive Procede et dispositif de communication sur un reseau d'un vehicule
US7047346B2 (en) * 2001-12-31 2006-05-16 Storage Technology Corporation Transparent fiber channel concentrator for point to point technologies
US7496689B2 (en) 2002-04-22 2009-02-24 Alacritech, Inc. TCP/IP offload device
US7543087B2 (en) 2002-04-22 2009-06-02 Alacritech, Inc. Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device
US7337241B2 (en) 2002-09-27 2008-02-26 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US7191241B2 (en) 2002-09-27 2007-03-13 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
JP4432388B2 (ja) * 2003-08-12 2010-03-17 株式会社日立製作所 入出力制御装置
US6996070B2 (en) 2003-12-05 2006-02-07 Alacritech, Inc. TCP/IP offload device with reduced sequential processing
US20050128945A1 (en) * 2003-12-11 2005-06-16 Chen-Chi Kuo Preventing a packet associated with a blocked port from being placed in a transmit buffer
JP3948454B2 (ja) * 2003-12-12 2007-07-25 ソニー株式会社 通信装置と通信システムと通信方法およびプログラム
US8248939B1 (en) 2004-10-08 2012-08-21 Alacritech, Inc. Transferring control of TCP connections between hierarchy of processing mechanisms
CN1306594C (zh) * 2005-03-08 2007-03-21 北京中星微电子有限公司 一种图形引擎芯片及其应用方法
CN1298049C (zh) * 2005-03-08 2007-01-31 北京中星微电子有限公司 一种图形引擎芯片及其应用方法
US8149854B2 (en) 2005-06-30 2012-04-03 Intel Corporation Multi-threaded transmit transport engine for storage devices
US7738500B1 (en) 2005-12-14 2010-06-15 Alacritech, Inc. TCP timestamp synchronization for network connections that are offloaded to network interface devices
US8024396B2 (en) 2007-04-26 2011-09-20 Microsoft Corporation Distributed behavior controlled execution of modeled applications
JP4609458B2 (ja) * 2007-06-25 2011-01-12 セイコーエプソン株式会社 プロジェクタおよび画像処理装置
US8239505B2 (en) 2007-06-29 2012-08-07 Microsoft Corporation Progressively implementing declarative models in distributed systems
US7970892B2 (en) 2007-06-29 2011-06-28 Microsoft Corporation Tuning and optimizing distributed systems with declarative models
US8230386B2 (en) * 2007-08-23 2012-07-24 Microsoft Corporation Monitoring distributed applications
US8181151B2 (en) 2007-10-26 2012-05-15 Microsoft Corporation Modeling and managing heterogeneous applications
US8225308B2 (en) 2007-10-26 2012-07-17 Microsoft Corporation Managing software lifecycle
US7974939B2 (en) * 2007-10-26 2011-07-05 Microsoft Corporation Processing model-based commands for distributed applications
US8099720B2 (en) * 2007-10-26 2012-01-17 Microsoft Corporation Translating declarative models
US7926070B2 (en) * 2007-10-26 2011-04-12 Microsoft Corporation Performing requested commands for model-based applications
US8539513B1 (en) 2008-04-01 2013-09-17 Alacritech, Inc. Accelerating data transfer in a virtual computer system with tightly coupled TCP connections
US8341286B1 (en) 2008-07-31 2012-12-25 Alacritech, Inc. TCP offload send optimization
US9306793B1 (en) 2008-10-22 2016-04-05 Alacritech, Inc. TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies
JP5175773B2 (ja) * 2009-02-27 2013-04-03 株式会社東芝 通信装置、方法及びプログラム
US8953631B2 (en) * 2010-06-30 2015-02-10 Intel Corporation Interruption, at least in part, of frame transmission
JP5571154B2 (ja) * 2012-11-19 2014-08-13 株式会社東芝 通信装置、方法及びプログラム
US9195626B2 (en) * 2013-01-29 2015-11-24 Emulex Corporation Reducing write I/O latency using asynchronous Fibre Channel exchange

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0206743A3 (en) * 1985-06-20 1990-04-25 Texas Instruments Incorporated Zero fall-through time asynchronous fifo buffer with nonambiguous empty/full resolution
US5185736A (en) * 1989-05-12 1993-02-09 Alcatel Na Network Systems Corp. Synchronous optical transmission system
US5285448A (en) * 1990-03-01 1994-02-08 Hitachi, Ltd. Transmission system of system of system control information in a ring LAN system
EP0492025B1 (en) * 1990-12-20 1997-08-06 International Business Machines Corporation High-speed multi-port FIFO buffer circuit
US5426639A (en) * 1991-11-29 1995-06-20 At&T Corp. Multiple virtual FIFO arrangement
US5243596A (en) * 1992-03-18 1993-09-07 Fischer & Porter Company Network architecture suitable for multicasting and resource locking
US5444853A (en) * 1992-03-31 1995-08-22 Seiko Epson Corporation System and method for transferring data between a plurality of virtual FIFO's and a peripheral via a hardware FIFO and selectively updating control information associated with the virtual FIFO's
US5546347A (en) * 1994-07-22 1996-08-13 Integrated Device Technology, Inc. Interleaving architecture and method for a high density FIFO
US5638518A (en) * 1994-10-24 1997-06-10 Lsi Logic Corporation Node loop core for implementing transmission protocol in fibre channel
US5519695A (en) * 1994-10-27 1996-05-21 Hewlett-Packard Company Switch element for fiber channel networks
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
DE69614291T2 (de) * 1995-03-17 2001-12-06 Lsi Logic Corp., Fort Collins (n+i) Ein/Ausgabekanälesteuerung, mit (n) Datenverwaltern, in einer homogenen Software-Programmierbetriebsumgebung
US5717689A (en) * 1995-10-10 1998-02-10 Lucent Technologies Inc. Data link layer protocol for transport of ATM cells over a wireless link

Also Published As

Publication number Publication date
JP2001517895A (ja) 2001-10-09
CA2304340A1 (en) 1999-04-01
US6005849A (en) 1999-12-21
EP1021879A4 (en) 2006-04-12
EP1021879A1 (en) 2000-07-26
CA2304340C (en) 2001-12-18
WO1999016195A1 (en) 1999-04-01
KR100315245B1 (ko) 2001-11-26

Similar Documents

Publication Publication Date Title
KR100315245B1 (ko) 파이버 채널 프레임용 전이중 통신 프로세스
US10210113B2 (en) SAN fabric online path diagnostics
US9100349B2 (en) User selectable multiple protocol network interface device
US6240096B1 (en) Fibre channel switch employing distributed queuing
US5768530A (en) High speed integrated circuit interface for fibre channel communications
US6948004B2 (en) Host-fabric adapter having work queue entry (WQE) ring hardware assist (HWA) mechanism
US6775719B1 (en) Host-fabric adapter and method of connecting a host system to a channel-based switched fabric in a data network
KR100367949B1 (ko) 버퍼 리스트 변경자 제어 비트를 갖는 통신 프로세서
US20040030766A1 (en) Method and apparatus for switch fabric configuration
EP1374521B1 (en) Method and apparatus for remote key validation for ngio/infiniband applications
US20030202520A1 (en) Scalable switch fabric system and apparatus for computer networks
US20090080428A1 (en) System and method for scalable switch fabric for computer network
US20020071450A1 (en) 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
US20030202510A1 (en) System and method for scalable switch fabric for computer network
US9118586B2 (en) Multi-speed cut through operation in fibre channel switches
JPH02196541A (ja) ワークステーシヨンをローカル・エリヤ・ネツトワークに接続する方法および装置
GB2363041A (en) Fibre channel interface controller having separate buffers for data frames and link control frames (e.g. ACK frames)
JP2002540701A (ja) 高帯域幅リンクを介した多数の低帯域幅接続を管理する相互接続アーキテクチュア
KR100345539B1 (ko) 제어 헤더 필드 및 유형 헤더 필드를 기반으로 한 광섬유채널 프레임 맵핑 방법
US6314100B1 (en) Method of validation and host buffer allocation for unmapped fibre channel frames
US20070076685A1 (en) Programmable routing for frame-packet based frame processing
US6842840B1 (en) Controller which determines presence of memory in a node of a data network
US7420982B2 (en) Method and system for keeping a fibre channel arbitrated loop open during frame gaps

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
LAPS Lapse due to unpaid annual fee