KR20150106224A - 시스템-온-칩 및 그의 부하 불균형 검출 방법 - Google Patents
시스템-온-칩 및 그의 부하 불균형 검출 방법 Download PDFInfo
- Publication number
- KR20150106224A KR20150106224A KR1020140028463A KR20140028463A KR20150106224A KR 20150106224 A KR20150106224 A KR 20150106224A KR 1020140028463 A KR1020140028463 A KR 1020140028463A KR 20140028463 A KR20140028463 A KR 20140028463A KR 20150106224 A KR20150106224 A KR 20150106224A
- Authority
- KR
- South Korea
- Prior art keywords
- load
- slaves
- master
- slave
- interconnect
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3409—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
- G06F11/3433—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/88—Monitoring involving counting
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Power Engineering (AREA)
- Microelectronics & Electronic Packaging (AREA)
Abstract
본 발명의 하나의 실시형태에 따른 시스템 온 칩(System on Chip)는 적어도 하나의 마스터(master) 및 복수의 슬레이브(slave)들, 상기 적어도 하나의 마스터 및 상기 복수의 슬레이브들 각각을 연결하는 인터커넥트(interconnect), 상기 복수의 슬레이브들 각각과 인터커넥트를 채널을 이용하여 연결하며, 상기 복수의 슬레이브 각각의 부하를 측정하는 측정 블록 및 상기 측정된 부하 정보를 이용하여 상기 채널들 간의 부하 불균형을 측정하는 중앙 컨트롤러(Central Controller)를 포함한다. 따라서, 상기 SoC는 복수의 메모리 인스턴스(memory instance)들 각각의 부하를 측정하고, 측정된 부하 정보를 이용하여 시스템 버스를 재설계하거나 시스템 온 칩의 부하를 감소시킬 수 있다.
Description
본 발명은 시스템 온 칩(system on Chip; SoC)에 관한 것으로, 특히 다중 계층(multi-layer) 버스를 지원하는 시스템 온 칩에 관한 것이다.
시스템 온 칩(System on Chip, 이하 SoC라고 칭함)은 여러 가지 기능을 갖는 복잡한 시스템을 단일 반도체 칩에 집적하는 기술이다. 컴퓨터, 통신, 방송 등이 통합되는 컨버전스(convergence) 경향에 따라 주문형 반도체(Application Specific IC, ASIC) 및 특정용도 표준제품(Application Specific Standard Product, ASSP)에 대한 수요가 SoC로 옮겨가고 있다. 또한, IT(Information Technology) 기기의 소형화 및 경량화는 SoC 관련 산업을 촉진하고 있다.
SoC는 지능 소자 블록(Intellectual Property block, 이하 IP 블록이라고 칭함)들을 포함한다. IP 블록들은 SoC 내의 특정 기능을 각각 수행한다. 일반적으로, 이러한 IP 블록들은 버스를 통해 연결된다. SoC 내의 IP 블록들의 연결 및 관리를 위한 예시적인 표준 버스 규격으로서 ARM(Advanced RISC Machine)사의 AMBA(Advanced Microcontroller Bus Architecture)가 적용된다. AMBA의 버스 타입에는 AHB(Advanced High-Performance Bus), APB(Advanced Peripheral Bus), AXI(Advanced eXtensible Interface) 등이 있다.
본 발명의 목적은 부하 불균형을 검출할 수 있는 시스템 온 칩을 제공하는데 있다.
본 발명의 다른 목적은 상기 시스템 온 칩의 부하 불균형 검출 방법을 제공하는데 있다.
상기 목적을 달성하기 위하여 본 발명의 하나의 실시형태에 따른 SoC(System on Chip)는 적어도 하나의 마스터(master) 및 복수의 슬레이브(slave)들, 상기 적어도 하나의 마스터 및 상기 복수의 슬레이브들 각각을 연결하는 인터커넥트(interconnect), 상기 복수의 슬레이브들 각각과 상기 인터커넥트를 복수의 채널들을 이용하여 연결하며, 상기 복수의 슬레이브들 각각에 대한 부하를 측정하는 측정 블록 및 상기 측정된 부하 정보를 이용하여 상기 복수의 채널들 간의 부하 불균형을 측정하는 중앙 컨트롤러(Central Controller)를 포함한다.
실시 예로서, 상기 중앙 컨트롤러는 상기 복수의 슬레이브들 각각에 대한 대역폭(bandwidth), 레이턴시(latency) 및 아웃스탠딩 카운트(outstanding count) 각각에 가중치를 곱하고, 상기 곱한 결과를 합산하여 상기 복수의 슬레이브들 각각에 대한 부하를 측정한다.
실시 예로서, 상기 가중치는 상기 대역폭, 상기 레이턴시 및 상기 아웃스탠딩 카운트 각각에 대한 중요도를 포함한다.
실시 예로서, 상기 중앙 컨트롤러는 상기 복수의 슬레이브들 각각의 부하에 대한 최소값, 최대값, 평균값 및 분산 중 어느 하나를 계산한다.
실시 예로서, 상기 중앙 컨트롤러는 상기 복수의 슬레이브들 각각의 부하에 대한 상기 최소값, 상기 최대값, 상기 평균값 및 상기 분산 중 어느 하나에 기초하여 상기 채널들 간의 부하 불균형을 판단한다.
실시 예로서, 상기 마스터는 애플리케이션 프로세서(Application Processor)를 포함하며, 상기 애플리케이션 프로세서는 상기 복수의 슬레이브들 각각의 부하에 대한 상기 최소값, 상기 최대값, 상기 평균값 및 상기 분산 중 어느 하나에 기초하여 DVFS(Dynamic Voltage & Frequency Scaling)를 동작시킨다.
실시 예로서, 상기 부하는 대역폭, 레이턴시(latency) 및 아웃스탠딩 카운트(outstanding count)를 이용하여 측정된다.
실시 예로서, 상기 부하 불균형 정보에 기초하여 상기 인터커넥트는 재설계(redesign)된다.
실시 예로서, 상기 복수의 슬레이브들 각각은 메모리 인스턴스(memory instance)를 포함한다.
실시 예로서, 상기 적어도 하나의 마스터는 상기 복수의 슬레이브들 중 어느 하나로 리퀘스트(request)를 전달하고, 상기 리퀘스트를 수신한 슬레이브는 상기 리퀘스트에 대응하는 리스폰스(response)를 상기 마스터로 전송한다.
본 발명의 다른 하나의 실시형태에 따른 SoC의 부하 불균형 검출 방법은 적어도 하나의 마스터 및 복수의 슬레이브들 그리고 이들을 각각 연결하는 인터커넥트를 포함하는 SoC의 부하 불균형 검출 방법에 있어서, 상기 복수의 슬레이브들 각각과 상기 인터커넥트를 복수의 채널들을 이용하여 상기 복수의 슬레이브들 각각에 대한 부하를 측정하는 단계 및 상기 측정된 부하 정보를 이용하여 상기 복수의 채널들 간의 부하 불균형을 측정하는 단계를 포함한다.
실시 예로서, 상기 복수의 슬레이브들 각각과 상기 인터커넥트를 복수의 채널들을 이용하여 상기 복수의 슬레이브들 각각에 대한 부하를 측정하는 단계는 상기 복수의 슬레이브들 각각에 대하여 대역폭, 레이턴시 및 아웃스탠딩 카운트 각각에 가중치를 곱하고, 상기 곱한 결과를 합산하는 단계 및 상기 합산된 결과에 기초하여 상기 복수의 슬레이브들 각각에 대한 부하를 측정하는 단계를 더 포함한다.
실시 예로서, 상기 가중치는 상기 대역폭, 상기 레이턴시 및 상기 아웃스탠딩 카운트 각각에 대한 중요도를 포함한다.
실시 예로서, 상기 합산된 결과에 기초하여 상기 복수의 슬레이브들 각각에 대한 부하를 측정하는 단계는 상기 복수의 슬레이브들 각각의 부하에 대한 최소값, 최대값, 평균값 및 분산을 구하는 단계를 포함한다.
실시 예로서, 상기 마스터는 애플리케이션 프로세서를 포함하며, 상기 애플리케이션 프로세서에 의하여 상기 복수의 슬레이브들 각각의 부하에 대한 상기 최소값, 상기 최대값, 상기 평균값 및 상기 분산 중 어느 하나에 기초하여 DVFS를 동작시키는 단계를 더 포함한다.
본 발명의 실시 예에 따른 SoC는 복수의 메모리 인스턴스(memory instance)들 각각의 부하를 측정하고, 측정된 부하 정보를 이용하여 시스템 버스를 재설계하거나 시스템 온 칩의 부하를 감소시킬 수 있다.
도 1은 본 발명의 실시 예에 따른 SoC(System-On-Chip)을 도시한다.
도 2a 내지 도 2c는 슬레이브 인터페이스를 도시한 블록도이다.
도 3a 내지 도 3d는 마스터 인터페이스를 도시한 블록도이다.
도 4는 아웃스탠딩 카운트를 설명하기 위한 개념도이다.
도 5는 도 1에 도시된 SoC의 내부를 간략히 도시한 블록도이다.
도 6은 도 5에 도시된 SoC의 동작을 설명하기 위한 순서도이다.
도 7은 도 1에 도시된 SoC를 포함하는 컴퓨터 시스템(210)의 일 실시 예를 나타낸다.
도 8은 도 1에 도시된 SoC를 포함하는 컴퓨터 시스템(220)의 다른 실시 예를 나타낸다.
도 9는 도 1에 도시된 SoC를 포함하는 컴퓨터 시스템(230)의 또 다른 실시 예를 나타낸다.
도 2a 내지 도 2c는 슬레이브 인터페이스를 도시한 블록도이다.
도 3a 내지 도 3d는 마스터 인터페이스를 도시한 블록도이다.
도 4는 아웃스탠딩 카운트를 설명하기 위한 개념도이다.
도 5는 도 1에 도시된 SoC의 내부를 간략히 도시한 블록도이다.
도 6은 도 5에 도시된 SoC의 동작을 설명하기 위한 순서도이다.
도 7은 도 1에 도시된 SoC를 포함하는 컴퓨터 시스템(210)의 일 실시 예를 나타낸다.
도 8은 도 1에 도시된 SoC를 포함하는 컴퓨터 시스템(220)의 다른 실시 예를 나타낸다.
도 9는 도 1에 도시된 SoC를 포함하는 컴퓨터 시스템(230)의 또 다른 실시 예를 나타낸다.
본문에 개시되어 있는 본 발명의 실시 예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시 예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시 예들에 한정되는 것으로 해석되어서는 안 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 개시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
한편, 어떤 실시 예가 달리 구현 가능한 경우에 특정 블록 내에 명기된 기능 또는 동작이 순서도에 명기된 순서와 다르게 일어날 수도 있다. 예를 들어, 연속하는 두 블록이 실제로는 실질적으로 동시에 수행될 수도 있고, 관련된 기능 또는 동작에 따라서는 상기 블록들이 거꾸로 수행될 수도 있다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예들을 설명한다.
도 1은 본 발명의 실시 예에 따른 SoC(System-On-Chip)을 도시한다.
도 1을 참조하면, 본 발명의 실시 예에 따른 SoC(System-On-Chip; 100)는 제1 내지 제3 마스터(11-13), 제1 내지 제4 슬레이브(51-54) 및 이들 각각을 채널을 통하여 연결해 주는 인터커넥트(interconnect; 30)을 포함한다. SoC(100)는 단일의 칩으로 제조되어 하나의 패키지(package)로 구현될 수 있다. 본 명세서에서는 설명의 편의를 위하여 3개의 마스터와 4개의 슬레이브를 포함하나 이에 한정되는 것은 아니다.
또한, SoC(100)는 제1 내지 제3 마스터(11-13) 각각과 인터커넥트(30) 사이에 채널을 통하여 연결되며, 제1 내지 제3 마스터(11-13) 각각의 채널의 효율을 향상시키는 채널 효율 향상 블록(channel efficiency enhancement block; 20)과 제1 내지 제4 슬레이브(51-54) 각각의 부하를 측정하기 위한 측정 블록(estimation block; 40)을 더 포함한다.
채널 효율 향상 블록(20)는 제1 마스터(11)와 인터커넥트(30) 사이에 연결되는 제1 채널 효율 향상기(channel efficiency enhancer; 21), 제2 마스터(12)와 인터커넥트(30) 사이에 연결되는 제2 채널 효율 향상기(22) 및 제3 마스터(13)와 인터커넥트(30) 사이에 연결되는 제3 채널 효율 향상기(23)를 포함한다.
측정 블록(40)은 제1 슬레이브(51)의 부하를 측정하기 위한 제1 측정 컴포넌트(estimation component; 41), 제2 슬레이브(52)의 부하를 측정하기 위한 제2 측정 컴포넌트(42), 제3 슬레이브(53)의 부하를 측정하기 위한 제3 측정 컴포넌트(43) 및 제4 슬레이브(54)의 부하를 측정하기 위한 제4 측정 컴포넌트(44)를 포함한다.
실시 예로서, 상기 부하는 대역폭, 레이턴시(latency) 및 아웃스탠딩 카운트(outstanding count)를 이용하여 측정될 수 있다.
또한, SoC(100)는 측정 블록(40)을 제어하는 중앙 컨트롤러(60)를 더 포함할 수 있다. 중앙 컨트롤러(60)는 제1 내지 제4 측정 컴포넌트(41-44) 각각으로부터 제1 내지 제4 채널(CH1-CH4)에 대한 부하 정보를 수신한다. 중앙 컨트롤러(60)는 상기 부하 정보를 이용하여 제1 내지 제4 채널(CH1-CH4)에 대한 부하 불균형 정보를 생성할 수 있다. 시스템 설계자(system designer)는 상기 부하 불균형 정보를 이용하여 시스템 버스를 재설계할 수 있다.
또한, SoC(100)가 모바일 장치에 적용되는 경우, 제1 내지 제3 마스터(11-13) 중 어느 하나는 애플리케이션 프로세서(application processor)로 구현될 수 있다. 애플리케이션 프로세서는 상기 부하 불균형 정보에 기초하여 DVFS(Dynamic Voltage & Frequency Scaling) 기법을 통해 SoC(100)의 동작 전압, 동작 클록 주파수를 조절할 수 있다.
인터커넥트(30)는 제1 내지 제4 슬레이브(51-54) 중 어느 하나를 억세스하기 위한 제1 내지 제3 슬레이브 인터페이스(slave interface; SI1-SI3) 및 제1 내지 제3 마스터(11-13) 중 어느 하나와 연결되기 위한 제1 내지 제4 마스터 인터페이스(master interface; MI1-MI4)를 포함한다.
제1 슬레이브 인터페이스(SI1)는 제1 마스터(11)를 제1 내지 제4 슬레이브(51-54) 중 어느 하나와 연결한다. 제2 슬레이브 인터페이스(SI2)는 제2 마스터(12)를 제1 내지 제4 슬레이브(51-54) 중 어느 하나와 연결한다. 제3 슬레이브 인터페이스(SI3)는 제3 마스터(13)를 제1 내지 제4 슬레이브(51-54) 중 어느 하나와 연결한다. 제1 내지 제3 슬레이브 인터페이스(SI1-SI3)는 도 2a 내지 도 2c를 통하여 설명된다.
제1 마스터 인터페이스(MI1)는 제1 슬레이브(51)를 제1 내지 제3 마스터(11-13) 중 어느 하나와 연결한다. 제2 마스터 인터페이스(MI2)는 제2 슬레이브(52)를 제1 내지 제3 마스터(11-13) 중 어느 하나와 연결한다. 제3 마스터 인터페이스(MI3)는 제3 슬레이브(53)를 제1 내지 제3 마스터(11-13) 중 어느 하나와 연결한다. 그리고 제4 마스터 인터페이스(MI4)는 제4 슬레이브(54)를 제1 내지 제3 마스터(11-13) 중 어느 하나와 연결한다. 제1 내지 제4 마스터 인터페이스(MI1-MI4)는 도 3a 내지 도 3d를 통하여 설명된다.
제1 내지 제3 마스터(11-13) 각각은 마이크로프로세서(microprocessor), 또는 그래픽 프로세서(graphic processor) 등으로 구현될 수 있고, SoC(System on Chip) 설계를 위한 IP (Intellectual Property)로 구현될 수 있다.
제1 마스터(11)는 제1 채널 효율 향상기(21)를 바이패스(bypass)하여 인터커넥트(30)에 연결될 수 있다. 제1 마스터(11)는 인터커넥트(30)를 통하여 제1 슬레이브(51), 제2 슬레이브(52), 제3 슬레이브(53), 및 제4 슬레이브(54) 중에서 어느 하나를 액세스(access)할 수 있다.
예를 들면, 제1 마스터(11)는 제1 슬레이브(51)로 리퀘스트(request)를 전송할 수 있다. 제1 슬레이브(51)가 인터커넥트(30)를 통해서 제1 마스터(11)로부터 출력된 리퀘스트을 수신하면, 제1 슬레이브(51)는 상기 명령에 대응하는 리스폰스(response)을 인터커넥트(30)를 통해서 제1 마스터(11)로 전송할 수 있다.
인터커넥트(30)에서 특정 슬레이브(예를 들면, 메모리 인스턴스)가 어느 정도의 데이터를 처리하고 있는지 알기 위한 지표로는 레이턴시(latency), 대역폭(bandwidth) 및 아웃스탠딩 카운트(outstanding count)가 있다.
제1 측정 컴포넌트(EC1)는 제1 마스터(11)로부터 출력된 리퀘스트와 제1 슬레이브(51)로부터 전송된 리스폰스에 기초하여 상기 리퀘스트에 대응하는 대역폭(bandwidth), 레이턴시(latency), 아웃스탠딩 카운트를 측정할 수 있다.
예를 들면, 제1 마스터(11)는 제1 마스터(11)로부터 출력된 리퀘스트를 인터커넥트(30)를 통하여 제1 슬레이브(51), 제2 슬레이브(52), 제3 슬레이브(53), 및 제4 슬레이브(54) 중에서 어느 하나로 전송할 수 있다. 여기서, 상기 리퀘스트가 전송되는 신호 경로를 채널(channel)이라고 한다.
대역폭이란 단위 시간 동안 전송된 데이터 량을 의미한다. 상기 대역폭의 단위로는 bps(bit per second)가 사용된다. 즉, 대역폭이란 1초 동안 전송된 데이터의 비트(bit) 수를 의미한다. 레이턴시란 마스터가 슬레이브로 명령을 출력한 시간(또는 시점)부터 상기 슬레이브가 상기 마스터의 상기 명령에 응답한 시간(또는 시점)까지를 의미한다. 아웃스탠딩 카운트는 이전 작업이 끝나기 전에 새롭게 요청된 리퀘스트의 수를 의미한다. 아웃스탠딩 카운트를 측정하는 방법은 도 4를 참조하여 상세히 설명된다.
인터커넥트(30)는 제1 내지 제3 마스터(11-13) 각각과 제1 내지 제4 슬레이브(51-54) 각각을 동시에 액세스(access)하도록 제어할 수 있다. 구체적으로, 인터커넥트(30)은 ARMTM의 AMBA(Advanced Microcontroller Bus Architecture)3 또는 AMBA4의 AXI(Advanced eXtensible Interface) 프로토콜(Protocol; 이하 AXI 프로토콜이라 한다.)로 구현될 수 있다.
제1 슬레이브(51), 제2 슬레이브(52), 제3 슬레이브(53), 및 제4슬레이브 (40-4) 각각은 메모리 컨트롤러(memory controller), 디스플레이(display) 장치, 또는 이미지 센서(image sensor) 등으로 구현될 수 있고, SoC(System on Chip) 설계를 위한 IP(Intellectual Property)로 구현될 수 있다.
SoC(100)는 집적 회로(integrate circuit)로 구현될 수 있다. 또한, SoC(100)는 이동 전화기(mobile phone), 스마트폰(smart phone), 태블릿 PC(tablet personal computer), 또는 PDA(personal digital assistant)와 같은 이동 통신 장치에 내장(embedded)될 수 있다. 실시 예에 따라 SoC(100)는 IT 장치(information technology device) 또는 휴대용 전자 장치(portable electronic device)에 내장될 수 있다.
상술한 세가지 지표는 SoC(100)의 여러 상황들에 따라 다른 값을 가질 수 있다. 이를 이용하여 SoC(100)는 시스템 상태에 따라 세가지 지표를 서로 다른 용도로 사용할 수 있다. 예를 들면, 복수의 슬레이브들 각각에 대한 부하는 세 가지 지표들 각각에 계수(즉, 가중치)를 곱하여 합산하는 방법을 통하여 계산될 수 있다.
시스템 설계자는 상기 부하 정보를 이용하여 인터커넥트(30)의 부하 불균형을 체크할 수 있다. 상기 부하 정보는 과거의 기록이 아닌 실시간 정보이므로, 시스템 설계자는 실시간으로 인터커넥트(30)의 부하 불균형을 체크할 수 있다.
도 2a 내지 도 2c는 슬레이브 인터페이스를 도시한 블록도이다.
도 1 및 도 2a를 참조하면, 제1 마스터(11)는 제1 채널 효율 향상기(21)를 통하여 제1 슬레이브 인터페이스(SI1)로 리퀘스트(request)를 전달한다. 제1 슬레이브 인터페이스(SI1)는 제1 내지 제4 마스터 인터페이스(MI1-MI4) 중 어느 하나로 상기 리퀘스트를 전달한다. 실시 예로서, 제1 슬레이브 인터페이스(SI1)는 디코더(decoder)로 구현될 수 있다.
도 1 및 도 2b를 참조하면, 제2 마스터(11)는 제2 채널 효율 향상기(22)를 통하여 제2 슬레이브 인터페이스(SI2)로 리퀘스트를 전달한다. 제2 슬레이브 인터페이스(SI2)는 제1 내지 제4 마스터 인터페이스(MI1-MI4) 중 어느 하나로 상기 리퀘스트를 전달한다. 실시 예로서, 제2 슬레이브 인터페이스(SI2)는 디코더로 구현될 수 있다.
도 1 및 도 2c를 참조하면, 제3 마스터(13)는 제3 채널 효율 향상기(23)를 통하여 제3 슬레이브 인터페이스(SI3)로 리퀘스트를 전달한다. 제3 슬레이브 인터페이스(SI3)는 제1 내지 제4 마스터 인터페이스(MI1-MI4) 중 어느 하나로 상기 리퀘스트를 전달한다. 실시 예로서, 제3 슬레이브 인터페이스(SI3)는 디코더로 구현될 수 있다.
도 3a 내지 도 3d는 마스터 인터페이스를 도시한 블록도이다.
도 1 및 도 3a를 참조하면, 제1 마스터 인터페이스(MI1)는 제1 내지 제3 슬레이브 인터페이스(SI1-SI3) 중 어느 하나를 제1 측정 컴포넌트(41)로 연결한다. 실시 예로서, 제1 마스터 인터페이스(MI1)는 아비터(arbiter)로 구현될 수 있다.
도 1 및 도 3b를 참조하면, 제2 마스터 인터페이스(MI2)는 제1 내지 제3 슬레이브 인터페이스(SI1-SI3) 중 어느 하나를 제2 측정 컴포넌트(42)로 연결한다. 실시 예로서, 제2 마스터 인터페이스(MI2)는 아비터로 구현될 수 있다.
도 1 및 도 3c를 참조하면, 제3 마스터 인터페이스(MI3)는 제1 내지 제3 슬레이브 인터페이스(SI1-SI3) 중 어느 하나를 제3 측정 컴포넌트(43)로 연결한다. 실시 예로서, 제3 마스터 인터페이스(MI3)는 아비터로 구현될 수 있다.
도 1 및 도 3d를 참조하면, 제4 마스터 인터페이스(MI4)는 제1 내지 제3 슬레이브 인터페이스(SI1-SI3) 중 어느 하나를 제4 측정 컴포넌트(44)로 연결한다. 실시 예로서, 제4 마스터 인터페이스(MI4)는 아비터로 구현될 수 있다.
도 4는 아웃스탠딩 카운트를 설명하기 위한 개념도이다.
도 1 및 도 4를 참조하면, 제1 그래프(G1)는 시간의 증가에 따른 제1 마스터(11)의 리퀘스트(request)를 도시하고, 제2 그래프(G2)는 시간의 증가에 따른 제1 슬레이브(51)의 리스폰스(response)를 도시한다.
t1 시간에, 제1 마스터(11)는 제1 리퀘스트(req1)를 인터커넥트(30)를 통하여 제1 슬레이브(51)로 요청한다. 이 경우, 아웃스탠딩 카운트는 1이다.
t2 시간에, 제1 마스터(11)는 제2 리퀘스트(req2)를 인터커넥트(30)를 통하여 제1 슬레이브(51)로 요청한다. 이 경우, 아웃스탠딩 카운트는 2이다.
t3 시간에, 제1 마스터(11)는 제3 리퀘스트(req3)를 인터커넥트(30)를 통하여 제1 슬레이브(51)로 요청한다. 이 경우, 아웃스탠딩 카운트는 3이다.
t4 시간에, 제1 마스터(11)는 제4 리퀘스트(req4)를 인터커넥트(30)를 통하여 제1 슬레이브(51)로 요청한다. 이 경우, 아웃스탠딩 카운트는 4이다.
t5 시간에, 제1 슬레이브(31)는 제1 리퀘스트(req1)에 대한 제1 리스폰스(res1)를 시스템 인터커넥트(20)를 통하여 제1 마스터(11)로 전송한다. 이 경우, 아웃스탠딩 카운트는 3이다.
t6 시간에, 제1 슬레이브(31)는 제2 리퀘스트(req2)에 대한 제2 리스폰스(res2)를 시스템 인터커넥트(20)를 통하여 제1 마스터(11)로 전송한다. 이 경우, 아웃스탠딩 카운트는 2이다. 즉, 제1 마스터(11)가 리퀘스트를 제1 슬레이브(51)로 전송할 때마다 아웃스탠딩 카운트는 1씩 증가한다. 제1 슬레이브(51)가 상기 리퀘스트에 대한 리스폰스를 제1 마스터(11)로 전송할 때마다 아웃스탠딩 카운트는 1씩 감소한다.
도 5는 도 1에 도시된 SoC의 내부를 간략히 도시한 블록도이다.
도 1 및 도 5를 참조하면, SoC(100)의 경우 대용량의 멀티미디어 데이터를 얼마나 빠르게 처리할 수 있는지에 따라 제품의 성능이 평가된다. 데이터의처리속도는 SoC(100) 내부의 IP(Intellectual Property)(즉, 제1 내지 제3 마스터(11-13))에서 메모리(즉, 제1 내지 제4 슬레이브(51-54))에 대해발생하는 트래픽(traffic)을 인터커넥트(30)가 얼마나 빨리 처리할 수 있는지에 따라 결정된다.
인터커넥트(30)는 제1 내지 제3 마스터(11-13)중 어느 하나에서 발생하는 대량의 트래픽을 다수의 메모리 인스턴스(memory instance)로 분산시켜, IP의 대역폭 요구량을 맞추고 있다. 이렇게 다수의 메모리 인스턴스를사용할 경우 특정 메모리 인스턴스에만 트래픽이 몰릴 경우 인터커넥트(30)가 제공하는대역폭이 낮아지게 된다.
예를 들면, 도 1에 도시된 제1 내지 제4 슬레이브(51-54) 각각은 제1 내지 제4 메모리 인스턴스(51-54)로 구현될 수 있다. 실시 예로서, 제1 내지 제 4 메모리 인스턴스(51-54) 각각은 DRAM(Dynamic Random Access Memory) 메모리 장치로 구현될 수 있다.
제1 마스터(11)는 인터커넥트(30)를 통하여 제1 내지 제4 메모리 인스턴스(51-54) 중 어느 하나를 억세스할 수 있다. 즉, 제1 마스터(11)가 인터커넥트(30)를 통하여 제1 메모리 인스턴스(51)를 억세스하면, 제1 측정 컴포넌트(41)는 제1 메모리 인스턴스(51)의 부하를 측정한다.
제1 측정 컴포넌트(41)는 제1 마스터(11)의 리퀘스트와 제1 슬레이브(51)의 리스폰스를 이용하여 제1 채널(CH1)의 대역폭, 레이턴시 및 아웃스탠딩 카운트를 측정할 수 있다. 이 경우, 제1 채널(CH1)의 트래픽은 제2 내지 제4 채널(CH2-CH4)의 트래픽에 비하여 더 높을 수 있다. 즉, 제1 메모리 인스턴스(51)에만 트래픽이 몰리는 경우 인터커넥트(30)가 제공하는 대역폭은 낮아지게 된다. 또한, 인터커넥트(30)는 제1 마스터(11)에 제공하는 레이턴시 역시 낮아지게 된다.
마찬가지로, 제2 측정 컴포넌트(42)는 제2 마스터(12)의 리퀘스트와 제2 슬레이브(52)의 리스폰스를 이용하여 제2 채널(CH2)의 대역폭, 레이턴시 및 아웃스탠딩 카운트를 측정할 수 있다.
대역폭을 높이는 방법은 인터커넥트(30)에서 메모리 인스턴스별로부하의 차이가 적어지도록 하는 것이다. 하지만, 인터커넥트(30)를 사용하는 ARM社의 CCI-400, Arteris社의 NoC 등의 IP들은 범용성 및 호환성으로 인하여데이터 주소(data address)만을 사용한 메모리 인스턴스 분배를 하고 있다. 따라서, SoC 설계자는상기 IP에 별도로 트래픽 분배 회로를 추가하여 트래픽 분배의 문제를 해결하고 있다.
또한, 인터커넥트(30)에 의한 트래픽 분배 효과를 높이기 위해, 인터커넥트에(30) 입력되는 트래픽과 출력되는 트래픽에 주소 변환 장치가 추가될 수 있다.
SoC 설계자에 의해 추가된 트래픽 분배 회로가 정확히 동작하는지 알기 위하여다양한 트래픽 패턴에 대해 메모리와 연결된 채널의 부하 정도를 파악하기 위한방법이 필요하다.
이러한 문제를 해결하기 위하여, 본 발명의 실시 예에 따른 SoC(100)는 채널들 간의 부하 불균형을 검출할 수 있다. 중앙 컨트롤러(60)는 제1 내지 제4 슬레이브(51-54) 각각에 대한 대역폭(bandwidth), 레이턴시(latency) 및 아웃스탠딩 카운트(outstanding count) 각각에 가중치를 곱하고, 상기 곱한 결과를 합산하여 제1 내지 제4 슬레이브(51-54) 각각에 대한 부하를 계산할 수 있다.
중앙 컨트롤러(60)는 제1 내지 제4 슬레이브(51-54) 각각에 대응하는 부하에 대한 최소값, 최대값, 평균값 및 분산 중 어느 하나를 계산할 수 있다. 중앙 컨트롤러(60)는 제1 내지 제4 슬레이브(51-54) 각각의 부하에 대한 상기 최소값, 상기 최대값, 상기 평균값 및 상기 분산 중 어느 하나에 기초하여 제1 내지 제4 채널(CH1-CH4) 간의 부하 불균형을 판단할 수 있다.
제1 내지 제4 슬레이브(51-54) 각각의 부하에 대한 최소값, 최대값, 평균값 및 분산을 구하는 방법은 수학식 1 내지 수학식 4를 통하여 설명된다.
수학식 1은 제1 내지 제4 채널(CH1-CH4) 간의 최소값을 구하는 공식이다.
[수학식 1]
Cmin = min(CH1.W1*L + CH1.W1*B + CH1.W1*M, CH2.W1*L + CH2.W1*B + CH2.W1*M, CH3.W1*L + CH3.W1*B + CH3.W1*M, CH4.W1*L + CH4.W1*B + CH4.W1*M)
W1은 레이턴시(L)에 대한 가중치이다. W2은 대역폭(B)에 대한 가중치이다. 그리고 W3은 아웃스탠딩 카운트(M)에 대한 가중치이다. Min 함수는 구성요소들 중 최소값을 출력하는 함수이다. 중앙 컨트롤러(60)는 수학식 1을 이용하여 제1 내지 제4 슬레이브(51-54) 각각의 부하에 대한 최소값(Cmin)을 계산할 수 있다.
수학식 2은 제1 내지 제4 채널(CH1-CH4) 간의 최대값을 구하는 공식이다.
[수학식 2]
Cmax = max(CH1.W1*L + CH1.W1*B + CH1.W1*M, CH2.W1*L + CH2.W1*B + CH2.W1*M, CH3.W1*L + CH3.W1*B + CH3.W1*M, CH4.W1*L + CH4.W1*B + CH4.W1*M)
Max 함수는 구성요소들 중 최대값을 출력하는 함수이다. 중앙 컨트롤러(60)는 수학식 2을 이용하여 제1 내지 제4 슬레이브(51-54) 각각의 부하에 대한 최대값(Cmax)을 계산할 수 있다.
수학식 3은 제1 내지 제4 채널(CH1-CH4) 간의 평균값을 구하는 공식이다.
[수학식 3]
Cavg = avg(CH1.W1*L + CH1.W1*B + CH1.W1*M, CH2.W1*L + CH2.W1*B + CH2.W1*M, CH3.W1*L + CH3.W1*B + CH3.W1*M, CH4.W1*L + CH4.W1*B + CH4.W1*M)
Avg 함수는 구성요소들 중 평균값을 출력하는 함수이다. 중앙 컨트롤러(60)는 수학식 3을 이용하여 제1 내지 제4 슬레이브(51-54) 각각의 부하에 대한 평균값(Cavg)을 계산할 수 있다.
수학식 4은 제1 내지 제4 채널(CH1-CH4) 간의 분산을 구하는 공식이다.
[수학식 4]
Cvar = var(CH1.W1*L + CH1.W1*B + CH1.W1*M, CH2.W1*L + CH2.W1*B + CH2.W1*M, CH3.W1*L + CH3.W1*B + CH3.W1*M, CH4.W1*L + CH4.W1*B + CH4.W1*M)
Avg 함수는 구성요소들 중 분산을 출력하는 함수이다. 중앙 컨트롤러(60)는 수학식 4을 이용하여 제1 내지 제4 슬레이브(51-54) 각각의 부하에 대한 분산(Cvar)을 계산할 수 있다.
중앙 컨트롤러(60)는 제1 내지 제4 슬레이브(51-54) 각각의 부하에 대한 최소값, 최대값, 평균값, 분산 중 어느 하나에 대하여 불균형 임계치를 초과하는 경우 부하 불균형이 발생했음을 알릴 수 있다. 예를 들면, 제1 마스터(11)가 애플리케이션 프로세서이면, 중앙 컨트롤러(60)는 애플리케이션 프로세서로 부하 불균형이 발생했음을 알릴 수 있다.
상기 애플리케이션 프로세서는 제1 내지 제4 슬레이브(51-54) 각각의 부하에 대한 상기 최소값, 상기 최대값, 상기 평균값 및 상기 분산 중 어느 하나에 기초하여 DVFS(Dynamic Voltage & Frequency Scaling)를 동작시킬 수 있다.
도 6은 도 5에 도시된 SoC의 동작을 설명하기 위한 순서도이다.
도 5 및 도 6을 참조하면, S11 단계에서, 측정 블록(40)은 복수의 슬레이브들 각각에 대한 부하를 복수의 채널들을 이용하여 측정한다. 예를 들면, 제1 측정 컴포넌트(41)는 제1 슬레이브(51)에 대한 부하를 제1 채널(CH1)을 통하여 측정한다. 또한, 제2 측정 컴포넌트(42)는 제2 슬레이브(52)에 대한 부하를 제2 채널(CH2)을 통하여 측정한다. 또한, 제3 측정 컴포넌트(43)는 제3 슬레이브(53)에 대한 부하를 제3 채널(CH3)을 통하여 측정한다. 마찬가지로, 제4 측정 컴포넌트(44)는 제4 슬레이브(54)에 대한 부하를 제4 채널(CH4)을 통하여 측정한다.
S12 단계에서, 중앙 컨트롤러(60)는 상기 측정된 부하 정보를 이용하여 상기 복수의 채널들 간의 부하 불균형을 측정할 수 있다. 즉, 중앙 컨트롤러(60)는 상기 측정된 부하 정보를 이용하여 제1 내지 제4 채널(CH1-CH4) 각각에 대한 부하 정도를 구할 수 있다.
S13 단계에서, 시스템 설계자는 상기 부하 불균형 정보를 이용하여 시스템 버스를 재설계할 수 있다.
시스템 설계자는 상기 최소값, 상기 최대값, 상기 평균값 및 상기 분산을 이용하여 제1 내지 제4 채널(CH1-CH4) 간의 부하 불균형을 실시간으로 알 수 있다. 따라서, 시스템 설계자는 제1 내지 제4 채널(CH1-CH4) 간의 부하가 균형을 잡을 수 있도록 시스템 버스를 재설계할 수 있다.
도 7은 도 1에 도시된 SoC를 포함하는 컴퓨터 시스템(210)의 일 실시 예를 나타낸다.
도 7을 참조하면, 컴퓨터 시스템(210)은 메모리 장치(211), 메모리 장치(211)을 제어하는 메모리 컨트롤러(212), 무선 송수신기(213), 안테나(214), 애플리케이션 프로세서(215), 입력 장치(216) 및 디스플레이 장치(217)를 포함한다.
무선 송수신기(213)는 안테나(214)를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(213)는 안테나(214)를 통하여 수신된 무선 신호를 애플리케이션 프로세서(215)에서 처리될 수 있는 신호로 변경할 수 있다.
따라서, 애플리케이션 프로세서(215)는 무선 송수신기(213)로부터 출력된 신호를 처리하고 처리된 신호를 디스플레이 장치(217)로 전송할 수 있다. 또한, 무선 송수신기(213)는 애플리케이션 프로세서(215)으로부터 출력된 신호를 무선 신호로 변경하고 변경된 무선 신호를 안테나(214)를 통하여 외부 장치로 출력할 수 있다.
입력 장치(216)는 애플리케이션 프로세서(215)의 동작을 제어하기 위한 제어 신호 또는 애플리케이션 프로세서(215)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드 (touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.
실시 예에 따라, 메모리 장치(211)의 동작을 제어할 수 있는 메모리 컨트롤러(212)는 애플리케이션 프로세서(215)의 일부로서 구현될 수 있고 또한 애플리케이션 프로세서(215)와 별도의 칩으로 구현될 수 있다.
실시 예에 따라, 애플리케이션 프로세서(215)는 도 1에 도시된 SoC(100)를 포함하도록 구현될 것이다.
도 8은 도 1에 도시된 SoC를 포함하는 컴퓨터 시스템(220)의 다른 실시 예를 나타낸다.
도 8을 참조하면, 컴퓨터 시스템(220)은 PC(personal computer), 네트워크 서버(Network Server), 태블릿(tablet) PC(personal computer), 넷-북(net-book), e-리더(e-reader), PDA (personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어로 구현될 수 있다.
컴퓨터 시스템(220)은 메모리 장치(221)와 메모리 장치(221)의 데이터 처리 동작을 제어할 수 있는 메모리 컨트롤러(222), 애플리케이션 프로세서(223), 입력 장치(224) 및 디스플레이 장치(225)를 포함한다.
애플리케이션 프로세서(223)는 입력 장치(224)를 통하여 입력된 데이터에 따라 메모리 장치(221)에 저장된 데이터를 디스플레이 장치(225)를 통하여 디스플레이할 수 있다. 예컨대, 입력 장치(224)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다. 애플리케이션 프로세서(223)는 컴퓨터 시스템(220)의 전반적인 동작을 제어할 수 있고 메모리 컨트롤러(222)의 동작을 제어할 수 있다.
실시 예에 따라 메모리 장치(221)의 동작을 제어할 수 있는 메모리 컨트롤러(222)는 애플리케이션 프로세서(223)의 일부로서 구현될 수 있고 또한 애플리케이션 프로세서(223)와 별도의 칩으로 구현될 수 있다.
실시 예에 따라, 애플리케이션 프로세서(223)는 도 1에 도시된 SoC(100)를 포함하도록 구현될 것이다.
도 9는 도 1에 도시된 SoC를 포함하는 컴퓨터 시스템(230)의 또 다른 실시 예를 나타낸다.
도 9를 참조하면, 컴퓨터 시스템(230)은 이미지 처리 장치(Image Process Device), 예컨대 디지털 카메라 또는 디지털 카메라가 부착된 이동 전화기, 스마트 폰(smart phone) 또는 테블릿(tablet) 으로 구현될 수 있다.
컴퓨터 시스템(230)은 메모리 장치(231)와 메모리 장치(231)의 데이터 처리 동작, 예컨대 라이트(write) 동작 또는 리드(read) 동작을 제어할 수 있는 메모리 컨트롤러(232)를 포함한다. 또한, 컴퓨터 시스템(230)은 애플리케이션 프로세서(233), 이미지 센서(234) 및 디스플레이 장치(235)을 더 포함한다.
컴퓨터 시스템(230)의 이미지 센서(234)는 광학 이미지를 디지털 신호들로 변환하고, 변환된 디지털 신호들은 애플리케이션 프로세서(233) 또는 메모리 컨트롤러(232)로 전송된다. 애플리케이션 프로세서(233)의 제어에 따라, 상기 변환된 디지털 신호들은 디스플레이 장치(235)를 통하여 디스플레이되거나 또는 메모리 컨트롤러(232)를 통하여 메모리 장치(231)에 저장될 수 있다.
또한, 메모리 장치(231)에 저장된 데이터는 애플리케이션 프로세서(233) 또는 메모리 컨트롤러(232)의 제어에 따라 디스플레이 장치(235)를 통하여 디스플레이된다.
실시 예에 따라, 메모리 장치(231)의 동작을 제어할 수 있는 메모리 컨트롤러(232)는 애플리케이션 프로세서(233)의 일부로서 구현될 수 있고 또한 애플리케이션 프로세서(233)와 별개의 칩으로 구현될 수 있다.
실시 예에 따라, 애플리케이션 프로세서(233)는 도 1에 도시된 SoC(100)를 포함하도록 구현될 것이다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명은 SoC를 포함하는 모바일 장치 또는 컴퓨터 시스템에 적용이 가능할 것이다.
상기에서는 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
11 : 제1 마스터
12 : 제2 마스터
13 : 제3 마스터
20 : 채널 효율 향상 블록
30 : 인터커넥트
40 : 측정 블록
41 : 제1 측정 컴포넌트
42 : 제2 측정 컴포넌트
43 : 제3 측정 컴포넌트
44 : 제4 측정 컴포넌트
51 : 제1 슬레이브
52 : 제2 슬레이브
53 : 제3 슬레이브
54 : 제4 슬레이브
60 : 중앙 컨트롤러
100 : SoC
12 : 제2 마스터
13 : 제3 마스터
20 : 채널 효율 향상 블록
30 : 인터커넥트
40 : 측정 블록
41 : 제1 측정 컴포넌트
42 : 제2 측정 컴포넌트
43 : 제3 측정 컴포넌트
44 : 제4 측정 컴포넌트
51 : 제1 슬레이브
52 : 제2 슬레이브
53 : 제3 슬레이브
54 : 제4 슬레이브
60 : 중앙 컨트롤러
100 : SoC
Claims (10)
- 적어도 하나의 마스터(master) 및 복수의 슬레이브(slave)들;
상기 적어도 하나의 마스터 및 상기 복수의 슬레이브들 각각을 연결하는 인터커넥트(interconnect);
상기 복수의 슬레이브들 각각과 상기 인터커넥트를 복수의 채널들을 이용하여 연결하며, 상기 복수의 슬레이브들 각각에 대한 부하를 측정하는 측정 블록; 및
상기 측정된 부하 정보를 이용하여 상기 복수의 채널들 간의 부하 불균형을 측정하는 중앙 컨트롤러(Central Controller)를 포함하는 SoC(System on Chip). - 제 1 항에 있어서,
상기 중앙 컨트롤러는 상기 복수의 슬레이브들 각각에 대한 대역폭(bandwidth), 레이턴시(latency) 및 아웃스탠딩 카운트(outstanding count) 각각에 가중치를 곱하고, 상기 곱한 결과를 합산하여 상기 복수의 슬레이브들 각각에 대한 부하를 측정하는 SoC. - 제 2 항에 있어서,
상기 가중치는 상기 대역폭, 상기 레이턴시 및 상기 아웃스탠딩 카운트 각각에 대한 중요도를 포함하는 SoC. - 제 2 항에 있어서,
상기 중앙 컨트롤러는 상기 복수의 슬레이브들 각각의 부하에 대한 최소값, 최대값, 평균값 및 분산 중 어느 하나를 계산하는 SoC. - 제 4 항에 있어서,
상기 중앙 컨트롤러는 상기 복수의 슬레이브들 각각의 부하에 대한 상기 최소값, 상기 최대값, 상기 평균값 및 상기 분산 중 어느 하나에 기초하여 상기 채널들 간의 부하 불균형을 판단하는 SoC. - 제 4 항에 있어서,
상기 마스터는 애플리케이션 프로세서(Application Processor)를 포함하며,
상기 애플리케이션 프로세서는 상기 복수의 슬레이브들 각각의 부하에 대한 상기 최소값, 상기 최대값, 상기 평균값 및 상기 분산 중 어느 하나에 기초하여 DVFS(Dynamic Voltage & Frequency Scaling)를 동작시키는 SoC. - 제 1 항에 있어서,
상기 부하는 대역폭, 레이턴시(latency) 및 아웃스탠딩 카운트(outstanding count)를 이용하여 측정되는 SoC. - 적어도 하나의 마스터 및 복수의 슬레이브들 그리고 이들을 각각 연결하는 인터커넥트를 포함하는 SoC의 부하 불균형 검출 방법에 있어서,
상기 복수의 슬레이브들 각각과 상기 인터커넥트를 복수의 채널들을 이용하여 상기 복수의 슬레이브들 각각에 대한 부하를 측정하는 단계; 및
상기 측정된 부하 정보를 이용하여 상기 복수의 채널들 간의 부하 불균형을 측정하는 단계를 포함하는 SoC의 부하 불균형 검출 방법. - 제 8 항에 있어서,
상기 복수의 슬레이브들 각각과 상기 인터커넥트를 복수의 채널들을 이용하여 상기 복수의 슬레이브들 각각에 대한 부하를 측정하는 단계는,
상기 복수의 슬레이브들 각각에 대하여 대역폭, 레이턴시 및 아웃스탠딩 카운트 각각에 가중치를 곱하고, 상기 곱한 결과를 합산하는 단계; 및
상기 합산된 결과에 기초하여 상기 복수의 슬레이브들 각각에 대한 부하를 측정하는 단계를 더 포함하는 SoC의 부하 불균형 검출 방법. - 제 9 항에 있어서,
상기 가중치는 상기 대역폭, 상기 레이턴시 및 상기 아웃스탠딩 카운트 각각에 대한 중요도를 포함하는 SoC의 부하 불균형 검출 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140028463A KR20150106224A (ko) | 2014-03-11 | 2014-03-11 | 시스템-온-칩 및 그의 부하 불균형 검출 방법 |
US14/490,923 US9921935B2 (en) | 2014-03-11 | 2014-09-19 | System-on-chip and load imbalance detecting method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140028463A KR20150106224A (ko) | 2014-03-11 | 2014-03-11 | 시스템-온-칩 및 그의 부하 불균형 검출 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20150106224A true KR20150106224A (ko) | 2015-09-21 |
Family
ID=54068612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140028463A KR20150106224A (ko) | 2014-03-11 | 2014-03-11 | 시스템-온-칩 및 그의 부하 불균형 검출 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9921935B2 (ko) |
KR (1) | KR20150106224A (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9769201B2 (en) * | 2015-03-06 | 2017-09-19 | Radware, Ltd. | System and method thereof for multi-tiered mitigation of cyber-attacks |
JP2017135507A (ja) * | 2016-01-26 | 2017-08-03 | 富士通株式会社 | 移動体管理システム,及び基地局 |
KR102661491B1 (ko) | 2016-12-26 | 2024-04-29 | 삼성전자주식회사 | 동적 전압 주파수 스케일링을 사용하는 시스템 온 칩 및 그것의 동작 방법 |
US10481944B2 (en) * | 2017-08-09 | 2019-11-19 | Xilinx, Inc. | Adaptive quality of service control circuit |
GB2589594B (en) | 2019-12-03 | 2023-10-11 | Siemens Ind Software Inc | Detecting anomalous latent communications in an integrated circuit chip |
US12093100B2 (en) | 2020-09-26 | 2024-09-17 | Intel Corporation | Hierarchical power management apparatus and method |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6385678B2 (en) * | 1996-09-19 | 2002-05-07 | Trimedia Technologies, Inc. | Method and apparatus for bus arbitration with weighted bandwidth allocation |
US6704812B2 (en) * | 2000-11-30 | 2004-03-09 | International Business Machines Corporation | Transparent and dynamic management of redundant physical paths to peripheral devices |
US7366092B2 (en) | 2003-10-14 | 2008-04-29 | Broadcom Corporation | Hash and route hardware with parallel routing scheme |
CN102129414B (zh) | 2010-01-15 | 2013-12-04 | 华为技术有限公司 | 一种变频总线适配器、适配方法及系统 |
TWI447645B (zh) * | 2010-02-11 | 2014-08-01 | Univ Nat Chiao Tung | 具有負載平衡的可動態重組異質處理器架構以及動態配置方法 |
US9268720B2 (en) | 2010-08-31 | 2016-02-23 | Qualcomm Incorporated | Load balancing scheme in multiple channel DRAM systems |
KR20120037785A (ko) | 2010-10-12 | 2012-04-20 | 삼성전자주식회사 | 부하 균형을 유지하는 시스템 온 칩 및 그것의 부하 균형 유지 방법 |
US20120137090A1 (en) | 2010-11-29 | 2012-05-31 | Sukalpa Biswas | Programmable Interleave Select in Memory Controller |
KR101855399B1 (ko) * | 2011-03-24 | 2018-05-09 | 삼성전자주식회사 | 데이터 트래픽을 개선한 SoC 및 이의 동작 방법 |
US8661136B2 (en) * | 2011-10-17 | 2014-02-25 | Yahoo! Inc. | Method and system for work load balancing |
US20130111084A1 (en) * | 2011-11-01 | 2013-05-02 | Qualcomm Incorporated | Methods and devices for single link aggregated buses |
JP2013106166A (ja) | 2011-11-14 | 2013-05-30 | Sony Corp | クロックゲーティング回路およびバスシステム |
US9292070B2 (en) | 2012-03-05 | 2016-03-22 | Advanced Micro Devices, Inc. | Method and apparatus with stochastic control based power saving operation |
-
2014
- 2014-03-11 KR KR1020140028463A patent/KR20150106224A/ko not_active Application Discontinuation
- 2014-09-19 US US14/490,923 patent/US9921935B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US9921935B2 (en) | 2018-03-20 |
US20150260787A1 (en) | 2015-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20150106224A (ko) | 시스템-온-칩 및 그의 부하 불균형 검출 방법 | |
US20200401532A1 (en) | Lookahead priority collection to support priority elevation | |
KR101855399B1 (ko) | 데이터 트래픽을 개선한 SoC 및 이의 동작 방법 | |
EP2568389B1 (en) | Coherence switch for i/o traffic | |
KR102336452B1 (ko) | 시스템 온 칩, 버스 인터페이스 및 그 동작 방법 | |
US7783819B2 (en) | Integrating non-peripheral component interconnect (PCI) resources into a personal computer system | |
US20130268706A1 (en) | System on chip for enhancing quality of service and method of controlling the same | |
GB2485701A (en) | Using a central interface and a core specific shim to connect a computer bus to a core using an on chip protocol | |
US20230009095A1 (en) | Data transmission method and apparatus, and related assembly | |
KR20120083857A (ko) | 서비스 품질(QoS) 관련 패브릭 제어 | |
TWI747878B (zh) | 半導體裝置及其操作方法 | |
JP2019525619A (ja) | 信頼できない相互接続エージェントをスロットルするためのメカニズム | |
US8356128B2 (en) | Method and system of reducing latencies associated with resource allocation by using multiple arbiters | |
US8527684B2 (en) | Closed loop dynamic interconnect bus allocation method and architecture for a multi layer SoC | |
US20150113333A1 (en) | Data processing system and operating method thereof | |
JP2013088879A (ja) | 情報処理装置 | |
US9436617B2 (en) | Dynamic processor-memory revectoring architecture | |
US10846126B2 (en) | Method, apparatus and system for handling non-posted memory write transactions in a fabric | |
CN112783369A (zh) | 触控检测方法和触控设备 | |
US9817759B2 (en) | Multi-core CPU system for adjusting L2 cache character, method thereof, and devices having the same | |
KR102012699B1 (ko) | 다중 버스 시스템 및 이를 포함하는 반도체 시스템 | |
KR102440948B1 (ko) | 반도체 장치 및 반도체 장치의 동작 방법 | |
US9672168B2 (en) | System interconnection of system-on-chip | |
CN112313633B (zh) | 用于片上系统中的可编程逻辑主机的基于硬件的虚拟到物理地址转换 | |
Narmadha et al. | Performance analysis of ADMA on bus based SoC-survey |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |