KR0167818B1 - 버스 중재 시스템, 버스 중재 회로, 버스 중재 방법 및 데이타 전송 방법 - Google Patents
버스 중재 시스템, 버스 중재 회로, 버스 중재 방법 및 데이타 전송 방법 Download PDFInfo
- Publication number
- KR0167818B1 KR0167818B1 KR1019960009660A KR19960009660A KR0167818B1 KR 0167818 B1 KR0167818 B1 KR 0167818B1 KR 1019960009660 A KR1019960009660 A KR 1019960009660A KR 19960009660 A KR19960009660 A KR 19960009660A KR 0167818 B1 KR0167818 B1 KR 0167818B1
- Authority
- KR
- South Korea
- Prior art keywords
- bus
- master
- arbitration
- slave
- transaction
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000005067 remediation Methods 0.000 claims description 21
- 230000008901 benefit Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000002093 peripheral effect Effects 0.000 claims description 4
- 230000008707 rearrangement Effects 0.000 claims 1
- 230000007246 mechanism Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
요구된 트랜잭션을 종료시키도록 슬레이브가 준비되지 않은 경우 슬레이브가 마스크 레지스터(mask register)내의 마스크 비트(mark bit)를 세트하는 마스크 신호를 단정하는 분할 트랜잭션 버스 프로토콜(split transaction bus protocols)을 인에이블하는 중재에 대한 배치 및 방법이 제공된다. 요구 마스터(requesting master)는 마스크 비트가 레지스터내에서 세트되는 동안 버스로부터 분리되어 재중재(re-arbitrating)가 방진된다. 슬레이브가 트랜잭션을 종료시키도록 준비되어 있는 경우, 해제 마스터 신호(release masster signal)가 단정되어 쉬프트 레지스터(shift register)내의 비트가 리세트되도록 한다. 그리고나서 이 요구 마스터는 버스 이용을 재중재하여 트랜잭션을 종료시킬 수 있다. 버스의 이용가능한 대역폭이 증가되는데 그 이유는 다른 마스터가 제1요구 마스터와의 트랜잭션을 종료시키도록 준비될 때까지 중재하는 버스를 이용하긱 때문이다.
Description
제1도는 본 발명의 중재 메카니즘 및 방법을 이용하고, 중앙 중재 장치를 포함하는 시스템을 나타내는 블럭도.
제2도는 제1도와 유사하나, MASTER-ID 버스를 이용하지 않는 실시예를 나타내는 블럭도.
제3도는 본 발명의 중재 방법의 예시적인 실시예를 예시하는 흐름도.
* 도면의 주요부분에 대한 부호의 설명
10, 12 : 클러스터 20 : 메모리 제어기
22 : 중앙 중재자 26, 28 : 마스터
30 : PCI 버스
본 발명은 버스를 통한 정보의 전송에 관한 것으로, 특히, 버스에 접속된 다수의 마스터 및 슬레이브(a plurality of masters and slaves)간의 버스 이용을 중재하는 중재 방법 및 장치에 관한 것이다.
퍼스널 컴퓨터에서, 입력/출력(I/O) 버스의 이용은 이 버스가 적절히 설계되고 구현되지 않은 경우 제한 인자가 될 수 있다. 산업 표준 아키텍처(ISA) 버스와 같은 특정의 I/O 버스는, 광범위한 비디오 및 직접 액세스 기억 장치(DASD) 액세스를 요구하지 않는 단일 사용자 퍼스널 컴퓨터에 적합하다. 그러나, 멀티-태스킹 운영 체제(multi-tasking operating systems) 및 멀티-프로세서(multi-processor; MP) 하드웨어의 출현에 따라, 비디오 및 DASD 서브시스템은 이용가능한 I/O 버스 및 메모리 서브시스템 대역폭을 처리한다. 이것은 전체적으로 시스템의 성능을 엄격히 제한할 수 있다. 이러한 문제점을 해결하기 위한 시도는 마이크로채널 및 EISA 버스와 같은 새롭고 보다 빠른 I/O 버스의 이용을 수반한다. 부분적으로는 성공적이라고 하더라도, 보다 빠른 버스에 대한 필요성이 명백해진다. 이용할 수 있게 된 보다 빠른 I/O 장치(버스 마스터)에 의해 이들 보다 빠른 버스가 필요하게 된다. 이전의 버스들은 (DASD, LAN, 비디오 어댑터와 같은) 다수의 마스터가 동일한 I/O 버스상에 상주하는 특히 워크스테이션 및 서버에서 압도되어 왔다.
보다 빠른 I/O 버스에 대한 현재의 필요성을 충족시키기 위한 시도에 있어서 퍼스널 컴퓨터 산업은 주변 소자 인터페이스(peripheral component interface: PCI) 버스로서 알려진 버스 표준으로 최근에 정의되었다. PCI 버스는 잘 알려져 있으며 이 버스에 대한 명세서는 현재 본 명세서에서 참조로서 인용된다.
PCI 버스는 높은 처리량을 갖는 범용 표준 버스이다. 현재 상술된 바와 같은, PCI 버스는 264 MB/sec 까지 전송하는 이론적인 포텐셜을 갖는다. 그러나, 이러한 성능은 통상 얻어질 수 없는데 그 이유는 슬레이브 장치(전형적으로 메모리)가 이러한 높은 속도로 데이타를 액세스하거나 또는 저장할 수 없기 때문이다. 대개의 메모리 서브시스템은 40-80MB/sec 데이타 전송 속도로 제한된다. 그리고나서 슬레이브 장치는 전송의 어드레스 및 데이타 단계사이에 대기 상태가 삽입되어야 한다. 이것은 실질적인 대역폭을 이론적인 최대 대역폭의 1/2 또는 1/4로 용이하게 줄일 수 있다. 따라서 PCI 버스의 이용가능한 대역폭을 그의 이론적인 최대값으로 증가시키는 것이 바람직하다.
전형적인 컴퓨터 시스템에는, 데이타 전송에 대해 통상 세단계가 존재한다. 즉, (1) 중재 단계; (2) 어드레스/커맨드 단계(이하 어드레스 단계); 및 (3) 실질적인 데이타 전송 단계
PCI 버스는 데이타 단계가 항상 어드레스 단계를 즉시 뒤따르는 버스로서 정의되는 접속된 트랜잭션 버스(connected transaction bus)이다. 즉, 어드레스 단계 및 데이타 단계가 접속됨에 따라 데이타 단계동안 전송된 데이타는 데이타 단계에 바로 선행하는 버스상에 위치된 어드레스와 항상 연관된다. PCI 버스는 중재 단계가 어드레스 및 데이타 단계와 오버랩(overlap)하도록 허용하나, 어드레스 및 데이타 단계가 오버랩하도록 허용하지 않으면, 데이타 단계가 어드레스 단계에 대한 순서와 상관없이 발생하도록 한다.
대조적으로, 분할 트랜잭션 버스(split transaction bus)로서 알려진 버스는 전형적으로 데이타 전송에 대해 네 단계를 갖는다. 즉, (1) 어드레스 중재 단계; (2) 어드레스/커맨드 단계; (3) 데이타 중재 단계; 및 (4) 데이타 전송 단계
분할 트랜잭션 버스에서 데이타 단계는 버스상에 위치된 연관된 어드레스 단계를 즉시 뒤따를 필요는 없다. 대응하는 어드레스 단계가 발생하는 것과 동일한 순서로 데이타 단계가 발생할 필요는 없다. 따라서, 임의의 데이타가 반환되기 전에 마스터가 다수의 어드레스 단계를 실행시키는 것이 가능하다. 제2마스터의 데이타 단계를 제1마스터의 데이타 단계와 오버랩하는 것이 또한 가능하다. 분할 트랜잭션 버스에 있어서 어드레스 중재는 연결된 트랜잭션 버스의 중재와 유사하다. 그러나, 한가지 차이점은, 어드레스 단계상에서, 마스터는 어드레스/커맨드 신호 및 트랜잭션 식별(ID)을 단정하고 그리고나서 즉시 어드레스 버스를 해제(release)한다는 점이다. 그리고나서 마스터는 슬레이브가 데이타를 반환할 때까지 대기하거나 또는 어드레스 버스에 대해 재중재(rearbitrate)하고 부가적인 어드레스 단계를 실행한다. 슬레이브는 어드레스 단계동안 송출된 어드레스/커맨드 및 마스터 식별을 저장하고 그리고나서 전송을 종료하도록 준비가 된 경우 데이타 버스에 대해 중재한다. 슬레이브가 데이타 버스에 승인되는 경우, 이것은 트랜잭션 ID를 버스상에 위치시킴과 동시에 데이타를 데이타 버스상에 위치시킨다. 그다음에 마스터는 자신의 트랜잭션 ID를 인식하고 데이타를 채택함에 따라 트랜잭션을 종료시킨다.
분할 트랜잭션 버스와 대조적으로, 종래의 PCI 버스는 어드레스/커맨드 및 식별의 단정시에 어드레스 버스를 즉시 해제하는 마스터를 이용하지 않는다. 대신에, 종래의 PCI 버스상에서, 트랜잭션을 종료시키도록 준비되어 있지 않다는 슬레이브에 의한 신호는 마스터가 재시도(retry)하도록 한다(백-오프(back-off)/재시도 특성). 이것은 PCI 마스터가 즉시 재중재하도록 하게 하여 트랜잭션을 다시 재시도한다. 마스터는 정상적으로 버스를 계속 요구할 것이고 슬레이브가 준비될 때까지 동일한 트랜잭션을 계속 재시도하여, 다른 마스터가 버스를 이용하는 것을 보다 어렵게 한다. 이것은 PCI 버스의 이용가능한 대역폭을 감소시킨다.
PCI 버스와 같은 접속된 트랜잭션 버스가 분할 트랜잭션 버스 방식으로 동작하도록 하여 이용가능한 대역폭을 증가시키는 중재 메카니즘 및 배치에 대한 필요성이 존재한다. 특히 PCI 버스에 대해, PCI 아키텍처에 영향을 주지 않거나 현재의 또는 장래의 PCI 마스터가 변화하는 것을 필요로 하지 않고 분할 트랜잭션을 허용할 필요성이 존재한다.
이들 및 다른 필요성은 버스, 이 버스에 접속되어 버스에 대한 중재를 요구하고 버스가 승인되는 때에 트랜잭션을 개시하는 로직을 구비하는 다수의 마수터(a plurality of masters), 상기 버스에 접속된 다수의 슬레이브(a plurality of slaves)로서, 그들 중 적어도 하나는 트랜잭션을 종료시키기 위한 슬레이브의 준비상태(readiness)를 표시하는 로직을 구비하는 버스에 접속된 상기 다수의 슬레이브, 및 중재자(arbitrator)를 포함하는 시스템을 제공하는 본 발명에 의해 충족된다. 이 중재자는 트랜잭션이 요구되었던 슬레이브가 트랜잭션을 종료시키도록 준비되지 않은 경우 마스터를 버스로부터 분리하는 로직을 구비한다. 슬레이브가 트랜잭션을 종료시키도록 준비될 때까지 마스터의 버스에 대한 재중재를 방지하는 로직이 또한 제공된다.
슬레이브는 트랜잭션을 종료시키기 위해 준비될 때까지 마스터의 버스에 대한 재중재를 방지함으로써, 버스는 다른 마스터에 의해 이용이 자유롭게 된다. 이것은 버스의 이용가능한 대역폭에 있어서 그의 이론적인 초대 포텐셜로 직접 증가시킨다.
본 발명의 특정 실시예에서, 슬레이브는 요구된 트랜잭션을 종료시키도록 준비되지 않음을 표시하는 제1신호를 단정할 것이다. 이 신호는 요구 마스터에 대응하는 마스크 비트(마스크 표시기)가 마스크 레지스터내에서 세트되도록 한다.
본 발명의 바람직한 실시에는 마스크 레지스터가 위치되는 중앙 중재자를 이용한다. 일단 이러한 마스크 비트가 세트되면, 마스크는 버스를 계속 요구할 수 있으나, 중앙 중재자는 요구를 무시할 것이고 마스크된 마스터에 버스를 승인하지 않을 것이다.
요구 마스터가 버스에 대해 활성적으로 중재하도록 하기 위해, 트랜잭션을 종료시키도록 준비되어 있는 슬레이브가 제2신호를 전송할 것이며, 이 제2신호는 요구 마스터에 대응하는 마스크 비트가 리세트되도록 하는 마스크 해제 신호를 구비한다. 이것은 마스터가 버스 이용에 대해 재중재하고 트랜잭션을 종료하도록 한다.
본 발명의 특정 실시예는 마스터가 버스에 승인될 때까지 마스크가 리세트되었던 마스터에 최고 중재 우선순위를 일시적으로 할당하는 수단을 포함한다. 일단 승인되면, 마스터의 우선순위는 자신의 최초 값으로 복귀한다. 이것은 마스크되지 않은 마스터가 버스에 승인될 다음 장치가 되어 적절한 방식으로 분할 트랜잭션을 종료시키도록 보장하는 장점을 갖는다.
마스터 식별 버스의 이용을 피하기 위해, 본 발명의 특정 실시예는 슬레이브 중 임의의 한 슬레이브에 의해 제2신호의 단정시 마스크되었던 모든 마스터를 해제한다. 마스크되지 않았던 마스터에 우선순위가 승인되나, 트랜잭션이 요구되는 슬레이브가 트랜잭션을 종료시키도록 준비되지 않은 경우, 이 마스터는 단순히 재마스크(remask)되고 나머지 마스크되지 않은 마스터들이 재중재한다. 이것은 현재 종료되도록 준비되어 있는 트랜잭션을 요구한 마스터가 버스에 대한 중재를 획득할 때까지 발생한다. 본 방법은 마스터 식별 버스의 이용보다 덜 효율적인 분할 트랜잭션을 실행하는 방법이다. 그러나, 본 실시예는 하드웨어에 대해 구현하는데 있어 보다 저가이며 보다 간단한 장점을 갖는다.
본 발명의 전술한 내용과 다른 목적, 특징, 측면 및 장점은 첨부되는 도면과 함께 취해지는 본 발명의 다음 상세한 설명으로부터 보다 명백해질 것이다.
다음의 상세한 설명에서 이용되는 접속된 트랜잭션 버스의 일예는 PCI 버스이다. 그러나, 백오프/재시도 특성을 갖는 접속된 트랜잭션 버스인 다른 버스들은 본 발명의 중재 메카니즘과 함께 이용될 수 있다.
시스템 배치는 멀티-프로세서 아키텍처가 예시되어 있는 제1도에 도시되어 있다 하더라도, 본 발명은 단일-프로세서 애플리케이션에도 적용가능하다. 제1도에 예시된 멀티-프로세서 아키텍처는 공유 일관성 분산 메모리(shared coherent distributed memory)를 갖는 대칭적인 멀티-프로세서 아키텍처이다. 예시적인 아키텍처는 멀티-프로세서 버스가 중간-클러스터 링크(14)에 의해 연결되는 제1클러스터(10)와 제2클러스터(12)를 구비한다. 각 멀티-프로세서 클러스터(10, 12)는 그 클러스터의 멀티-프로세서 버스(19)에 접속된 다수의 CPU(16, 18)를 갖는다. 멀티-프로세서 버스(19)는 메모리 제어기(20)에 접속된다. 이 메모리 제어기(20)는 CPU(16, 18)와 같은 프로세와 I/O 마스터(26, 28)에 데이타를 제공한다. I/O 마스터(26, 28)는 PCI 버스(30)를 통해 메모리 제어기(20) 및 PCI 중앙 중재자(22)에 접속된다.
제1도에 기술된 아키텍처에서, 데이타 전송의 지연이 커질 수 있고, 성능 및 이용가능한 버스 대역폭 모두에 여향을 줄 것이다. 이것은 제1클러스터(10)의 마스터(26)와 같은 PCI 버스(30)상의 마스터가 클러스터(12)상에 위치된 메모리에 위치된 데이타를 판독하는 경우 특히 명백해진다. 메모리로부터의 응답 데이타에 대한 전체 지연은 캐쉬 라인의 전송을 위해, 3 마이크로초로 연장할 수 있다. 이것은 32 바이트 전송을 위해 3 마이크로초동안 PCI 버스를 구속할 수 있고, 이용가능한 PCI 버스 대역폭을 크게 제한한다. 그러나, 본 발명의중재 메카니즘은 PCI 아키텍처에 영향을 주지 않고 현재의 PCI 마스터가 변화하는 것을 필요로 하지 않고 전체 버스 대역폭을 증가시킨다.
본 발명은 메모리 제어기(20)와 PCI 중재자(22)사이에 세 사이드밴드 신호의 통신을 제공한다. 이들 신호는 MASK_MASTER, REL_MASTER 및 MASTER_ID이다. 본 발명의 중재 메카니즘에 의한 이들 신호의 이용은 이하 보다 자세히 기술되어 있다.
설명의 용이를 위해, 다음의 동작 일예에서, 마스터(26)는 클러스터(10)와 같은 자신의 클러스터의 메모리 제어기(20)와의 트랜잭션을 요구한다. 마스터(26)는 PCI 버스(30)의 이용을 위해 마스터(28)와 중재한다. 중앙 중재자(22)는 마스터(26)가 중재를 획득하고 마스터(26)가 PCI 버스(30)의 이용을 승인하는지의 여부를 결정하는 것으로 가정한다. 마스터(26)는 어드레스 및 제어 신호와, 메모리 제어기(20)로부터의 데이타를 요구하는 FRAME#를 단정한다. 종래 기술의 배치에서, 메모리 제어기(20)가 이러한 시점에서 데이타를 전송하도록 준비되어 있지 않은 경우, 제어기(20)가 트랜잭션을 종료시키도록 준비 할 때까지 대기 상태를 삽입할 것이다. 동시에, 마스터(28)와 같은 다른 마스터가 버스를 이용하려고 한다면, 이들은 버스를 이용할 수 없는데 그 이유는 마스터(26)와 메모리 제어기(20)사이의 트랜잭션이 버스를 점유하고 있기 때문이다. 종래 기술에서 이러한 중재 시퀀스가 발생하는데 그 이유는 트랜잭션을 위한 데이타 단계가 버스상에서 그 트랜잭션을 위한 어드레스 단계를 바로 뒤따르고 대기 상태가 카운트하고 있지 않은 정상적으로 접속된 트랜잭션 단계이기 때문이다.
본 발명의 장치 및 방법은 분할 트랜잭션을 수행하도록 함으로써 PCI 버스(30)의 이러한 제한을 극복한다. 이러기 위해서는, 요구 마스터(26)가 PCI 버스(30)로 부터 분리되고 메모리 제어기(20)가 트랜잭션을 종료하도록 준비되었음을 신호할 때까지 재중재가 방지된다. 이것은 이용가능한 대역폭을 증가시키는데 그 이유는 마스터(28)와 같은 다른 마스터가 이 시간동안 PCI 버스(30)를 중재하고 이용할 수 있기 때문이다. 본 발명은 두 부가적인 신호, 즉 PCI 버스상(30)의 사이드밴드 신호로서 제공되는 MASK_MASTER 신호 및 REL_MASTER 신호를 이용한다. 특정 실시예에서는 제3신호, 즉 MASTER_ID 신호가 이용되어 마스터가 마스크/해제되는지를 표시함으로써 버스 효율을 또한 증가시킨다.
본 발명의 방법의 실시예는 제3도에서 흐름도 형태로 예시된다. 본 실시예에서, 마스터(26)는 이 트랜잭션을 위한 슬레이브로서 동작하고 있는 메모리 제어기(20)와의 트랜잭션을 요구한다. 단계(50)에서, 마스터는 PCI 버스(30)의 이용을 위해 다른 마스터(28 등)와 중재한다. 중앙 중재자(22)는 요구 마스터(26)에 대응하는 마스크 비트가 중재자(22)내의 SPLIT_MAS 레지스터(23)에서 세트되었는지의 여부를 결정한다. 이것은 단계(52)에서 수행된다. 마스크 비트가 세트되지 않는 경우, 중재자(22)는 마스터(26)가 PCI 버스(30)를 중재하도록 한다. 마스터(26)에 버스가 승인되지 않는 경우(단계 54), 프로세스는 마스터(26)가 버스(30)의 이용을 계속 중재하는 단계(50)로 복귀한다.
이제 마스터가 중재를 획득했고 중재자(22)에 의해 버스(30)가 승인되었다고 가정한다. 위닝 마스터(winning master)(26)는 PCI 버스(30)상의 메모리 제어기(20)에 대해 FRAME#, 어드레스 및 제어 신호를 단정한다. 그다음에 슬레이브(메모리 제어기(20))가 트랜잭션을 종료시키도록 준비되어 있는지가 결정된다(단계 58). 메모리 제어기(20)가 준비된 경우, 요구된 데이타를 마스터(26)에 제공하여 트랜잭션을 종료시킬 것이다. 그다음에 정상 버스 중재(단계 78)가 뒤따른다.
메모리 제어기(28)가 트랜잭션을 종료시키도록 준비되지 않은 경우, 단계(60)에서 (슬레이브로서 동작하는) 메모리 제어기(20)는 신호 STOP#, MASK_MASTER, 및 MASTER_ID와 함께 신호 DEVSEL#를 단정한다. MASK_MASTER, 및 MASTER_ID 신호는 중재자(22)로 전송된다. PCI 버스(30)상의 제어기(20)에 의한 DEVSEL# 및 STOP# 신호의 단정은 마스터(26)를 재시도하도록 한다. 동시에, 중재자(22)는 중재자(22)의 SPLIT_MASK 레지스터(23)내에서 마스터(26)에 대응하는 SPLIT_MASK 비트를 세트한다(단계 62).
그의 SPLIT_MASK 비트가 SPLIT_MASK 레지스터(23)에서 세트되면, 단계(64)에서 마스터(26)가 버스(30)를 중재하도록 시도한다. 그다음에 단계(66)에서 제어기(20)(슬레이브)가 트랜잭션을 종료시키도록 준비되어 있는지의 여부가 결정된다. 준비되어 있지 않는 경우, SPLIT_MASK 비트가 유지되고(단계 68), 단계(70)에서 마스터(26)는 버스에 대해 재중재하는 기회가 부정된다. 그리고나서 단계(64)에서 마스터(26)는 버스에 대해 재중재하는 시도를 계속한다.
단계(74, 80, 82 및 84)는 본 발명에서 이용될 수 있는 우선순위 결정의 실시예를 기술한다. 단계(74)에서, 중재자(22)는 SPLIT_MASK 비트를 리세트하고 모든 다른 요구에 대해 TEMP_MASK 레지스터내의 TEMP_MASK 비트를 세트한다. 단계(80)에서, 마스터(26)(현재 우선순위 마스터)는 재중재를 시도하고, 액세스는 비트가 TEMP_MASK 레지스터내에서 세트되는 다른 마스터에 대해 부정된다. 단계(82)에서 마스터에 버스가 승인되고, 마스터의 TEMP_MASK 비트는 TEMP_MASK 레지스터내에서 세트된다. 단계(84)에서, 모든 우선순위 마스터가 서비스되는지의 여부가 결정된다. 서비스되지 않는 경우, 프로세스는 단계(80)로 복귀한다. 모든 우선순위 마스터가 서비스된 경우, 프로세스는 단계(50)로 복귀한다.
일단 마스터(26)에 버스가 승인되면(단계80), 마스터(26)는 메모리 제어기(20)에 대해 자신의 어드레스, 제어 신호 및 FRAME#를 단정할 것이다(단계56). 메모리 제어기(20)가 트랜잭션을 종료시키도록 준비되어 있으므로(단계 58), 메모리 제어기(20)는 요구된 데이타를 마스터(26)에 제공하여 트랜잭션을 종료시킬 것이고(단계 76), 단계(78)에서 정상 버스 중재가 뒤따를 것이다.
전술한 방법에 의해, 마스터(26)는 메모리 제어기(20)가 요구된 트랜잭션을 종료시키도록 준비될 때까지 PCI 버스(30)로부터 분리되어 재중재하는 것이 방지된다. 버스(30)에 접속된 다른 마스터는 이 시간동안 버스에 대해 중재하고 이용할 수 있게 되어 버스(30)의 이용가능한 대역폭을 증가시키게 된다.
본 발명의 분할 트랜잭션을 효율적으로 실행하는 것이 바람직할 수 있다. 이것을 실행하기 위해 슬레이브는 마스터가 마스크될 수 없는 중재자(22)를 정확히 구별하도록 요구되어 트랜잭션의 데이타 단계를 종료시킨다. 부가적으로, 마스터에 가능한 한 빨리 버스가 승인되는 것이 바람직한데 그 이유는 슬레이브가 현재의 데이타 단계를 종료할 때까지 슬레이브는 더 이상의 어드레스를 채택할 수 없기 때문이다. 본 발명의 특정 실시예에서, MASTER_ID 버스가 이용되어, 본 실시예를 더 효율적이 되게 하나, 모듈 핀 카운트 및 로직(module pin count and logic)의 관점에서는 보다 비싸게 된다. 어드레스 단계동안, 슬레이브는 MASTER_ID 버스상에서 고유의 ID를 구동시키고, ID는 현재의 어드레스 단계에 연관되는 반면, 슬레이브는 MASK_MASTER를 또한 단정하고 재시도를 실행한다. 그다음에 중재자(22)는 이 고유의 ID를 저장하고 이 ID를 버스(30)상에 현재 존재하는 마스터(26)와 같은 마스터에 연관시킨다. 슬레이브가 준비되어 있는 경우, 중재자는 버스(30)상에 ID를 위치시킴과 동시에 REL_MASTER를 활성화한다. 그리고나서 중재자(22)는 MASTER_ID에 연관되는 SPLIT_MASK 레지스터(23)내의 SPLIT_MASK 비트만을 리세트하고 SPLIT_MASK 비트에 최고 중재 우선순위를 일시적으로 제공한다. 이것은 마스크되지 않은 마스터가 버스(30)의 이용이 승인될 다음 장치가 되어 적절한 방식으로 분할 트랜잭션을 종료시키도록 보장하는 효과를 갖는다. 다수의 마스터가 데이타 단계를 종료하기 전에 자신들이 해제되는 경우, 중재자(22)는 해제된 ID들이 발생하는 순서를 추적하고 버스(30)상에 각각의 마스터 우선순위를 하나씩 제공한다. 이것은 주로 SPLIT_MASK 비트가 사전결정된 알고리즘에 기초하여 하나씩 리세트되도록 함으로써 용이하게 행해진다. 큐로 되어 있는 제1마스터가 프레임을 개시하는 경우, 다음 마스터는 즉시 해제된다. 이것은 현재 마스터의 프레임동안 다음 마스터가 중재를 종료시키도록 할 것이고 따라서 PCI 버스(30)의 가장 효율적인 이용을 제공한다.
제2도의 예시적인 실시예와 같은 본 발명의 특정 다른 실시예에서, MASTER_ID 버스는 이용되지 않는다. 중재자(22)는 현재 어떤 마스터에 버스(30)가 승인되는지를 알고 있으므로, 중재자(22)는 MASK_MASTER 신호의 단정시 재시도가 발생하는 경우 이러한 현재 마스터를 마스크할 것이다. 또한, MASTER_ID가 존재하지 않으므로, REL_MASTER 신호가 활성화되는 경우, 모든 마스크된 마스터가 해제되고 이전에 마스크되지 않은 모든 마스터보다 우선순위가 주어진다. 단지 하나의 마스터가 마스크된 경우, 본 방법은 MASTER_ID버스를 이용하는 다른 실시예와 동일한 결과를 성취한다. 그러나, 다수의 마스터가 마스크된 경우, 이 효율은 저하될 수 있는데 그 이유는 비록 제어기(20)가 마스터(28)에 대한 데이타를 가질 수 있다 하더라도 마스터(26)에 버스(30)가 승인될 수 있기 때문이다. 이 경우에서, 제어기(20)는 MASK_MASTER를 활성화하고 재시도를 실행시키므로써 마스터(26)를 리마스크할 것이다. 결국, 마스터(28)에 버스(30)가 승인될 것이고, 자신의 트랜잭션을 종료시켜 정상 버스 중재가 발생할 것이다.
이러한 다른 실시예에서, 최근에 마스크되지 않은 마스터에 대한 생성 우선순위는 각종 방법으로 수행될 수 있고, 한 방법은 이미 제3도의 단계(74, 80-84)에 대해 간략히 기술되어 있다. 이러한 예시적인 실시예에서, 마스크(TEMP_MASK)의 제2세트가 이용되어 모든 정상 마스터를 일시적으로 블럭킹한다. REL_MASTER가 수신되는 클럭사이클동안, 현재 리세트되는 모든 SPLIT_MASK 비트에 대응하는 TEMP_MASK 비트가 세트된다. 그리고나서 현재 세트되는 모든 SPLIT_MASK 비트가 리세트된다. 몇몇 마스터가 한꺼번에 해제되나, 마스터의 이러한 그룹은 모든 이전에 마스크되지 않은 마스터보다 우선 순위가 주어진다. 그다음에 해제된 우선순위 마스터들은 정상 우선순위에 기초하여 중재한다. 각각의 해제된 마스터에 버스가 승인됨에 따라, 자신의 비트는 TEMP-MASK 레지스터내에 세트된다. 일단 모든 마스터가 SPLIT_MASK 또는 TEMP_MASK 비트를 세트되도록 하면, TEMP_MASK 레지스터는 자동으로 리세트되고, 시스템은 정상 중재를 재개한다.
제2도의 실시예는 멀티-프로세서 버스(19) 및 PCI 버스(30)사이의 호스트 브리지(21)를 또한 이용하고, 호스트 브리지는 자신들의 정상 기능을 수행한다. 본 실시예에서 메모리 제어기(20)는 멀티-프로세서 버스(19)에 접속된다.
본 발명은 PCI 버스를 이용하여 기술되었으나, 트랜잭션이 종료되기 전에 마스터가 버스를 떠나도록 하는 백-오프/재시도 특성을 갖는 다른 버스에도 또한 적용가능하다.
본 발명이 상세히 도시되고 기술되었으나, 전술한 설명은 모든 측면에 있어서 예시적이되 제한적이지는 않다. 따라서 본 발명의 범위로부터 이탈하지 않고 다수의 수정 및 변경이 고안될 수 있음을 이해할 것이다.
Claims (44)
- 버스(a bus)와 ; 상기 버스에 접속되어, 상기 버스에 대한 중재를 요구하고(requesting arbitraton for the bus) 상기 버스가 승인되는 때에(upon being granted the bus) 트랜잭션(a transaction)을 개시하기 위한 로직(logic)을 구비하는 다수의 마스터(a plurality of masters)와; 상기 버스에 접속된 다수의 슬레이브(a plurality of slaves)로서, 그들 중 적어도 하나는 상기 트랜잭션을 종료시키기 위한 상기 슬레이브의 준비상태(readiness)를 표시하는 로직을 구비하는 상기 다수의 슬레이브; 및 상기 트랜잭션이 요구되었던 슬레이브가 상기 트랜잭션을 종료시키도록 준비되지 않은 경우 마스터를 상기 버스로부터 분리하는 로직과, 상기 슬레이브가 상기 트랜잭션을 종료시키도록 준비될 때까지 상기 마스터의 상기 버스에 대한 재중재(re-arbitrate)를 방지하는 로직을 구비하는 중재자(an arbiter)를 포함하는 버스 중재 시스템.
- 제1항에 있어서, 상기 트랜잭션을 종료시키기 위한 상기 슬레이브의 준비상태를 표시하는 로직은, 상기 슬레이브가 상기 중재 요구 마스터(a requesting master)와의 트랜잭션을 종료시키도록 준비되지 않았음을 표시하는 제1신호(a first signal)가 생성되는 상기 중재자에 접속된 제1출력(a first output); 및 상기 슬레이브가 상기 중재 요구 마스터와의 트랜잭션을 종료시키도록 준비되어 있음을 표시하는 제2신호(a second signal)가 생성되는 상기 중재자에 접속된 제2출력(a second output)을 포함하는 버스 중재 시스템.
- 제2항에 있어서, 상기 중재자는 상기 제1신호에 응답하여 상기 중재 요구 마스터를 식별하는 마스크 표시기(a mask indicator)를 세트하는 마스크된 마스터 레지스터(a masked master register)와; 상기 마스크된 마스터 레지스터가 상기 중재 요구 마스터의 상기 마스크 표시기를 구비하는 한 상기 중재 요구 마스터의 버스에 대한 재중재를 방지하고, 상기 마스크된 마스터 레지스터가 상기 중재 요구 마스터의 상기 마스크 표시기를 구비하지 않는 경우 상기 중재 요구 마스터의 버스에 대한 재중재를 허용하기 위한 로직과; 상기 제2신호의 수신에 응답하여 상기 마스크된 마스터 레지스터로부터 상기 중재 요구 마스터의 상기 마스크 표시기를 리세트(reset)하기 위한 로직을 포함하는 버스 중재 시스템.
- 제2항에 있어서, 상기 슬레이브와 상기 중재 수단사이에 접속된 마스터 식별버스(a master identification bus)를 더 구비하며, 상기 슬레이브는 상기 중재 수단에 대해 상기 중재 요구 마스터를 식별하는 신호가 생성되는 상기 마스터 식별 버스에 접속된 제3출력(a third output)을 포함하는 버스 중재 시스템.
- 제1항에 있어서, 상기 버스는 접속된 트랜잭션 버스(a connected transaction bus)인 버스 중재 시스템.
- 제5항에 있어서, 상기 접속된 트랜잭션 버스는 주변 소자 인터페이스(a peripheral component interface; PCI) 버스인 버스 중재 시스템.
- 제1항에 있어서, 상기 중재자는, 상기 버스에 대한 재중재가 방지되었던 마스터에, 그 마스터의 버스에 대한 재중재가 허용되는 경우, 최고 우선순위(a highest priority)를 할당하기 위한 로직을 포함하는 버스 중재 시스템.
- 제1항에 있어서, 상기 중재자는 상기 슬레이브중 임의의 한 슬레이브가 상기 제2신호를 생성할 때마다 상기 마스크 표시기가 세트되었던 모든 마스터에 대해 상기 마스크 표시기를 총체적으로 리세트하기 위한 로직을 포함하는 버스 중재 시스템.
- 제8항에 있어서, 상기 중재자는 상기 마스크 표시기가 리세트되었던 각각의 마스터에 대응하는 일시적 표시기(a temporary indicator)를 세트하는 일시적 마스크 레지스터(a temporary mask register)와; 마스크 표시기가 리세트되었던 마스터의 각각에 모든 다른 마스터에 비해 중재를 위한 보다 높은 우선순위를 일시적으로 할당하되 상기 보다 높은 우선순위(higher priority) 마스터의 각각이 버스를 획득할 때까지 행하기 위한 로직을 포함하며, 각각의 일시적 표시기는 대응하는 보다 높은 우선순위 마스터가 버스를 획득하는 때에 리세트되는 버스 중재 시스템.
- 다수의 마스터 및 적어도 하나의 슬레이브가 접속되는 버스에 대한 중재 회로(an arbitration circuit)에 있어서, 버스를 요구하는 상기 마스터들간을 중재하고 상기 중재의 위닝 마스터(a winning master)에 버스를 승인하기 위한 중재 로직(arbitration logic)과; 상기 위닝 마스터에 의해 트랜잭션이 요구되는 슬레이브가 트랜잭션을 종료시킬 수 없음에 응답하여 상기 위닝 마스터를 버스로부터 분리하기 위한 로직; 및 상기 슬레이브가 상기 트랜잭션을 종료시킬 수 없는 한 상기 중재 요구 마스터의 버스에 대한 재중재를 방지하기 위한 로직을 포함하는 버스 중재 회로.
- 제10항에 있어서, 상기 중재 로직은 마스터로부터 중재 요구를 수신하는 입력(an input)을 포함하는 버스 중재 회로.
- 제10항에 있어서, 상기 분리하는 로직은, 상기 슬레이브가 중재 요구 마스터와의 트랜잭션을 종료시키도록 준비되어 있지 않음을 표시하는 제1신호를 트랜잭션이 요구되는 슬레이브로부터 수신하는 입력과, 상기 제1신호에 응답하여 상기 중재 요구 마스터의 표시기를 세트하는 마스크된 마스터 레지스터를 포함하는 버스 중재 회로.
- 제12항에 있어서, 상기 방지하는 로직은 상기 마스크된 마스터 레지스터에 접속되며, 상기 슬레이브가 상기 중재 요구 마스터와의 트랜잭션을 종료시키도록 준비되어 있음을 표시하는 제2신호를 슬레이브로부터 수신하는 입력을 구비하고, 상기 마스크된 마스터 레지스터는 상기 제2신호의 수신에 응답하여 상기 중재 요구 마스터의 표시기를 리세트하는 버스 중재 회로.
- 제12항에 있어서, 상기 마스크된 마스터 레지스터는 상기 중재 요구 마스터의 식별자(identifier)를 포함하고, 상기 방지하는 로직은 상기 마스크된 마스터 레지스터가 상기 중재 요구 마스터의 표시기를 구비하지 않는 경우에 상기 요구 마스터의 버스에 대한 재중재를 허용하기 위한 로직을 포함하는 버스 중재 회로.
- 제14항에 있어서, 마스터 식별 버스를 통해 상기 슬레이브로부터 마스터 식별 신호를 수신하기 위한 마스터 식별 버스 입력(a master identification bus input)을 더 포함하는 버스 중재 회로.
- 버스에 대한 중재를 행하기 위한 방법에 있어서, 버스에 대한 중재를 요구하는 마스터가 중재에서 우위를 획득하는 경우 그 마스터에 상기 버스를 승인하는 단계와; 슬레이브와 버스상에서의 트랜잭션을 위한 요구를 버스상에 마스터에 의해 단정하는 단계와; 상기 슬레이브가 트랜잭션을 종료시키도록 준비되어 있지 않음을 표시하는 제1신호를 상기 슬레이브에 의해 단정하고 상기 마스터를 재시도(retry)하는 단계와; 상기 슬레이브가 상기 트랜잭션을 종료시키도록 준비가 되어 있지 않다는 상기 제1신호를 상기 슬레이브가 단정하는 경우 상기 마스터의 버스에 대한 재중재를 방지하고, 다른 마스터의 버스에 대한 재중재를 허용하는 단계와; 상기 슬레이브가 트랜잭션을 종료시키도록 준비된 경우 상기 슬레이브가 트랜잭션을 종료시키도록 준비가 되어 있음을 표시하는 제2신호를 상기 슬레이브에 의해 단정하는 단계와; 상기 슬레이브가 상기 제2신호를 단정하는 경우 상기 마스터의 버스에 대한 재중재를 허용하고, 상기 마스터가 중재에 우위를 획득하는 경우 상기 마스터에 버스를 승인하는 단계를 포함하는 버스 중재 방법.
- 제16항에 있어서, 상기 제1신호는 마스크 마스터 신호(a mask master signal)를 포함하며, 상기 마스터의 버스에 대한 재중재를 방지하는 단계는, 버스에 대한 재중재가 방지되는 마스터를 식별하는 마스크 표시기를 세팅하는 단계를 포함하는 버스 중재 방법.
- 제17항에 있어서, 상기 제2신호는 마스크 해제 신호(a mask release signal)를 포함하며, 상기 마스터의 재중재를 허용하는 단계는, 마스크 표시기를 리세팅하는 단계를 포함하는 버스 중재 방법.
- 제18항에 있어서, 버스에 접속된 마스터의 각각에 대한 마스크 표시기를 중앙 중재 회로(a central arbitration circuit)의 마스크 레지스터(a mask regiser)에 저장하는 단계를 포함하며, 상기 마스크 표시기는 상기 제1 및 제2신호에 따라 세트되고 리세트되는 버스 중재 방법.
- 제19항에 있어서, 상기 버스는 접속된 트랜잭션 버스(a connected transaction bus)인 버스 중재 방법.
- 제20항에 있어서, 상기 접속된 트랜잭션 버스는 주변 소자 인터페이스(peripheral component interface; PCI) 버스인 버스 중재 방법.
- 제18항에 있어서, 버스에 접속된 마스터의 각각에 대한 마스크 표시기를 상기 마스터의 마스크 레지스터에 저장하는 단계를 더 포함하며, 상기 마스터는 버스에 대한 분산된 중재(a distributed arbitration)를 수행하고, 상기 마스크 표시기는 상기 제1 및 제2신호에 따라 세트되고 리세트되는 버스 중재 방법.
- 제17항에 있어서, 상기 제1 및 제2신호는 트랜잭션을 위한 요구를 단정했던 특정의 마스터를 표시하는 마스터 식별 신호를 더 포함하는 버스 중재 방법.
- 제23항에 있어서, 버스에 대한 재중재가 방지되었던 마스터에, 그 마스터의 버스에 대한 재중재가 허용되는 경우 최고 우선순위(a highest priority)를 할당하는 단계를 더 포함하는 버스 중재 방법.
- 제24항에 있어서, 상기 할당 단계는 상기 슬레이브가 상기 제2신호를 단정하는 경우 상기 마스터 식별 신호에 의해 식별된 상기 마스터의 마스크 식별자를 리세팅하는 단계를 포함하는 버스 중재 방법.
- 제25항에 있어서, 다수의 슬레이브가 각종 마스터로부터의 요구에 관계된 제2신호를 단정하고, 상기 제2신호가 단정되는 순서로 상기 제2신호로 식별된 마스터에 재중재를 위한 최고 우선순위를 할당하는 단계를 더 포함하는 버스 중재 방법.
- 제16항에 있어서, 버스에 대한 재중재가 방지되었던 마스터에, 그 마스터의 버스에 대한 재중재가 허용되는 경우 최고 우선순위를 할당하는 단계를 더 포함하는 버스 중재 방법.
- 제17항에 있어서, 다수의 마스터 및 슬레이브가 버스에 접속되며, 상기 방법은 버스에 접속된 마스터의 각각에 대한 마스크 표시기를 중앙 중재 회로의 마스크 레지스터에 저장하되, 개별적인 마스터에 대한 상기 마스크 표시기가 개별적인 마스터에 관계된 트랜잭션을 위해 상기 제1신호의 단정에 따라 개별적으로 세트되게 저장하는 단계와, 임의의 슬레이브가 상기 제2신호를 단정할 때마다 상기 마스크 표시기가 세트되었던 모든 마스터에 대해 상기 마스크 표시기를 총체적으로 리세팅하는 단계를 더 포함하는 버스 중재 방법.
- 제28항에 있어서, 상기 마스크 표시기가 리세트되었던 마스터의 리스트(a list of masters)를 저장하는 단계와; 상기 마스크 표시기가 리세트되었던 마스터의 각각에, 다른 모든 마스터보다 우선순위를 할당하는 단계와; 우선순위가 할당되었던 마스터들간을 중재하는 단계와; 위닝 마스터에 버스를 승인하는 단계 및; 우선순위가 할당되었던 마스터의 각각에 버스가 승인된 후 모든 마스터들간의 중재를 재개(resume)하는 단계를 더 포함하는 버스 중재 방법.
- 버스를 통해 데이타를 전송하는 방법에 있어서, 버스에 대한 중재를 요구하는 마스터가 중재에서 우위를 획득하는 경우, 그 마스터에 상기 마스터를 승인하는 단계와; 슬레이브로부터 버스를 통한 데이타 전송을 위한 요구를 버스상에 상기 마스터에 의해 단정하는 단계와; 상기 슬레이브가 트랜잭션을 종료시키도록 준비되어 있지 않았음을 표시하는 제1신호를 상기 슬레이브에 의해 단정하고, 상기 마스터를 재시도하는 단계와; 상기 슬레이브가 트랜잭션을 종료시키도록 준비되어 있지 않다는 신호를 상기 슬레이브가 단정하는 경우 상기 마스터의 버스에 대한 재중재를 방지하고, 다른 마스터의 버스에 대한 중재를 허용하는 단계와; 상기 슬레이브가 트랜잭션을 종료시키도록 준비된 경우 상기 슬레이브가 트랜잭션을 종료시키도록 준비되어 있음을 표시하는 제2신호를 상기 슬레이브에 의해 단정하는 단계와; 상기 마스터가 중재에서 우위를 획득하는 경우 상기 마스터의 버스에 대한 재중재를 허용하고 상기 마스터에 버스를 승인하는 단계와; 상기 슬레이브로부터 버스를 통한 데이타 전송을 위한 요구를 버스상에 상기 마스터에 의해 재단정(re-assert)하는 단계; 및 요구된 데이타를 상기 슬레이브로부터 상기 마스터로 버스를 통해 전송하는 단계를 포함하는 데이타 전송 방법.
- 제30항에 있어서, 상기 제1신호는 마스크 마스터 신호를 포함하여, 상기 마스터의 버스에 대한 재중재를 방지하는 단계는, 버스에 대한 재중재가 방지되는 마스터를 식별하는 마스크 표시기를 세팅하는 단계를 포함하는 데이타 전송 방법.
- 제31항에 있어서, 상기 제2신호는 마스크 해제 신호를 포함하며, 상기 마스터의 재중재를 허용하는 단계는, 마스크 표시기를 리세팅하는 단계를 포함하는 데이타 전송 방법.
- 제32항에 있어서, 버스에 접속된 마스터의 각각에 대한 마스크 표시기를 중앙 중재 회로의 마스크 레지스터에 저장하며, 상기 마스크 표시기는 상기 제1 및 제2신호에 따라 세트되고 리세트되는 단계를 더 포함하는 데이타 전송 방법.
- 제33항에 있어서, 상기 버스는 접속된 트랜잭션 버스인 데이타 전송 방법.
- 제34항에 있어서, 상기 접속된 트랜잭션 버스는 주변 소자 인터페이스 버스인 데이타 전송 방법.
- 제35항에 있어서, 버스에 접속된 상기 마스터의 각각에 대한 마스크 표시기를 상기 마스터의 마스크 레지스터에 저장하는 단계를 더 포함하며, 상기 마스터는 버스에 대한 분산된 중재를 수행하고, 상기 마스크 표시기는 상기 제1 및 제2신호에 따라 상기 마스크 레지스터에서 세트되고 리세트되는 데이타 전송 방법.
- 제31항에 있어서, 상기 제1 및 제2신호는 트랜잭션을 위한 요구를 단정했던 특정의 마스터를 표시하는 마스터 식별 신호를 더 포함하는 데이타 전송 방법.
- 제37항에 있어서, 버스에 대한 재중재가 방지되었던 마스터의 버스에 대한 재중재가 허용되는 경우 그 마스터에 최고 우선순위를 할당하는 단계를 더 포함하는 데이타 전송 방법.
- 제38항에 있어서, 상기 할당 단계는 상기 슬레이브가 상기 제2신호를 단정하는 경우 상기 마스터 식별 신호에 의해 식별된 상기 마스터의 마스크 표시기를 리세팅하는 단계를 포함하는 데이타 전송 방법.
- 제39항에 있어서, 다수의 슬레이브가 각종 마스토로부터의 요구에 관계된 제2신호를 단정하고, 상기 제2신호가 단정되는 순서로 상기 제2신호로 식별된 마스터에 재중재를 위한 최고 우선순위를 할당하는 단계를 더 포함하는 데이타 전송방법.
- 제30항에 있어서, 버스에 대한 재중재가 방지되었던 마스터의 버스에 대한 재중재가 허용되는 경우 그 마스터에 최고 우선순위를 할당하는 단계를 더 포함하는 데이타 전송 방법.
- 제31항에 있어서, 다수의 마스터 및 슬레이브가 버스에 접속되며, 상기 방법은 버스에 접속된 마스터의 각각에 대한 마스크 표시기를 중앙 중재 회로의 마스크 레지스터에 저장하되, 개별적인 마스터에 대한 상기 마스크 표시기가 개별적인 마스터에 관계된 트랜잭션을 위해 상기 제1신호의 단정에 따라 개별적으로 세트되게 저장하는 단계와, 임의의 슬레이브가 상기 제2신호를 단정할 때마다 상기 마스크 표시기가 세트되었던 모든 마스터에 대해 상기 마스크 표시기를 총체적으로 리세팅하는 단계를 더 포함하는 데이타 전송 방법.
- 제42항에 있어서, 상기 마스크 표시기가 리세트되었던 마스터의 리스트를 저장하는 단계와; 상기 마스크 표시기가 리세트되었던 마스터의 각각에, 다른 모든 마스터보다 우선순위를 할당하는 단계와; 우선순위가 할당되었던 마스터들간을 중재하는 단계와; 위닝 마스터에 버스를 승인하는 단계 및; 우선순위가 할당되었던 마스터의 각각에 버스가 승인된 후 모든 마스터들간의 중재를 재개하는 단계를 더 포함하는 데이타 전송 방법.
- 버스에 대한 중재를 행하는 방법에 있어서, 버스를 요구하는 마스터들간을 중재하고, 상기 마스터중 하나에 버스를 승인하는 단계로서, 상기 마스터는 슬레이브와의 트랜잭션을 요구하는 상기 단계와; 상기 슬레이브가 트랜잭션을 종료시키도록 준비되지 않은 경우 상기 마스터를 재시도하는 단계와; 상기 슬레이브가 트랜잭션을 종료시키도록 준비될 때까지 상기 마스터의 버스에 대한 재중재를 방지하는 단계와; 상기 슬레이브가 트랜잭션을 종료시키도록 준비된 경우 상기 마스터의 버스에 대한 재중재를 허용하는 단계를 포함하는 버스 중재 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/421,114 US5621897A (en) | 1995-04-13 | 1995-04-13 | Method and apparatus for arbitrating for a bus to enable split transaction bus protocols |
US8/421,114 | 1995-04-13 | ||
US08/421,114 | 1995-04-13 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR960038633A KR960038633A (ko) | 1996-11-21 |
KR0167818B1 true KR0167818B1 (ko) | 1999-01-15 |
Family
ID=23669216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019960009660A KR0167818B1 (ko) | 1995-04-13 | 1996-03-30 | 버스 중재 시스템, 버스 중재 회로, 버스 중재 방법 및 데이타 전송 방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US5621897A (ko) |
EP (1) | EP0737924A3 (ko) |
JP (1) | JPH08297632A (ko) |
KR (1) | KR0167818B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100330529B1 (ko) * | 1999-05-18 | 2002-03-28 | 포만 제프리 엘 | Pci-x 브릿지 버퍼의 분할 트랜잭션 모드용 토글시스템 및 방법 |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5793994A (en) * | 1996-01-31 | 1998-08-11 | 3Com Corporation | Synchronous event posting by a high throughput bus |
US5805837A (en) * | 1996-03-21 | 1998-09-08 | International Business Machines Corporation | Method for optimizing reissue commands in master-slave processing systems |
US5928346A (en) * | 1996-09-11 | 1999-07-27 | Hewlett-Packard Company | Method for enhanced peripheral component interconnect bus split data transfer |
US5982672A (en) * | 1996-10-18 | 1999-11-09 | Samsung Electronics Co., Ltd. | Simultaneous data transfer through read and write buffers of a DMA controller |
US6119188A (en) * | 1997-05-27 | 2000-09-12 | Fusion Micromedia Corp. | Priority allocation in a bus interconnected discrete and/or integrated digital multi-module system |
US6073199A (en) * | 1997-10-06 | 2000-06-06 | Cisco Technology, Inc. | History-based bus arbitration with hidden re-arbitration during wait cycles |
JPH11122285A (ja) * | 1997-10-16 | 1999-04-30 | Fujitsu Ltd | Lan電話交換装置及びシステム |
US6032178A (en) * | 1998-01-12 | 2000-02-29 | Siemens Aktiengesellschaft | Method and arrangement for data transmission between units on a bus system selectively transmitting data in one of a first and a second data transmission configurations |
JP2000040061A (ja) * | 1998-05-20 | 2000-02-08 | Oki Data Corp | バス使用権調停システム |
US6324622B1 (en) | 1998-08-24 | 2001-11-27 | International Business Machines Corporation | 6XX bus with exclusive intervention |
US6145039A (en) * | 1998-11-03 | 2000-11-07 | Intel Corporation | Method and apparatus for an improved interface between computer components |
US20030110317A1 (en) * | 1998-11-03 | 2003-06-12 | Jasmin Ajanovic | Method and apparatus for an improved interface between a memory control hub and an input/output control hub |
US6189061B1 (en) | 1999-02-01 | 2001-02-13 | Motorola, Inc. | Multi-master bus system performing atomic transactions and method of operating same |
US6732208B1 (en) * | 1999-02-25 | 2004-05-04 | Mips Technologies, Inc. | Low latency system bus interface for multi-master processing environments |
US6792495B1 (en) * | 1999-07-27 | 2004-09-14 | Intel Corporation | Transaction scheduling for a bus system |
US6704822B1 (en) * | 1999-10-01 | 2004-03-09 | Sun Microsystems, Inc. | Arbitration protocol for a shared data cache |
US6374317B1 (en) | 1999-10-07 | 2002-04-16 | Intel Corporation | Method and apparatus for initializing a computer interface |
US6636912B2 (en) * | 1999-10-07 | 2003-10-21 | Intel Corporation | Method and apparatus for mode selection in a computer system |
US7039047B1 (en) | 1999-11-03 | 2006-05-02 | Intel Corporation | Virtual wire signaling |
US6516375B1 (en) | 1999-11-03 | 2003-02-04 | Intel Corporation | Peripheral component interconnect (PCI) configuration emulation for hub interface |
KR100708096B1 (ko) | 2000-07-21 | 2007-04-16 | 삼성전자주식회사 | 버스 시스템 및 그 실행 순서 조정방법 |
KR100644596B1 (ko) | 2000-07-27 | 2006-11-10 | 삼성전자주식회사 | 버스 시스템 및 그 버스 중재방법 |
US7028124B2 (en) * | 2001-09-26 | 2006-04-11 | Intel Corporation | Method and apparatus for dual queue head processing of interrupt endpoints |
US7174401B2 (en) * | 2002-02-28 | 2007-02-06 | Lsi Logic Corporation | Look ahead split release for a data bus |
JP2003281080A (ja) * | 2002-03-20 | 2003-10-03 | Matsushita Electric Ind Co Ltd | データ転送制御装置 |
US6948019B2 (en) * | 2002-04-30 | 2005-09-20 | Lsi Logic Corporation | Apparatus for arbitrating non-queued split master devices on a data bus |
KR20050003069A (ko) * | 2003-06-30 | 2005-01-10 | 주식회사 대우일렉트로닉스 | 마이크로 컨트롤러의 버스 인터페이스 |
US7107420B2 (en) * | 2003-08-29 | 2006-09-12 | International Business Machines Corporation | Apparatus and method to adjust data transfer rate |
US7254658B2 (en) * | 2004-06-08 | 2007-08-07 | Arm Limited | Write transaction interleaving |
US8732368B1 (en) * | 2005-02-17 | 2014-05-20 | Hewlett-Packard Development Company, L.P. | Control system for resource selection between or among conjoined-cores |
US7487267B2 (en) * | 2006-02-03 | 2009-02-03 | International Business Machines Corporation | Method and apparatus for managing dependencies between split transaction queues |
JP5565204B2 (ja) | 2010-08-23 | 2014-08-06 | 株式会社リコー | データ転送装置、データ転送方法およびプログラム、ならびに、画像形成装置 |
JP5625766B2 (ja) * | 2010-11-08 | 2014-11-19 | ソニー株式会社 | アービトレーション回路、および、その制御方法 |
US10558604B2 (en) * | 2017-12-20 | 2020-02-11 | Qualcomm Incorporated | Communication interface transaction security |
US11144358B1 (en) | 2018-12-06 | 2021-10-12 | Pure Storage, Inc. | Asynchronous arbitration of shared resources |
US10599601B1 (en) | 2019-01-16 | 2020-03-24 | Qorvo Us, Inc. | Single-wire bus (SuBUS) slave circuit and related apparatus |
US11119958B2 (en) * | 2019-04-18 | 2021-09-14 | Qorvo Us, Inc. | Hybrid bus apparatus |
US11226924B2 (en) | 2019-04-24 | 2022-01-18 | Qorvo Us, Inc. | Single-wire bus apparatus supporting slave-initiated operation in a master circuit |
US10983942B1 (en) | 2019-12-11 | 2021-04-20 | Qorvo Us, Inc. | Multi-master hybrid bus apparatus |
US11409677B2 (en) | 2020-11-11 | 2022-08-09 | Qorvo Us, Inc. | Bus slave circuit and related single-wire bus apparatus |
US11489695B2 (en) | 2020-11-24 | 2022-11-01 | Qorvo Us, Inc. | Full-duplex communications over a single-wire bus |
US12092689B2 (en) | 2021-12-08 | 2024-09-17 | Qorvo Us, Inc. | Scan test in a single-wire bus circuit |
US11706048B1 (en) | 2021-12-16 | 2023-07-18 | Qorvo Us, Inc. | Multi-protocol bus circuit |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4789926A (en) * | 1985-08-06 | 1988-12-06 | International Business Machines Corporation | Digital data processing arbitration system |
US4785394A (en) * | 1986-09-19 | 1988-11-15 | Datapoint Corporation | Fair arbitration technique for a split transaction bus in a multiprocessor computer system |
US5257356A (en) * | 1991-05-28 | 1993-10-26 | Hewlett-Packard Company | Method of reducing wasted bus bandwidth due to slow responding slaves in a multiprocessor computer system |
US5469435A (en) * | 1994-01-25 | 1995-11-21 | Apple Computer, Inc. | Bus deadlock avoidance during master split-transactions |
-
1995
- 1995-04-13 US US08/421,114 patent/US5621897A/en not_active Expired - Fee Related
-
1996
- 1996-03-25 JP JP8067667A patent/JPH08297632A/ja active Pending
- 1996-03-29 EP EP96302267A patent/EP0737924A3/en not_active Withdrawn
- 1996-03-30 KR KR1019960009660A patent/KR0167818B1/ko not_active IP Right Cessation
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100330529B1 (ko) * | 1999-05-18 | 2002-03-28 | 포만 제프리 엘 | Pci-x 브릿지 버퍼의 분할 트랜잭션 모드용 토글시스템 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
EP0737924A2 (en) | 1996-10-16 |
JPH08297632A (ja) | 1996-11-12 |
US5621897A (en) | 1997-04-15 |
EP0737924A3 (en) | 2001-09-05 |
KR960038633A (ko) | 1996-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR0167818B1 (ko) | 버스 중재 시스템, 버스 중재 회로, 버스 중재 방법 및 데이타 전송 방법 | |
JP3231596B2 (ja) | 待ち時間及びシャドー・タイマを有するバス・システム | |
CA2186598C (en) | Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge | |
JP4008987B2 (ja) | バス通信システム及びバス調停方法並びにデータ転送方法 | |
US7243179B2 (en) | On-chip inter-subsystem communication | |
US6141715A (en) | Method and system for avoiding live lock conditions on a computer bus by insuring that the first retired bus master is the first to resubmit its retried transaction | |
US6718422B1 (en) | Enhanced bus arbiter utilizing variable priority and fairness | |
US6397279B1 (en) | Smart retry system that reduces wasted bus transactions associated with master retries | |
US6892259B2 (en) | Method and apparatus for allocating computer bus device resources to a priority requester and retrying requests from non-priority requesters | |
KR20010085709A (ko) | 공유 버스상에서의 등시성 트랜잭션 및 비동기 트랜잭션의스케줄링을 위한 우선 순위 매커니즘 | |
US7174401B2 (en) | Look ahead split release for a data bus | |
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 | |
KR20020009823A (ko) | 버스 시스템 및 그 버스 중재방법 | |
US6748505B1 (en) | Efficient system bus architecture for memory and register transfers | |
US7487276B2 (en) | Bus arbitration system | |
US6826644B1 (en) | Peripheral component interconnect arbiter implementation with dynamic priority scheme | |
US6421756B1 (en) | Buffer assignment for bridges | |
US6430641B1 (en) | Methods, arbiters, and computer program products that can improve the performance of a pipelined dual bus data processing system | |
US6693914B1 (en) | Arbitration mechanism for packet transmission | |
US5826045A (en) | Arbitration parking apparatus and method for a split transaction bus in a multiprocessor computer system | |
US6948019B2 (en) | Apparatus for arbitrating non-queued split master devices on a data bus | |
US6785755B1 (en) | Grant removal via dummy master arbitration | |
JP3050131B2 (ja) | アービトレーション方式 | |
JPH05197675A (ja) | バス権調停方式 |
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: 20010714 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |