KR102605127B1 - 계층적 대역폭 할당 버스 중재기 - Google Patents

계층적 대역폭 할당 버스 중재기 Download PDF

Info

Publication number
KR102605127B1
KR102605127B1 KR1020210035074A KR20210035074A KR102605127B1 KR 102605127 B1 KR102605127 B1 KR 102605127B1 KR 1020210035074 A KR1020210035074 A KR 1020210035074A KR 20210035074 A KR20210035074 A KR 20210035074A KR 102605127 B1 KR102605127 B1 KR 102605127B1
Authority
KR
South Korea
Prior art keywords
bus channel
channel access
score
master
master device
Prior art date
Application number
KR1020210035074A
Other languages
English (en)
Other versions
KR20210129585A (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 누보톤 테크놀로지 코포레이션
Publication of KR20210129585A publication Critical patent/KR20210129585A/ko
Application granted granted Critical
Publication of KR102605127B1 publication Critical patent/KR102605127B1/ko

Links

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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40065Bandwidth and channel allocation
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L12/40052High-speed IEEE 1394 serial bus
    • H04L12/40084Bus arbitration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/78Architectures of resource allocation
    • H04L47/782Hierarchical allocation of resources, e.g. involving a hierarchy of local and centralised entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/805QOS or priority aware
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/36Arbitration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Bus Control (AREA)

Abstract

본 발명은 버스 채널 액세스 권한에 대한 요청을 다수의 마스터 장치로부터 수신하는 것을 포함하는 대역폭 할당 방법을 제공한다. 다음으로, 상기 방법은 우선순위 기반 할당 또는 점수 기반 할당 중의 하나를 선택한다. 우선순위 기반 할당을 선택한 경우, 상기 방법은 버스 채널 액세스 권한에 대해 미리 할당된 우선순위에 따라 버스 채널 액세스 권한을 부여한다. 점수 기반 할당을 선택한 경우, 상기 방법은 버스 채널 액세스 권한에 대해 미리 할당된 점수에 따라 버스 채널 액세스 권한을 부여한다. 또한, 버스 채널 액세스 권한을 부여 받은 마스터 장치로부터 점수를 차감한다.

Description

계층적 대역폭 할당 버스 중재기{HIERARCHICAL BANDWIDTH ALLOCATION BUS ARBITER}
본 발명은 컴퓨터 시스템에 관한 것이다. 특히, 본 발명의 실시예들은 다중 프로세서 컴퓨터 시스템에서의 버스 채널 대역폭 할당에 관한 것이다.
단일 칩 시스템(system on chip; SOC) 설계에서는 많은 블록들이 하나의 단일 칩으로 집적되기 때문에, 하나의 강력한 단일 칩 버스 아키텍처가 요구된다. ARM™의 고급 고성능 버스(Advanced High Performance Bus; AHB)는 각종 ASIC 또는 SOC에 광범위하게 사용되는 부품으로서, 이를 통해 더 많은 제어기 및 주변 장치를 구비한 다중 프로세서 설계를 처리한다. 다수의 마스터 장치가 하나의 슬레이브 장치에 동시에 액세스를 시도하는 경우에는 문제가 발생하게 된다. 따라서, 이 경우 어느 마스터 장치가 슬레이브 장치의 액세스 권한을 부여 받을 수 있는지를 중재기가 판단하는 것이 필요하다. 현재, 순환 우선순위(round-robin priority) 방식, 고정 우선순위 기반(fixed priority-based) 방식 등의 다양한 중재 알고리즘을 사용한다. 그러나, 이러한 종래 방법들은 한계가 있으며, 이하 본 발명을 상세히 설명한다.
이에, 개선된 버스 채널 대역폭 할당 방법이 요구된다.
본 발명자는 종래의 버스 채널 할당 방법에 많은 결점이 존재하는 것을 발견했다. 예컨대, 순환 우선순위 기반 할당은 대역폭 이용률을 효과적으로 제공하지 못한다. 한편, 고정 우선순위 기반의 대역폭 할당은 마스터 장치가 오랜 시간 동안 액세스 권한을 획득하지 못하게 되는 상태에 놓여, 우선순위가 낮은 경우에 버스 채널에 대한 충분한 액세스 권한을 획득할 수 없다. 예컨대, 순환 우선순위 알고리즘에서, 모든 마스터 장치의 우선순위는 순환적인 순서로 배열된다. 마스터 장치가 순환 버퍼의 상단에 위치할 때 권한을 부여 받고, 이어서, 순환 버퍼의 말단으로 이동된다. 이를 통해, 기아 상태가 존재하지 않는(starvation-free) 시스템을 구현할 수 있다. 그러나, 소정의 요청들은 다른 요청보다 중요하다는 점에서, 이러한 시스템은 요청의 상대적인 중요도를 구분하지 못한다. 고정 우선순위의 알고리즘에 있어서, 모든 마스터 장치의 우선순위는 고정되며, 중재기는 요청을 발송한 마스터 장치에 버스 액세스 권한을 부여하고, 상기 마스터 장치는 다수의 마스터 장치 중에서 최상위 우선권을 갖게 된다. 따라서, 우선권이 낮은 마스터 장치는 오랜 시간 동안 액세스 권한을 획득하지 못한다.
또 다른 종래의 할당 방법에는 가중 순환 중재법(weighted round robin arbitration)이 있다. 시작할 때 각각의 마스터 장치에 점수(credit)를 할당하고, 전송 이후마다, 해당하는 마스터 장치의 점수를 1씩 차감한다. 마스터 장치가 점수를 사용 완료한 후에는 순환 방식으로 다음 차례의 마스터 장치를 선택한다. 모든 마스터 장치가 모든 점수를 소진한 후에는 다시 처음부터 상기 마스터 장치의 모든 점수를 로딩한다. 가중 순환 중재법은 복잡하여 효과적인 할당을 제공하지 못한다. 예컨대, 점수를 보유한 마스터 장치는 장시간 동안 버스를 독점한다. 게다가, 마스터 장치가 점수를 소진한 경우에는 순환 중의 다음 라운드까지 대기하여야 하기 때문에 성능 저하를 초래하게 된다.
본 발명의 실시예는 계층적 버스 채널 대역폭 할당을 위한 장치 및 방법을 제공한다.
계층적 대역폭 할당의 실시예들에 의하면, 제1 레벨에서, 시간 구간의 제1 부분을 제1 할당 방안에 분배하고, 시간 구간의 제2 부분을 제2 할당 방안에 분배하는 것을 결정한다. 일 실시예에서, 20%의 시간 구간에 우선순위 기반 할당(priority-based allocation)을 채택하고, 80%의 시간 구간에 점수 기반 할당(credit-based allocation)을 채택한다. 적용 방식에 따라, 기타 할당 비율을 사용할 수도 있다. 예컨대, 40%를 우선순위 기반 할당에 사용하고, 60%를 점수 기반 할당에 사용한다; 또는 60%를 우선순위 기반 할당에 사용하고, 40%를 점수 기반 할당에 사용한다. 기타 실시예에서, 2개 이상의 할당 방안을 선택적으로 대체하여 사용할 수 있다. 예컨대, 대체 방안의 하나로 순환 할당을 선택할 수도 있다. 또한, 적용 방식에 따라, 제1 레벨에서 각각 할당된 시간 구간의 백분비를 결정할 수 있다. 일부의 경우에 있어, 할당 백분율을 사전 설정할 수 있고, 경험에 따라 결정할 수도 있고, 또는 효율성 시뮬레이션 결과에 의거해 결정할 수도 있다. 실시예들에 있어서, 시간 구간은 클럭 주기일 수 있다. 기타 실시예에서, 하나의 시간 구간은 다수의 클럭 주기를 포함할 수 있다. 계층적 대역폭 할당의 제2 레벨에서, 우선순위 기반 할당 또는 점수 기반 할당과 같이 선택적인 할당 방안을 수행할 수 있다. 아래에 설명한 바와 같이, 계층 대역폭 할당은 높은 대역폭 이용률을 제공할 수 있고, 각각의 마스터 장치 버스가 충분한 할당을 제공하여 시간에 민감한 작업을 완료함으로써, 마스터 장치가 액세스 권한을 장시간 동안 얻지 못하는 상태를 방지하거나 감소시킬 수 있다. 실시예들에 있어서, 점수 기반 할당 및 우선순위 기반 할당을 교대로 사용할 수 있다.
본 발명의 일 실시예에 따르면, 전자 장치는 다수의 마스터 장치, 1개 이상의 슬레이브 장치, 버스 채널, 및 버스 중재기를 포함한다. 버스 채널은 다수의 마스터 장치 및 1개 이상의 슬레이브 장치에 연결된다. 버스 채널은 마스터 장치와 슬레이브 장치 사이에 정보를 전송하도록 구성된다. 실시예들에 있어서, 버스 중재기는 하기의 단계에 따라 버스 채널 액세스 권한을 부여하도록 구성된다: 우선순위 기반 할당에 대해 제1 백분율의 시간 구간을 분배하고, 점수 기반 할당에 대해 제2 백분율의 시간 구간을 분배하는 단계; 우선순위 검사 회로를 구동하여 우선순위 기반 할당을 수행하는 단계; 및 점수 검사 회로를 구동하여 점수 기반 할당을 수행하는 단계. 버스 중재기는 액세스 권한을 요청한 마스터 장치에 버스 채널 액세스 권한을 부여하도록 구성된다. 버스 중재기는 우선순위 검사 회로 및 점수 검사 회로를 포함한다. 우선순위 검사 회로는 버스 채널 액세스 권한의 우선순위를 다수의 마스터 장치에 할당하고, 다수의 마스터 장치 중 가장 높은 우선순위를 갖는 마스터 장치에 버스 채널 액세스 권한을 부여하도록 구성된다. 점수 검사 회로는 버스 채널 액세스 권한의 마스터 장치가 권한 부여에 충분한 점수를 갖는 여부를 판단하도록 구성된다. 버스 채널 액세스 권한을 요청하는 1개의 마스터 장치만 충분한 점수를 보유하고 있다고 판단한 경우, 버스 중재기는 버스 채널 액세스 권한을 해당 마스터 장치에 부여한다. 버스 채널 액세스 권한을 요청하는 1개 이상의 마스터 장치가 충분한 점수를 보유하고 있다고 판단한 경우, 버스 중재기는 버스 채널 액세스 권한을 고정 우선순위 방식 하에서 마스터 장치에 부여한다. 점수 검사 회로는 버스 채널 액세스 권한을 부여 받은 마스터 장치로부터 고정 수량의 점수를 차감하도록 구성된다.
본 발명의 일 실시예에 따르면, 본 발명은 버스 채널 액세스 권한에 대한 요청을 다수의 마스터 장치로부터 수신하는 단계; 및 우선순위 기반 할당 또는 점수 기반 할당 중의 하나를 선택하는 단계를 포함하는, 대역폭 할당 방법을 제공한다. 우선순위 기반 할당을 선택한 경우, 상기 방법은 다수의 마스터 장치 중 가장 높은 우선순위를 갖는 마스터 장치에 버스 채널 액세스 권한을 부여한다. 점수 기반 할당을 선택한 경우, 상기 방법은 다수의 마스터 장치 중에서 버스 채널 액세스 권한을 요청하는 1개 이상의 마스터 장치가 충분한 점수를 보유하고 있는지 여부를 판단한다. 버스 채널 액세스 권한을 요청하는 1개의 마스터 장치만 충분한 점수를 보유하고 있다고 판단한 경우, 상기 방법은 버스 채널 액세스 권한을 해당 마스터 장치에 부여한다. 버스 채널 액세스 권한을 요청하는 1개 이상의 마스터 장치가 충분한 점수를 보유하고 있다고 판단한 경우, 상기 방법은 다수의 마스터 장치 중 가장 높은 우선순위를 갖는 마스터 장치에 버스 채널 액세스 권한을 부여한다. 상기 방법은 버스 채널 액세스 권한을 부여 받은 마스터 장치로부터 점수를 차감하는 단계를 더 포함한다. 실시예들에 있어서, 상기 방법은 우선순위 기반 할당 또는 점수 기반 할당 중의 하나를 번갈아 선택한다.
실시예들에 따르면, 본 발명은 버스 채널 액세스 권한에 대한 요청을 다수의 마스터 장치로부터 수신하는 단계를 포함하는 대역폭 할당 방법을 제공한다. 다음으로, 상기 방법은 우선순위 기반 할당 또는 점수 기반 할당 중의 하나를 선택한다. 우선순위 기반 할당을 선택한 경우, 상기 방법은 버스 채널 액세스 권한에 대해 미리 설정된 우선순위에 따라 버스 채널 액세스 권한을 부여한다. 점수 기반 할당을 선택한 경우, 상기 방법은 버스 채널 액세스 권한에 대해 미리 할당된 점수에 따라 버스 채널 액세스 권한을 부여하고, 버스 채널 액세스 권한을 부여 받은 마스터 장치로부터 점수를 차감한다.
실시예들에 따르면, 본 발명은 다수의 마스터 장치; 1개 이상의 슬레이브 장치; 다수의 마스터 장치 및 1개 이상의 슬레이브 장치에 연결된 버스 채널; 및 선택적으로 우선순위 기반 할당 및 점수 기반 할당에 따라 다수의 마스터 장치 중 액세스 권한을 요청하는 마스터 장치에 버스 채널 액세스 권한을 부여하도록 구성되는 버스 중재기를 포함하며, 버스 중재기는 우선순위 기반 할당에 대해 제1 백분율의 시간 구간을 분배하고, 점수 기반 할당에 대해 제2 백분율의 시간 구간을 분배하는, 전자 장치를 제공한다.
본 개시의 더욱 완전한 이해를 위해, 하기의 상세한 설명 및 첨부 도면을 참조한다.
본 개시의 더욱 완전한 이해를 위해, 이하, 도면을 참조하여 상세히 설명한다
도 1은 본 발명의 실시예들에 따른 전자 장치를 개략적으로 나타내는 블록도.
도 2는 AHB 중재기의 신호 인터페이스를 개략적으로 나타내는 블록도.
도 3은 본 발명의 실시예들에 따른 버스 중재기를 포함하는 전자 장치의 일부를 개략적으로 나타내는 블록도.
도 4는 본 발명의 실시예들에 따른 대역폭 할당의 방법을 개략적으로 나타내는 순서도.
도 5는 본 발명에 따른 다양한 실시예를 구현할 수 있는 장치를 개략적으로 나타내는 블록도.
도 1은 본 발명의 실시예들에 따른 전자 장치를 개략적으로 나타내는 블록도이다. 도 1에서, 전자 장치(100)는 다수의 마스터 장치 및 다수의 슬레이브 장치를 나타내는 시스템의 실시예이다. 일반적으로, 전자 장치(100)는 다수의 마스터 장치 및 1개 이상의 슬레이브 장치를 포함할 수 있다. 도 1의 실시예에서, 전자 장치(100)는 4개의 마스터 장치(101, 102, 103, 및 104; 각각 마스터 장치 1, 2, 3, 및 4), 및 4개의 슬레이브 장치(111, 112, 113, 및 114; 각각 슬레이브 장치 1, 2, 3, 및 4)를 포함할 수 있다. 전자 장치(100)는 다수의 마스터 장치 및 1개 이상의 슬레이브 장치에 연결된 버스 채널을 더 구비한다. 버스 채널(120)은 마스터 장치와 슬레이브 장치 사이에서 신호를 전송하도록 구성된다. 전자 장치(100)는 액세스를 요청하는 마스터 장치에 버스 중재기(130)가 버스 채널 액세스 권한을 부여하도록 구성되는 것을 포함할 수 있다. 실시예들에 있어서, 버스 중재기(130)는 계층적 대역폭 할당을 사용하는 버스 채널 액세스 권한을 부여하도록 구성된다. 계층적 대역폭 할당에 있어서, 제1 레벨에서, 시간 구간의 제1 부분을 제1 할당 방안에 할당하고, 시간 구간의 제2 부분을 제2 할당 방안에 할당하는 것을 결정한다. 예컨대, 버스 중재기(130)는 하기의 단계에 따라 버스 채널 액세스 권한을 부여하도록 구성된다: 우선순위 기반 할당에 대해 제1 백분율의 시간 구간을 분배하고, 점수 기반 할당에 대해 제2 백분율의 시간 구간을 분배하는 단계; 우선순위 검사 회로를 구동하여 우선순위 기반 할당을 수행하는 단계; 및 점수 검사 회로를 구동하여 점수 기반 할당을 수행하는 단계. 또한, 일 실시예에서, 20%의 시간 구간에 우선순위 기반 할당을 채택하고, 80%의 시간 구간에 점수 기반 할당을 채택한다. 기타 실시예에서, 2개 이상의 할당 방안을 선택적으로 대체하여 사용할 수 있다. 예컨대, 대체 방안의 하나로 순환 할당을 선택할 수도 있다. 또한, 적용 방식에 따라, 제1 레벨에서 각각 할당된 시간 구간의 백분비를 결정할 수 있다. 일부의 경우에 있어, 할당 백분율을 사전 설정할 수 있고, 경험에 따라 결정할 수도 있고, 성능 시뮬레이션 결과에 의거해 결정할 수도 있다. 계층적 대역폭 할당의 제2 레벨에서, 우선순위 기반 할당 또는 점수 기반 할당 등의 선택적 할당 방안을 수행할 수 있으며, 이는 하기에 설명한 바와 같다.
실시예들에 있어서, 상이한 마스터 장치의 점수는 상이한 속도로 누적된다. 중요한 마스터 장치는 더 빠른 속도를 가질 수 있다. 다음으로, 점수 누적이 충분히 많을 때마다 각각의 마스터 장치는 대역폭을 점용하므로 순환 방식으로 대기할 필요가 없다. 대역폭의 사용 효율이 더욱 양호해질 수 있다. 또한, 계층적 대역폭 할당은 점수 기반의 부분을 가질 뿐만 아니라 공유 사용의 부분도 가지게 된다. 이러한 계층적 배열을 통해 시스템이 더욱 동태적으로 구성될 수 있다. 점수 누적 속도는 대역폭 요건에 따라 결정될 수 있다. 예컨대, 마스터 장치가 필요로 하는 초당 백만 명령어(MIPS)로 측정할 수 있다. 단지 예시적으로, 시스템은 대역폭이 20 MIPS인 버스 채널을 가질 수 있다. 제1 마스터 장치는 16 MIPS가 필요하고 제2 마스터 장치는 4 MIPS가 필요하다. 이러한 상황에서, 제1 마스터 장치는 16/20 또는 0.8 개의 점수 단위로 할당될 수 있고, 제2 마스터 장치는 4/20 또는 0.2 개의 점수 단위로 할당될 수 있다. 일부의 경우에 있어, 제1 마스터 장치는 버스트 모드(burst mode)에서 조작될 수 있으며, 버스 채널의 19 내지 20 MIPS 대역폭을 이용할 수 있고, 동시에 기타 마스터 장치가 버스 채널에 액세스하는 것을 방지하게 된다. 일부의 경우에 있어, 적은 수의 마스터 장치가 높은 대역폭을 필요로 하기도 한다. 고정 우선순위의 부분과 같은 공유 사용의 부분은 이러한 상황에서 도움이 될 수 있다.
예시적으로, 전자 장치(100)는 멀티 CPU 코어를 갖는 집적 회로 단일 칩 시스템(system-on-chip; SOC)일 수 있다. 이러한 상황에서, 마스터 장치는 CPU 코어일 수 있고, 슬레이브 장치는 주변 장치일 수 있다. 또 다른 예로서, 전자 장치(100)는 통상적인 프로세서, 그래픽 처리장치, 직접 메모리 액세스(direct memory access; DMA) 엔진, 및 암호화/복호화 엔진 등의 마스터 장치를 구비할 수 있고, 마스터 장치는 메모리 및 I/O 회로 등 대표성을 갖는 슬레이브 장치에 대해 읽기/쓰기를 할 수 있다. 본 명세서에 설명된 마스터 장치는 대표성을 가질 뿐, 전자 장치(100)는 상이한 기능을 갖는 임의의 복수개 마스터 장치도 포함할 수 있다. 또한, 전자 장치(100)는 단일 집적 회로에 제한되지 않을 수 있다. 예컨대, 다수의 마스터 장치 및 슬레이브 장치가 상이한 집적 회로에 상주할 수 있다.
예시적으로, 버스 채널(120)은 고급 고성능 버스(AHB)일 수 있다. AHB는 ARM??의 고급 마이크로 컨트롤러 버스 아키텍처(Advanced Microcontroller Bus Architecture; AMBA)의 하나로서, 합성 가능한 고성능 설계의 요구 사항을 충족하는 것에 그 목적이 있다. 다수의 마스터 장치 및 다수의 슬레이브 장치 갖는 시스템에 있어서, 모든 마스터 장치는 중재기(130)를 향해 요청 신호(REQ)를 전송하고, 중재기(130)는 버스 액세스 권한 부여 신호(GRANT)를 선택된 마스터 장치에 리턴하여 어떤 마스터 장치가 공유 버스를 부여 받았는지를 표시하고 이를 슬레이브 장치에 전송한다.
도 2는 AHB 중재기의 신호 인터페이스를 개략적으로 나타내는 블록도이다. AMBA 시스템에서, 중재기(200)의 역할은 어느 마스터 장치가 버스의 액세스 권한을 가질 수 있는가를 제어하는 것이다. 각각의 버스 마스터 장치는 중재기에 대한 REQUEST/GRANT 인터페이스를 구비하며, 중재기는 중재 알고리즘을 사용하여 어느 버스 마스터 장치가 현재 가장 높은 우선권을 갖고 있는지를 판단한다. 도 2는 AHB 중재기(200)의 신호 인터페이스를 도시한다. 신호는 HBUSREQ1, HBUSREQ2, HBUSREQ3, HBUSREQ4, HADDR[31:0], HTRANS[1:0], HBURST[2:0], HRESP[1:0], HCLK, HRESETN, HGRANT1, HGRANT2, HGRANT3, HGRANT4, HMASTER[3:0], 및 HMASTLOCK을 포함할 수 있다.
도 2에서 중재기(200)는 본 발명의 실시예를 구현하기 위한 중재기의 예시에 해당한다. 이외에도, 상이한 버스 채널 할당 알고리즘을 구현할 수 있다. 그러나, 종래의 버스 채널 할당 알고리즘은 한계가 있다. 그 한계들의 일부 내용은 상술하였다. 본 발명의 실시예에서, 높은 대역폭을 통해 기아 상태가 없는 시스템을 제공할 수 있는 광대역의 할당 중재기를 설명하였다.
도 3은 본 발명의 실시예들에 따른 버스 중재기를 포함하는 전자 장치의 일부를 개략적으로 나타내는 블록도이다. 도 3에 도시된 바와 같이, 버스 중재기(300)는 우선순위 검사 회로(310), 다수의 버스 점수 계수기(321, 322, 323, 및 324; 각각 점수 계수기 1, 2, 3, 및 4), 및 점수 검사 회로(330)을 포함할 수 있다. 또한, 도 3은 4개의 마스터 장치(101, 102, 103, 및 104; 각각 마스터 장치 1, 2, 3, 및 4)를 표시하며, 도 1에서의 장치들과 유사하다. 또한, 도 3은 버스 중재기(300)를 통해 마스터 장치(101 내지 104)에 연결된 버스 채널(350) 및 슬레이브 장치에 연결된 고유 버스(미도시)를 도시한다. 마스터 장치(101 내지 104)는 각각 버스 요청 신호(BUSREQ1, BUSREQ2, BUSREQ3, 및 BUSREQ4)를 버스 중재기(300)에 전송하고, 버스 중재기(300)는 각각 버스 부여 신호(GRANT1, GRANT2, GRANT3, 및 GRANT4)를 마스터 장치(101 내지 104)에 리턴한다.
실시예들에 있어서, 버스 중재기(300)는 하기의 단계에 따라 버스 채널 액세스 권한을 부여하도록 구성된다: 우선순위 기반 할당에 대해 제1 백분율의 시간 구간을 분배하고, 점수 기반 할당에 대해 제2 백분율의 시간 구간을 분배하는 단계; 우선순위 검사 회로를 구동하여 우선순위 기반 할당을 수행하는 단계; 및 점수 검사 회로를 구동하여 점수 기반 할당을 수행하는 단계.
우선순위 검사 회로(310)는 버스 채널 액세스 권한의 우선순위를 다수의 마스터 장치(101 내지 104)에 할당하도록 구성된다. 우선순위 검사 회로(310)는 다수의 마스터 장치 중 가장 높은 우선순위를 갖는 마스터 장치에게 버스 채널 액세스 권한을 부여하도록 구성된다. 예컨대, 우선순위 기반 할당인 경우, 시작할 때에 각각의 마스터 장치가 하나의 우선순위로 할당된다. 다음으로, 가장 높은 우선순위를 갖는 마스터 장치는 버스 채널 액세스 권한을 부여 받으며, 다른 마스터 장치는 대기 상태에 있는다.
다수의 점수 계수기(321, 322, 323, 및 324)는 각각 다수의 마스터 장치(101, 102, 103, 및 104)와 대응한다. 점수 검사 회로(330)는 다수의 마스터 장치 중에서 버스 채널 액세스 권한을 요청하는 1개 이상의 마스터 장치가 충분한 점수를 보유하고 있는지 여부를 판단하고, 이에 대응하여 버스 채널 액세스 권한을 할당한다. 예컨대, 버스 채널 액세스 권한을 요청하는 1개의 마스터 장치만 충분한 점수를 보유하고 있다고 판단한 경우, 점수 검사 회로(330)는 상기 마스터 장치에게 버스 채널 액세스 권한을 부여한다. 또한, 버스 채널 액세스 권한을 요청하는 1개 이상의 마스터 장치가 충분한 점수를 보유하고 있다고 판단한 경우, 점수 검사 회로(330)는 가장 높은 우선순위 또는 가장 높은 점수 인덱스를 갖고 있는 마스터 장치에게 버스 채널 액세스 권한을 부여한다. 점수 검사 회로(330)는 버스 채널 액세스 권한을 부여 받은 마스터 장치로부터 점수를 차감한다. 이러한 상황에서, 점수가 할당 및 소모될 수 있다.
예컨대, 점수 계수기 각각은 상이한 점수 할당으로 설정될 수 있다. 예컨대, 점수 계수기 각각은 상이한 시간 간격으로 상이한 수량의 점수를 할당할 수 있다.
제1 마스터 장치의 제1 점수 계수기를 더욱 빈번하게 할당할 수 있다. 예컨대, 각각의 시간 구간의 1회 또는 주파수는 다른 마스터 장치의 제2 점수 계수기보다 적다. 마찬가지로, 할당 시, 제1 마스터 장치의 제1 점수 계수기는 다른 마스터 장치의 제2 점수 계수기 할당보다 많은 점수를 가질 수 있다. 마스터 장치가 버스 채널 액세스 권한의 요청을 발송하면, 점수 검사 회로(330)는 대응하는 점수 계수기를 검사하여, 마스터 장치가 요청에 대해 충분한 점수를 갖고 있는 여부를 확인한다. 마스터 장치가 충분한 점수를 갖고 있다면, 권한은 부여되고 소정 수량의 점수가 공제 또는 차감될 수 있다. 다수의 마스터 장치가 동시에 버스 채널 액세스 권한을 요청하고 이들 모두 충분한 점수를 갖고 있다면, 버스 중재기(300)는 우선순위 검사 회로(310)를 구동하여 다수의 마스터 장치 중 가장 높은 우선순위를 갖는 마스터 장치에게 버스 채널 액세스 권한을 부여한다.
실시예들에 있어서, 버스 채널의 대역폭은 점수 기반의 부분 및 우선순위 기반의 부분으로 양분된다. 각 부분의 백분율은 프로그래밍되거나 즉각적으로 변경될 수 있다. 예컨대, 상기 백분율은 20% 및 80%로 프로그래밍 될 수 있다. 예컨대, 20%의 시간 구간에서 버스 채널 액세스 권한으로 우선순위 기반 할당을 사용할 수 있고, 80%의 시간 구간에서 점수 기반 할당을 사용할 수 있다.
우선순위 기반 할당에 있어서, 각각의 마스터 장치가 버스 채널 액세스 권한의 요청을 하는 경우에, 버스 채널이 유휴 중이라면 권한을 부여 받는다. 만약 1개 이상의 마스터 장치가 동시에 버스 채널 액세스 권한을 요청하면, 권한을 부여 받을 수 있는 마스터 장치를 결정하는 데 우선순위 기반 할당이 사용된다.
점수 기반 할당에 있어서, 예컨대, 4개의 마스터 장치는 각각 점수 계수기를 가질 수 있다. 각 점수 계수기의 최대 용량은 서로 동일할 수 있고, 각 마스터 장치의 최대 점수가 동일한 것으로 표시된다. 마스터 장치에 따라 상이한 대역폭이 필요하고, 마스터 장치는 기타 장치보다 많은 데이터 통신이 필요하기 때문에, 점수가 소모되는 속도가 상이할 수 있다. 따라서, 각각의 마스터 장치의 점수는 상이한 속도로 증가할 수 있다. 그러나, 본 실시예에서, 각각의 마스터 장치의 최대 점수는 서로 동일하다. 이러한 상황에서, 마스터 장치가 최대의 점수를 수신한 경우, 점수를 사용하는 것 말고는 해당 점수가 다시 증가할 수는 없다.
실시예들에 있어서, 마스터 장치의 최대 점수 및 각각의 마스터 장치의 점수 누적 속도 또한 즉각적으로 프로그래밍될 수 있다. 각각의 마스터 장치의 사전 점수는 최대 점수로 설정될 수 있고, 각각의 마스터 장치가 시작 시에는 모두 충분한 한도로 거래를 수행하도록 표시된다. 예컨대, 각각의 마스터 장치의 최대 점수는 3으로 설정될 수 있다. 제1 마스터 장치에 2개의 클럭 주기가 소요되면 1점을 획득할 수 있고, 제2 마스터 장치에 4개의 클럭 주기가 소요되면 1점을 획득할 수 있고, 제3 마스터 장치에 8개의 클럭 주기가 소요되면 1점을 획득할 수 있고, 제4 마스터 장치에 16개의 클럭 주기가 소요되면 1점을 획득할 수 있다. 마스터 장치가 버스 채널 액세스 권한을 필요로 하는 경우, 중재기의 제1 단계는 상기 마스터 장치가 충분한 점수를 보유한 상태로 요청하는지 여부를 검사하는 것이다. 만약 마스터 장치가 명백히 충분한 점수를 갖고 있다면, 요청을 접수한다. 실시예에서, 상기 거래에 필요한 대역폭에 따라, 상기 거래에 필요한 점수를 결정한다. 만약 상기 거래가 많은 대역폭을 필요로 하면, 1점 이상이 필요하다.
권한을 부여 받은 후, 상기 마스터 장치의 총점에서 차감한다. 차감되는 수치는 소요되는 대역폭에 의거한다. 실시예들에 있어서, 이 때의 마스터 장치가 1점 이상을 갖지만 거래를 진행하기에 부족한 경우로서, 권한이 허용된 기타의 마스터 장치가 동시에 버스 채널 액세스를 요청하지 않는 때에는, 중재기가 이러한 마스터 장치에 버스 채널 액세스 권한을 부여할 수 있다. 한편, 상기 마스터 장치의 점수는 마이너스(필요한 점수를 현재의 점수에서 감한 점수에 해당)일 수 있다. 이후, 마스터 장치는 차입한 점수를 상환할 필요가 있다. 이를 통해 대역폭 이용률을 높임으로써, 버스가 장시간 동안 유휴 상태에 있는 것을 방지할 수 있다.
다른 실시예에서, 다수의 마스터 장치가 동시에 버스 채널 액세스 권한을 요청하고 충분한 점수를 보유하고 있는 경우에, 버스 채널 액세스 권한은 우선순위에 따라 부여될 수 있다. 우선순위 기반 할당인 경우, 각각의 마스터 장치는 시작 시 하나의 우선순위로 할당된다. 다음으로, 가장 높은 우선순위를 갖는 마스터 장치는 버스 채널 액세스 권한을 부여 받으며, 다른 마스터 장치는 대기 상태에 있는다.
도 4는 본 발명의 실시예들에 따른 대역폭 할당의 방법을 개략적으로 나타내는 순서도이다. 상기 방법은 도 4에서와 같이 개괄할 수 있다. 이하 보다 자세히 설명한다. 방법(400)은 버스 채널 액세스 권한의 우선순위를 다수의 마스터 장치에 할당하고, 버스 채널 액세스 권한의 점수를 다수의 마스터 장치에 할당하는 것을 포함한다. 단계 410에서, 상기 방법은 버스 채널 액세스 권한에 대한 요청을 다수의 마스터 장치로부터 수신하는 것을 포함한다. 단계 420에서, 상기 방법은 우선순위 기반 할당 또는 점수 기반 할당 중의 하나를 선택한다. 이때, 상기 방법은 우선순위 기반 할당에 대해 제1 백분율의 시간 구간을 분배하고, 점수 기반 할당에 대해 제2 백분율의 시간 구간을 분배하는 단계를 더 포함할 수 있다.
단계 421에서, 우선순위 기반 할당을 선택한 경우, 상기 방법은 요청을 발신한 마스터 장치와 관련된 우선순위에 의거해 버스 채널 액세스 권한을 부여한다. 단계 422에서, 점수 기반 할당을 선택한 경우, 상기 방법은 요청을 발신한 마스터 장치와 관련된 점수에 의거해 버스 채널 액세스 권한을 부여한다.
우선순위 기반 할당을 더욱 자세히 설명하면, 단계 430에서, 상기 방법은 몇 개의 마스터 장치가 버스 채널 액세스 권한을 요청하고 있는 중인지 여부를 검사한다. 단계 431에서, 1개의 마스터 장치가 버스 채널 액세스 권한을 요청하고 있는 중이라면, 상기 마스터 장치는 액세스 권한을 부여 받을 수 있다. 단계 432에서, 1개 이상의 마스터 장치가 버스 채널 액세스 권한을 요청하고 있는 중이라면, 가장 높은 우선순위를 갖는 마스터 장치가 버스 채널 액세스 권한을 부여 받는다.
점수 기반 할당을 선택한 경우, 단계 440에서, 상기 방법은 다수의 마스터 장치 중에서 버스 채널 액세스 권한을 요청하는 1개 이상의 마스터 장치가 충분한 점수를 보유하고 있는지 여부를 판단한다. 단계 441에서, 버스 채널 액세스 권한을 요청하는 마스터 장치가 충분한 점수를 보유하고 있지 않다고 판단한 경우, 상기 방법은 단계 410으로 복귀한다. 이때, 대기열에서의 보류 요청(pending request)를 고려한다. 우선순위 기반 할당을 구동하는 경우, 상기 요청은 액세스 권한을 부여 받을 수 있다.
단계 442에서, 버스 채널 액세스 권한을 요청하는 1개의 마스터 장치만 충분한 점수를 보유하고 있다고 판단한 경우, 상기 방법은 버스 채널 액세스 권한을 마스터 장치에 부여한다. 단계 443에서, 버스 채널 액세스 권한을 요청하는 1개 이상의 마스터 장치가 충분한 점수를 보유하고 있다고 판단한 경우, 상기 방법은 가장 높은 우선순위 또는 가장 높은 점수를 갖고 있는 마스터 장치에게 버스 채널 액세스 권한을 부여한다.
단계 450에서, 단계 442 또는 단계 443에서 버스 채널 액세스 권한을 수신한 마스터 장치에 대해 점수를 차감한다. 이어서, 상기 방법은 단계 410으로 복귀하여 버스 채널 액세스 권한의 대기열(queue)을 서비스한다.
실시예들에 있어서, 상기 방법은 20%의 시간 구간에 우선순위 기반 할당을 채택하고, 80%의 시간 구간에 점수 기반 할당을 번갈아 채택한다.
실시예들에 있어서, 상기 방법은 정기적으로 버스 채널 액세스 권한의 점수를 다수의 마스터 장치에 할당한다. 일 실시예에서, 상기 방법은 각각의 시간 구간에 버스 채널 액세스 권한의 점수를 마스터 장치에 1회 할당한다. 일 실시예에서, 상기 방법은 마스터 장치의 버스 채널 요청에 따라 버스 채널 액세스 권한의 점수를 마스터 장치에 할당한다. 실시예들에 있어서, 상기 방법은 버스 채널 액세스 권한의 우선순위를 동태적으로 할당한다.
도 5는 본 발명에 따른 실시예들을 구현하기 위한 장치를 개략으로 나타내는 블록도이다. 도 5는 단지 본 개시의 실시예를 포함하는 설명으로서, 본 출원의 청구 범위에 따른 본 개시의 범위를 제한하지 않는다. 본 발명의 기술 분야에 속하는 통상의 지식을 가진 자는 기타 변형, 변경 및 치환이 가능하다. 일 실시예에서, 통상적으로 컴퓨터 시스템(500)은 스크린(510), 컴퓨터(520), 사용자 출력 장치(530), 사용자 입력 장치(540), 통신 인터페이스(550) 등을 포함한다.
도 5에 도시된 바와 같이, 컴퓨터(520)는 프로세서(560)를 포함할 수 있고, 프로세서는 버스 서브시스템(600) 및 다수의 주변 장치를 경유하여 통신을 수행한다. 상기 주변 장치는 사용자 출력 장치(530), 사용자 입력 장치(540), 통신 인터페이스(550), 및 임의 접근 메모리(RAM; 570) 및 디스크 드라이브(580)와 같은 메모리 서브시스템을 포함할 수 있다. 컴퓨터(520)는 중재기(590)를 더 포함할 수 있다.
도 5는 본 개시의 컴퓨터 시스템을 구현하는 상태를 나타낸다. 예컨대, 도 1에서의 전자 장치(100)는 도 5에 도시된 시스템(500)과 유사한 시스템을 사용하여 구현될 수 있다. 예컨대, 도 5에서의 프로세서(560)는 도 1에서의 다수의 마스터 장치를 나타낼 수 있다. 특정 실시예로서, 프로세서(560)는 SOC에서의 멀티 코어를 나타낼 수 있다. 또한, 주변 장치(530, 540, 및 550 등)는 도 1에서 도시된 슬레이브 장치들을 나타낼 수 있다. 도 1에서의 중재기의 기능은 도 5에 도시된 중재기(590)로 수행될 수 있다. 선택적으로, 도 1에서의 중재기의 기능은 도 5에 도시된 프로세서(560)의 하나로 수행될 수 있다. 예컨대, 시스템(500)의 일부는 중재기 기능을 구현할 수 있는 디지털 신호 처리기로 표시될 수 있다. 선택적으로, 통상적인 처리기에서 수행되는 소프트웨어 프로그램은 시스템(500)에 설명된 바와 같이 중재기의 기능을 구현하도록 사용될 수 있다.
사용자 입력 장치(540)는 정보를 컴퓨터 시스템(520)에 입력하기 위한 모든 유형의 장치 및 메커니즘을 포함할 수 있다. 이러한 장치에는 키보드, 숫자 키보드, 모니터 일체형 터치스크린, 음향입력장치(음성인식시스템 등), 마이크로폰, 및 기타 유형의 입력 장치를 포함한다. 각 실시예에서, 사용자 입력 장치(540)는 통상적으로 컴퓨터 마우스, 트랙볼, 트랙패드, 조이스틱, 무선 리모컨, 타블렛, 음성명령시스템, 안구추적시스템 등으로 구현된다. 사용자 입력 장치(540)는 통상적으로 사용자가 클릭 버튼 등의 명령을 통해 해당 스크린(510) 상의 대상, 아이콘, 텍스트 등을 선택할 수 있도록 한다.
사용자 출력 장치(530)는 컴퓨터(520)로부터 정보를 출력하기 위한 모든 유형의 장치 및 메커니즘을 포함한다. 이에는 디스플레이 장치(예컨대, 스크린(510)), 및 오디오 출력 장치와 같은 비가시적 디스플레이 장치가 포함될 수 있다.
통신 인터페이스(550)는 기타 통신 네트워크 및 장치에 연결되는 인터페이스를 제공한다. 통신 인터페이스(550)는 기타 시스템으로부터 데이터를 수신하고 기타 시스템에 데이터를 전송하는 인터페이스로서 작동한다. 통신 인터페이스(550)의 실시예에는 통상적으로 이더넷 카드, 모뎀(전화, 위성, 케이블, ISDN), (비동기) 디지털가입자회선(DSL) 유닛, FireWire 인터페이스, USB 인터페이스 등이 포함된다. 예컨대, 통신 인터페이스(550)는 컴퓨터 네트워크, FireWire 버스 등에 연결될 수 있다. 기타 실시예에서, 통신 인터페이스(550)는 컴퓨터(520)의 메인보드 상에 물리적으로 통합될 수 있으며, 소프트 DSL 등과 같은 소프트웨어 프로그램일 수 있다.
각 실시예에서, 컴퓨터 시스템(500)은, HTTP, TCP/IP, RTP/RTSP 프로토콜 등과 같은, 네트워크를 통해 통신을 수행할 수 있는 소프트웨어를 더 포함할 수 있다. 본 개시의 실시예 중에서, 기타 통신 소프트웨어, 및 IPX, UDP 등의 전송 프로토콜을 더 사용할 수 있다. 실시예들에 있어서, 컴퓨터(520)는 인텔(Intel)사의 1개 이상의 Xeon 마이크로 프로세서를 프로세서(560)로 사용하는 것을 포함한다. 또한, 일 실시예에서, 컴퓨터(520)는 UNIX 기반의 시스템을 포함한다. 프로세서(560)는 디지털 신호 프로세서(DSP), 명령어 집합 컴퓨터(RISC)와 같은 특수 목적의 프로세서를 더 포함할 수 있다.
임의 접근 메모리(RAM; 570) 및 디스크 드라이브(580)는 데이터를 저장하는 유형 저장 매체로서 구성되는 실시예에 해당한다. 예컨대, 본 개시의 실시예에서, 집행 가능 컴퓨터 프로그램, 사람 독취 가능 프로그램 등을 포함한다. 기타 유형의 유형 저장 매체는 자기 디스크, 포터블 하드 디스크, 광학 저장 매체(CD-ROM, DVD, 및 바코드 등), 반도체 메모리(플래시 메모리, 읽기전용 메모리(ROM), 배터리 지지 휘발성 메모리, 네트워크 저장 장치 등) 등을 포함한다. 임의 접근 메모리(RAM; 570) 및 디스크 드라이브(580)는 본 개시의 기능의 기본적인 프로그램 설계 및 데이터 구축을 저장하고 제공하도록 구성될 수 있다.
본 개시의 기능을 제공하는 소프트웨어 프로그램 모듈 및 명령은 임의 접근 메모리(570) 및 디스크 드라이브(580) 내에 저장될 수 있다. 이러한 소프트웨어 모듈은 프로세서(560)가 실행할 수 있다. 임의 접근 메모리(570) 및 디스크 드라이브(580)는 본 개시에 따라 사용되는 데이터를 저장하기 위한 저장소를 제공할 수 있다.
임의 접근 메모리(570) 및 디스크 드라이브(580)는 다수의 메모리를 포함할 수 있으며, 소프트웨어가 실행하는 동안 명령 및 데이터를 저장하기 위한 메인 임의 액세스 메모리 및 비일시적 명령을 저장 및 고정하는 읽기전용 메모리를 포함한다. 임의 접근 메모리(570) 및 디스크 드라이브(580)는 파일 저장 서브시스템을 포함할 수 있으며, 파일 저장 서브시스템은 프로그램 및 데이터 파일이 제공되어 영구적으로(비휘발적으로) 저장된다. 임의 접근 메모리(570) 및 디스크 드라이브(580)는 이동식 플래시 메모리와 같은 이동식 저장 시스템을 포함할 수 있다.
버스 서브시스템(600)은 컴퓨터(520)의 각각 부품 및 서브시스템이 소정의 방식으로 상호간에 통신을 수행하도록 하는 메커니즘을 제공한다. 버스 서브시스템(600)이 모노 버스인 것으로 개략적으로 나타나 있지만, 버스 시스템의 대체 가능한 실시예는 다양한 버스를 사용할 수 있다.
도 5는 본 개시의 컴퓨터 시스템을 구현하는 상태를 나타낸다. 다양한 기타 소프트웨어 및 하드웨어의 설정을 본 개시에 적용하는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것에 해당한다. 예컨대, 컴퓨터는 탁상형, 휴대형, 하우징 장착형, 또는 태블릿 PC로 설치 가능하다. 또한, 컴퓨터는 일련의 네트워킹 컴퓨터일 수 있다. 또한, 예컨대, Pentium™ 또는 Itanium™ 마이크로 프로세서, AMD사의 Opteron™ 또는 AthlonXP™ 마이크로프로세서, 및 ARM™ 마이크로 프로세서 등의 기타 마이크로프로세서를 사용하는 것을 고려할 수 있다. 또한, 마이크로소프트사의 Windows®, WindowsXP®, WindowsNT®, 및 선마이크로시스템즈사의 Solaris, LINUX 및 UNIX, 애플컴퓨터사의 IOS, 및 구글사의 Chrome과 같은 기타 유형의 오퍼레이팅 시스템을 고려할 수 있다. 기타 실시예에서, 상기 기술은 웨이퍼 또는 코프로세싱 플레이트 상에서 구현될 수 있다.
본 개시의 실시예들은 소프트웨어 또는 하드웨어적인 논리 또는 이들 모두를 조합한 형식으로 구현될 수 있다. 상기 논리는 컴퓨터 독취가능 또는 기계 독취가능 비일시적 저장 매체에 저장되어, 컴퓨터 시스템을 가이드하는 프로세서에 적용되는 명령으로 작용함으로써, 본 개시의 실시예에 따라 개시된 단계들을 실행할 수 있다. 상기 논리는 컴퓨터 독취가능 또는 기계 독취가능 비일시적 저장 매체에 저장되어, 컴퓨터 시스템을 가이드하는 프로세서에 적용되는 명령으로 작용함으로써, 본 개시의 실시예에 따라 개시된 단계들을 실행할 수 있다. 상기 논리는 컴퓨터 프로그램 제품의 일부로 형성될 수 있으며, 컴퓨터 프로그램 제품은 정보 처리 장치를 가이드하도록 적용되어 본 개시의 실시예에 따라 개시된 단계들을 실행한다. 본 명세서에 제공된 개시 및 교시 내용에 의하면, 본 발명의 기술 분야에 속하는 통상의 지식을 가진 자는 본 개시 내용을 구현하기 위한 기타의 방식 및/또는 방법을 이해할 수 있을 것이다.
본 명세서에 설명된 데이터 구조 및 프로그램은 일부 또는 전부가 컴퓨터 독취가능 저장 매체, 및/또는 하드웨어 모듈, 및/또는 하드웨어 장치에 저장될 수 있다.
컴퓨터 독취가능 매체에는 휘발성 메모리, 비휘발성 메모리, 마그네틱 및 광학 저장 장치(자기 디스크 드라이브, 자기 테이프, 컴팩트디스크(CD), 및 디지털 다기능 디스크 또는 디지털 비디오 디스크(DVD) 등), 또는 공지됐거나 개발될 프로그램 및/또는 데이터 저장 가능 매체를 포함하지만 이에 한정되지 않는다. 본 명세서에 따른 하드웨어 모듈 또는 장치는 주문형 집적회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 전용 또는 공유 프로세서 및/또는 공지됐거나 개발될 기타 하드웨어 모듈 또는 장치를 포함하지만 이에 한정되지 않는다.
본 명세서에 설명된 방법 및 공정의 일부 또는 전부는 컴퓨터 독취가능 저장 매체 또는 장치에 저장된 프로그램 및/또는 데이터에 해당할 수 있다. 따라서, 컴퓨터 시스템이 프로그램 또는 데이터를 독취 및 실행하는 경우에, 컴퓨터 시스템은 관련 방법 및 공정을 실행할 수 있다. 이러한 방법 및 공정은 부분적으로 또는 전체적으로 하드웨어 모듈 또는 장치에서 구현되어, 하드웨어 모듈 또는 장치를 구동하는 경우에 관련 방법 및 공정을 실행할 수 있다. 프로그램, 데이터 및 하드웨어 모듈 또는 장치의 조합을 이용하여 본 명세서에 개시된 방법 및 공정을 구현할 수 있다.
이상으로 본 명세서에 특정 실시예들을 설명하였으나, 이러한 실시예들은 다양하게 변경 가능하며, 명세서에 제시된 원리는 기타의 실시예에 적용될 수도 있다. 또한, 청구 범위를 내에서 각종 구성품 및/또는 방법의 단계/블록은 특별히 개시된 설정 이외의 설정으로 구현될 수 있다. 이러한 점을 감안하여, 본 발명의 기술 분야에 속하는 통상의 지식을 가진 자는 기타 실시예 및 변경을 용이하게 도출할 수 있다. 따라서, 상술한 명세서 및 첨부 도면을 조합하면, 첨부된 청구 범위는 상기 실시예 및 변경을 모두 아우르도록 의도된다.
100: 전자 장치
101,102,103,104: 마스터 장치 111,112,113,114: 슬레이브 장치
120,350: 버스 채널 130,200,300,590: 중재기
310: 우선순위 검사 회로 321,322,323,324: 점수 계수기
330: 점수 검사 회로 400: 방법
410,420,421,422,430,431,432,440,441,442,443,450: 단계
500: 컴퓨터 시스템 510: 스크린
520: 컴퓨터 530: 사용자 출력 장치
540: 사용자 입력 장치 550: 통신 인터페이스
560: 프로세서 570: 임의 액세스 메모리
580: 디스크 드라이브

Claims (20)

  1. 다수의 마스터 장치;
    1개 이상의 슬레이브 장치;
    상기 다수의 마스터 장치 및 상기 1개 이상의 슬레이브 장치에 연결되며, 상기 다수의 마스터 장치 중 1개의 마스터 장치와 슬레이브 장치 사이에서 정보를 전송하도록 구성되는 버스 채널; 및
    우선순위 기반 할당 및 점수 기반 할당에 따라 버스 채널 액세스 권한을 요청한 마스터 장치에 해당 권한을 부여하되, 우선순위 기반 할당에 대해 제1 백분율의 시간 구간을 분배하고, 점수 기반 할당에 대해 제2 백분율의 시간 구간을 분배하도록 구성되며, 우선순위 검사 회로 및 점수 검사 회로를 포함함으로써 이 중 어느 한 회로를 선택적으로 구동하여 버스 채널 액세스 권한을 다수의 마스터 장치 중 1개에 부여하도록 구성되는 버스 중재기
    를 포함하며,
    상기 우선순위 검사 회로는 상기 버스 채널 액세스 권한의 우선순위를 상기 다수의 마스터 장치에 할당하고, 다수의 마스터 장치 중 가장 높은 우선순위를 갖는 상기 마스터 장치에게 상기 버스 채널 액세스 권한을 부여하고,
    상기 점수 검사 회로는 상기 다수의 마스터 장치 중에서 상기 버스 채널 액세스 권한을 요청하는 1개 이상의 마스터 장치가 점수를 보유하고 있는지 여부를 판단하고, 상기 버스 채널 액세스 권한을 요청하는 1개의 마스터 장치만 상기 점수를 보유하고 있다고 판단한 경우, 상기 버스 채널 액세스 권한을 상기 마스터 장치에 부여하고, 상기 버스 채널 액세스 권한을 요청하는 1개 이상의 마스터 장치가 상기 점수를 보유하고 있다고 판단한 경우, 가장 높은 우선순위 또는 가장 높은 점수를 갖고 있는 상기 마스터 장치에게 상기 버스 채널 액세스 권한을 부여하고, 상기 버스 채널 액세스 권한을 부여 받은 상기 마스터 장치로부터 상기 점수를 차감하는, 전자 장치.
  2. 제1항에 있어서,
    상기 버스 중재기는,
    상기 제1 백분율의 시간 구간에서 상기 우선순위 검사 회로를 구동하여 상기 우선순위 기반 할당을 수행하고,
    상기 제2 백분율의 시간 구간에서 상기 점수 검사 회로를 구동하여 점수 기반 할당을 수행하여 상기 버스 채널 액세스 권한을 부여하도록 구성되는, 전자 장치.
  3. 제1항에 있어서,
    상기 버스 중재기는 상기 우선순위 기반 할당 및 상기 점수 기반 할당을 번갈아 수행하는, 전자 장치.
  4. 제1항에 있어서,
    상기 버스 중재기는 20%의 시간 내에 상기 우선순위 기반 할당을 수행하고, 80%의 시간 내에 상기 점수 기반 할당을 수행하는, 전자 장치.
  5. 제1항에 있어서,
    상기 버스 채널 중재기는 정기적으로 상기 버스 채널 액세스 권한의 점수를 상기 다수의 마스터 장치에 할당하는, 전자 장치.
  6. 제1항에 있어서,
    상기 버스 중재기는 각각의 시간 구간에 상기 버스 채널 액세스 권한의 점수를 상기 마스터 장치에 1회 할당하는, 전자 장치.
  7. 제1항에 있어서,
    상기 버스 중재기는 상기 마스터 장치의 버스 채널 요청에 따라 상기 버스 채널 액세스 권한의 점수를 상기 마스터 장치에 할당하는, 전자 장치.
  8. 버스 채널 액세스 권한에 대한 요청을 다수의 마스터 장치로부터 수신하는 단계;
    우선순위 기반 할당 또는 점수 기반 할당 중의 하나를 선택하는 단계;
    상기 우선순위 기반 할당에 대해 제1 백분율의 시간 구간을 분배하고, 상기 점수 기반 할당에 대해 제2 백분율의 시간 구간을 분배하는 단계;
    상기 우선순위 기반 할당을 선택한 경우, 다수의 마스터 장치 중 가장 높은 우선순위를 갖는 마스터 장치에게 상기 버스 채널 액세스 권한을 부여하는 단계;
    상기 점수 기반 할당을 선택한 경우, 상기 다수의 마스터 장치 중에서 상기 버스 채널 액세스 권한을 요청하는 1개 이상의 마스터 장치가 점수를 보유하고 있는지 여부를 판단하는 단계;
    상기 버스 채널 액세스 권한을 요청하는 1개의 마스터 장치만 상기 점수를 보유하고 있다고 판단한 경우, 상기 버스 채널 액세스 권한을 상기 마스터 장치에 부여하는 단계;
    상기 버스 채널 액세스 권한을 요청하는 1개 이상의 마스터 장치가 상기 점수를 보유하고 있다고 판단한 경우, 다수의 마스터 장치 중 가장 높은 우선순위를 갖는 상기 마스터 장치에게 상기 버스 채널 액세스 권한을 부여하는 단계; 및
    상기 버스 채널 액세스 권한을 부여 받은 상기 마스터 장치로부터 상기 점수를 차감하는 단계를 포함하는, 대역폭 할당 방법.
  9. 삭제
  10. 제8항에 있어서,
    20%의 시간 구간에 상기 우선순위 기반 할당을 채택하고, 80%의 시간 구간에 점수 기반 할당을 번갈아 채택하는 단계를 더 포함하는, 대역폭 할당 방법.
  11. 제8항에 있어서,
    정기적으로 상기 버스 채널 액세스 권한의 점수를 상기 마스터 장치에 할당하는 단계를 더 포함하는, 대역폭 할당 방법.
  12. 제8항에 있어서,
    각각의 시간 구간에 상기 버스 채널 액세스 권한의 점수를 상기 마스터 장치에 1회 할당하는 단계를 더 포함하는, 대역폭 할당 방법.
  13. 제8항에 있어서,
    상기 마스터 장치의 버스 채널 요청에 따라 상기 버스 채널 액세스 권한의 점수를 상기 마스터 장치에 할당하는 단계를 더 포함하는, 대역폭 할당 방법.
  14. 제8항에 있어서,
    상기 버스 채널 액세스 권한의 우선순위를 동태적으로 할당하는 단계를 더 포함하는, 대역폭 할당 방법.
  15. 다수의 마스터 장치로부터 버스 채널 액세스 권한에 대한 요청을 수신하는 단계;
    우선순위 기반 할당 또는 점수 기반 할당 중의 하나를 선택하는 단계;
    상기 우선순위 기반 할당에 대해 제1 백분율의 시간 구간을 분배하고, 상기 점수 기반 할당에 대해 제2 백분율의 시간 구간을 분배하는 단계;
    상기 우선순위 기반 할당을 선택한 경우, 상기 버스 채널 액세스 권한에 대해 미리 설정된 우선순위에 따라 상기 요청을 한 마스터 장치에게 상기 버스 채널 액세스 권한을 부여하는 단계;
    상기 점수 기반 할당을 선택한 경우, 상기 버스 채널 액세스 권한에 대해 미리 할당된 점수에 따라 상기 요청을 한 마스터 장치에게 상기 버스 채널 액세스 권한을 부여하는 단계; 및
    상기 버스 채널 액세스 권한을 부여 받은 마스터 장치로부터 점수를 차감하는 단계를 포함하는, 대역폭 할당 방법.
  16. 삭제
  17. 제15항에 있어서,
    상기 버스 채널 액세스 권한의 우선순위를 다수의 마스터 장치에 할당하는 단계; 및
    상기 버스 채널 액세스 권한의 점수를 상기 다수의 마스터 장치에 할당하는 단계를 더 포함하는, 대역폭 할당 방법.
  18. 제15항에 있어서,
    상기 점수 기반 할당을 선택한 경우, 다수의 마스터 장치 중에서 상기 버스 채널 액세스 권한을 요청하는 마스터 장치가 점수를 보유하고 있는지 여부를 판단하는 단계;
    상기 버스 채널 액세스 권한을 요청하는 1개의 마스터 장치만 상기 점수를 보유하고 있다고 판단한 경우, 상기 버스 채널 액세스 권한을 상기 마스터 장치에 부여하는 단계; 및
    상기 버스 채널 액세스 권한을 요청하는 1개 이상의 마스터 장치가 상기 점수를 보유하고 있다고 판단한 경우, 상기 다수의 마스터 장치 중 가장 높은 우선순위를 갖는 상기 마스터 장치에게 상기 버스 채널 액세스 권한을 부여하는 단계를 더 포함하는, 대역폭 할당 방법.
  19. 1개 이상의 슬레이브 장치;
    상기 다수의 마스터 장치 및 상기 1개 이상의 슬레이브 장치에 연결되는 버스 채널; 및
    선택적으로 우선순위 기반 할당 및 점수 기반 할당에 따라 상기 다수의 마스터 장치 중 액세스 권한을 요청하는 마스터 장치에 버스 채널 액세스 권한을 부여하되, 상기 우선순위 기반 할당에 대해 제1 백분율의 시간 구간을 분배하고, 상기 점수 기반 할당에 대해 제2 백분율의 시간 구간을 분배하도록 구성되는 버스 중재기를 포함하는, 전자 장치.
  20. 삭제
KR1020210035074A 2020-04-19 2021-03-18 계층적 대역폭 할당 버스 중재기 KR102605127B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/852,537 2020-04-19
US16/852,537 US11055243B1 (en) 2020-04-19 2020-04-19 Hierarchical bandwidth allocation bus arbiter

Publications (2)

Publication Number Publication Date
KR20210129585A KR20210129585A (ko) 2021-10-28
KR102605127B1 true KR102605127B1 (ko) 2023-11-23

Family

ID=76658054

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210035074A KR102605127B1 (ko) 2020-04-19 2021-03-18 계층적 대역폭 할당 버스 중재기

Country Status (4)

Country Link
US (1) US11055243B1 (ko)
KR (1) KR102605127B1 (ko)
CN (1) CN113535634B (ko)
TW (1) TWI762002B (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11741025B2 (en) * 2020-12-01 2023-08-29 Western Digital Technologies, Inc. Storage system and method for providing a dual-priority credit system
US11860799B2 (en) * 2021-12-20 2024-01-02 Micron Technologies, Inc. Memory request modulation
CN116225346B (zh) * 2023-05-09 2023-07-25 此芯科技(上海)有限公司 一种内存数据访问方法及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060200607A1 (en) * 2005-03-01 2006-09-07 Subramaniam Ganasan Jaya P Bus access arbitration scheme
US20170075838A1 (en) * 2015-09-14 2017-03-16 Qualcomm Incorporated Quality of service in interconnects with multi-stage arbitration

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6976108B2 (en) * 2001-01-31 2005-12-13 Samsung Electronics Co., Ltd. System on a chip having a system bus, an external bus, and a bus arbiter with programmable priorities for both buses, software, and method for assigning programmable priorities
WO2003005227A1 (en) * 2001-07-05 2003-01-16 Sandburst Corporation Method and apparatus for allocating link bandwidth
US7051135B2 (en) * 2002-11-22 2006-05-23 Ess Technology, Inc. Hierarchical bus arbitration
TWI244001B (en) * 2004-01-09 2005-11-21 Magima Digital Information Co An arbiter and the method thereof
US7373467B2 (en) * 2004-05-17 2008-05-13 Hewlett-Packard Development Company, L.P. Storage device flow control
TWI263905B (en) * 2004-09-16 2006-10-11 Winbond Electronics Corp Method and apparatus for interconnection of multiple buses with different clock frequencies
US9262356B2 (en) * 2006-12-15 2016-02-16 Lantiq Beteiligungs-GmbH & Co.KG Arbiter device and arbitration method
TW200841180A (en) * 2007-04-04 2008-10-16 Magima Digital Information Co Ltd Method and system for bus arbitrating
US20090077274A1 (en) * 2007-09-19 2009-03-19 Advanced Micro Devices Multi-Priority Communication in a Differential Serial Communication Link
KR101013769B1 (ko) * 2008-12-16 2011-02-14 인하대학교 산학협력단 버스 중재방법 및 장치
TW201339842A (zh) * 2012-03-20 2013-10-01 Copystar Backup & Storage Corp 協同式匯流排仲裁多工架構及依該架構所進行之資料存取仲裁方法
US9674098B2 (en) * 2013-07-02 2017-06-06 Intel Corporation Credit flow control for ethernet
DE102013227059A1 (de) * 2013-12-23 2015-06-25 Robert Bosch Gmbh Verfahren zur deterministischen datenübertragung in einem bussystem und bussystem
US10102165B2 (en) * 2014-11-25 2018-10-16 International Business Machines Corporation Arbitration in an SRIOV environment
US9934179B2 (en) * 2015-02-17 2018-04-03 Mediatek Inc. Wafer-level package with at least one input/output port connected to at least one management bus
US10114776B2 (en) * 2016-11-03 2018-10-30 Microchip Technology Incorporated System arbiter with programmable priority levels
US10528503B1 (en) * 2018-07-16 2020-01-07 Qualcomm Incorporated Real-time dynamic addressing scheme for device priority management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060200607A1 (en) * 2005-03-01 2006-09-07 Subramaniam Ganasan Jaya P Bus access arbitration scheme
US20170075838A1 (en) * 2015-09-14 2017-03-16 Qualcomm Incorporated Quality of service in interconnects with multi-stage arbitration

Also Published As

Publication number Publication date
CN113535634B (zh) 2023-05-23
TWI762002B (zh) 2022-04-21
KR20210129585A (ko) 2021-10-28
TW202141291A (zh) 2021-11-01
US11055243B1 (en) 2021-07-06
CN113535634A (zh) 2021-10-22

Similar Documents

Publication Publication Date Title
KR102605127B1 (ko) 계층적 대역폭 할당 버스 중재기
EP3238083B1 (en) Mitigating traffic steering inefficiencies in distributed uncore fabric
EP1861787B1 (en) Bus access arbitration scheme
US6976109B2 (en) Multi-level and multi-resolution bus arbitration
EP1435043B1 (en) Method and apparatus for scheduling a resource to meet quality-of-service restrictions
JP4974508B2 (ja) バスマスタ装置、バス調停装置及びバス調停方法
US9390039B2 (en) Providing a fine-grained arbitration system
US20050138621A1 (en) Method of resource allocation using an access control mechanism
US6996647B2 (en) Token swapping for hot spot management
HU219533B (hu) Multimédia számítógéprendszer, valamint eljárás multimédia számítógéprendszer működésének vezérlésére
US7380040B2 (en) Software programmable dynamic arbitration scheme
Shrivastava et al. Various arbitration algorithm for on-chip (AMBA) shared bus multi-processor SoC
US10268604B2 (en) Adaptive resource management in a pipelined arbiter
US7080174B1 (en) System and method for managing input/output requests using a fairness throttle
US7555005B2 (en) Area efficient implementation of the consecutive access counter
US8140728B1 (en) Data packet arbitration system
US6889283B2 (en) Method and system to promote arbitration priority in a buffer queue
KR100973419B1 (ko) 버스 중재 방법 및 장치
KR101051926B1 (ko) 버스 시스템의 버스 중재 장치 및 방법
US7404025B2 (en) Software programmable dynamically reconfigurable scheme for controlling request grant and masking for ultra high priority accessor during arbitration
Doifode et al. Design and performance analysis of efficient bus arbitration schemes for on-chip shared bus multi-processor soc
KR101013769B1 (ko) 버스 중재방법 및 장치
US20230281139A1 (en) Direct memory access circuit, microcontroller, and method of controlling a direct memory access
JPH1125035A (ja) バス調停装置
JP2010170473A (ja) バス調停装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant