KR100997841B1 - 시스템 상호접속 버스 상에서의 지연 데이터 전송 추적 - Google Patents

시스템 상호접속 버스 상에서의 지연 데이터 전송 추적 Download PDF

Info

Publication number
KR100997841B1
KR100997841B1 KR1020047008864A KR20047008864A KR100997841B1 KR 100997841 B1 KR100997841 B1 KR 100997841B1 KR 1020047008864 A KR1020047008864 A KR 1020047008864A KR 20047008864 A KR20047008864 A KR 20047008864A KR 100997841 B1 KR100997841 B1 KR 100997841B1
Authority
KR
South Korea
Prior art keywords
bus
data
tracking
response
transmission
Prior art date
Application number
KR1020047008864A
Other languages
English (en)
Other versions
KR20040079408A (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 KR20040079408A publication Critical patent/KR20040079408A/ko
Application granted granted Critical
Publication of KR100997841B1 publication Critical patent/KR100997841B1/ko

Links

Images

Classifications

    • 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/38Information transfer, e.g. on bus
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • G06F13/4226Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus with asynchronous protocol
    • 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
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Abstract

시스템 상호접속 버스(515) 상에서 지연 데이터 전송을 추적하기 위한 시스템(500) 및 기술들이 개시되어 있다. 지연 응답은 그 응답에 대응하는 정보의 저장 및 요구된 데이터 전송의 경과에 대한 추적을 시작한다. 버스 어댑터(300) 등의 마스터 디바이스는 분할 트랜잭션 저장소(220), 타이머(230), 및 분할 트랜잭션 모니터를 포함할 수 있다. 이 마스터 디바이스는 컴포넌트들을 포함할 수 있고, 주변 요소 상호접속 확장형(PCI-X) 표준에 의해 정의된 바와 같이 분할 응답들을 처리하도록 설계될 수 있다.
시스템 상호접속 버스, 데이터 전송, 분할 트랜잭션, 다중 병행 데이터 전송, PCI-X 버스 표준

Description

시스템 상호접속 버스 상에서의 지연 데이터 전송 추적{TRACKING DEFERRED DATA TRANSFERS ON A SYSTEM-INTERCONNECT BUS}
관련출원
이 출원은 "PCI-X SPLIT TRANSACTION"이라는 발명의 명칭으로 2001년 12월 10일에 출원된 미국 가출원 번호 60/339,238호에 대해 우선권을 주장한다.
본 출원은 시스템 상호접속 버스를 통해 데이터를 수신하는 것에 관한, 예를 들면, 병렬 시스템 상호접속 버스를 통해 다중 병행(동시) 데이터 전송들(multiple concurrent data transfers)로부터 데이터를 수신하는 것에 관한 시스템 및 기술을 설명한다.
시스템 상호접속 버스(system-interconnect bus)는 컴퓨팅 시스템의 일부분으로부터 다른 부분으로 데이터가 송신되는 경로가 되는 하나 이상의 링크이다. 버스 구조(bus architecture)는 컴퓨팅 시스템의 일부분으로부터 다른 부분으로 데이터를 송신하는 데 이용되는 링크 및 프로토콜의 모음(collection)이다. 전형적으로, 컴퓨팅 시스템용의 버스 구조는, 컴퓨팅 시스템을 실현하는 데 이용된 모든 부분들을 상호접속하기 위해 직렬 및/또는 병렬 버스 표준일 수 있는 다중 버스 표준을 이용한다.
시스템 상호접속 버스는 다중 병행 데이터 전송들을 이용하여 데이터를 송신할 수 있는데, 여기서 하나의 데이터 전송은 데이터 전송 식별자를 이용하여 서로 관련된 하나 이상의 버스 트랜잭션을 나타낸다. 그러한 시스템 상호접속 버스들은 병렬 버스들일 수도 있다. 예를 들면, PCI-X(Peripheral Component Interconnect Extended)는, 다중 병행 데이터 전송들을 이용하여 데이터가 송신되는 시스템 상호접속 버스로서 이용하기 위한 병렬 버스 구조를 정의하는 버스 표준이다.
개요
본 출원은 시스템 상호접속 버스 상에서의 지연 데이터 전송들의 추적(tracking)을 교시한다. 일 양태에 따르면, PCI-X에서의 분할 응답(split response)과 같은 지연 응답(deferral response)이 그 응답에 대응하는 정보의 저장 및 요구된 데이터 전송에 대한 경과(progress)의 추적을 개시한다. 버스 어댑터와 같은 마스터 디바이스가 분할 트랜잭션 저장소(split-transaction repository), 타이머, 및 분할 트랜잭션 모니터를 포함할 수 있다. 이 마스터 디바이스는 하드웨어 및 펌웨어 구성요소 양쪽 모두를 포함할 수 있다.
다음 이점들 중의 하나 이상이 제공될 수 있다. 여기에 설명된 시스템 및 기술에 따르면 마스터 디바이스는 자신이 발행한 미처리된 판독 요구의 경과를 정확히 추적할 수 있게 된다. 마스터 디바이스는, PCI-X에서의 분할 응답과 같은 지연 응답에 의해 증명되는 바와 같이, 타깃 디바이스가 그 요구에 응답하는 그것의 책임을 이행하는 것에 의지할 필요가 없다. 게다가, 마스터 디바이스는 다중 데이터 전송 오류로부터 복구하고 시스템 오류를 식별할 수 있으므로, 마스터 디바이스 는 보다 강건하게 되고 오류에 대해 내성이 생긴다. 더욱이, 여기에 설명된 기술은 시스템 전반에 걸쳐서 총체적인 데이터 무결성(data integrity)을 제공할 수 있다.
이하 첨부 도면과 설명에서는 하나 이상의 실시예에 대한 상세가 제시된다. 이 설명과 도면 및 청구범위로부터 다른 특징들 및 이점들이 명백할 것이다.
이하에서는 이들 및 다른 양태들에 대해 이하의 도면들을 참조하여 상세히 설명하겠다.
도 1a 및 1b는 시스템 상호접속 버스를 통해 전달되는 지연 데이터 전송들을 추적하는 것을 도시한 흐름도 및 상태도의 조합 도면이다.
도 2는 시스템 상호접속 버스를 통해 전달되는 지연 데이터 전송들의 추적을 실시하는 시스템에 대한 구성요소들 및 동작 상호작용을 도시하는 블록도이다.
도 3은 일 실시예에 따른 호스트 버스 어댑터 카드를 도시하는 블록도이다.
도 4는 시스템 상호접속 버스를 통해 전달되는 지연 데이터 전송들의 추적을 도시하는 흐름도이다.
도 5는 데이터 처리 시스템의 일례를 도시하는 블록도이다.
도 6은 일 실시예에 따른 지연 데이터 전송 추적 시스템에 대한 동작 환경을 도시하는 블록도이다.
여러 도면에서 유사한 참조 부호는 유사한 구성요소들을 나타낸다.
본 출원은 지연 데이터 전송들을 이용하여 시스템 상호접속 버스를 통해 데이터를 수신하는 것에 관한, 예를 들면, 스턱(stuck)/손실(lost) 데이터를 식별하기 위해 분할 트랜잭션들을 추적하는 것에 관한 시스템 및 기술을 설명한다.
도 1a 및 1b는 시스템 상호접속 버스를 통하여 전달되는 지연 데이터 전송들을 추적하는 것을 도시한 흐름도 및 상태도의 조합 도면이다. 시스텝 상호접속 버스 상에서 데이터를 전송하도록 하는 요구가 송신된다(100). 이 요구는 타깃 디바이스로부터 데이터를 판독하기 위한 마스터 디바이스에 의한 판독 요구일 수 있다. 후속하여, 지연 데이터 전송(deferred data transfer)을 나타내는 응답이 수신된다(105).
지연 응답(deferral response)은 타깃 디바이스가 그 요구를 수신했음을 확인하고 또한 그 요구에 적절히 응답할 수 있지만 나중에 그렇게 하겠다는 것을 나타낸다. 지연 응답은 나중에 그 요구에 응답한다는 약속이다. 데이터 전송 지연은 분할 트랜잭션(split transaction)으로 간주될 수 있다. 예를 들면, PCI-X에서는, 데이터 전송이 시퀀스로 알려져 있다. PCI-X에서의 시퀀스는 요구자(requester)에 의한 단일 논리적 전송을 수행하는 것과 관련된 하나 이상의 데이터 트랜잭션으로서, 단일 요구에서 비롯된다.
지연 응답은 PCI-X에서 분할 응답으로 알려져 있다. 분할 응답은, 예를 들면 분할 완료 또는 기입 트랜잭션과 함께, 나중에 요구에 응답한다는 타깃 디바이스에 의한 약속이다. 지연 응답은, 일반적으로 긴 지연시간(latencies)을 나타내는 타깃들에 액세스할 때 버스 효율을 향상시키도록 의도되어 있는, 분할 트랜잭션 을 시작하는 데 이용된다. 요구의 타깃은 요구된 데이터 전송이 나중에 완료되거나 그렇지 않으면 나중에 응답될 것이라고 나타냄으로써 요구자에 응답하고, 따라서 요구자는 그 요구를 다시 제시할 필요가 없다.
여기서 "데이터 전송"(data transfer) 및 "데이터 전달"(data delivery)이라는 용어는 요구 대상을 기술하기 위해 사용되지만, 이들 용어는 지연 응답의 주체일 수 있는 임의의 요구에 응답하여 송신되는 데이터를 말한다. 이들 용어는 블록 또는 워드 메모리 판독에 대한 요구에 한정되지 않고, 일반적으로 입/출력(I/O) 판독, I/O 기입, 구성 판독(configuration reads), 구성 기입, 메모리에 대한 에일리어스(aliases to memory), 및 인터럽트 확인(interrupt acknowledgments)에 관한 요구들을 포함한다.
지연 응답이 수신되면, 데이터 전송 요구에 대응하는 정보가 저장된다(110). 그러한 정보는 어드레스, 데이터 카운트, 및 데이터 전송 식별자 정보를 포함할 수 있다. 예를 들면, 시작 어드레스, 바이트 카운트 및 시퀀스 식별 태그가 메모리 블록을 판독하기 위한 PCI-X 요구에 대해 저장될 수 있다.
후속하여, 예를 들면 지연된 데이터 전송에 대한 타이머를 시작함으로써, 이 데이터 전송에 대한 데이터의 전달이 추적된다(115). 유휴 상태 200으로부터, 2개의 이벤트가 후속 추적 활동들을 트리거할 수 있다. 추적된 데이터 전송에 대응하는 데이터의 일부가 수신되면, 예를 들어 어드레스 및 바이트 카운트 정보를 갱신함으로써 이 데이터 전송에 대응하는 정보가 갱신될 수 있다(125). 게다가, 추적된 데이터 전송에 대응하는 타이머가 리셋될 수 있다(130).
데이터 전송을 추적하는 데 사용되는 타이머의 타임아웃이 발생하면, 전송 에러가 발생했는지를 판정하기 위한 체크가 행해진다(140). 전송 에러를 식별하는 것은 데이터 전송에 대한 경과를 소정의 기준과 비교하는 것을 수반한다. 예를 들면, 데이터 전송 중에 중간에 아무런 경과 없이 2개 이상의 연속하는 타임아웃이 발생할 경우 이것을 전송 에러라고 할 수 있다. 만일 이전의 타이아웃 이후에 충분한 경과가 발생했다면, 추적된 데이터 전송에 대응하는 타이머가 리셋된다(145). 대안적으로, 상기 소정의 기준은 단일 타임아웃이 전송 에러를 나타낸다고 규정할 수 있고, 이 경우에는 타임아웃 자체가 전송 에러의 식별을 나타낸다.
전송 에러가 발생하면, 이 전송 에러는 추후의 참조를 위해 로그될 수 있다(150). 게다가, 예를 들어 오프셋을 갱신함으로써 데이터 전송 식별자의 발생이 변경될 수 있다(155). 이 변경에 따라 데이터 전송에 대응하는 데이터 전송 식별자가 일정 시간 동안 사용이 보류되거나 심지어는 아주 사용되지 않을 수도 있다.
예를 들면, PCI-X에서, 데이터 전송 식별자는 5비트 태그일 수 있다. 5비트 태그는 32(25)개의 동시 진행 시퀀스들을 식별하는 데 사용될 수 있지만, 전형적인 실시예에서는, 한번에 5개보다 적은 수의 동시 진행 시퀀스들이 이용될 수 있다. 따라서, 태그 생성의 변경은 PCI-X 태그들을 생성하는 데 사용된 태그 오프셋을 갱신하는 것을 수반할 수 있다. 태그 오프셋은, 베이스 값 -이 베이스 값으로부터 태그들이 생성됨- 으로 이용되는 저장된 5비트의 이진수일 수 있다. 이 태그 오프 셋을 갱신하는 것은 태그 오프셋을 시프트하거나 또는 태그 오프셋을 손실된 태그 값에 1을 더한 값과 같도록 설정하는 것을 수반한다.
더욱이, 전송 에러가 발생할 경우, 시스템 에러가 발생하였는지 여부를 판정하기 위한 체크가 행해질 수 있다(160). 전송 에러들의 로그를 체크하여 현재의 전송 에러가 보다 큰 시스템에서의 문제를 나타내는 일련의 전송 에러들에 대응하는지 여부를 알 수 있다. 만일 그렇다면, 시스템 에러가 식별되고 보고된다(165). 예를 들어, 동일 메모리 위치가 2개 이상의 전송 에러를 발생시켰다면, 이것은 식별될 수 있고 드라이버 프로그램에 보고될 수 있다.
시스템 에러가 발생하지 않았더라도, 혹은 시스템 에러가 발생했더라도, 시스템 상호접속 버스 상에서 데이터를 전송하라는 새로운 요구가 송신된다(170). 이러한 새로운 요구는, 사용중인 데이터 전송 식별자들 및 손실된 데이터 전송 식별자들과는 다른 새로이 생성된 데이터 전송 식별자를 사용할 수 있다.
또한, 손실 데이터 전송이 나중에 시스템 상호접속 버스 상에 재현되는 상황을 식별하고 처리하기 위해서는, 상태 체크 및 프로시져들이 사용될 수 있다. 예를들어, 재현된 손실 데이터는 돌발 에러를 시스템에 신호하지 않고 폐기될 수 있다. 버스에서, 데이터가 정상적으로 전송 및 완료되지만 내부적으로는 폐기된다.
도 2는 시스템 상호접속 버스를 통해 제공된 지연 데이터 전송의 추적을 실시하는 시스템에 대한 동작적 상호작용 및 그 구성요소들을 설명하는 블록도이다. 병렬 버스 및/또는 PCI-X 버스 등의 시스템 상호접속 버스로부터의 트랜잰셕(205)은 분할 트랜잭션 추적 컴포넌트(210)에 의해 수신된다. 분할 트랜잭션 추적 컴포 넌트(210)는 새로운 지연 전송을 나타내거나 또는 현재 추적중인 지연 전송의 일부인 트랜잭션들을 식별한다.
이러한 트랜잭션이 수신되면, 분할 트랜잭션 저장소(repository:220)의 갱신이 행해진다(215). PCI-X 실시에서, 분할 응답 또는 분할 완료(이전에 저장된 분할 트랜잭션 엔트리에서 포워드 프로세스)는 저장소에서 새로운 엔트리를 가져오거나 현존 엔트리를 각각 갱신한다. 갱신은 저장된 정보와 수신된 트랜잭션에서의 정보를 비교하여, 얼마나 많은 데이터가 전송되는 지에 근거하여 바이트 카운트 정보 및 새로운 어드레스 등의 저장될 새 정보의 판정을 포함한다.
또한, 에러 체킹이 포함될 수 있다. 수신 트랜잭션에서의 정보는 저장된 정보와 비교되어 매치하지 않는 필드들이 있는지 판정할 수 있다(예를들어, 매칭 태그 및 시작 어드레스와 함께 미스매칭 바이트 카운트들이 에러 상태를 나타냄). 에러가 식별된다면, 에러 상태가 플래그(flagged)될 수 있다. 데이터는 계속하여 전송될 수 있지만, 트랜잭션의 무결성(integrity)이 의문이기 때문에 데이터가 버려질 수 있다.
분할 트랜잭션 저장소(220)는 데이터 전송 식별자에 의해 색인된 설명자(descriptor) 엔트리들의 어레이일 수 있다. 분할 트랜잭션 저장소(220)의 엔트리들은 분할 트랜잭션 타이머(230) 세트에서 대응하는 타이머들을 가진다. 엔트리가 분할 트랜잭션 저장소(220)에 저장되거나 갱신되면, 대응 타이머가 리셋된다(225). 타이머들은 카운트다운되는 것으로부터 고정된 또는 프로그램가능 값으로 리셋될 수 있다. 이들 타이머들 중 하나가 타임아웃되면, 분할 트랜잭션 에이 징 컴포넌트(240)에 통지된다(235).
분할 트랜잭션 에이징 컴포넌트(240)는 타임아웃 상태를 수신하고, 타임아웃된 엔트리의 콘텍스트 및 엔트리 완료를 더 대기할지 여부를 판정한다. 위에서 논의된 타임아웃 횟수 뿐 아니라, 경과의 정도 및 데이터 전송 타입 등의 요소들이 더 대기할 지 여부에 대한 판정에 포함될 수 있다. 만약 에이징 컴포넌트(240)가 예를들어, 적당한 시간량 동안 어떠한 경과도 없기 때문에, 엔트리가 스턱(stuck)되어 있다고 판정한다면, 에이징 컴포넌트(240)는 저장소(240)에 엔트리에서 철수하도록 신호한다(245). 또한, 에이징 컴포넌트(240)는 데이터 전송 식별자 생성 컴포넌트(225)에 상기에서 논의된 바와 같은 데이터 전송 식별자들의 생성을 변경하도록 신호한다(250).
더우기, 분할 트랜잭션 에이징 컴포넌트(240)는 현재 지연되고 있는 데이터 전송의 추적을 계속하여 시스템 에러가 발생하였는 지 및/또는 철수 이후 스턱 엔트리의 재시도 여부를 판정하게 된다. 메모리의 일부가 일련의 전송 에러를 발생시켰다면, 이것은 시스템 에러로서 식별될 수 있고 드라이버 프로그램으로 보고된다.
분할 트랜잭션 저장소(220), 분할 트랜잭션 타이머(230), 분할 트랜잭션 에이징 컴포넌트(240) 및 데이터 전송 식별자 생성 컴포넌트(255)는 하드웨어, 소프트웨어, 펌웨어 또는 이들의 조합으로 실시될 수 있다. 일 실시에서, 분할 트랜잭션 저장소(220) 및 분할 트랜잭션 타이머(230)들은 응용 주문형 집적 회로(ASIC)의 로직 구성요소로서 구현되고, 분할 트랜잭션 에이징 컴포넌트(240) 및 데이터 전송 식별자 생성기(255)는 펌웨어로 구현된다.
이러한 구성요소들이 구현되는 마스터 디바이스는, 생성된 데이터 전송 식별자들에 의해 지정된 다중 병행 데이터 전송을 지원하는 요구들을 시스템 상호접속 버스에 발행하고, 이 시스템 상호접속 버스에 접속하는 어떤 디바이스일 수 있다. 예를들어, 이들 구성요소는 PCI-X의 어떤 종류 내지 다른 브리지 디바이스일 뿐 아니라 버스 어댑터로 실시될 수 있다.
도 3은 일 실시에 따른 호스트 버스 어댑터 카드(300)를 도시하는 블록도이다. 호스트 버스 어댑터 카드(300)는 현존 컴퓨팅 시스템 내로 삽입되도록 구성됨으로써 블록-레벨 입/출력(I/O) 서비스를 제공하는 저장 영역 네트워크(storage area network)에 인터페이스를 제공한다. 호스트 버스 어댑터(300)는 프로세서(305)를 포함하는 데, 이것은 미국 95052-8119 캘리포니아주 산타 클라라 미션 컬리지 블러바드 2200번지에 위치한 Intel Corporation에 의해 제공되는 SA-110 StrongARM 프로세서일 수 있다.
호스트 버스 어댑터(300) 또한 비휘발성 메모리(310) 및 휘발성 메모리(315)를 포함한다. 이들 메모리들은 상술한 동작들을 실시하기 위한 명령들을 저장하기 위해 사용될 수 있다. 예를들어, 비휘발성 메모리(310)와 명령들이 분할 트랜잭션 에이징 컴포넌트 및 데이터 전송 식별자 생성 컴포넌트를 구현하는 펌웨어를 표시할 수 있다.
비휘발성 메모리(310)는 플래시 메모리일 수 있다. 휘발성 메모리(315)는 전용 판독 포트 및 전용 기록 포트를 갖는 QDR(Quad Data Rate) SRAM 등의 고속 SRAM(Static Random Access Memory)-계 메모리 디바이스일 수 있다. 휘발성 메모리(315)는 네트워크 및 버스 콘텍스트 정보 및 프로세서 데이터(예를들어, 코드, 스택 및 스크래치 데이터 등) 저장 뿐 아니라 페이로드 데이터 송수신을 저장하기 위해 사용될 수 있다.
호스트 버스 어댑터(300) 또한 버스 어댑터 ASIC(320)을 포함한다. 이러한 버스 어댑터 ASIC(320)는 프로세서(305), 비휘발성 메모리(310) 및 휘발성 메모리(315)를 시스템 상호접속 버스 인터페이스(325) 및 네트워크 인터페이스(330)에 접속한다. 버스 어댑터 ASIC(320)은 랜덤 액세스 메모리를 포함하는 다중 선입선출(FIFO) 메모리, 이 FIFO 메모리들에 대한 전용 관리 회로소자들을 포함하고 시스템 상호접속 버스 인터페이스(325)로의 액세스를 제어하는 DMA(Direct Memory Access) 중개자, 레지스터 버스, 및 ASIC(320)의 액티비티를 기획하고 조정하는 제어기 등의 다양한 회로소자들을 사용하여 구현될 수 있다.
또한, 상술한 분할 트랜잭션 저장소 및 분할 트랜잭션 타이머들이 ASIC(320)에서 실시될 수 있고, ASIC(320)은 다수 제작자들의 디자인을 에뮬레이트함으로써 호스트 버스 어댑터(300)로 접속될 여러 컴포너트들과의 상호 운용성을 향상시킬 수 있다.
시스템 상호접속 버스 인터페이스(325)는 PCI-X 버스 등의 병렬 버스와 접속하도록 구성될 수 있다. 네트워크 인터페이스(330)는 피브리 채널(Fibre Channel) 네트워크와 접속하도록 구성될 수 있다.
상기에서 도 3과 관련하여 도시되고 설명된 버스 어댑터는 예시적인 것만으 로 제안된 것이다. 그 외 버스 어댑터들 뿐아니라 완전히 다른 디바이스들도 본원에서 논의된 시스템 및 기술들을 사용할 수 있다.
일반적으로, 버스 어댑터는 서버 등의 데이터 처리 시스템과 저장 장치 간의 I/O 처리 및 물리적 접속을 제공한다. 저장 장치는 직접 부가되거나 또는 예를들어, 피브리 채널, iSCSI(Small Computer System Interface over Internet Protocol), VI/IP(Virtual Interface over Internet Protocol), FICON(Fiber Connection), 또는 SCSI(Small Computer System Interface) 등의 다양한 저장 장치 네트워크 기술들을 사용하여 부가될 수 있다. 버스 어댑터는 I/O 처리 기능을 제공하고, 이것은 버스 어댑터가 부가되는 데이터 처리 시스템의 중앙 처리기에서의 처리 부하를 감소시킨다.
이와는 대조적으로, 네트워크 인터페이스 카드는 전형적으로는 패킷 시퀀스 순서 유지, 분할 및 리어셈블리, 에러 검출 및 보정, 및 플로 제어 등의 기능들을 포함하여 프로토콜 처리하기 위한 시스템의 중앙 처리기에 대단히 의존한다. 버스 어댑터는 모든 I/O 트랜잭션을 시스템 내의 중앙 처리기와 관련이 없거나 또는 적도록 관리한다. 예에서, 호스트 버스 어댑터가 도 3과 관련하여 도시되고 설명되며, 이 호스트 버스 어댑터는 데이터 플로를 유지하기 위한 프로세서, 프로토콜 제어기 ASIC, 및 버퍼 메모리를 포함한다. 이러한 호스트 버스 어댑터는 병렬 I/O 채널(예를들어, PCI-X)로부터 블록-레벨 데이터를 취하고 이것을 루팅가능 프로토콜(예를들어, 피브리 채널)에 맵핑한다.
도 4는 시스템 상호접속 버스를 통해 제공된 지연 데이터 전송의 추적을 도 시하는 흐름도이다. 도 4에 도시된 동작들은 펌웨어로 구현될 수 있고 상술한 하드웨어 구성요소와 연관하여 기능한다. 지연된 데이터 전송을 위한 타임아웃 통지가 수신된다 (400). 통지시 정보에 따라, 전송 에러가 발생되었는 지에 대한 판정이 이루어질 수 있다(405). 대안적으로는, 타임아웃 통지 자체가 이전에 논의된 바와 같은 전송 에러를 나타내는 것으로 고려될 수 있다.
전송 에러가 발생하지 않았다면, 추적된 데이터 전송에 대응하여 타이머가 리셋된다(410). 전송 에러가 발생하였다면, 이 전송 에러가 식별되고 타임아웃을 야기시킨 엔트리가 철수되며, 전송 에러가 로그된다 (415). 그런다음, 데이터 전송 식별자 생성이 변경된다(420).
시스템 에러가 발생하였는지 판정하기 위한 체크가 이루어진다(425). 시스템 에러가 발생하였다면, 시스템 에러를 식별하고 보고한다(430). 그렇지않았다면, 새로운 요구가 시작된다(435).
도 5는 예시적인 데이터 처리 시스템(500)을 도시하는 블록도이다. 데이터 처리 시스템(500)은, 프로그램을 실행하고 시스템(500)에서 데이터 조작 및 태스크 제어를 행하는 중앙 처리기(510)를 포함한다. 중앙 처리기(510)는 다중 처리기 또는 처리 유닛들을 포함할 수 있고 이것들은 하나의 칩(예를들어, 마이크로프로세서 또는 마이크로컨트롤러) 내에 또는 하나 이상의 인쇄 회로 기판 및/또는 다른 프로세서 간 통신 링크(즉, 두개 이상의 이산적 프로세서들이 다중 프로세서 시스템을 만드는)를 사용하여 다중 칩들 내에 하우징될 수 있다.
중앙 처리기(510)는 시스템 상호접속 버스(515)에 접속된다. 시스템 상호접 속 버스(515)는 시스템(500)의 부분들 중 데이터가 전송되는 하나 이상의 경로들을 제공한다. 시스템 상호접속 버스(515)는 병렬 및/또는 직렬 버스일 수 있는 다중 개별 버스들, 버스 인터페이스 및/버스 브리지들을 포함할 수 있다. 각 버스는 어드레스 버스 및 데이터 버스를 가질 수 있다. 시스템 상호접속 버스(515)는 PCI-X 등의 인터리브된 다중 동시 트랜잭션을 사용하여 데이터 전송을 허가하는 적어도 하나의 버스 구조를 포함하고 또한 임의의 다른 시스템 상호접속 버스 구조(예를들어, PCI, 산업 표준 아키텍쳐(ISA), 확장형 ISA(EISA), 가속화된 그래픽 포트(AGP), 유니버설 직렬 버스(USB), SCSI, 미래형 버스 구조)를 더 포함할 수 있다.
데이터 처리 시스템(500)은 시스템 상호접속 버스(515)와 연결된 메모리(520)를 포함한다. 시스템(500)은 또한 하나 이상의 캐시 메모리들을 포함할 수 있다. 이들 메모리 디바이스들은 중앙 처리기(510)에 근접하여 복원 및 실행을 위한 데이터 및 명령들을 저장할 수 있다.
메모리(520)는 비휘발성 메모리 및 휘발성 메모리를 포함할 수 있다. 예를들어, 비휘발성 메모리는 시스템 펌웨어를 저장하기 위해 사용될 수 있는 데, 이 시스템 펌웨어는 미국 98052-6399 워싱턴주 원 마이크로소프트 웨이 레드몬드에 위치한 Microsoft Corporation에 의해 제공된 Windows NT 4.0 Enterprise Edition 등의 운영 시스템(OS)의 로딩 및 데이터 처리 시스템(500)의 초기화 처리를 위해 사용될 수 있다. 휘발성 메모리는, 저장된 데이터를 유지하기 위해 안정된 전기 흐름을 요구하고, 시스템(500)이 일단 작동하면 명령들 및 데이터를 저장하기 위해 사용될 수 있다.
데이터 처리 시스템(500)은 시스템(500) 또는 시스템(500)의 구성요소로 하여금 동작들을 행하도록 하는 명령들과 같은 기계 명령들을 포함하는 기계-판독가능 매체인 매체(535)를 액세스하는 저장 장치(530)를 포함할 수 있다. 매체(535)는 제거가능한 것일 수 있고 시스템(500)이 부팅될 때 휘발성 메모리 내로 로딩되는 데이터 및 OS 명령들을 갖는 부트 매체를 포함할 수 있다. 매체(535)는 판독 전용 또는 판독/기입 매체일 수 있고 자기계, 광학계, 반도체계 매체, 또는 이들의 조합일 수 있다. 저장 장치(530) 및 매체(535)의 예들은 제거가능한 하드 디스크 드라이브 및 하드 디스크 플래터(hard disk platters), 플로피 디스크 드라이브 및 플로피 디스크, 테이프 드라이브 및 테이프, 광 디스크 드라이브 및 광 디스크(예를들어, 레이저 디스크, 콤팩트 디스크, 디지털 다방면 디스크)를 포함한다.
데이터 처리 시스템(500)은 또한 하나 이상의 주변 장치들(540(1)- 540(n))(집합적으로, 디바이스들(540)), 하나 이상의 제어기들 및/또는 인터페이스 기능을 제공하는 어댑터들을 포함할 수 있다. 디바이스(540)들은 상술한 바와 같은 추가의 저장 장치 및 매체일 수 있고, 다른 저장 인터페이스 및 저장 유닛들, 어댑터들, 입력 장치들 및/또는 출력 장치들일 수 있다. 예를들어, 시스템(500)은 표시 장치(예를들어, 비디오 랜덤 액세스 메모리(VRAM), 버퍼 및 그래픽 엔진을 포함하여 디스플레이 구동을 위한 구성요소를 갖는 비디오 디스플레이 어댑터)를 갖는 디스플레이 시스템을 포함할 수 있다.
시스템(500)은 또한 소프트웨어 및 데이터가, 시스템(500) 및 외부 장치들, 네트워크들 또는 정보 소스들 간에 신호들(554)의 형태로 전송될 수 있도록 하는 통신 인터페이스(550)를 포함한다. 신호들(554)은 채널(552)(예를들어, 배선, 케이블, 광섬유, 전화선, 적외선(IR) 채널, 고주파(RF) 채널 등)에 수신될 수 있는 어떤 신호들(예를들어, 전자, 전자기, 광학)일 수 있다. 신호들(554)은 시스템(500) 또는 시스템(500)의 구성요소로 하여금 동작들을 행하게 하는 명령들을 실시할 수 있다.
통신 인터페이스(550)는 통신 포트, 통신 모뎀 또는 무선 모뎀일 수 있다. 통신 인터페이스(550)는 네트워크 인터페이스 카드(예를들어, 이더넷 Hub와 접속된 이데넷 카드)일 수 있고, 특정 타입의 네트워크, 프로토콜 및 채널 매체로 설계될 수 있거나 또는 다중 네트워크들, 프로토콜들 및/또는 채널 매체를 제공하기 위해 설계될 수 있다.
또한, 시스템(500)은 소프트웨어 및 데이터로 하여금 시스템(500)과 저장 영역 네트워크 간에 신호(564) 형태로 전송될 수 있도록 하는 저장 네트워크 인터페이스(560)를 포함한다. 신호들(564)은 채널(562)에서 송수신될 수 있는 신호들(554)과 같은 어떤 신호들일 수 있다. 신호들(564)은 시스템(500), 또는 저장 네트워크 인터페이스(560) 등의 시스템(500)의 구성요소들로 하여금 동작들을 행하게 하는 명령들을 실시할 수 있다. 저장 네트워크 인터페이스(560)는 위의 도 3과 관련하여 도시되고 설명된 호스트 버스 어댑터일 수 있다.
전체적으로 볼 때, 시스템(500)은 프로그램가능한 기계(programmable machine)이다. 시스템(500)으로 표시된 예시적인 기계들은 서버(예를들어, 네트워크 호스트), 퍼스널 컴퓨터, 메인프레임, 및 슈퍼 컴퓨터를 포함한다. 기계(500)는 내장형 제어기들, 프로그램가능 로직 디바이스들(PLDs)(예를들어, PROM(Programmable Read Only Memory), PLA(Programmable Logic Array), GAL/PAL(Generic Array Logic/Programmable Array Logic)), 필드 프로그램가능 게이트 어레이(FPGAs), ASICs, 싱글-칩 컴퓨터, 스마트 카드 등의 여러 디바이스들을 포함할 수 있다.
기계 명령들(프로그램, 소프트웨어, 소프트웨어 애플리케이션 또는 코드로도 공지됨)은 기계(500) 내에, 저장 네트워크 인터페이스(560)와 접속된 저장 영역 네트워크 내에 저장될 수 있고, 및/또는 통신 인터페이스를 통해 기계(500)로 전달된다. 이들 명령들은 실행시, 기계(500)로 하여금 상술한 특징들 및 기능을 행할 수 있도록 한다. 이들 명령들은 기계(500)의 제어기들을 나타내고 고레벨 프로시져 및/또는 오브젝트-지향 프로그래밍 언어, 및/또는 어셈블리/기계 언어로 구현될 수 있다. 이러한 언어들은 컴파일되거나 및/또는 해석된 언어일 수 있다.
본원에 사용된 바와 같이, "기계-판독가능 매체"라는 용어는, 기계 명령을 기계-판독가능 신호로서 수신하는 기계-판독가능 매체를 포함하는 기계(500)로 기계 명령 및/또는 데이터를 제공하기 위해 사용될 어떤 컴퓨터 프로그램 프로덕트, 장치 및/또는 디바이스를 의미한다. 기계-판독가능 매체의 예들은 매체(535), 메모리(520), 및/또는 PLDs, FPGAs, ASICs 등을 포함한다. "기계-판독가능 신호"라는 용어는 기계 명령 및/또는 데이터를 기계(500)로 제공하기 위해 사용되는 신호들(554)과 같은 어떤 신호를 의미한다.
도 6은 일 실시에 따른 지연 데이터 전송 추적 시스템에 대한 운영 환경을 도시하는 블록도이다. 다중 서버(600)들이 저장 영역 네트워크에 접속된다. 각 서버(600)는 위에서 도시되고 논의된 대로 실시될 수 있다. 예를들어, 서버(600)는 4개의 550-㎒ Pentium
Figure 112007088735697-pct00009
Ⅲ Xeon™ 프로세서와 1GB(Gigabyte) RAM을 갖는 Intel
Figure 112007088735697-pct00010
AC450NX 시스템일 수 있고 또는 서버(600)는 8개의 550-㎒ Pentium Ⅲ Xeon™ 프로세서와 1GB RAM을 갖는 Intel
Figure 112007088735697-pct00011
OCPRF100 시스템일 수 있다.
저장 영역 네트워크는 다중 저장 매체(610)와 저장 네트워크(620)를 포함한다. 저장 네트워크는 데이터 저장 장치로의 전용 고속 네트워크일 수 있다. 예를들어, 저장 네트워크(620)는 피브리 채널 조정 루프 또는 피브리 채널 교환 패브릭 등의 피브리 채널 네트워크일 수 있다. 각 저장 장치(610)는 SCSI, PCI-X 또는 다른 버스 구조를 사용하는 스토리지 어레이, JBOD(Just a Bunch of Disks), RAID(Redundant Array of Inexpensive Disks) 인클로져, 또는 다른 대량 저장 장치일 수 있다. 일반적으로, 저장 장치(610)는 상기에서 논의된 바와 같은 적어도 하나의 기계-판독가능 매체, 및 서버(600)들에 대한 공유 저장 장치(610)로의 블록-레벨 I/O 액세스를 제공하는 저장 영역을 포함한다.
서버(600)들은 네트워크(630)에 접속되며, 이 네트워크(630)는 이더넷 네트워크 등의 다중 기계 네트워크들, IP(Internet Protocol) 네트워크 및 ATM(비동기 전송 모드) 네트워크들을 포함할 수 있다. 네트워크(630)는 구내 네트워크, 가상 구내 네트워크, 엔터프라이즈 네트워크, 공중 네트워크 및/또는 인터넷일 수 있다. 네트워크(630)는 다중 클라이언트들(640)과 서버들(600) 간에 통신 링크를 제공한 다.
본원에 개시된 시스템 및 기술들의 다양한 실시는 디지털 전자 회로, 집적 회로, 특별히 설계된 ASIC(application specific integrated circuits), 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 그 조합들로 실현될 수 있다. 상술한 다양한 실시들은 예시적인 것일 뿐 이것들에 제한되는 것은 아니다. 다른 시스템, 구조들, 및 도시된 디바이스, 기계 및 시스템의 변경 및/또는 재구성 또한 가능하다.
다른 실시예들도 첨부된 특허청구의 범위 내에서 실시될 수 있다.

Claims (37)

  1. 삭제
  2. 시스템 상호접속 버스 상에서 데이터를 전송하도록 하는 요구를 송신하는 단계와;
    상기 시스템 상호접속 버스 상에서 상기 데이터 전송 요구에 대한 응답을 수신하는 단계 -상기 응답은 상기 데이터 전송 요구의 수신 확인(acknowledgment) 및 그 데이터 전송 요구에 대한 타깃 디바이스의 지연 응답을 나타냄- 와;
    상기 데이터 전송 요구에 대응하는 정보를 저장하는 단계와;
    상기 요구된 데이터 전송에 대한 경과(progress)를 추적하는 단계와;
    상기 데이터 전송 경과가 소정의 기준(criteria)을 충족시키지 못하면, 전송 에러를 식별하는 단계
    를 포함하는 방법으로서,
    상기 경과 추적 단계는,
    상기 응답을 수신 시에 타이머를 시작하는 단계와;
    상기 데이터의 일부를 수신 시에 상기 타이머를 리셋시키고 데이터 전송 정보를 갱신하는 단계
    를 포함하는 방법.
  3. 제2항에 있어서, 상기 데이터 전송 정보는 어드레스, 데이터 카운트 및 데이 터 전송 식별자를 포함하는 방법.
  4. 제3항에 있어서, 상기 시스템 상호접속 버스는 PCI-X(Peripheral Component Interconnect Extended) 버스를 포함하는 방법.
  5. 제4항에 있어서, 식별된 전송 에러에 응답하여 태그 생성을 변경하는 단계를 더 포함하는 방법.
  6. 제5항에 있어서, 상기 소정의 기준은 상기 데이터 전송 정보의 변화 없이 상기 타이머의 2번의 타임아웃을 포함하는 방법.
  7. 제6항에 있어서, 태그 생성을 변경하는 단계는 태그 오프셋을 갱신하는 단계를 포함하는 방법.
  8. 제7항에 있어서, 시스템 에러를 식별하기 위해 식별된 전송 에러들을 모니터링하는 단계를 더 포함하는 방법.
  9. 제8항에 있어서, 식별된 전송 에러들을 모니터링하는 단계는 메모리의 일부가 일련의 전송 에러를 발생시키는 때를 판정하기 위해 상기 식별된 전송 에러들을 추적하는 단계를 포함하는 방법.
  10. 생성된 데이터 전송 식별자들에 의해 식별되는 다중 동시 데이터 전송들(multiple concurrent data transfers)을 지원하는 병렬 버스 상에서 데이터를 전송하도록 하는 요구를 송신하는 단계와;
    상기 병렬 버스 상에서 상기 데이터 전송 요구에 대한 응답을 수신하는 단계 -상기 응답은 상기 데이터 전송 요구의 수신 확인 및 그 데이터 전송 요구에 대한 타깃 디바이스의 지연 응답을 나타냄- 와;
    상기 데이터 전송 요구에 대응하는 어드레스 및 데이터 카운트 정보를 저장하는 단계와;
    타이머를 시작하는 단계와;
    상기 데이터의 일부를 수신 시에 상기 타이머를 리셋시키고 상기 어드레스 및 데이터 카운트 정보를 갱신하는 단계와;
    상기 타이머가 타임아웃할 때 전송 에러를 식별하는 단계와;
    식별된 전송 에러에 응답하여 트랜잭션들에 대한 데이터 전송 식별자 생성을 변경하는 단계와;
    시스템 에러를 식별하기 위해 식별된 전송 에러들을 모니터링하는 단계
    를 포함하는 기계-구현된 방법.
  11. 제10항에 있어서, 전송 에러를 식별하는 단계는 이전에 상기 타이머가 타임아웃한 이후로 상기 어드레스 및 데이터 카운트 정보의 변화 없이 상기 타이머가 타임아웃할 때 전송 에러를 식별하는 단계를 포함하는 기계-구현된 방법.
  12. 제11항에 있어서, 데이터 전송 식별자 생성을 변경하는 단계는 오프셋을 갱신하는 단계를 포함하는 기계-구현된 방법.
  13. 제12항에 있어서, 식별된 전송 에러들을 모니터링하는 단계는 메모리의 일부가 일련의 전송 에러들을 발생시키는 때를 판정하기 위해 상기 식별된 전송 에러들을 추적하는 단계를 포함하는 기계-구현된 방법.
  14. 제13항에 있어서, 상기 병렬 버스는 PCI-X 표준에 따르는 버스를 포함하는 기계-구현된 방법.
  15. 분할 트랜잭션(split transaction)으로 시작한 버스 시퀀스에 대한 타임아웃 통지를 수신하는 동작과;
    상기 시퀀스의 완료의 지연에 의해 증명된 전송 에러를 식별하는 동작과;
    식별된 전송 에러에 응답하여 시퀀스 식별자 생성을 변경하는 동작
    을 포함하는 동작들을 디바이스가 수행하게 하기 위한 명령들을 나타내는 정보가 기록된 기계 판독 가능 매체.
  16. 제15항에 있어서, 상기 버스 시퀀스는 PCI-X 버스 표준에 따르는 기계 판독 가능 매체.
  17. 제16항에 있어서, 상기 시퀀스의 완료의 지연은 상기 시퀀스에 대한 하드웨어 타이머 추적 경과의 타임아웃을 포함하는 기계 판독 가능 매체.
  18. 제16항에 있어서, 상기 동작들은,
    시스템 에러를 식별하기 위해 식별된 전송 에러들을 모니터링하는 동작을 더 포함하는 기계 판독 가능 매체.
  19. 제18항에 있어서, 식별된 전송 에러들을 모니터링하는 동작은 메모리의 일부가 일련의 전송 에러들을 발생시키는 때를 판정하기 위해 상기 식별된 전송 에러들을 추적하는 동작을 포함하는 기계 판독 가능 매체.
  20. 프로세서와;
    상기 프로세서와 연결된 메모리와;
    상기 메모리와 연결된 버스 인터페이스와;
    분할 트랜잭션들에 관한 정보를 저장하는 분할 트랜잭션 추적 저장소(split-transaction tracking repository)와;
    상기 분할 트랜잭션 추적 저장소의 체크를 주기적으로 시작하는 타이머들과;
    상기 분할 트랜잭션 추적 저장소를 체크하고 추적된 분할 트랜잭션에 대응하는 시퀀스의 완료의 지연을 식별하는 분할 트랜잭션 모니터
    를 포함하는 버스 어댑터.
  21. 제20항에 있어서, 상기 분할 트랜잭션 추적 저장소 및 상기 타이머들은 하드웨어를 포함하는 버스 어댑터.
  22. 제21항에 있어서, 상기 분할 트랜잭션 추적 저장소 및 상기 타이머들은 ASIC(application specific integrated circuit)의 로직 컴포넌트들을 포함하고, 상기 프로세서, 상기 메모리, 및 상기 버스 인터페이스는 상기 ASIC을 통하여 서로 연결되는 버스 어댑터.
  23. 제22항에 있어서, 상기 분할 트랜잭션 모니터는 펌웨어를 포함하는 버스 어댑터.
  24. 제23항에 있어서, 상기 분할 트랜잭션 모니터는 식별된 에러들에 응답하여 시퀀스 식별자 생성을 변경하는 버스 어댑터.
  25. 제24항에 있어서, 상기 분할 트랜잭션 모니터는 비응답(non-responsive) 시스템 메모리에 관한 시스템 에러들을 식별하는 버스 어댑터.
  26. 제25항에 있어서, 상기 버스 인터페이스는 PCI-X 버스 표준에 따르는 버스 어댑터.
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 병렬 버스를 포함하는 프로그램 가능 기계와;
    저장 영역 네트워크(storage area network)와;
    상기 병렬 버스 및 상기 저장 영역 네트워크와 연결된 버스 어댑터 -상기 버스 어댑터는, 프로세서와, 상기 프로세서와 연결된 메모리와, 상기 메모리 및 상기 병렬 버스와 연결된 버스 인터페이스와, 상기 병렬 버스 상에서 발생하는 분할 트랜잭션들에 관한 정보를 저장하는 분할 트랜잭션 추적 저장소와, 상기 분할 트랜잭션 추적 저장소의 체크를 주기적으로 시작하는 타이머들과, 상기 분할 트랜잭션 추적 저장소를 체크하고 추적된 분할 트랜잭션에 대응하는 시퀀스의 완료의 지연을 식별하는 분할 트랜잭션 모니터를 포함함-
    를 포함하는 시스템.
  33. 제32항에 있어서, 상기 버스 어댑터는 호스트 버스 어댑터 카드(host-bus adapter card)를 포함하는 시스템.
  34. 제33항에 있어서, 상기 분할 트랜잭션 추적 저장소 및 상기 타이머들은 ASIC의 로직 컴포넌트들을 포함하고, 상기 프로세서, 상기 메모리, 및 상기 버스 인터페이스는 상기 ASIC을 통하여 서로 연결되는 시스템.
  35. 제34항에 있어서, 상기 분할 트랜잭션 모니터는 식별된 에러들에 응답하여 시퀀스 식별자 생성을 변경하는 시스템.
  36. 제34항에 있어서, 상기 분할 트랜잭션 모니터는 비응답 시스템 메모리에 관한 시스템 에러들을 식별하는 시스템.
  37. 제34항에 있어서, 상기 버스 인터페이스는 PCI-X 버스 표준에 따르는 시스템.
KR1020047008864A 2001-12-10 2002-12-10 시스템 상호접속 버스 상에서의 지연 데이터 전송 추적 KR100997841B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US33923801P 2001-12-10 2001-12-10
US60/339,238 2001-12-10
US10/125,101 US7051145B2 (en) 2001-12-10 2002-04-18 Tracking deferred data transfers on a system-interconnect bus
US10/125,101 2002-04-18
PCT/US2002/039549 WO2003050691A1 (en) 2001-12-10 2002-12-10 Tracking deferred data transfers on a system-interconnect bus

Publications (2)

Publication Number Publication Date
KR20040079408A KR20040079408A (ko) 2004-09-14
KR100997841B1 true KR100997841B1 (ko) 2010-12-01

Family

ID=26823258

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047008864A KR100997841B1 (ko) 2001-12-10 2002-12-10 시스템 상호접속 버스 상에서의 지연 데이터 전송 추적

Country Status (6)

Country Link
US (1) US7051145B2 (ko)
EP (1) EP1466253A1 (ko)
JP (1) JP4902101B2 (ko)
KR (1) KR100997841B1 (ko)
CA (1) CA2468799A1 (ko)
WO (1) WO2003050691A1 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7124230B2 (en) * 2002-04-30 2006-10-17 Intel Corporation Use of bus transaction identification codes
US7124231B1 (en) * 2002-06-14 2006-10-17 Cisco Technology, Inc. Split transaction reordering circuit
WO2004088522A1 (ja) * 2003-03-31 2004-10-14 Fujitsu Limited バスブリッジ装置、バスブリッジ方法および入出力制御装置
US7454551B2 (en) * 2004-05-26 2008-11-18 Synopsys, Inc. Reconstructing transaction order using clump tags
US20060031603A1 (en) * 2004-08-09 2006-02-09 Bradfield Travis A Multi-threaded/multi-issue DMA engine data transfer system
US7260661B2 (en) * 2004-09-03 2007-08-21 Intel Corporation Processing replies to request packets in an advanced switching context
US20060050693A1 (en) * 2004-09-03 2006-03-09 James Bury Building data packets for an advanced switching fabric
US20060050722A1 (en) * 2004-09-03 2006-03-09 James Bury Interface circuitry for a receive ring buffer of an as fabric end node device
US7370133B2 (en) * 2005-01-20 2008-05-06 International Business Machines Corporation Storage controller and methods for using the same
US7565471B2 (en) * 2005-09-16 2009-07-21 Emulex Design & Manufacturing Corporation Message signaled interrupt extended (MSI-X) auto clear and failsafe lock
CN101589378B (zh) * 2006-12-04 2014-02-12 桑迪士克科技公司 通过虚拟块防止超时的便携式模块接口
US7694051B2 (en) * 2007-03-22 2010-04-06 Moxa Technologies Co., Ltd. Method for calculating master/slave response time-out under continuous packet format communications protocol
GB2474446A (en) * 2009-10-13 2011-04-20 Advanced Risc Mach Ltd Barrier requests to maintain transaction order in an interconnect with multiple paths
KR101385608B1 (ko) 2012-05-24 2014-04-16 주식회사 엑셈 거래 추적 시스템 및 그 제어방법
GB2535373A (en) * 2013-09-30 2016-08-17 Maximus Inc Process tracking and defect detection
US9417816B2 (en) * 2014-01-02 2016-08-16 Advanced Micro Devices, Inc. Partitionable memory interfaces
US9372500B2 (en) 2014-02-27 2016-06-21 Applied Micro Circuits Corporation Generating a timeout signal based on a clock counter associated with a data request
CN108027786A (zh) * 2015-07-29 2018-05-11 Macom连接解决有限公司 基于与数据请求相关联的时钟计数器产生逾时信号
US11030697B2 (en) 2017-02-10 2021-06-08 Maximus, Inc. Secure document exchange portal system with efficient user access
US11150842B1 (en) * 2020-04-20 2021-10-19 Western Digital Technologies, Inc. Dynamic memory controller and method for use therewith
US11281399B2 (en) 2020-06-24 2022-03-22 Western Digital Technologies, Inc. Dual-interface storage system and method for use therewith
US11442665B2 (en) 2020-12-04 2022-09-13 Western Digital Technologies, Inc. Storage system and method for dynamic selection of a host interface

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10289200A (ja) * 1997-04-16 1998-10-27 Fujitsu Ltd バスインタフェース回路

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0351943A (ja) * 1989-07-19 1991-03-06 Fujitsu Ltd 高速バスと低速バスのバスライン共用化方式
US5504899A (en) * 1991-10-17 1996-04-02 Digital Equipment Corporation Guaranteeing global serializability by applying commitment ordering selectively to global transactions
JPH05204841A (ja) * 1992-01-24 1993-08-13 Hitachi Ltd 情報処理装置用バス
US5388238A (en) * 1992-07-24 1995-02-07 At&T Corp. System and method for monitoring the validity of circulating pointers in a FIFO memory
US5513126A (en) * 1993-10-04 1996-04-30 Xerox Corporation Network having selectively accessible recipient prioritized communication channel profiles
US5761444A (en) * 1995-09-05 1998-06-02 Intel Corporation Method and apparatus for dynamically deferring transactions
US5701422A (en) * 1995-12-13 1997-12-23 Ncr Corporation Method for ensuring cycle ordering requirements within a hierarchical bus system including split-transaction buses
JP3119155B2 (ja) * 1996-03-08 2000-12-18 日本電気株式会社 バスアクセス方式
US5860119A (en) * 1996-11-25 1999-01-12 Vlsi Technology, Inc. Data-packet fifo buffer system with end-of-packet flags
US5870567A (en) * 1996-12-31 1999-02-09 Compaq Computer Corporation Delayed transaction protocol for computer system bus
US6044368A (en) * 1998-04-30 2000-03-28 Genesys Telecommunications Laboratories, Inc. Method and apparatus for multiple agent commitment tracking and notification
TW514788B (en) * 1999-04-23 2002-12-21 Via Tech Inc Method of delayed transaction in bus system and device using the method
US6715004B1 (en) * 2000-03-29 2004-03-30 Intel Corporation Method and apparatus for intermediate validation of data transferred between a host and a device
US6766386B2 (en) * 2001-08-28 2004-07-20 Broadcom Corporation Method and interface for improved efficiency in performing bus-to-bus read data transfers

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10289200A (ja) * 1997-04-16 1998-10-27 Fujitsu Ltd バスインタフェース回路

Also Published As

Publication number Publication date
US7051145B2 (en) 2006-05-23
CA2468799A1 (en) 2003-06-19
US20030110340A1 (en) 2003-06-12
WO2003050691A1 (en) 2003-06-19
JP4902101B2 (ja) 2012-03-21
JP2005513595A (ja) 2005-05-12
EP1466253A1 (en) 2004-10-13
KR20040079408A (ko) 2004-09-14

Similar Documents

Publication Publication Date Title
KR100997841B1 (ko) 시스템 상호접속 버스 상에서의 지연 데이터 전송 추적
US7093043B2 (en) Data array having redundancy messaging between array controllers over the host bus
US6591310B1 (en) Method of responding to I/O request and associated reply descriptor
US8788873B2 (en) Server input/output failover device serving highly available virtual devices
US7493424B1 (en) Network storage system with shared software stack for LDMA and RDMA
US10860511B1 (en) Integrated network-attachable controller that interconnects a solid-state drive with a remote server computer
US6961813B2 (en) System and method for providing multi-initiator capability to an ATA drive
US7685476B2 (en) Early notification of error via software interrupt and shared memory write
US6338150B1 (en) Diagnostic and managing distributed processor system
US7840736B2 (en) Bus communication enumeration
TWI364665B (en) Hardware oriented host-side native command queuing tag management
US8499308B2 (en) Initiator notification method and apparatus
US7080169B2 (en) Receiving data from interleaved multiple concurrent transactions in a FIFO memory having programmable buffer zones
US20060067356A1 (en) Method and apparatus for network direct attached storage
EP3608791B1 (en) Non-volatile memory switch with host isolation
US20060184949A1 (en) Methods, systems, and storage mediums for timing work requests and completion processing
US9734031B2 (en) Synchronous input/output diagnostic controls
US7222348B1 (en) Universal multi-path driver for storage systems
US10606784B1 (en) Software filtering of redundant sideband device management bus communications
US20080126608A1 (en) Storage network out of order packet reordering mechanism
US20080148104A1 (en) Detecting an Agent Generating a Parity Error on a PCI-Compatible Bus
US11023400B1 (en) High performance DMA transfers in host bus adapters
US6957361B2 (en) Method, system, and program for error handling in a dual adaptor system
US7769913B1 (en) Method and apparatus for assigning a local identifier to a cluster interconnect port in a network storage system
US7234101B1 (en) Method and system for providing data integrity in storage systems

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20131028

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141007

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150714

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20181112

Year of fee payment: 9