KR20080074545A - 버스 시스템 및 그 제어 방법 - Google Patents

버스 시스템 및 그 제어 방법 Download PDF

Info

Publication number
KR20080074545A
KR20080074545A KR1020070013825A KR20070013825A KR20080074545A KR 20080074545 A KR20080074545 A KR 20080074545A KR 1020070013825 A KR1020070013825 A KR 1020070013825A KR 20070013825 A KR20070013825 A KR 20070013825A KR 20080074545 A KR20080074545 A KR 20080074545A
Authority
KR
South Korea
Prior art keywords
bus
master
waiting time
masters
time
Prior art date
Application number
KR1020070013825A
Other languages
English (en)
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 KR1020070013825A priority Critical patent/KR20080074545A/ko
Priority to US11/871,305 priority patent/US20080195782A1/en
Priority to TW096142220A priority patent/TW200834324A/zh
Priority to JP2007313495A priority patent/JP2008198185A/ja
Publication of KR20080074545A publication Critical patent/KR20080074545A/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
    • 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/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/372Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a time-dependent priority, e.g. individually loaded time counters or time slot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system

Landscapes

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

Abstract

예약 대기 시간을 전송하는 버스 시스템이 개시된다. 본 버스 시스템은, 복수의 마스터, 슬레이브 및, 복수의 마스터 및 슬레이브 간의 버스 연결을 지원하며, 복수의 마스터 하나가 버스 사용 중인 경우, 복수의 마스터 중 적어도 하나의 타 마스터로 예상 대기 시간을 전송하는 버스부를 포함한다. 이에 따라, 마스터가 예약 대기 시간을 이용하여 유효한 작업을 스케쥴링할 수 있게 된다.
시스템 온 칩, 마스터, 버스, 슬레이브

Description

버스 시스템 및 그 제어 방법{Bus system and control method thereof}
도 1a 및 도 1b는 종래 기술의 문제점을 설명하기 위한 도면들이다.
도 2는 본 발명의 일 실시 예에 따른 버스 시스템의 구성을 나타내는 블럭도이다.
도 3은 도 2에 도시된 마스터들의 세부 구성을 나타내는 블럭도이다.
도 4a 및 도 4b는 도 2에 도시된 버스부의 세부 구성을 나타내는 도면들이다.
도 5는 본 발명의 일 실시 예에 따른 온 칩 버스 시스템의 구성 요소간 인터페이스를 설명하기 위한 도면이다.
도 6a 내지 도 6d는 마스터의 예상 대기 시간을 결정하는 다양한 방법을 설명하기 위한 도면들이다.
도 7a 및 도 7b는 다양한 경우에 따른 마스터의 예상 대기 시간을 설명하기 위한 도면들이다.
도 8은 본 발명의 일 실시 예에 따른 버스 시스템의 제어 방법을 설명하기 위한 흐름도이다.
도 9는 본 발명의 다른 실시 예에 따른 버스 시스템의 제어 방법을 설명하기 위한 흐름도이다.
* 도면 주요 부분에 대한 부호의 설명 *
210 : 마스터 1 220 : 마스터 2
230 : 슬레이브 240 : 버스부
221 : 버스 인터페이스부 222 : 스케쥴러
223 : 메모리 241 : 마스터 인터페이스부
242 : 제어부
본 발명은 버스 시스템 및 그 제어 방법에 관한 것으로, 더욱 상세하게는, 시스템 온 칩에 이용되는 버스 시스템 및 그 제어 방법에 관한 것이다.
최근 서로 다른 기능을 하는 수많은 복수의 칩(Chip)들을 하나의 칩 상에 집적하는 시스템 온 칩(SoC)의 사용이 보편화되고 있다.
SoC는 'System On Chip'의 약자로써 'System On A Chip'이란 말로도 사용하는데 하나의 시스템을 하나의 칩으로 구현하는 것을 의미한다. 시스템이란 '특정 목적을 달성하기 위해 작업을 수행할 수 있는 종합장치'라고 사전에 명시되어 있으며 예를 들면 '컴퓨터와 주변 장치 그리고 소프트웨어까지 총칭'한다고 되어 있다.
시스템을 구현하기 위해서는 SoC 응용분야에 따라 다르겠지만 소프트웨어로 칩의 동작을 컨트롤하기 위한 프로세서와 데이터를 저장하고 사용하기 위한 메모리가 기본적인 요소이다. 그리고 칩의 응용분야에 따라 RF 모듈, 아날로그 모듈, 특 수기능의 ASIC 모듈, 주변기기 모듈들이 붙는다. 현재 SoC는 성격이나 기능이 독립적인 모듈들이 특수한 시스템 기능을 얻기 위해 서로 연결되어 데이터를 주고 받으면서 동작하는 것을 총칭하고 있다.
이러한 SoC는 여러가지 큰 규모의 모듈들이 복합적으로 연결되어 있기 때문에 그 규모가 커서 설계 후 검증, 제작까지 많은 시간과 인력이 소모된다. 이를 극복하기 위하여 SoC를 보다 쉽게 개발하기 위한 방법론들이 대두되었는데 이 중 대표적인 것으로 IP를 이용한 설계방법과 platform을 이용한 설계방법이 있다.
platform은 크게 두가지로 구성되는데 하나는 SoC 아키텍처이고 다른 하나는 IP인터페이스 표준 규정이다. SoC 아키텍처란 크게 반도체 모듈(또는 IP) 간의 신호 연결 규약(Protocol)과 신호 연결 구조(Topology)로 구성되어 있다. 신호 연결 구조(Topology)는 버스의 물리적인 구조를 말하는데 크게 한 개의 버스로 구성된 Single Shared Bus 구조, 버스를 여러 개로 나누고 버스 간에는 브리지를 사용하여 연결되는 Hierarchical bus 구조, IP 간의 연결이 Token-ring 방식으로 구성된 ring bus 구조 그리고 IP 마다 데이터 버스가 한 개씩 붙어 있는 Crossbar Switch Bus 구조 등이 있다.
복잡한 시스템을 더욱 복잡하게 하는 것은 검증된 설계 모듈(IP) 간의 연결이다. 32bit(어드레스 32bit, 데이터 32bit) 구조를 가진 IP 4개가 서로 직접 연결되어 동작하기 위해서는 (32bit + 32bit)×3 = 192bit 라인이 교차하면서 칩 전체를 차지하게 될 것이다. IP가 많아질수록 데이터 라인은 더욱더 복잡해진다. 이를 해결하는 한 방법으로 제시된 것이 현 PCB 구조에서도 사용되어지고 있는 SoC 연결 구조인 공용버스(Shared Bus)구조이다. 공용 버스 구조란 전체 칩 내에서 IP 간의 연결을 공용의 데이터 라인을 사용하여 연결하는 것을 말한다. 위의 예처럼 32 bit 구조의 IP가 4개가 있다면 공용버스는 (32bit + 32bit) = 64bit 라인이 된다. 이 공용버스는 IP의 수가 더 많아져도 같은 비트의 데이터 라인을 갖게 된다. 공용버스를 사용하게 되면 데이터 라인 수가 줄어서 편리하지만, 공용 버스에는 같은 시간에 한 IP의 데이터밖에 연결될 수 없다는 문제점이 있다. 따라서, 공용 버스를 이용하려는 각 마스터는 버스 이용 대기 시간 동안 다른 작업을 할 수 없다는 문제점이 있다.
도 1a 및 도 1b는 종래 기술의 문제점을 설명하기 위한 도면들이다.
도 1a는 공용 버스를 사용한 SoC 아키텍처를 구성하는 요소들을 설명하기 위한 도면이다. 도 1a에 의하면, 복수의 마스터(Master 1 ~ Master n)가 온 칩 버스(On-Chip Bus)를 통해 복수의 슬레이브(Slave 1 ~ Slave n)와 데이터를 송수신하고 있다.
도 1b는 버스 사용을 요청한 마스터의 상태를 나타내는 도면이다.
도 1b에 의하면, 마스터가 버스 사용 요청 신호(reqm)를 전송한 후 승인 신호(grantm)를 전송받을 때까지 대기 상태(IDLE TIME)에 있어야 하므로 다른 작업을 할 수 없다는 문제점이 있다.
본 발명은 상술한 문제점을 해결하기 위한 것으로, 본 발명의 목적은 버스 사용을 요청한 마스터에 예상 대기 시간을 전송하여, 예상 대기 시간 동안 마스터 가 유효한 작업을 수행할 수 있도록 하는 버스 시스템 및 그 제어 방법을 제공함에 있다.
상술한 목적을 달성하기 위한 본 발명의 일 실시 예에 따르면, 본 버스 시스템은, 복수의 마스터, 슬레이브 및, 상기 복수의 마스터 및 슬레이브 간의 버스 연결을 지원하며, 상기 복수의 마스터 하나가 버스 사용 중인 경우, 상기 복수의 마스터 중 적어도 하나의 타 마스터로 예상 대기 시간을 전송하는 버스부를 포함한다.
바람직하게는, 상기 버스부는, 상기 복수의 마스터와 통신하기 위한 마스터 인터페이스부 및, 상기 예상 대기 시간을 체크하여 상기 마스터 인터페이스부를 통해 상기 적어도 하나의 타 마스터로 전송하는 제어부를 포함한다.
보다 바람직하게는, 상기 버스부는, 상기 복수의 마스터에 대한 기존 대기 시간 데이터가 저장된 메모리를 더 포함하며, 상기 제어부는, 상기 기존 대기 시간을 고려하여 상기 예상 대기 시간을 결정할 수 있다.
또한 바람직하게는, 상기 버스부는, 상기 복수의 마스터 중 현재 버스를 사용하고 있는 마스터의 버스 사용 잔존 시간과 버스 사용을 먼저 요청한 마스터의 버스 사용 요청시간 데이터를 저장하고 있는 메모리를 더 포함하며, 상기 제어부는, 상기 버스 사용 잔존 시간과 상기 버스 사용 요청 시간을 고려하여 상기 예상 대기 시간을 결정할 수 있다.
또한 바람직하게는, 상기 버스부는, 상기 복수의 마스터 중 현재 버스를 사 용하고 있는 마스터의 버스 사용 잔존 시간과 선순위 버스 사용 요청 마스터의 버스 사용 요청 시간 데이터를 저장하고 있는 메모리를 더 포함하며, 상기 제어부는, 상기 버스 사용 잔존 시간과 상기 버스 사용 요청 시간을 고려하여 상기 예상 대기 시간을 결정할 수 있다.
또한 바람직하게는, 상기 버스부는, 상기 복수의 마스터에 대한 고정된 예상 대기 시간 데이터가 저장된 메모리를 더 포함하며, 상기 제어부는, 상기 고정된 예상 대기 시간을 고려하여 상기 예상 대기 시간을 결정할 수 있다.
또한 바람직하게는, 상기 마스터는, 상기 버스부와 인터페이싱하여 데이터를 송수신하는 버스 인터페이스부 및, 상기 버스 인터페이스부를 통해 상기 예상 대기 시간이 전송되면, 상기 예상 대기 시간을 이용하여 작업을 스케쥴링하는 스케쥴러를 포함할 수 있다.
또한 바람직하게는, 상기 버스 시스템은 SoC(System on Chip)에 이용되는 온-칩(on chip) 버스 시스템으로 구현 가능하다.
한편, 본 발명의 일 실시 예에 따르면, 복수의 마스터와 슬레이브 간의 연결을 지원하는 버스를 포함하는 버스 시스템의 제어 방법은, (a) 상기 복수의 마스터 중 제1 마스터가 상기 슬레이브와 상기 버스를 통하여 데이터를 송수신하는 단계, (b) 제2 마스터가 상기 버스 사용을 요청하는 단계 및, (c) 상기 제2 마스터에 예상 대기 시간을 전송하는 단계를 포함한다.
바람직하게는, 상기 복수의 마스터에 대한 기존 대기 시간을 고려하여 상기 예상 대기 시간을 결정하는 단계를 더 포함한다.
보다 바람직하게는, 상기 제2 마스터의 버스 사용 잔존 시간과 버스 사용을 먼저 요청한 타 마스터의 버스 사용 요청시간을 고려하여 상기 제2 마스터의 예상 대기 시간을 결정하는 단계를 더 포함할 수 있다.
또한 바람직하게는, 버스 사용을 요청한 마스터들의 우선 순위를 확인하는 단계 및, 상기 제2 마스터보다 우선 순위를 가지는 타 마스터가 존재하면, 상기 제1 마스터의 버스 사용 잔존 시간과 상기 타 마스터의 버스 사용 요청 시간을 고려하여 상기 예상 대기 시간을 결정하는 단계를 더 포함할 수 있다.
또한 바람직하게는, 상기 복수의 마스터에 대한 고정된 예상 대기 시간을 고려하여 상기 예상 대기 시간을 결정하는 단계를 더 포함할 수 있다.
또한 바람직하게는, 상기 제2 마스터가 상기 버스로부터 전송받은 상기 예상 대기 시간을 이용하여 작업을 스케쥴링하는 단계를 더 포함할 수 있다.
또한 바람직하게는, 상기 버스 시스템은 SoC(System on Chip)에 이용되는 온-칩(on chip) 버스 시스템으로 구현 가능하다.
이하에서, 첨부된 도면을 참조하여 본 발명에 대하여 자세하게 설명한다.
도 2는 본 발명의 일 실시 예에 따른 버스 시스템의 구성을 나타내는 블럭도이다. 도 2에 따르면, 본 버스 시스템(200)은 마스터 1(210), 마스터 2(220), 슬레이브(230) 및 버스부(240)를 포함한다.
본 버스 시스템(200)은 온-칩 버스 시스템으로 구현될 수 있다. 온-칩 버스(On-Chip Bus)는 시스템 온 칩(System-on-Chip)에 필수적인 프로토콜이다. 여기서, 시스템 온 칩은 시스템을 한 개의 칩 위에 올려 놓는다는 사전적인 의미를 갖 으며, 한 개의 칩 상에 구동 가능한 제품, 즉 시스템을 설계하는 기술을 의미한다.
여기서, 마스터(210, 220)는 버스를 사용할 수 있는 권리를 가진 IP 또는 각종 Component를 일컫는 용어로, CPU(Central Processing Unit), HDD(Hard Disc Drive) 컨트롤러, 마이크로 프로세서(Micro Processor), 오디오 DSP(Digital Signal Processor) 및 MPEG(Moving Picture Expert Group)등으로 구현될 수 있다.
슬레이브(230)는 마스터에 의해 제어되는 IP 또는 각종 Component를 일컫는 용어로써, 입출력 장치, 메모리 등으로 구현될 수 있다. 본 실시 예에서는 설명의 편의를 위하여 마스터가 두 개이며, 슬레이브가 하나인 경우를 예를 들었으며, 마스터와 슬레이브의 개수는 경우에 따라 두 개 이상으로 구현될 수도 있다.
마스터(210, 220)는 슬레이브(230)에 데이터를 기입(Write)하거나 독출(Read)하는 역할을 하며 이를 위해 버스부(240)에 버스 점유 요청을 한다. 본 실시 예에서 마스터 1(210)은 슬레이브와 데이터를 송수신하기 위하여 버스를 점유하는 상태이고 마스터 2(220)는 이 후에 버스 사용을 요청한 상태로 가정한다.
버스부(240)는 마스터(210, 220) 및 슬레이브(230) 간의 연결을 지원하는 역할을 한다. 일반적으로 마스터(210, 220)의 버스 점유 요청에 대해 현재 버스를 사용하고 있는 마스터의 존재 유무와 기 설정된 마스터들의 우선권(Priority)을 고려하여 특정한 하나의 마스터에만 버스 점유를 허용(Bus Grant)한다. 또한, 이미 버스를 점유하고 있는 마스터 1(210)이 있는 경우에는 버스 점유를 요청한 마스터 2(220)에 예상 대기 시간을 전송하는 역할을 한다.
버스 점유를 허용받은 마스터 1(210)은 버스 마스터(210)가 되어 슬레이 브(230)에 데이터를 기입하거나 독출한다. 그리고 버스 마스터(210)는 데이터의 기입 또는 독출 동작이 완전히 종료될 때까지 버스를 점유하고, 이 후, 버스 점유를 요청한 마스터 2(220)는 현재 버스 마스터(210)에 의한 데이터의 기입 또는 독출동작이 종료될 때까지 대기상태로 있어야만 하며, 이 대기상태인 동안 버스부(240)로부터 전송받은 예상 대기 시간을 이용하여 다른 작업을 수행할 수 있게 된다.
도 3은 도 2에 도시된 마스터들의 세부 구성을 나타내는 블럭도이다. 도 3에 따르면, 마스터(220)는 버스 인터페이스부(221) 및 스케쥴러(222)를 포함한다. 도 3의 마스터(220)는 도 2의 시스템 중 마스터 1(210) 또는 마스터 2(220)가 될 수 있다.
버스 인터페이스부(221)는 도 2에 도시된 버스부(240)와 인터페이싱하여 데이터를 송수신하는 역할을 한다.
스케쥴러(222)는 버스 인터페이스부(221)를 통해 예상 대기 시간이 전송되면, 예상 대기 시간을 이용하여 작업을 스케쥴링하는 역할을 한다. 즉, 스케쥴러(222)는 버스부(240)로부터 예상 대기 시간이 수신되면 타 마스터가 버스 사용 중인 경우, 예상 대기 시간 동안 다른 유효한 후속 작업을 수행하도록 작업을 스케쥴링 할 수 있다.
도 4a 및 도 4b는 도 2에 도시된 버스부의 세부 구성을 나타내는 도면들이다.
도 4a는 도 2에 도시된 버스부의 일 실시 예에 따른 세부 구성을 나타내는 블럭도이다. 도 4에 따르면, 버스부(240)는 마스터 인터페이스부(241) 및 제어 부(242)를 포함한다.
마스터 인터페이스부(241)는 마스터들(210, 220)과 통신을 수행하는 역할을 한다.
제어부(242)는 버스 사용을 요청한 마스터 2(220)의 예상 대기 시간을 체크하여 마스터 인터페이스부(241)를 통해 마스터 2(220)에 전송하는 역할을 한다.
마스터 2(220)의 예상 대기 시간은 제어부(242)의 우선권 정책에 따라 달라질 수 있다. 구체적으로, 제어부(242)의 정책에는 순서가 절대적으로 고정된 고정적 우선권(fixed priority scheme), 정해진 순서대로 우선권이 달라지는 순환적 우선권 정책(round-robin priority), 순환적 우선권 정책에서 개조된 TDM(Time Division Multiplex) 우선권 정책, 우선권 확률 개념을 도입한 Lottery 방식 등이 있다. 즉, 제어부(212)는 각 마스터마다 버스를 사용했던 빈도를 보고, 버스의 사용에 우선순위를 설정해 줄 수 있고, 또는 제어프로그램에 따라 버스의 사용에 우선순위를 설정해 줄 수 있다.
도 4b는 도 2에 도시된 버스부의 다른 실시 예에 따른 세부 구성을 나타내는 블럭도이다. 도 4b에 따르면, 버스부(240)는 마스터 인터페이스부(241), 제어부(242) 및 메모리(243)를 포함한다. 도 4b에 도시된 각 구성요소들 중 도 4a에 도시된 실시 예와 중복되는 부분에 대해서는 구체적인 세부 설명을 생략한다.
메모리(243)는 복수의 마스터에 대한 기존 대기 시간 데이터를 저장한다. 이 경우, 제어부(242)는 메모리(243)에 저장된 기존 대기 시간을 고려하여 각 마스터의 예상 대기 시간을 결정할 수 있다.
또는, 메모리(243)는 복수의 마스터 중 현재 버스를 사용하고 있는 마스터의 버스 사용 잔존 시간과 버스 사용을 먼저 요청한 마스터의 버스 사용 요청시간 데이터를 저장한다. 이 경우, 제어부(242)는 메모리(243)에 저장된 버스 사용 잔존 시간과 버스 사용 요청 시간을 고려하여 각 마스터의 예상 대기 시간을 결정할 수 있다.
또는, 메모리(243)는 복수의 마스터 중 현재 버스를 사용하고 있는 마스터의 버스 사용 잔존 시간과 선순위 버스 사용 요청 마스터의 버스 사용 요청 시간 데이터를 저장한다. 이 경우, 제어부(242)는 메모리(243)에 저장된 버스 사용 잔존 시간과 버스 사용 요청 시간을 고려하여 각 마스터의 예상 대기 시간을 결정할 수 있다.
또는, 메모리(243)는 각 마스터에 대해 고정된 예상 대기 시간 데이터를 저장한다. 이 경우, 제어부(242)는 메모리(243)에 저장된 예상 대기 시간을 고려하여 각 마스터의 예상 대기 시간을 결정할 수 있다.
도 5는 본 발명의 일 실시 예에 따른 온 칩 버스 시스템의 구성 요소간 인터페이스를 설명하기 위한 도면이다.
도 5에 따르면, 본 온 칩 버스 시스템(500)은, 마스터(510), 온 칩 버스(520), 슬레이브(530) 및 각 데이터 인터페이스(1 내지 20)를 포함한다.
마스터(510)는 온 칩 버스(520)에 address(1), transfer type(2), write(3), transfer size(4), burst type(5), request(6), write data(7) 신호를 전송하고, 온 칩 버스(520)로부터 grant(8), read(9), slack time(10), read data(11) 등의 신호를 수신한다.
또한, 온 칩 버스(520)는 슬레이브(530)에 selection(12), address(13), write(14), transfer type(15), transfer size(16), burst type(17), write data(18) 신호를 전송하고, 슬레이브(530)로부터 ready(19), read data(20) 등의 신호를 수신한다.
도 6a 내지 도 6c는 마스터의 예상 대기 시간을 결정하는 다양한 방법을 설명하기 위한 도면들이다.
도 6a는 마스터들의 기존 대기 시간을 이용하여 예상 대기 시간을 결정하는 방법을 설명하기 위한 도면이다.
도 6a에서 가로축은 마스터들에게 기존에 대기 시간이 할당된 회차를 나타내고 세로축은 마스터 종류를 나타낸다. 도 6a에 따르면, 마스터 1의 경우 최근(0회차) 20 싸이클을 할당받았으며, 그 이전(1회차)에는 25싸이클, 그 이전(2회차)에는 45싸이클, 그 이전(3회차)에는 20싸이클을 할당받은바 있다. 이 경우 버스부(240)는 기존에 마스터 1이 할당받은 대기 시간을 평균하여 마스터 1의 현재 예상 대기 시간을 결정할 수 있다. 본 실시 예에서는 최근 4번째 경우까지의 기존 대기 시간을 기초로 하여 데이터를 작성하였으며, second 단위를 사용하였지만, 이는 일 실시 예에 불과하며 경우에 따라 다양하게 변경 가능하다.
도 6b는 마스터들의 현재 버스 이용 상태를 이용하여 예상 대기 시간을 결정하는 방법을 설명하기 위한 도면이다.
도 6b에서 가로축은 마스터들의 상태(STATUS), 버스 사용 잔존 시간(REM. TIME), 버스트 길이(BRST LEN), 예상 대기 시간(SLACK)을 나타내고, 세로축은 마스터 종류를 나타낸다. 도 6b에 따르면, 마스터 1의 경우 대기 상태(WAITING)에 있으며, BRST LEN이 16싸이클, SLACK이 20싸이클이다. 마스터 2의 경우 서비스 중(IN SERVICE)에 있으며, REM. TIME이 17싸이클, BRST LEN이 32싸이클이다. 또한, 마스터 3, 마스터 5는 IDLE 상태에 있으며, 마스터 4는 버스 이용 요청 상태(REQ)에 있으며, BRST LEN이 8 싸이클이다.
이 경우, 버스 이용을 요청한 마스터 4는 현재 IN SERVICE 상태에 있는 마스터 2의 REM. TIME 17싸이클에 대기 상태에 있는 마스터 1의 BRST LEN 16싸이클을 가산한 값 만큼의 대기 시간을 할당받을 수 있다.
본 실시 예에서는 마스터들의 우선 순위를 고려하지 않고 예상 대기 시간을 할당하는 경우에 대해 설명하였지만, 마스터들의 우선 순위를 고려하는 경우에는 예상 대기 시간이 변경될 수 있다. 예를 들어, 마스터 1이 예상 대기 시간을 먼저 할당받은 경우라도 마스터 4가 우선 순위가 더 높은 경우 마스터 4가 먼저 데이터를 송수신하도록 예상 대기 시간을 할당받을 수 있다.
도 6c 및 도 6d는 각 마스터에 예상 대기 시간이 고정되어 있는 경우를 설명하기 위한 도면이다.
도 6c는 각 마스터에 동일한 예상 대기 시간이 기 설정되어 있는 경우를 설명하기 위한 도면이다. 도 6c에 따르면, 각 마스터(master 1 내지 master n)에 동일한 예상 대기 시간이 기 설정되어 있을 수 있으며, 버스부(240)는 이 예상 대기 시간을 마스터들에 전송하여 그 동안 각 마스터가 다른 작업을 스케쥴링하도록 할 수 있다.
도 6d는 각 마스터 별로 다른 예상 시간이 기 설정되어 있는 경우를 설명하기 위한 도면이다. 도 6d에 따르면, 각 마스터 별로 다른 예상 대기 시간이 기 설정되어 있을 수 있으며, 버스부(240)는 이 예상 대기 시간을 마스터들에 전송하여 그 동안 각 마스터가 다른 작업을 스케쥴링하도록 할 수 있다. 각 마스터 별 예상 대기 시간은 각 마스터의 특성 및 버스 이용 상태 등을 고려하여 설정될 수 있다.
도 7a 및 도 7b는 다양한 경우에 따른 마스터의 예상 대기 시간을 설명하기 위한 도면들이다.
도 7a는 버스 사용 요청 신호(reqm) 전송 후, 버스 사용 승인 신호(gratm)전송 시간까지 약 60 싸이클의 예상 대기 시간이 전송된 경우이다.
도 7b는 버스 사용 요청 신호(reqm) 전송 후, 바로 버스 사용 승인 신호(gratm)가 전송된 경우로 0 싸이클의 예상 대기 시간이 전송된 경우이다.
도 8은 본 발명의 일 실시 예에 따른 버스 시스템의 제어 방법을 설명하기 위한 흐름도이다. 여기서, 버스 시스템은 SoC(System on Chip)에 이용되는 온-칩(on chip) 버스 시스템으로 구현 가능하다.
도 8의 제어 방법에 따르면, 복수의 마스터 중 제1 마스터가 슬레이브와 버스를 통하여 데이터를 송수신하는 도중(S810), 제2 마스터가 버스 사용을 요청한다(S820). 이어서, 버스가 제2 마스터에 예상 대기 시간을 전송한다(S830).
이 경우, 버스는 복수의 마스터에 대한 기존 대기 시간을 고려하여 제2 마스터로 전송할 예상 대기 시간을 결정할 수 있다.
또는, 제1 마스터의 버스 사용 잔존 시간과 선순위로 버스 사용을 요청한 마스터의 버스 사용 요청시간을 고려하여 제2 마스터로 전송할 예상 대기 시간을 결정할 수 있다.
또는, 제2 마스터와 선순위로 버스 사용을 요청한 마스터의 우선 순위를 확인하고, 제2 마스터의 버스 사용 잔존 시간과 선순위 버스 사용 요청 마스터의 버스 사용 요청 시간을 고려하여 예상 대기 시간을 결정할 수 있다.
또는, 복수의 마스터에 대한 고정된 예상 대기 시간을 고려하여 제2 마스터로 전송할 예상 대기 시간을 결정할 수 있다.
도 9는 본 발명의 다른 실시 예에 따른 버스 시스템의 제어 방법을 설명하기 위한 흐름도이다.
도 9의 제어 방법에 따르면, 복수의 마스터 중 제1 마스터가 슬레이브와 버스를 통하여 데이터를 송수신하는 도중(S910), 제2 마스터가 버스 사용을 요청한다(S920). 이어서, 버스가 제2 마스터에 예상 대기 시간을 전송한다(S930).
이 후, 제2 마스터가 버스로부터 전송받은 예상 대기 시간을 이용하여 작업을 스케쥴링할 수 있다(S940)
이에 따라, 버스 사용 대기 시간 동안 마스터가 유효한 작업을 수행할 수 있게 된다.
이상 설명한 바와 같이, 본 발명에 따르면, 버스가 마스터의 예상 대기 시간을 체크하여 전송할 수 있게 된다. 이에 따라, 마스터는 예상 대기 시간 동안 내부 스케쥴링을 통하여 유효한 작업을 수행할 수 있으므로 사용자의 편의성이 개선된다.
또한, 이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안 될 것이다.

Claims (15)

  1. 복수의 마스터;
    슬레이브; 및,
    상기 복수의 마스터 및 슬레이브 간의 버스 연결을 지원하며, 상기 복수의 마스터 중 하나가 버스 사용 중인 경우, 상기 복수의 마스터 중 적어도 하나의 타 마스터로 예상 대기 시간을 전송하는 버스부;를 포함하는 것을 특징으로 하는 버스 시스템.
  2. 제1항에 있어서,
    상기 버스부는,
    상기 복수의 마스터와 통신하기 위한 마스터 인터페이스부; 및,
    상기 예상 대기 시간을 체크하여 상기 마스터 인터페이스부를 통해 상기 적어도 하나의 타 마스터로 전송하는 제어부;를 포함하는 것을 특징으로 하는 버스 시스템.
  3. 제2항에 있어서,
    상기 버스부는,
    상기 복수의 마스터에 대한 기존 대기 시간 데이터가 저장된 메모리;를 더 포함하며,
    상기 제어부는, 상기 기존 대기 시간을 고려하여 상기 예상 대기 시간을 결정하는 것을 특징으로 하는 버스 시스템.
  4. 제2항에 있어서,
    상기 버스부는,
    상기 복수의 마스터 중 현재 버스를 사용하고 있는 마스터의 버스 사용 잔존 시간과 버스 사용을 먼저 요청한 타 마스터의 버스 사용 요청시간 데이터를 저장하고 있는 메모리;를 더 포함하며,
    상기 제어부는, 상기 버스 사용 잔존 시간과 상기 버스 사용 요청 시간을 고려하여 상기 예상 대기 시간을 결정하는 것을 특징으로 하는 버스 시스템.
  5. 제1항에 있어서,
    상기 버스부는,
    상기 복수의 마스터 중 현재 버스를 사용하고 있는 마스터의 버스 사용 잔존 시간과 선순위 버스 사용 요청 마스터의 버스 사용 요청 시간 데이터를 저장하고 있는 메모리;를 더 포함하며,
    상기 제어부는, 상기 버스 사용 잔존 시간과 상기 버스 사용 요청 시간을 고려하여 상기 예상 대기 시간을 결정하는 것을 특징으로 하는 버스 시스템.
  6. 제2항에 있어서,
    상기 버스부는,
    상기 복수의 마스터에 대한 고정된 예상 대기 시간 데이터가 저장된 메모리;를 더 포함하며,
    상기 제어부는, 상기 고정된 예상 대기 시간을 고려하여 상기 예상 대기 시간을 결정하는 것을 특징으로 하는 버스 시스템.
  7. 제1항에 있어서,
    상기 마스터는,
    상기 버스부와 인터페이싱하여 데이터를 송수신하는 버스 인터페이스부; 및,
    상기 버스 인터페이스부를 통해 상기 예상 대기 시간이 전송되면, 상기 예상 대기 시간을 이용하여 작업을 스케쥴링하는 스케쥴러;를 포함하는 것을 특징으로 하는 버스 시스템.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 버스 시스템은 SoC(System on Chip)에 이용되는 온-칩(on chip) 버스 시스템인 것을 특징으로 하는 버스 시스템.
  9. 복수의 마스터와 슬레이브 간의 연결을 지원하는 버스를 포함하는 버스 시스템의 제어 방법에 있어서,
    (a) 상기 복수의 마스터 중 제1 마스터가 상기 슬레이브와 상기 버스를 통하 여 데이터를 송수신하는 단계;
    (b) 제2 마스터가 상기 버스 사용을 요청하는 단계; 및,
    (c) 상기 제2 마스터에 예상 대기 시간을 전송하는 단계;를 포함하는 것을 특징으로 하는 제어 방법.
  10. 제9항에 있어서,
    상기 복수의 마스터에 대한 기존 대기 시간을 고려하여 상기 예상 대기 시간을 결정하는 단계;를 더 포함하는 것을 특징으로 하는 제어 방법.
  11. 제9항에 있어서,
    상기 제2 마스터의 버스 사용 잔존 시간과 버스 사용을 먼저 요청한 타 마스터의 버스 사용 요청 시간을 고려하여 상기 예상 대기 시간을 결정하는 단계;를 더 포함하는 것을 특징으로 하는 제어 방법.
  12. 제9항에 있어서,
    버스 사용을 요청한 마스터들의 우선 순위를 확인하는 단계; 및,
    상기 제2 마스터보다 우선 순위를 가지는 타 마스터가 존재하면, 상기 제1 마스터의 버스 사용 잔존 시간과 상기 타 마스터의 버스 사용 요청 시간을 고려하여 상기 예상 대기 시간을 결정하는 단계;를 더 포함하는 것을 특징으로 하는 제어 방법.
  13. 제9항에 있어서,
    상기 복수의 마스터에 대한 고정된 예상 대기 시간을 고려하여 상기 예상 대기 시간을 결정하는 단계;를 더 포함하는 것을 특징으로 하는 제어 방법.
  14. 제9항에 있어서,
    상기 제2 마스터가 상기 버스로부터 전송받은 상기 예상 대기 시간을 이용하여 작업을 스케쥴링하는 단계;를 더 포함하는 것을 특징으로 하는 제어 방법.
  15. 제9항 내지 제14항 중 어느 한 항에 있어서,
    상기 버스 시스템은 SoC(System on Chip)에 이용되는 온-칩(on chip) 버스 시스템인 것을 특징으로 하는 제어 방법.
KR1020070013825A 2007-02-09 2007-02-09 버스 시스템 및 그 제어 방법 KR20080074545A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020070013825A KR20080074545A (ko) 2007-02-09 2007-02-09 버스 시스템 및 그 제어 방법
US11/871,305 US20080195782A1 (en) 2007-02-09 2007-10-12 Bus system and control method thereof
TW096142220A TW200834324A (en) 2007-02-09 2007-11-08 Bus system and control method thereof
JP2007313495A JP2008198185A (ja) 2007-02-09 2007-12-04 バスシステム及びその制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070013825A KR20080074545A (ko) 2007-02-09 2007-02-09 버스 시스템 및 그 제어 방법

Publications (1)

Publication Number Publication Date
KR20080074545A true KR20080074545A (ko) 2008-08-13

Family

ID=39686832

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070013825A KR20080074545A (ko) 2007-02-09 2007-02-09 버스 시스템 및 그 제어 방법

Country Status (4)

Country Link
US (1) US20080195782A1 (ko)
JP (1) JP2008198185A (ko)
KR (1) KR20080074545A (ko)
TW (1) TW200834324A (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8255708B1 (en) 2007-08-10 2012-08-28 Marvell International Ltd. Apparatuses and methods for power saving in USB devices
JP5131243B2 (ja) * 2009-05-11 2013-01-30 富士通株式会社 伝送装置及び伝送装置の休止方法
US8285912B2 (en) * 2009-08-07 2012-10-09 Arm Limited Communication infrastructure for a data processing apparatus and a method of operation of such a communication infrastructure
JP2011039905A (ja) * 2009-08-17 2011-02-24 Panasonic Corp 情報処理装置
KR102360214B1 (ko) * 2015-08-26 2022-02-08 삼성전자주식회사 실시간 공유 인터페이스를 포함하는 시스템 온 칩의 스케쥴링 방법
CN109995632B (zh) * 2019-05-16 2021-11-02 阳光电源股份有限公司 多机通信系统的通信方法、装置及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7096289B2 (en) * 2003-01-16 2006-08-22 International Business Machines Corporation Sender to receiver request retry method and apparatus
JP2007072598A (ja) * 2005-09-05 2007-03-22 Fujifilm Corp バス調停方法及びバス調停プログラム
JP4974508B2 (ja) * 2005-10-28 2012-07-11 キヤノン株式会社 バスマスタ装置、バス調停装置及びバス調停方法
JP5408844B2 (ja) * 2006-07-04 2014-02-05 キヤノン株式会社 バスシステム
JP2009025866A (ja) * 2007-07-17 2009-02-05 Nec Electronics Corp メモリコントローラ、バスシステム、集積回路、及び、集積回路の制御方法。

Also Published As

Publication number Publication date
TW200834324A (en) 2008-08-16
US20080195782A1 (en) 2008-08-14
JP2008198185A (ja) 2008-08-28

Similar Documents

Publication Publication Date Title
JP4083987B2 (ja) 多重レベル接続識別を備えた通信システム
JP4259751B2 (ja) リアルタイムで動的に帯域幅を割り当てる完全パイプライン式固定待ち時間通信システム
KR101720134B1 (ko) 버스 브리지 장치
JP5036120B2 (ja) 非ブロック化共有インターフェイスを持つ通信システム及び方法
KR100814904B1 (ko) 칩 내부 회로 간의 데이터 전송을 위한 통신 시스템
WO2018157836A1 (zh) 一种可编程硬件的资源管理方法、可编程硬件设备及存储介质
JP2000259557A (ja) 多数の機能モジュールを接続するためのポート管理コントローラ
US20050174877A1 (en) Bus arrangement and method thereof
WO2014103144A1 (ja) インタフェース装置、およびメモリバスシステム
KR20080074545A (ko) 버스 시스템 및 그 제어 방법
KR100644596B1 (ko) 버스 시스템 및 그 버스 중재방법
JP7394185B2 (ja) 通信システム
JP2007219816A (ja) マルチプロセッサシステム
WO2018146899A1 (ja) 制御装置および通信装置
KR102360214B1 (ko) 실시간 공유 인터페이스를 포함하는 시스템 온 칩의 스케쥴링 방법
JP2004517374A (ja) アイソクロノスデータ転送システム及び方法
JP5473817B2 (ja) プログラマブルコントローラおよびバス変換器
JP2011070701A (ja) データを伝送する処理システム及び方法
CN114641764A (zh) 总线系统及操作总线系统的方法
KR20060112349A (ko) 에스오씨 버스 시스템 및 버스 데이터 처리방법
JP2006119724A (ja) Cpuシステム、バスブリッジ、その制御方法、及びコンピュータシステム
JP4862593B2 (ja) データ転送装置及び画像形成装置
JP3747020B2 (ja) クロスバー調停システム
JPS6155704B2 (ko)
EP1459191B1 (en) Communication bus system

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid