KR100354934B1 - 데이터처리시스템및버스프로토콜구현방법 - Google Patents

데이터처리시스템및버스프로토콜구현방법 Download PDF

Info

Publication number
KR100354934B1
KR100354934B1 KR1019950051785A KR19950051785A KR100354934B1 KR 100354934 B1 KR100354934 B1 KR 100354934B1 KR 1019950051785 A KR1019950051785 A KR 1019950051785A KR 19950051785 A KR19950051785 A KR 19950051785A KR 100354934 B1 KR100354934 B1 KR 100354934B1
Authority
KR
South Korea
Prior art keywords
bus
transaction
slave
pipe
data
Prior art date
Application number
KR1019950051785A
Other languages
English (en)
Other versions
KR960025090A (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 KR960025090A publication Critical patent/KR960025090A/ko
Application granted granted Critical
Publication of KR100354934B1 publication Critical patent/KR100354934B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • 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

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

본 발명은 인-오더 데이터 버스 터미네이션을 가지며 데이터 버스 조정을 필요로 하지 않는 파이프라인되고 분리된 트랜잭션 버스(18, 48)에 버스 프로토콜을 제공한다. 본 발명은 마스터-슬레이브 통신에 사용되는 버스(18, 48)가 분리 트랜잭션 버스 또는 파이프라인된 버스일 때, 버스 마스터에 의해(12, 13, 42) 최초 어드레스 요청을 버스 슬레이브(14, 15, 44)로부터 대응하는 데이터 응답에 매칭하는 문제를 해결한다. 각각 버스 마스터(12, 13, 42) 및 각각의 버스 슬레이브(14, 15, 44)는 중앙 파이프 카운터(16, 72)로부터 현재 파이프 깊이값(21, 51)을 저장하는데 사용되는 카운터(30-33, 75-76)를 가진다. 트랜잭션 시작 신호(20, 50) 및 트랜잭션 끝 신호(22, 52)는 선택적으로 카운터(30-33, 75-76)를 증가 및 감소시키는데 사용된다.

Description

데이터 처리 시스템 및 버스 프로토콜 구현 방법{Method and apparatus for implementing a bus protocol having in-order termination}
본 발명의 분야
본 발명은 일반적으로 데이터 처리 시스템에 관한 것이며, 특히, 인-오더 터미네이션(in-order termination)을 가지는 버스 프로토콜을 구현하는 방법 및 장치에 관한 것이다.
본 발명의 배경
많은 데이터 처리 시스템은 하나 이상의 마스터 디바이스, 예를 들어, 처리 장치와 하나 이상의 슬레이브 디바이스, 예를 들어, 메모리 디바이스로 구성되며, 마스터 디바이스는 버스를 경유하여 액세스해서 명령어 또는 데이터를 판독해야 한다. 명령어 또는 데이터(이하 데이터로 기재함)를 판독하기 위해, 마스터 디바이스는 일반적으로 디바이스의 어디에서 데이터가 발견될 수 있는지를 나타내는 요청을 슬레이브 디바이스에 전송하고, 슬레이브 디바이스가 요청을 인지한 다음, 요청된 데이터를 전송하기 시작한다. 그러한 트랜잭션은 완료되는데 비교적 긴 시간이 걸리며, 특히 슬레이브 디바이스가 느린 응답 장치일 때 긴 시간이 걸린다.
처리 시간을 빠르게 하기 위해, 마스터 디바이스 또는 디바이스들이 슬레이브 디바이스 또는 디바이스들에게 응답을 기다림이 없이 요청을 전송하는 시스템이공지되었으며, 이 시스템에서, 하나 이상의 마스터 디바이스로 부터 미처리된 많은 요청이 있을 수 있고, 트랜잭션을 완료하기 위해, 수신될 대응하는 응답을 기다릴 수 있다. 이러한 경우, 슬레이브 디바이스 또는 디바이스들로 부터 버스상에서 수신되는 응답이 요청한 명령과는 다른 응답일 때 이 응답과 대응하는 요청과 매칭하는 마스터 디바이스 또는 디바이스들에서 문제가 발생할 수 있다. 마스터에 의한 슬레이브로 부터의 대응하는 응답 또는 응신으로의 최초 요청의 이러한 매칭은 마스터-슬레이브 통신에 사용된 버스가 분리-트랜잭션 버스 또는 파이프라인된 버스일 때 특히 문제가 된다.
분리-트랜잭션 버스는 다른 버스 마스터가 어드레스 버스와 데이터 버스를 동시에 갖도록 하는 버스이다. 예시로써 분리-트랜잭션 버스가 사용될 때 마이크로프로세서 #1 은 마이크로프로세서 #2 가 데이터 버스를 사용하는 것과 동시에 어드레스 버스를 사용할 수 있다. 비분리-트랜잭션 버스에서 동일한 처리기는 어드레스 버스와 데이터 버스 둘다의 버스 마스터이다. 따라서, 비분리-트랜잭션 버스가 사용될 때, 어드레스 버스와 데이터 버스를 따로 가질 수 없다. 분리-트랜잭션 버스는 다중 처리 시스템에서 종종 사용되어 버스의 대역폭을 증가시킨다.
파이프라인된 버스는 한 트랜잭션의 어드레스 위상이 다른 트랜잭션의 데이터 위상과 겹쳐지게 한다. 많은 다중 처리기 버스는 분리 트랜잭션과 파이프라이닝을 겸비하여 어드레스 버스와 데이터 버스 둘다에서의 정보 전송을 최대화 한다.
본 발명은 마스터-슬레이브 통신에 사용된 버스가 분리-트랜잭션 버스 또는 파이프라인된 버스일 때 슬레이브로 부터의 대응하는 데이터 응답에 마스터에 의한요청을 매칭하는 문제점을 처리한다.
바람직한 실시예의 설명
본 발명의 한 실시예에서는 인-오더 데이터 버스 터미네이션을 가지는 버스 프로토콜을 구현하는 방법 및 장치를 제공한다. 본 발명은 마스터-슬레이브 통신에 사용된 버스가 분리-트랜잭션 버스 또는 파이프라인된 버스일 때, 버스 마스터에 의한 최초 어드레스 요청과 슬레이브로 부터 대응하는 데이터 응답이 매칭하는 문제점을 해결한다.
용어 "버스" 는 하나 이상의 다양한 타입의 정보, 예컨태 데이터, 어드레스, 제어 또는, 상태를 전송하기 위해 사용되는 다수의 신호 또는 도선을 설명하는데 이용된다. 용어 "표명" 과 "부정" 은 신호, 상태 비트 또는 유사한 장치를 논리적으로 참 또는 거짓 상태로 각각 렌더링함을 설명할 때 사용된다. 만약 논리적으로 참인 상태가 논리 레벨(1)이면 논리적으로 거짓인 상태는 논리 레벨(0)이다. 그리고 만약 논리적으로 참인 상태가 논리 레벨(0)이면 논리적으로 거짓인 상태는 논리 레벨(1)이다.
도면의 설명
제 1 도는 버스(18)를 지나 두 방향으로 접속된 하나 이상의 버스 마스터 장치(12-13) 및 하나 이상의 버스 슬레이브 장치(14-15)를 구비하는 데이터 처리 시스템(10)을 도시한다. 중앙 파이프 카운터916)도 버스(18)에 연결된다.
버스(18)는 버스 마스터(12-13)에 의해 버스 슬레이브(14-15)에 제공되며 도선(20)을 지나 중앙 파이프 카운터(16)에 제공되는 트랜잭션 시작 신호를 포함한다. 버스(18)는 또한, 버스 슬레이브(14-15)중 하나에 의해 버스 마스터(12-13), 중앙 파이프 카운터(16), 버스 슬레이브(14-15)의 다른 곳에 도선(22)을 지나 제공되는 트랜잭션 끝 신호를 포함한다. 그리고 버스(18)는 중앙 파이프 카운터(16)에 의해 버스 마스터 디바이스(12-13) 및 버스 슬레이브 디바이스(14-15)에 도선(21)을 지나 제공되는 하나 이상의 현재 파이프 깊이 신호(21)를 포함한다. 또한, 버스(18)에 포함되는 다른 신호(도시되지 않음), 예를 들어, 어드레스 신호, 데이터 신호, 다양한 제어 신호도 있다.
버스 마스터(12)는 파이프 카운터(30)를 구비하여 파이프 깊이의 트랙을 관리하며, 그와 유사하게 버스 마스터(13)는 파이프 카운터(31)를 구비하여 파이프깊이의 트랙을 관리한다. 버스 슬레이브(14)는 파이프 카운터(32)를 구비하여 파이프 깊이의 트랙을 관리하며; 그와 유사하게 버스 슬레이브(15)는 파이프 카운터(33)를 구비하여 파이프 깊이의 트럭을 관리한다. 본 발명의 한 실시예에서, 데이터 처리 시스템(10) 전체는 동일한 집적 회로에 집적된다. 본 발명의 다른 실시예에서, 데이터 처리 시스템(10)의 다양한 부분은 다른 집적 회로에 집적될 수 있다.
제 2 도는 본 발명의 한 실시예에 따른 제 1 도의 데이터 처리 시스템(10)의 작용을 도시하는 타이밍도이다. 본 발명의 한 실시예에서, 클락 신호(34)는 버스 마스터(12)에 의해서만 이용되는 내부 클락이다. 본 발명의 다른 실시예에서, 클락 신호(34)는 버스(18)에 포함되고 중앙 파이프 카운터(16)뿐만 아니라 모든 버스 마스터(12-13) 및 모든 버스 슬레이브(14-15) 에 제공된다.
제 3 도는 버스(48)를 지나 두 방향으로 연결된 하나 이상의 버스 마스터 디바이스(42) 및 하나 이상의 버스 슬레이브 디바이스(44)를 구비하는 데이터 처리 시스템(40)을 도시한다. 본 발명의 한 실시예에서, 버스 마스터(42)는 중앙 처리 장치(CPU)이고 버스 슬레이브(44)는 슬레이브 모듈이며 중앙 파이프 카운터(46)는 시스템 집적 장치(SIU)이다. 정보는 외부 버스(80)를 지나 데이터 처리 시스템(40)에 의해 통신된다. 본 발명의 한 실시예에서, 전체 데이터 처리 시스템(40)은 동일 집적 회로에 집적되며 SIU(46)는 외부 버스(80)를 지나 외부의 집적 회로와 통신하는데 사용된다. 본 발명의 다른 실시예에서, 데이터 처리 시스템(40)의 다양한 부분은 다른 집적 회로에 집적될 수 있다.
버스(48)는 CPU(42)에 의해 도선(50)을 지나 슬레이브(44) 및 SIU(46)에 제공되는 전송 시작 신호와, SIU(46)에 의해 도선(51)을 지나 CPU(42) 및 슬레이브(44)에 제공되는 하나 이상의 현재 파이프 깊이 신호(51)와, 슬레이브(44) 또는 SIU(46)에 의해 도선(52)을 지나 슬레이브(44) 와 SIU(46) 중 다른 하나에 제공되는 전송 인식 신호와, 슬레이브(44) 또는 SIU(46)에 의해 제공되고 도선(53)을 지나 버스(48)의 다른 디바이스에 의해 수신되는 버스 에러 신호와, 슬레이브(44) 또는 SIU(46)에 의해 도선(54)을 지나 CPU(42) 및 SIU(46)에 제공되는 어드레스 인지신호와 슬레이브(44) 또는 SIU(46)에 의해 도선(55)을 지나 CPU(42) 및 SIU(46)에 제공되는 어드레스 인식 신호를 포함한다.
버스(48)는 또한, CPU(42)에 의해 도선(56)을 지나 슬레이브(44) 및 SIU(46)에 제공되는 중지 신호와, CPU(42)에 의해 도선(57)을 지나 슬레이브(44) 및 SIU(46)에 제공되는 판독/기록 신호와, CPU(42)에 의해 도선(58)을 지나슬레이브(44) 및 SIU(46)에 제공되는 다수의 어드레스 신호와, 슬레이브(44) 또는 SIU(46)로 부터 도선(58)을 지나 CPU(42)에 제공되거나 또는 CPU(42)로 부터 도선(58)을 지나 슬레이브(44) 또는 SIU(46)에 제공되는 다수의 데이터 신호와, 마지막으로 도선(60)을 지나 전송되는 버스(18)에 포함되는 다른 신호(예를 들어, 다양한 제어 신호)도 있다.
CPU(42)는 카운터(75)에 양방향으로 연결된 제어 회로 소자(70)를 구비한다. 슬레이브(44)는 카운터(76)에 양방향으로 연결된 제어 회로 소자(71)를 구비한다. SIU(46)는 카운터(77) 에 양방향으로 연결된 제어 회로 소자(72)를 구비한다.
제 4 도는 본 발명의 한 실시예에 따른 제 2 도의 데이터 처리 시스템(40)의 작용을 도시하는 도표이다.
제 5 도는 본 발명의 한 실시예에 따른 제 2 도의 데이터 처리 시스템(40)의 작용을 도시하는 흐름도이다. 타원형(90-91)은 슬레이브(44)(제 3 도를 보시오)의 어드레스로의 트랜잭션 개시를 표시한다. 직사각형(92-94)은 버스 슬레이브(44)가 데이터 버스(59)를 갖는지를 표시한다.
제 6 도는 본 발명의 한 실시예에 따른 제 2 도의 데이터 처리 시스템(40)의 작용을 도시하는 타이밍도이다.
바람직한 실시예의 실시
이제, 본 발명의 실시가 논의된다. 본 발명은 마스터- 슬레이브 통신에 사용된 버스가 분리-트랜잭션 버스 또는 파이프라인된 버스일 때, 버스 마스터에 의한 최초의 어드레스 요청과 슬레이브로 부터 대응하는 데이터 응답이 매칭하는 문제를해결한다. 본 발명은 데이터 버스에 인-오더 터미네이션을 가지는 버스 프로토콜을 구현하는 방법 및 장치를 제공한다.
제 1 도를 참조하면, 본 발명의 한 실시예에서, 중앙 파이프 카운터(16)는 현재 파이프 깊이(예를 들어, 계류중인 트랜잭션의 번호)를 추적하는데 사용된다. 중앙 파이프 카운터(16)는 새로운 트랜잭션이 시작되는(예를 들어, 트랜잭션 시작 신호(20)가 표명됨) 각각의 시간에 증가하고 트랜잭션이 완료되거나 또는 끝나는(예를 들어, 트랜잭션 끝 신호(22)가 표명됨) 각각의 시간에 감소한다. 각각의 버스 마스터(12-13)는 현재 파이프 깊이가 소정의 최대 파이프 깊이보다 작을 때만 새로운 트랜잭션을 개시할 수 있다. 제 2 도에 도시된 본 발명의 실시예의 최대 파이프 깊이는 2 이다.
새로운 트랜잭션이 버스 마스터(예컨대(12))에 의해 개시될 때 트랜잭션이 어드레스된 버스 슬레이브(예컨대(14))는 현재 파이프 깊이 신호(21)로 부터의 현재 파이프 깊이값을 수신하고 파이프 카운터(32)로 저장한다. 이 버스 슬레이브(14)는 다음으로 트랜잭션이 완료되거나 끝나는(예를 들어, 트랜잭션 끝 신호(22)가 표명되는 각각의 시간) 각각의 시간에 파이프 카운터(32)를 감소시킨다. 버스 슬레이브의 파이프 카운터(32)가 "0" 으로 감소될 때 버스 슬레이브(14)는 다음 유효한 데이터 위상 동안 데이터 버스를 가진다는 것을 안다.
버스 마스터(예컨대(12))가 트랜잭션을 개시하는 각각의 시간에 버스 마스터(12)는 언제 버스 슬레이브의 데이터가 데이터 버스에서 유효한지를 막기 위한 수령 버스 슬레이브(예컨대(14))와 동일한 방법으로 파이프 깊이도 추적해야만한다. 따라서 버스 마스터(12)는 버스 슬레이브(14)처럼 현재 파이프 깊이 신호(21)로 부터의 현재 파이프 깊이값을 파이프 카운터(30)로 저장해야 한다. 버스 마스터(12)는 다음으로 트랜잭션이 완료되거나 또는 끝나는(예를 들어, 트랜잭션 끝 신호(22)가 표명됨) 각각의 시간에 파이프 카운터(30)를 감소시킨다. 버스 마스터의 파이프 카운터(30)가 "0"으로 감소될 때 버스 마스터(12)는 다음 유효한 데이터 위상 동안에 버스 슬레이브(14)로 부터 데이터 버스의 데이터를 수신할 것을 안다.
버스 마스터(12-13)는 또한, 현재 파이프 깊이 신호(21)를 모니터하여 현재 파이프 깊이가 소정의 최대 파이프 깊이보다 작은지를 결정한다. 버스 마스터(12-13)는 현재 파이프 깊이가 최대 파이프 깊이(예를 들어, 파이프가 가득찼을 때)일 때 새로운 트랜잭션을 개시하지 않을 수 있다. 본 발명의 몇몇 실시예에서, 하나 이상의 버스 마스터(12-13)는 또한, 언제 파이프 깊이가 최대 파이프 깊이가 되는지를 버스 마스터(12-13)가 예상하도록 하는 회로 소자를 파이프 카운터(30-31)에 가질 수 있다. 이러한 접근법의 이점은 버스 마스터(12-13)가 파이프는 아직 채워지지 않았음을 예상할 수 있고 그러므로써 현재 파이프 깊이가 현재 파이프 깊이 신호(21)의 중앙 파이프 카운터(16)로 부터 유효하기 전까지도 새로운 트랜잭션을 개시할 수 있다. 본 발명은 어떤 데이터 버스 조정 또는 인가 라인도 필요로 하지 않음을 주목하시오.
계속해서 제 1 도를 참조하면, 데이터 처리 시스템(10)은 모두가 버스(18)에 연결된 중앙 파이프 카운터(16), 하나 이상의 버스 마스터(12-13), 하나 이상의 버스 슬레이브(14-15)를 가진다. 제 1 도는 본 발명을 실시하기 위해 버스(18)에 포함될 수 있는 한 세트의 기초 제어 신호를 도시한다. 다른 실시예에서는 본 발명을 실시하기 위해 더 많거나, 더 적거나 또는 다른 신호를 사용할 수 있다. 버스(18)는 또한, 어드레스 버스(분리되어 도시되지 않음)와 데이터 버스(분리되어 도시되지 않음) 제 1 도에 도시된 본 발명의 실시예에서 버스 마스터(12- 13)는 트랜잭션 시작 신호(20)를 표명함으로써 새로운 버스 사이클을 개시하고 버스 슬레이브(14-15)는 트랜잭션 끝 신호(22)를 표명하므로써 버스 사이클을 완료하거나 끝낸다. 각각의 버스 사이클은 대응하는 어드레스 위상 및 대응하는 데이터 위상을 갖는다.
제 1 도에 도시된 본 발명의 실시예에서, 각각의 리드하는 버스 사이클은 버스 마스터(12-13)가 버스(18)에 어드레스 값을 제공하고, 버스 슬레이브(14-15)가 대응하는 데이터 값을 버스(18)에 제공하는 데이터 위상이 뒤따르는 어드레스 위상으로 구성된다.
중앙 파이프 카운터(16)는 계류중인 액세스의 숫자를 계속 추적하고 파이프 깊이 신호(21)를 데이터 처리 시스템(10) 의 버스 마스터(12-13) 및 버스 슬레이브(14-15)에 현재 파이프 깊이 신호(21)를 제공한다. 제 1 도에 도시된 본 발명의 실시에에서 중앙 파이프 카운터(16)는 트랜잭션이 시작되는 매 시간(예를 들어, 트랜잭션 시작 신호(20)가 표명되는 매 시간)에 증가한다.
제 1 도를 계속해서 설명하자면, 각각의 버스 슬레이브(14-15)는 트랜잭션 시작 신호(20)와 어드레스 값을 버스 마스터(12-13)로 부터 수신한다. 각각의 버스 슬레이브(14-15) 는 수신된 어드레스 값을 사용하여 리드하는 버스 사이클이 스스로 액세스하려 하는지 또는 다른 버스 슬레이브로 액세스 하려는지를 결정한다. 만약 버스 슬레이브(14-15)가 리드 버스 사이클이 버스 슬레이브를 어드레스 하지 않는다고 결정하면 버스 슬레이브는 리드 버스 사이클에 응답하지 않는다. 만약 버스 슬레이브(14-15)가 리드 버스 사이클이 버스 슬레이브를 어드레스 한다고 결정하면 버스 슬레이브(14-15)는 반드시 이 특정한 리드 버스 사이클에 응답하는 데이터 버스 위상 동안 버스(18)의 데이터 버스 부분을 조정하므로써 응답해야만 한다. 버스(18)는 또한, 버스 마스터(12-13)에 의해 제공되어 현 버스 사이클이 리드 액세스임을 버스 슬레이브(14-15)에 나타내는 판독/기록 신호(단독으로 도시되지 않음)를 포함한다.
중요한 문제는 어떻게 특정 버스 슬레이브(14-15)가 어느 데이터 위상 "N"이 상술한 특정 슬레이브를 액세스한 어드레스 위상 "N" 에 부합하는지를 결정할 수 있는가 이다. 즉 버스 사이클 N 동안 버스 슬레이브(14)가 버스(18)의 어드레스 부분의 버스 슬레이브 자체의 어드레스 값 중 하나를 수신할 때 버스 슬레이브(14)는 버스(18)의 데이터 부분의 어느 타임 슬롯이 버스 사이클(N)에 부합하는지를 결정해야만 한다. 다음으로 버스 슬레이브(14)는 버스 사이클 N 에 응답하는 버스(18)의 데이터 부분의 타임 슬롯 동안 버스(18)의 데이터 부분에 데이터 값을 제공해야만 한다.
또한, 버스 사이클(N)을 개시하는 버스 마스터(12)는 버스(18)의 데이터 부분의 어느 시간 슬롯이 버스 사이클(N)에 부합하여 버스 마스터(12)가 버스 슬레이브(14)에 의해 제공된 되돌아온 데이터를 래치할 수 있는가를 결정해야만 한다. 본발명의 한 실시예에서, 버스 마스터(12)는 마스터가 개시하는 트랜잭션을 완료하는 각각의 분리된 파이프 깊이값을 저장한다. 이 저장된 파이프 깊이값을 트랜잭션 끝 신호(22)가 표명되는 각각의 시간에 감소된다. 따라서 동일한 파이프 깊이값은 현재 파이프 깊이 신호로부터 얻어지고 마스터 파이프 카운터(30) 및 슬레이브 파이프 카운터(32) 둘 다에 저장된다. 파이프 카운터(30, 32)는 트랜잭션 끝 신호(22)가 표명되는 각각의 시간에 감소된다 파이프 깊이가 2 일 때 버스 마스터(12)는 한 파이프 깊이값만 저장해야 한다. 하나 이상의 저장된 파이프 깊이값은 파이프 카운터(30)의 래치(도시되지 않음)에 저장될 수 있다. 버스 사이클 N 을 완료하기 위해 버스 슬레이브(14)는 트랜잭션 끝 신호(22)를 표명해야만 한다.
어떻게 특정한 버스 슬레이브(14-15)가 그 특정한 버스 슬레이브(14-15)에 어느 데이터 위상 "N" 이 속하는지를 결정할 수 있는가의 중요한 문제가 다음 방법으로 해결된다. 새로운 트랜잭션이 나올 때, 그 트랜잭션이 넘겨지는 버스 슬레이브(14)는 신호(21)로 부터의 현재 파이프 깊이값을 파이프 카운터(32)로 래치하고 저장한다. 파이프 카운터(32)는 소정의 매칭값에 도달하거나 또는 그것을 넘을 때까지 증가하는 업-카운터이다. 파이프 카운터(32)는 현재 파이프 깊이값으로 부하되는 다운-카운터이며 소정의 매칭값 또는 0 으로 감소된다. 또한, 파이프 카운터(32)는 스테이트 머신이다. 다른 파이프 카운터(30, 31, 33)의 실행도 마찬가지이다.
본 발명의 한 실시예에서, 파이프 카운터(32)는 버스 슬레이브(14)로의 액세스가 수신될 때 신호(21)로 부터의 현재 파이프 깊이값으로 부하된 다운-카운터이다. 버스 슬레이브(14)는 다음으로 트랜잭션이 완료되는 매 시간(즉 트랜잭션 끝 신호(22)가 표명되는 매 시간) 마다 파이프 카운터(32)의 카운터 값을 감소시킨다. 따라서 파이프 카운터(32)의 카운터 값이 영에 도달할 때 버스 슬레이브(14)는 다음 유효한 데이터 위상은 트랜잭션 N+1 에 대한 것이다. 따라서, 다음 유효한 데이터 위상 동안 버스 슬레이브(14)는 그것의 데이터 값을 버스(18)의 데이터 버스 부분으로 보낸다.
본 발명은 데이터 버스의 어떠한 조정도 필요치 않음을 주목하시오. 따라서 어떤 데이터 버스 조정이나 인가 신호도 필요치 않다. 대신에 각각의 버스 마스타(12-13) 및 각각의 버스 슬레이브(14-15)는 파이프 카운터(30-33)를 가지고 있어 언제 데이터 버스를 가지는지를 결정하고 반면에 중앙 파이프 카운터(16)는 현재 파이프 깊이를 계속 추적하는데 사용된다.
제 2 도는 제 1 도의 버스(18)의 파이프라인된 두 트랜잭션을 도시한다. "마스터-A"(제 2 도를 보시오)가 버스 마스터(12)(제 1 도를 보시오)이고, "슬레이브-A"가 버스 슬레이브(14)이고, "마스터-B" 가 버스 마스터(13)이고 "슬레이브-B"가 버스 슬레이브(15)라 가정하자. 제 1 트랜잭션은 버스 마스터(12)로 부터 버스 슬레이브(14)로 되고(마스터-A 에서 슬레이브-A로), 제 2 트랜잭션은 버스 마스터(13)에서 버스 슬레이브(15)로(마스터-B 에서 슬레이브-B로)된다. 클락(34)은 타이밍 관계를 나타내며 버스 마스터(12-13), 버스 슬레이브(14-15), 중앙 파이프 카운터(16)에 의해 사용된다. 쉽게 이해하기 위해 클락(34)의 각각의 완전한 주기는 동일한 네개의 시간 분할로 나뉘거나 연속적으로 T1, T2, T3, T4 로 분류된틱(tick)으로 나뉜다. 본 발명의 다른 실시예는 버스(18)의 다양한 신호 사이의 다른 타이밍 관계를 이용할 수 있다.
버스 마스터(12)는 트랜잭션 시작 신호(20)를 표명하고 제 1 T3 의 버스 슬레이브(14)의 어드레스 값과 함께 버스(18) 의 어드레스 버스 부분을 드라이빙 하므로써 제 1 트랜잭션을 개시한다. 앞서 완료된 트랜잭션이 없으므로 중앙 파이프 카운터(16)에 의해 신호(21)에 제공된 현재 파이프 깊이값은 영이다.
각각의 버스 슬레이브(14-15)는 어드레스 값을 래칭하고 어드레스 값이 그자체의 어드레스중 하나인지를 결정하므로써 트랜잭션 시작 신호(20)의 표명에 응답한다. 상술한 어드레스 값이 버스 슬레이브(14)에 관한 것이므로 버스 슬레이브(14)는 신호(21)로 부터 현재 파이프 깊이값을 래칭하고(이 경우"0") 이 값을 파이프 카운터(32)에 저장한다. 버스 마스터(12) 또한, 신호(21)로 부터의 현재 파이프 깊이값을 래칭하고(이 경우 "0") 이 값을 파이프 카운터(30)에 저장한다. 제 2 도에 도시된 "슬레이브-A 파이프 카운팅" 값은 파이프 카운터(32)에 저장된 값을 나타낸다.
어드레스 값이 버스 슬레이브(15)에 관한 것이 아니므로 버스 슬레이브(15)는 신호(21)로 부터의 현재 파이프 깊이값을 래칭하지 않고 어떤 값도 파이프 카운터(33)에 저장되지 않는다. 제 2 도에 도시된 "슬레이브-B 파이프 카운팅"은 파이프 카운터(33)에 저장된 값을 나타낸다. 트랜잭션 시작 신호(20)의 표명에 응답하여 중앙 파이프 카운터(16)는 카운터를 증가시키고 새로운 현재 파이프 깊이값(즉 "1")으로 현재 파이프 깊이 신호(21)를 드라이브 한다.
파이프 카운터(32)에 저장된 카운터 값이 "0"이므로 버스 슬레이브(14)는 다음 데이터 위상이 버스 슬레이브(14)에 소속됨을 결정한다. 따라서 버스 슬레이브(14)는 데이터 버스의 다음 유효한 타임 슬롯 동안 버스 슬레이브의 응답 데이터 값으로 데이터 버스를 드라이브 한다.
버스 마스터(13)는 트랜잭션 시작 신호(20)를 표명하고 제 2 T3 의 버스 슬레이브(15)의 어드레스 값으로 버스918)의 어드레스 버스 부분을 드라이빙 하므로써 제 2 트랜잭션을 개시한다. 앞선 비완료 트랜잭션이 하나 있으므로 중앙 파이프카운터(16)에 의해 신호(21)에 제공된 현재 파이프 깊이값은 "1"이다.
각각의 버스 슬레이브(14-15)는 어드레스 값을 래칭하고 그 어드레스 값이 버스 슬레이브 자체의 어드레스 중 하나 인지를 결정하므로써 트랜잭션 시작 신호(20)의 표명에 응답한다. 어드레스 값이 버스 슬레이브(15)에 관한 것이므로 버스 슬레이브(15)는 신호(21)(이 경우 "1")로 부터 현재 파이프 깊이값을 래치하고 이 값을 파이프 카운터(33)에 저장한다. 이와 마찬가지로 버스 마스터(13)는 신호(21)(이 경우 "1")로 부터의 현재 파이프 깊이값을 래치하고 이 값을 파이프 카운터(31)에 저장한다. 어드레스 값이 버스 슬레이브(14)에 관한 것이 아니므로 버스 슬레이브(14)는 신호(21)로 부터 현재 파이프 깊이값을 래치하지 않으므로 어떠한 새로운 값도 파이프 카운터(32)에 저장되지 않는다; 즉 파이프 카운터(32)는 여전히 "0"을 담고 있다. 트랜잭션 시작 신호(20)의 제 2 표명에 응답하여 중앙 파이프 카운터(16)는 카운터를 증가시키고 새로운 현재 파이프 깊이 신호(21)를 드라이브한다.
파이프 카운터(33)에 저장된 카운터 값이 "1"이므로 버스 슬레이브(15)는 다음 데이터 위상이 버스 슬레이브(15)에 소속되지 않음을 결정한다. 따라서 버스 슬레이브(15)는 기다리면서 그것의 응답 데이터 값으로 데이터 버스를 드라이브하지 않는다. 파이프 카운터(31)에 저장된 카운터 값이 "1"이므로 버스 마스터(13)는 버스 슬레이브(15)가 데이터 버스의 다음 유효한 타임 슬롯 동안 버스 슬레이브(15)의 데이터 값으로 응답하지 않음을 결정한다.
버스 슬레이브(14)가 제 1 트랜잭션의 데이터 위상을 완료할 때 버스 슬레이브(14)는 트랜잭션 끝 신호(22)를 표명한다. 버스 슬레이브(15) 및 버스 마스터(13)가 각각의 파이프 카운터(31, 33)에 저장된 값을 감소시키므로써 트랜잭션 끝 신호의 표명에 응답한다. 마찬가지로 중앙 파이프 카운터(16)는 카운터를 감소시키고 새로운 현재 파이프 깊이값(즉 "1")으로 현재 파이프 깊이 신호(21)를 드라이빙하므로써 트랜잭션 끝 신호(22)의 표명에 응답한다.
파이프 카운터(33)에 저장된 카운터 값이 "0"으로 감소되었기 때문에 버스 슬레이브(15)는 다음 데이터 위상이 버스 슬레이브(15)에 소속됨을 결정한다. 따라서 버스 슬레이브(15)는 데이터 버스의 다음 유효한 타임 슬롯 동안 버스 슬레이브(15)의 응답 데이터 값으로 데이터 버스를 드라이브 한다. 파이프 카운터(31)에 저장된 카운터 값이 "0"이므로 버스 마스터(13)는 버스 슬레이브(15)가 데이터 버스의 다음 유효한 타임 슬롯 동안 버스 마스터(13)의 데이터 값으로 응답함을 결정한다.
버스 슬레이브(15)가 제 2 트랜잭션의 데이터 위상을 완료할 때 버스 슬레이브(15)는 트랜잭션 끝 신호(22)를 표명한다. 중앙 파이프 카운터(16)는 카운터를 감소시키고 새로운 현재 파이프 깊이값(즉 "0")으로 현재 파이프 깊이 신호(21)를 드라이빙 하므로써 트랜잭션 끝 신호(22)의 표명에 응답한다.
제 1 도 및 제 2 도가 파이프 깊이 2를 도시하여도 본 발명의 다른 실시예는 어떤 파이프 깊이도 이용할 수 있다. 현재 파이프 깊이 신호(21)의 수, 파이프 카운터(30-33)의 비트 및 래치의 수, 중앙 파이프 카운터(16)의 비트 수는 어떤 파이프 깊이도 수용하도록 확대할 수 있다.
버스 마스터(12-13)는 현재 파이프 깊이 신호(21)를 이용하여 최대 파이프 깊이에 도달하였는지 아닌지를 결정하고 그러므로써 새로운 트랜잭션이 시작될 수 있는지 없는지를 결정할 수 있다. 만약 최대 파이프 깊이에 도달하였으면 버스 마스터(12-13)는 새로운 트랜잭션을 개시하지 않는다. 만약 버스 마스터(12-13)가 현재 파이프 깊이 신호(21)로 부터 최대 파이프 깊이에 도달하였음을 결정하면 버스 마스터(12-13)는 버스 슬레이브(14-15)중 하나로 부터 표명된 트랜잭션 끝 신호(22)를 수신하는 것에 응답하여 현재 파이프 깊이값을 중앙 파이프 카운터(16)가 감소시킬 때까지 현재 파이프 깊이 신호(21)를 계속 모니터한다. 일단 현재 파이프 깊이 신호(21)가 파이프 깊이는 더 이상 최대값이 아니다라고 나타내면 버스 마스터(12-13)는 버스(18)의 새로운 트랜잭션을 개시할 수 있다.
제 3 도는 본 발명의 다른 실시예를 도시한다. 제 3 도에 도시된 전송 시작 신호(50)는 제 1 도에 도시된 트랜잭션 시작 신호와 동일한 일반 목적을 이루며; 두 신호는 새로운 트랜잭션의 어드레스 위상을 개시하기 위해 버스 마스터에 의해표명되다. 제 3 도에 도시된 전송 인식 신호(52)는 제 1 도에 도시된 트랜잭션 끝 신호와 동일한 일반 목적을 이루며; 두 신호는 트랜잭션의 데이터 위상 완료를 나타내도록 버스 슬레이브에 의해 표명된다. 그리고 제 3 도에 도시된 현재 파이프 깊이 신호(51)는 제 1 도에 도시된 현재 파이프 깊이 신호와 동일한 목적을 이루며; 둘은 버스 마스터 및 버스 슬레이브에 현재 파이프 깊이를 동보 통신한다.
본 발명의 실시예에서, SIV(46)는 중앙 파이프 카운터와 버스 슬레이브로서 기능함을 주목하시오. 다른 실시예에서는 모든 버스 슬레이브로 부터 분리된 중앙 파이프 카운터를 가질 수 있다. 또한, 본 발명의 다른 실시예에서, 한 중앙 파이프 카운터(46)를 가지는 대신 각 버스 마스터(42)는 현재 파이프 깊이를 계속 추적하고 버스 마스터가 개시하는 각각의 트랜잭션의 현재 파이프 깊이 신호(51)를 제공할 수 있다.
제 3 도에 도시된 본 발명의 실시예에서, 버스 슬레이브(44)는 트랜잭션이 에러없이 경합할 때 전송 인식 신호(52)를 표명하거나 또는 트랜잭션이 버스 에러와 함께 경합될 때 버스 에러 신호(53)를 표명하므로써 트랜잭션의 데이터 위상의 완료를 표시할 수 있다. 따라서 버스 마스터(42), 버스 슬레이브(44), 중앙 파이프 카운터(46)는 전송 인식 신호(52)와 버스 에러 신호(53)를 그들 각각의 계수(75-77)를 적합하게 감소시키기 위해 모니터해야만 한다. 본 발명의 다른 실시예에서는 트랜잭션의 데이터 위상이 완료되었음을 표시하는 하나 이상의 신호에 기초하여 카운터(75-76)가 선택적으로 조정될 수 있는(즉 증가되거나 감소되는)한 트랜잭션의 데이터 위상 완료를 표시하는 하나 이상의 어떤 신호 조합도 이용할 수 있다. 카운터(75-76)는 또한, 스테이트 머신으로 실행될 수 있다.
제 3 도에 도시된 본 발명의 실시예에서, 어드레스 인식 신호(54) 및 어드레스 인지 신호(55)는 버스 슬레이브에 의해 제공되어 트랜잭션의 어드레스 위상 완료를 표시한다. 또한, 중지 신호(56)는 트랜잭션의 어드레스 위상을 중지시키기 위해 버스 마스터(42)에 의해 제공된다. 따라서 버스 마스터(42), 버스 슬레이브(44), 중앙 파이프 카운터(46)는 그들 각각의 카운터(75-77)를 적합하게 증가시키기 위해 전송 시작 신호(50) 및 중지 신호(56)를 모니터해야만 한다. 본 발명의 다른 실시예에서는 트랜잭션이 개시되고 대응하는 데이터 위상이 완료되기 전에 중지되지 않는다는 것을 표시하기 위해 하나 이상의 어떤 신호 조합도 이용할 수 있다.
제 3 도에 도시된 본 발명의 실시예에서, 어드레스 버스(58), 데이터 버스(59), 판독/기록 신호(57)는 명백히 도시된다. 어드레스 버스(58)와 데이터 버스(59)는 파이프라인되고 분리된 트랜잭션 버스임을 주목하시오. 버스(48)는 또한, 제어 또는 정보, 예를 들어, 어드레스 속성 정보(예를 들어, 수퍼바이저/사용자 스페이스) 전송에 사용될 수 있는 다른 신호(60)를 포함한다.
제 4 도는 어떻게 카운터(77)의 파이프 깊이값이 본 발명의 한 실시예에서 증가하고 감소하는가를 나타낸다. "앞선 파이프 깊이"가 쓰여진 칼럼은 카운터(77)(제 3 도를 보시오)에 저장된 현재의 값을 표시한다. "다른 파이프 깊이"라 씌어진 칼럼은 버스(48)의 다양한 신호로 결정되었지만 카운터(77)에 저장될 다음 값을 나타낸다. 제 4 도에 도시된 본 발명의 실시예에서, 다음 파이프 깊이는전송 시작 신호(50), 어드레스 인지 신호(55), 중지 신호(56), 전송인지 신호(52)의 기능이다.
본 발명의 몇몇 실시예에서, 다음 파이프 깊이는 또한, 트랜잭션의 데이터 위상 완료를 표시하는 전송인지 신호(52)와 동일한 방식으로 사용된 버스 에러 신호(53)의 기능이다. 본 발명의 다른 실시예에서는 버스 에러 신호(53)를 사용하지 않거나 또는 이러한 방법으로 버스 에러 신호를 사용하지 않는다.
"T3 의 새로운 사이클을 시작할까요?"라고 쓰인 칼럼은 최대 파이프 깊이에 도달했는지 아닌지와 버스 마스터(42)가 새로운 트랜잭션 또는 버스(48)의 버스 사이클을 개시할 수 있는지를 표시한다. 제 3 도에 도시된 데이터 처리 시스템(40)의 최대 파이프 깊이가 2 이므로 버스 마스터(42)는 다음 파이프 깊이값이 "2"가 될 때 새로운 트랜잭션을 개시하지 않는다.
본 발명의 몇몇 실시예에서, 버스 마스터(42)의 제어 회로 소자(70)는 언제 최대 파이프 깊이가 도달될지를 버스 마스터(42)가 효과적으로 예상할 수 있도록 중앙 파이프 카운터(46)의 제어 회로 소자(72)의 대부분 또는 전부를 복제할 수 있다. 따라서 버스(48)의 타이밍이 다음 파이프 깊이값이 신호(51)에 의해 수신되기 전에 새로운 트랜잭션을 개시할지 안할지를 버스 마스터(42)가 결정하도록 요구하면 버스 마스터(42)는 중앙 파이프 카운터(46)(제 4 도의 표를 보시오) 와 동일한 방법으로 다음 파이프 값을 계산하므로써 언제 최대 파이프 값에 도달할지를 효과적으로 예상할 수 있다. 본 발명의 다른 실시예에서, 버스 마스터(42)는 더욱 간단한 카운터(75)를 가지며 현재 파이프 깊이 신호(51)에 의해 중앙 파이프카운터(46)로 부터 제공될 다음 파이프 깊이값을 기다려야 한다.
제 5도는 버스 슬레이브(44)가 트랜잭션에 응답할 수 있고 트랜잭션은 중지되지 않는다고 가정하고 버스 슬레이브(44)의 작용의 흐름도를 도시한다. 타원형(90)을 언급하면 전송 시작 신호(50)가 표명되고 현재 파이프 깊이 신호(51)가 이진의 "X1"일 때 버스 슬레이브(44)는 응답(직사각형(92)을 보시오)전에 승인될 데이터 버스(59)를 기다린다. 카운터(76)는 현재 파이프 깊이 신호(51)의 최소한의 의미있는 비트를 저장함을 주목하시오. 따라서 카운터(76)는 "1"을 저장한다. 만약 전송인지 신호(52)가 표명되면 카운터(76)는 이제 "0"을 담도록 감소되고 따라서 데이터 버스(59)가 승인되고 버스 슬레이브(44)는 적합한 데이터 값(직사각형(93)을 보시오)으로 데이터 버스(59)를 드라이빙 하므로써 응답할 수 있다. 전송인지 신호(52)는 버스 슬레이브(44)에 의해 표명되고 카운터(76)는 영향을 받지 않으며("0"을 계속해서 저장한다). 데이터 버스(59)는 다른 트랜잭션이 계되지 않으므로 무효하다.
타원형(91)을 언급하면 전송 시작 신호(50)가 표명되고 현재 파이프 깊이 신호(51)가 이진 "XO"이면 버스 슬레이브(44)는 데이터 버스(59)가 승인되고 버스 슬레이브(44)는 적합한 데이터 값(직사각형(93)을 보시오)으로 데이터 버스(59)를 드라이빙 하므로써 응답한다. 전송인지 신호(52)는 다음으로 버스 슬레이브(44)에 의해 표명되고 카운터(76)는 영향을 받지 않으며("0"을 계속해서 저장한다) 데이터 버스(59)는 이제 어떤 다른 트랜잭션이 계류되지 않으므로(직사각형(94)을 보시오) 무효하다.
제 6 도는 버스(48)의(제 3 도를 보시오) 파이프라인된 세 트랜잭션을 도시한다. 제 1 트랜잭션은 제 1 버스 슬레이브(예를 들어, 버스 슬레이브(14))로의 판독 액세스이며 제 2 트랜잭션은 제 2 버스 슬레이브로의 기록 엑세스이며 제 3 트랜잭션은 제 3 버스 슬레이브로의 판독 액세스이다. 클락(64)은 타이밍 관계를 표시하는데 사용되며 버스 마스터(12), 버스 슬레이브(14), 중앙 파이프 카운터(46)에 의해 사용됨을 주목하시오. 쉽게 이해하기 위해 클락(34)의 각각의 완전한 주기는 네 개의 동일한 시간 분할로 또는 연속적으로 T1, T2, T3, T4 로 라벨이 붙은 틱(tick)으로 나뉜다. 본 발명의 다른 실시예에서는 버스(48)의 다양한 신호 사이의 다른 타이밍 관계를 이용할 수 있다. 어드레스 신호(58)를 갖기 위해 어드레스 버스 조정의 어떤 타입도 사용될 수 있음을 주목하시오.
제 6 도를 언급하면 기록 액세스를 위해 버스 마스터(42)는 T4 동안 데이터 값으로 데이터 버스(59)를 드라이브하며 판독 액세스를 위해 버스 슬레이브(44)는 T2 동안 데이터 값으로 데이터 버스(59)를 드라이브 한다. 그러나 데이터 버스(59)가 인-오더 터미네이션 버스이므로 각각의 버스 슬레이브는 그것이 적합한 시간에 전송인지 신호(52)를 표명하므로써 트랜잭션의 데이터 위상을 적합하게 끝낼 수 있도록 데이터 버스(59)를 가지는지를 계속 추적해야 한다. 따라서 제 2 슬레이브가 기록 액세스를 위해 액세스되고 T4 동안 데이터 버스(59)로 부터 데이터 값을 래치하더라도 제 2 슬레이브는 언제 그것이 전송인지 신호(52)를 표명해야 하는지를 결정하기 위해 신호(51)로 부터 현재 파이프 깊이값을 래치해야만 한다.
만약 제 2 슬레이브가 전송인지 신호(52)를 표명하므로써 제 2 트랜잭션의데이터 위상을 적합하게 끝내지 않았으면 전송 시작 신호(50)의 매 표명마다 전송인지 신호(52)의 대응하는 표명은 없다. 그리고 결과로서 데이터 버스(59)의 데이터 위상의 끝은 더이상 정리되어 있지 않고 버스 마스터(42)와 다른 버스 슬레이브(44)는 어느 디바이스가 데이터 버스(59)를 손쉽게 가지는가를 추적할 수 없다.
본 발명의 다른 실시예에서, 카운터(75-77)의 증가 및 감소는 판독 액세스가 모든 기록 액세스와 무관하게 지정되는 동안 카운터(75-77)가 모든 기록 액세스와 데이터 버스의 소유권을 무시하도록 판독/기록 신호에 의해 한정될 수 있다. 기록 액세스 동안 데이터 버스의 소유권은 대부분의 최근의 트랜잭션을 개시한 버스 마스터에 주어지고 데이터 버스의 기록 액세스는 데이터 버스(예를 들어, 기록 액세스는 데이터 버스의 타임 슬롯 T3 와 T4 를 사용하는 반면 판독 액세스는 데이터 버스의 타임 슬롯 T1 과 T2 를 사용한다)의 판독 액세스와 경합을 벌이지 않는 타임 슬롯을 사용한다.
제 3-6 도가 파이프 깊이 2 를 도시하여도 본 발명의 다른 실시예에서는 어떤 파이프 깊이도 이용할 수 있다. 현재 파이프 깊이 신호(51)의 수와 카운터(75-77)의 비트 및 래치의 수는 어떤 파이프 깊이도 수용하도록 확대될 수 있다.
본 발명의 특정 실시예만 상세히 설명되었어도 다양한 변형과 개선이 본 발명의 범위를 벗어나지 않고 당업자에 의해 실시될 수 있음을 알 수 있다. 따라서 본 발명은 설명된 특정 형태에 극한되지 않고 첨부된 청구 범위는 본 발명의 사상과 범위를 벗어나지 않고 모든 변형을 다룸을 알게될 것이다.
제 1 도는 본 발명의 한 구체적 실시예에 따른 데이터 처리 시스템(10)을 도시하는 블록도.
제 2 도는 본 발명의 한 구체적 실시예에 따른 제 1 도의 데이터 처리 시스템(10)의 작용을 도시하는 타이밍도.
제 3 도는 본 발명의 다른 실시예에 따른 데이터 처리 시스템(40)을 도시하는 블록도.
제 4 도는 본 발명의 한 실시예에 따른 제 3 도의 데이터 처리 시스템(40)의 작용을 도시하는 도표.
제 5 도는 본 발명의 한 실시예에 따른 제 3 도의 데이터 처리 시스템(40)의 작용을 도시하는 공정 계통도.
제 6 도는 본 발명의 한 실시예에 따른 제 3 도의 데이터 처리 시스템(40)의 작용을 도시하는 타이밍도.
* 도면의 주요 부분에 대한 부호의 설명 *
12, 13, 42 : 버스 마스터 14, 15, 44 : 버스 슬레이브
18, 48 : 스플릿 트랜잭션 버스 16, 72 : 중앙 파이프 카운터
20, 50 : 트랜잭션 시작 신호 22, 52 : 트랜잭션 끝 신호
30-33, 75-76 : 카운터

Claims (3)

  1. 데이터 처리 시스템에 있어서,
    트랜잭션 시작 요청을 나타내는 버스 트랜잭션 시작 신호를 전송하는 버스 트랜잭션 시작 도선과, 트랜잭션 종료 요청을 나타내는 버스 트랜잭션 끝 신호를 전송하는 버스 트랜잭션 끝 도선과, 파이프 깊이값을 전송하는 적어도 하나의 파이프 깊이 도선을 포함하는 버스와,
    상기 버스에 연결되고, 상기 버스에 상기 버스 트랜잭션 시작 신호를 제공하는 버스 마스터와,
    상기 버스에 연결되고, 상기 버스에 버스 트랜잭션 끝 신호를 제공하는 버스 슬레이브와,
    상기 버스에 연결되고, 상기 버스 트랜잭션 시작 신호 및 상기 버스 트랜잭션 끝 신호 둘다에 기초하여 조정되는 제 1 계수값을 저장하고, 상기 적어도 하나의 파이프 깊이 도선에 상기 제 1 계수값을 상기 파이프 깊이값으로서 제공하는 제 1 카운터를 포함하는 데이터 처리 시스템.
  2. 버스(18)를 경유하여 버스 슬레이브(14)에 연결된 버스 마스터(12)를 가지는 데이터 처리 시스템(10, 40)에서 인-오더 터미네이션(in-order termination)을 가지는 버스 프로토콜을 구현하는 방법에 있어서,
    제 1 버스 트랜잭션을 개시하기 위해 트랜잭션 시작 신호(20)를 표명하는 단계와,
    상기 제 1 버스 트랜잭션 동안, 상기 버스(18)를 경유하여 상기 버스 슬레이브(14)에 파이프 깊이값을 제공하는 단계와,
    상기 버스 슬레이브(14)에 상기 파이프 깊이값을 제 1 트랜잭션 파이프 깊이값으로서 저장하는 단계와,
    상기 제 1 트랜잭션 파이프 깊이값이 소정의 값일 때, 상기 버스 슬레이브(14)에 상기 버스(18)의 소유권을 부여하고 상기 버스 슬레이브(14)로부터 상기 버스(18)로 제 1 데이터 값을 제공하는 단계와,
    상기 제 1 트랜잭션 파이프 값이 소정의 값이 아닐 때, 상기 버스 슬레이브(14)로의 상기 버스(18)의 소유권 부여를 보류하는 단계와,
    제 2 버스 트랜잭션을 시작하기 위해 상기 트랜잭션 시작 신호를 표명하는 단계와,
    제 2 버스 트랜잭션 개시를 위해 상기 트랜잭션 시작 신호를 표명하는 상기 단계에 응답하여, 조절된 제 1 트랜잭션 파이프 깊이값을 생성하기 위해, 상기 버스 슬레이브(14)에 저장된 상기 제 1 트랜잭션 파이프 깊이값에 관한 증가 동작 및 감소 동작 중 하나를 수행하는 단계와,
    상기 조절된 제 1 트랜잭션 파이프 깊이값이 소정의 값일 때, 상기 버스 슬레이브(14)에 상기 버스(18)의 소유권을 부여하고 상기 버스 슬레이브(14)로부터 상기 버스(18)에 상기 제 1 데이터 값을 제공하는 단계와,
    상기 조절된 제 1 트랜잭션 파이프 깊이값이 소정의 값이 아닐 때, 상기 버스 슬레이브(14)로의 상기 버스(18)의 소유권 부여를 보류하는 단계를 포함하는 버스 프로토콜 구현 방법.
  3. 데이터 처리 시스템(40)에 있어서,
    버스 트랜잭션 시작 신호를 전송하는 버스 트랜잭션 시작 도선(50)과, 버스 트랜잭션 끝 신호를 전송하는 버스 트랜잭션 끝 도선(52)과, 파이프 깊이값을 전송하는 적어도 하나의 파이프 깊이 도선(51)과, 어드레스 버스(58)와, 데이터 버스(59)를 포함하는 버스(48)와,
    상기 버스에 연결되고 상기 버스 트랜잭션 시작 신호를 상기 버스에 제공하는 버스 마스터(42)와,
    상기 버스에 연결되고 상기 버스 트랜잭션 끝 신호를 상기 버스에 제공하는 제 1 버스 슬레이브(46)와,
    상기 버스에 연결되고 상기 버스 트랜잭션 끝 신호를 상기 버스에 제공하는 상기 제 2 버스 슬레이브(44)를 포함하고,
    상기 제 1 버스 슬레이브(46)는, 상기 버스 트랜잭션 시작 신호의 표명에 응답하여 증가되고 상기 버스 트랜잭션 끝 신호의 표명에 응답하여 감소되는 파이프 깊이값을 결정하는 제 1 카운터(77)를 포함하며,
    상기 제 2 버스 슬레이브(44)는, 상기 제 1 카운터로부터 상기 파이프 깊이값을 수신하고, 상기 제 2 버스 슬레이브(44)가 언제 상기 데이터 버스(59)를 소유하는지를 계산하는 제 2 카운터(76)를 포함하는 데이터 처리 시스템.
KR1019950051785A 1994-12-22 1995-12-19 데이터처리시스템및버스프로토콜구현방법 KR100354934B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/363,435 US5699516A (en) 1994-12-22 1994-12-22 Method and apparatus for implementing a in-order termination bus protocol within a data processing system
US363,435 1994-12-22

Publications (2)

Publication Number Publication Date
KR960025090A KR960025090A (ko) 1996-07-20
KR100354934B1 true KR100354934B1 (ko) 2003-01-29

Family

ID=23430202

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950051785A KR100354934B1 (ko) 1994-12-22 1995-12-19 데이터처리시스템및버스프로토콜구현방법

Country Status (4)

Country Link
US (1) US5699516A (ko)
EP (1) EP0720099A1 (ko)
JP (1) JP4040704B2 (ko)
KR (1) KR100354934B1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5615343A (en) * 1993-06-30 1997-03-25 Intel Corporation Method and apparatus for performing deferred transactions
US5809258A (en) * 1994-08-23 1998-09-15 Ascom Timeplex Trading Ag Bus with high gross data transfer rate
US6085261A (en) * 1996-07-29 2000-07-04 Motorola, Inc. Method and apparatus for burst protocol in a data processing system
US6003107A (en) * 1996-09-10 1999-12-14 Hewlett-Packard Company Circuitry for providing external access to signals that are internal to an integrated circuit chip package
US5881224A (en) * 1996-09-10 1999-03-09 Hewlett-Packard Company Apparatus and method for tracking events in a microprocessor that can retire more than one instruction during a clock cycle
US5887003A (en) * 1996-09-10 1999-03-23 Hewlett-Packard Company Apparatus and method for comparing a group of binary fields with an expected pattern to generate match results
US5867644A (en) * 1996-09-10 1999-02-02 Hewlett Packard Company System and method for on-chip debug support and performance monitoring in a microprocessor
US5880671A (en) * 1996-10-31 1999-03-09 Hewlett-Packard Company Flexible circuitry and method for detecting signal patterns on a bus
US5956476A (en) * 1996-10-31 1999-09-21 Hewlett Packard Company Circuitry and method for detecting signal patterns on a bus using dynamically changing expected patterns
US5956477A (en) * 1996-11-25 1999-09-21 Hewlett-Packard Company Method for processing information in a microprocessor to facilitate debug and performance monitoring
US5881217A (en) * 1996-11-27 1999-03-09 Hewlett-Packard Company Input comparison circuitry and method for a programmable state machine
US6009539A (en) * 1996-11-27 1999-12-28 Hewlett-Packard Company Cross-triggering CPUs for enhanced test operations in a multi-CPU computer system
KR100414750B1 (ko) * 1997-06-20 2005-09-28 주식회사 하이닉스반도체 동기식 그래픽 램에서의 파이프 카운터 제어회로
US6240479B1 (en) 1998-07-31 2001-05-29 Motorola, Inc. Method and apparatus for transferring data on a split bus in a data processing system
US6374370B1 (en) 1998-10-30 2002-04-16 Hewlett-Packard Company Method and system for flexible control of BIST registers based upon on-chip events
US6813251B1 (en) * 1999-07-27 2004-11-02 Intel Corporation Split Transaction protocol for a bus system
US6772254B2 (en) 2000-06-21 2004-08-03 International Business Machines Corporation Multi-master computer system with overlapped read and write operations and scalable address pipelining
US7174401B2 (en) 2002-02-28 2007-02-06 Lsi Logic Corporation Look ahead split release for a data bus
US6948019B2 (en) * 2002-04-30 2005-09-20 Lsi Logic Corporation Apparatus for arbitrating non-queued split master devices on a data bus
US6970962B2 (en) * 2003-05-19 2005-11-29 International Business Machines Corporation Transfer request pipeline throttling
US7711909B1 (en) * 2004-12-09 2010-05-04 Oracle America, Inc. Read sharing using global conflict indication and semi-transparent reading in a transactional memory space
JP2007122410A (ja) * 2005-10-28 2007-05-17 Nec Electronics Corp バス調停回路及びバス調停方法
US8185680B2 (en) * 2006-02-06 2012-05-22 Standard Microsystems Corporation Method for changing ownership of a bus between master/slave devices
US8006015B2 (en) * 2006-11-08 2011-08-23 Freescale Semiconductor, Inc. Device and method for managing access requests
US9213665B2 (en) * 2008-10-28 2015-12-15 Freescale Semiconductor, Inc. Data processor for processing a decorated storage notify

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5050066A (en) * 1988-10-14 1991-09-17 Intel Corporation Apparatus with a single memory and a plurality of queue counters for queuing requests and replies on a pipelined packet bus
US5345578A (en) * 1989-06-30 1994-09-06 Digital Equipment Corporation Competitive snoopy caching for large-scale multiprocessors
IL96808A (en) * 1990-04-18 1996-03-31 Rambus Inc Introductory / Origin Circuit Agreed Using High-Performance Brokerage
US5191649A (en) * 1990-12-21 1993-03-02 Intel Corporation Multiprocessor computer system with data bus and ordered and out-of-order split data transactions
US5255373A (en) * 1991-08-07 1993-10-19 Hewlett-Packard Company Decreasing average time to access a computer bus by eliminating arbitration delay when the bus is idle
US5345562A (en) * 1992-02-12 1994-09-06 Industrial Technology Research Institute Data bus arbitration for split transaction computer bus
US5588125A (en) * 1993-10-20 1996-12-24 Ast Research, Inc. Method and apparatus for increasing bus bandwidth on a system bus by inhibiting interrupts while posted I/O write operations are pending
US5546546A (en) * 1994-05-20 1996-08-13 Intel Corporation Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge

Also Published As

Publication number Publication date
JPH08255124A (ja) 1996-10-01
EP0720099A1 (en) 1996-07-03
KR960025090A (ko) 1996-07-20
US5699516A (en) 1997-12-16
JP4040704B2 (ja) 2008-01-30

Similar Documents

Publication Publication Date Title
KR100354934B1 (ko) 데이터처리시스템및버스프로토콜구현방법
US4096572A (en) Computer system with a memory access arbitrator
US5887194A (en) Locking protocol for peripheral component interconnect utilizing master device maintaining assertion of lock signal after relinquishing control of bus such that slave device remains locked
US5873114A (en) Integrated processor and memory control unit including refresh queue logic for refreshing DRAM during idle cycles
US5613078A (en) Microprocessor and microprocessor system with changeable effective bus width
US5313591A (en) Computer bus arbitration for N processors requiring only N unidirectional signal leads
EP0692764A1 (en) Memory throttle for PCI master
US5041962A (en) Computer system with means for regulating effective processing rates
US5293491A (en) Data processing system and memory controller for lock semaphore operations
JPS6327738B2 (ko)
US5388227A (en) Transparent data bus sizing
US5274780A (en) Bus controller for adjusting a bus master to a bus slave
EP0929866B1 (en) Bus interface control circuit
US4622630A (en) Data processing system having unique bus control protocol
US4583160A (en) Priority control apparatus for a bus in a bus control system having input/output devices
US5463756A (en) Memory control unit and associated method for changing the number of wait states using both fixed and variable delay times based upon memory characteristics
US6085261A (en) Method and apparatus for burst protocol in a data processing system
KR100395383B1 (ko) 데이터 전송 장치
US5255373A (en) Decreasing average time to access a computer bus by eliminating arbitration delay when the bus is idle
US5454082A (en) System for preventing an unselected controller from transferring data via a first bus while concurrently permitting it to transfer data via a second bus
US5717931A (en) Method and apparatus for communicating between master and slave electronic devices where the slave device may be hazardous
US5548767A (en) Method and apparatus for streamlined handshaking between state machines
JPS6290742A (ja) 中央処理装置の性能を向上させる方法および装置
KR100436098B1 (ko) 데이터프로세서,데이터처리시스템,및데이터프로세서를이용한외부장치로의액세스방법
EP0462622B1 (en) Microprocessor capable of ensuring flexible recovery time for I/O device

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

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20130909

Year of fee payment: 12

LAPS Lapse due to unpaid annual fee