KR20130010446A - 코어스 클럭 게이팅을 사용하는 동적 프리퀀시 제어 - Google Patents

코어스 클럭 게이팅을 사용하는 동적 프리퀀시 제어 Download PDF

Info

Publication number
KR20130010446A
KR20130010446A KR1020120078403A KR20120078403A KR20130010446A KR 20130010446 A KR20130010446 A KR 20130010446A KR 1020120078403 A KR1020120078403 A KR 1020120078403A KR 20120078403 A KR20120078403 A KR 20120078403A KR 20130010446 A KR20130010446 A KR 20130010446A
Authority
KR
South Korea
Prior art keywords
clock
frequency
clock signal
signal
gating
Prior art date
Application number
KR1020120078403A
Other languages
English (en)
Other versions
KR101396652B1 (ko
Inventor
제임스 왕
페트릭 와이. 로우
Original Assignee
애플 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20130010446A publication Critical patent/KR20130010446A/ko
Application granted granted Critical
Publication of KR101396652B1 publication Critical patent/KR101396652B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K5/00Manipulating of pulses not covered by one of the other main groups of this subclass
    • H03K5/13Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals
    • 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/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/324Power saving characterised by the action undertaken by lowering clock frequency
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K23/00Pulse counters comprising counting chains; Frequency dividers comprising counting chains
    • H03K23/64Pulse counters comprising counting chains; Frequency dividers comprising counting chains with a base or radix other than a power of two
    • H03K23/66Pulse counters comprising counting chains; Frequency dividers comprising counting chains with a base or radix other than a power of two with a variable counting base, e.g. by presetting or by adding or suppressing pulses
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Nonlinear Science (AREA)
  • Power Sources (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Stabilization Of Oscillater, Synchronisation, Frequency Synthesizers (AREA)
  • Information Transfer Systems (AREA)

Abstract

클럭-게이팅 회로를 사용하여 클럭 신호의 프리퀀시를 제어하기 위한 방법 및 장치가 개시되었다. 일 실시예에서, 루트 클럭 신호 및 인에이블 신호는 클럭-게이팅 회로에 제공된다. 클럭-게이팅 회로는 인에이블 신호가 어설트되었을 경우 (루트 클럭 신호에 기초하여) 동작 클럭 신호를 제공하도록 구성된다. 동작 클럭 신호는 인에이블 신호가 디-어설트되었을 때 억제된다. 동작 클럭 신호의 프리퀀시는 매 N개의 클럭 싸이클 중 하나에 대해 인에이블 신호를 어설트함으로써 (루트 클럭 신호에 관하여) 감소된 프리퀀시에서의 출력일 수 있다. 게다가, 동작 클럭 신호의 프리퀀시는 동작 클럭 신호를 수신하는 기능부의 동작을 보류하는 것 없이, 루트 클럭 신호에 관하여 인에이블 신호를 어설트하는 레이트를 변화시킴으로써 동적으로 변할 수 있다.

Description

코어스 클럭 게이팅을 사용하는 동적 프리퀀시 제어{DYNAMIC FREQUENCY CONTROL USING COARSE CLOCK GATING}
본 발명은 집적 회로들에 관한 것이며, 보다 구체적으로는 집적 회로들 내에 분배되어 있는 클럭 신호들의 제어에 관한 것이다.
클럭 게이팅(clock-gating)은 광범위한 집적 회로들(ICs)에서 채용되는 전력 절감 기법이다. 클럭 게이팅을 수행하도록 동작가능한 IC에서, 추가적인 하드웨어가, 클럭 신호를 분배하는데 이용되는 클럭 트리(clock tree)의 다양한 포인트들에 클럭 게이팅 로직의 형태로 부가된다. 클럭 신호를 회로(예를 들어, 플롭 회로들)에 직접 분배하는데 이용된 클럭 트리의 포인트는 "리프(leaf)" 노드라고 지칭될 수 있다. 따라서, 클럭 게이팅 로직은 리프 노드에 배치될 수 있다. 각각의 리프 노드의 클럭 게이팅 로직은, 어설트(assert)되었을 경우, 클럭 신호가, 그 리프 노드와 연관된 클럭 회로에 제공되게 하는 인에이블 신호를 수신하도록 결합될 수 있다. 인에이블 신호는, 그 회로가 아이들(idle) 상태일 때, 대응하는 리프 노드에 결합된 회로에 클럭 신호가 제공되는 것을 억제하도록 디-어설트(de-assert)될 수 있고, 이에 의해 전력을 절감할 수 있다.
클럭 신호를 수반하는 또 다른 전력 절감 기법은 프리퀀시 스케일링이다. 프리퀀시 스케일링은, 프로세싱 작업 부하(workload)에 따라 클럭 프리퀀시가 변화할 수 있는 기법이다. 프로세싱 작업 부하가 더 높은 경우, 프리퀀시 스케일링을 이용하는 시스템은 더 높은 클럭 프리퀀시에서 동작할 수 있다. 작업 부하가 감소되면, 클럭 프리퀀시는 상응하여 감소될 수 있다. 클럭 프리퀀시를 변화시키는 것은 프로세싱 동작들을 잠시 보류하고, 그의 소스(예를 들어, 위상 고정 루프)에서의 클럭 프리퀀시를 변화시키고, 그리고 나서 클럭 신호가 그 새로운 프리퀀시에서 안정적으로 싸이클링하면 동작들을 재개함으로써 달성될 수 있다.
<발명의 개요>
클럭 프리퀀시를 클럭 게이팅부를 이용하여 동적으로 변화시키기 위한 방법 및 장치가 개시된다. 일 실시예에서, 집적 회로(IC)는 다수의 리프 노드를 갖는 클럭 트리를 포함한다. 클럭 트리는, 복수의 리프 노드 각각에 결합된 다수의 동기화 회로에 클럭 신호를 분배하도록 결합된다. IC의 하나 이상의 기능 블록들 각각은 적어도 다수의 리프 노드의 서브세트 및 그들의 대응하여 결합된 동기화 회로들을 포함한다. 코어스 클럭 게이팅(coarse clock-gating; CCG)부는 루트 클럭 신호 및 인에이블 신호를 수신하도록 결합되고, 기능부의 리프 노드들(및 따라서 동기화 회로들)에 동작 클럭 신호를 제공하도록 결합된다. 인에이블 신호가 어설트되는 경우, 코어스 클럭 게이팅부는 루트 클럭 신호의 프리퀀시와 동일한 프리퀀시에서 동작 클럭 신호를 출력할 수 있다. 인에이블 신호가 디-어설트되는 경우, 코어스 클럭 게이팅부는 동작 클럭 신호를 억제할 수 있다. 또한, N 클럭 싸이클마다 하나에 대한 인에이블 신호를 어설트함으로써, 루트 클럭 신호의 프리퀀시에 대해 감소된 클럭 프리퀀시에서 동작 클럭 신호가 출력될 수 있다. 또한, 클럭 신호의 프리퀀시는, 그것이 제공되는 기능부의 동작을 보류할 필요없이 동적으로 (즉, "온 더 플라이(on the fly)") 변화될 수 있다.
일 실시예에서, IC는 클럭 트리에 제공되는 루트 클럭 신호를 생성하는 클럭 생성부를 포함한다. IC는 하나 이상의 기능부를 포함한다. 하나 이상의 코어스 클럭 게이팅부는 루트 클럭 신호를 수신하도록 결합된다. 하나 이상의 코어스 클럭 게이팅부 각각은 대응하는 동작 클럭 신호를 하나 이상의 기능부 중 연관된 것에 제공하도록 결합된다. 클럭 트리는 복수의 리프 노드를 포함하고, 복수의 리프 노드 각각은, 미세 그레인 클럭 게이팅(fine-grain clock-gating)부에 결합된 하나 이상의 동기화 회로에 동작 클럭을 분배하도록 결합된 미세 그레인 클럭 게이팅부와 연관된다. 기능부의 각각은 복수의 리프 노드의 고유한 서브세트를 포함한다. 미세 그레인 클럭 게이팅부의 각각은 수신된 동작 클럭 신호의 클럭 게이팅을 수행하도록 구성된다. 마찬가지로, 코어스 클럭 게이팅부는 그들의 각 기능부에 대해 클럭 게이팅을 수행할 수 있다.
코어스 클럭 게이팅부 및 미세 그레인 클럭 게이팅부 각각은 클럭 제어부로부터 대응하는 인에이블 신호를 수신하도록 결합된다. 클럭 제어 신호는 자신의 각 인에이블 신호를 디-어설트함으로써 소정의 클럭 게이팅부에 의해 동작 클럭 신호가 출력되는 것을 억제할 수 있다. 클럭 제어부는 자신의 각 인에이블 신호를 어설트함으로써 소정의 클럭 게이팅부로부터 동작 클럭 신호가 제공되게 할 수 있다. 또한, 클럭 제어부는 자신의 각 클럭 인에이블 신호를 루트 클럭 신호의 매번 N 싸이클 중 오직 한번 어설트함으로써 코어스 클럭 게이팅부들 중 소정의 코어스 클럭 게이팅부에 의한 동작 클럭 신호 출력의 듀티 싸이클을 변경할 수 있다. 소정의 코어스 클럭 게이팅부에 의해 출력된 동작 클럭 신호의 듀티 싸이클을 변화시키면 동작 클럭 신호의 그 인스턴스의 프리퀀시를 효과적으로 변화시킬 수 있다. 따라서, 클럭 제어부는, 대응하는 기능부가 활성인 경우, 코어스 클럭 게이팅부에 의한 출력으로서의 동작 클럭 신호의 인스턴스의 프리퀀시를 감소시킴으로써 전력 절감을 가능하게 할 수 있으나, 그렇지 않은 경우에 대량의 작업 부하를 프로세싱하지 않는다. 미세 그레인 클럭 게이팅부에 결합된 동기화 회로들이 아이들 상태이면, 클럭 제어부는 동작 클럭 신호가 제공되는 것을 억제하고, 그러한 방식으로 전력 절감을 제공할 수 있다. 마찬가지로, 기능부의 모든 동기화 회로들이 아이들 상태이면, 클럭 제어부는 대응하는 코어스 클럭 게이팅부로부터 출력되는 동작 클럭을 억제할 수 있다.
이하의 발명의 상세한 설명은 다음의 간단히 설명되는 첨부의 도면들을 참조한다:
도 1은 집적 회로(IC)의 일 실시예의 블록도이다.
도 2는 IC용 클럭 트리의 일 실시예를 도시하는 도면이다.
도 3은 클럭-게이팅부의 일 실시예를 도시하는 도면이다.
도 4는 클럭 신호의 주파수를 변화시키기 위한 클럭-게이팅부의 사용을 도시하는 타이밍도이다.
도 5는 클럭 신호의 주파수를 변화시키는 방법의 일 실시예를 도시하는 흐름도이다.
도 6은 예시적인 시스템의 일 실시예의 블록도.
비록 본 발명이 다양한 변형들과 대체적인 형태들을 허용하지만, 그의 특정한 실시예들이 도면들에 예로서 도시되고 본 명세서에서 상세히 설명될 것이다. 그러나, 도면들과 그에 대한 상세한 설명은 본 발명을 개시된 특정한 형태로 한정하고자 의도하는 것이 아니며, 반대로 첨부된 특허청구범위에 의해 규정되는 본 발명의 사상과 범위에 들어가는 모든 변형들, 균등물들 및 대체물들을 커버하는 것을 의도한다는 점이 이해되어야 한다. 본 명세서에 사용된 표제들(headings)은 구성 상의 목적으로만 사용된 것이며 설명의 범위를 한정하기 위해 사용하려는 의도는 아니다. 본원 명세서 전반에 걸쳐 사용된 바와 같이, 단어 "~ 수 있다(may)"는 강제적인 의미(즉, 해야한다는 의미)보다는 허용적인 의미(즉, 가능성을 가진다는 의미)로 사용된 것이다. 유사하게, "포함한다(include)", "포함하는(including)", 및 "포함한다(includes)"라는 단어들은 포함한다는 의미를 가지며, 한정된다는 의미를 가지는 것은 아니다.
다양한 유닛(unit)들, 회로들, 또는 다른 요소들은 작업 또는 작업들을 수행하도록 "구성되는(configured to)" 것으로 설명될 수 있다. 이러한 맥락에서, "구성되는"이란, 동작 중에 작업 또는 작업들을 수행하는 "회로를 가지는" 것을 일반적으로 의미하는 구조의 포괄적인 기재(broad recitation)이다. 이와 같이, 유닛/회로/요소는 그 유닛/회로/요소가 현재 켜져 있지 않은 때에도 작업을 수행하도록 구성될 수 있다. 일반적으로, "구성되는"에 대응하는 구조를 형성하는 회로는 하드웨어 회로들을 포함할 수 있다. 유사하게, 다양한 유닛들/회로들/요소들이, 설명의 편의를 위하여, 작업 또는 작업들을 수행하는 것으로 설명될 수 있다. 그러한 설명들은 "구성되는"이라는 문구를 포함하는 것으로 해석되어야 한다. 하나 이상의 작업들을 수행하도록 구성되는 유닛/회로/요소를 기재하는 것은 그 유닛/회로/요소에 대하여 35 U.S.C. §112, paragraph 6의 해석이 적용되지 않음을 분명하게 의도한다.
집적 회로
도 1은 집적 회로(IC)의 일 실시예의 블록도이다. 도시된 실시예에서, IC(10)는 루트 클럭 신호를 생성하도록 결합된 클럭 생성부(11)를 포함한다. 루트 클럭 신호는 대응하는 코어스 클럭 게이팅부(14)를 통하여 다수의 기능부들(15)의 각각에 라우팅될 수 있는 광역 클럭 신호이다. 클럭 신호는 클럭 트리를 통하여 기능부들(15) (및 각각의 내부의 회로)로 분배되는데, 클럭 트리는 설명을 간단하게 하기 위하여 여기서는 도시되지 않았지만 도 2를 참조하여 더 설명될 것이다.
각각의 코어스 클럭 게이팅부(14)는 클럭 제어부(12)로부터 각자의 클럭 인에이블 신호를 수신하도록 결합된다. 인에이블 신호가 각자의 코어스 클럭 게이팅부(14)로 어설트될 때, 대응하는 기능부(15)로의 분배를 위하여 클럭 신호가 패스된다. 만일 인에이블 신호가 디어설트되면, 각자의 코어스 클럭 게이팅부(14)는 클럭 신호가 대응하는 기능부(15)로 제공되는 것을 억제할 수 있다. 예를 들면, 클럭 제어부(12)가 CCLKEn0 신호를 어설트하면, 대응하는 코어스 클럭 게이팅부(14)는 각자 결합된 기능부(15)에 Clk0를 제공할 수 있다. 만일 CCLKEn0 신호가 클럭 제어부(12)에 의해 디어설트되면, 대응하는 기능부(15)로 어떠한 클럭 신호도 제공되지 않는다. 이하에서 더 상세히 논의될 바와 같이, 클럭 제어부(12)는 또한, 그의 각자 수신된 클럭 인에이블 신호를 토글링함에 의해, 주어진 코어스 클럭-게이팅부에 의해 제공되는 클럭 신호의 주파수를 동적으로 (즉, "온더플라이(on the fly)로") 변화시킬 수 있다.
도시된 실시예의 각각의 기능부(15)는 다수의 상이한 동기화 회로를 포함한다. 이 동기화 회로들 중 임의의 주어진 하나의 동기화 회로는 래치(latch), 플립플롭(flip-flop) 또는 클럭 신호에 따라 동작하는 임의의 그외의 회로일 수 있다. 또한, 각각의 기능부(15)는 다수의 미세 그레인 클럭 게이팅부(fine grain clock-gating unit)들을 포함할 수 있다. 각각의 미세 그레인 클럭 게이팅부는 하나 이상의 동기화 회로와 연관될 수 있다. 클럭 제어부(12)는 각각의 기능부(15)에 대응하는 그룹 인에이블 신호들(예를 들어, FLCKE[N:0])을 제공할 수 있고, 각각의 미세 그레인 클럭 게이팅부는 인에이블 신호들 중 하나를 수신한다. 이 인에이블 신호들은 클럭 신호를 인에이블하거나 또는 클럭 신호가 각각의 동기화 회로들에 제공되는 것을 억제하도록 어설트되거나 또는 디-어설트될 수 있다.
도시된 실시예의 각각의 기능부(15)는 클럭 제어부(12)에 대한 성능(도시된 바와 같은 "성능" 신호)을 나타내는 신호들에 결합된다. 이러한 표시들은 프로세싱 작업 부하, 메모리 요청들, 캐시 요청들 및/또는 캐시 히트들, 및 특정한 기능부(15)에 대한 성능 요구를 나타낼 수 있는 가상의 임의의 그외의 유형의 정보의 표시를 포함할 수 있다. 수신된 표시들에 기초하여, 클럭 제어부(12)는 성능과 전력 소모 사이의 밸런스를 최적화하기 위해 각종 조치를 취하여 클럭 신호들을 제어할 수 있다. 예를 들어, 기능부(15)의 일부의 동기화 회로들(또는 그 그룹들)이 완전히 아이들(idle)인 반면, 그외의 동기화 회로들이 비지(busy)이면, 클럭 제어부(12)는 미세 그레인 클럭 게이팅부들 각각에 제공되는 대응하는 클럭 인에이블 신호들을 디-어설트할 수 있다. 이것은 차례로 아이들 동기화 회로들에 제공되는 클럭 신호를 억제할 수 있고, 이에 의해 전력 소모가 감소한다. 주어진 기능부(15)의 모든 회로들이 아이들이면, 클럭 제어부(15)는 각각의 코어스 클럭 게이팅부(14)에 제공되는 대응하는 인에이블 신호를 디-어설트할 수 있다. 이것은 클럭 신호가 아이들 기능부(15)의 전체(entirety)에 제공되는 것을 억제할 수 있고, 이것은 더 큰 전력 절감을 달성할 수 있다.
일부의 경우들에서, 주어진 기능부(15)는 액티브(active)일 수 있지만, 그럼에도 불구하고 낮은 성능 요구를 가질 수 있다. 예를 들어, 주어진 기능부(15)가 기능부들(15) 중 다른 하나로부터의(또는 IC(10) 외부의 에이전트로의) 정보에 대한 다수의 요청들을 발생시키는 상황을 고려한다. 이러한 경우, 이러한 요청들을 만족시키는 데에는 상당한 지연이 있을 수 있다. 따라서, 요청들을 개시한 기능부(15)는 요청 정보가 리턴되는 것을 대기하는 동안에 수행할 다른 작업을 갖지 않을 수 있다. 이러한 상황에서, 클럭 제어부(12)는 그 특정한 기능부(15)에 제공된 클럭 신호의 프리퀀시를 감소시킬 수 있다. 더 구체적으로, 클럭 제어부(12)는 루트(root) 클럭 신호의 매 N 싸이클 중 하나에 대하여 대응하는 코어스 클럭 게이팅부(14)로부터의 클럭 신호 출력을 인에이블할 수 있다. 예를 들어, 클럭 제어부(12)는 루트 클럭 신호의 매 4 싸이클 중 하나에 대해서만 인에이블 신호를 어설트함으로써 코어스 클럭 게이팅부(14)에 의해 출력된 클럭 신호의 프리퀀시를 효과적으로 감소시킬 수 있다. 이것은 차례로 코어스 클럭 게이팅부(14)가 루트 클럭 신호의 1/4 프리퀀시를 유효하게 갖는 클럭 신호를 출력하게 한다. 동일한 클럭 신호의 듀티 싸이클은 루트 클럭 신호의 듀티 싸이클의 1/8이다. 감소된 성능 요구를 갖는 기능부(15)에 제공된 클럭 신호의 듀티 싸이클 및 유효 프리퀀시는 감소시키는 반면 그외에는 논아이들(non-idle)로 함으로써, 이에 의해 수신된 클럭 신호와 연관된 전력 소모가 감소될 수 있다. 클럭 제어부(12)는 대응하는 기능부(15)의 동작을 보류하지 않고, 특정한 코어스 클럭 게이팅부로부터 제공된 클럭 신호의 프리퀀시의 변화를 동적으로 유효하게 할 수 있다는 것에 유의한다. 이것은 동작의 보류에 의해 클럭 프리퀀시의 변화가 수반되었으면 그렇지 않았을 경우 발생할 수 있었던 IC(10)의 성능의 손실을 방지할 수 있다. 코어스 클럭 게이팅부들(14)은 본원에 분산된 방식으로 구현되는 것으로 도시된다는 것에 유의한다. 그러나, 코어스 클럭 게이팅부들(14)이 단일 블록으로 구현되는 실시예들도 가능하고 고려된다. 도시된 바와 같이 코어스 클럭 게이팅부들이 분산된 배열로 구현되는 경우, 모든 코어스 클럭 게이팅부들(14) 사이에 1/M(여기에서 M은 N의 배수) 듀티 싸이클 클럭 동기화 신호가 분산될 수 있다. 1/M 듀티 싸이클 클럭 동기화 신호는 각각의 코어스 클럭 게이팅부들 사이에서 1/N 주기들을 동기화하는데 사용될 수 있다. 이것은 각각의 기능부들(15) 사이에서 동기화 통신을 가능하게 할 수 있다. 간략화를 위해, 1/M 듀티 싸이클 클럭 동기화 신호에 대한 신호 접속들은 여기에서는 도시되지 않았지만, 그외의 경우의 예시된 실시예에 존재하는 것으로 이해된다.
도시된 실시예에서, 기능부들(15) 각각은 해당 기능부를 기능부들(15) 중 적어도 하나의 다른 기능부에 결합하는 적어도 하나의 인터페이스("IF")를 포함한다. 명시적으로 도시되어 있지 않지만, 하나 이상의 기능부들은 IC(10) 외부의 하나 이상의 에이전트들로의 인터페이스를 또한 포함할 수 있다. 각각의 인터페이스는 두 개의 결합된 기능부들(15) 사이에 전달될 신호들의 지정된 세트에 대한 연결들을 포함할 수 있다. 일부 경우들에서, 인터페이스들은 두 개의 상이한 기능부들 사이의 통신을 위한, 이전에 정의된 프로토콜에 따라 배열될 수 있다. 인터페이스들은 함께 결합된 두 개의 기능부들(15) 사이에 전달될 핸드셰이크 신호들에 대한 연결들도 포함할 수 있다. 핸드셰이크 신호들은 기능부들(15)이 서로 상이한 클럭 프리퀀시에서 동작하는 상황들을 포함하여, 두 개의 기능부들(15) 사이의 동작을 동기화하기 위해 필요한 핸드셰이킹 정보를 전달하기 위해 사용될 수 있다. 핸드셰이킹은 또한 감소된 클럭 프리퀀시에서 동작하는 두 개의 기능부들(15) 각각의 수신된 클럭 신호들이 동일한 클럭 싸이클 상에서 인에이블되는 것을 보장하기 위해 사용될 수 있다. 감소된 프리퀀시에서 동작하는 두 개의 기능부들(15) 각각의 클럭 신호들이 동일한 싸이클 상에서 인에이블되지 않는다면, 클럭 제어부(12)는 대응하는 인에이블 신호가 적어도 하나의 코어스 클럭 게이팅부(14)에 대해 어설트되는 패턴을 변화시켜 클럭 신호들 둘다를 정렬시킬 수 있다(즉, 대응하는 클럭 인에이블 신호들이 루트 클럭 신호의 동일한 싸이클 상에 어설트됨). 일부 실시예들에서, 클럭 제어부(12)는 코어스 클럭 게이팅부 각각에 제공되는 인에이블 신호들이 감소된 프리퀀시에서 동작할 때 동일한 루트 클럭 싸이클 상에 각각 어설트되도록 인에이블 신호들을 동기화하도록 구성될 수 있다.
클럭 트리
이제 도 2를 참조하면, 집적 회로(10)로 구현될 수 있는 클럭 트리의 일 실시예를 예시하는 도면이 도시된다. 예시된 실시예에서, 클럭 생성부(11)는 클럭 드라이버(13)를 통해 루트 클럭 신호 노드로 전달되는 클럭 신호를 생성하도록 구성된다. 클럭 생성부(11)는 위상 고정 루프(PLL) 또는 링 오실레이터와 같은, 임의의 적합한 타입의 클럭 생성 회로일 수 있다.
루트 클럭 신호는 인버터(13)의 추가적인 인스턴스들을 통해 코어스 클럭 게이팅부(14)의 다양한 인스턴스들(여기에는 예시를 위해 단 하나만 도시됨)로 분산될 수 있다. 각각의 코어스 클럭 게이팅부(14)는 각각의 클럭 신호를 기능부(15)의 대응하는 인스턴스에 출력하도록 결합된다. 각각의 코어스 클럭 게이팅부(14)에 의해 출력된 클럭 신호는 다른 인버터(13)를 통해 각각의 기능부들(15) 내의 다수의 상이한 리프 노드들(17)에 제공될 수 있다. 리프 노드들(17) 각각은 미세 그레인 클럭 게이팅부(16) 및 하나 이상의 동기화 회로들(19)을 포함한다. 동기화 회로들(19)은 플립-플롭, 래치, 및/또는 클럭 신호에 따라 동작하는 다른 종류의 회로들을 포함할 수 있다.
각각의 미세 그레인 클럭 게이팅부(16)는 그곳에 결합된, 단 하나만의 동기화 회로(19)를 가질 수 있다. 미세 그레인 클럭 게이팅부(16) 각각은 대응하는 인에이블 신호(예컨대, EN0)도 수신할 수 있으며, 인에이블 신호 각각은 서로 독립적으로 어설트 및 디-어설트될 수 있다. 클럭 제어부(12)는 대응하는 인에이블 신호를 디-어설트함으로써 클럭이 임의의 리프 노드(17)의 동기화 회로들(19)에 제공되는 것을 억제할 수 있다. 이는 미세 그레인 전력을 절감할 수 있다. 주어진 인에이블 신호가 어설트되면, 그것의 대응하는 미세 그레인 클럭 게이팅부(16)는 클럭 신호가 미세 그레인 클럭 게이팅부에 결합된 동기화 회로들에 제공되는 것을 허용할 수 있다. 명시적으로 도시되지는 않았지만, 기능부(15)는, 리프 노드들 각각에 결합되고, 그것의 대응하는 동기화 회로들(19)이 활성인지 비활성인지를 결정하도록 구성되는 성능 모니터링 회로를 포함할 수 있다. 위에서 논의된 바와 같이, 이 정보는 성능 정보와 함께 제공될 수 있다.
이전에 언급한 바와 같이, 클럭 트리(21)는 다양한 클럭 분배 브랜치들 내에 다수의 인버터들(13)을 포함할 수 있다. 인버터들 대신에 비-인버팅 버퍼들이 사용되는 실시예들이 가능하고, 고려된다. 어떤 경우든, 인버터들/버퍼들의 사용은, 클럭 에지들이 하나의 리프 노드(17)에서 다른 리프 노드로 뿐만 아니라, 하나의 기능부(15)에서 다른 기능부로 실질적으로 정렬되도록, 다양한 리프 노드들(17)에 걸쳐 분배되는 클럭 신호들의 비대칭(skew)을 제어하기 위해 사용될 수 있다.
예시적인 클럭 게이팅부
도 3은 클럭 게이팅부의 일 실시예의 로직 다이어그램이다. 도 3에 도시된 클럭 게이팅부(25)의 구성은 위에 논의된 코어스 클럭 게이팅부(14) 및 미세 그레인 클럭 게이팅부(16)를 구현하기 위해 사용될 수 있다. 그러나, 일부 실시예들에서, 코어스 클럭 게이팅부 및 미세 그레인 클럭 게이팅부는 상이한 구성들을 사용하여 구현될 수 있다는 것을 유념한다.
도시된 실시예의 클럭 게이팅부(25)는 래치(26) 및 AND 게이트(27)를 포함한다. 도시된 실시예의 래치(26)는 자신의 'D' 입력에서 인에이블 신호('EN')를 수신하고, 자신의 클럭 입력에서 입력 클럭 신호('ClkIn')를 수신하도록 결합된 레벨-센시티브 래치이다. 래치(26)의 출력은 AND 게이트(27)에 제2 입력으로서 제공되는 동기화된 인에이블 신호('EnIn')이다. AND 게이트(27)에 제공된 동기화된 인에이블 신호가 하이인 경우, (AND 게이트(27)로부터의) 클럭 게이팅부(25)의 출력은 입력 클럭 신호의 상태를 따른다. 다른 경우, 출력 클럭 신호는 로우이다.
도 3에 도시된 클럭 게이팅부(25)의 구성은 클럭 게이팅 회로들에 대한 다수의 가능한 구성들 중 단 하나일 뿐임을 유념한다. 예를 들어, 인에이블 신호에 따라 턴 온 또는 턴 오프되는 패스게이트를 이용하는 클럭 게이팅부가 가능하고 고려되며, 클럭 신호는 인에이블 신호가 어설트될 때 통과한다. 다른 실시예에서, 래치가 없는 간단한 AND 게이트가 클럭 게이팅부로서 사용 가능하고 고려된다.
타이밍 도
도 4는 입력 클럭 신호에 관한 출력 클럭 신호의 프리퀀시를 변경하기 위한 클럭-게이팅부의 이용을 예시하는 타이밍 도이다. 도면의 좌측에, 인에이블 신호('ENIn')가 어설티드로 유지된다. 이러한 경우에, 출력 클럭 신호('ClkOut')는 입력 클럭 신호('ClkIn')를 따르며, 동일한 프리퀀시 및 듀티 싸이클(이 경우, 50%)를 갖는다.
타이밍 도의 오른편으로 이동하면, 인에이블 신호가 4개의 클럭 신호마다 세 개의 클럭 신호들에 대해 디-어설티드로 유지되고, 4번째의 클럭 신호마다 어설티드로 유지된다. 그 결과, 출력 클럭 신호는 4개 싸이클마다 하나에 대해서만 하이로 천이한다. 실제로, 이 경우 출력 클럭 신호는 인에이블 신호를 따른다. 이 예에서의 출력 클럭 신호의 프리퀀시는 입력 클럭 신호의 프리퀀시의 1/4인 반면, 듀티 싸이클은 1/8이다. 대체로, 주어진 값 N에 대해, 클럭 게이팅부에 제공된 클럭 인에이블 신호가 1/N의 듀티 싸이클에서 제공될 수 있어 베이스 프리퀀시의 1/N의 유효 프리퀀시를 갖는 클럭 신호를 생성한다. 감소된 클럭 프리퀀시 신호의 듀티 싸이클은 1/2N일 수 있다.
도시된 예에 나타난 바와 같이 두 개의 상이한 출력 클럭 주파수 사이의 변화는 전술한 하드웨어의 다양한 실시예들에 의해 동적으로 달성될 수 있다는 것에 유의한다. 예를 들면, 도 1의 클럭 제어부(12)가, 주어진 기능부(15)는 더 낮은 클럭 프리퀀시에서 동작할 수 있다고 판정하는 경우, 그 대응하는 코어스 클럭 게이팅부(14)에 제공되는 인에이블 신호를 디어설트할 수 있고, N 클럭 싸이클마다 하나에 대해서만 이 신호를 어설트하기 시작한다. 남아있는 N-1 클럭 신호들에 대해서, 인에이블 신호는 디-어설티드 상태를 유지할 수 있다. 변화가 인에이블 신호의 어설트/디-어설트 패턴에 의해 실행될 수 있기 때문에, 프리퀀시 변화를 달성하기 위해 대응하는 기능부(15)의 동작들을 보류할 필요가 없다. 또한, 입력 클럭 신호의 풀 프리퀀시로의 복귀는 인에이블 신호를 어설트하고 그 상태로 유지함으로써 이루어질 수 있다.
도시된 예는 단지 두 개의 클럭 프리퀀시, 풀 프리퀀시 및 풀 프리퀀시의 1/4인 감소된 프리퀀시에 관한 것이라는 것에 유의한다. 그러나, 추가적인 클럭 프리퀀시들이 가능한 실시예들이 가능하고 고려된다. 예를 들면, 클럭 제어부는 출럭 클럭 신호가 풀 프리퀀시에서, (두 개의 클럭 싸이클마다 하나에 대해 인에이블 신호를 어설트함으로써) 1/2 풀 프리퀀시 또는 도시된 바와 같이 1/4 프리퀀시에서의 순환(cycle)하게 해준다. 추가적으로, 두 개의 상이한 듀티 싸이클의 다양한 혼합된 시퀀스들에서 풀 프리퀀시 및 1/N 프리퀀시로 클럭을 인에이블함으로써 다양한 유효 프리퀀시들을 달성하는 것이 또한 가능하다. 또한, N의 값은 클럭 게이팅부의 설계를 단순화하기 위해 일부 실시예들에서는 고정될 수 있다. 고정된 N의 값은 또한 다양한 코어스 클럭 게이팅부들에 걸친 클럭 신호들의 동기화를 간단히 할 수 있다.
방법 흐름도
도 5를 다시 참조하면, 클럭-게이팅부에 의해 출력된 클럭 신호의 프리퀀시를 변화시키기 위한 방법의 일 실시예에 대한 흐름도가 도시된다. 도시된 실시예에서, 방법(500)은 코어스 클럭 게이팅부에의 입력 클럭 신호 및 인에이블 신호의 제공으로 시작한다(블록(505)). 코어스 클럭 게이팅부는 인에이블 신호가 어설트될 때 이에 대응하여 결합된 기능부에 출력 클럭 신호를 제공하도록 결합될 수 있다. 출력 클럭 신호는 인에이블 신호가 디-어설티드 상태로 유지될 때 기능부에 제공되는 것이 억제될 수 있다. 인에이블 신호가 자신의 어설티드 및 디-어설티드 상태들 사이에서 주기적으로 토클될 때, 코어스 클럭 게이팅부는 입력 클럭 신호의 풀 프리퀀시보다 더 낮은 프리퀀시, 및 입력 클럭 신호의 듀티 싸이클보다 더 작은 듀티 싸이클을 갖는 기능부에 출력 클럭 신호를 효과적으로 제공할 수 있다.
출력 클럭 신호가 풀 프리퀀시에서 제공되야 하는 경우(블록(510), 풀), 인에이블 신호는 어설티드 상태로 유지될 수 있다(블록(515)). 클럭 신호는 풀 프리퀀시(예를 들면, 입력 클럭 신호와 동일한 프리퀀시) 및 듀티 싸이클에서 대응하는 기능부에 제공될 수 있다(블록(515)). 출력 클럭 신호가 감소된 프리퀀시에서 제공되어야 하는 경우(블록(510), 감소됨), 인에이블 신호는 토글될 수 있다(블록(520)). 더욱이, 인에이블 신호는 입력 클럭 신호의 매 N 싸이클 중 하나에 대해 어설트되고, 입력 신호의 나머지 N-1 클럭 싸이클에 대해서는 디-어설트될 수 있다. N의 값은 1보다 큰 정수 값일 수 있다. 본원에 개시된 바와 같이 주기적 방식으로 인에이블 신호를 어설트함으로써, 출력 클럭 신호는 입력 클럭 신호에 비해 감소된 프리퀀시 및 듀티 싸이클에서 효과적으로 제공될 수 있다.
풀 클럭 프리퀀시로 동작할 때, 출력 클럭 프리퀀시가 감소되어야 한다고 판정된다면(블록 525, 예), 방법은 블록 520으로 진행한다. 그렇지 않다면, 인에이블 신호를 어설트된 상태로 유지할 수 있고 블록 515에 따라 출력 클럭 신호가 제공될 수 있다. 감소된 클럭 프리퀀시에서 동작할 때, 클럭 프리퀀시가 풀 클럭 프리퀀시로 복귀되어야 한다고 판정된다면(블록 530, 예), 방법은 인에이블 신호를 주기적으로 어설트하는 것을 중지하고 대신 인에이블 신호를 어설트된 상태로 유지하도록, 블록 515로 진행한다. 그렇지 않다면, 방법은 블록 520에 따라 감소된 프리퀀시로 출력 클럭 신호를 제공하기를 계속한다. 출력 클럭 프리퀀시로의 변화(감소 및 증가)는 프리퀀시 변화가 이루어지고 있는 동안에 수신하는 기능부의 어떠한 동작 보류 없이도 동적으로 수행될 수 있다.
도시된 실시예에서의 방법은 2개의 프리퀀시(풀 및 하나의 감소된 프리퀀시)에 대해서만 수행되지만, 이 방법이 추가적인 클럭 프리퀀시들을 수용하도록 수정될 수 있음이 주의되어어야 한다. 예를 들면, 출력 클럭이 입력 클럭 신호와 동일한 프리퀀시(예를 들면, 풀 클럭 프리퀀시)로, 제1 감소된 프리퀀시(예를 들면, 1/2 입력 클럭 프리퀀시)로, 및 제2 감소된 프리퀀시(예를 들면, 1/4 입력 클럭 프리퀀시)로 제공될 수 있는 방법이 고려된다. 이러한 프리퀀시들 사이의 변화들은 인에이블 신호가 어설트되고 디-어설트되는 패턴을 변화시킴으로써 수행될 수 있다. 풀 클럭 프리퀀시에 대해, 인에이블 신호는 어설트 상태로 유지될 수 있다. 1/2 풀 프리퀀시에서의 출력 클럭 신호에 대해, 인에이블 신호는 입력 클럭 신호의 매 2 싸이클 중 하나에 대하여 어설트되고, 2 싸이클마다 다른 클럭 신호에 대해서는 디-어설트될 수 있다. 1/4 풀 프리퀀시에서의 출력 클럭 신호에 대해, 인에이블 신호는 4 입력 클럭 싸이클마다 하나에 대해 어설트되고, 4 입력 클럭 싸이클마다 다른 셋에 대해서는 디-어설트될 수 있다.
예시적인 시스템
다음으로 도 6을 참조해 보면, 시스템(150)의 일 실시예의 블록도가 도시된다. 도시된 실시예에서, 시스템(150)은 하나 이상의 주변 장치(154) 및 외부 메모리(158)에 결합된 IC(10)(예를 들면, 도 1로부터)의 적어도 하나의 인스턴스를 포함한다. IC(10)에 전원 전압을 공급할 뿐 아니라 메모리(158) 및/또는 주변 장치(154)에 하나 이상의 공급 전압을 공급하는 전원(156)이 제공된다. 일부 실시예들에서, IC(10)의 하나 보다 많은 인스턴스가 포함될 수 있다(그리고 하나 보다 많은 외부 메모리(158)가 또한 포함될 수 있다).
주변 장치(154)는 시스템(150)의 유형에 따라 임의의 바람직한 회로를 포함할 수 있다. 예를 들면, 일 실시예에서, 시스템(150)은 모바일 디바이스(예를 들면, 개인용 디지털 보조 기기(PDA), 스마트폰, 등)일 수 있고 주변 장치(154)는 와이파이, 블루투스, 셀룰러폰, 글로벌 위치확인 시스템, 등과 같은 다양한 유형의 무선 통신을 위한 디바이스들을 포함할 수 있다. 주변 장치(154)는 RAM 저장장치, 고체-상태 저장장치, 또는 디스크 저장장치를 포함하는 추가적인 저장장치를 또한 포함할 수 있다. 주변 장치(154)는 터치 디스플레이 스크린 또는 멀티터치 디스플레이 스크린을 포함하는 디스플레이 스크린, 키보드 또는 다른 입력 디바이스들, 마이크, 스피커 등과 같은 사용자 인터페이스 디바이스들을 포함할 수 있다. 다른 실시예들에서, 시스템(150)은 임의의 유형의 컴퓨팅 시스템(예를 들면, 데스크톱 퍼스널 컴퓨터, 랩톱, 워크스테이션, 넷톱 등)일 수 있다.
외부 메모리(158)는 임의의 유형의 메모리를 포함할 수 있다. 예를 들면, 외부 메모리(158)는 SRAM, SDRAM(동기화 DRAM), 더블 데이터 레이트(DDR, DDR2, DDR3, LPDDR1, LPDDR2, 등), SDRAM, RAMBUS DRAM 등과 같은 동적 RAM(DRAM)일 수 있다. 외부 메모리(158)는 싱글 인라인 메모리 모듈(SIMM), 듀얼 인라인 메모리 모듈(DIMM) 등과 같은 메모리 디바이스들이 장착된 하나 이상의 메모리 모듈을 포함할 수 있다.
상술한 개시물이 완전히 인식된다면 다양한 변형 및 수정들이 당업자에게 명확해질 것이다. 다음의 청구범위는 이러한 모든 변형 및 수정들을 포함하는 것으로 해석되는 것을 의도하였다.

Claims (20)

  1. 클럭 신호를 복수의 리프 노드 각각으로 분배하도록 결합된 클럭 트리 - 각각의 리프 노드는 하나 이상의 동기화 회로에 결합됨 -;
    복수의 미세 그레인 클럭 게이팅부(fine-grain clock gating units) - 상기 복수의 미세 그레인 클럭 게이팅부 각각은 상기 복수의 리프 노드 중 대응하는 리프 노드의 하나 이상의 동기화 회로 각각에 제공된 클럭 신호를 게이팅하도록 구성됨 - ;
    상기 복수의 리프 노드의 서브세트를 포함하는 기능부;
    상기 복수의 리프 노드의 서브세트 각각에 대한 클럭 신호를 게이팅하도록 구성된 코어스 클럭 게이팅부(coarse clock-gating unit); 및
    상기 코어스 클럭 게이팅부에 결합된 게이팅 제어부 - 상기 게이팅 제어부는 클럭 신호의 매 N 싸이클 중 하나는 인에이블링하고 클럭 신호의 매 N 싸이클 중 N-1개는 억제(inhibiting)함으로써 상기 복수의 리프 노드의 서브세트 각각에 제공되는 상기 클럭 신호의 프리퀀시를 선택적으로 제어하도록 구성됨 - 를 포함하는 장치.
  2. 제1항에 있어서,
    상기 클럭 신호를 생성하도록 구성된 클럭 생성부를 더 포함하는 장치.
  3. 제1항에 있어서,
    상기 게이팅 제어부는 또한 상기 미세 그레인 클럭 게이팅부 각각에 각자의 인에이블 신호를 제공하도록 결합되고,
    상기 미세 그레인 클럭 게이팅부 각각은 각자의 인에이블 신호가 어설트(assert)되는 경우 각자의 결합된 동기화 회로로 상기 클럭 신호를 제공하도록 구성되고, 또한 각자의 인에이블 신호가 디어설트(de-assert)되는 경우 상기 클럭 신호가 각자의 결합된 동기화 회로로 제공되는 것을 억제하도록 구성되는 장치.
  4. 제1항에 있어서,
    상기 동기화 회로는 적어도 하나의 플롭(flop) 회로 및 적어도 하나의 래치(latch)를 포함하는 장치.
  5. 제1항에 있어서,
    상기 코어스 클럭 게이팅부와 각각의 상기 미세 그레인 클럭 게이팅부는, 상기 인에이블 신호 및 상기 클럭 신호를 수신하도록 결합된 래치, 및 상기 래치로부터 상기 인에이블 신호를 수신하도록 결합된 제1 입력 및 상기 클럭 신호를 수신하도록 결합된 제2 입력을 가지는 AND 게이트를 포함하는 장치.
  6. 제1항에 있어서,
    상기 기능부는 상기 클럭 신호의 프리퀀시의 변화 동안에 동작들을 보류(suspension) 없이 계속하도록 구성된 장치.
  7. 제1항에 있어서,
    상기 게이팅 제어부는 상기 클럭 신호의 프리퀀시를 동적으로 변화시키도록 구성된 장치.
  8. 제1항에 있어서,
    상기 게이팅 제어부는,
    상기 기능부의 프로세싱 작업 부하(processing workload)의 감소에 응답하여 상기 클럭 신호의 프리퀀시를 감소시키고,
    상기 기능부의 프로세싱 작업 부하의 증가에 응답하여 상기 클럭 신호의 클럭 프리퀀시를 증가시키도록 구성되는 장치.
  9. 코어스 클럭 게이팅부에 제1 클럭 신호를 제공하는 단계 - 상기 코어스 클럭 게이팅부는 상기 제1 클럭 신호에 기초하는 제2 클럭 신호를 클럭 트리의 복수의 리프 노드로 분배하도록 결합되고, 상기 리프 노드 각각은 클럭 신호를, 이 신호가 인에이블될 경우, 대응하는 하나 이상의 동기화 회로 각각으로 분배하도록 결합된 대응하는 미세 그레인 클럭 게이팅부와 연관되고, 상기 제1 클럭 신호는 제1 클럭 프리퀀시를 가지고 상기 제2 클럭 신호는 제2 클럭 프리퀀시를 가짐 - ;
    상기 코어스 클럭 게이팅부에 코어스 게이팅 인에이블 신호를 제공하는 단계 - 상기 코어스 클럭 게이팅부는 상기 코어스 게이팅 인에이블 신호가 어설트될 경우 상기 제2 클럭 신호를 출력하도록 구성되고 또한 상기 코어스 게이팅 인에이블 신호가 디어설트될 경우 상기 제2 클럭 신호를 억제하도록 구성됨 - ; 및
    제1 클럭 신호의 매 N 싸이클 중 하나에 대한 코어스 게이팅 인에이블 신호는 어설트하고, 제1 클럭 신호의 매 N 싸이클 중 N-1개에 대한 코어스 게이팅 인에이블 신호는 디어설트함으로써 상기 제2 클럭 프리퀀시가 상기 제1 클럭 프리퀀시보다 작아지도록 하는 단계를 포함하는 방법.
  10. 제9항에 있어서,
    클럭 생성부가 상기 제1 클럭 신호를 생성하고, 상기 클럭 트리에 상기 제1 클럭 신호를 제공하는 단계를 더 포함하는 방법.
  11. 제9항에 있어서,
    제1 클럭 신호의 매 N 싸이클의 N개에 대한 상기 코어스 클럭 게이팅 인에이블 신호를 어설트함으로써 상기 제1 클럭 프리퀀시 및 상기 제2 클럭 프리퀀시가 동일하게 되도록 하는 단계를 더 포함하는 방법.
  12. 제9항에 있어서,
    기능부가 상기 복수의 리프 노드를 포함하고,
    상기 방법은
    상기 제2 클럭 프리퀀시를 상기 제1 클럭 프리퀀시와 동일한 상태에서 상기 제1 클럭 프리퀀시보다 작은 상태로 동적으로 변화시키는 단계; 및
    상기 제2 클럭 프리퀀시를 동적으로 변화시키는 단계 동안에 상기 기능부의 동작은 계속하는 단계
    를 더 포함하는 방법.
  13. 제12항에 있어서,
    기능 블록의 프로세싱 작업 부하(processing workload)의 감소에 응답하여 상기 제2 클럭 프리퀀시를 상기 제1 클럭 프리퀀시와 동일한 상태로부터 감소시키는 단계; 및
    상기 기능 블록의 프로세싱 작업 부하의 증가에 응답하여 상기 제2 클럭 프리퀀시를 상기 제1 클럭 프리퀀시와 동일하게 되도록 증가시키는 단계
    를 더 포함하는 방법.
  14. 제9항에 있어서,
    기능 블록의 프로세싱 작업 부하의 증가에 응답하여 상기 제2 클럭 프리퀀시를 상기 제1 클럭 프리퀀시와 동일하게 되도록 증가시키는 단계를 더 포함하는 방법.
  15. 제9항에 있어서,
    N은 1보다 큰 정수 값인 방법.
  16. 제1 프리퀀시에서 루트 클럭 신호를 클럭-게이팅부에 제공하는 단계;
    상기 클럭 게이팅부로부터 동작 클럭 신호를 출력하는 단계 - 상기 동작 클럭 신호는 상기 루트 클럭 신호에 기초함 - ;
    상기 클럭 게이팅부로 인에이블 신호를 제공하는 단계;
    루트 클럭 신호의 매 N 싸이클의 N개에 대하여 상기 인에이블 신호를 어설트함으로써 상기 제1 클럭 프리퀀시에서 상기 동작 클럭 신호를 출력하는 단계; 및
    루트 클럭 신호의 매 N 싸이클 중 하나에 대한 인에이블 신호는 어설트하고 루트 클럭 신호의 매 N 싸이클 중 N-1개에 대한 인에이블 신호는 디어설트함으로써 상기 제1 프리퀀시보다 작은 제2 프리퀀시에서 상기 동작 클럭 신호를 출력하는 단계를 포함하는 방법.
  17. 제16항에 있어서,
    기능 블록에 상기 동작 클럭 신호를 제공하는 단계;
    상기 기능 블록의 동작을 보류하지 않고 상기 제2 프리퀀시를 동적으로 변화시키는 단계를 더 포함하는 방법.
  18. 제17항에 있어서,
    상기 기능 블록의 작업 부하의 감소에 응답하여 상기 동작 클럭 신호의 프리퀀시를 상기 제1 프리퀀시로부터 상기 제2 프리퀀시로 변화시키는 단계; 및
    상기 기능 블록의 작업 부하의 증가에 응답하여 상기 동작 클럭 신호의 프리퀀시를 상기 제2 프리퀀시로부터 상기 제1 프리퀀시로 변화시키는 단계
    를 더 포함하는 방법.
  19. 제16항에 있어서,
    N은 1보다 큰 정수 값인 방법.
  20. 제16항에 있어서,
    제1 클럭 게이팅부가 상기 루트 클럭 신호를 수신하고 제1 기능 블록으로 상기 제2 프리퀀시에서의 제1 동작 클럭 신호를 제공하는 단계;
    제2 클럭 게이팅부가 상기 루트 클럭 신호를 수신하고 제2 기능 블록으로 상기 제2 프리퀀시에서의 제2 동작 클럭 신호를 제공하는 단계;
    클럭 제어부가 동일한 싸이클의 루트 클럭 신호에서 상기 제1 클럭 게이팅부로 제1 인에이블 신호를 어설트하고 상기 제2 클럭 게이팅부로 제2 인에이블 신호를 어설트하는 단계
    를 더 포함하는 방법.
KR1020120078403A 2011-07-18 2012-07-18 코어스 클럭 게이팅을 사용하는 동적 프리퀀시 제어 KR101396652B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201161508878P 2011-07-18 2011-07-18
US61/508,878 2011-07-18
US13/429,800 US8671380B2 (en) 2011-07-18 2012-03-26 Dynamic frequency control using coarse clock gating
US13/429,800 2012-03-26

Publications (2)

Publication Number Publication Date
KR20130010446A true KR20130010446A (ko) 2013-01-28
KR101396652B1 KR101396652B1 (ko) 2014-05-19

Family

ID=47010176

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120078403A KR101396652B1 (ko) 2011-07-18 2012-07-18 코어스 클럭 게이팅을 사용하는 동적 프리퀀시 제어

Country Status (7)

Country Link
US (1) US8671380B2 (ko)
EP (1) EP2549354B1 (ko)
JP (1) JP5542180B2 (ko)
KR (1) KR101396652B1 (ko)
CN (1) CN102904553B (ko)
TW (1) TWI460583B (ko)
WO (1) WO2013012615A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9417655B2 (en) * 2014-11-14 2016-08-16 Cavium, Inc. Frequency division clock alignment
CN106300919B (zh) * 2015-05-11 2020-03-31 福州瑞芯微电子股份有限公司 一种开关电源控制装置、方法、以及一种开关电源
JP6441166B2 (ja) 2015-05-15 2018-12-19 ルネサスエレクトロニクス株式会社 半導体装置
DE102015214758A1 (de) * 2015-08-03 2017-02-09 Robert Bosch Gmbh Verfahren und Vorrichtung zum Bereitstellen eines Taktes für eine elektronische Schaltung und Prozessorvorrichtung
KR102387466B1 (ko) * 2015-09-18 2022-04-15 삼성전자주식회사 반도체 장치
CN106992770B (zh) * 2016-01-21 2021-03-30 华为技术有限公司 时钟电路及其传输时钟信号的方法
US10270434B2 (en) * 2016-02-18 2019-04-23 Apple Inc. Power saving with dynamic pulse insertion
US9698781B1 (en) * 2016-05-26 2017-07-04 Intel Corporation Dynamic clock gating frequency scaling
US10416910B1 (en) * 2016-09-20 2019-09-17 Altera Corporation Apparatus and method to reduce memory subsystem power dynamically
US10461747B2 (en) 2017-09-20 2019-10-29 Apple Inc. Low power clock gating circuit
CN108052156A (zh) * 2017-11-27 2018-05-18 中国电子科技集团公司第三十八研究所 一种基于门控技术的处理器时钟树架构及构建方法
US10650112B1 (en) 2017-12-21 2020-05-12 Apple Inc. Multi-bit clock gating cell to reduce clock power
KR20210026965A (ko) 2019-09-02 2021-03-10 삼성전자주식회사 클럭 트리를 포함하는 이미지 센서 및 어드레스 디코더, 이미지 센서를 포함하는 이미지 처리 시스템
US20230384820A1 (en) * 2022-05-25 2023-11-30 Texas Instruments Incorporated Fsm based clock switching of asynchronous clocks
US20240061607A1 (en) * 2022-08-17 2024-02-22 Micron Technology, Inc. Variable nand mode with single pll source

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5408640A (en) 1990-02-21 1995-04-18 Digital Equipment Corporation Phase delay compensator using gating signal generated by a synchronizer for loading and shifting of bit pattern to produce clock phases corresponding to frequency changes
US5600824A (en) 1994-02-04 1997-02-04 Hewlett-Packard Company Clock generating means for generating bus clock and chip clock synchronously having frequency ratio of N-1/N responsive to synchronization signal for inhibiting data transfer
US5757218A (en) * 1996-03-12 1998-05-26 International Business Machines Corporation Clock signal duty cycle correction circuit and method
KR100240870B1 (ko) * 1997-03-15 2000-01-15 윤종용 동기형 반도체 메모리 장치
JP2001034647A (ja) 1999-07-16 2001-02-09 Sanyo Electric Co Ltd クロック分配回路、クロック分配回路の設計方法及び半導体集積回路
US6983389B1 (en) * 2002-02-01 2006-01-03 Advanced Micro Devices, Inc. Clock control of functional units in an integrated circuit based on monitoring unit signals to predict inactivity
US6971038B2 (en) * 2002-02-01 2005-11-29 Broadcom Corporation Clock gating of sub-circuits within a processor execution unit responsive to instruction latency counter within processor issue circuit
JP2003330568A (ja) * 2002-05-09 2003-11-21 Toshiba Corp 半導体集積回路および回路設計システム
JP4242787B2 (ja) * 2004-01-20 2009-03-25 富士通株式会社 情報処理装置
US7516350B2 (en) 2004-09-09 2009-04-07 International Business Machines Corporation Dynamic frequency scaling sequence for multi-gigahertz microprocessors
US7225421B2 (en) 2005-01-28 2007-05-29 International Business Machines Corporation Clock tree distribution generation by determining allowed placement regions for clocked elements
US7190201B2 (en) * 2005-02-03 2007-03-13 Mosaid Technologies, Inc. Method and apparatus for initializing a delay locked loop
US7672417B2 (en) * 2006-08-31 2010-03-02 Montage Technology Group Limited Clock and data recovery
JP5231800B2 (ja) * 2007-12-26 2013-07-10 株式会社東芝 半導体集積回路装置および半導体集積回路装置のクロック制御方法
GB2456202B (en) 2008-01-09 2012-10-17 Ibm A digital circuit on a semiconductor chip with a plurality of macro circuits and a clock gating system
US7616043B2 (en) * 2008-02-12 2009-11-10 Sony Computer Entertainment Inc. Methods and apparatus for managing LSI power consumption and degradation using clock signal conditioning
WO2009116398A1 (ja) * 2008-03-17 2009-09-24 日本電気株式会社 クロック信号分周回路および方法
US7458050B1 (en) 2008-03-21 2008-11-25 International Business Machines Corporation Methods to cluster boolean functions for clock gating
WO2010050097A1 (ja) * 2008-10-29 2010-05-06 日本電気株式会社 クロック分周回路、クロック分配回路、クロック分周方法及びクロック分配方法
WO2010050098A1 (ja) * 2008-10-29 2010-05-06 日本電気株式会社 クロック分周回路、クロック分配回路、クロック分周方法及びクロック分配方法
JP5384910B2 (ja) 2008-11-11 2014-01-08 ルネサスエレクトロニクス株式会社 半導体集積回路及びクロック同期化制御方法
WO2010070830A1 (ja) * 2008-12-17 2010-06-24 日本電気株式会社 クロック分周回路、及びクロック分周方法
GB2466300B (en) * 2008-12-19 2013-05-15 Advanced Risc Mach Ltd Control of clock gating
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
JP5493591B2 (ja) * 2009-08-24 2014-05-14 日本電気株式会社 クロック分周回路および方法
JP5482466B2 (ja) * 2010-06-03 2014-05-07 富士通株式会社 データ転送装置及びデータ転送装置の動作周波数制御方法
GB2486003B (en) * 2010-12-01 2016-09-14 Advanced Risc Mach Ltd Intergrated circuit, clock gating circuit, and method
US8395454B2 (en) * 2011-05-13 2013-03-12 Oracle International Corporation Synchronized output of multiple ring oscillators
US8769332B2 (en) * 2012-01-20 2014-07-01 Apple Inc. Regional clock gating and dithering

Also Published As

Publication number Publication date
CN102904553B (zh) 2015-06-03
EP2549354A2 (en) 2013-01-23
TWI460583B (zh) 2014-11-11
JP5542180B2 (ja) 2014-07-09
EP2549354A3 (en) 2017-03-15
JP2013027050A (ja) 2013-02-04
TW201312336A (zh) 2013-03-16
US20130021072A1 (en) 2013-01-24
WO2013012615A1 (en) 2013-01-24
CN102904553A (zh) 2013-01-30
KR101396652B1 (ko) 2014-05-19
EP2549354B1 (en) 2019-09-25
US8671380B2 (en) 2014-03-11

Similar Documents

Publication Publication Date Title
KR101396652B1 (ko) 코어스 클럭 게이팅을 사용하는 동적 프리퀀시 제어
US8769332B2 (en) Regional clock gating and dithering
KR101297481B1 (ko) 프로세싱 코어들의 독립 전력 제어
US9286257B2 (en) Bus clock frequency scaling for a bus interconnect and related devices, systems, and methods
US8468373B2 (en) Modifying performance parameters in multiple circuits according to a performance state table upon receiving a request to change a performance state
KR101485235B1 (ko) 지연 동기 루프 및 위상 동기 루프를 위한 방법 및 장치
US9429981B2 (en) CPU current ripple and OCV effect mitigation
US8645743B2 (en) Mechanism for an efficient DLL training protocol during a frequency change
US11181941B2 (en) Using a stuttered clock signal to reduce self-induced voltage noise
KR20070110400A (ko) 클럭 분배 도메인들로의 클럭 분배 순서 제어
TWI475355B (zh) 用於資料接收及傳輸之方法及相關之積體電路
JP2022536593A (ja) 安定したクロッキングを維持するための装置および方法
US10650112B1 (en) Multi-bit clock gating cell to reduce clock power
US9529405B2 (en) Subsystem idle aggregation
TWI794949B (zh) 用於組態及狀態暫存器之獨立時脈之單晶片系統及方法
WO2024005975A1 (en) Domain clock and power activation control circuit to reduce voltage droop and related methods

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170420

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180417

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190417

Year of fee payment: 6