KR20000012128A - 데이터 처리 시스템의 트랜잭션 수행 방법 및 장치 - Google Patents

데이터 처리 시스템의 트랜잭션 수행 방법 및 장치 Download PDF

Info

Publication number
KR20000012128A
KR20000012128A KR1019990031534A KR19990031534A KR20000012128A KR 20000012128 A KR20000012128 A KR 20000012128A KR 1019990031534 A KR1019990031534 A KR 1019990031534A KR 19990031534 A KR19990031534 A KR 19990031534A KR 20000012128 A KR20000012128 A KR 20000012128A
Authority
KR
South Korea
Prior art keywords
transaction
data
location
queue
address
Prior art date
Application number
KR1019990031534A
Other languages
English (en)
Other versions
KR100596947B1 (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 KR20000012128A publication Critical patent/KR20000012128A/ko
Application granted granted Critical
Publication of KR100596947B1 publication Critical patent/KR100596947B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Bus Control (AREA)
  • Small-Scale Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

각각의 장치(10, 20, 30)가 버스에 결합된 분할 버스(50, 60)용 버스 프로토콜은 펜딩 트랜잭션의 경시 큐(age-based queue)(12, 24, 34)를 가지고 있다. 큐는 트랜잭션이 실행됨에 따라 갱신된다. 중앙 중재자(40)는 각각의 큐(44)에 관한 카피를 가지고 있다. 우선 트랜잭션은 중재자내의 모든 큐중에서 결정된다. 데이터 트랜잭션 인덱스(DTI)는 다음 트랜잭션의 큐내의 위치에 나타나는 모드 장치에 대한 데이터 보유 중에 방송된다. 인덱스는 어드레스 보유 중에 정적 태그의 설비 없이도 고장 데이터를 전송할 수 있다. 한가지 실시예에 있어서, 각각의 장치는 개별 데이터 버스 그랜트(DBG)를 수신하여, 소오스와 싱크 장치에 인덱스에 관한 단일 설비를 할 수 있다.

Description

데이터 처리 시스템의 트랜잭션 수행 방법 및 장치{Method and apparatus for performing transactions in a data processing system}
본 발명은 일반적으로 데이터 처리 시스템내에서 데이터 트랜잭션을 수행하는 것에 관한 것이다.
다수의 데이터 처리 시스템은 공통 버스 세트를 이용하여 트랜잭션을 각각 수행하는 다중 마이크로프로세서, 장치 및 메모리를 포함한다. 어드레스 버스 및 데이터 버스가 분할될 때, 데이터 버스의 이용을 최대화시키기 위해 데이터를 재정리하는 것이 가능하다. 이와 같은 분할 트랜잭션 버스에 있어서, 어드레스 보유는 소정의 트랜잭션용 어드레스가 어드레스 버스에서 유효한 기간이고, 데이터 보유는 소정의 트랜잭션용 데이터가 데이터 버스에서 유효한 기간이다. 어드레스 보유는 제 1 순서로 제공되고, 데이터 보유는 데이터의 전송을 최적화하도록 재정리될 수 있다. 이것은, 예를 들어 긴 트랜잭션(즉, 다중 사이클을 수행하는데 필요한 트랜잭션)은 몇 개의 최단 트랜잭션에 종용될 때 유용하다. 데이터의 수용이 재정리 구조에 따라서 항상 호출할 수 있는 것은 아니므로, 데이터를 이것의 대응하는 어드레스로 식별하기 위한 메커니즘을 제공하는 것이 필요하다.
소정의 분할 트랜잭션 버스 시스템은 정적 태깅 메커니즘(static tagging mechanism)을 가지고 있는 버스 프로토콜을 이용하는데, 식별자는 각각의 어드레스에 부착된 다음, 대응하는 식별자는 각각의 데이터에 부착된다. 이러한 정적 태깅 방법은 어드레스 보유 중에 어드레스로 방송하는데 독특한 태그를 필요로 한다. 이 때, 태그는 트랜잭션내의 목표로 정해진 장치에 의해 저장된다. 소정의 시스템에 있어서, 태그도 시스템 중재 제어기내에 저장된다. 대응하는 데이터가 선택될 때, 태그는 데이터 보유 중에 데이터 중에서 재방송된다. 이러한 경우에, 어드레스 버스 및 데이터 버스는 태그 정보의 설비를 확장하여야 한다. 태그 정보는 데이터 소오스(즉, 데이터를 제공하는 장치)와 데이터 싱크(즉, 데이터를 수신하는 장치)에 단일 트랜잭션을 제공한다.
태그 정보에 어드레스 보유를 제공하는 부수적인 오버헤드를 필요로 하지 않는 어드레스 및 데이터 조합을 식별하는 방법이 필요하다.
도 1은 본 발명의 한 실시예에 따른 데이터 처리 시스템의 블록도.
도 2는 본 발명의 한 실시예에 따른 도 1의 데이터 처리 시스템의 중재자의 블록도.
도 3은 본 발명의 한 실시예에 따른 도 1의 데이터 처리 시스템의 장치의 블록도.
도 4는 본 발명의 한 실시예에 따른 동작에 관한 타이밍도.
도 5는 본 발명의 한 실시예에 따른 동작에 관한 타이밍도.
도 6-11은 본 발명의 한 실시예에 따른 동작에 관한 타이밍도.
*도면의 주요 부분에 대한 부호의 설명*
5 : 데이터 처리 시스템 10, 20, 30 : 장치
40 : 중재자 50 : 데이터 버스
60 : 어드레스 버스 70, 90 :마스터 인식 장치
72, 92 : 목표 인식 장치 74, 94 : DBG 및 DTI 값 발생 장치
96 : 데이터 전송 장치
본 발명의 한 특징에 있어서, 데이터 처리 시스템의 트랜잭션 수행 방법은 다수의 트랜잭션을 나타내는 다수의 트랜잭션 지시기를 수신하는 단계와, 독특한 트랜잭션 인덱스 값을 상기 다수의 트랜잭션 지시기의 각각에 할당하는 단계와, 상기 다수의 트랜잭션 중 제 1 트랜잭션을 실행하는 단계, 및 상기 독특한 트랜잭션 인덱스 값중 적어도 하나를 재할당하는 단계를 포함하고, 상기 다수의 트랜잭션 중 제 2 트랜잭션은 상기 다수의 트랜잭션 중 제 1 트랜잭션보다 길게 펜딩(pending)된다.
본 발명의 다른 특징에 따르면, 데이터 처리 시스템은 다수의 트랜잭션을 나타내는 다수의 트랜잭션을 수신할 수 있는 제 1 회로와, 독특한 트랜잭션 인덱스 값을 상기 다수의 트랜잭션 지시기의 각각에 할당할 수 있는 제 2 회로와, 상기 다수의 트랜잭션 중 제 1의 트랜잭션을 실행할 수 있는 제 3 회로, 및 상기 독특한 트랜잭션 인덱스 값중 적어도 하나를 재할당할 수 있는 제 4 회로를 포함하고, 상기 다수의 트랜잭션 중 제 2 트랜잭션이 상기 다수의 트랜잭션 중 제 1 트랜잭션보다 길게 펜딩된다.
본 발명의 다른 실시예에 따르면, 데이터 처리 시스템의 데이터 트랜잭션 수행 방법은 제 1 식별자 및 제 2 트랜잭션의 제 2 식별자를 제 1 장치에 대응하는 제 1 장치 큐내에 저장하는 단계를 포함하고, 상기 제 1 식별자는 상기 제 1 장치내의 제 1 위치내에 저장되고, 상기 제 2 식별자는 상기 제 1 장치 큐내의 제 2 위치내에 저장되며, 상기 제 1 위치는 상기 제 2 위치와 다르다. 이 방법은 이 후 제 1 데이터 트랜잭션 인덱스 신호가 상기 제 1 위치에 대응하는 제 1 데이터 트랜잭션 신호 및 제 1 데이터 버스 그랜트 신호를 제 1 장치로 제 1 시간에 발생시키는 단계가 계속된다. 제 1 장치 큐는 상기 제 2 식별자가 상기 제 2 위치로부터 상기 제 2 위치와 다른 상기 제 1 장치 큐의 제 3 위치로 이동되도록 기록한다. 최종적으로, 상기 방법은 제 3 위치에 대응하는 제 2 데이터 트랜잭션 인덱스 신호 및 제 2 데이터 버스 그랜트 신호를 제 1 시간에 후속하는 제 2 시간에 제 2 장치로 발생시키는 단계가 계속된다.
이하, 첨부 도면을 참조하여 본 발명의 장점, 구성 및 작용을 포함하는 실시예에 대해 상세하게 설명하고자 한다.
도 1은 공통 통신 버스에 결합된 다중 장치를 포함하는 데이터 처리 시스템(5)을 가지고 있는 본 발명의 한 실시예를 도시한 것이다. 통신 버스는 어드레스 버스(60)로 명명된 어드레스 부분 및 데이터 버스(50)로 명명된 데이터 부분을 가지고 있는 분할 버스이다. 또한, 데이터 부분은 정보를 재정리하는 송신용으로 이용된다.
데이터 처리 시스템(5)은 장치(30)를 통과하는 장치(10), 장치(20), 및 중재자(40)를 포함한다. 장치는 1 내지 n으로 명명되어 있다. 장치(30)를 통과하는 장치(10) 및 장치(20)는 데이터 버스(50) 및 어드레스 버스(60)에 모두 양방향으로 결합된다. 어드레스 버스(60)는 어드레스 정보를 데이터 처리 시스템(5)내로 전송하는데 이용된다. 데이터 버스(50)는 "DTI"라고 칭하는 데이터 정보 및 데이터 트랜잭션 인덱스를 데이터 처리 시스템(5)내로 전송하는데 이용된다. 중재자(40)는 어드레스 버스(60) 및 데이터 버스(50)에 양방??으로 결합된다. 중재자(40)는 데이터 전송 큐(DTQ)의 n개의 DTQ의 카피(44)를 포함하는데, 이는 공통 분할 통신 버스에 결합된 각각의 장치에 대응한다. 트랜잭션 정보는 이력 리스트(historical list)를 형성하기 위해 큐 내에 저장된다. 구(oldest) 펜딩 트랜잭션은 큐의 저부 및 새로운 상부에 있다. 트랜잭션은 큐로부터 15 연령순으로(15 order of age) 필요에 따라 제거될 뿐 아니라, 트랜잭션이 큐로부터 제거될지라도 경시(age-based) 리스트가 유지된다. 중재자(40)는 데이터 버스 그랜트 신호를 장치(30)를 통해 각각의 장치(10), 장치(20)에 제공한다. 중재자(40)는 각각의 장치로부터 목표 지시를 수신하여, 장치는 목표 자체를 인식한다. 데이터 처리 버스(60)내에서, 데이터 버스(50) 및 어드레스 버스(60)에 결합된 각각의 장치는 마스터 또는 슬레이브(slave) 또는 둘 다로서 동작할 수 있다. 마스터는 버스를 제어하는 장치를 나타내고, 마스터는 데이터 소오스 또는 데이터 싱크일 수 있다. 더욱이, 데이터(50) 및 어드레스 버스(60)상의 소정의 개별 트랜잭션에 있어서, 소정의 장치는 소오스 또는 싱크(sink) 데이터일 수 있다.
도 1에 도시된 데이터 처리 시스템은 공통 버스에 결합된 장치의 소정의 번호 또는 형태를 포함할 수 있는데, 모든 장치는 버스 프로토콜을 이용하는데 적합하다. 중재자는 다른 논리 블록 또는 기능 장치를 포함할 수 있다.
도 2는 도 1의 중재자(40)를 보다 상세하게 도시한 것이다. 중재자는 블록(44), 마스터 인식 장치(70), 목표 인식 장치(72), 및 데이터 버스 그랜트(DBG) 및 DTI 값 발생 장치(74)를 포함할 수 있다. 블록(44)은 도 1의 장치(10, 20, ... 30)에 각각 대응하는 참조 번호(1, 2, 내지 n)를 붙인 다중 큐를 포함한다. 각각의 큐(1, 2, ... n)는 대응 장치(10, 20, ... 30)내에 남아 있는 큐(12, 24, ... 34)의 카피이다. 큐는 어드레스 버스(60) 및 데이터 버스(50)상의 트랜잭션 트랙을 유지하는데 이용된다. 어드레스가 버스 상에 제공되므로, 지시기는 큐내에 배치된다. 이것은 각각의 어드레스 재정이 데이터를 식별할 수 있다. 각 장치의 트랜잭션을 펜딩하는 큐를 제공함으로써 중재자는 태그 정보를 어드레스로 발생되지 않게 하면서 트랜잭션을 효과적으로 정리할 수 있다.
중재자는 데이터 보유 중에 데이터 트랜잭션 인덱스(DTI)를 이용한다. DTI는 소정의 마스터 또는 슬레이브용 데이터 트랜잭션을 돌출하는 큐내의 포인터로서 작용한다. 큐내의 정보는 트랜잭션이 후속 데이터 보유에 의해 공급되는 것을 나타낸다. 본 발명의 한 실시예에 따르면, 작은 DTI 값은 구 트랜잭션, 즉 잠시동안 보유하고 있는 트랜잭션을 나타내고, 마찬가지로 큰 DTI 값은 보다 최근의 트랜잭션을 나타낸다. 예를 들어, 3 비트 인덱스에 있어서, DTI[0 : 2], DTI = 000은 구 트랜잭션을 선택하고, DTI = 111은 제 8의 구 트랜잭션을 선택한다. 소정의 데이터 버스 보유용 DIT 신호는 관련된 데이터 버스 그랜트(DBG)에 관련하여 시스템에 의해 적시에 구동된다.
또한, 중재자(40)는 블록(44)에 각각 결합된 마스터 인식 장치(70) 및 목표 인식 장치(72)내에 포함된다. 도 1을 다시 참조하면, 각각의 장치는 분할 버스 모니터에 결합되고, 트랜잭션용 버스는 이들의 어드레스들 중 하나의 어드레스, 즉 장치의 목표를 가지고 있다. 장치가 트랜잭션의 목표라는 것을 검출한 경우, 장치는 목표 지시 신호를 목표 인식 장치(72)에 제공한다. 이 때, 목표 인식 장치(72)는 목표 장치 및 장치(44)내의 대응하는 큐를 식별하기 위해 트랜잭션 목표 정보를 블록(44)에 제공한다. 예를 들어, 장치(20)는 블록(44)의 큐(1)에 대응한다. 장치(10)가 목표 장치일 때, 장치(10)는 목표 지시 신호를 중재자(40)에 제공된다. 장치(10)로부터 목표 지시 신호의 수신시에, 목표 인식 장치(72)는 장치(10)에 대응하는 큐(1)를 선택하는 블록(44)에 정보를 제공한다.
마스터 인식 장치(70)는 마스터에 의해 수행된 어드레스 보유에 필요한 데이터 트랜잭션을 식별한다. 마스터 인식 장치(70)는 어드레스 버스(60)에 결합되는데, 이로부터 버스는 데이터 버스(50)에서 수행될 트랜잭션에 대응하는 어드레스 정보를 수신한다. 어드레스 정보는 데이터 호출 어드레스를 포함하고, 호출된 데이터 크기 등과 같은 트랜잭션의 형태에 관련된 정보도 포함할 수 있다. 마스터 인식 장치(70)는 어드레스 버스(60)로부터 수신된 트랜잭션 정보를 블록(44)에 제공한다. 마스터 인식 장치(70)로부터의 정보는 선택된 큐의 내용을 제공하는데 이용된다.
또한, 중재자(40)는 블록(44)에 양방향으로 결합되는 DBG 및 DTI 값 발생 장치(74)를 포함한다. DBG 및 DTI 값이 발생된다. 소정의 트랜잭션에 있어서, DBG 및 DTI 값 발생 장치(74)는 블록내의 큐가 다음 트랜잭션에 대응하는 트랜잭션 지시기를 결정한다. 이러한 다음 트랜잭션에 대응하는 DTI 값은 트랜잭션의 데이터 보유를 수행하기 위해 적절한 DBG로 구동된다.
도 3은 도 1의 장치(10)를 상세한 형태로 도시한 것이다. 장치(10)는 마스터 제어 장치(90), 목표 결정 장치(92), DBG 및 DTI 값 인식 장치(94), 및 데이터 트랜잭션 큐(DTQ)(12)를 포함한다. 데이터 전송 장치(96)는 데이터 버스(50)에 양방향으로 결합되는데, 이로부터 데이터 전송 장치(96)는 데이터 및 트랜잭션 정보를 수신한다. 또한, 데이터 전송 장치(96)는 데이터 트랜잭션 큐(DEQ)(12)에 양방향으로 결합된다. DTQ(12)는 0 내지 m으로 색인된 엔트리를 포함한다. 각각의 엔트리는 중재자(40)에 제공된 마스터 또는 슬레이브 트랜잭션을 나타낸다. 데이터 전송 장치(96)는 DTQ(12)내에 데이터 트랜잭션 정보를 저장하고, 데이터 보유 중에 필요한 기능을 수행한다.
DBG 및 DTI 값 인식 장치(94)는 개별 데이터 버스 그랜트 신호(DBGI) 및 DTI 값을 중재자(40)로부터 수신한다. 본 발명의 한 실시예에 따르면, DTI 신호는
버스 상의 모든 장치로 방송되므로, DBGI가 장치(10)에만 신호를 발생시킨다. 본 발명의 선택적인 실시예에 있어서, 각각의 장치는 시스템내의 소정의 다른 장치에 접속되지 않는 중재자(40)로부터 전용 DTI 값 인식 장치(94)는 다음 트랜잭션에 대응하는 DTQ(12)내의 엔트리 선택용 DTQ(12)에 정보를 제공한다.
마스터 제어 장치(90)는 마스터 제어 장치(90)에 의해 트랜잭션 정보가 제공되는 어드레스 버스(60)에 양??향으로 결합된다. 마스터 제어 장치(90)는 DTQ(12)에 결합되고, 트랜잭션 정보를 장치(10) 내지 DTQ(12)에 제공한다. 또한, 목표 결정 장치(92)는 목표 지시기를 추정하는 시기를 결정하기 위해 어드레스 버스(60)로부터 수신된 어드레스 정보를 이용한다. 장치(10)가 트랜잭션의 목표라는 것을 검출할 때, 목표 결정 장치(92)는 중재자(40) 자신을 식별하는 목표 지시를 제공한다. 장치(10)는 이것의 어드레스를 포함하는 소정의 트랜잭션에 대한 버스를 배회한다.
도 4는 도 1의 데이터 처리 시스템의 동작을 타이밍도의 형태로 도시한 것이다. 수평축은 시분할이 t1, t2, t3, t4, t5, t6 및 t7로 행해지는 시간을 나타낸다. 수직 축은 데이터 처리 시스템(5)내의 여러 가지 신호의 2진수 전압 레벨을 나타내는데 이용된다. 아래의 각각의 특정한 기간은 장치(10)내에 남아 있는 큐의 실 예이다. 큐의 상태는 사이클의 종단부에 나타난다. 이러한 정보는 각각의 기간 중에 DTQ(12)의 상태를 제공한다.
어드레스 정보는 0 내지 t1까지의 제 1 기간 중에 어드레스(A0)가 버스 상에서 활성화되는 어드레스 버스(60)에 제공된다. 어드레스(A0)는 버스 상에 남아 있는 장치들 중 하나의 장치로부터 제공된다. 또한, 수직축은 데이터 버스 그랜트 신호, 데이터 트랜잭션 인덱스(DTI) 및 데이터 신호를 나타낸다. 데이터는 데이터 버스(50)에 제공된다. t1의 종단 기간 중에, 어드레스(A0)는 어드레스 버스에서 활성화되고, 기간(t1) 이하에 제공된 큐내에 도시된 바와 같이 A0은 DTQ(12)의 Q0 엔트리 내에 저장되는 정보를 제공한다. 본 발명의 한 실시예에 따르면, DTQ(12)는 전체 정보 방송을 어드레스(A0)로서 저장하지 않지만, 어드레스(A0)에 대응하는 트랜잭션의 지시를 저장한다.
t1 과 t2 사이의 다음 기간 중에, 어드레스(A1)는 어드레스 버스 상에서 활성화된다. 이러한 기간의 종료시, DTQ(12)는 큐의 엔트리(Q1)내에 저장된 어드레스(A1)에 대응하는 어드레스 지시기를 갖고 있다. DTQ(12)의 엔트리(Q0)는 A0을 보유한다는 것을 주지해야 한다. 이와 마찬가지로, t2에서 개시하여 t3에서 종료되는 기간에, 어드레스(A2)는 어드레스 버스 상에서 활성화된다. 시간(t3)에서의 DTQ(12)의 상태를 엔트리(Q2)내의 어드레스에 대응하는 트랜잭션 지시기, 엔트리(Q1)내의 A1에 대응하는 트랜잭션 지시기, 및 엔트리(Q0) 내의 A0에 대응하는 트랜잭션 지시기를 갖고 있다. t3에서 t4 까지의 기간 중에, 데이터 그랜트는 장치(10)에 제공된다. 또한, 이러한 기간 중에, 중재자(40)에 의해 제공된 DTI는 DTQ(12) 내의 Q1 엔트리에 대응하는 1의 값을 갖고 있다. 이것은 시간(t4 와 t5) 사이에서 데이터 버스에 제공되는 DATA1로 발생된다. DATA1은 어드레스(A1)에 대응한다.
시간(t5)에서, A1에 대응하는 트랜잭션 지시기는 큐로부터 제거되고, A2에 대응하는 트랜잭션 지시기는 큐의 엔트리(Q1)에서 제거된다. 이와 마찬가지로, A0에 대응하는 트랜잭션 지시기가 엔트리(A0)내에 있다. 또한, 이러한 기간 중에, 데이터 버스 그랜트 신호(DBG1)는 장치(10)에 제공된다. 다시 한번 DTI는 DTQ(12) 내의 Q1 엔트리에 대응하는 1의 값을 가지고 있다는 것을 주지하라.
t5에서 개시하고 t6에서 종료되는 다음 사이클 중에, DATA2는 데이터 버스(50)상에 제공된다. DATA2는 큐의 엔트리(Q1)내에 있는 어드레스(A2)에 대응한다. 이 때, 큐는 A2가 위치(Q1)로부터 제거됨에 따라서 갱신되고, 나머지 엔트리만이 큐의 엔트리(Q0)인 A0에 대응하는 지시기이다. 또한, 이러한 기간 중에, 그랜트 신호는 다시 한번 장치(10)로 추정되고, DTI에는 0의 값으로 제공된다.
도 4에 도시된 최종 사이클 중에, 그랜트 신호는 장치(10)로 추정되지 않으므로, 장치(10)는 시스템 상에 발생된 DTI 값에 응답하지 않는다. 최종 사이클동안 DTI에 대응하는 DATA0은 버스 상에 제공된다. 데이터의 준비는 도 4내의 한 사이클만큼의 그랜트 신호의 추정을 지연시킨다는 것을 주지해야 한다. 선택적인 실시예에 있어서, 데이터는 소정의 시량만큼 데이터 버스 그랜트 신호의 추정을 지연시킨다. 여기에서, 기간(t6-t7)동안, 장치(10)의 큐내에는 저장된 트랜잭션 지시기가 전혀 없다.
도 5는 본 발명의 한 실시예에 따른 데이터 처리 시스템(5)의 동작의 예에 관한 시간도를 도시한 것이다. 여기에서, 장치(10) 및 장치(20)는 최소한 하나의 트랜잭션 내에 포함된다. 도 5는 t1, t2, t3, t4, t5, t6, t7 및 t8로 나타난 기간을 포함하는 시간을 나타내는 수평축을 가지고 있다. 수직축은 데이터 처리 시스템(5)내에 여러 가지 신호로 나타난다. 신호는 어드레스 정보가 어드레스 버스(60)상의 장치(10)에 의해 제공되는 어드레스를 마스터링하는 장치(10)를 포함한다. 또한, 신호는 어드레스 버스(60)상의 장치(20)에 의해 제공된 어드레스 정보를 나타내는 어드레스를 마스터링하는 장치(20)를 포함한다.
더욱이, 장치(10) 및 장치(20) 목표 지시기는 장치 목표 지시기가 각각의 장치에서 중재자(40)로 제공되는 것을 나타낸다. 또한, DBG1 및 DBG2는 도 5에 도시된 신호 내에 포함된다. DBG1은 중재자(40)에 의해 장치(10)에 제공된 데이터 버스 그랜트 신호이고, DBG2는 중재자(40)로부터 장치(20)에 제공된 데이터 버스 그랜트 신호이다. 더욱이, 데이터 트랜잭션 인덱스 정보(DTI)는 도 5내에도 나타난다. 본 발명의 한 실시예에 따르면, DTI가 중재자(40)에 의해 시스템내의 모든 장치에 제공된다.
최종적으로, 데이터 버스(50)상에서 활성화되는 데이터 정보를 나타내는 DATA가 수직축을 따라 도시되어 있다. 각각의 기간 아래에는 2개의 큐가 도시되어 있다. 좌측 상에 배치된 제 1 큐는 장치(10)에 데이터 트랜잭션 큐인 DTQ(12)를 나타낸다. 우측 상에 위치한 제 2 큐는 장치(20)의 데이터 트랜잭션 큐인 DTQ(22)를 나타낸다. t1에서 종단되는 기간 중에, DTQ(12)는 모든 다른 엔트리 공백(empty)을 가지는 엔트리(Q0)내의 어드레스(A0)에 대응하는 트랜잭션 지시기를 가지고 있다. 또한, 이러한 기간 중에, DTQ(24)는 모든 엔트리 공백을 가지고 있다. 도시된 바와 같이, 이러한 기간 중에, 장치(10)는 마스터이고, 어드레스 버스(60)상의 어드레스(A0)에 대응하는 어드레스 정보를 제공하고 있다. 어드레스(A0)는 트랜잭션 지시기가 DTQ(12)내에 저장된 정보인 것으로 수행되는 특정 트랜잭션을 나타낸다. 트랜잭션 지시기는 어드레스 플러스 트랜잭션 형태를 전형적으로 포함한다. 트랜잭션 형태는 판독, 기입, 또는 변형하고자 하는 의도의 판독 형태일 수 있다. 선택적인 실시예는 버스트(Burst) 형태의 트랜잭션 또는 트랜잭션 크기로 전송하기 위한 바이트 수를 포함할 수 있다.
t1에서 개시하고 t2에서 종료되는 제 2 기간 중에, 장치(10)는 어드레스 버스의 마스터이고, 이러한 시간은 어드레스 버스(60)상의 어드레스(A1)를 제공한다. 또한, 어드레스(A1)는 대응하는 트랜잭션을 가지고 있는데, 어드레스(A1)에 대응하는 트랜잭션 정보는 엔트리(Q1)에서의 DTQ(12)내에 저장된다. 장치(10)가 어드레스 버스(60)상의 어드레스(A1)를 제공할 때, 장치(20)는 포함된 트랜잭션을 모니터하기 위해 어드레스 버스를 스노핑(snooping)한다. 또한, 이러한 기간 중에, 장치(20)는 어드레스(A1)에 의해 나타난 트랜잭션의 목표인 것을 결정하고, 이것의 목표 지시기를 중재자(40)로 추정한다. 이러한 방식에 있어서, 장치(20)는 이러한 트랜잭션 내에 포함된 목표 장치인 중재자(40)에 통지한다. 장치(20)는 이러한 트랜잭션에서 소오스나 싱크일 수 있다. 이것은 어드레스(A1)에 관련된 트랜잭션 지시 정보가 DTQ(12)내에서 뿐만 아니라, 장치(20)의 데이터 트랜잭션 큐인 DTQ(24)내에도 저장되게 하는 중재자(40)를 나타낸다는 것을 주지해야 한다.
t2에서 개시하고 t3에서 종료되는 다음 기간 중에, 장치(20)는 어드레스(A2)에 관련된 트랜잭션용 어드레스 버스의 마스터이다. 장치(2)는 어드레스 버스(60)상의 어드레스(A2)를 제공한다. 이러한 기간 중에, 장치(10)는 어드레스 버스를 스노핑하고, 어드레스(A2)에 의해 나타난 트랜잭션의 목표라는 것을 발견한다. 응답이, 장치(10)는 이것의 목표 지시기를 중재자(40)에 추정한다. 시간(t3)에서, DTQ(12)는 엔트리(Q2)내의 어드레스(A2)에 대응하는 트랜잭션 지시기, 엔트리(Q1)내의 어드레스(A1)에 대응하는 트랜잭션 지시기, 및 엔트리(Q0)내의 어드레스(A0)에 대응하는 어드레스 지시기를 포함한다. 이와 마찬가지로, DTQ(24)는 엔트리(Q1)내의 어드레스(A2)에 대응하고, 엔트리(Q0)내의 어드레스(A1)에 대응하는 트랜잭션 지시기를 포함한다. t1에서 t2까지의 사이클 및 t2에서 t3까지의 사이클에서, 이러한 큐는 이상적이지만 상이한 위치에 있는 트랜잭션 지시기를 포함한다. t1에서 t2까지의 제 1 기간 중에, 어드레스(A1)에 대응하는 트랜잭션 지시기는 DTQ(12)의 엔트리(Q1)내에 위치하고, DTQ(24)의 엔트리(Q0)내에도 위치한다. 이와 마찬가지로, t2에서 t3까지의 기간 중에, 어드레스(A2)에 대응하는 트랜잭션 지시기는 DTQ(12)의 엔트리(Q2)내에 저장되고, DTQ(24)의 엔트리(Q1)내에도 저장된다. 본 발명의 다른 실시예에 있어서, 어드레스 보유와 관련된 목표 지시기 사이에는 지연이 있을 수 있다.
t3에서 t4까지의 다음 사이클 중에, 중재자(40)는 장치(10)가 다음 트랜잭션 내에 포함되는 것을 나타내는 데이터 버스를 장치(10)에 부여하는 데이터 버스 그랜트 신호(DBG1)를 추정한다. 동시에, DTI 신호는 DTQ(12)의 엔트리(1)내의 트랜잭션이 다음 데이터 트랜잭션일 수 있는 것을 나타내는 1의 값으로 제공된다. DTQ(12)의 엔트리(1)내의 정보는 다음 트랜잭션이 어드레스(A1)에 대응하는 데이터를 포함할 수 있다는 것을 나타낸다. 장치(10)는 어드레스(A1)에 대응하는 데이터를 제공하거나, 어드레스(A1)에 대응하는 데이터를 수신할 수 있다. 트랜잭션 식별자는 장치(10)가 트랜잭션용 소오스인지 싱크인지의 여부에 대한 정보를 제공한다. 이러한 경우에, 장치(10)는 데이터 소오싱일 수 있지만, 어드레스(A1)에 대응하는 트랜잭션 지시기가 DTQ(12) 및 DTQ(24)내의 상이한 위치에 배치되기 때문에, 데이터 버스를 소오스 및 상이한 사이클에서 싱크에 부여할 필요가 있다.
이러한 방식에 있어서, t4에서 t5까지의 다음 사이클 중에, 중재자(40)는 데이터 버스를 장치(20)에 부여하는 장치(20)에 DBG(2)를 추정한다. 이러한 트랜잭션에 있어서, 장치(10)는 소오스이고, 장치(20)는 싱크이지만, 장치(10)가 싱크로 되거나 장치(20)가 소오스로 되는 것과 유사한 트랜잭션에서도 가능하다는 것을 주지해야 한다. 또한, DBG1 및 DBG2의 설비 순서는 소오스인지 싱크인지를 필요에 따라서 나타내지 않는다. t4에서 개시하는 사이클 중에, 중재자(40)는 DBG(2)를 장치(20)에 제공한다. 또한, 이러한 기간 중에, DTI는 0의 값으로 제공된다. 이것은 어드레스(A1)가 DBG2에 대응하는 DTQ(24)의 엔트리(0)내에 있으므로써 필요하다. 이러한 방식에 있어서, DTI의 값으로 결합된 데이터 버스 그랜트 신호의 설비는 각각의 장치에 이용될 트랜잭션 지시기의 지시를 제공한다.
t5에서 개시하고 t6에서 종료하는 기간에, 어드레스(A1)에 대응하는 트랜잭션에 대응하는 DATA1은 데이터 버스(50)상에 제공된다. 이러한 사이클 중에, DBG2는 중재자(40)에 의해 장치(20)에 제공되고, DT1은 중재자(40)에 의해 0의 값으로 제공된다. 이것은 다음 트랜잭션이 어드레스(A2)에 대응한다는 것을 나타낸다. 이러한 기간 중에, DTQ(12)는 엔트리(Q1)내의 어드레스(A2) 및 엔트리(A0)내의 어드레스(A0)에 대응하는 트랜잭션 지시기를 포함한다. DTQ(24)가 엔트리(Q0)내의 어드레스(A2)에 대응하는 트랜잭션 지시기를 포함한다.
A6에서 개시하는 다음 사이클에서, 중재자(40)는 데이터 버스를 장치(10)에 부여하는 DBG1에 추정한다. 이와 동시에, DTI는 1의 값으로 제공된다. 이것은 DTQ(12)내의 제 1 엔트리가 트랜잭션을 표현하는 것으로 나타난다. 여기에서, 트랜잭션은 어드레스(A2)에 대응한다. t7에서 개시하는 다음 기간에, 어드레스(A2)에 대응하는 DATA2는 데이터 버스(50)상에 제공된다. 여기에서, DTQ(12)의 상태는 엔트리(Q1 내지 Q3) 공백을 가지고 있고, 어드레스(A0)에 대응하는 트랜잭션 지시기는 엔트리(Q0)내에 포함된다. DTQ(24)의 모든 엔트리는 공백이다.
더욱이, 중재자(60)의 동작은 도 6에 도시되어 있는데, 플로우챠트가 중재자(40)내의 각각의 모듈의 동작을 추적하는데 이용된다. 도 2를 참조하면, 중재자(40)의 상세한 도면은 마스터 인식 장치(70), 목표 인식 장치(72), 및 DBG 및 DTI 발생 장치(74)를 포함한다. 도 6은 마스터 인식 장치(70)의 동작을 도시한 것이다. 도 6을 참조하면, 새로운 트랜잭션이 검출되는지를 결정하는 판단 다이아몬드(100)에서 처리 흐름을 개시한다. 도 6-11에 이용된 기호에 있어서, 트랜잭션은 "XN"으로 나타낸다. 판단 다이아몬드(100)에서 진행하여 새로운 트랜잭션의 검출되지 않는 경우, 처리 흐름은 새로운 트랜잭션을 계속해서 모니터하기 위해 판단 다이아몬드(100)로 복귀한다. 새로운 트랜잭션이 검출된 경우, 처리 흐름은 계속해서 블록(102)으로 진행한다. 여기에서, 장치 "X"는 트랜잭션의 마스터로서 식별한다. 처리 흐름은 블록(104)으로 계속해서 진행하는데, 트랜잭션 정보는 장치(X)에 대응하는 큐의 카피 내에 배치된다. 장치(X)에 대응하는 큐의 카피는 도 1 및 도 2내에 도시된 바와 같이 데이터 처리 시스템(5)의 중재자(40)의 블록(44)내에 상주하게 된다. 처리 흐름은 현재 트랜잭션에 대한 목표 지시기의 모니터링을 개시하기 위해 블록(106)으로 계속해서 진행한다. 모니터링은 목표 인식 장치(72)에 의해 수행된다. 마스터 인식 장치(70)는 모니터링 어드레스 버스(60)를 개시하기 위한 정보를 목표 인식 장치(72)에 제공한다. 이 때, 마스터 인식 장치(70)내의 처리 흐름은 다음 트랜잭션을 대기하기 위해 판단 다이아몬드(100)로 다시 진행한다.
더욱이, 목표 인식 장치(72)내의 흐름은 도 7에 도시되어 있다. 블록(106)은 블록(110)에서 개시하는 목표 인식 장치(72)의 동작을 개시한다. 처리 흐름은 목표 지시기가 이러한 트랜잭션을 검출하였는지를 결정하는 판단 다이아몬드(112)로 진행한다. 지시기가 검출되지 않은 경우, 처리 흐름은 판단 다이아몬드(112)로 복귀한다. 목표 지시기가 검출된 경우, 처리 흐름은 블록(114)으로 진행하는데, 목표 장치 ("Y")는 목표 지시기 정보에 기초하여 이러한 트랜잭션을 식별한다. 처리 흐름은 블록(116)으로 진행하는데, 트랜잭션에 대응하는 트랜잭션 식별자는 중재자(40)내에 남아있는 장치(Y)의 큐의 카피 내에 배치되기도 한다. 장치(Y)에 대응하는 큐는 도 2내에 도시된 블록(44)의 다중 큐내에 포함된다는 것을 주지해야 한다. 트랜잭션 식별자가 Y큐의 카피 내에 저장될 때, 목표 인식 장치(72)의 처리 흐름이 완료된다.
도 8은 DBG 및 DTI 값 발생 장치(74)의 동작을 도시한 것이다. 처리 흐름은 중재자(40)의 블록(44)내에 포함된 모든 데이터 트랜잭션 큐(DTQ)를 탐색하기 위해 블록(120)에서 개시한다. 블록(44)은 다음 과정을 수행하는 우선(priority) 트랜잭션을 발견하고자 탐색한다. 이것은 최고 우선 구조일 수 있거나, 소정의 다른 우선 구조에 따라서 선택될 수 있다. 전형적으로, 다음 트랜잭션의 선택은 데이터 버스의 이용을 최대화시키는 고려 사항에 기초하고 있다. 이러한 방식에 있어서, 데이터 버스상의 긴 대기 시간(latency)을 필요로 하는 트랜잭션을 기록되므로, 이러한 대기 기간은 순서외(out of order) 트랜잭션에 대한 데이터의 전달로 채워진다.
이 때, 처리 흐름은 이러한 트랜잭션에 대한 데이터 소오스 장치(X)에 대응하는 데이터 트랜잭션 인덱스(DTI) 값("A") 및 이러한 트랜잭션에 대한 데이터 싱크 장치(Y)에 대응하는 DTI 값("B")을 결정하기 위해 블록(122)으로 진행한다. 여기에서, 장치(X)는 데이터를 제공하고, 장치(Y)는 데이터를 수신할 수 있다. 소오스 및 싱크의 지시는 마스터 및/또는 슬레이브의 지시가 아니라, 데이터 처리 시스템(5)내의 데이터 흐름 방향을 나타낸다는 것을 주지해야 한다. 싱크 및 소오스 지시는 DTQ내에 저장되는 트랜잭션 지시기 내에 포함된다.
그 다음, 처리 흐름은 장치(X)에 대응하는 DTI 값이 장치(Y)에 대응하는 DTI 값과 같을 경우, 즉 A=B인지를 결정하기 위해 판단 다이아몬드(124)로 진행한다. 본 발명의 한 실시예에 따른 DTI 값은 각각의 큐내의 위치라는 것을 주지해야 한다. 그러므로, 장치(X)에 대한 DTI 값은 장치(X)에 대응하는 큐의 카피 내의 이러한 트랜잭션에 대한 트랜잭션 지시기의 위치일 수 있다. 이와 마찬가지로 대응하는 트랜잭션 지시기가 저장되는 장치(Y)에 대응하는 큐의 카피내의 위치일 수 있다.
양자의 DTI 값이 같을 경우, 처리 흐름은 DTI 값이 DTI 도체상의 데이터 버스(50)에 제공되는 블록(126)으로 진행한다. 이 때, 처리 흐름은 중재자(40)가 데이터 버스를 장치(X) 및 장치(Y)에 동시에 부여하는 블록(130)으로 진행한다. 이것은 장치(X 및 Y)에 제공되는 DBG 신호를 동시에 추정함으로써 행해진다. 이 때, 데이터 흐름은 블록(134)으로 진행한다. 그 다음, 블록(134)에서 이러한 트랜잭션에 대응하는 트랜잭션 지시기는 중재자(40)의 블록(44)내의 관련된 큐로부터 각각 제거된다. 이 때, 처리 흐름은 다음 우선 트랜잭션에 대한 블록(44)의 큐를 탐색하기 위해 블록(120)으로 복귀한다.
판단 다이아몬드(124)로 복귀하면, 장치(X) 및 장치(Y)에 대응하는 DTI 값이 같지 않을 경우, 처리 흐름은 블록(128)으로 진행한다. 이러한 관점에서, 장치(X)에 대한 이러한 트랜잭션에 대응하는 트랜잭션 인덱스는 DTI 도체상의 데이터 버스(50)에 제공된다. 이러한 방식에 있어서, DTI 값은 데이터 처리 시스템(5)내로 방송된다. 이와 동시에, 하나의 DBG 신호는 장치(X)에 제공된다. 이때, 버스 그랜트 신호는 이 때 장치(Y)에 전혀 제공되지 않는다. 그 다음, 처리 흐름은 블록(132)으로 진행하는데, 다음에, 장치(Y)에 대한 트랜잭션에 대응하는 DTI 값은 데이터 버스(50)상에 제공되고, 이와 동시에, 장치(Y)에 대한 DBG 신호는 장치(Y)에 제공된다. 이러한 방식에 있어서, DTI 및 DBG 조합은 장치(X)의 DTQ내의 트랜잭션 지시기의 위치를 나타낸다. 다음 시간에, DBG 및 DTI 조합은 장치(Y)의 DTQ내의 트랜잭션 지시기의 위치에 관한 정보를 제공한다. 이것은 각 장치 내에 상주하는 큐의 카피를 중재자(40)의 블록(44)이 포함하는 것을 필요로 한다. 소정의 트랜잭션에 있어서, 트랜잭션 지시기의 위치가 장치(X) 및 장치(Y)의 DTQ와 다른데, 단 하나의 위치를 제공하는 것이 불충분하다. 더욱이, 장치(X) 및 장치(Y)의 DTQ 내의 트랜잭션 지시기의 위치는 트랜잭션에 영향을 끼치는 것으로 결정된다. 이러한 정보를 쉬프팅할 때까지 각각의 장치는 데이터 버스 그랜트 신호를 수신할 때 트랜잭션 지시기를 배치할 수 있다. DTI 값이 처리 시스템(5)내의 모든 장치에 발생되고, 각각의 장치는 개별 데이터 버스 그랜트 신호를 갖고 있다는 것을 주지해야 한다. 신택적인 실시예에 있어서, 각각의 장치는 중재자로부터 이것의 자체 DTI 신호를 수신하고, DTI가 동일하지 않을지라도 트랜잭션 내에 동시에 포함된 2개의 장치에 DBG 및 DTI 신호를 발생시키는 것이 가능하다.
처리 흐름은 블록(134)으로 진행한다. 블록(134)에서, 이러한 트랜잭션에 대응하는 트랜잭션 지시기는 중재자(40)의 블록(44)내의 관련된 DTQ로부터 각각 제거된다. 그 다음, 처리 흐름은 다음 우선 트랜잭션에 대한 블록(44)내의 DTQ 카피를 탐색하기 위해 블록(120)으로 복귀한다.
도 3을 참조하면, 장치(10)가 상세하게 도시되어 있다. 장치(10)의 동작은 도 9에 도시되어 있다. 장치(10)는 마스터 제어 장치(90), 목표 결정 장치(92), 및 DBG 및 DTI 값 인식 장치(94)를 포함한다. 처리 흐름은 이러한 장치가 새로운 트랜잭션을 마스터링하는 경우 판단 다이아몬드(200)에서 시작된다. 이러한 판단은 장치(10)가 어드레스 버스(60)상에 정보를 제공하는지를 결정한다. 이러한 장치가 어드레스 보유를 마스터링하지 않을 경우, 처리 흐름은 판단 다이아몬드(200)로 진행한다. 이러한 장치가 마스터인 경우, 처리 흐름은 어드레스 값이 어드레스 버스(60) 상에 발생되는 블록(202)으로 진행한다. 이 때, 처리 흐름은 트랜잭션 식별자가 데이터 트랜잭션 큐(12)의 제 1의 유효 엔트리, 또는 테일(tail) 내에 배치되는 블록(204)으로 진행한다. 마스터는 새로운 트랜잭션을 DTQ의 테일에 추가하는데, 각각의 트랜잭션은 데이터 보유를 필요로 하는 트랜잭션을 개시한다. 이 때, 처리 흐름은 판단 다이아몬드(200)로 복귀한다.
도 10은 장치(10)내의 목표 결정 장치(92)의 처리 흐름을 도시한 것이다. 여기에서, 처리 흐름은 장치(10)가 어드레스 버스(60)를 스노핑 블록(206)에서 개시한다. 스노핑은 장치(10)가 어드레스 버스(60) 상에 지정되는 소정의 트랜잭션의 목표인지를 결정하게 된다. 이 때, 처리 흐름은 장치(10)가 트랜잭션의 목표인지를 결정하기 위해 판단 다이아몬드(208)로 진행한다. 장치가 목표가 아닌 경우, 처리 흐름은 스노핑을 계속하기 위해 블록(206)으로 복귀한다. 장치가 트랜잭션 목표인 경우, 처리 흐름은 블록(210)으로 진행하는데, 목표 지시기는 이러한 장치가 다음 트랜잭션 내에 포함되는 중재자(40)에 지시를 제공하는 것을 주장한다. 중재자(40)가 목표 지시기를 수신할 때, 이러한 장치에 관련된 큐내의 트랜잭션 지시기 정보를 저장하는 것을 알게 된다. 이 때, 처리 흐름은 블록(212)으로 진행하는데, 트랜잭션 식별자는 장치의 DTQ내의 제 1 의 유효 엔트리 내에 배치된다. 그 다음, 처리 흐름은 블록(206)으로 복귀하는 것을 계속한다.
도 11은 장치(10)의 DBG 및 DTI 값 인식 장치의 동작을 도시한 것이다. 여기에서, 처리 흐름은 DBG 신호가 이러한 장치에 제공되는지를 결정하기 위해 판단 다이아몬드(214)에서 개시한다. 데이터 버스 그랜트가 수신되지 않을 경우, 처리 흐름은 판단 다이아몬드(214)로 복귀한다. DBG 신호가 수신된 경우, 처리 흐름은 블록(216)을 진행한다. 여기에서, DTI 신호값은 데이터 트랜잭션 큐(12)로부터 트랜잭션 식별자를 선택하는데 이용된다. 그 다음, 처리 흐름은 DTQ(12)로부터 트랜잭션 식별자를 제거하고 DTQ(12)를 갱신하기 위해 블록(218)으로 진행한다. 이 때, 처리 흐름은 판단 다이아몬드(214)로 복귀한다.
본 발명은 특정 실시예에 관련하여 설명하고 도시하였지만, 이러한 예시적인 실시예에 본 발명을 제한하고자 한 것은 아니다. 이 분야에서 숙련된 자라면 본 발명의 사상 및 범위을 벗어나지 않고 여러 가지 변경예 및 변형예가 있을 수 있다는 것을 알 수 있을 것이다. 그러므로, 본 발명은 첨부된 특허청구의 범위내에서 모든 변형예 및 변경예를 포함하도록 한 것이다.
본 발명은 트랜잭션의 어드레스 부분을 가지고 있는 태그 정보를 포함하는 요구 조건을 제거하면서 분할 통신 버스 상에 데이터 트랜잭션을 기록할 수 있다. 이것은 경시 데이터 트랜잭션 인덱스를 이용하여 순서외 데이터를 완전히 전송할 수 있다. 허용된 최대수의 펜딩 트랜잭션은 최대 크기의 인덱스를 결정할 수 있다.
본 발명의 한 실시예에 따르면, 버스에 결합된 각각의 장치내의 데이터 트랜잭션 큐 및 중앙 중재 장치내의 각각의 큐의 카피를 유지함으로써 상이한 큐 조건을 가지는 2개의 장치들 사이의 단일 트랜잭션을 일치시키는 것이 가능하다. 데이터 트랜잭션 인덱스는 다음 트랜잭션의 큐내의 위치를 배치하는데 이용되는데, 데이터 트랜잭션 인덱스는 시스템내의 모든 장치로 방송된다. 개별 데이터 버스 그랜트 신호는 장치들을 구별하기 위해서 각각의 장치에 제공된다.
본 발명의 한 실시예는 양자의 장치에 대한 단 한 세트의 신호를 이용하는 단일 트랜잭션의 소오스 및 싱크 장치에 상이한 트랜잭션 정보를 제공한다. 이것은 장치에 대한 정보를 시분할함으로써 달성된다. 이것은 각각의 장치의 상태를 일치시키고, 동일한 트랜잭션에 대한 다중 트랜잭션 정보를 발생시키기 위해 단 한 세트의 버스 신호를 이용한다는 장점을 제공한다.

Claims (5)

  1. 다수의 트랜잭션을 나타내는 다수의 트랜잭션 지시기를 수신하는 단계와,
    독특한 트랜잭션 인덱스 값을 상기 다수의 트랜잭션 지시기의 각각에 할당하는 단계와,
    상기 다수의 트랜잭션 중 제 1 트랜잭션을 실행하는 단계, 및
    상기 독특한 트랜잭션 인덱스 값중 적어도 하나를 재할당하는 단계를 포함하고,
    상기 다수의 트랜잭션 중 제 2 트랜잭션은 상기 다수의 트랜잭션 중 제 1 트랜잭션보다 길게 펜딩(pending)되는 것을 특징으로 하는 데이터 처리 시스템의 트랜잭션 수행 방법.
  2. 다수의 트랜잭션을 나타내는 다수의 트랜잭션을 수신할 수 있는 제 1 회로와,
    독특한 트랜잭션 인덱스 값을 상기 다수의 트랜잭션 지시기의 각각에 할당할 수 있는 제 2 회로와,
    상기 다수의 트랜잭션 중 제 1의 트랜잭션을 실행할 수 있는 제 3 회로, 및
    상기 독특한 트랜잭션 인덱스 값중 적어도 하나를 재할당할 수 있는 제 4 회로를 포함하고,
    상기 다수의 트랜잭션 중 제 2 트랜잭션이 상기 다수의 트랜잭션 중 제 1 트랜잭션보다 길게 펜딩되는 것을 특징으로 하는 데이터 처리 시스템.
  3. 데이터 신호부 및 데이터 인덱스 신호부를 갖는 분할 트랜잭션 버스(split transaction bus)(50, 60)와,
    상기 분할 트랜잭션 버스에 결합된 제 1 장치; 및
    상기 분할 트랜잭션 버스에 결합된 중재자(arbiter)(40)를 포함하는 데이터 처리 시스템으로서,
    상기 중재자는 제 1 장치(10, 20 ... 30)에 대응하고, 제 1 트랜잭션을 가지고 있는 제 1 위치 및 제 2 트랜잭션을 가지고 있는 제 2 위치를 가지고 있는 제 1 트랜잭션 큐(1, 2 ... n)와,
    제 2 트랜잭션이 실행됨에 따라 상기 제 1 위치에서 상기 제 2 위치로 상기 제 1 트랜잭션을 변경할 수 있는 제 1 회로(74)와,
    제 1 데이터 버스 그랜트 신호를 상기 제 1 장치에 제공할 수 있는 제 2 회로(74), 및
    제 1 트랜잭션 인덱스 신호가 상기 제 1 트랜잭션 큐내의 상기 제 2 위치에 대응하는 트랜잭션 인덱스 신호를 상기 제 1 장치에 제공할 수 있는 제 3 회로(74)를 포함하고,
    상기 제 1 장치는 상기 제 1 데이터 버스 그랜트 신호를 수신하고, 상기 트랜잭션 인덱스 신호를 상기 중재자로부터 수신하는 제 1 장치에 응답하여 상기 분할 트랜잭션 버스의 상기 데이터 부분을 액세스할 수 있는 것을 특징으로 하는 데이터 처리 시스템.
  4. 제 1 식별자 및 제 2 트랜잭션의 제 2 식별자를 제 1 장치에 대응하는 제 1 장치 큐내에 저장하는 단계와,
    제 1 데이터 트랜잭션 인덱스 신호가 상기 제 1 위치에 대응하는 제 1 데이터 트랜잭션 신호 및 제 1 데이터 버스 그랜트 신호를 제 1 장치로 제 1 시간에 발생시키는 단계와,
    상기 제 2 식별자가 상기 제 2 위치로부터 상기 제 2 위치와 다른 상기 제 1 장치 큐의 제 3 위치로 이동되도록 제 1 장치 큐를 기록하는 단계, 및
    제 3 위치에 대응하는 제 2 데이터 트랜잭션 인덱스 신호 및 제 2 데이터 버스 그랜트 신호를 제 1 시간에 후속하는 제 2 시간에 제 2 장치로 발생시키는 단계를 포함하고,
    상기 제 1 식별자는 상기 제 1 장치내의 제 1 위치내에 저장되고, 상기 제 2 식별자는 상기 제 1 장치 큐내의 제 2 위치내에 저장되며, 상기 제 1 위치는 상기 제 2 위치와 다른 것을 특징으로 하는 데이터 처리 시스템의 데이터 트랜잭션 수행 방법.
  5. 제 1 장치 큐 및 제 2 장치 큐를 가지는 중재자내에서 제 1 장치를 식별하는 제 1 목표 지시기를 수신하는 단계와,
    제 1 장치 큐의 제 1 위치에 저장되는 제 1 트랜잭션의 제 1 식별자를 상기 제 1 장치에 대응하는 제 1 장치 큐내에 저장하는 단계와,
    제 1 위치와 다른 제 2 위치에 저장되어 있는 상기 제 1 트랜잭션의 제 1 식별자를 상기 제 2 장치에 대응하는 제 2 장치 큐에 저장하는 단계와,
    제 1 장치에 제 1 데이터 트랜잭션 인덱스 값 및 제 1 데이터 버스 그랜트 신호를 제 1 시간에 발생시키는 단계, 및
    제 2 장치에 제 2 데이터 트랜잭션 인덱스 값 및 제 2 데이터 버스 그랜트 신호를 상기 제 1 시간에 후속하는 제 2 시간에 발생시키는 단계를 포함하는 것을 특징으로 하는 데이터 처리 방법.
KR1019990031534A 1998-07-31 1999-07-31 데이터 처리 시스템의 트랜잭션 수행 방법 및 장치 KR100596947B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/127,459 US6240479B1 (en) 1998-07-31 1998-07-31 Method and apparatus for transferring data on a split bus in a data processing system
US9/127,459 1998-07-31
US09/127,459 1998-07-31

Publications (2)

Publication Number Publication Date
KR20000012128A true KR20000012128A (ko) 2000-02-25
KR100596947B1 KR100596947B1 (ko) 2006-07-07

Family

ID=22430233

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990031534A KR100596947B1 (ko) 1998-07-31 1999-07-31 데이터 처리 시스템의 트랜잭션 수행 방법 및 장치

Country Status (6)

Country Link
US (1) US6240479B1 (ko)
EP (1) EP0981093A3 (ko)
JP (1) JP2000285068A (ko)
KR (1) KR100596947B1 (ko)
CN (1) CN1191521C (ko)
TW (1) TW518470B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100787850B1 (ko) 2003-10-02 2007-12-27 모토로라 인코포레이티드 고레벨 서비스 구성을 갖는 인터프로세서 통신 프로토콜

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6816934B2 (en) * 2000-12-22 2004-11-09 Hewlett-Packard Development Company, L.P. Computer system with registered peripheral component interconnect device for processing extended commands and attributes according to a registered peripheral component interconnect protocol
DE19854178A1 (de) * 1998-11-24 2000-05-31 Siemens Ag Bus für hochskalierbares Multiprozessorsystem, dazugehöriges redundantes Bussystem, sowie Verfahren zum Übertragen von Information in einem derartigen Bussystem
US6513084B1 (en) * 1999-06-29 2003-01-28 Microsoft Corporation Arbitration of state changes
US6801954B1 (en) * 2000-02-25 2004-10-05 Hewlett-Packard Development Company, L.P. Method and apparatus to concurrently operate on multiple data movement transactions in a disk array subsystem
US6594722B1 (en) * 2000-06-29 2003-07-15 Intel Corporation Mechanism for managing multiple out-of-order packet streams in a PCI host bridge
KR20020030223A (ko) * 2000-10-16 2002-04-24 주식회사 알라딘소프트 주기억장치 데이터베이스 시스템에서 고성능 트랜잭션을지원하기 위한 로깅 및 회복 방법
US6845115B2 (en) * 2002-12-05 2005-01-18 Agilent Technologies, Inc. Coupled resonant cavity surface-emitting laser
US7111001B2 (en) * 2003-01-27 2006-09-19 Seiko Epson Corporation Event driven transaction state management with single cache for persistent framework
US7062582B1 (en) * 2003-03-14 2006-06-13 Marvell International Ltd. Method and apparatus for bus arbitration dynamic priority based on waiting period
US6993619B2 (en) * 2003-03-28 2006-01-31 International Business Machines Corporation Single request data transfer regardless of size and alignment
US7203780B2 (en) 2005-02-22 2007-04-10 Kabushiki Kaisha Toshiba System and method for facilitating communication between devices on a bus using tags
US7290074B2 (en) * 2005-04-06 2007-10-30 Kabushiki Kaisha Toshiba Back-off timing mechanism
US7373444B2 (en) * 2005-04-15 2008-05-13 Kabushiki Kaisha Toshiba Systems and methods for manipulating entries in a command buffer using tag information
GB2426604B (en) 2005-05-26 2010-07-14 Advanced Risc Mach Ltd Interconnect logic for a data processing apparatus
US7865684B2 (en) * 2005-06-27 2011-01-04 Ab Initio Technology Llc Managing message queues
CN100410884C (zh) * 2005-09-06 2008-08-13 大连海事大学 一种基于pid思想的小组协同处理事务的事务分配方法
US7738483B2 (en) * 2005-09-08 2010-06-15 Kabushiki Kaisha Toshiba Systems and methods for managing communication between master and slave devices
KR100873010B1 (ko) 2007-05-17 2008-12-09 한국과학기술원 논블록킹 마스터, 버스 중재장치, 버스 시스템, 및 버스중재 방법
US7613859B2 (en) * 2007-09-12 2009-11-03 Kabushiki Kaisha Toshiba Back-off timing mechanism in a digital signal processor
US20100325327A1 (en) * 2009-06-17 2010-12-23 Freescale Semiconductor, Inc. Programmable arbitration device and method therefor
US10255103B2 (en) * 2017-04-04 2019-04-09 Arm Limited Transaction handling

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5036456A (en) * 1987-02-13 1991-07-30 Honeywell Information Systems Inc. Apparatus for controlling concurrent operations of a system control unit including activity register circuitry
US6182176B1 (en) * 1994-02-24 2001-01-30 Hewlett-Packard Company Queue-based predictive flow control mechanism
US5394351A (en) * 1994-03-11 1995-02-28 Nexgen, Inc. Optimized binary adder and comparator having an implicit constant for an input
US5548795A (en) * 1994-03-28 1996-08-20 Quantum Corporation Method for determining command execution dependencies within command queue reordering process
US5659707A (en) * 1994-10-07 1997-08-19 Industrial Technology Research Institute Transfer labeling mechanism for multiple outstanding read requests on a split transaction bus
US5699516A (en) 1994-12-22 1997-12-16 Motorola, Inc. Method and apparatus for implementing a in-order termination bus protocol within a data processing system
US5890222A (en) * 1995-01-04 1999-03-30 International Business Machines Corporation Method and system for addressing registers in a data processing unit in an indirect addressing mode
US5638538A (en) * 1995-01-13 1997-06-10 Digital Equipment Corporation Turbotable: apparatus for directing address and commands between multiple consumers on a node coupled to a pipelined system bus
US5901295A (en) * 1995-04-28 1999-05-04 Apple Computer, Inc. Address and data bus arbiter for pipelined transactions on a split bus
US5778434A (en) * 1995-06-07 1998-07-07 Seiko Epson Corporation System and method for processing multiple requests and out of order returns
JPH09128325A (ja) * 1995-11-06 1997-05-16 Mitsubishi Electric Corp 階層バス制御方式及びバスブリッジ
US5790813A (en) * 1996-01-05 1998-08-04 Unisys Corporation Pre-arbitration system allowing look-around and bypass for significant operations
US5805595A (en) * 1996-10-23 1998-09-08 Cisco Systems, Inc. System and method for communicating packetized data over a channel bank
KR100253192B1 (ko) * 1997-09-05 2000-04-15 구자홍 분산 공유 메모리 구조에서의 시스템 버스 제어방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100787850B1 (ko) 2003-10-02 2007-12-27 모토로라 인코포레이티드 고레벨 서비스 구성을 갖는 인터프로세서 통신 프로토콜

Also Published As

Publication number Publication date
KR100596947B1 (ko) 2006-07-07
CN1191521C (zh) 2005-03-02
JP2000285068A (ja) 2000-10-13
EP0981093A3 (en) 2002-12-11
TW518470B (en) 2003-01-21
CN1245920A (zh) 2000-03-01
EP0981093A2 (en) 2000-02-23
US6240479B1 (en) 2001-05-29

Similar Documents

Publication Publication Date Title
KR100596947B1 (ko) 데이터 처리 시스템의 트랜잭션 수행 방법 및 장치
KR100524575B1 (ko) 데이타 처리시스템에서 복수개의 메모리 억세스 리퀘스트신호를리오더링하는 방법
US5901295A (en) Address and data bus arbiter for pipelined transactions on a split bus
CN101866308B (zh) 基于fpga扩展的皮卫星星务管理系统
US20030046356A1 (en) Method and apparatus for transaction tag assignment and maintenance in a distributed symmetric multiprocessor system
CN101520759B (zh) 动态优先级外部事务处理系统
US6502168B1 (en) Cache having virtual cache controller queues
JPS61109164A (ja) バス制御方法
US10061728B2 (en) Arbitration and hazard detection for a data processing apparatus
EP0030978B1 (en) Data-transfer controlling system
US20040199692A1 (en) Apparatus for use in a computer systems
SE519920C2 (sv) Förfarande och anordning för genomförande av busstransaktioner i ett datorsystem
US10713187B2 (en) Memory controller having data access hint message for specifying the given range of one or more memory addresses
US6560664B1 (en) Method and apparatus for translation lookaside buffers to access a common hardware page walker
US6694410B1 (en) Method and apparatus for loading/storing multiple data sources to common memory unit
US20040054843A1 (en) Configuration and method having a first device and a second device connected to the first device through a cross bar
US5708783A (en) Data bus arbiter for pipelined transactions on a split bus
US5826045A (en) Arbitration parking apparatus and method for a split transaction bus in a multiprocessor computer system
US20050216646A1 (en) Arbitration method of a bus bridge
US10255103B2 (en) Transaction handling
US6625678B1 (en) Livelock avoidance method
US6938113B2 (en) Apparatus for flushing slave transactions from resetting masters of a data bus
US6944698B2 (en) Method and apparatus for providing bus arbitrations in a data processing system
KR0121973B1 (ko) 전전자 교환기에 있어서 프로세서 보드간의 공통버스 중재회로
US20050149655A1 (en) Bus allocation method and apparatus

Legal Events

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

Payment date: 20130612

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140612

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150609

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180601

Year of fee payment: 13