KR101013769B1 - 버스 중재방법 및 장치 - Google Patents

버스 중재방법 및 장치 Download PDF

Info

Publication number
KR101013769B1
KR101013769B1 KR1020080127648A KR20080127648A KR101013769B1 KR 101013769 B1 KR101013769 B1 KR 101013769B1 KR 1020080127648 A KR1020080127648 A KR 1020080127648A KR 20080127648 A KR20080127648 A KR 20080127648A KR 101013769 B1 KR101013769 B1 KR 101013769B1
Authority
KR
South Korea
Prior art keywords
score
bus
master
masters
data
Prior art date
Application number
KR1020080127648A
Other languages
English (en)
Other versions
KR20100069077A (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 KR1020080127648A priority Critical patent/KR101013769B1/ko
Publication of KR20100069077A publication Critical patent/KR20100069077A/ko
Application granted granted Critical
Publication of KR101013769B1 publication Critical patent/KR101013769B1/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/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

본 발명은 버스 시스템에 관한 것으로, 특히 마스터의 스타베이션 발생을 줄임과 아울러, 버스 시스템의 데이터 전송 효율을 향상시킬 수 있는 버스 중재방법 및 장치에 관한 것이다.
본 발명의 실시 예에 따른 버스 중재방법은 복수의 마스터 및 복수의 슬레이브를 포함하는 버스 시스템에서의 버스 중재방법에 있어서, 상기 복수의 마스터 중에서 적어도 하나의 마스터로부터 버스 사용 요청이 이루어지면, 버스 사용 요청이 이루어진 마스터들 각각에 대하여 마스터의 특성에 따른 마스터 할당 스코어를 생성하는 단계; 상기 복수의 슬레이브 각각의 특성에 따른 슬레이브 할당 스코어를 생성하는 단계; 상기 마스터들 각각에 대하여 송수신하고자 하는 데이터의 특성에 따른 데이터 스코어를 생성하는 단계; 상기 마스터들 각각에 대하여 버스 사용 요청 사이클에 따른 요청 사이클 스코어를 생성하는 단계; 상기 마스터 할당 스코어, 슬레이브 할당 스코어, 데이터 스코어 및 요청 사이클 스코어를 합산하여 마스터 별 총 스코어를 산출하는 단계; 및 상기 마스터 별 총 스코어들을 비교하여 상기 총 스코어가 큰 순으로 버스 사용권한을 부여하는 단계를 포함하는 것을 특징으로 한다.
버스, 중재 장치, 우선순위, Fixed priority, Round robin, TDMA, Lottery, score, register

Description

버스 중재방법 및 장치{Method and apparatus for arbitrating a bus}
본 발명은 버스 시스템에 관한 것으로, 특히 마스터의 스타베이션 발생을 줄임과 아울러, 버스 시스템의 데이터 전송 효율을 향상시킬 수 있는 버스 중재방법 및 장치에 관한 것이다.
반도체 제조 공정의 발달에 힘입어 서로 다른 기능을 수행하는 여러 구성요소(component)들을 하나의 칩(Chip)에 집적시키는 SoC(System on Chip) 기술이 계발되어 회로설계에 널리 사용되고 있다. 이러한, SoC(System on Chip)는 시스템 설계와 구현 시 칩 크기와 설계비용을 점감시킴과 아울러, 구동 시 저전력 소모와 실시간 처리 능력 및 시스템의 유연성 면에서 향상된 성능을 제공할 수 있다.
SoC는 하드웨어 로직 뿐만 아니라 프로세서(processor), 롬(ROM), 램(RAM), 컨트롤러(controller), 주변장치의 회로를 하나의 칩에 집적화시키는 기술로, 여러 구송요소를 하나의 칩에 집적시키기 때문에 고장의 발생이 적으며, 더욱 더 작게 제품을 만들 수 있어, 제품의 단가를 낮출 수 있는 장점이 있다.
SoC의 구성요소는 복수의 마스터(Master)와 중재 장치(Arbiter), 복수의 슬레이브(Slave), 디코더(decoder) 및 마스터와 슬레이브 간의 데이터 송신을 위한 버스(Shared Bus)로 이루어져 있다. 일반적으로 마스터는 프로세서(CPU), DMA(Direct Memory Access), DSP(digital signal processor)를 뜻하며, CPU, DMA, DSP 등과 같이 어드레스나 제어 신호를 내보냄으로 "read"나 "write" 동작을 할 수 있도록 하는 주체를 말한다.
슬레이브는 DRAM, SRAM, SDRAM등과 같이 주어진 어드레스 공간 내에서 "read"나 "write"를 가능하게 해주는 메모리와 입출력 수단을 뜻한다.
디코더는 마스터로부터 나오는 어드레스의 상위 비트를 가지고 적절한 슬레이브를 선택해주는 역할을 수행한다. 그리고 중재 장치는 여러 개의 마스터가 동시간에 버스를 사용할 수 없기 때문에 이를 중재하는 역할을 수행한다.
하나의 칩에 여러 가지의 기능이 집적화된 SoC칩의 경우, 1개의 버스에 마스터, 중재 장치, 슬레이브 등이 연결된 버스 시스템이 필요하다. 다수의 마스터들이 하나의 버스를 동시에 사용하고자 하는 경우, 중재 장치에 의해 버스 허가 신호를 받은 복수의 마스터들이 순서대로 버스를 사용하여 데이터를 슬레이브(메모리)로 송신하거나, 슬레이브로부터 데이터를 로딩하게 된다.
다수의 마스터들이 하나의 버스를 동시에 사용하고자 하는 경우, 중재 장치에 의해 버스 사용 허가 신호를 받은 마스터들이 순서대로 버스를 사용하여 데이터를 슬레이브(메모리)로 전송하게 된다. 이를 위해, 중재 장치는 다수의 마스터들이 동시에 버스 사용을 요청할 때 우선순위를 결정하게 되는데, 중재 장치의 우선순위 결정 방식에 따라 칩의 성능이 달라지게 된다.
도 1은 일반적인 버스 시스템을 나타내는 도면이다. 도 1에서는 종래의 여러 버스 시스템들 중에서 AMBA(Advanced Micro-controller Bus Architecture) 시스템을 예로 하였고, 버스 시스템을 구성하는 복수의 마스터들 및 슬레이브들 중에서 각각 2개만 도시하였다.
도 1을 참조하면, 일반적인 버스 시스템(1)은 1개의 버스(10), 복수의 마스터(30, 32), 복수의 슬레이브(40, 42) 및 버스(10)을 사용을 중재하는 중재 장치(20)를 포함한다.
복수의 마스터(30, 32)는 복수의 슬레이브(40, 42)로 접속하고자 하는 경우 즉, 마스터들(30, 32)이 슬레이브들(40, 42)로 데이터를 송신하거나, 슬레이브들(40, 42)로부터 데이터를 로딩하고자 하는 경우, 중재 장치(20)에게 버스(10)의 사용을 요청하게 된다. 이때, 중재 장치(20)는 미리 정해진 우선순위 판단 방법에 따라 마스터들(30, 32) 각각의 버스(10) 사용의 우선권을 결정하며, 중재 장치(20)로부터 버스(10)의 사용 승인을 획득한 마스터가 버스(10)를 통해 슬레이브들(40, 42)로 접속하게 된다.
예를 들어, 제 1 마스터(30)가 제 1 슬레이브(40)로의 접속을 요청하고, 동시에 제 2 마스터(32)가 제 2 슬레이브(42)로의 접속을 요청한 경우, 중재 장치(20)는 미리 정해진 우선순위 판단 방법을 사용하여 버스(10) 사용의 우선권을 결정하며, 일반적으로 CPU, ARM 프로세서와 같이 많은 연산을 수행하고 신속성을 요하는 마스터에 버스(10) 사용의 우선권을 부여한다. 여기서, 중재 장치(20)에 적용되는 중재 방식은 고정된 우선순위(Fixed Priority) 방식과, 라운드 로빈(Round Robin Priority) 방식과, TDMA 방식 및 로터리(Lottery) 방식이 있다.
고정된 우선순위 방식은 다수의 마스터들에 대해 미리 순위를 정해놓고 정해진 순위에 따라 버스 사용권한을 부여하는 방식을 의미한다. 각각의 마스터에 대해 우선순위를 프로세서(ARM, CPU), DSP, DMA1, DMA2의 순서로 1, 2, 3, 4 순위를 순차적으로 정해 놓고, 복수의 마스터가 동시에 버스에 접근하고자 하는 경우, 우선순위가 높은 마스터에게 버스 사용권을 주게 된다.
라운드 로빈 방식은 마스터의 버스 사용 우선순위가 시간에 따라 골고루 분배되도록 버스 사용의 우선권을 주는 방식이다. 즉, 마스터에 일정 시간을 할당하고, 할당된 시간이 지나면 그 마스터는 잠시 보류한 뒤 다른 마스터에게 버스 사용 우선권을 주고, 해당 할당 시간이 지나면, 또 그 다음 마스터에게 버스 사용 우선권을 주는 운영 방식이다.
그런데, 고정된 우선순위 방식의 경우, 마스터가 처리하게 될 데이터의 특성 등을 고려하지 않으며, 단순히 마스터의 종류에 따라 우선순위를 결정하므로, 데이터 처리 시간 측면에서 효율이 낮은 문제점이 있었다.
또한, 라운드 로빈 방식의 경우, 고정된 우선순위 없이 마스터에 할당된 시간 정보를 참조하여 우선순위를 정하므로 모든 마스터들에게 버스 사용권한이 골고루 할당되어 스타베이션의 발생을 줄일 수 있지만, 빨리 처리해야 할 중요한 특정 데이터가 발생되거나, 특정 마스터가 대용량의 데이터를 송수신하고자 하는 경우에, 이에 대한 처리가 늦어지는 문제점이 있다.
상술한, 고정된 우선순위 방식과 라운드 로빈 방식의 단점을 보완하기 위해, TDM 방식과 로터리 방식이 제안 되었다.
TDM 방식은 고정된 우선순위 방식과 라운드 로빈 방식의 단점을 일부 보완하였지만, 기본적으로 여러 마스터들에게 골고루 버스 사용의 우선권이 부여됨으로 중요한 데이터를 처리해야 하는 마스터의 경우 대기 시간이 길어지는 문제점이 있다.
로터리 방식은 확률적으로 여러 마스터들에게 버스 사용의 우선권이 부여되는 방식으로 이 또한 중요한 데이터를 처리해야 하는 마스터의 경우 대기 시간이 길어지는 문제점이 있다.
상술한 문제점들로 인해 복수의 마스터들 간의 버스 사용을 효율적으로 중재하여 데이터 전송 효율을 향상시킬 수 있는 버스 중재방법이 요구되고 있다.
본 발명은 상술한 문제점을 해결하기 위한 것으로서, 마스터들과 슬레이브들 각각의 특성 및 전송하고자 하는 데이터의 특성에 따라 스코어를 부여하고, 마스터 별로 부여된 스코어들의 비교를 통해 높은 스코어를 가지는 마스터의 순서로 버스 사용권한을 부여함으로써, 스타베이션의 발생을 줄을 수 있는 버스 중재방법 및 장치를 제공하는 것을 기술적 과제로 한다.
본 발명은 상술한 문제점을 해결하기 위한 것으로서, 마스터들과 슬레이브들 각각의 특성 및 전송하고자 하는 데이터의 특성에 따라 스코어를 부여하고, 마스터 별로 부여된 스코어들의 비교를 통해 높은 스코어를 가지는 마스터의 순서로 버스 사용권한을 부여함으로써, 버스 시스템의 데이터 전송효율을 향상시킬 수 있는 버스 중재방법 및 장치를 제공하는 것을 기술적 과제로 한다.
상술한 목적을 달성하기 위한 본 발명의 실시 예에 따른 버스 중재방법은 복수의 마스터 및 복수의 슬레이브를 포함하는 버스 시스템에서의 버스 중재방법에 있어서, 상기 복수의 마스터 중에서 적어도 하나의 마스터로부터 버스 사용 요청이 이루어지면, 버스 사용 요청이 이루어진 마스터들 각각에 대하여 마스터의 특성에 따른 마스터 할당 스코어를 생성하는 단계; 상기 복수의 슬레이브 각각의 특성에 따른 슬레이브 할당 스코어를 생성하는 단계; 상기 마스터들 각각에 대하여 송수신하고자 하는 데이터의 특성에 따른 데이터 스코어를 생성하는 단계; 상기 마스터들 각각에 대하여 버스 사용 요청 사이클에 따른 요청 사이클 스코어를 생성하는 단계; 상기 마스터 할당 스코어, 슬레이브 할당 스코어, 데이터 스코어 및 요청 사이클 스코어를 합산하여 마스터 별 총 스코어를 산출하는 단계; 및 상기 마스터 별 총 스코어들을 비교하여 상기 총 스코어가 큰 순으로 버스 사용권한을 부여하는 단계를 포함하는 것을 특징으로 한다.
상술한 목적을 달성하기 위한 본 발명의 실시 예에 따른 버스 중재장치는 복수의 마스터 및 복수의 슬레이브를 포함하는 버스 시스템에서의 버스 중재장치에 있어서, 버스 사용 요청이 이루어진 마스터들 각각에 대하여 마스터의 특성에 따른 스코어를 생성하는 마스터 스코어 생성부; 상기 복수의 슬레이브 각각의 특성에 따른 스코어를 생성하는 슬레이브 스코어 생성부; 상기 마스터들 각각에 대하여 송수신하고자 하는 데이터의 특성에 따른 스코어를 생성하는 버스트 스코어 생성부; 상기 마스터들 각각에 대하여 버스 사용 요청 사이클에 따른 스코어를 생성하는 요청 사이클 스코어 생성부; 마스터로부터의 버스 사용 사이클을 카운팅 하여 상기 요청 사이클 스코어 생성부에 제공하는 카운터; 상기 마스터 스코어 생성부, 슬레이브 스코어 생성부, 버스트 스코어 생성부, 요청 사이클 스코어 생성부로부터의 스코어들을 합산하여 총 스코어를 산출하는 스코어 합산부; 및 마스터 별로 산출된 총 스코어들을 비교하여 상기 총 스코어가 큰 순으로 버스 사용권한 신호(Grant[X])를 생성하여 출력하는 비교기를 포함하는 것을 특징으로 한다.
상술한 목적을 달성하기 위한 본 발명의 실시 예에 따른 버스 중재장치는 마스터들 각각의 특성에 따른 스코어를 제공하는 마스터 할당 레지스터(MSREQ: Master Score assignment Register)와, 마스터와 슬레이브 간에 송수신이 이루어지는 데이터의 버스트 특성에 따른 스코어를 제공하는 버스트 할당 레지스터(BSREQ: Burst Score assignment Register)와, 슬레이브의 특성에 따른 스코어를 제공하는 슬레이브 할당 레지스터(SSREG: Slave Score assignment Register) 및 버스 이용 요청의 사이클에 따라 스코어를 제공하는 요청 사이클 할당 레지스터(RSREG: Request Score assignment Register)를 포함하는 것을 특징으로 한다.
상술한 목적을 달성하기 위한 본 발명의 실시 예에 따른 버스 중재장치의 상기 마스터 할당 레지스터, 버스트 할당 레지스터, 슬레이브 할당 레지스터 및 요청 사이클 할당 레지스터에 설정되는 스코어는 사용자가 원하는 값으로 설정될 수고, 사용자가 특정 값을 설정하지 않은 경우에는 미리 설정된 초기 값(reset value)를 가지는 것을 특징으로 한다.
상술한 바와 같이, 본 발명의 실시 예에 따른 버스 중재방법 및 장치는 마스터들과 슬레이브들 각각의 특성 및 전송하고자 하는 데이터의 특성에 따라 스코어를 부여하고, 마스터 별로 부여된 스코어들의 비교를 통해 높은 스코어를 가지는 마스터의 순서로 버스 사용권한을 부여함으로써, 스타베이션의 발생을 줄을 수 있다.
상술한 바와 같이, 본 발명의 실시 예에 따른 버스 중재방법 및 장치는 마스터들과 슬레이브들 각각의 특성 및 전송하고자 하는 데이터의 특성에 따라 버스 사용권한의 스코어를 부여하고, 마스터 별로 부여된 스코어들의 비교를 통해 높은 스 코어를 가지는 마스터의 순서로 버스 사용권한을 부여함으로써, 버스 시스템의 데이터 전송효율을 향상시킬 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예에 대하여 설명하기로 한다.
본 발명은 버스 시스템에 관한 것으로, 특히 데이터 전송 효율을 향상시킬 수 있는 버스 중재방법 및 장치에 관한 것이다. 구체적으로, 본 발명의 실시 예에 따른 버스 중재방법 및 장치는 마스터들과 슬레이브들 각각의 특성 및 전송하고자 하는 데이터의 특성에 따라 버스 사용권한의 가중치(스코어)를 부여하고, 마스터 별로 부여된 가중치(스코어)들의 비교를 통해 높은 가중치(스코어)를 가지는 마스터의 순서로 버스 사용권한을 부여함으로써, 스타베이션의 발생을 줄임과 아울러, 버스 시스템의 데이터 전송효율을 향상시키고자 한다.
도 2는 본 발명의 실시 예에 따른 버스 중재 장치를 나타내는 도면이다.
도 2를 참조하면, 본 발명의 실시 예에 따른 버스 중재 장치(100)는 버스 시스템에 구성된 마스터들의 버스 사용을 중재하는데, 버스 시스템에 구성된 마스터들과 슬레이브들 각각의 특성 및 전송하고자 하는 데이터의 특성에 따라 버스 사용 우선순위 결정에 이용되는 스코어를 부여한다. 그리고, 마스터 별로 부여된 스코어의 총 합산 값의 비교하여 높은 스코어를 가지는 마스터의 순서로 버스 사용권한(Grant)을 부여한다.
이를 위해, 본 발명의 실시 예에 따른 버스 중재 장치(100)는 복수의 서브 레지스터를 포함하는 스코어 레지스터(110, score register)와, 비교기에 중재 개시 신호(arbitration start signal)를 제공하는 클럭 생성부(120, clock generator)와, 복수의 마스터들 각각의 우선순위 결정에 이용되는 스코어를 산출하는 복수의 스코어 산출부(130, score calculator) 및 버스 이용을 요청한 마스터들의 스코어를 비교하여 가장 높은 스코어를 가지는 마스터에 대한 Grant[X] 신호를 생성하는 비교기(140, comparator)를 포함한다.
스코어 레지스터(110)는 복수의 서브 레지스터를 포함한다. 여기서, 복수 서브 레지스터는 마스터들 각각의 특성에 따른 스코어를 제공하는 마스터 할당 레지스터(112, MSREQ: Master Score assignment Register)와, 마스터와 슬레이브 간에 송수신이 이루어지는 데이터의 버스트 특성에 따른 스코어를 제공하는 버스트 할당 레지스터(114, BSREQ: Burst Score assignment Register)와, 슬레이브의 특성에 따른 스코어를 제공하는 슬레이브 할당 레지스터(116, SSREG: Slave Score assignment Register) 및 버스 이용 요청의 사이클에 따라 스코어를 제공하는 요청 사이클 할당 레지스터(118, RSREG: Request Score assignment Register)를 의미한다.
여기서, 마스터 할당 레지스터(112), 버스트 할당 레지스터(114), 슬레이브 할당 레지스터(116) 및 요청 사이클 할당 레지스터(118)의 스코어는 도 3b 내지 도 3e에 도시된 바와 같이, 사용자가 원하는 값으로 설정될 수 있다. 그리고, 사용자가 특정 값을 설정하지 않은 경우에는 도 3a에 도시된 바와 같이, 초기 값(reset value)를 가지게 된다. 여기서, 마스터 할당 레지스터(112), 버스트 할당 레지스 터(114), 슬레이브 할당 레지스터(116) 및 요청 사이클 할당 레지스터(118)의 초기 값은 사용자가 원하는 값으로 설정이 가능하다.
마스터 할당 레지스터(112)는 도 3b에 도시된 바와 같이, 32비트(bit)로 구성될 수 있으며, 복수의 마스터 별로 사용자가 원하는 스코어 값을 설정할 수 있다. 예를 들어, 각각의 마스터에게 4비트가 할당되는 경우, 마스터 0 내지 마스터 5 각각에 대하여 0 스코어부터 15 스코어까지 스코어를 할당할 수 있다.
본 발명에서는 일 예로서, 마스터 0로부터 마스터 5의 순서로 6 스코어부터 1 스코어를 초기 값으로 할당하였다. 마스터 할당 레지스터(112)에 설정된 마스터 별 스코어는 복수의 스코어 산출부(130) 각각에 형성된 마스터 스코어 생성부(131)에 제공된다.
이어서, 버스트 할당 레지스터(114)는 도 3c에 도시된 바와 같이, 32비트(bit)로 구성될 수 있으며, 데이터가 싱글인지 버스트 인지 및 버스트의 길이에 따라 사용자가 원하는 스코어 값을 설정할 수 있다. 예를 들어, 4비트가 할당되는 경우, 싱글로부터 16 버스트에 대하여 0 스코어부터 15 스코어까지 할당할 수 있다.
본 발명에서는 일 예로서, 데이터가 싱글인 경우에는 0 스코어, 데이터가 2 버스트 인 경우에는 1 스코어, 데이터가 4 버스트인 경우에는 2 스코어, 데이터가 8 버스트인 경우에는 3 스코어, 데이터가 16 버스트인 경우에는 4 스코어를 초기 값으로 할당하였다. 버스터 할당 레지스터(114)에 설정된 데이터의 버스트 특성에 따른 스코어는 복수의 스코어 산출부(130) 각각에 형성된 버스트 스코어 생성 부(132)에 제공된다.
이어서, 슬레이브 할당 레지스터(116)는 도 3d에 도시된 바와 같이, 32비트(bit)로 구성될 수 있으며, 슬레이브의 특성에 따라 사용자가 원하는 스코어 값을 설정할 수 있다. 예를 들어, 슬레이브 별로 4비트가 할당되는 경우, 각각의 슬레이브에 대하여 0 스코어부터 15 스코어까지 할당할 수 있다.
본 발명에서는 일 예로서, 슬레이브의 대기시간(latency)을 고려하여, 대기시간이 짧은 SRAM에 4 스코어를 할당하고, SRAM 보다 대기시간이 긴 SDRAM에는 0 스코어를 할당하였다. 슬레이브 할당 레지스터(116)에 설정된 슬레이브의 특성에 따른 스코어는 복수의 스코어 산출부(130) 각각에 형성된 슬레이브 스코어 생성부(133)에 제공된다.
이어서, 요청 사이클 할당 레지스터(118)는 도 3e에 도시된 바와 같이, 32비트(bit)로 구성될 수 있으며, 복수의 마스터 각각의 버스 사용 요청 신호의 사이클(cycle)에 따라 사용자가 원하는 스코어 값을 설정할 수 있다.
구체적으로, 마스터로부터의 요청 사이클이 미리 설정된 사이클(예를 들면 100 사이클) 미만인 경우(SRC: Short Request Cycle)에는 0 스코어부터 15 스코어까지 할당할 수 있다. 그리고, 마스터로부터의 요청 사이클이 미리 설정된 사이클(예를 들면 100 사이클) 이상인 경우(LRC: Long Request Cycle)에는 0 스코어부터 LRC에 할당된 비트 수에 따른 최대 스코어, 예를 들어 LRC에 16 비트가 할당되는 경우 65536 스코어까지 할당할 수 있다.
한편, 마스터로부터의 요청 사이클이 미리 설정된 사이클(예를 들면 100 사 이클) 이상인 경우, 상기 LRC를 요청 사이클의 증가에 따라 단계별로 적용할 수 있다. 본 발명에서는 일 예로서, 요청 사이클이 100 사이클 이상인 경우에는 10 스코어를 LRC 1에 할당하고, 200 사이클 이상인 경우에는 20 스코어를 LRC 2에 할당하고, 400 사이클 이상인 경우에는 40 스코어를 LRC 3에 할당할 수 있다. 요청 사이클 할당 레지스터(118)에 설정된 요청 사이클에 스코어는 복수의 스코어 산출부(130) 각각에 형성된 요청 사이클 스코어 생성부(134)에 제공된다.
다시 도2를 참조하면, 복수의 스코어 산출부(130)는 버스 시스템을 구성하는 복수의 마스터들 각각과 대응되도록, 상기 복수의 마스터들의 수와 적어도 동일한 수로 형성된다.
복수의 스코어 산출부(130) 각각은 마스터 스코어 생성부(131)와, 버스트 스코어 생성부(132)와, 슬레이브 스코어 생성부(133)와, 요청 사이클 스코어 생성부(134)와, 스코어 합산부(135) 및 카운터(136)를 포함한다.
이하에서는 복수의 스코어 산출부(130) 중에서 제 1 마스터와 대응되는 제 1 스코어 산출부의 구성 및 동작에 대하여 설명하며, 설명되지 않은 다른 마스터들 각각과 대응되는 나머지 스코어 산출부들은 상기 제 1 스코어 산출부와 동일한 구성을 가지며, 동일한 동작을 수행한다.
먼저, 마스터 스코어 생성부(131)는 제 1 마스터로부터 버스 사용 요청(Request signal)이 이루어지면, 스코어 레지스터(110)로부터 마스터 할당 레지스터(112)를 제공받아, 제 1 마스터의 스코어 값을 생성한다.
버스트 스코어 생성부(132)는 제 1 마스터로부터 버스 사용 요청(Request signal)이 이루어지면, 스코어 레지스터(110)로부터 버스트 할당 레지스터(114)를 제공받아, 제 1 마스터가 버스를 통해 송수신 하고자 하는 데이터가 싱글인지, 버스트 인지 및 버스트의 길이에 따라 설정되는 버스트 스코어 값을 생성한다.
슬레이브 스코어 생성부(133)는 제 1 마스터로부터 버스 사용 요청(Request signal)이 이루어지면, 입력되는 어드레스(Address[0])를 통해 버스 시스템에 구성된 복수의 슬레이브 중에서 제 1 마스터가 버스를 통해 데이터를 송수신 하고자 하는 제 1 슬레이브를 구분 한다. 그리고, 스코어 레지스터(110)로부터 슬레이브 할당 레지스터(116)를 제공받아, 제 1 마스터가 버스를 통해 데이터를 송수신 하고자 하는 상기 제 1 슬레이브의 특성에 따른 슬레이브 스코어 값을 생성한다.
요청 사이클 생성부(134)는 제 1 마스터로부터 버스 사용 요청(Request signal)이 이루어지면, 카운터(136)로부터 입력되는 요청 사이클 값에 따라 요청 사이클 스코어 값을 생성한다.
카운터(136)는 제 1 마스터로부터 버스 사용 요청[Request[0]]이 입력되면 상기 버스 사용 요청의 사이클을 카운트하여 요청 사이클 값을 생성하고, 생성된 요청 사이클 값을 요청 사이클 생성부(134)에 제공한다.
스코어 합산부(135)는 마스터 스코어 생성부(131)로부터 제공되는 마스트 스코어와, 버스트 스코어 생성부(132)로부터 제공되는 버스트 스코어와, 슬레이브 스코어 생성부(133)로부터 제공되는 슬레이브 스코어 및 요청 사이클 생성부(134)로부터 제공되는 요청 사이클 스코어를 합산하여, 상기 제 1 마스터의 버스 사용 요청에 따른 총 스코어를 산출한다.
클럭 생성부(120)는 복수의 마스터들 중에서 적어도 하나의 마스터로부터 버스 사용 요청이 이루어지면, 중재 개시 신호(Arbitration start signal)를 생성하고, 생성된 중재 개시 신호를 비교기(140)에 제공한다.
비교기(140)는 동일 시점(사이클)에 복수의 마스터가 버스를 사용하고자 하는 경우, 복수의 스코어 산출부(130)로부터 입력되는 마스터 별 스코어를 비교하여, 스코어가 큰 마스터로부터 스코어가 작은 마스터 순으로 버스 사용권한을 할당하고, 이를 Grant[X] 신호로 출력하여 버스 사용권한이 부여된 마스터 및 상기 버스 사용권한이 부여된 마스터가 접속하고자 하는 슬레이브에 알려준다.
한편, 비교기(140)는 임의의 시점(사이클)에서 버스 시스템을 구성하는 복수의 마스터들 중에서 하나의 마스터가 버스를 사용하고자 하는 경우에는 해당 마스터에게 버스 사용의 우선 권한이 부여되도록 Grant[X] 신호를 생성 및 출력한다.
상술한 구성을 포함하는 버스 중재 장치(100)는 마스터들의 버스 사용 우선순위의 판단에 있어서, 마스터들과 슬레이브들 각각의 특성에 따라 스코어를 할당한다. 또한, 전송하고자 하는 데이터의 특성을 고려(마스터와 슬레이브 간에 송수신이 이루어지는 데이터가 싱글인지 버스트 인지 및 버스트의 길이를 고려)하여 각 특성에 따라 스코어를 할당한다.
그리고, 사용자의 우선권 요구에 따라 소정 항목을 설정하고(예를 들면, 전송되는 데이터의 크기를 구분하여 스코어 부여), 상기 소정 항목에 별도의 스코어를 할당할 수 있다. 이를 통해, 버스 사용 요청이 이루어지는 사이클에서 최적의 버스 사용 중재가 이루어지도록 할 수 있다.
도 4를 참조하면, 버스 사용의 우선순위 판단 방법은 대표적으로 고정된 우선순위(Fixed Priority) 방식과, 라운드 로빈(Round Robin Priority) 방식과, TDMA 방식, 로터리(Lottery) 방식 및 레이턴시 어워드(latency award) 방식을 이용할 수 있다.
버스 사용의 우선순위를 결정하는 방식들 중에서 고정된 우선순위 방식의 경우 각 마스터들은 미리 설정된 고정된 우선순위를 이용하여 중요한 마스터에게 버스 사용의 우선권을 부여할 수 있는 장점이 있다. 그러나, 특정 마스터의 우선순위가 낮은 경우에 스타베이션이 발생할 수 있는 단점이 있다. 즉, 버스 사용 요청 대기시간, 접속하고자 하는 슬레이브의 특성 및 송수신이 이루어지는 데이터의 특성을 고려하여 버스 사용권한을 부여하고 있지 못하다.
라운드 로빈 방식의 경우 마스터의 버스 우선순위를 시간에 따라서 다르게 변화시켜서 모든 마스터들에게 골고루 버스 사용권한을 할당하므로, 스타베이션의 발생을 방지할 수 있는 장점이 있다. 그러나, 라운드 로빈 방식은 미리 설정된 우선순위 없이 버스 사용의 순위를 정하므로, 빨리 처리해야 할 중요한 마스터의 데이터 전송이 늦어지는 단점이 있다. 즉, 마스터의 특성, 슬레이브의 특성 및 송수신이 이루어지는 데이터의 특성을 고려하여 버스 사용권한을 부여하고 있지 못하다.
TDMA 방식 및 lottery 방식은 복수의 마스터들에게 버스 사용권한이 골고루 돌아가기 때문에 스타베이션을 방지할 수 있는 장점을 가지고 있지만, 중요한 데이터 처리를 가져야 하는 마스터의 대기시간이 길어 질 수 있다는 단점을 가지고 있 다. 즉, 마스터의 특성, 슬레이브의 특성 및 송수신이 이루어지는 데이터의 특성을 고려하여 버스 사용권한을 부여하고 있지 못하다.
레이턴시 어워드 방식은 버스 사용 요청의 대기시간이 일정 사이클을 초과하지 않도록 마스터들에게 버스 사용권한이 할당되므로, 스타베이션을 방지할 수 있는 장점을 가지고 있지만, 버스 사용 요청의 대기시간 만을 고려하므로 중요한 데이터를 전송시 효율적이지 못하다. 즉, 마스터의 특성, 슬레이브의 특성 및 송수신이 이루어지는 데이터의 특성을 고려하여 버스 사용권한을 부여하고 있지 못하다.
마스터의 특성을 고려하는 경우, 상기 고정된 우선순위 방식을 적용할 수 있는데, 버스 시스템이 6개의 마스터로 구성되는 경우, 6개 마스터들의 중요도를 구분하여 우선순위를 달리 설정할 수 있다. 그리고, 달리 설정된 우선순위에 스코어를 부여하여 마스터들의 특성이 버스 사용 중재에 반영되도록 할 수 있다.
버스 시스템에서 스타베이션 발생을 방지하기 위해서는 라운드 로빈 방식과 같이, 모든 마스터들에게 버스 사용권한이 골고루 할당되도록 할 수 있다. 그리고, 레이턴시 어워드 방식과 같이, 일정 사이클 동안 버스 사용 요청이 이루어지는 경우, 해당 마스터에게 버스 사용권한이 할당되도록 할 수 있다.
버스 시스템의 고성능을 위해서는 슬레이브 특성을 고려하여 대기시간이 짧은 슬레이브로 접속하고자 하는 경우 버스 사용권한이 할당되도록 할 수 있다. 그리고, 마스터와 슬레이브 간에 송수신되는 데이터가 싱글인지 버스트 인지 및 데이터가 버스인 경우 버스트의 길이에 따라서 버스 사용권한의 우선순위를 달리할 수 있다.
그리고, 사용자의 우선권 요구에 따라서 따라 소정 항목을 설정하고(예를 들면, 전송되는 데이터의 크기를 구분하여 스코어 부여), 상기 소정 항목에 따라서 버스 사용권한의 우선순위를 달리할 수 있다.
도 5를 참조하여, 본 발명의 실시 예에 따른 버스 중재방법에 대하여 구체적으로 설명하기로 한다.
본 발명의 실시 예에 따른 버스 중재방법은 마스터들의 특성이 버스 중재에 반영되도록 6개의 마스터들 각각에 대하여 제 1 마스터(마스터 0)으로부터 제 6 마스터(마스터 0)까지 순차적으로 6 스코어부터 1 스코어를 할당할 수 있다. 즉, 복수의 마스터들의 중요도에 따라 순차적으로 높은 스코어를 할당할 수 있다.
이어서, 본 발명의 실시 예에 따른 버스 중재방법은 스타베이션의 발생을 방지하기 위해, 마스터의 버스 사용 요청 사이클을 카운트하여, 마스터의 버스 사용 요청 사이클에 따라서, 소정의 스코어를 부여할 수 있다. 또한, 마스터의 버스 사용 요청 사이클이 일정 사이클 이상인 경우 소정의 스코어를 부여할 수 있다.
예를 들면, 버스 사용 요청 사이클이 미리 설정된 사이클 예를 들면, 100 사이클 미만인 경우 즉, 짧은 버스 사용 요청 사이클(SRC: Short Request cycle)인 경우에는 도 3e에 도시된 바와 같이, 마스터의 버스 사용 요청 사이클에 따라서, 0 스코어 내지 15 스코어를 할당할 수 있다. 또한, 마스터의 버스 사용 요청 사이클이 일정 사이클 예를 들면, 100 사이클 이상인 경우 소정의 스코어를 부여할 수 있다.
그리고, 마스터로부터의 요청 사이클이 미리 설정된 사이클이 일정 사이클 이상인 경우, 요청 사이클의 증가에 따라 단계별로 스코어를 할당할 수 있다. 일 예로서, 요청 사이클이 100 사이클 이상인 경우에는 10 스코어를 할당하고, 200 사이클 이상인 경우에는 20 스코어를 할당하고, 400 사이클 이상인 경우에는 40 스코어를 할당할 수 있다.
이어서, 본 발명의 실시 예에 따른 버스 중재방법은 버스 시스템의 데이터 전송효율을 높이기 위해서, 슬레이브의 특성 및 마스터와 슬레이브 간에 송수신되는 데이터의 특성을 고려하여 스코어를 할당할 수 있다.
버스 시스템이 고성능(high performance)을 얻기 위해서는 동일 시간에 보다 많은 데이터의 송수신이 이루어져야 한다. 데이터의 송수신에 영향을 주는 요인으로는 슬레이브의 대기시간과 버스트의 길이가 있을 수 있는데, 본 발명의 실시 예에 따른 버스 중재방법에서는 상기 두 가지 사항을 버스 중재에 반영할 수 있다.
예를 들면, 동일 시점(사이클)에 복수의 마스터가 서로 다른 슬레이브로 접속하고자 하는 경우, 상기 서로 다른 슬레이브 중에서 대기시간이 짧은 슬레이브에 보다 높은 스코어를 부여한다. 만약, 제 1 마스터가 SRAM에 접속하고자 하고, 제 2 마스터가 SDRAM에 접속하고자 하는 경우, SDRAM 보다 대기시간이 짧은 SRAM에 4 스코어를 할당할 수 있다.
또한, 본 발명의 실시 예에 따른 버스 중재방법은 버스터의 길이가 길수록 높은 스코어를 할당할 수 있다.
도 6을 참조하면, 제 1 마스터(마스터 0)가 10 버스트의 데이터를 전송하기 위해 버스 사용을 요청한 경우, 제 1 마스터에게 버스 사용권한을 할당하면 중재 사이클(arbitration cycle)을 포함하여 총 11 사이클에 상기 10 버스트의 데이터를 전송할 수 있다.
한편, 제 2 마스터(마스터 1), 제 3 마스터(마스터 2), 제 4 마스터(마스터 3), 제 5 마스터(마스터 4), 제 6 마스터(마스터 5) 각각이 2 버스트의 데이터를 전송하기 위해 각각 버스 사용을 요청한 경우, 제 2 마스터(마스터 1)으로부터 제 6 마스터(마스터 5)의 순서로 버스 사용권한을 할당하면 중재 사이클(arbitration cycle)을 포함하여 총 15 사이클에 상기 총 10 버스트의 데이터를 전송하게 된다.
즉, 10 버스트의 데이터를 전송하고자 하는 제 1 마스터에게 버스 사용권한을 할당한 경우에는 11 사이클 동안에 상기 10 버스트의 데이터를 전송할 수 있다. 그러나, 2 버스트의 데이터를 전송하고자 하는 제 2 내지 제 6 마스터에게 버스 사용권한을 할당하면 15 사이클 동안에 상기 10 버스트의 데이터를 전송하게 된다. 그러므로, 데이터의 버스트 길이가 긴 마스터에게 버스 사용권한을 할당할수록 고성을 얻을 수 있다.
이에 따라, 본 발명의 실시 예에 따른 버스 중재방법은 일 예로서, 전송하고자 하는 데이터가 싱글인 경우에는 0 스코어, 2 버스트인 경우에는 1 스코어, 4 버스트인 경우에는 2 스코어, 8 버스트인 경우에는 3 스코어, 16 버스트인 경우에는 4 스코어를 할당하여 데이터의 특성이 버스 중재에 반영되도록 할 수 있다.
이어서, 본 발명의 실시 예에 따른 버스 중재방법은 사용자의 요구에 따라 소정 항목을 설정하고, 상기 소정 항목에 스코어를 부여할 수 있다. 사용자가 송수신되는 데이터의 형태에 따라, 구체적으로 데이터가 바이트(Byte) 형태로 이루어진 경우 또는 데이터가 워드(Word) 형태로 이루어진 경우에 버스 사용권한의 우선순위를 할당하고자 한다면, 예들 들어, 상기 바이트(Byte) 형태에 2 스코어 또는 워드(Word) 형태에 1 스코어를 할당할 수 있다.
상술한 바와 같이, 본 발명의 실시 예에 따른 버스 중재방법은 마스터의 특성, 슬레이브의 특성, 버스 요청 사이클의 특성, 송수신되는 데이터의 특성 및 사용자의 요구에 따른 특성에 따라 각각에 스코어를 할당하고, 할당된 스코어를 합산하여 마스터 별로 총 스코어를 산출한다. 이후, 마스터 별로 산출된 총 스코어를 비교하여 큰 스코어를 가지는 마스터에게 버스 사용권한을 부여함으로써, 버스 시스템의 데이터 전송효율을 향상시킬 수 있다.
이하, 도 7 내지 도 8을 참조하여 본 발명의 실시 예에 따른 버스 중재방법을 적용한 구체적인 실시 예에 대하여 설명하기로 한다. 먼저, 본 발명의 실시 예에 따른 버스 중재방법의 성능 분석을 위해 도 7에 도시된 바와 같이 가정하였다.
먼저, 마스터의 특성을 고려하기 위해, 제 1 마스터(마스터 0)으로부터 제 6 마스터(마스터 5)의 순서로 6 스코어부터 1 스코어를 할당하였다. 또한, 각 마스터가 전송하고자 하는 데이터의 특성을 싱글, 4 버스트, 8 버스트, 16 버스트를 임의로 정의하였다. 그리고, 슬레이브의 특성을 고려하기 위해, 버스 시스템을 구성하는 슬레이브들을 SRAM과 SDRAM으로 구분하여 임의로 정의하였다.
도 8에 도시된 바와 같이, 제 3 사이클에 제 4 마스터(마스터 3)이 버스 사용을 요청(Req[3])하고, 제 7 사이클에 제 1 마스터(마스터 0) 및 제 3 마스터(마스터 2)가 버스 사용을 요청(Req[0], Req[2])한 경우에 있어서, 상기 제 3 사이클 에는 제 4 마스터(마스터 3)만이 버스 사용을 요청하였으므로, 중재 사이클 이후에 제 4 마스터(마스터 3)에게 버스 사용권한을 할당(Grant [3])한다.
한편, 제 7 사이클에는 제 1 마스터(마스터 0) 및 제 3 마스터(마스터 2)가 동시에 버스 사용을 요청하였으므로, 제 1 마스터(마스터 0)와 제 3 마스터(마스터 2)에게 할당되는 스코어를 비교하여 버스 사용권한을 할당하게 된다.
여기서, 제 1 마스터(마스터 0)은 마스터 특성에 따른 스코어가 6이고, 전송하고자 하는 데이터가 싱글이므로 데이터에 특성에 따른 스코어는 0, 접속하고자 하는 슬레이브가 SDRAM 이므로 슬레이브 특성에 따른 스코어는 0이 된다. 이에 따라, 총 스코어는 6이 된다.
그리고, 제 3 마스터(마스터 2)는 마스터 특성에 따른 스코어가 4이고, 전송하고자 하는 데이터가 4 버스트이므로 데이터에 특성에 따른 스코어는 2, 접속하고자 하는 슬레이브가 SRAM 이므로 슬레이브 특성에 따른 스코어는 4이 된다. 이에 따라, 총 스코어는 10이 된다.
제 1 마스터(마스터 0)의 총 스코어와 제 3 마스터(마스터 2)의 총 스코어를 비교하면, 제 3 마스터의 총 스코어가 제 1 마스터의 총 스코어 보다 크므로 제 3 마스터에게 먼저, 버스 사용권한을 할당(Grant [2])한 후, 제 3 마스터의 데이터 전송이 완료되면, 이어서 제 1 마스터에게 버스 사용권한을 할당(Grant [0])한다.
도 9는 종래 기술에 따른 버스 중재 방식들과 본 발명의 실시 예에 따른 버스 중재방법의 데이터 전송량을 비교하여 나타내고 있다.
도 9를 참조하면, 동일 조건에서 종래 기술에 따른 버스 중재 방식들과 본 발명의 실시 예에 따른 버스 중재방법을 비교하면, 종래 기술에 따른 고정된 우선순위 방식과 라운드 로빈 방식 그리고 TDMA 방식의 데이터 전송량은 7,100,000-7,700,000 사이클인 반면, 본 발명의 실시 예에 따른 버스 중재방법은 8,150,000 사이클 이상의 성능을 나타내었다. 이를 통해, 본 발명의 실시 예에 따른 버스 중재방법이 전체적인 성능 향상이 이루어져, 종래 기술 대비 6-12% 성능이 향상되었음을 알 수 있다.
상술한 바와 같이, 본 발명의 실시 예에 따른 버스 중재방법 및 장치는 마스터들과 슬레이브들 각각의 특성 및 전송하고자 하는 데이터의 특성에 스코어를 부여하고, 마스터 별로 부여된 스코어들의 비교를 통해 높은 스코어를 가지는 마스터의 순서로 버스 사용권한을 부여함으로써, 스타베이션의 발생을 줄임과 아울러, 버스 시스템의 데이터 전송효율을 향상시킬 수 있다.
상술한 본 발명의 실시 예에 따른 버스 중재방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 판독 가능한 기록 매체에 기록될 수 있다. 이때, 컴퓨터로 판독 가능한 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 한편, 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터로 판독 가능한 기록매체에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM, DVD와 같은 광기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 한편, 이러한 기록매체는 프로그램 명령, 데이터 구조 등을 지정하는 신호를 전송하는 반송파를 포함하는 광 또는 금속선, 도파관 등의 전송 매체일 수도 있다.
또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상술한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
한편, 본 발명이 속하는 기술분야의 당업자는 상술한 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.
그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
도 1은 일반적인 버스 시스템을 나타내는 도면.
도 2는 본 발명의 실시 예에 따른 버스 중재 장치를 나타내는 도면.
도 3a는 스코어 레지스터(register)의 초기 값을 나타내는 도면.
도 3b는 마스터 할당 레지스터를 나타내는 도면.
도 3c는 버스트 할당 레지스터를 나타내는 도면.
도 3d는 슬레이브 할당 레지스터를 나타내는 도면.
도 3e는 요청 사이클 할당 레지스터를 나타내는 도면.
도 4 내지 도 6은 본 발명의 실시 예에 따른 버스 중재방법을 나타내는 도면.
도 7 및 도8은 본 발명의 실시 예에 따른 버스 중재방법의 일 예를 나타내는 도면.
도 9는 종래 기술에 따른 의 버스 중재방식의 성능과 본 발명의 실시 예에 따른 버스 중재방법의 성능을 비교하여 나타내는 도면.
<도면 주요 부분에 대한 부호의 설명>
100: 중재 장치 110: 스코어 레지스터
112: 마스터 할당 레지스터 114: 버스트 할당 레지스터
116: 슬레이브 할당 레지스터 118: 요청 사이클 레지스터
120: 클럭 생성부 130: 스코어 산출부
131: 마스터 스코어 생성부 132: 버스트 스코어 생성부
133: 슬레이브 스코어 생성부 134: 요청 사이클 스코어 생성부
135: 스코어 합산부 136: 카운터
140: 비교기

Claims (5)

  1. 복수의 마스터 및 복수의 슬레이브를 포함하는 버스 시스템에서의 버스 중재방법에 있어서,
    상기 복수의 마스터 중에서 적어도 하나의 마스터로부터 버스 사용 요청이 이루어지면, 버스 사용 요청이 이루어진 마스터들 각각에 대하여 기 설정된 마스터 스코어를 할당하는 단계;
    상기 복수의 슬레이브 각각의 대기시간(latency)에 기초하여 슬레이브 스코어를 생성하고, 상기 대기시간이 짧을수록 높은 슬레이브 스코어를 할당하는 단계;
    상기 마스터들 각각에 대하여 송수신하고자 하는 데이터의 길이에 기초하여 데이터 스코어를 생성하고, 상기 데이터의 버스트가 길수록 높은 데이터 스코어를 할당하는 단계;
    상기 마스터들 각각에 대하여 버스 사용 요청 사이클에 기초하여 요청 사이클 스코어를 생성하고, 상기 버스 사용 요청 사이클이 미리 설정된 사이클 이상인 경우 상기 요청 사이클 스코어를 기 설정된 값으로 할당하는 단계;
    상기 마스터 스코어, 슬레이브 스코어, 데이터 스코어 및 요청 사이클 스코어를 합산하여 마스터 별 총 스코어를 산출하는 단계; 및
    상기 마스터 별 총 스코어를 비교하여 상기 총 스코어가 큰 순으로 버스 사용권한을 부여하는 단계;를 포함하는 것을 특징으로 하는 버스 중재방법.
  2. 삭제
  3. 제 1 항에 있어서,
    사용자의 요구에 따라서, 송수신하고자 하는 데이터의 형태를 구분하여 사용자 요구 스코어를 할당하는 단계; 및
    상기 사용자 요구 스코어를 포함하여 상기 마스터 별 총 스코어를 산출하는 단계를 더 포함하고, 상기 데이터의 형태는 바이트(Byte), 하프 워드(Half word), 워드(Word)를 포함하는 것을 특징으로 하는 버스 중재방법.
  4. 제 1 항에 있어서,
    상기 마스터 스코어, 슬레이브 스코어, 데이터 스코어 및 요청 사이클 스코어의 초기 값 및 설정 값은 사용자의 요구에 따라 변경되는 것을 특징으로 하는 버스 중재방법.
  5. 복수의 마스터 및 복수의 슬레이브를 포함하는 버스 시스템에서의 버스 중재장치에 있어서,
    버스 사용 요청이 이루어진 마스터들 각각에 대하여 기 설정된 마스터 스코어를 생성하는 마스터 스코어 생성부;
    상기 복수의 슬레이브 각각의 대기시간(latency)에 기초하여, 상기 대기시간이 짧을수록 높은 값을 가지는 슬레이브 스코어를 생성하는 슬레이브 스코어 생성부;
    상기 마스터들 각각에 대하여 송수신하고자 하는 데이터의 길이에 기초하여, 상기 데이터 버스트가 길수록 높은 데이터 스코어를 생성하는 버스트 스코어 생성부;
    상기 마스터들 각각에 대하여 버스 사용 요청 사이클에 기초하여 상기 버스 사용 요청 사이클이 미리 설정된 사이클 이상인 경우 기 설정된 값을 가지는 요청 사이클 스코어를 생성하는 요청 사이클 스코어 생성부;
    마스터로부터의 버스 사용 사이클을 카운팅 하여 상기 요청 사이클 스코어 생성부에 제공하는 카운터;
    상기 마스터 스코어 생성부, 슬레이브 스코어 생성부, 버스트 스코어 생성부, 요청 사이클 스코어 생성부로부터의 스코어들을 합산하여 총 스코어를 산출하는 스코어 합산부; 및
    마스터 별로 산출된 총 스코어들을 비교하여 상기 총 스코어가 큰 순으로 버스 사용권한 신호(Grant[X])를 생성하여 출력하는 비교기;를 포함하는 것을 특징으로 하는 버스 중재장치.
KR1020080127648A 2008-12-16 2008-12-16 버스 중재방법 및 장치 KR101013769B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080127648A KR101013769B1 (ko) 2008-12-16 2008-12-16 버스 중재방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080127648A KR101013769B1 (ko) 2008-12-16 2008-12-16 버스 중재방법 및 장치

Publications (2)

Publication Number Publication Date
KR20100069077A KR20100069077A (ko) 2010-06-24
KR101013769B1 true KR101013769B1 (ko) 2011-02-14

Family

ID=42367240

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080127648A KR101013769B1 (ko) 2008-12-16 2008-12-16 버스 중재방법 및 장치

Country Status (1)

Country Link
KR (1) KR101013769B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11055243B1 (en) * 2020-04-19 2021-07-06 Nuvoton Technology Corporation Hierarchical bandwidth allocation bus arbiter

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100220890B1 (ko) 1996-01-31 1999-09-15 니시무로 타이죠 메모리 컨트롤러 및 메모리 제어방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100220890B1 (ko) 1996-01-31 1999-09-15 니시무로 타이죠 메모리 컨트롤러 및 메모리 제어방법

Also Published As

Publication number Publication date
KR20100069077A (ko) 2010-06-24

Similar Documents

Publication Publication Date Title
US6393506B1 (en) Virtual channel bus and system architecture
KR100947193B1 (ko) 버스 액세스 중재 방식
JP4480427B2 (ja) リソース管理装置
KR100932359B1 (ko) 고주파수 중재자를 통해 사이클마다 복수의 버스 중재를수행하는 스위치 매트릭스 시스템
JPH028948A (ja) コンピュータ装置において資源へのアクセスを制御する方法および装置
US9798686B2 (en) Slave side bus arbitration
US5590299A (en) Multiprocessor system bus protocol for optimized accessing of interleaved storage modules
US20080270658A1 (en) Processor system, bus controlling method, and semiconductor device
US8213461B2 (en) Method of designating slots in a transmission frame for controlling transmission of data over an interconnect coupling a plurality of master units with a plurality of slave units
KR102605127B1 (ko) 계층적 대역폭 할당 버스 중재기
CN111684430A (zh) 支持同一信道上对不统一等待时间的存储器类型的响应
US20080059674A1 (en) Apparatus and method for chained arbitration of a plurality of inputs
US10268604B2 (en) Adaptive resource management in a pipelined arbiter
EP0901080A1 (en) Arbitration system
JP4308578B2 (ja) 集積回路装置のバスアービター
US20100070667A1 (en) Arbitration Based Allocation of a Shared Resource with Reduced Latencies
US7080174B1 (en) System and method for managing input/output requests using a fairness throttle
TW200536322A (en) Method of arbitrationg which allows requestors from multiple frequency domains
KR101013769B1 (ko) 버스 중재방법 및 장치
Noami et al. High priority arbitration for less burst data transactions for improved average waiting time of Multi-Processor Cores
KR100973419B1 (ko) 버스 중재 방법 및 장치
Khanam et al. Design a low latency Arbiter for on chip Communication Architecture
US6889283B2 (en) Method and system to promote arbitration priority in a buffer queue
US8135878B1 (en) Method and apparatus for improving throughput on a common bus
KR101051926B1 (ko) 버스 시스템의 버스 중재 장치 및 방법

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141204

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160113

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161220

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee