KR19980032140A - 트랜잭션 및 수신지 id를 가진 공유 버스 시스템 - Google Patents

트랜잭션 및 수신지 id를 가진 공유 버스 시스템 Download PDF

Info

Publication number
KR19980032140A
KR19980032140A KR1019970022664A KR19970022664A KR19980032140A KR 19980032140 A KR19980032140 A KR 19980032140A KR 1019970022664 A KR1019970022664 A KR 1019970022664A KR 19970022664 A KR19970022664 A KR 19970022664A KR 19980032140 A KR19980032140 A KR 19980032140A
Authority
KR
South Korea
Prior art keywords
bus
transaction
shared
value
request
Prior art date
Application number
KR1019970022664A
Other languages
English (en)
Other versions
KR100245818B1 (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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=24939301&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR19980032140(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 윤종용, 삼성전자 주식회사 filed Critical 윤종용
Publication of KR19980032140A publication Critical patent/KR19980032140A/ko
Application granted granted Critical
Publication of KR100245818B1 publication Critical patent/KR100245818B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • 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)
  • Bus Control (AREA)

Abstract

버스 중재 중에 공유 버스 상에서 대기 시간을 줄이기 위하여, 바람직한 공유 버스 시스템은 버스 마스터에 공유 버스를 승인함과 동시에 버스 슬래이브를 선택하기 위하여 버스 중재기와 버스 장치들 사이에 장치 선택 라인을 사용한다. 특히, 버스 장치는 버스 요구 단자 상에 활동 상태로 구동하고, 버스 중재기에 원하는 버스 슬래이브와 대응하는 수신지 ID 값을 구동함으로써 공유 버스의 사용을 요구한다. 그 후 상기 버스 중재기는 상기 요구하는 장치의 버스 승인 입력 단자와 연결된 버스 승인 출력 단자 상에서 활동 상태로 구동한다. 동시에, 상기 버스 중재기는 원하는 버스 슬래이브의 장치 선택 입력 단자와 연결된 장치 선택 출력 단자 상에서 활동 상태로 구동한다. 더욱이, 꼬리표가 붙은 우송 판독 요구는 공유 버스를 보충하는 트랜잭션 ID 버스를 사용하면 간소화될 수 있다.

Description

트랜잭션 및 수신지 ID를 가진 공유 버스 시스템
본 발명은 버스 구조에 관한 것으로서, 특히 낮은 대기 시간의 공유 버스 구조에 관한 것이다.
버스(Bus)는 전자 시스템의 다양한 장치들 사이의 통신 경로이다. 예를 들면, 컴퓨터 시스템에서 중앙 처리 장치(CPU)는 메모리 버스를 통하여 주 메모리를 전달한다. 또한 주변 장치 들은 메모리 버스에 연결되거나 분리된 입출력 버스(IO Bus)를 통하여 중앙 처리 장치에 연결될 수 있다.
버스 들은 주로 두 지점간 버스(Point-to-Point Bus) 들과 공유 버스(Shared Bus) 들과 같은 두 범주로 나뉘어질 수 있다. 두 지점간 버스는 단지 두 개의 버스 장치만 서로 연결한다. 공유 버스는 두 개의 버스 장치 이상에 사용될 수 있다. 그래서 통신에 요구되는 여러 버스 들은 두 지점간 버스나 공유 버스의 사용 여부에 의존한다. 예를 들면, 4 개의 버스 장치 들은 서로 교신하기 위하여 6 개의 두 지점간 버스를 필요로 하지만, 상기 장치 들은 단 하나의 공유 버스를 통하여 연락 될 수 있다. 하나의 공유 버스 구조로써 4 개의 버스 장치 들은 모두 하나의 버스를 공유할 수 있는 것이다.
두 지점간 버스는 보다 낮은 대기 시간, 최소한의 버스 경쟁의 이점을 갖고 있고, 그리고 다중 동시 데이터 전송을 지원하는 능력을 갖고 있다. 그러나, 두 지점간 버스 구조에 사용되는 많은 수의 버스 들은 많은 수의 칩이나 보드 영역을 필요로 한다.
단지 하나의 공유 버스가 다중 버스 장치 들을 지원할 수 있기 때문에 칩이나 보드 영역은 두 지점간 버스 구조에 비하여 공유 버스 구조를 실행하는 데 훨씬 덜 필요하다. 상기 공유 버스의 가장 큰 단점은 버스 장치 들이 효율적으로 공유할 수 있도록 중재가 이루어져야 한다는 것이다. 더욱이, 장치의 신분은 버스 장치가 단지 신호 들을 상기 버스 장치로 향하도록 송신하거나 수신할 수 있도록 버스에 필요하다.
전자 시스템이 점점 복잡해짐에 따라 데이터 버스는 방대하게 증가된다. 상기 방대한 데이터 버스는 칩이나 보드 영역이 값이 비쌀 때에는 여러 두 지점간 버스의 사용을 배제한다. 그러므로, 공유 버스는 주로 복합 전자 시스템에 사용된다.
도 1 은 종래의 공유 버스 시스템(100)의 블록도를 나타낸다.
다른 가능한 버스 장치들(미도시) 뿐만 아니라 버스 장치(120), 버스 장치(130), 버스 장치(140)는 어드레스 버스(150), 데이터 버스(160), 및 제어 버스(170)를 포함하는 공유 버스(190)에 의하여 서로 연결된다. 어떤 공유 버스 시스템에서는, 어드레스값과 데이터값 들은 하나의 복합 어드레스/데이터 버스에 다중화된다. 각 버스 장치는 버스 요구 출력 단자(R), 버스 승인 입력 단자(G), 어드레스 단자(ADDR), 데이터 단자(DATA), 및 제어 단자(CTRL) 들을 갖는다. 버스 요구 출력 단자와 버스 승인 입력 단자 들은 버스 중재기(110)에 연결된다. 만일 버스 장치(120)가 공유 버스(190)를 사용하길 원한다면, 버스 장치(120)는 반드시 버스 요구 출력 단자(R)에 요구 활동 상태를 구동해야 한다.
여기에 서술된 실시예나 타임도 들에서 신호들, 특히, 요구나 승인 및 선택 신호들은 활동 상태로써 로직 하이(Logic High)를 사용하고 비활동 상태로써 로직 로우(Logic Low)를 사용한다. 반면에, 로직 로우는 비활동 상태로 되는 로직 하이와 더불어 활동 상태로 종종 사용되기도 한다.
버스 중재기(110)는 통신 버스 요구 입력 단자 상의 버스 요구 신호를 모니터한다. 중재기(110)는 각 버스 장치에 대한 버스 요구 입력 단자를 갖고 있기 때문에 상기 버스 요구 입력 단자는 R_x 부호가 붙쳐지고, 여기서 x 는 각 버스 장치에 대응되는 숫자이다.
만일 공유 버스(190)가 사용되지 않는다면, 버스 중재기(110)는 버스 장치(120)의 승인 입력 단자(G)와 연결된 승인 출력 단자 상에 승인 활동 상태로 드라이브한다. 만일 두 개의 장치 들이 동시에 버스를 요구한다면 버스 중재기(110)는 어느 장치가 버스 승인을 받아야 할 지를 결정하기 위하여 우선 순위 구조를 사용할 수 있다.
각 장치에 대하여 요구 라인과 승인 라인 들을 따로 따로 사용하는 것은 주로 독자적으로 요구하는 중재로 불리어진다. 주로 달리 사용되는 중재 구조는 데이지 체인과 폴링(daisy chaining and polling)을 내포한다
버스의 사용이 승인된 버스 장치는 주로 버스 마스터(Bus Master)로써 불리어진다. 상기 버스 마스터는 다른 버스 장치와 통신하고, 상기 다른 버스 장치는 주로 버스 슬래이브(Bus Slave)로써 불리어진다. 버스 장치는 단지 마스터나 슬래이브 하나로만 되든지, 아니면 마스터와 슬래이브 둘 다가 될 수도 있다. 만일 버스 장치(120)가 버스를 승인받는다면, 버스 장치(120)는 버스 마스터가 된다.
그 후, 버스 장치(120)는 어드레스 단자(ADDR)와 제어 단자(CTRL)를 통하여 각 각 데이터 전송을 시작하기 위하여 어드레스 버스(150) 및 제어 버스(170)를 구동한다. 특히, 버스 장치(120)는 어드레스 단자(ADDR)를 통하여 어드레스 버스(150) 상으로 어드레스 신호를 구동할 수 있고, 제어 단자(CTRL)를 통하여 제어 버스(170) 상으로 제어 신호를 구동할 수 있다. 제어 버스(170)는, 예를 들면, 데이터 전송의 크기 및 데이터 전송의 방향(즉, 기록이나 판독용으로)을 가리키는 제어 신호 들을 포함할 수 있다.
특히 각 버스 장치는 그 버스 장치의 제어 하에 있는 여러 데이터에 관한 어드레스 들의 범위가 주어진다. 그래서, 상기 버스 마스터가 원하는 버스 슬래이브와 대응하는 장치 어드레스를 어드레스 버스(150) 위로 구동할 때, 각 버스 장치는 버스 마스터에 의하여 구동되는 장치 어드레스가 버스 장치의 장치 어드레스와 매칭시킬지를 결정하기 위하여 어드레스 버스(150) 상에서 장치 어드레스를 감시 및 해독해야 한다. 버스 마스터에 의하여 구동되는 장치 어드레스와 매칭되는 장치 어드레스를 가지는 버스 장치는 버스 슬래이브가 된다. 예를 들면, 현재 버스 마스터인 버스 장치(120)가 버스 장치(140)으로부터 데이터를 판독하길 원한다면, 버스 장치(120)는 어드레스 버스(150) 위로 버스 장치(140)에 대한 장치 어드레스를 구동해야 한다. 그래서 모든 다른 버스 장치는 버스 장치(120)에 의하여 구동되는 장치 어드레스가 상기 버스 장치의 어드레스를 매칭할 지를 결정하기 위하여 어드레스를 해독한다. 이러한 예에서, 단지 버스 장치(140)는 매칭할 장치 어드레스를 찾는다. 버스 장치(140)가 어드레스를 해독하기 위한 시간은 공유 버스(190)의 대기 시간에 부가된다.
도 2 는 버스 마스터로부터 버스 슬래이브로 데이터를 기록하는 전형적인 동기 공유 버스에 대한 버스 중재의 타임도를 예시한다.
클럭 신호(CLK)의 처음의 상승 엣지(201)에서, 요구 버스 장치는 버스 중재기(110)로 요구 신호(REQUEST)를 제공하는 버스 요구 출력 단자(R)에서 요구 활동 상태로 구동한다.
이 후의 상승 엣지(202)에서, 버스 중재기(110)는 승인 신호(GRANT)를 제공하기 위하여 요구 버스 장치의 버스 승인 입력 단자(G)와 연결된 승인 출력 단자로 승인 활동 상태로 구동함으로써 공유 버스(190)의 사용을 승인한다. 상기 요구하는 버스 장치가 승인 활동 상태를 수신할 때, 상기 요구하는 버스 장치는 버스 마스터가 된다.
상승 엣지(203)에서, 버스 마스터는 어드레스 버스(150) 위에서 버스 어드레스값(231)을 구동하는 데, 상기 어드레스 버스는 상기 버스 마스터가 데이터를 기록하기를 원하는 소요의 버스 슬래이브와 통신한다. 비마스터 버스 장치 들은 버스 장치가 원하는 버스 슬래이브가 어느 것인지를 결정하기 위하여 어드레스값(231)을 해독한다.
클럭 신호(CLK)의 상승 엣지(204)에서, 상기 버스 마스터는 어드레스 버스(150) 상에서 어드레스값(232)을 가록하고 데이터 버스(160) 상에서 데이터값(241)을 기록한다. 그래서, 버스 슬래이브의 선택은 데이터가 동기 공유 버스 시스템에서 전송되기 전에 하나의 클럭 사이클의 시간 지연을 야기한다.
판독 전송은 도 2 에서 나타낸 기록 전송에 대하여 비슷한 타이밍을 갖는다. 그러나, 데이터는 클럭 신호(CLK)의 상승 엣지(204)에서 시작하는 버스 슬래이브에 의하여 구동되어질 것이다. 만일 공유 버스(190)가 우송 판독 요구(Posted Read Request)(이하에서 설명되는 바와 같이)를 위하여 사용된다면, 타이밍은 데이터가 클럭 신호(CLK)의 상승 엣지(204)에서 기록되어지지 않는 것을 제외하고 도 2 에서와 동일할 것이다.
그 대신에 더 나중의 시간에서 버스 슬래이브는 우송 판독 요구에 응답하기 위한 버스의 사용을 요구할 것이다. 그래서, 우송 판독 요구에 대하여, 버스 슬래이브 선택의 대기 시간은 상기 우송 판독 요구에 대하여 필요한 전체 시간의 1/3 이 걸린다.
사실상 공유 버스(190)의 구현에 의하면, 다른 제어 신호 들이 유리할 지 모른다. 예를 들면, 각 버스 장치 들이 버퍼로써 데이터 FIFO 들을 사용한다면, 꽉 찬 FIFO(FIFO full)과 빈 FIFO(FIFO empty)와 같은 상태 플래그(Status Flag) 들은 버스 슬래이브가 데이터를 주고 받을 준비가 되어있는지 여부를 가리키기 위하여 사용될 수 있다. 다른 버스 시스템에서는 장치 준비 신호가 제어 버스(170)에 사용될 수 있다.
공유 버스 구조를 사용하는 것에 수반된 다른 문제점은 단 하나의 버스 마스터만이 동시에 공유 버스를 사용할 수 있다는 것이다. 그러므로, 버스 마스터가 버스 슬래이브로부터 데이터를 기다리고 있다면, 다른 버스 장치 들은 그 버스를 사용할 수 없다. 버스 쟁취문제를 해결하기 위한 하나의 방법은 우송 판독 요구를 사용하는 것이다. 우송 판독 요구에서, 버스 마스터는 판독 요구를 슬래이브로 보낸 뒤 공유 버스를 포기한다. 버스 슬래이브가 상기 판독 요구에 응할 준비가 될 때, 상기 버스 슬래이브는 최초 버스 마스터로 데이터를 보내기 위하여 버스에 대한 요구를 시작한다.
상기 버스 슬래이브가 판독 요구에 응할 때, 상기 최초 버스 마스터는 어느 우송 판독 요구가 응답되고 있는지를 결정하여야 한다. 태깅(Tagging) 구조는 뚜렷한 우송 판독 요구 들 각 각을 표시할 수 있다. 응답 들의 태깅 및 신분에 대한 회로 구성은 복잡해질 수 있고 공유 버스 구조의 대기 시간을 부가할 수 있다.
따라서, 공유 버스 구조의 대기 시간을 줄이는 방법 및 회로 들이 요구된다. 특히, 상기 방법 및 회로 들은 원하는 버스 슬래이브를 결정함으로써 야기되는 시간 지연을 제거해야 하고, 버스 장치가 어느 우송 판독 요구가 응해질 지를 결정할 수 있도록 우송 판독 요구에 꼬리표를 다는 것으로 인한 복잡성을 제거해야 한다. 게다가, 상기 회로 들은 값비싼 기판이나 칩 영역을 필요로 해서도 안된다.
본 발명에 따르면 방법 및 장치 들은 공유 버스에서의 대기 시간 및 꼬리표를 붙인 요구 들을 줄인다. 보다 상세하게는, 본 발명의 실시예에 따른 버스 선택 구조는 버스 중재기의 대기 시간을 줄일 수 있다. 더욱이, 본 발명의 실시예에 따른 트랜잭션 ID 버스는 꼬리표를 붙인 우송 판독 요구 들의 복잡성을 크게 줄일 수 있다.
하나의 실시예에서, 버스 통신 시스템은 버스 중재기, 제 1 버스 장치, 제 2 버스 장치, 및 상기 제 1 버스 장치를 제 2 버스 장치에 연결하는 공유 버스를 가진다. 상기 버스 중재기는 상기 제 1 버스 장치의 제 1 장치 선택 입력 단자와 연결된 제 1 장치 선택 출력 단자와, 상기 제 2 버스 장치의 제 2 장치 선택 입력 단자와 연결된 제 2 장치 선택 출력 단자를 가진다. 또한 상기 버스 중재기는 복수의 제 1 수신지 ID 입력 단자 들과 복수의 제 2 수신지 ID 입력 단자 들을 포함할 수 있다. 각 버스 장치는 버스 중재기의 복수의 수신지 ID 입력 단자 들과 연결된 복수의 수신지 ID 출력 단자 들을 가진다. 게다가, 각 버스 장치는 버스 중재기의 버스 요구 입력 단자와 연결된 버스 요구 출력 단자를 가진다. 또한, 각 버스 장치는 버스 중재기의 버스 승인 출력 단자와 연결된 버스 승인 입력 단자를 가진다.
그래서, 공유 버스를 사용하는 각 버스 장치에 대하여, 버스 중재기는 하나의 버스 요구 입력 단자, 하나의 버스 승인 출력 단자, 하나의 장치 선택 입력 단자 및 복수의 수신지 ID 입력 단자 들을 가진다.
제 1 버스 장치가 제 2 버스 장치와 통신하기 위하여 공유 버스를 사용하길 원할 때, 제 1 버스 장치는 상기 제 1 버스 장치의 버스 요구 단자에 요구 활동 상태로 구동하고, 제 2 버스 장치에 대응하는 수신지 ID 값을 제 1 버스 장치의 수신지 ID 출력 단자로 구동한다. 만일 공유 버스가 사용되고 있지 않다면, 버스 중재기는, 제 1 버스 장치와 연결된 버스 승인 출력 단자에 승인 활동 상태로 구동하고 제 2 버스 장치와 연결된 장치 선택 출력 단자에 선택 활동 상태로 구동함으로써 제 1 버스 장치로 공유 버스의 사용을 승인한다. 상기 제 1 버스 장치는 버스 마스터가 되고, 제 2 버스 장치는 버스 슬래이브가 된다. 상기 버스 슬래이브는 버스 마스터와 같이 동시에 시작하기 때문에 상기 버스 마스터는 버스 슬래이브를 개시할 시간을 소모할 필요가 없다. 동기 시스템에서, 적어도 대기 시간의 한 클럭 주기는 삭제될 수 있다.
공유 버스에 의하여 제 2 버스 장치와 연결되는 제 1 버스 장치를 가지는 어떠한 공유 버스 시스템과 함께 트랜잭션 ID 버스를 사용하는 데, 우송 판독 요구를 태깅할 때의 복잡성은 감소될 수 있다. 또한 상기 트랜잭션 ID 버스는 제 1 버스 장치 및 제 2 버스 장치와 연결된다. 버스 마스터로 되는 버스 장치는 각 우송 판독 요구에 대하여 트랜잭션 ID 버스 위로 특정 트랜잭션 ID 값을 구동한다. 버스 슬래이브로 되는 버스 장치는 트랜잭션 ID 값을 래치하고, 상기 버스 슬래이브가 우송 판독 요구에 응답할 때 트랜잭션 ID 버스 위로 동일한 트랜잭션 ID 값 되돌려 준다. 이 때 상기 버스 마스터는 어느 우송 판독 요구가 완료되고 있는지를 결정하도록 트랜잭션 ID 값을 판독한다. 상기 버스 마스터는 트랜잭션 ID 값을 생성하기 위하여 각 우송 판독 요구와 더불어 증가하는 카운터를 사용할 수 있다. 상기 버스 슬래이브는 트랜잭션 ID 값을 저장하도록 래치나 FIFO 를 사용할 수 있다. 본 발명의 다른 실시예에서, 상기 트랜잭션 ID 는 요구자 ID 몫과 요구 트랜잭션 ID 몫을 가진다. 상기 버스 슬래이브는 어느 버스 장치가 처음의 우송 판독 요구를 보냈는지를 결정하기 위하여 요구자 ID 몫을 해독한다.
도 1 은 종래의 공유 버스 시스템을 나타낸 블록도.
도 2 는 종래의 공유 버스 시스템에 대한 타임도.
도 3a 는 본 발명의 실시예에 따른 공유 버스 시스템을 나타낸 블록도.
도 3b 는 본 발명의 실시예에 따른 버스 중재 유니트를 나타낸 블록도.
도 4 는 본 발명의 실시예에 따른 공유 버스 시스템에 대한 타임도.
도 5 는 본 발명의 실시예에 따른 공유 버스 시스템에 우송된 판독 요구에 대한 타임도.
도 6 은 본 발명의 실시예에 따른 버스 시스템을 상세하게 나타낸 블록도.
도 7 은 본 발명의 실시예에 따른 컴퓨터 시스템을 상세하게 나타낸 블록도.
이하, 첨부한 도면을 참조로 하여 본 발명의 바람직한 실시예를 상술하며, 도면 전체를 통하여 동일한 부분에는 동일한 도면부호를 사용하기로 한다.
도 3a 는 본 발명의 실시예에 따른 공유 버스 시스템(300)의 블록도를 나타낸다.
공유 버스 시스템(300)의 여러 구성 요소 들은, 예를 들어, 하나의 집적 회로 제조될 수 있고, 하나의 인쇄 회로 기판의 구성 요소 들로써 제조될 수 있고, 또는 복합 인쇄 회로 기판 들을 사용하는 것으로 제조될 수 있다. 공유 버스 시스템(300)에 있어서, 버스 장치(320)(330)(340)와 같은 여러 버스 장치 들은 공유 버스(390)를 공유한다.
도 3 의 실시예에 있어서, 공유 버스(390)는 어드레스 버스(350), 데이터 버스(360), 및 제어 버스(370)를 포함한다. 또한 버스 시스템(300)은 임의의 트랜잭션 ID 버스(395)를 가진다. 트랜잭션 ID 버스(395)는 후술하는 트랜잭션 ID 구조가 사용되지 않는다면 불필요하다. 더욱이 본 발명의 다른 실시예에서 어드레스 및 데이터 신호 들은 하나의 어드레스/데이터 버스 상으로 다중화된 시간이다.
버스 장치(320)(330)(340)의 어드레스 단자(ADDR)와 연결된 어드레스 버스(350)는 요구되거나 기록되고 있는 데이터의 어드레스값을 통과시키는 데 사용된다. 각 버스 장치 상의 데이터 단자(DATA)를 통하여 버스 장치 들과 연결된 데이터 버스(360)는 버스 장치 들 사이에서 데이터를 수송한다.
버스 장치 들의 각 제어 단자(CTRL)와 연결된 제어 버스(370)는 버스 장치 들 사이에서 데이터를 전달한다. 공유 버스 시스템(300)의 바람직한 실시예에 따르면, 다른 제어 신호 들은 제어 버스(370) 상에서 사용된다. 예를 들면, 동기 설계에 있어서 클럭 신호(CLK)는 제어 버스(370) 상에서 사용된다. 비동기 설계에 있어서 데이터 밸리드(Data Valid) 및 인식 신호 들과 같은 제어 신호 들은 제어 버스(370) 상에 나타날 수 있다. 주로 제어 버스(370) 상에 나타날 수 있는 달리 사용되는 신호 들은 전송 크기, 판독/기록, 채워진 어드레스 버퍼, 채워진 데이터 버퍼, 빈 어드레스 버퍼, 빈 데이터 버퍼, 준비 장치, 리셋, 요구 사이즈, 및 준비 데이터를 포함한다.
공유 버스(390)를 사용하는 각 버스 장치는 버스 중재기(310)와 연결된다. 특히, 각 버스 장치는 공유 버스(390)의 사용을 요구하는 버스 요구 출력 단자(R), 승인 신호를 받는 버스 승인 입력 단자(G), 버스 중재기(310)로 수신지 ID 를 구동하는 수신지 신분(ID) 출력 단자(D_ID), 및 버스 장치가 버스 슬래이브로 되면 장치 선택 신호를 받는 장치 선택 입력 단자(DS)를 가진다.
버스 중재기(310)는 각 버스 장치에 대하여, 버스 요구 입력 단자(R_x), 버스 승인 출력 단자(G_x), 수신지 ID 입력 단자(D_ID_x), 및 상기 버스 장치 상에서 단자들(R)(G)(D_ID)(DS)과 각 각 대응하는 장치 선택 출력 단자(DS_x)를 가진다. 승인 단자(G) 상에서 승인 활동 상태로 수신하는 요구 버스 장치는 버스 마스터가 된다.
요구를 할 때, 버스 장치(320)는 이 장치의 버스 요구 출력 단자(R) 상에 요구 활동 상태로 구동하고, 버스 장치(320)의 수신지 ID 단자(D_ID)를 경유하여 버스 중재기(310)로 수신지 ID 를 보낸다. 상기 수신지 ID 는 어느 버스 장치가 버스 슬래이브가 되는지를 가리키는 데 사용된다. 각 버스 장치는 수신지 ID 를 할당받는다; 그러므로, 버스 중재기(310)는 어느 버스 장치가 버스 슬래이브가 되는지를 결정하기 위하여 수신지 ID 를 해독할 수 있다. 예를 들어 버스 장치(320)가 버스 장치(340)와 통신되기를 원한다면, 버스 장치(320)는 이 장치(320)의 버스 요구 출력 단자(R) 상에 요구 활동 상태를 수반하여 버스 장치(320)의 수신지 ID 출력 단자(D_ID) 상에 버스 장치(340)의 수신지 ID를 보낼 것이다.
만일 공유 버스(390)가 사용 가능하다면, 버스 중재기(310)는 버스 장치(320)의 버스 승인 입력 단자(G)와 연결된 버스 승인 출력 단자(G_1) 상에서 승인 활동 상태로 구동함으로써 공유 버스(390)의 사용을 버스 장치(320)에 승인한다. 또한 버스 중재기(310)는 원하는 버스 슬래이브의 장치 선택 단자(DS)와 연결된 장치 선택 출력 단자(DS_N)에 선택 활동 상태로 구동한다. 버스 장치(320)는 버스 마스터가 되고, 버스 장치(340)는 버스 슬래이브가 된다. 버스 장치(340)는 장치 선택 신호를 받기 때문에, 버스 장치(340)는 다음 데이터 전송이나 데이터 전송 요구가 버스 장치(340)로 향하게 된다는 것을 안다. 버스 장치(320), 즉, 상기 예에서 버스 마스터는 버스 슬래이브를 시작하기 위하여 장치 어드레스를 보내는 시간을 낭비할 필요가 없다.
버스 중재기(310)는 버스의 상태, 즉, 버스가 바쁜지 여부를 확인할 수 있어야 한다. 본 발명의 하나의 실시예, 즉 상당히 바쁜 버스 단자 가 각 버스 장치에 위치하게 되는 실시예에 있어서, 상기 버스가 각 버스 장치에 의하여 사용되고 있을 때 상기 버스 장치는 바쁜 버스 단자 상에 바쁜 활동 상태로 구동한다. 버스 중재기(310)는 각 장치의 바쁜 버스 단자에 대한 입력 단자나 장치가 버스 마스터일 때 단지 구동만 될 수 있는 보통의 바쁜 버스 신호 들을 공유할 수 있는 모든 버스 장치 들 중에서 하나를 가질 수 있다. 버스 중재기(310)는 버스(190)가 사용 가능한 시기를 결정할 수 있도록 바쁜 버스 신호를 감시한다.
본 발명의 다른 실시예에 있어서, 버스 마스터는 버스가 계속 사용되고 있는지의 여부를 버스 중재기(310)에 신호하는 버스 요구 신호를 사용한다. 특히, 버스 마스터는 버스 마스터가 버스(의 사용)을 종료한 후까지 상기 버스 마스터의 버스 요구 출력 단자(R) 상에서 버스 활동 상태를 유지한다. 일단 버스 마스터가 종료하면, 버스 마스터는 이의 버스 요구 출력 단자(R) 상으로 요구 비활동 상태를 구동한다. 그래서, 버스 중재기(310)는 버스가 사용 가능한 시기를 결정하기 위하여 버스 마스터의 버스 요구 신호를 감시한다.
도 3b 는 버스 중재기의 일 실시예를 나타낸다.
중재 유니트(312)는 모든 버스 요구 입력 단자(R_x)를 감시하고, 우선 구조에 기초된 바람직한 버스 승인 출력 단자(G_x)로 승인 활동 상태를 구동한다. 또한 중재 유니트(312)는 멀티플렉서(314)가 디코더(316)에 다음 버스 마스터의 수신지 ID 단자를 전자적으로 연결할 수 있도록 수신지 ID 입력 단자(D_ID_x)와 연결된 멀티플렉서(314)를 제어한다. 디코더(316)는 다음 버스 슬래이브의 버스 선택 단자를 구동할 수 있도록 멀티플렉서(314)로부터 수신지 ID 를 해독한다.
도 4 는 본 발명의 일 실시예에 따른 동기 공유 버스에서 버스 장치(340)로부터 버스 장치(330)로의 데이터 기록의 버스 중재 시간을 나타낸다.
클럭 신호(CLK)의 상승 엣지(402)에서, 버스 장치(340)는 버스 장치(340)의 버스 요구 출력 단자(R) 상에 요구 활동 상태로 요구 신호(REQUEST)를 구동하고, 버스 중재기(310)에 원하는 버스 슬래이브(330)를 가리키는 수신지 ID(422)를 구동한다. 클럭 신호(CLK)의 다음 상승 엣지(403)에서, 버스 중재기(310)는 버스 장치(340)의 버스 승인 입력 단자(G) 상에 승인 활동 상태로 승인 신호(GRANT)를 구동한다. 또한 상승 엣지(403)에서, 버스 중재기(310)는 이 예의 버스 장치(330)에서 버스 장치(340)에 의하여 보내진 수신지 ID 와 대응하는 버스 장치의 장치 선택 입력 단자(DS) 위로 선택 활동 상태를 구동한다. 그러면 버스 장치(340)는 공유 버스(390)의 버스 마스터가 되는 반면, 버스 장치(330)는 버스 슬래이브가 된다.
상기 버스 슬래이브는 동시에 버스 마스터로써 선택되기 때문에 상기 버스 마스터는 다음 상승 엣지, 즉 상승 엣지(404)에 데이터를 전송하기 시작한다. 따라서, 버스 마스터는 어드레스 버스(350) 위로 어드레스값(453)을 구동할 수 잇고, 상승 엣지(404)에서 데이터 버스(360)로 데이터값(463)을 구동할 수 있다. 그래서, 수신지 ID 및 공유 버스(390)의 대기 시간을 줄이는 선택 장치의 사용은 도 1 의 공유 버스(190)와 비교될 때 감소된다.
만일 버스 마스터가 버스 슬래이브로부터 데이터를 판독하기를 원한다면, 도 4 에서 도시된 바와 같은 타이밍은 클럭 신호(CLK)의 상승 엣지(406)에서 버스 슬래이브가 데이터 버스(360) 위로 기록할 수 있는 데이터를 제외한다. 우송 판독은 데이터값(463)이 보내지지 않는 것을 제외하고 도 4 에서 나타낸 바와 같은 타이밍을 사용할 것이다. 이 후에, 현재의 버스 슬래이브는 우송 판독에 응답하여 기록 전송을 시작한다.
공유 버스(390) 중재의 대기 시간을 더욱 줄이기 위하여, 버스 중재기(310)로부터의 승인 신호 및 장치 선택 신호는 비동기로 될 수 있다. 예를 들면, 단순한 조합 논리는 요구신호들과 여러 버스 신호들과 함께 승인 신호를 생성하기 위하여 사용될 수 있다. 동시에, 단순한 조합 논리는 장치 선택 신호 들을 생성하는 수신지 ID 를 해독하기 위하여 사용될 수 있다. 그래서, 요구가 받아들여질 때 공유 버스(390)가 바쁘지 않다면, 요구하는 버스 승인 입력 단자(G)는 버스 요구 출력 단자(R)가 요구 활동 상태로 구동되었던 바와 같은 동일 클럭 주기 동안 승인 활동 상태로 구동되어질 수 있다. 동시에, 원하는 버스 슬래이브의 장치 선택 입력 단자(DS)는 동일 클럭 주기 내에서 선택 활동 상태로 구동되어진다. 버스 장치에 존재할 셋업 시간의 어떠한 구속이라도 충족되는 한, 요구하는 버스 장치는 요구 신호가 표명된 후 다음 클럭 주기에서 공유 버스(390)를 사용할 수 있다. 본 발명의 다른 실시예는 대기 시간을 더욱 더 줄이기 위하여 완전히 비동기 버스를 사용한다.
우송 판독 들을 수행하는 데 있어서, 트랜잭션 ID 버스(395)는 효율적으로 각 우송 요구를 태그하기 위하여 사용될 수 있다.
도 5 는 트랜잭션 ID 버스(395)의 사용을 도시한 타임도를 나타낸다.
우송 판독에 대한 버스 중재가 도 4 의 데이터 기록과 동일하기 때문에, 상승 엣지(402)(403)에 따라 일어나는 요구, 승인, 및 슬래이브 선택 과정에 대한 설명은 생략한다. 그러나, 상승 엣지(504)에서, 버스 마스터는 어드레스 버스(350) 위로 어드레스값(553)을 구동하고, 트랜잭션 ID 버스(395) 위로 트랜잭션 ID 값(563)을 구동한다.
상기 트랜잭션 ID 는 요구자 ID 와 요구 트랜잭션 ID 로 분리된다. 상기 요구자 ID 의 최소 크기는 공유 버스(390)를 사용하는 버스 장치의 수에 의존한다. 각 버스 장치는 특정 요구자 ID 로 지정된다. 만일 트랜잭션 ID 버스(395)는 버스 시스템(300)에 사용되는 버스 중재 구조와 함께 사용되면, 요구자 ID 는 각 버스 장치의 수신지 ID 와 동일하게 만들어질 수 있다.
그러나, 트랜잭션 ID 버스가 버스 시스템(100)에 부가된다면, 요구자 ID 는 각 버스 장치의 어드레스에 근거하여 지정될 수 있거나, 아니면 버스 장치가 특정요구자 ID 를 갖는 한 다른 어떤 구조에 근거하여 지정될 수 있다.
버스 마스터는 요구 트랜잭션 ID 의 특정 값을 결정하고, 각 요구를 태그(Tag)하는 요구 트랜잭션 ID 를 요구한다. 각 우송 판독 요구는 특정 요구 트랜잭션 ID 를 받아야 한다. 그러나, 일단 우송 판독 요구가 완료되면, 상기 완료된 우송 판독 요구의 요구 트랜잭션 ID 는 재사용될 수 있다.
버스 슬래이브가 우송 판독 요구를 받을 때, 버스 슬래이브는 요구된 어드레스와 함께 전체 트랜잭션 ID 를 저장한다. 상기 버스 슬래이브가 우송 판독 요구에 응답될 수 있을 때, 버스 슬래이브는 어느 버스 장치가 최초의 판독 요구인가를 결정하기 위하여 요구자 ID 를 해독한다. 그러면 상기 버스 슬래이브는 공유 버스(390)를 사용하는 요구를 만들고, 최초 버스 마스터에 최초 트랜잭션 ID 및 요구된 데이터의 사본을 보낸다. 상기 버스 마스터가 트랜잭션 ID의 사본을 받기 때문에, 상기 버스 마스터는 어느 우송 판독 요구가 완료되고 있는 지를 결정할 수 있다.
도 6 은 트랜잭션 ID 버스(395)를 사용할 수 있는 버스 장치의 일 실시예를 도시한다.
도 6 에서, 버스 마스터(610)는 버스 슬래이브(620)로부터 데이터를 요구한다. 버스 마스터(610)에 있는 어드레스 생성기(630)는 어드레스 버스(350) 상에 원하는 어드레스값을 생성하기 위하여 사용된다. 버스 마스터(610)의 카운터(650)는 요구 트랜잭션 ID 생성한다. 각 우송 판독 요구에 대하여, 카운터(650)는 하나의 우송 판독 요구로써 요구 트랜잭션 ID 를 증가시킨다. 그러므로, 카운터(650)가 우송 판독이 틀림없이 완료되기 전에는 카운터(650)의 롤오버(Rollover)가 일어나지 않는다는 것을 보증할 정도로 충분히 큰 한, 각 우송 판독 요구는 다른 트랜잭션 ID 를 받는다. 버스 마스터(610)의 요구자 ID 와 함께 카운터(650)의 출력은 트랜잭션 ID 버스(395)로 구동된다. 또한 카운터(650)의 출력은 뚜렷한 특정 우송 판독 요구의 요구 트랜잭션 ID 를 저장하는 ID 기억 장치(690)로 보내진다. 많은 뚜렷한 우송 판독 요구는 ID 기억 장치(690)에 저장될 수 있는 많은 요구 트랜잭션 ID 에 의하여 제한된다. 버스 마스터(610)는 비교기(640)를 사용하는 데, 이 비교기는 어느 우송 판독 요구가 완료되고 있는 지를 결정하는 ID 기억 장치(690)에 저장된 요구 트랜잭션 ID 와 입력되는 요구 트랜잭션 ID 를 비교하도록 트랜잭션 버스(395) 상에서 버스 슬래이브(620)로부터 입력되는 트랜잭션 ID 를 수신한다.
버스 슬래이브(620)는 버스 마스터(610)로부터 우송 판독 요구를 저장한다. 어드레스 래치(660)는 어드레스 버스(350)로부터 요구 어드레스를 저장한다. ID 래치(670)는 트랜잭션 ID 버스(395)로부터 트랜잭션 ID 를 저장한다. 저장된 어드레스에 의하여 지시된 데이터가 사용 가능할 때, 디코더(680)는 어느 버스 장치가 우송 판독 요구를 만드는지를 결정하는 ID 래치(670)로부터 트랜잭션 ID 의 요구자 ID 몫을 해독한다.
만일 버스 시스템(300)의 버스 중재 구조가 사용되면, 디코더(680)는 버스 슬래이브(620)의 수신지 ID 단자(D_ID)로 적절한 수신지 ID 를 구동한다(버스 슬래이브(620)는 우송 판독 요구에 응답할 때 버스 마스터가 된다). 종래의 버스 중재 구조가 사용되면, 디코더(680)는 버스 마스터에서 어드레스 생성기(미도시)로 적절한 어드레스를 제공한다.
도 7 은 본 발명의 실시예에 따라 태깅하는 트랜잭션 ID 요구 및 수신지 ID 버스 중재를 인용하는 컴퓨터 시스템(700)의 상세한 블록도를 나타낸다.
특히, 주 컴퓨터(700)는, 예를 들어 표준 PCI 버스(705)와 연결된 x86 호환 프로세서와 같은 주 프로세서(710)를 가진다. 대용량 기억 장치(Mass Storage Unit)(714)는 대용량 기억 장치 인터페이스(Mass Storage Interface)(712)를 거쳐 PCI 버스(705)와 연결된다. 대용량 기억 장치(714)는, 예를 들어 마그네틱 디스크 드라이브, CD-ROM, 광자기 디스크, 또는 자기 테이프 들이 될 수 있다.
또한 보조 처리 시스템(Co-Processing System)(720)은 PCI 인터페이스(742)를 사용하는 PCI 버스(705)와 연결된다. 보조 처리 시스템(720)은 예를 들어 멀티미디어 신호 프로세서이다.
도 7 의 실시예에서, 보조 처리 시스템(720)은 제 1 중앙처리장치(CPU)(722)와 캐시 부시스템(Cache Subsystem)(726)과 연결된 제 2 중앙처리장치(724)를 가진다. 보조 처리 시스템(720)의 실시예에서, 프로세서(722)는 ARM7 마이크로 프로세서이고, 프로세서(724)는 벡터 보조 프로세서이다.
캐시 부시스템(726)은 제 1 공유 버스(728), 제 2 공유 버스(730), 및 트랜잭션 ID 버스(732)와 연결된다. 공유 버스(728)은 I/O 제어기(734)와 범용 동기 송수신 장치(UART : Universal Asynchronous Receiver/Transmitter)(736)과 같은 저속도 장치에 사용된다. 공유 버스(730)은 메모리 제어기(738), DMA 제어기(740), 및 PCI 인터페이스(742)와 같은 고속도 장치에 사용된다.
공유 버스(730)는 상술한 바와 같이 수신지 ID 캐시 중재 시스템을 사용한다. 캐시 부시스템(726), 메모리 제어기(738), DMA 제어기(740), 및 PCI 인터페이스(742)는 모두 버스 장치 들이다. 상기 버스 장치 들과 연결된 버스 중재기(750)는 상술한 바와 같이 버스 중재를 수행한다. 또한 버스 장치는 상술한 바와 같이 트랜잭션 요구에 꼬리표를 붙이기 위하여 트랜잭션 ID 버스(732)를 사용한다.
여러 버스 장치 들의 특유한 실시예 들은 본 발명과 관계가 없다. 그러나, DMA 제어기에 대한 더욱 상세한 설명은, 변호사 명부 번호 M-4413 로써 동시 출원된 미국 출원 번호 _ 인 Amjad Z. Qureshi 등의 “ 각 DMA 채널에 대한 사이즈 데이터를 수신하는 DMA 제어기(DMA CONTROLLER WHICH RECEIVES SIZE DATA FOR EACH DMA CHANNEL) ” 와, 변호사 명부 번호 M-4400 로써 동시 출원된 미국 출원 번호 _ 인 Kab Ju Moon 등의“ DMA 제어기의 판독 및 기록 버퍼를 통한 동시 데이터 전송(SIMULTANEOUS DATA TRANSFER THROUGH READ AND WRITE BUFFERS OF A DNA CONTROLLER) ” 와, 변호사 명부 번호 M-4403 로써 동시 출원된 미국 출원 번호 _ 인 Kab Ju Moon 등의 “ 채널 태깅을 가진 DMA 제어기(DMA CONTROLLER WITH TAGGING) ”를 참조하기 바란다. 위에서 일람된 세 출원서의 내용은 그 전반을 참조하여 본 발명에 인용된다.
PCI 제어기에 대한 더욱 상세한 설명에 대하여, 예를 들면, 변호사 명부 번호 M-4404 로써 동시 출원된 미국 출원 번호 _ 인 Kevin Chiang 등의 “ PCI 인터페이스 동기화(PCI INTERFACE SYNCHRONIZATION) ”는 본 발명에 그 전반을 참조로 인용된다.
케시 제어기에 대한 더욱 상세한 설명에 대하여, 예를 들면, 미국 출원 번호 08/697,102 인 Le Trong Nguyen 의 “ 멀티미디어 신호 처리 장치의 다중 처리기 동작(MULTIPROCESSOR OPERATION IN A MULTIMEDIA SIGNAL PROCESSOR) ”는 본 발명에 그 전반을 참조로 인용된다.
본 발명의 구조에 관한 여러 실시예 들은 단지 본 발명의 원칙만을 예시한 것이며, 특정 실시예를 기재한 것에 의하여 본 발명의 권리 범위를 제한하는 것은 아니다.
본 발명의 상세한 설명의 견지에서 보면, 당업자는 버스, 트랜잭션 ID 생성기, 제어 버스, 래치, FIFO, 버스 장치, 버스 중재기, 제어 라인 들의 다른 수단을 본 발명의 범위 내에서 한정할 수 있고, 이 들의 선택적 특징 들을 낮은 대기 시간의 공유 버스 시스템을 창작하기 위하여 사용할 수 있다.
본 발명의 원칙에 따르면, 공유 버스 구조는 버스 슬래이브의 선택에 의하여 야기되는 대기 시간을 제거한다. 더욱이, 특정 트랜잭션 신분(ID) 방법과 회로는 값 비싼 칩이나 보드 영역을 소모함이 없이 공유 버스 상에 우송 판독 프로토콜을 향상시키도록 개시된다.
본 발명을 특정의 바람직한 실시예에 관련하여 도시하고 설명하였지만, 본 발명이 그에 한정되는 것은 아니고 이하의 특허청구의 범위에 의해 마련되는 본 발명의 정신이나 분야를 이탈하지 않는 한도내에서 본 발명이 다양하게 개조 및 변화될 수 있다는 것을 당 업계에서 통상의 지식을 가진 자는 용이하게 알 수 있다.

Claims (25)

  1. 공유 버스와, 상기 공유 버스와 연결된 복수의 버스 장치 들과, 버스 중재기로를 포함하는 버스 통신 시스템에 있어서,
    상기 버스 중재기는 상기 버스 장치 들로부터 복수의 요구 신호 들을 받도록 연결되고, 상기 복수의 버스 장치 들로부터 선택한 승인 신호를 상기 공유 버스에 대한 버스 마스터로서 작용하는 제 1 버스 장치에 제공하도록 연결된 중재 유니트와,
    상기 버스 장치 들로부터 장치 ID 신호 들을 받도록 연결되고, 장치 선택 신호를 상기 버스 장치 들에 제공하도록 연결된 선택 회로를 구비하고,
    상기 선택 회로는 상기 복수의 버스 장치 들로부터 선택한 장치 선택 신호를 상기 공유 버스 상에 버스 슬래이브로서 작용하는 제 2 버스 장치에 주장하는 것을 특징으로 하는 버스 통신 시스템.
  2. 제 1 항에 있어서,
    상기 선택 회로는 상기 제 1 버스 장치로부터 장치 ID 신호에 대응하는 상기 제 2 버스 장치를 선택하는 것을 특징으로 하는 버스 통신 시스템.
  3. 제 1 항에 있어서,
    상기 제 1 버스 장치는 제 1 버스 요구 신호와 복수의 제 1 장치 ID 신호 들을 동시에 구동하는 것을 특징으로 하는 버스 통신 시스템.
  4. 제 1 항에 있어서,
    상기 버스 중재기는 승인 신호와 장치 선택 신호를 동시에 제공하는 것을 특징으로 하는 버스 통신 시스템.
  5. 제 1 항에 있어서,
    상기 공유 버스는 어드레스 버스, 데이터 버스, 및 제어 버스를 포함하는 것을 특징으로 하는 버스 통신 시스템.
  6. 제 1 항에 있어서,
    상기 버스 장치 들은 연결되는 트랜잭션 ID 버스를 더 포함하는 것을 특징으로 하는 버스 통신 시스템.
  7. 제 6 항에 있어서,
    상기 제 1 버스 장치는 상기 트랜잭션 ID 버스 상에 트랜잭션 ID 를 생성하도록 연결된 카운터를 포함하는 것을 특징으로 하는 버스 통신 시스템.
  8. 제 6 항에 있어서,
    상기 제 2 버스 장치는 상기 트랜잭션 ID 버스 상에 트랜잭션 ID를 저장하도록 연결된 ID 래치를 포함하는 것을 특징으로 하는 버스 통신 시스템.
  9. 복수의 버스 장치 들과 연결된 공유 버스에 대한 버스 중재 방법에 있어서,
    상기 버스 장치들 중 제 1 버스 장치에 의하여 상기 공유 버스의 사용을 요구하고,
    상기 제 1 버스 장치에 의하여 버스 중재기로 제 2 버스 장치에 대응하는 수신지 ID 값을 구동하고,
    상기 버스 중재기에 의하여 제 1 버스 장치로 상기 공유 버스의 사용을 승인하고,
    상기 버스 중재기에 의하여 상기 제 2 버스 장치를 버스 슬래이브로서 선택하는 것을 포함하는 것을 특징으로 하는 버스 중재 방법.
  10. 제 9 항에 있어서,
    상기 제 1 버스 장치에 의하여 요구하고, 상기 제 1 버스 장치에 의하여 구동하는 것이 동시에 일어나는 것을 특징으로 하는 버스 중재 방법.
  11. 제 9 항에 있어서,
    상기 버스 중재기에 의하여 승인하고, 상기 버스 중재기에 의하여 선택하는 것이 동시에 일어나는 것을 특징으로 하는 버스 중재 방법.
  12. 제 1 버스 장치와,
    제 2 버스 장치와,
    상기 제 1 버스 장치에서 상기 제 2 버스 장치로 연결하는 어드레스 및 데이터를 전송하기 위한 공유 버스와,
    상기 제 1 버스 장치에서 상기 제 2 버스 장치로 연결하는 트랜잭션 ID 값을 전송하기 위한 트랜잭션 ID 버스를 포함하는 것을 특징으로 하는 버스 통신 시스템.
  13. 제 12 항에 있어서,
    상기 제 1 버스 장치는 적어도 상기 트랜잭션 ID 버스에 의하여 이송되는 일부의 트랜잭션 ID 값과 같이 계산값을 제공하도록 연결된 카운터를 더 포함하는 것을 특징으로 하는 버스 통신 시스템.
  14. 제 13 항에 있어서,
    상기 제 1 버스 장치는 상기 트랜잭션 ID 버스와 연결된 비교기와,
    상기 계산기와 연결된 기록 포트와 상기 비교기와 연결된 판독 포트를 가지는 기억 장치 소자를 더 포함하는 것을 특징으로 하는 버스 통신 시스템.
  15. 제 12 항에 있어서,
    상기 제 2 버스 장치는 상기 트랜잭션 ID 버스로부터 트랜잭션 ID 값을 래치및 저장하도록 연결된 래치를 더 포함하는 것을 특징으로 하는 버스 통신 시스템.
  16. 제 15 항에 있어서,
    상기 제 2 버스 장치는 상기 래치와 연결된 디코더를 더 포함하는 것을 특징으로 하는 버스 통신 시스템.
  17. 제 12 항에 있어서,
    상기 제 2 버스 장치는 상기 트랜잭션 ID 버스로부터 트랜잭션 ID 값을 저장하도록 연결된 FIFO 를 더 포함하는 것을 특징으로 하는 버스 통신 시스템.
  18. 제 17 항에 있어서,
    상기 제 2 버스 장치는 상기 FIFO 와 연결된 디코더를 더 포함하는 것을 특징으로 하는 버스 통신 시스템.
  19. 제 11 항에 있어서,
    상기 제 1 버스 장치는 판독 요구를 할 동안에 상기 트랜잭션 ID 버스 상에서 상기 제 2 버스 장치로 제 1 트랜잭션 ID 값을 구동하는 것을 특징으로 하는 버스 통신 시스템.
  20. 제 19 항에 있어서,
    상기 제 2 버스 장치는 상기 판독 요구에 응답할 동안에 상기 트랜잭션 ID 상에서 상기 제 1 버스 장치로 제 1 트랜잭션 ID 값을 구동하는 것을 특징으로 하는 버스 통신 시스템.
  21. 제 19 항에 있어서,
    상기 제 1 버스 트랜잭션 ID 값은 요구자 ID 값 및 요구 트랜잭션 ID 값을 포함하는 것을 특징으로 하는 버스 통신 시스템.
  22. 제 19 항에 있어서,
    상기 요구자 ID 값은 상기 제 1 버스 장치와 대응하는 것을 특징으로 하는 버스 통신 시스템.
  23. 제 1 버스와 연결된 제 1 버스 장치에 의하여 상기 제 1 버스와 연결된 제 2 버스 장치에 정보를 요구하고,
    상기 제 1 버스 장치에 의하여 제 2 버스 상에서 트랜잭션 ID 값을 구동하고,
    상기 제 2 버스 장치에 의하여 상기 제 1 버스 상에서 상기 제 1 버스장치로 전송되는 상기 정보와 함께 응답하고,
    상기 제 2 버스 장치에 의하여 상기 제 2 버스 상에서 상기 트랜잭션 ID 값을 구동하는 것을 포함하는 것을 특징으로 하는 제 1 버스 상의 정보 전송 방법.
  24. 제 23 항에 있어서,
    상기 버스 트랜잭션 ID 값은 상기 제 1 버스 장치와 동일한 요구자 값을 포함하는 것을 특징으로 하는 제 1 버스 상의 정보 전송 방법.
  25. 제 23 항에 있어서,
    상기 제 1 버스 장치에 의하여 정보를 요구하고, 구동하는 것은 동시에 일어나는 것을 특징으로 하는 제 1 버스 상의 정보 전송 방법.
KR1019970022664A 1996-10-18 1997-06-02 트랜잭션 및 수신지 id를 가진 공유 버스 시스템 KR100245818B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8/731,393 1996-10-18
US08/731,393 US6173349B1 (en) 1996-10-18 1996-10-18 Shared bus system with transaction and destination ID

Publications (2)

Publication Number Publication Date
KR19980032140A true KR19980032140A (ko) 1998-07-25
KR100245818B1 KR100245818B1 (ko) 2000-03-02

Family

ID=24939301

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970022664A KR100245818B1 (ko) 1996-10-18 1997-06-02 트랜잭션 및 수신지 id를 가진 공유 버스 시스템

Country Status (4)

Country Link
US (1) US6173349B1 (ko)
JP (1) JP4008987B2 (ko)
KR (1) KR100245818B1 (ko)
TW (1) TW394878B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022211204A1 (ko) * 2021-03-31 2022-10-06 주식회사 럭스로보 모듈 어셈블리 및 그의 멀티 마스터 통신방법

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6311245B1 (en) * 1998-06-05 2001-10-30 Micron Technology, Inc. Method for time multiplexing a low-speed and a high-speed bus over shared signal lines of a physical bus
US6425041B1 (en) 1998-06-05 2002-07-23 Micron Technology, Inc. Time-multiplexed multi-speed bus
US6535520B1 (en) * 1998-08-14 2003-03-18 Cisco Technology, Inc. System and method of operation for managing data communication between physical layer devices and ATM layer devices
US6732208B1 (en) * 1999-02-25 2004-05-04 Mips Technologies, Inc. Low latency system bus interface for multi-master processing environments
US6425029B1 (en) * 1999-06-07 2002-07-23 Micron Technology, Inc. Apparatus for configuring bus architecture through software control
US6401151B1 (en) * 1999-06-07 2002-06-04 Micron Technology, Inc. Method for configuring bus architecture through software control
US6457078B1 (en) * 1999-06-17 2002-09-24 Advanced Micro Devices, Inc. Multi-purpose bi-directional control bus for carrying tokens between initiator devices and target devices
US6493776B1 (en) * 1999-08-12 2002-12-10 Mips Technologies, Inc. Scalable on-chip system bus
US6490642B1 (en) 1999-08-12 2002-12-03 Mips Technologies, Inc. Locked read/write on separate address/data bus using write barrier
US6604159B1 (en) 1999-08-12 2003-08-05 Mips Technologies, Inc. Data release to reduce latency in on-chip system bus
US6681283B1 (en) 1999-08-12 2004-01-20 Mips Technologies, Inc. Coherent data apparatus for an on-chip split transaction system bus
JP2001092776A (ja) * 1999-09-20 2001-04-06 Toshiba Corp 情報処理システム
US6678803B2 (en) * 1999-11-03 2004-01-13 Micron Technology, Inc. Method and device to use memory access request tags
US6721835B1 (en) * 2000-09-19 2004-04-13 Intel Corporation Method and apparatus for minimizing bus contention for I/O controller read operations
WO2002027693A2 (en) * 2000-09-28 2002-04-04 Scientific Learning Corporation Method and apparatus for automated training of language learning skills
US6816932B2 (en) * 2000-10-06 2004-11-09 Broadcom Corporation Bus precharge during a phase of a clock signal to eliminate idle clock cycle
US6957290B1 (en) 2000-10-06 2005-10-18 Broadcom Corporation Fast arbitration scheme for a bus
US7076586B1 (en) * 2000-10-06 2006-07-11 Broadcom Corporation Default bus grant to a bus agent
US6678767B1 (en) * 2000-10-06 2004-01-13 Broadcom Corp Bus sampling on one edge of a clock signal and driving on another edge
KR20020058331A (ko) * 2000-12-29 2002-07-12 엘지전자 주식회사 메시지 전송 시스템에서의 폭주 제어 방법
US20040010652A1 (en) * 2001-06-26 2004-01-15 Palmchip Corporation System-on-chip (SOC) architecture with arbitrary pipeline depth
US7216204B2 (en) * 2001-08-27 2007-05-08 Intel Corporation Mechanism for providing early coherency detection to enable high performance memory updates in a latency sensitive multithreaded environment
US6868476B2 (en) * 2001-08-27 2005-03-15 Intel Corporation Software controlled content addressable memory in a general purpose execution datapath
US7487505B2 (en) * 2001-08-27 2009-02-03 Intel Corporation Multithreaded microprocessor with register allocation based on number of active threads
US7225281B2 (en) * 2001-08-27 2007-05-29 Intel Corporation Multiprocessor infrastructure for providing flexible bandwidth allocation via multiple instantiations of separate data buses, control buses and support mechanisms
US7145903B2 (en) * 2001-09-06 2006-12-05 Meshnetworks, Inc. Multi-master bus architecture for system-on-chip designs
US7610451B2 (en) * 2002-01-25 2009-10-27 Intel Corporation Data transfer mechanism using unidirectional pull bus and push bus
US7337275B2 (en) * 2002-08-13 2008-02-26 Intel Corporation Free list and ring data structure management
US7206878B2 (en) * 2003-01-08 2007-04-17 International Business Machines Corporation Voltage level bus protocol for transferring data
US6996654B2 (en) * 2003-05-09 2006-02-07 Hewlett-Packard Development Company, L.P. Systems and methods for generating multiple transaction identifiers to reduced latency in computer architecture
US7213099B2 (en) * 2003-12-30 2007-05-01 Intel Corporation Method and apparatus utilizing non-uniformly distributed DRAM configurations and to detect in-range memory address matches
US7296109B1 (en) * 2004-01-29 2007-11-13 Integrated Device Technology, Inc. Buffer bypass circuit for reducing latency in information transfers to a bus
US7143220B2 (en) 2004-03-10 2006-11-28 Intel Corporation Apparatus and method for granting concurrent ownership to support heterogeneous agents in on-chip busses having different grant-to-valid latencies
US7487327B1 (en) 2005-06-01 2009-02-03 Sun Microsystems, Inc. Processor and method for device-specific memory address translation
US7533191B2 (en) * 2006-06-30 2009-05-12 Intel Corporation Methods and arrangements for devices to share a common address on a bus
US8127309B1 (en) 2006-11-10 2012-02-28 Marvell International Ltd. Secure digital input/output interface system
JP2009026136A (ja) * 2007-07-20 2009-02-05 Nec Electronics Corp マルチプロセッサ装置
KR101355626B1 (ko) * 2007-07-20 2014-01-27 삼성전자주식회사 네트워크 제어 장치
JP2009026135A (ja) * 2007-07-20 2009-02-05 Nec Electronics Corp マルチプロセッサ装置
TW201001289A (en) * 2008-06-27 2010-01-01 Silicon Motion Inc Embedded system and hardware setting method
JP5382003B2 (ja) * 2009-02-02 2014-01-08 富士通株式会社 調停装置
DE102010039782A1 (de) * 2010-08-26 2012-03-01 Robert Bosch Gmbh Verfahren zur Durchführung einer Kommunikation
US9635093B2 (en) * 2012-11-28 2017-04-25 Sap Ag Slave side transaction ID buffering for efficient distributed transaction management
US20140164659A1 (en) * 2012-12-06 2014-06-12 Wasim Quddus Regulating access to slave devices
US9940614B2 (en) * 2013-04-11 2018-04-10 Mx Technologies, Inc. Syncing two separate authentication channels to the same account or data using a token or the like
US10592441B2 (en) 2017-05-10 2020-03-17 Qualcomm Incorporated Bus communication enhancement based on identification capture during bus arbitration
CN117891771B (zh) * 2024-03-14 2024-05-28 艾德克斯电子(南京)有限公司 一种多模组数据交互设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5265257A (en) * 1990-06-22 1993-11-23 Digital Equipment Corporation Fast arbiter having easy scaling for large numbers of requesters, large numbers of resource types with multiple instances of each type, and selectable queuing disciplines
JP3411300B2 (ja) * 1992-02-18 2003-05-26 株式会社日立製作所 情報処理装置
EP0559409B1 (en) * 1992-03-04 1998-07-22 Motorola, Inc. A method and apparatus for performing a bus arbitration protocol in a data processing system
US5574849A (en) * 1992-12-17 1996-11-12 Tandem Computers Incorporated Synchronized data transmission between elements of a processing system
JPH06231074A (ja) * 1993-01-29 1994-08-19 Nec Corp システムバスの多重アクセス方式
US5574868A (en) * 1993-05-14 1996-11-12 Intel Corporation Bus grant prediction technique for a split transaction bus in a multiprocessor computer system
US5475850A (en) * 1993-06-21 1995-12-12 Intel Corporation Multistate microprocessor bus arbitration signals
US5615343A (en) * 1993-06-30 1997-03-25 Intel Corporation Method and apparatus for performing deferred transactions
US5613075A (en) * 1993-11-12 1997-03-18 Intel Corporation Method and apparatus for providing deterministic read access to main memory in a computer system
US5533204A (en) * 1994-04-18 1996-07-02 Compaq Computer Corporation Split transaction protocol for the peripheral component interconnect bus
US5546546A (en) * 1994-05-20 1996-08-13 Intel Corporation Method and apparatus for maintaining transaction ordering and arbitrating in a bus bridge
EP0695999A3 (en) * 1994-06-30 1998-07-08 Digital Equipment Corporation System bus with separate address and data bus protocols
US5535363A (en) * 1994-07-12 1996-07-09 Intel Corporation Method and apparatus for skipping a snoop phase in sequential accesses by a processor in a shared multiprocessor memory system
US5802055A (en) * 1996-04-22 1998-09-01 Apple Computer, Inc. Method and apparatus for dynamic buffer allocation in a bus bridge for pipelined reads
US5925120A (en) * 1996-06-18 1999-07-20 Hewlett-Packard Company Self-contained high speed repeater/lun converter which controls all SCSI operations between the host SCSI bus and local SCSI bus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022211204A1 (ko) * 2021-03-31 2022-10-06 주식회사 럭스로보 모듈 어셈블리 및 그의 멀티 마스터 통신방법
KR20220135775A (ko) * 2021-03-31 2022-10-07 주식회사 럭스로보 모듈 어셈블리 및 그의 멀티 마스터 통신방법

Also Published As

Publication number Publication date
JP4008987B2 (ja) 2007-11-14
KR100245818B1 (ko) 2000-03-02
TW394878B (en) 2000-06-21
US6173349B1 (en) 2001-01-09
JPH10177545A (ja) 1998-06-30

Similar Documents

Publication Publication Date Title
KR100245818B1 (ko) 트랜잭션 및 수신지 id를 가진 공유 버스 시스템
US5528764A (en) Bus system with cache snooping signals having a turnaround time between agents driving the bus for keeping the bus from floating for an extended period
US5848279A (en) Mechanism for delivering interrupt messages
US6581124B1 (en) High performance internal bus for promoting design reuse in north bridge chips
US6405271B1 (en) Data flow control mechanism for a bus supporting two-and three-agent transactions
US5327570A (en) Multiprocessor system having local write cache within each data processor node
US5392407A (en) Multi-port processor with peripheral component interconnect port and rambus port
US6336159B1 (en) Method and apparatus for transferring data in source-synchronous protocol and transferring signals in common clock protocol in multiple agent processing system
US4864496A (en) Bus adapter module for interconnecting busses in a multibus computer system
KR100306636B1 (ko) Pci-isa인터럽트프로토콜컨버터및선택메카니즘
US5588122A (en) Universal buffered interface for coupling multiple processors memory units, and I/O interfaces to a common high-speed interconnect
US5919254A (en) Method and apparatus for switching between source-synchronous and common clock data transfer modes in a multiple processing system
US6094700A (en) Serial bus system for sending multiple frames of unique data
US5430847A (en) Method and system for extending system buses to external devices
US5218690A (en) Vme-multibus ii interface adapter for protocol conversion and for monitoring and discriminating accesses on the multibus ii system bus
US5507002A (en) Peripheral component interconnect special cycle protocol using soft message IDS
EP2062147B1 (en) Method and apparatus for conditional broadcast of barrier operations
US5426737A (en) Direct memory access for data transfer within an I/O device
US6766386B2 (en) Method and interface for improved efficiency in performing bus-to-bus read data transfers
US20040139267A1 (en) Accessing a primary bus messaging unit from a secondary bus through a pci bridge
US7096290B2 (en) On-chip high speed data interface
US6052754A (en) Centrally controlled interface scheme for promoting design reusable circuit blocks
JP3377797B2 (ja) 複数のデータ処理エージェントの間でデータを転送するバスにおいて、第1のエージェントがサービスの必要を第2のエージェントへ知らせる方法
US6934789B2 (en) Interface, structure and method for transmitting data of PCI bus which uses bus request signal for judging whether a device supporting dual transmission mode
US6377581B1 (en) Optimized CPU-memory high bandwidth multibus structure simultaneously supporting design reusable blocks

Legal Events

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

Payment date: 20121130

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20131129

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee