KR20000022309A - 컴퓨터 시스템내의 동일 버스상에 두 개의 부 디코드 에이전트를 지원하는 방법 및 장치 - Google Patents

컴퓨터 시스템내의 동일 버스상에 두 개의 부 디코드 에이전트를 지원하는 방법 및 장치 Download PDF

Info

Publication number
KR20000022309A
KR20000022309A KR1019980710732A KR19980710732A KR20000022309A KR 20000022309 A KR20000022309 A KR 20000022309A KR 1019980710732 A KR1019980710732 A KR 1019980710732A KR 19980710732 A KR19980710732 A KR 19980710732A KR 20000022309 A KR20000022309 A KR 20000022309A
Authority
KR
South Korea
Prior art keywords
agent
bus
transaction
computer system
signal
Prior art date
Application number
KR1019980710732A
Other languages
English (en)
Other versions
KR100291409B1 (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 KR20000022309A publication Critical patent/KR20000022309A/ko
Application granted granted Critical
Publication of KR100291409B1 publication Critical patent/KR100291409B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)

Abstract

컴퓨터 시스템은 제 1 버스(301), 제 1 버스 브리지(302), 및 제 2 버스 브리지(304)를 가지고 있다. 제 1 브리지(302)는 제 1 버스(301)를 제 2 버스(303)에 접속하고, 제 2 브리지(304)는 제 1 버스(301)를 제 3 버스(305)에 접속한다. 정상적으로, 제 1 브리지(302)는 제 1 버스(301)상의 부 디코드 에이전트로서만 동작하고, 제 2 버스(303) 또는 제 3 버스(305)상의 에이전트를 타깃하는 제 1 버스(301)상에 개시된 모든 트랜잭션을 요구한다. 제 1 브리지(302)가 제 3 버스(305)상의 에이전트를 타깃하는 트랜잭션을 요구하면, 제 1 브리지(302)는 트랜잭션에 응답하는 책임을 제 2 브리지(304)에 전송한다.

Description

컴퓨터 시스템내의 동일 버스상에 두 개의 부 디코드 에이전트를 지원하는 방법 및 장치
일반적으로, 컴퓨터 시스템의 버스 트랜잭션은 "마스터"와 "타깃(target)"에 관련되어 있다. 마스터는 트랜잭션을 개시하는 버스 에이전트이고, 타깃은 응답하는 버스 에이전트이거나 트랜잭션에 의해 선택된다 버스 프로토콜은 에이전트가 특정 트랜잭션의 타깃인지의 결정을 요구하고, 그 결정은 중앙 집중되거나 분배될 수 있다. 타깃 결정이 분배되면, 타깃 자체는 트랜잭션을 요구할 책임이 있다.
주변 구성 요소 내부 접속(PCI) 버스의 프로토콜은 분배된 타깃 결정(1995년 7월에 발행된 개정 2.1 PCI 로컬 버스 명세서)을 포함한다. 버스 마스터는 AD 라인을 통해 FRAME# 신호를 표명하여 트랜잭션의 어드레스를 구동함으로써 트랜잭션을 개시한다. 정상적으로, 트랜잭션 각각은 하나의 타깃을 가지고 있어서, 버스상의 하나 그리고 하나만의 에이전트는 그 타깃으로서 트랜잭션에 응답할 책임이 있다. 그 에이전트는 DEVSEL# 신호를 표명함으로써 트랜잭션에 응답할 책임을 요구한다. 트랜잭션이 판독인지 기록인지에 따라서, 트랜잭션에 응답할 책임은 타깃이 트랜잭션을 완료할 준비에 있다는 것을 지시하는 TRDY# 신호를 표명할 책임과, 데이터를 제공하거나 받을 책임을 포함한다.
어떤 에이전트가 트랜잭션을 요구하여야 하는지를 결정하기 위해, 포텐셜 타깃 에이전트는 실제 타깃인지를 결정하기 위해 어드레스를 디코드한다. 이러한 디코드 동작을 수행하는 포텐셜 타깃 에이전트는 일반적으로 "정(positive)" 디코드 에이전트라고 한다. 두 개의 타깃이 동일 어드레스에 있지 않다고 가정하면, 단지 하나의 정 디코드 에이전트가 트랜잭션을 요구할 것이다. 어드레스 디코딩에 이용할 수 있는 시간을 제한함으로써, PCI 버스 프로토콜에 의해 포텐셜 타깃 에이전트는 제한된 시간후에 정 디코드 에이전트에 의해 요구되지 않은 트랜잭션을 요구함으로써, 디코드를 수행하지 않고 트랜잭션을 요구할 수 있다. 이러한 에이전트는 일반적으로 "부(subtractive)" 디코드 에이전트라고 한다. 타깃 콘플릭트를 방지하기 위해, 종래의 기술에 의해 버스상의 하나의 에이전트는 부 디코드를 실행할 수 있다.
버스상의 다중 부 디코드 에이전트의 사용을 방지하는 이러한 제한은 다중 PCI 버스를 가진 시스템에서 문제가 된다. 예를 들어, 도 1은 PCI 브리지(103)에 의해 접속된 PCI 버스(101)와 PCI 버스(102)를 가진 시스템을 도시하고 있다. 브리지(103)는 2 클록 주기 딜레이를 가진 버스간의 신호를 전송한다. 에이전트(104)는 버스(101)상에 존재하고, 디코팅하는데 2 클록 주기를 필요로 하는 정 디코드 에이전트이다. 에이전트(105,106,107)는 버스(102)상에 존재한다. 에이전트(105)는 디코딩하는데 3 클록 주기를 필요로 하는 버스(102)상의 가장 느린 정 디코드 에이전트이다. 그러므로, 에이전트(105)가 타깃될 때, 트랜잭션이 개시된 후, 제 3 클록의 트랜잭션을 요구할 것이다. 에이전트(106)는 트랜잭션의 개시후, 제 4 클록의 모든 요구되지 않은 트랜잭션을 요구하는 버스(102)의 부 디코드 에이전트이다.
도 1에 따른 도 2의 타이밍도를 참조하면, 시간(201)에 에이전트(107)는 에이전트(104)를 타깃하는 트랜잭션을 개시한다고 가정한다. 브리지(103)에 걸친 딜레이로 인해, 트랜잭션의 어드레스는 어드레스가 버스(102)상에서 구동된 후, 2 클록 주기에서 버스(101)상에서 구동된다. 그러므로, 에이전트(104)는 트랜잭션이 개시된 후, 시간(203), 2 클록 주기에서 디코드를 시작한다. 에이전트(104)는 트랜잭션이 개시된 후, 시간(205), 4 클록 주기에 디코트를 완료하고, 트랜잭션을 요구하기 위해 버스(101)상의 DEVSEL# 신호를 표명한다. DEVSEL# 신호는 브리지(103)를 통해 전송되고, 결과적으로 시간(207)에 버스(102)사의 DEVSEL#를 표명한다. 그러나, 에이전트(106)는 트랜잭션이 개시된 후, 시간(205), 4 클록 주기에 이미 실수로 요구하였을 것이다.
이러한 문제점의 한가지 해결방안은 정 디코드가 가능한 제한된 시간을 증가시키는 것이 될 것이다. 그러나, 그 해결방안은 부 디코드 에이전트에서 트랜잭션의 대기 시간을 증가시킴으로써 성능을 감소시킬 뿐만 아니라, 정 디코드에 대하여 3 클록 주기동안 가능한 버스 프로토콜을 위반할 수 있다. 또 다른 가능한 해결방안은 브리지(103)에 걸친 딜레이를 감소시키는 것과 버스(101)상의 모든 에이전트의 디코드 시간을 제한하는 것과 관련될 수 있다. 그러나, 그 해결 방안은 브리지(103)에서 그리고 버스(101)상의 특정 에이전트의 성능 향상을 필요로 하고, 느린 디코드 에이전트를 배제함으로써 버스(101)의 유연성을 감소시킨다. 또 다른 해결 방안은 버스(101)상의 모든 에이전트 대신에 버스(102)상의 정 디코드 에이전트로서 동작하는 브리지(103)를 필요로 할 수 있다. 그러나, 그 해결 방안은 브리지(103)에 의해 수용 가능한 것에서 디바이스 구조 모델과 이용가능한 어드레스 공간을 제한함으로써, 버스(101)의 유연성을 감소시킬 뿐만 아니라, 브리지(103)에서 복잡해질 수 있다.
본 발명은 컴퓨터 시스템내의 동일 버스상의 두 개의 부 디코드 에이전트를 지원함으로써 상기 종래의 문제점을 해결한다.
발명의 개요
본 발명은 컴퓨터 시스템내의 버스 트랜잭션의 타깃을 결정하는 방법과 장치를 제공한다. 일실시예에서, 컴퓨터 시스템은 버스와 그 버스에 연결된 두 개의 에이전트를 포함한다. 제 1 에이전트는 트랜잭션과 관련된 어드레스를 디코딩하지 않고 버스상의 트랜잭션의 타깃이 되는 것을 요구한다. 제 1 에이전트는 트랜잭션을 요구하지만, 제 2 에이전트는 타깃으로서 트랜잭션에 응답한다.
본 발명은 컴퓨터 시스템에 관한 것이고, 더 상세하게 버스 트랜잭션의 타깃을 결정하는 분야에 관한 것이다.
도 1은 두 개의 PCI 버스와 하나의 부 디코드 에이전트를 가진 종래의 시스템의 블록도,
도 2는 도 1의 종래의 시스템으로 문제점을 설명하는 타이밍도,
도 3은 본 발명의 컴퓨터 시스템의 제 1 실시예의 블록도,
도 4는 본 발명의 일실시예에 따른 버스 트랜잭션의 타깃을 결정할 때 NOGO 신호를 이용하는 것을 설명하는 흐름도,
도 5는 본 발명의 일실시예에 따른 버스 트랜잭션의 타깃을 결정할 때 MT 신호를 이용하는 것을 설명하는 흐름도,
도 6은 본 발명의 일실시예에 따른 부 디코드 에이전트중 하나의 작용을 설명하는 흐름도,
도 7은 NOGO 신호와 MT 신호가 하나의 신호 라인을 공유하고, 도 3의 컴퓨터 시스템의 블록도,
도 8은 NOGO와 MT 신호가 하나의 신호 라인을 공유하고, 본 발명의 구현을 설명하는 타이밍도,
도 9는 도킹 스테이션을 가진 휴대용 컴퓨터의 본 발명의 일실시예의 블록도.
컴퓨터 시스템내의 버스 트랜잭션의 타깃을 결정하는 방법 및 장치가 설명되어 있다. 다음 설명에서, 본 발명의 충분한 이해를 주기 위해, 특정 버스 프로토콜과 신호명과 같은 다수의 특정 세목이 설명되어 있다. 그러나, 당업자는 이러한 특정 세목 없이도 본 발명이 실행될 수 있다는 것을 알 수 있다. 다른 예로, 본 발명을 모호하지 않게 하기 위해 일부 세목이 생략되어 있다.
도 3은 본 발명의 컴퓨터 시스템의 일실시예의 블록도이다. 도 3의 컴퓨터 시스템은 3개의 버스(301,303,305)와 4개의 에이전트(302,304,307,308)를 가지고 있다. 그러나, 컴퓨터 시스템은 본 발명의 범위내에서 0보다 큰 임의수의 버스와 1보다 큰 임의수의 에이전트를 가질 수 있다. 하나의 에이전트는 버스에 연결된 디바이스, 예를 들어, 메모리 제어기, 입력/출력 제어기, 또는 버스 브리지이다. 버스(301)는 타깃이 트랜잭션을 요구하는 프로토콜을 따르는 임의 유형의 버스일 수 있다. 주변 구성 요소 내부 접속(PCI)버스는 이러한 버스(1995년 발행 개정 2.1 PCI 로컬 버스 명세)중 하나의 예이다.
에이전트(302)는 버스(301)상에 있는 부 디코드 에이전트이다. 이러한 실시예에서, 부 디코드 에이전트(302)는 다른 버스로의 브리지이다. 버스 브리지를 부 디코드 에이전트로서 구현하는 한 가지 잇점은 트랜잭션이 하나의 버스상에서 개시될 때, 브리지가 다른 버스상에 존재하는 모든 에이전트대신에 정 디코드를 수행하지 않아도 된다는 것이다. 이러한 정 디코드는 버스가 크고 분해되고 가능한한 동적인 어드레스 공간을 가질 수 있는 주어진 가능성에서, 이러한 정 디코드는 거의 속도가 느리고 비용이 많이 들것이다. 에이전트(302)는 버스(303)로의 브리지로서 도시되어 있다. 그러나, 에이전트(302)는 본 발명의 범위내에서 다른 유형의 부 디코드 에이전트일 수 있다.
에이전트(304)는 버스(301)상에 존재하는 제 2 에이전트이다. 본 발명의 한가지 잇점을 설명하기 위해, 에이전트(304)는 버스(305)로의 브리지로서 도 3에 도시되어 있다. 상기 이유로, 부 디코드 에이전트로서 에이전트(304)를 구현하는 것이 유리하다. 그러나, 브리지(304)를 참(true) 부 디코드 에이전트로서 구현하기 위해, 트랜잭션이 버스(301)상의 정 디코드 에이전트에 의해 요구되지 않았을 때에 에이전트(302,304)간의 타깃 경합이 일어날 수 있다.
정의상 에이전트(304)와 브리지(302)는 모두 부 디코드 에이전트로서 동작할 수 없다. 그러나, 본 발명에 의해 에이전트(304)와 에이전트(302)는 모두 신호(306)를 사용하여 부 디코드 에이전트로서 동작할 수 있다. 에이전트(302,304)간의 NOGO 신호로서 언급되어 있는 신호(306)는 트랜잭션에 응답할 책임이 에이전트(302)에서 에이전트(304)로 넘어간 것을 지시한다.
도 4는 NOGO 신호(306)의 이용을 설명하고 있다. 버스(301,303)가 PCI 버스라고 가정하자. 단계(401)에서, 마스터 에이전트(307)는 버스(301), 버스(303), 또는 버스(305)상의 에이전트에 타깃될 수 있는 버스(301)상의 트랜잭션을 개시한다. 트랜잭션이 버스(301)상의 에이전트에 타깃되면, 그 에이전트는 단계(405)에서 정 디코드를 수행하고 트랜잭션을 요구한다. 그러나, 트랜잭션이 버스(301)상의 정 디코드에 의해 요구되지 않으면, 에이전트(302)는 단계(407)에서 부 디코드에 의해 트랜잭션을 요구하고, 그 트랜잭션을 버스(303)로 전송한다. 그 다음, 트랜잭션이 버스(303)상의 에이전트에 타깃되면, 그 에이전트는 단계(411)에서 정 디코드를 수행하고 버스(303)상의 트랜잭션을 요구하고, 에이전트(302)는 버스(301)상의 트랜잭션에 응답할 책임을 유지한다. 이 경우에, 에이전트(304)가 부 디코드에 의해 트랜잭션을 요구하지 않는 것이 적당하다. 그러나, 버스(303)상의 에이전트가 트랜잭션을 요구하지 않으면, 소거 공정에 의해, 트랜잭션의 타깃은 버스(305)상에 존재하여야 한다. 에이전트(302)가 아닌 에이전트(304)의 경우에, 버스(301)상의 트랜잭션에 응답할 책임이 있을 수 있다. 그러므로, 단계(413)에서, 에이전트(302)는 NOGO 신호(306)를 이용하여 응답할 책임을 에이전트(304)에 전송한다. 에이전트(304)는 필요하다면 어드레스 및 버스 명령 신호의 래칭을 포함하여, 응답을 준비하여 단계(401)에서 단계(413)로 트랜잭션을 트랙한다. 그 다음, 단계(413)에서, 에이전트(304)는 NOGO 신호(306)를 샘플링하여 에이전트(304)가 트랜잭션에 응답하는지를 결정한다.
본 발명의 일실시예에서, 버스(301)는 PCI 버스이고, 응답할 책임의 전송은, 에이전트(302)가 아닌 에이전트(304)는, 타깃은 트랜잭션이 판독되거나 기록되는지에 따라서 데이터를 제공하고 받아드리고 트랜잭션을 완성할 준비가 되어 있음을 지시하는 TRDY# 신호를 표명한다는 것을 의미한다. 본 발명의 다른 실시예에서, 또한 버스(301)는 PCI 버스이고, 응답할 책임의 전송은 또한 그 책임을 에이전트(302)에서 에이전트(304)로 전송하여 DEVSEL# 신호를 표명하는 것을 포함한다. 그중 하나의 실시예에서, 응답할 책임의 전송은 마스터 에이전트(307)에서 분명하고, 마스터 에이전트(307)는 타깃의 상태를 결정하는 DEVSEL#와 TRDY# 신호를 샘플링하지만, 마스터 에이전트(307)는 DEVSEL#와 TRDY# 신호가 동일 에이전트에 의해 또는 상이한 에이전트에 의해 표명되었는지 무관하게 알 수 없다. 본 발명의 실시예에서, 버스(301)는 PCI 버스가 아니고, 응답할 책임과 그 책임의 전송은 버스 프로토콜에 따라 정의될 수 있다.
본 발명의 컴퓨터 시스템의 다른 실시예에서, 도 4의 단계(401)에서, 버스(301)상의 트랜잭션은 에이전트(307)대신 에이전트(304)에 의해 개시된다. 이 실시예에서, 에이전트(304)가 마스터로서 개시하고 버스(301)상의 트랜잭션과 동일한 타깃로서 응답하는 것이 가능하다. 그러므로, 에이전트(304)는 에이전트(304)가 타깃이 존재하는지를 결정할 필요없이, 트랜잭션의 마스터가 될 수 있다. 에이전트(304)는 버스(301)상의 트랜잭션을 개시하고, 타깃이 버스(305)상에 있으면, 응답할 책임은 에이전트(302)에 의해 에이전트(304)로 전송될 것이다.
따라서, 본 발명은 에이전트중 하나가 정 디코드를 실행할 필요없이 하나의 버스상에 연결되는 두 개의 에이전트에 대하여 제공한다. 본 발명은 또한 상이한 시간에도 불구하고, 버스(301)상의 부 디코드 에이전트로서 동작하는 두 개의 에이전트에 대하여 제공한다. 본 발명의 이러한 측면은 여기서는 MT(마스터형)로서 불리고 에이전트(302,304)간의 신호(309)의 사용에 관련되어 있다.
도 5는 MT 신호(309)의 사용을 설명하고 있다. 도 5의 단계(501)에서, 마스터 에이전트(308)는 버스(301), 버스(303), 또는 버스(305)상의 에이전트에 타깃될 수 있는 버스(303)상의 트랜잭션을 개시한다. 트랜잭션이 버스(303)상의 에이전트에 타깃되면, 그 에이전트는 단계(505)에서 정 디코드를 수행하고 트랜잭션을 요구한다. 그러나, 트랜잭션이 버스(303)상의 정 디코드에 의해 요구되지 않으면, 에이전트(302)는 단계(507)에서 부 디코드에 의한 트랜잭션을 요구하고, 트랜잭션을 버스(301)로 전송한다. 이 경우에, 에이전트(302)는 버스(303)상의 부 디코드 에이전트를 유지한다. 그러나, 버스(303)상의 부 디코드 에이전트로서 동작하는 것은 버스(301)상의 부 디코드 에이전트로서 동작하는 에이전트(302)를 필요로 하지 않는다. 더욱이, 에이전트(302)가 버스(303)에 역으로 트랜잭션을 전송할 필요가 없기 때문에, 에이전트(302)가 버스(301)상의 부 디코드 에이전트로서 동작할 필요가 없다. 그러므로, 에이전트(304)는 버스(301)상의 부 디코드 에이전트로서 동작할 수 있다. 에이전트(302)는 에이전트(304)에서 버스(303)로 발신된 트랜잭션과 에이전트(302)대신 에이전트(304)가 디코딩하지 않고 트랜잭션을 요구하기 전에 제한된 시간동안 대기함으로써 버스(301)상의 부 디코드 에이전트로서 동작할 수 있음을 나타내는 MT 신호(309)를 이용한다. 그 다음, 트랜잭션이 버스(301)상의 에이전트로 타깃되면, 그 에이전트는 단계(511)에서 정 디코드를 수행하고, 버스(301)상의 트랜잭션을 요구한다. 그러나, 버스(301)상의 에이전트가 단계(511)에서 버스(301)상의 트랜잭션을 요구하지 않으면, 소거 공정에 의해, 트랜잭션의 타깃은 버스(305)상에 존재하여야 한다. 그러므로, 단계(513)에서, 에이전트(304)는 디코딩하지 않고 트랜잭션을 요구한다.
에이전트(304)의 동작이 도 6의 흐름도에 의해 설명되어 있다. 이 설명에서, MT 신호(309)가 디지털 신호라고 가정하면, 그 에이전트(302)는 마스터가 버스(303)상에 있을 때 "1"로 조정하고, 마스터가 버스(301)상에 있을 때 "0"으로 조정한다. 또한, NOGO 신호(306)가 디지털 신호라고 가정하면, 그 에이전트(302)는 에이전트(302가 트랜잭션에 응답할 책임을 유지하고 있을 때, "1"로 조정하고, 에이전트(302)가 트랜잭션에 응답할 책임을 에이전트(304)로 전송할 때, "0"으로 조정한다. 도 6은 NOGO신호(306)가 MT신호(309)값에 의존하여 무시될 수 있다는 것을 도시한다. MT신호(309)가 1이면, 에이전트(304)는 부 디코드 에이전트로서 항상 작용한다(블록 602). 그러나, MT신호(309)가 0이면, 에이전트(304)는 부 디코드에 의해 트랜잭션을 요구하는 것이 금지되고, 이에따라 에이전트(304)의 동작은 NOGO신호(306)에 의존한다. NOGO신호(306)가 1이면, 에이전트(304)는 트랜잭션에 응답하지 않는다(블록 604). NOGO신호(306)가 0이면, 에이전트(304)는 트랜잭션에 응답한다(블록 605). 필요하다면, 다른 신호 형태 또는 인코딩이 사용될 수 있다.
본 발명의 범위내에 있는 NOGO신호(306)와 MT신호(309)에 대한 개별 신호 라인을 사용하는 것이 가능하지만, 에이전트(302, 304)사이에서 경로지정 및 핀개수가 감소되도록 상기 두 개 신호에 대해 하나의 신호 라인을 사용하는 것이 바람직하다. 도 7은 NOGO신호(306)와 MT신호(309)가 신호 라인(701)을 공유하는 도 3에 있는 컴퓨터 시스템의 블록도이다. 도 8은 NOGO신호(306)와 MT신호(309)가 신호 라인(701)을 통해 시간 다중화된 본 발명의 구현을 도시하는 타이밍도이다.
도 8을 이해하기 위해서는, 본 발명의 사상내에서 많은 방법으로 에이전트(302)가 구현될 수 있다는 것을 이해하는 것이 중요하다. 예를 들어, 최소한의 지연으로 한 버스로부터 다른 버스로 모든 신호가 통과하도록 에이전트(302)는 구현될 수 있다. 대체하여, 한 버스에서 어떤 트랜잭션을 선택하고 다른 버스에 있는 트랜잭션만을 재생성하기위해 에이전트(302)는 구현될 수 있다. 따라서, 한 버스로부터 다른 버스로 트랜잭션을 전송하는 것과 관련된 단계, 신호 및 타이밍은 에이전트(302)의 구현에 따라 변할 것이다. NOGO신호(306)와 MT신호(309) 사용을 도입하기 위해, 부 디코드에 의해 에이전트(302)가 트랜잭션을 요구했을 때와 동시에 트랜잭션을 전송하였다고 가정되었다. 그러나, 부 디코드에 의해 에이전트(302)가 트랜잭션을 요구하기 전후에, 또는 부 디코드에 의해 트랜잭션을 요구하지 않더라도, 에이전트(302)는 트랜잭션과 관련된 신호를 통과시키거나 또는 트랜잭션을 전송할 수 있다. 도 8에서, 에이전트(302)는 부 디코드에 의해 트랜잭션을 요구하기 전에 FRAME# 신호 및 어드레스와 같은 어떤 신호를 통과시킨다고 가정한다. 또한, 브리지의 일면으로부터 다른 면까지 2 클록 주기의 지연이 있다고 가정한다.
도 7과 관련된 도 8에서, 버스(301)에 있는 FRAME# 신호 표명에 의해 시간(801)에서 트랜잭션이 시작된다. 또한 시간(801)에서, 버스(301)에 있는 어드레스는 새로운 트랜잭션의 타깃 어드레스에 따라 응답하기 위해 변한다. FRAME# 신호 및 새로운 어드레스는 에이전트(302)를 통해 통과되며, 에이전트(302)에서 FRAME# 신호를 표명하는 결과를 가져오며, 시간(803)에서 버스(302)에 있는 새로운 어드레스를 조종한다.
시간(802)에서, 트랜잭션후 하나의 클록 주기가 시작되고, 에이전트(302)는 적절한 값을 조종한다. 따라서, 시간(802)에서 시작되는 클록 주기는 MT 윈도우라고 불린다. MT 윈도우의 끝에서, MT 신호값을 측정하기 위해 에이전트(304)는 신호 라인(701)의 상태를 샘플링한다.
NOGO신호(306)를 전송하기 위해 신호 라인(701)은 이후에 다시 사용된다. NOGO신호(306)전송은 타깃이 버스(301) 또는 버스(303)에서 상주하는지가 결정된 이후에만 발생할 수 있다. 버스(301 또는 303)에 있는 가장 느린 정 디코드 에이전트는 디코딩을 위해 3개의 클록 주기를 요구한다고 가정한다. 결과적으로, 정 디코딩은 버스(301)의 시간 주기(821) 및 버스(303)의 시간 주기(822)동안 발생한다. 트랜잭션을 요구하는 정 디코드 에이전트에 대한 마지막 기회는 시간(806)에서 시작하는 클록 주기동안이다. 따라서, 시간(807)에서, 에이전트(302)는 타깃이 버스(301) 또는 버스(303)에 있는지 여부를 결정한다. 이후, 신호 라인(701)에 있는 적절한 NOGO신호(306)값을 에이전트(302)가 조종하기 전에 2개 클록 주기의 지연이 있다. 따라서, 시간(809)에서 시작되는 클록 주기는 NOGO 윈도우라 불린다. NOGO 윈도우의 끝에서, NOGO신호값을 측정하기 위해 에이전트(304)는 신호 라인(701)의 상태를 샘플링한다.
상기 설명한 바와 같이, MT신호 및 NOGO신호는 신호 라인(701)에 대해 시간 다중화된다. 트랜잭션이 시작된 후 MT 윈도우는 하나의 클록 주기로 시작된다. 2개의 클록 주기로 PCI에서 PCI 브리지로의 지연으로, 트랜잭션이 시작된 후 NOGO 윈도우는 8개의 클록 주기로 시작된다. 일반적으로, 트랜잭션이 시작된 후 NOGO 윈도우는 N 클록 주기로 시작되고, N은 4개의 클록 주기 더하기 PCI로부터 PCI 브리지 지연의 두배이다. 물론, 상이한 버스 프로토콜을 고려한 설계에 맞추기 위해 윈도우의 내구성 및 배치는 변경될 수 있다.
따라서, 본 발명은 동일한 버스에 있는 2개의 부 디코드 에이전트의 지지를 제공한다. 본 발명의 한 응용으로서 도 9에 도시된 바와 같이, 휴대용 컴퓨터의 도킹 스페이션에 있는 PCI 버스가 있다. 휴대용 컴퓨터(901)는 다수의 에이전트(904)가 있는 주요 PCI 버스(903)를 갖고, 에이전트(904)의 어드레스 범위는 ISA 리거시 장치의 어드레스 공간을 포함한다. 휴대용 컴퓨터(901)는 다수의 에이전트(906)가 있고 추가 자원을 제공하는 제 2 PCI 버스(905)를 갖는 도킹 스테이션(902)에 연결될 수 있다. 2개의 PCI 버스(903 및 905)는 PCI로부터 PCI 브리지(907)로 연결된다. 다수의 ISA 리거시 장치(909)를 지원하기 위해 도킹 스테이션(902)의 버스(908)에서 업계 표준 아키텍쳐(ISA)를 갖는 것이 바람직하다. 결과적으로, 제 2 PCI 버스(905)에, 주요 PCI 버스(903)에 대한 브리지(907), 및 ISA 버스(908)에 대한 브리지(910)인 2개의 버스 브리지가 있을 것이다. 이 2개 브리지사이의 어드레스 공간은 중복되고, 분할되며, 동적일 수 있다. 따라서, 본 발명을 사용한 부 디코드 브리지로서 두 개의 브리지를 구현하는 것이 유리하다.

Claims (25)

  1. 제 1 버스;
    제 1 버스에 연결되고, 트랜잭션과 관련된 어드레스를 디코딩하지 않고 제 1 버스상의 트랜잭션의 타깃임을 주장하는 제 1 에이전트; 및
    제 1 버스에 연결되고, 타깃으로서 트랜잭션에 응답하는 제 2 에이전트를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  2. 제 1 항에 있어서, 제 1 에이전트는 제 2 에이전트에게 트랜잭션의 타깃임을 주장하라고 신호하는 것을 특징으로 하는 컴퓨터 시스템.
  3. 제 1 항에 있어서, 제 1 에이전트는 제 2 에이전트에게 트랜잭션에 응답하라고 신호하는 것을 특징으로 하는 컴퓨터 시스템.
  4. 제 1 항에 있어서,
    제 2 에이전트가 트랜잭션의 타깃임을 주장하는 것을 방지하는 제 1 에이전트로부터의 제 1 신호; 및
    제 2 에이전트가 트랜잭션에 응답하라고 신호하는 제 1 에이전트로부터의 제 2 신호를 더 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  5. 제 4 항에 있어서, 제 1 신호와 제 2 신호는 시간 다중화되는 것을 특징으로 하는 컴퓨터 시스템.
  6. 제 1 항에 있어서, 제 2 에이전트는 트랜잭션을 개시하는 것을 특징으로 하는 컴퓨터 시스템.
  7. 제 1 항에 있어서, 트랜잭션을 개시하는 제 3 에이전트를 더 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  8. 제 1 항에 있어서, 제 1 에이전트는 제 2 버스로의 브리지를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  9. 제 8 항에 있어서, 제 2 에이전트는 제 3 버스로의 브리지를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  10. 제 1 항에 있어서, 제 1 버스는 PCI 버스를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  11. 제 10 항에 있어서, 제 1 에이전트는 제 2 PCI 버스로의 브리지를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  12. 제 10 항에 있어서, 제 2 에이전트는 ISA 버스로의 브리지를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  13. 제 11 항에 있어서, 제 1 PCI 버스는 도킹 스테이션내에 있고, 제 2 PCI 버스는 휴대용 컴퓨터 내에 있는 것을 특징으로 하는 컴퓨터 시스템.
  14. 제 13 항에 있어서, 제 2 에이전트는 도킹 스테이션내의 ISA 버스로의 브리지를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  15. 제 1 버스;
    트랜잭션과 관련된 어드레스를 디코딩한 후 제 1 버스상의 트랜잭션의 타깃임을 주장하는 제 1 유형의 에이전트의 적어도 하나의 에이전트;
    제한된 시간후 주장되지 않은 제 1 버스상의 모든 트랜잭션의 타깃임을 주장하는 제 2 유형의 에이전트의 제 1 에이전트; 및
    제 1 에이전트가 응답할 책임을 제 2 에이전트로 전송하면, 제 1 에이전트에 의해 주장되는 트랜잭션에 타깃으로서 응답하는 제 2 에이전트를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  16. 제 15 항에 있어서, 제 1 에이전트는 제 2 버스로의 브리지를 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  17. 제 16 항에 있어서, 제 2 버스에 연결된 제 1 유형의 적어도 하나의 에이전트를 더 포함하고,
    제 1 에이전트는 제 1 버스상의 트랜잭션을 제 2 버스로 전송하고,
    제 1 에이전트는 제 2 버스상의 트랜잭션을 요구하는 에이전트가 없을 때, 응답할 책임을 제 2 에이전트로 전송하는 것을 특징으로 하는 컴퓨터 시스템.
  18. 제 16 항에 있어서, 제 1 버스상의 트랜잭션이 제 2 버스로 전송되는지를 나타내는 신호를 더 포함하는 것을 특징으로 하는 컴퓨터 시스템.
  19. 제 18 항에 있어서, 제 2 에이전트는 트랜잭션이 전송될 때, 제 2 유형의 에이전트로서 동작하는 것을 특징으로 하는 컴퓨터 시스템.
  20. 제 18 항에 있어서, 트랜잭션이 전송되는지를 나타내는 신호가 응답할 책임이 전송되는지를 나타내는 신호로 시간 다중화되는 것을 특징으로 하는 컴퓨터 시스템.
  21. 컴퓨터 시스템의 제 1 버스상에서 개시되는 트랜잭션의 타깃을 결정하는 방법에 있어서,
    제 1 버스상의 제 1 에이전트가 트랜잭션의 타깃임을 주장하는 단계; 및
    제 1 에이전트가 응답할 책임을 제 1 버스상의 제 2 에이전트로 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  22. 제 21 항에 있어서, 제 1 에이전트가 트랜잭션을 요구하기에 앞서 트랜잭션과 관련된 어드레스를 디코딩함으로써, 트랜잭션을 요구하는 제 1 버스상의 에이전트를 제한된 시간동안 제 1 에이전트가 대기하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  23. 제 21 항에 있어서, 제 1 에이전트가 응답할 책임을 제 2 에이전트로 전송하기에 앞서:
    제 1 에이전트가 트랜잭션을 제 2 버스로 전송하는 단계; 및
    제 1 에이전트가 트랜잭션과 관련된 어드레스를 디코딩함으로써 트랜잭션을 요구하는 에이전트를 제한된 시간동안 제 1 에이전트가 대기하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  24. 제 21 항에 있어서, 제 1 에이전트가 트랜잭션을 요구하기 전에 제 2 에이전트가 트랜잭션을 요구하는 것을 방지하기 위해 제 2 에이전트에 신호하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  25. 제 24 항에 있어서, 응답할 책임을 전송하는 신호는 제 2 에이전트가 트랜잭션을 요구하는 것을 방지하는 신호로 시간 다중화되는 것을 특징으로 하는 방법.
KR1019980710732A 1996-06-28 1997-06-18 컴퓨터 시스템내의 동일 버스상에 두 개의 부 디코드 에이전트를 지원하는 방법 및 장치 KR100291409B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US08/673,450 US5748918A (en) 1996-06-28 1996-06-28 Method and apparatus for supporting two subtractive decode agents on the same bus in a computer system
US08/673,450 1996-06-28
US8/673,450 1996-06-28
PCT/US1997/010655 WO1998000785A1 (en) 1996-06-28 1997-06-18 Method and apparatur for supporting two subtractive decode agents on the same bus in a computer system

Publications (2)

Publication Number Publication Date
KR20000022309A true KR20000022309A (ko) 2000-04-25
KR100291409B1 KR100291409B1 (ko) 2001-09-17

Family

ID=24702713

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980710732A KR100291409B1 (ko) 1996-06-28 1997-06-18 컴퓨터 시스템내의 동일 버스상에 두 개의 부 디코드 에이전트를 지원하는 방법 및 장치

Country Status (7)

Country Link
US (2) US5748918A (ko)
KR (1) KR100291409B1 (ko)
AU (1) AU3404397A (ko)
DE (2) DE19781845C2 (ko)
GB (1) GB2329806B (ko)
TW (1) TW384432B (ko)
WO (1) WO1998000785A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100392383B1 (ko) * 2000-12-27 2003-07-23 한국전자통신연구원 분할 버스를 가진 반도체 칩

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6076128A (en) * 1998-01-28 2000-06-13 International Business Machines Corp. Data transfer method between buses, bridge devices for interconnecting buses, and data processing system including multiple buses
US6260093B1 (en) * 1998-03-31 2001-07-10 Lsi Logic Corporation Method and apparatus for arbitrating access to multiple buses in a data processing system
KR100285956B1 (ko) 1998-06-30 2001-04-16 윤종용 고속직렬버스에연결된동기식및비동기식장치의제어시스템과제어방법
JP3026796B1 (ja) * 1998-10-16 2000-03-27 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータと周辺デバイスの接続装置および接続方法
US6230227B1 (en) * 1998-12-11 2001-05-08 Compaq Computer Corp. Computer system with support for a subtractive agent on the secondary side of a PCI-to-PCI bridge
US6581141B1 (en) * 1999-05-18 2003-06-17 International Business Machines Corporation Toggle for split transaction mode of PCI-X bridge buffer
US6950893B2 (en) * 2001-03-22 2005-09-27 I-Bus Corporation Hybrid switching architecture
US6877060B2 (en) * 2001-08-20 2005-04-05 Intel Corporation Dynamic delayed transaction buffer configuration based on bus frequency
US6868468B2 (en) * 2002-02-14 2005-03-15 Standard Microsystems Corporation Switchable hot-docking interface for a portable computer for hot-docking the portable computer to a docking station
US20040059862A1 (en) * 2002-09-24 2004-03-25 I-Bus Corporation Method and apparatus for providing redundant bus control
US7219176B2 (en) * 2002-09-30 2007-05-15 Marvell International Ltd. System and apparatus for early fixed latency subtractive decoding
US9053227B2 (en) * 2012-03-09 2015-06-09 Microsoft Technology Licensing, Llc Concurrent assertion
TW201344445A (zh) * 2012-04-27 2013-11-01 Sunix Co Ltd 可分配低階輸入輸出埠其介面位址的pci介面裝置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5467295A (en) * 1992-04-30 1995-11-14 Intel Corporation Bus arbitration with master unit controlling bus and locking a slave unit that can relinquish bus for other masters while maintaining lock on slave unit
US5379384A (en) * 1992-06-05 1995-01-03 Intel Corporation Configuration data loopback in a bus bridge circuit
US5568621A (en) * 1993-11-10 1996-10-22 Compaq Computer Corporation Cached subtractive decode addressing on a computer bus
US5621900A (en) * 1995-05-17 1997-04-15 Intel Corporation Method and apparatus for claiming bus access from a first bus to a second bus prior to the subtractive decode agent claiming the transaction without decoding the transaction
US5715411A (en) * 1996-01-16 1998-02-03 Texas Instruments Incorporated Apparatus and method of converting subtractive decode device cycles to positive peripheral component interface decode device cycles

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100392383B1 (ko) * 2000-12-27 2003-07-23 한국전자통신연구원 분할 버스를 가진 반도체 칩

Also Published As

Publication number Publication date
DE19781845C2 (de) 2003-02-27
DE19781845T1 (de) 1999-05-12
GB9828351D0 (en) 1999-02-17
WO1998000785A1 (en) 1998-01-08
GB2329806A (en) 1999-03-31
KR100291409B1 (ko) 2001-09-17
GB2329806B (en) 2000-10-25
US5892931A (en) 1999-04-06
AU3404397A (en) 1998-01-21
TW384432B (en) 2000-03-11
US5748918A (en) 1998-05-05

Similar Documents

Publication Publication Date Title
US5568619A (en) Method and apparatus for configuring a bus-to-bus bridge
KR100295968B1 (ko) 주변소자상호연결버스상의버스트전송시스템및방법
US5448703A (en) Method and apparatus for providing back-to-back data transfers in an information handling system having a multiplexed bus
US5579530A (en) Method and apparatus for dynamically allocating access time to a resource shared between a peripheral bus and a host bus by dynamically controlling the size of burst data transfers on the peripheral bus
US5649128A (en) Multiple bus interface adapter for connection to a plurality of computer bus architectures
US5862387A (en) Method and apparatus for handling bus master and direct memory access (DMA) requests at an I/O controller
KR100245818B1 (ko) 트랜잭션 및 수신지 id를 가진 공유 버스 시스템
KR100742718B1 (ko) 컴퓨터 시스템의 제1 및 제2버스사이에 연결된 투명브리지, 이를 포함하는 시스템 및 컴퓨터 시스템의 제1 및 제2 버스의 브리징 방법
US6289406B1 (en) Optimizing the performance of asynchronous bus bridges with dynamic transactions
US5919254A (en) Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple processing system
KR100291409B1 (ko) 컴퓨터 시스템내의 동일 버스상에 두 개의 부 디코드 에이전트를 지원하는 방법 및 장치
US5507002A (en) Peripheral component interconnect special cycle protocol using soft message IDS
EP0627688B1 (en) Provision of accurate and complete communication between different bus architectures
US5857080A (en) Apparatus and method for address translation in bus bridge devices
US5897667A (en) Method and apparatus for transferring data received from a first bus in a non-burst manner to a second bus in a burst manner
KR20010024260A (ko) 핀-총수가 적은 버스 상에서의 직접 메모리 억세스 트랜잭션
US5838995A (en) System and method for high frequency operation of I/O bus
US6567881B1 (en) Method and apparatus for bridging a digital signal processor to a PCI bus
US7096290B2 (en) On-chip high speed data interface
US6266723B1 (en) Method and system for optimizing of peripheral component interconnect PCI bus transfers
US5933613A (en) Computer system and inter-bus control circuit
US5809260A (en) Burst mode data transmission retry of previously aborted block transfer of data
US6067590A (en) Data bus agent including a storage medium between a data bus and the bus agent device
US7340553B2 (en) Data processing device and method for transferring data
US6209054B1 (en) Reliable interrupt reception over buffered bus

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

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee