KR20010040936A - 2차 버스로부터의 메시징 유닛 액세스 - Google Patents

2차 버스로부터의 메시징 유닛 액세스 Download PDF

Info

Publication number
KR20010040936A
KR20010040936A KR1020007008851A KR20007008851A KR20010040936A KR 20010040936 A KR20010040936 A KR 20010040936A KR 1020007008851 A KR1020007008851 A KR 1020007008851A KR 20007008851 A KR20007008851 A KR 20007008851A KR 20010040936 A KR20010040936 A KR 20010040936A
Authority
KR
South Korea
Prior art keywords
bus
request
primary
address
message
Prior art date
Application number
KR1020007008851A
Other languages
English (en)
Other versions
KR100347076B1 (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 KR20010040936A publication Critical patent/KR20010040936A/ko
Application granted granted Critical
Publication of KR100347076B1 publication Critical patent/KR100347076B1/ko

Links

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
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • 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
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/374Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a self-select method with individual priority code comparator

Abstract

컴퓨터 시스템(100)에서 1차 버스(114), 2차 버스(118) 및 3차 버스(122)를 연결시키는 프로세스(152), 브리지 유닛(126) 및 I/O 메시징 유닛(130)을 구비하는 I/O 서브시스템(110)이 제공된다. 브리지 유닛(126)은 2차 버스(118)로부터 메시징 유닛(messaging unit)(MU)(130) 어드레스 범위를 액세스하는 요구를 청구하도록 구성되고, MU(130)는 1차 버스(114)에 연결된다. MU(130)는 I/O 요구가 전달될 경우에 프로세서(152)를 인터럽트하고, 이에 응답하여 프로세서(152)는 I/O 메시지에 대한 MU 포인터를 판독하고, I/O 메시지를 수행할 수 있다. MU(130)를 액세스하고자 하는 1차 버스(114) 또는 2차 버스(118) 상의 에이전트에 대해 기록된 소프트웨어의 이식성을 진전시키기 위해, I/O 서브시스템(110)의 1차 및 2차 어드레스 변환 유닛(134 및 136)이 동일한 어드레스 변환을 청구하도록 프로그래밍되고, 여기서 MU 어드레스 범위는 1차 ATU(134) 어드레스 변환 윈도우의 일부분이고, 2차 ATU(146)는 MU 어드레스 범위 내에서 요구를 청구하지 않도록 구성된다.

Description

2차 버스로부터의 메시징 유닛 액세스{ACCESSING A MESSAGING UNIT FROM A SECONDARY BUS}
다중 버스 컴퓨터 시스템에서 I/O 장치 또는 주변기기의 이용으로 나타나는 성능 병목현상(performance bottleneck)을 제거하기 위해, 시스템 설계자는 지능형 I/O 서브시스템(intelligent I/O subsystem)의 개념으로 관심을 돌렸다. 이러한 서브시스템은 서브시스템 프로세서 및 호스트 시스템 버스로부터 분리된 로컬 버스를 공유하는 로컬 메모리를 구비한다. 이러한 컴퓨터 시스템에서, 주변 장치 사이의 전송과 같은 인터럽트-인텐시브 I/O 태스크(interrupt-intensive I/O tasks)는 시스템 버스 상의 자원을 자유롭게 하도록 호스트 프로세서로부터 I/O 서브시스템으로 방향이 지정된다. 또한, 이러한 아키텍처는 I/O 병목현상을 완화시키기 위해 I/O 성능이 호스트 프로세서와 독립적으로 증가되도록 허용한다. 도1은 지능형 I/O 서브시스템(110)을 특징짓는 예시적인 다중 버스 컴퓨터 시스템(100)을 도시한다.
도1의 컴퓨터 시스템(100)은 "PCI Special Interest Group in PCI Local Bus Specification, Revision 2.1, October 21, 1994"에 의해 통상적으로 정의된 산업-표준 PCI(Peripheral Component Interconnect)에 기초한다. 시스템은 두 물리적인 분리 PCI 시스템 버스 즉, 1차 PCI 버스(primary PCI bus)(114) 및 2차 PCI 버스(secondary PCI bus)(118)를 특징짓는다. 브리지 유닛(bridge unit)(126)은 "PCI Special Interest Group, April 5, 1994"에 의해 퍼블리시된 "PCI-to-PCI Bridge Architecture Specification, Revision 1.0"에 따른 단일 PCI 어드레스 공간(single PCI address space)을 구비하는 하나의 로직 버스(one logical bus)에서 두 시스템 버스를 결합시킨다. 호스트 프로세서(host processor)(164)와 같은 에이전트(agent) 및 제1 PCI 에이전트(172) 및 제2 PCI 에이전트(176)와 같은 주변 장치는 시스템 버스 상에 존재하고 브리지 유닛을 통해 서로 투명하게 통신한다. 제3 또는 로컬 버스(122)는 1차 및 2차 어드레스 변환 유닛(P_ATU(134) 및 S_ATU(146))을 통해 시스템 버스에 연결된다. ATU는 PCI 어드레스 공간과 I/O 서브시스템 로컬 어드레스 공간 사이의 트랜잭션(transactions)을 지원한다. 서브시스템 프로세서(152) 및 로컬 메모리에 연결된 메모리 제어기 유닛(memory controller unit)(MCU)(156)은 로컬 버스(122)를 이용함으로써 서로 통신한다. 서브시스템 프로세서(152) 및 로컬 메모리는 호스트 프로세서(164) 레벨과 대비하여 I/O 서브시스템 레벨에서 I/O 메시지 태스크를 처리함으로써 정보(intelligence)를 I/O 서브시스템으로 가져온다.
또한, I/O 서브시스템은 P_ATU(134)의 일부분에 가깝게 연결되거나 또는 선택적으로 연결되는 I/O 메시징 유닛(messaging unit)(MU)(130)을 구비한다. 하위 레벨(lower level)에서, MU는 I/O 트랜잭션 즉, 1차 버스 상의 PCI 에이전트와, 서브시스템 프로세서 및 로컬 메모리 사이의 데이터 전송을 용이하게 한다. 상위 레벨(higher level)에서, MU는 I/O 트랜잭션 요구 및 완료 전달(posting)을 통해 호스트 운용 시스템(host operating system) 및 I/O 서브시스템 사이의 데이터 전송을 준비한다. I/O 트랜잭션은 "Intelligent I/O (I2O) Architecture Specification, Version 1.5, March 1997"에 따른 I/O 메시지의 전송 및 실행을 수반한다. 이러한 사양은 고성능 I/O 시스템을 확립 및 유지시키는 태스크를 간소화하도록 설계된다. I2O 사양은 특정 제어 장치 및 호스트 운용 시스템 모두와 독립적인 공통 I/O 장치 드라이버(common I/O device driver) 및 I/O (또는 I2O) 프로토콜(protocol)을 제공한다.
특히, I2O 사양은 에이전트와 I/O 서브시스템 사이의 메시지 패싱(message passing)을 지원한다. 이들 I/O 메시지는 서브시스템 프로세서(152) 및 MCU(156)에 의해 수행되는 동작을 지정한다. 이러한 메시지는 I2O 사양에서 설명되고, 통상의 판독 및 기록 트랜잭션보다 상위 레벨 포맷을 가지며, 다중 PCI 및/또는 로컬 버스 판독 및 기록 트랜잭션을 포함할 수 있다. 예를 들어, I/O 메시지는 I/O 서브시스템이 로컬 메모리로부터 데이터를 판독하고 1차 PCI 버스(114) 상의 에이전트에 데이터를 기록하도록 요구하는 트랜잭션의 시퀀스를 포함할 수 있다. 다른 예는 1차 PCI 버스(114) 상의 다른 에이전트와 트랜잭션을 수행하는데 필요한 어드레스 정보(address information)를 에이전트에게 제공하는 I/O 메시지이다. 이러한 메시지는 호스트 프로세서(164)를 우회하는 동안 다른 장치와 통신하는 주변 장치에 의해 통상적으로 이용된다.
통상적으로, 호스트 프로세서(164)는 호스트 메모리(168)에서 I/O 메시지를 배열하도록 (호스트 운용 시스템 및 다른 소프트웨어를 통해) 구성되고, I/O 메시지로 포인터(pointers)를 제공함으로써 MU(130)를 초기화한다. 이들 포인터는 메시지 큐(message queue)에 저장되고, MU(130)를 통해 액세스된다. MU는 포인터 및 I/O 메시지를 액세스하는 PCI 시스템 및 I/O 서브시스템에 의해 이용될 수 있는 1차 버스 상에서 고정된 어드레스 범위(fixed address range)를 보증한다. 메시지 큐는 호스트 메모리(168) 또는 I/O 메모리(160)에 저장될 수 있고, 1차 버스(114) 상의 에이전트 및 서브시스템 프로세서(152)로부터 수신된 I/O 요구에 응답하여 MU(130)를 통해 액세스될 수 있다.
MU에 의한 I/O 요구를 처리하기 위한 통상의 메커니즘은 단지 P_ATU(134) 및 1차 PCI 버스(114)를 수반한다. 정상적으로, 각 ATU는 로컬 버스(122)와 해당 PCI 시스템 버스 사이의 양방향 통신 및 데이터 흐름 경로를 제공한다. ATU는 어느 요구가 적절한 버스로 청구(claim) 및 변환되는지를 판단하도록 어드레스 윈도잉 방식(address windowing scheme)을 구현한다. PCI 에이전트(164)와 같은 PCI 버스 마스터(PCI bus master)가 ATU를 통해 로컬 버스(122)를 액세스할 경우의 트랜잭션은 "인바운드 트랜잭션(inbound transactions)"으로 불린다. 각 ATU는 인바운드 어드레스 변환 윈도우를 정의하도록 프로그래밍되고, 여기서 윈도우 내에서 PCI 어드레스를 갖는 요구는 ATU에 의해 청구되고, 로컬 버스 어드레스로 변환된다.
MU(130)는 로컬 버스(122)를 수반하는 트랜잭션을 추구하는 다른 요구와 구별되는 1차 버스(114) 상의 에이전트로부터의 I/O 요구에 응답하도록 P_ATU(134)의 1차 인바운드 트랜잭션 윈도우의 영역을 이용한다. 또한, MU는 제어 및 상태 정보를 위한 P_ATU의 PCI 구성 레지스터(PCI configuration registers)를 이용한다. 통상의 방식에서, I/O 요구는 1차 PCI 버스(114) 상의 호스트 프로세서(164) 또는 다른 에이전트(172)에 의해 통상적으로 개시되고, 1차 인바운드 변환 윈도우로 지시된다.
하지만, 통상의 방식에서, 2차 PCI 버스(118) 상의 지능형 에이전트는 MU(130) 또는 I2O 프로토콜을 직접 액세스하지 않는다. 오히려, 2차 버스 상의 에이전트는 (브리지 유닛(126)을 통해) 호스트 프로세서가 I2O 프로토콜을 수행하도록 요구한다. 이것은 특히, 2차 버스(118) 상의 지능형 에이전트의 수가 증가됨에 따라 호스트 프로세서 상의 부담을 증가시킨다.
그러므로, 호스트 프로세서(164)와의 상호작용을 최소화하면서 I2O 프로토콜을 수행하기 위해 2차 버스 상의 지능형 에이전트가 MU(130)를 직접적으로 액세스하도록 허용하는 메커니즘이 바람직하다.
바람직하게도, 이러한 메커니즘은 1차 및 2차 버스 모두로부터 생성되는 요구에 관해서 I2O 프로토콜을 이용하는 에이전트 소프트웨어가 중대한 수정없이 이식가능하도록 즉, 응용가능하도록 허용하여야 한다. 또한, 양쪽 버스 상의 에이전트가 ATU를 통해 인터페이싱할 경우에 바람직하게도 동일한 어드레스 공간에서 동일한 양의 로컬 메모리를 액세스할 수 있어야 하기 때문에, 에이전트가 각 에이전트에서의 소프트웨어를 재구성할 필요없이 한 버스에서 다른 버스로 이동될 것이다. 즉, 이러한 메커니즘은 에이전트가 I2O 프로토콜을 적절히 구현할 수 있기 전에 그들이 어느 버스 상에 위치할지에 관한 에이전트에 의한 지식(knowledge)을 요구하지 않는다. 결국, 메시징 유닛을 액세스하기 위한 메커니즘은 PCI 버스 사양에서의 고정된 어드레스 공간 경계의 제한이 존재할 경우에 적은 양의 PCI 어드레스를 희생하여야 한다. 2차 버스로부터 I2O 트랜잭션을 용이하게 할 수 있는 하나의 가능한 기술(one possible technique)은 S_ATU(146)에 가깝게 연결된 제2 MU를 추가하는 것이다. 제2 MU가 S_ATU 어드레스 공간의 영역을 청구하도록 구성된 것을 제외하고, 제2 MU가 도1의 메시징 유닛(130)과 실질적으로 동일하게 수행할 것이다. 하지만, 이러한 이중 MU 아키텍처는 (제1 및 제2 MU를 위한 어드레스 범위를 포함하는) P_ATU 및 S_ATU 어드레스 변환 윈도우가 동일하게 되도록 요구함으로써 에이전트 소프트웨어에서 이식성(portability)을 유지하기 위한 필요성과 결합될 경우에 추가적인 문제점을 나타낼 것이다. 동일한 I/O 메시지에 대한 한 쌍의 포인터 즉, 호스트 메모리에서 동일한 위치에 대한 두 포인터가 존재하기 때문에, P_ATU(134) 및 S_ATU(146)를 위한 동일한 어드레스 변환을 갖는 것은 MU에서 몇몇 쌍의 메시지 큐를 동시에 관리하는 방식을 요구할 수 있다. 이러한 메커니즘은 이중 MU 메커니즘을 지원하도록 추가 데이터 동일성 프로토콜(additional data coherency protocol)을 요구할 것이다. 이러한 동일성 메커니즘은 한 MU가 "스누프(snoop)"하도록 요구하거나 또는 다른 MU의 동작을 인식 및 관찰할 것이다. I2O 트랜잭션이 발생할 경우에, 비활성 MU는 동일한 데이터와 유효 트랜잭션(valid transaction)을 수행하는 다른 MU의 활성으로 인해 데이터에 대한 이용가능 메시지 포인터의 일부분을 무효화시키기 위해 요구될 것이다. 따라서, 잠정적으로 복잡한 데이터 동일성 문제가 PCI 에이전트 소프트웨어에서 이식성을 획득하기 위한 이러한 이중 MU 설계를 이용할 경우 야기된다.
그러므로, 전술한 바에 비추어, I2O 프로토콜이 1차 및 2차 PCI 버스 상의 에이전트에 의해 수행되도록 하는 메커니즘을 위한 필요성이 존재하고, 여기서 이러한 메커니즘이 또한 MU 액세싱 소프트웨어의 개발을 허가하여야 한다.
본 발명은 다중 버스 아키텍처(multiple bus architecture)에서 입력/출력(input/output)(I/O) 서브시스템을 구비한 컴퓨터 시스템에 관한 것으로서, 특히 2차 버스(secondary bus)로부터 I/O 메시징 유닛(I/O messaging unit)을 액세스하는 것에 관한 것이다.
도1은 본 발명의 실시예를 구현하는데 적합한 컴퓨터 시스템을 도시한 도면.
도2는 본 발명의 실시예를 정의하는데 이용되는 어드레스 공간을 도시한 도면.
도3은 본 발명의 다른 실시예에 따른 컴퓨터 시스템에서 수행되는 단계의 흐름도.
본 발명의 특징 및 장점은 본 발명의 하기의 상세한 설명으로부터 명백해질 것이다.
발명의 요약
한 실시예에서의 본 발명은 프로세서, 브리지 유닛 및 메시징 유닛(MU)을 구비한 데이터 처리 장치에 관한 것이다. 브리지 유닛은 1차 버스를 2차 버스에 연결하기 위한 것이고, 특히 요구를 2차 버스로부터 1차 버스로 전송하기 위한 것이다. 브리지 유닛은 2차 버스로부터 MU 액세스 어드레스 범위를 액세스하는 요구를 청구하도록 구성 가능하다. MU는 메시지를 호출하는 요구의 수신에 응답하여 프로세서를 인터럽트하도록 구성되고, 여기서 이러한 요구는 MU 어드레스 범위를 액세스하고, 2차 버스에서 개시된다. 프로세서는 메시지를 액세스하고, 메시지에 관한 다수의 명령어를 실행시키도록 구성된다.
간단히 전술된 발명의 요약과 같이, 본 발명은 다중 버스 컴퓨터 시스템의 2차 버스 상의 에이전트가 컴퓨터 시스템의 1차 버스 상에 존재하는 메시징 유닛(MU)을 액세스하도록 허용하는 데이터 처리 장치에 관한 것이다. 설명 목적을 위해, 특정 실시예가 본 발명의 완전한 이해를 제공하기 위해 하기에서 설명된다. 하지만, 이 기술분야에서 통상의 지식을 가진 자는 본 발명이 특정 세부사항 없이도 실시될 수 있다는 것을 이해할 것이다. 또한, 공지된 요소, 장치, 프로세스, 단계 등은 본 발명을 모호하게 만들지 않기 위해 생략 또는 간략화되었다.
본 발명의 특정 실시예는 PCI 아키텍처 및 I2O 사양을 이용함으로써 구현될 수 있다. 이러한 특정 실시예는 I2O 프로토콜이 1차 또는 2차 PCI 버스 상의 에이전트 또는 장치와 I/O 서브시스템 사이에서 수행되도록 허용한다. 다른 실시예에서, 1차 또는 2차 버스로부터 MU에 대한 액세스는 동일한 어드레스 범위가 MU를 액세스하기 위한 1차 또는 2차 버스로부터 이용된다는 의미에서 실질적으로 동일하다.
본 발명의 한 실시예에서, 데이터 처리 장치는 도1에 도시된 I/O 서브시스템의 기능 블록의 일부분을 포함한다. 이러한 실시예에서, 데이터 처리 장치는 1차 PCI 버스(114), 2차 PCI 버스(118), 로컬 버스(122) 및 로컬 메모리에 인터페이스되는 이른바 I/O 프로세서 단일 집적 회로(I/O processor single integrated circuit)일 수 있다. 서브시스템 프로세서(152)는 로컬 버스(122)에 연결된 I/O 서브시스템(110) 내에서 특징 지어진다. 또한, I/O 서브시스템(110)은 로컬 버스(122) 상의 메모리 제어기 유닛(memory controller unit)(MCU)(156)을 포함할 수 있다. MCU(156)는 I/O 메모리(160)에 대한 액세스를 추구하는 로컬 버스(122) 상에서 모든 트랜잭션을 처리한다. 비록 로컬 버스(122)는 도1에서 I/O 서브시스템(110) 경계를 넘어서 확장하도록 나타나지만, 버스는 선택적으로 I/O 프로세서 실시예의 내부 버스로서 단일 IC에 제한되는 I/O 서브시스템(110) 경계 내에 전체적으로 놓여질 수 있다.
또한, 브리지 유닛(126)은 1차 버스를 2차 버스에 연결하기 위한 I/O 서브시스템(110)에 포함된다. 브리지 유닛(126)은 예를 들어, 토글되는(toggled) I/O 서브시스템(110)의 레지스터에서 적어도 하나의 인에이블 비트에 응답하여 MU(130) 어드레스 범위를 액세스하기 위한 2차 버스 상에서 요구를 청구하도록 인에이블될 수 있다. 이러한 인에이블 비트는 브리지 유닛(126) 또는 I/O 서브시스템(110)의 구성 레지스터의 일부분일 수 있다.
PCI 시스템 버스와 로컬 버스(122) 사이의 통신은 1차 및 2차 어드레스 변환 유닛(address translation units)(ATUs)을 통해 달성된다. 각 ATU가 PCI 시스템 버스로부터 로컬 버스(122)로 요구의 어드레스를 변환하도록 구성되고, 역도 또한 같다. 각 ATU가 ATU에 의해 청구되는 요구의 범위를 정의하는 어드레스 변환 윈도우를 가진다.
도1의 컴퓨터 시스템(100)의 PCI 어드레스 공간은 I/O 서브시스템 및 로컬 버스와 트랜잭션을 개시하도록 1차 및 2차 버스 상의 에이전트에 의해 이용되는 공통 ATU 변환 윈도우를 포함한다. 도2는 어드레스 변환 윈도우의 바람직한 범위 및 MU 어드레스 범위의 위치 뿐만 아니라 P_ATU(134) 및 S_ATU(146)에 의해 수행되는 로컬 및 PCI 어드레스 공간들 사이에서의 변환을 설명한다. P_ATU(134) 및 S_ATU(146)가 MU 범위를 제외한 공유 변환 윈도우를 공유하는 것은 I/O 서브시스템을 액세스하는데 이용되는 장치 드라이버 소프트웨어가 1차 또는 2차 버스 상의 장치들 사이에서 이식가능하도록 허용할 것이다. 또한, 도2는 P_ATU 변환 윈도우의 일부분으로서 바람직한 MU 범위를 도시한다. MU 범위가 아닌 P_ATU(134) 및 S_ATU(146)의 인바운드 변환 윈도우(inbound translation window)의 영역은 I/O 메모리를 액세스하는 PCI 트랜잭션에 이용될 수 있다.
I/O 서브시스템은 브리지 유닛이 2차 버스 상에서 MU 범위를 청구하도록 인에이블될 때는 언제나, MU 범위가 S_ATU 변환 윈도우의 일부분이 되지 않게 한다. 이것은 I/O 서브시스템(110)의 인에이블 비트(enable bit)에 의해 제어될 수 있다. 이러한 비트는 브리지 유닛(126)의 구성 레지스터의 일부분일 수 있다. 인에이블될 경우에, S_ATU 변환 윈도우를 액세스하는 2차 버스 상에서 개시되는 트랜잭션은 S_ATU(146)를 통해 로컬 버스로 여전히 전송될 것이지만, MU 어드레스 범위 내의 I/O 요구는 S_ATU(146)에 의해 청구되지 않는다. 대신에, 브리지 유닛은 2차 버스 상에 이들 I/O 요구를 청구하고, MU 및/또는 P_ATU(134)에 의해 청구될 경우에 이들을 1차 버스로 전송한다. 또한, MU(130)는 요구가 MU 어드레스 범위를 액세스할 경우에 예를 들어, 호스트 프로세서(164)에 의해 1차 버스 상에서 생성되는 요구에 응답할 것이다.
메시지 처리를 위한 MU에서의 일정 메커니즘은 메시지 레지스터 및 원형 큐(circular queues)를 포함한다. 메시지 레지스터는 메시지를 송수신하도록 I/O 서브시스템에 의해 이용된다. 기록될 경우에, 이들 레지스터는 서브시스템 프로세서 또는 1차 또는 2차 PCI 버스에 대해 인터럽트가 생성되도록 할 수 있다.
또한, MU는 인바운드 메시지(inbound messages)를 위한 적어도 하나 및 아웃바운드 메시지(outbound messages)를 위한 적어도 하나를 포함하는 다수의 원형 큐를 포함한다. 인바운드 메시지는 1차 또는 2차 버스로부터 에이전트에 의해 "전달(posting)"되는 것인 반면, 아웃바운드 메시지는 PCI 버스 상에서 다른 프로세서 또는 에이전트에 의해 처리되는 서브시스템 프로세서에 의해 전달(posting)되는 것이다. I2O 사양에 따른 본 발명의 실시예에서, 원형 큐는 실제 I/O 메시지가 발견될 수 있을 경우에 포인터들을 차례로 포함하는 I/O 메모리에서 위치에 대한 포인터를 포함한다. 포인터들 사이의 예시적인 관계는 도1에서 도시될 수 있다.
특정 실시예에서, I/O 서브시스템은 도1에 도시된 바와 같이 논리적으로 분산된 I/O 서브시스템의 1차 인터페이스가 동일한 트랜잭션 동안에 마스터 및 슬레이브로서 작용하도록 허용한다. 1차 인터페이스는 1차 버스에 연결된 점선 원(dotted circles)으로서 도시되고, 이러한 실시예에서 전반적으로 개별 MU, P_ATU 및 브리지 유닛을 포함하는 I/O 서브시스템으로서 역할을 한다. 1차 인터페이스가 브리지와 같은 기능을 수행할 경우에, 1차 인터페이스는 개시자(initiator)를 대표하여 요구를 실행할 경우에 1차 버스 상에서 마스터가 되도록 구성된다. 요구가 MU로 향하는 I/O 메시지를 포함할 경우에, 1차 인터페이스는 요구를 수신하도록 슬레이브로서 구성될 것이다. 따라서, 1차 인터페이스는 동일한 트랜잭션에서 마스터 및 슬레이브 모두로서 역할을 하고, 여기서 트랜잭션은 I/O 메시지를 수행하는 요구를 포함한다.
전술된 I/O 서브시스템 실시예의 일부 시스템 애플리케이션은 (PCI 버스 상의 주변 장치 또는 "카드"가 서로 통신하도록 허용하는) 피어-투-피어 기술(peer-to-peer technology), 온-라인 저장 백업(on-line storage backup) 및 원격 저장 백업(remote storage backup) 시스템 , 파일 서버, 데이터베이스 서버, 웹(World Wide Web)(Web) 서버, 인트라넷(intranet) 서버 및 온-라인 트랜잭션 처리 시스템을 포함한다. 도1은 네트워크 서버 마더보드(network server motherboard)로서 본 발명의 실시예를 나타내는데 이용될 수 있다. 이러한 실시예에서, I/O 서브시스템은 전술된 바와 같이 동일하게 동작하고, 여기서 특히 I/O 서브시스템은 S_ATU(146)가 MU 어드레스 범위를 청구하지 않도록 허용하고, 대신에 브리지 유닛(126)이 MU 어드레스 범위를 액세스하는 2차 버스 상에서 요구를 청구하도록 허용하는 특수한 복호화 회로(special decode circuitry)를 포함한다. 이러한 경우에, 2차 PCI 버스(118) 상에서의 요구는 제2 PCI 에이전트(176)로서 도시되는 네트워크 인터페이스 제어기에 의해 생성될 것이고, 수신된 데이터의 블록을 호스트 메모리로 전송하도록 시도하는 I/O 메시지를 호출할 수 있다. I/O 메시지는 예를 들어, 에이전트 메모리(170)에 저장될 것이다.
다른 애플리케이션에서, 2차 버스 상의 제2 PCI 에이전트(176)는 디스크 제어기와 같은 대량 기억 제어기일 수 있다. 지능형 에이전트로서 구성될 경우에, 디스크 제어기는 I2O 프로토콜을 액세스하고, 브리지 유닛에 의해 청구되는 MU 어드레스 범위를 이용함으로써 호스트 프로세서에 의한 간섭이 필요없이 호스트 메모리와 디스크 제어기 사이에서 데이터가 전송되도록 한다.
본 발명의 장치 및 시스템을 다루는, 도1에서와 같은 컴퓨터 시스템에서 다양한 요소에 의해 수행되는 일련의 단계로서 본 발명의 실시예는 도3에서 데이터 흐름도로서 설명된다. 동작은 I/O 메시지가 컴퓨터 시스템에 의해 수행되도록 할 필요가 있는지를 판단하는 2차 버스 상의 에이전트와 시작한다.
이러한 판단 후에, 에이전트는 MU 어드레스 범위를 액세스하고, MU에서 제1 I/O 메시지를 전달(post)하도록 2차 버스 상에서 I2O 프로토콜에 따라 요구를 개시한다. 전술한 바와 같이, 에이전트는 I2O 프로토콜에서 존재하는 다수의 메시지로부터 I/O 메시지를 선택하기 위한 지능(intelligence)을 갖고 있다. 이들 메시지는 앞선 초기화 방식 동안에 컴퓨터 시스템, 즉 호스트 메모리 또는 에이전트 메모리에서 구성되었다.
브리지 유닛이 2차 버스 상에서 요구의 통지(notification)를 수신한 후에, 브리지 유닛은 요구가 MU 어드레스 윈도우 내에 존재하는지를 판단한다. 또한, 이러한 윈도우는 초기화 방식 동안에 호스트 프로세서에 의해 구성될 수 있다. 요구를 청구한 후에, 브리지 유닛은 2차 버스로 요구를 전송할 수 있다. 요구는 호스트 메모리(168) 또는 에이전트 메모리(170)에서 I/O 메시지의 어드레스를 식별하는데 필요한 정보를 포함할 수 있다. 정상적으로 2차 버스 상의 변환 윈도우 내의 모든 PCI 요구를 로컬 버스 상의 요구로 변환하는 S_ATU(146)는 MU 어드레스 범위 내에 존재하는 요구를 청구하지 않도록 구성된다. 따라서, 요구는 2차 버스에서 직접 로컬 버스(122)로 전송되지 않는다.
브리지 유닛이 1차 버스 상에서 요구를 실행한 후에, MU는 요구를 청구할 수 있고, I/O 메시지는 MU에서 전달된다. I/O 메시지는 MU 어드레스 범위에서 어드레스를 갖는 원형 큐에 I/O 메시지의 어드레스(I/O 메시지에 대한 포인터)를 기록함으로써 전달된다. MU 어드레스 범위가 P_ATU 변환 윈도우의 일부분일 경우에, 요구는 P_ATU에 의해 초기에 청구될 수 있고, MU로 핸드 오프될 수 있다.
메시지가 전달되었으면, MU는 서브시스템 프로세서로 전달(posting)을 통지한다. 이후, 서브시스템 프로세서는 MU로부터 포인터를 판독하고, I/O 메시지를 액세스하며, 이때 I/O 메시지가 에이전트 메모리에 저장된다. 선택적으로, (MU를 통한) I/O 서브시스템은 메시지를 에이전트 메모리(170)로부터 직접 메모리 액세스(direct memory access)(DMA) 유닛(138 또는 142)을 통해 I/O 메모리(160)로 전송할 수 있다. 어느 경우에서, 서브시스템 프로세서는 궁극적으로 I/O 메시지의 일부분인 명령어 및 데이터를 액세스함으로써 I/O 메시지를 수행한다. 또한, 메모리 제어기는 I/O 메모리로 그리고 I/O 메모리로부터 데이터를 전송하는 것과 같이 메시지에서의 일부 명령어를 실행시키도록 서브시스템 프로세서에 의해 호출될 수 있다.
요약해서 말하면, 전술된 본 발명의 실시예는 2차 PCI 버스(114) 상의 지능형 PCI 에이전트와 같은 에이전트가 I/O 서브시스템을 구비한 다중 버스 컴퓨터 시스템의 1차 버스 상에 존재하는 MU(130)를 액세스하도록 허용한다. 이러한 메커니즘은 산업 표준 I2O 프로토콜이 1차 또는 2차 버스 상의 장치와 I/O 서브시스템 사이에서 수행되도록 허용한다. 1차 또는 2차 버스로부터 MU에 대한 액세스는 초기 I/O 요구가 관계하는 한 유사하게 되며, 이식가능 MU 액세싱 소프트웨어(portable MU accessing software)가 기록되도록 허가한다. I/O 서브시스템은 S_ATU가 MU 어드레스 범위를 청구하지 않도록 허용하고, 대신에 브리지 유닛이 어드레스 범위를 청구하도록 허용하는 특수한 복호화 회로와 함께 구성된다. 따라서, 브리지 유닛이 1차 버스로 모든 요구를 전송하고, 여기서 MU는 요구를 청구할 수 있고, I/O 메시지가 전달되었음을 서브시스템 프로세서로 통지할 수 있다. 본 발명의 다른 실시예에서, P_ATU(134) 및 S_ATU(146)는 동일한 어드레스 변환 윈도우를 포괄하도록 프로그래밍된다. 이러한 방식으로, 1차 또는 2차 버스 상의 에이전트는 동일한 초기 요구를 이용하여 MU(130) 및 I/O 메모리(160)를 액세스할 수 있어, MU 액세싱 소프트웨어를 재구성하지 않고 에이전트가 하나의 버스에서 다른 버스로 이동되도록 허용한다.
물론, 전술된 본 발명의 실시예는 구조 및 구현에서 변화될 수 있다. 예를 들어, I/O 메시지가 호스트 메모리(168) 또는 에이전트 메모리(170)에 저장될 수 있고, 서브시스템 프로세서에 의해 수행되기 전에 I/O 메모리(160)로 전송될 수 있다. 또한, 실제 MU 어드레스 범위는 시스템 애플리케이션 조건에 따라 선택 및 프로그래밍될 수 있다. 예를 들어, 본 발명의 네트워크 서버 구현은 대다수의 I/O 메시지 및 대부분의 I2O 프로토콜을 이용할 수 있어 워크스테이션 보다 MU 어드레스 범위에서 더 많은 다수의 어드레스를 필요로 한다. 그러므로, 본 발명의 범위는 설명된 실시예에 의해 판단되는 것이 아니라 첨부된 청구항 및 이들의 법적 등가물에 의해 판단되어야 한다.

Claims (26)

1차 버스를 2차 버스에 연결시키고, 상기 2차 버스에서 메시징 유닛(messaging unit)(MU) 어드레스 범위를 청구(claim)하도록 구성된 브리지 유닛;
프로세서; 및
상기 1차 버스에 연결되어, 제1 메시지를 호출하기 위해 제1 요구의 수신에 응답하여 상기 프로세서를 인터럽트하도록 구성된 메시징 유닛(MU) - 상기 제1 요구는 상기 MU 어드레스 범위를 액세스하고 상기 2차 버스 상에서 개시되며, 상기 프로세서는 상기 제1 메시지를 액세스하고 상기 제1 메시지에 관한 제1 다수의 명령어를 실행시키도록 구성됨 -
을 포함하는 데이터 처리 장치.
제1항에 있어서,
상기 2차 버스를 3차 버스에 연결시키고, 상기 2차 버스 상의 요구 어드레스를 3차 어드레스로 변환하도록 구성된 2차 어드레스 변환 유닛(secondary address translation unit)(S_ATU) - 상기 S_ATU는 상기 2차 버스 상에서 상기 MU 어드레스 범위를 청구하지 않도록 구성됨 -
을 더 포함하는 데이터 처리 장치.
제1항에 있어서,
상기 MU는 또한 상기 MU 어드레스 범위를 액세스하는 제2 요구의 수신에 응답하여 상기 프로세서를 인터럽트하도록 구성되고, 상기 제2 요구는 상기 1차 버스 상에서 개시되는
데이터 처리 장치.
제1항에 있어서,
상기 MU는 상기 제1 메시지에 대한 포인터를 저장하기 위한 큐를 더 포함하고, 상기 프로세서는 상기 포인터를 판독하여 응답으로 상기 제1 메시지를 액세스하도록 구성된
데이터 처리 장치.
제2항에 있어서,
상기 브리지 유닛은 상기 데이터 처리 장치의 토글되는 적어도 하나의 인에이블 비트에 응답하여 상기 MU 어드레스 범위를 청구하도록 인에이블되는
데이터 처리 장치.
제5항에 있어서,
상기 S_ATU는 토글되는 상기 인에이블 비트에 응답하여 상기 2차 버스 상에서 상기 MU 어드레스 범위를 청구하지 않도록 구성된
데이터 처리 장치.
제1항에 있어서,
상기 1차 버스를 연결시키고, 상기 브리지 유닛으로서 요구를 전송할 경우에 마스터가 되도록 구성되며, 상기 메시징 유닛으로서 요구에 응답할 경우에 슬레이브가 되도록 구성된 1차 인터페이스
를 더 포함하는 데이터 처리 장치.
제1항에 있어서,
3차 버스에 연결된 메모리 제어기 - 여기서, 상기 프로세서는 상기 3차 버스에 연결되고, 상기 메모리 제어기를 통해 상기 제1 메시지를 액세스함 -
를 더 포함하는 데이터 처리 장치.
제8항에 있어서,
상기 제1 다수의 명령어는 상기 메모리 제어기에 연결된 메모리에 저장되는
데이터 처리 장치.
제2항에 있어서,
상기 1차 버스를 상기 3차 버스에 연결시키고, 상기 1차 버스 상의 요구의 어드레스를 3차 어드레스로 변환하도록 구성된 1차 어드레스 변환 유닛(primary address translation unit)(P_ATU) - 상기 P_ATU는 1차 어드레스 변환 윈도우 내에서 어드레스를 갖는 요구를 청구하도록 구성됨 -
을 더 포함하고,
상기 S_ATU는 2차 어드레스 변환 윈도우 내에서 어드레스를 갖는 요구를 청구하도록 구성되며,
상기 MU 어드레스 범위는 상기 1차 어드레스 변환 윈도우의 일부분인
데이터 처리 장치.
제10항에 있어서,
상기 제1 및 제2 어드레스 변환 윈도우는 동일한 어드레스 범위를 포괄하는
데이터 처리 장치.
1차 버스;
2차 버스;
상기 1차 및 2차 버스를 연결시키는 I/O 서브시스템 - 상기 I/O 서브시스템은 서브시스템 프로세서; 및 상기 1차 버스를 상기 2차 버스에 연결시키고, 상기 2차 버스로부터 메시징 유닛(MU) 어드레스 범위를 액세스하는 요구를 청구하도록 구성된 브리지 유닛을 포함하고, 상기 브리지 유닛은 상기 2차 버스로부터 상기 1차 버스로 요구를 전송하도록 구성됨 -; 및
상기 1차 버스에 연결된 메시징 유닛(messaging unit)(MU)
을 포함하고,
상기 MU는 제1 메시지를 호출하기 위해 제1 요구의 수신에 응답하여 상기 서브시스템 프로세서를 인터럽트하도록 구성되고, 상기 제1 요구는 상기 MU 어드레스 범위를 액세스하며 상기 2차 버스 상에서 개시되고, 상기 서브시스템 프로세서는 상기 제1 메시지를 액세스하고 상기 제1 메시지에 관한 제1 다수의 명령어를 실행시키도록 구성된
컴퓨터 시스템.
제12항에 있어서,
3차 버스; 및
상기 2차 버스를 상기 3차 버스에 연결시키고, 상기 2차 버스 상의 요구 어드레스를 3차 어드레스로 변환하도록 구성된 2차 어드레스 변환 유닛(secondary address translation unit)(S-ATU) - 상기 S_ATU는 2차 어드레스 변환 윈도우 내에서 요구를 청구하도록 구성되고, 상기 MU 어드레스 범위를 청구하지 않도록 구성됨 -
을 더 포함하는 컴퓨터 시스템.
제12항에 있어서,
상기 MU는 또한 상기 MU 어드레스 범위를 액세스하는 제2 요구의 수신에 응답하여 상기 프로세서를 인터럽트하도록 구성되고, 상기 제2 요구는 상기 1차 버스 상에서 개시되는
컴퓨터 시스템.
제12항에 있어서.
상기 MU는 상기 제1 메시지에 대한 포인터를 저장하기 위한 큐를 더 포함하고, 상기 프로세서는 상기 포인터를 판독하고 응답으로 상기 제1 메시지를 액세스하도록 구성된
컴퓨터 시스템.
제13항에 있어서,
상기 브리지 유닛은 상기 MU 어드레스 범위를 청구하도록 인에이블되고, 상기 S_ATU는 상기 데이터 처리 장치의 토글되는 적어도 하나의 비트에 모두 응답하여 상기 MU 어드레스 범위를 청구하지 않도록 구성된
컴퓨터 시스템.
제13항에 있어서,
상기 1차 버스를 연결시키고, 상기 브리지 유닛으로서 요구를 전송할 경우에 마스터가 되도록 구성되고, 상기 메시징 유닛으로서 요구에 응답할 경우에 슬레이브가 되도록 구성된 1차 인터페이스
를 더 포함하는 컴퓨터 시스템.
제13항에 있어서,
상기 I/O 서브시스템은 상기 3차 버스에 연결된 메모리 제어기를 더 포함하고, 상기 프로세서는 상기 메모리 제어기를 통해 상기 제1 메시지를 액세스하도록 구성된
컴퓨터 시스템.
제18항에 있어서,
상기 메모리 제어기에 연결된 I/O 메모리
를 더 포함하고,
상기 제1 다수의 명령어는 상기 I/O 메모리에 저장되는
컴퓨터 시스템.
제13항에 있어서,
상기 1차 버스를 상기 3차 버스에 연결시키고, 상기 1차 버스 상의 요구의 어드레스를 3차 어드레스로 변환하도록 구성된 1차 어드레스 변환 유닛(primary address translation unit)(P_ATU) - 상기 P_ATU는 1차 어드레스 변환 윈도우 내에서 어드레스를 갖는 요구를 청구하도록 구성됨 -
을 더 포함하고,
상기 S_ATU는 2차 어드레스 변환 윈도우 내에서 어드레스를 갖는 요구를 청구하도록 구성되며,
상기 MU 어드레스 범위는 상기 1차 어드레스 변환 윈도우의 일부분인
컴퓨터 시스템.
제20항에 있어서,
상기 제1 및 제2 어드레스 변환 윈도우는 동일한 어드레스 범위를 포괄하는
컴퓨터 시스템.
1차 PCI 버스 및 2차 PCI 버스를 포함하는 시스템 버스, 상기 2차 버스 상에 존재하는 에이전트, 3차 버스 및 I/O 서브시스템을 구비한 컴퓨터 시스템에서 - 상기 I/O 서브시스템은, 상기 1차 버스 및 상기 2차 버스 사이에서 요구를 전송하기 위한 브리지; I/O 요구 및 완료를 전달하기 위한 메시징 유닛(messaging unit)(MU); 상기 3차 버스에 연결된 서브시스템 프로세서; 및 상기 3차 버스에 연결된 I/O 메모리를 구비하고, 상기 I/O 서브시스템은 상기 1차 버스 상에서 MU 어드레스 범위를 청구하도록 구성됨 -,
상기 MU 어드레스 범위를 액세스하기 위해 상기 2차 버스 상에서 I/O 요구를 개시하는 단계;
상기 1차 버스로 상기 요구를 전송하지만, 상기 3차 버스로는 상기 요구를 전송하지 않는 단계;
상기 MU에서 상기 요구를 전달하는 단계;
상기 요구가 상기 MU에서 전달되었다는 것을 상기 프로세서로 통지하는 단계; 및
상기 요구에 관한 I/O 메시지를 수행하는 단계
를 포함하는 방법.
제22항에 있어서,
상기 I/O 요구를 전달하는 단계 이전에, 상기 I/O 서브시스템 내의 1차 어드레스 변환 유닛(primary address translation unit)(P_ATU)이 상기 1차 버스 상에서 상기 요구를 청구하는 단계
를 더 포함하는 방법.
제22항에 있어서,
상기 I/O 요구를 전달하는 단계는,
상기 I/O 메시지에 대한 상기 MU에서의 포인터를 수신하는 단계를 포함하는
방법.
제22항에 있어서,
상기 I/O 메시지를 수행하는 단계는,
상기 서브시스템 프로세서가 상기 I/O 메모리에 저장된 다수의 명령어를 실행시키는 단계를 포함하는
방법.
제22항에 있어서,
상기 요구를 전송하는 단계 이전에, 상기 1차 버스 상에서 호스트 프로세서에 의해 상기 브리지를 인에이블시키고, 상기 I/O 서브시스템의 레지스터에서 하나 또는 그 이상의 비트를 수정하며, 상기 브리지가 상기 2차 버스 상에서 상기 MU 어드레스 범위를 청구하도록 인에이블되는 단계
를 더 포함하는 방법.
KR1020007008851A 1998-02-13 1998-12-30 2차 버스로부터의 메시징 유닛 액세스 KR100347076B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/023,494 US7007126B2 (en) 1998-02-13 1998-02-13 Accessing a primary bus messaging unit from a secondary bus through a PCI bridge
US09/023,494 1998-02-13
PCT/US1998/027832 WO1999041671A1 (en) 1998-02-13 1998-12-30 Accessing a messaging unit from a secondary bus

Publications (2)

Publication Number Publication Date
KR20010040936A true KR20010040936A (ko) 2001-05-15
KR100347076B1 KR100347076B1 (ko) 2002-08-03

Family

ID=21815423

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007008851A KR100347076B1 (ko) 1998-02-13 1998-12-30 2차 버스로부터의 메시징 유닛 액세스

Country Status (6)

Country Link
US (1) US7007126B2 (ko)
JP (1) JP2002503847A (ko)
KR (1) KR100347076B1 (ko)
AU (1) AU1949799A (ko)
DE (1) DE19882975B4 (ko)
WO (1) WO1999041671A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6457068B1 (en) * 1999-08-30 2002-09-24 Intel Corporation Graphics address relocation table (GART) stored entirely in a local memory of an expansion bridge for address translation
DE10119472A1 (de) * 2001-04-20 2002-10-31 Harman Becker Automotive Sys Schnittstelle für die Datenübertragung zwischen zwei Bussystemen und Betriebsverfahren dafür
US6976115B2 (en) * 2002-03-28 2005-12-13 Intel Corporation Peer-to-peer bus segment bridging
US7003615B2 (en) * 2002-04-22 2006-02-21 Broadcom Corporation Tracking a non-posted writes in a system using a storage location to store a write response indicator when the non-posted write has reached a target device
US20030212735A1 (en) * 2002-05-13 2003-11-13 Nvidia Corporation Method and apparatus for providing an integrated network of processors
TWI261120B (en) * 2002-07-18 2006-09-01 Konica Corp Image pickup lens, image pickup unit and portable terminal
US6928476B2 (en) * 2002-08-23 2005-08-09 Mirra, Inc. Peer to peer remote data storage and collaboration
US7397797B2 (en) * 2002-12-13 2008-07-08 Nvidia Corporation Method and apparatus for performing network processing functions
US7913294B1 (en) 2003-06-24 2011-03-22 Nvidia Corporation Network protocol processing for filtering packets
US20060026171A1 (en) * 2004-07-30 2006-02-02 Mirra, Inc. Content distribution and synchronization
US7260663B2 (en) * 2005-04-07 2007-08-21 International Business Machines Corporation System and method for presenting interrupts
US8719547B2 (en) * 2009-09-18 2014-05-06 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
US9336029B2 (en) 2010-08-04 2016-05-10 International Business Machines Corporation Determination via an indexed structure of one or more partitionable endpoints affected by an I/O message
US8495271B2 (en) * 2010-08-04 2013-07-23 International Business Machines Corporation Injection of I/O messages
US20120036302A1 (en) 2010-08-04 2012-02-09 International Business Machines Corporation Determination of one or more partitionable endpoints affected by an i/o message
US8549202B2 (en) 2010-08-04 2013-10-01 International Business Machines Corporation Interrupt source controller with scalable state structures
US10671460B2 (en) * 2018-02-05 2020-06-02 Micron Technology, Inc. Memory access communications through message passing interface implemented in memory systems

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619728A (en) * 1994-10-20 1997-04-08 Dell Usa, L.P. Decoupled DMA transfer list storage technique for a peripheral resource controller
US5555383A (en) * 1994-11-07 1996-09-10 International Business Machines Corporation Peripheral component interconnect bus system having latency and shadow timers
US5925099A (en) * 1995-06-15 1999-07-20 Intel Corporation Method and apparatus for transporting messages between processors in a multiple processor system
US5838935A (en) * 1995-06-15 1998-11-17 Intel Corporation Method and apparatus providing programmable decode modes for secondary PCI bus interfaces
US5734847A (en) * 1995-06-15 1998-03-31 Intel Corporation Method and apparatus for enabling intelligent I/O subsystems using PCI I/O devices
US5848249A (en) * 1995-06-15 1998-12-08 Intel Corporation Method and apparatus for enabling intelligent I/O subsystems using PCI I/O devices
AU6334496A (en) * 1995-06-15 1997-01-15 Intel Corporation Architecture for an i/o processor that integrates a pci to pci bridge
US5734850A (en) * 1995-07-05 1998-03-31 National Semiconductor Corporation Transparent bridge between of a computer system and a method of interfacing the buses to operate as a single logical bus
US5857080A (en) * 1996-09-10 1999-01-05 Lsi Logic Corporation Apparatus and method for address translation in bus bridge devices
US5832245A (en) * 1996-10-21 1998-11-03 Advanced Micro Devices, Inc. Method for isochronous flow control across an inter-chip bus
US5774683A (en) * 1996-10-21 1998-06-30 Advanced Micro Devices, Inc. Interconnect bus configured to implement multiple transfer protocols
US6047349A (en) * 1997-06-11 2000-04-04 Micron Electronics, Inc. System for communicating through a computer system bus bridge
DE69738902D1 (de) * 1997-06-27 2008-09-25 Bull Sa Busschnittstellebrücke zwischen einem Systembus und Lokalbussen mit Lokaladressenübersetzung für mittels Adressenraum programmierbaren Systemraumzugriff
JP3264319B2 (ja) * 1997-06-30 2002-03-11 日本電気株式会社 バスブリッジ
US6275888B1 (en) * 1997-11-19 2001-08-14 Micron Technology, Inc. Method for configuring peer-to-peer bus bridges in a computer system using shadow configuration registers
US6374321B2 (en) * 1997-12-23 2002-04-16 Intel Corporation Mechanisms for converting address and data signals to interrupt message signals
US6745369B1 (en) * 2000-06-12 2004-06-01 Altera Corporation Bus architecture for system on a chip
US6735659B1 (en) * 2000-12-21 2004-05-11 Intel Corporation Method and apparatus for serial communication with a co-processor

Also Published As

Publication number Publication date
DE19882975T1 (de) 2001-09-27
US7007126B2 (en) 2006-02-28
WO1999041671A1 (en) 1999-08-19
AU1949799A (en) 1999-08-30
JP2002503847A (ja) 2002-02-05
KR100347076B1 (ko) 2002-08-03
US20040139267A1 (en) 2004-07-15
DE19882975B4 (de) 2005-08-18

Similar Documents

Publication Publication Date Title
KR100347076B1 (ko) 2차 버스로부터의 메시징 유닛 액세스
US6081851A (en) Method and apparatus for programming a remote DMA engine residing on a first bus from a destination residing on a second bus
US5682512A (en) Use of deferred bus access for address translation in a shared memory clustered computer system
US5935233A (en) Computer system with a switch interconnector for computer devices
US5594882A (en) PCI split transactions utilizing dual address cycle
EP0784277B1 (en) Interfacing direct memory access devices to a non-ISA bus
KR100207887B1 (ko) 데이타 프로세싱 시스템 및 방법
JP2505114B2 (ja) マルチプル・バス情報処理システムにおける直接メモリアクセス機構
US6167476A (en) Apparatus, method and system for accelerated graphics port bus bridges
CN100555257C (zh) 处理页面复制期间的dma操作的存储控制器和方法
EP1032880B1 (en) Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple agent processing system
JP3403284B2 (ja) 情報処理システム及びその制御方法
US20050114559A1 (en) Method for efficiently processing DMA transactions
KR100271203B1 (ko) 데이타처리시스템및버스상호접속방법
US7016994B2 (en) Retry mechanism for blocking interfaces
CN100589089C (zh) 处理直接存储器访问请求的设备和方法
US6222846B1 (en) Method and system for employing a non-masking interrupt as an input-output processor interrupt
US5933613A (en) Computer system and inter-bus control circuit
US5666556A (en) Method and apparatus for redirecting register access requests wherein the register set is separate from a central processing unit
US6154789A (en) Peripheral controller comprising first messaging unit for communication with first OS driver and second messaging unit for communication with second OS driver for mass-storage peripheral
JP3251903B2 (ja) プロセッサ・データをバースト転送する方法及びコンピュータ・システム
US6823421B2 (en) Method, apparatus, and system for maintaining conflict-free memory address space for input/output memory subsystems
US6101563A (en) Configuration access system
JP3531368B2 (ja) コンピュータシステム及びバス間制御回路
JPH0954748A (ja) コンピュータシステムおよびこのシステムに設けられるdmaコントローラ

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130701

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20140701

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee