KR100961965B1 - 버스 시스템과 이를 이용한 데이터 전송 방법 - Google Patents

버스 시스템과 이를 이용한 데이터 전송 방법 Download PDF

Info

Publication number
KR100961965B1
KR100961965B1 KR1020080064484A KR20080064484A KR100961965B1 KR 100961965 B1 KR100961965 B1 KR 100961965B1 KR 1020080064484 A KR1020080064484 A KR 1020080064484A KR 20080064484 A KR20080064484 A KR 20080064484A KR 100961965 B1 KR100961965 B1 KR 100961965B1
Authority
KR
South Korea
Prior art keywords
master
slave
wild
data
slaves
Prior art date
Application number
KR1020080064484A
Other languages
English (en)
Other versions
KR20100004360A (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 KR1020080064484A priority Critical patent/KR100961965B1/ko
Publication of KR20100004360A publication Critical patent/KR20100004360A/ko
Application granted granted Critical
Publication of KR100961965B1 publication Critical patent/KR100961965B1/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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • G06F13/287Multiplexed DMA
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • 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

Abstract

본 발명은 버스 시스템에 관한 것으로, 특히 중재기의 버스 사용 중재를 받지 않는 와일드 마스터를 포함하는 버스 시스템과 이를 이용한 데이터 전송 방법에 관한 것이다.
본 발명의 실시 예에 따른 버스 시스템은 복수의 마스터 및 복수의 슬레이브를 포함하는 버스 시스템에 있어서, 상기 복수의 슬레이브 각각과 직접 연결된 배선을 통해 상기 복수의 슬레이브 각각으로 데이터를 직접 전송하는 와일드 마스터; 상기 와일드 마스터 이외의 다른 마스터 및 슬레이브로부터의 데이터를 전송하는 공용 버스; 상기 다른 마스터의 상기 공용 버스 사용을 중재하는 중재기; 상기 와일드 마스터로부터의 데이터를 처리하여 상기 복수의 슬레이브 각각으로 전송하는 마스터 래퍼; 및 상기 복수의 슬레이브 각각에 연결되고, 상기 마스터 래퍼 및 상기 다른 마스터로부터의 데이터를 처리하여 상기 복수의 슬레이브 각각으로 전송하는 복수의 슬레이브 래퍼를 포함하는 것을 특징으로 한다.
SoC, 버스, 마스터, 슬레이브, 래퍼, 중재기, 와일드 마스터, AMBA

Description

버스 시스템과 이를 이용한 데이터 전송 방법{Bus system and data transmission method using the same}
본 발명은 버스 시스템에 관한 것으로, 특히 중재기의 버스 사용 중재를 받지 않는 와일드 마스터를 포함하는 버스 시스템과 이를 이용한 데이터 전송 방법에 관한 것이다.
반도체 제조 공정의 발달에 힘입어 서로 다른 기능을 수행하는 여러 컴포넌트 (Chip)들을 하나의 칩에 집적시키는 SoC(System on Chip) 기술이 계발되어 회로설계에 널리 이용되고 있다.
SoC의 구성요소는 다수의 마스터(Master)와 중재기(Arbiter), 슬레이브(Slave) 및 마스터와 슬레이브 간의 데이터 전송을 위한 공용 버스(Shared Bus)로 이루어져 있다. 일반적으로 마스터는 프로세서(CPU), DMA(Direct Memory Access), DSP(digital signal processor)를 뜻하며, 슬레이브는 SDRAM, SRAM과 같은 메모리를 뜻한다.
하나의 칩에 여러 가지의 기능이 집적화된 SoC칩의 경우, 1개의 공용 버스에 마스터, 중재기, 슬레이브 등이 연결된 버스 시스템이 필요하다. 다수의 마스터들 이 하나의 공용 버스를 동시에 이용하고자 하는 경우, 중재기에 의해 공용 버스 허가 신호를 받은 마스터들이 순서대로 공용 버스를 이용하여 데이터를 슬레이브(메모리)로 전송하거나, 슬레이브로부터 데이터를 로딩하게 된다.
도 1은 일반적인 버스 시스템을 나타내는 도면이고, 도 2는 도 1의 버스 시스템을 이용한 데이터의 전송 방법을 나타내는 도면이다. 도 1에서는 종래의 여러 버스 시스템들 중에서 AMBA(Advanced Micro-controller Bus Architecture) 시스템을 예로 하였고, 버스 시스템을 구성하는 여러 마스터들 및 슬레이브들 중에서 각각 2개만 도시하였다.
먼저, 도 1을 참조하면, 일반적인 버스 시스템은 1개의 공용 버스(10)에 복수의 마스터(30, 40), 복수의 슬레이브(50, 60) 및 중재기(20)를 포함한다.
복수의 마스터(30, 40)는 슬레이브(50, 60)로 접속하고자 하는 경우 즉, 마스터들(30, 40)이 슬레이브들(50, 60)로 데이터를 전송하거나, 슬레이브들(50, 60)로부터 데이터를 로딩하고자 하는 경우, 중재기(20)로 공용 버스(10)의 사용을 요청하게 된다. 이때, 중재기(20)는 미리 정해진 우선 순위 판단 방법에 따라 복수의 마스터(30, 40)의 공용 버스(10) 사용의 우선권을 결정하며, 중재기(20)로부터 공용 버스(10)의 사용 승인을 획득한 마스터가 공용 버스(10)를 통해 슬레이브들(50, 60)로 접속하게 된다.
예를 들어, 제 1 마스터(30)가 제 1 슬레이브(50)로의 접속을 요청하고, 동시에 제 2 마스터(40)가 제 2 슬레이브(60)로의 접속을 요청한 경우, 중재기(20)는 미리 정해진 우선 순위 판단 방법을 이용하여 공용 버스(10) 사용의 우선권을 결정 하며, 일반적으로 CPU, ARM 프로세서와 같이 많은 연산을 수행하고 신속성을 요하는 마스터에 공용 버스(10) 사용의 우선권을 부여한다. 여기서, 중재기(20)에 적용되는 우선 순위 판단 방법은 고정된 우선 순위(Fixed Priority) 판단 방법과 라운드 로빈 우선 순위(Round Robin Priority) 판단 방법이 가장 널리 이용된다.
중재기(20)의 우선권 결정에 의해 2개의 마스터들(30, 40) 중에서 제 1 마스터(30)에 공용 버스(10) 사용의 우선권이 부여되면, 도 1에 도시된 바와 같이, 제 1 마스터가(30)가 제 1 슬레이브(50)로 데이터를 먼저 전송한 후, 제 2 마스터(40)가 제 2 슬레이브(60)로 데이터를 전송하게 된다.
상술한 바와 같이, 제 1 마스터(30)와 제 2 마스터(40)가 중재기(20)의 중재에 의하여 순차적으로 데이터를 전송하는 경우, 전체 데이터 전송에 소요되는 총 사이클은 제 1 및 제 2 마스터(30, 40)의 데이터 전송 사이클과 중재기(20)의 중재 사이클의 합이 된다. 제 1 및 제 2 마스터(30, 40)의 데이터 전송 사이클이 각각 4 사이클이고, 중재기(20)의 중재 시간이 1 사이클이라고 가정하면 전체 데이터 전송에 소요되는 총 사이클은 도 2에 도시된 바와 같이, 9 사이클이 소요된다.
상술한, 종래 기술에 따른 버스 시스템에서 마스터 및 슬레이브의 수가 증가될 경우, 데이터 전송에 많은 시간이 소요되는 문제점이 있다. 버스 시스템의 성능 향상을 위해서는 여러 컴포넌트가 동시에 데이터를 송·수신할 수 있는 병렬처리 구조 및 데이터 전송 방법이 도입되어야 한다. 그러나, 동일 시간에 하나의 데이터의 전송만이 가능한 공용 버스 구조에서는 병렬 전송을 할 수 없는 단점이 있다. 이로 인해, 데이터의 병렬 전송이 가능한 버스 시스템 및 데이터 전송 방법이 요구 되고 있다.
본 발명은 상술한 문제점을 해결하기 위한 것으로서, 복수의 마스터 및 슬레이브를 포함하는 버스 시스템에서 데이터 전송 시간을 줄여 데이터 전송의 효율성을 향상시킬 수 있는 버스 시스템 및 데이터 전송 방법을 제공하는 것을 기술적 과제로 한다.
또한, 실시 예에 따른 본 발명은 데이터의 병렬 전송이 가능한 버스 시스템 및 데이터 전송 방법을 제공하는 것을 다른 기술적 과제로 한다.
또한, 실시 예에 따른 본 발명은 중재기의 공용 버스 중재 방식에 영향 없이 전체 버스 시스템의 데이터 전송 효율을 향상시킬 수 있는 버스 시스템 및 데이터 전송 방법을 제공하는 것을 또 다른 기술적 과제로 한다.
상술한 목적을 달성하기 위한 본 발명의 실시 예에 따른 버스 시스템은 복수의 마스터 및 복수의 슬레이브를 포함하는 버스 시스템에 있어서, 상기 복수의 슬레이브 각각과 직접 연결된 배선을 통해 상기 복수의 슬레이브 각각으로 데이터를 직접 전송하는 와일드 마스터; 상기 와일드 마스터 이외의 다른 마스터 및 슬레이브로부터의 데이터를 전송하는 공용 버스; 상기 다른 마스터의 상기 공용 버스 사용을 중재하는 중재기; 상기 와일드 마스터로부터의 데이터를 처리하여 상기 복수의 슬레이브 각각으로 전송하는 마스터 래퍼; 및 상기 복수의 슬레이브 각각에 연결되고, 상기 마스터 래퍼 및 상기 다른 마스터로부터의 데이터를 처리하여 상기 복수의 슬레이브 각각으로 전송하는 복수의 슬레이브 래퍼를 포함하는 것을 특징으로 한다.
상술한 목적을 달성하기 위한 본 발명의 실시 예에 따른 데이터 전송방법은 상기 와일드 마스터를 포함하는 버스 시스템을 이용한 데이터 전송방법에 있어서, 복수의 마스터 중에서 프로세서와 같이 많은 연산을 수행하고 데이터 전송의 신속성을 요하는 와일드 마스터는 복수의 슬레이브 각각과 직접 연결된 배선을 통해 상기 복수의 슬레이브 각각으로 직접 데이터를 전송하고, 상기 와일드 마스터의 데이터 전송과 동시에, 상기 복수의 마스터 중에서 상기 와일드 마스터 이외의 다른 마스터는 중재기의 공용 버스 사용 중재에 따라 공용 버스를 통해 상기 복수의 슬레이브 각각으로 데이터를 전송하는 것을 특징으로 한다.
상술한 바와 같이, 본 발명의 실시 예에 따른 버스 시스템과 이를 이용한 데이터 전송 방법은 중재기의 공용 버스 사용 중재를 받지 않고 와일드 마스터와 복수의 슬레이브들 간에 데이터를 송·수신 할 수 있어 데이터 전송 시간을 줄일 수 있는 효과를 제공한다.
본 발명의 실시 예에 따른 버스 시스템과 이를 이용한 데이터 전송 방법은 와일드 마스터와 와일드 마스터 이외의 다른 마스터가 동시간에 병렬로 데이터를 송·수신 할 수 있어, 버스 시스템의 데이터 전송 효율을 향상시킬 수 있는 다른 효과를 제공한다.
실시 예에 따른 본 발명은 중요한 특정 데이터의 처리를 빠르게 처리할 수 있는 데이터 전송 방법 및 버스 시스템을 구현할 수 있는 또 다른 효과를 제공한다.
본 발명은 중재기(Arbiter)의 공용 버스 사용 중재를 받지 않는 마스터를 이용하여 데이터의 병렬 전송이 가능토록 한 버스 시스템과 이를 이용한 데이터 전송 방법에 관한 것으로, 본 발명에서는 중재기(Arbiter)의 공용 버스 사용 중재를 받지 않는 마스터를 와일드 마스터(Wild Master) 또는 플라잉 마스터(Flying Master)로 정의할 수 있으며, 이하에서는 와일드 마스터로 정의하여 설명하기로 한다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예들에 대하여 설명하기로 한다.
도 3은 본 발명의 실시 예에 따른 버스 시스템을 나타내는 도면이고, 도 4는 도 3에 도시된 본 발명의 실시 예에 따른 버스 시스템을 이용한 데이터의 전송 방법을 나타내는 도면이다.
도 3을 참조하면, 본 발명의 실시 예에 따른 버스 시스템(100)은 중재기(120)의 중재를 받지 않는 와일드 마스터(200), 마스터 래퍼(300), 중재기(120), 복수의 마스터(130, 140), 복수의 슬레이브들(150a, 150b, 150c, 이하 “150”이라 함), 복수의 슬레이브 래퍼(Slave Wrapper, 400) 및 공용 버스(110)를 포함한다.
먼저, 복수의 마스터들(200, 130, 140)은 ARM 프로세서, CPU, DMA, DSP를 의미하며, 슬레이브들(150)은 SDRAM, SRAM과 같은 메모리 및 USB(Universal Serial Bus), UART(Universal Asynchronous Receiver Transmitter)와 같은 입·출력 수단 을 뜻한다.
본 발명의 실시 예에 따른 버스 시스템(100)은 CPU, ARM(Advanced RISC Machine), 프로세서와 같이 다른 마스터에 비해 연산 횟수의 평균 값이 크고(많은 연산을 수행하고) 데이터 전송의 신속성을 요하는 마스터를 와일드 마스터(200)로 정의한다. 본 발명의 실시 예에 따른 버스 시스템(100)에서는 복수의 마스터들(200, 130, 140)이 동시에 슬레이브들(150)에 접속하고자 하는 경우에 데이터 전송의 효율을 향상시키기 위하여 와일드 마스터(200)는 중재기(120)의 중재를 받지 않고 슬레이브들(150)에 직접 연결되며, 와일드 마스터(200)를 제외한 다른 마스터들(130, 140)은 중재기(120)의 중재를 받아 공용 버스(110)를 이용하여 슬레이브들(150)에 연결된다.
여기서, 와일드 마스터(200)는 중재기(120)의 중재 및 공용 버스(110)를 이용하지 않고 슬레이브들(150)에 접속하기 위하여 로직 상에서 마스터 래퍼(300)를 사이에 두고 배선(미도시)을 통해 슬레이브들(150) 각각과 직접 연결된다.
중재기(120)는 공용 버스(110) 사용의 우선 순위를 판단하는 단수 또는 복수의 판단부 포함하며, 와일들 마스터(200)를 제외한 복수의 마스터들(130, 140)이 슬레이브들(150)에 접속하고자 하는 경우, 미리 정해진 우선 순위 결정 방법에 따라서 공용 버스(110) 사용의 우선 순위를 결정한다.
와일드 마스터(200)를 제외한 복수의 마스터들(130, 140)은 공용 버스(110)를 통해 슬레이브들(150)에 접속하게 되며, 복수의 마스터들(130, 140)이 동시에 슬레이브들(150)에 접속하고자 하는 경우, 중재기(120)로부터 공용 버스(120) 사용의 허가 신호를 획득한 마스터들(130, 140)이 순서대로 공용 버스를 이용하여 데이 터를 슬레이브들(150)로 전송하거나, 슬레이브들(150)로부터 데이터를 로딩하게 된다.
공용 버스(110)는 복수의 마스터들(130, 140) 각각이 슬레이브들(150)로 접속할 수 있도록 즉, 복수의 마스터들(130, 140) 및 슬레이브들(150)을 연결하여 읽기 쓰기 기능을 수행할 수 있도록 한다. 이때, 중재기(120)로부터 공용 버스(110) 사용의 허가를 획득한 하나의 마스터가 데이터 전송을 할 수 있다.
이러한, 공용 버스(110)는 AHB(Advanced High-performance Bus), ASB(Advanced System Bus), APB(Advanced peripheral Bus) 중 하나가 될 수 있으며, 본 발명의 실시 예에 따른 버스 시스템(100)에서는 버스트 전송(burst Transfer), 분할 트랜잭션(split transaction), 단일 사이클 버스 마스터 핸드오버(single-cycle bus master handover), 단일 클락 에지 동작(single-clock edge operation), 128비트 데이터 버스 구성의 장점을 통해 고속 데이터 전송이 가능한 AHB를 공용 버스(110)의 실시 예로 적용하였다.
도 3의 버스 시스템(100)에서는 하나의 공용 버스(110) 만을 도시하였으나, 이는 하나의 실시 예이고, 도 4에 도시된 바와 같이, 버스 시스템(100)을 구성하는 마스터 및 슬레이브의 수량 및 특성에 따라 AHB 외에 ASB 또는 APB와 같은 보조 버스(160)를 더 포함할 수 있으며, 이러한 경우 공용 버스(110)와 보조 버스(160)는 브리지(170)를 이용하여 연결할 수 있다.
본 발명의 실시 예에 따른 버스 시스템(100)의 와일드 마스터(200)는 상술한 바와 같이, 로직 상에서 마스터 래퍼(300)를 사이에 두고 배선을 통해 모든 슬레이 브들(150)와 직접 연결되어 중재기(120)의 중재 및 공용 버스(110)를 이용하지 않고 모든 슬레이브들(150)에 접속할 수 있다. 이를 통해, 와일드 마스터(200) 및 와일드 마스터(200)를 제외한 다른 마스터들(130, 140) 중 하나의 마스터가 동시에 슬레이브들(150)에 접속할 수 있어 원칙 적으로 병렬 전송이 가능하다. 여기서, 병렬 전송이 이루어 지기 위해서는 와일드 마스터(200)가 접속하는 슬레이브와 다른 마스터가 접속하는 슬레이브가 서로 달라야 한다.
와일드 마스터(200)와 다른 마스터가 동시에 접속하는 슬레이브가 달라야 하는 이유는 상술한 구성을 통해, 와일드 마스터(200)는 중재기(120)의 중재 없이 데이터를 전송할 수 있고, 와일들 마스터(200) 외의 다른 마스터는 중재기(120)의 중재 및 공용 버스(110)를 이용하여 슬레이브들(150)에 접속할 수 있으므로, 데이터 전송은 병렬 처리가 가능하지만 슬레이브들(150)은 데이터의 병렬 처리가 가능하지 않기 때문이다. 이러한 이유로 와일드 마스터(200)와 다른 마스터가 동시에 동일한 슬레이브에 접속하는 경우, 데이터 전송에 충돌이 발생될 수 있다.
본 발명의 실시 예에 따른 버스 시스템(100)은 와일드 마스터(200)와 와일드 마스터(200) 외의 다른 마스터가 동시에 동일한 슬레이브로의 접속 방지 및 데이터 전송의 충돌을 방지하기 위하여 도 5에 도시된 마스터 래퍼(300) 및 도 7에 도시된 슬레이브 래퍼(400)를 포함한다.
도 5는 본 발명의 실시 예에 따른 버스 시스템의 마스터 래퍼를 나타내는 도면이고, 도 7은 본 발명의 실시 예에 따른 버스 시스템의 슬레이브 래퍼를 나타내는 도면이다.
먼저, 도 3 및 도 5를 참조하면, 본 발명의 실시 예에 따른 버스 시스템(100)의 마스터 래퍼(300)는 와일드 마스터(200)가 슬레이브들(150)과 직접 데이터 전송을 위해 송·수신하는 신호 및 데이터를 조절한다. 이를 위해, 마스터 래퍼(300)는 복수의 입력·출력 단자, 디코더(Decoder, 310) 및 복수의 먹스(MUX, 320, 330, 340)를 포함한다.
본 발명의 실시 예에 따른 버스 시스템(100)은 마스터 래퍼(300)를 구성함에 있어, 데이터 전송의 지연을 최대한 줄이고 고주파에서 동작하도록 하기 위하여 와일드 마스터(200)로부터 슬레이브들(150)로 출력되는 HADATA, HBURST, HWRITE, HSIZE, HPROT, HTRANS, HLOCK 신호들은 바이패스(bypass) 시켰다.
여기서, HADATA 신호는 32비트로 구성되며 쓰기 동작일 때 사용되는 신호이다. HBURST 신호는 3비트로 구성되며 전송하고자 하는 데이터의 버스트 모드가 정의된 신호이다. HWRITE 신호는 와일드 마스터(200)가 슬레이브들(150)에 접속하고자 하는 목적이 쓰기 동작인지 읽기 동작인지를 알려주는 신호로 High 일 때 쓰기 동작, Low 일 때 읽기 동작을 의미한다. HSIZE 신호는 전송하고자 하는 데이터의 크기(8 바이트, 하프 워드, 풀 워드)를 의미하는 신호이다. HPROT 신호는 현재의 전송이 opcode fetch 인지 데이터 액세스 인지 등을 알려주어 전송을 보호하는 신호이다. HTRANS 신호는 데이터의 전송이 Non Sequential, Sequential, Idle, Busy 인지를 등의 전송 성격을 나타내는 신호이다.
그리고, HLOCK 신호는 와일드 마스터(200) 외의 다른 마스터들(130, 140)들이 공용 버스(110)를 이용하여 슬레이브들(150)로 데이터를 전송할 때, 공용 버 스(110)의 사용 권한이 다른 마스터에게 넘어가는 것을 방지하기 위한 신호이다. 본 발명의 실시 예에 따른 버스 시스템(100)에서는 와일드 마스터(200)가 공용 버스(110)를 이용하지 않으므로 마스터 래퍼(300)에서 HLOCK 신호는 고려하지 않는다.
디코더(310)는 와일드 마스터(200)로부터 입력되는 버스 사용 요청(HBUSREQ) 신호와 HADDR[31:0](주소 값) 신호의 상위 비트(예를 들면, 상위 4개 비트)를 이용하여 와일드 마스터(200)가 접속하고자 하는 슬레이브 선택 신호를 생성하고, 생성된 슬레이브 선택(HSEL_S[x:0]) 신호를 슬레이브로 출력한다.
여기서, 와일드 마스터(200)는 공용 버스(110)를 이용하지 않으므로 원칙적으로 HBUSREQ 신호를 생성할 필요는 없지만, AMBA 시스템의 기술 규정에서 HBUSREQ 신호와 HADDR 신호를 이용하여 접속하고자 하는 슬레이브의 선택 신호를 생성하도록 규정하고 있으므로 본 발명의 실시 예에 따른 버스 시스템(100)에서도 이를 준용한다. 즉, 와일드 마스터(200)로부터의 HBUSREQ 신호는 슬레이브에 접속하고자 함을 의미하는 슬레이브 접속 요청 신호로 볼 수 있다.
또한, 와일드 마스터(200)는 데이터 전송에 공용 버스(110)를 이용하지 않음으로 디코더(310)는 슬레이브 선택 신호인 HSEL_S[x:0] 신호를 생성하기 위하여 도 6에 도시된 바와 같이, 슬레이브들(150)을 선택을 위한 코드를 포함한다.
도 6을 참조하면, 디코더(310)는 와일드 마스터(200)로부터 입력되는 HBUSREQ 신호와 HADDR[31:28]== 4'bXXXX 신호를 이용하여 HSEL_S[x:0] 신호를 생성한다. 여기서, “HADDR[31:28]”는 32비트로 구성되는 HADDR 신호 중에서 상위 4개 비트를 의미하고, “4'b1111”는 상위 4개 비트의 값을 나타낸다. 즉, HADDR[31:28]==4'b1111, HADDR[31:28]==4'b1110, HADDR[31:28]==4'b1101, HADDR[31:28]==4'b1100 일 때, HSEL[0], HSEL[1], HSEL[2], HSEL[3]의 슬레이브들이 각각 선택되고, 선택된 슬레이브로 슬레이브 선택(HSEL_S[x:0]) 신호가 출력된다.
한편, HBUSREQ 신호는 상술한 바와 같이, 디코더(310)로 입력됨과 아울러, 데이터 전송에 있어서, 최우선 순위를 가지는 것을 의미하는 HGRANTout(High) 신호가 디코더(310)에서 선택된 슬레이브로 출력된다. 여기서, HGRANTout(High) 신호가 디코더(310)에서 선택된 슬레이브로 출력되는 것은 와일드 마스터(200)는 슬레이브들(150)과 배선을 통해 직접 연결되어 있어 접속하고자 하는 슬레이브가 다른 마스터와 접속하고 있는 경우를 제외하고는 언제나 데이터의 전송이 가능하고, 상술한 바와 같이, 와일드 마스터(200)는 복수의 마스터들 중에서 가장 높은 우선 순위를 가지는 마스터이므로 데이터 전송에 있어서 언제나 최우선 순위를 가지기 때문이다.
와일드 마스터(200)와 슬레이브들(150) 간에 데이터의 송·수신이 이루어지기 위해서는 와일드 마스터(200)가 슬레이브들(150)로부터 HRDATA 신호, SRESP 신호 및 HREADY 신호를 전송 받아야 한다. 여기서, 와일드 마스터(200)는 공용 버스(110)를 이용하지 않으므로, 슬레이브들(150)로부터 전송되는 HRDATA 신호, SRESP 신호 및 HREADY 신호를 수신하기 위하여, 마스터 래퍼(300)는 제 1 내지 제 3 먹스(320, 330, 340)를 포함한다.
먼저, 제 1 먹스(320)는 슬레이브들(150)로부터 전송되는 HRDATA S0[31:0] 내지 HRDATA SN[31:0] 신호를 입력 받아 선택된 HRDATA 신호를 와일드 마스터(200)로 출력한다. 이때, 제 1 먹스(320)는 디코더(310)로부터 입력되는 슬레이브 선택(HSEL_S[x:0]) 신호를 이용하여 와일드 마스터(200)가 데이터 읽기(로딩)을 요청한 슬레이브로부터 입력되는 복수의 HRDATA 신호 중에서 와일드 마스터(200)가 전송을 요청한 슬레이브의 HRDATA 신호를 선택하여 와일드 마스터(200)로 출력한다. 여기서, HRDATA 신호는 슬레이브들(150)로부터 마스터로 전송되는 데이터 신호를 의미한다.
다음으로, 제 2 먹스(330)는 슬레이브들(150)로부터 전송되는 HRESP_S0[1:0] 내지 HRESP_SN[1:0] 신호를 입력 받아 선택된 HRESP 신호를 와일드 마스터(200)로 출력한다. 이때, 제 2 먹스(330)는 디코더(310)로부터 입력되는 슬레이브 선택(HSEL_S[x:0]) 신호를 이용하여 와일드 마스터(200)가 데이터 쓰기 또는 읽기를 요청한 슬레이브로부터 입력되는 HRESP 신호를 선택하여 와일드 마스터(200)로 출력한다. 여기서, HRESP 신호는 데이터 전송에 대한 추가적인 정보를 나타내는 것으로, 전송 성공을 나타내는 OKAY 신호, 전송의 실패를 나타내는 ERROR, 재전송을 나타내는 RETRY, 전송의 분할을 나타내는 SPLIT의 신호로 구성된다.
그리고, 제 3 먹스(340)는 슬레이브들(150)로부터 전송되는 HREADY_S0 내지 HREADY_SN 신호를 입력 받아 선택된 HREADY(마스터 접속 준비) 신호를 와일드 마스터(200)를 포함한 모든 마스터들로 출력한다. 이때, 제 3 먹스(340)는 디코더(310)로부터 입력되는 슬레이브 선택(HSEL_S[x:0]) 신호를 이용하여 모든 마스터들이 접 속을 요청 즉, 데이터 쓰기 또는 읽기를 요청한 슬레이브로부터 입력되는 HREADY 신호를 선택하여 와일드 마스터(200)를 포함한 모든 마스터들로 출력한다.
여기서, HREADY 신호는 슬레이브의 접속 가능 여부를 알려주는 신호로, 데이터 전송의 완료되었는지, 확장이 필요한지를 나타낸다. 이를 보다 자세히 설명하면, 마스터로부터 요청된 모든 처리를 완료한 슬레이브는 HREADY 신호 값을 High로 출력하여 자신과 접속하고자 하는 마스터에게 자신이 현재 접속이 가능한 상태임을 알려주게 된다. 반면, 현재 마스터와 접속되어 있거나, 마스터로부터 요청된 처리를 수행중인 슬레이브는 HREADY 신호 값을 Low로 출력하여 자신이 현재 자신과 접속하고자 하는 임의의 마스터와 접속할 수 없음을 알려주게 된다.
이어서, 도 3 및 도 7을 참조하여 본 발명의 실시 예에 따른 버스 시스템(100)의 슬레이브 래퍼(400)에 대하여 설명하기로 한다.
도 7에 도시된 슬레이브 래퍼(400)를 설명하기에 앞서, 슬레이브 래퍼(400)에 마련된 복수의 입력·출력 단자를 통해 입력·출력되는 신호들 중에서 마스터 래퍼(300)에서 출력되는 신호 및 마스터 래퍼(300)로 입력되는 신호와 동일한 의미를 가지지는 신호들에 대한 상세한 설명은 생략하기로 한다.
본 발명의 실시 예에 따른 버스 시스템(100)의 와일드 마스터(200)는 상술한 바와 같이, 공용 버스(110)를 이용하지 않고, 슬레이브들(150) 각각과 직접 연결되어 데이터를 송·수신하므로 중재기(120)와 같이, 와일드 마스터(200)와 슬레이브들(150) 간에 송·수신이 이루어지는 신호 및 데이터를 조절하는 별도의 구성이 필요하다. 이를 위해, 본 발명의 실시 예에 따른 버스 시스템(100)은 슬레이브 들(150) 각각과 대응되는 복수의 슬레이브 래퍼(400)를 포함하며, 각각의 슬레이브 래퍼(400)는 복수의 입력·출력 단자, 먹스(410), OR 게이트(420), 슬레이브 선택부(430) 및 마스터 선택부(440)를 포함한다.
먹스(410)는 와일드 마스터(200)로부터의 복수의 신호 및 와일드 마스터(200) 이외의 다른 마스터들(130, 140)로부터의 복수의 신호들을 입력 받아, 마스터들(200, 130, 140)이 데이터를 전송 또는 데이터를 읽어오고자 하는 슬레이브로 해당 신호를 전송한다. 여기서, 먹스(410)로 입력되는 복수의 신호들은 HWDATA[out] 신호, HBURST[out] 신호, HWRITE[out] 신호, HSIZE[out] 신호, HPROT 신호, HTRANS[out] 신호, HLOCK[out] 신호, HADDR[out] 신호를 포함한다.
또한, 먹스(410)는 슬레이브 선택부(430)로부터 입력되는 슬레이브 선택(HSEL_Selected) 신호를 통해 상기 다수의 마스터들(200, 130, 140)로부터 입력되는 상기 복수의 신호를 해당 슬레이브로 출력한다.
공용 버스(110)에서 출력되는 복수의 신호 중에서 슬레이브를 선택하기 위한 슬레이브 접속 요청(HSEL_X_BUS) 신호 및 와일드 마스터(200)로부터 출력되는 슬레이브 접속 요청(HSEL_S[x]) 신호는 OR 게이트(420)로 입력된다. 입력된 HSEL_X_BUS 신호 및 HSEL_S[x] 신호는 해당 슬레이브로 출력된다. 즉, 와일드 마스터(200) 또는 공용 버스(110)를 이용하는 다른 마스터들(130, 140) 중에서 하나의 마스터가 슬레이브로의 접속을 요청하는 경우, 해당 슬레이브로 마스터의 접속을 요청을 알려주게 된다.
여기서, 와일드 마스터(200)와 다른 마스터(130, 140)가 동시에 동일한 슬레 이브로 접속을 요청하는 경우에는 먹스(410)는 와일드 마스터(200)에게 슬레이브 접속의 우선 순위를 부여한다. 그러므로, 와일드 마스터(200)에서 해당 슬레이브로 전송한 신호를 먼저 전송하며, 와일드 마스터(200)의 신호를 모두 전송한 후, 다른 마스터의 신호를 해당 슬레이브로 전송한다. 이때, 마스터 선택부(440)는 슬레이브로부터 입력되는 마스터 접속 준비(HREADY) 신호를 와일드 마스터(200) 및 다른 마스터들(130, 140)로 출력한다.
여기서, 마스터 접속 준비(HREADY) 신호 값이 High인 경우에는 접속을 요청하는 마스터와 접속이 가능함을 의미하고, 마스터 접속 준비(HREADY) 신호 값이 Low인 경우에는 접속을 요청하는 마스터와 접속이 가능하지 않음을 의미한다. 즉, 마스터 접속 준비(HREADY) 신호를 통해 슬레이브로 접속하고자 하는 마스터들에게 해당 슬레이브로의 접속 가능 여부를 알려주게 된다.
슬레이브로 접속하고자 하는 마스터들(200, 130, 140)은 슬레이브로부터 출력되는 마스터 접속 준비(HREADY) 신호 값이 High 인지 Low 인지를 확인하고, 마스터 접속 준비(HREADY) 신호 값이 High 인 경우에 해당 슬레이브로 접속하게 된다. 이때, 슬레이브로의 접속에 대한 우선 순위를 의미하는 HGRANT 신호를 획득한 순서대로 해당 슬레이브와 접속하여 데이터를 송·수신 하게 되며, 와일드 마스터(200)는 모든 마스터들 중에서 최 우선 순위를 가진다.
슬레이브 선택부(430)는 와일드 마스터(200)로부터 입력되는 슬레이브 접속 요청(HSEL_S[x]) 신호 및 슬레이브로 전송하고자 하는 데이터, 또는 슬레이브로부터 전송을 요청하고자 하는 데이터의 전송 성격이 정의된 HTRANS 신호를 입력 받아 슬레이브 선택(HSEL_Selected) 신호를 생성한다. 슬레이브 선택부(430)에서 생성된 HSEL_Selected 신호는 도 8a와 같이 나타낼 수 있으며, HSEL_Selected 신호는 먹스(410) 및 마스터 선택부(440)로 출력된다.
먹스(410)로 출력된 HSEL_Selected 신호는 먹스(410)로 입력되는 복수의 신호가 어느 슬레이브로 전송되어야 하는지를 알려주며, 마스터 선택부(440)로 출력된 HSEL_Selected 신호는 와일드 마스터(200)가 접속하고자 하는 해당 슬레이브가 다른 마스터에 접속되어 있는 경우, 마스터들로 접속 허용 신호 및 접속 대기 신호의 생성에 이용된다.
마스터 선택부(440)는 와일드 마스터(200)로부터의 HSEL_S[x] 신호, 공용 버스(110)로부터의 HTRANS 신호, 슬레이브들(150)로부터 입력되는 HREADY 신호 및 슬레이브 선택부(430)로부터의 HSEL_Selected 신호를 입력 받아 접속을 요청한 슬레이브로의 접속 가능여부를 나타내는 HREADYout 신호를 생성한다. 생성된 HREADYout 신호는 와일드 마스터(200)로 출력되는 HREADYoutWM 신호와, 와일드 마스터(200) 이외의 다른 마스터(130, 140)로 출력되는 HREADYoutBUS 신호로 구분된다. 여기서, 와일드 마스터(200) 이외의 다른 마스터(130, 140)로 출력되는 HREADYoutBUS 신호는 공용 버스(110)를 경유하여 해당 슬레이브로 접속을 요청한 마스터(130, 140)로 전송된다.
상술한, HREADYout 신호는 도 8a와 같이 나타낼 수 있으며, 접속을 요청한 마스터에 따라서, HREADYoutWM 신호 또는 HREADYoutBUS 신호로 구분된다. HREADYoutWM 신호의 값은 도 8b의 코드를 통해 얻을 수 있고, HREADYoutBUS 신호의 값은 도 8c의 코드를 통해 얻을 수 있다. 즉, HREADYout 신호는 해당 슬레이브로 접속하고자 하는 마스터들에게 현재 슬레이브로 접속이 가능한지 여부를 알려준다.
다음으로, 슬레이브들(150)로부터 입력되어 공용 버스(110)를 경유하여 마스터들(200, 130, 140)로 출력되는 HRESP[1:0] 신호와 HRDATA[31:0] 신호는 슬레이브 래퍼(400) 내에서 바이패스 시켰으며, 슬레이브가 선택되고 있음을 의미하는 HSELout 신호는 “HSELout=HSEL_x_Bus∨HSEL_S[X]”와 같이 나타낼 수 있다.
상술한 구성을 포함하는 본 발명의 실시 예에 따른 버스 시스템(100)은 복수의 슬레이브들(150)과 배선을 통해 직접 연결된 와일드 마스터(200)를 이용하여, 중재기(120)의 공용 버스 사용 중재를 받지 않고 와일드 마스터(200)와 복수의 슬레이브들(150) 간에 데이터를 송·수신 할 수 있다. 이를 통해, 데이터 전송 시간을 줄일 수 있다.
본 발명의 실시 예에 따른 버스 시스템(100)은 와일드 마스터(200)와 와일드 마스터(200) 이외의 다른 마스터가 병렬로 데이터를 송·수신 할 수 있어, 버스 시스템(100)의 데이터 전송 효율을 향상시킬 수 있다.
도 9는 본 발명의 실시 예에 따른 데이터의 전송 방법의 흐름도이다. 도 9를 참조하기에 앞서, 본 발명의 실시 예에 따른 데이터의 전송 방법은 도 3에 도시된 본 발명의 실시 예에 따른 버스 시스템(100)을 이용하여, 와일드 마스터(200)를 포함하는 복수의 마스터(바람직하게는 와일드 마스터와 1개의 다른 마스터)가 서로 다른 슬레이브(150)로 동시에 데이터를 전송할 수 있도록 한다. 와일드 마스터(200) 이외의 다른 하나의 마스터 또는 와일드 마스터(200)를 포함하지 않는 복 수의 마스터가 슬레이브들(150)로 데이터를 전송하고자 하는 경우에는 종래 기술과 동일하게 중재기(120)의 중재를 받아 공용 버스(110)를 이용하는 데이터 전송 방법을 적용하므로 이에 대한 상세한 설명은 생략하기로 한다.
이하, 도 9를 참조한 설명에서 복수의 마스터 중에서 2개의 마스터가 동시에 데이터를 전송하고자 하는 경우를 일 예로 하며, 와일드 마스터(200)는 슬레이브1(150a)으로 데이터를 전송하고, 와일드 마스터(200) 이외의 다른 마스터 예를 들면, 마스터2(130)는 슬레이브2(150b)로 데이터를 전송하는 경우를 하나의 예로 설명하기로 한다. 여기서, 와일드 마스터(200)와 슬레이브들(150)에서 입·출력되는 모든 신호 및 데이터는 마스터 래퍼(300) 및 슬레이브 래퍼(400)를 경유한다.
복수의 마스터가 동시에 데이터를 전송하고자(S100) 하고, 복수의 마스터 중에 와일드 마스터(200)가 포함되어 있는지 여부의 판단 결과(S100), 복수의 마스터가 와일드 마스터(200)를 포함하는 경우, 와일드 마스터(200) 및 다른 마스터가 데이터를 전송하기 위게 접속을 요청한 슬레이브가 동일한 슬레이브 인지를 판단하고(S120), 판단 결과에 따라서 데이터의 병렬 전송 여부가 결정된다.
먼저, 와일드 마스터(200)는 복수의 슬레이브들(150) 각각과 로직 상에서 직접 연결된 배선과 마스터 래퍼(300)를 통해 접속하고자 하는 슬레이브1(150a)으로 접속 요청(HSEL_S[x]) 신호를 전송한다(S130). 이때, 와일드 마스터(200)는 모든 마스터들 중에서 가장 높은 우선 순위를 가지므로, 가장 높은 우선 순위를 가지는 마스터를 의미하는 HGRANTx 신호 전송 받아, 슬레이브1(150a)과 접속한다.
슬레이브1(130)은 접속 요청(HSEL_S[x]) 신호가 입력되면 자신이 현재 다른 마스터와 접속 중 인지를 확인하여 접속가능 여부를 판별(S140)한다. 여기서, 접속가능 여부의 판별은 와일드 마스터(200)로부터 전송되어 슬레이브 래퍼(400)에 입력된 접속 요청(HSEL_S[x]) 신호보다 공용 버스(110)를 통해 중재기(120)로부터 입력된 접속 요청(HSEL_S[x]) 신호가 있는지를 확인을 통해 이루어질 수 있다. 또한, 와일드 마스터(200)로부터의 접속 요청(HSEL_S[x]) 신호보다 앞서 중재기(120)로부터 제어 신호를 전송 받아, 이를 실행하고 있는지의 확인을 통해 이루어질 수 있다.
S140의 판별 결과, 와일드 마스터(200)와 접속이 가능하면, 접속을 요청한 슬레이브로의 접속 허여를 의미하는 마스터 선택(HREADYoutWM) 신호를 와일드 마스터(200)로 전송하여 슬레이브1(150a)으로의 접속이 허여되었음을 알려준다(S150).
이후, 슬레이브1(150a)으로부터 마스터 선택 신호를 전송 받은 와일드 마스터(200)는 슬레이브1(150a)로 HBURST 신호, HWRITE 신호, HSIZE 신호, HPROT 신호, HTRANS 신호를 전송하여 전송 또는 읽어오고자 하는 데이터의 전송 방식, 형태, 크기, 성격 등을 통보하고, 상기 신호들에 따라 슬레이브1(150a)로 데이터를 전송 한다(S160). 이때, 슬레이브1(150a)로 전송되는 데이터는 HWDATA 신호를 통해 전송된다. 한편, 슬레이브1(150a)로부터 데이터를 읽어오는 경우에는 HRDATA 신호를 통해 데이터가 전송된다.
상술한, S130 내지 S160에 의하여 와일드 마스터(200)로부터 슬레이브1(150a)으로 데이터를 전송(또는, 슬레이브1(150a)로부터 데이터를 로딩)하는 것과 동시에 마스터2(130)로부터 슬레이브2(150b)로 데이터를 전송(또는, 슬레이브 2(150b)로부터 데이터를 로딩)하기 위해 즉, 와일드 마스터(200)와 마스터2(130)가 동시에 서로 다른 슬레이브로 데이터를 병렬 전송하기 위해 S170 내지 S210을 진행하게 된다.
먼저, 상기 S130과 동시에 마스터2(130)는 데이터를 전송하고자 하는 슬레이브2(150b)에 접속하기 위하여 중재기(120)로 공용 버스(110) 사용 요청(HBUSREQx) 신호를 전송한다.
마스터2(130)로부터 공용 버스(110) 사용 요청 신호를 전송 받은 중재기(120)는 현재 공용 버스(110)를 사용하고 있는 다른 마스터가 있는지 여부와, 마스터2(130)로부터의 공용 버스(110) 사용 요청 신호 이외에 다른 마스터(예를 들면, 마스터 3(140))로부터 공용 버스(110) 사용 요청 신호가 전송 되는지 여부를 확인하여 공용 버스(110)의 사용을 중재한다(S170).
이후, 중재기(120)로부터 공용 버스(110)의 사용권을 획득한 마스터2(130)는 공용 버스(110)를 통해 슬레이브2(150b)로 접속요청((HSEL_S[x]) 신호를 전송한다(S180).
중재기(120)는 공용 버스(110)의 사용이 가능하고, 접속을 요청한 슬레이브2(150b)에 접속이 가능여부를 판단하고(S190), 상기 S190의 판단 결과, 접속이 가능한 경우, 슬레이브2(150b)에 접속을 요청한 마스터2(130)로 마스터 선택 (HMASTER, HREADYoutBus) 신호를 전송하여, 슬레이브2(150b)에 접속이 허여되었음을 알려준다(S200).
여기서, 슬레이브2(150b)의 접속가능 여부의 판별은 마스터2(130)로부터 전 송되어 슬레이브2(150b)에 입력된 접속 요청 신호보다 먼저 입력된 다른 마스터로부터의 접속 요청(HSEL_S[x]) 신호가 있는지를 확인을 통해 이루어질 수 있다. 또한, 마스터2(130)로부터의 접속 요청(HSEL_S[x]) 신호보다 앞서 중재기(120)로부터 제어 신호를 전송 받아, 이를 실행하고 있는지의 확인을 통해 이루어질 수 있다.
이후, 슬레이브2(150b)로부터의 마스터 선택 신호를 전송 받은 마스터2(130)는 슬레이브2(150b)로 HBURST 신호, HWRITE 신호, HSIZE 신호, HPROT 신호, HTRANS 신호를 전송하여 전송 또는 읽어오고자 하는 데이터의 전송 방식, 형태, 크기, 성격 등을 통보하고, 상기 신호들에 따라 슬레이브2(150b)로 데이터를 전송 한다(S210). 이때, 슬레이브2(150b)로 전송되는 데이터는 HWDATA 신호를 통해 전송된다. 한편, 슬레이브2(150b)로부터 데이터를 읽어오는 경우에는 HRDATA 신호를 통해 데이터가 전송된다.
상술한 S130 내지 S200과 같이 2개의 마스터가 동시에 서로 다른 슬레이브로 데이터를 전송하고자 하는 경우에 있어서, 종래 기술에 따른 버스 시스템의 데이터 전송 방법은 도 2에 도시된 바와 같이, 총 9개 사이클의 시간이 소요된다. 반면, 본 발명의 실시 예에 따른 버스 시스템을 이용한 데이터 전송 방법은 와일드 마스터를 포함한 2개의 마스터가 동시에 서로 다른 슬레이브로 데이터를 전송하고자 하는 경우에 도 10에 도시된 바와 같이, 병렬로 데이터를 전송할 수 있어 종래 기술에서 총 9개 사이클의 시간이 소요되었던 데이터 전송에 총 5개 사이클의 시간이 소요된다. 이를 통해, 데이터의 전송 시간 단축시킴과 아울러, 데이터 전송의 효율을 향상시킬 수 있다.
상기 S110으로 돌아가서, 복수의 마스터 중에 와일드 마스터(200)가 포함되어 있지 않으면, 중재기(120)가 복수의 마스터들(예를 들면, 마스터2 및 마스터3)의 공용 버스(110) 사용을 중재한다(S220). 이후, 중재기(120)의 공용 버스(110) 사용의 중재에 따라 접속하고자 하는 슬레이브로 접속하여 복수의 마스터들이 순차적으로 해당 슬레이브에 데이터를 전송(또는 해당 슬레이브로부터 데이터를 로딩)한다(S230).
상술한 바와 같이, 본 발명의 실시 예에 따른 버스 시스템과 이를 이용한 데이터 전송 방법은 복수의 마스터들 중에서 프로세서와 같이 많은 연산을 수행하고 데이터 전송의 신속성을 요하는 마스터의 데이터 처리를 공용 버스를 이용하지 않고 직접적으로 처리할 수 있기 때문에 동 시간대에 다른 마스터가 공용 버스를 이용하여 데이터를 처리할 수 있는 데이터의 병렬 처리가 가능하다. 이하에서는 이러한 본 발명의 실시 예에 따른 버스 시스템과 이를 이용한 데이터 전송 방법을 통한 얻을 수 있는 효과에 대하여 설명하기로 한다.
도 11은 본 발명의 실시 예에 따른 버스 시스템에서 슬레이브 수에 따른 병렬처리 효율을 나타내는 도면이다. 여기서, 도 11은 와일드 마스터를 포함하는 5개의 마스터들 및 13개의 슬레이브들을 포함하는 본 발명의 실시 예에 따른 버스 시스템에서, 와일드 마스터가 SDRAM 슬레이브에 접속할 확률이 제일 높고 다른 슬레이브들로 접속할 확률은 모든 동일하다고 가정하였으며, 그리고 와일드 마스터 이외의 마스터들은 메모리 접속을 위해 DMA를 내장한 데이터 전송이므로, SDRAM 슬레이브와 SRAM 슬레이브에만 접속한다고 가정하여 데이터 전성의 병렬처리 효율을 실 험하였다.
마스터들이 SDRAM 슬레이브에 접속할 확률에 따라 와일드 마스터의 병렬 처리 확률이 정해진다. 다른 마스터들의 SDRAM 슬레이브에 접속확률이 0%에 접속하면 병렬 처리 확률이 100%에 가까워지게 된다. 한편, 다른 마스터들의 SDRAM 슬레이브에 접속확률이 높아짐에 따라 병렬 처리 확률이 낮아짐을 알 수 있다.
와일드 마스터와 다른 마스터들의 SDRAM 슬레이브로의 접속확률에 차이를 두면서 버스 시스템을 운영할 때, 데이터 전송 효율을 극대화시킬 수 있다. 예를 들어, DMA가 내장된 마스터들은 데이터 양이 많으므로 용량이 큰 SDRAM 슬레이브를 통한 데이터 전송을 늘리고, 프로세서는 명령코드 (instruction code)와 데이터 코드를 SRAM 슬레이브로 리맵(remap)시켜서 SDRAM 슬레이브 보다 SRAM 슬레이브의 접속확률을 높일 경우, 데이터 전송 효율을 향상시킬 수 있다.
결론적으로, 도 11에 도시된 바와 같이, 본 발명의 실시 예에 따른 버스 시스템과 이를 이용한 데이터 전송 방법은 와일드 마스터를 포함하는 5개의 마스터와 슬레이브의 개수가 2 내지 4개 일 경우, 슬레이브의 수가 증가될수록 데이터 전송의 병렬 처리 확률 및 데이터 전송 효율을 향상시킬 수 있다.
또한, 슬레이브의 개수가 5개 이상일 때, 데이터 전송의 병렬 처리의 확률이 최고점을 유지함을 알 수 있다. 이를 통해, 본 발명의 실시 예에 따른 버스 시스템과 이를 이용한 데이터 전송 방법은 와일드 마스터를 포함하는 5개의 마스터와 슬레이브의 개수가 5개 이상인 경우 데이터 전송의 병렬 처리 확률을 최대로 높이면서, 데이터 전송 효율을 향상시킬 수 있다.
이어서, 도 12a 및 도 12b는 마스터의 수에 따른 데이터 병렬 처리 효율을 나타낸 것으로, 종래 기술에 따른 버스 시스템과 본 발명의 실시 예에 따른 버스 시스템의 데이터 전송 효율을 TLM(Transaction Level Model) 방법으로 고정된 우선 순위 판단 방법과 라운드 로빈 우선 순위 판단 방법을 각각 적용하여 비교하였다. 여기서, 슬레이브는 데이터 레이턴시가 길고, 가변적인 SDRAM을 적용하였으며, 마스터의 개수는 와일드 마스터를 포함하여 모두 4개를 적용하여 1,000,000 사이클 동안 시뮬레이션을 실행하였다. 도 12a 및 도 12b 모두 Case1, Case2, Case3, Case4에서 데이터 전송의 빈번함에 차이가 있으며, Case1에서 Case4로 갈수록 대기 사이클(idle cycle)의 길이가 길어지는 공통점이 있다.
도 12a는 고정된 우선 순위 판단 방법을 적용한 경우의 데이터 전송 효율을 비교하여 나타낸 것으로, 먼저 종래 기술의 데이터 전송 효율을 살펴보면, 평균 대기 사이클이 짧은 Case1에서는 우선 순위에 의한 마스터 별 공용 버스 점유율이 큰 차이를 보이고 있으나, 평균 대기 시간이 긴 Case4에서는 마스터 별 공용 버스 점유율의 차이가 거의 없음을 알 수 있다. 또한, Case1의 경우 우선순위가 높은 마스터M1과 가장 우선순위가 낮은 마스터 M4의 데이터 처리량의 차이가 크며, 또한 M4의 스타베이션이 발생하였다.
반면, 본 발명의 데이터 전송 효율을 살펴보면, Case1에서 Case4로 갈수록 우선순위의 비중이 낮아지는 것은 종래 기술과 동일하지만 Case1의 경우 우선순위가 높은 마스터 M1의 데이터 처리량이 약 250,000 사이클이고 우선순위가 낮은 마스터 M4의 데이터 처리량이 100,000 사이클로 마스터의 스타베이션이 발생하지 않 았음을 알 수 있다.
또한, 총 데이터 처리량도 종래 기술에서는 500,000 사이클 내외였으나, 본 발명에서는 700,000 사이클 내외로 200,000 사이클이 증가하여 종래 기술 대비 40%의 성능 향상을 보이고 있다. 이러한 성능 향상은 와일드 마스터를 통해 데이터의 전송의 병렬 처리를 가능하게 함으로써, 데이터 전송 시간을 단축시킴과 아울러, 전체 버스 시스템의 데이터 전송 효율을 향상시킬 수 있다.
이어서, 도 12b는 라운드 로빈 우선 순위 판단 방법을 적용한 경우의 데이터 전송 효율을 비교하여 나타낸 것으로, 먼저 종래 기술의 데이터 전송 효율을 살펴보면, 종래 기술의 경우 라운드 로빈 우선 순위 판단 방법의 특성이 그대로 반영되어 Case에 상관없이 모든 마스터들에게 공평하게 공용 버스 점유권이 배분되어 모든 마스터들이 비슷한 데이터 처리량을 보이고 있다.
반면, 본 발명의 데이터 전송 효율을 살펴보면, 종래 기술과는 다르게 와일드 마스터인 M1 마스터의 데이터 처리량이 다른 마스터들(M2, M3, M4) 보다 20,000 사이클 내지 50,000 사이클이 많음을 알 수 있다.
이는, 중재기의 중재를 받아 공용 버스를 통해 데이터를 전송하는 M2, M3, M4 마스터들의 데이터 처리량은 서로 비슷하지만, 와일드 마스터(M1)는 중재기의 중재 없이 즉, 라운드 로빈 방식을 적용을 받지 않고 슬레이브들로 직접 데이터를 전송하여 데이터 전송 시간이 단축되었고, 이를 통해, 데이터 전송 효율이 향상되었다. 또한, 와일드 마스터가 공용 버스를 이용하지 않으므로, M2, M3, M4 마스터들의 공용 버스 점유율이 높아져 M2, M3, M4 마스터들의 데이터 전송 효율도 종래 기술보다 향상되었다.
총 데이터 처리량을 살펴보면, 종래 기술에서는 500,000 사이클 내외였으나, 본 발명에서는 700,000 사이클 내외로 200,000 사이클이 증가하여 종래 기술 대비 40%의 성능 향상을 보이고 있다. 이러한 성능 향상은 와일드 마스터를 통해 데이터의 전송의 병렬 처리를 가능하게 함으로써, 데이터 전송 시간을 단축시킴과 아울러, 전체 버스 시스템의 데이터 전송 효율을 향상시킬 수 있다.
상술한 설명에서는, 일반적인 버스 중재 방식인 고정된 우선 순위 판단 방식과 라운드 로빈 판단 방식을 적용하여 본 발명의 실시 예에 따른 데이터 전송 방법을 설명하고, 데이터 전송 효율의 향상에 대한 효과를 설명하였으나, 상술한 일반적인 버스 중재 방식뿐만 아니라 다른 버스 중재 방식도 적용할 수 있다.
상기한 바와 같은 구성 및 작용은 하나의 실시 예로서 본 발명의 청구범위를 제한하는 것은 아니며, 본 발명의 기술적 사상을 변경하지 아니하는 범위 내에서 다양한 변경과 수정이 가능함은 본 발명이 속하는 분야에 종사하는 자에게는 자명함을 알 수 있다.
본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있음은 당업자에게 자명하다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니 되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
도 1은 일반적인 버스 시스템을 나타내는 도면.
도 2는 도 1의 버스 시스템을 이용한 데이터의 전송 방법을 나타내는 도면.
도 3은 본 발명의 실시 예에 따른 버스 시스템을 나타내는 도면.
도 4는 본 발명의 다른 실시 예에 따른 버스 시스템을 나타내는 도면.
도 5는 본 발명의 실시 예에 따른 버스 시스템의 마스터 래퍼를 나타내는 도면.
도 6은 도5의 마스터 래퍼에 적용되는 코드를 나타내는 도면.
도 7은 본 발명의 실시 예에 따른 버스 시스템의 슬레이브 래퍼를 나타내는 도면.
도 8a 내지 도 8c는 도 7의 슬레이브 선택부 및 마스터 선택부에 적용되는 코드를 나타내는 도면.
도 9는 본 발명의 실시 예에 따른 데이터의 전송 방법의 흐름도.
도 10는 본 발명의 실시 예에 따른 데이터 전송 방법의 일 예를 나타내는 도면.
도 11은 본 발명의 실시 예에 따른 버스 시스템에서 슬레이브 수에 따른 병렬 처리 효율을 나타내는 도면.
도 12a는 본 발명의 실시 예에 따른 버스 시스템을 이용한 데이터의 전송 방법에서 고정된 우선 순위 판단 방법을 적용시 마스터의 수에 따른 데이터 병렬 처리 효율을 종래 기술에 따른 버스 시스템과 대비하여 나타내는 도면.
도 12b는 본 발명의 실시 예에 따른 버스 시스템을 이용한 데이터의 전송 방법에서 라운드 로빈 우선 순위 판단 방법을 적용시 마스터의 수에 따른 데이터 병렬 처리 효율을 종래 기술에 따른 버스 시스템과 대비하여 나타내는 도면.
<도면 주요 부분에 대한 부호의 설명>
100 : 버스 시스템 110 : 공용 버스
120 : 중재기 130, 140 : 마스터
150 : 슬레이브 160 : 보조 버스
170 : 브리지 200 : 와일드 마스터
300 : 마스터 래퍼 310 : 디코더
320, 330, 340, 410 : MUX 400 : 슬레이브 래퍼
420 : OR 게이트 430 : 슬레이브 선택부
440 : 마스터 선택부

Claims (10)

  1. 복수의 마스터 및 복수의 슬레이브를 포함하는 버스 시스템에 있어서,
    상기 복수의 슬레이브 각각과 직접 연결된 배선을 통해 상기 복수의 슬레이브 각각으로 데이터를 직접 전송하는 와일드 마스터;
    상기 와일드 마스터 이외의 다른 마스터 및 슬레이브로부터의 데이터를 전송하는 공용 버스;
    상기 다른 마스터의 상기 공용 버스 사용을 중재하는 중재기;
    상기 와일드 마스터로부터의 데이터를 처리하여 상기 복수의 슬레이브 각각으로 전송하는 마스터 래퍼; 및
    상기 복수의 슬레이브 각각에 연결되고, 상기 마스터 래퍼 및 상기 다른 마스터로부터의 데이터를 처리하여 상기 복수의 슬레이브 각각으로 전송하는 복수의 슬레이브 래퍼를 포함하고,
    상기 마스터 래퍼는
    상기 와일드 마스터로부터 입력되는 슬레이브 접속 요청(버스 사용 요청) 신호와 슬레이브 주소 값을 이용하여 슬레이브 선택 신호를 생성하는 디코더; 및 복수의 먹스(MUX)를 포함하며,
    상기 복수의 먹스는
    상기 복수의 슬레이브로부터 전송되는 데이터 중에서 상기 와일드 마스터가 접속을 요청한 슬레이브로부터의 데이터를 상기 슬레이브 선택 신호를 통해 선별하여 상기 와일드 마스터로 전송하는 제 1 먹스,
    상기 복수의 슬레이브로부터 전송되는 데이터 전송에 대한 정보들 중에서 상기 와일드 마스터가 접속을 요청한 슬레이브로부터의 데이터 전송에 대한 정보를 상기 슬레이브 선택 신호를 통해 선별하여 상기 와일드 마스터로 전송하는 제 2 먹스, 및
    상기 복수의 슬레이브로부터 전송되는 마스터 접속 준비 신호들 중에서 상기 와일드 마스터가 접속을 요청한 슬레이브로부터의 마스터 접속 준비 신호를 상기 슬레이브 선택 신호를 통해 선별하여 상기 와일드 마스터로 전송하는 제 3 먹스를 포함하는 것을 특징으로 하는 버스 시스템.
  2. 제 1 항에 있어서,
    상기 와일드 마스터는
    상기 복수의 마스터 중에서 CPU, ARM(Advanced RISC Machine), 프로세서와 같이 다른 마스터에 비해 연산 횟수의 평균 값이 크고 데이터 전송의 신속성을 요하는 마스터인 것을 특징으로 하는 버스 시스템.
  3. 제 1 항에 있어서,
    상기 와일드 마스터는
    상기 복수의 슬레이브에 접속하자 하는 복수의 마스터 중에서 상기 복수의 슬레이브로의 접속에 대하여 최우선 순위를 가지는 것을 특징으로 하는 버스 시스템.
  4. 삭제
  5. 제 1 항에 있어서,
    상기 복수 슬레이브 래퍼 각각은
    상기 와일드 마스터를 포함한 상기 복수의 마스터로부터의 데이터를 상기 복수의 마스터 각각이 접속을 요청한 슬레이브로 전송함과 아울러, 입력되는 슬레이브 선택 신호를 통해 상기 복수의 마스터로부터 입력되는 데이터를 선별하여 상기 복수의 마스터 각각이 접속을 요청한 해당 슬레이브로 전송하는 먹스;
    상기 와일드 마스터로부터 입력되는 슬레이브 접속 요청 신호 또는 상기 다른 마스터로부터 입력되는 슬레이브 접속 요청 신호를 해당 슬레이브로 출력하는 OR 게이트;
    상기 와일드 마스터로부터 입력되는 슬레이브 접속 요청 신호 및 슬레이브로 전송하고자 하는 데이터의 전송 성격이 정의된 HTRANS 신호를 입력 받아 슬레이브 선택 신호를 생성하고, 생성된 슬레이브 선택 신호를 상기 먹스 및 마스터 선택부로 전송하는 슬레이브 선택부; 및
    상기 복수의 마스터로부터의 상기 슬레이브 접속 요청 신호, 상기 HTRANS 신호, 슬레이브로부터의 접속 가능 여부 신호 및 상기 슬레이브 선택부로부터의 슬레이브 선택 신호를 입력 받아 마스터 접속 준비 신호를 생성하고, 생성된 마스터 접속 준비 신호를 상기 복수의 마스터 각각에게 전송하는 마스터 선택부를 포함하는 것을 특징으로 하는 버스 시스템.
  6. 상기 제 1 항 내지 제 3 항 및 제 5 항 중 어느 한 항의 버스 시스템을 이용한 데이터 전송방법에 있어서,
    복수의 마스터 중에서 CPU, ARM(Advanced RISC Machine), 프로세서와 같이 다른 마스터에 비해 연산 횟수의 평균 값이 크고 데이터 전송의 신속성을 요하는 와일드 마스터는 복수의 슬레이브 각각과 직접 연결된 배선을 통해 상기 복수의 슬레이브 각각으로 직접 데이터를 전송하고,
    상기 와일드 마스터의 데이터 전송과 동시에, 상기 복수의 마스터 중에서 상기 와일드 마스터 이외의 다른 마스터는 중재기의 공용 버스 사용 중재에 따라 공용 버스를 통해 상기 복수의 슬레이브 각각으로 데이터를 전송하는 것을 특징으로 하는 데이터 전송방법.
  7. 제 6 항에 있어서,
    상기 와일드 마스터와 상기 다른 마스터는 동시에 서로 다른 슬레이브로 데이터를 전송하는 것을 특징으로 하는 데이터 전송방법.
  8. 제 6 항에 있어서,
    상기 와일드 마스터는 상기 복수의 슬레이브와 동시에 접속되어 상기 복수의 슬레이브 각각으로 데이터를 전송하는 것을 특징으로 하는 데이터 전송방법.
  9. 제 6 항에 있어서,
    상기 와일드 마스터는 상기 복수의 마스터 중에서 상기 복수의 슬레이브로의 접속에 대하여 최우선 순위를 가지는 것을 특징으로 하는 데이터 전송방법.
  10. 제 9 항에 있어서,
    상기 와일드 마스터와 상기 다른 마스터가 동일한 슬레이브로 동시에 데이터를 전송하고자 하는 경우,
    상기 와일드 마스터는 제 1 순위로 상기 슬레이브로 데이터를 전송하고,
    상기 다른 마스터는 상기 와일드 마스터의 전송 이후에 상기 중재기의 공용 버스 사용 중재에 따라 상기 슬레이브로 데이터를 전송하는 것을 특징으로 하는 데이터 전송방법.
KR1020080064484A 2008-07-03 2008-07-03 버스 시스템과 이를 이용한 데이터 전송 방법 KR100961965B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080064484A KR100961965B1 (ko) 2008-07-03 2008-07-03 버스 시스템과 이를 이용한 데이터 전송 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080064484A KR100961965B1 (ko) 2008-07-03 2008-07-03 버스 시스템과 이를 이용한 데이터 전송 방법

Publications (2)

Publication Number Publication Date
KR20100004360A KR20100004360A (ko) 2010-01-13
KR100961965B1 true KR100961965B1 (ko) 2010-06-08

Family

ID=41813941

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080064484A KR100961965B1 (ko) 2008-07-03 2008-07-03 버스 시스템과 이를 이용한 데이터 전송 방법

Country Status (1)

Country Link
KR (1) KR100961965B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102113670B1 (ko) * 2020-02-25 2020-05-20 주식회사 수산이앤에스 버스 확장 구조를 갖는 안전등급 제어기 및 이의 통신 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040225769A1 (en) 2002-12-23 2004-11-11 Stmicroelectronics S.R.L. Bus architecture with primary bus and secondary or slave bus for microprocessor systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040225769A1 (en) 2002-12-23 2004-11-11 Stmicroelectronics S.R.L. Bus architecture with primary bus and secondary or slave bus for microprocessor systems

Also Published As

Publication number Publication date
KR20100004360A (ko) 2010-01-13

Similar Documents

Publication Publication Date Title
US7143221B2 (en) Method of arbitrating between a plurality of transfers to be routed over a corresponding plurality of paths provided by an interconnect circuit of a data processing apparatus
US6691216B2 (en) Shared program memory for use in multicore DSP devices
US7475182B2 (en) System-on-a-chip mixed bus architecture
US6587905B1 (en) Dynamic data bus allocation
CN101013407A (zh) 支持多总线多类型存储器的内存仲裁实现系统和方法
US9122802B2 (en) Interconnect, bus system with interconnect and bus system operating method
US9372818B2 (en) Proactive quality of service in multi-matrix system bus
US7730244B1 (en) Translation of commands in an interconnection of an embedded processor block core in an integrated circuit
US7035958B2 (en) Re-ordering a first request within a FIFO request queue to a different queue position when the first request receives a retry response from the target
JP3919765B2 (ja) アービトレーションを管理する方法およびプロセッサ
EP1653370B1 (en) Bus controller
US6567881B1 (en) Method and apparatus for bridging a digital signal processor to a PCI bus
US9984014B2 (en) Semiconductor device
US7269682B2 (en) Segmented interconnect for connecting multiple agents in a system
KR100961965B1 (ko) 버스 시스템과 이를 이용한 데이터 전송 방법
US6178477B1 (en) Method and system for pseudo delayed transactions through a bridge to guarantee access to a shared resource
JPH09153009A (ja) 階層構成バスのアービトレーション方法
JPWO2004025478A1 (ja) メモリブロック間のレイテンシ差を活用するデータ処理装置および方法
JP4684577B2 (ja) 高速の帯域幅のシステムバスを仲裁するためのバスシステム及びその方法
KR101013767B1 (ko) 다중 버스 시스템과 이를 이용한 데이터 송신 방법
KR20100056652A (ko) 버스 시스템 성능 분석 방법
CN109840225B (zh) 一种异构双核处理器访问eFPGA的控制电路
JP4599524B2 (ja) データ処理装置及び方法
KR101013769B1 (ko) 버스 중재방법 및 장치
JP4249741B2 (ja) バスシステム及びバスシステムを含む情報処理システム

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140320

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150216

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160404

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee