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

버스 중재 방법 및 장치 Download PDF

Info

Publication number
KR20090128851A
KR20090128851A KR1020080054814A KR20080054814A KR20090128851A KR 20090128851 A KR20090128851 A KR 20090128851A KR 1020080054814 A KR1020080054814 A KR 1020080054814A KR 20080054814 A KR20080054814 A KR 20080054814A KR 20090128851 A KR20090128851 A KR 20090128851A
Authority
KR
South Korea
Prior art keywords
bus
priority
master
data
bus use
Prior art date
Application number
KR1020080054814A
Other languages
English (en)
Other versions
KR100973419B1 (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 KR1020080054814A priority Critical patent/KR100973419B1/ko
Publication of KR20090128851A publication Critical patent/KR20090128851A/ko
Application granted granted Critical
Publication of KR100973419B1 publication Critical patent/KR100973419B1/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/366Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a centralised polling arbiter
    • 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
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • 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/32Handling requests for interconnection or transfer for access to input/output bus using combination of interrupt and burst mode 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/37Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a physical-position-dependent priority, e.g. daisy chain, round robin or token passing

Abstract

본 발명은 버스 중재 방법 및 장치에 관한 것으로, 특히 버스를 통해 송·수신할 데이터의 종류, 버스트 유·무, 데이터의 크기, 버스 사용 요청 횟수 및 버스 사용 대기 시간에 따라 우선순위를 설정하여 버스를 중재하는 방법 및 장치에 관한 것이다.
본 발명의 실시 예에 따른 버스 중재 방법은 마스터로부터 버스를 통해 송·수신할 데이터의 버스트 유·무, 데이터의 크기, 버스 사용 요청 횟수 및 버스 사용 대기 시간 중 적어도 하나의 정보를 포함하는 데이터 정보를 수신하는 단계; 및 상기 데이터의 버스트 유·무 및 데이터의 크기에 따라 상기 마스터의 버스의 사용에 대한 우선순위를 선택하는 단계를 포함하는 것을 특징으로 한다.
아비터, 버스, 마스터, 우선순위

Description

버스 중재 방법 및 장치{Method and apparatus for arbitrating a bus}
본 발명은 버스 중재 방법 및 장치에 관한 것으로, 특히 버스를 통해 송·수신할 데이터의 종류, 버스트 유·무, 데이터의 크기, 버스 사용 요청 횟수 및 버스 사용 대기 시간에 따라 우선순위를 설정하여 버스를 중재하는 방법 및 장치에 관한 것이다.
반도체 제조 공정의 발달에 힘입어 서로 다른 기능을 수행하는 여러 칩(Chip)들을 하나의 칩에 집적시키는 SoC(System on Chip) 기술이 계발되어 회로설계에 널리 이용되고 있다.
SoC의 구성요소는 다수의 마스터(Master)와 아비터(Arbiter), 슬레이브(Slave)로 이루어져 있으며, 일반적으로 마스터는 프로세서(CPU), DMA, DSP를 뜻하며, 슬레이브는 메모리를 뜻한다.
하나의 칩에 여러 가지의 기능이 집적화된 SoC칩의 경우, 1개의 버스에 마스터, 아비터(버스 중재 장치), 슬레이브(메모리) 등이 연결된 버스 아키텍처가 필요하다. 다수의 마스터들이 하나의 버스를 동시에 이용하고자 하는 경우, 아비터에 의해 버스 허가 신호를 받은 마스터들이 순서대로 버스를 이용하여 데이터를 슬레 이브(메모리)로 전송하게 된다. 이를 위해 아비터는 다수의 마스터들이 동시에 버스 사용을 요청할 때 우선순위를 결정하게 되고, 아비터의 우선순위 결정 방식에 따라 칩의 성능이 달라지게 된다.
도 1은 일반적인 메모리 접근을 위한 버스 아키텍처를 나타내는 도면이고, 도 2a 및 도 2b는 일반적인 아비터의 우선순위 판단 방법을 나타낸 도면이다.
먼저, 도 1의 일반적인 메모리 접근을 위한 버스 아키텍처를 참조하면, 1개의 버스(20)에 복수의 마스터들(30, 40), 아비터(10), 메모리(50)가 연결되어 있을 경우, 아비터(10)는 동시에 여러 마스터들(30, 40)이 메모리(50)로의 접근을 위해 버스(20)의 사용을 요청할 때, 버스 사용의 우선권을 결정하게 된다.
버스의 우선권을 결정하기 위해 아비터(10)의 여러 가지 우선순위 판단 방법이 연구되어 왔는데, 대표적인 것이 도 2a의 고정된 우선순위(Fixed Priority) 판단 방법과 도 2b의 라운드 로빈 우선순위(Round Robin Priority) 판단 방법이다.
도 2a 참조하면, 고정된 우선순위(Fixed Priority) 판단 방법은 다수의 마스터들의 종류별로 미리 순위를 정해놓고 정해진 순위에 따라 버스 사용의 우선순위를 선택하는 방식을 의미한다.
각각의 마스터에 대해 우선순위를 프로세서, DSP, DMA1, DMA2의 순서로 1, 2, 3, 4 순위를 순차적으로 정해 놓고, 다수의 마스터가 동시에 버스에 접근했을 경우, 우선순위가 높은 마스터에게 버스 사용권을 주게 된다.
그리고, 도 2b를 참조하면, 라운드 로빈 우선순위(Round Robin Priority) 판단 방법은 마스터의 버스 우선순위를 시간에 따라서 다르게 변화시켜서 다수의 마 스터에게 골고루 버스 우선권을 주는 방식이다. 즉, 마스터에 일정시간을 할당하고, 할당된 시간이 지나면 그 마스터는 잠시 보류한 뒤 다른 마스터에게 버스 우선권을 주고, 해당 할당 시간이 지나면, 또 그 다음 마스터에게 버스 우선권을 주는 운영 방식이다.
그런데, 고정된 우선순위 판단 방법의 경우, 마스터가 처리하게 될 데이터의 특성 등을 고려하지 않으며, 단순히 마스터의 종류에 따라 우선순위를 결정하므로, 데이터 처리 시간 측면에서 효율적이지 않은 문제점이 있었다.
또한, 라운드 로빈 우선순위 판단 방법의 경우, 고정된 우선순위 없이 마스터에 할당된 시간 정보를 참조하여 우선순위를 정하므로 빨리 처리해야 할 중요한 특정 데이터에 대한 처리가 늦어지는 문제점이 있다.
본 발명은 상술한 문제점을 해결하기 위한 것으로서, 1개의 버스를 공유하는 다수의 마스터들이 효율적으로 버스를 점유함으로써 데이터의 처리 시간을 줄일 수 있는 버스 중재 방법 및 장치를 제공하는 것을 기술적 과제로 한다.
또한, 본 발명은 신속한 처리를 요하는 특정 데이터에 대한 우선순위를 높이는 버스 중재 방법 및 장치를 제공하는 것을 다른 기술적 과제로 한다.
상술한 목적을 달성하기 위한 본 발명의 실시 예에 따른 버스 중재 방법은 마스터로부터 버스를 통해 송·수신할 데이터의 버스트 유·무, 데이터의 크기, 버스 사용 요청 횟수 및 버스 사용 대기 시간 중 적어도 하나의 정보를 포함하는 데이터 정보를 수신하는 단계; 및 상기 데이터의 버스트 유·무 및 데이터의 크기에 따라 상기 마스터의 버스의 사용에 대한 우선순위를 선택하는 단계를 포함하는 것을 특징으로 한다.
상술한 목적을 달성하기 위한 본 발명의 다른 실시 예에 따른 버스 중재 장치는 마스터로부터 버스를 통해 송·수신할 데이터의 버스트 유·무, 데이터의 크기, 버스 사용 요청 횟수 및 버스 사용 대기 시간 중 적어도 하나의 정보를 포함하는 데이터 정보를 수신하는 데이터 정보 수신부와; 상기 데이터 정보에 따라 상기 마스터의 버스의 사용에 대한 우선순위를 판단하는 우선순위 판단부를 포함하고, 상기 우선순위 판단부는 마스터의 종류에 따라 상기 마스터의 버스 사용에 대한 우 선순위를 판단하는 고정된 우선순위 판단부와; 마스터에 할당된 시간 정보를 참조하여 상기 마스터의 버스 사용에 대한 우선순위를 판단하는 라운드 로빈 우선순위 판단부; 및 데이터의 버스트 유·무 및 데이터의 크기에 따라 상기 마스터의 버스 사용에 대한 우선순위를 선택하는 버스트 크기 우선순위 판단부를 포함하는 것을 특징으로 한다.
상술한 바와 같이 본 발명에 따르면, 버스를 통해 송·수신할 데이터의 처리 방식에 따라 우선순위를 달리함으로써, 마스터의 데이터 처리 방식의 특성에 따라 발생하는 버스 사용의 비효율성을 제거하여 버스 아키텍처 전체의 데이터 처리 시간을 줄일 수 있는 버스 중재 방법 및 장치를 구현할 수 있는 효과가 있다.
또한, 본 발명에 따르면, 마스터의 종류뿐 아니라, 데이터의 버스트 유·무, 데이터의 크기, 버스 사용 요청 횟수 및 버스 사용 대기 시간에 따라 우선순위를 부여함으로써, 중요한 특정 데이터의 처리를 빠르게 처리할 수 있는 버스 중재 방법 및 장치를 구현할 수 있는 다른 효과가 있다.
이하 첨부된 도면들을 참조하여, 본 발명의 실시 예에 대해 상세히 설명한다.
도 3은 본 발명의 실시 예에 따른 버스 중재 장치(아비터: Arbiter)를 나타낸 도면이다.
도 3을 참조하면, 본 발명의 실시 예에 따른 버스 중재 장치(100, 아비터)는 데이터 정보 수신부(110), 고정된 우선순위 판단부(120), 라운드 로빈 우선순위 판단부(130), 버스트 크기 우선순위 판단부(140), 버스 사용 요청 횟수 우선순위 판단부(150), 버스 사용 대기 시간 우선순위 판단부(160), 선택부(170)를 포함하여 구성된다. 이러한 구성을 가지는 버스 중재 장치(100)를 이용하여 프로세서, DSP블럭, DMA블럭 등의 마스터(Master: 미도시)들이 슬레이브(메모리)에 접근하는 경우, 버스 사용의 우선순위를 결정할 수 있다.
데이터 정보 수신부(110)는 마스터와 슬레이브 간에 송·수신 되는 데이터에 대한 정보를 수신한다. 여기서, 데이터는 버스 중재 장치(100)를 통해 우선권을 부여받아 다수의 마스터들이 공유하는 버스를 통해 송·수신될 데이터를 의미하고, 데이터의 정보는 데이터의 버스트 여부, 데이터의 크기, 버스 사용 요청 횟수, 버스 사용 대기 시간 중 적어도 하나를 포함한다.
먼저, 데이터의 버스트 여부는 마스터들이 공유하는 버스를 통해 메모리에 접근하여 데이터를 메모리에 쓰는 경우, 메모리로부터 데이터를 읽는 경우, 또는 메모리에 명령을 송·수신하는 경우에, 데이터를 연속적으로 쓰거나 읽는지 또는 명령어를 연속적으로 송·수신하는지에 대한 정보이다. 이하, 한 번의 쓰기, 읽기, 또는 특정 명령의 송·수신 동작 수행을 싱글(Single)이라 하고, 싱글의 반대되는 개념인 연속적인 해당 동작을 버스트(Burst)라 하겠다. 본 발명에서는 싱글 데이터와 버스트 데이터 중에서 싱글 데이터에 우선순위를 부여한다.
데이터 크기 여부는 버스를 통해 메모리와 송·수신할 데이터의 크기를 판별하는 것으로, 데이터가 워드(Word) 단위인지, 바이트(Byte) 단위인지를 판별하는 것을 의미한다. 본 발명에서는 데이터의 크기가 작을수록 우선순위를 부여한다.
앞의 설명에서는 데이터의 버스트가 싱글인 경우와 데이터의 크기가 작은 경우에 우선순위를 부여하는 것으로 설명하였으나, 이는 하나의 실시 예를 나타낸 것으로, 본 발명의 버스 중재 방법은 데이터의 버스트 유·무 및 데이터의 크기에 따라 우선순위를 선택하는 것을 특징으로 한다.
버스 사용 요청 횟수는 마스터가 버스를 이용하여 데이터를 송·수신 하기 위해 버스의 사용을 요청한 횟수를 의미하는 것으로, 최대 사이클 당 마스터의 버스 사용 요청 횟수를 카운팅하고, 카운팅된 버스 사용 요청 횟수의 빈도에 따라 우선순위를 선택한다.
본 발명에서는 버스 사용 요청 횟수가 가장 많은 마스터에 가장 높은 순위를 부여하고, 버스 사용 요청 횟수가 가장 적은 마스터에 가장 낮은 순위를 부여한다. 즉, 버스 사용 요청 횟수에 따라 순차적으로 버스 사용의 우선순위를 부여한다.
버스 사용 대기 시간은 마스터에서 버스 중재 장치(100)로 버스 사용 요청 신호를 보내고 버스 중재 장치(100)로부터 버스 사용 허가 신호를 받기까지 소요되는 시간을 의미한다. 본 발명에서는 이러한 버스 사용 대기 시간을 타이머를 통해 산출하여, 특정 마스터의 버스 사용 대기 시간이 미리 설정된 시간을 초과하는 경우, 해당 특정 마스터에게 일시적으로 최우선순위를 부여한다.
데이터 정보 수신부(110)는 상술한, 데이터의 버스트 유·무, 데이터의 크기, 버스 사용 요청 횟수, 버스 사용 대기 시간 중 적어도 하나를 포함하는 데이터 정보를 수신하고, 수신된 데이터 정보를 각각의 판단부(120∼160)로 전송한다. 데 이터 정보를 수신한 각각의 판단부(120∼160)는 수신된 데이터 정보를 기준으로 마스터의 우선순위를 판단하게 된다.
고정된 우선순위 판단부(120)는 마스터들로부터 버스 사용 요청을 수신하면, 마스터의 종류에 따라 우선순위를 판단한다. 여기서, 판단 방법으로서 고정된 우선순위 판단 방법을 사용한다. 이하, “마스터 1”의 버스 사용 요청을 “버스 Req_1”이라 하고, “마스터 2”의 버스 사용 요청을 “버스 Req_2”라 하겠다.
여기서, 마스터 1의 기 규정된 순위가 마스터 2의 순위보다 높게 배정되어 있다고 가정하면, 고정된 우선순위 판단부(120)는 마스터 1 및 마스터 2로부터 버스 사용 요청을 수신한 경우, 마스터 1에게 먼저 버스 사용에 대한 우선 권한을 부여하고, 마스터 1의 데이터 송·수신이 끝난 후 마스터 2에게 버스 사용 권한을 부여한다.
라운드 로빈 우선순위 판단부(130)는 버스 Req_1 및 버스 Req_2를 수신하면, 마스터에 할당된 시간 정보를 참조하여 우선순위를 판단한다. 여기서, 판단 방법으로서 라운드 로빈 우선순위 판단 방법을 사용한다.
라운드 로빈 우선순위 판단부(130)는 버스 Req_1 및 버스 Req_2를 수신한 경우, 마스터 1에게 할당된 해당 시간 동안 버스 우선권을 부여한 후, 할당 시간이 지나면, 마스터 2에게 할당된 해당 시간 동안 버스 우선권을 부여한다. 우선권을 부여하는 순서는 마스터의 종류에 따라 달라질 수 있다.
버스트 크기 우선순위 판단부(140)는 버스 Req_1 및 버스 Req_2를 수신하면, 마스터가 송·수신 하고자 하는 데이터의 버스트 유·무 및 데이터의 크기에 따라 우선순위를 판단한다. 예를 들면, 마스터 1의 데이터가 싱글(single) 데이터이고, 마스터 2의 데이터가 버스터(burst) 데이터인 경우, 싱글 데이터를 송·수신 하고자하는 마스터 1에게 버스 사용의 최우선순위를 배정하고, 이후 버스트 데이터를 송·수신 하고자하는 마스터 2에게 다음 순위를 배정한다. 또한, 데이터가 워드(Word) 단위인지, 바이트(Byte) 단위인지를 판별하고, 판별 결과, 크기가 작은 데이터에 우선순위를 부여한다.
버스 사용 요청 횟수 우선순위 판단부(150)는 상술한 버스 사용 요청 횟수에 따라 다수의 마스터의 버스 사용의 우선순위를 판단한다. 다수의 마스터에서 각각 요청되는 버스 사용 요청 횟수를 카운팅하고, 카운팅된 버스 사용 요청 횟수에 따라서 순차적으로 버스 사용의 우선순위를 부여한다.
버스 사용 대기 시간 우선순위 판단부(160)는 미리 설정된 시간과 특정 마스터의 버스 사용 대기 시간을 비교하고, 비교 결과 특정 마스터의 버스 사용 대기 시간이 설정된 시간을 초과하는 경우, 해당 마스터에 일시적으로 최우선순위를 부여한다.
선택부(170)는 상술한 고정된 우선순위 판단부(120), 라운드 로빈 우선순위 판단부(130), 버스트 크기 우선순위 판단부(140), 버스 사용 요청 횟수 우선순위 판단부(150) 및 버스 사용 대기 시간 우선순위 판단부(160)로부터의 판단 결과에 따라 마스터의 우선순위를 선택한다.
여기서, 선택부(170)는 상술한 판단부들(120 내지 160)의 판단 결과 중 하나의 판단 결과를 이용하여 마스터의 우선순위를 선택할 수도 있고, 둘 이상의 판단 결과를 이용하여 마스터의 우선순위를 선택할 수도 있다.
예를 들면, 버스트 크기 우선 판단부(140)의 판단 결과, 다수의 마스터가 모두 싱글 데이터를 송·수신 하는 것으로 판단된 경우, 고정된 우선순위 판단부(120) 또는 라운드 로빈 우선순위 판단부(130)의 판단 결과를 반영하여 마스터의 우선순위를 선택할 수 있다.
또한, 버스 사용 요청 횟수 우선순위 판단부(150)의 판단 결과, 다수의 마스터가 모두 동일한 횟수로 버스 사용을 요청한 경우, 다른 판단부(120, 130, 140, 160)의 판단 결과를 반영하여 마스터의 우선순위를 선택할 수 있다.
이하, 도 4 내지 도 7을 참조하여, 본 발명의 실시 예들에 따른 우선순위 판단 방법에 대하여 설명하기로 한다. 첨부된 도면을 설명하기에 앞서, 도 3에 도시된 고정된 우선순위 판단부(120) 및 라운드 로빈 우선순위 판단부(130)를 이용한 우선순위 판단 방법은 도 2a 및 도 2b에 도시된 판단 방법과 동일하므로 이에 대한 설명은 생략하기로 한다.
도 4는 데이터의 버스트 유·무에 따른 우선순위(Single Priority with Burst Size) 판단 방법을 나타내는 것으로, 마스터 1과 마스터 2의 두 종류의 마스터가 있고, 마스터 1과 마스터 2가 하나의 버스를 공유하여 데이터를 송·수신 하고자 하는 경우에 데이터의 버스트 유·무에 따라 마스터의 우선순위를 판단하는 방법을 나타내고 있다.
도 4를 참조하면, 마스터 1은 송·수신 하고자 하는 데이터가 싱글(single) 신호만으로 구성되어 있고, 마스터 2는 송·수신 하고자 하는 데이터가 버스 트(burst) 신호만으로 구성되어 있다. 이때, 주어진 시간이 똑같이 15 사이클인 경우, 마스터 1의 신호는 싱글 신호만으로 구성되어 있기 때문에 처리할 수 있는 요청 횟수가 여섯번인 반면, 마스터 2는 같은 시간에 처리할 수 있는 요청 횟수가 세번이 된다.
본 발명의 제 1 실시 예에 따른 버스 중재 방법은 싱글 데이터와 버스트 데이터 중에서 싱글 데이터에 우선순위를 부여한다. 즉, 마스터 1과 마스터 2 중에서 싱글 데이터를 송·수신 하고자 하는 마스터 1에 버스 사용의 최우선순위를 부여하고, 이후 마스터 2에 다음 순위를 부여한다. 또한, 다수의 마스터가 싱글 데이터로 구성되어 있는 경우에는 데이터의 크기가 작을수록 우선순위를 부여한다.
상술한, 버스 중재 방법을 적용할 경우, 같은 시간에 데이터 처리량은 마스터 2의 경우가 많지만, 마스터 1은 마스터 2에 비해 데이터 처리 횟수가 많음을 알 수 있다. 이러한 본 발명의 제 1 실시 예에 따른 버스 중재 방법을 적용하면, 다양한 상황에 따라서 효율적으로 버스 사용의 우선순위 방식을 바꿔가면서 데이터를 처리할 수 있음을 알 수 있다.
데이터 처리량이 중요한 경우에는 송·수신 하고자 하는 데이터가 버스트인 마스터에 우선순위를 부여하고, 데이터 처리 횟수가 중요한 경우에는 송·수신 하고자 하는 데이터가 싱글인 마스터에 우선순위를 부여함으로써, 다양한 상황에서의 데이터 처리 요구를 만족시킬 수 있다. 이를 통해, 데이터 처리의 효율성을 향상시킬 수 있다.
도 5에 도시된 본 발명의 제 2 실시 예에 따른 버스 중재 방법은 버스 사용 요청 횟수에 따라 우선순위를 결정하는 방식으로, 버스 사용 요청 횟수에 따른 우선순위(Priority with Request number) 판단 방법을 나타내고 있다.
제 2 실시 예에 따른 버스 중재 방법은 프로세서(Processor), DSP, DMA1, DMA2와 같이 다수의 마스터가 있고, 이러한 마스터들이 버스를 공유하여 데이터를 송·수신 하고자 하는 경우에 버스 사용 요청 횟수에 따라 마스터의 우선순위를 판단한다.
도 5를 참조하면, 버스 사용 요청 횟수에 따른 우선순위 판단 방법은 프로세서, DSP, DMA1, DMA2와 같이, 네 개의 마스터가 있는 경우, 초기에는 고정된 우선순위 판단(Pixed Priority) 방식과 같이 프로세서, DSP, DMA1, DMA2의 순서대로 1, 2, 3, 4의 우선순위를 가지고 있다. 하지만, 각각의 마스터들로부터 버스 사용이 요청되면 최대 사이클당 버스 사용 요청 횟수를 카운터(미도시)를 통해 산출하고, 산출된 버스 사용 요청 횟수에 따라 우선순위를 선택하게 된다.
예를 들어, 프로세서와 DMA1의 버스 사용 요청 횟수는 정상적이고, DSP는 상당히 낮고, DMA2의 경우는 버스 사용 요청 횟수가 상당히 높다고 가정하면, 이런 경우ㄱ고정된 우선순위 판단 방식은 처음과 똑같이 프로세서, DSP, DMA1, DMA2의 순서대로 우선순위를 가지게 된다.
반면, 본 발명의 제 2 실시 예에 따른 버스 중재 방법 즉, 버스 사용 요청 횟수에 따른 우선순위 판단 방법은 버스 사용 요청 횟수가 상당히 높은 DMA2의 우선순위가 1순위로 선택되고, 그 다음 버스 사용 요청 횟수가 보통인 프로세서는 2순위, DMA1은 3순위, 마지막으로 버스 사용 요청 횟수가 상당히 낮은 DSP가 4순위 로 선택된다. 즉, 버스 사용 요청 횟수가 보통이었던 DMA1은 우선순위가 초기와 동일하지만, 다른 마스터들은 버스 사용 요청 횟수에 따라서 그 순위가 달라짐을 알 수 있다.
이는 전체적으로 우선순위가 낮아도 어느 순간에 집중적으로 중요한 데이터를 송·수신 하고자 하는 마스터가 존재할 수 있는데, 이런 상황에 효율적으로 적용할 수 있는 버스 중재 방식이다. 상술한 제 2 실시 예에 따른 버스 중재 방법을 통해 선택된 마스터들의 우선순위를 초기 상태의 우선순위로 바꾸고 싶을 경우에는 모드(Mode)를 고정된 우선순위 선택 (Fixed Priority) 방식으로 변경하면 된다.
상술한, 본 발명의 제 2 실시 예에 따른 버스 중재 방법은 특정 순간에 집중적으로 중요한 데이터를 처리하고자 하는 마스터가 존재하는 경우, 버스 사용 요청 빈도수에 따라 마스터의 버스 우선순위를 선택하여 집중적인 데이터 처리 요구를 만족시킬 수 있다. 이를 통해, 데이터 처리의 효율성을 향상시킬 수 있다.
도 6에 도시된 본 발명의 제 3 실시 예에 따른 버스 중재 방법은 마스터의 버스 사용 대기 시간에 따라 우선순위를 결정하는 방식으로, 버스 사용 대기 시간에 따른 우선순위(Priority with waiting time control) 판단 방법을 나타내고 있다.
상술한, 버스 사용 대기 시간을 산출하기 위하여 도 7에 도시된 바와 같이, 마스터(200)와 버스 중재 장치(100) 사이에 타이머(180)를 구비하며, 타이머(180)를 이용하여 마스터에서 버스 중재 장치로 버스 사용 요청 신호를 보내고 버스 중재 장치로부터 버스 사용 허가 신호를 받기까지 소요되는 시간을 산출한다.
타이머(180)에서 산출된 버스 사용 대기 시간은 마스터에서 전송하고자 하는 데이터 정보에 포함되고, 도 3에 도시된 버스 사용 대기 시간 우선순위 판단부(160)에서 데이터 정보에 포함된 특정 마스터의 버스 사용 대기 시간이 미리 설정된 시간을 초과하는 경우, 해당 특정 마스터에 일시적으로 최우선순위를 부여하게 된다.
도 6을 참조하여 이를 보다 자세히 설명하면, 제 3 실시 예에 따른 버스 중재 방법은 프로세서(Processor), DSP, DMA1, DMA2와 같이 다수의 마스터가 있고, 이러한 마스터들이 버스를 공유하여 데이터를 송·수신 하고자 하는 경우에서, 특정 마스터의 버스 사용 대기 시간이 미리 설정된 시간을 초과하는지 여부에 따라 마스터의 우선순위를 판단한다.
대기 시간에 따른 우선순위 판단 방법은 프로세서, DSP, DMA1, DMA2와 같이, 네 개의 마스터가 있는 경우, 초기에는 고정된 우선순위 판단(Pixed Priority) 방식과 같이 프로세서, DSP, DMA1, DMA2의 순서대로 1, 2, 3, 4의 우선순위를 가지고 있다. 하지만, 도 7에 도시된 타이머(180)를 통해 산출된 마스터들의 버스 사용 대기 시간 중에서 특정 마스터의 버스 사용 대시 시간이 미리 설정된 시간을 초과하는 경우, 특정 마스터를 일시적으로 최우선순위를 부여하게 된다.
예를 들어, 프로세서, DSP, DMA1의 버스 사용 대기 시간은 정상적이지만 DMA2의 버스 사용 대기 시간이 미리 설정된 시간을 초과하여 상당히 긴 경우에는 DMA2의 우선순위를 일시적으로 최우선순위로 높여 DMA2가 다른 마스터들보다 우선 적으로 데이터를 처리하도록 한다. 이는 특정 마스터의 버스 사용 대기 시간이 너 무 길어지면 해당 마스터가 스타베이션(Starvation)에 걸릴 수 있으므로 이를 방지하기 위함이다.
일시적으로 버스 사용의 최우선순위를 배정받아 데이터의 처리가 이루어진 후에는 DMA2의 우선순위 모드(Mode)를 초기에 정해진 우선순위로 복귀시킬 수 있다.
상술한, 본 발명의 제 3 실시 예에 따른 버스 중재 방법은 버스 사용 대기 시간이 미리 설정된 시간을 초과하는 마스터가 존재하는 경우, 해당 마스터에 일시적으로 최우선순위를 배정하여 특정 마스터의 버스 사용 대기 시간이 길어지는 것을 방지할 수 있다. 이를 통해, 특정 마스터가 스타베이션에 걸리는 것을 방지하여 데이터 처리의 효율성을 향상시킬 수 있다.
본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.
그러므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
도 1은 일반적인 메모리 접근을 위한 버스 아키텍처를 나타내는 도면.
도 2a 및 도 2b는 고정된 우선순위 판단 방법과 라운드 로빈 우선순위 판단 방법을 나타낸 도면.
도 3은 본 발명의 실시 예에 따른 버스 중재 장치를 나타낸 도면.
도 4는 데이터의 버스트 유·무에 따른 우선순위(Single Priority with Burst Size)판단 방법을 나타내는 도면.
도 5는 버스 사용 요청 횟수에 따른 우선순위(Priority with Request number) 판단 방법을 나타내는 도면.
도 6은 버스 사용 대기 시간에 따른 우선순위(Priority with waiting time control) 판단 방법을 나타내는 도면.
도 7은 버스 사용 요청으로부터 버스 사용 허가 신호를 받기까지의 버스 사용 대기 시간을 산출하는 구성을 나타내는 도면.
<도면 주요 부분에 대한 부호의 설명>
100 : 버스 중재 장치 110 : 데이터 정보 수신부
120 : 고정된 우선순위 판단부 130 : 라운드 로빈 우선순위 판단부
140 : 버스트 크기 우선순위 판단부
150 : 버스 사용 요청 횟수 우선순위 판단부
160 : 버스 사용 대기 시간 우선순위 판단부
170 : 선택부 180 : 타이머
200 : 마스터

Claims (5)

  1. 마스터로부터 버스를 통해 송·수신할 데이터의 버스트 유·무, 데이터의 크기, 버스 사용 요청 횟수 및 버스 사용 대기 시간 중 적어도 하나의 정보를 포함하는 데이터 정보를 수신하는 단계; 및
    상기 데이터의 버스트 유·무 및 데이터의 크기에 따라 상기 마스터의 버스의 사용에 대한 우선순위를 선택하는 단계를 포함하는 것을 특징으로 하는 버스 중재 방법.
  2. 제 1 항에 있어서,
    상기 버스 사용 요청 횟수가 많을수록 상기 마스터의 버스의 사용에 대해 높은 우선순위를 선택하는 단계를 추가로 포함하는 것을 특징으로 하는 버스 중재 방법.
  3. 제 1 항에 있어서,
    특정 마스터의 버스 사용 요청 대기 시간이 미리 설정된 시간을 초과하는 경우, 상기 특정 마스터의 버스 사용에 대한 우선순위를 일시적으로 최우선순위로 선택하는 단계를 추가로 포함하는 것을 특징으로 하는 버스 중재 방법.
  4. 마스터로부터 버스를 통해 송·수신할 데이터의 버스트 유·무, 데이터의 크 기, 버스 사용 요청 횟수 및 버스 사용 대기 시간 중 적어도 하나의 정보를 포함하는 데이터 정보를 수신하는 데이터 정보 수신부와;
    상기 데이터 정보에 따라 상기 마스터의 버스의 사용에 대한 우선순위를 판단하는 우선순위 판단부를 포함하고,
    상기 우선순위 판단부는
    마스터의 종류에 따라 상기 마스터의 버스 사용에 대한 우선순위를 판단하는 고정된 우선순위 판단부와;
    마스터에 할당된 시간 정보를 참조하여 상기 마스터의 버스 사용에 대한 우선순위를 판단하는 라운드 로빈 우선순위 판단부; 및
    데이터의 버스트 유·무 및 데이터의 크기에 따라 상기 마스터의 버스 사용에 대한 우선순위를 선택하는 버스트 크기 우선순위 판단부를 포함하는 것을 특징으로 하는 버스 중재 장치.
  5. 제 4 항에 있어서,
    상기 우선순위 판단부는
    상기 버스 사용 요청 횟수에 따라 상기 마스터의 버스 사용에 대한 우선순위를 선택하는 버스 사용 요청 횟수 우선순위 판단부와;
    상기 버스 사용 요청 대기 시간에 따라 상기 마스터의 버스 사용에 대한 우선순위를 선택하는 버스 사용 대기 시간 우선순위 판단부; 중 적어도 하나를 추가로 포함하여 구성되는 것을 특징으로 하는 버스 중재 장치.
KR1020080054814A 2008-06-11 2008-06-11 버스 중재 방법 및 장치 KR100973419B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080054814A KR100973419B1 (ko) 2008-06-11 2008-06-11 버스 중재 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080054814A KR100973419B1 (ko) 2008-06-11 2008-06-11 버스 중재 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20090128851A true KR20090128851A (ko) 2009-12-16
KR100973419B1 KR100973419B1 (ko) 2010-07-30

Family

ID=41689015

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080054814A KR100973419B1 (ko) 2008-06-11 2008-06-11 버스 중재 방법 및 장치

Country Status (1)

Country Link
KR (1) KR100973419B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130121105A (ko) * 2010-10-08 2013-11-05 퀄컴 인코포레이티드 스트림 트랜잭션 정보에 기초하여 페이지 관리 정책들을 적용하기 위한 메모리 제어기들, 시스템들 및 방법들
KR101537034B1 (ko) * 2010-10-08 2015-07-16 퀄컴 인코포레이티드 스트림 트랜잭션(들)에 관련된 정보에 기초한 스트림 트랜잭션들의 중재

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101623130B1 (ko) * 2014-09-03 2016-05-20 대우조선해양 주식회사 조선해양 형상 모델 가시화를 위한 병렬처리 시스템 및 그 방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001075620A1 (en) * 2000-04-03 2001-10-11 Advanced Micro Devices, Inc. Bus bridge including a memory controller having an improved memory request arbitration mechanism
KR100484304B1 (ko) * 2002-11-14 2005-04-20 한국전자통신연구원 가중 파라메타를 이용한 직접 메모리 접근 제어기의 버스마스터 우선순위 결정방법
US7340542B2 (en) * 2004-09-30 2008-03-04 Moyer William C Data processing system with bus access retraction

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130121105A (ko) * 2010-10-08 2013-11-05 퀄컴 인코포레이티드 스트림 트랜잭션 정보에 기초하여 페이지 관리 정책들을 적용하기 위한 메모리 제어기들, 시스템들 및 방법들
KR101537034B1 (ko) * 2010-10-08 2015-07-16 퀄컴 인코포레이티드 스트림 트랜잭션(들)에 관련된 정보에 기초한 스트림 트랜잭션들의 중재

Also Published As

Publication number Publication date
KR100973419B1 (ko) 2010-07-30

Similar Documents

Publication Publication Date Title
US5996037A (en) System and method for arbitrating multi-function access to a system bus
US6393506B1 (en) Virtual channel bus and system architecture
US8190801B2 (en) Interconnect logic for a data processing apparatus
US6073132A (en) Priority arbiter with shifting sequential priority scheme
US5623672A (en) Arrangement and method of arbitration for a resource with shared user request signals and dynamic priority assignment
US6519666B1 (en) Arbitration scheme for optimal performance
US20120042105A1 (en) Bus arbitration apparatus
US20060282588A1 (en) Processor system that allows for simultaneous access by multiple requestors to a target with multiple ports
JP2009508247A (ja) バス調停に関する方法及びシステム
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
US7617344B2 (en) Methods and apparatus for controlling access to resources in an information processing system
EP2033102B1 (en) Method and apparatus for performing arbitration
US10740269B2 (en) Arbitration circuitry
TW202141291A (zh) 分級頻寬分配匯流排仲裁器
US7080174B1 (en) System and method for managing input/output requests using a fairness throttle
US8185679B2 (en) Controlling bus access
US6804736B2 (en) Bus access arbitration based on workload
US6430640B1 (en) Self-arbitrating, self-granting resource access
KR100973419B1 (ko) 버스 중재 방법 및 장치
US8140728B1 (en) Data packet arbitration system
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
KR101013769B1 (ko) 버스 중재방법 및 장치
CN115269467B (zh) 一种总线仲裁的方法、装置、存储介质及电子设备
JP2006251875A (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: 20130527

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140612

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150626

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160602

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee