KR102467172B1 - 반도체 장치 - Google Patents

반도체 장치 Download PDF

Info

Publication number
KR102467172B1
KR102467172B1 KR1020170010945A KR20170010945A KR102467172B1 KR 102467172 B1 KR102467172 B1 KR 102467172B1 KR 1020170010945 A KR1020170010945 A KR 1020170010945A KR 20170010945 A KR20170010945 A KR 20170010945A KR 102467172 B1 KR102467172 B1 KR 102467172B1
Authority
KR
South Korea
Prior art keywords
clock
circuit
request signal
signal
control circuit
Prior art date
Application number
KR1020170010945A
Other languages
English (en)
Other versions
KR20170088768A (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 US15/415,020 priority Critical patent/US10429881B2/en
Priority to US15/414,969 priority patent/US10296065B2/en
Priority to US15/415,106 priority patent/US10296066B2/en
Priority to US15/415,041 priority patent/US10248155B2/en
Priority to US15/414,819 priority patent/US10303203B2/en
Priority to US15/415,162 priority patent/US10209734B2/en
Priority to DE102017110784.3A priority patent/DE102017110784A1/de
Priority to DE102017110823.8A priority patent/DE102017110823A1/de
Priority to DE102017110788.6A priority patent/DE102017110788A1/de
Priority to DE102017110799.1A priority patent/DE102017110799A1/de
Priority to DE102017110821.1A priority patent/DE102017110821A1/de
Priority to TW106116846A priority patent/TWI772300B/zh
Priority to TW106116871A priority patent/TWI771301B/zh
Priority to TW106116978A priority patent/TWI747904B/zh
Priority to DE102017111189.1A priority patent/DE102017111189A1/de
Priority to CN201710608445.1A priority patent/CN108345351A/zh
Priority to CN202310951133.6A priority patent/CN117075683A/zh
Priority to TW106124821A priority patent/TWI740988B/zh
Priority to TW106124803A priority patent/TWI727075B/zh
Publication of KR20170088768A publication Critical patent/KR20170088768A/ko
Priority to US16/393,106 priority patent/US10928849B2/en
Priority to US16/416,600 priority patent/US10969854B2/en
Priority to US17/154,373 priority patent/US11314278B2/en
Priority to US17/159,318 priority patent/US11340685B2/en
Priority to US17/713,656 priority patent/US11747853B2/en
Priority to US17/731,953 priority patent/US11789515B2/en
Application granted granted Critical
Publication of KR102467172B1 publication Critical patent/KR102467172B1/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/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/06Clock generators producing several clock signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/10Distribution of clock signals, e.g. skew
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/08Clock generators with changeable or programmable clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • 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
    • 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/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

반도체 장치가 제공된다. 상기 반도체 장치는, 제1 클럭 제어 회로(clock control circuit)와 제1 클럭 게이팅 회로(clock gating circuit)를 포함하는 제1 클럭 생성부, 및 제2 클럭 제어 회로를 포함하는 제2 클럭 생성부를 포함하고, 상기 제2 클럭 제어 회로는 상기 제1 클럭 제어 회로에 제1 요청 신호를 전송하고, 상기 제1 클럭 제어 회로는 상기 제2 클럭 제어 회로에 제1 응답 신호를 전송하고, 상기 제1 요청 신호가 로우 레벨(low level)인 경우, 상기 제1 클럭 제어 회로는 상기 제1 클럭 게이팅 회로의 게이팅 동작을 활성화하고, 상기 제1 응답 신호는 로우 레벨이고, 상기 제1 요청 신호가 하이 레벨(high level)로 트랜지션된 경우, 상기 제1 클럭 제어 회로는 상기 제1 클럭 게이팅 회로의 게이팅 동작을 비활성화하고, 상기 제1 응답 신호는 하이 레벨로 트랜지션된다.

Description

반도체 장치{SEMICONDUCTOR DEVICE}
본 발명은 반도체 장치에 관한 것이다.
컴퓨터, 통신, 방송 등이 점차 통합되는 컨버전스(Convergence)화에 따라, 기존 ASIC(Application Specific IC; 주문형 반도체)와 ASSP(Application Specific Standard Product; 특정용도 표준제품)의 수요는 반도체 장치(System on Chip)의 수요로 변환되고 있는 추세이다. 또한, IT(Information Technology) 기기의 경박 단소화 및 고기능화 추세도 반도체 장치를 촉진시키는 요인들 중의 하나이다.
그러한 반도체 장치는, 반도체 공정 기술의 발전에 힘입어 기존의 여러 가지 기능을 가진 기능 블록들, 예컨대 IP(Intellectural Property)들이 하나의 칩 상에 집약적으로 구현된 형태이다.
반도체 장치의 집적도 및 사이즈가 커지고 동작 속도도 높아짐에 따라, 저전력 소비 이슈도 매우 중요한 팩터들 중의 하나가 된다. 왜냐하면 전력 소비가 심할 경우에 칩의 온도가 높아져 동작 불능은 물론 패키지(package)가 파손되는 경우도 초래될 수 있다.
반도체 장치내의 반도체 회로에서, 전력 절감(power reduction) 등의 목적을 위해 클럭을 제공하거나 차단하는 회로가 필요한 경우가 있다. 클럭 게이팅 회로(Clock Gating Circuit)는 특정 회로의 동작이 필요하지 않는 경우 그 회로에 클럭을 공급하지 않는데 이용되고 있다.
본 발명이 해결하고자 하는 과제는, 반도체 회로에서 전력 절감을 위해 클럭 게이팅의 효과를 향상시킬 수 있는 하드웨어 구조를 포함하는 반도체 장치를 제공하는 것이다. 특히, 본 발명에 따르면, 클럭 게이팅 동작을 자동적으로 수행할 수 있다.
본 발명이 해결하고자 하는 과제는, 이상에서 언급한 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 해당 기술 분야의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 반도체 장치는, 제1 클럭 제어 회로(clock control circuit)와 제1 클럭 게이팅 회로(clock gating circuit)를 포함하는 제1 클럭 생성부, 및 제2 클럭 제어 회로를 포함하는 제2 클럭 생성부를 포함하고, 상기 제2 클럭 제어 회로는 상기 제1 클럭 제어 회로에 제1 요청 신호를 전송하고, 상기 제1 클럭 제어 회로는 상기 제2 클럭 제어 회로에 제1 응답 신호를 전송하고, 상기 제1 요청 신호가 로우 레벨(low level)인 경우, 상기 제1 클럭 제어 회로는 상기 제1 클럭 게이팅 회로의 게이팅 동작을 활성화하고, 상기 제1 응답 신호는 로우 레벨이고, 상기 제1 요청 신호가 하이 레벨(high level)로 트랜지션된 경우, 상기 제1 클럭 제어 회로는 상기 제1 클럭 게이팅 회로의 게이팅 동작을 비활성화하고, 상기 제1 응답 신호는 하이 레벨로 트랜지션된다.
상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 반도체 장치는, 클럭 제어 회로, 상기 클럭 제어 회로로부터 제1 요청 신호를 제공받고, 차일드 회로(child circuit)로부터 제2 요청 신호를 제공받는 어댑터 회로(adapter circuit), 및 상기 클럭 제어 회로의 제어에 따라 클럭 분주율(dividing ratio)을 변경하는 클럭 분주 회로(clock dividing circuit)를 포함하고, 상기 어댑터 회로는 상기 제1 요청 신호 또는 상기 제2 요청 신호에 따라 패런트 회로(parent circuit)로 제3 요청 신호를 전송하고, 상기 제3 요청 신호가 하이 레벨(high level)인 경우, 상기 패런트 회로로부터 상기 어댑터 회로로 제공되는 응답 신호가 하이 레벨이고, 상기 클럭 분주 회로의 클럭 분주율 변경 동작이 활성화된다.
상기 과제를 해결하기 위한 본 발명의 몇몇 실시예에 따른 반도체 장치는, 선택 신호(selection signal)를 제공받는 클럭 제어 회로, 차일드 회로(child circuit)로부터 제1 요청 신호를 제공받아 상기 클럭 제어 회로로 상기 제1 요청 신호를 전송하는 어댑터 회로(adapter circuit), 및 상기 클럭 제어 회로의 제어에 따라, 제1 패런트 회로(parent circuit)로부터 제공되는 제1 동작 클럭 및 제2 패런트 회로로부터 제공되는 제2 동작 클럭 중 하나를 선택하여 출력하는 먹스 회로(MUX circuit)를 포함하고, 상기 클럭 제어 회로는 상기 제1 패런트 회로로 제2 요청 신호를 전송하고, 상기 제2 패런트 회로로 제3 요청 신호를 전송하고, 상기 선택 신호에 따라 상기 제1 동작 클럭이 선택된 경우, 상기 제2 요청 신호가 하이 레벨(high level)이고, 상기 제1 패런트 회로로부터 상기 어댑터 회로로 제공되는 제1 응답 신호가 하이 레벨이고, 상기 제3 요청 신호가 로우 레벨(low level)이고, 상기 제2 패런트 회로로부터 상기 어댑터 회로로 제공되는 제2 응답 신호가 로우 레벨이고, 상기 선택 신호의 레벨 값이 변경된 경우, 상기 제2 요청 신호와 상기 제3 요청 신호가 모두 하이 레벨로 트랜지션된다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 몇몇의 실시예에 따른 반도체 장치(System On Chip)를 도시한 블록도이다.
도 2는 본 발명의 몇몇의 실시예에 따른 반도체 장치(System On Chip)에 포함된 클럭 관리 유닛을 도시한 블록도이다.
도 3은 본 발명의 몇몇의 실시예에 따른 반도체 장치(System On Chip)에 포함된 IP를 도시한 블록도이다.
도 4는 복수 개의 클럭 제어 회로 사이의 신호 전송 패스(path)를 도시한 것이다.
도 5a는 본 발명에어 이용되는 클럭 요청 신호와 클럭 응답 신호를 설명하기 위한 도면이다.
도 5b는 본 발명에서 이용되는 클럭 요청 신호와 클럭 응답 신호에 대한 클럭 레벨 천이(transition)를 도시한 것이다.
도 6은 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 게이팅 컴포넌트의 구현 방식을 설명하기 위한 도면이다.
도 7은 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 게이팅 컴포넌트의 구조를 설명하기 위한 도면이다.
도 8은 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 게이팅 컴포넌트의 비헤이비어를 설명하기 위한 타이밍도이다.
도 9a는 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 먹스 컴포넌트의 구현 방식을 설명하기 위한 도면이다.
도 9b는 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 먹스 컴포넌트의 FSM을 설명하기 위한 도면이다.
도 10은 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 먹스 컴포넌트의 구조를 설명하기 위한 도면이다.
도 11 내지 도 20은 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 먹스 컴포넌트의 비헤이비어를 설명하기 위한 타이밍도이다.
도 21a는 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 분주 컴포넌트의 구현 방식을 설명하기 위한 도면이다.
도 21b는 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 분주 컴포넌트의 FSM을 설명하기 위한 도면이다.
도 22는 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 분주 컴포넌트의 구조를 설명하기 위한 도면이다.
도 23은 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 분주 컴포넌트의 비헤이비어를 설명하기 위한 타이밍도이다.
도 24는 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 PLL 컨트롤러의 구현 방식을 설명하기 위한 도면이다.
도 25는 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 PLL 컨트롤러 회로 중 먹셀의 구조를 설명하기 위한 도면이다.
도 26 및 도 27은 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 PLL 컨트롤러의 비헤이비어를 설명하기 위한 타이밍도이다.
도 28은 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 PLL 유저 컨트롤러의 구현 방식을 나타낸 도면이다.
도 29는 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 어댑터 컴포넌트의 구현 방식을 설명하기 위한 도면이다.
도 30은 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 히스테리시스 필터의 구조를 설명하기 위한 도면이다.
도 31 내지 도 33은 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 히스테리시스 필터의 비헤이비어를 설명하기 위한 타이밍도이다.
도 34는 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 전력 관리 유닛의 구조를 설명하기 위한 블록도이다.
도 35 내지 도 39는 전력 관리 유닛이 클럭의 온/오프를 수행하는 예시를 도시한 타이밍도이다.
도 40은 본 발명의 몇몇의 실시예에 따른 반도체 장치를 나타내는 블록도이다.
도 1은 본 발명의 몇몇의 실시예에 따른 반도체 장치(System On Chip)를 도시한 블록도이다.
도 1을 참조하면, 본 발명의 몇몇의 실시예에 따른 반도체 장치는 입출력 패드(101), 클럭 관리 유닛(CMU; Clock Management Unit)(100), 전력 관리 유닛(PMU; Power Management Unit)(300) 및 로직 블록(logic block)을 포함할 수 있다. 예를 들어, 로직 블록은 적어도 하나의 IP 블록(intellectual property)(200, 210, 220)으로 구현될 수 있다.
클럭 관리 유닛(100)은 제1 내지 제3 IP 블록(200, 210, 220) 각각으로 제공하기 위한 동작 클럭 신호를 생성할 수 있다. 예를 들면, 클럭 관리 유닛(100)은 제1 내지 제3 클럭 신호(CLK1, CLK2, CLK3)를 생성할 수 있다.
제1 내지 제3 IP 블록(200, 210, 220) 각각은 시스템 버스(bus)에 연결되며, 시스템 버스를 통하여 상호간에 통신할 수 있다. 본 발명의 몇몇의 실시예에서, 제1 내지 제3 IP 블록(200, 210, 220) 각각은 프로세서(processor), 그래픽 프로세서(graphic processor), 메모리 컨트롤러(graphic controller), 입출력 인터페이스 블록(input and output interface block) 등을 포함할 수 있다.
클럭 관리 유닛(100)은 제1 IP 블록(200)으로 제1 클럭 신호(CLK1)를 제공할 수 있다. 클럭 관리 유닛(100)은 제2 IP 블록(210)으로 제2 클럭 신호(CLK2)를 제공할 수 있다. 클럭 관리 유닛(100)은 제3 IP 블록(220)으로 제3 클럭 신호(CLK3)를 제공할 수 있다.
제1 내지 제3 IP 블록(200, 210, 220) 중 어느 하나는 풀 핸드셰이크 방식(full handshake method)에 따라 클럭 관리 유닛(100)으로 클럭 요청 신호를 전송할 수 있다.
예를 들어, 제1 IP 블록(200)은 풀 핸드셰이크 방식에 따라 클럭 관리 유닛(100)으로 제1 클럭 요청 신호(REQ1)를 전송할 수 있다. 클럭 관리 유닛(100)은 제1 클럭 요청 신호(REQ1)를 수신하고, 제1 IP 블록(200)으로 제1 클럭 응답 신호(ACK1)를 전송할 수 있다. 또한, 동시에 클럭 관리 유닛(100)은 제1 클럭 신호(CLK1)을 제1 IP 블록(200)으로 전송할 수 있다.
본 발명의 몇몇의 실시예에서, 클럭 관리 유닛(100)과 제1 내지 제3 IP 블록(200, 210, 220) 사이의 인터페이스는 풀 핸드셰이크 방식(full handshake method)의 형식을 가질 수 있다. 본 발명의 몇몇의 실시예에서, 상기 인터페이스는 ARM 사의 Q-채널 인터페이스(Q-Channel Interface) 또는 P-채널 인터페이스(P-Channel Interface)에 따르도록 구현될 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다.
클럭 게이팅(clock gating)은 컴퓨터 시스템 내부를 작은 기능 블록들로 구분한 뒤 사용하지 않는 부분의 전력은 끊는 기능이다. 실제 컴퓨터를 사용하면서 컴퓨터 시스템의 모든 부분이 항상 동작하는 것은 아니므로 사용하지 않는 부분의 블록을 정지시켜서 소비 전력을 낮추고, 더불어 기능이 정지된 블록에서 생기는 발열도 줄일 수 있다.
본 발명의 몇몇의 실시예에 따른 클럭 관리 유닛(100)은 제1 내지 제3 IP 블록(200, 210, 220) 중 동작 클럭이 필요하지 않은 IP 블록에 대하여 후단으로부터 순차적으로 클럭 게이팅을 수행하여, IP 블록 동작에 오류를 발생시키지 않으면서 자동적으로 클럭 게이팅을 수행하여 전력 소비를 줄일 수 있다.
전력 관리 유닛(300)은 반도체 장치(100)에 공급되는 전원을 제어한다. 예를 들어, 반도체 장치(100)가 대기 모드에 들어가면, 전력 관리 유닛(300)은 전력 조절 회로를 오프 하여 반도체 장치(100)로 제공되는 공급 전원을 차단한다. 이 때, 전력 관리 유닛(300)은 계속적으로 전력을 소모하지만, 전력 관리 유닛(300)에서 소모되는 전력은 반도체 장치(100) 전체에서 소모되는 전력에 비해 아주 작은 부분에 해당되므로, 대기 모드에서는 반도체 장치(100)의 전력 소비가 크게 줄어든다.
구체적으로, 전력 관리 유닛(300)은 반도체 장치(100)가 대기 모드인 경우, 클럭 관리 유닛(100)으로 제공되는 공급 전력을 차단할 수 있다. 이는 제1 내지 제3 IP 블록(200, 210, 220)에서 클럭 요청이 없는 경우에 해당할 수 있다.
도 2는 본 발명의 몇몇의 실시예에 따른 반도체 장치(System On Chip)에 포함된 클럭 관리 유닛을 도시한 블록도이다.
도 2를 참조하면, 클럭 관리 유닛(100)은 클럭 컴포넌트(Clock Component)(120a, 120b, 120c, 120d, 120e, 120f, 120g), 채널 관리 회로(Channel Management circuit, CM)(130, 132) 및 클럭 관리 유닛 컨트롤러(Clock Management Controller, CMU Controller)(110)를 포함한다. 클럭 컴포넌트(120a, 120b, 120c, 120d, 120e, 120f, 120g)는 IP 블록(200, 210)에 제공할 클럭 신호를 생성하고, 채널 관리 회로(130, 132)는 클럭 컴포넌트(120f, 120g)와 IP 블록(200, 210) 사이에 배치되어 클럭 관리 유닛(100)과 IP 블록(200, 210) 사이의 통신 채널(Channel, CH)을 제공한다. 그리고 클럭 관리 유닛 컨트롤러(110)는 클럭 컴포넌트(120a, 120b, 120c, 120d, 120e, 120f, 120g)를 이용하여 IP 블록(200, 210)에 클럭 신호를 제공한다.
본 발명의 몇몇의 실시예에서, 채널 관리 회로(130, 132)가 제공하는 통신 채널(CH)은 ARM 사의 LPI(Low Power Interface), Q-채널 인터페이스(Q-Channel Interface) 또는 P-채널 인터페이스(P-Channel Interface)에 따르도록 구현될 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니고, 구현 목적에 따라 정해진 임의의 통신 프로토콜을 따르는 통신 채널(CH)로 구현될 수 있다.
클럭 컴포넌트(120a, 120b, 120c, 120d, 120e, 120f, 120g)는 각각 클럭 소오스(Clock Source, CS)(124a, 124b, 124c, 124d, 124e, 124f, 124g)와, 클럭 소오스(124a, 124b, 124c, 124d, 124e, 124f, 124g)를 각각 제어하는 클럭 제어 회로(Clock Control circuit, CC)(122a, 122b, 122c, 122d, 122e, 122f, 122g)를 포함한다. 클럭 소오스(124a, 124b, 124c, 124d, 124e, 124f, 124g)는, 예컨대, 다중화 회로(MUX circuit), 클럭 분주 회로(clock dividing circuit), 단기 정지 회로(short stop circuit), 클럭 게이팅 회로(clock gating circuit) 등을 포함할 수 있다.
클럭 컴포넌트(120a, 120b, 120c, 120d, 120e, 120f, 120g)는 서로 간에 부모-자식 관계를 형성한다. 본 실시예에서 클럭 컴포넌트(120a)는 클럭 컴포넌트(120b)의 부모이고, 클럭 컴포넌트(120b)는 클럭 컴포넌트(120a)의 자식이자 클럭 컴포넌트(120c)의 부모이다. 또한 클럭 컴포넌트(120e)는 2 개의 클럭 컴포넌트(120f, 120g)의 부모이고, 클럭 컴포넌트(120f, 120g)는 클럭 컴포넌트(120e)의 자식이다. 한편, 본 실시예에서 PLL(Phase Locked Loop)에 가장 가깝도록 배치된 클럭 컴포넌트(120a)는 루트(root) 클럭 컴포넌트이고, IP 블록(200, 210)에 가장 가깝도록 배치된 클럭 컴포넌트(120f, 120g)는 리프(leaf) 클럭 컴포넌트이다. 이와 같은 부모-자식 관계는 클럭 컴포넌트(120a, 120b, 120c, 120d, 120e, 120f, 120g) 간의 부모-자식 관계에 따라 필연적으로 클럭 제어 회로(122a, 122b, 122c, 122d, 122e, 122f, 122g) 간, 그리고 클럭 소오스(124a, 124b, 124c, 124d, 124e, 124f, 124g) 간에도 형성된다.
클럭 제어 회로(122a, 122b, 122c, 122d, 122e, 122f, 122g)는 부모와 자식 간에 클럭 요청(REQ) 및 이에 대한 애크(acknowledgement)(ACK)를 주고 받으며, IP 블록(200, 210)에 클럭 신호를 제공한다.
예를 들어, IP 블록(200)이 클럭 신호를 필요로 하지 않는 경우, 예컨대 IP 블록(200)이 슬립(sleep) 상태가 되어야 할 필요가 있는 경우, 클럭 관리 유닛(100)은 IP 블록(200)에 대한 클럭 신호의 제공을 중지한다.
구체적으로, 채널 관리 회로(130)는, 클럭 관리 유닛(100) 또는 클럭 관리 유닛 컨트롤러(110)의 제어 하에, IP 블록(200)에 클럭 신호의 제공을 중지하겠다는 제1 신호를 전송한다. 제1 신호를 수신한 IP 블록(200)은 처리 중인 작업을 완료한 후 클럭 신호가 중지되어도 좋다는 제2 신호를 채널 관리 회로(130)에 전송한다. 채널 관리 회로(130)는 IP 블록(200)으로부터 제2 신호를 수신한 후, 자신의 부모에 해당하는 클럭 컴포넌트(120f)에 클럭 신호의 제공을 중지할 것을 요청한다.
일례로, 만일 채널 관리 회로(130)가 제공하는 통신 채널(CH)이 Q-채널 인터페이스를 따르는 경우라면, 채널 관리 회로(130)는 IP 블록(200)에 제1 논리 값(예컨대, 논리 로우(logic low), 이하 L로 표시)을 갖는 QREQn 신호를 제1 신호로서 전송한다. 이후 채널 관리 회로(130)는 IP 블록(200)으로부터, 예컨대 제1 논리 값을 갖는 QACCEPTn 신호를 제2 신호로서 수신한 후, 클럭 컴포넌트(120f)에, 예컨대 제1 논리 값을 갖는 클럭 요청(REQ)를 전송한다. 이 경우, 상기 제1 논리 값을 갖는 클럭 요청(REQ)은 "클럭 제공 중지 요청"을 말한다.
채널 관리 회로(130)로부터 제1 논리 값을 갖는 클럭 요청(REQ), 즉 클럭 제공 중지 요청을 수신한 클럭 제어 회로(122f)는 클럭 소오스(124f)(예컨대, 클럭 게이팅 회로)를 디스에이블(disable)하여 클럭 신호의 제공을 중지하고, 이에 따라 IP 블록(200)은 슬립 모드로 진입할 수 있게 된다. 이 과정에서 클럭 제어 회로(122f)는 제1 논리 값을 갖는 애크(ACK)를 채널 관리 회로(130)에 제공할 수 있다. 유의할 점은 채널 관리 회로(130)가 제1 논리 값을 갖는 클럭 제공 중지 요청을 전송한 후 제1 논리 값을 갖는 애크(ACK)를 수신했다고 해서 클럭 소오스(124f)로부터의 클럭 제공의 중지가 보장되는 것은 아니다. 다만, 상기 애크(ACK)는, 채널 관리 회로(130)의 부모인 클럭 컴포넌트(120f)가 채널 관리 회로(130)에 더 이상 클럭 제공을 할 필요가 없다는 것을 클럭 제어 회로(122f)가 인지했다는 의미를 가질 뿐이다.
한편, 클럭 컴포넌트(120f)의 클럭 제어 회로(122f)는 자신의 부모에 해당하는 클럭 컴포넌트(120e)의 클럭 제어 회로(122e)에 제1 논리 값을 갖는 클럭 요청(REQ)을 전송한다. 만일 IP 블록(210) 역시 클럭 신호를 필요로 하지 않는 경우, 예컨대 클럭 제어 회로(122e)가 클럭 제어 회로(122g)로부터 클럭 제공 중지 요청을 수신한 경우라면, 클럭 제어 회로(122e)는 클럭 소오스(124e)(예컨대, 클럭 분주 회로)를 디스에이블하여 클럭 신호의 제공을 중지한다. 이에 따라 IP 블록(200, 210)은 슬립 모드로 진입할 수 있게 된다.
이와 같은 동작은 다른 클럭 제어 회로(122a, 122b, 122c, 122d)에 대해서도 마찬가지로 수행될 수 있다.
이와 다르게, 클럭 컴포넌트(120f)의 클럭 제어 회로(122f)가 자신의 부모에 해당하는 클럭 컴포넌트(120e)의 클럭 제어 회로(122e)에 제1 논리 값을 갖는 클럭 요청(REQ)을 전송하였지만, IP 블록(210)이 실행(running) 상태에 있는 경우라면, 클럭 제어 회로(122e)는 클럭 소오스(124e)를 디스에이블할 수 없다. 이후 IP 블록(210)이 더 이상 클럭 신호를 필요로 하지 않는 경우가 되어서야 비로소 클럭 제어 회로(122e)는 클럭 소오스(124e)를 디스에이블하고 자신의 부모에 해당하는 클럭 제어 회로(120d)에 제1 논리 값을 갖는 클럭 요청(REQ)을 전송할 수 있다. 즉, 클럭 제어 회로(122e)는 자식에 해당하는 클럭 제어 회로(122f, 122g) 모두로부터 클럭 제공 중지 요청을 수신한 경우에만 클럭 소오스(124e)를 디스에이블할 수 있다.
한편, IP 블록(200, 210)이 슬립 상태에 있어서 클럭 소오스(124a, 124b, 124c, 124d, 124e, 124f)가 모두 디스에이블되었다가 IP 블록(200)이 실행 상태로 진입한 경우, 클럭 관리 유닛(100)은 IP 블록(200, 210)에 대한 클럭 신호의 제공을 재개한다.
채널 관리 회로(130)는 자신의 부모에 해당하는 클럭 컴포넌트(120f)의 클럭 제어 회로(122f)에 제2 논리 값(예컨대, 논리 하이(logic high), 이하 H로 표시)을 갖는 클럭 요청(REQ)을 전송하고, 클럭 제어 회로(122f)로부터의 애크(ACK)를 대기한다. 여기서 제2 논리 값을 갖는 클럭 요청(REQ)은 "클럭 제공 요청"을 말하고, 클럭 제공 요청에 대한 애크(ACK)는 클럭 소오스(124f)로부터 클럭 제공이 재개되었음을 의미한다. 클럭 제어 회로(122f)는 클럭 소오스(124f)(예컨대, 클럭 게이팅 회로)를 바로 인에이블(enable)하지 못하고, 부모로부터 클럭 신호가 제공되기를 대기한다.
다음으로 클럭 제어 회로(122f)는 자신의 부모에 해당하는 클럭 제어회로(122e)에 제2 논리 값을 갖는 클럭 요청(REQ), 즉 클럭 제공 요청을 전송하고, 클럭 제어 회로(122e)로부터의 애크(ACK)를 대기한다. 이와 같은 동작은 클럭 제어 회로(122a, 122b, 122c, 122d)에 대해서도 마찬가지로 수행될 수 있다.
클럭 제어 회로(122b)로부터 제2 논리 값을 갖는 클럭 요청(REQ)를 수신한 루트 클럭 컴포넌트인 클럭 제어 회로(122a)는 클럭 소오스(124a)(예컨대, 다중화 회로)를 인에이블하고 애크(ACK)를 클럭 제어 회로(122b)에 전송한다. 이와 같은 방식으로 클럭 소오스(124b, 124c, 124d, 124d, 124e)가 순차적으로 인에이블되면 비로소 클럭 제어 회로(122e)는 클럭 제어 회로(122f)에 클럭 소오스(124e)로부터 클럭 제공이 재개되었음을 알리는 애크(ACK)를 전송한다. 애크(ACK)를 수신한 클럭 제어 회로(122f)는 비로소 클럭 소오스(124f)를 인에이블하여 클럭 신호를 IP 블록(200)에 제공하고, 채널 관리 회로(130)에 애크(ACK)를 제공한다.
이와 같이 클럭 제어 회로(122a, 122b, 122c, 122d, 122e, 122f, 122g)는 부모와 자식 간에 클럭 요청(REQ) 및 이에 대한 애크 (ACK)를 주고 받는 풀 핸드셰이크(full handshake) 방식으로 동작한다. 이에 따라, 클럭 제어 회로(122a, 122b, 122c, 122d, 122e, 122f, 122g)는 하드웨어적으로 클럭 소오스(124a, 124b, 124c, 124d, 124e, 124f, 124g)를 제어하여 IP 블록(200, 210)에 제공되는 클럭 신호를 제어할 수 있다.
이들 클럭 제어 회로(122a, 122b, 122c, 122d, 122e, 122f, 122g)는 자체적으로 동작하여 부모에게 클럭 요청(REQ)을 전송하거나 클럭 소오스(124a, 124b, 124c, 124d, 124e, 124f, 124g)를 제어할 수 있고, 클럭 관리 유닛 컨트롤러(110)의 제어 하에 동작할 수도 있다. 한편, 본 발명의 몇몇의 실시예에서, 클럭 제어 회로(122a, 122b, 122c, 122d, 122e, 122f, 122g)는 부모와 자식 간에 주고 받는 클럭 요청(REQ)에 따라 클럭 소오스(124a, 124b, 124c, 124d, 124e, 124f, 124g)를 각각 제어하는 유한 상태 기계(Finite State Machine, FSM)를 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 클럭 컴포넌트(120a)는 PLL 컨트롤러일 수 있다.
PLL 컨트롤러는 오실레이터(OSC)로부터 발진된 일정하거나 가변적인 주파수 신호를 제공받으며, PLL 출력을 사용하는 컴포넌트(component)가 존재하지 않는 경우에 자동적으로 PLL을 오프(off)시키도록 동작할 수 있다. 또는, PLL 컨트롤러는 PLL 출력을 사용하는 컴포넌트(component)가 존재하지 않는 경우에 자동적으로 PLL을 바이패스 모드(bypass mode)로 전환시키도록 동작할 수 있다. 또는, PLL 컨트롤러는 PLL 출력을 사용하는 컴포넌트가 존재하지 않는 경우에 PLL의 동작에 아무런 영향을 미치지 않을 수도 있다.
PLL 컨트롤러는 클럭을 생성해 내는 어떠한 컴포넌트로도 대체될 수 있다. 예를 들어서 PLL 컨트롤러는 링 오실레이터(ring oscillator)를 이용하여 구현될 수 있으며, 크리스탈 오실레이터(crystal oscillator)를 이용하여 구현될 수도 있다.
본 발명의 몇몇의 실시예에서, 클럭 컴포넌트(120b)는 클럭 먹스 유닛(Clock Mux Unit)일 수 있다.
클럭 먹스 유닛은 클럭 제어 회로(122b)와 먹스 회로(124b)를 포함할 수 있으며, 클럭 먹스 유닛의 클럭 제어 회로(122b)는 순차적 비헤이비어(sequential behavior)를 갖고 동작할 수 있다. 클럭 제어 회로(122b)는 클럭의 온/오프(on/off)를 제어하고, 클럭이 오프된 상태에서 클럭 먹스 유닛의 먹스 셀렉션(selection)의 변경을 위해 자체적으로 클럭 요청 신호를 생성할 수 있다. 클럭 제어 회로(122b)가 먹스 셀렉션(mux selection) 변경을 위해 자체적으로 생성한 클럭 요청 신호는 이전 부모 클럭 컴포넌트와 이후 부모 클럭 컴포넌트에게만 공급되도록 하거나 모든 가능한 부모 클럭 컴포넌트에게 공급되게할 수도 있다. 또는, 클럭 제어 회로(122b)는 먹스 셀렉션의 변경을 위해 자체적으로 클럭 요청 신호를 생성하지 않을 수도 있다.
클럭 먹스 유닛의 클럭 제어 회로(122b)는 클럭 먹스 회로가 사용중인 부모 클럭 컴포넌트에만 클럭 요청 신호를 전송할 수 있다. 클럭 먹스 유닛은 2 개 이상의 입력 클럭을 가질 수 있다.
본 발명의 몇몇의 실시예에서, 클럭 컴포넌트(120c)는 클럭 분주 유닛(Clock Dividing Unit)일 수 있다.
클럭 분주 유닛은 클럭 제어 회로(122c)와 분주 회로(124c)를 포함할 수 있으며, 클럭 분주 유닛의 클럭 제어 회로(122c)는 순차적 비헤이비어(sequential behavior)를 갖고 동작할 수 있다. 클럭 제어 회로(122c)는 클럭의 온/오프(on/off)를 제어하고, 클럭이 오프된 상태에서 클럭 분주 회로의 클럭 분주비(clock dividing ratio)의 변경을 위해 자체적으로 클럭 요청 신호를 생성할 수 있다. 클럭 제어 회로(122c)는 클럭이 오프된 상태에서 분주 회로(124c)의 클럭 분주비의 변경을 위해 자체적으로 클럭 요청 신호를 생성하지 않을 수도 있다.
본 발명의 몇몇의 실시예에서, 클럭 컴포넌트(120d)는 단기 정지 유닛(Short Stop Unit)일 수 있다.
단기 정지 유닛은 클럭 제어 회로(120d)와 클럭 게이팅 회로(122d)를 포함할 수 있으며, 단기 정지 유닛의 클럭 제어 회로(120d)는 순차적 비헤이비어(sequential behavior)를 갖고 동작할 수 있다. 클럭 제어 회로(120d)는 클럭의 온/오프(on/off)를 제어할 수 있다. 자식 클럭 컴포넌트로부터 클럭 요청 신호가 비활성화된 경우, 클럭 제어 회로(120d)는 클럭 게이팅 회로(122d)를 활성화시킬 수 있다.
본 발명의 몇몇의 실시예에서, 클럭 컴포넌트(120f, 120g)는 클럭 게이팅 유닛(Clock Gating Unit)일 수 있다.
클럭 게이팅 유닛은 채널 관리 회로(130, 132) 중 적어도 하나와 풀 핸드셰이크(full handshake) 방식에 따라 통신할 수 있다.
도 1 및 도 2를 참조하면, 전력 관리 유닛(300)은 대기 모드에서 입력되는 웨이크-업(Wake-Up) 신호에 응답하여 오실레이터(OSC)에 전원 제어 신호를 전송할 수 있다. 오실레이터(OSC)는 일정한 주파수 신호를 발생시키는 발진 회로로서, 로직 블록으로 동작 클럭을 공급한다. 일반적으로 사용되는 크리스탈 오실레이터는 크리스탈(XTAL)의 압전 진동을 이용하여 진동수가 정확하고 안정된 신호를 생성한다.
오실레이터(OSC)에 전원이 입력되면, 발진이 시작되면서 미세하고 불안정한 신호에서 점차 안정된 발진 클럭이 출력된다. 클럭 관리 유닛(100)은 오실레이터(OSC)로부터 출력된 발진 클럭이 안정화 된 이후에 동작 클럭을 로직 블록으로 공급할 수 있다.
도 3은 본 발명의 몇몇의 실시예에 따른 반도체 장치(System On Chip)에 포함된 IP 블록을 도시한 블록도이다.
도 3을 참조하면, 제1 IP 블록(200)은 채널 어댑터(channel adapter)(200)와 IP 코어(core)(204)를 포함할 수 있다. 도 3에는 예시적으로 제1 IP 블록(200)에 대하여 도시하였으며, 제2 및 제3 IP 블록(210, 220)에 대해서도 실질적으로 동일한 구성요소를 포함한다.
채널 어댑터(202)는 제1 채널 관리 회로(130)과 풀 핸드셰이크(full handshake) 방식에 따라 통신할 수 있다. 채널 어댑터(202)를 통해 제1 IP 블록(200)은 제1 클럭 요청 신호(REQ1)를 전송할 수 있으며, 제1 클럭 신호(CLK1)를 제공받을 수 있다. 또는 채널 어댑터(202)를 통해 제1 IP 블록(200)은 제1 클럭 요청 신호(REQ1)를 전송하고, 클럭이 존재한다는 ACK 신호를 받을 수 있고, 제1 클럭 신호(CLK1)는 채널 어댑터(202)에 의해 제어되는 클럭 컴포넌트로부터 직접 공급받을 수 있다.
IP 코어(204)는 예를 들어, 프로세서(processor), 그래픽 프로세서(graphic processor), 메모리 컨트롤러(graphic controller), 입출력 인터페이스 블록(input and output interface block) 등을 포함할 수 있다.
도 4는 복수 개의 클럭 제어 회로 사이의 신호 전송 패스(path)를 도시한 것이다.
도 4를 참조하면, 복수 개의 클럭 제어 회로들은 클럭 요청 신호(REQ)와, 이에 대한 응답 신호인 애크(또는 클럭 응답 신호)(ACK)를 포함하는 핸드셰이크 신호를 이용하여 동작할 수 있다. 클럭 요청 신호(REQ) 및 클럭 응답 신호(ACK)는, 예컨대 제1 논리 값(예컨대, 논리 로우)과 제2 논리 값(예컨대, 논리 하이)을 가질 수 있으나, 클럭 요청 신호(REQ) 및 클럭 응답 신호(ACK)를 구현하는 방식이 이에 제한되는 것은 아니다.
본 발명의 몇몇의 실시예에서, 클럭 소비자(clock consumer)는 예컨대 제2 논리 값을 갖는 클럭 요청 신호(REQ)를 클럭 제공자(clock provider)에게 전송함으로써, 클럭 제공자에게 클럭이 필요하다는 정보를 전달할 수 있다. 이와 다르게, 클럭 소비자는 예컨대 제1 논리 값을 갖는 클럭 요청 신호(REQ)를 클럭 제공자에게 전송함으로써, 클럭 제공자에게 클럭이 더 이상 필요하지 않다는 정보를 전달할 수 있다.
한편, 클럭 제공자는 예컨대 제2 논리 값을 갖는 클럭 응답 신호(ACK)를 클럭 소비자에게 전송할 수 있는데, 이것은 클럭 제공자로부터 클럭 신호가 클럭 소비자에게 안정적으로 공급되고 있음을 나타낸다. 이와 다르게, 클럭 제공자는 제1 논리 값을 갖는 클럭 응답 신호(ACK)를 클럭 소비자에게 전송할 수 있는데, 이것은 클럭 제공자가 클럭 소비자에게 클럭 신호의 제공 여부를 알려줄 수 없다는 것을 나타낸다.
예를 들어, 클럭 제어 회로(122b)는, 클럭 소비자의 입장에서, 예컨대 제2 논리 값을 갖는 클럭 요청 신호(PARENT_CLK_REQ)를 클럭 제어 회로(122a)에 전송함으로써, 클럭 제공자에 해당하는 클럭 제어 회로(122a)에게 클럭이 필요하다는 정보를 전달할 수 있다. 이에, 클럭 제어 회로(122a)를 포함하는 클럭 컴포넌트(즉, 클럭 공급자)는, 클럭 제어 회로(122b)를 포함하는 클럭 컴포넌트(즉, 클럭 소비자)에게 클럭 신호를 제공하고, 이후 클럭 제어 회로(122b)는, 예컨대 제2 논리 값을 갖는 클럭 응답 신호(PARENT_CLK_ACK)를 클럭 제어 회로(122a)로부터 수신할 수 있다.
한편, 클럭 제어 회로(122b)는, 클럭 제공자의 입장에서, 예컨대 제2 논리 값을 갖는 클럭 요청 신호(CHILD_CLK_REQ)를 클럭 제어 회로(122f)로부터 수신함으로써, 클럭 소비자에 해당하는 클럭 제어 회로(122f)가 클럭이 필요하다는 것을 알 수 있다. 이에, 클럭 제어 회로(122b)를 포함하는 클럭 컴포넌트(즉, 클럭 공급자)는, 클럭 제어 회로(122f)를 포함하는 클럭 컴포넌트(즉, 클럭 소비자)에게 클럭 신호를 제공하고, 이후 클럭 제어 회로(122b)는, 클럭 제공자의 입장에서, 예컨대 제2 논리 값을 갖는 클럭 응답 신호(CHILD_CLK_ACK)를 클럭 제어 회로(122f)에게 전송할 수 있다.
다른 예를 들어, 클럭 제어 회로(122b)는, 클럭 소비자의 입장에서, 예컨대 제1 논리 값을 갖는 클럭 요청 신호(PARENT_CLK_REQ)를 클럭 제어 회로(122a)에 전송함으로써, 클럭 제공자에 해당하는 클럭 제어 회로(122a)에게 클럭이 더 이상 필요하지 않다는 정보를 전달할 수 있다. 이에, 클럭 제어 회로(122b)는, 예컨대 제1 논리 값을 갖는 클럭 응답 신호(PARENT_CLK_ACK)를 클럭 제어 회로(122a)로부터 수신할 수 있으며, 이것은 클럭 제공자로부터의 클럭 제공이 보장되지 않음을 나타낸다.
한편, 클럭 제어 회로(122b)는, 클럭 제공자의 입장에서, 예컨대 제1 논리 값을 갖는 클럭 요청 신호(CHILD_CLK_REQ)를 클럭 제어 회로(122f)로부터 수신함으로써, 클럭 소비자에 해당하는 클럭 제어 회로(122f)가 클럭이 더 이상 필요하지 않다는 것을 알 수 있다. 이에, 클럭 제어 회로(122b)는, 예컨대 제2 논리 값을 갖는 클럭 응답 신호(CHILD_CLK_ACK)를 클럭 제어 회로(122f)에게 전송할 수 있으며, 이것은 클럭 제공자로부터의 클럭 제공이 보장되지 않음을 나타낸다.
유의할 점은, 이와 같은 클럭 제어 회로들 사이의 조합 패스(combinational path)는, 클럭 제어 회로(122b)가 그 부모인 클럭 제어 회로(122a)에게 클럭 요청 신호(PARENT_CLK_REQ)를 전송한 후 클럭 제어 회로(122b)가 그 부모인 클럭 제어 회로(122a)로부터 클럭 응답 신호(PARENT_CLK_ACK)를 수신하는 패스와, 클럭 제어 회로(122b)가 그 자식인 클럭 제어 회로(122f)로부터 클럭 요청 신호(CHILD_CLK_REQ)를 수신한 후 클럭 제어 회로(122b)가 그 자식인 클럭 제어 회로(122f)에게 클럭 응답 신호(CHILD_CLK ACK)를 전송하는 패스를 포함할 수는 있지만, 클럭 제어 회로(122b)가 그 부모인 클럭 제어 회로(122a)로부터 클럭 응답 신호(PARENT_CLK_ACK)를 수신한 후, 클럭 제어 회로(122b)가 그 부모인 클럭 제어 회로(122a)에게 클럭 요청 신호(PARENT_CLK_REQ)를 전송하는 패스는 포함되지 않는다는 점이다(도 4에서 'X'로 도시됨).
이와 같은 클럭 요청 신호(REQ)와 클럭 응답 신호(ACK)는 일반적인 풀 핸드셰이크(full handshake) 방식으로 구현되어 있으며, 클럭 제공자과 클럭 소비자는 서로 동일한 단일 클럭 도메인(single clock domain)에 속할 수도 있고, 서로 다른 클럭 도메인에 속할 수도 있다.
본 발명의 몇몇의 실시예에서, 각각의 클럭 제어 회로와 연결되어 통신하는 클럭 먹스 회로, 클럭 분주 회로, 클럭 게이팅 회로 등은 클럭 제어 회로와 서로 다른 클럭 도메인을 이용할 수 있다. 즉, 클럭 요청 신호를 전송하는 신호 라인에서의 클럭 주파수와 실제로 제공받는 동작 클럭의 클럭 주파수는 서로 다를 수 있다.
도 5a는 본 발명에어 이용되는 클럭 요청 신호와 클럭 응답 신호를 설명하기 위한 도면이고, 도 5b는 본 발명에서 이용되는 클럭 요청 신호와 클럭 응답 신호에 대한 클럭 레벨 천이(transition)를 도시한 것이다.
도 5a를 참조하면, 시점(T1)에서 클럭 요청 신호(REQ)가 제2 논리 값으로 트랜지션하는 것은 클럭 소비자가 클럭 제공자에게 클럭 신호(CLK)가 필요하다는 정보를 전달하는 것을 나타낼 수 있다. 시점(T1) 이후 클럭 제공자는 클럭 소비자에게 클럭 신호(CLK)를 제공할 수 있다.
시점(T2)에서, 클럭 제공자는 제2 논리 값을 갖는 클럭 응답 신호(ACK)를 클럭 소비자에게 전송하며, 이것은 클럭 제공자로부터 클럭 신호(CLK)가 클럭 소비자에게 안정적으로 공급되고 있음을 나타낸다(I 구간 참조).
시점(T3)에서 클럭 요청 신호(REQ)가 제1 논리 값으로 트랜지션하는 것은 클럭 소비자가 클럭 제공자에게 클럭 신호(CLK)가 더 이상 필요하지 않다는 정보를 전달하는 것을 나타낼 수 있다. 시점(T3) 이후 클럭 제공자는 클럭 소비자에게 클럭 신호(CLK)를 제공하는 것을 중단할 수도 있고, 여전히 클럭 신호(CLK)의 제공을 계속할 수도 있다.
시점(T4)에서, 클럭 제공자는 제1 논리 값을 갖는 클럭 응답 신호(ACK)를 클럭 소비자에게 전송하며, 이것은 클럭 제공자가 클럭 소비자에게 클럭 신호의 제공 여부를 알려줄 수 없다는 것을 나타낸다.
즉, 도 5a에서 클럭 제공자로부터 클럭 소비자에게 클럭 신호(CLK)가 안정적으로 공급되고 있음이 보장되는 구간은 I 구간뿐이고, 나머지 II 구간에서는 클럭 제공자가 클럭 소비자에게 클럭 신호의 제공을 하고 있는지 여부를 알 수 없다(unknown).
다음으로 도 5b를 참조하면, 도 5b는 제2 논리 값을 1로 표현하고 제1 논리 값을 0으로 표시한 경우에 클럭 요청 신호(REQ)와 클럭 응답 신호(ACK)의 가능한 신호의 조합과 이들 사이의 가능한 트랜지션(transition)을 표현한다.
도 5a를 함께 참조하면, 상태(S0)는 시점(T1) 이전 및 시점(T4) 이후의 상태를 나타내고, 상태(S1)는 시점(T1) 내지 시점(T2)의 상태를 나타낸다. 그리고 상태(S2)는 시점(T2) 내지 시점(T3)의 상태를 나타내고, 상태(S3)는 시점(T3) 내지 시점(T4)의 상태를 나타낸다. 클럭 요청 신호(REQ)와 클럭 응답 신호(ACK)의 값의 조합은 상태(S0), 상태(S1), 상태(S2), 상태(S3), 상태(S0)로 순차적으로 변화한다(실선 화살표 참조).
그런데 만일 시점(T1)에서 클럭 요청 신호(REQ)가 제2 논리 값으로 트랜지션됨과 동시에 클럭 응답 신호(ACK)가 제2 논리 값으로 트랜지션되도록 회로를 구현하는 경우, 클럭 요청 신호(REQ)와 클럭 응답 신호(ACK)의 값의 조합은 상태(S0)에서 바로 상태(S2)로 전환될 수 있다. 이와 유사하게 만일 시점(T3)에서 클럭 요청 신호(REQ)가 제1 논리 값으로 트랜지션됨과 동시에 클럭 응답 신호(ACK)가 제1 논리 값으로 트랜지션되도록 회로를 구현하는 경우, 클럭 요청 신호(REQ)와 클럭 응답 신호(ACK)의 값의 조합은 상태(S2)에서 바로 상태(S0)로 전환될 수 있다(점선 화살표 참조).
다시 도 1, 도 2 및 도 4를 참조하여, 풀 핸드셰이크 방식(full handshake method)에 대하여 설명한다.
풀 핸드셰이크 방식(full handshake method)이란, 제1 IP 블록(200)이 클럭이 필요하면, 제1 IP 블록(200)은 제1 클럭 요청 신호(REQ1)를 활성화한다. 예를 들면, 제1 IP 블록(200)는 제1 클럭 요청 신호(REQ1)를 하이 상태(high state)로 만든다.
클럭 관리 유닛(100)은 제1 클럭 요청 신호(REQ1)의 활성화에 응답하여 제1 클럭 요청 신호(REQ1)에 대한 제1 클럭 응답 신호(ACK1)를 활성화한다. 즉, 클럭 관리 유닛(100)은 제1 클럭 응답 신호(ACK1)를 하이 상태(high state)로 만든다.
클럭 관리 유닛(100)은 제1 클럭 응답 신호(ACK1)의 활성화보다 먼저 제1 클럭 신호(CLK1)을 제1 IP 블록(200)로 전송할 수 있다. 또는, 클럭 관리 유닛(100)은 제1 클럭 응답 신호(ACK1)의 활성화와 동시에 제1 클럭 신호(CLK1)을 제1 IP 블록(200)로 전송할 수 있다.
만약에, 제1 IP 블록(200)가 클럭이 불필요한 경우, 제1 클럭 요청 신호(REQ1)를 비활성화한다. 즉, 제1 IP 블록(200)는 제1 클럭 요청 신호(REQ1)를 로우 상태(low state)로 만든다.
제1 클럭 요청 신호(REQ1)가 로우 상태(low state)이면, 클럭 관리 유닛(100)은 제1 클럭 응답 신호(ACK1)를 로우 상태(low state)로 만든다. 그리고, 클럭 관리 유닛(100)은 동시에 제1 클럭 신호(CLK1)을 비활성화할 수 있다.
제1 IP 블록(200)는 제1 클럭 응답 신호(ACK1)가 활성화 상태인 동안, 정상적으로 동작할 수 있다.
도 1 및 도 2를 참조하여, 본 발명의 몇몇의 실시예에 따른 클럭 관리 유닛(100)의 풀 핸드셰이크 방식(full handshake method)에 대해 설명한다. 이에 관하여, 도 2의 클럭 컴포넌트(120a, 120b, 120c, 120d, 120e, 120f)는 각각 PLL 컨트롤러, 클럭 먹스 유닛, 제1 클럭 분주 유닛, 단기 정지 회로, 제2 클럭 분주 유닛, 제1 클럭 게이팅 유닛이라고 가정하고 설명하지만, 이것은 본 발명이 구현될 수 있는 일례에 해당할 뿐이고, 본 발명의 범위가 이에 제한되는 것은 아니다.
PLL 컨트롤러, 클럭 먹스 유닛, 제1 클럭 분주 유닛, 단기 정지 회로, 제2 클럭 분주 유닛, 제1 클럭 게이팅 유닛 각각은 클럭 소오스(124a, 124b, 124c, 124d, 124e, 124f)를 포함할 수 있다.
구체적으로, PLL 컨트롤러는 오실레이터(OSC; oscillator)와 PLL(phase locked loop)을 입력받는 클럭 먹스 회로를 포함할 수 있다. 클럭 먹스 유닛은 복수의 클럭 신호를 입력받는 클럭 먹스 회로를 포함할 수 있다. 제1 클럭 분주 유닛은 제1 클럭 분주 회로를 포함할 수 있다. 단기 정지 회로는 제1 클럭 게이팅 회로를 포함할 수 있다. 제2 클럭 분주 유닛은 제2 클럭 분주 회로를 포함할 수 있다. 제1 클럭 게이팅 유닛은 제2 클럭 게이팅 회로를 포함할 수 있다.
또한, PLL 컨트롤러는 클럭 제어 회로(122a)를 포함할 수 있다. 클럭 먹스 유닛은 클럭 제어 회로(122b)를 포함할 수 있다. 제1 클럭 분주 유닛은 클럭 제어 회로(122c)를 포함할 수 있다. 단기 정지 회로(114)는 클럭 제어 회로(122d)를 포함할 수 있다. 제2 클럭 분주 유닛은 클럭 제어 회로(122e)를 포함할 수 있다. 제1 클럭 게이팅 유닛은 클럭 제어 회로(122f)를 포함할 수 있다.
클럭 제어 회로(122a, 122b, 122c, 122d, 122e, 122f) 각각은 풀 핸드셰이크 방식(full handshake method)에 따라 통신할 수 있다. 예를 들면, 클럭 제어 회로(122a, 122b) 각각은 PLL 컨트롤러와 클럭 먹스 유닛 사이의 풀 핸드셰이크 방식을 지원할 수 있다.
클럭 제어 회로(122b, 122c) 각각은 클럭 먹스 유닛과 제1 클럭 분주 유닛 사이의 풀 핸드셰이크 방식을 지원할 수 있다.
클럭 제어 회로(122c, 122d) 각각은 제1 클럭 분주 유닛과 단기 정지 회로 사이의 풀 핸드셰이크 방식을 지원할 수 있다.
클럭 제어 회로(122d, 122e) 각각은 단기 정지 회로와 제2 클럭 분주 유닛 사이의 풀 핸드셰이크 방식을 지원할 수 있다.
클럭 제어 회로(122e, 122f) 각각은 제2 클럭 분주 유닛과 제1 클럭 게이팅 유닛 사이의 풀 핸드셰이크 방식을 지원할 수 있다.
마찬가지로, 클럭 제어 회로(122f)와 채널 관리 회로(130) 각각은 제1 클럭 게이팅 유닛과 채널 관리 회로(130) 사이의 풀 핸드셰이크 방식을 지원할 수 있다.
제1 IP 블록(200)은 풀 핸드셰이크 방식에 따라 클럭 관리 유닛(100)으로 동작 클럭을 요청할 수 있다. 예를 들면, 제1 IP 블록(200)은 동작 클럭이 필요한 경우, 클럭 요청 신호를 활성화할 수 있다. 즉, 제1 IP 블록(200)은 동작 클럭이 필요한 경우, 클럭 관리 유닛(100)으로 활성화된 클럭 요청 신호를 전송할 수 있다.
채널 관리 회로(130)는 상기 활성화된 클럭 요청 신호를 수신한다. 채널 관리 회로(130)는 상기 활성화된 클럭 요청 신호를 제1 클럭 게이팅 유닛으로 전송한다. 제1 클럭 게이팅 유닛은 상기 활성화된 클럭 요청 신호를 제2 클럭 분주 유닛으로 전송한다. 제2 클럭 분주 유닛은 상기 활성화된 클럭 요청 신호를 단기 정지 회로로 전송한다. 단기 정지 회로는 상기 활성화된 클럭 요청 신호를 제1 클럭 분주 유닛으로 전송한다. 제1 클럭 분주 유닛은 상기 활성화된 클럭 요청 신호를 클럭 먹스 유닛으로 전송한다. 클럭 먹스 유닛은 상기 활성화된 클럭 요청 신호를 PLL 컨트롤러로 전송한다.
본 발명의 몇몇의 실시예에서, PLL 컨트롤러, 클럭 먹스 유닛, 제1 클럭 분주 유닛, 단기 정지 회로, 제2 클럭 분주 유닛, 제1 클럭 게이팅 유닛, 제1 채널 관리 회로(130) 각각은 조합 회로(combinational circuit)로 구현될 수 있다. 따라서, 상기 활성화된 클럭 요청 신호는 제1 채널 관리 회로으로부터 PLL 컨트롤러까지 한번에 전송될 수 있다.
PLL 컨트롤러는 상기 활성화된 클럭 요청 신호에 대하여 클럭 응답 신호를 활성화한다. 즉, PLL 컨트롤러는 상기 활성화된 클럭 요청 신호에 대한 클럭 응답 신호를 클럭 먹스 유닛으로 전송한다. 동시에, PLL 컨트롤러는 클럭 신호(CLK)를 클럭 먹스 유닛으로 전송한다.
클럭 먹스 유닛은 상기 활성화된 클럭 응답 신호를 제1 클럭 분주 유닛으로 전송한다. 동시에, 클럭 먹스 유닛은 클럭 신호(CLK)를 제1 클럭 분주 유닛으로 전송한다.
제1 클럭 분주 유닛은 상기 활성화된 클럭 응답 신호를 단기 정지 회로로 전송한다. 동시에, 제1 클럭 분주 유닛은 클럭 신호(CLK)를 단기 정지 회로로 전송한다.
단기 정지 회로는 상기 활성화된 클럭 응답 신호를 제2 클럭 분주 유닛으로 전송한다. 동시에, 단기 정지 회로는 클럭 신호(CLK)를 제2 클럭 분주 유닛으로 전송한다.
제2 클럭 분주 유닛은 상기 활성화된 클럭 응답 신호를 제1 클럭 게이팅 유닛으로 전송한다. 동시에, 제2 클럭 분주 유닛은 클럭 신호(CLK)를 제1 클럭 게이팅 유닛으로 전송한다.
제1 클럭 게이팅 유닛은 상기 활성화된 클럭 응답 신호를 제1 채널 관리 회로(130)로 전송한다. 동시에, 제1 클럭 게이팅 유닛은 클럭 신호(CLK)를 제1 IP 블록(200)에 제공한다.
본 실시예에서, 상기 클럭 응답 신호는 PLL 컨트롤러로부터 제1 채널 관리 회로까지 한번에 전송될 수 있다.
제1 IP 블록(200)은 클럭이 불필요한 경우, 상기 클럭 요청 신호를 비활성화할 수 있다. 즉, 제1 IP 블록(200)은 클럭이 불필요한 경우, 클럭 관리 유닛(100)으로 비활성화된 클럭 요청 신호를 전송할 수 있다.
채널 관리 회로(130)는 상기 비활성화된 클럭 요청 신호를 수신한다. 채널 관리 회로(130)는 상기 비활성화된 클럭 요청 신호를 제1 클럭 게이팅 유닛으로 전송할 수 있다. 제1 클럭 게이팅 유닛은 상기 비활성화된 클럭 요청 신호를 제2 클럭 분주 유닛으로 전송한다. 제2 클럭 분주 유닛은 상기 비활성화된 클럭 요청 신호를 단기 정지 회로로 전송한다. 단기 정지 회로는 상기 비활성화된 클럭 요청 신호를 제1 클럭 분주 유닛으로 전송할 수 있다. 제1 클럭 분주 유닛은 상기 비활성화된 클럭 요청 신호를 클럭 먹스 유닛으로 전송할 수 있다. 클럭 먹스 유닛은 상기 비활성화된 클럭 요청 신호를 PLL 컨트롤러로 전송할 수 있다.
PLL 컨트롤러, 클럭 먹스 유닛, 제1 클럭 분주 유닛, 단기 정지 회로, 제2 클럭 분주 유닛, 제1 클럭 게이팅 유닛, 제1 채널 관리 회로(130) 각각은 조합 회로로 구현될 수 있다. 따라서, 상기 비활성화된 클럭 요청 신호는 채널 관리 회로(130)으로부터 PLL 컨트롤러까지 한번에 전송될 수 있다.
PLL 컨트롤러는 비활성화된 클럭 요청 신호에 대하여 클럭 응답 신호를 비활성화한다. 즉, PLL 컨트롤러는 상기 비활성화된 클럭 응답 신호를 클럭 먹스 유닛으로 전송할 수 있다. 동시에, PLL 컨트롤러는 클럭 신호(CLK)를 비활성화시킬 수도 있고, 클럭 신호(CLK)를 여전히 클럭 먹스 유닛으로 전송할 수도 있다.
클럭 먹스 유닛은 상기 비활성화된 클럭 응답 신호를 제1 클럭 분주 유닛으로 전송한다. 동시에, 클럭 먹스 유닛은 클럭 신호(CLK)를 비활성화시킬 수도 있고, 클럭 신호(CLK)를 여전히 제1 클럭 분주 유닛으로 전송할 수도 있다.
제1 클럭 분주 유닛은 상기 비활성화된 클럭 응답 신호를 단기 정지 회로로 전송한다. 동시에, 제1 클럭 분주 유닛은 클럭 신호(CLK)를 비활성화시킬 수도 있고, 클럭 신호(CLK)를 여전히 단기 정지 회로로 전송할 수도 있다.
단기 정지 회로는 상기 비활성화된 클럭 응답 신호를 제2 클럭 분주 유닛으로 전송한다. 동시에, 단기 정지 회로는 클럭 신호(CLK)을 비활성화시킬 수도 있고, 클럭 신호(CLK)를 여전히 제2 클럭 분주 유닛으로 전송할 수도 있다.
제2 클럭 분주 유닛은 상기 비활성화된 클럭 응답 신호를 제1 클럭 게이팅 유닛으로 전송한다. 동시에, 제2 클럭 분주 유닛은 클럭 신호(CLK)를 비활성화시킬 수도 있고, 클럭 신호(CK)를 여전히 제1 클럭 게이팅 유닛으로 전송할 수도 있다.
제1 클럭 게이팅 유닛은 상기 비활성화된 클럭 응답 신호를 채널 관리 회로(130)로 전송한다. 동시에, 제1 클럭 게이팅 유닛은 클럭 신호(CLK)를 비활성화시킨다.
마찬가지로, 상기 클럭 응답 신호는 PLL 컨트롤러부터 제1 채널 관리 회로(130)까지 한번에 전송될 수 있다.
이하에서는 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 컴포넌트들의 다양한 유형에 대해 설명하기로 한다.
도 6은 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 게이팅 컴포넌트의 구현 방식을 설명하기 위한 도면이다. 도 7은 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 게이팅 컴포넌트의 구조를 설명하기 위한 도면이다. 도 8은 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 게이팅 컴포넌트의 비헤이비어를 설명하기 위한 타이밍도이다.
도 6을 참조하면, 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 게이팅 컴포넌트는 FSM(Finite State Machine) 및 클럭 게이팅 셀(SEC_AP_RTL_CLKGATE)을 포함한다. 여기서, FSM이란 유한 개의 상태와 이러한 상태들 간의 변환으로 구성된 계산 모형 또는 기계를 말한다. 도 6의 FSM 및 클럭 게이팅 셀(SEC_AP_RTL_CLKGATE)은 도 7의 어댑터 및 코어 클럭 게이팅 셀(SEC_AP_RTL_CLKGATE)에 각각 대응된다. 여기서, FSM 또는 어댑터는, 클럭 컴포넌트에 의해 생성되는 클럭 신호(CLK)와 다른 클럭 도메인에 해당하는 기준 클럭(CLK_RF)에 의해 동작할 수 있고, 클럭 게이팅 셀(SEC_AP_RTL_CLKGATE)과 풀 핸드셰이크를 수행한다.
FSM은 자식 클럭 컴포넌트로부터 수신한 클럭 요청 신호(CHILD_CLK_REQ)를 입력받고, FSM의 상태에 따라 부모 클럭 컴포넌트에 클럭 요청 신호(PARENT_CLK_REQ)를 전송하거나, 클럭 게이팅 셀(SEC_AP_RTL_CLKGATE)을 제어하기 위한 인에이블 신호(EN)을 출력할 수 있다.
클럭 게이팅 셀(SEC_AP_RTL_CLKGATE)은 FSM으로부터 출력된 인에이블 신호(EN)에 따라, 클럭 신호(CLK_IN)를 입력받고, 이를 게이팅하거나 바이패스(bypass)한 클럭 신호(CLK_OUT)를 출력한다.
도 8을 함께 참조하면, 클럭 게이팅 컴포넌트의 FSM은 다음의 상태들을 포함할 수 있다.
제1 상태(a1)는 자식 클럭 컴포넌트로부터 수신한, 제2 논리 값을 갖는 클럭 요청 신호(CHILD_CLK_REQ)에 따라, 클럭 게이팅 동작을 수행하지 않고 자식 클럭 컴포넌트에 클럭 신호(CLK)를 제공하는 상태이다. 이후 자식 클럭 컴포넌트로부터 수신한 클럭 요청 신호(CHILD_CLK_REQ)가 제1 논리 값으로 트랜지션되었다고 가정하자.
제2 상태(a2)는 클럭 게이팅 컴포넌트 자체에서 클럭 게이팅 동작을 수행하는 상태이다. 이에 따라 클럭 게이팅 컴포넌트는 자체적인 클럭 게이팅 동작에 필요한 자체 핸드셰이크 레이턴시(local handshake latency)가 소요된 후, 자식 클럭 컴포넌트에 제1 논리 값을 갖는 클럭 응답 신호(CHILD_CLK_ACK)를 전송한다. 더불어, 클럭 게이팅 컴포넌트는 부모 클럭 컴포넌트에 제1 논리 값을 갖는 클럭 요청 신호(PARENT_CLK_REQ)를 전송한다.
제3 상태(a3)는 부모 클럭 컴포넌트에 제1 논리 값을 갖는 클럭 요청 신호(PARENT_CLK_REQ)를 전송하여 클럭 제공을 중지하라는 요청을 전송하는 단계이고, 제4 상태(a4)는 부모 클럭 컴포넌트로부터 이에 대한 제1 논리 값을 갖는 클럭 응답 신호(PARENT_CLK_ACK)를 수신하기 까지 대기하는 상태이다. 이는 클럭 게이팅 컴포넌트 내부적으로 게이팅 동작을 완료했기 때문에 부모 컴포넌트에게 클럭 게이팅 동작이 필요하다면 부모 컴포넌트의 클럭 게이팅 동작을 수행하라는 의미이다.
부모 클럭 컴포넌트로부터 이에 대한 제1 논리 값을 갖는 클럭 응답 신호(PARENT_CLK_ACK)를 수신한 후, 제5 상태(a5)에는 클럭 게이팅 컴포넌트의 자식 클럭 컴포넌트에 대한 클럭 제공이 완전히 중단된다.
이 때, 자식 클럭 컴포넌트에서 제2 논리 값을 갖는 클럭 요청 신호(CHILD_CLK_REQ)를 수신하게 되면, 부모 클럭 컴포넌트에 제2 논리 값을 갖는 클럭 요청 신호(PARENT_CLK_REQ)를 전송한 후, 제6 상태(a6)에서 클럭 게이팅 컴포넌트 자체으로 클럭 게이팅 동작을 중지한다.
자체적인 클럭 게이팅 동작을 중단하기 위해에 필요한 자체 핸드셰이크 레이턴시(local handshake latency)가 소요된 후, 부모 클럭 컴포넌트로부터 제2 논리 값을 갖는 클럭 응답 신호(PARENT_CLK_ACK)를 수신하면, 클럭 게이팅 컴포넌트는 제7 상태(a7)로 전환되는데, 여기서 제7 상태(a7)는 곧 제1 상태(a1)를 말한다.
도 9a는 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 먹스 컴포넌트의 구현 방식을 설명하기 위한 도면이고, 도 9b는 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 먹스 컴포넌트의 FSM을 설명하기 위한 도면이다. 도 10은 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 먹스 컴포넌트의 구조를 설명하기 위한 도면이다. 도 11 내지 도 20은 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 먹스 컴포넌트의 비헤이비어를 설명하기 위한 타이밍도이다.
도 9a를 참조하면, 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 먹스 컴포넌트는 FSM 및 다중화 회로(SEC_AP_RTL_GFMUX)를 포함한다. FSM은 자식 클럭 컴포넌트로부터 클럭 요청 신호(CHILD_CLK_REQ)를 전송받아 부모 클럭 컴포넌트로 클럭 요청 신호(PARENT_CLK_REQ 0, PARENT_CLK_REQ 1)를 전송한다.
이 때, 클럭 먹스 컴포넌트는 글리치-프리 먹스(glitch-free mux)를 포함할 수 있다. 글리치(glitch)란 불필요한 부분에 발생하는 노이즈 펄스로 인해 발생하는 컴퓨터의 일시적인 오동작을 의미한다.
FSM은 선택 신호(SEL)를 입력받고, 선택 신호(SEL)의 값이 변경됨을 확인한 경우, 선택 신호(SEL)와 먹셀(Muxsel) 신호를 비교한 후, 상기 신호들의 값이 서로 같은지 확인한다.
만약, 상기 신호들의 값이 서로 같지 않은 경우, FSM은 디텍트 체인지(Detect_change) 신호를 생성한다. 여기에서, 디텍트 체인지 신호를 생성하는 과정은, 로우 상태(low state)를 갖는 디텍트 체인지 신호의 값을 하이 상태(high state)로 토글(toggle) 시키거나, 하이 상태(high state)를 갖는 디텍트 체인지 신호의 값을 로우 상태(low state)로 토글 시킴으로써 수행할 수 있다.
클럭 먹스 컴포넌트는 FSM으로부터 출력된 선택 신호(SEL_OUT)에 응답하여 제1 클럭 신호(CLK0) 또는 제2 클럭 신호(CLK1)를 클럭 신호(CLK_OUT)으로서 출력한다. 자식 클럭 컴포넌트는 클럭 먹스 컴포넌트로부터 출력된 클럭을 제공받는다.
도 9b를 함께 참조하면, 클럭 먹스 컴포넌트에 포함된 FSM은 다음의 상태들을 포함할 수 있다.
제1 상태(b1)는 하드웨어에 의한 클럭 게이팅이 동작하는 상태로서, 자식 클럭 컴포넌트에 대한 클럭 제공을 중단한 (클럭 먹스 컴포넌트의) 부모 클럭 컴포넌트와, 여전히 클럭 제공을 하며 동작하는 (클럭 먹스 컴포넌트의) 부모 클럭 컴포넌트가 모두 존재할 수 있는 상태이다. 이 상태에서는 클럭 먹스 컴포넌트의 모든 부모 클럭 컴포넌트가 동작하고 있음이 보장되지 않는다. 즉, 이 상태는 불필요한 부모 클럭 컴포넌트의 동작이 중단되어 전력 소모량이 최소화된 상태일 수 있다. 따라서 클럭 먹스 컴포넌트는 선택 신호(SEL)에 따라 선택을 변경하는 작업을 수행할 수 없다. 클럭 게이팅 컴포넌트와 달리, 자식 클럭 컴포넌트로부터의 클럭 요청 신호가 수신되어도 클럭 먹스 컴포넌트는 최적화 상태를 유지할 수 있다.
제2 상태(b2)는 클럭 먹스 컴포넌트는 선택 신호(SEL)에 따라 선택을 변경할 필요가 있어, 클럭 먹스 컴포넌트의 모든 부모 클럭 컴포넌트를 웨이크업(wakeup)한 상태이다.
제3 상태(b3)는 하드웨어에 의한 클럭 게이팅이 동작하지 않는 상태이다. 즉, 모든 부모 클럭 컴포넌트가 웨이크업되어 클럭 신호를 클럭 먹스 컴포넌트에 제공하고 있는 상태이다. 이 단계에서 클럭 먹스 컴포넌트는 선택 신호(SEL)에 따라 선택을 변경할 수 있다.
제4 상태(b4)는, 클럭 먹스 컴포넌트가 선택 신호(SEL)에 따라 선택을 변경한 후, 하드웨어에 의한 클럭 게이팅이 다시 동작하여, 클럭 제공을 할 필요가 없는 부모 클럭 컴포넌트의 동작을 중단하기 시작하는 상태이다. 즉, 클럭 제공을 할 필요가 없는 부모 클럭 컴포넌트에게 클럭 중단 요청 신호 (PARENT_CLK_REQ)를 전송하는 상태이다.
클럭 제공을 할 필요가 없는 부모 클럭 컴포넌트로부터 클럭 응답 신호 PARENT_CLK_ACK)를 수신한 후, 다시 제1 상태(b1)로 돌아가는데, 도 11 내지 도 20에 도시된 제5 상태(b5)는 곧 제1 상태(b1)를 말한다.
도 10을 참조하면, 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 먹스 컴포넌트는 개스킷(gasket), 아비터(arbiter), 먹스컨버터(mux converter), 어댑터(adapter), 클럭 먹스(clock mux)를 포함하며, 개스킷(gasket), 아비터(arbiter), 먹스컨버터(mux converter), 어댑터(adapter)는 레퍼런스 클럭 신호(CLK_RF)을 이용하여 신호 송수신을 수행하고, 어댑터(adater)는 풀 핸드셰이크 방식에 따라 클럭 먹스(clock mux)를 제어한다.
개스킷은 S 채널(S-CH)을 통해 클럭 먹스의 입력을 선택하기 위한 요청을 수신할 수 있다. 상기 요청은 먹셀(muxsel) 신호일 수 있다. 이 경우, 먹셀 신호는 개스킷과 아비터 사이에서 수행되는 4 위상 동기적 풀 핸드셰이크(4-phase synchronous full handshake)에 따라 인코딩되어, 먹스컨버터를 통해, 어댑터까지 전달될 수 있다.
한편, 아비터는 H 채널(H-CH)을 통해 클럭 먹스의 입력을 선택하기 위한 요청을 수신할 수도 있다. 이 경우, 아비터는 H 채널(H-CH)을 통해 4 위상 비동기적 풀 더블 핸드셰이크(4-phase asynchronous full double handshake)에 따라 상기 요청을 수신한다. 상기 4 위상 비동기적 풀 더블 핸드셰이크는 아비터로 입력되는 락 요청(lock request), 릴리즈 요청(release request), 먹셀(muxsel) 신호와, 아비터로부터 출력되는 이들 요청에 대한 애크(acknowledgement)를 포함할 수 있다. 이 경우, 먹셀 신호는 아비터와 먹스컨버터 사이에 수행되는 4 위상 동기적 풀 핸드셰이크에 따라 인코딩된 후, 어댑터까지 전달될 수 있다.
어댑터는 도 9a 및 도 9b와 관련하여 설명한 FSM을 포함하고, 먹셀 신호는 어댑터와 클럭 먹스 사이에서 수행되는 2 위상 비동기적 풀 핸드셰이크(2-phase asynchronous full handshake)에 따라 디코딩되어, 클럭 먹스에 입력된다.
도 11을 참조하면, b3 구간에서 클럭 먹스 컴포넌트를 통해 클럭 체인지가 발생한다. 이 때, b1 구간과 b2 구간 사이에서, 자식(child)의 클럭 요청 신호가 로우 상태(low state)이고, 자식(child)의 클럭 응답 신호가 로우 상태(low state)인 경우, 부모(parent)의 클럭 응답 신호가 하이 상태(high state)가 되면 자식(child)의 클럭 요청 신호가 하이 상태(high state)가 되는 경우를 도시하고 있다. 도 11은 모든 부모 클럭 요청 신호가 b2, b3 구간에서 하이 상태가 되는 경우를 나타내지만, 이는 이전/이후 부모에게만 선택적으로 클럭 요청 신호를 하이 상태로 전송하도록 할 수도 있다.
도 12를 참조하면, b1 구간과 b2 구간 사이에서, 자식(child)의 클럭 요청 신호가 로우 상태(low state)이고, 자식(child)의 클럭 응답 신호가 로우 상태(low state)인 경우, 부모(parent)의 클럭 응답 신호가 하이 상태(high state)가 되기 전에, 자식(child)의 클럭 요청 신호가 하이 상태(high state)가 되는 경우를 도시하고 있다.
도 13을 참조하면, b1 구간과 b2 구간 사이에서, 자식(child)의 클럭 요청 신호가 하이 상태(high state)이고, 자식(child)의 클럭 응답 신호가 로우 상태(low state)인 경우를 도시하고 있다.
도 14를 참조하면, b1 구간과 b2 구간 사이에서, 자식(child)의 클럭 요청 신호가 하이 상태(high state)이고, 자식(child)의 클럭 응답 신호가 하이 상태(high state)인 경우를 도시하고 있다.
도 15를 참조하면, b3 구간과 b4 구간 사이에서, 자식(child)의 클럭 요청 신호가 로우 상태(low state)이고, 자식(child)의 클럭 응답 신호가 로우 상태(low state)이고, 자식(child)의 클럭 요청 신호가 로우 상태(low state)를 유지하는 경우를 도시하고 있다.
도 16을 참조하면, b3 구간과 b4 구간 사이에서, 자식(child)의 클럭 요청 신호가 로우 상태(low state)이고, 자식(child)의 클럭 응답 신호가 로우 상태(low state)이고, 자식(child)의 클럭 요청 신호가 로우 상태(low state)에서 하이 상태(high state)로 토글되는 경우를 도시하고 있다.
도 17을 참조하면, b3 구간과 b4 구간 사이에서, 자식(child)의 클럭 요청 신호가 로우 상태(low state)이고, 자식(child)의 클럭 응답 신호가 하이 상태(high state)이고, 자식(child)의 클럭 요청 신호가 로우 상태(low state)를 유지하는 경우를 도시하고 있다.
도 18을 참조하면, b3 구간과 b4 구간 사이에서, 자식(child)의 클럭 요청 신호가 하이 상태(high state)이고, 자식(child)의 클럭 응답 신호가 로우 상태(low state)이고, 자식(child)의 클럭 요청 신호가 하이 상태(high state)를 유지하는 경우를 도시하고 있다.
도 19를 참조하면, b3 구간과 b4 구간 사이에서, 자식(child)의 클럭 요청 신호가 하이 상태(high state)이고, 자식(child)의 클럭 응답 신호가 하이 상태(high state)이고, 자식(child)의 클럭 요청 신호가 하이 상태(high state)에서 로우 상태(low state)로 토글되는 경우를 도시하고 있다.
도 20을 참조하면, b3 구간과 b4 구간 사이에서, 자식(child)의 클럭 요청 신호가 하이 상태(high state)이고, 자식(child)의 클럭 응답 신호가 하이 상태(high state)이고, 자식(child)의 클럭 요청 신호가 하이 상태(high state)를 유지하는 경우를 도시하고 있다.
도 21a는 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 분주 컴포넌트의 구현 방식을 설명하기 위한 도면이고, 도 21b는 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 분주 컴포넌트의 FSM을 설명하기 위한 도면이다. 도 22는 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 분주 컴포넌트의 구조를 설명하기 위한 도면이다. 도 23은 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 분주 컴포넌트의 비헤이비어를 설명하기 위한 타이밍도이다.
도 21a를 참조하면, 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 분주 컴포넌트는 어댑터(Adapter_CLKGATE), FSM, 클럭 분주 회로(SEC_AP_RTL_CLKDIV_SKEWLESS)를 포함한다. 어댑터(Adapter_CLKGATE)는 자식 클럭 컴포넌트로부터 클럭 요청 신호(CHILD_CLK_REQ)를 전송받아 부모 클럭 컴포넌트로 클럭 요청 신호(PARENT_CLK_REQ)를 전송한다. FSM은 클럭 분주비(clock dividing ratio)를 결정하고, 이를 어댑터(Adapter_CLKGATE)로 제공한다. FSM은 풀 핸드셰이크 방식에 따라 클럭 분주 회로를 제어할 수 있다.
도 21b를 함께 참조하면, 클럭 분주 컴포넌트에 포함된 FSM은 다음의 상태(state)를 포함할 수 있다.
제1 상태(c1)는 하드웨어에 의한 클럭 게이팅이 동작하는 상태로서, 자식 클럭 컴포넌트에 대한 클럭 제공을 중단한 (클럭 분주 컴포넌트의) 부모 클럭 컴포넌트와, 여전히 클럭 제공을 하며 동작하는 (클럭 분주 컴포넌트의) 부모 클럭 컴포넌트가 모두 존재할 수 있는 상태이다. 이 상태에서는 클럭 분주 컴포넌트의 모든 부모 클럭 컴포넌트가 동작하고 있음이 보장되지 않는다. 즉, 이 상태는 불필요한 부모 클럭 컴포넌트의 동작이 중단되어 전력 소모량이 최소화된 상태일 수 있다. 따라서 클럭 분주 컴포넌트는 클럭 분주율을 변경하는 작업을 수행할 수 없다.
제2 상태(c2)는 클럭 분주 컴포넌트는 클럭 분주율을 변경할 필요가 있어, 클럭 분주 컴포넌트의 모든 부모 클럭 컴포넌트를 웨이크업한 상태이다.
제3 상태(c3)는 하드웨어에 의한 클럭 게이팅이 동작하지 않는 상태이다. 즉, 모든 부모 클럭 컴포넌트가 웨이크업되어 클럭 신호를 클럭 분주 컴포넌트에 제공하고 있는 상태이다. 이 단계에서 클럭 분주 컴포넌트는 클럭 분주율을 변경할 수 있다.
제4 상태(c4)는, 클럭 분주 컴포넌트가 클럭 분주율을 변경한 후, 하드웨어에 의한 클럭 게이팅이 다시 동작하여, 클럭 제공을 할 필요가 없는 부모 클럭 컴포넌트의 동작을 중단하기 시작하는 상태이다. 즉, 클럭 제공을 할 필요가 없는 부모 클럭 컴포넌트에게 클럭 중단 요청 신호(PARENT_CLK_REQ)를 전송하는 상태이다.
클럭 제공을 할 필요가 없는 부모 클럭 컴포넌트로부터 클럭 응답 신호 PARENT_CLK_ACK)를 수신한 후, 다시 제1 상태(c1)로 돌아가는데, 도 23에 도시된 제5 상태(c5)는 곧 제1 상태(c1)를 말한다.
도 22를 참조하면, 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 클럭 분주 컴포넌트는 개스킷(gaket), 아비터(arbiter), 어댑터(adapter)를 포함하며, 개스킷(gasket), 아비터(arbiter), 어댑터(adapter)는 레퍼런스 클럭 신호(CLK_RF)을 이용하여 신호 송수신을 수행하고, 어댑터(adater)는 풀 핸드셰이크 방식에 따라 클럭 분주 회로(clock divider)를 제어한다.
개스킷은 S 채널(S-CH)을 통해 클럭 분주 비를 변경하기 위한 요청 신호를 수신할 수 있다. 이 경우, 상기 요청 신호는 개스킷과 아비터 사이에서 수행되는 동기적 풀 핸드셰이크(synchronous full handshake)에 따라 인코딩되어 어댑터까지 전달될 수 있다.
한편, 아비터는 H 채널(H-CH)을 통해 클럭 분주 비를 변경하기 위한 요청 신호를 수신할 수도 있다. 이 경우, 아비터는 H 채널(H-CH)을 통해 비동기적 풀 더블 핸드셰이크(asynchronous full double handshake)에 따라 상기 요청 신호를 수신한다. 상기 비동기적 풀 더블 핸드셰이크는 아비터로 입력되는 락 요청(lock request), 릴리즈 요청(release request), 먹셀(muxsel) 신호와, 아비터로부터 출력되는 이들 요청에 대한 애크(acknowledgement)를 포함할 수 있다. 이 경우, 상기 요청 신호는 아비터와 어댑터 사이에 수행되는 동기적 풀 핸드셰이크에 따라 인코딩된 후, 어댑터까지 전달될 수 있다.
어댑터는 도 21a 및 도 21b와 관련하여 설명한 FSM을 포함하고, 상기 요청 신호는 어댑터와 클럭 분주 회로 사이에서 수행되는 비동기적 풀 핸드셰이크(asynchronous full handshake)에 따라 디코딩되어, 클럭 분주 회로에 입력된다.
도 23을 참조하면, c3 구간에서 클럭 분주비 변경이 발생한다. 클럭 분주 회로(clock divider)로 요청되는 클럭 분주비 변경 요청 신호(CLKDIV_DIVCHG_REQ)에 따라 클럭 분주 회로의 동작이 수행된다.
도 24는 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 PLL 컨트롤러의 구현 방식을 설명하기 위한 도면이다. 도 25는 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 PLL 컨트롤러 회로 중 먹셀의 구조를 설명하기 위한 도면이다. 도 26 및 도 27은 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 PLL 컨트롤러의 비헤이비어를 설명하기 위한 타이밍도이다.
도 24를 참조하면, 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 PLL 컨트롤러는 어댑터(adapter), 먹셀(muxsel) 등을 포함한다. 어댑터(adater)는 요청 신호와 응답 신호를 전송하는 제어 회로의 역할을 한다. 여기서 어댑터는 부모 클럭 컴포넌트가 존재하는 경우 부모 클럭 컴포넌트와 요청 및 응답(REQ/ACK)을 주고 받을 수 있고, 부모 클럭 컴포넌트가 존재하지 않는 경우 바이패스(BYPASS)할 수 있다.
도 25를 참조하면, 먹셀(muxsel)은 SFR(Special Function Register) 및 시스템 클럭 오실레이터와 풀 핸드셰이크 방식에 따라 통신하며, 선택 신호(SEL)를 출력한다.
도 26 및 도 27을 참조하면, PLL 컨트롤러 회로의 동작에 대해 타이밍도로 도시되어 있으며, 특히, 도 26은 먹셀(muxsel)의 동작에 대해 타이밍도로 도시되어 있고, 도 27은 TRANS_HCH2PH의 동작에 대해 타이밍도로 도시되어 있다.
도 28은 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 PLL 유저 컨트롤러의 구현 방식을 나타낸 도면이다.
도 28을 참조하면, PLL 유저 컨트롤러는 어댑터(adapter), 먹셀(muxsel) 등을 포함한다. 어댑터(adater)는 요청 신호와 응답 신호를 전송하는 제어 회로의 역할을 한다. 여기서 어댑터는 부모 클럭 컴포넌트가 존재하는 경우 부모 클럭 컴포넌트와 요청 및 응답(REQ/ACK)을 주고 받을 수 있고, 부모 클럭 컴포넌트가 존재하지 않는 경우 바이패스(BYPASS)할 수 있다.
도 29는 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 어댑터 컴포넌트의 구현 방식을 설명하기 위한 도면이다.
도 29를 참조하면, 복수 개의 요청(request) 채널을 하나로 병합하는 어댑터 컴포넌트에 대해 도시되어 있다. 어댑터 컴포넌트는 풀 핸드셰이크 방식에 따라 통신하며, 자식(child)로부터 클럭 요청 신호를 전송받고 이를 부모(parent)로 클럭 요청 신호를 전송하고, 부모(parent)로부터 클럭 응답 신호를 전송받고 이를 자식(child)로 클럭 응답 신호를 전송한다.
도 29에서 CHILD_CLK_REQ에서 PARENT_CLK_REQ사이의 경로는 컴비내셔널 셀(combinational cell)로만 구성될 수 있으며 이는 request경로의 사이클 래이턴시(cycle latency)를 최소화하는데 활용될 수 있다. 도 29에서 PARENT_CLK_ACK에서 CHILD_CLK_ACK사이의 경로는 컴비내셔널 셀(combinational cell)로만 구성될 수 있으며 이는 acknowledge경로의 사이클 래이턴시(cycle latency)를 최소화하는데 활용될 수 있다. 도 29에서 CHLD_CLK_REQ에서 CHILD_CLK_ACK로의 경로는 컴비내셔널 셀(combinational cell)로만 구성될 수 있으며 이는 request에서 acknowledge경로의 사이클 래이턴시(cycle latency)를 최소화하는데 활용될 수 있다. 도 29에서 PARENT_CLK_ACK에서 PARENT_CLK_REQ로의 경로는 컴비내셔널 셀(combinational cell)로만 구성될 수 있으며 이는 acknowledge에서 request경로의 사이클 래이턴시(cycle latency)를 최소화하는데 활용될 수 있다. 위에 언급된 네 가지 경로 중 일부는 컴비내셔널 루프(combinational loop)를 방지하기 위하여 의도적으로 순차적 셀(sequential cell)에 의해서 분리될 수 있다.
도 30은 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 히스테리시스 필터의 구조를 설명하기 위한 도면이다. 도 31 내지 도 33은 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 히스테리시스 필터의 비헤이비어를 설명하기 위한 타이밍도이다.
도 30을 참조하면, 어댑터(adapter) 내에 히스테리시스 필터를 포함하며, 도 31 내지 도 33을 참조하면, 히스테리시스 필터는 카운터를 이용하여 필터링된 요청 신호를 생성한다.
도 34는 본 발명의 몇몇의 실시예에 따른 반도체 장치에 포함된 전력 관리 유닛의 구조를 설명하기 위한 블록도이다. 도 35 내지 도 39는 전력 관리 유닛이 클럭의 온/오프를 수행하는 예시를 도시한 타이밍도이다.
도 34를 참조하면, 전력 관리 유닛(300)은 CMU 인터페이스 회로(151)를 통해 클럭 관리 유닛(100)과 풀 핸드셰이크 방식에 따라 통신할 수 있다. 또한, 전력 관리 유닛(300)은 파워 시퀀스 매니지먼트 회로(152)와 스캔 덤프 시퀀스 매니지먼트 회로(153)를 더 포함할 수 있다.
도 35는 부팅 시퀀스(booting sequence)에서 전력 관리 유닛(300)의 동작에 대해 나타나 있고, 도 36은 클럭 관리 유닛(100)의 w/ 리텐션을 위한 파워-다운 시퀀스(power-down sequence)에서 전력 관리 유닛(300)의 동작에 대해 나타나 있고, 도 37은 클럭 관리 유닛(100)의 w/ 리텐션을 위한 파워-업 시퀀스(power-up sequence)에서 전력 관리 유닛(300)의 동작에 대해 나타나 있고, 도 38은 클럭 관리 유닛(100)의 w/o 리텐션을 위한 파워-다운 시퀀스(power-down sequence)에서 전력 관리 유닛(300)의 동작에 대해 나타나 있고, 도 39는 클럭 관리 유닛(100)의 w/o 리텐션을 위한 파워-업 시퀀스(power-up sequence)에서 전력 관리 유닛(300)의 동작에 대해 나타나 있다.
도 35를 참조하면, 부팅 시퀀스가 수행된 후 파워 업 상태가 되면, PLL이 동작한다. 본 발명의 다양한 실시예에 따른 하드웨어에 의한 클럭 게이팅은 상기 PLL이 동작한 후에, 불필요한 전력을 최소화하기 위한 환경에서 필요에 따라 수행된다.
도 36을 참조하여 파워 다운 시퀀스를 설명하면 다음과 같다.
먼저 클럭 관리 유닛(100)과 IP 블록(200, 210, 220) 사이의 버스 트랜잭션이 종료되고, 클럭 관리 유닛(100)으로부터의 클럭 신호(CLK1, CLK2, CLK3)의 제공도 중단된다. 다음으로 PLL을 오실레이터로 변경하여 PLL의 사용을 중단하고, 클럭 관리 유닛(100)에서 하드웨어에 의해 클럭 게이팅이 수행되지 않던 클럭 소오스에 대한 제어권을 획득한다. 이후 리텐션 작업을 수행한 후, 오실레이터를 중단시킨다. 리텐션 작업을 위해 클럭 관리 유닛(100)은 클럭 신호를 일시적으로 생성할 수 있다.
도 37을 참조하여 파워 업 시퀀스를 설명하면 다음과 같다.
먼저 오실레이터를 동작시키고 리텐션 작업을 수행한다. 리텐션 작업을 위해 클럭 관리 유닛(100)은 클럭 신호를 일시적으로 생성할 수 있다. 다음으로 하드웨어에 의해 클럭 게이팅이 수행되지 않던 클럭 소오스에 대한 제어권을 해제하고 PLL을 동작시킨다. 이후 먼저 클럭 관리 유닛(100)과 IP 블록(200, 210, 220) 사이의 버스 트랜잭션이 수행될 준비를 하면 파워 업 시퀀스가 완료된다.
도 39를 참조하여 파워 다운 시퀀스를 설명하면 다음과 같다.
먼저 클럭 관리 유닛(100)과 IP 블록(200, 210, 220) 사이의 버스 트랜잭션이 종료되고, 클럭 관리 유닛(100)으로부터의 클럭 신호(CLK1, CLK2, CLK3)의 제공도 중단된다. 다음으로 PLL을 오실레이터로 변경하여 PLL의 사용을 중단하고, 클럭 관리 유닛(100)에서 하드웨어에 의해 클럭 게이팅이 수행되지 않던 클럭 소오스에 대한 제어권을 획득한다. 이후 오실레이터를 중단시킨다.
도 37을 참조하여 파워 업 시퀀스를 설명하면 다음과 같다.
먼저 오실레이터를 동작시키고 하드웨어에 의해 클럭 게이팅이 수행되지 않던 클럭 소오스에 대한 제어권을 해제하고 PLL을 동작시킨다. 이후 먼저 클럭 관리 유닛(100)과 IP 블록(200, 210, 220) 사이의 버스 트랜잭션이 수행될 준비를 하면 파워 업 시퀀스가 완료된다.
도 40은 본 발명의 몇몇의 실시예에 따른 반도체 장치를 나타내는 블록도이다.
도 40을 참조하면, 반도체 장치(700)는 중앙 처리 장치(710), 클럭 생성기(720), 클럭 관리 유닛(730), RAM(740), ROM(750) 및 메모리 컨트롤 유닛(760) 등을 포함할 수 있다. 한편, 오실레이터(OSC)는 반도체 장치(700)의 외부에 배치되어 반도체 장치(700)로 발진 신호를 제공할 수 있다. 다만, 이는 일 실시예에 불과한 것으로서, 본 발명의 실시예에 따른 반도체 장치(700)는 다른 다양한 기능 블록들을 포함할 수 있으며, 또한 오실레이터(OSC)가 반도체 장치(700) 내부에 구비되어도 무방하다. 도 40의 반도체 장치(700)는 어플리케이션 프로세서로서 반도체 시스템에 구비될 수 있다.
클럭 생성기(720)는 오실레이터(OSC)로부터의 신호를 이용하여 기준 주파수를 갖는 기준 클럭 신호(CLK_IN)를 생성한다. 클럭 관리 유닛(730)은 기준 클럭 신호(CLK_IN)를 수신하고, 소정의 주파수를 갖는 동작 클럭 신호(CLK_OUT)를 생성하여 각각의 기능 블록으로 제공할 수 있다. 클럭 관리 유닛(730)은 하나 이상의 마스터 클럭 컨트롤러 및 슬레이브 클럭 컨트롤러를 포함할 수 있으며, 각각의 클럭 컨트롤러는 기준 클럭 신호(CLK_IN)를 이용하여 동작 클럭 신호(CLK_OUT)를 생성할 수 있다.
또한, 클럭 관리 유닛(730) 내의 클럭 컨트롤러는 채널을 통해 연결됨에 따라 클럭 신호의 관리를 하드웨어적으로 수행할 수 있다. 또한, 클럭 관리 유닛(730) 내의 클럭 컨트롤러는 기능 블록과 채널을 통해 연결됨에 따라, 클럭 요청 및 요청 응답이 하드웨어적으로 수행될 수 있다.
중앙 처리 장치(710)는 RAM(740)에 저장된 코드들 및/또는 데이터를 처리 또는 실행할 수 있다. 예컨대, 중앙 처리 장치(710)는 클럭 관리 유닛(730)으로부터 출력된 동작 클럭에 응답하여 상기 코드들 및/또는 상기 데이터를 처리 또는 실행할 수 있다. 중앙 처리 장치(710)는 멀티-코어 프로세서(multi-core processor)로 구현될 수 있다. 상기 멀티-코어 프로세서는 두 개 또는 그 이상의 독립적인 실질적인 프로세서들을 갖는 하나의 컴퓨팅 컴포넌트(computing component)이고, 상기 프로세서들 각각은 프로그램 명령들(program instructions)을 읽고 실행할 수 있다. 상기 멀티-코어 프로세서는 다수의 가속기를 동시에 구동할 수 있으므로, 상기 멀티-코어 프로세서를 포함하는 데이터 처리 시스템은 멀티-가속(multi-acceleration)을 수행할 수 있다.
RAM(740)은, 프로그램 코드들, 데이터 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대, 내부 또는 외부 메모리(미도시)에 저장된 프로그램 코드들 및/또는 데이터는 중앙 처리 장치(710)의 제어 또는 ROM(750)에 저장된 부팅 코드(booting code)에 따라 RAM(740)에 일시적으로 저장될 수 있다. 메모리 컨트롤 모듈(760)은 내부 또는 외부 메모리와 인터페이스하기 위한 블록으로서, 메모리 컨트롤 모듈(760)은 메모리의 동작을 전반적으로 제어하며, 또한 호스트와 메모리 사이의 제반 데이터 교환을 제어한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
100: 반도체 장치
101: 입출력 패드
110: 클럭 관리 유닛
150: 전력 관리 유닛
200, 210, 220: 제1 내지 제3 IP 블록

Claims (20)

  1. 제1 클럭 제어 회로(clock control circuit)와 제1 클럭 게이팅 회로(clock gating circuit)를 포함하는 제1 클럭 생성부; 및
    제2 클럭 제어 회로를 포함하는 제2 클럭 생성부를 포함하고,
    상기 제2 클럭 제어 회로는 상기 제1 클럭 제어 회로에 제1 요청 신호를 전송하고,
    상기 제1 클럭 제어 회로는 상기 제2 클럭 제어 회로에 제1 응답 신호를 전송하고,
    상기 제1 요청 신호가 로우 레벨(low level)인 경우, 상기 제1 클럭 제어 회로는 상기 제1 클럭 게이팅 회로의 게이팅 동작을 활성화하고, 상기 제1 응답 신호는 로우 레벨이고,
    상기 제1 요청 신호가 하이 레벨(high level)로 트랜지션된 경우, 상기 제1 클럭 제어 회로는 상기 제1 클럭 게이팅 회로의 게이팅 동작을 비활성화하고, 상기 제1 응답 신호는 하이 레벨로 트랜지션되는 반도체 장치.
  2. 제 1항에 있어서,
    상기 제1 클럭 게이팅 회로가 게이팅 동작을 비수행하는 제1 상태(state)에서, 상기 제1 클럭 생성부에 대한 모든 차일드 회로(child circuit)에서의 요청 신호들이 로우 레벨이 되어 상기 제1 클럭 게이팅 회로가 게이팅 동작을 수행하는 제2 상태로 트랜지션되는 반도체 장치.
  3. 제 2항에 있어서,
    상기 제2 상태에서, 상기 제1 클럭 생성부의 패런트 회로(parent circuit)로의 요청 신호가 로우 레벨이 되어 상기 패런트 회로로부터 상기 제1 클럭 생성부로 전송되는 응답 신호가 로우 레벨이 되는 제3 상태로 트랜지션되는 반도체 장치.
  4. 제 3항에 있어서,
    상기 제3 상태에서, 상기 제1 클럭 생성부는 대기 상태(stopped state)를 유지하는 제4 상태로 트랜지션되는 반도체 장치.
  5. 제 4항에 있어서,
    상기 제4 상태에서, 상기 제1 클럭 생성부에 대한 차일드 회로에서의 요청 신호가 하이 레벨이 되어 상기 제1 클럭 게이팅 회로가 게이팅 동작을 비수행하고 상기 제1 클럭 생성부의 패런트 회로로의 요청 신호가 하이 레벨이 되는 제5 상태로 트랜지션되는 반도체 장치.
  6. 제 5항에 있어서,
    상기 제5 상태에서, 상기 패런트 회로로부터 상기 제1 클럭 생성부로 전송되는 응답 신호가 하이 레벨이 되어 상기 제1 상태로 트랜지션되는 반도체 장치.
  7. 제 1항에 있어서,
    상기 제1 요청 신호는 상기 제2 클럭 생성부에서 동작 클럭이 필요하다는 제1 정보 또는 상기 제2 클럭 생성부에서 동작 클럭이 불필요하다는 제2 정보를 포함하는 반도체 장치.
  8. 제 7항에 있어서,
    상기 제1 응답 신호는 동작 클럭이 존재한다는 제3 정보 또는 동작 클럭의 존재 여부를 알 수 없다는 제4 정보를 포함하는 반도체 장치.
  9. 제 8항에 있어서,
    상기 제1 클럭 생성부는 상기 제2 클럭 생성부로 상기 제1 정보 또는 상기 제2 정보의 인식에 관한 신호를 전송하고,
    상기 제2 클럭 생성부는 상기 제1 클럭 생성부로 상기 제3 정보 또는 상기 제4 정보의 인식에 관한 신호를 전송하는 반도체 장치.
  10. 제 1항에 있어서,
    상기 제1 클럭 제어 회로는 상기 제1 요청 신호에 따라 상기 제1 클럭 제어 회로의 동작 모드를 제어하는 유한 상태 기계(Finite State Machine, FSM)를 포함하는 반도체 장치.
  11. 클럭 제어 회로;
    상기 클럭 제어 회로로부터 제1 요청 신호를 제공받고, 차일드 회로(child circuit)로부터 제2 요청 신호를 제공받는 어댑터 회로(adapter circuit); 및
    상기 클럭 제어 회로의 제어에 따라 클럭 분주율(dividing ratio)을 변경하는 클럭 분주 회로(clock dividing circuit)를 포함하고,
    상기 어댑터 회로는 상기 제1 요청 신호 또는 상기 제2 요청 신호에 따라 패런트 회로(parent circuit)로 제3 요청 신호를 전송하고,
    상기 제3 요청 신호가 하이 레벨(high level)인 경우, 상기 패런트 회로로부터 상기 어댑터 회로로 제공되는 응답 신호가 하이 레벨이고, 상기 클럭 분주 회로의 클럭 분주율 변경 동작이 활성화되는 반도체 장치.
  12. 제 11항에 있어서,
    상기 제3 요청 신호가 로우 레벨(low level)로 트랜지션되는 경우, 상기 응답 신호는 로우 레벨로 트랜지션되고, 상기 클럭 분주 회로의 클럭 분주율 변경 동작이 비활성화되는 반도체 장치.
  13. 제 11항에 있어서,
    상기 제1 요청 신호가 하이 레벨이거나 상기 제2 요청 신호가 하이 레벨인 경우, 상기 제3 요청 신호는 하이 레벨로 트랜지션되는 반도체 장치.
  14. 제 11항에 있어서,
    상기 제3 요청 신호가 하이 레벨이고 상기 응답 신호가 하이 레벨인 제1 상태(state)에서, 상기 제3 요청 신호가 로우 레벨이 되는 제2 상태로 트랜지션되는 반도체 장치.
  15. 제 14항에 있어서,
    상기 제2 상태에서, 상기 응답 신호가 로우 레벨이 되어 상기 클럭 분주 회로가 대기 상태(stopped state)를 유지하는 제3 상태로 트랜지션되는 반도체 장치.
  16. 제 15항에 있어서,
    상기 제3 상태에서, 상기 제3 요청 신호가 하이 레벨이 되는 제4 상태로 트랜지션되는 반도체 장치.
  17. 선택 신호(selection signal)를 제공받는 클럭 제어 회로;
    차일드 회로(child circuit)로부터 제1 요청 신호를 제공받아 상기 클럭 제어 회로로 상기 제1 요청 신호를 전송하는 어댑터 회로(adapter circuit); 및
    상기 클럭 제어 회로의 제어에 따라, 제1 패런트 회로(parent circuit)로부터 제공되는 제1 동작 클럭 및 제2 패런트 회로로부터 제공되는 제2 동작 클럭 중 하나를 선택하여 출력하는 먹스 회로(MUX circuit)를 포함하고,
    상기 클럭 제어 회로는 상기 제1 패런트 회로로 제2 요청 신호를 전송하고, 상기 제2 패런트 회로로 제3 요청 신호를 전송하고,
    상기 선택 신호에 따라 상기 제1 동작 클럭이 선택된 경우, 상기 제2 요청 신호가 하이 레벨(high level)이고, 상기 제1 패런트 회로로부터 상기 어댑터 회로로 제공되는 제1 응답 신호가 하이 레벨이고, 상기 제3 요청 신호가 로우 레벨(low level)이고, 상기 제2 패런트 회로로부터 상기 어댑터 회로로 제공되는 제2 응답 신호가 로우 레벨이고,
    상기 선택 신호의 레벨 값이 변경된 경우, 상기 제2 요청 신호와 상기 제3 요청 신호가 모두 하이 레벨로 트랜지션되는 반도체 장치.
  18. 제 17항에 있어서,
    상기 클럭 제어 회로는, 상기 제1 동작 클럭이 선택된 경우, 상기 차일드 회로로부터 제공되는 상기 제1 요청 신호를 그대로 상기 제1 패런트 회로로 제공하는 반도체 장치.
  19. 제 17항에 있어서,
    상기 클럭 제어 회로는, 상기 제2 요청 신호와 상기 제3 요청 신호를 생성하는 반도체 장치.
  20. 제 17항에 있어서,
    상기 먹스 회로는, 상기 선택 신호의 레벨 값이 변경되어 상기 제2 요청 신호와 상기 제3 요청 신호가 모두 하이 레벨로 트랜지션된 후, 복수 개의 동작 클럭에 대한 선택을 변경하는 반도체 장치.
KR1020170010945A 2016-01-25 2017-01-24 반도체 장치 KR102467172B1 (ko)

Priority Applications (25)

Application Number Priority Date Filing Date Title
US15/415,020 US10429881B2 (en) 2016-01-25 2017-01-25 Semiconductor device for stopping an oscillating clock signal from being provided to an IP block, a semiconductor system having the semiconductor device, and a method of operating the semiconductor device
US15/414,969 US10296065B2 (en) 2016-01-25 2017-01-25 Clock management using full handshaking
US15/415,106 US10296066B2 (en) 2016-01-25 2017-01-25 Semiconductor device, semiconductor system, and method of operating the semiconductor device
US15/415,041 US10248155B2 (en) 2016-01-25 2017-01-25 Semiconductor device including clock generating circuit and channel management circuit
US15/414,819 US10303203B2 (en) 2016-01-25 2017-01-25 Semiconductor device, semiconductor system and method for operating semiconductor device
US15/415,162 US10209734B2 (en) 2016-01-25 2017-01-25 Semiconductor device, semiconductor system, and method of operating the semiconductor device
DE102017110823.8A DE102017110823A1 (de) 2016-01-25 2017-05-18 Halbleitervorrichtung, Halbleitersystem und Verfahren zum Betreiben der Halbleitervorrichtung
DE102017110788.6A DE102017110788A1 (de) 2016-01-25 2017-05-18 Halbleitervorrichtung
DE102017110799.1A DE102017110799A1 (de) 2016-01-25 2017-05-18 Halbleitervorrichtung, ein Halbleitersystem und ein Verfahren zum Betreiben der Halbleitervorrichtung
DE102017110821.1A DE102017110821A1 (de) 2016-01-25 2017-05-18 Halbleitervorrichtung
DE102017110784.3A DE102017110784A1 (de) 2016-01-25 2017-05-18 Halbleitervorrichtung, Halbleitersystem und Verfahren zum Betreiben der Halbleitervorrichtung
TW106116871A TWI771301B (zh) 2017-01-03 2017-05-22 半導體裝置及半導體系統
TW106116846A TWI772300B (zh) 2017-01-03 2017-05-22 半導體裝置
TW106116978A TWI747904B (zh) 2016-01-25 2017-05-23 系統晶片、時鐘閘控元件、時鐘多工器元件及分頻元件
DE102017111189.1A DE102017111189A1 (de) 2016-01-25 2017-05-23 Halbleitervorrichtung, Halbleitersystem und Verfahren zum Betreiben der Halbleitervorrichtung
CN201710608445.1A CN108345351A (zh) 2016-01-25 2017-07-24 片上系统、时钟门控组件、多路复用器组件以及分频组件
CN202310951133.6A CN117075683A (zh) 2016-01-25 2017-07-24 时钟门控组件、多路复用器组件以及分频组件
TW106124821A TWI740988B (zh) 2016-01-25 2017-07-25 半導體裝置
TW106124803A TWI727075B (zh) 2016-01-25 2017-07-25 半導體裝置
US16/393,106 US10928849B2 (en) 2016-01-25 2019-04-24 Semiconductor device, semiconductor system and method for operating semiconductor device
US16/416,600 US10969854B2 (en) 2016-01-25 2019-05-20 Semiconductor device including clock management unit for outputing clock and acknowledgement signals to an intellectual property block
US17/154,373 US11314278B2 (en) 2016-01-25 2021-01-21 Semiconductor device, semiconductor system and method for operating semiconductor device
US17/159,318 US11340685B2 (en) 2016-01-25 2021-01-27 Semiconductor device including clock management unit for outputting clock and acknowledgment signals to an intelectual property block
US17/713,656 US11747853B2 (en) 2016-01-25 2022-04-05 Semiconductor device, semiconductor system and method for operating semiconductor device
US17/731,953 US11789515B2 (en) 2016-01-25 2022-04-28 Semiconductor device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201662286860P 2016-01-25 2016-01-25
US62/286,860 2016-01-25

Publications (2)

Publication Number Publication Date
KR20170088768A KR20170088768A (ko) 2017-08-02
KR102467172B1 true KR102467172B1 (ko) 2022-11-14

Family

ID=59651729

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170010945A KR102467172B1 (ko) 2016-01-25 2017-01-24 반도체 장치

Country Status (5)

Country Link
US (2) US11314278B2 (ko)
KR (1) KR102467172B1 (ko)
CN (2) CN117075683A (ko)
DE (1) DE102017110784A1 (ko)
TW (3) TWI747904B (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102467172B1 (ko) 2016-01-25 2022-11-14 삼성전자주식회사 반도체 장치
US10637592B2 (en) * 2017-08-04 2020-04-28 Chronos Tech Llc System and methods for measuring performance of an application specific integrated circuit interconnect
KR102640922B1 (ko) * 2018-03-05 2024-02-27 삼성전자주식회사 동작 상태에 따라 기능 모듈들을 저전력 상태로 제어하는 집적 회로, 전자 장치 및 그 제어 방법
WO2022055490A1 (en) * 2020-09-11 2022-03-17 Google Llc Hardware-based save-and-restore controller
KR20230000638A (ko) * 2021-06-25 2023-01-03 한국전자통신연구원 저전력 시스템 온 칩
CN116088667B (zh) * 2023-03-03 2023-06-16 此芯科技(北京)有限公司 一种系统级soc芯片控制电路、方法及电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002049437A (ja) 2000-08-01 2002-02-15 Fujitsu Ltd 電子機器及びクロック供給方法
US20110202788A1 (en) 2010-02-12 2011-08-18 Blue Wonder Communications Gmbh Method and device for clock gate controlling
JP2015149599A (ja) 2014-02-06 2015-08-20 富士通セミコンダクター株式会社 半導体装置

Family Cites Families (88)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2777291B2 (ja) 1991-04-30 1998-07-16 株式会社東芝 アナログ・ディジタル混在集積回路
US5600839A (en) 1993-10-01 1997-02-04 Advanced Micro Devices, Inc. System and method for controlling assertion of a peripheral bus clock signal through a slave device
EP0666529B1 (en) * 1994-02-02 2004-10-06 Advanced Micro Devices, Inc. Power management in an asynchronus receiver/transmitter
EP0666525B1 (en) 1994-02-04 2001-09-12 Intel Corporation Method and apparatus for control of power consumption in a computer system
US5793993A (en) 1995-01-26 1998-08-11 General Magic, Inc. Method for transmitting bus commands and data over two wires of a serial bus
US5805923A (en) 1995-05-26 1998-09-08 Sony Corporation Configurable power management system having a clock stabilization filter that can be enabled or bypassed depending upon whether a crystal or can oscillator is used
JP2856177B2 (ja) 1996-10-11 1999-02-10 日本電気株式会社 クロック信号制御回路およびクロック信号制御方式
JPH11143570A (ja) 1997-11-11 1999-05-28 Kawasaki Steel Corp Lsiのクロック停止信号生成回路
JPH11184554A (ja) 1997-12-24 1999-07-09 Mitsubishi Electric Corp クロック制御タイプ情報処理装置
JP3052925B2 (ja) 1998-02-27 2000-06-19 日本電気株式会社 クロック制御方法および回路
US6654898B1 (en) 1999-07-15 2003-11-25 Apple Computer, Inc. Stable clock generation internal to a functional integrated circuit chip
EP1204016B1 (en) 2000-11-03 2007-04-11 STMicroelectronics S.r.l. Power down protocol for integrated circuits
US7174467B1 (en) 2001-07-18 2007-02-06 Advanced Micro Devices, Inc. Message based power management in a multi-processor system
JP4170218B2 (ja) * 2001-08-29 2008-10-22 メディアテック インコーポレーテッド キャッシュミスに応答してタスクを切り替えることによってキャッシュベース埋め込みプロセッサのスループットを改善する方法および装置
US7111183B1 (en) 2002-10-10 2006-09-19 Lattice Semiconductor Corporation Expansion method for complex power-sequencing applications
US7673193B1 (en) * 2005-08-18 2010-03-02 Rambus Inc. Processor-memory unit for use in system-in-package and system-in-module devices
DE10303673A1 (de) 2003-01-24 2004-08-12 IHP GmbH - Innovations for High Performance Microelectronics/Institut für innovative Mikroelektronik Asynchrone Hüllschaltung für eine global asynchrone, lokal synchrone (GALS) Schaltung
US7222251B2 (en) * 2003-02-05 2007-05-22 Infineon Technologies Ag Microprocessor idle mode management system
US6915438B2 (en) * 2003-04-04 2005-07-05 Arraycomm, Inc Distributed power management method for monitoring control/status signal of sub-modules to manage power of sub-modules by activating clock signal during operation of sub-modules
US7131023B2 (en) 2003-05-30 2006-10-31 Lucent Technologies Inc. Programmable clock management component reconfiguration upon receipt of one or more control signals to be able to process one or more frequency signals
US6822481B1 (en) 2003-06-12 2004-11-23 Agilent Technologies, Inc. Method and apparatus for clock gating clock trees to reduce power dissipation
US6927604B2 (en) 2003-08-21 2005-08-09 International Business Machines Corporation Clock signal selector circuit with reduced probability of erroneous output due to metastability
JP2005234932A (ja) 2004-02-20 2005-09-02 Oki Electric Ind Co Ltd マトリックス状バス接続システムとその低電力方法
US7142478B2 (en) 2004-03-19 2006-11-28 Infineon Technologies Ag Clock stop detector
US20050232218A1 (en) 2004-04-19 2005-10-20 Broadcom Corporation Low-power operation of systems requiring low-latency and high-throughput
KR20060064146A (ko) 2004-12-08 2006-06-13 어보브반도체 주식회사 저전력 마이크로 컨트롤러
US7401245B2 (en) 2005-04-29 2008-07-15 Hewlett-Packard Development Company, L.P. Count calibration for synchronous data transfer between clock domains
JP2006318380A (ja) * 2005-05-16 2006-11-24 Handotai Rikougaku Kenkyu Center:Kk 回路システム
JP4820586B2 (ja) 2005-06-29 2011-11-24 ルネサスエレクトロニクス株式会社 半導体集積回路装置
JP2007065756A (ja) 2005-08-29 2007-03-15 Nec Corp クロック制御回路、クロック制御方法、半導体集積回路装置、及び電子機器
US7245161B2 (en) 2005-09-15 2007-07-17 International Business Machines Corporation Apparatus and method for verifying glitch-free operation of a multiplexer
KR100719360B1 (ko) 2005-11-03 2007-05-17 삼성전자주식회사 디지털 로직 프로세싱 회로, 그것을 포함하는 데이터 처리 장치, 그것을 포함한 시스템-온 칩, 그것을 포함한 시스템, 그리고 클록 신호 게이팅 방법
JP2007219678A (ja) 2006-02-15 2007-08-30 Oki Electric Ind Co Ltd マルチレイヤバス・システム
US8291244B2 (en) 2006-07-28 2012-10-16 Arm Limited Power management in a data processing device having masters and slaves
KR100852885B1 (ko) 2006-08-08 2008-08-19 엠텍비젼 주식회사 슬레이브 장치의 소모 전류 제어 회로 및 그 방법, 및아이투씨 인터페이스 회로
JP2008097594A (ja) 2006-09-14 2008-04-24 Yaskawa Electric Corp 低消費電力システムおよび低消費電力システムにおける電力低消費方法
US7797561B1 (en) 2006-12-21 2010-09-14 Nvidia Corporation Automatic functional block level clock-gating
US7971086B2 (en) 2007-02-06 2011-06-28 D. S. P. Group Ltd. Integrated waking/while-awake power management system with breaking distance timer for high wake-up latency portion of hardware
US7813908B2 (en) 2007-04-27 2010-10-12 Freescale Semiconductor, Inc. Clock control module simulator and method thereof
US20080301604A1 (en) 2007-05-30 2008-12-04 Alexander Itskovich Apparatus for and method of estimating the quality of clock gating solutions for integrated circuit design
US8140925B2 (en) 2007-06-26 2012-03-20 International Business Machines Corporation Method and apparatus to debug an integrated circuit chip via synchronous clock stop and scan
US8466723B2 (en) 2007-09-27 2013-06-18 Synopsys, Inc. Clock generator
KR20090061515A (ko) * 2007-12-11 2009-06-16 한국전자통신연구원 Gals 시스템용 접속회로 및 그의 동작방법
US8775839B2 (en) * 2008-02-08 2014-07-08 Texas Instruments Incorporated Global hardware supervised power transition management circuits, processes and systems
TWI358635B (en) * 2008-02-26 2012-02-21 Mstar Semiconductor Inc Power managing method for a multi-microprocessor s
US8028185B2 (en) * 2008-03-11 2011-09-27 Globalfoundries Inc. Protocol for transitioning in and out of zero-power state
US8112648B2 (en) 2008-03-11 2012-02-07 Globalfoundries Inc. Enhanced control of CPU parking and thread rescheduling for maximizing the benefits of low-power state
WO2009126880A2 (en) 2008-04-10 2009-10-15 University Of Southern California Power aware asynchronous circuits
JP2010021793A (ja) 2008-07-10 2010-01-28 Toshiba Corp 半導体集積回路装置および消費電力制御方法
US8112651B2 (en) 2008-09-25 2012-02-07 Intel Corporation Conserving power in a computer system
US8448001B1 (en) 2009-03-02 2013-05-21 Marvell International Ltd. System having a first device and second device in which the main power management module is configured to selectively supply a power and clock signal to change the power state of each device independently of the other device
US8255722B2 (en) * 2009-03-09 2012-08-28 Atmel Corporation Microcontroller with clock generator for supplying activated clock signal to requesting module to conserve power
US8572418B2 (en) 2009-03-12 2013-10-29 Qualcomm Incorporated Moving clock gating cell closer to clock source based on enable signal propagation time to clocked storage element
US8132144B2 (en) 2009-06-17 2012-03-06 Oracle America, Inc. Automatic clock-gating insertion and propagation technique
EP2360553B1 (en) * 2010-02-12 2017-08-23 Intel Deutschland GmbH Circuitry system and method for connecting synchronous clock domains of the circuitry system
JP5317356B2 (ja) 2010-02-26 2013-10-16 ルネサスエレクトロニクス株式会社 クロック制御信号生成回路、クロックセレクタ、及び情報処理装置
US8510598B2 (en) 2010-03-29 2013-08-13 Dot Hill Systems Corporation Buffer management method and apparatus for power reduction during flush operation
US8271812B2 (en) 2010-04-07 2012-09-18 Apple Inc. Hardware automatic performance state transitions in system on processor sleep and wake events
WO2011125566A1 (en) * 2010-04-09 2011-10-13 Semiconductor Energy Laboratory Co., Ltd. Divider circuit
US8289048B2 (en) 2010-04-28 2012-10-16 Intel Corporation State transitioning clock gating
US8533648B2 (en) 2010-05-13 2013-09-10 Oracle International Corporation Automatic clock-gating propagation technique
US8996906B1 (en) 2010-05-13 2015-03-31 Tabula, Inc. Clock management block
KR101603287B1 (ko) * 2010-05-17 2016-03-14 삼성전자주식회사 시스템 온 칩 및 그것의 동작 방법
US8384436B2 (en) 2011-01-10 2013-02-26 Taiwan Semiconductor Manufacturing Company, Ltd. Clock-tree transformation in high-speed ASIC implementation
US8898502B2 (en) 2011-07-05 2014-11-25 Psion Inc. Clock domain crossing interface
US9081517B2 (en) 2011-08-31 2015-07-14 Apple Inc. Hardware-based automatic clock gating
JP5678849B2 (ja) 2011-09-14 2015-03-04 株式会社デンソー 通信システム及びトランシーバ
US9471121B2 (en) 2011-11-14 2016-10-18 Texas Instruments Incorporated Microprocessor based power management system architecture
US8959382B2 (en) 2011-12-30 2015-02-17 Silicon Laboratories Inc. Controlling communication of a clock signal to a peripheral
US8924612B2 (en) 2012-04-04 2014-12-30 Arm Limited Apparatus and method for providing a bidirectional communications link between a master device and a slave device
JP6051648B2 (ja) 2012-07-23 2016-12-27 セイコーエプソン株式会社 プロジェクター、およびその制御方法
US9218018B2 (en) 2012-09-14 2015-12-22 Oracle International Corporation Method and apparatus for distributed generation of multiple configurable ratioed clock domains within a high speed domain
US9270270B2 (en) 2012-09-19 2016-02-23 Qualcomm Incorporated Clock gating circuit for reducing dynamic power
KR102001414B1 (ko) 2012-09-27 2019-07-18 삼성전자주식회사 데이터 트랜잭션에 따라 전력공급을 제어하는 시스템-온-칩 및 그 동작방법
US9152598B2 (en) 2012-11-28 2015-10-06 Atmel Corporation Connecting multiple slave devices to a single master controller in bus system
US9383805B2 (en) * 2013-03-12 2016-07-05 Atmel Corporation Generating clock on demand
US9766648B2 (en) 2013-07-16 2017-09-19 Ford Global Technologies, Llc Controller system coordinated using a timing signal and method of controller coordination using a timing signal
US9230647B2 (en) * 2013-12-27 2016-01-05 Taiwan Semiconductor Manufacturing Co., Ltd. Metal line connection for improved RRAM reliability, semiconductor arrangement comprising the same, and manufacture thereof
KR101406087B1 (ko) * 2014-02-10 2014-06-11 엠텍비젼 주식회사 분주기 및 분주기의 분주 방법
JP2015215684A (ja) * 2014-05-08 2015-12-03 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
KR102290984B1 (ko) 2014-09-30 2021-08-18 삼성전자주식회사 풀 핸드세이크를 지원하는 시스템온칩 및 이를 포함하는 모바일 장치
US9582026B2 (en) 2014-09-30 2017-02-28 Samsung Electronics Co., Ltd. System-on-chip to support full handshake and mobile device having the same
KR102197065B1 (ko) * 2014-10-23 2020-12-30 삼성전자 주식회사 클락 발생 회로 및 이를 포함하는 반도체 집적회로 장치
KR102384347B1 (ko) 2015-05-26 2022-04-07 삼성전자주식회사 클록 관리 유닛을 포함하는 시스템 온 칩 및 그 동작방법
KR20170000609A (ko) 2015-06-24 2017-01-03 이재욱 발모촉진용 조성물의 제조방법
KR102467172B1 (ko) 2016-01-25 2022-11-14 삼성전자주식회사 반도체 장치
US10296066B2 (en) 2016-01-25 2019-05-21 Samsung Electronics Co., Ltd. Semiconductor device, semiconductor system, and method of operating the semiconductor device
US10303203B2 (en) 2016-01-25 2019-05-28 Samsung Electronics Co., Ltd. Semiconductor device, semiconductor system and method for operating semiconductor device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002049437A (ja) 2000-08-01 2002-02-15 Fujitsu Ltd 電子機器及びクロック供給方法
US20110202788A1 (en) 2010-02-12 2011-08-18 Blue Wonder Communications Gmbh Method and device for clock gate controlling
JP2015149599A (ja) 2014-02-06 2015-08-20 富士通セミコンダクター株式会社 半導体装置

Also Published As

Publication number Publication date
KR20170088768A (ko) 2017-08-02
US11747853B2 (en) 2023-09-05
TWI747904B (zh) 2021-12-01
US20220229464A1 (en) 2022-07-21
US11314278B2 (en) 2022-04-26
CN117075683A (zh) 2023-11-17
US20210141412A1 (en) 2021-05-13
TWI740988B (zh) 2021-10-01
TW201827977A (zh) 2018-08-01
TWI727075B (zh) 2021-05-11
TW201828596A (zh) 2018-08-01
CN108345351A (zh) 2018-07-31
TW201826266A (zh) 2018-07-16
DE102017110784A1 (de) 2018-07-05

Similar Documents

Publication Publication Date Title
KR102467172B1 (ko) 반도체 장치
US10853304B2 (en) System on chip including clock management unit and method of operating the system on chip
US10296065B2 (en) Clock management using full handshaking
US11789515B2 (en) Semiconductor device
US11275708B2 (en) System on chip including clock management unit and method of operating the system on chip
US8819401B2 (en) Semiconductor device and reset control method in semiconductor device
TWI772300B (zh) 半導體裝置
KR102530347B1 (ko) 반도체 장치 및 반도체 시스템
US10248155B2 (en) Semiconductor device including clock generating circuit and channel management circuit
US11592861B2 (en) Semiconductor device
KR102550422B1 (ko) 반도체 장치
CN108345350B (zh) 片上系统、半导体系统以及时钟信号输出电路
KR20170088750A (ko) 반도체 장치, 반도체 시스템 및 반도체 장치의 동작 방법
US20150106635A1 (en) Semiconductor integrated circuit and method of controlling the same
CN108268117B (zh) 半导体装置以及半导体系统
CN108268086B (zh) 半导体装置、半导体系统以及操作半导体装置的方法
CN108268085B (zh) 半导体装置
KR20220020763A (ko) 반도체 장치
TW201837652A (zh) 半導體裝置及半導體系統

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant