KR100237983B1 - 주 및 부 디바이스에 대한 데이터 버스의 승인들을 균등화하기위한 방법 및 장치 - Google Patents

주 및 부 디바이스에 대한 데이터 버스의 승인들을 균등화하기위한 방법 및 장치 Download PDF

Info

Publication number
KR100237983B1
KR100237983B1 KR1019970041382A KR19970041382A KR100237983B1 KR 100237983 B1 KR100237983 B1 KR 100237983B1 KR 1019970041382 A KR1019970041382 A KR 1019970041382A KR 19970041382 A KR19970041382 A KR 19970041382A KR 100237983 B1 KR100237983 B1 KR 100237983B1
Authority
KR
South Korea
Prior art keywords
bus
devices
arbitration
state machine
control
Prior art date
Application number
KR1019970041382A
Other languages
English (en)
Other versions
KR19980063425A (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 KR19980063425A publication Critical patent/KR19980063425A/ko
Application granted granted Critical
Publication of KR100237983B1 publication Critical patent/KR100237983B1/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/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
    • 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/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • 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/4031Coupling between buses using bus bridges with arbitration

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)
  • Information Transfer Systems (AREA)

Abstract

다수의 주 디바이스 및 다수의 부 디바이스에 대한 주 버스의 승인들을 균등화하기 위한 장치가 개시되어 있다. 이 장치는 주 버스에 접속된 다수의 주 디바이스들 사이에서 주 버스의 승인들을 중재하기 위한 주 버스 브리지와 부 버스에 접속된 다수의 부 디바이스들 사이에서 주 버스의 승인들을 중재하기 위한 부 버스 브리지를 구비한다. 이 장치는 주 및 부 디바이스에 대한 주 버스의 승인들을 균등화하기 위한 로직 디바이스를 또한 구비한다.

Description

주 및 부 디바이스에 대한 데이터 버스의 승인들을 균등화하기 위한 방법 및 장치
본 발명은 주 데이터 버스(the primary data bus)에 접속된 디바이스들 및 부 데이터 버스(a secondary data bus)에 접속된 디바이스들에 대한 주 데이터 버스의 승인(grant)에 관한 것으로서, 특히 주 및 부 데이터 버스에 접속된 디바이스들에 대한 데이터 버스의 승인들을 균등화하는 것(equalization)에 관한 것이다.
주변 장치를 비롯한 각종 컴퓨터 구성 요소들간의 통신은 버스를 통해 이루어진다. 어떤 주어진 버스 사이클에서는, 단 하나의 디바이스 (마스터 디바이스) 만이 버스를 통해 통신할 수 있다. 따라서, 데이터의 트랜잭션(transaction)을 원하는 디바이스들은 먼저 버스의 승인을 요청하여 승인을 받은 다음에 트랜잭션을 처리한다.
종래의 시스템에서, 마스터 디바이스는 데이터 트랜잭션이 종료될 때까지 버스를 해제하지 않는다. 그러나, 어떤 경우에는, 마스터 디바이스가 버스의 제어를 포기할 것을 강요당한다. 이러한 상황은 다른 디바이스가 버스 지배권(mastership)을 요청하는 경우에 생길 수 있다. 버스 중재기(arbiter)가 그 요청 디바이스에 버스 승인을 이양하기로 결정하면, 버스 중재기는 마스터 디바이스로부터의 승인을 회수하여 지배권을 요청 다바이스에 승인할 것이다. 이같은 상황에서, 마스터 디바이스가 버스를 해제하게 되기 까지는 1 사이클만이 남아 있게 된다.
버스의 효과적인 사용을 가능하도록 개발된 하나의 시스템으로서는 주변 소자 상호 접속(peripheral component interconnect: PCI)시스템이 있다. PCI 시스템에서, 각 디바이스에는 대기시간(latency) 타이머와 사전설정된 대기시간 값이 제공된다. PCI 시스템에 대해서는 본 출원에 참조인용되는 “PCI Local Bus Specification, Revision 2.1, PCI Special Interest Group, 1995”에서 상세히 설명되고 있다. 그러나, 대표적인 PCI 시스템을 도 1에 도시한다.
이 대표적인 PCI 시스템의 구성은 다음과 같다. 프로세서(100)는 로컬 버스(105)에 의해 시스템 메모리(110) 및 호스트 브리지(host bridge, 115)에 접속된다. 호스트 브리지(115)에는 주 PCI 버스(120)에 의해 디바이스(125, 130, 135, 140) 및 PCI-PCI 브리지(145)가 접속된다. PCI-PCI 브리지(145)에는 부 PCI 버스(150)에 의해 디바이스(155, 160, 165, 170)가 접속된다. 이 시스템의 디바이스들 (즉, 디바이스(125, 130, 135, 140, 155, 160, 165, 170))은 다음과 같은 것들, 즉 그래픽 어댑터, 통신 어댑터, 네트워크 어댑터, 콤팩트 디스크, 플로피 디스크, 하드 디스크 드라이브 등 중의 어떤 것일 수 있다.
호스트 브리지(115)는 디바이스(125,130,135,140) 및 PCI-PCI 브리지(145)들 사이에서 버스(120)의 지배권을 라운드 로빈(round robin) 방식으로 중재한다. 마찬가지로, PCI-PCI 브리지(145)는 디바이스들(155, 160, 165, 170) 사이에서 버스(150)의 지배권을 라운드 로빈(round robin) 방식으로 중재한다. 예를 들어, 주 버스(120)의 지배권이 반시계방향의 순서로 승인되고 디바이스(140)가 현재의 마스터 디바이스라고 가정하면, PCI-PCI 브리지(145) 및 디바이스(125)가 주 버스(120)의 지배권을 동시에 요청하는 경우, 먼저 디바이스(125)에 버스(120)가 승인되고 그 다음에 PCI-PCI 브리지(145)에 승인된다. PCI-PCI 브리지(145)는 디바이스들(155, 160, 165, 170) 중의 하나가 주 버스(120)상의 디바이스 또는 프로세서(100) 또는 시스템 메모리(110) 중의 하나와 데이터를 트랜잭션하기를 원할 때마다 주 버스(120)의 지배권을 요청한다.
전술한 바와 같이, PCI-PCI 브리지(145)를 포함하는 각각의 PCI 디바이스는 데이터 전송의 완료 여부에 관계없이 그 버스의 지배권을 포기해야만 하는 시기를 지시하는 대기시간 타이머를 갖는다. 물론, 데이터 전송이 대기시간의 경과 전에 완료되는 경우에는 그 시점에서 그 디바이스가 버스의 지배권을 포기할 것이다. 어떤 경우라도, 마스터 디바이스가 버스의 지배권을 포기하는 때, 중재 방식에서 다음의 요청 디바이스에 버스가 승인됨으로써 그 다음의 요청 디바이스가 새로운 마스터 디바이스로 된다. (최악의 경우로서) 시스템의 모든 디바이스가 주 버스(120)의 지배권을 계속적으로 요청하면, 버스(120) 상의 디바이스들은 매 n개의 중재 사이클마다 버스 지배권을 획득할 것이다 (여기서, n은 버스(120)에 접속된, PCI-PCI 브리지(145)를 포함시킨 디바이스의 수를 나타낸다.). 그러나, 부 버스(150)상의 디바이스들은 호스트 브리지(115)가 PCI-PCI 브리지(145)에 버스를 승인할 때에만 버스(120)의 지배권을 갖는다. 즉, PCI-PCI 브리지(145)는 버스의 지배권을 획득할 때마다 디바이스들(155, 160, 165, 170) 중의 하나 (이 하나의 디바이스는 매번 달리 선택됨)가 버스(120)를 점유할 수 있게 한다. 그 결과, 부 버스(150) 상의 디바이스들은 매 (n×m)개의 중재 사이클마다 주 버스(120)의 점유권을 가질 것이다 (여기서, m은 부 버스(150)상의 디바이스들의 수이다).
통신 어댑터와 같은 어떤 디바이스들은 일정한 대기시간 요구 조건(latency requirements)을 갖는다. 즉, 그 디바이스는 버스가 승인될 때까지 일정한 양의 데이터를 일시적으로 보유하는 버퍼를 가진다. 대기시간 요구 조건이 초과되면 (즉, 디바이스에 버스가 실제적으로 승인되기 전에 버퍼가 채워지면), 오버런(overrun) 에러가 발생될 수도 있다 (즉, 새로운 데이터가 버퍼내의 기존 데이터 위에 복사될 수도 있다.). 이 에러는 부 버스(150)에 접속된 디바이스들에서 발생가능성이 더욱 큰데 이는 그들 디바이스에 매 (n×m)개의 중재 사이클마다 주 버스(120)가 승인되기 때문이다. 이러한 에러를 복구하기 위해, 그들 디바이스는 버퍼가 수신하는 데이터를 전송한 디바이스가 그 데이터를 다시 전송해 줄 것을 요청해야만 한다. 또한, 그 디바이스들이 데이터 트랜잭션을 처리하는 동안에 주 버스(120)를 포기할 것을 강요당하면, 그들 디바이스는 전송 사이클을 재차 시작해야만 할 수도 있다. 따라서, 이로 인해 시스템의 성능이 악영향을 받게 된다.
더욱이, 전술한 바와 같이, 주 버스(120)상의 디바이스들은 부 버스(150)상의 디바이스들보다 자주 버스를 점유한다. 따라서, 부 버스(150)상의 디바이스들의 처리량은 주 버스(120)상의 디바이스들의 처리량(throughputs)보다 상당히 적게 된다 (여기서, 처리량이란 소정 시간 내에 전달되는 데이터량을 말한다.).
따라서, 주 버스(120)상의 디바이스들과 부 버스(150)상의 디바이스들 간에 주 디바이스(120)의 점유권을 균등화하는 장치 및 방법이 본 기술 분야에서 요구되고 있다. 본 발명의 목적은 이와 같은 필요성을 다루어 해결하고자 하는 것이다.
도 1은 PCI 시스템의 블럭도.
도 2는 본 발명을 실시한 컴퓨터 시스템의 블럭도.
도 3은 본 발명을 실시한 컴퓨터 시스템의 상세 블럭도.
도 4는 본 발명에 사용되는 제어 상태 머신의 상태도.
도 5는 본 발명에 사용되는 중재 상태 머신의 상태도.
도 6은 본 발명이 PCI 브리지 및 ISA 브리지에 대해 서비스를 행하는 컴퓨터 시스템의 상세 블럭도.
도 7은 PCI 브리지 및 ISA 브리지에 대해 서비스를 행할 때 제어 상태 머신의 상태들에 대한 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
100 : 프로세서
110 : 메모리
115 : 호스트 브리지
120 : 주 버스
125, 130, 135, 140, 155,160, 165, 170 : 디바이스
145 : PCI-PCI 브리지
150 : 부 버스
175 : 로직
180 : ISA 브리지
310 : 중재 상태 머신
320 : 제어 상태 머신
본 발명에 따르면, 다수의 주 디바이스 및 다수의 부 디바이스에 대한 주 버스의 승인들을 균등화하기 위한 장치 및 방법이 제공된다. 이 장치는 주 버스에 접속된 다수의 주 디바이스들 사이에서 주 버스의 승인들을 중재하기 위한 주 버스 브리지와 부 버스에 접속된 다수의 부 디바이스들 사이에서 주 버스의 승인들을 중재하기 위한 부 버스 브리지를 구비한다. 이 장치는 주 및 부 디바이스에 대한 주 버스의 승인들을 균등화하기 위한 로직 디바이스를 또한 구비한다.
이하, 첨부 도면을 참조하여 본 발명을 상세히 설명하고자 한다.
도 2는 본 발명이 실시된 컴퓨터 시스템의 블록도로서, 이러한 시스템은 IBM사가 판매하고 있는 RS/6000 시스템과 같은 워크스테이션의 형태를 취할 수도 있으나, 본 발명은 이에 국한되지 않으며 어떠한 시스템에도 등가적으로 적용될 수 있다.
그럼에도 불구하고, 도 2는 도 1의 구성 요소와 더불어 로직(175)을 구비한다. 로직(175)은 부 버스(150)상의 디바이스들의 각각, PCI-PCI 브리지(145) 및 호스트 브리지(115)에 접속된다. 로직(175)은 일단 PCI-PCI 브리지(145)에 주 버스(120)의 지배권이 승인되면 PCI-PCI 브리지(145)가 부 버스(150)상의 모든 요청 디바이스들이 서비스를 받을 때까지 버스의 제어를 확실히 유지할 수 있게 한다. 따라서, 주 버스(120)상의 디바이스들의 경우 n개의 중재 사이클마다 액세스가 가능하고 부 버스(150)상의 디바이스들의 경우 (n×m)개의 중재 사이클마다 액세스가 가능한 것이 아니라 버스(120, 150)상의 디바이스들은 모두 매 (n×m-1)개의 중재 사이클마다 버스(120)에 대한 액세스가 보장된다.
도 3은 본 발명이 실시된 컴퓨터 시스템의 블록도로서, 여기서는 로직(175)이 서로 접속된 중재 상태 머신(310) 및 제어 상태 머신(320)을 구비하는 것으로 도시된다. 중재 상태 머신(310)은 또한 부 브리지(150)에 접속된 디바이스들의 각각에 대응하는 게이티드 요청 라인(gated request lines : (REQ) lines)에 의해 PCI-PCI 브리지(145)에도 접속된다. 제어 상태 머신(320)은 디바이스(155, 160, 165, 170)의 요청(REQ) 라인들에 접속된다. 제어 상태 머신(320)은 또한 메모리 긍정응답(memory acknowledge : MEMACK) 라인 및 메모리 요청(MEMREQ) 라인에 의해 호스트 브리지(115)에도 접속된다. MEMREQ 라인에는 프로세서(100)에 의한 주 버스(120)의 액세스가 차단되도록 하는 요청이 발생된다. 호스트 브리지는 일단 프로세서(100)에 의한 버스(120)의 액세스가 차단되면 MEMACK를 발생시키게 된다.
디바이스(125, 130, 135, 140) 및 로직(175)은 제각기 요청 라인 및 승인(GNT) 라인에 의해 호스트 브리지(115)에 접속된다. 상세히 후술하는 바와 같이, 제어 상태 머신(320)은 버스(210)의 승인을 확보하는데 사용되며 중재 상태 머신(310)은 부 버스(150)상의 요청 디바이스들의 버스 요청을 제어하는데 사용된다.
도 4는 제어 상태 머신(320)의 제어에 대한 상태도이다. 단계(400)에서는 제어 상태 머신(320)이 유휴(idle) 상태 또는 상태 0으로 되는데, 이는 도 3의 호스트 브리지(115)에 MEMREQ 및 (REQ 5로서 도시된) REQ 신호가 발생되지 않음(de-asserted)을 의미한다. 단계(405)에서는 디바이스들(155, 160, 165, 170) 중의 어떤 것에 의한 주 버스(120)의 요청이 있는 지를 판단하여, 없다고 판단되는 경우에는 제어 상태 머신(320)은 유휴 상태로 유지되고 프로세스는 단계(400)으로 복귀되며, 있다고 판단되는 경우에는 제어 상태 머신(320)은 MEMREQ 신호를 발생하는 것에 의해 상태 1로 된다(단계(410)). 단계(415)에서는 호스트 브리지(115)가 MEMREQ 신호에 응답해서 제어 상태 머신(320)에 MEMREQ 신호를 전송하는 지를 판단하여, 전송하지 않는다면 제어 상태 머신(320)은 상태 2로 되지 않고 프로세스가 단계(410)으로 복귀된다. 한편, 전송한 경우에는 제어 상태 머신(320)은 REQ5 신호를 발생하는 것에 의해 상태 2로 된다 (단계(420)). 단계(425)에서는 호스트 브리지(115)가 GNT5를 발생시킴으로써 버스(120)를 제어 상태 머신(320)에 승인하였는 지를 판단하여, 승인하지 않았다면 그 제어 상태 머신은 상태 2로 유지되고, 승인하였다면 제어 상태 머신(320)은 상태 3으로 천이된다. 상태 3에서, 제어 상태 머신(320)은 그가 주 버스(120)의 점유권을 갖고 있음을 중재 상태 머신(310)에게 통보한다. 통보를 받으면, 중재 상태 머신(310)은 게이티드-REQX(GREQX)를 보낸다 (여기서, X는 버스(120)의 사용이 승인될 요청 디바이스에 대응한다.). 버스가 승인되면 그 요청 디바이스는 그의 데이터 트랜잭션을 완료한다. 단계(435)에서는 중재 상태 머신(310)이 그의 전체 중재 서클(circle)을 완료하였는 지를 판단하여, 완료하지 않았다면 제어 상태 머신(320)은 상태 3에 머무르게 되는데 이는 중재 상태 머신(310)이 유휴 상태로 복귀될 때까지 계속될 것이다. 일단 중재 상태 머신(310)이 유휴 상태로 복귀되면, 제어 상태 머신(320)은 유휴 상태 또는 상태 0으로 복귀되고 MEMREQ 및 REQ5 신호를 발생시키지 않는다.
도 5는 중재 상태 머신(310)의 상태 블럭도이다. 상태 0에서, 중재 상태 머신(310)은 유휴 상태로 된다. 상태 (1, 2, 3, 4)는 제각기 디바이스(155, 160, 165, 170)에 대한 버스 승인에 대응한다. 상태 5는 시스템의 부가적인 브리지를 서비스하기 위해 사용될 수도 있다. 이 브리지는 또 다른 PCI 브리지, 산업 표준 아키택쳐(ISA) 브리지, 확대된 산업 표준 아키택쳐(EISA) 브리지 또는 마이크로 채널 브리지 (마이크로 채널은 IBM사의 상표임) 일 수도 있다.
도시하는 바와 같이, 중재 상태 머신(310)은 반시계방향 순서로 작동된다. 그러나, 중재 상태 머신(310)은 모든 디바이스가 버스의 사용을 요청한 경우에는 모든 상태를 통해 진행된다. 주시할 것은 각각의 상태가 디바이스에 대한 서비스에 대응한다는 것이다. 예를 들어, 디바이스들(170, 160, 165)이 그 순서대로 버스(120)의 사용을 요청한다고 가정한다. 제어 상태 머신(320)에 버스가 승인되었음이 통보되면, 중재 상태 머신(310)은 단계(500)의 상태 0으로부터 단계(520)의 상태 2로 진행한다. 상태 2에서, 중재 상태 머신(310)은 디바이스 2에 대한 게이티드 요청인 GREQ2 신호를 PCI-PCI 브리지(145)에 전송할 것이고, 이때 PCI-PCI 브리지(145)는 디바이스 2 (즉, 디바이스(160))에 버스를 승인할 것이다. 상태 2에 있는 동안 디바이스(155)가 버스(120)의 사용을 원한다고 표명할 지라도 다음의 주 버스 중재 사이클까지는 그 디바이스의 버스(120)의 사용이 승인될 수 없는데, 이는 중재 상태 머신(310)이 상태 0을 통해서만 상태 1로부터 상태 2로 진행할 수 있기 때문이다. 데이터 트랜잭션 사이클이 종료된 후, 중재 상태 머신(310)은 단계(530)의 상태 3으로 진행하여 디바이스(165)에 대한 서비스를 행하고 그 다음 상태 4로 진행하여 디바이스(170)에 대한 서비스를 행할 것이다. 상태 4 다음에 중재 상태 머신(310)은 단계(500)의 상태 0으로 진행할 것이다. 중재 상태 머신(310)은 제어 상태 머신(320) 자체가 유휴 상태로 복귀될 때까지 상태 0으로 유지될 것이다. 따라서, 중재 상태 머신(310)이 부 버스(150)상의 디바이스에 대해 각 주 중재 버스 사이클마다 2회 이상 서비스하는 것이 방지된다.
동작에 있어서, 부 버스(150)상의 디바이스가 주 버스(120)의 사용을 원하면, 그 디바이스는 로직(175)내의 제어 상태 머신(320)에 요청을 전송한다. 그 결과, 제어 상태 머신(320)은 MEMREQ를 호스트 브리지(115)에 전송한다. 호스트 브리지(115)는 프로세서(100)에 의한 주 버스(120)의 액세스를 차단한 때, 제어 상태 머신(320)에 MEMACK를 전송한다. 이때, 로직(175)은 그의 요청 신호(REQ5)를 호스트 브리지(115)로 보내는 것에 의해 주 버스(120)에 대한 액세스를 요청한다. 호스트 브리지(115)는 로직(175)이 주 버스(120)를 액세스할 차례라고 판단하면, 로직(175)에 승인 신호를 발생시키는 것에 의해 버스를 승인한다. 제어 상태 머신(310)은 일단 승인 신호를 검출하면 이제 그가 주 버스(120)의 점유권을 갖고 있음을 중재 상태 머신(310)에게 통보한다. 중재 상태 머신(310)은 이때 적정한 중재 요청 레벨을 PCI-PCI 버스(145)에 전송한다. PCI-PCI 버스(145)는 그때 버스(120)를 적정한 장치에 승인한다.
전술한 바와 같이, 로직(175)이 버스(120)의 점유권을 갖는 한, 버스(150)에 접속된 모든 요청 디바이스들은 그 버스의 액세스에 대한 기회를 갖게 될 것이다. 각 요청 디바이스에 버스의 사용을 승인한 후, 로직(175)은 그 버스의 점유권을 포기한다.
부가적인 브리지가 주 버스(120)에 접속되는 경우가 있을 수 있다. 예를 들어 도 6에서, 디바이스(180)는 ISA 브리지로서 ISA 디바이스가 접속되는 (도시되지 않음) ISA 버스를 가진다. ISA 브리지가 주 버스(120)의 점유권을 갖기를 원하면, 로직(175)에 ISA 브리지 요청(185)을 전송하는 것에 의해 주 버스의 점유권을 갖기를 원함을 나타낸다. 로직(175)이 버스의 점유권을 획득하여 부 PCI(150)에 접속된 모든 요청 디바이스에 버스의 사용을 승인했을 때, 그 로직은 ISA 브리지에 버스의 지배권을 넘겨준다.
도 7은 PCI-PCI 브리지(145) 및 ISA 브리지(180) 모두에 대한 서비스 시의 제어 상태 머신(320)의 제어 상태에 대한 흐름도이다. 단계(700)에서는 제어 상태 머신(320)이 유휴 상태 또는 상태 0으로 된다. 단계(705)에서는 디바이스들155, 160, 165, 170) 중의 어떤 것 또는 ISA 브리지(180)에 의한 주 버스(120)의 요청이 있는 지를 판단하여, 없다고 판단되는 경우에는 제어 상태 머신(320)은 유휴 상태로 유지되고 프로세스는 단계(700)으로 복귀되며, 있다고 판단되는 경우에는 제어 상태 머신(320)은 MEMREQ 신호를 발생하는 것에 의해 상태 1로 된다(단계(710)). 단계(715)에서는 호스트 브리지(115)가 제어 상태 머신(320)에 MEMREQ 신호를 전송했는 지를 판단하여, 전송하지 않았다면 제어 상태 머신(320)은 상태 2로 되지 않고 프로세스는 단계(710)으로 복귀되고, 전송했다면 제어 상태 머신(320)은 REQ5를 발생하는 것에 의해 상태 2로 된다(단계(720)). 단계(725)에서는 호스트 브리지(115)가 GNT5의 발생에 의해 버스(120)를 제어 상태 머신(320)에 승인하였는 지를 판단하여, 승인하지 않았다면 그 제어 상태 머신은 상태 2로 유지된다. 반면에 단계(725)에서 그렇다고 판단되면, 그 다음 단계(730)에서 부 버스(150)상의 디바이스들 중의 어떤 것이 주 버스(120)를 요청했는 지를 판단한다. 단계(730)에서, 그렇다고 판단되면 제어 상태 머신은 상태 5로 천이되고(단계(735)), 그렇지 않다고 판단되면 제어 상태 머신(320)은 ISA 브리지(180)에 의해 그의 유휴 상태로부터 벗어나야만 한다.
상태 5에서, 제어 상태 머신(320)은 그가 주 버스(120)의 점유권을 갖고 있음을 중재 상태 머신(310)에게 통보한다. 단계(740)에서는 중재 상태 머신(310)이 그의 전체 중재 서클을 완료하였는 지를 판단하여, 완료하지 않았다면 제어 상태 머신(320)은 상태 5에 머무르게 되고, 완료하였다면 단계(745)에서 ISA 브리지(180)가 액티브 요청 라인을 갖는 지의 여부를 판단한다. 단계(745)에서 아니라고 판단되면 제어 상태 머신(320)은 그의 유휴 상태로 복귀하고, 그렇다고 판단되면 제어 상태 머신(320)은 버스(120)를 ISA 브리지(180)에 승인하는 것에 의해 상태 6으로 진행한다(단계(750)). 단계(755)에서는 ISA 요청이 제거되었는 지의 여부를 판단하여, 그렇지 않다면 제어 상태 머신(320)은 상태 6으로 유지되고, 그렇다고 하면 제어 상태 머신(320)은 그의 유휴 상태로 복귀한다.
단계(730)에서 부 버스(150)상의 디바이스들 중의 그 어떤 것도 주 버스(120)의 승인을 요청하지 않았다고 판단되면, ISA 브리지(180)가 주 버스(120)를 요청하였는 지를 판단한다(단계(760)). 단계(760)에서, 요청하지 않았다고 판단되면 제어 상태 머신(320)은 유휴 상태로 복귀하고, 요청하였다면 제어 상태 머신(320)은 상태 3으로 천이된다(단계(770)). 상태 3에서, 제어 상태 머신(320)은 버스(120)를 ISA 브리지(180)에 승인한다. 제어 상태 머신(320)은 ISA 요청이 발생되지 않을 때까지 상태 3으로 유지된다(단계(780). ISA 요청이 발생되지 않으면, 부 PCI 버스(150)에 접속된 디바이스들 중의 어떤 것이 주 PCI 버스(120)를 요청하였는 지의 여부를 판단한다(단계(790)). 단계(790)에서, 그렇지 않다고 판단되면 제어 상태 머신은 그의 유휴 상태로 복귀하고, 그렇다고 판단되면 제어 상태 머신(320)은 상태 4로 진행한다(단계(800)). 상태 4는 전술한 상태 5와 동등하다. 제어 상태 머신은 중재 상태 머신(310)이 그의 유휴 상태에 도달할 때까지 상태 4로 유지된다. 일단 중재 상태 머신(310)이 그의 유휴 상태에 도달하면, 제어 상태 머신(320)은 그의 유휴 상태로 복귀된다(단계(810)).
요약컨대, 부 버스(150)상의 디바이스들에 대한 서비스 동안에 ISA 브리지(180)가 주 버스(120)를 요청하면, 로직(175)은 ISA 브리지(180)에 대한 서비스 후에 버스(120)의 점유권을 포기할 것이다. 마찬가지로, ISA 브리지(180)에 대한 서비스 동안에 부 버스(150)에 접속된 디바이스들 중의 하나 또는 모두가 주 버스(120)의 승인을 요청하면, 로직(175)은 그 디바이스들에 대한 서비스 후에 버스(120)의 점유권을 포기할 것이다. 이들 상황에서, 시스템은 로직(175)에 의한 버스(120)의 단 1회의 전용(appropriating)과 연관된 오버헤드 (즉, MEMACK의 발생, MEMREQ를 기다리는 것, REQ5 및 GNT5의 점검 등)를 유발시킨다. 따라서, 시스템의 성능이 크게 향상된다.
이제까지 본 발명을 특정 실시예에 대해서 설명하였으나, 다른 변형 실시예들은 당업자에 있어 자명할 것이다. 예를 들어, 디바이스들에 대한 중재 상태 머신(310)의 서비스를 반시계방향의 순서로 행할 필요는 없을 것이다. 레지스터에 저장되는 코딩된 데이터를 사용하여 현재의 주 버스 중재 사이클 동안 서비스를 제공받는 각 디바이스를 추적할 수도 있다. 예로서, 코딩된 데이터의 제1 비트는 제1 디바이스에 대응하고, 제2 비트는 제2 장치에 대응하고, 제 3 비트를 비롯한 나머지 비트들은 제 3 장치를 비롯한 나머지 장치들에 대응할 수도 있다. 그들 디바이스 중의 어떤 것에 대한 서비스 전에 상기 코딩된 데이터의 모든 비트들은 0으로 초기화될 수도 있다. 어떤 디바이스에 대한 서비스 시에 그 디바이스에 대한 비트는 1로 세트될 수도 있다. 따라서, 로직(175)이 버스(120)를 제어하는 한 디바이스들은 현재의 주 중재 사이클 동안 버스(120)에 대한 그들의 요청을 어떠한 순서로도 전송할 수 있고 이렇게 함으로써도 여전히 버스(120)의 사용권을 부여받을 수 있다. 현재의 주 버스 중재 사이클 동안 모든 요청 디바이스에 대한 서비스가 일단 행해지면, 중재 상태 머신(310)은 그의 유휴 상태로 복귀된다.
따라서, 상기 설명이 특허청구범위에 의해 규정되는 본 발명의 범위를 제한하는 것으로 되어서는 안된다.
본 발명에 따르면, 다수의 주 디바이스 및 다수의 부 디바이스에 대한 주 버스의 승인들이 균등화된다.

Claims (12)

  1. 다수의 주 디바이스 및 다수의 부 디바이스에 대한 버스의 승인들을 균등화하기 위한 장치에 있어서,
    상기 주 디바이스들이 접속되며, 상기 주 디바이스들 사이에서 상기 버스의 제1의 승인들(first grants)을 중재하기 위한 제1 중재 수단과,
    상기 부 디바이스들이 접속되며, 상기 부 디바이스들 사이에서 상기 버스의 제2의 승인들을 중재하기 위한 제2 중재 수단과,
    상기 제1 및 제2 중재 수단에 접속되어 상기 제1 및 제2 승인들을 균등화하기 위한 균등화 수단
    을 구비하는 균등화 장치.
  2. 제1항에 있어서,
    상기 균등화 수단은,
    상기 제1 중재 수단으로부터 상기 버스의 지배권(membership)을 요청하고 수신하기 위한 제어 수단과,
    상기 부 디바이스들에 상기 버스를 승인하기 위한 승인 수단
    을 구비하는 균등화 장치.
  3. 제2항에 있어서,
    상기 버스의 사용을 원하는 모든 부 디바이스에 상기 버스가 승인되고 그 다음에 상기 버스의 지배권이 상기 제1 중재 수단에 되돌려 지는 균등화 장치.
  4. 제3항에 있어서,
    상기 버스의 지배권에 대한 요청 전에, 상기 제어 수단은 상기 버스에 대한 상기 프로세서의 액세스 차단을 요청하고 확인받는 균등화 장치.
  5. 제4항에 있어서,
    상기 승인 수단은 상기 제2 중재 수단이 상기 버스를 각 요청 디바이스에 차례로 승인할 것을 요청하기 위한 수단을 구비하는 균등화 장치.
  6. 제5항에 있어서,
    다수의 삼차 디바이스들(tertiary devices) 사이에서 상기 버스의 제3의 승인들을 중재하기 위한 제3 중재 수단을 더 구비하며, 상기 제3 중재 수단은 상기 균등화 수단으로부터 상기 버스의 승인을 요청하는 균등화 장치.
  7. 다수의 주 디바이스 및 다수의 부 디바이스에 대한 버스의 승인들을 균등화하기 위한 방법에 있어서,
    상기 주 디바이스들 사이에서 상기 버스의 제1의 승인들을 중재하는 제1 중재 단계와,
    상기 부 디바이스들 사이에서 상기 버스의 제2의 승인들을 중재하는 제2 중재 단계와,
    상기 제1 및 제2 승인들을 균등화하는 균등화 단계
    를 포함하는 균등화 방법.
  8. 제7항에 있어서,
    상기 균등화 단계는,
    상기 제1 중재 수단으로부터 상기 버스의 지배권을 요청하고 수신하는 단계와,
    상기 부 디바이스들에 상기 버스를 승인하기 위한 승인 단계
    를 포함하는 균등화 방법.
  9. 제8항에 있어서,
    상기 버스의 사용을 원하는 모든 부 디바이스에 상기 버스를 승인하고 그 다음에 상기 버스의 지배권을 상기 제1 중재 수단에 되돌리는 단계를 더 포함하는 균등화 방법.
  10. 제9항에 있어서,
    상기 제1 중재 수단으로부터 상기 버스의 지배권을 요청하고 수신하는 단계 전에, 상기 버스에 대한 상기 프로세서의 액세스 차단을 요청하고 확인받는 단계를 포함하는 균등화 방법.
  11. 제10항에 있어서,
    상기 승인 단계는 상기 제2 중재 수단이 상기 버스를 각 요청 디바이스에 차례로 승인할 것을 요청하는 단계를 포함하는 균등화 방법.
  12. 제11항에 있어서,
    다수의 삼차 디바이스들 사이에서 상기 버스의 제3의 승인들을 중재하는 단계를 더 포함하며, 상기 제3의 승인들을 중재하는 단계는 상기 버스의 승인을 요청하는 단계를 포함하는 균등화 방법.
KR1019970041382A 1996-12-10 1997-08-27 주 및 부 디바이스에 대한 데이터 버스의 승인들을 균등화하기위한 방법 및 장치 KR100237983B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/762,901 US5805836A (en) 1996-12-10 1996-12-10 Method and apparatus for equalizing grants of a data bus to primary and secondary devices
US8/762,901 1996-12-10

Publications (2)

Publication Number Publication Date
KR19980063425A KR19980063425A (ko) 1998-10-07
KR100237983B1 true KR100237983B1 (ko) 2000-01-15

Family

ID=25066338

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970041382A KR100237983B1 (ko) 1996-12-10 1997-08-27 주 및 부 디바이스에 대한 데이터 버스의 승인들을 균등화하기위한 방법 및 장치

Country Status (5)

Country Link
US (1) US5805836A (ko)
JP (1) JPH10177544A (ko)
KR (1) KR100237983B1 (ko)
CN (1) CN1133939C (ko)
TW (1) TW342475B (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6021483A (en) * 1997-03-17 2000-02-01 International Business Machines Corporation PCI-to-PCI bridges with a timer register for storing a delayed transaction latency
JP4097847B2 (ja) * 1999-07-05 2008-06-11 株式会社リコー バス・ブリッジのアービトレーション方法
US6446151B1 (en) * 1999-09-29 2002-09-03 Agere Systems Guardian Corp. Programmable time slot interface bus arbiter
CN100356355C (zh) * 2003-08-01 2007-12-19 上海奇码数字信息有限公司 仲裁器和仲裁方法
DE60305939T2 (de) * 2003-12-11 2007-06-14 Alcatel Lucent Methode für den Schutz des Anschlu es zwischen einer Transportnetznabe und einem zentralen Aufstellungsort/ POP
KR20050072541A (ko) * 2004-01-07 2005-07-12 삼성전자주식회사 버스 할당 방법 및 장치
KR100596982B1 (ko) * 2004-12-15 2006-07-05 삼성전자주식회사 이중 계층 버스 구조, 이중 계층 버스 구조를 가진 시스템온 칩 시스템 및 시스템 온 칩 시스템의 버스 액세스 방법
US20090037635A1 (en) * 2006-03-17 2009-02-05 Shanghai Magima Digital Information Co., Ltd. Bus arbitration device
CN102004709B (zh) * 2009-08-31 2013-09-25 国际商业机器公司 处理器局部总线到高级可扩展接口之间的总线桥及映射方法
CN111478842A (zh) * 2020-04-15 2020-07-31 联合华芯电子有限公司 一种高速数据传输***和方法
CN111478841A (zh) * 2020-04-15 2020-07-31 联合华芯电子有限公司 一种采用特殊编码方式的数据传输***和方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3983540A (en) * 1975-09-08 1976-09-28 Honeywell Inc. Rapid bus priority resolution
JPS5553722A (en) * 1978-10-17 1980-04-19 Toshiba Corp Priority control system
US4570220A (en) * 1983-11-25 1986-02-11 Intel Corporation High speed parallel bus and data transfer method
US4654820A (en) * 1983-11-30 1987-03-31 At&T Bell Laboratories Interrupt bus structure
US4633394A (en) * 1984-04-24 1986-12-30 International Business Machines Corp. Distributed arbitration for multiple processors
US4621202A (en) * 1984-11-13 1986-11-04 Motorola, Inc. Bi-directional bus isolation circuit
US4785394A (en) * 1986-09-19 1988-11-15 Datapoint Corporation Fair arbitration technique for a split transaction bus in a multiprocessor computer system
ATE78114T1 (de) * 1987-04-22 1992-07-15 Ibm Adapterbusschalter zur verbesserung der verfuegbarkeit einer steuereinheit.
US4924380A (en) * 1988-06-20 1990-05-08 Modular Computer Systems, Inc. (Florida Corporation) Dual rotating priority arbitration method for a multiprocessor memory bus
US5175822A (en) * 1989-06-19 1992-12-29 International Business Machines Corporation Apparatus and method for assigning addresses to scsi supported peripheral devices
DE69030640T2 (de) * 1989-11-03 1997-11-06 Compaq Computer Corp Multiprozessorarbitrierung in für Einzelprozessor bestimmten Arbitrierungsschemas
US5146596A (en) * 1990-01-29 1992-09-08 Unisys Corporation Multiprocessor multifunction arbitration system with two levels of bus access including priority and normal requests
US5420989A (en) * 1991-06-12 1995-05-30 Cyrix Corporation Coprocessor interface supporting I/O or memory mapped communications
EP0559408B1 (en) * 1992-03-04 1998-08-26 Motorola, Inc. A method and apparatus for performing bus arbitration using an arbiter in a data processing system
US5450551A (en) * 1993-05-28 1995-09-12 International Business Machines Corporation System direct memory access (DMA) support logic for PCI based computer system
US5475850A (en) * 1993-06-21 1995-12-12 Intel Corporation Multistate microprocessor bus arbitration signals
JPH07200432A (ja) * 1993-12-17 1995-08-04 Internatl Business Mach Corp <Ibm> データ通信方法及びシステム連結装置
US5555383A (en) * 1994-11-07 1996-09-10 International Business Machines Corporation Peripheral component interconnect bus system having latency and shadow timers
US5737494A (en) * 1994-12-08 1998-04-07 Tech-Metrics International, Inc. Assessment methods and apparatus for an organizational process or system

Also Published As

Publication number Publication date
CN1133939C (zh) 2004-01-07
TW342475B (en) 1998-10-11
US5805836A (en) 1998-09-08
JPH10177544A (ja) 1998-06-30
KR19980063425A (ko) 1998-10-07
CN1184973A (zh) 1998-06-17

Similar Documents

Publication Publication Date Title
JP3231596B2 (ja) 待ち時間及びシャドー・タイマを有するバス・システム
US5621897A (en) Method and apparatus for arbitrating for a bus to enable split transaction bus protocols
KR100368948B1 (ko) 가변 우선순위와 공정성을 사용하는 개선된 버스 중재자
US7243179B2 (en) On-chip inter-subsystem communication
EP0686919B1 (en) An apparatus and method for granting control of a bus during the hot-docking of a dockable computer.
EP0450233B1 (en) Bus access for digital computer system
US5418914A (en) Retry scheme for controlling transactions between two busses
US6496890B1 (en) Bus hang prevention and recovery for data communication systems employing a shared bus interface with multiple bus masters
US5528767A (en) Programmable multi-level bus arbitration apparatus in a data processing system
US5717873A (en) Deadlock avoidance mechanism and method for multiple bus topology
US6598104B1 (en) Smart retry system that reduces wasted bus transactions associated with master retries
KR100237983B1 (ko) 주 및 부 디바이스에 대한 데이터 버스의 승인들을 균등화하기위한 방법 및 장치
US20020019899A1 (en) Method of bus priority arbitration
US20080059674A1 (en) Apparatus and method for chained arbitration of a plurality of inputs
JPH0816874B2 (ja) データ処理システムでの複数ユーザによる資源アクセスを管理する方法および装置
US6604159B1 (en) Data release to reduce latency in on-chip system bus
US6959354B2 (en) Effective bus utilization using multiple bus interface circuits and arbitration logic circuit
US6260093B1 (en) Method and apparatus for arbitrating access to multiple buses in a data processing system
US6026460A (en) Method and apparatus for sequencing system bus grants and disabling a posting buffer in a bus bridge to improve bus efficiency
US20040267992A1 (en) Look ahead split release for a data bus
US5933616A (en) Multiple bus system bus arbitration according to type of transaction requested and the availability status of the data buffer between the buses
US7487276B2 (en) Bus arbitration system
US6826644B1 (en) Peripheral component interconnect arbiter implementation with dynamic priority scheme
EP0533429B1 (en) Computer bus control system
KR100873010B1 (ko) 논블록킹 마스터, 버스 중재장치, 버스 시스템, 및 버스중재 방법

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

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee