KR20150019457A - 시스템 온 칩, 이의 동작 방법, 및 이를 포함하는 시스템 - Google Patents

시스템 온 칩, 이의 동작 방법, 및 이를 포함하는 시스템 Download PDF

Info

Publication number
KR20150019457A
KR20150019457A KR1020130096376A KR20130096376A KR20150019457A KR 20150019457 A KR20150019457 A KR 20150019457A KR 1020130096376 A KR1020130096376 A KR 1020130096376A KR 20130096376 A KR20130096376 A KR 20130096376A KR 20150019457 A KR20150019457 A KR 20150019457A
Authority
KR
South Korea
Prior art keywords
power
debugging
pmu
controller
cluster
Prior art date
Application number
KR1020130096376A
Other languages
English (en)
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 KR1020130096376A priority Critical patent/KR20150019457A/ko
Priority to US14/339,786 priority patent/US9619011B2/en
Publication of KR20150019457A publication Critical patent/KR20150019457A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318575Power distribution; Power saving
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof

Abstract

본 발명의 실시 예에 따른 시스템 온 칩은 제1파워 도메인에 포함된 디버깅 컨트롤러와 JTAG 인터페이스와, 각각이 서로 다른 제2파워 도메인들 각각에 포함된 클러스터들과, 상기 JTAG 인터페이스로부터 출력된 디버깅 요청 신호에 응답하여 상기 디버깅 컨트롤러에 대한 파워-오프를 해제하는 전력 관리 유닛을 포함할 수 있다.

Description

시스템 온 칩, 이의 동작 방법, 및 이를 포함하는 시스템{SYSTEM ON CHIP, METHOD THEREOF, AND SYSTEM HAVING THE SAME}
본 발명의 개념에 따른 실시 예는 시스템 온 칩에 관한 것으로, 특히 디버깅 컨트롤러의 파워 도메인이 클러스터들 각각의 파워 도메인과 독립적으로 분리되어 상기 클러스터들의 파워 상태에 상관없이 상기 디버깅 컨트롤러가 디버깅 요청 신호에 해당하는 클러스터를 자동으로 디버깅하는 시스템 온 칩, 이의 동작 방법, 및 이를 포함하는 시스템에 관한 것이다.
멀티-클러스터(multi-cluster) 구조의 시스템 온 칩(system on chip(SoC))에 있어서, 클러스터들 각각이 일반적으로 동작을 수행하지 않을 때, 상기 클러스터들 각각의 파워 소모를 줄이기 위해서, 상기 클러스터들 각각은 파워-오프된다.
일반적으로 디버깅 컨트롤러는 복수의 클러스터들 중에서 특정한 클러스터의 파워 도메인(power domain)에 속한다. 따라서, 상기 특정 클러스터가 파워-오프딜 때, 상기 디버깅 컨트롤러는 디버깅 동작을 수행할 수 없다.
본 발명이 이루고자 하는 기술적인 과제는 디버깅 컨트롤러의 파워 도메인이 클러스터들 각각의 파워 도메인과 독립적으로 분리되어 상기 클러스터들의 파워 상태에 상관없이 상기 디버깅 컨트롤러가 디버깅 요청 신호에 해당하는 클러스터를 자동으로 디버깅하는 시스템 온 칩, 이의 동작 방법, 및 이를 포함하는 시스템을 제공하는 것이다.
본 발명의 실시 예에 따른 시스템 온 칩은 제1파워 도메인에 포함된 디버깅 컨트롤러와 JTAG(Joint Test Action Group (JTAG)) 인터페이스와, 각각이 서로 다른 제2파워 도메인들 각각에 포함된 클러스터들과, 상기 JTAG 인터페이스로부터 출력된 디버깅 요청 신호에 응답하여, 상기 디버깅 컨트롤러에 대한 파워-오프를 해제하는 PMU(power management unit)을 포함한다.
상기 PMU는 상기 JTAG 인터페이스로 항상 전력을 공급한다.
상기 디버깅 컨트롤러는 상기 JTAG 인터페이스를 포함한다.
상기 PMU는 상기 클러스터들 각각의 파워-게이팅을 제어한다.
상기 클러스터들 중에서 상기 디버깅 요청 신호에 해당하는 클러스터가 파워-오프 상태일 때, 파워-오프 해제된 디버깅 컨트롤러의 제어에 따라 상기 PMU는 상기 클러스터의 파워-오프를 해제한다.
상기 디버깅 컨트롤러는 상기 파워-오프 해제된 클러스터를 디버깅할 수 있다.
본 발명의 실시 예에 따른 애플리케이션 프로세서는 상기 시스템 온 칩을 포함한다.
본 발명의 실시 예에 따른 휴대용 전자 장치는 상기 시스템 온 칩과, 상기 시스템 온 칩에 접속된 메모리를 포함한다.
본 발명의 실시 예에 따른, 제1파워 도메인에 포함된 디버깅 컨트롤러와 JTAG 인터페이스, 각각이 서로 다른 제2파워 도메인들 각각에 포함된 클러스터들, 및 전력 관리 유닛(power management unit(PMU))을 포함하는 시스템 온 칩의 동작 방법은 상기 PMU가 상기 디버깅 컨트롤러를 파워-오프하는 단계와, 상기 PMU가 상기 JTAG 인터페이스로부터 출력된 디버깅 요청 신호를 수신하는 단계와, 상기 PMU가 상기 디버깅 요청 신호에 응답하여, 상기 디버깅 컨트롤러의 상기 파워-오프를 해제하는 단계를 포함한다.
상기 PMU는 상기 JTAG 인터페이스로 항상 전력을 공급한다.
상기 클러스터들 중에서 상기 디버깅 요청 신호에 해당하는 클러스터가 파워-오프 상태일 때, 파워-오프 해제된 디버깅 컨트롤러의 제어에 따라, 상기 PMU가 상기 클러스터의 파워-오프를 해제하는 단계를 더 포함한다.
상기 디버깅 컨트롤러가 상기 파워-오프 해제된 클러스터에 대한 디버깅을 수행하는 단계를 더 포함한다.
본 발명의 실시 예에 따른 시스템 온 칩과 이의 동작 방법은 디버깅 컨트롤러를 포함하는 파워 도메인을 클러스터들 각각의 파워 도메인들과 분리하여 디버깅 요청 신호를 수신하기 전까지 상기 디버깅 컨트롤러만을 파워-오프할 수 있는 효과가 있다.
따라서, 상기 시스템 온 칩과 상기 방법은 상기 디버깅 컨트롤러에서 소모되는 전력을 감소할 수 있는 효과가 있다.
또한, 상기 시스템 온 칩과 상기 방법은 상기 클러스터들 각각의 파워 상태에 상관없이 상기 디버깅 요청 신호에 해당하는 클러스터를 자동으로 디버깅할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 시스템 온 칩(system on chip(SoC))의 블록도이다.
도 2는 도 1에 도시된 SoC의 동작을 설명하기 위한 일 실시 예이다.
도 3은 도 1에 도시된 SoC의 동작을 설명하기 위한 다른 실시 예이다.
도 4는 도 1에 도시된 SoC의 동작을 설명하기 위한 또 다른 실시 예이다.
도 5는 도 1에 도시된 SoC의 동작을 설명하기 위한 또 다른 실시 예이다.
도 6은 도 1에 도시된 SoC의 동작을 설명하기 위한 또 다른 실시 예이다.
도 7은 도 1에 도시된 SoC의 동작을 설명하기 위한 또 다른 실시 예이다.
도 8은 본 발명의 실시 예에 따른 SoC의 동작 방법을 설명하기 위한 플로우 차트이다.
도 9는 본 발명의 다른 실시 예에 따른 SoC의 블록도이다.
도 10은 본 발명의 또 다른 실시 예에 따른 SoC의 블록도이다.
도 11은 본 발명의 실시 예에 따른 전자 시스템의 실시 예를 나타내는 블록도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어를 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시 예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 일 실시 예에 따른 시스템 온 칩(system on chip(SoC))의 블록도이다.
도 1을 참조하면, SoC(10A)는 마더보드(motherboard)와 같은 인쇄 회로 기판 (printed circuit board(PCB)), 집적 회로(integrated circuit(IC)), 프로세서 (processor), 멀티미디어 프로세서(multimedia processor), 또는 집적된 멀티미디어 프로세서(integrated multimedia processor)로 구현될 수 있다. 또한, SoC(10A)는 애플리케이션 프로세서(application processor)일 수 있다.
SoC(10A)는 멀티-클러스터(multi-cluster; 100), 전력 관리 유닛(power management unit(PMU); 130), 및 디버깅 컨트롤러(debugging controller; 150)를 포함할 수 있다.
멀티-클러스터(100)는 이종(heterogeneous) 클러스터들, 예컨대 제1클러스터 (110)와 제2클러스터(113)를 포함할 수 있다. 도 1에서는 SoC(10A)가 하나의 멀티 클러스터(100)를 포함하는 것으로 도시되어 있지만, 실시 예에 따라, SoC(10A)는 두 개 이상의 멀티-클러스터들을 포함할 수 있다. 즉, 본 발명의 기술적 사상은 SoC(10A)에 포함된 멀티-클러스터의 개수에 한정되지 않는다.
SoC(10A)는 복수의 파워 도메인들(PWD1~PWD4)로 정의될 수 있다. 예컨대, 제1파워 도메인(PWD1)은 제1클러스터(110)를 포함하고, 제2파워 도메인(PWD2)은 제2클러스터(113)을 포함하고, 제3파워 도메인(PWD3)은 디버깅 컨트롤러(150)를 포함하고, 제4파워 도메인(PWD4)은 PMU(130)를 포함할 수 있다.
디버깅 컨트롤러(150)는 클러스터들(110 및 113) 각각의 파워 도메인들(PWD1 및 PWD2)과 다른 파워 도메인(PWD3)으로 정의될 수 있다. 즉, 디버깅 컨트롤러 (150)는 클러스터들(110 및 113)의 파워 도메인들(PWD1 및 PWD2)에 포함되지 않을 수 있다. 따라서, 디버깅 컨트롤러(150)는 클러스터들(110 및 113) 각각의 파워 상태에 독립적으로 동작할 수 있다.
실시 예에 따라, 복수의 파워 도메인들(PWD1~PWD4)은 각 구성요소(110, 113, 130, 및 150)의 기능 및/또는 전력 제어 방법에 따라 정의될 수 있다.
제1클러스터(110)는 빅 코어들(big cores; B_C)을 포함하고, 제2클러스터 (113)는 리틀 코어들(little cores; L_C)을 포함할 수 있다.
빅 코어들(B_C)은 처리 클러스터(processing cluster)로서 제1클러스터(110)를 형성하고, 리틀 코어들(L_C)은 처리 클러스터로서 제2클러스터(113)를 형성할 수 있다.
서로 독립적인 각 코어(B_C 및 L_C)의 동작 주파수는 서로 다를 수 있다. 예컨대, 빅 코어(B_C)의 동작 주파수는 리틀 코어(L_C)의 동작 주파수보다 높을 수 있다.
따라서, 제1클러스터(110)는 넓은 파이프라인(wider pipeline)을 사용하고 상대적으로 높은 성능(performance)을 가질 수 있고, 제2클러스터(113)는 좁은 파이프라인(narrower pipeline)을 사용하고 상대적으로 낮은 성능을 가지나 전력을 적게 사용할 수 있다.
PMU(130)는 각 구성요소(110, 113, 및 153)에 대한 파워-게이팅(power-gating)을 제어할 수 있다. 예컨대, PMU(130)는 디버깅 컨트롤러(150)에 대한 파워-게이팅을 제어하고, 클러스터들(110 및 113) 각각에 대한 파워-게이팅을 제어할 수 있다.
여기서, 파워-게이팅은 파워-온(power-on) 또는 파워-오프(power-off)를 수행하는 파워-트랜지스터를 이용하여 특정한 회로 또는 장치로 공급되는 파워를 제어하는 것을 의미한다.
실시 예에 따라, PMU(130)는 JTAG 인터페이스(Joint Test Action Group(JTAG) interface; 153)로부터 출력된 디버깅 요청 신호(debugging request signal; DRS)에 응답하여 디버깅 컨트롤러(150)에 대한 파워-오프를 해제할 수 있다.
즉, PMU(130)는 디버깅 요청 신호(DRS)를 수신하기 전까지 디버깅 컨트롤러 (150)를 파워-오프할 수 있다. 따라서, PMU(130)가 디버깅 요청 신호(DRS)를 수신하기 전까지 디버깅 컨트롤러(150)의 파워를 오프 상태로 유지하기 때문에, 디버깅 컨트롤러(150)에서 소모되는 전력은 감소 또는 차단될 수 있다.
그러나, JTAG 인터페이스(153)가 호스트로부터 수신되는 디버깅 요청 신호 (DRS)를 PMU(130)로 전송할 수 있도록, PMU(130)는 JTAG 인터페이스(153)로 항상 전력을 공급할 수 있다.
다른 실시 예에 따라, 클러스터들(110 및 113) 중에서 디버깅 요청 신호 (DRS)에 해당하는 클러스터(110 또는 113)가 파워-오프 상태일 때, 파워-오프 해제된 디버깅 컨트롤러(150)의 제어에 따라, PMU(130)는 디버깅 요청 신호(DRS)에 해당하는 클러스터(110 또는 113)의 파워-오프를 해제할 수 있다. 즉, PMU(130)는 해당하는 클러스터(110 또는 113)로 전력을 공급할 수 있다.
디버깅 컨트롤러(150)는 복수의 핀들(155-1~155-5)과 JTAG 인터페이스(153)를 포함할 수 있다.
도 1에서는 JTAG 인터페이스(153)가 디버깅 컨트롤러(150)의 내부에 구현된 예를 도시하고 있으나, 실시 예에 따라 JTAG 인터페이스(153)는 디버깅 컨트롤러 (150)의 외부에 구현될 수 있다.
TDI(Test Data In) 신호는 TDI 핀(155-1)을 통해 디버깅 컨트롤러(150)로 입력될 수 있다. TCK(Test Clock) 신호는 TCK 핀(155-2)을 통해 디버깅 컨트롤러 (150)로 입력될 수 있다. TRST(Test Reset) 신호는 TRST 핀(155-3)을 통해 디버깅 컨트롤러(150)로 입력될 수 있다. TMS(Test Mode Select) 신호는 TMS 핀(155-4)을 통해 디버깅 컨트롤러(150)로 입력될 수 있다. 디버깅 컨트롤러(150)에서 처리된 TDO(Test Data Out) 신호는 TDO 핀(155-5)을 통해 호스트로 출력될 수 있다.
실시 예들에 따라 TRST 핀(155-3)은 구현될 수도 있고 구현되지 않을 수도 있다.
도 1에서는 복수의 핀들(155-1~155-5)이 디버깅 컨트롤러(150) 내부에 구현된 예가 도시되어 있으나, 실시 예에 따라 복수의 핀들(155-1~155-5)은 디버깅 컨트롤러(150)의 외부에 구현될 수 있다.
디버깅 컨트롤러(150)는, JTAG 인터페이스(153)를 통해, 호스트, PMU(130), 및 클러스터들(110 및 113)과 통신할 수 있다.
JTAG 인터페이스(153)는 호스트로부터 출력된 디버깅 요청 신호(DRS)를 TDI 핀(155-1)을 통해 수신할 수 있다. 실시 예에 따라, 디버깅 요청 신호(DRS)는 TCK 신호일 수도 있다.
JTAG 인터페이스(153)는 수신된 디버깅 요청 신호(DRS) 또는 디버깅 요청 신호(DRS)에 관련된 신호를 PMU(130)로 전송할 수 있다.
디버깅 컨트롤러(150)에 대한 파워-오프는 PMU(130)의 제어에 의해 해제될 수 있다.
상술한 바와 같이, PMU(130)가 디버깅 요청 신호(DRS)를 수신하기 전까지, 디버깅 컨트롤러(150)는 PMU(130)의 제어에 따라 파워-오프 상태를 유지하지만, JTAG 인터페이스(153)는 PMU(130)의 제어에 따라 항상 전력을 공급받고 있으므로 호스트로부터 수신된 디버깅 요청 신호(DRS)를 PMU(130)로 전송할 수 있다.
파워-오프 해제된, 즉 전력을 공급받는 디버깅 컨트롤러(150)는 하나 또는 그 이상의 클러스터들(110 및/또는 113)을 디버깅할 수 있다. 예컨대, 파워-오프 해제된 디버깅 컨트롤러(150)는 디버깅 요청 신호(DRS)에 해당하는 하나 또는 그 이상의 클러스터들(110 및/또는 113)을 디버깅할 수 있다.
실시 예에 따라, 하나 또는 그 이상의 클러스터들(110 및/또는 113) 중에서 디버깅 요청 신호(DRS)에 해당하는 클러스터(들)(110 및/또는 113)가 파워-오프 상태일 때, 파워-오프 해제된 디버깅 컨트롤러(150)는, PMU(130)가 클러스터들(110 및 113) 중에서 디버깅 요청 신호(DRS)에 해당하는 클러스터(110 또는 113)의 파워-오프를 해제하도록, PMU(130)를 제어할 수 있다.
디버깅 컨트롤러(150)는 클러스터들(110 및 113)의 파워 도메인들(PWD1 및 PWD2)에 포함되어 있지 않기 때문에, 클러스터들(110 및 113)의 파워 상태에 상관없이, 디버깅 요청 신호(DRS)에 해당하는 클러스터(110 또는 113)를 자동으로 디버깅할 수 있다.
도 2는 도 1에 도시된 SoC의 동작을 설명하기 위한 일 실시 예이다.
도 1과 도 2를 참조하면, JTAG 인터페이스(153)는 호스트로부터 출력된 디버깅 요청 신호(DRS)를 수신할 수 있다(S110). JTAG 인터페이스(153)는 디버깅 요청 신호(DRS)를 PMU(130)로 전송할 수 있다(S120). JTAG 인터페이스(153)는 PMU(130)의 제어에 따라 항상 전력을 공급받을 수 있다.
PMU(130)는 디버깅 요청 신호(DRS)에 응답하여 디버깅 컨트롤러(150)에 대한 파워-오프를 해제할 수 있다(S130). 즉, PMU(130)는 JTAG 인터페이스(153)로부터 디버깅 요청 신호(DRS)를 수신하기 전까지 JTAG 인터페이스(153)를 제외한 디버깅 컨트롤러(150)의 파워를 오프할 수 있다.
파워-오프 해제된 디버깅 컨트롤러(150)는 제어 신호(CTRL)를 생성할 수 있다(S135). 예컨대, 제어 신호(CTRL)는 PMU(130)로 하여금 디버깅 요청 신호(DRS)에 해당하는 클러스터(110 또는 113)의 파워-오프를 해제하도록 하는 신호일 수 있다.
파워-오프 해제된 디버깅 컨트롤러(150)는 제어 신호(CTRL)를 PMU(130)로 전송할 수 있다(S140).
PMU(130)는 제어 신호(CTRL)에 응답하여 클러스터들(110 및 130) 중에서 디버깅 요청 신호(DRS)에 해당하는 클러스터(110 또는 130)의 파워-오프를 해제할 수 있다(S150).
파워-오프 해제된, 즉 파워를 공급받는 디버깅 컨트롤러(150)는 파워-오프 해제된 클러스터(110 및/또는 130)를 디버깅할 수 있다(S160).
도 3은 도 1에 도시된 SoC의 동작을 설명하기 위한 다른 실시 예이다.
도 1과 도 3을 참조하면, JTAG 인터페이스(153)는 호스트로부터 출력된 디버깅 요청 신호(DRS)를 수신할 수 있다(S210). JTAG 인터페이스(153)는 디버깅 요청 신호(DRS)를 PMU(130)로 전송할 수 있다(S220). JTAG 인터페이스(153)는 PMU(130)의 제어에 따라 항상 전력을 공급받을 수 있다.
PMU(130)는 디버깅 요청 신호(DRS)에 응답하여 디버깅 컨트롤러(150)에 대한 파워-오프를 해제할 수 있다(S230). 즉, PMU(130)는, JTAG 인터페이스(153)로부터 디버깅 요청 신호(DRS)를 수신하기 전까지, JTAG 인터페이스(153)를 제외한 디버깅 컨트롤러(150)를 파워-오프할 수 있다.
파워-오프 해제된 디버깅 컨트롤러(150)는 제어 신호(CTRL)를 생성할 수 있다(S235). 예컨대, PMU(130)는 디버깅 컨트롤러(150)로부터 출력된 제어 신호 (CTRL)에 응답하여 디버깅 요청 신호(DRS)에 해당하는 클러스터(110 및/또는 113)로 파워를 공급할 수 있다.
파워-오프 해제된 디버깅 컨트롤러(150)는 제어 신호(CTRL)를 PMU(130)로 전송할 수 있다(S240).
PMU(130)는 제어 신호(CTRL)에 응답하여 클러스터들(110 및 130) 중에서 디버깅 요청 신호(DRS)에 해당하는 클러스터(110 또는 130)의 파워-오프를 해제할 수 있다(S250).
PMU(130)는 디버깅 요청 신호(DRS)에 해당하는 클러스터(110 또는 130)의 파워-오프를 해제했음을 지시하는 제1지시 신호(IDS1)를 파워-오프 해제된 디버깅 컨트롤러(150)로 전송할 수 있다(S255).
파워-오프 해제된 디버깅 컨트롤러(150)는 제1지시 신호(IDS1)에 응답하여 파워-오프 해제된 클러스터(110 또는 130)를 디버깅할 수 있다(S260).
도 4는 도 1에 도시된 SoC의 동작을 설명하기 위한 또 다른 실시 예이다.
도 1과 도 4를 참조하면, JTAG 인터페이스(153)는 호스트로부터 출력된 디버깅 요청 신호(DRS)를 수신할 수 있다(S310). JTAG 인터페이스(153)는 디버깅 요청 신호(DRS)를 PMU(130)로 전송할 수 있다(S320). JTAG 인터페이스(153)는 PMU(130)의 제어에 따라 항상 전력을 공급받을 수 있다.
PMU(130)는 디버깅 요청 신호(DRS)에 응답하여 디버깅 컨트롤러(150)에 대한 파워-오프를 해제할 수 있다(S330). 즉, PMU(130)는, JTAG 인터페이스(153)로부터 디버깅 요청 신호(DRS)를 수신하기 전까지, JTAG 인터페이스(153)를 제외한 디버깅 컨트롤러(150)의 파워를 오프할 수 있다.
파워-오프 해제된 디버깅 컨트롤러(150)는 제어 신호(CTRL)를 생성할 수 있다(S335).
파워-오프 해제된 디버깅 컨트롤러(150)는 제어 신호(CTRL)를 PMU(130)로 전송할 수 있다(S340).
PMU(130)는 제어 신호(CTRL)에 응답하여 클러스터들(110 및 130) 중에서 디버깅 요청 신호(DRS)에 해당하는 클러스터(110 또는 130)의 파워-오프를 해제할 수 있다(S350).
파워-오프 해제된 클러스터(110 또는 130)는 파워-오프가 해제되었음을 지시하는 제2지시 신호(IDS2)를 파워-오프 해제된 디버깅 컨트롤러(150)로 전송할 수 있다(S355). 예컨대, 제2지시 신호(IDS2)는 파워-오프 해제된 클러스터(110 또는 130)에 대한 파워-온일 수 있다.
파워-오프 해제된 디버깅 컨트롤러(150)는 제2지시 신호(IDS2)에 응답하여 파워-오프 해제된 클러스터(110 또는 130)를 디버깅할 수 있다(S360).
도 5는 도 1에 도시된 SoC의 동작을 설명하기 위한 또 다른 실시 예이다.
도 1과 도 5를 참조하면, JTAG 인터페이스(153)는 호스트로부터 출력된 디버깅 요청 신호(DRS)를 수신할 수 있다(S410). JTAG 인터페이스(153)는 디버깅 요청 신호(DRS)를 PMU(130)로 전송할 수 있다(S420). JTAG 인터페이스(153)는 PMU(130)의 제어에 따라 항상 전력을 공급받을 수 있다.
PMU(130)는 디버깅 요청 신호(DRS)에 응답하여 디버깅 컨트롤러(150)에 대한 파워-오프를 해제할 수 있다(S430). 즉, PMU(130)는, JTAG 인터페이스(153)로부터 디버깅 요청 신호(DRS)를 수신하기 전까지, JTAG 인터페이스(153)를 제외한 디버깅 컨트롤러(150)의 파워를 오프할 수 있다.
PMU(130)는 클러스터들(110 및 130)의 파워 상태를 확인하고, 확인 결과에 따라 파워 상태 데이터(P_DATA)를 생성할 수 있다(S433). 예컨대, 파워 상태 데이터(P_DATA)는 클러스터들(110 및 130) 각각의 파워-오프 해제 여부에 대한 데이터를 포함할 수 있다.
PMU(130)는 파워 상태 데이터(P_DATA)를 파워-오프 해제된 디버깅 컨트롤러(150)로 전송할 수 있다(S435).
파워-오프 해제된 디버깅 컨트롤러(150)는 파워 상태 데이터(P_DATA)에 기초하여 제어 신호(CTRL)를 생성할 수 있다(S437).
즉, 파워-오프 해제된 디버깅 컨트롤러(150)는 파워 상태 데이터(P_DATA)로부터 디버깅 요청 신호(DRS)에 해당하는 클러스터(110 또는 113)가 파워-오프 상태임을 확인하고, 제어 신호(CTRL)를 생성할 수 있다(S437).
파워-오프 해제된 디버깅 컨트롤러(150)는 제어 신호(CTRL)를 PMU(130)로 전송할 수 있다(S440).
PMU(130)는 제어 신호(CTRL)에 응답하여 클러스터들(110 및 130) 중에서 디버깅 요청 신호(DRS)에 해당하는 클러스터(110 또는 130)의 파워-오프를 해제할 수 있다(S450).
파워-오프 해제된 디버깅 컨트롤러(150)는 파워-오프 해제된 클러스터(110 또는 130)를 디버깅할 수 있다(S460).
파워-오프 해제된 디버깅 컨트롤러(150)가 파워 상태 데이터(P_DATA)로부터 디버깅 요청 신호(DRS)에 해당하는 클러스터(110 또는 113)의 파워-오프가 해제되었음을 알았을 때, SoC(10A)는 S437, S440, 및 S450 단계를 수행하지 않고 바로 S460 단계를 수행할 수 있다.
도 6은 도 1에 도시된 SoC의 동작을 설명하기 위한 또 다른 실시 예이다.
도 1과 도 6을 참조하면, JTAG 인터페이스(153)는 호스트로부터 출력된 디버깅 요청 신호(DRS)를 수신할 수 있다(S510). JTAG 인터페이스(153)는 디버깅 요청 신호(DRS)를 PMU(130)로 전송할 수 있다(S520). JTAG 인터페이스(153)는 PMU(130)의 제어에 따라 항상 전력을 공급받을 수 있다.
PMU(130)는 디버깅 요청 신호(DRS)에 응답하여 디버깅 컨트롤러(150)에 대한 파워-오프를 해제할 수 있다(S530). 즉, PMU(130)는, JTAG 인터페이스(153)로부터 디버깅 요청 신호(DRS)를 수신하기 전까지, JTAG 인터페이스(153)를 제외한 디버깅 컨트롤러(150)의 파워를 오프할 수 있다.
PMU(130)는 클러스터들(110 및 130) 중에서 디버깅 요청 신호(DRS)에 해당하는 클러스터(110 또는 130)의 파워 상태를 확인하고, 확인 결과에 따라 파워 상태 데이터(P_DATA)를 생성할 수 있다(S533). 예컨대, 파워 상태 데이터(P_DATA)는 클러스터들(110 및 130) 각각의 파워-오프 해제 여부에 대한 데이터를 포함할 수 있다.
PMU(130)는 파워 상태 데이터(P_DATA)를 파워-오프 해제된 디버깅 컨트롤러 (150)로 전송할 수 있다(S535).
파워-오프 해제된 디버깅 컨트롤러(150)는 파워 상태 데이터(P_DATA)에 기초하여 제어 신호(CTRL)를 생성할 수 있다(S537).
파워-오프 해제된 디버깅 컨트롤러(150)는 파워 상태 데이터(P_DATA)로부터 디버깅 요청 신호(DRS)에 해당하는 클러스터(110 또는 113)가 파워-오프 상태임을 확인하고, 제어 신호(CTRL)를 생성할 수 있다(S537).
파워-오프 해제된 디버깅 컨트롤러(150)는 제어 신호(CTRL)를 PMU(130)로 전송할 수 있다(S540).
PMU(130)는 제어 신호(CTRL)에 응답하여 클러스터들(110 및 130) 중에서 디버깅 요청 신호(DRS)에 해당하는 클러스터(110 또는 130)의 파워-오프를 해제할 수 있다(S550).
PMU(130)는 디버깅 요청 신호(DRS)에 해당하는 클러스터(110 또는 130)의 파워-오프를 해제했음을 지시하는 제1지시 신호(IDS1)를 파워-오프 해제된 디버깅 컨트롤러(150)로 전송할 수 있다(S555).
파워-오프 해제된 디버깅 컨트롤러(150)는 제1지시 신호(IDS1)에 응답하여 파워-오프 해제된 클러스터(110 또는 130)를 디버깅할 수 있다(S560).
파워-오프 해제된 디버깅 컨트롤러(150)가 파워 상태 데이터(P_DATA)로부터 디버깅 요청 신호(DRS)에 해당하는 클러스터(110 또는 113)의 파워-오프가 해제되었음을 알았을 때, SoC(10A)는 S537, S540, S550, 및 S555 단계를 수행하지 않고 바로 S560 단계를 수행할 수 있다.
도 7은 도 1에 도시된 SoC의 동작을 설명하기 위한 또 다른 실시 예이다.
도 1과 도 7을 참조하면, JTAG 인터페이스(153)는 호스트로부터 출력된 디버깅 요청 신호(DRS)를 수신할 수 있다(S610). JTAG 인터페이스(153)는 디버깅 요청 신호(DRS)를 PMU(130)로 전송할 수 있다(S620). JTAG 인터페이스(153)는 PMU(130)의 제어에 따라 항상 전력을 공급받을 수 있다.
PMU(130)는 디버깅 요청 신호(DRS)에 응답하여 디버깅 컨트롤러(150)에 대한 파워-오프를 해제할 수 있다(S630). 즉, PMU(130)는, JTAG 인터페이스(153)로부터 디버깅 요청 신호(DRS)를 수신하기 전까지, JTAG 인터페이스(153)를 제외한 디버깅 컨트롤러(150)의 파워를 오프할 수 있다.
PMU(130)는 클러스터들(110 및 130) 중에서 디버깅 요청 신호(DRS)에 해당하는 클러스터(110 또는 130)의 파워 상태를 확인하고, 확인 결과에 따라 파워 상태 데이터(P_DATA)를 생성할 수 있다(S633). 예컨대, 파워 상태 데이터(P_DATA)는 클러스터들(110 및 130) 각각의 파워-오프 해제 여부에 대한 데이터를 포함할 수 있다.
PMU(130)는 파워 상태 데이터(P_DATA)를 파워-오프 해제된 디버깅 컨트롤러 (150)로 전송할 수 있다(S635).
파워-오프 해제된 디버깅 컨트롤러(150)는 파워 상태 데이터(P_DATA)에 기초하여 제어 신호(CTRL)를 생성할 수 있다(S637).
파워-오프 해제된 디버깅 컨트롤러(150)는 파워 상태 데이터(P_DATA)로부터 디버깅 요청 신호(DRS)에 해당하는 클러스터(110 또는 113)가 파워-오프 상태임을 확인하고, 제어 신호(CTRL)를 생성할 수 있다(S637).
파워-오프 해제된 디버깅 컨트롤러(150)는 제어 신호(CTRL)를 PMU(130)로 전송할 수 있다(S640).
PMU(130)는 제어 신호(CTRL)에 응답하여 클러스터들(110 및 130) 중에서 디버깅 요청 신호(DRS)에 해당하는 클러스터(110 또는 130)의 파워-오프를 해제할 수 있다(S650).
파워-오프 해제된 클러스터(110 또는 130)는 파워-오프가 해제되었음을 지시하는 제2지시 신호(IDS2)를 파워-오프 해제된 디버깅 컨트롤러(150)로 전송할 수 있다(S655). 예컨대, 제2지시 신호(IDS2)는 파워-오프 해제된 클러스터(110 또는 130)로 공급되는 파워를 감지한 신호일 수 있다.
파워-오프 해제된 디버깅 컨트롤러(150)는 제2지시 신호(IDS2)에 응답하여 파워-오프 해제된 클러스터(110 또는 130)를 디버깅할 수 있다(S660).
파워-오프 해제된 디버깅 컨트롤러(150)가 파워 상태 데이터(P_DATA)로부터 디버깅 요청 신호(DRS)에 해당하는 클러스터(110 또는 113)의 파워-오프가 해제되었음을 알았을 때, SoC(10A)는 S637, S640, S650, 및 S655 단계를 수행하지 않고 바로 S660 단계를 수행할 수 있다.
도 8은 본 발명의 실시 예에 따른 SoC의 동작 방법을 설명하기 위한 플로우 차트이다.
도 1부터 도 8을 참조하면, PMU(130)는 디버깅 컨트롤러(150)를 파워-오프할 수 있다(S710).
PMU(130)는 JTAG 인터페이스(153)로부터 출력된 디버깅 요청 신호(DRS)를 수신하고(S730), 디버깅 요청 신호(DRS)에 응답하여 디버깅 컨트롤러(150)의 파워-오프를 해제할 수 있다(S750).
클러스터들(110 및 113) 중에서 디버깅 요청 신호(DRS)에 해당하는 클러스터(110 또는 113)가 파워-오프 상태일 때, PMU(130)는 파워-오프 해제된 디버깅 컨트롤러(150)의 제어에 따라 클러스터(110 또는 113)에 대한 파워-오프를 해제할 수 있다(S770).
파워-오프 해제된 디버깅 컨트롤러(150)는 파워-오프 해제된 클러스터(110 또는 113)를 디버깅할 수 있다(S790).
도 9는 본 발명의 다른 실시 예에 따른 SoC의 블록도이다.
도 9를 참조하면, SoC(10B)는 마더보드와 같은 인쇄 회로 기판(PCB), IC, 프로세서, 멀티미디어 프로세서, 또는 집적된 멀티미디어 프로세서로 구현될 수 있다. 또한, SoC(10B)는 애플리케이션 프로세서일 수 있다.
SoC(10B)는 멀티-클러스터(100), 버스들(101~105), PMU(130), 신호 분배 회로(140), 디버깅 컨트롤러(150-1), IP들(intellectual properties; 170-1 및 170-2), 및 메모리 컨트롤러(190)를 포함할 수 있다.
도 9에 도시된 SoC(10B)의 멀티-클러스터(100), PMU(130), 및 디버깅 컨트롤러(150-1)의 일부 동작은 도 1에 도시된 SoC(10A)의 멀티-클러스터(100), PMU (130), 및 디버깅 컨트롤러(150)의 동작과 실질적으로 동일할 수 있다.
각 구성요소(110, 130, 150-1, 170-1, 170-2, 및 190)는 버스들(101~105)을 통해 서로 통신할 수 있다.
제1버스(101)는 디버그 버스(debug bus)일 수 있고, 제2버스(102)와 제3버스 (103)는 제어 버스(control bus)일 수 있고, 제4버스(104)와 제5버스(105)는 데이터 버스(data bus)일 수 있다.
예컨대, 제2버스(102)는 주 제어 버스(main control bus)일 수 있고, 제3버스(103)은 서브 제어 버스(sub-control bus)일 수 있다. 제4버스(104)는 서브 데이터 버스(sub-data bus)일 수 있고, 제5버스(105)는 주 데이터 버스(main data bus)일 수 있다.
멀티-클러스터(100)는 이종(heterogeneous) 클러스터들, 예컨대 제1클러스터 (110)와 제2클러스터(113)를 포함할 수 있다. 도 9에서는 SoC(10B)가 하나의 멀티 클러스터(100)를 포함하는 것으로 도시되어 있으나, 실시 예에 따라, SoC(10B)는 두 개 이상의 멀티-클러스터들을 포함할 수 있다. 즉, 본 발명의 기술적 사상은 SoC(10B)에 포함된 멀티-클러스터의 개수에 한정되지 않는다.
제1클러스터(110)는 빅 코어들(B_C)을 포함하고, 제2클러스터(113)는 리틀 코어들(L_C)을 포함할 수 있다.
클러스터(110 또는 113)는 버스들(101~103)을 통해 트랜잭션(들)을 하나 또는 그 이상의 IP들(170-1 및/또는 170-2)에 할당할 수 있다.
하나 또는 그 이상의 IP들(170-1 및/또는 170-2)은 할당된 트랜잭션(들)을 처리할 수 있다.
본 명세서에서 기재된 IP는 SoC(10B)에서 사용되는 기능 블록(function block)을 의미할 수 있다.
예컨대, 상기 기능 블록은 GPU(graphics processing unit), 메모리(memory), USB(universal serial bus), PCI(peripheral component interconnect), 디지털 신호 프로세서(digital signal prosessor(DSP)), 와이어드 인터페이스(wired interface), 무선 인터페이스(wireless interface), 컨트롤러(controller), 임베디드 소프트웨어(embedded software), 코덱(codec), 비디오 모듈(예컨대, 카메라 인터페이스(camera interface), JPEG(Joint Photographic Experts Group) 프로세서, 비디오 프로세서(video processor), 믹서(mixer), 오디오 시스템(audio system), 또는 드라이버(driver) 등일 수 있다.
적어도 하나의 IP(170-1 및/또는 170-2)가 버스들(101~103)을 통해 할당된 트랜잭션(들)을 처리하기 위한 일련의 동작시 SoC(10B)에서 버스 행(bus hang)이 발생할 때, 호스트는 행 발생 신호(hang occurrence signal; HOS)를 SoC(10B)로 전송할 수 있다.
신호 분배 회로(140)는, 선택 신호(SEL)의 레벨에 따라, 호스트로부터 출력된 행 발생 신호(HOS)를 디버깅 컨트롤러(150-1)의 테스트 로직(test logic; 151)으로 전송하거나 디버깅 컨트롤러(150-1)의 디버깅 로직(debugging logic; 152)으로 전송할 수 있다. 예컨대, 신호 분배 회로(140)는 디멀티플렉서(demultiplexer)로 구현될 수 있다.
실시 예에 따라, 선택 신호(SEL)는 호스트로부터 생성될 수 있다.
다른 실시 예에 따라, 선택 신호(SEL)는 SoC(10B) 내부의 신호 생성 회로(미도시)로부터 생성될 수 있다.
예컨대, 선택 신호(SEL)가 제1레벨(예컨대, 데이터 0 또는 로우 레벨)일 때, 신호 분배 회로(140)는 행 발생 신호(HOS)를 테스트 로직(151)으로 전송할 수 있다.
선택 신호(SEL)가 제2레벨(예컨대, 데이터 1 또는 하이 레벨)일 때, 신호 분배 회로(140)는 행 발생 신호(HOS)를 디버깅 로직(152)으로 전송할 수 있다.
디버깅 컨트롤러(150-1)는 신호 분배 회로(140)로부터 출력된 행 발생 신호 (HOS)를 PMU(130)로 전송할 수 있다.
또한, 디버깅 컨트롤러(150-1)는 행 발생 신호(HOS)에 응답하여 인터럽트 신호(interrupt signal; INT)를 생성하고, 인터럽트 신호(INT)를 버스 행을 발생시킨 적어도 하나의 IP(170-1 및/또는 170-2)에 트랜잭션(들)을 할당한 클러스터(110 및/또는 113)로 전송할 수 있다.
이때, 클러스터(110 및/또는 113)는 인터럽트 신호(INT)에 응답하여 상기 트랜잭션(들)을 취소하고, 상기 트랜잭션(들)에 대한 정보를 인식할 수 있다. 따라서, 클러스터(110 및/또는 113)는 상기 트랜잭션(들)과 관련된 신호(또는 데이터)를 버스 행을 발생시킨 적어도 하나의 IP(170-1 및/또는 170-2)로 전송하지 않을 수 있다.
디버깅 컨트롤러(150-1)는 테스트 로직(151)과 디버깅 로직(152)을 포함할 수 있다.
선택 신호(SEL)가 제1레벨일 때, 테스트 로직(151)은 제1JTAG 인터페이스 (153-1)를 통해 신호 분배 회로(140)로부터 출력된 행 발생 신호(HOS)를 PMU(130)로 전송할 수 있다.
테스트 로직(151)은 행 발생 신호(HOS)에 응답하여 인터럽트 신호(INT)를 생성하고, 생성된 인터럽트 신호(INT)를 버스 행을 발생시킨 적어도 하나의 IP(170-1 및/또는 170-2)에 트랜잭션(들)을 할당한 클러스터(110 또는 113)로 전송할 수 있다.
선택 신호(SEL)가 제2레벨일 때, 디버깅 로직(152)은 제2JTAG 인터페이스 (153-2)를 통해 신호 분배 회로(140)로부터 출력된 행 발생 신호(HOS)를 PMU(130)로 전송할 수 있다.
디버깅 로직(152)은 행 발생 신호(HOS)에 응답하여 인터럽트 신호(INT)를 생성하고, 생성된 인터럽트 신호(INT)를 버스 행을 발생시킨 적어도 하나의 IP(170-1 및/또는 170-2)에 트랜잭션(들)을 할당한 클러스터(110 또는 113)로 전송할 수 있다.
도 9에서는 디버깅 컨트롤러(150-1)의 JTAG 인터페이스들(153-1 및 153-2) 각각이 대응되는 로직들(151 및 152) 각각에 포함되어 서로 다른 인터페이스로 구현된 예가 도시되어 있으나, 실시 예에 따라 JTAG 인터페이스들(153-1 및 153-2) 은 하나의 JTAG 인터페이스로 구현될 수 있다.
PMU(130)는, 디버깅 컨트롤러(150-1)의 제어에 따라, SoC(10B)에서 버스 행을 발생시킨 적어도 하나의 IP(170-1 및/또는 170-2)에 대응하는 제어 버스(103)를 리셋하기 위한 리셋 신호(RST)를 생성할 수 있다.
예컨대, PMU(130)는, 테스트 로직(151)의 제1JTAG 인터페이스(153-1) 또는 디버깅 로직(152)의 제2JTAG 인터페이스(153-2)로부터 출력된 행 발생 신호(HOS)에 응답하여, 버스 행을 발생시킨 적어도 하나의 IP(170-1 및/또는 170-2)에 대응하는 제어 버스(103)를 리셋하기 위한 리셋 신호(RST)를 생성할 수 있다.
PMU(130)는 리셋 신호(RST)를 버스 행을 발생시킨 적어도 하나의 IP(170-1 및/또는 170-2)에 대응하는 제어 버스(103)로 전송할 수 있다.
제어 버스(103)는 리셋 신호(RST)에 응답하여 버스 행을 리셋할 수 있다.
제어 버스(103)는 블록 로직들(block logics; 193 및 195)을 포함할 수 있다.
각 블록 로직(193 및 195)은 각 IP들(170-1 및 170-2)에 대응될 수 있다.
각 블록 로직(193 또는 195)은, 리셋 신호(RST)에 응답하여, 버스 행을 발생시킨 각 IP(170-1 또는 170-2)로의 신호(또는 데이터)의 입력을 차단하거나 각 IP(170-1 또는 170-2)로부터 출력된 신호(또는 데이터)의 입력을 차단할 수 있다.
적어도 하나의 블록 로직(193 및/또는 195)은 리셋 신호(RST)에 응답하여 버스 행을 발생시킨 적어도 하나의 IP(170-1 및/또는 170-2)를 리셋된 제어 버스 (103)로부터 차단(또는 분리)할 수 있다.
버스 행과 관련이 없는 IP(170-1 및/또는 170-2)는 리셋된 제어 버스(103)를 통해 클러스터들(110 및 113)과 신호(또는 데이터)를 주고받을 수 있다.
멀티-클러스터(100)는 메모리 컨트롤러(190)를 통해 외부 메모리(미도시)와 통신할 수 있다.
도 10은 본 발명의 또 다른 실시 예에 다른 SoC의 블록도이다.
도 10을 참조하면, SoC(10C)는 멀티-클러스터(100), 버스들(101~105), 신호 분배 회로(140), 디버깅 컨트롤러(150-1), IP들(170-1 및 170-2), 메모리 컨트롤러 (190), 및 감시 모듈(monitoring module; 197)을 포함할 수 있다.
본 명세서에서의 모듈(module)이라 함은 본 명세서에서 설명되는 각각의 명칭에 따른 기능과 동작을 수행할 수 있는 하드웨어를 의미할 수도 있고, 또는 특정한 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수도 있고, 또는 특정한 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예컨대 프로세서를 의미할 수 있다.
다시 말해, 모듈이란 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다. 각 모듈은 장치 또는 회로로 불릴 수도 있다.
도 10의 SoC(10C)의 감시 모듈(197)의 구조와 동작을 제외하면, SoC(10C)의 구조와 동작은 도 9의 PMU(130)를 제외한 SoC(10B)의 구조와 동작과 실질적으로 동일할 수 있다.
멀티-클러스터(100)는 이종(heterogeneous) 클러스터들, 예컨대 제1클러스터 (110)와 제2클러스터(113)를 포함할 수 있다.
클러스터(110 또는 113)는 제어 버스들(102 및 103)을 통해 트랜잭션을 적어도 하나의 IP(170-1 또는 170-2)에 할당할 수 있다.
적어도 하나의 IP(170-1 또는 170-2)는 할당된 트랜잭션을 처리할 수 있다.
적어도 하나의 IP(170-1 또는 170-2)가 제어 버스들(102 및 103)을 통해 할당된 트랜잭션을 처리하기 위한 일련의 동작시 SoC(10C)에서 버스 행아 발생될 때, 호스트는 행 발생 신호(HOS)를 SoC(10C)로 전송할 수 있다.
디버깅 컨트롤러(150-1)는 신호 분배 회로(140)로부터 출력된 행 발생 신호 (HOS)를 감시 모듈(197)로 전송할 수 있다.
디버깅 컨트롤러(150-1)는 테스트 로직(151)과 디버깅 로직(152)을 포함할 수 있다.
선택 신호(SEL)가 제1레벨일 때, 테스트 로직(151)은 제1JTAG 인터페이스 (153-1)를 통해 신호 분배 회로(140)로부터 출력된 행 발생 신호(HOS)를 감시 모듈 (197)로 전송할 수 있다.
선택 신호(SEL)가 제2레벨일 때, 디버깅 로직(152)은 제2JTAG 인터페이스 (153-2)를 통해 신호 분배 회로(140)로부터 출력된 행 발생 신호(HOS)를 감시 모듈 (197)로 전송할 수 있다.
감시 모듈(197)은, 테스트 로직(151)의 제1JTAG 인터페이스(153-1) 또는 디버깅 로직(152)의 제2JTAG 인터페이스(153-2)로부터 출력된 행 발생 신호(HOS)에 응답하여, 버스 행을 발생시킨 적어도 하나의 IP(170-1 및/또는 170-2)에 대응하는 제어 버스(103)를 리셋하기 위한 리셋 신호(RST)를 생성할 수 있다.
감시 모듈(197)은 생성된 리셋 신호(RST)를 버스 행을 발생시킨 적어도 하나의 IP(170-1 및/또는 170-2)에 대응하는 제어 버스(103)로 전송할 수 있다.
감시 모듈(195)은 행 발생 신호(HOS)에 응답하여 인터럽트 신호(INT)를 생성하고, 생성된 인터럽트 신호(INT)를 버스 행을 발생시킨 적어도 하나의 IP(170-1 및/또는 170-2)에 트랜잭션을 할당한 클러스터(110 또는 113)로 전송할 수 있다.
이때, 클러스터(110 또는 113)는 인터럽트 신호(INT)에 응답하여 상기 트랜잭션을 취소하고, 상기 트랜잭션에 대한 정보를 인식할 수 있다. 따라서, 클러스터 (110 또는 113)는 상기 트랜잭션과 관련된 신호(또는 데이터)를 버스 행을 발생시킨 적어도 하나의 IP(170-1 및/또는 170-2)로 전송하지 않을 수 있다.
도 11은 본 발명의 실시 예에 따른 전자 시스템의 실시 예를 나타내는 블록도이다.
도 11을 참조하면, 전자 시스템(200, 300, 또는 400)은 PC(personal computer), 데이터 서버, 또는 휴대용 전자 장치로 구현될 수 있다. 예컨대, 전자 시스템(200)은 랩탑 컴퓨터로 구현되고, 전자 시스템(300)은 스마트 폰 또는 태블릿 PC로 구현되고, 전자 시스템(400)은 디지털 카메라로 구현될 수 있다.
각 전자 시스템(200, 300, 및 400)은 실시 예에 불과하고, 각 전자 시스템 (200, 300, 및 400)은 다음과 같은 휴대용 전자 장치로 구현될 수 있다.
휴대용 전자 장치(300)는 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트폰 (smartphone), 태블릿(tablet) PC, PDA(personal digital assistant), EDA (enterprise digital assistant), 디지털 스틸 카메라 (digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 모바일 인터넷 장치(mobile internet device(MID)), 또는 e-북(e-book)으로 구현될 수 있다.
전자 시스템(200, 300, 또는 400)은 프로세서(10), 파워 소스(power source; 210), 저장 장치(storage; 220), 메모리(230), 입출력 포트들(240), 확장 카드(expansion card; 250), 네트워크 장치(network device; 260), 및 디스플레이 (display; 270)를 포함한다.
전자 시스템(200, 300, 또는 400)은 카메라 모듈(280)을 더 포함할 수 있다.
프로세서(10)는 도 1, 도 9, 또는 도 10 에 도시된 SoC(10A, 10B, 또는 10C, 집합적으로 "10")를 포함할 수 있다. 프로세서(100)는 멀티-코어 프로세서(multi core processor)일 수 있다.
프로세서(10)는 구성 요소들(elements; 210~280) 중에서 적어도 하나의 동작을 제어할 수 있다. 파워 소스(210)는 구성 요소들(10, 및 220~280) 중에서 적어도 하나로 동작 전압을 공급할 수 있다.
저장 장치(220)는 하드디스크 드라이브(hard disk drive) 또는 SSD(solid state drive)로 구현될 수 있다.
메모리(230)는 프로세서(10)의 동작을 제어할 수 있는 프로그램 코드를 저장할 수 있는 불휘발성 메모리(non-volatile memory)로 구현될 수도 있고, 데이터를 저장할 수 있는 휘발성 메모리(volatile memory)로 구현될 수도 있다.
예컨대, 상기 불휘발성 메모리는 플래시 메모리(flash memory), eMMC (embedded multimedia card), 및 UFS(univeral flash storage)일 수 있다.
예컨대, 상기 휘발성 메모리는 DRAM(dynamic random access memory)일 수 있다.
실시 예에 따라, 메모리(230)에 대한 데이터 액세스 동작(data access operation), 예컨대, 리드 동작(read operation), 라이트 동작(write operation, 또는 프로그램 동작(program operation)), 또는 이레이즈 동작(erase opearation)을 제어할 수 있는 메모리 컨트롤러(memory controller)는 프로세서(10)에 집적 (integrated) 또는 임베디드(embedded)될 수 있다.
다른 실시 예에 따라, 상기 메모리 컨트롤러는 프로세서(10)와 메모리(230) 사이에 구현될 수 있다.
입출력 포트들(240)은 전자 시스템(200, 300, 또는 400)으로 데이터를 전송하거나 또는 전자 시스템(200, 300, 또는 400)으로부터 출력된 데이터를 외부 장치로 전송할 수 있는 포트들을 의미한다.
예컨대, 입출력 포트들(240)은 컴퓨터 마우스(computer mouse), 터치 패드 (touch pad)와 같은 포인팅 장치(pointing device)를 접속하기 위한 포트, 디스플레이(270) 또는 프린터와 같은 출력 장치를 접속하기 위한 포트, 키패드(keypad), 또는 키보드와 같은 입력 장치를 접속하기 위한 포트, 또는 USB 플래시 드라이브를 접속하기 위한 포트일 수 있다.
확장 카드(250)는 SD(secure digital) 카드, MMC(multimedia card), 또는 eMMC로 구현될 수 있다. 실시 예에 따라, 확장 카드(250)는 SIM(subscriber identification module) 카드 또는 USIM(universal subscriber identity module) 카드일 수 있다.
네트워크 장치(260)는 외부와 전자 시스템(200, 300, 또는 400)의 통신을 위해서 전자 시스템(200, 300, 또는 400)을 유선 네트워크 또는 무선 네트워크에 접속시킬 수 있는 장치를 의미한다.
디스플레이(270)는 저장 장치(220), 메모리(230), 입출력 포트들(240), 확장 카드(250), 또는 네트워크 장치(260)로부터 출력된 데이터를 디스플레이할 수 있다.
카메라 모듈(280)은 광학 이미지를 전기적인 이미지로 변환할 수 있는 모듈을 의미한다. 따라서, 카메라 모듈(280)로부터 출력된 전기적인 이미지는 저장 장치(220), 메모리(230), 또는 확장 카드(250)에 저장될 수 있다. 또한, 카메라 모듈 (280)로부터 출력된 전기적인 이미지는 디스플레이(220)를 통하여 디스플레이될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면, 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
10A, 10B, 및 10C: 시스템 온 칩
100: 멀티-클러스터
110: 제1클러스터
113: 제2클러스터
130: PMU
140: 신호 분배 회로
150 및 150-1: 디버깅 컨트롤러
151: 테스트 로직
152: 디버깅 로직
153, 153-1, 및 153-2: JTAG 인터페이스

Claims (10)

  1. 제1파워 도메인에 포함된 디버깅 컨트롤러와 JTAG(Joint Test Action Group (JTAG)) 인터페이스;
    각각이 서로 다른 제2파워 도메인들 각각에 포함된 클러스터들; 및
    상기 JTAG 인터페이스로부터 출력된 디버깅 요청 신호에 응답하여, 상기 디버깅 컨트롤러에 대한 파워-오프를 해제하는 PMU(power management unit)을 포함하는 시스템 온 칩(system on chip).
  2. 제1항에 있어서,
    상기 PMU는 상기 JTAG 인터페이스로 항상 전력을 공급하는 시스템 온 칩.
  3. 제1항에 있어서,
    상기 디버깅 컨트롤러는 상기 JTAG 인터페이스를 포함하는 시스템 온 칩.
  4. 제1항에 있어서,
    상기 PMU는 상기 클러스터들 각각의 파워-게이팅을 제어하는 시스템 온 칩.
  5. 제1항에 있어서,
    상기 클러스터들 중에서 상기 디버깅 요청 신호에 해당하는 클러스터가 파워-오프 상태일 때,
    파워-오프 해제된 디버깅 컨트롤러의 제어에 따라, 상기 PMU는 상기 클러스터의 파워-오프를 해제하는 시스템 온 칩.
  6. 제5항에 있어서,
    상기 디버깅 컨트롤러는 상기 파워-오프 해제된 클러스터를 디버깅하는 시스템 온 칩.
  7. 제1항의 상기 시스템 온 칩을 포함하고,
    상기 PMU는 상기 JTAG 인터페이스로 항상 전력을 공급하는 애플리케이션 프로세서.
  8. 제1항의 상기 시스템 온 칩을 포함하는 애플리케이션 프로세서; 및
    상기 애플리케이션 프로세서에 접속된 메모리를 포함하며,
    상기 PMU는 상기 JTAG 인터페이스로 항상 전력을 공급하는 휴대용 전자 장치.
  9. 제1파워 도메인에 포함된 디버깅 컨트롤러와 JTAG 인터페이스, 각각이 서로 다른 제2파워 도메인들 각각에 포함된 클러스터들, 및 전력 관리 유닛(power management unit(PMU))을 포함하는 시스템 온 칩의 동작 방법에 있어서,
    상기 PMU가 상기 디버깅 컨트롤러를 파워-오프하는 단계;
    상기 PMU가 상기 JTAG 인터페이스로부터 출력된 디버깅 요청 신호를 수신하는 단계; 및
    상기 PMU가 상기 디버깅 요청 신호에 응답하여, 상기 디버깅 컨트롤러의 상기 파워-오프를 해제하는 단계를 포함하며,
    상기 PMU는 상기 JTAG 인터페이스로 항상 전력을 공급하는 시스템 온 칩의 동작 방법.
  10. 제9항에 있어서,
    상기 클러스터들 중에서 상기 디버깅 요청 신호에 해당하는 클러스터가 파워-오프 상태일 때,
    파워-오프 해제된 디버깅 컨트롤러의 제어에 따라, 상기 PMU가 상기 클러스터의 파워-오프를 해제하는 단계를 더 포함하는 시스템 온 칩의 동작 방법.
KR1020130096376A 2013-08-14 2013-08-14 시스템 온 칩, 이의 동작 방법, 및 이를 포함하는 시스템 KR20150019457A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130096376A KR20150019457A (ko) 2013-08-14 2013-08-14 시스템 온 칩, 이의 동작 방법, 및 이를 포함하는 시스템
US14/339,786 US9619011B2 (en) 2013-08-14 2014-07-24 System on chip for debugging a cluster regardless of power state of the cluster, method of operating the same, and system having the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130096376A KR20150019457A (ko) 2013-08-14 2013-08-14 시스템 온 칩, 이의 동작 방법, 및 이를 포함하는 시스템

Publications (1)

Publication Number Publication Date
KR20150019457A true KR20150019457A (ko) 2015-02-25

Family

ID=52467730

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130096376A KR20150019457A (ko) 2013-08-14 2013-08-14 시스템 온 칩, 이의 동작 방법, 및 이를 포함하는 시스템

Country Status (2)

Country Link
US (1) US9619011B2 (ko)
KR (1) KR20150019457A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170056778A (ko) * 2015-11-13 2017-05-24 삼성전자주식회사 시스템 온 칩 및 그것의 보안 디버깅 방법
KR20220143590A (ko) * 2021-04-16 2022-10-25 애플 인크. 다수의 독립적인 온-칩 상호연결부

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2543804A (en) * 2015-10-29 2017-05-03 Nordic Semiconductor Asa Microprocessor interfaces
GB2569537B (en) 2017-12-18 2020-02-26 Advanced Risc Mach Ltd A technique for managing power domains in an integrated circuit
US11847006B2 (en) * 2020-01-02 2023-12-19 Texas Instruments Incorporated Integrated circuit with debugger and arbitration interface
CN111783375A (zh) * 2020-06-30 2020-10-16 Oppo广东移动通信有限公司 芯片系统及相关装置
US20230009205A1 (en) * 2021-07-12 2023-01-12 Qualcomm Incorporated Performance overhead optimization in gpu scoping

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6895530B2 (en) * 2003-01-24 2005-05-17 Freescale Semiconductor, Inc. Method and apparatus for controlling a data processing system during debug
JP4296996B2 (ja) 2004-06-15 2009-07-15 富士通株式会社 マルチコアプロセサ制御方式
GB0420442D0 (en) 2004-09-14 2004-10-20 Ignios Ltd Debug in a multicore architecture
JP2006146412A (ja) 2004-11-17 2006-06-08 Nec Corp マルチコアプロセッサ及びデバッグ方法
US7536597B2 (en) 2005-04-27 2009-05-19 Texas Instruments Incorporated Apparatus and method for controlling power, clock, and reset during test and debug procedures for a plurality of processor/cores
US20070214389A1 (en) 2006-03-08 2007-09-13 Severson Matthew L JTAG power collapse debug
JP4800289B2 (ja) 2007-11-30 2011-10-26 富士通セミコンダクター株式会社 電源制御装置及びその電源制御装置を有するシステムlsi
JP2011181757A (ja) 2010-03-02 2011-09-15 Nec Corp Lsi
KR20110124617A (ko) * 2010-05-11 2011-11-17 삼성전자주식회사 시스템-온-칩 및 그것의 디버깅 방법
US8601315B2 (en) * 2010-11-01 2013-12-03 Freescale Semiconductor, Inc. Debugger recovery on exit from low power mode
JP2012113593A (ja) 2010-11-26 2012-06-14 Panasonic Corp 電源制御システム及び電源制御方法
US8402314B2 (en) * 2010-12-09 2013-03-19 Apple Inc. Debug registers for halting processor cores after reset or power off
US8713388B2 (en) * 2011-02-23 2014-04-29 Qualcomm Incorporated Integrated circuit testing with power collapsed
GB2501333B (en) * 2012-07-09 2014-03-05 Ultrasoc Technologies Ltd Debug architecture

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170056778A (ko) * 2015-11-13 2017-05-24 삼성전자주식회사 시스템 온 칩 및 그것의 보안 디버깅 방법
KR20220143590A (ko) * 2021-04-16 2022-10-25 애플 인크. 다수의 독립적인 온-칩 상호연결부

Also Published As

Publication number Publication date
US20150052410A1 (en) 2015-02-19
US9619011B2 (en) 2017-04-11

Similar Documents

Publication Publication Date Title
KR20150019457A (ko) 시스템 온 칩, 이의 동작 방법, 및 이를 포함하는 시스템
JP5697284B2 (ja) コンピュータプラットフォームのシステム電力状態を遷移させる方法、装置およびシステム
US8782456B2 (en) Dynamic and idle power reduction sequence using recombinant clock and power gating
KR102001414B1 (ko) 데이터 트랜잭션에 따라 전력공급을 제어하는 시스템-온-칩 및 그 동작방법
US8479031B2 (en) System switching unit having a switch to switch on/off a channel for data interaction between a first system and the bus interface of a second system according to the operation state of the second system
US11204857B2 (en) Integrated circuit and application processor
US9513662B2 (en) System and method for power management
KR20120096858A (ko) 모바일 디바이스의 어플리케이션 프로세서의 원격 시동
US11029744B2 (en) System, apparatus and method for controlling a processor based on effective stress information
KR101567177B1 (ko) 가상 모바일 플랫폼들의 세밀한 전력 관리
US9766673B2 (en) Supercapacitor-based power supply protection for multi-node systems
KR20170078662A (ko) 전자 시스템들에서의 멀티-인터페이싱된 디버깅을 위한 내장된 유니버셜 직렬 버스 (usb) 디버그 (eud)
KR20120030763A (ko) 계층적 전력 제어 회로, 이를 이용한 전력 제어 방법, 및 이를 포함하는 SoC 장치
KR20160128751A (ko) 애플리케이션 프로세서, 시스템 온 칩, 및 이를 포함하는 컴퓨팅 장치
KR20150065077A (ko) 시스템 온 칩, 이의 동작 방법, 및 이를 포함하는 시스템
KR20160125137A (ko) 애플리케이션 프로세서와 시스템 온 칩
JP5837631B2 (ja) モバイルデバイスにおけるバッテリー限界ステータスの表示
US10860083B2 (en) System, apparatus and method for collective power control of multiple intellectual property agents and a shared power rail
CN103970253B (zh) 省电操作方法与电子装置
KR20170073266A (ko) 시리얼 인터페이스를 사용하는 저장 장치의 작동 방법과 이를 포함하는 데이터 처리 시스템의 작동 방법
CN115905072A (zh) 计算机系统、基于PCIe设备的控制方法及相关设备
CN116009671A (zh) 一种服务器断电时使PCIeAIC工作的装置及方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid