KR101855399B1 - 데이터 트래픽을 개선한 SoC 및 이의 동작 방법 - Google Patents

데이터 트래픽을 개선한 SoC 및 이의 동작 방법 Download PDF

Info

Publication number
KR101855399B1
KR101855399B1 KR1020110026443A KR20110026443A KR101855399B1 KR 101855399 B1 KR101855399 B1 KR 101855399B1 KR 1020110026443 A KR1020110026443 A KR 1020110026443A KR 20110026443 A KR20110026443 A KR 20110026443A KR 101855399 B1 KR101855399 B1 KR 101855399B1
Authority
KR
South Korea
Prior art keywords
master
slave
bandwidth
command
priority
Prior art date
Application number
KR1020110026443A
Other languages
English (en)
Other versions
KR20120109051A (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 KR1020110026443A priority Critical patent/KR101855399B1/ko
Priority to US13/427,096 priority patent/US8943249B2/en
Priority to CN201210082238.4A priority patent/CN102693202B/zh
Publication of KR20120109051A publication Critical patent/KR20120109051A/ko
Application granted granted Critical
Publication of KR101855399B1 publication Critical patent/KR101855399B1/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/3625Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a time dependent access
    • 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/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • 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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4247Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus
    • G06F13/4252Bus transfer protocol, e.g. handshake; Synchronisation on a daisy chain bus using a handshaking protocol
    • 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/0038System on Chip

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)
  • Small-Scale Networks (AREA)
  • Information Transfer Systems (AREA)

Abstract

SoC이 개시된다. 상기 SoC은 제1마스터와, 슬레이브와, 상기 제1마스터의 제1명령과 상기 제1명령에 대한 상기 슬레이브의 제1응답을 전송하는 버스 스위치와, 상기 제1마스터와 상기 버스 스위치 사이에 접속되고, 상기 제1명령과 상기 제1응답으로부터 제1대역폭 및 제1레이턴시 중 적어도 하나를 측정하고 적어도 하나의 측정 결과에 따라 상기 제1명령의 제1우선값을 조정하는 제1우선순위 제어기를 포함한다.

Description

데이터 트래픽을 개선한 SoC 및 이의 동작 방법{SYSTEM ON CHIP IMPROVING DATA TRAFFIC AND OPERATING METHOD THEREOF}
본 발명의 개념에 따른 실시 예는 SoC에 관한 것으로, 특히 복수의 마스터들의 데이터 트래픽(data traffic)을 개선하는 SoC(System on Chip)과 이의 동작 방법에 관한 것이다.
최근에 SoC에서, 통신 네트워크는 다양한 수준의 QoS(Quality Of Service)를 요구한다. 즉, 통신 네트워크를 통해 전송되는 데이터 소스(data source)는 데이터의 특성에 따라 최소한의 대역폭의 할당을 요구하거나 정해진 레이턴시(latency)로 데이터 전송이 완료될 것을 요구한다. 따라서, 특정한 마스터가 과도한 트래픽 (traffic)을 유발하는 데이터 소스를 발생시키는 경우, 시스템 전체의 QoS는 낮아질 수 있다.
본 발명이 이루고자 하는 기술적인 과제는 특정 마스터가 과도한 트래픽을 유발하는 데이터 소스를 발생시키는 경우 시스템 전체의 QoS가 낮아지는 것을 방지할 수 있는 장치와 이의 동작 방법을 제공하는 것이다.
본 발명의 일 실시 예에 따른 SoC(System on Chip)는 제1마스터와, 슬레이브(slave)와, 상기 제1마스터의 제1명령과 상기 제1명령에 대한 상기 슬레이브의 제1응답을 전송하는 버스 스위치와, 상기 제1마스터와 상기 버스 스위치 사이에 접속되고, 상기 제1명령과 상기 제1응답으로부터 제1대역폭 및 제1레이턴시 중 적어도 하나를 측정하고 적어도 하나의 측정 결과에 따라 상기 제1명령의 제1우선값을 조정하는 제1우선순위 제어기를 포함한다.
상기 SoC는 상기 버스 스위치를 통하여, 제2명령을 상기 슬레이브로 전송하고 상기 슬레이브로부터 상기 제2명령에 대한 제2응답을 수신하는 제2마스터와, 상기 제2마스터와 상기 버스 스위치 사이에 접속되고, 상기 제2명령과 상기 제2응답으로부터 제2대역폭 및 제2레이턴시 중 적어도 하나를 측정하고, 적어도 하나의 측정 결과에 따라 상기 제2명령의 제2우선값을 조정하는 제2우선순위 제어기를 더 포함한다.
실시 예에 따라 상기 제1우선순위 제어기는 상기 제1대역폭을 측정하는 대역폭 모니터와, 상기 대역폭 모니터로부터 측정된 제1대역폭을 대역폭 기준값과 비교하여 상기 제1우선값을 조정하는 우선값 생성기를 포함한다.
다른 실시 예에 따라 상기 제1우선순위 제어기는 상기 제1레이턴시를 측정하는 레이턴시 모니터와, 상기 레이턴시 모니터로부터 측정된 제1레이턴시를 레이턴시 기준값과 비교하여 상기 제1우선값을 조정하는 우선값 생성기를 포함한다.
상기 제1우선순위 제어기는 상기 측정된 제1대역폭이 상기 대역폭 기준값보다 높으면 상기 제1우선값을 감소시킨다. 상기 제1우선순위 제어기는 상기 측정된 제1레이턴시가 상기 레이턴시 기준값보다 높으면 상기 제1우선값을 감소시킨다.
상기 제1우선순위 제어기는 상기 제1우선순위 제어기는 설정 시간마다 상기 제1우선값을 디폴트 값으로 설정하는 리셋 주기 제어기를 더 포함한다.
상기 버스 스위치는 상기 제1우선순위 제어기를 통하여 상기 제1마스터에 연결되는 제1슬레이브 인터페이스와, 상기 제2마스터에 연결되는 제2슬레이브 인터페이스와, 상기 슬레이브에 연결되는 마스터 인터페이스를 포함하고, 상기 제1슬레이브 인터페이스와 상기 제2슬레이브 인터페이스 각각은 상기 마스터 인터페이스에 연결되고, 상기 마스터 인터페이스는 상기 제1우선값과 상기 제2우선값을 비교하고, 비교 결과에 따라 상기 제1명령과 상기 제2명령 중에서 어느 하나를 상기 슬레이브로 전송한다.
실시 예에 따라 상기 제2우선순위 제어기는 상기 제2대역폭을 측정하는 대역폭 모니터와, 상기 대역폭 모니터에 의해서 측정된 제2대역폭을 대역폭 기준값과 비교하여 상기 제2우선값을 조정하는 우선값 생성기를 포함하고 상기 제2우선순위 제어기는 상기 측정된 제2대역폭이 상기 대역폭 기준값보다 높으면 상기 제2우선값을 감소시킨다.
다른 실시 예에 따라 상기 제2우선순위 제어기는 상기 제2레이턴시를 측정하는 레이턴시 모니터와, 상기 레이턴시 모니터에 의하여 측정된 제2레이턴시를 레이턴시 기준값과 비교하여 상기 제2우선값을 조정하는 우선값 생성기를 포함하고 상기 제2우선순위 제어기는 상기 측정된 제2레이턴시가 상기 레이턴시 기준값보다 높으면 상기 제2우선값을 감소시킨다.
본 발명의 다른 실시 예에 따른 SoC는 마스터와, 슬레이브와, 상기 마스터의 명령과 상기 명령에 대한 상기 슬레이브의 응답을 전송하는 버스 서브시스템을 포함하며, 상기 버스 서브시스템은 상기 명령과 상기 응답으로부터 대역폭을 측정하고, 측정 결과와 상기 슬레이브의 동작 상태값에 따라 상기 명령의 전송을 차단한다.
상기 버스 서브시스템은 상기 명령의 전송을 차단하거나 해제하는 블록킹 제어기와, 상기 블록킹 제어기와 상기 슬레이브 사이에 연결되며, 상기 명령을 상기 슬레이브로 전송하고, 상기 응답을 상기 마스터로 전송하는 버스 스위치와, 상기 버스 스위치와 상기 슬레이브 사이에 연결되며, 상기 동작 상태값을 상기 블록킹 제어기로 전송하는 블록킹 모니터를 포함한다.
상기 블록킹 제어기는 상기 대역폭을 측정하는 대역폭 모니터와, 측정된 대역폭이 대역폭 기준값보다 높으면 상기 명령의 전송을 차단하거나 상기 동작 상태값이 동작 상태 기준값보다 높으면 상기 명령의 전송을 차단하는 조합 회로를 포함한다.
상기 명령의 전송이 차단된 후 상기 동작 상태값이 상기 동작 상태 기준값보다 작을때 상기 블록킹 제어기는 상기 차단된 명령을 전송한다.
상기 동작 상태값은 아웃스탠딩 카운트(outstanding count)를 포함하고, 상기 아웃스탠딩 카운트는 상기 명령이 수신될 때마다 증가하고 상기 응답이 전송될 때마다 감소한다.
본 발명의 또 다른 실시 예에 따른 SoC는 슬레이브와, 제1우선순위 제어기와 버스 스위치를 포함하는 제1채널을 통하여, 상기 슬레이브로 제1명령을 전송하고 상기 제1명령에 대한 상기 슬레이브의 제1응답을 수신하는 제1마스터를 포함하며, 상기 제1우선순위 제어기는 상기 제1명령과 상기 제1응답에 기초하여 상기 제1 채널의 대역폭과 레이턴시 중에서 적어도 하나를 측정하고 적어도 하나의 측정결과에 따라 상기 제1명령의 제1우선값을 조정한다.
상기 SoC는 상기 버스 스위치를 포함하는 제2채널을 통하여, 상기 슬레이브로 제2명령을 전송하고 상기 제2명령에 대한 상기 슬레이브의 제2응답을 수신하는 제2마스터를 더 포함하며, 상기 제2채널은 제2우선순위 제어기를 더 포함하며 상기 제2우선순위 제어기는 상기 제2명령과 상기 제2응답에 기초하여 상기 제2채널의 대역폭과 레이턴시 중에서 적어도 하나를 측정하고 적어도 하나의 측정결과에 따라 상기 제2명령의 제2우선값을 조정한다.
본 발명의 실시 예에 따른 SoC의 동작 방법은 제1우선순위 제어기와 버스 스위치를 통해서 수행되는 제1마스터와 슬레이브 간의 핸드세이킹(handshaking)의 결과에 따라 제1대역폭 및 제1레이턴시 중 적어도 하나를 측정하는 단계와, 상기 제1우선순위 제어기에 의하여 측정된 적어도 하나의 측정 결과에 따라 상기 제1마스터로부터 출력된 명령의 제1우선값을 조정하는 단계를 포함한다.
상기 SoC의 동작 방법은 제2우선순위 제어기와 상기 버스 스위치를 통해서 수행되는 제2마스터와 상기 슬레이브 간의 핸드세이킹(handshaking)의 결과에 따라 제2대역폭 및 제2레이턴시 중 적어도 하나를 측정하는 단계와, 상기 제2우선순위 제어기에 의하여 측정된 적어도 하나의 측정 결과에 따라 상기 제2마스터로부터 출력된 명령의 제2우선값을 조정하는 단계를 더 포함한다.
상기 SoC의 동작 방법은 상기 적어도 하나의 측정 결과가 적어도 하나의 기준값보다 높은 경우 상기 제1우선값을 감소시키는 단계를 더 포함한다. 상기 SoC의 동작 방법은 일정 시간마다 상기 제1우선값을 디폴트값으로 설정하는 단계를 더 포함한다.
본 발명의 실시 예에 따른 SoC는 특정 마스터가 과도한 트래픽을 유발하는 데이터 소스를 발생시키는 경우 상기 특정 마스터의 우선권을 낮추거나 상기 데이터 소스를 차단하는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 SoC(System on Chip)의 블록도를 나타낸다.
도 2a 및 도 2b는 도 1에 도시된 제1슬레이브 인터페이스와 제3슬레이브 인터페이스를 도시한 블록도이다.
도 2c는 도 1에 도시된 제1마스터 인터페이스를 도시한 블록도이다.
도 3은 도 1에 도시된 제1우선순위 제어기를 상세히 도시한 개념도이다.
도 4는 도 1에 도시된 SoC의 동작을 도시한 플로우챠트이다.
도 5는 우선순위 제어기가 대역폭을 측정하는 방법을 설명하기 위한 타이밍도이다.
도 6은 우선순위 제어기가 리드 동작시 레이턴시를 설명하기 위한 타이밍도이다.
도 7은 우선순위 제어기가 라이트 동작시 레이턴시를 설명하기 위한 타이밍도이다.
도 8은 도 1에 도시된 제1 마스터 및 제2마스터의 대역폭을 도시한 그래프이다.
도 9는 도 1에 도시된 제1마스터 및 제2마스터의 우선값을 도시한 그래프이다.
도 10은 도 1에 도시된 SOC의 동작에 따른 제1마스터 및 제2마스터의 대역폭의 변화를 도시한 그래프이다.
도 11은 본 발명의 다른 실시 예에 따른 SOC의 블록도이다.
도 12는 도 11에 도시된 제1블록킹 제어기를 상세히 도시한 블록도이다.
도 13은 도 11에 도시된 제1블록킹 제어기, 제2블록킹 제어기 및 제1블록킹 모니터를 상세히 설명하는 블록도이다.
도 14는 도 11에 도시된 SoC의 동작을 도시한 플로우챠트이다.
도 15는 리드 동작시 아웃스탠딩 카운트를 설명하기 위한 타이밍도이다.
도 16은 라이트 동작시 아웃스탠딩 카운트를 설명하기 위한 타이밍도이다.
도 17은 도 11에 도시된 SoC의 동작에 따른 제1마스터 및 제2마스터의 대역폭의 변화를 도시한 그래프이다.
도 18은 도 11에 도시된 SoC의 동작을 도시한 플로우챠트이다.
도 19는 도 11에 도시된 SoC의 동작에 따른 제1마스터 및 제2마스터의 대역폭의 변화를 도시한 그래프이다.
도 20은 도 1 또는 도 11에 도시된 SoC을 포함하는 반도체 시스템의 일 실시 예를 나타낸다.
도 21은 도 1 또는 도 11에 도시된 SoC을 포함하는 컴퓨터 시스템의 다른 실시 예를 나타낸다.
도 22는 도 1 또는 도 11에 도시된 SoC을 포함하는 컴퓨터 시스템의 또 다른 실시 예를 나타낸다.
도 23은 도 1 또는 도 11에 도시된 SoC을 포함하는 컴퓨터 시스템의 또 다른 실시 예를 나타낸다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1또는 제2등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
본 명세서에 기재된 기술적 사상이 적용된 버스 서브 시스템(bus subsystem)에 대해서는 http://www.arm.com의 AMBA AXI Protocol v3.0 Specification가 레퍼런스(reference)로서 포함된다(incorporeted).
본 발명의 일 실시 예에 따른 SoC(10a)은 특정 마스터의 대역폭(bandwidth)과 레이턴시(latency) 중에서 적어도 하나를 측정하고 적어도 하나의 측정 결과에 따라 상기 특정 마스터의 명령에 대한 우선값을 조절한다.
본 발명의 일 실시 예에 따른 SoC(10a)은 도 1 내지 도 10를 참조하여 상세히 설명된다.
도 1은 본 발명의 일 실시 예에 따른 SoC(system on chip)의 블록도를 나타낸다. 도 1을 참조하면, SoC(10a)은 복수의 마스터들(20), 버스 서브 시스템(30), 및 복수의 슬레이브들(40)을 포함한다. SoC(10a)는 단일의 칩으로 제조되어 하나의 패키지(package)로 구현될 수 있다.
예컨대, 복수의 마스터들(20)은 제1마스터(20-1), 제2마스터(20-2), 제3마스터(20-3), 및 제4마스터(20-4)를 포함한다. 복수의 슬레이브들(40)은 제1슬레이브 (40-1), 제2슬레이브(40-2), 제3슬레이브(40-3), 및 제4슬레이브(40-4)를 포함한다. 본 명세서에서는 설명의 편의를 위하여 4개의 마스터와 4개의 슬레이브를 포함하는 SoC(10a)가 도시되었으나 이에 한정되는 것은 아니다.
버스 서브시스템(30)은 제1우선순위 제어기(31a), 제2우선순위 제어기(32a) 및 버스 스위치(33)를 포함한다. 도 1에서는 설명의 편의를 위하여 두 개의 우선 순위 제어기(31a와 32a)를 도시하나 각 마스터(20-1~20-4)마다 하나씩의 우선 순위 제어기가 할당될 수 있다.
버스 스위치(33)는 제1슬레이브 인터페이스(33-1), 제2슬레이브 인터페이스 (33-2), 제3슬레이브 인터페이스(33-3), 제4슬레이브 인터페이스(33-4), 제1마스터 인터페이스(33-5), 제2마스터 인터페이스(33-6), 제3마스터 인터페이스(33-7), 및 제4마스터 인터페이스(33-8)를 포함한다.
제1슬레이브 인터페이스(33-1)는 제1우선순위 제어기(31a)에 접속된 제1마스터(20-1)를 제1슬레이브(40-1), 제2슬레이브(40-2), 제3슬레이브(40-3), 및 제4슬레이브(40-4) 중 어느 하나와 연결한다.
제2슬레이브 인터페이스(33-2)는 제2우선순위 제어기(32a)에 접속된 제2마스터(20-2)를 제1슬레이브(40-1), 제2슬레이브(40-2), 제3슬레이브(40-3), 및 제4슬레이브(40-4) 중 어느 하나와 연결한다.
제3슬레이브 인터페이스(33-3)는 제3마스터(20-3)를 제1슬레이브(40-1), 제2슬레이브(40-2), 제3슬레이브(40-3), 및 제4슬레이브(40-4) 중 어느 하나와 연결한다.
제4슬레이브 인터페이스(33-4)는 제4마스터(20-4)를 제1슬레이브(40-1), 제2슬레이브(40-2), 제3슬레이브(40-3), 및 제4슬레이브(40-4) 중 어느 하나와 연결한다. 제1슬레이브 인터페이스(33-1), 제2슬레이브 인터페이스(33-2), 제3슬레이브 인터페이스(33-3), 및 제4슬레이브 인터페이스(33-4)는 도 2a 및 도 2b를 참조하여 상세히 설명된다.
제1마스터 인터페이스(33-5)는 제1마스터(20-1)의 명령, 제2마스터(20-2)의 명령, 제3마스터(20-3)의 명령, 및 제4마스터(20-4)의 명령 중 어느 하나의 명령을 우선값에 따라 제1슬레이브(40-1)로 전송한다.
제2마스터 인터페이스(33-6)는 제1마스터(20-1)의 명령, 제2마스터(20-2)의 명령, 제3마스터(20-3)의 명령, 및 제4마스터(20-4)의 명령 중 어느 하나의 명령을 우선값에 따라 제2슬레이브(40-2)로 전송한다.
제3마스터 인터페이스(33-7)는 제1마스터(20-1)의 명령, 제2마스터(20-2)의 명령, 제3마스터(20-3)의 명령, 및 제4마스터(20-4)의 명령 중 어느 하나의 명령을 우선값에 따라 제3슬레이브(40-3)로 전송한다.
제4마스터 인터페이스(33-8)는 제1마스터(20-1)의 명령, 제2마스터(20-2)의 명령, 제3마스터(20-3)의 명령, 및 제4마스터(20-4)의 명령 중 어느 하나의 명령을 우선값에 따라 제4슬레이브(40-4)로 전송한다. 제1마스터 인터페이스(33-5), 제2마스터 인터페이스(33-6), 제3마스터 인터페이스(33-7), 및 제4마스터 인터페이스(33-8)는 도 2c를 참조하여 상세히 설명된다.
제1마스터(20-1), 제2마스터(20-2), 제3마스터(20-3), 및 제4마스터(20-4) 각각은 마이크로프로세서(microprocessor), 또는 그래픽 프로세서(graphic processor) 등으로 구현될 수 있고, SoC(System on Chip) 설계를 위한 IP (Intellectual Property)로 구현될 수 있다.
제1우선순위 제어기(31a)는 제1마스터(20-1)과 버스 스위치(33) 사이에 연결된다. 제2우선순위 제어기(32a)는 제2마스터(20-2)과 버스 스위치(33) 사이에 연결된다.
버스 서브시스템(30)의 점유율(occupancy rate)이 높기 때문에, 버스 스위치 (33)의 사용량을 감소시킬 필요가 있는 각 마스터(20-1과 20-2)는 각 우선순위 제어기(31a와 32a)와 연결될 필요가 있다. 실시 예에 따라, 제1마스터(20-1) 및/또는 제2마스터(20-2)에서는 네트워크 사용량이 제한될 필요가 있다고 가정한다. 따라서, 제1마스터(20-1) 및 제2마스터(20-2) 각각에 각각의 제1우선순위 제어기(31a) 및 제2우선순위 제어기(32a)가 연결된다.
제1우선순위 제어기(31a)가 연결된 제1마스터(20-1) 및 제2우선순위 제어기 (32a)가 연결된 제2마스터(20-2) 각각은 각각의 우선값이 조정될 수 있다. 그러나, 제3마스터(20-3) 및 제4 마스터(20-4) 각각의 우선값은 디폴트(default)값으로 고정된다.
제1마스터(20-1)는 제1우선순위 제어기(31a)를 바이패스(bypass)하여 버스 서브시스템(30)에 연결될 수 있다. 제1마스터(20-1)는 버스 서브시스템(30)을 통하여 제1슬레이브(40-1), 제2슬레이브(40-2), 제3슬레이브(40-3), 및 제4슬레이브(40-4) 중에서 어느 하나를 액세스할 수 있다.
제1우선순위 제어기(31a) 및 제2우선순위 제어기(32a) 각각은 버스 서브시스템(30)을 통해서 제1슬레이브(40-1), 제2슬레이브(40-2), 제3슬레이브(40-3), 및 제4슬레이브(40-4) 중 어느 하나에 연결된다.
예를 들면, 제1우선순위 제어기(31a)는 제1마스터(20-1)로부터 출력된 명령을 버스 서브시스템(30)을 통하여 제1슬레이브(40-1), 제2슬레이브(40-2), 제3슬레이브(40-3), 및 제4슬레이브(40-4) 중에서 어느 하나로 전송한다. 여기서, 상기 명령이 전송되는 신호 경로를 채널(channel)이라고 할 수 있다.
제1슬레이브(40-1)가 버스 스위치(33)를 통해서 제1마스터(20-1)로부터 출력된 명령을 수신했다면, 제1슬레이브(40-1)는 상기 명령에 대응하는 응답을 버스 스위치(33)와 제1우선순위 제어기(31a)를 통해서 제1마스터(20-1)로 전송한다.
제1우선순위 제어기(31a)는 제1마스터(20-1)로부터 출력된 명령과 제1슬레이브(40-1)로부터 전송된 응답에 기초하여 상기 명령에 대응하는 대역폭(bandwidth) 또는 레이턴시(latency) 중에서 적어도 하나를 측정하거나 또는 제1우선순위 제어기(31a)는 제1마스터(20-1)로부터 출력된 명령과 제1슬레이브(40-1)로부터 전송된 응답에 기초하여 상기 명령이 전송되는 채널의 대역폭(bandwidth) 또는 레이턴시 (latency) 중에서 적어도 하나를 측정한다. 제1우선순위 제어기(31a)는 측정된 대역폭 또는 레이턴시 중에서 적어도 하나를 이용하여 상기 명령에 대한 우선값 (priority)를 조정한다.
제1슬레이브(40-1)는 조정된 우선값에 따라 제1마스터(20-1), 제2마스터(20-2), 제3마스터(20-3), 및 제4마스터(20-4) 각각으로부터 전송된 명령들 중 어느 하나를 처리한다. 예를 들면, 제1마스터(20-1)로부터 출력된 명령의 우선값이 가장 높다면, 버스 스위치(33)는 제1마스터(20-1)로부터 출력된 명령을 가장 먼저 제1슬레이브(40-1)로 전송한다. 버스 스위치(33)가 제1마스터(20-1), 제2마스터(20-2), 제3마스터(20-3), 및 제4마스터(20-4) 각각으로부터 전송된 명령을 각각의 우선값에 따라 처리하는 방법은 도 2a부터 도 2c를 참조하여 상세히 설명될 것이다.
제1우선순위 제어기(31a)는 제1마스터(20-1)로부터 출력된 명령의 우선값을 조절하여 제1마스터(20-1)가 버스 서브시스템(30)을 독점하도록 하거나 또는 제1마스터(20-1)의 대역폭을 기준 대역폭보다 크지 않도록 할 수 있다. 제2우선순위 제어기(32a)의 동작은 제1우선순위 제어기(31a)의 동작과 실질적으로 동일하다. 제1우선순위 제어기(31a)의 동작에 관해서는 도 3 및 도 4를 참조하여 상세히 설명될 것이다.
여기서, 대역폭(bandwidth)이란 단위 시간 동안 전송된 데이터 량을 의미한다. 상기 대역폭의 단위로는 bps(bit per second)가 사용된다. 즉, 대역폭이란 1초 동안 전송된 데이터의 비트(bit) 수를 의미한다. 레이턴시란 마스터가 슬레이브로 명령을 출력한 시간(또는 시점)부터 상기 슬레이브가 상기 마스터의 상기 명령에 응답한 시간(또는 시점)까지를 의미한다. 마스터로부터 출력된 명령과 슬레이브로부터 출력된 응답으로부터 대역폭 또는 레이턴시 중에서 적어도 하나를 측정하는 방법은 도 5부터 도 7을 참조하여 상세히 설명될 것이다.
버스 서브시스템(30)은 복수의 마스터들과 복수의 슬레이브들을 동시에 액세스(access)하도록 지원한다. 구체적으로, 버스 서브시스템(30)은 ARMTM의 AMBA (Advanced Microcontroller Bus Architecture)3 또는 AMBA4의 AXI(Advanced eXtensible Interface) 프로토콜(Protocol; 이하 AXI 프로토콜이라 한다.)로 구현될 수 있다.
AXI 프로토콜은 리드(read) 동작을 위하여 리드 어드레스 채널(AR-채널; 이하 AR-채널이라 한다) 및 리드 데이터 채널(R-채널; 이하 R-채널이라 한다.)을 사용하고, 라이트(write) 동작을 위하여 라이트 어드레스 채널(AW-채널; 이하 AW-채널이라 한다.), 라이트 데이터 채널(W-채널; 이하 W-채널이라 한다.) 및 라이트 응답 채널(B-채널; 이하 B-채널이라 한다.)을 사용한다. 각각의 채널은 독립적으로 서로 간에 영향을 주지 않는다.
AR-채널에서는 리드 동작시 마스터에서 슬레이브로 리드 어드레스(address)가 전송된다. R-채널에서는 슬레이브에서 마스터로 데이터가 전송된다. AW-채널에서는 라이트 동작시 마스터에서 슬레이브로 라이트 어드레스가 전송된다. W-채널에서는 마스터에서 슬레이브로 데이터가 전송된다. B-채널에서는 라이트 동작의 완료 응답이 슬레이브에서 마스터로 전송된다. 각각의 채널과 각 채널 사이에 발생하는 복수의 신호들은 표 1 내지 표 6에서 상세히 기술된다.
제1마스터(20-1)로부터 제1우선순위 제어기(31a)와 버스 스위치(33)를 통하여 제1슬레이브(40-1)로 가는 경로를 제1채널이라 한다. 또한, 제2마스터(20-2)로부터 제2우선순위 제어기(32a)와 버스 스위치(33)를 통하여 제1슬레이브(40-1)로 가는 경로를 제2채널이라 한다.
제1슬레이브(40-1), 제2슬레이브(40-2), 제3슬레이브(40-3), 및 제4슬레이브 (40-4) 각각은 메모리 컨트롤러(memory controller), 또는 SRAM(static random access memory) 등으로 구현될 수 있고, SoC(System on Chip) 설계를 위한 IP (Intellectual Property)로 구현될 수 있다.
설명의 편의를 위하여, 도 1에는 4개의 마스터들(20-1, 20-2, 20-3, 및 20-4), 2개의 우선순위 제어기들(31a와 32a), 버스 스위치(33), 및 4개의 슬레이브들 (40-1, 40-2, 40-3, 및 40-4)이 도시되어 있으나 본 발명의 기술적 사상이 마스터의 개수, 우선순위 제어기의 개수, 및 슬레이브의 개수에 한정되는 것은 아니다.
SoC(10a)는 집적 회로(integrate circuit)로 구현될 수 있다. 또한, SoC(10a)는 이동 전화기(mobile phone), 스마트폰(smart phone), 태블릿 PC(tablet personal computer), 또는 PDA(personal digital assistant)와 같은 이동 통신 장치에 내장(embedded)될 수 있다. 실시 예에 따라 SoC(10a)는 IT 장치(information technology device) 또는 휴대용 전자 장치(portable electronic device)에 내장될 수 있다.
도 2a 및 도 2b는 도 1에 도시된 제1슬레이브 인터페이스와 제3슬레이브 인터페이스를 도시한 블록도이다.
도 1 및 도 2a를 참조하면, 제1슬레이브 인터페이스(33-1)는 디코더 (decoder)로 구현될 수 있다. 제1슬레이브 인터페이스(33-1)는 제1우선순위 제어기 (31a)를 통하여 연결된 제1마스터(20-1)로부터 전송된 명령을 상기 명령의 어드레스에 따라 제1마스터 인터페이스(33-5), 제2마스터 인터페이스(33-6), 제3마스터 인터페이스(33-7), 및 제4마스터 인터페이스(33-8) 중 어느 하나로 전송한다. 또한, 제2슬레이브 인터페이스(33-2)는 제1슬레이브 인터페이스(33-1)와 동일한 구조로 구현된다.
도 1 및 도 2b를 참조하면, 제3슬레이브 인터페이스(33-3)는 디코더 (decoder)로 구현될 수 있다.
제3슬레이브 인터페이스(33-3)는 제3마스터(20-2)로부터 전송된 명령을 상기 명령의 어드레스에 따라 제1마스터 인터페이스(33-5), 제2마스터 인터페이스(33-6), 제3마스터 인터페이스(33-7), 및 제4마스터 인터페이스(33-8) 중 어느 하나로 전송한다. 또한, 제4슬레이브 인터페이스(33-4)는 제3슬레이브 인터페이스(33-3)와 동일한 구조로 구현된다.
도 2c는 도 1에 도시된 제1마스터 인터페이스를 도시한 블록도이다.
도 1 및 도 2c를 참조하면, 제1마스터 인터페이스(33-5)는 중재기(arbiter)로 구현될 수 있다. 제1마스터 인터페이스(33-5)는 입력된 복수의 명령들 중 우선값이 가장 큰 명령을 제1슬레이브(40-1)로 전송한다.
예를 들면, 제1마스터 인터페이스(33-5)는 제1슬레이브 인터페이스(33-1), 제2슬레이브 인터페이스(33-2), 제3슬레이브 인터페이스(33-3), 및 제4슬레이브 인터페이스(33-4)로부터 전송된 명령들 중 우선값이 가장 큰 명령을 제1슬레이브(40-1)로 전송한다. 또한, 제2마스터 인터페이스(33-6), 제3마스터 인터페이스(33-7), 및 제4마스터 인터페이스(33-8)는 제1마스터 인터페이스(33-5)와 동일한 구조로 구현된다.
도 3은 도 1에 도시된 제1우선순위 제어기를 상세히 도시한 개념도이다.
도 1 및 도 3을 참조하면, 제1우선순위 제어기(31a)는 리셋 주기(reset period) 제어기(31-1), 대역폭 모니터(31-2), 레이턴시 모니터(31-3), 및 우선값 생성기(31-4)를 포함한다.
리셋 주기 제어기(31-1)는 대역폭 모니터(31-2)의 리셋 주기를 제어하기 위한 제어 신호(RP)를 출력한다. 대역폭 모니터(31-2)는 제1마스터(20-1)로부터 출력된 명령과 제1슬레이브(40-1)로부터 출력된 응답으로부터 대역폭을 측정한다.
대역폭을 측정하는 방법은 도 5를 참조하여 설명될 것이다. 대역폭 모니터 (31-2)는 리드 동작시 대역폭을 측정하기 위하여 리드 유효 신호(RV)와 리드 준비 신호(RR)를 수신하고, 라이트 동작시 대역폭을 측정하기 위하여 라이트 유효 신호 (WV)와 라이트 준비 신호(WR)를 수신한다. 상술한 복수의 신호들은 표 1 및 표 2를 참조한다.
표 1은 R-채널에서 사용되는 복수의 신호들을 나타낸다. 표 2는 W-채널에서 사용되는 복수의 신호들을 나타낸다.
Signal Source Description
RV Slave Read valid.
RR Master Read ready.
Signal Source Description
WV Master Write valid.
WR Slave Write ready.
레이턴시 모니터(31-3)는 리드 동작시 레이턴시를 측정하기 위하여 리드 어드레스 유효 신호(ARV)와 리드 어드레스 준비 신호(ARR)를 수신하고, 라이트 동작시 레이턴시를 측정하기 위하여 라이트 어드레스 유효 신호(AWV)와 라이트 어드레스 준비 신호(AWR)를 수신한다. 레이턴시를 측정하는 방법은 도 6 및 도 7을 참조하여 설명될 것이다.
상술한 복수의 신호들은 표 3 및 표 4를 참조한다. 표 3은 AR-채널에서 사용되는 복수의 신호들을 나타낸다. 표 4는 AW-채널에서 사용되는 복수의 신호들을 나타낸다.
Signal Source Description
ARV Master Read address valid.
ARR Slave Read address ready.
Signal Source Description
AWV Master Write address valid.
AWR Slave Write address ready.
우선값 생성기(31-4)는 대역폭 모니터(31-2)로부터 측정된 대역폭 정보 (bandwidth feedback(BF))와 레이턴시 모니터(31-3)로부터 측정된 레이턴시 정보 (latency feedback(LF))을 수신한다. 우선값 생성기(31-4)는 대역폭 정보(BF)와 레이턴시 정보(LF)를 바탕으로 제1마스터(20-1)로부터 요청된 명령에 대한 우선값 (priority)를 생성한다. 우선값 생성기(31-4)는 리드 명령에 대한 우선값(ARQ)과 라이트 명령에 대한 우선값(AWQ)을 생성한다. 우선값(ARQ 또는 AWQ)이 4 비트로 구성된다면, 우선값(ARQ 또는 AWQ)은 0에서 15 사이의 값을 갖는다.
제1마스터 인터페이스(33-5)는 우선값이 높은 명령을 우선적으로 제1슬레이브 (40-1)로 전송한다.
이하에서, 도 3에 도시된 제1우선순위 제어기의 구체적 동작은 도 4를 참조하여 상세히 설명된다. 도 4는 도 1에 도시된 SoC의 동작을 도시한 플로우챠트이다.
도 1 내지 도 4를 참조하면, S11 단계에서 제1마스터(20-1)는 AR-채널을 통하여 제1슬레이브(40-1)로 리드 어드레스 유효 신호(ARV)를 전송한다. S12 단계에서 제1슬레이브(40-1)는 AR-채널을 통하여 제1마스터(20-1)로 리드 명령의 응답인 리드 어드레스 준비 신호(ARR)를 전송한다.
S11 및 S12 단계에서 제1마스터(20-1)와 제1슬레이브(40-1)가 서로 양방향으로 신호를 주고 받는 과정은 핸드세이크 메커니즘(handshake mechanism)이다. 즉, 핸드세이크 메커니즘은 제1마스터(20-1)가 유효 신호를 제1슬레이브(40-1)로 전송하고, 제1슬레이브(40-1)는 준비 신호를 제1마스터(20-1)로 전송함으로써 제1마스터(20-1)와 제1슬레이브(40-1)가 상호 간에 데이터를 전송할 준비를 하는 과정이다. 따라서, 제1마스터(20-1)와 제1슬레이브(40-1) 간의 데이터 전송은 유효 신호와 준비 신호가 모두 활성화(active)될 때 이루어진다.
예를 들면, 리드 동작시 제1마스터(20-1)는 제1슬레이브(40-1)로 리드 유효 신호(RV)를 전송한다. 제1슬레이브(40-1)는 제1마스터(20-1)로 리드 준비 신호(RR)를 전송한다. 또한, 라이트 동작시 제1마스터(20-1)는 제1슬레이브(40-1)로 라이트 유효 신호(WV)를 전송한다. 제1슬레이브(40-1)는 제1마스터(20-1)로 라이트 준비 신호(WR)를 전송한다.
S13 단계에서 제1우선순위 제어기(31a)는 상기 명령과 상기 응답으로부터 대역폭 또는 레이턴시 중에서 적어도 하나를 측정한다. S14 단계에서 제1우선순위 제어기(31a)는 대역폭 또는 레이턴시 중에서 적어도 하나를 모니터하고, 모니터된 결과에 따라 상기 명령의 우선값을 조정한다.
대역폭을 측정하는 방법에 관해서는 도 5를 참조하여, 그리고 레이턴시를 측정하는 방법에 관해서는 도 6 및 도 7을 참조하여 설명될 것이다. 도 5는 각 우선순위 제어기(31a와 32a)가 대역폭을 측정하는 방법을 설명하기 위한 타이밍 도이다.
도 1 내지 도 5를 참조하면, 제1우선순위 제어기(31a)는 클록 신호(ACLK)의 라이징 에지(rising edge)에 동기(synchronize)된다. 클록 신호(ACLK)는 SoC(10a)의 전역(global)으로 전송된다. 클록 신호(ACLK)는 표 5를 참조한다.
표 5는 버스 서브시스템(30)에서 글로벌(global)로 사용되는 신호를 나타낸다.
Signal Source Description
ACLK Clock source Global clock signal.
T1시간에서 제1마스터(20-1)는 AR-채널을 통하여 리드 어드레스 유효 신호 (ARV)를 활성화시키고, A어드레스를 제1슬레이브(40-1)에 전송한다. T3시간에서 제1슬레이브(40-1)는 R-채널을 통해 리드 준비 신호(RR)를 활성화시킨다.
T4시간에서 제1마스터(20-1)는 R-채널을 통하여 리드 유효 신호(RV)를 활성화시킨다. 즉, 리드 준비 신호(RR)와 리드 유효 신호(RV)가 모두 활성화될 때, 제1마스터(20-1)와 제1슬레이브(40-1) 간에 데이터가 전송될 수 있다. 따라서, T3시간부터 T4시간까지 제1슬레이브(40-1)는 리드 데이터 신호(RD)를 제1마스터(20-1)로 전송한다.
이 경우 대역폭은 단위 시간 동안 전송된 데이터의 비트 수이다. 리드 데이터 신호(RD)가 32 비트이고, 클록 신호(ACLK)의 주파수를 100MHz라고 가정하면, 대역폭은 32/10-8 bps이다. 즉, 대역폭은 3.2 Gbps이다.
도 6은 우선순위 제어기가 리드 동작시 레이턴시를 설명하기 위한 타이밍 도이다. 도 6을 참조하면, 리드 동작시 레이턴시는 리드 어드레스 유효 신호(ARV)가 활성화된 시간으로부터 리드 어드레스 준비 신호(ARR)가 활성화된 시간까지이다. 즉, 리드 동작시 레이턴시는 T1시간부터 T2시간까지이다. 클록 신호(ACLK)의 주파수를 100MHz라고 가정하면, 레이턴시는 10-8 초이다.
도 7은 우선순위 제어기가 라이트 동작시 레이턴시를 설명하기 위한 타이밍도이다. 도 7을 참조하면, 라이트 동작시 레이턴시는 라이트 어드레스 유효 신호 (AWV)가 활성화된 시간으로부터 라이트 어드레스 준비 신호(AWR)가 활성화된 시간까지이다. 즉, 라이트 동작시 레이턴시는 T1시간부터 T2 시간까지이다. 클록 신호 (ACLK)의 주파수를 100MHz라고 가정하면, 레이턴시는 10-8 초이다.
도 8은 도 1에 도시된 제1 마스터 및 제2마스터의 대역폭을 도시한 그래프이다. 도 1 내지 도 8을 참조하면, 가로 축은 시간 축을, 세로 축은 대역폭을 나타낸다. 버스 서브시스템(30)의 최대 대역폭은 6.4 Gbps로 가정하고, 하나의 마스터가 버스 서브시스템(30)을 점유하는 적절한 대역폭(즉, 대역폭 기준 값)을 3.5 Gbps로 설정된다. t1시간과 t2시간 사이, 그리고 t3시간과 t4시간 사이에서, 제1마스터 (20-1)의 대역폭은 버스 서브시스템(30)의 대역폭 기준 값인 3.5 Gbps를 초과한다. 이로 인하여, 제2마스터(20-2)의 네트워크 점유는 대역폭 기준 값보다 작아진다.
제1마스터(20-1)가 마이크로프로세서이면, 제1마스터(20-1)는 내부에 캐쉬 (cache) 메모리를 포함할 것이다. 제1마스터(20-1)가 제1 동작을 수행한 후에 상기 제1 동작과 전혀 다른 제2 동작을 수행하게 되면, 상기 캐쉬 메모리의 데이터를 모두 플러쉬(flush)하고, 상기 제2 동작에 필요한 데이터들을 상기 캐쉬 메모리에 저장할 것이다. 상기 캐쉬 메모리의 데이터를 플러쉬하고, 상기 캐쉬 메모리에 새로운 데이터를 저장하는 과정이 제1마스터(20-1)의 대역폭이 대역폭 기준 값인 3.5 Gbps를 초과하는 원인이 될 수 있다.
도 9는 도 1에 도시된 제1마스터 및 제2마스터의 우선 값을 도시한 그래프이다. 제1마스터(20-1)는 마이크로프로세서(microprocessor)이고, 제2마스터(20-2)는 그래픽 프로세서(graphic processor)라고 가정한다. SoC(10a)의 설계자(designer)는 제1마스터(20-1)의 명령이 제2마스터(20-2)의 명령보다 우선적으로 실행되도록 우선값을 설정할 것이다. 즉, SoC(10a)의 설계자는 특정한 마스터가 다른 마스터들과 비교하여 우선적으로 실행되도록 상기 특정한 마스터의 우선 값을 높게 설정한다.
도 1 내지 도 9를 참조하면, 가로 축은 마스터를, 세로 축은 우선 값을 나타낸다. 본 발명의 실시 예에 따른 우선값 생성기(31-4)는 제1마스터 내지 제4마스터 (20-1~20-4) 각각에 대한 우선값을 3 단계로 조절하도록 예시된다.
제1마스터(20-1)의 우선값에 대한 디폴트(default)는 12이고, 제2마스터(20-2)의 우선값에 대한 디폴트(default)는 8이다. 제1마스터(20-1)에 대한 우선값은 하이(high)일 때 14로 설정되고, 로우(low)일 때 10으로 설정된다. 제2마스터(20)에 대한 우선값은 하이(high)일 때 10으로 설정되고, 로우(low)일 때 6으로 설정된다. SoC(10a)의 설계자는 제1마스터(20-1)의 명령이 제2마스터(20-2)의 명령보다 우선적으로 처리되도록 고려한 것이다. 즉, SoC(10a)의 설계자는 제1마스터(20-1)에 의한 네트워크(예컨대, 버스 서브시스템(30)) 점유가 제2마스터(20-2)의 네트워크(예컨대, 버스 서브시스템(30)) 점유보다 더 높도록 고려한 것이다.
도 10은 도 1에 도시된 SoC의 동작에 따른 제1마스터 및 제2마스터의 대역폭의 변화를 도시한 그래프이다. 도 10을 참조하면, 가로 축은 시간 축을, 세로 축은 대역폭을 나타낸다. 버스 서브시스템(30)의 최대 대역폭은 6.4 Gbps로 가정되고, 제1마스터(20-1), 제2마스터(20-2), 제3마스터(20-3), 및 제4마스터(20-4) 각각의 기준 대역폭은 3.5 Gbps로 설정된다.
도 9에 도시된 바와 같이, 제1마스터(20-1)의 디폴트 우선값은 12로 설정되었고, 제2마스터(20-2)의 디폴트 우선값은 8로 설정된다. 즉, SoC(10a)의 설계자는 제1마스터(20-1)의 동작이 제2마스터(20-2)의 동작보다 우선하여 처리될 수 있도록 제1마스터(20-1)의 디폴트 우선값이 제2마스터(20-2)의 디폴트 우선값보다 더 높도록 설정한다.
도 1 내지 도 10을 참조하면, t1시간과 t2시간 사이, 그리고 t3시간과 t4시간 사이에서, 제1마스터(20-1)의 대역폭은 버스 서브시스템(30)의 기준 대역폭인 3.5 Gbps를 초과한다. 이로 인하여, 제2마스터(20-2)에 의한 네트워크 점유는 기준 대역폭보다 낮아진다.
t1시간과 t2시간 사이, 그리고 t3시간과 t4시간 사이에서, 제1우선순위 제어기(31a)는 제1마스터(20-1)의 우선값을 10으로 낮춘다. 제2우선순위 제어기(32a)는 제2마스터(20-2)의 우선값을 10으로 높인다. 따라서, 제1마스터(20-1)와 제2마스터(20-2) 각각의 대역폭은 화살표의 방향에 따라 굵은 실선으로 이동할 것이다.
t2시간에서 t3시간 사이에서, 제1마스터(20-1) 대역폭은 버스 서브시스템(30)의 기준 대역폭인 3.5 Gbps를 초과하지 않으므로, 제1우선순위 제어기(31a)는 동작하지 않는다. 따라서, 제1마스터(20-1)의 우선값은 디폴트 값을 유지하고, 제2마스터(20-2)가 점유한 대역폭은 변화되지 않는다.
본 발명의 다른 실시 예에 따른 SoC(10b)은 특정 마스터의 대역폭이 기준값을 초과하거나 또는 아웃스탠딩 카운트가 높은 슬레이브를 특정 마스터가 액세스하고자 할 때 상기 특정 마스터의 대역폭을 차단한다.
본 발명의 다른 실시 예에 따른 SoC은 도 11 내지 도 17을 참조하여 상세히 설명된다. 도 11은 본 발명의 다른 실시 예에 따른 SoC의 블록도이다.
도 11을 참조하면, SoC(10b)은 복수의 마스터들(20), 버스 서브시스템(30), 및 복수의 슬레이브들(40)을 포함한다. SoC(10b)는 단일의 칩으로 제조되어 하나의 패키지(package)로 구현될 수 있다.
복수의 마스터들(20) 및 복수의 슬레이브들(40)은 도 1에 도시된 바와 동일하다.
버스 서브시스템(30)은 제1블록킹 제어기(31b), 제2블록킹 제어기(32b), 버스 스위치(33), 제1블록킹 모니터(34) 및 제2블록킹 모니터(35)를 포함한다. 도 11에서는 설명의 편의를 위하여 2개의 블록킹 제어기들(31b와 32b)과 두 개의 블록킹 모니터들(34와 35)을 도시하나 각 블록킹 제어기가 각 마스터(20-3과 20-4)와 각 슬레이브 인터페이스(33-3과 33-4) 사이에 될 수 있고, 각 블록킹 모니터가 각 마스터 인터페이스(33-7과 33-8)와 각 슬레이브(40-3과 40-4) 사이에 구현될 수 있다.
버스 스위치(33)는 도 1에 도시된 바와 동일하다. 제2블록킹 제어기(32b)는 제1블록킹 제어기(31b)와 동일한 구조를 갖는다. 제1블록킹 제어기(31b)는 도 12를 참조하여 상세히 설명된다.
제1블록킹 모니터(34)는 제1슬레이브(40-1)의 동작 상태값을 모니터 (monitor)한다. 제2블록킹 모니터(35)는 제2슬레이브(40-2)의 동작 상태값을 모니터(monitor)한다. 즉, 슬레이브의 동작 상태를 모니터할 필요가 있는 슬레이브에만 블록킹 모니터가 구현될 수 있다. 만일, 모든 슬레이브의 동작 상태를 모니터하기 위하여 모든 슬레이브에 블록킹 모니터가 구현될 수 있다.
예를 들면, 제1블록킹 모니터(34)는 제1슬레이브(40-1)의 동작 상태값을 버스 스위치(33)를 통하여 제1블록킹 제어기(31b)로 전송한다. 제1블록킹 제어기(31b)는 상기 동작 상태값이 동작 상태 기준값보다 크면 제1슬레이브(40-1)를 액세스하는 제1마스터(20-1)의 명령을 차단(block)한다. 제1블록킹 모니터(34) 및 제2블록킹 모니터(35) 각각의 동작에 관해서는 도 13부터 도 14를 참조하여 상세히 설명될 것이다.
상기 동작 상태값은 아웃스탠딩 카운트(outstanding count)를 포함한다. 아웃스탠딩 카운트는 마스터가 명령을 출력할 때마다 1씩 증가하고, 상기 명령에 대하여 슬레이브가 응답할 때마다 1씩 감소한다. 아웃스탠딩 카운트가 높다는 것은 슬레이브가 복수의 마스터들 각각으로부터 출력된 명령을 많이 받았음을 의미하므로, 슬레이브의 동작 상태가 비지(busy)하다는 것을 나타낸다.
또한, 아웃스탠딩 카운트가 낮다는 것은 슬레이브가 복수의 마스터들 각각으로부터 출력된 명령을 적게 받았음을 의미하므로, 슬레이브의 동작 상태가 아이들 (idle)하다는 것을 나타낸다. 리드 동작 또는 라이트 동작시 아웃스탠딩 카운트를 측정하는 방법에 관해서는 도 15 및 도 16을 통해서 상세히 설명될 것이다.
도 12는 도 11에 도시된 제1블록킹 제어기를 상세히 도시한 블록도이다.
도 11 및 도 12를 참조하면, 제1블록킹 제어기(31b)는 리셋 주기(reset period) 제어기(31-1), 대역폭 모니터(31-2), 대역폭 블록킹 마스크(bandwidth blocking mask) 생성기(31-5), SUF(System Utilization Feedback) 제어기(31-6), 및 조합 회로(combinational circuit; 31-7)를 포함한다.
리셋 주기 제어기(31-1) 및 대역폭 모니터(31-2)는 도 3에 도시된 바와 동일하다.
대역폭 블록킹 마스크 생성기(31-5)는 대역폭 모니터(31-2)로부터 대역폭 정보(BF)를 수신한다. 대역폭 블록킹 마스크 생성기(31-5)는 제1마스터(20-1)가 일정한 대역폭(즉, 기준 대역폭)보다 크게 버스 스위치(33)를 점유하는 것을 차단 (block)하기 위한 대역폭 블록킹 마스크 신호(bandwidth blocking mask(BBM))를 조합 회로(31-7)로 전송한다. 예를 들면, 제1마스터(20-1)에 의하여 점유될 수 있는 버스 서브시스템(30)의 대역폭이 3.5 Gbps라고 가정하면, 제1마스터(20-1)가 제1슬레이브(40-1)로 출력한 명령들 중에서 어느 하나의 대역폭이 3.5 Gbps 보다 크다면 대역폭 블록킹 마스크 생성기(31-5)는 대역폭 블록킹 마스크 신호(BBM)를 조합 회로(31-7)로 전송한다.
SUF 제어기(31-6)는 제1블록킹 모니터(34)로부터 생성된 시스템 활용 정보 (system utilization feedback(SUF))를 수신한다. 시스템 활용 정보(SUF)는 아웃스탠딩 카운트(outstanding counter)를 포함한다.
제1마스터(20-1)가 제1슬레이브(40-1)를 액세스한다고 가정할 때, 아웃스탠딩 카운트는 제1슬레이브(40-1)의 동작 상태(operation status)를 나타낸다. SUF 제어기(31-6)는 아웃스탠딩 카운트에 따라 제1마스터(20-1)가 버스 서브시스템(30)을 일정한 대역폭보다 크게 점유하는 것을 차단(block)하기 위한 시스템 블록킹 마스크 신호(system blocking mask(SBM))를 조합 회로(31-7)로 전송한다.
예를 들면, 제1슬레이브(40-1)의 아웃스탠딩 카운트가 10보다 크다면, 제1슬레이브(40-1)는 비지 상태라고 가정한다. 현재 제1슬레이브(40-1)의 아웃스탠딩 카운트가 12이면, 제1슬레이브(40-1)의 동작 상태는 비지 상태이다. 이 경우 SUF 제어기(31-6)는 제1슬레이브(40-1)를 액세스하는 명령을 차단하는 시스템 블록킹 마스크 신호(SBM)를 조합 회로(31-7)로 전송한다.
조합 회로(31-7)는 제1마스터(20-1)가 버스 서브시스템(30)을 일정한 대역폭보다 크게 점유하는 경우 또는 아웃스탠딩 카운트에 따라 제1마스터(20-1)가 버스 서브시스템(30)을 일정한 대역폭보다 크게 점유하는 경우 제1마스터(20-1)의 명령을 차단(block)한다.
조합 회로(31-7)는 제1마스터(20-1)의 명령을 차단(block)하기 위하여 AW-채널 신호들과 AR-채널의 신호들에 대한 복수의 마스크 신호들(ARVM, AWVM, ARRM, 및 AWRM)을 생성한다. 조합 회로(31-7)는 제1NAND 게이트(NAND1), 제2NAND 게이트 (NAND2), 제1AND 게이트(AND1), 제2AND 게이트(AND2), 제3AND 게이트(AND3), 및 제4AND 게이트(AND4)를 포함한다.
제1NAND 게이트(NAND1)는 대역폭 블록킹 마스크 생성기(31-5)로부터 대역폭 블록킹 마스크 신호(BBM)와, SUF 제어기(31-6)로 생성된 시스템 블록킹 마스크 신호(SBM)의 반전 신호를 수신한다. 제1NAND 게이트(NAND1)는 AW-채널 블록킹 마스크 신호(AWBM)를 생성하고, 이를 제2AND 게이트(AND2)와 제4AND 게이트(AND4)로 전송한다. 제1NAND 게이트(NAND1)의 출력 신호(AWBM)는 라이트 동작시 라이트 어드레스 유효 신호(AWV)와 라이트 어드레스 준비 신호(AWR)를 마스크(mask)하는데 사용된다.
제2NAND 게이트(NAND2)는 대역폭 블록킹 마스크 생성기(31-5)로부터 대역폭 블록킹 마스크 신호(BBM)와, SUF 제어기(31-6)로 생성된 시스템 블록킹 마스크 신호(SBM)의 반전 신호를 수신한다. 제2NAND 게이트(NAND2)는 AR-채널 블록킹 마스크 신호(ARBM)를 생성하고, 이를 제1AND 게이트(AND1)와 제3AND 게이트(AND3)로 전송한다. 제2NAND 게이트(NAND2)의 출력 신호(ARBM)는 리드 동작시 리드 어드레스 유효 신호(ARV)와 리드 어드레스 준비 신호(ARR)를 마스크(mask)하는데 사용된다.
제1AND 게이트(AND1)는 제1마스터(20-1)로부터 리드 어드레스 유효 신호(ARV)와 제2NAND 게이트(NAND2)로부터 AR-채널 블록킹 마스크 신호(AR Blocking Mask(ARBM))를 수신한다. 제1AND 게이트(AND1)는 리드 어드레스 유효 마스크 신호 (ARVM)를 생성하고, 이를 버스 스위치(33)를 통하여 제1슬레이브(40-1)로 전송한다.
제2AND 게이트(AND2)는 제1마스터(20-1)로부터 라이트 어드레스 유효 신호 (AWV)와 제1NAND 게이트(NAND1)로부터 AW-채널 블록킹 마스크 신호(AW Blocking Mask(AWBM))를 수신한다. 제2AND 게이트(AND2)는 라이트 어드레스 유효 마스크 신호(AWVM)를 생성하고, 이를 버스 스위치(33)를 통하여 제1슬레이브(40-1)로 전송한다.
제3AND 게이트(AND3)는 제1슬레이브(40-1)로부터 리드 어드레스 준비 신호 (ARR) 와 제2NAND 게이트(NAND2)로부터 AR-채널 블록킹 마스크 신호(ARBM)를 수신한다. 제3AND 게이트(AND3)는 리드 어드레스 준비 마스크 신호(ARRM)를 생성하고, 이를 버스 스위치(33)를 통하여 제1슬레이브(40-1)로 전송한다.
제4AND 게이트(AND4)는 제1슬레이브(40-1)로부터 라이트 어드레스 준비 신호 (AWR)와 제1NAND 게이트(NAND1)로부터 AW-채널 블록킹 마스크 신호(AWBM)를 수신한다. 제4AND 게이트(AND4)는 라이트 어드레스 준비 마스크 신호(ARRM)를 생성하고, 이를 버스 스위치(33)를 통하여 제1슬레이브(40-1)로 전송한다.
리드 어드레스 유효 마스크 신호(ARVM) 및 리드 어드레스 준비 마스크 신호 (ARRM)가 활성화되면, 리드 동작시 제1슬레이브(40-1)로부터 제1마스터(20-1)로 데이터의 전송이 차단된다. 라이트 어드레스 유효 마스크 신호(AWVM) 및 라이트 어드레스 준비 마스크 신호(ARRM)가 활성화되면, 라이트 동작시 제1마스터(20-1)로부터 제1슬레이브(40-1)로 데이터의 전송이 차단된다.
대역폭 블록킹 마스크 생성기(31-5)는 제1마스터(20-1)가 일정한 대역폭 이상을 점유하게 되면 대역폭 블록킹 마스크 신호(BBM)를 생성한다. SUF 제어기(31-6)는 시스템 활용 정보(SUF)에 따라 제1마스터(20-1)가 버스 서브시스템(30)을 일정한 대역폭보다 크게 점유하는 것을 차단하기 위한 시스템 블록킹 마스크 신호(SBM)를 생성한다.
예를 들면, 대역폭 블록킹 마스크 신호(BBM)가 1이면, 리드 동작시 또는 라이트 동작시 제1 마스터(20-1)의 명령을 차단한다. 또한, 시스템 블록킹 마스크 신호(SBM)가 0이면, 리드 동작시 또는 라이트 동작시 제1 마스터(20-1)의 명령을 차단한다.
시스템 블록킹 마스크 신호(SBM)는 제1NAND 게이트(NAND1) 및 제2NAND 게이트(NAND2)에 반전되어 입력된다.
대역폭 블록킹 마스크 신호(BBM)가 1이면, AW-채널 블록킹 마스크 신호(AWBM) 및 AR-채널 블록킹 마스크 신호(ARBM)는 0이 된다. 따라서, 제1AND 게이트(AND1), 제2AND 게이트(AND2), 제3AND 게이트(AND3), 및 제4AND 게이트(AND4)의 출력은 모두 0이 된다. 즉, 리드 어드레스 유효 마스크 신호(ARVM) 및 리드 어드레스 준비 마스크 신호(ARRM), 라이트 어드레스 유효 마스크 신호(AWVM) 및 라이트 어드레스 준비 마스크 신호(ARRM)는 마스크된다.
또한, 시스템 블록킹 마스크 신호(SBM)가 0이면, AW-채널 블록킹 마스크 신호 (AWBM) 및 AR-채널 블록킹 마스크 신호(ARBM)는 0이 된다. 따라서, 제1AND 게이트 (AND1), 제2AND 게이트(AND2), 제3AND 게이트(AND3), 및 제4AND 게이트(AND4)의 출력은 모두 0이 된다. 즉, 리드 어드레스 유효 마스크 신호(ARVM) 및 리드 어드레스 준비 마스크 신호(ARRM), 라이트 어드레스 유효 마스크 신호(AWVM) 및 라이트 어드레스 준비 마스크 신호(ARRM)는 마스크된다.
그리고, 대역폭 블록킹 마스크 신호(BBM)가 1이고, 시스템 블록킹 마스크 신호(SBM)가 1이면, AW-채널 블록킹 마스크 신호(AWBM) 및 AR-채널 블록킹 마스크 신호(ARBM)는 1이 된다. 따라서, 리드 어드레스 유효 마스크 신호(ARVM) 및 리드 어드레스 준비 마스크 신호(ARRM), 라이트 어드레스 유효 마스크 신호(AWVM) 및 라이트 어드레스 준비 마스크 신호(ARRM)는 마스크되지 않는다.
이하에서, 도 11에 도시된 제1블록킹 제어기의 구체적 동작은 도 13을 참조하여 상세히 설명된다.
도 13은 도 11에 도시된 제1블록킹 제어기, 제2블록킹 제어기 및 제1블록킹 모니터를 상세히 설명하는 블록도이다.
도 11부터 도 13을 참조하면, 제1마스터(20-1)가 제1슬레이브(40-1)를 액세스할 때, 대역폭 블록킹 마스크 생성기(31-5)와 조합 회로(31-7)는 제1마스터(20-1)의 대역폭을 차단하는 신호를 생성한다.
대역폭을 차단하는 신호에는 리드 어드레스 유효 마스크 신호(ARVM), 라이트 어드레스 유효 마스크 신호(AWVM), 리드 어드레스 준비 마스크 신호(ARRM), 및/또는 라이트 어드레스 준비 마스크 신호(AWRM)가 있다. 상술한 각각의 신호가 활성화 (active)된다면, 제1마스터(20-1)와 제1슬레이브(40-1) 간에 데이터 전송이 중단된다.
제1마스터(20-1) 내지 제4마스터(20-4) 중에서 적어도 하나가 제1슬레이브 (40-1)를 액세스한다. 제1블록킹 모니터(34)는 제1슬레이브(40-1)로부터 시스템 활용 정보(SUF)인 아웃스탠딩 카운트를 측정한다. 제1블록킹 모니터(34)는 제1블록킹 제어기(31b) 및 제2블록킹 제어기(32b) 각각으로 시스템 활용 정보(SUF)를 전송한다.
버스 스위치(33)는 제1버스(33a), 제2버스(33b), 제3버스(33c), 제1브릿지 (bridge1; 33d) 및 제2 브릿지(33e)를 포함한다. 버스 스위치(33)는 도 11에 도시된 바와 같이 계층적 버스 구조(hierarchical bus structure)로 구현될 수 있다. 제1브릿지(33d)는 제1버스(33a)와 제3버스(33c) 사이에 데이터 폭(data width)과 클록 주파수(clock frequency)를 조정한다. 제2브릿지(33e)는 제2버스(33b)와 제3버스(33c) 사이에 데이터 폭과 클록 주파수를 조정한다.
본 발명의 다른 실시 예에 따른 SoC(10b)의 동작은 도 14의 플로우챠트를 참조하여 상세히 설명된다. 도 14는 도 11에 도시된 SoC의 동작을 도시한 플로우챠트이다. 도 11부터 도 14를 참조하면, S21 단계에서 제1마스터(20-1)는 AR-채널을 통하여 제1슬레이브(40-1)로 리드 어드레스 유효 신호(ARV)를 전송한다. S22 단계에서 제1슬레이브(40-1)는 AR-채널을 통하여 제1마스터(20-1)로 리드 명령의 응답인 리드 어드레스 준비 신호(ARR)를 전송한다. 제1블로킹 모니터(34)는 제1슬레이브 (40-1)의 동작 상태 값인 아웃스탠딩 카운트를 제1블록킹 제어기(31b)로 전송한다.
S23 단계에서 제1블록킹 제어기(31b)는 상기 명령과 상기 응답으로부터 대역폭을 측정한다. S24 단계에서 제1블록킹 제어기(31b)는 대역폭과 아웃스탠딩 카운트를 모니터하고 모니터된 결과에 따라 제1마스터(20-1)의 대역폭을 차단한다.
예를 들면, 제1마스터(20-1)와 제2마스터(20-2) 각각의 대역폭의 기준 값을 3.5Gbps라고 하면, 제1블록킹 제어기(31b) 및 제2블록킹 제어기(32b) 각각은 제1마스터(20-1)와 제2마스터(20-2) 각각으로부터 출력된 명령들 중에서 3.5Gbps 보다 큰 명령들을 차단한다. 이를 대역폭을 차단한다고 한다. 따라서, 제1마스터(20-1)의 대역폭은 3.5 Gbps을 넘지 않는다. 제2마스터(20-2)가 버스 서브 시스템(30)을 사용하지 않는다면, 제1마스터(20-1)의 대역폭 차단을 해제할 수 있다.
또한, 제1슬레이브(40-1), 제2슬레이브(40-2), 제3슬레이브(40-3), 및 제4슬레이브(40-4) 각각의 아웃스탠딩 카운트의 동작 상태 기준값을 10으로 설정한다. 제1마스터(20-1)가 제1슬레이브(40-1)를 액세스하고자 할 때, 제1슬레이브(40-1)의 아웃스탠딩 카운트가 10보다 큰 경우 제1블록킹 제어기 (31b)는 제1마스터(20-1)가 제1슬레이브(40-1)를 액세스하는 것을 차단한다. 아웃스탠딩 카운트를 측정하는 방법에 관해서는 도 15 및 도 16을 참조하여 설명될 것이다.
도 15는 리드 동작시 아웃스탠딩 카운트를 설명하기 위한 타이밍도이다. 아웃스탠딩 카운트는 슬레이브의 동작 상태 값을 나타낸다. 도 15를 참조하면, 리드 동작시 아웃스탠딩 카운트는 리드 어드레스 유효 신호(ARV)와 리드 어드레스 준비 신호(ARR)가 활성화될 때마다 1씩 증가하고, 리드 라스트(read last) 신호(RL), 리드 유효 신호(RV), 및 리드 준비 신호(RR)가 활성화될 때마다 1씩 감소한다.
T1시간에 아웃스탠딩 카운트가 2라고 하면, T2시간에 리드 어드레스 유효 신호(ARV)와 리드 어드레스 준비 신호(ARR)가 활성화되면 아웃스탠딩 카운트는 3으로 증가된다. 마찬가지로, T4시간에 리드 어드레스 유효 신호(ARV)와 리드 어드레스 준비 신호(ARR)가 활성화되면 아웃스탠딩 카운트는 4로 증가한다. 그러나, T9시간에 리드 라스트 신호(RL), 리드 유효 신호(RV), 및 리드 준비 신호(RR)가 모두 활성화되면, 아웃스탠딩 카운트는 3으로 감소한다.
도 16은 라이트 동작시 아웃스탠딩 카운트를 설명하기 위한 타이밍 도이다.
도 16을 참조하면, 라이트 동작시 아웃스탠딩 카운트는 라이트 어드레스 유효 신호(AWV)와 라이트 어드레스 준비 신호(AWR)가 활성화될 때마다 1씩 증가하고, 라이트 응답 유효 신호(BV) 및 라이트 응답 준비 신호(BR)가 활성화될 때마다 1씩 감소한다.
T9시간에 아웃스탠딩 카운트가 1이라고 하면, T10 시간에 라이트 응답 유효 신호(BV) 및 라이트 응답 준비 신호(BR)가 활성화되면, 아웃스탠딩 카운트가 0으로 감소된다. T12시간에 라이트 응답 유효 신호(BV) 및 라이트 응답 준비 신호(BR)가 활성화되면, 아웃스탠딩 카운트가 1로 증가한다. T20시간에 라이트 응답 유효 신호(BV) 및 라이트 응답 준비 신호(BR)가 활성화되면 아웃스탠딩 카운트가 0으로 감소한다.
라이트 응답 유효 신호(BV) 및 라이트 응답 준비 신호(BR)는 표 6을 참조한다. 표 6은 B-채널에서 사용되는 복수의 신호들을 나타낸다.
Signal Source Description
BVALID Slave Write response valid.
BREADY Master response ready.
도 17은 도 11에 도시된 SoC의 동작에 따른 제1마스터 및 제2마스터의 대역폭의 변화를 도시한 그래프이다. 도 11 및 도 17을 참조하면, 가로 축은 시간 축을, 세로 축은 대역폭을 나타낸다. 버스 서브시스템(30)의 최대 대역폭은 6.4 Gbps로 가정하고, 제1마스터(20-1), 제2마스터(20-2), 제3마스터(20-3), 및 제4마스터(20-4) 각각의 기준 대역폭은 3.5 Gbps로 설정된다.
t1시간과 t2시간 사이, 그리고 t3시간과 t4시간 사이에서, 제1마스터(20-1)의 대역폭은 버스 서브시스템(30)의 기준 대역폭인 3.5 Gbps를 초과한다. 따라서, 제1블록킹 제어기(31b)는 t1시간과 t2시간 사이, 및 t3시간과 t4시간 사이에서 제1마스터(20-1)의 대역폭을 차단한다. t1시간과 t2시간, 사이 그리고 t3시간과 t4시간 사이에서 제2마스터(20-2)의 대역폭은 화살표의 방향에 따라 굵은 실선으로 이동할 것이다.
t2시간에서 t3시간 사이에서, 제1마스터(20-1)의 대역폭은 버스 서브시스템 (30)의 기준 대역폭인 3.5 Gbps를 초과하지 않으므로, 제1블록킹 제어기(31b)는 동작하지 않는다. 따라서, 제2마스터(20-2)가 점유한 대역폭은 변화되지 않는다.
본 발명의 다른 실시 예에 따른 SOC(10b)는 특정 마스터의 대역폭이 기준값을 초과하기 때문에 대역폭을 차단하는 경우 슬레이브의 아웃스탠딩 카운트가 낮다면 차단된 대역폭을 해제한다. 본 발명의 다른 실시 예에 따른 SoC(10b)은 도 18 도 19를 참조하여 상세히 설명된다.
도 18은 본 발명의 다른 실시 예에 따른 SoC의 동작을 도시한 플로우챠트이다. 도 11, 도 12, 및 도 18을 참조하면, S31 단계에서 제1마스터(20-1)는 AR-채널을 통하여 제1슬레이브(40-1)에 리드 어드레스 유효 신호(ARV)를 전송한다. S32 단계에서 제1슬레이브(40-1)는 AR-채널을 통하여 제1마스터(20-1)로 리드 명령의 응답인 리드 어드레스 준비 신호(ARR)를 전송한다. 제1블록킹 모니터(34)는 제1슬레이브(40-1)의 동작 상태값인 아웃스탠딩 카운트를 버스 스위치(33)를 통하여 제1블록킹 제어기(31b)로 전송한다.
S33단계에서 제1블록킹 제어기(31b)는 상기 명령과 상기 응답으로부터 대역폭을 측정한다. S34단계에서 제1블록킹 제어기(31b)는 대역폭과 아웃스탠딩 카운트를 모니터하고 모니터된 결과에 따라 제1마스터(20-1)의 대역폭을 차단(또는 제한)한다. S35단계에서 제1블록킹 제어기(31b)는 제1마스터(20-1)의 대역폭이 대역폭 기준값을 초과하기 때문에 상기 대역폭을 차단(또는 제한)하는 경우 제1슬레이브(40-1)의 아웃스탠딩 카운트가 기준값(즉, 동작 상태 기준값)보다 낮다면 차단된 대역폭을 해제한다.
예를 들면, 제1마스터(20-1), 제2마스터(20-2), 제3마스터(20-3), 및 제4마스터(20-4) 각각의 대역폭의 기준값을 3.5Gbps라고 하면, 제1블록킹 제어기 (31b) 및 제2블록킹 제어기(32b) 각각은 제1마스터(20-1)와 제2마스터(20-2) 각각으로부터 출력된 명령들 중에서 중 3.5Gbps 보다 큰 것을 차단한다.
또한, 제1슬레이브(40-1), 제2슬레이브(40-2), 제3슬레이브(40-3), 및 제4슬레이브(40-4) 각각의 아웃스탠딩 카운트의 기준값을 10으로 설정하면, 제1마스터(20-1)가 제1슬레이브(40-1)를 액세스하고자 할 때, 제1슬레이브(40-1)의 아웃스탠딩 카운트가 10보다 큰 경우 제1블록킹 제어기(31b)는 제1마스터(20-1)가 제1슬레이브 (40-1)를 액세스하는 것을 차단한다.
만약 제1마스터(20-1)의 대역폭이 3.5Gbps를 초과한다고 하더라도 제1슬레이브(40-1)의 아웃스탠딩 카운트가 10보다 작다면, 제1블록킹 제어기 (31b)는 대역폭이 차단된 제1마스터(20-1)가 다시 버스 서브 시스템(30)을 점유하도록 한다.
도 19는 SoC의 동작에 따른 제1마스터 및 제2마스터의 대역폭의 변화를 도시한 그래프이다. 도 11 및 도 19를 참조하면, 가로축은 시간 축을, 세로 축은 대역폭을 나타낸다. 버스 서브 시스템(30)의 최대 대역폭은 6.4 Gbps로 가정하고, 제1마스터(20-1), 제2마스터(20-2), 제3마스터(20-3), 및 제4마스터(20-4) 각각의 기준 대역폭은 3.5 Gbps로 설정된다.
t1시간과 t2시간 사이에서, 제1마스터(20-1)의 대역폭은 버스 서브 시스템 (30)의 기준 대역폭인 3.5 Gbps를 초과한다. 따라서, 제1블록킹 제어기(31b)는 t1시간과 t2시간 사이에서 제1마스터(20-1)의 대역폭을 차단(block)한다. t3시간과 t4시간 사이에서 제1마스터(20-1)의 대역폭은 버스 서브 시스템(30)의 기준 대역폭인 3.5 Gbps를 초과한다.
그러나, 제1슬레이브(40-1)의 아웃스탠딩 카운트가 0라면, 제1블록킹 제어기(31b)는 t3시간과 t4시간 사이에서 대역폭이 차단된 제1마스터(20-1)가 기준 대역폭을 초과하여 버스 서브 시스템(30)을 점유하도록 한다.
도 20은 도 1 또는 도 11에 도시된 SoC을 포함하는 반도체 시스템의 일 실시 예를 나타낸다.
도 20을 참조하면, 반도체 시스템(200)은 도 1 또는 도 11에 도시된 SoC(10a 또는 10b), 안테나(201), 무선 송수신기(203), 입력 장치(205), 및 디스플레이 (207)를 포함한다.
무선 송수신기(203)는 안테나(201)를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(203)는 안테나(201)를 통하여 수신된 무선 신호를 SoC(10a 또는 10b)에서 처리될 수 있는 신호로 변경할 수 있다.
따라서, SoC(10a 또는 10b)은 무선 송수신기(203)로부터 출력된 신호를 처리하고 처리된 신호를 디스플레이(207)로 전송할 수 있다. 또한, 무선 송수신기 (203)는 SoC(10a 또는 10b)으로부터 출력된 신호를 무선 신호로 변경하고 변경된 무선 신호를 안테나(201)를 통하여 외부 장치로 출력할 수 있다.
입력 장치(205)는 SoC(10a 또는 10b)의 동작을 제어하기 위한 제어 신호 또는 SoC(10a 또는 10b)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드 (touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.
도 21은 도 1 또는 도 11에 도시된 SoC을 포함하는 컴퓨터 시스템의 다른 실시 예를 나타낸다. 도 21을 참조하면, 도 1 또는 도 11에 도시된 SoC(10a)을 포함하는 컴퓨터 시스템(300)은 PC(personal computer), 네트워크 서버(Network Server), 태블릿(tablet) PC, 넷-북(net-book), e-리더(e-reader), PDA (personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어로 구현될 수 있다.
컴퓨터 시스템(300)은 SoC(10a 또는 10b), 메모리 장치(301)와 메모리 장치(301)의 데이터 처리 동작을 제어할 수 있는 메모리 컨트롤러(302), 디스플레이(303) 및 입력 장치(304)를 포함한다.
SoC(10a 또는 10b)는 입력 장치(304)를 통하여 입력된 데이터에 따라 메모리 장치(301)에 저장된 데이터를 디스플레이(303)를 통하여 디스플레이할 수 있다. 예컨대, 입력 장치(304)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다. SoC(10a 또는 10b)는 컴퓨터 시스템(300)의 전반적인 동작을 제어할 수 있고 메모리 컨트롤러(302)의 동작을 제어할 수 있다.
실시 예에 따라 메모리 장치(301)의 동작을 제어할 수 있는 메모리 컨트롤러(302)는 SoC(10a 또는 10b)의 일부로서 구현될 수 있고 또한 SoC(10a 또는 10b)와 별도의 칩으로 구현될 수 있다.
도 22는 도 1 또는 도 11에 도시된 SoC을 포함하는 컴퓨터 시스템의 또 다른 실시 예를 나타낸다. 도 22를 참조하면, 도 1 또는 도 11에 도시된 SoC(10a 또는 10b)을 포함하는 컴퓨터 시스템(400)은 이미지 처리 장치(image process device), 예컨대 디지털 카메라 또는 디지털 카메라가 부착된 이동 전화기 또는 스마트 폰으로 구현될 수 있다.
컴퓨터 시스템(400)은 SoC(10a 또는 10b), 메모리 장치(401)와 메모리 장치(401)의 데이터 처리 동작, 예컨대 라이트 동작 또는 리드 동작을 제어할 수 있는 메모리 컨트롤러(402)를 포함한다. 또한, 컴퓨터 시스템(400)은 이미지 센서(403) 및 디스플레이(404)를 더 포함한다.
컴퓨터 시스템(400)의 이미지 센서(403)는 광학 이미지를 디지털 신호들로 변환하고, 변환된 디지털 신호들은 SoC(10a 또는 10b) 또는 메모리 컨트롤러(402)로 전송된다. SoC(10a 또는 10b)의 제어에 따라, 상기 변환된 디지털 신호들은 디스플레이(404)를 통하여 디스플레이되거나 또는 메모리 컨트롤러(402)를 통하여 메모리 장치(401)에 저장될 수 있다.
또한, 메모리 장치(401)에 저장된 데이터는 SoC(10a 또는 10b) 또는 메모리 컨트롤러(402)의 제어에 따라 디스플레이(403)를 통하여 디스플레이된다. 실시 예에 따라 메모리 장치(401)의 동작을 제어할 수 있는 메모리 컨트롤러(402)는 SOC(10a 또는 10b)의 일부로서 구현될 수 있고 또한 SoC(10a 또는 10b)와 별개의 칩으로 구현될 수 있다.
도 23은 도 1 또는 도 11에 도시된 SoC을 포함하는 컴퓨터 시스템의 또 다른 실시 예를 나타낸다. 도 23을 참조하면, 메모리 시스템(500)은 SSD(solid state drive)와 같은 데이터 처리 장치로 구현될 수 있다.
메모리 시스템(500)은 다수의 메모리 장치들(501), 다수의 메모리 장치들(501) 각각의 데이터 처리 동작을 제어할 수 있는 메모리 컨트롤러(502), DRAM과 같은 휘발성 메모리 장치(503), 메모리 컨트롤러(502)와 호스트(504) 사이에서 주고받는 데이터를 휘발성 메모리 장치(503)에 저장하는 것을 제어하는 SoC(10a 또는 10b)를 포함할 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10: SoC(System on Chip)
20-1: 제1마스터
20-2: 제2마스터
20-3: 제3마스터
20-4: 제4마스터
30: 버스 서브시스템
31: 제1우선순위 제어기
32: 제2우선순위 제어기
33: 버스 스위치
34: 제1블록킹 모니터
35: 제2블록킹 모니터
40-1: 제1슬레이브
40-2: 제2슬레이브
40-3: 제3슬레이브
40-4: 제4슬레이브

Claims (21)

  1. 제1마스터;
    슬레이브(slave);
    상기 제1마스터의 제1명령과 상기 제1명령에 대한 상기 슬레이브의 제1응답을 전송하는 버스 스위치; 및
    상기 제1마스터와 상기 버스 스위치 사이에 접속되고, 상기 제1명령과 상기 제1응답으로부터 제1대역폭 및 제1레이턴시 중 적어도 하나를 측정하고 적어도 하나의 측정 결과에 따라 상기 제1명령의 제1우선값을 조정하는 제1우선순위 제어기를 포함하고,
    상기 제1명령은 유효를 지시하는 유효 신호이고, 상기 제1응답은 준비를 지시하는 준비 신호인 SoC(System on Chip).
  2. 제1항에 있어서,
    상기 버스 스위치를 통하여, 제2명령을 상기 슬레이브로 전송하고 상기 슬레이브로부터 상기 제2명령에 대한 제2응답을 수신하는 제2마스터; 및
    상기 제2마스터와 상기 버스 스위치 사이에 접속되고, 상기 제2명령과 상기 제2응답으로부터 제2대역폭 및 제2레이턴시 중 적어도 하나를 측정하고, 적어도 하나의 측정 결과에 따라 상기 제2명령의 제2우선값을 조정하는 제2우선순위 제어기를 더 포함하는 SoC.
  3. 제1항에 있어서,
    상기 제1우선순위 제어기는,
    상기 제1대역폭을 측정하는 대역폭 모니터; 및
    상기 대역폭 모니터로부터 측정된 제1대역폭을 대역폭 기준값과 비교하여 상기 제1우선값을 조정하는 우선값 생성기를 포함하는 SoC.
  4. 제1항에 있어서,
    상기 제1우선순위 제어기는,
    상기 제1레이턴시를 측정하는 레이턴시 모니터; 및
    상기 레이턴시 모니터로부터 측정된 제1레이턴시를 레이턴시 기준값과 비교하여 상기 제1우선값을 조정하는 우선값 생성기를 포함하는 SoC.
  5. 제3항에 있어서,
    상기 제1우선순위 제어기는 상기 측정된 제1대역폭이 상기 대역폭 기준값보다 높으면, 상기 제1우선값을 감소시키는 SoC.
  6. 제4항에 있어서,
    상기 제1우선순위 제어기는,
    상기 측정된 제1레이턴시가 상기 레이턴시 기준값보다 높으면 상기 제1우선값을 감소시키는 SoC.
  7. 제1항에 있어서,
    상기 제1우선순위 제어기는 설정 시간마다 상기 제1우선값을 디폴트 값으로 설정하는 리셋 주기 제어기를 더 포함하는 SoC.
  8. 제2항에 있어서,
    상기 버스 스위치는,
    상기 제1우선순위 제어기를 통하여 상기 제1마스터에 연결되는 제1슬레이브 인터페이스;
    상기 제2마스터에 연결되는 제2슬레이브 인터페이스; 및
    상기 슬레이브에 연결되는 마스터 인터페이스를 포함하고,
    상기 제1슬레이브 인터페이스와 상기 제2슬레이브 인터페이스 각각은 상기 마스터 인터페이스에 연결되고, 상기 마스터 인터페이스는 상기 제1우선값과 상기 제2우선값을 비교하고, 비교 결과에 따라 상기 제1명령과 상기 제2명령 중에서 어느 하나를 상기 슬레이브로 전송하는 SoC.
  9. 제2항에 있어서,
    상기 제2우선순위 제어기는,
    상기 제2대역폭을 측정하는 대역폭 모니터; 및
    상기 대역폭 모니터에 의해서 측정된 제2대역폭을 대역폭 기준값과 비교하여 상기 제2우선값을 조정하는 우선값 생성기를 포함하고,
    상기 제2우선순위 제어기는 상기 측정된 제2대역폭이 상기 대역폭 기준값보다 높으면, 상기 제2우선값을 감소시키는 SoC.
  10. 제2항에 있어서,
    상기 제2우선순위 제어기는,
    상기 제2레이턴시를 측정하는 레이턴시 모니터; 및
    상기 레이턴시 모니터에 의하여 측정된 제2레이턴시를 레이턴시 기준값과 비교하여 상기 제2우선값을 조정하는 우선값 생성기를 포함하고,
    상기 제2우선순위 제어기는 상기 측정된 제2레이턴시가 상기 레이턴시 기준값보다 높으면, 상기 제2우선값을 감소시키는 SoC.
  11. 마스터;
    슬레이브; 및
    상기 마스터의 명령과 상기 명령에 대한 상기 슬레이브의 응답을 전송하는 버스 서브시스템을 포함하며,
    상기 버스 서브시스템은,
    상기 명령과 상기 응답으로부터 대역폭을 측정하고, 측정 결과와 상기 슬레이브의 동작 상태값에 따라 상기 명령의 전송을 차단하고,
    상기 명령은 유효를 지시하는 유효 신호이고, 상기 응답은 준비를 지시하는 준비 신호인 SoC.
  12. 제11항에 있어서,
    상기 버스 서브시스템은,
    상기 명령의 전송을 차단하거나 해제하는 블록킹 제어기;
    상기 블록킹 제어기와 상기 슬레이브 사이에 연결되며, 상기 명령을 상기 슬레이브로 전송하고, 상기 응답을 상기 마스터로 전송하는 버스 스위치; 및
    상기 버스 스위치와 상기 슬레이브 사이에 연결되며, 상기 동작 상태값을 상기 블록킹 제어기로 전송하는 블록킹 모니터를 포함하는 SoC.
  13. 제12항에 있어서,
    상기 블록킹 제어기는,
    상기 대역폭을 측정하는 대역폭 모니터; 및
    측정된 대역폭이 대역폭 기준값보다 높으면 상기 명령의 전송을 차단하거나 상기 동작 상태값이 동작 상태 기준값보다 높으면 상기 명령의 전송을 차단하는 조합 회로를 포함하는 SoC.
  14. 제13항에 있어서,
    상기 명령의 전송이 차단된 후 상기 동작 상태값이 상기 동작 상태 기준값보다 작을때 상기 블록킹 제어기는 상기 차단된 명령을 전송하는 SoC.
  15. 제11항에 있어서,
    상기 동작 상태값은 아웃스탠딩 카운트(outstanding count)를 포함하고,
    상기 아웃스탠딩 카운트는 상기 명령이 수신될 때마다 증가하고, 상기 응답이 전송될 때마다 감소하는 SoC.
  16. 슬레이브; 및
    제1우선순위 제어기와 버스 스위치를 포함하는 제1채널을 통하여, 상기 슬레이브로 제1명령을 전송하고 상기 제1명령에 대한 상기 슬레이브의 제1응답을 수신하는 제1마스터를 포함하며
    상기 제1우선순위 제어기는,
    상기 제1명령과 상기 제1응답에 기초하여 상기 제1채널의 대역폭과 레이턴시 중에서 적어도 하나를 측정하고 적어도 하나의 측정결과에 따라 상기 제1명령의 제1우선값을 조정하고,
    상기 제1명령은 유효를 지시하는 유효 신호이고, 상기 제1응답은 준비를 지시하는 준비 신호인 SoC.
  17. 제16항에 있어서,
    상기 버스 스위치를 포함하는 제2채널을 통하여, 상기 슬레이브로 제2명령을 전송하고 상기 제2명령에 대한 상기 슬레이브의 제2응답을 수신하는 제2마스터를 더 포함하며,
    상기 제2채널은 제2우선순위 제어기를 더 포함하며,
    상기 제2우선순위 제어기는,
    상기 제2명령과 상기 제2응답에 기초하여 상기 제2채널의 대역폭과 레이턴시 중에서 적어도 하나를 측정하고 적어도 하나의 측정결과에 따라 상기 제2명령의 제2우선값을 조정하는 SoC.
  18. 제1우선순위 제어기와 버스 스위치를 통해서 수행되는 제1마스터와 슬레이브 간의 핸드세이킹(handshaking)의 결과에 따라 제1대역폭 및 제1레이턴시 중 적어도 하나를 측정하는 단계; 및
    상기 제1우선순위 제어기에 의하여 측정된 적어도 하나의 측정 결과에 따라 상기 제1마스터로부터 출력된 명령의 제1우선값을 조정하는 단계를 포함하는 SoC의 동작 방법.
  19. 제18항에 있어서,
    제2우선순위 제어기와 상기 버스 스위치를 통해서 수행되는 제2마스터와 상기 슬레이브 간의 핸드세이킹(handshaking)의 결과에 따라 제2대역폭 및 제2레이턴시 중 적어도 하나를 측정하는 단계; 및
    상기 제2우선순위 제어기에 의하여 측정된 적어도 하나의 측정 결과에 따라 상기 제2마스터로부터 출력된 명령의 제2우선값을 조정하는 단계를 더 포함하는 SoC의 동작 방법.
  20. 제18항에 있어서,
    상기 적어도 하나의 측정 결과가 적어도 하나의 기준값보다 높은 경우 상기 제1우선값을 감소시키는 단계를 더 포함하는 SoC의 동작 방법.
  21. 삭제
KR1020110026443A 2011-03-24 2011-03-24 데이터 트래픽을 개선한 SoC 및 이의 동작 방법 KR101855399B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020110026443A KR101855399B1 (ko) 2011-03-24 2011-03-24 데이터 트래픽을 개선한 SoC 및 이의 동작 방법
US13/427,096 US8943249B2 (en) 2011-03-24 2012-03-22 System on chip improving data traffic and operating method thereof
CN201210082238.4A CN102693202B (zh) 2011-03-24 2012-03-26 改善数据流量的片上***及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110026443A KR101855399B1 (ko) 2011-03-24 2011-03-24 데이터 트래픽을 개선한 SoC 및 이의 동작 방법

Publications (2)

Publication Number Publication Date
KR20120109051A KR20120109051A (ko) 2012-10-08
KR101855399B1 true KR101855399B1 (ko) 2018-05-09

Family

ID=46858664

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110026443A KR101855399B1 (ko) 2011-03-24 2011-03-24 데이터 트래픽을 개선한 SoC 및 이의 동작 방법

Country Status (3)

Country Link
US (1) US8943249B2 (ko)
KR (1) KR101855399B1 (ko)
CN (1) CN102693202B (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101842245B1 (ko) 2011-07-25 2018-03-26 삼성전자주식회사 시스템 온 칩 버스 장치 및 그에 따른 루트 클럭 게이팅 방법
US9449359B2 (en) * 2012-09-13 2016-09-20 Ati Technologies Ulc Rendering settings in a multi-graphics processing unit system
ITMI20121800A1 (it) 2012-10-24 2014-04-25 St Microelectronics Srl Dispositivo e relativo metodo per la scrittura/lettura di un registro di memoria condiviso da una pluralità di periferiche.
US9075952B2 (en) * 2013-01-17 2015-07-07 Intel Corporation Controlling bandwidth allocations in a system on a chip (SoC)
JP6175794B2 (ja) * 2013-02-19 2017-08-09 株式会社リコー データ処理装置およびデータ処理方法
FR3003055B1 (fr) 2013-03-06 2015-04-03 Sagem Defense Securite Procede de controle de bande passante pour systeme sur puce
US20140280230A1 (en) * 2013-03-13 2014-09-18 Qualcomm Incorporated Hierarchical orchestration of data providers for the retrieval of point of interest metadata
KR20150106224A (ko) * 2014-03-11 2015-09-21 삼성전자주식회사 시스템-온-칩 및 그의 부하 불균형 검출 방법
US10523585B2 (en) * 2014-12-19 2019-12-31 Amazon Technologies, Inc. System on a chip comprising multiple compute sub-systems
US10353747B2 (en) 2015-07-13 2019-07-16 Futurewei Technologies, Inc. Shared memory controller and method of using same
KR102510900B1 (ko) 2016-02-04 2023-03-15 삼성전자주식회사 반도체 장치 및 반도체 장치의 동작 방법
KR102440948B1 (ko) 2016-02-11 2022-09-05 삼성전자주식회사 반도체 장치 및 반도체 장치의 동작 방법
US10223312B2 (en) * 2016-10-18 2019-03-05 Analog Devices, Inc. Quality of service ordinal modification
KR101910619B1 (ko) * 2016-12-02 2018-10-25 (주)로뎀기술 시스템 칩 설계를 위한 효율적인 온칩버스 구조
TWI647570B (zh) * 2017-06-16 2019-01-11 緯穎科技服務股份有限公司 資料傳輸裝置及其方法
US10481944B2 (en) * 2017-08-09 2019-11-19 Xilinx, Inc. Adaptive quality of service control circuit
CN108199864A (zh) * 2017-12-06 2018-06-22 中国航空工业集团公司西安航空计算技术研究所 一种基于PCIe事务层数据传输的带宽分配方法
KR102086027B1 (ko) 2017-12-08 2020-03-06 현대오트론 주식회사 우선순위 기반 차량용 멀티 마스터 모듈의 제어 장치 및 그 방법
US11113223B1 (en) * 2018-04-03 2021-09-07 Xilinx, Inc. Dual mode interconnect
US11196678B2 (en) * 2018-10-25 2021-12-07 Tesla, Inc. QOS manager for system on a chip communications
US11144235B1 (en) 2019-08-07 2021-10-12 Xlnx, Inc. System and method for evaluating memory system performance
CN113377277A (zh) * 2020-03-09 2021-09-10 伊姆西Ip控股有限责任公司 管理存储器的方法、设备和计算机程序产品
CN113515477B (zh) * 2020-04-09 2024-05-03 珠海全志科技股份有限公司 一种总线网络中优先级动态调整方法、装置和存储介质
CN112306924A (zh) * 2020-11-26 2021-02-02 山东云海国创云计算装备产业创新中心有限公司 一种数据交互方法、装置、***及可读存储介质
CN112367236B (zh) * 2021-01-12 2021-04-06 南京芯驰半导体科技有限公司 Lin总线的数据调度方法及***
CN112860622B (zh) * 2021-02-08 2022-11-04 山东云海国创云计算装备产业创新中心有限公司 一种处理***以及一种片上***
CN114153773B (zh) * 2021-10-29 2024-05-07 山东云海国创云计算装备产业创新中心有限公司 一种基于axi总线传输数据的方法、设备、***及可读介质
US12039169B2 (en) * 2022-04-07 2024-07-16 Apple Inc. Bandwidth-aware fabric traffic shaping

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2473505A (en) * 2009-09-15 2011-03-16 Advanced Risc Mach Ltd A data processing apparatus and method for setting dynamic priority levels for transactions according to latency feedback

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6961341B1 (en) 1996-07-02 2005-11-01 Microsoft Corporation Adaptive bandwidth throttling for network services
US6839767B1 (en) 2000-03-02 2005-01-04 Nortel Networks Limited Admission control for aggregate data flows based on a threshold adjusted according to the frequency of traffic congestion notification
JP2003186824A (ja) * 2001-12-18 2003-07-04 Canon Inc バス使用権優先度調整装置およびシステム
US6912574B2 (en) 2002-05-29 2005-06-28 Dhc, Llc System and process for allocating flow capacity in a network
US20050071471A1 (en) 2003-09-30 2005-03-31 International Business Machines Corporation Automatic bandwidth control for file servers with a variable priority client base
GB2447688B (en) * 2007-03-22 2011-05-18 Advanced Risc Mach Ltd A data processing apparatus and method for arbitrating between messages routed over a communication channel
FR2961048B1 (fr) * 2010-06-03 2013-04-26 Arteris Inc Reseau sur puce avec caracteristiques de qualite-de-service
US8307138B2 (en) * 2010-07-12 2012-11-06 Arm Limited Apparatus and method for controlling issuing of transaction requests
JP5617429B2 (ja) * 2010-08-19 2014-11-05 ソニー株式会社 バスシステムおよびバスシステムと接続機器とを接続するブリッジ回路
KR101841173B1 (ko) * 2010-12-17 2018-03-23 삼성전자주식회사 리오더 버퍼를 이용한 메모리 인터리빙 장치 및 그 메모리 인터리빙 방법
US8649286B2 (en) * 2011-01-18 2014-02-11 Apple Inc. Quality of service (QoS)-related fabric control
KR101949382B1 (ko) * 2012-04-04 2019-02-18 삼성전자주식회사 서비스 품질의 향상을 위한 시스템 온 칩 및 시스템 온 칩의 제어 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2473505A (en) * 2009-09-15 2011-03-16 Advanced Risc Mach Ltd A data processing apparatus and method for setting dynamic priority levels for transactions according to latency feedback

Also Published As

Publication number Publication date
CN102693202A (zh) 2012-09-26
CN102693202B (zh) 2016-08-10
US20120246368A1 (en) 2012-09-27
US8943249B2 (en) 2015-01-27
KR20120109051A (ko) 2012-10-08

Similar Documents

Publication Publication Date Title
KR101855399B1 (ko) 데이터 트래픽을 개선한 SoC 및 이의 동작 방법
US8359420B2 (en) External memory based FIFO apparatus
EP1820309B1 (en) Streaming memory controller
US8312299B2 (en) Method and apparatus for dynamic power management control using serial bus management protocols
EP3158698B1 (en) Systems and methods for providing power savings and interference mitigation on physical transmission media
KR101312749B1 (ko) 서비스 품질(QoS) 관련 패브릭 제어
US7213084B2 (en) System and method for allocating memory allocation bandwidth by assigning fixed priority of access to DMA machines and programmable priority to processing unit
EP2815330A1 (en) Controlling bandwidth allocations in a system on a chip (soc)
CN103970710A (zh) 自适应服务控制器、片上***和控制其的方法
US8713248B2 (en) Memory device and method for dynamic random access memory having serial interface and integral instruction buffer
KR20180092972A (ko) 하드웨어 플로우-제어를 갖는 강화된 직렬 주변장치 인터페이스
US8493863B2 (en) Hierarchical fabric control circuits
KR20150106224A (ko) 시스템-온-칩 및 그의 부하 불균형 검출 방법
US9563586B2 (en) Shims for processor interface
US9928890B2 (en) System and method for calibrating memory using credit-based segmentation control
CN114341829A (zh) 经由本地集线器设备对多个通信芯片的协调操作
US20220113967A1 (en) Accelerator fabric for discrete graphics
US20180165240A1 (en) Interconnect network supporting multiple consistency mechanisms, multiple protocols, and multiple switching mechanisms
JP2017535119A (ja) 干渉軽減のための優先順位調停
US7590788B2 (en) Controlling transmission on an asynchronous bus
WO2016130256A1 (en) Bifurcated memory management for memory elements
JP2007011884A (ja) データ転送装置
JP2011164903A (ja) データ通信制御装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal