KR100368948B1 - 가변 우선순위와 공정성을 사용하는 개선된 버스 중재자 - Google Patents

가변 우선순위와 공정성을 사용하는 개선된 버스 중재자 Download PDF

Info

Publication number
KR100368948B1
KR100368948B1 KR10-2000-0041332A KR20000041332A KR100368948B1 KR 100368948 B1 KR100368948 B1 KR 100368948B1 KR 20000041332 A KR20000041332 A KR 20000041332A KR 100368948 B1 KR100368948 B1 KR 100368948B1
Authority
KR
South Korea
Prior art keywords
bus
fairness
access
pci
devices
Prior art date
Application number
KR10-2000-0041332A
Other languages
English (en)
Other versions
KR20010029970A (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 KR20010029970A publication Critical patent/KR20010029970A/ko
Application granted granted Critical
Publication of KR100368948B1 publication Critical patent/KR100368948B1/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/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)

Abstract

복수 개의 버스 장치에 접속하기 위한 버스를 갖는 컴퓨터 시스템용 버스 중재자가 제공되며, 각각의 버스 장치는 버스 요청 신호를 사용하여 버스의 제어를 요청한다. 버스 중재자는 공정성 사이클 내에서 각각의 버스 장치의 이전 액세스와 각각의 버스 장치의 소정 우선순위를 바탕으로 버스 요청 신호를 제어하고 우선순위를 부여하기 위한 공정성 스키마를 통합한 로직을 포함한다. 각각의 장치의 이전 액세스는 데이터 레지스터 내의 비트 별로 진행되고, 장치가 실제로 버스를 통해 정보를 수신하였거나 전송하였는 지와, 재시도 신호로 귀결될 수 있는 액세스를 단순히 허용함으로써 결정된다.

Description

가변 우선순위와 공정성을 사용하는 개선된 버스 중재자{ENHANCED BUS ARBITER UTILIZING VARIABLE PRIORITY AND FAIRNESS}
본 발명은 일반적으로 데이터 프로세싱을 위한 방법 및 시스템에 관한 것으로, 특히, 가변 우선순위(priority)와 공정성(fairness) 프로토콜에 기초한 버스 중재를 위한 방법 및 시스템에 관한 것이다.
컴퓨터 시스템은 일반적으로 시스템 버스, 로컬 버스 및 주변 버스와 같은 몇가지 형태의 버스를 포함한다. 여러가지 전자 회로 장치와 구성 요소는 모든 이러한 장치와 구성 요소들 사이에서 상호 통신이 가능하도록 버스를 통해 서로 접속되어 있다.
일반적으로, 중앙 처리 장치(CPU)는 시스템 버스에 접속되며, 이 시스템 버스를 통해 CPU는 시스템 버스에 접속된 시스템 메모리와 직접 통신한다. 로컬 버스는 CPU와 동일한 버스 상에 어떤 고집적화된 주변 구성 요소를 접속시키기 위한것이다. 이러한 로컬 버스 중 하나는 주변 구성 요소 상호접속(PCI; peripheral Component Interconnect) 로컬 버스라 알려져 있다. PCI 로컬 버스 표준에 따르면, 주변 구성 요소는 글루 로직(glue logic) 없이 PCI 로컬 버스에 직접 접속할 수 있다. 그러므로, PCI는 그래픽 장치와 하드 디스크 드라이브와 같은 고성능 주변 장치가 CPU에 접속될 수 있는 버스 표준을 제공하여, 이러한 고성능 주변 장치에 의해 주변 버스와 관련된 일반적인 액세스 대기 시간과 대역폭 강제(constraint)를 피할 수 있다. 산업 표준 구성(ISA; Industry Standard Architecture) 버스와 같은 주변 버스는 여러가지 주변 장치를 컴퓨터 시스템에 접속하기 위한 것이다. 이러한 주변 장치는 일반적으로 키보드, 플로피 디스크 드라이브 및 프린터와 같은 입/출력(I/O) 장치를 포함한다.
일반적으로, 각각의 시스템 버스, 로컬 버스 및 주변 버스는 그에 접속되는 여러가지 장치들 사이에서 데이터 전송을 행하는 독립된 프로토콜(또는 룰)의 세트를 사용한다. 각각의 이들 프로토콜은 버스로서 직접 설계되며 통상적으로 버스의 "구성"으로 언급된다. 다른 버스 구성들 사이의 데이터 전송 시에, 제1 버스 구성으로부터 전송되는 데이터는 제2 버스 구성을 수신하는 것에 의해 사용가능하거나 판독가능한(intellisible) 형태가 아닐 것이다. 따라서, 하나의 버스 구성으로부터 다른 버스 구성으로 데이터의 "번역(translating)" 을 위한 매커니즘이 개발되었다. 이러한 번역 매커니즘은 2개의 다른 형태의 버스가 접속되는 버스-대-버스 브리지(또는 인터페이스)의 형태로 하드웨어 장치내에 정상적으로 포함된다.
부수적으로, 여러가지 버스-대-버스 브리지가 다른 버스상의 장치들 사이에서 시스템-와이드(system-wide) 통신을 가능하게 하기 위해 하나의 버스의 통신 프로토콜과 다른 버스의 통신 프로토콜을 일치시키도록 설계되었다. 예를 들면, 시스템 버스와 PCI 로컬 버스 사이에서 접속하는 버스-대-버스 브리지는 PCI 호스트 브리지로 불린다. PCI 호스트 브리지는 시스템 버스와 PCI 로컬 버스 사이의 데이터 통신을 번역하기 위한 모든 로직 및 하드웨어를 포함하고 이들 2개의 버스들 사이에서 데이터가 판독가능하게(intelligibly) 전달되도록 한다.
다른 버스에 접속된 다중 장치들이 CPU 또는 심지어 로컬 버스에 동시에 액세스한다면, 혼란(chaos)이 발생한다. 이러한 혼란은 하나 이상의 버스 마스터를 시스템에 도입함으로써 피할 수 있다. 버스 마스터는 버스에 대한 액세스를 제어한다. 다시 말해서, 이 버스 마스터는 모든 버스 요청을 초기화시키고 제어한다. 어떤 장치 또는 어떤 버스 마스터가 다음에 그 버스를 사용할 지를 결정하는 것을 버스 중재라 한다. 버스 중재 스키마(scheme)에서, 버스를 사용하고자 하는 장치(또는 프로세서)는 버스 요청 신호를 발생시킨다. 그 신호에 응답하여, 시간에 맞게 중재자는 장치에 허가 신호를 보낸다. 허가 신호가 수신된 후에, 장치는 버스를 사용할 수 있다. 이 장치는 그 다음에 그 버스가 더 이상 필요없다는 것을 중재자에 신호로 알린다. 이 때 중재자는 그 버스를 다른 장치에 허가할 수 있다.
중재 스키마는 일반적으로 어떤 장치에 버스를 허가할 지를 선택할 때에 2가지 성분의 균형을 맞춘다. 먼저, 각각의 장치는 버스 우선순위를 가지며, 최상위의 우선순위를 가진 장치에 먼저 버스가 허가될 것이다. 둘째로, 우선순위가 낮은 경우라도 완전히 잠금되는 장치가 없도록 하기 위해, PCI와 같은 대부분의 I/O 버스는 중재자가 어떤 종류의 공정성 프로토콜을 실행하도록 요청한다. 이 공정성 프로토콜의 목적은 모든 장치가 버스상에서 기회를 부여받도록 하는 것이다. 예를 들면, 종래의 공정성 프로토콜에는 라운드 로빈 스키마(round robin scheme)가 있다. 라운드 로빈 공정성 프로토콜에 따르면, 버스 동작을 방금 완료한 장치는 모든 요청 장치에 먼저 버스에 대한 액세스가 허가될 때까지 버스에 대한 2차 액세스 동작이 허가되지 않는다.
버스가 버스에 대한 액세스를 제어하는 중재자에 공정성 프로토콜을 제공하더라도, 버스에 대한 허용 가능한 액세스는 높은 성능을 가진 다른 장치에 의해 장치 또는 장치들에 대해 효과적으로 거절될 수 있다. 이것은 공정성 프로토콜이 회피될 수 있다는 예측하지 못한 문제점이다. 이러한 문제점은 장치의 버스에 대한 액세스와 인터페이스하는 "비트(beat)" 주파수의 문제점이다. "비트" 주파수의 개념은 하기와 같다.
PCI와 같은 어떤 버스는 요청을 시간에 맞게 처리할 수 없다면 장치를 버스에서 분리시킬 수 있는 "백오프(backoff)" 기능으로 일반적으로 언급되는 성능 특성을 갖는다. PCI의 이러한 성능은 재시도(Retry)로 언급된다. PCI 장치에 요청이 발생했을 때 그 요청을 처리할 수 없다면, 요청의 타깃(target)은 버스상의 요청을 나중에 다시 발생시키도록 마스터 장치에 지시하는 "재시도(Retry)"를 발생시킬 수 있다.
PCI에 대해, 일반적인 플랫폼(platform)은 시스템 버스와 PCI 버스 사이에 버스 동조화를 제공하기 위해 PCI 호스트 브리지를 제공한다. 플랫폼은 또한 부가적인 PCI 버스 세그먼트를 제공하기 위해 다수의 PCI-대-PCI 버스 브리지를 제공할 수 있다. 일반적으로, 각각의 PCI 버스 세그먼트는 (공정성 프로토콜과 함께) 그 자신의 중재자를 가질 것이다. 각각의 브리지는 버스 트랜잭션이 브리지를 통해 양 방향으로(1차측에서 2차측으로 및 2차측에서 1차측으로) 흐를때 일반적으로 버스 트랜잭션의 임시 버퍼링을 위한 포스팅(posting) 버퍼를 갖는다.
비트(beat) 주파수가 버스에 대한 장치 효율적인 액세스를 거절할 수 있는 방법은 브리지, 브리지 중재자 및 버스 상의 장치에 의한 버스 트래픽에서 버퍼의 세트들 사이의 상호 작용을 포함한다. 예를 들면, PCI 호스트 브리지 또는 PCI-대-PCI 브리지 아래의 버스가 브리지 아래의 4개의 장치(장치 A, 장치 B, 장치 C 및 장치 D)에 대한 라운드-로빈 공정성 프로토콜을 갖는다고 가정한다. 브리지가 가장 높은 우선순위(우선순위 0)로 할당되고, 장치 A가 다음으로 높은 우선순위(우선순위 1)로 할당되고, 장치 B는 그 다음으로 높은 우선순위(우선순위 2)로 할당되며, 장치 C는 그 다음으로 높은 우선순위(우선순위 3)로 할당되고, 장치 D는 그 다음으로 높은 우선순위(우선순위 4)로 할당된다. 모든 장치가 동시에 버스를 요청하면, 공정성 프로토콜은 각각의 장치가 버스를 사용하려고 시도할 기회를 부여받도록 한다. 이 예에서, 중재 우선순위는 단순히 장치가 버스를 사용하려고 시도하는 기회를 부여받는 순서를 결정한다. 이 예에서, 모든 장치가 버스의 사용을 요청할 때 브리지에 먼저 액세스가 허가되며 장치 A에서 D까지 순차적으로 액세스가 허가된다. 이러한 스키마에 따르면, 장치 A와 B는 모두 버스를 차지할 기회를 부여받으며, 장치 C가 버스를 차지할 때, 브리지의 버퍼가 완전히 채워졌기 때문에장치 C가 재시도를 갖도록 브리지의 버퍼를 채운다. 결과적으로, 브리지는 브리지의 다른 측상의 트랜잭션으로서 버퍼의 일부를 비운다. 그후에, 장치 D, A 및 B가 버스를 차지할 기회를 부여받고, 다시 버퍼를 채운다. 장치 C가 버스 상에서 돌아오는 기회를 다시 부여받을 때, 브리지의 버퍼가 다시 채워지기 때문에 장치 C는 재시도를 다시 수신한다. 비트(beat) 주파수는 특정 장치가 버스를 차지할 기회를 부여받을 때마다 다른 장치들은 브리지 버퍼를 채운채 유지하기 때문에 특정 장치는 재시도가 계속해서 되풀이된다. 재시도의 회수가 비교적 많을 때, 장치는 과구동하거나 저구동할 수 있으므로, 결과적으로 과구동 또는 저구동을 검출하고 이러한 동작을 반복하는 소프트웨어의 현저한 성능 손실로 귀결된다.
간단하게, 브리지에 더 많은 버퍼를 부가시키는 것은 "비트(beat)" 주파수 문제를 유발시키며 장치 A, B 및 D가 전송할 필요가 있는 데이터의 양을 변화시킬 뿐이다. 더욱 많은 버퍼를 부가시킴으로써 이러한 문제점을 없앨 수 있지만 그러한 방법은 비용이 많이 들기 때문에 바람직하지 않다.
그러므로, 필요한 것은 비트(beat) 주파수로부터의 간섭없이 각각의 장치가 버스상에 공정한 기회를 부여받을 가능성을 증가시키기 위해 회전 시퀀스가 변화하도록 중재 우선순위 레벨을 변화시키는 스키마이다.
도 1은 본 발명의 바람직한 실시예를 사용하는 PCI 로컬 버스 구조를 가진 일반적인 컴퓨터 시스템의 블록도.
도 2는 본 발명의 바람직한 실시예를 사용하는 PCI 호스트 브리지와 PCI-대-PCI 브리지 아래의 분리된 PCI 로컬 버스를 보여주는 분리된 컴퓨터 구성의 세부적인 블럭도.
도 3은 본 발명의 바람직한 실시예를 사용하는 PCI-대-PCI 브리지의 기능 블럭도.
도 4a 및 4b는 본 발명의 예시적인 실시예에서 중재 스키마의 로직을 나타내는 흐름도.
*도면의 주요 부분에 대한 부호의 설명*
101: 컴퓨터 시스템
110: 프로세서
111: PCI 호스트 브리지
116: LAN 인터페이스
117: 로컬 영역 네트워크
118: PCI-대-PCI 브리지
120, 130: PCI 로컬 버스
121 : PCI-대-PCI 주변 버스
124: 그래픽 어댑터 보드
127: 확장 버스 인터페이스
128: 시스템 버스
131, 132, 133, 134: PCI 장치
전술한 바와 같이, 이러한 문제점은 본 발명에 의해 해소된다. 따라서, 제1 형태로서 버스 브리지를 통해 CPU와 통신하는 로컬 버스를 갖는 컴퓨터 시스템이제공되고, 여기서, 버스 브리지는 버스에 접속된 다수의 버스 장치로부터의 버스 요청 신호를 제어하고 우선순위를 부여하기 위한 버스 중재자를 포함한다. 버스의 허가는 각각의 장치 우선순위, 공정성 사이클내에서 이전의 액세스 및 재시도 히스토리를 기준으로 한다. 공정성 사이클 내에서 각각의 버스 장치의 이전 액세스와 각각의 버스 장치의 소정 우선순위에 기초하여 버스 요청 신호를 제어하고 우선순위를 부여하기 위한 공정성 로직을 포함하는 버스 중재자가 개시되어 있다. 중재자는 공정성 로직을 바탕으로 버스 장치에 대한 버스의 제어를 허가하기 위한 로직을 포함한다.
본 발명은 또한 몇개의 버스 장치로부터 버스 요청 신호를 수신하는 단계와, 공정성 사이클을 시작하는 단계와, 다른 장치에 대해 버스 장치의 가장 높은 우선순위에 기초하여 버스 장치로부터 단일 버스 장치를 선택하는 단계, 및 공정성 플래그가 버스 장치에 대해 설정되거나 설정되지 않는 단계를 포함하는 컴퓨터 시스템의 버스 중재 방법을 포함한다. 플래그가 설정되면, 우선순위는 감소된다. 플래그는 그 장치가 버스에 대한 액세스가 허가되고 재시도 신호를 수신하지 않은 경우에만 설정된다.
본 발명의 이러한 특성 및 다른 특성 및 이점은 첨부된 도면을 참조로 한 하기의 상세한 설명에 의해 더욱 잘 이해될 것이다. 본 발명의 첨부된 도면은 본 발명의 유일한 형태를 나타내는 것은 아니다.
본 발명의 이론과 이점은 도 1 내지 4를 참조한 도시된 실시예의 설명에 의해 최적으로 이해될 것이며, 도 1 내지 4의 동일한 소자에는 동일한 참조 번호를부여한다. 하기의 설명에서, 불필요한 세부 설명으로 본 발명을 불명료하게 하지 않도록 공지된 소자는 상세하게 설명하지 않는다. 대부분의 소자에 대해서도, 본 발명의 완전한 이해를 위해 불필요한 세부 사항은 생략하였으며, 그러한 세부 사항은 당업자의 관련 기술 분야내에 있는 것이다. 여기서 설명되는 여러가지 소자의 회전(rotation)을 제어하기 위해 사용되는 제어 회로 또는 매커니즘과 관련한 세부 사항은 생략되고, 그러한 제어 회로는 관련 기술 분야의 당업자의 기술 범위 내에 있는 것이다.
본 발명은 다수의 다른 동작 시스템을 사용하는 다양한 컴퓨터에 적용가능하다. 예를 들면, 그러한 컴퓨터에는 개인용 컴퓨터, 미니 컴퓨터 또는 메인프레임(mainframe) 컴퓨터가 있다.
이제 도 1을 참조로, 본 발명의 바람직한 실시예를 사용할 수 있는 PCI 로컬 버스 구조를 가진 일반적인 컴퓨터 시스템의 블록도가 도시된다. 도시된 바와 같이, 프로세서(110), 캐시 메모리(113), 메모리 제어기(114) 및 다이나믹 랜덤 액세스 메모리(DRAM)(115)가 컴퓨터 시스템(101)의 시스템 버스(128)에 접속된다. 프로세서(112), 캐시 메모리(113), 메모리 제어기(114) 및 DRAM(115)은 PCI 호스트 브리지(111)를 통해 컴퓨터 시스템(101)의 PCI 로컬 버스(120)에 접속된다. PCI 호스트 브리지(111)는 버스 메모리 및/또는 I/O 어드레스 스페이스 내의 어디서나 매핑되는 PCI 장치에 직접 액세스할 수 있는 작은 대기 시간 경로를 제공한다. PCI 호스트 브리지(111)는 또한 PCI 장치가 DRAM(115)에 직접 액세스하도록 하기 위한 고대역폭 경로를 제공한다. PCI 호스트 브리지(111)는 데이터 버퍼링/포스팅및 중재와 같은 다양한 기능을 포함한다.
PCI 로컬 버스(120)에 접속하는 것은 또한 로컬 영역 네트워크(LAN) 인터페이스(116)와 확장 버스 인터페이스(127)와 같은 다른 장치일 것이다. LAN 인터페이스(116)는 컴퓨터 시스템(110)을 에더넷(Ethernet) 또는 토큰-링(Token-Ring)과 같은 로컬 영역 네트워크(117)에 접속시키기 위한 것이다. 그 구성은 분리 PCI 호스트 브리지를 사용하는 분리 PCI 로컬 버스를 지원할 것이다. 예를 들면, PCI-대-PCI 브리지(118)는 PCI 로컬 버스(130)가 PCI 로컬 버스(120)에 접속하게 한다. 다양한 PCI 장치(131, 132, 133, 134)가 PCI 로컬 버스(130)에 접속된다. 확장 버스 인터페이스(127)는 ISA 버스, EISA 버스 및/또는 마이크로채널 구조(MicroChannel Architecture; MC-A) 버스와 같은 임의의 다른 PCI가 아닌 주변 버스(121)를 PCI 로컬 버스(120)에 접속시킨다. 일반적으로, 어떤 기본적인 i/o 기능을 수행하기 위한 여러 가지의 비-PCI 주변 장치는 주변 버스(121)와 같은 주변 버스 중 하나에 접속된다.
일반적으로, PCI 로컬 버스(120)와 PCI 로컬 버스(130)는 확장 기능 없이 4개의 보드 추가 커넥터를 지원한다. 오디오 어댑터 보드(122), 모션 비디오 어댑터 보드(123) 및 그래픽 어댑터 보드(124)는 보드 추가 커넥터를 통해 PCI 로컬 버스(120)와 PCI 로컬 버스(130)에 접속될 수 있는 장치의 예이다.
이제 도 2와 관련하여, 호스트 브리지와 PCI-대-PCI 브리지를 사용하는 분리 PCI 로컬 버스를 보여주는 PCI 구성이 상세히 도시되어 있다. PCI 호스트 브리지(111)는 시스템 버스(128)에 접속된 버스 에이전트와 PCI 로컬 버스(120)에접속된 버스 에이전트 사이의 통신을 가능하게 한다. 또한, PCI-대-PCI 브리지(118)는 PCI 로컬 버스(130)에 접속된 버스 에이전트와 메모리 제어기(114)(도 1) 사이의 통신을 가능하게 한다. PCI-대-PCI 브리지(118)는 또한 PCI 로컬 버스(130)에 접속된 버스 에이전트와 프로세서(112) 사이의 통신을 가능하게 한다.
LAN 인터페이스(116), 주변 버스(121) 및 그래픽 어댑터 보드(124)는 PCI 로컬 버스(120)를 통해 통신하기 위해 접속된 버스 에이전트이다. 부가적으로, PCI 호스트 브리지(111)와 PCI-대-PCI 브리지(118)는 PCI 로컬 버스(120)를 통해 통신하기 위한 버스 에이전트로서 접속된다. PCI 호스트 브리지(111)와 PCI-대-PCI 브리지(118)는 PCI 로컬 버스(120)를 통해 액세스 사이클 동안 개시자 및 타깃이 될 가능성을 갖는다. 바람직한 실시예에서, PCI 로컬 버스(120)는 32 비트 메모리 어드레스, 및 동일한 버스를 통해 다중화된 어드레스 및 데이터를 갖는 32비트 I/O 어드레스 스페이스를 포함한다.
PCI 호스트 브리지(111)와 PCI-대-PCI 브리지(118)와 같은 버스 브리지는 일반적으로 1차 버스와 2차 버스 사이에 접속된다. 버스 브리지는 1차 버스 상에서 시작하는 액세스 요청이 2차 버스 상에 수신지를 갖는 것을 가능하게 하고, 2차 버스 상에서 시작하는 액세스 요청이 1차 버스 상에 수신지를 갖는 것을 가능하게 한다. 예를 들면, 시스템 버스(128)로부터 액세스 요청을 수신한 후에, PCI 호스트 브리지(111)는 하나 이상의 PCI 장치(116, 118, 127, 124)와 통신하기 위해 PCI 로컬 버스(120)상의 액세스 요청을 개시한다. 또는, PCI 로컬 버스(120)로부터의 액세스 요청을 수신한 후에, PCI 호스트 브리지는 메모리 제어기(114)와 통신하기 위해 시스템 버스(128)상의 액세스 요청을 개시한다. 유사하게, PCI 로컬 버스(130)로부터의 액세스 요청을 수신한 후에, PCI-대-PCI 브리지(118)는 PCI 호스트 브리지(111)와 통신하기 위해 PCI 로컬 버스(120)상의 액세스 요청을 개시한다. 또는, PCI 로컬 버스(120)로부터의 액세스 요청을 수신한 후에, PCI-대-PCI 브리지(118)는 PCI 장치(131)와 통신하기 위해 PCI 로컬 버스(130)상의 액세스 요청을 개시한다.
요약하면, PCI 호스트 브리지(111)는 시스템 버스(128)에 접속된 버스 에이전트와 PCI 로컬 버스(130)에 접속된 버스 에이전트 사이의 통신을 가능하게 한다. PCI 로컬 버스(130)에 접속하는 것은 PCI 장치(131 내지 134)와 같은 PCI 장치이다.
이제 도 3과 관련하여, 본 발명의 바람직한 실시예에서 사용되는 PCI-대-PCI 브리지(118)의 블럭도가 도시되어 있다. 도시된 바와 같이, PCI-대-PCI 브리지(118)는 1차측 PCI 버스 또는 PCI 로컬 버스(120)로 또는 이들 버스로부터 통신이 이루어지는 1차측(302)과, 2차측 PCI 버스 또는 PCI 로컬 버스(130)로 또는 이들 버스로부터 통신이 이루어지는 2차측(304)의 2개의 부분을 갖는다(PCI 구조에서, "1차측"이란 용어는 단순히 PCI 및 메모리에 근접한 브리지의 부분을 나타내기 위해 사용되는 것이고, "2차측"이란 용어는 CPU 및 메모리로부터 먼 부분을 나타내는 것이다). 직렬 데이터 버퍼(306)는 PCI 로컬 버스(120)로부터 PCI 로컬 버스(130)까지(즉, 1차 버스에서 2차 버스까지) 통신하기 위한 요청, 데이터 및 명령을 임시로 저장하기 위해 제공되는 것이다. 유사하게, 직렬 데이터 버퍼(308)는PCI 로컬 버스(130)로부터 PCI 로컬 버스(120)까지(즉, 2차 버스에서 1차 버스까지) 통신하기 위한 요청, 데이터 및 명령을 임시로 저장하기 위해 제공된다. 1차 및 2차 버스 시퀀스 제어 또는 시퀀스 제어 유닛(310)은 마스터 트랜잭션을 개시하고, 오리건주에 소재한 PCI Special Interest Group of Portland에서 발표한 PCI Local Bus Specification("PCI Bus Specification")의 교정판 2.2에 설명되어 있는 바와 같이 PCI 대 PCI 브리지(118)의 1차 및 2차 인터페이스 상에서 타깃 트랜잭션에 응답한다. 시퀀스 제어 유닛(310)은 PCI 대 PCI 브리지의 2차측(304)상에서 버스 액세스의 요청을 개시한다. 각각의 장치(A 내지 D)는 또한 PCI 버스 상세의 요구에 응답하는 시퀀스 제어 유닛(도시되지 않음)을 갖는다. 시퀀스 제어 유닛은 버스가 마스터로서 허가되거나 또는 다른 마스터에 의한 타깃으로 지정되면 각각의 PCI 버스 신호 시퀀싱을 제어한다. 2차 버스 중재자(312)는 신호 REQ# 및 GNT#를 사용하여 2차측(304)의 PCI 대 PCI 브리지의 2차측(304)에 대한 중재를 수행하고 PCI 버스 상세의 중재 요청에 응답한다. 또한, 다수의 데이터값을 저장하기 위해 제공되는 공정성 레지스터(314)를 포함한다. 본 발명의 실시예는 로컬 버스(130)상에 장치(131~134)를 갖는 도 2의 PCI 구성에 대응하는 5비트의 정보를 포함하는 레지스터를 갖는다. 시퀀스 제어 유닛(310)과 2차 버스 중재자(312) 사이의 상호작용은 본 발명에 개시된 공정성 레지스터(314)에 의해 개선된 PCI 버스 상세의 요구에 부응한다. 2차 버스 중재자(312)에 의해 지원되는 REQ#A/GNT#A 내지 REQ#D/GNT#D 신호는 PCI 버스(130)에 대한 액세스를 요청하기 위해 장치 A 내지 D(도 2에서, 각각 장치 131 내지 134)에 의해 사용되는 요청/허가 신호이다.
버스 중재자(312)는 각각의 요청 라인(316, 317, 318, 319)에 대한 공정성 비트를 포함하는 공정성 레지스터(314)를 포함한다(각각의 장치는 버스 상에 그 자신의 요청 신호를 갖는다). 공정성 레지스터(314)내의 비트 할당은 다음과 같다. 비트 0는 브리지(118)에 할당되고, 비트 1은 장치 A에 할당되며, 비트 2는 장치 B에 할당되고, 비트 3은 장치 C에 할당되며, 비트 4는 장치 D에 할당된다.
2차 버스 중재자에 의해 사용되는 중재 알고리즘은 PCI 버스 상세의 요구를 만족시키는 알고리즘일 것이다. 이 알고리즘은 또한 공정성 레지스터(314)와 관련하여 사용될 때 단순한 선형 우선순위 알고리즘일 것이다. 공정성 레지스터(314)의 사용은 PCI 버스 상세를 용이하게 하는(compliant) 단순한 선형 우선순위 알고리즘에 필요한 부가 사항이다.
PCI 대 PCI 브리지(118)에는 가장 높은 우선순위가 주어진다. 요청 신호 REQ#A와 관련된 장치 A(즉, 도 2의 장치(131))에는 다음으로 높은 우선순위가 주어진다. 그러므로, 장치 A는 거의 동시에 액세스를 요청하고 있는 다른 분쟁하는 장치에 유리하게 버스에 대한 액세스를 얻는다. 장치 B(즉, 도 2의 장치(132)), 장치 C(즉, 도 2의 장치(133)) 및 마지막으로 장치 D(도 2의 장치(134))는 PCI 버스(130)상의 장치의 나머지 부분에 대한 우선순위의 시퀀스이다.
도 4a 및 4b는 중재자(312)에 대한 로직 스키마를 도시한다. 다중 장치가 동시에 버스를 요청할 때 공정성 프로토콜 시퀀스가 시작한다. 중재자(312)는 공정성 레지스터(314)(도 3)내의 모든 비트를 0으로 리셋함으로써(단계 402) 공정성 프로토콜 시퀀스를 시작한다(단계 400). 중재자(312)는 그후에 요청(REQ#)이 발생되었는지를 판정(단계 404)하기 위해 각각의 장치(A 내지 D와 브리지)로부터 도 3에 도시된 각각의 REQ# 신호를 검사한다. 요청(REQ#)이 발생되지 않는다면, 중재자(312)는 타이머(도시되지 않음)를 사용하여 소정 시간이 만기되었는지를 판정한다(단계 405). 타이머를 사용함으로써 재시도 이후에 버스 상의 유유(idle) 시간을 미리 설정되어 있거나 사전 프로그래밍될 수 있는 소정 시간으로 제한한다. 재시도를 수신한 장치들 중 하나가 타이머의 시간이 경과할 때 버스를 사용하려고 시도하지 않는다면, 모든 장치에 대한 공정성 비트는 0으로 리셋되고, 새로운 공정성 사이클이 시작될 수 있다. 이러한 타이머는 컴퓨터 시스템 내에서 종래에도 사용했던 타이머일 수 있고 관련 기술을 실행하는 당업자들에게는 공지된 것이다.
요청(REQ#)이 있다면, 중재자(312)는 이미 발생된 임의의 현재 허가 신호(GNT#)를 해지한다. 중재자(312)는 대응하는 공정성 레지스터 비트가 1로 설정되지 않은 가장 높은 우선순위를 가진 요청 장치(즉, REQ# 발생)에 대해 허가 신호를 발생시킨다(단계 406). 그 다음에 중재자(312)는 다음 버스 트랜잭션이 시작할 때까지 대기한다(단계 408). 다음 트랜잭션이 시작된 후에, 중재자(312)는 그의 관련된 공정성 레지스터(314)가 1로 설정되지 않은 다른 장치 요청이 발생되는 지를 판정한다(단계 410). 요청이 발생되었다면('예'인 경우), 중재자(312)는 단계 410에서 요청의 타깃이 재시도에 응답하였는 지를 판정한다(단계 414). 단계 414에서의 판정이 '아니오'라면 중재자(312)는 이 장치에 대한 공정성 비트를 1로 설정하고, 단계 404로 복귀한다.
단계 410의 판정이 '아니오'라면, 중재자(312)는 타깃이 재시도에 응답하는지를 판정한다(단계 412). 단계 412에서의 판정이 '아니오'라면, 중재기(312)는 단계 402로 복귀하고 공정성 레지스터내의 모든 비트를 리셋시킨다. 한편, 중재자(312)가 타깃이 재시도에 응답하였다라고 판정하면(단계 412) 중재자(312)는 발생된 다른 장치 요청이 그의 공정성 비트를 1로 설정했는지를 확인하기 위해 검사한다. 요청이 발생된 장치가 없고 그의 공정성 비트가 1로 설정되면, 루틴은 단계 402로 복귀하고 공정성 레지스터내의 모든 비트는 0으로 설정된다. 그러나, 요청이 발생된 다른 장치가 있고 그의 공정성 비트가 1로 설정되면, 중재자(312)는 현재의 허가를 해지하고 공정성 레지스터 비트가 1로 설정된 가장 높은 우선순위를 가진 요청 장치에 (공정성 알고리즘을 사용하여) 허가를 발생시킨다. 그 후 중재자(312)는 단계 408을 반복한다.
동작
중재자를 사용하는 방식이 예로서 최적으로 설명될 수 있다. 다중 장치가 동시에 버스를 요청할 때(예를 들면, 장치 A, B 및 C), 공정성 루틴이 시작한다. 장치가 재시도 없이 버스를 차지할 기회를 부여받으면(동작하면), 요청 라인이 활성화된 다른 장치가 버스를 차지할 기회를 부여받을 때까지, 중재자(312)는 그 장치의 요청 라인(1로 설정된 공정성 비트)을 무시하기 시작한다. 표 1은 중재 레벨, 요청 상태, 타깃이 재시도에 응답하는 지, 및 제1 공정성 판정시의 각각의 장치의 공정성 비트를 보여준다. 이 예에서, "공정성 비트 이전/이후"로 표시된 열은 단계 416(도 4a)에서 1로 세트되고 단계 402에서 0으로 리셋되는(도 4a) 공정성 레지스터(314)(도 3)내의 비트의 값을 포함한다.
제1 기회, 제1 사이클
장치 ARB 레벨 버스를 차지할기회 요청이 발생하였는가? 재시도가 수신되었는가? 공정성 비트 이전/이후
브리지 0 - 아니오 - 0
장치 A 1 아니오 0/1
장치 B 2 - - 0
장치 C 3 - - 0
장치 D 4 - 아니오 - 0
표 1에 도시된 예에서, 장치 A는 우선순위를 가지며 재시도를 수신하지 않는다. 중재 프로세스로 들어가는 단 하나의 장치는 요청이 발생되고(요청 열에서 '예') 공정성 비트(표에서 공정성 비트 이전/이후 열에 표시된 비트)가 0으로 설정된 장치이다. 결과적으로, 장치 A는 버스에 대한 액세스가 허가되고 그의 공정성 우선순위 비트는 "1"로 설정된다. 그러므로 이후의 요청은 무시될 것이다. 기회를 부여받을 다음의 장치는 표 2에 도시된 바와 같이 장치 B이다.
제2 기회, 제1 사이클
장치 ARB 레벨 버스를 차지할 기회 요청이 발생하였는가? 재시도가 수신되었는가? 공정성 비트 이전/이후
브리지 0 - 아니오 - 0
장치 A 1 - - 1
장치 B 2 아니오 0/1
장치 C 3 - - 0
장치 D 4 - 아니오 - 0
표 2에 도시된 바와 같이, 장치 A가 우선순위를 갖더라도, 공정성 비트는 1로 설정되기 때문에 버스를 차지할 기회를 부여받지 않는다. 그러므로, 장치 B에 버스를 차지할 기회가 허용된다. 장치 B에 액세스가 허용된 후에, 이것은 장치 C가 버스를 차지할 기회이다. 그러나, 예시적으로, 장치 C는 타깃으로부터 재시도를 수신했다. 그래서, 그의 공정성 비트는 "1"로 설정되지 않는다(표 3에 도시된 바와 같이). 즉, 공정성 면에서, 이것은 장치 C가 버스를 차지할 기회를 부여받지 않은 것과 같으며, 중재자(312)는 그의 요청을 인식하며 장치 C는 이 장치가 버스상에서 동작할 때까지 동일한 공정성 사이클내에서 버스에 대한 액세스를 계속해서 얻을 수 있다(이 장치는 버스를 통해 정보를 그의 타깃과 교환한다.)
제3 기회, 제1 사이클
장치 우선순위 버스를 차지할 기회 요청이 발생하였는가? 재시도가 수신되었는가? 공정성 비트 이전/이후
브리지 0 - 아니오 - 0
장치 A 1 - - 1
장치 B 2 - - 1
장치 C 3 0/0
장치 D 4 - 아니오 - 0
장치 C가 재시도없이 버스를 차지할 기회를 얻고, 다른 장치도 또한 버스를 요청하면, 장치 C의 공정성 비트는 "1"로 설정되고, 그의 요청은 무시될 것이다.
제4 기회, 제1 사이클
장치 우선순위 버스를 차지할기회 요청이 발생하였는가? 재시도가 수신되었는가? 공정성 비트이전/이후
브리지 0 - 아니오 - 0
장치 A 1 - - 1
장치 B 2 - - 1
장치 C 3 아니오 0/1
장치 D 4 - 아니오 - 0
마지막으로, 공정성 비트=1을 갖는 활성 요청 라인을 갖는 버스 상에 부가적인 장치가 없다는 조건이 존재한다(표 4에 기재된 바와 같음). 여기에서, 모든 공정성 비트는 중재자(312)에 의해 "0" 으로 리셋되고 공정성 사이클은 표 5에 도시된 바와 같이 다시 시작할 수 있다.
제1 기회, 제2 사이클
장치 우선순위 버스를 차지할기회 요청이 발생하였는가? 재시도가 수신되었는가? 공정성 비트이전/이후
브리지 - - 아니오 - 0
장치 A 아니오 0/1
장치 B - - - 0
장치 C - - - 0
장치 D - - 아니오 - 0
이러한 해결 방법에 있어서, 중재자(312)는 동작중인 장치에 대해 버스에 대한 액세스를 거절할 수 있으며, 반면에 이전에 재시도를 수신한 장치에 대해 공정성 사이클 동안 버스에 대한 별도의 액세스를 허가한다는 것에 주목해야 한다. 타이머는 재시도에 뒤따르는 버스 상의 유유 시간을 제한한다. 그러므로, 재시도를 수신한 장치들 중 하나가 타이머의 시간이 경과했을 때 버스를 사용하려고 시도하지 않는다면, 모든 장치에 대한 공정성 비트는 0으로 리셋될 것이며 새로운 공정성 사이클이 시작한다.
본 발명은 특정한 실시예와 관련하여 설명되었지만, 이러한 설명은 제한적인 의미로 해석되어서는 안된다. 본 발명의 대체적인 실시예는 물론 개시된 실시예의 다양한 변경이 본 발명의 설명과 관련하여 관련 기술분야의 당업자들에 의해 실시될 수 있다는 것은 자명하다. 그러므로, 본 발명의 청구범위에 기재된 본 발명의 범위내에서 이러한 변경이나 구현이 가능한 것으로 이해해야 한다.
요약하면, 본 발명의 중재자는 종래 기술과 비교하여 몇가지 상당한 이점을 갖는다. 본 발명에 따르면, 중재 레벨은 균등하게 유지될 수 있고, 버스를 차지할 기회를 갖기 위한 재시도를 수신하는 각각의 장치는 버스상의 트랜잭션이 처리될 때까지(동작될 때까지) 동일한 공정성 사이클 동안 버스를 차지할 별도의 기회를 부여받을 수 있다. 그러므로, 어떤 장치도 재시도 신호 때문에 버스에 대한 액세스가 거절되지는 않는다.

Claims (20)

  1. 컴퓨터 시스템에 있어서,
    마이크로프로세서와,
    버스 브리지를 통해 상기 마이크로프로세서에 접속되는 로컬 버스-상기 버스 브리지는 상기 마이크로프로세서와 상기 로컬 버스 사이의 데이터 전송을 위해 구성됨-와,
    상기 버스에 접속된 다수의 버스 장치로부터의 버스 요청 신호를 제어하고 우선순위를 부여하기 위해 상기 버스 브리지내에 버스 중재자를 포함하며, 상기 버스 중재자는 다른 버스 장치에 대한 상기 제1 버스 장치의 소정의 우선순위와 공정성 사이클 내에서 상기 버스에 대한 상기 제1 버스 장치의 이전 액세스를 바탕으로 하여 상기 다수의 버스 장치의 제1 버스 장치에 대한 상기 버스의 제어를 허가하기 위한 로직을 포함하는 컴퓨터 시스템.
  2. 제1항에 있어서, 상기 버스 중재자는, 상기 공정성 사이클 내에 상기 버스에 대한 버스 장치의 이전의 성공하지 못한 액세스에 응답하여 제어를 허가하며, 상기 공정성 사이클 내에서 각각의 버스 장치의 이전의 액세스가 성공적이라면 다른 버스 장치에 대한 상기 제1 버스 장치의 상기 소정의 우선순위에 응답하여 제어를 허가하는 로직을 더 포함하는 컴퓨터 시스템.
  3. 제2항에 있어서, 상기 이전의 액세스는 상기 제1 버스 장치가 상기 버스에 대한 액세스를 수신하고 상기 제1 버스 장치가 재시도 신호를 수신하지 않을 때 적어도 하나의 플래그를 설정함으로써 기록되는 컴퓨터 시스템.
  4. 제3항에 있어서, 상기 제1 버스 장치의 우선순위는 상기 공정성 플래그가 설정될 때 다른 요청 신호의 우선순위 보다 낮게 설정되는 컴퓨터 시스템.
  5. 제3항에 있어서, 상기 각각의 공정성 플래그는 상기 중재자에 의해 제어가능한 데이터 레지스터 유닛내의 1 비트를 포함하는 컴퓨터 시스템.
  6. 제4항에 있어서, 상기 버스 중재자에 접속된 타이머를 더 포함하며, 상기 타이머는 재시도 신호가 버스 장치에 보내졌을 때 시작되며, 상기 타이머에 의해 결정된 소정 시간이 경과한 후에 모든 공정성 플래그는 비설정 상태로 복귀하는 컴퓨터 시스템.
  7. 제1항에 있어서, 상기 공정성 사이클은 상기 버스가 유유 상태(idle)일 때 적어도 하나의 버스 요청에 응답하여 개시하고 요청한 버스 장치 각각이 상기 버스상에서 전송을 성공적으로 완료했을 때 종료하는 컴퓨터 시스템.
  8. 다수의 버스 장치에 접속하기 위한 버스를 갖는 컴퓨터 시스템용 버스 중재자로서, 각각의 버스 장치가 버스 요청 신호를 사용하여 상기 버스의 제어를 요청하는 버스 중재자에 있어서,
    각각의 버스 장치의 소정의 우선순위와 공정성 사이클 내에서 각각의 버스 장치의 이전의 액세스를 바탕으로 버스 요청 신호를 제어하고 우선순위를 부여하기 위한 공정성 스키마를 포함하는 로직과,
    상기 우선순위 부여 스키마와 공정성 스키마를 바탕으로 버스 장치에 상기 버스의 제어를 행하기 위한 로직을 포함하는 버스 중재자.
  9. 제8항에 있어서, 상기 이전의 액세스는 제1 버스 장치가 상기 버스에 대한 액세스를 수신하고 제1 버스 장치가 재시도 신호를 수신하지 않을 때 대응하는 플래그를 설정함으로써 기록되는 버스 중재자.
  10. 다수의 버스 장치에 접속하기 위한 버스를 갖는 컴퓨터 시스템에서 버스 중재를 위한 방법으로서, 각각의 버스 장치는 버스 요청 신호를 사용하여 상기 버스의 제어를 요청하는 것인 중재 방법에 있어서,
    (a) 상기 다수의 버스 장치 중 다른 장치에 대해 버스 장치의 소정 우선순위에 응답하여 상기 다수의 버스 장치로부터 상기 버스에 대한 액세스를 위해 제1 버스 장치를 선택하는 단계를 포함하며, 상기 플래그는 상기 버스를 통한 정보의 교환에 영향을 주는 대응하는 버스 트랜잭션에 응답하여 제2 로직 상태로 설정하도록 사용가능한 것인 버스 중재 방법.
  11. 제10항에 있어서,
    (b) 재시도 신호가 수신되었는 지를 판정하고, 상기 재시도 신호가 수신되지 않았다면, 상기 대응하는 플래그를 상기 제2 로직 상태로 설정하는 단계와,
    (c) 모든 요청이 처리될 때까지 단계 (a) 내지 (c)를 반복하는 단계를 더 포함하는 버스 중재 방법.
  12. 제10항에 있어서, 상기 단계(a)는 상기 제1 버스 장치를 선택하는 단계 이전에 공정성 사이클을 시작하는 부가적인 단계를 더 포함하는 버스 중재 방법.
  13. 제11항에 있어서,
    (d) 단계 (a)에서 상기 버스 장치를 선택한 것을 바탕으로 상기 버스에 액세스를 허가하는 단계를 더 포함하는 버스 중재 방법.
  14. 제13항에 있어서, 어떤 요청도 발생되지 않은 경우 소정 시간이 만기되었는지를 판정하고, 소정 시간이 만기되지 않았다면 단계 (b)를 반복하며, 상기 경과 시간이 만기되었다면 단계 (d), (b) 및 (c)를 반복하는 단계를 더 포함하는 버스 중재 방법.
  15. 제10항에 있어서,
    (b) 대응하는 플래그가 모두 상기 제2 로직 상태에 있다면 현재 공정성 사이클이 종료하고 상기 버스 액세스는 상기 소정 우선순위에 응답하여 결정되는 단계를 더 포함하는 버스 중재 방법.
  16. 제10항에 있어서,
    (b) 상기 버스에 대한 상기 다수의 액세스를 요청하는 각각의 장치에 대응하는 모든 플래그가 상기 제2 로직 상태에 있을 때까지 단계 (a)를 반복하는 단계를 더 포함하는 버스 중재 방법.
  17. 버스의 제어를 위해 다수의 버스 장치 요청을 중재하기 위한 방법을 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터에 의한 판독가능한 기록매체에 있어서, 상기 방법은,
    (a) 공정성 사이클을 시작하는 단계와,
    (b) 다수의 플래그를 초기 상태로 설정하는 단계와,
    (c) 상기 다수의 버스 장치 중의 다른 장치에 대해 버스 장치의 가장 높은 우선순위와, 대응하는 플래그가 이전에 설정되어 있지 않은지를 바탕으로 상기 다수의 버스 장치로부터 단일 버스 장치를 선택하는 단계와,
    (d) 재시도 신호가 수신되었는 지를 판정하고, 상기 재시도 신호가 수신되지 않았다면 상기 대응하는 플래그를 설정하며, 상기 단계 (d) 내지 (e)를 반복하는 단계와,
    (e) 상기 공정성 사이클 내의 모든 요청 신호가 처리될 때까지 단계 (c) 내지 (e)를 반복하는 단계를 포함하는
    컴퓨터판독가능기록매체.
  18. 제17항에 있어서, 어떤 요청도 발생되지 않았다면 상기 소정 시간이 만기되었는지를 판정하고, 상기 소정 시간이 만기되지 않았다면 단계 (c)를 반복하며, 경과 시간이 만기되면 단계 (b) 내지 (c)를 반복하는 단계를 더 포함하는 상기 방법을 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터판독가능기록매체.
  19. 제17항에 있어서, 상기 모든 플래그가 설정되면, 상기 소정 우선순위에 응답하여 버스 장치가 버스에 액세스하는 것을 선택하는 단계를 더 포함하는 상기 방법을 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터판독가능기록매체.
  20. 제17항에 있어서,
    (b) 버스 액세스를 요청하는 상기 다수의 버스 장치 중의 각각의 장치에 대응하는 모든 플래그가 설정될 때까지 단계 (a)를 반복하는 단계를 더 포함하는 상기 방법을 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터판독가능기록매체.
KR10-2000-0041332A 1999-07-29 2000-07-19 가변 우선순위와 공정성을 사용하는 개선된 버스 중재자 KR100368948B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US9/363,947 1999-07-29
US09/363,947 1999-07-29
US09/363,947 US6718422B1 (en) 1999-07-29 1999-07-29 Enhanced bus arbiter utilizing variable priority and fairness

Publications (2)

Publication Number Publication Date
KR20010029970A KR20010029970A (ko) 2001-04-16
KR100368948B1 true KR100368948B1 (ko) 2003-01-24

Family

ID=23432401

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0041332A KR100368948B1 (ko) 1999-07-29 2000-07-19 가변 우선순위와 공정성을 사용하는 개선된 버스 중재자

Country Status (7)

Country Link
US (1) US6718422B1 (ko)
JP (1) JP4010476B2 (ko)
KR (1) KR100368948B1 (ko)
CN (1) CN1155894C (ko)
BR (1) BR0003217A (ko)
SG (1) SG97158A1 (ko)
TW (1) TW552512B (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7529268B1 (en) * 2001-09-27 2009-05-05 Hamilton Sundstrand Corporation Multi-point electronic control system protocol
US20030229743A1 (en) * 2002-06-05 2003-12-11 Brown Andrew C. Methods and structure for improved fairness bus arbitration
US7065596B2 (en) * 2002-09-19 2006-06-20 Intel Corporation Method and apparatus to resolve instruction starvation
US6990541B2 (en) * 2002-11-22 2006-01-24 Sun Microsystems, Inc. Arbitration unit for prioritizing requests based on multiple request groups
US7065595B2 (en) * 2003-03-27 2006-06-20 International Business Machines Corporation Method and apparatus for bus access allocation
DE102004024849B4 (de) * 2003-05-23 2008-11-27 Samsung Electronics Co., Ltd. Arbitrierungseinheit, zugehöriges Bussystem und Arbitrierungsverfahren
WO2005003981A1 (ja) * 2003-07-02 2005-01-13 Fujitsu Limited ステータス通知装置およびステータス通知方法
JP2005092780A (ja) * 2003-09-19 2005-04-07 Matsushita Electric Ind Co Ltd リアルタイムプロセッサシステム及び制御方法
US7065594B2 (en) * 2003-09-23 2006-06-20 Tellabs Petaluma, Inc. Method and apparatus of allocating minimum and maximum bandwidths on a bus-based communication system
US7200732B2 (en) * 2004-01-23 2007-04-03 Tellabs Petaluma, Inc. Method and apparatus of adding grant information to a memory
CN100345128C (zh) * 2004-02-25 2007-10-24 中国科学院计算技术研究所 基于动态优先级的总线仲裁器和动态改变优先级的方法
DE602004019990D1 (de) * 2004-08-30 2009-04-23 Magima Digital Information Co Verfahren und system zum datentransfer
US7366811B2 (en) * 2004-12-23 2008-04-29 International Business Machines Corporation Bus arbitration system
JP2007087247A (ja) * 2005-09-26 2007-04-05 Nec Electronics Corp バス制御システム
CN100471156C (zh) * 2007-03-07 2009-03-18 今创集团有限公司 数据总线桥接器及其工作方法
US7653773B2 (en) * 2007-10-03 2010-01-26 International Business Machines Corporation Dynamically balancing bus bandwidth
US7752369B2 (en) * 2008-05-09 2010-07-06 International Business Machines Corporation Bounded starvation checking of an arbiter using formal verification
CN101995844B (zh) * 2009-08-25 2012-08-29 北京广利核系统工程有限公司 一种具有优先级控制功能的继电器模块
JP5489770B2 (ja) * 2010-02-17 2014-05-14 キヤノン株式会社 印刷装置、制御方法及びプログラム
US8370553B2 (en) 2010-10-18 2013-02-05 International Business Machines Corporation Formal verification of random priority-based arbiters using property strengthening and underapproximations
US9516372B2 (en) 2010-12-10 2016-12-06 Lattice Semiconductor Corporation Multimedia I/O system architecture for advanced digital television
US9432298B1 (en) 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
CN102902640B (zh) * 2012-09-28 2015-07-08 杭州中天微系统有限公司 用于一致性多核处理器的请求仲裁方法及装置
CN103257942B (zh) * 2013-03-27 2015-12-02 青岛中星微电子有限公司 一种片上系统共享总线请求处理的方法及装置
US20140333779A1 (en) * 2013-05-13 2014-11-13 Electronics And Telecommunications Research Institute Apparatus for distributing bus traffic of multiple camera inputs of automotive system on chip and automotive system on chip using the same
JP6193910B2 (ja) * 2015-04-03 2017-09-06 ファナック株式会社 インタロックバスとスプリットバスを接続するブリッジ回路を備えたバスシステム
CN108508810A (zh) * 2018-05-08 2018-09-07 深圳市智汇牛科技有限公司 一种基于仲裁机制的自动厨房领域多设备竞争资源方法
CN110502461B (zh) * 2019-08-27 2023-03-24 深圳市中物互联技术发展有限公司 一种基于rs485通讯协议的高效数据采集方法
CN110674065B (zh) * 2019-10-09 2021-01-15 上海钧正网络科技有限公司 一种在总线上的竞争仲裁方法和系统
CN115580585B (zh) * 2022-11-17 2023-05-12 沐曦集成电路(南京)有限公司 一种基于仲裁器的均衡仲裁方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5388228A (en) 1987-09-30 1995-02-07 International Business Machines Corp. Computer system having dynamically programmable linear/fairness priority arbitration scheme
US5072363A (en) * 1989-12-22 1991-12-10 Harris Corporation Multimode resource arbiter providing round robin arbitration or a modified priority arbitration
US5301333A (en) 1990-06-14 1994-04-05 Bell Communications Research, Inc. Tree structured variable priority arbitration implementing a round-robin scheduling policy
US5440752A (en) 1991-07-08 1995-08-08 Seiko Epson Corporation Microprocessor architecture with a switch network for data transfer between cache, memory port, and IOU
US5546548A (en) * 1993-03-31 1996-08-13 Intel Corporation Arbiter and arbitration process for a dynamic and flexible prioritization
CA2115731C (en) * 1993-05-17 2000-01-25 Mikiel Loyal Larson Dynamically programmable bus arbiter with provisions for historical feedback and error detection and correction
US5509125A (en) 1993-09-29 1996-04-16 Silicon Graphics, Inc. System and method for fair arbitration on a multi-domain multiprocessor bus
US5471590A (en) * 1994-01-28 1995-11-28 Compaq Computer Corp. Bus master arbitration circuitry having improved prioritization
EP0665501A1 (en) 1994-01-28 1995-08-02 Compaq Computer Corporation Bus master arbitration circuitry with retry mechanism
US5881313A (en) 1994-11-07 1999-03-09 Digital Equipment Corporation Arbitration system based on requester class and relative priority including transmit descriptor valid bit for a shared resource having multiple requesters
US5706446A (en) 1995-05-18 1998-01-06 Unisys Corporation Arbitration system for bus requestors with deadlock prevention
US5644733A (en) * 1995-05-18 1997-07-01 Unisys Corporation Dual coupled partitionable networks providing arbitration logic for managed access to commonly shared busses
US5572686A (en) 1995-06-05 1996-11-05 Apple Computer, Inc. Bus arbitration scheme with priority switching and timer
US5778200A (en) 1995-11-21 1998-07-07 Advanced Micro Devices, Inc. Bus arbiter including aging factor counters to dynamically vary arbitration priority
US5805840A (en) 1996-03-26 1998-09-08 Advanced Micro Devices, Inc. Bus arbiter employing a transaction grading mechanism to dynamically vary arbitration priority
US5842025A (en) 1996-08-27 1998-11-24 Mmc Networks, Inc. Arbitration methods and apparatus
DE69632634T2 (de) * 1996-12-13 2005-06-09 Bull S.A. Arbitrierungseinheit zum Multiprozessorsystembuszugriff mit Wiederholungsfähigkeit
US6006303A (en) * 1997-08-28 1999-12-21 Oki Electric Industry Co., Inc. Priority encoding and decoding for memory architecture
US6202112B1 (en) 1998-12-03 2001-03-13 Intel Corporation Arbitration methods to avoid deadlock and livelock when performing transactions across a bridge
US6272580B1 (en) * 1999-03-16 2001-08-07 Compaq Computer Corp. Apparatus and method for dynamically elevating a lower level bus master to an upper level bus master within a multi-level arbitration system

Also Published As

Publication number Publication date
SG97158A1 (en) 2003-07-18
US6718422B1 (en) 2004-04-06
JP4010476B2 (ja) 2007-11-21
KR20010029970A (ko) 2001-04-16
CN1155894C (zh) 2004-06-30
CN1282924A (zh) 2001-02-07
JP2001075918A (ja) 2001-03-23
BR0003217A (pt) 2001-03-13
TW552512B (en) 2003-09-11

Similar Documents

Publication Publication Date Title
KR100368948B1 (ko) 가변 우선순위와 공정성을 사용하는 개선된 버스 중재자
US5301283A (en) Dynamic arbitration for system bus control in multiprocessor data processing system
KR0167818B1 (ko) 버스 중재 시스템, 버스 중재 회로, 버스 중재 방법 및 데이타 전송 방법
US5996037A (en) System and method for arbitrating multi-function access to a system bus
RU2372645C2 (ru) Схема арбитража доступа к шине
JP3231596B2 (ja) 待ち時間及びシャドー・タイマを有するバス・システム
US6467002B1 (en) Single cycle modified round-robin arbitration with embedded priority
US6295568B1 (en) Method and system for supporting multiple local buses operating at different frequencies
JP3232283B2 (ja) Pciバスをサポートするコンピュータ・システム
US6519666B1 (en) Arbitration scheme for optimal performance
US5469435A (en) Bus deadlock avoidance during master split-transactions
US6131135A (en) Arbitration method for a system with two USB host controllers
US6598104B1 (en) Smart retry system that reduces wasted bus transactions associated with master retries
JPH0773137A (ja) 多レベル・バス・アービトレーションのための方法、アダプタおよびシステム
JP2001318880A (ja) トランザクションのスケジューリング方法
US6959354B2 (en) Effective bus utilization using multiple bus interface circuits and arbitration logic circuit
US7487276B2 (en) Bus arbitration system
US6804736B2 (en) Bus access arbitration based on workload
US6430640B1 (en) Self-arbitrating, self-granting resource access
US6822976B1 (en) Method and apparatus for high throughput multiplexing of data
KR100237983B1 (ko) 주 및 부 디바이스에 대한 데이터 버스의 승인들을 균등화하기위한 방법 및 장치
US6826644B1 (en) Peripheral component interconnect arbiter implementation with dynamic priority scheme
EP1811394B1 (en) An arbitrator and its arbitration method
US6370593B1 (en) Apparatus for multiplexing bus interfaces on a computer expansion
JPH1125036A (ja) 調停システム、およびアクセスを調停する方法

Legal Events

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

Payment date: 20070104

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee