KR100873010B1 - 논블록킹 마스터, 버스 중재장치, 버스 시스템, 및 버스중재 방법 - Google Patents

논블록킹 마스터, 버스 중재장치, 버스 시스템, 및 버스중재 방법 Download PDF

Info

Publication number
KR100873010B1
KR100873010B1 KR1020070047921A KR20070047921A KR100873010B1 KR 100873010 B1 KR100873010 B1 KR 100873010B1 KR 1020070047921 A KR1020070047921 A KR 1020070047921A KR 20070047921 A KR20070047921 A KR 20070047921A KR 100873010 B1 KR100873010 B1 KR 100873010B1
Authority
KR
South Korea
Prior art keywords
bus
transaction
occupancy
signal
slave
Prior art date
Application number
KR1020070047921A
Other languages
English (en)
Other versions
KR20080101318A (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 한국과학기술원
Priority to KR1020070047921A priority Critical patent/KR100873010B1/ko
Publication of KR20080101318A publication Critical patent/KR20080101318A/ko
Application granted granted Critical
Publication of KR100873010B1 publication Critical patent/KR100873010B1/ko

Links

Images

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
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • G06F13/4036Coupling between buses using bus bridges with arbitration and deadlock prevention

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)

Abstract

슬레이브에서 예외 상황이 발생하더라도 트랜잭션을 수행할 수 있는 논블록킹 마스터(non-blocking master), 버스 중재장치, 버스 시스템, 및 버스 중재 방법이 개시된다. 논블록킹 마스터는 코어 및 버스 제어부를 포함한다. 코어는 데이터를 기입 또는 독출하는 트랜잭션을 수행하고, 버스 제어부는 버스 중재장치에 버스 점유의 승인을 요청한다. 논블록킹 마스터는 제 1 트랜잭션을 수행하는 도중 슬레이브에서 예외 상황이 발생한 경우 제 1 트랜잭션을 중단하고 제 2 트랜잭션을 수행할 수 있다. 따라서, 논블록킹 마스터, 버스 중재장치, 버스 시스템, 및 버스 중재 방법은 슬레이브에서 예외 상황이 발생하더라도 데이터를 기입 또는 독출하는 트랜잭션을 수행할 수 있다.
Figure R1020070047921
논블록킹 마스터(non-blocking master), 버스 시스템

Description

논블록킹 마스터, 버스 중재장치, 버스 시스템, 및 버스 중재 방법 {NON-BLOCKING MASTER, BUS ARBITRATION DEVICE, BUS SYSTEM AND METHOD OF ARBITRATING A BUS}
도 1은 종래의 버스 시스템을 나타내는 블록도이다.
도 2는 종래의 버스 시스템에서 SPLIT 신호가 발생된 경우 종래의 버스 시스템의 신호들의 파형을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 버스 시스템을 나타내는 블록도이다.
도 4는 도 3의 버스 시스템에서 SPLIT 신호가 발생된 경우 도 3의 버스 시스템의 신호들의 파형을 나타내는 도면이다.
도 5는 본 발명의 일 실시예에 따른 논블록킹 마스터의 상태들을 나타내는 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
510, 520 : 논블록킹 마스터 511, 521 : 코어
512, 522 : 버스 제어부 610, 620 : 슬레이브
710 : 버스 중재장치 711 : 중재기
712 : 먹스회로 713 : 디코더
810 : 버스
본 발명은 버스 시스템에 관한 것으로, 더욱 상세하게는 슬레이브에서 예외 상황이 발생하더라도 데이터를 기입 또는 독출하는 트랜잭션을 수행할 수 있는 논블록킹 마스터(non-blocking master), 버스 중재장치, 버스 시스템, 및 버스 중재 방법에 관한 것이다.
최근 제조 원가를 낮추고, 전력 소모를 줄이며, 동작 속도를 높이기 위해 서로 다른 기능을 하는 수많은 복수의 칩(Chip)들을 하나의 칩 상에 집적하는 시스템 온 칩(SOC: System On Chip)의 사용이 보편화되고 있다. 이에 따라 시스템을 하나의 칩으로 집적할 경우 전체 데이터 처리율을 높일 수 있는 버스 구조에 대한 연구가 활발히 진행되고 있다.
도 1은 종래의 버스 시스템을 나타내는 블록도이다.
도 1을 참조하면, 종래의 버스 시스템은 마스터들(101, 103, 105), 슬레이브들(111, 113, 115), 버스 중재장치(121), 및 버스(131)를 포함한다.
마스터들(111, 113, 115)은 슬레이브에 데이터를 기입(write)하거나 독출(read)하기 위해 버스 중재장치(121)에 버스 점유를 요청(request)한다. 버스 중재장치(121)는 마스터들(111, 113, 115)의 버스 점유 요청에 대해 현재 버스를 사용하고 있는 마스터의 존재 유무와 사전에 정의된 마스터들(111, 113, 115)의 우선권(priority)을 고려하여 특정한 마스터에 버스 점유를 허용(grant)한다. 버스 점 유를 허용 받은 마스터는 해당 슬레이브에 데이터를 기입하거나 해당 슬레이브로부터 데이터를 독출한다. 한편, 버스 점유를 허용 받은 마스터가 상기 슬레이브에 데이터를 전송하는 도중 상기 슬레이브에 예외 상황 등이 발생하면 상기 슬레이브는 버스 중재장치(121)에 SPLIT 신호를 전송한다. 버스 중재장치(121)가 SPLIT 신호를 수신하면 상기 마스터에 버스 점유 불가 신호를 송신하고, 상기 마스터는 상기 슬레이브가 SPLITCOMPLETE 신호를 전송할 때까지 대기한다. 따라서, SPLIT 신호가 발생되면 SPLITCOMPLETE 신호가 전송될 때까지 마스터는 고착상태에 있고, 종래의 버스 시스템의 버스 전송량은 줄어들게 된다.
도 2는 종래의 버스 시스템에서 SPLIT 신호가 발생된 경우 종래의 버스 시스템의 신호들의 파형을 나타내는 도면이다.
도 2를 참조하면, 마스터가 슬레이브에 데이터 또는 어드레스를 기입하거나 독출하는 트랜잭션(transaction) 도중 슬레이브가 SPLIT 신호를 전송(202)하면 상기 트랜잭션이 중단된다. 상기 트랜잭션이 중단되면, 마스터는 버스 중재장치에 상기 중단된 트랜잭션에 대한 버스 점유를 요청(204)한다. 상기 버스 점유 요청은 버스 중재장치로부터 버스 점유 허용 신호(207)를 수신할 때까지 지속된다. 슬레이브가 버스 중재장치에 중단된 트랜잭션을 재개할 수 있다는 SPLITCOMPLETE 신호를 전송(206)하면, 버스 중재장치는 마스터에 버스 점유 허용 신호(207)를 전송한다. 버스 점유 허용 신호(207)를 수신한 마스터는 중단된 트랜잭션을 재개(208)한다.
이와 같이 종래의 버스 시스템에서는 슬레이브에서 예외 상황이 발생하여 슬레이브가 SPLIT 신호를 전송하는 경우 마스터가 중단된 트랜잭션을 재개할 때까지 다른 동작을 수행하지 못하는 고착 상태에 놓이게 되고, 이에 따라 시스템의 버스 전송량은 줄어들며 전제 시스템의 처리 속도가 느려지는 문제가 있다.
따라서, 슬레이브에서 SPLIT 신호가 발생된 경우에도 마스터의 데이터 처리가 중단되지 않는 버스 시스템이 요구된다.
본 발명의 일 목적은 슬레이브에서 예외 상황이 발생하더라도 데이터를 기입 또는 독출하는 트랜잭션을 수행할 수 있는 논블록킹 마스터(non-blocking master), 버스 중재장치, 버스 시스템, 및 버스 중재 방법을 제공하는데 있다.
본 발명의 다른 목적은 수행 중인 트랜잭션이 중단되더라도 다음 트랜잭션을 수행할 수 있어 시스템의 데이터 처리 속도 및 버스 전송량을 증가시킬 수 있는 논블록킹 마스터, 버스 중재장치, 버스 시스템, 및 버스 중재 방법을 제공하는데 있다.
상기 목적을 달성하기 위해, 본 발명의 일 실시예에 따른 논블록킹 마스터는 코어 및 버스 제어부를 포함한다.
상기 코어는 슬레이브에 데이터 신호를 송신하여 데이터를 기입하는 트랜잭션을 수행하거나 상기 슬레이브로부터 데이터 신호를 수신하여 데이터를 독출하는 트랜잭션을 수행한다. 상기 버스 제어부는 버스 중재장치에 제 1 트랜잭션에 대한 버스 점유의 승인을 요청하고 상기 버스 중재장치로부터 상기 제 1 트랜잭션에 대한 버스 점유의 승인을 받으며, 상기 코어가 상기 제 1 트랜잭션을 수행하는 도중 상기 슬레이브에서 예외 상황이 발생한 경우 상기 버스 중재장치에 제 2 트랜잭션에 대한 버스 점유의 승인을 요청하고, 상기 버스 중재장치로부터 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 받는다. 상기 코어는 상기 슬레이브에 어드레스 신호를 송신하여 상기 데이터를 기입하거나 독출하는 트랜잭션을 수행할 수 있다.
상기 버스 제어부는 상기 버스 중재장치에 제 1 버스 점유 요청 신호 및 제 1 트랜잭션 아이디 신호를 송신하여 상기 제 1 트랜잭션에 대한 버스 점유의 승인을 요청하고, 상기 버스 중재장치로부터 제 1 버스 점유 허용 신호를 수신하여 상기 제 1 트랜잭션에 대한 버스 점유의 승인을 받으며, 상기 코어가 상기 제 1 트랜잭션을 수행하는 도중 상기 슬레이브에서 예외 상황이 발생한 경우 상기 버스 중재장치로부터 버스 점유 불가 신호를 수신하고, 상기 버스 중재장치에 제 2 버스 점유 요청 신호 및 제 2 트랜잭션 아이디 신호를 송신하여 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 요청하고, 상기 버스 중재장치로부터 제 2 버스 점유 허용 신호를 수신하여 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 받을 수 있다. 상기 버스 제어부는 상기 코어로부터 제 1 트랜잭션 요청 신호를 수신하여 상기 버스 중재장치에 상기 제 1 트랜잭션에 대한 버스 점유의 승인을 요청하고, 상기 버스 중재장치로부터 상기 제 1 트랜잭션에 대한 버스 점유의 승인을 받으면 상기 코어에 제 1 트랜잭션 가능 신호를 송신하여 상기 제 1 트랜잭션을 수행하는 것이 가능함을 통지하고, 상기 코어가 상기 제 1 트랜잭션을 수행하는 도중 상기 슬레이브에서 예외 상황이 발생한 경우 상기 코어에 트랜잭션 불가 신호를 송신함으로써 상기 제 1 트랜잭션의 수행을 중단해야 함을 통지하고, 상기 코어로부터 제 2 트랜잭션 요청 신호를 수신하여 상기 버스 중재장치에 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 요청하고, 상기 버스 중재장치로부터 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 받으면 상기 코어에 제 2 트랜잭션 가능 신호를 송신하여 상기 제 2 트랜잭션을 수행하는 것이 가능함을 통지할 수 있다.
본 발명의 일 실시예에 따른 버스 중재장치는 중재기, 먹스회로, 및 디코더를 포함한다.
상기 중재기는 논블록킹 마스터들로부터 버스 점유 요청 신호를 수신하고, 상기 버스 점유 요청 신호에 응답하여 상기 논블록킹 마스터들 중 하나에 버스 점유를 허용하고, 상기 버스 점유가 허용된 논블록킹 마스터의 버스 점유 정보를 생성하고, 상기 버스 점유가 허용된 논블록킹 마스터와 함께 제 1 트랜잭션을 수행하는 슬레이브로부터 SPLIT 신호를 수신하는 경우 상기 버스 점유가 허용된 논블록킹 마스터에 버스 점유 불가 신호를 송신하고 상기 버스 점유가 허용된 논블록킹 마스터로부터 제 2 트랜잭션에 대한 버스 점유의 승인을 요청 받는다. 상기 먹스회로는 상기 버스 점유 정보에 응답하여 상기 논블록킹 마스터들 중 하나를 버스에 연결한다. 상기 디코더는 상기 버스 점유가 허용된 논블록킹 마스터로부터 어드레스 신호를 수신하여 슬레이브들 중 하나를 상기 버스에 연결한다.
본 발명의 일 실시예에 따른 버스 시스템은 복수의 슬레이브들, 복수의 논블록킹 마스터들, 버스 중재장치, 및 버스를 포함한다.
상기 논블록킹 마스터들은 상기 슬레이브들 중에서 선택된 제 1 슬레이브에 데이터를 기입 또는 독출하는 제 1 트랜잭션을 수행하는 도중 상기 제 1 슬레이브 에서 예외 상황이 발생하는 경우 상기 슬레이브들 중에서 선택된 제 2 슬레이브에 데이터를 기입 또는 독출하는 제 2 트랜잭션을 수행한다. 상기 버스 중재장치는 상기 논블록킹 마스터들의 버스 점유를 중재한다. 상기 버스는 상기 슬레이브들, 상기 논블록킹 마스터들, 및 상기 버스 중재장치를 연결한다.
상기 슬레이브들 각각은, 상기 예외 상황이 발생한 경우 상기 버스 중재장치에 SPLIT 신호를 송신할 수 있다.
상기 논블록킹 마스터들 각각은, 상기 슬레이브들에 데이터 신호를 송신하여 데이터를 기입하는 트랜잭션을 수행하거나 상기 슬레이브들로부터 데이터 신호를 수신하여 데이터를 독출하는 트랜잭션을 수행하는 코어, 및 상기 버스 중재장치에 상기 제 1 트랜잭션에 대한 버스 점유의 승인을 요청하고 상기 버스 중재장치로부터 상기 제 1 트랜잭션에 대한 버스 점유의 승인을 받으며, 상기 코어가 상기 제 1 트랜잭션을 수행하는 도중 상기 제 1 슬레이브에서 예외 상황이 발생한 경우 상기 버스 중재장치에 제 2 트랜잭션에 대한 버스 점유의 승인을 요청하고, 상기 버스 중재장치로부터 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 받는 버스 제어부를 포함할 수 있다. 상기 코어는 상기 슬레이브에 어드레스 신호를 더 송신하여 상기 데이터를 기입하거나 독출하는 트랜잭션을 수행할 수 있다.
상기 버스 제어부는 상기 버스 중재장치에 제 1 버스 점유 요청 신호 및 제 1 트랜잭션 아이디 신호를 송신하여 상기 제 1 트랜잭션에 대한 버스 점유의 승인을 요청하고, 상기 버스 중재장치로부터 제 1 버스 점유 허용 신호를 수신하여 상기 제 1 트랜잭션에 대한 버스 점유의 승인을 받으며, 상기 코어가 상기 제 1 트랜 잭션을 수행하는 도중 상기 제 1 슬레이브에서 예외 상황이 발생한 경우 상기 버스 중재장치로부터 버스 점유 불가 신호를 수신하고, 상기 버스 중재장치에 제 2 버스 점유 요청 신호 및 제 2 트랜잭션 아이디 신호를 송신하여 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 요청하고, 상기 버스 중재장치로부터 제 2 버스 점유 허용 신호를 수신하여 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 받을 수 있다. 상기 버스 제어부는 상기 코어로부터 제 1 트랜잭션 요청 신호를 수신하여 상기 버스 중재장치에 상기 제 1 트랜잭션에 대한 버스 점유의 승인을 요청하고, 상기 버스 중재장치로부터 상기 제 1 트랜잭션에 대한 버스 점유의 승인을 받으면 상기 코어에 제 1 트랜잭션 가능 신호를 송신하여 상기 제 1 트랜잭션을 수행하는 것이 가능함을 통지하고, 상기 코어가 상기 제 1 트랜잭션을 수행하는 도중 상기 제 1 슬레이브에서 예외 상황이 발생한 경우 상기 코어에 트랜잭션 불가 신호를 송신함으로써 상기 제 1 트랜잭션을 중단해야 함을 통지하고, 상기 코어로부터 제 2 트랜잭션 요청 신호를 수신하여 상기 버스 중재장치에 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 요청하고, 상기 버스 중재장치로부터 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 받으면 상기 코어에 제 2 트랜잭션 가능 신호를 송신하여 상기 제 2 트랜잭션을 수행하는 것이 가능함을 통지할 수 있다.
상기 버스 중재장치는, 상기 논블록킹 마스터들로부터 버스 점유 요청 신호를 수신하고, 상기 버스 점유 요청 신호에 응답하여 상기 논블록킹 마스터들 중 하나에 버스 점유를 허용하고, 상기 버스 점유가 허용된 논블록킹 마스터의 버스 점유 정보를 생성하는 중재기, 상기 버스 점유 정보에 응답하여 상기 논블록킹 마스 터들 중 하나를 상기 버스에 연결하는 먹스회로, 및 상기 버스 점유가 허용된 논블록킹 마스터로부터 어드레스 신호를 수신하여 상기 슬레이브들 중 하나를 상기 버스에 연결하는 디코더를 포함할 수 있다.
본 발명의 일 실시예에 따른 버스 중재 방법은, 논블록킹 마스터들이 버스 중재장치에 버스 점유의 승인을 요청하는 단계, 상기 버스 중재장치가 상기 논블록킹 마스터들 중 하나에 버스 점유를 허용하는 단계, 상기 버스 점유가 허용된 논블록킹 마스터가 슬레이브에 데이터를 기입 또는 독출하는 제 1 트랜잭션을 수행하는 단계, 및 상기 제 1 트랜잭션이 수행되는 도중 상기 슬레이브에서 예외 상황이 발생하는 경우 상기 버스 점유가 허용된 논블록킹 마스터가 제 2 트랜잭션에 대한 버스 점유의 승인을 요청하는 단계를 포함한다.
상기 제 2 트랜잭션에 대한 버스 점유의 승인을 요청하는 단계는, 상기 슬레이브에서 예외 상황이 발생하여 상기 슬레이브가 상기 버스 중재장치에 SPLIT 신호를 송신하는 단계, 상기 버스 중재장치가 상기 SPLIT 신호를 수신하여 상기 버스 점유가 허용된 논블록킹 마스터에 버스 점유 불가 신호를 송신하는 단계, 상기 버스 점유가 허용된 논블록킹 마스터가 상기 버스 점유 불가 신호를 수신하여 상기 제 1 트랜잭션의 수행을 중단하는 단계, 및 상기 버스 점유가 허용된 논블록킹 마스터가 상기 버스 중재장치에 버스 점유 요청 신호 및 트랜잭션 아이디 신호를 송신하여 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 요청하는 단계를 포함할 수 있다.
따라서 본 발명의 일 실시예에 따른 논블록킹 마스터는 슬레이브에서 예외 상황이 발생하더라도 데이터를 기입 또는 독출하는 트랜잭션을 수행할 수 있다.
본문에 개시되어 있는 본 발명의 실시예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시예들에 한정되는 것으로 해석되어서는 아니 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이 해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 3은 본 발명의 일 실시예에 따른 버스 시스템을 나타내는 블록도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 버스 시스템은 논블록킹 마스터들(510, 520), 슬레이브들(610, 620), 버스 중재장치(710), 및 버스(810)를 포함한다. 제 1 논블록킹 마스터(510)는 제 1 코어(511) 및 제 1 버스 제어부(512)를 포함하고, 제 2 논블록킹 마스터(520)는 제 2 코어(521) 및 제 2 버스 제어부(522)를 포함한다. 버스 중재장치(710)는 중재기(711), 먹스회로(712), 및 디코더(713)를 포함한다.
도 3의 예에서는 2개의 논블록킹 마스터들(510, 520)을 포함하는 버스 시스템이 도시되어 있으나, 실시예에 따라 버스 시스템에 포함되는 논블록킹 마스터들의 개수는 가변적이다. 또한, 실시예에 따라 버스 시스템에 포함되는 슬레이브들의 개수도 가변적이다. 논블록킹 마스터들(510, 520) 각각은 슬레이브(610, 620)에 데이터 신호(DATA)를 송신하여 데이터를 기입하는 트랜잭션을 수행하거나 슬레이브(610, 620)로부터 데이터 신호(DATA)를 수신하여 데이터를 독출하는 트랜잭션을 수행하는 코어(511, 521), 및 버스 중재장치(710)에 트랜잭션에 대한 버스(810) 점유의 승인을 요청하고 버스 중재장치(710)로부터 상기 트랜잭션에 대한 버스(810) 점유의 승인을 받는 버스 제어부(512, 522)를 포함한다. 코어들(511, 521)은 데이터 신호(DATA)와 함께 어드레스 신호(ADDR)를 더 송신하여 상기 데이터를 기입하거나 독출하는 트랜잭션을 수행할 수 있다.
이하에는 제 1 논블록킹 마스터(510)가 제 1 트랜잭션을 수행하는 도중 상기 제 1 트랜잭션을 제 1 논블록킹 마스터(510)와 함께 수행하는 제 1 슬레이브(610)에서 예외 상황이 발생한 경우의 예를 들어 논블록킹 마스터들(510, 520)의 동작을 설명한다. 제 1 슬레이브(610)에 데이터 신호(DATA)를 송신하여 데이터를 기입하거나 또는 제 1 슬레이브(610)로부터 데이터 신호(DATA)를 수신하여 데이터를 독출하는 제 1 트랜잭션을 수행하기 위해 제 1 코어(511)는 제 1 버스 제어부(512)에 제 1 트랜잭션 요청 신호(TRANS REQ)를 송신한다. 제 1 트랜잭션 요청 신호(TRANS REQ)를 수신한 제 1 버스 제어부(512)는 버스 중재장치(710)에 제 1 버스 점유 요청 신호(REQ) 및 상기 제 1 트랜잭션에 대한 트랜잭션 아이디를 포함하는 제 1 트랜잭션 아이디 신호(TRANSID)를 송신하여 상기 제 1 트랜잭션에 대한 버스(810) 점유의 승인을 요청한다. 버스 중재장치(710)는 현재 버스(810)를 점유하는 논블록킹 마스터의 존재 유무와 사전에 정의된 논블록킹 마스터들(510, 520)의 우선순위(priority) 등을 고려하여 특정한 논블록킹 마스터에 버스(810) 점유를 허용(grant)한다. 버스 중재장치(710)가 제 1 논블록킹 마스터(510)의 버스(810) 점유를 허용하면, 제 1 버스 제어부(512)는 버스 중재장치(710)로부터 제 1 버스 점유 허용 신호(GRANT)를 수신하여 상기 제 1 트랜잭션에 대한 버스(810) 점유의 승인을 받는다. 상기 제 1 트랜잭션에 대한 버스(810) 점유의 승인을 받은 제 1 버스 제어부(512)는 제 1 코어(511)에 제 1 트랜잭션 가능 신호(TRANS GRANT)를 송신하여 상기 제 1 트랜잭션을 수행하는 것이 가능함을 통지하고, 제 1 트랜잭션 가능 신호(TRANS GRANT)를 수신한 제 1 코어(511)는 상기 제 1 트랜잭션을 수행한다. 제 1 논블록킹 마스터(510)와 함께 상기 제 1 트랜잭션을 수행하는 제 1 슬레이브(610)에서 상기 제 1 트랜잭션을 수행하는 것이 불가능한 예외 상황이 발생하면, 제 1 슬레이브(610)는 버스 중재장치(710)에 SPLIT 신호(SPLIT)를 송신한다. SPLIT 신호(SPLIT)를 수신한 버스 중재장치(710)는 로직 “하이”의 버스 점유 허용 신호(GRANT)를 로직 “로우”의 버스 점유 불가 신호(DISABLE)로 변경하여 제 1 버스 제어부(512)에 송신한다. 버스 점유 불가 신호(DISABLE)를 수신한 제 1 버스 제어부(512)는 제 1 코어(511)에 트랜잭션 불가 신호(TRANS DISABLE)를 송신함으로써 상기 제 1 트랜잭션을 중단해야 함을 통지한다. 트랜잭션 불가 신호(TRANS DISABLE)를 수신한 제 1 코어(511)는 상기 제 1 트랜잭션을 중단하고, 제 1 코어(511)의 큐의 대기열에서 대기 중인 제 2 트랜잭션에 대한 제 2 트랜잭션 요청 신호(TRANS REQ)를 제 1 버스 제어부(512)에 송신한다. 상기 제 2 트랜잭션은 상기 제 1 트랜잭션을 수행하였던 제 1 슬레이브(610)와 제 1 논블록킹 마스터(510)가 수행하는 기입 또는 독출 트랜잭션일 수 있고, 제 1 슬레이브(610)가 제 1 트랜잭션뿐만 아니라 모든 트랜잭션에 대하여 트랜잭션을 수행할 수 없는 예외 상황인 경우 등에는 제 2 슬레이브(620)와 제 1 논블록킹 마스터(510)가 수행하는 기입 또는 독출 트랜잭션일 수 있다. 제 2 트랜잭션 요청 신호(TRANS REQ)를 수신한 제 1 버스 제어부(512)는 버스 중재장치(710)에 제 2 버스 점유 요청 신호(REQ) 및 상기 제 2 트랜잭션에 대한 트랜잭션 아이디를 포함하는 제 2 트랜잭션 아이디 신호(TRANSID)를 송신하여 상기 제 2 트랜잭션에 대한 버스(810) 점유의 승인을 요청한다. 버스 중재장치(710)는 현재 버스(810)를 점유하는 논블록킹 마스터의 존재 유무와 사전에 정의된 논블록킹 마스터들(510, 520)의 우선순위(priority) 등을 고려하여 특정한 논블록킹 마스터에 버스(810) 점유를 허용(grant)한다. 버스 중재장치(710)가 제 1 논블록킹 마스터(510)의 버스(810) 점유를 허용하면, 제 1 버스 제 어부(512)는 버스 중재장치(710)로부터 제 2 버스 점유 허용 신호(GRANT)를 수신하여 상기 제 2 트랜잭션에 대한 버스(810) 점유의 승인을 받는다. 상기 제 2 트랜잭션에 대한 버스(810) 점유의 승인을 받은 제 1 버스 제어부(512)는 제 1 코어(511)에 제 2 트랜잭션 가능 신호(TRANS GRANT)를 송신하여 상기 제 2 트랜잭션을 수행하는 것이 가능함을 통지하고, 제 2 트랜잭션 가능 신호(TRANS GRANT)를 수신한 제 1 코어(511)는 상기 제 2 트랜잭션을 수행한다. 요컨대, 본 발명의 일 실시예에 따른 논블록킹 마스터는 슬레이브들(610, 620) 중 선택된 어느 하나의 슬레이브와 제 1 트랜잭션을 수행하는 도중 상기 선택된 어느 하나의 슬레이브에서 예외 상황이 발생하는 경우, 상기 선택된 어느 하나의 슬레이브 또는 슬레이브들(610, 620) 중 선택된 다른 하나의 슬레이브와 제 2 트랜잭션을 수행할 수 있다. 따라서, 본 발명의 일 실시예에 따른 논블록킹 마스터는 슬레이브에서 예외 상황이 발생하더라도 대기 상태에 있지 않고, 데이터를 기입 또는 독출하는 트랜잭션을 수행할 수 있다.
다시 도 3을 참조하면, 버스 중재장치(710)는 중재기(711), 먹스회로(712), 및 디코더(713)를 포함한다. 중재기(711)는 논블록킹 마스터들(510, 520)로부터 버스 점유 요청 신호(REQ)를 수신하고 버스 점유 요청 신호(REQ)에 응답하여 논블록킹 마스터들(510, 520) 중 하나의 논블록킹 마스터에 버스(810) 점유를 허용하며, 버스(810) 점유가 허용된 상기 하나의 논블록킹 마스터의 버스 점유 정보를 생성한다. 먹스회로(712)는 상기 버스 점유 정보에 응답하여 상기 하나의 논블록킹 마스터를 버스(810)에 연결한다. 디코더(713)는 상기 하나의 논블록킹 마스터로부터 어드레스 신호(ADDR)를 수신하여 슬레이브들(610, 620) 중 선택된 어느 하나의 슬레 이브를 버스(810)에 연결한다. 상기 하나의 논블록킹 마스터는 상기 선택된 어느 하나의 슬레이브와 제 1 트랜잭션을 수행한다. 중재기(711)는 버스(810) 점유가 허용된 상기 하나의 논블록킹 마스터와 함께 상기 제 1 트랜잭션을 수행하는 상기 선택된 어느 하나의 슬레이브로부터 SPLIT 신호(SPLIT)를 수신하는 경우 상기 하나의 논블록킹 마스터에 버스 점유 불가 신호(DISABLE)를 송신하고 상기 하나의 논블록킹 마스터로부터 제 2 트랜잭션에 대한 버스 점유 요청 신호(REQ) 및 트랜잭션 아이디 신호(TRANSID)를 수신하여 버스(810) 점유의 승인을 요청 받는다. 버스(810) 점유의 승인을 요청 받은 중재기(711)는 사전에 정의된 논블록킹 마스터들(510, 520)의 우선순위(priority) 등을 고려하여 상기 제 2 트랜잭션에 대한 버스(810) 점유의 승인을 요청한 상기 하나의 논블록킹 마스터에 버스(810) 점유를 허용할 수 있다. 따라서, 본 발명의 일 실시예에 따른 버스 중재장치(710)는 종래 기술과는 달리 트랜잭션 아이디에 대한 정보를 나타내는 트랜잭션 아이디 신호(TRANSID)를 수신함으로써 예외 상황이 발생한 슬레이브와 트랜잭션을 수행하는 논블록킹 마스터에 새로운 트랜잭션에 대한 버스(810) 점유를 허용할 수 있다.
이하, 도 4를 참조하여 슬레이브에서 SPLIT 신호(SPLIT)가 발생하였을 때 제 1 트랜잭션을 수행하던 논블록킹 마스터 및 상기 슬레이브, 버스 중재장치의 동작을 설명한다.
도 4는 도 3의 버스 시스템에서 SPLIT 신호가 발생된 경우 도 3의 버스 시스템의 신호들의 파형을 나타내는 도면이다.
도 4를 참조하면, 논블록킹 마스터 및 슬레이브는 어드레스 신호(ADDR) 및/ 또는 데이터 신호(DATA)를 통하여 제 1 트랜잭션을 수행한다. 상기 슬레이브가 상기 제 1 트랜잭션을 수행하는 도중에 상기 슬레이브에서 상기 제 1 트랜잭션을 수행할 수 없는 상황이 발생하면, 상기 슬레이브는 버스 중재장치에 SPLIT 신호(SPLIT)를 송신한다(301). SPLIT 신호(SPLIT)를 수신한 상기 버스 중재장치는 로직 “하이”의 버스 점유 허용 신호(GRANT)를 로직 “로우”의 버스 점유 불가 신호(DISABLE)로 변경하여 상기 논블록킹 마스터에 송신한다. 버스 점유 불가 신호(DISABLE)를 수신한 상기 논블록킹 마스터는 제 2 트랜잭션에 대한 버스 점유 요청 신호(REQ)를 송신하고(302), 버스 점유 요청 신호(REQ)와 함께 상기 제 2 트랜잭션에 대한 트랜잭션 아이디 신호(TRANSID)를 송신한다(303). 도 4에 도시되어 있는 트랜잭션 아이디 신호(TRANSID)는 1 비트로 구현된 신호이고, 제 1 트랜잭션에 대한 트랜잭션 아이디는 로직 “로우”의 트랜잭션 아이디 신호(TRANSID)를 송신함으로써 전달되고, 제 2 트랜잭션에 대한 트랜잭션 아이디는 로직 “하이”의 트랜잭션 아이디 신호(TRANSID)를 송신함으로써 전달된다. 실시예에 따라, 트랜잭션 아이디 신호(TRANSID)는 다수의 비트로 구현될 수 있다. 예를 들어, 트랜잭션 아이디 신호(TRANSID)가 2 비트로 구현되는 경우, 제 1 내지 제 4 트랜잭션에 대한 트랜잭션 아이디를 트랜잭션 아이디 신호(TRANSID)로 표현할 수 있고, 논블록킹 마스터는 4개의 트랜잭션 수행 상태들을 가질 수 있다. 상기 제 2 트랜잭션에 대한 버스 점유 요청 신호(REQ) 및 트랜잭션 아이디 신호(TRANSID)를 수신한 상기 버스 중재장치는 소정의 규칙에 따라 로직 “로우”의 버스 점유 불가 신호(DISABLE)를 다시 로직 “하이”의 버스 점유 허용 신호(GRANT)로 변경하여 상기 논블록킹 마스터에 버스 점유를 허용할 수 있다(304). 버스 점유가 허용된 상기 논블록킹 마스터는 상기 슬레이브 또는 다른 슬레이브와 함께 상기 제 2 트랜잭션을 수행한다(305). 따라서, 본 발명의 일 실시예에 따른 논블록킹 마스터는 슬레이브에서 예외 상황이 발생하더라도 대기 상태에 있지 않고, 데이터를 기입 또는 독출하는 트랜잭션을 수행할 수 있다.
도 5는 본 발명의 일 실시예에 따른 논블록킹 마스터의 상태들을 나타내는 도면이다.
도 5를 참조하면, 논블록킹 마스터가 트랜잭션을 수행하지 않을 때는 상기 논블록킹 마스터는 유휴 상태(401)에 있다. 유휴 상태(401)에 있는 상기 논블록킹 마스터는 데이터를 기입 또는 독출하는 제 1 트랜잭션을 수행해야 할 필요에 따라 상기 제 1 트랜잭션에 대한 버스 점유를 요청하는 제 1 요청 상태(402)에 놓인다. 제 1 요청 상태(402)에 있는 상기 논블록킹 마스터는 버스 중재장치로부터 상기 제 1 트랜잭션에 대한 버스 점유를 허용 받아 상기 제 1 트랜잭션을 수행하는 제 1 트랜잭션 수행 상태(403)에 놓인다. 제 1 트랜잭션 수행 상태(403)에 있는 상기 논블록킹 마스터는 상기 제 1 트랜잭션이 정상적으로 완료된 후, 다른 트랜잭션을 수행할 필요가 없으면 다시 유휴 상태(401)로 돌아가고, 다른 트랜잭션을 수행할 필요가 있으면 상기 다른 트랜잭션에 대한 버스 점유를 요청하는 제 1 요청 상태(402)에 놓인다. 한편, 제 1 트랜잭션 수행 상태(403)에 있는 상기 논블록킹 마스터는 상기 제 1 트랜잭션을 수행하는 슬레이브에서 예외 상황이 발생하면 제 2 트랜잭션에 대한 버스 점유를 요청하는 제 2 요청 상태(404)에 놓인다. 제 2 요청 상 태(404)에 있는 상기 논블록킹 마스터는 상기 버스 중재장치로부터 상기 제 2 트랜잭션에 대한 버스 점유를 허용 받아 상기 제 2 트랜잭션을 수행하는 제 2 트랜잭션 수행 상태(405)에 놓인다. 제 2 트랜잭션 수행 상태(405)에 있는 상기 논블록킹 마스터는 상기 제 2 트랜잭션이 완료되면 상기 중단된 제 1 트랜잭션에 대한 버스 점유를 요청하는 제 1 요청 상태(402)에 다시 놓인다. 제 1 요청 상태(402)에 있는 상기 논블록킹 마스터는 버스 중재장치로부터 상기 제 1 트랜잭션에 대한 버스 점유를 허용 받아 상기 제 1 트랜잭션을 수행하고, 상기 제 1 트랜잭션을 수행이 완료되면 다시 유휴 상태(401)에 놓이게 된다. 이와 같은 방식으로 본 발명의 일 실시예에 따른 논블록킹 마스터는 슬레이브에서 SPLIT 신호가 발생되더라도 대기 상태에 있지 않고, 다음 트랜잭션을 수행할 수 있다.
한편, 버스 시스템에 포함되는 논블록킹 마스터들 및 슬레이브들의 개수는 실시예에 따라 가변적이다. 또한, 본 발명의 일 실시예에 따른 논블록킹 마스터는 2개의 트랜잭션 수행 상태들을 가지는 것으로 설명되었으나, 실시예에 따라 2개 외에 복수의 트랜잭션 수행 상태들을 가질 수 있다.
상기와 같은 본 발명의 실시예에 따른 논블록킹 마스터(non-blocking master), 버스 중재장치, 버스 시스템, 및 버스 중재 방법은 슬레이브에서 예외 상황이 발생하더라도 데이터를 기입 또는 독출하는 트랜잭션을 수행할 수 있다.
또한, 본 발명의 실시예에 따른 논블록킹 마스터, 버스 중재장치, 버스 시스템, 및 버스 중재 방법은 수행 중인 트랜잭션이 중단되더라도 다음 트랜잭션을 수 행할 수 있어 시스템의 데이터 처리 속도 및 버스 전송량을 증가시킬 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (14)

  1. 슬레이브에 데이터 신호를 송신하여 데이터를 기입하는 트랜잭션을 수행하거나 상기 슬레이브로부터 데이터 신호를 수신하여 데이터를 독출하는 트랜잭션을 수행하는 코어; 및
    버스 중재장치에 제 1 트랜잭션에 대한 버스 점유의 승인을 요청하고 상기 버스 중재장치로부터 상기 제 1 트랜잭션에 대한 버스 점유의 승인을 받으며, 상기 코어가 상기 제 1 트랜잭션을 수행하는 도중 상기 슬레이브에서 예외 상황이 발생한 경우 상기 버스 중재장치에 제 2 트랜잭션에 대한 버스 점유의 승인을 요청하고, 상기 버스 중재장치로부터 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 받는 버스 제어부를 포함하는 논블록킹 마스터.
  2. 제1항에 있어서, 상기 코어는
    상기 슬레이브에 어드레스 신호를 송신하여 상기 데이터를 기입하거나 독출하는 트랜잭션을 수행하는 것을 특징으로 하는 논블록킹 마스터.
  3. 제1항에 있어서, 상기 버스 제어부는
    상기 버스 중재장치에 제 1 버스 점유 요청 신호 및 제 1 트랜잭션 아이디 신호를 송신하여 상기 제 1 트랜잭션에 대한 버스 점유의 승인을 요청하고, 상기 버스 중재장치로부터 제 1 버스 점유 허용 신호를 수신하여 상기 제 1 트랜잭션에 대한 버스 점유의 승인을 받으며,
    상기 코어가 상기 제 1 트랜잭션을 수행하는 도중 상기 슬레이브에서 예외 상황이 발생한 경우 상기 버스 중재장치로부터 버스 점유 불가 신호를 수신하고, 상기 버스 중재장치에 제 2 버스 점유 요청 신호 및 제 2 트랜잭션 아이디 신호를 송신하여 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 요청하고, 상기 버스 중재장치로부터 제 2 버스 점유 허용 신호를 수신하여 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 받는 것을 특징으로 하는 논블록킹 마스터.
  4. 제3항에 있어서, 상기 버스 제어부는
    상기 코어로부터 제 1 트랜잭션 요청 신호를 수신하여 상기 버스 중재장치에 상기 제 1 트랜잭션에 대한 버스 점유의 승인을 요청하고, 상기 버스 중재장치로부터 상기 제 1 트랜잭션에 대한 버스 점유의 승인을 받으면 상기 코어에 제 1 트랜잭션 가능 신호를 송신하여 상기 제 1 트랜잭션을 수행하는 것이 가능함을 통지하고,
    상기 코어가 상기 제 1 트랜잭션을 수행하는 도중 상기 슬레이브에서 예외 상황이 발생한 경우 상기 코어에 트랜잭션 불가 신호를 송신함으로써 상기 제 1 트랜잭션의 수행을 중단해야 함을 통지하고, 상기 코어로부터 제 2 트랜잭션 요청 신호를 수신하여 상기 버스 중재장치에 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 요청하고, 상기 버스 중재장치로부터 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 받으면 상기 코어에 제 2 트랜잭션 가능 신호를 송신하여 상기 제 2 트랜잭 션을 수행하는 것이 가능함을 통지하는 것을 특징으로 하는 논블록킹 마스터.
  5. 논블록킹 마스터들로부터 버스 점유 요청 신호를 수신하고, 상기 버스 점유 요청 신호에 응답하여 상기 논블록킹 마스터들 중 하나에 버스 점유를 허용하고, 상기 버스 점유가 허용된 논블록킹 마스터의 버스 점유 정보를 생성하고, 상기 버스 점유가 허용된 논블록킹 마스터와 함께 제 1 트랜잭션을 수행하는 슬레이브로부터 SPLIT 신호를 수신하는 경우 상기 버스 점유가 허용된 논블록킹 마스터에 버스 점유 불가 신호를 송신하고 상기 버스 점유가 허용된 논블록킹 마스터로부터 제 2 트랜잭션에 대한 버스 점유의 승인을 요청 받는 중재기;
    상기 버스 점유 정보에 응답하여 상기 논블록킹 마스터들 중 하나를 버스에 연결하는 먹스회로; 및
    상기 버스 점유가 허용된 논블록킹 마스터로부터 어드레스 신호를 수신하여 슬레이브들 중 하나를 상기 버스에 연결하는 디코더를 포함하는 것을 특징으로 하는 버스 중재장치.
  6. 복수의 슬레이브들;
    상기 슬레이브들 중에서 선택된 제 1 슬레이브에 데이터를 기입 또는 독출하는 제 1 트랜잭션을 수행하는 도중 상기 제 1 슬레이브에서 예외 상황이 발생하는 경우 상기 슬레이브들 중에서 선택된 제 2 슬레이브에 데이터를 기입 또는 독출하는 제 2 트랜잭션을 수행하는 복수의 논블록킹 마스터들;
    상기 논블록킹 마스터들의 버스 점유를 중재하는 버스 중재장치; 및
    상기 슬레이브들, 상기 논블록킹 마스터들, 및 상기 버스 중재장치를 연결하는 버스를 포함하는 버스 시스템.
  7. 제6항에 있어서, 상기 슬레이브들 각각은,
    상기 예외 상황이 발생한 경우 상기 버스 중재장치에 SPLIT 신호를 송신하는 것을 특징으로 하는 버스 시스템.
  8. 제6항에 있어서, 상기 논블록킹 마스터들 각각은,
    상기 슬레이브들에 데이터 신호를 송신하여 데이터를 기입하는 트랜잭션을 수행하거나 상기 슬레이브들로부터 데이터 신호를 수신하여 데이터를 독출하는 트랜잭션을 수행하는 코어; 및
    상기 버스 중재장치에 상기 제 1 트랜잭션에 대한 버스 점유의 승인을 요청하고 상기 버스 중재장치로부터 상기 제 1 트랜잭션에 대한 버스 점유의 승인을 받으며, 상기 코어가 상기 제 1 트랜잭션을 수행하는 도중 상기 제 1 슬레이브에서 예외 상황이 발생한 경우 상기 버스 중재장치에 제 2 트랜잭션에 대한 버스 점유의 승인을 요청하고, 상기 버스 중재장치로부터 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 받는 버스 제어부를 포함하는 것을 특징으로 하는 버스 시스템.
  9. 제8항에 있어서, 상기 코어는
    상기 슬레이브에 어드레스 신호를 더 송신하여 상기 데이터를 기입하거나 독출하는 트랜잭션을 수행하는 것을 특징으로 하는 버스 시스템.
  10. 제8항에 있어서, 상기 버스 제어부는
    상기 버스 중재장치에 제 1 버스 점유 요청 신호 및 제 1 트랜잭션 아이디 신호를 송신하여 상기 제 1 트랜잭션에 대한 버스 점유의 승인을 요청하고, 상기 버스 중재장치로부터 제 1 버스 점유 허용 신호를 수신하여 상기 제 1 트랜잭션에 대한 버스 점유의 승인을 받으며,
    상기 코어가 상기 제 1 트랜잭션을 수행하는 도중 상기 제 1 슬레이브에서 예외 상황이 발생한 경우 상기 버스 중재장치로부터 버스 점유 불가 신호를 수신하고, 상기 버스 중재장치에 제 2 버스 점유 요청 신호 및 제 2 트랜잭션 아이디 신호를 송신하여 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 요청하고, 상기 버스 중재장치로부터 제 2 버스 점유 허용 신호를 수신하여 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 받는 것을 특징으로 하는 버스 시스템.
  11. 제10항에 있어서, 상기 버스 제어부는
    상기 코어로부터 제 1 트랜잭션 요청 신호를 수신하여 상기 버스 중재장치에 상기 제 1 트랜잭션에 대한 버스 점유의 승인을 요청하고, 상기 버스 중재장치로부터 상기 제 1 트랜잭션에 대한 버스 점유의 승인을 받으면 상기 코어에 제 1 트랜잭션 가능 신호를 송신하여 상기 제 1 트랜잭션을 수행하는 것이 가능함을 통지하 고,
    상기 코어가 상기 제 1 트랜잭션을 수행하는 도중 상기 제 1 슬레이브에서 예외 상황이 발생한 경우 상기 코어에 트랜잭션 불가 신호를 송신함으로써 상기 제 1 트랜잭션을 중단해야 함을 통지하고, 상기 코어로부터 제 2 트랜잭션 요청 신호를 수신하여 상기 버스 중재장치에 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 요청하고, 상기 버스 중재장치로부터 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 받으면 상기 코어에 제 2 트랜잭션 가능 신호를 송신하여 상기 제 2 트랜잭션을 수행하는 것이 가능함을 통지하는 것을 특징으로 하는 버스 시스템.
  12. 제6항에 있어서, 상기 버스 중재장치는,
    상기 논블록킹 마스터들로부터 버스 점유 요청 신호를 수신하고, 상기 버스 점유 요청 신호에 응답하여 상기 논블록킹 마스터들 중 하나에 버스 점유를 허용하고, 상기 버스 점유가 허용된 논블록킹 마스터의 버스 점유 정보를 생성하는 중재기;
    상기 버스 점유 정보에 응답하여 상기 논블록킹 마스터들 중 하나를 상기 버스에 연결하는 먹스회로; 및
    상기 버스 점유가 허용된 논블록킹 마스터로부터 어드레스 신호를 수신하여 상기 슬레이브들 중 하나를 상기 버스에 연결하는 디코더를 포함하는 것을 특징으로 하는 버스 시스템.
  13. 논블록킹 마스터들이 버스 중재장치에 버스 점유의 승인을 요청하는 단계;
    상기 버스 중재장치가 상기 논블록킹 마스터들 중 하나에 버스 점유를 허용하는 단계;
    상기 버스 점유가 허용된 논블록킹 마스터가 슬레이브에 데이터를 기입 또는 독출하는 제 1 트랜잭션을 수행하는 단계; 및
    상기 제 1 트랜잭션이 수행되는 도중 상기 슬레이브에서 예외 상황이 발생하는 경우 상기 버스 점유가 허용된 논블록킹 마스터가 제 2 트랜잭션에 대한 버스 점유의 승인을 요청하는 단계를 포함하는 버스 중재 방법.
  14. 제13항에 있어서, 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 요청하는 단계는,
    상기 슬레이브에서 예외 상황이 발생하여 상기 슬레이브가 상기 버스 중재장치에 SPLIT 신호를 송신하는 단계;
    상기 버스 중재장치가 상기 SPLIT 신호를 수신하여 상기 버스 점유가 허용된 논블록킹 마스터에 버스 점유 불가 신호를 송신하는 단계;
    상기 버스 점유가 허용된 논블록킹 마스터가 상기 버스 점유 불가 신호를 수신하여 상기 제 1 트랜잭션의 수행을 중단하는 단계; 및
    상기 버스 점유가 허용된 논블록킹 마스터가 상기 버스 중재장치에 버스 점유 요청 신호 및 트랜잭션 아이디 신호를 송신하여 상기 제 2 트랜잭션에 대한 버스 점유의 승인을 요청하는 단계를 포함하는 것을 특징으로 하는 버스 중재 방법.
KR1020070047921A 2007-05-17 2007-05-17 논블록킹 마스터, 버스 중재장치, 버스 시스템, 및 버스중재 방법 KR100873010B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070047921A KR100873010B1 (ko) 2007-05-17 2007-05-17 논블록킹 마스터, 버스 중재장치, 버스 시스템, 및 버스중재 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070047921A KR100873010B1 (ko) 2007-05-17 2007-05-17 논블록킹 마스터, 버스 중재장치, 버스 시스템, 및 버스중재 방법

Publications (2)

Publication Number Publication Date
KR20080101318A KR20080101318A (ko) 2008-11-21
KR100873010B1 true KR100873010B1 (ko) 2008-12-09

Family

ID=40287589

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070047921A KR100873010B1 (ko) 2007-05-17 2007-05-17 논블록킹 마스터, 버스 중재장치, 버스 시스템, 및 버스중재 방법

Country Status (1)

Country Link
KR (1) KR100873010B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6175888B1 (en) 1996-04-10 2001-01-16 International Business Machines Corporation Dual host bridge with peer to peer support
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
US6480917B1 (en) 1999-08-19 2002-11-12 International Business Machines Corporation Device arbitration including peer-to-peer access arbitration
KR20040078992A (ko) * 2003-03-05 2004-09-14 (주)투더베스트 분산 트랜잭션 시스템에서 이단계 완료 규약으로 블럭킹처리(Non-Blocking Two Phase Commit) 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6175888B1 (en) 1996-04-10 2001-01-16 International Business Machines Corporation Dual host bridge with peer to peer support
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
US6480917B1 (en) 1999-08-19 2002-11-12 International Business Machines Corporation Device arbitration including peer-to-peer access arbitration
KR20040078992A (ko) * 2003-03-05 2004-09-14 (주)투더베스트 분산 트랜잭션 시스템에서 이단계 완료 규약으로 블럭킹처리(Non-Blocking Two Phase Commit) 방법

Also Published As

Publication number Publication date
KR20080101318A (ko) 2008-11-21

Similar Documents

Publication Publication Date Title
US5625779A (en) Arbitration signaling mechanism to prevent deadlock guarantee access latency, and guarantee acquisition latency for an expansion bridge
KR101746313B1 (ko) 공유 메모리 패브릭을 통한 메모리 액세스 중재
US5621897A (en) Method and apparatus for arbitrating for a bus to enable split transaction bus protocols
EP3238080B1 (en) Guaranteed quality of service in system-on-a-chip uncore fabric
US20080046619A1 (en) Simultaneous Transmissions Between Multiple Master Buses and Multiple Slave Buses
EP0450233B1 (en) Bus access for digital computer system
US7970970B2 (en) Non-blocking address switch with shallow per agent queues
US20020161959A1 (en) On-chip inter-subsystem communication
JPH0652096A (ja) データ処理システム内でアービタを用いてバス仲裁を実行する方法および装置
JPH0219955A (ja) Dma機能を有する計算機システム
JP2004531830A (ja) キャッシュメモリバーストサイクル中にバスアービトレーションを制御するためのシステム及び方法
CN107003962B (zh) 保持计算系统中高速缓存一致性的方法、装置和计算系统
KR100633773B1 (ko) 버스 시스템 및 버스 중재 방법
US7058740B2 (en) Effective bus utilization using multiple buses and multiple bus controllers
US6959354B2 (en) Effective bus utilization using multiple bus interface circuits and arbitration logic circuit
US6804736B2 (en) Bus access arbitration based on workload
US20070053375A1 (en) Systems and methods for managing communication between master and slave devices
KR100237983B1 (ko) 주 및 부 디바이스에 대한 데이터 버스의 승인들을 균등화하기위한 방법 및 장치
CN117009266A (zh) 一种握手协议总线仲裁模块及片上系统
US6973520B2 (en) System and method for providing improved bus utilization via target directed completion
KR100873010B1 (ko) 논블록킹 마스터, 버스 중재장치, 버스 시스템, 및 버스중재 방법
US6889283B2 (en) Method and system to promote arbitration priority in a buffer queue
US7987437B2 (en) Structure for piggybacking multiple data tenures on a single data bus grant to achieve higher bus utilization
US7668996B2 (en) Method of piggybacking multiple data tenures on a single data bus grant to achieve higher bus utilization
US6948019B2 (en) Apparatus for arbitrating non-queued split master devices on a data bus

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20121130

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee