KR102550777B1 - 주파수 가변 클럭 생성기로 크리티컬 경로 수용 - Google Patents

주파수 가변 클럭 생성기로 크리티컬 경로 수용 Download PDF

Info

Publication number
KR102550777B1
KR102550777B1 KR1020160059652A KR20160059652A KR102550777B1 KR 102550777 B1 KR102550777 B1 KR 102550777B1 KR 1020160059652 A KR1020160059652 A KR 1020160059652A KR 20160059652 A KR20160059652 A KR 20160059652A KR 102550777 B1 KR102550777 B1 KR 102550777B1
Authority
KR
South Korea
Prior art keywords
clock
critical
frequency
module
signal
Prior art date
Application number
KR1020160059652A
Other languages
English (en)
Other versions
KR20160134586A (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 KR20160134586A publication Critical patent/KR20160134586A/ko
Application granted granted Critical
Publication of KR102550777B1 publication Critical patent/KR102550777B1/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/08Clock generators with changeable or programmable clock frequency
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318577AC testing, e.g. current testing, burn-in
    • G01R31/31858Delay testing
    • 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
    • H03K5/135Arrangements having a single output and transforming input signals into pulses delivered at desired time intervals by the use of time reference signals, e.g. clock signals
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Nonlinear Science (AREA)
  • Power Engineering (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Pulse Circuits (AREA)

Abstract

본 발명의 양상들은 집적회로 및 방법을 제공하는바, 상기 집적회로 및 방법에서는 집적회로 내의 크리티컬 경로들을 수용하도록 클럭 신호의 주파수를 변경한다. 본 발명의 집적회로는 가변인 클럭 주파수를 갖는 클럭 신호를 생성하는 클럭 생성기, 상기 클럭 신호의 제어하에서 동작하도록 선택적으로 활성화될 수 있는 복수의 크리티컬 모듈들(critical modules)을 포함하는 회로, 각각의 크리티컬 모듈은 디폴트 클럭 주파수가 수용(accommodate)할 수 없는 하나 이상의 크리티컬 경로들을 포함하며, 그리고 활성화된 크리티컬 모듈들 내의 크리티컬 경로들의 전파 지연들에 기초하여 상기 클럭 신호의 클럭 주파수를 클럭 생성기가 변화시키게 하는 제어기를 포함한다.

Description

주파수 가변 클럭 생성기로 크리티컬 경로 수용{CRITICAL PATHS ACCOMODATION WITH FREQUENCY VARIABLE CLOCK GENERATOR}
본 발명은 "Critical Path Relief with ARO" 라는 명칭으로 2015년 5월 15일자로 출원된 미국 출원(출원번호 62/162,034)의 우선권을 주장하며, 상기 미국 출원은 본 발명에 대한 참조로서, 그 전체 내용이 본 명세서에 통합된다.
본 명세서에 제공된 배경 기술 부분은 본 발명의 맥락(context)을 일반적으로 제공하기 위한 것이다. 출원시에 종래 기술로 인정될 수 없는 설명 측면 뿐만 아니라 본 배경기술란에 설명된 정도까지 현재 명명된 발명자의 업적은 명시적으로든 또는 암시적으로든 본 발명에 대한 종래기술로 인정되어서는 아니된다.
집적회로들에 대한 현재의 동시 설계에서, 크리티컬 경로들은 시스템의 성능을 결정하며, 그리고 시스템에서 가장 크리티컬한 경로는 시스템의 속도를 결정한다.
적극적인 목표를 달성하기 위하여, 크리티컬 경로들은 종종 설계하기가 난해하다. 비록 이들 중 일부는 동작시에 거의 액티브하지 않지만, 이들 크리티컬 경로들을 최적화하기 위하여 상당한 노력들 및 리소스들이 투자된다.
본 발명의 양상들은 집적회로를 제공하는바, 본 발명에 따른 집적회로는 집적회로에서 크리티컬 경로들을 수용하도록 클럭 신호의 주파수를 변경한다. 본 발명의 집적회로는 가변인 클럭 주파수를 갖는 클럭 신호를 생성하는 클럭 생성기, 상기 클럭 신호의 제어하에서 동작하도록 선택적으로 활성화될 수 있는 복수의 크리티컬 모듈들(critical modules)을 포함하는 회로, 각각의 크리티컬 모듈은 디폴트 클럭 주파수가 수용(accommodate)할 수 없는 하나 이상의 크리티컬 경로들을 포함하며, 그리고 활성화된 크리티컬 모듈들 내의 크리티컬 경로들의 전파 지연들에 기초하여 상기 클럭 신호의 클럭 주파수를 클럭 생성기가 변화시키게 하는 제어기를 포함한다.
일실시예에서, 상기 집적회로는 크리티컬 모듈들을 선택적으로 활성화시키는 인에이블 신호들을 생성하는 로직(logic)(또는, '논리') 경로 인에이블러(logic path enabler)를 더 포함한다.
일실시예에서, 상기 제어기는, 그 각각이 기결정된 클럭 주파수에 대응하는 다수의 미리설정된(preconfigured) 클럭 세팅들 중에서, 활성화된 크리티컬 모듈들 내의 크리티컬 경로들을 수용할 수 있는 주파수를 갖는 클럭 세팅을 상기 인에이블 신호에 기초하여 선택하고, 그리고 이후 상기 선택된 클럭 세팅을 나타내는 제어 신호를 상기 클럭 생성기로 전송한다.
일실시예에서, 각각의 크리티컬 모듈은 상기 모듈 내의 로직 경로들 중에서 가장 긴 전파 지연을 갖는 모듈 크리티컬 경로를 포함하며, 그리고 상기 제어기는 상기 클럭 생성기가, 활성화된 각각의 크리티컬 모듈 내의 모듈 크리티컬 경로들을 수용할 수 있는 가장 높은 가능 주파수에서 클럭 신호를 생성하게 한다. 일례에서, 각각의 크리티컬 모듈은, 크리티컬 모듈 각각의 모듈 크리티컬 경로를 수용할 수 있는 주파수들을 갖는 다수의 미리설정된 클럭 세팅들 중에서 가장 높은 클럭 주파수를 갖는 관련된 클럭 세팅을 가지며, 그리고 상기 제어기는, 인에이블 신호가 도달 혹은 종료하는 경우, 수신된 인에이블 신호들에 기초하여, 활성화된 크리티컬 모듈들에 관련된 클럭 세팅들 중에서 가장 낮은 클럭 주파수를 갖는 클럭 세팅을 선택하고 그리고 선택된 클럭 세팅을 나타내는 제어 신호를 상기 클럭 생성기로 나중에 전송한다.
일실시예에서, 활성화되는 경우 각각의 크리티컬 모듈은 클럭 신호의 하나 이상의 싸이클들에 대응하는 하나 이상의 싸이클(cycle) 크리티컬 경로들을 가지며, 각각의 싸이클 크리티컬 경로는 각각의 크리티컬 모듈 내의 클럭 신호의 대응 싸이클 동안에 동작 중인 크리티컬 경로들 중에서 가장 긴 전파 지연을 가지며, 그리고 상기 제어기는 상기 클럭 생성기로 하여금, 상기 클럭 신호의 싸이클 동안, 활성화된 크리티컬 모듈들 내의 클럭 신호의 싸이클에 대응하는 싸이클 크리티컬 경로들을 수용할 수 있는 가장 높은 가능 주파수에서 클럭 신호를 생성하게 한다.
일례에서, 각각의 싸이클 크리티컬 경로는, 각각의 싸이클 크리티컬 경로를 수용할 수 있는 주파수들을 갖는 다수의 미리설정된 클럭 세팅들 중에서 가장 높은 클럭 주파수를 갖는 관련된 클럭 세팅을 가지며, 그리고 상기 제어기는, 상기 클럭 신호의 싸이클 동안, 활성화된 크리티컬 모듈 내의 클럭 신호의 싸이클에 대응하는 싸이클 크리티컬 경로들에 관련된 클럭 세팅들 중에서 가장 낮은 클럭 주파수를 갖는 클럭 세팅을, 수신된 인에이블 신호들에 기초하여 선택하며, 그리고 선택된 클럭 세팅을 나타내는 제어 신호를 상기 클럭 생성기로 나중에 전송한다.
일실시예에서, 상기 로직 경로 인에이블러는 크리티컬 모듈을 활성화시키기 위해 인에이블 신호를 생성하기 전에, 트리거 신호를 생성하며, 그리고 상기 제어기는, 상기 트리거 신호에 응답하여, 상기 클럭 생성기로 하여금 크리티컬 모듈이 동작하기 시작하는 때에 상기 클럭 신호의 주파수를 변하게 한다.
일례에서, 상기 회로는 또한, 디폴트 주파수에서 상기 클럭 신호의 제어 하에서 동작하는 논-크리티컬(non-critical) 모듈들을 포함하고, 그리고 상기 제어기는 크리티컬 모듈이 활성화되는 경우 클럭 생성기로 하여금 클럭 신호의 주파수를 디폴트 주파수로부터 상기 디폴트 주파수보다 낮은 주파수로 변경하게 한다.
일실시예에서, 상기 클럭 생성기는 반전 지연들(inversion delays)의 개수에 대한 함수인 주파수를 이용하여 상기 클럭 신호를 생성한다. 일례에서,
상기 클럭 생성기는, 제 1 펄스들을 출력하는 제 1 펄스 생성기와 제 2 펄스들을 출력하는 제 2 펄스 생성기를 포함하며, 각각의 제 1 펄스는 제 1 리딩 에지(leading edge), 제 1 트레일링 에지(trailing edge) 및 반전 지연들에 대한 함수인 제 1 펄스 폭을 가지고, 각각의 제 2 펄스는 제 2 리딩 에지, 제 2 트레일링 에지 및 반전 지연들에 대한 함수인 제 2 펄스 폭을 갖는다. 또한, 제 1 펄스 생성기가 제 2 트레일링 에지에 응답하여 상기 제 1 펄스들 중 하나를 출력하도록 그리고 제 2 펄스 생성기가 제 1 트레일링 에지에 응답하여 상기 제 2 펄스들 중 하나를 출력하도록, 상기 제 1 펄스 생성기와 제 2 펄스 생성기는 크로스-커플링된다.
본 발명의 양상들은 집적회로 내의 크리티컬 경로들을 수용하기 위해 클럭 신호의 주파수를 변경하는 방법을 제공한다. 상기 방법은, 클럭 생성기로부터 생성된 클럭 신호의 제어 하에서 동작하는 복수의 크리티컬 모듈들 중 크리티컬 모듈을 선택적으로 활성화시키는 단계, 각각의 크리티컬 모듈은 디폴트 클럭 주파수가 수용할 수 없는 하나 이상의 크리티컬 경로들을 포함하며; 그리고 활성화된 크리티컬 모듈들 내의 이들 크리티컬 경로들의 전파 지연들에 기초하여 상기 클럭 신호의 클럭 주파수를 상기 클럭 생성기에 의해서 변화시키는 단계를 포함한다.
일례로서 제공된 본 발명의 다양한 실시예들은 첨부된 도면들을 참조하여 상세하게 후술될 것이다. 도면들에서 유사한 참조번호들은 유사한 구성요소들을 나타낸다.
도1은 본 발명의 일실시예에 따른 디지털 시스템을 도시한다.
도2는 본 발명의 일실시예에 따른 클럭 주파수 변동 프로세스를 예시하는 타이밍도이다.
도3은 본 발명의 일실시예에 따른 또 다른 클럭 주파수 변동 프로세스를 예시하는 테이블이다.
도4는 본 발명의 일실시예에 따른 예시적인 클럭 생성기의 블록도이다.
도5는 본 발명의 일실시예에 따른 클럭 제어기에 의해서 제공되는 제어 신호 일례들의 테이블을 도시한다.
도6은 본 발명의 일실시예에 따라 크리티컬 경로들을 수용하기 위해 클럭 주파수를 변경하는 프로세스에 대한 순서도를 예시한다.
도 1은, 본 발명의 일 실시예에 따른 디지털 시스템(100)를 도시한다. 디지털 시스템(100)은 회로(110), 로직 경로 인에블러(140), 제어기(150) 및 클럭 생성기(160)를 포함한다. 회로(110)는, 복수의 크리티컬 모듈들(120a 내지 120n) 및 복수의 논-크리티컬 모듈들(130)을 포함한다. 이러한 소자들은 도 1에 도시된 것처럼 함께 결합된다.
본 발명의 일 양상에 따라, 디지털 시스템(100)은 크리티컬 경로들을 수용하기 위해 클럭 주파수를 변경하기 위한 매커니즘을 이용한다. 일 예에서, 디지털 시스템(100)은 통상적으로 디폴트 클럭 주파수에서 동작하는 반면에, 논-크리티컬 모듈들(130)은 동작 상태에 있고, 크리티컬 모듈들(120a 내지 120n)은 비-활성 상태에 있다. 상기 논-크리티컬 모듈들(130)은 디폴트 클럭 주파수 하에서 적절하게 동작할 수 있다; 하지만, 크리티컬 모듈들(120a 내지 120n) 각각은, 적절한 동작을 위해 더 느린 클럭 주파수를 요구하는바, 이는 상기 디폴트 클럭 주파수가 수용할 수 없는 전파 지연들(propagation delays)을 갖는 하나 이상의 로직 경로들을 각 크리티컬 모듈(120a 내지 120n)이 포함하기 때문이며, 따라서, 각 크리티컬 모듈(120a 내지 120n)은 상기 디폴트 클럭 주파수 하에서 장애(fail)를 가질 수 있다. 이러한 로직 경로들은 크리티컬 경로들로 언급되고, 그리고 각 크리티컬 경로는 서로 다른 클럭 주파수를 요구할 수 있다. 하나 이상의 크리티컬 모듈들(120a 내지 120n)이 막 동작을 할 때, 상기 클럭 생성기(160)는 상기 디폴트 주파수에서 더 느린 주파수로 클럭 주파수를 변경시킬 수 있고, 그 결과 활성화된 크리티컬 모듈들(120a 내지 120n)은 적절하게 동작할 수 있다.
추가로, 하나의 예에서, 동작 중인 크리티컬 경로들의 세트의 구성원들은 시간에 따라 변할 수 있다(증가하거나 또는 감소할 수 있다). 그에 따라, 상기 클럭 생성기(160)는 동작 중인 크리티컬 경로들을 수용하기 위해 클럭 주파수를 변경시킬 수 있는 반면에, 동시에 가장 높은 가능 클럭 주파수를 유지할 수 있다.
활성화되는 어떤 크리티컬 모듈들도 존재하지 않을 때, 클럭 생성기(160)는 더 빠른 디폴트 주파수로 리턴한다. 따라서, 디지털 시스템(110)은 빠른 속도로 동작할 수 있고, 일부 크리티컬 모듈들(120a 내지 120n)이 활성화될 때에만 느려져, 디지털 시스템(100)이 높은 성능을 내도록 한다. 추가적으로, 집적 회로(IC) 설계에서 상기 메커니즘을 구현하는 것은, 로직 경로들을 최적화하기 위한 노력들 및 회로 리소스들(전력 소모, 칩 공간)을 절약할 수 있다.
디지털 시스템(100)은 여러 기능들을 수행하기 위해 신호들 및 데이터를 처리한다. 일 실시예에서, 디지털 시스템(100)은, 집적된 회로들로 구현되는 중앙 처리 유닛(CPU)와 같은, 하나 이상의 프로세서들로 전체적으로 또는 부분적으로 구현된다. 상기 회로(110)는 디지털 데이터를 처리하기 위한 디지털 로직 회로들을 포함할 수 있다. 일 실시예에서, 상기 회로(100)는 프로세서 내에서 데이터-경로 기능들을 수행한다. 일 실시예에서, 상기 디지털 로직 회로들은, 가산기(adder), 배율기(multiplier), 비교기(comparator) 등과 같은 다수의 모듈들로 구성된다. 각 모듈은 조합 로직 회로들 및/또는 순차적인 로직 회로들을 포함하고, 그리고 특정 기능을 수행한다.
일반적으로, 순차적인 로직 회로들은 클럭 신호의 제어 하에서 동기적으로 동작한다. 순차적인 로직 회로는, 각 조합 회로들의 양 말단들에 접속되는, 플립-플롭들, 래치들 등과 같은 메모리 소자들을 갖는 일련의 조합 로직 회로들을 포함할 수 있다. 조합 로직 회로 및 양 말단들에 접속되는 2개의 메모리 소자들은, 일단(stage)의 상기 순차적인 로직 회로를 형성한다.
일 예에서, 데이터 신호는, 클럭 신호의 제1 상승 에지에 의해 트리거링될 때 입력으로부터 출력으로 제1 플립-플롭을 통해 클럭된다. 이후, 상기 데이터 신호는, 상기 제1 플립-플롭과 제2 플립-플롭 사이에 접속되는 조합 회로를 통과하고, 그리고 상기 조합 회로의 출력에 도달한다. 이후, 상기 데이터 신호는 제2 플립-플롭에서 수신되고, 그리고 안정된 상태가 되도록 일정 기간의 시간을 가지게 되어, 상기 클럭 신호의 제2 상승 에지에 도달할 때 상기 제2 플립-플롭은 적절하게 상기 데이터 신호를 샘플링할 수 있다. 최종적으로, 상기 클럭 신호의 제2 상승 에지에 의해 트리거링될 때, 상기 디지털 신호는 상기 제2 플립-플롭을 통해 클럭된다. 이러한 방식으로, 상기 디지털 신호는 일 단의 순차적인 로직 회로를 통해 전송된다.
상기의 예에서, 상기 디지털 데이터는, 상기 클럭 신호의 상기 제1 상승 에지와 상기 제2 상승 에지 사이의 전파 지연들 중 적어도 3개의 부분들을 접한다. 상기 전파 지연의 제1 부분은, 상기 디지털 데이터가 상기 제1 플립-플롭의 출력에 도달할 때, 상기 제1 상승 에지의 도달 사이의 간격이다. 전파 지연의 제2 부분은, 상기 조합 로직을 통과하는 상기 데이터 신호에 대한 간격이다. 전파 지연의 제3 부분은, 상기 제2 플립-플롭의 입력에서의 도달과 제2 상승 에지의 도달 사이에서 안정된 상태가 되도록 상기 데이터 신호에 대한 간격이다. 따라서, 상기 클럭 신호의 사이클 지속시간(cycle duration)(사이클의 길이로 언급됨, 반면에 사이클 또는 클럭 사이클은 클럭 신호의 2개의 인접한 상승 또는 하강 에지들 사이의 시간 간격으로 언급됨)은, 상기 순차 회로의 각 단을 통해 데이터 신호를 적절하게 전송하도록 전파 지연들의 3개의 부분들의 합보다 더 커야 한다. 이러한 조건이 만족될 때, 상기 클럭 신호의 사이클 지속시간은, 이미 이러한 계산에 고려된 전파 지연들의 다른 2개의 부분들을 가진 상기 조합 로직 회로를 통과하는 상기 데이터 신호의 전파 지연을 수용할 수 있음을 알 수 있고, 또한, 상기 클럭 신호 또는 상기 클럭 신호의 주파수는 상기 전파 지연들을 수용할 수 있음을 알 수 있다.
상기의 예에서, 상기 디지털 신호가 상기 조합 로직 회로를 통과할 때 거쳐가는 경로를 로직 경로라고 부른다. 로직 경로는 여러 로직 게이트들과 같은 일련의 회로 소자들을 포함할 수 있다. 추가로, 상기 서술에 기초하여, 각 로직 경로는, 상기 로직 경로를 통과하는 신호가 경험할 전파 지연을 갖는다. 클럭 신호/주파수/사이클 지속시간이 로직 경로의 전파 지연을 수용할 수 있을 때, 클럭 신호/주파수/사이클 지속시간이 상기 로직 경로를 수용할 수 있음을 알 수 있다.
조합 로직 회로의 구성들에 따라, 상기 조합 로직 회로를 통해 통과하는 데이터 신호에 대한 로직 경로들은 변하지 않을 수 있거나 또는 변할 수 있다. 예를 들어, 하나의 단계에서의 조합 로직 회로는, 제1 입력 신호에 더하여 다른 메모리 소자로부터의 제2 입력 신호를 수신할 수 있다. 상기 제2 신호들의 서로 다른 입력들은, 상기 제1 신호로 하여금 서로 다른 로직 경로를 통과하도록 할 수 있다.
도 1에서, 상기 회로(110) 내의 다수의 모듈들은, 크리티컬 모듈들(120a 내지 120n) 및 논-크리티컬 모듈들(130)로 분류된다. 상기 논-크리티컬 모듈들 내의 로직 경로들의 전파 지연들은 상기 디지털 시스템(100)의 디폴트 주파수에 의해 수용될 수 있는 반면, 크리티컬 모듈들(120a 내지 120n) 각각은, 상기 디폴트 주파수가 수용할 수 없는 전파 지연을 갖는 적어도 하나의 로직 경로(121)를 포함한다. 이러한 로직 경로들(121)은, 본원 상세한 설명에서 크리티컬 경로들로 언급된다. 이러한 크리티컬 경로들(121)이 막 동작될 때, 디지털 시스템(100)은 느려지고, 그리고 상기 클럭 신호 생성기(160)는 크리티컬 경로들(121)을 수용하도록 상기 클럭 신호의 주파수를 더 낮은 주파수로 변경시킨다.
도시된 것처럼, 각 크리티컬 모듈(120a 내지 120n)은 클럭 생성기(160)로부터 클럭 신호(161)를 수신한다. 상기 논-크리티컬 모듈들(130)은 또한 상기 클럭 생성기(160)로부터 동일한 클럭 신호(161)를 수신한다. 물론, 상기 클럭 신호(161)는, 대안의 예들에서 각 모듈(120a 내지 120n/130)에 도달하기 전 클럭 신호 분배 네트워크를 통과할 수 있다. 추가로, 각 크리티컬 모듈(120a 내지 120n)은 로직 경로 인에블러(140)로부터 인에이블 신호(141)를 수신한다. 또한, 도시되지 않지만, 크리티컬 모듈들(120a 내지 120n)과 논-크리티컬 모듈들(130) 사이에 다수의 접속들이 존재할 수 있고, 그에 따라, 데이터 신호들은 이러한 모듈들 사이에서 전송될 수 있다.
로직 경로 인에블러(140)는, 상기 디지털 시스템(100)의 기능들을 수행할 필요가 있을 때, 상기 크리티컬 모듈들(120a 내지 120n)을 선택적으로 활성화하기 위해 상기 인에이블 신호들(141)을 생성한다. 인에이블 신호(141)가 생성될 때, 상기 인에이블 신호(141)는 또한 제어기(151)에 전송된다. 일 예에서, 상기 로직 인에블러(140)는 또한 상기 논-크리티컬 모듈들(130)의 제어 동작에 대한 제어 신호들(도시되지 않음)을 생성한다. 일 예에서, 상기 로직 인에블러(140)는 프로세서에서 제어 유닛으로 동작한다. 그에 따라, 상기 로직 경로 인에블러(140)는 메모리로부터 명령어들을 판독하고, 상기 회로(110) 내의 기능 모듈들(120a 내지 120n)의 동작을 조정하기 위해 다수의 제어 신호들을 생성시키도록 상기 명령들을 디코딩한다.
제어기(150)는, 클럭 생성기(160)로 하여금, 활성화되는 크리티컬 모듈들(120a 내지 120n) 내의 이러한 크리티컬 경로들(121)의 전파 지연들에 기초하여 상기 클럭 신호(161)의 클럭 주파수를 변화시킨다. 예를 들어, 상기 회로(110)는 초기에 디폴트 주파수에서 동작한다. 논-크리티컬 모듈들(130)은 동작 상태에 있는 반면에, 어떤 크리티컬 모듈들(120a 내지 120n)도 활성화되지 않는다. 이후, 제1 및 제2 크리티컬 모듈들(120a 내지 120n)은 활성화된다. 상기 제1 또는 제2 크리티컬 모듈은 상기 크리티컬 모듈들(120a 내지 120n) 중 어떤 하나일 수 있다. 제1 크리티컬 모듈(120a 내지 120n)은 제1 크리티컬 경로를 포함한다. 제1 크리티컬 모듈 내의 모든 크리티컬 경로들 중 가장 큰 것인 제1 크리티컬 경로는, 제1 전파 지연을 갖는다. 그와 같은 로직 경로는, 각 크리티컬 모듈(120a 내지 120n)(이러한 경우 제1 크리티컬 모듈)이 모듈(와이드) 크리티컬 경로로 언급된다. 유사하게, 상기 제2 크리티컬 모듈(120a 내지 120n)은, 상기 제2 크리티컬 모듈(120a 내지 120n)의 모듈 크리티컬 경로인 제2 크리티컬 경로를 포함하고 그리고 제2 전파 지연을 갖는다. 추가로, 상기 제2 전파 지연은 상기 제1 전파 지연보다 더 길다.
상기 2개의 활성화된 크리티컬 모듈들이 적절하게 동작하도록, 상기 제1 및 제2 전파 지연들 모두를 수용할 수 있는 사이클 지속시간을 갖는 클럭 주파수가 요구된다. 그에 따라, 제어기(150)는, 상기 클럭 생성기로 하여금 상기 디폴트 주파수로부터 더 낮은 주파수로 상기 클럭 신호(161)를 변화시키도록 한다. 상기 더 낮은 주파수는 가장 높은 가능 주파수(가장 짧은 가능 사이클 지속시간을 가짐)을 갖지만, 제2 모듈 크리티컬 경로를 수용할 수 있다. 상기 제1 및 제2 크리티컬 모듈들 모두를 동작시킬 때 그 결과로서, 상기 디지털 시스템(100)은 디폴트 주파수의 속도에서보다 더 낮은 속도에서 동작한다. 상기 2개의 크리티컬 모듈들이 이러한 프로세스의 끝에서 비활성화될 때, 상기 제어기(150)는 상기 클럭 생성기(160)로 하여금 상기 디폴트 주파수로 리턴하도록 하고, 그 결과 디지털 시스템(100)의 동작 속도를 증가시킨다.
일 예에서, 상기 제어기(150)는 상기 인에이블 신호들에 기초하여 복수의 클럭 설정들로부터 클럭 설정(152)을 선택한다. 클럭 설정(152)의 각각은 사전에 구성된 설정일 수 있고, 이러한 사전에 구성된 설정은, 미리결정된 주파수에서 클럭 신호를 생성하기 위해 클럭 생성기(160)를 구성하는 파라미터들을 나타내는 하나의 세트의 데이터를 포함한다. 일 예에서, 상기 클럭 설정(152)은 일련의 2진 비트들을 포함하는 제어 벡터일 수 있다. 클럭 설정(152)이 클럭 생성기(160)에서 수신될 때, 상기 클럭 생성기(160)는, 미리결정된 주파수에서 클럭 신호(161)를 생성하도록 그에 따라 구성들을 조정할 수 있다.
일 예에서, 사전-구성(pre-configuration)들에 기초하여, 각 인에이블 신호(141)는 각 크리티컬 모듈(120a 내지 120n) 내의 크리티컬 경로들(121) 및 크리티컬 경로들(121)에 대응하는 클럭 설정들과 관련된다. 클럭 설정(152)은 수신된 인에이블 신호들(141)에 기초하여 결정될 수 있다. 클럭 설정(152)이 결정되고 선택된 후, 상기 제어기는, 상기 선택된 클럭 설정들(152)을 나타내는 제어 신호(151)를 상기 클럭 생성기(160)에 전송한다.
상기 클럭 생성기(160)는, 가변의 클럭 주파수를 갖는 클럭 신호(161)를 생성하도록 구성된다. 추가로, 상기 클럭 생성기(160)는, 상기 제어기(150)로부터 수신된 클럭 설정(152)에 따라 상기 클럭 신호(161)를 변화시킨다. 일 예에서, 상기 클럭 생성기(160)는, 예를 들어, 클럭 설정(152)을 수신한 후 상기 클럭 신호(161)의 하나의 사이클 내에서 즉시 상기 클럭 주파수를 조정할 수 있다. 일 실시예에서, 상기 클럭 생성기(160)는, 인터버의 반전 지연(inversion delay)과 같은, 고해상도에서 상기 클럭 주파수를 조정할 수 있다.
본 발명의 양상에 따라, 크리티컬 경로들을 수용하도록 클럭 주파수를 변화시키는 상기에서 서술된 메카니즘은 2개의 동작 모드: 모듈 기반 모드 및 사이클 기반 모드를 가질 수 있다. 모듈 기반 모드에서, 상기 클럭 주파수는 크리티컬 모듈들의 활성화에 기초하여 조정되며, 상기 클럭 주파수는, 크리티컬 모듈(120a 내지 120n)을 활성화시키거나 또는 비활성화시키는 사건이 발생할 때 상기 클럭 주파수는 변경된다. 사이클 기반 모드인 동안, 활성화되는 적어도 하나의 크리티컬 모듈(120a 내지 120n)이 존재할 때의 기간 동안 상기 클럭 주파수는 사이클마다 조정된다.
도 2는 본 발명의 일 실시예에 따른 클럭 주파수 변화 프로세스를 나타내는 타이밍 다이어그램(200)을 도시한다. 이러한 클럭 주파수 변화 프로세스 동안, 디지털 시스템(100)은, 상기 클럭 생성기(160)의 클럭 주파수를 변화시키도록 모듈 기반 모드에서 동작한다.
모듈 기반 모드인 일 실시예에서, 각 크리티컬 모듈(120a 내지 120n)은 모듈 크리티컬 경로를 포함하고, 그리고 상기 클럭 주파수는 상기 활성화된 크리티컬 모듈들(120a 내지 120n)의 모듈 크리티컬 경로들에 기초하여 조정된다. 크리티컬 모듈의 모듈 크리티컬 경로는, 크리티컬 모듈의 모든 크리티컬 경로들 사이의 가장 긴 전파 지연을 갖는 로직 경로를 지칭한다. 클럭 사이클들 동안, 크리티컬 모듈(120a 내지 120n)이 활성화될 때, 이러한 크리티컬 모듈(120a 내지 120n)의 모듈 크리티컬 경로는 모든 클럭 사이클들 동안 동작하지 않을 수 있다. 예를 들어, 크리티컬 모듈은 인에이블될 때 5 사이클들 동안 활성화되고, 3번째 사이클에서만, 이러한 크리티컬 모듈의 모듈 크리티컬 경로가 동작한다.
일 예에서, 디지털 시스템(100)이 모듈 기반 모드에서, 그리고 초기에 디폴트 주파수에서 동작할 때, 크리티컬 모듈들(120a 내지 120n) 중 하나가 활성화된다. 하나의 기간 동안 크리티컬 모듈들(120a 내지 120n) 중 하나가 활성 상태에 있을 때, 상기 제어기(150)는, 상기 모듈 경로가 동작하지 않을 때의 클럭 사이클들 동안일지라도, 클럭 생성기(160)로 하여금, 이러한 활성화된 크리티컬 모듈의 모듈 크리티컬 경로의 전파 지연을 수용할 수 있는 주파수를 갖는 클럭 신호를 생성하도록 한다.
다른 예에서, 디지털 시스템(100)이 모듈 기반 모드에서 동작할 때, 2개 이상의 크리티컬 모듈(120a 내지 120n)이 일 기간 동안 활성 상태에 있다. 이러한 기간 동안, 상기 제어기(150)는, 일부 모듈 크리티컬 경로들이 일부 클럭 사이클들 동안 동작되지 않을 때 조차, 클럭 생성기(160)로 하여금 모든 그러한 활성화된 모듈들의 모듈 크리티컬 경로들의 전파 지연들을 수용할 수 있는 클럭 신호를 생성하도록 한다.
상기에서 서술된 모듈 기반 모드는 다음의 시나리오들에 적용될 수 있다. 제1 시나리오에서, 모듈 크리티컬 경로는 파이프라인 방식으로 동작하는 일련의 로직 단들의 일부이고 그리고 상기 크리티컬 모듈이 활성화될 때 시간의 대부분에서 동작 상태에 있다. 따라서, 이러한 크리티컬 모듈은, 활성화되는 시간의 대부분의 모듈 크리티컬 경로를 수용할 수 있는 클럭 주파수를 요구한다.
제2 시나리오에서, 동작될 크리티컬 경로들은, 크리티컬 모듈이 활성화될 때 확정적이 않다. 상기에서 언급된 것처럼, 데이터 신호는, 다른 입력 신호들에 의존하여 동일한 조합 로직 회로를 가로지를 때 서로 다른 로직 경로들을 통과할 수 있다. 이러한 불명확성 때문에, 이러한 크리티컬 모듈의 모듈 크리티컬 경로는 전체적인 클럭 주파수 요건을 나타내기 위해 사용된다. 제3 시나리오에서, 서로 다른 크리티컬 경로들은 활성화된 크리티컬 모듈의 서로 다른 시간에서 동작 상태에 있을 수 있고, 이는 클럭 주파수에 대한 요건이 클럭 사이클마다 변할 수 있다. 클럭 주파수에 대한 전체적인 요건을 나타내기 위해 모듈 크리티컬 경로를 사용하는 것은, 제어기(150)의 제어 기능을 단순화시킬 수 있다.
일 예에서, 디지털 시스템(100)이 모듈 기반 모드에서 동작할 때, 각 모듈 크리티컬 경로는 사전-구성에 기초한 클럭 설정과 관련된다. 구체적으로, 사전-구성에 의해, 다수의 사전에 구성된 클럭 설정들 내의 하나의 클럭 설정은, 각 크리티컬 모듈(또는 각 모듈 크리티컬 경로)에 관련되거나 할당된다. 일 예로서, 상기 크리티컬 모듈(120a)을 취함으로, 상기 관련 또는 할당은, 상기 할당된 클럭 설정이 클럭 주파수를 갖는 방식으로 행해지고, 이러한 클럭 주파수는, 상기 크리티컬 모듈(120a)의 모듈 크리티컬 경로를 수용할 수 있고 그리고 상기 모듈 크리티컬 경로를 수용할 수 있는 클럭 설정들의 주파수들 사이에서 가장 높은(가장 빠른) 주파수이다. 따라서, 상기 크리티컬 모듈(120a)을 활성화하는 인에이블 신호가 상기 제어기(150)에서 수신될 때, 상기 제어기(150)는 크리티컬 모듈이 활성화될 때에 대한 정보를 가질 것이고, 상기 인에이블 신호에 기초한 상기 관련된 클럭 설정을 선택할 수 있다.
일 예에서, 상기 디지털 시스템(100)이 상기 디폴트 주파수에서 동작하는 동안 하나의 크리티컬 모듈(120a 내지 120n)이 막 활성화된다. 상기 제어기(150)는, 상기 크리티컬 모듈(120a 내지 120n)의 모듈 크리티컬 경로를 수용할 수 있는 가장 높은 가능 주파수를 갖는 클럭 설정을 선택한다.
다른 예에서, 다수의 크리티컬 모듈들(120a 내지 120n)이 활성화 상태들에 있고, 그리고 상기 제어기(150)는 다수의 인에이블 신호들에 기초하여 활성화되는 크리티컬 모듈들에 관련된 다수의 클럭 설정들로부터 가장 느린(가장 낮은) 주파수를 선택하여, 가장 큰 전파 지연을 갖는 가장 긴 모듈 크리티컬 경로 조차도 수용될 수 있다. 일 예에서, 상기 제어기(150)는, 수신된 인에이블 신호들에 기초하여 다수의 클럭 설정들로부터 선택하는 멀티플렉서를 사용하여 구현된다.
도 2에서, 타이밍 다이어그램(200)은, 클럭 시그널(161), 제1 크리티컬 모듈(120a)을 활성화시키는 제1 인에이블 신호(211), 제1 크리티컬 모듈(120a)의 상태를 나타내는 제1 바 그래프(212), 제2 크리티컬 모듈(120b)을 활성화시키는 제2 인에이블 신호(221), 제2 크리티컬 모듈(120b)의 상태를 나타내는 제2 바 그래프(222)를 도시한다. 도시된 것처럼, 클럭 주파수 변화 프로세스는 클럭 신호(161)의 10 사이클들을 포함하고, 그리고 이러한 사이클의 사이클 지속시간들은 상기 프로세스동안 변한다.
먼저, 디지털 시스템(100)은 200ps의 사이클 지속시간을 갖는 디폴트 주파수에서 동작한다. 어떤 크리티컬 모듈들도 활성 상태에 있지 않다. 제1 사이클 동안, 상기 제1 인에이블 신호(211)는 로직 인에블러(140)에 의해 생성되고, 그리고 상기 크리티컬 모듈(120a)은 그에 따라 활성화된다(하지만, 로직 경로들은 아직 동작되지 않는다). 한편, 제어기(150)는 제1 인에이블 신호(211)에 의한 트리거에 기초하여 동작을 시작한다.
제2 사이클 동안, 클럭 지속시간은 변하지 않고(예를 들어, 200ps의 값을 유지한다), 크리티컬 모듈(120a)은 200ps의 클럭 지속시간에서 동작하기 시작한다. 한편, 제어기(150)는 동작을 계속하고, 인에이블 신호(211)에 대한 동작을 완료한다. 제어기(150)의 동작은 상기 수신된 인에이블 신호(211)에 기초하여 클럭 설정을 수신하는 것 및 클럭 신호(151)을 클럭 생성기(160)에 전송하는 것을 포함한다. 현재의 예에서, 크리티컬 모듈(120a)은 300ps의 사이클 지속시간을 갖는 클럭 설정과 관련된다. 그에 따라, 제어기(150)는 그와 같은 클럭 설정을 선택하고 이러한 클럭 설정을 나타내는 제어 신호를 전송한다. 여전히, 제2 사이클 동안, 상기 클럭 생성기(160)는 제어 신호(151)를 수신하고, 관련된 기능을 수행하고, 준비를 시작하여, 그 결과, 상기 제3 사이클의 상승 에지가 시작될 때, 클럭 생성기(160)는 300ps의 주파수를 갖는 클럭 신호를 생성하는 동작 상태에 있을 수 있다.
제3 사이클의 시작에서, 클럭 생성기(160)는 클럭 신호(161)의 주파수를 변화시키고, 사이클 지속시간은 200ps에서 300ps로 변한다. 제3 사이클 동안, 제2 인에이블 신호(221)는 생성되고, 그리고 제2 크리티컬 모듈(120b)은 활성화된다. 인에이블 신호(221)에 의해 트리거링될 때, 제어기(150)는 동작을 시작한다. 현재의 예에서, 크리티컬 모듈(120b)은 400ps의 사이클 지속시간을 갖는 주파수에 대응하는 클럭 설정과 관련된다. (예를 들어, 멀티플렉서를 사용하여) 사전에 구성된 것처럼, 제어기(150)는 2개의 크리티컬 모듈들(120a 및 120b)에 대응하는 클럭 설정들로부터 클럭 설정을 선택하고, 더 낮은 주파수를 갖는 클럭 설정이 선택된다. 현재의 예에서, 400ps의 클럭 지속시간을 갖는 클럭 설정이 선택된다. 이후, 제어기(150)는 제어 신호(151)를 클럭 생성기(160)에 전송한다.
제어기(150)의 동작은, 제어기(150)의 동작 속도에 따라 제4 사이클로 확장되거나 확장되지 않을 수 있다. 제어 신호(151)에 응답하여, 제3 또는 제4 사이클 동안, 클럭 생성기(160)는 클럭 주파수를 변화시키기 위해 준비하는 관련된 기능들을 수행하고, 상기 제5 사이클의 상승 에지의 도달 전에 준비를 시작한다. 제어기(150) 및 클럭 생성기(160)의 상기 동작들은 기간(234) 동안 발생한다.
제5 사이클 동안, 클럭 생성기(160)는 사이클당 300ps에서 사이클당 400ps로 클럭 주파수를 변화시키고, 이는 디지털 시스템(100)을 느리게 만든다.
제6 사이클 동안, 상기 제2 인에이블 신호는 종료되고, 크리티컬 모듈(120b)은 비활성화된다. 그에 따라, 상기 인에이블 신호가 종료될 때, 제어기(150) 및 클럭 생성기(160)는 제8 사이클의 상승 에지의 도달 전 기간(236) 동안 관련된 기능들을 수행한다. 제1 인에이블 신호인 현재 인에이블 신호에 기초하여, 제어기(150)는 300ps의 사이클 지속시간을 갖는 클럭 설정을 선택한다. 그 결과로서, 제8 사이클의 시작에서, 클럭 생성기(160)는 사이클당 300ps의 클럭 신호를 생성하기 위해 시작한다.
제8 사이클 동안, 제1 인에이블 신호(211)는 종료되고, 제어기(150)를 동작시키기 위해 트리거링한다. 제어기(150)는, 인에이블 신호의 어떤 표시도 없음을 검출하고 그리고 상기 디폴트 주파수에 대응하는 클럭 설정을 선택한다. 그 결과, 클럭 주파수는 제10 사이클 동안 상기 디폴트 주파수로 다시 돌아간다. 디지털 시스템(100)은 상기 디폴트 주파주에서 동작하기 시작한다.
상기의 예에서, 인에이블 신호가 변화(시작 또는 종료)된 후 그리고 클럭 생성기(160)가 클럭 신호(161)의 주파수를 변화시킬 수 있기 전에 지연들(232, 234, 236 및 237)이 존재한다. 이러한 지연들 동안, 제어기(150) 및 클럭 생성기(160)는 상기 인에이블 신호들의 변화들에 응답하여 자신들의 기능들을 수행한다. 그에 따라, 이러한 예에서, 활성화된 크리티컬 모듈들의 동작들의 사이클들(233 및 235)과 같은 제1 사이클 동안, 어떤 크리티컬 경로들도 동작하지 않는다. 이러한 방식으로, 디지털 시스템(100)이 디폴트 주파수에서 동작하는 동안 크리티컬 모듈들(120a 내지 120n)은 활성화될 때, 활성화된 크리티컬 모듈들(120a 및 120b)은 동작들의 제1 사이클 동안 디폴트 주파수에 적절하게 동작할 수 있다.
일 예에서, 로직 경로 인에블러(140)는 크리티컬 모듈을 활성화시키기 위한 인에이블 신호를 생성시키기 앞서 트리거 신호를 생성하고, 그 결과, 상기 트리거 신호에 응답하여, 제어기(150)는 클럭 생성기(160)로 하여금 상기 크리티컬 모듈의 동작의 제1 사이클 동안 클럭 신호(161)의 주파수를 변화시키도록 할 수 있다. 예를 들어, 도 2에서, 제3 사이클 동안 제2 인에이블 신호(221)를 생성하기 전에, 트리거 신호는 로직 경로 인에블러(140)에 의해 상기 제2 사이클 동안 생성될 수 있다. 제어기(150)는 상기 트리거 신호를 수신할 때 동작을 시작하고, 클럭 생성기(160)는 제어기(150)로부터 제어 신호를 수신한 후 후속적으로 동작한다. 제어기(150) 및 클럭 생성기(160)의 동작들은 지연(234)과 동일한 기간을 가질 수 있지만, 제4 사이클의 시작 전에 종료된다. 제4 사이클의 시작시에, 크리티컬 모듈(120b)은, 예를 들어, 클럭 신호(161)의 상승 에지에 의해 트리거링된 후 동작하도록 시작할 때, 상기 클럭 생성기(160)는 400ps의 사이클 지속시간을 갖는 클럭 신호를 생성하기 위해 시작한다. 이러한 방식으로, 크리티컬 모듈들((120a 내지 120n)은, 상기 크리티컬 모듈들(120a 내지 120n)이 활성화된 후 제1 사이클 동안 동작하는 모듈 크리티컬 경로들을 가질 수 있다. 그와 같은 구성은 IC 설계 프로세스에 유연성을 부여한다.
도 3은 본 발명의 실시예에 따른 클럭 주파수 변화 프로세스를 나타내는 표를 도시한다. 이러한 클럭 주파수 변화 프로세스 동안, 디지털 시스템(100)은 클럭 생성기(160)의 클럭 주파수를 변화시키기 위해 사이클 기반 모드에서 동작한다.
사이클 기반 모드에서, 각 크리티컬 모듈(120a 및 120b)은, 활성화될 때 클럭 신호(161)의 하나 이상의 클럭 사이클들에 대응하는 하나 이상의 사이클 크리티컬 경로들을 포함한다. 크리티컬 모듈(120a 및 120b) 내의 클럭 사이클의 사이클 크리티컬 경로는, 크리티컬 모듈(120a 및 120b) 내의 대응하는 클럭 사이클 동안 동작하는 일 그룹의 크리티컬 경로들 사이에서의 가장 큰 전파 지연을 갖는 크리티컬 경로를 언급한다.
예를 들어, 활성화될 때 크리티컬 모듈(120a 및 120b)은 3 클럭 사이클들 동안 동작할 것이다. 각 클럭 사이클 동안, 서로 다른 수들의 크리티컬 경로들, 예를 들어, 0, 2 및 3 크리티컬 경로들이 각각 동작한다. 제1 사이클 동안, 어떤 사이클 크리티컬 경로들도 존재하지 않는다; 제2 사이클 동안, 상기 2개의 크리티컬 경로들 사이에서 더 큰 전파 지연을 갖는 것은, 상기 제2 사이클 동안 사이클 크리티컬 경로이고; 제3 사이클 동안, 3개의 크리티컬 경로들 사이에서 가장 큰 전파 지연을 갖는 것은 제3 사이클에 대한 사이클 크리티컬 경로이다. 상기 제2 및 제3 사이클에 대한 사이클 크리티클 경로들은 동일한 또는 서로 다른 로직 경로들일 수 있고, 그리고 동일한 또는 서로 다른 전파 지연들을 가질 수 있다. 회로(110)의 구성으로 인해, 어떤 로직 경로들이 어떤 클럭 사이클에서 동작할 것인지는 이미 알려져있다.
일 예에서, 디지털 시스템(100)은 사이클 기반 모드에서 동작한다. 다수의 크리티컬 모듈들(120a 및 120b)이 기간 동안 활성 상태들에 있을 때, 각 클럭 사이클 동안, 서로 다른 크리티컬 모듈들에 각각 포함되는 사이클 크리티컬 경로들이 존재한다. 추가로, 서로 다른 클럭 사이클들에 대해, 사이클 크리티컬 경로의 세트의 수들은 서로 다르다. 제어기(150)는 상기 클럭 생성기(160)로 하여금 각 클럭 사이클의 사이클 크리티컬 경로들에 따라 클럭 신호들을 변화시키도록 한다. 즉, 상기 제어기(150)는 상기 클럭 생성기(160)로 하여금 사이클마다 클럭 주파수를 변화시키도록 한다. 추가로, 각 사이클에 대해 생성된 클럭 주파수는, 모든 활성화된 크리티컬 모듈들(120a 및 120b) 내의 각 사이클의 사이클 크리티컬 경로들을 수용할 수 있다. 또한, 클럭 주파수는 다수의 사전에 구성된 클럭 설정들 사이에서 가장 높은 가능 주파수이다.
일 예에서, 상기 디지털 시스템이 사이클 기반 모드에서 동작할 때, 각 사이클 크리티컬 경로는 사전-구성에 기초한 연관된 클럭 설정을 갖는다. 구체적으로, 사전-구성에 의해, 다수의 사전에 구성된 클럭 설정들에서의 하나의 클럭 설정은 각 사이클 크리티컬 경로에 관련되거나 또는 각 사이클 크리티컬 경로에 할당된다. 일 예로서 크리티컬 모듈(120a)을 취할 때, 활성화되는 크리티컬 모듈(120a)은 3 사이클들에 대해 동작할 수 있고, 그리고 각 사이클에 대해, 제1, 제2 및 제3 사이클 크리티컬 경로가 각각 존재한다. 각 사이클 크리티컬 경로는 클럭 설정과 관련된다. 상기 관련은, 관련된 클럭 설정이 클럭 주파수를 갖는 방식으로 행해지고, 이러한 클럭 주파수는 사이클 크리티컬 경로를 수용할 수 있고 그리고 상기 사이클 크리티컬 경로를 수용할 수 있는 클럭 설정들의 주파수들 중 가장 높은(가장 빠른) 주파수이다.
따라서, 상기 크리티컬 모듈(120a)을 활성화하는 인에이블 신호가 수신기(150)에서 수신될 때, 상기 제어기(150)는, 크리티컬 모듈(120a)이 활성화될 때 상기 기간 동안, 어떤 클럭 설정이 어떤 클럭 사이클에 대해 요구되는지에 관한 정보를 가질 것이다. 그에 따라, 상기 제어기(150)는 상기 인에이블 신호에 기초한 대응하는 클럭 사이클에 대해 관련된 클럭 설정을 선택할 수 있다.
일 예에서, 하나의 크리티컬 모듈(120a 및 120b)은, 상기 디지털 시스템(100)이 디폴트 주파수에서 동작하는 동안 막 활성화된다. 상기 인에이블 신호에 기초하여, 각 클럭 사이클에 대해, 상기 제어기(150)는, 그러한 사이클의 사이클 크리티컬 경로를 수용할 수 있는 가장 높은 가능 주파수를 갖는 클럭 설정을 선택한다.
또 하나의 다른 예에서, 복수의 크리티컬 모듈들(critical modules)(120a 내지 120n)은 활성 상태들(active states)에 있다. 각각의 클럭 싸이클(clock cycle)에 대해, 제어기(150)는 복수의 인에이블 신호들(enable signals)에 근거하여 각각의 클럭 싸이클의 싸이클 크리티컬 경로들(cycle critical paths)과 관련된 복수의 클럭 설정들(clock settings)로부터 가장 느린(가장 낮은) 주파수를 갖는 클럭 설정을 선택하고, 이에 따라 각각의 클럭 싸이클에 대해, 가장 큰 전파 지연(propagation delay)을 갖는 가장 긴 싸이클 크리티컬 경로도 수용될 수 있게 된다.
도 3에서, 테이블(300)은 5개의 행(row: 이하, '행' 또는 '로우' 라함)들을 포함한다. 제 1 행(311)은 클럭 신호(161)의 클럭 싸이클들의 시퀀스를 표시하는 번호들을 포함한다. 제 2 행(312)은 제 1 크리티컬 모듈(120a)의 2개의 싸이클 크리티컬 경로들과 관련된 2개의 클럭 설정들에 대응하는 2개의 주파수들 F1 및 F2를 포함한다. 제 1 크리티컬 모듈(120a)은 활성화되는 경우 3개의 싸이클들에 대해 동작할 것이며, 하지만 제 2 싸이클 동안 어떠한 싸이클 크리티컬 경로도 존재하지 않으며 혹은 임의의 크리티컬 경로들이 존재한다. 제 3 행(313)은 제 2 크리티컬 모듈(120b)의 2개의 싸이클 크리티컬 경로들과 관련된 2개의 클럭 설정들에 대응하는 2개의 주파수들 F3 및 F4를 포함한다. 제 2 크리티컬 모듈(120b)은 활성화되는 경우 2개의 싸이클들에 대해 동작할 것이다. 제 4 행(314)은 제어기(150)가 선택한 클럭 설정들에 대응하는 4개의 주파수들을 포함하는데, 여기서 Fd는 디폴트 주파수(default frequency)를 나타낸다. 제 5 행(315)은 디지털 시스템(digital system)(100)이 동작하는 클럭 신호(161)의 5개의 주파수들을 포함한다.
테이블(300)에 의해 예시되는 클럭 주파수 변경 프로세스(clock frequency variation process)의 제 1 싸이클의 시작에서, 디지털 시스템(100)은 행(315)에서 제시되는 바와 같이 디폴트 주파수 Fd에서 동작하고, 크리티컬 모듈들(120a 및 120b)은 활성화 상태가 아니다. 제 1 싸이클 동안, 제 1 크리티컬 모듈(120a)을 활성화시키기 위한 제 1 인에이블 신호가 발생된다. 제 1 인에이블 신호에 의해 트리거(trigger)되는 경우, 제어기(150)가 동작하기 시작한다.
먼저, 인에이블 신호에 근거하여, 그리고 구성(configuration)때문에, 제어기(150)는 제 1 크리티컬 모듈(120a)의 2개의 싸이클 크리티컬 경로들에 대응하는 요구된 클럭 설정들에 대한 정보를 가질 것이다. 행(312)에서 제시되는 바와 같이, 프로세스의 제 2 싸이클 및 제 4 싸이클 동안 2개의 싸이클 크리티컬 경로들에 의해 주파수들 F1 및 F2가 각각 요구된다. 이에 따라, 제어기(150)는 프로세스의 제 2 싸이클에 대해 주파수 F1을 갖는 클럭 설정을 선택한다. 다음으로, 제어기(150)는 이후 제어 신호를 클럭 생성기(clock generator)(160)에 전송한다. 제어 신호에 의해 운반되는 클럭 설정 정보에 근거하여, 클럭 생성기(160)는 적절한 파라미터들을 마련하고 클럭 신호(161)를 변경시킬 준비를 한다. 도 3의 예에서, 제어기(150) 및 클럭 생성기(160)의 앞서의 동작들은 인에이블 신호의 수신과 프로세스의 제 2 싸이클의 시작 사이의 시간 간격(time interval) 내에서 완료되는 것임에 유의해야 한다.
프로세스의 제 2 싸이클 동안, 디지털 시스템(100)은 느려지고 행(315)에서 제시되는 바와 같이 주파수 F1에서 동작한다. 그동안, 제 2 크리티컬 모듈(120b)을 활성화시키기 위한 제 2 인에이블 신호가 도착한다. 유사하게, 사전-구성(pre-configuration)때문에, 제어기(150)는 제 2 크리티컬 모듈(120b)에서의 프로세스의 제 3 싸이클 및 제 4 싸이클의 2개의 싸이클 크리티컬 경로들에 대응하는 클럭 설정들에 관한 정보를 갖는다. 이에 따라, 제어기(150)는 제 1 크리티컬 모듈(120a) 및 제 2 크리티컬 모듈(120b) 모두에서의 프로세스의 제 3 싸이클의 싸이클 크리티컬 경로들에 대응하는 클럭 설정들에 근거하여 클럭 설정을 선택한다. 제시되는 바와 같이, 프로세스의 제 3 싸이클에서 크리티컬 모듈(120a)에 대한 크리티컬 경로는 없다. 이에 따라, 제어기(150)는 행(314)에서 제시되는 바와 같이 F3의 주파수를 갖는 클럭 설정을 선택한다. 후속적으로, 제어기(150) 및 클럭 생성기(160)는 제 3 싸이클의 시작 전에 다른 관련 동작들을 완료한다.
제 3 싸이클 동안, 디지털 시스템(100)은 행(315)에서 제시되는 바와 같이 주파수 F3에서 동작한다. 인에이블 신호 도착이 없어도, 제어기(150)는 여전히 다음 제 4 싸이클에 대한 클럭 설정을 선택하기 위한 액션(action)을 취한다. 제 4 싸이클에 대해, 2개의 크리티컬 모듈들(120a 및 120b)에서의 2개의 싸이클 크리티컬 경로들과 관련된 2개의 클럭 설정들이 존재한다. 이에 따라, 제어기(150)는 2개의 주파수들 F2 및 F4로부터 더 느린 주파수 F2를 선택하는데, 도 3의 예에서 F2는 F4보다 더 낮다.
제 4 싸이클 동안, 디지털 시스템(100)은 주파수 F2에서 동작한다. 제어기(150)는 계속 동작한다. 제시되는 바와 같이, 제 5 싸이클 동안, 2개의 크리티컬 모듈들(120a 및 120b)은 비활성화(deactivate)되고, 이에 따라 제 5 싸이클에서의 동작에서 활성화 상태의 크리티컬 모듈은 없다. 이에 따라, 제어기(150)는 디폴트 클럭 설정을 선택하고, 이것은 클럭 생성기로 하여금 디폴트 주파수를 발생시키도록 한다.
제 5 싸이클 동안, 디지털 시스템(100)은 디폴트 주파수 Fd에서 동작한다. 새로운 인에이블 신호들의 표시가 없기 때문에, 제어기(150)는 동작을 일시 중지한다. 디지털 시스템(100)은 크리티컬 모듈이 활성화될 때까지 디폴트 주파수에서 계속 동작한다.
도 4는 본 개시내용의 실시예에 따른 예시적 클럭 생성기(160)의 블록도를 보여준다. 클럭 생성기(160)는 도 4에서 제시되는 바와 같이 함께 교차-결합(cross-couple)되어 있는 제 1 펄스 생성기(410a) 및 제 2 펄스 생성기(410b)를 포함한다. 클럭 생성기(160)는 2 위상 클럭 신호(two phase clock signal)(161)를 형성하는 한 쌍의 주기적 신호들 phi 1 및 phi 2를 발생시킨다. phi 1 및 phi 2 신호의 펄스 폭들은 수신된 제어 신호(151)에 근거하여 변한다.
구체적으로, 일 예에서, 각각의 사전-구성된 클럭 설정은 반전(inversion)들의 제1의 개수 및 반전들의 제2의 개수를 포함한다. 반전들의 제1의 개수 혹은 제2의 개수 각각은 반전기(inverter)가 해당 개수의 반전 동작들을 완료하기 위한 시간 간격에 대응하고, 반전들의 제1의 개수 및 제2의 개수는 각각의 클럭 설정에서 정의된 클럭 신호(161)의 주파수 혹은 싸이클 구간을 표시하기 위해 함께 사용된다. 클럭 설정의 정보는 제어 신호(151)가 전송될 때마다 클럭 생성기(160)로 전달된다. 이에 따라, 주기적 신호들 phi 1 및 phi 2의 펄스 폭들은 수신된 제어 신호(151)에 근거하여 반전들의 제1의 개수 및 반전들의 제2의 개수에 의해 각각 결정된다. 반전들의 제1의 개수 및 제2의 개수의 값들이 제어기(150)가 상이한 클럭 설정들을 선택하는 것에 대응하여 변할 때, 주기적 신호들 phi 1 및 phi 2의 펄스 폭들이 이에 따라 변할 것이다. 결과적으로, 클럭 신호(161)의 주파수가 변한다.
추가적으로, 주기적 신호들 phi 1 및 phi 2의 주기는, 반전들의 제1의 개수 및 제2의 개수에 따라, 반전기 게이트(inverter gate)의 단일 반전 지연과 같은 고분해능(high resolution)으로 조정가능하다.
도 4의 예에서, 제 1 펄스 생성기(410a)는 클럭 제어기(420a) 및 반전 카운터(inversion counter)(430a)를 포함한다. 제 1 펄스 생성기(410a)가 트리거될 때마다, 제 1 펄스 생성기(410a)는 주기적 신호 phi 1에서 펄스를 발생시킨다. 펄스는 제어 신호(151)에서 표시된 반전들의 제1의 개수에 대응하는 제 1 펄스 폭을 갖는다. 반전 카운터(430a)는 링 오실레이터 모듈(ring oscillator module)(440a), 멀티플렉서 모듈(multiplexer module)(450a), XOR 모듈(460a), 및 카운터 모듈(counter module)(470a)을 포함한다. 이러한 요소들은 도 4에서 제시되는 바와 같이 함께 결합될 수 있다.
링 오실레이터 모듈(440a)은 N-스테이지 링 오실레이터(N-stage ring oscillator)를 포함한다. 링 오실레이터 모듈(440a)은 클럭 제어기(420a)로부터 인에이블 신호(481a)를 수신하고 복수의 스테이지 신호들(stage signals)(441a)을 출력한다. 일 예에서, 각각의 스테이지는 스테이지 신호(441a)를 출력한다. 인에이블 신호(481a)는 N-스테이지 링 오실레이터를 인에이블(enable) 혹은 디스에이블(disable)시킨다. 도 4의 예에서, 링 오실레이터 모듈(440a)은 7-스테이지 링 오실레이터를 포함한다. 7-스테이지 링 오실레이터는 하나의 링으로 형성되는 NAND 게이트(442a) 및 6개의 반전기들(443a)을 포함한다. 인에이블 신호(481a)가 로직 "0"일 때, 7-스테이지 링 오실레이터는 오실레이팅을 멈춘다. 인에이블 신호(481a)가 로직 "1"일 때, 7-스테이지 링 오실레이터는 오실레이팅을 시작한다. 각각의 스테이지는 스테이지 신호(441a)를 제공한다. 스테이지 신호들(441a)은 멀티플렉서 모듈(450a)에 제공된다.
멀티플렉서 모듈(450a)은, 링 오실레이터 모듈(440a)로부터 복수의 스테이지 신호들(441a)을 수신하고, 클럭 제어기(420a)로부터 선택 신호(482a)를 수신한다. 선택 신호(482a)는 스테이지 신호들(441a) 중 어떤 것이 멀티플렉서 모듈(450a)에 의해 선택될 것인지를 표시한다. 선택 신호(482a)에 근거하여, 멀티플렉서 모듈(450a)은 스테이지 신호들(441a) 중 하나를 선택한다. 도 4의 예에서, 멀티플렉서 모듈(450a)은, 링 오실레이터 모듈(440a)로부터 7개의 스테이지 신호들(441a)을 수신하고, 클럭 제어기(420a)로부터 3개의 화살표(482a)에 의해 표시된 3-비트 선택 신호(482a)를 수신한다. 3-비트 선택 신호(482a)에 근거하여, 멀티플렉서 모듈(450a)은 스테이지 신호들(441a) 중 하나를 선택된 스테이지 신호(451a)로서 선택적으로 출력한다.
XOR 모듈(460a)은 선택된 스테이지 신호(451a)를 수신하고, 그리고 클럭 제어기(420a)로부터 극성 신호(polarity signal)(483a)를 수신하며, 선택된 스테이지 신호(451a)와 극성 신호(483a)의 XOR 연산을 실행하여 카운터 트리거 신호(counter trigger signal)(461a)를 발생시키고, 그리고 카운터 트리거 신호(461a)를 카운터 모듈(470a)에 제공한다. 극성 신호(483a)는 카운터 모듈(470a)에 관하여 목표 신호 변이 에지(target signal transition edge)의 변이 방향을 적절히 조정하기 위해 클럭 제어기(420a)에 의해 제공된다. 일 예에서, 카운터 모듈(470a)은 상승 에지에서 트리거된다. 링 오실레이터 모듈(440a)의 임의의 스테이지에서의 목표 신호 변이 에지가 상승 에지인 경우, 클럭 제어기(420a)는 극성 신호(483a)로서 "0"을 제공한다. 그러나, 목표 신호 변이 에지가 하강 에지인 경우, 클럭 제어기(420a)는 극성 신호(483a)로서 "1"을 제공한다. 카운터 모듈(470a)이 하강-에지에서 트리거되는 경우, 목표 신호 변이 에지의 변이 방향을 하강 에지가 되도록 변경하기 위해 극성 신호(483a)가 적절히 조정될 수 있음에 유의해야 한다.
일 예에서, XOR 모듈(460a)은 제거될 수 있고, 극성 선택은 다른 적절한 기법에 의해 구현됨에 유의해야 한다. 예를 들어, 극성 신호(483a)와 같은 극성 신호에 근거하여 제 1 변이가 상승 변이 또는 하강 변이가 되도록 링 오실레이터(440a)의 입력에서 멀티플렉서가 사용된다.
카운터 모듈(470a)은 클럭 제어기(420a)로부터 초기화 신호(initialization signal)(484a)를 수신한다. 초기화 신호(484a)에 근거하여, 카운터 모듈(470a)은 카운터 모듈(470a)의 카운터 값을 초기화한다. 초기화 신호(484a)는 반전들의 제1의 개수를 표시한다. 이에 따라, 카운터 모듈(470a)은 링 오실레이터 모듈(440a)에서 반전들의 제1의 개수가 완료되는 경우 카운터 모듈(470)이 오버플로우(overflow)되는 그러한 방식으로 카운터 값을 초기화한다.
후속적으로, 카운터 모듈(470a)은 카운터 트리거 신호(461a)에서의 목표 신호 변이들(상승 에지들 혹은 하강 에지들)을 카운팅하고, 카운터 모듈(470a)이 오버플로우될 때, 완료 신호(done signal)(485s)를 클럭 제어기(420a)에 제공한다. 일 예에서, 제어 신호(151)에 따른 반전들의 제1의 개수는 36이다. 이에 따라, 목표 신호 변이 에지는 목표 변이 에지가 검출되기 전에 36개의 반전들을 완료하기 위한 링 오실레이터 모듈(440a)의 제 1 스테이지에서의 제 3 상승 에지이다. 카운터 모듈(470a)은 4-비트 상승 에지 카운터를 포함하고, 상승 에지 카운터는 "1101"로 초기화된다. 따라서, 3개의 상승 에지를 수신한 이후, 상승 에지 카운터는 오버플로우될 것이다. 카운터 모듈(470a)은 3개의 상승 에지들을 수신하기 전에 완료 신호(485a)로서 로직 "0"을 출력하고, 3개의 상승 에지들이 수신될 때 완료 신호(261)를 로직 "1"로 설정하고, 상승 에지 카운터는 오버플로우된다.
클럭 제어기(420a)는 제어기(150)로부터 제어 신호(151)를 수신한다. 제어 신호(151)에 근거하여, 클럭 제어기(420a)는, 선택 신호(482a)를 멀티플렉서 모듈(450a)에 제공하고, 극성 신호(483a)를 XOR 모듈(460a)에 제공하고, 그리고 초기화 신호(484a)를 카운터 모듈(470a)에 제공한다.
일 예에서, 클럭 제어기(420a)는 제어 신호(151)를 수신한다. 제어 신호(151)는 반전들의 제1의 개수 및 제2의 개수를 표시한다. 반전들의 제1의 개수에 근거하여, 클럭 제어기(420a)는 선택 신호(482a), 극성 신호(483a), 및 초기화 신호(484a)를 결정한다. 예를 들어, 반전들의 제1의 개수는 21이다. 이에 따라, 클럭 제어기(420a)는 7-스테이지 링 오실레이터의 제 7 스테이지를 선택하기 위해 선택 신호(482a)로서 "111"을 제공한다. 더욱이, 제 21 반전이 하강 에지가 된다는 이유에 기인하여, 클럭 제어기(420a)는 극성 신호(483a)로서 "1"을 제공한다. 추가적으로, 제 7 스테이지에서 제 21 반전이 제 2 하강 에지가 된다는 이유에 기인하여, 클럭 제어기(420a)는 4-비트 상승 에지 카운터를 초기화하기 위해 카운터 모듈(470a)에 "1110"을 제공한다.
인에이블 신호(271)가 링 오실레이터 모듈(440a)의 오실레이팅을 인에이블시킬 때, 멀티플렉서 모듈(450a)은 선택된 스테이지 신호(451a)로서 제 7 스테이지 신호를 선택한다. XOR 모듈(460a)은 카운터 트리거 신호(461a)의 변이 방향을 적절히 조정한다. 카운터 모듈(470a)은 예를 들어, 카운터 트리거 신호(461a)에서의 상승 에지들에 응답하여, 카운팅을 행한다. 따라서, 제 7 스테이지 신호가 제 1 하강 에지를 가질 때, 카운터 트리거 신호(461a)는 제 1 상승 에지를 갖는다. 제 1 상승 에지는 카운터 모듈(470a)이 하나 더 카운팅하도록 트리거하고, 카운터 모듈(470a)은 "1111"이 된다. 제 7 스테이지 신호가 제 2 하강 에지를 가질 때, 카운터 트리거 신호(461a)는 제 2 상승 에지를 갖는다. 제 2 상승 에지는 카운터 모듈(470a)이 하나 더 카운팅하도록 트리거하고, 카운터 모듈(470a)이 오버플로우되게 한다. 카운터 모듈(470a)의 오버플로우시, 카운터 모듈(470a)은 완료 신호(485)를 로직 "1"로 설정한다.
클럭 제어기(420a)는 제 1 펄스 폭을 갖는 펄스들을 발생시키기 위해 적절한 회로를 포함한다. 일 예에서, 제 1 펄스 폭은 대략 반전들의 제1의 개수에 근거하는 지연 시간(delay time)이다. 도 4의 예에서, 클럭 제어기(420a)는 S-R 래치(S-R latch)(421a)를 포함한다. 동작 동안, 일 예에서, 제 1 펄스 생성기(410a)가 트리거되지 않은 경우, S-R 래치(421a)의 출력(Q)은 로직 "0"에 대응하는 상대적으로 낮은 전압을 가지며 반전 카운터(430a)를 디스에이블시킨다.
제 1 펄스 생성기(410a)가 트리거되는 경우, S-R 래치(421a)는 설정 신호(set signal)을 수신하고, 예를 들어, 입력(S)이 로직 "0"에서 로직 "1"로 스위칭된다(예컨대, 상대적으로 낮은 전압에서 상대적으로 높은 전압으로 스위칭됨). 그 다음에, S-R 래치(421a)의 출력(Q)이 로직 "0"에서 로직 "1"로 스위칭되고, 주기적 신호 phi 1이 또한, 로직 "0"에서 (펄스의 리딩 에지(leading edge)에 대응하는) 로직 "1"로 스위칭된다.
출력(Q)이 로직 "1"이 되면, 링 오실레이터 모듈(440a)은 오실레이션을 시작하도록 인에이블되고, 반전 카운터(430a)는 링 오실레이터 모듈(440a)에서 전파된 반전들의 카운팅을 시작한다. 반전 카운터(430a)가 반전들의 제1의 개수까지 카운팅하는 경우, 카운터 모듈(470a)은 완료 신호를 발생시킨다. 일 예에서, 완료 신호는 반전 카운터(430a)가 제1의 개수까지 카운팅했음을 표시하기 위해 상대적으로 작은 펄스 폭을 갖는 펄스를 사용한다.
완료 신호는 S-R 래치(421a)를 재설정하고, 따라서 S-R 래치(421a)의 출력(Q)은 로직 "1"에서 로직 "0"으로 스위칭되고, 주기적 신호 phi 1이 또한, 로직 "1"에서 (펄스의 트레일링 에지(trailing edge)에 대응하는) 로직 "0"으로 스위칭된다. 출력(Q)이 로직 "0"이 되면, 링 오실레이터 모듈(440a)은 디스에이블된다. 제 1 펄스 생성기(410a)에 의해 발생된 펄스는 대략 반전들의 제1의 개수와 관련된 지연 시간인 제 1 펄스 폭을 갖는다.
제 2 펄스 생성기(410b)는 제 1 펄스 생성기(410a)와 유사하게 동작한다. 제 2 펄스 생성기(410b)가 트리거될 때마다, 제 2 펄스 생성기(410b)는 주기적 신호 phi 2에서 펄스를 발생시킨다. 이러한 펄스는 제 2 펄스 폭을 갖는데, 제 2 펄스 폭은 제어 신호(151)에 의해 표시된 반전들의 제2의 개수에 근거하는 제 2 지연 시간에 대응한다.
제 2 펄스 생성기(410b)는 특정 컴포넌트들 혹은 신호들을 사용하는데, 이들 컴포넌트들 혹은 신호들은 제 1 펄스 생성기(410a)에서 사용된 것들과 동일하거나 이들과 등가이며(예를 들어, S-R 래치(421b), 반전 카운터(430b), 링 오실레이터 모듈(440b), 복수의 스테이지 신호들(441b), NAND 게이트(442b), 반전기들(443b), 선택된 스테이지 신호(451b), 카운터 트리거 신호(461b), 선택 신호(482b), 등은 제 1 펄스 생성기(410a)에서의 그 대응부분들과 동일함), 이들 컴포넌트들 혹은 신호들의 설명은 앞에서 제공되었는바, 간결한 설명을 위해 여기서는 생략될 것이다. 반전들의 제2의 개수는 반전들의 제1의 개수와 동일할 수 있거나, 혹은 제1의 개수와는 다를 수 있음에 유의해야 한다.
제 1 펄스 생성기(410a) 및 제 2 펄스 생성기(410b)는 함께 교차-결합되어 있고, 이에 따라 펄스 생성기들 중 하나에 의해 발생된 트레일링 에지는 다른 펄스 생성기가 펄스 발생을 시작하도록 트리거하게 된다. 따라서, 제 1 펄스 생성기(410a) 및 제 2 펄스 생성기(410b)는 번갈아가며 펄스들을 발생시킨다. 발생된 펄스들은 한 쌍의 주기적 신호들 phi 1 및 phi 2를 형성한다. 도 4의 예에서, 주기적 신호들 phi 1 및 phi 2의 주기는 제 1 펄스 폭과 제 2 펄스 폭의 합(sum)이다.
선택 신호(482a/482b), 극성 신호(483a/483b), 및 초기화 신호(484a/484b)가 적절한 시간 동안 제공될 수 있도록 클럭 제어기(420a 및 420a)가 적절한 회로를 포함한다는 것에 유의해야 한다. 예를 들어, 제어 신호(151)는 phi 1 신호가 로직 "0" 상태이고 phi 2 신호가 로직 "1" 상태인 동안 수신된다. 이때, 제 1 펄스 생성기(410a)는 디스에이블된 상태에 있고, 반면 제 2 펄스 생성기(410b)는 변형(version)들을 카운팅하는 활성 상태이다. 따라서, 제 1 펄스 생성기(410a)에서는, 멀티플렉서 모듈(450a), XOR 모듈(460a), 및 카운터 모듈(470a)의 상태들을 업데이트하기 위해 선택 신호(482a), 극성 신호(483a) 및 초기화 신호(484a)가 즉시 발생될 수 있다. 반면 제 2 펄스 생성기(410b)에서, 클럭 제어기는 선택 신호(482b), 극성 신호(483b), 및 초기화 신호(484b)를 발생시키기 위한 관련 회로를 예를 들어, 완료 신호(485b)에 의해 트리거될 때까지 홀딩(holding)한다.
클럭 생성기(160)에서 발생된 클럭 신호(161)(phi 1 및 phi 2)가 싸이클마다 달라질 수 있음에 또한 유의해야 한다. 예를 들어, 클럭 신호(161)의 3개 이상의 인접하는 싸이클들은 상이한 클럭 설정들에 대응하는 서로 다른 제어 신호들(151)을 클럭 생성기(160)에 연속적으로 전송함으로써 서로 다른 주파수들을 갖도록 조정될 수 있다.
카운터 기반의 클럭 생성기(160)에 대한 다양한 변경이 행해질 수 있음에 유의해야 한다. 일 예에서, 카운터 모듈(470a)은 하강 에지에서 트리거된다. 또 하나의 다른 예에서, NAND 게이트(442a)는 인에이블 신호(481a)에 응답하여 상대적으로 더 짧은 지연(예컨대, 정상 반전의 절반 지연)을 갖도록 적절히 구성된다. 이러한 구성은 지연 분해능을 대략 절반-반전(half-inversion)으로 향상시킨다.
도 5는 본 개시내용의 일 실시예에 따른 클럭 제어기(420a/420b)에 의해 제공되는 제어 신호의 예들을 나타낸 테이블(500)을 보여준다. 테이블(500)은 지연 필드(510), 선택 신호 필드(520), 극성 신호 필드(530), 및 초기화 신호 필드(540)를 포함한다. 지연 필드(510)는 반전들의 개수를 표시한다. 선택 신호 필드(520)는 스테이지 신호를 선택하도록 멀티플렉서 모듈(450a/450b)을 구성하기 위한 3-비트 이진 값을 포함한다. 극성 신호 필드(530)는 카운터 모듈(470a/470b)에 관해 변이 방향을 적절히 조정하도록 XOR 모듈(460a/460b)을 구성하기 위한 1-비트 이진 값을 포함한다. 초기화 신호 필드(540)는 카운터 모듈(470a/470b)을 초기화하기 위한 4-비트 이진 값을 포함한다.
도 6은 본 개시내용의 일 실시예에 따른 크리티컬 경로들을 수용하기 위해 클럭 주파수를 변경시키기 위한 프로세스(600)를 나타낸 흐름도를 보여준다. 프로세스(600)를 설명하기 위해 디지털 시스템(100)이 하나의 예로서 사용된다. 프로세스(600)는 S601에서 시작하고 S610으로 진행한다.
S610에서, 하나 이상의 인에이블 신호들이 로직 경로 인에이블러(logic path enabler)(140)에서 발생된다. 각각의 인에이블 신호는 하나 이상의 크리티컬 모듈들(120a 내지 120n)에 대응할 수 있다.
S620에서, 하나 이상의 인에이블 신호들에 대응하는 하나 이상의 크리티컬 모듈들이 그 대응하는 인에이블 신호들에 의해 활성화된다. 활성화 이후, 그 활성화된 크리티컬 모듈들에서의 로직 경로들은 클럭 신호(161)에 의해 트리거될 때 동작하게 된다. 로직 경로들은 크리티컬 경로들을 포함한다. 상이한 크리티컬 모듈이 클럭 신호의 상이한 싸이클들 동안 그 대응하는 인에이블 신호들이 언제 발생되는지에 따라 활성화될 수 있다.
S630에서는, 수신된 모든 인에이블 신호들에 근거하여 제어기(150)에서 클럭 설정이 선택된다. 모듈 기반 모드(module based mode)에 있을 때, 일 예에서, 로직 경로 인에이블러(140)로부터 수신된 각각의 인에이블 신호의 도착 혹은 종단에 의해 트리거되는 경우, 클럭 설정이 선택된다. 선택된 클럭 설정은 활성화된 모든 크리티컬 모듈(120a 내지 120n)에서의 모듈 크리티컬 경로들을 수용할 수 있는 가장 높은 가능 주파수를 갖는다. 구체적으로, 일 예에서, 활성화된 크리티컬 모듈들과 관련된 클럭 설정들 중에서 가장 낮은 주파수를 갖는 클럭 설정이 선택된다.
싸이클 기반 모드(cycle based mode)에 있을 때, 일 예에서, 클럭 신호의 하나의 싸이클에 대해 하나의 클럭 설정이 선택되고, 클럭 신호의 상이한 싸이클들에 대해 서로 다른 혹은 동일한 클럭 설정들이 선택된다. 일 예에서, 싸이클에 대해 선택되는 클럭 설정은 활성화된 모든 크리티컬 모듈에서의 해당 싸이클에 대응하는 모든 싸이클 크리티컬 경로들을 수용할 수 있는 가장 높은 가능 주파수를 갖는다. 구체적으로, 일 예에서, 싸이클에 대해 선택되는 클럭 설정은, 활성화된 모든 크리티컬 모듈들에서의 해당 싸이클에 대응하는 싸이클 크리티컬 경로들과 관련된 클럭 설정들 중에서 가장 느린 주파수를 갖는 클럭 설정이다.
S640에서는, 선택된 클럭 설정을 표시하는 제어 신호가 클럭 생성기(160)로 전송되어 클럭 신호(161)의 주파수가 변경되게 된다. 일 예에서, 제어 신호는 반전들의 제1의 개수 및 제2의 개수를 표시한다. 반전들의 제1의 개수 및 제2의 개수에 근거하여, 클럭 생성기(160)는 이러한 제1의 개수 및 제2의 개수에 결정되는 주파수를 갖는 클럭 신호(161)를 발생시킨다.
본 개시내용의 실시형태들은 예로서 제안된 그 특정 실시예들과 함께 설명되었지만, 이러한 예에 대한 대안물, 수정물 및 변경물이 만들어질 수 있다. 따라서, 본 명세서에서 제시되는 실시예들은 한정의 의미가 아닌 예시적 의미를 갖도록 의도된 것이다. 아래 제시되는 청구 범위로부터 벗어남이 없이 수행될 수 있는 여러 변경예들이 존재한다.

Claims (22)

  1. 집적회로로서,
    가변인 클럭 주파수를 갖는 클럭 신호를 생성하는 클럭 생성기;
    상기 클럭 신호의 제어하에서 동작하도록 선택적으로 턴온될 수 있는 복수의 크리티컬 모듈들(critical modules)을 포함하는 회로, 각각의 크리티컬 모듈은 디폴트 클럭 주파수가 수용(accommodate)할 수 없는 하나 이상의 크리티컬 경로들을 포함하며;
    상기 복수의 크리티컬 모듈들을 선택적으로 턴온시키는 인에이블 신호들을 생성하는 로직 경로 인에이블러(logic path enabler); 및
    턴온되는 각각의 크리티컬 모듈들을 나타내는 인에이블 신호들을 수신하고 그리고 상기 인에이블 신호들에 기초하여 상기 클럭 생성기로 하여금 턴온되는 크리티컬 모듈들에서 크리티컬 경로들을 수용하도록 상기 클럭 신호의 클럭 주파수를 변화시키게 하는 제어기
    를 포함하는 것을 특징으로 하는 집적회로.
  2. 삭제
  3. 제1항에 있어서,
    상기 제어기는,
    그 각각이 기결정된 클럭 주파수에 대응하는 다수의 미리설정된(preconfigured) 클럭 세팅들 중에서, 턴온되는 크리티컬 모듈들 내의 크리티컬 경로들을 수용할 수 있는 주파수를 갖는 클럭 세팅을 상기 인에이블 신호에 기초하여 선택하고, 그리고 이후 상기 선택된 클럭 세팅을 나타내는 제어 신호를 상기 클럭 생성기로 전송하는 것을 특징으로 하는 집적회로.
  4. 제1항에 있어서,
    각각의 크리티컬 모듈은 상기 모듈 내의 로직 경로들 중에서 가장 긴 전파 지연을 갖는 모듈 크리티컬 경로를 포함하며, 그리고
    상기 제어기는 상기 클럭 생성기가, 턴온되는 각각의 크리티컬 모듈 내의 모듈 크리티컬 경로들을 수용할 수 있는 가장 높은 가능 주파수에서 클럭 신호를 생성하게 하는 것을 특징으로 하는 집적회로.
  5. 제4항에 있어서,
    각각의 크리티컬 모듈은, 크리티컬 모듈 각각의 모듈 크리티컬 경로를 수용할 수 있는 주파수들을 갖는 다수의 미리설정된 클럭 세팅들 중에서 가장 높은 클럭 주파수를 갖는 관련된 클럭 세팅을 가지며, 그리고
    상기 제어기는, 인에이블 신호가 도달 혹은 종료하는 경우, 수신된 인에이블 신호들에 기초하여, 턴온되는 크리티컬 모듈들에 관련된 클럭 세팅들 중에서 가장 낮은 클럭 주파수를 갖는 클럭 세팅을 선택하고 그리고 선택된 클럭 세팅을 나타내는 제어 신호를 상기 클럭 생성기로 전송하는 것을 특징으로 하는 집적회로.
  6. 제1항에 있어서,
    턴온화되는 경우 각각의 크리티컬 모듈은 클럭 신호의 하나 이상의 싸이클들에 대응하는 하나 이상의 싸이클(cycle) 크리티컬 경로들을 가지며, 각각의 싸이클 크리티컬 경로는 각각의 크리티컬 모듈 내의 클럭 신호의 대응 싸이클 동안에 동작 중인 크리티컬 경로들 중에서 가장 긴 전파 지연을 가지며, 그리고
    상기 제어기는 상기 클럭 생성기로 하여금, 상기 클럭 신호의 싸이클 동안, 턴온되는 크리티컬 모듈들 내의 클럭 신호의 싸이클에 대응하는 싸이클 크리티컬 경로들을 수용할 수 있는 가장 높은 가능 주파수에서 클럭 신호를 생성하게 하는 것을 특징으로 하는 집적회로.
  7. 제6항에 있어서,
    각각의 싸이클 크리티컬 경로는, 각각의 싸이클 크리티컬 경로를 수용할 수 있는 주파수들을 갖는 다수의 미리설정된 클럭 세팅들 중에서 가장 높은 클럭 주파수를 갖는 관련된 클럭 세팅을 가지며, 그리고
    상기 제어기는, 상기 클럭 신호의 싸이클 동안, 턴온되는 크리티컬 모듈 내의 클럭 신호의 싸이클에 대응하는 싸이클 크리티컬 경로들에 관련된 클럭 세팅들 중에서 가장 낮은 클럭 주파수를 갖는 클럭 세팅을, 수신된 인에이블 신호들에 기초하여 선택하며, 그리고 선택된 클럭 세팅을 나타내는 제어 신호를 상기 클럭 생성기로 전송하는 것을 특징으로 하는 집적회로.
  8. 제1항에 있어서,
    상기 로직 경로 인에이블러는 크리티컬 모듈을 턴온시키기 위한 인에이블 신호를 생성하기 전에, 트리거 신호를 생성하며, 그리고
    상기 제어기는, 상기 트리거 신호에 응답하여, 상기 클럭 생성기로 하여금 크리티컬 모듈이 동작하기 시작하는 때에 상기 클럭 신호의 주파수를 변하게 하는 것을 특징으로 하는 집적회로.
  9. 제1항에 있어서,
    상기 회로는 또한, 디폴트 주파수에서 상기 클럭 신호의 제어 하에서 동작하는 논-크리티컬(non-critical) 모듈들을 포함하고, 그리고
    상기 제어기는 크리티컬 모듈이 턴온되는 경우 클럭 생성기로 하여금 클럭 신호의 주파수를 디폴트 주파수로부터 상기 디폴트 주파수보다 낮은 주파수로 변경하게 하는 것을 특징으로 하는 집적회로.
  10. 제1항에 있어서,
    상기 클럭 생성기는 반전 지연들(inversion delays)의 개수에 대한 함수인 주파수를 이용하여 상기 클럭 신호를 생성하는 것을 특징으로 하는 집적회로.
  11. 제10항에 있어서,
    상기 클럭 생성기는,
    제 1 펄스들을 출력하는 제 1 펄스 생성기와 제 2 펄스들을 출력하는 제 2 펄스 생성기를 포함하며,
    각각의 제 1 펄스는 제 1 리딩 에지(leading edge), 제 1 트레일링 에지(trailing edge) 및 반전 지연들에 대한 함수인 제 1 펄스 폭을 가지고,
    각각의 제 2 펄스는 제 2 리딩 에지, 제 2 트레일링 에지 및 반전 지연들에 대한 함수인 제 2 펄스 폭을 가지며, 그리고
    제 1 펄스 생성기가 제 2 트레일링 에지에 응답하여 상기 제 1 펄스들 중 하나를 출력하도록 그리고 제 2 펄스 생성기가 제 1 트레일링 에지에 응답하여 상기 제 2 펄스들 중 하나를 출력하도록, 상기 제 1 펄스 생성기와 제 2 펄스 생성기는 크로스-커플링되는 것을 특징으로 하는 집적회로.
  12. 방법으로서,
    클럭 생성기로부터 생성된 클럭 신호의 제어 하에서 동작하는 복수의 크리티컬 모듈들을 선택적으로 턴온시키기 위하여 로직 경로 인에이블러(logic path enabler)에서 인에이블 신호들을 생성하는 단계, 각각의 크리티컬 모듈은 디폴트 클럭 주파수가 수용할 수 없는 하나 이상의 크리티컬 경로들을 포함하며; 그리고
    제어기에서, 턴온되는 각각의 크리티컬 모듈들을 나타내는 인에이블 신호들을 수신하고 그리고 상기 인에이블 신호들에 기초하여 상기 클럭 생성기로 하여금 턴온되는 크리티컬 모듈들에서 크리티컬 경로들을 수용하도록 상기 클럭 신호의 클럭 주파수를 변화시키게 하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  13. 삭제
  14. 제12항에 있어서,
    상기 클럭 생성기로 하여금 상기 클럭 신호의 클럭 주파수를 변화시키게 하는 단계는,
    그 각각이 기결정된 클럭 주파수에 대응하는 다수의 미리설정된 클럭 세팅들 중에서, 턴온되는 크리티컬 모듈들 내의 크리티컬 경로들을 수용할 수 있는 주파수를 갖는 클럭 세팅을 상기 인에이블 신호들에 기초하여 선택하는 단계;
    상기 선택된 클럭 세팅을 나타내는 제어 신호를 상기 클럭 생성기로 전송하는 단계; 및
    상기 선택된 클럭 세팅에 기초하여 상기 클럭 신호의 클럭 주파수를 변경하는 단계
    를 포함하는 것을 특징으로 하는 방법.
  15. 제12항에 있어서,
    각각의 크리티컬 모듈은 상기 모듈 내의 로직 경로들 중에서 가장 긴 전파 지연을 갖는 모듈 크리티컬 경로를 포함하며, 그리고 상기 방법은,
    턴온되는 각각의 크리티컬 모듈 내의 모듈 크리티컬 경로들을 수용할 수 있는 가장 높은 가능 주파수에서 클럭 신호를 상기 클럭 생성기에 의해서 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  16. 제15항에 있어서,
    각각의 크리티컬 모듈은, 크리티컬 모듈 각각의 모듈 크리티컬 경로를 수용할 수 있는 주파수들을 갖는 다수의 미리설정된 클럭 세팅들 중에서 가장 높은 클럭 주파수를 갖는 관련된 클럭 세팅을 가지며, 그리고 가장 높은 가능 주파수에서 클럭 신호를 상기 클럭 생성기에 의해서 생성하는 단계는,
    인에이블 신호가 도달 혹은 종료하는 경우, 수신된 인에이블 신호들에 기초하여, 턴온되는 크리티컬 모듈들에 관련된 클럭 세팅들 중에서 가장 낮은 클럭 주파수를 갖는 클럭 세팅을 선택하는 단계; 및
    클럭 주파수를 변경하도록, 선택된 클럭 세팅을 나타내는 제어 신호를 상기 클럭 생성기로 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  17. 제12항에 있어서,
    턴온되는 경우 각각의 크리티컬 모듈은 클럭 신호의 하나 이상의 싸이클들에 대응하는 하나 이상의 싸이클(cycle) 크리티컬 경로들을 가지며, 각각의 싸이클 크리티컬 경로는 각각의 크리티컬 모듈 내의 클럭 신호의 대응 싸이클 동안에 동작 중인 크리티컬 경로들 중에서 가장 긴 전파 지연을 가지며, 그리고 상기 방법은,
    상기 클럭 생성기에 의해서, 상기 클럭 신호의 싸이클 동안, 턴온되는 크리티컬 모듈들 내의 클럭 신호의 싸이클에 대응하는 싸이클 크리티컬 경로들을 수용할 수 있는 가장 높은 가능 주파수에서 클럭 신호를 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  18. 제17항에 있어서,
    각각의 싸이클 크리티컬 경로는, 각각의 싸이클 크리티컬 경로를 수용할 수 있는 주파수들을 갖는 다수의 미리설정된 클럭 세팅들 중에서 가장 높은 클럭 주파수를 갖는 관련된 클럭 세팅을 가지며, 그리고 상기 클럭 생성기에 의해서 상기 클럭 신호의 싸이클 동안, 클럭 신호를 생성하는 단계는,
    상기 클럭 신호의 싸이클 동안, 턴온되는 크리티컬 모듈 내의 클럭 신호의 싸이클에 대응하는 싸이클 크리티컬 경로들에 관련된 클럭 세팅들 중에서 가장 낮은 클럭 주파수를 갖는 클럭 세팅을, 수신된 인에이블 신호들에 기초하여 선택하는 단계; 및
    선택된 클럭 세팅을 나타내는 제어 신호를 상기 클럭 생성기로 전송하는 단계를 포함하는 것을 특징으로 하는 방법.
  19. 제12항에 있어서,
    크리티컬 모듈을 턴온시키기 위해 인에이블 신호를 생성하기 전에, 트리거 신호를 생성하는 단계; 및
    상기 트리거 신호에 응답하여, 크리티컬 모듈이 동작하기 시작하는 때에 상기 클럭 신호의 주파수를 상기 클럭 생성기에 의해서 변화시키는 단계
    를 더 포함하는 것을 특징으로 하는 방법.
  20. 제12항에 있어서,
    상기 클럭 생성기에 의해서 클럭 신호의 주파수를 디폴트 주파수로부터 상기 디폴트 주파수보다 낮은 주파수로 변경하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  21. 제12항에 있어서,
    반전 지연들(inversion delays)의 개수에 대한 함수인 주파수를 이용하여 상기 클럭 신호를 생성하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  22. 제21항에 있어서,
    제 1 펄스 생성기에서 제 1 펄스들을 출력하는 단계; 및
    제 2 펄스 생성기에서 제 2 펄스들을 출력하는 단계를 더 포함하고,
    각각의 제 1 펄스는 제 1 리딩 에지, 제 1 트레일링 에지 및 반전 지연들에 대한 함수인 제 1 펄스 폭을 가지고, 각각의 제 2 펄스는 제 2 리딩 에지, 제 2 트레일링 에지 및 반전 지연들에 대한 함수인 제 2 펄스 폭을 가지며,
    제 1 펄스 생성기가 제 2 트레일링 에지에 응답하여 상기 제 1 펄스들 중 하나를 출력하도록 그리고 제 2 펄스 생성기가 제 1 트레일링 에지에 응답하여 상기 제 2 펄스들 중 하나를 출력하도록, 상기 제 1 펄스 생성기와 제 2 펄스 생성기는 크로스-커플링되는 것을 특징으로 하는 방법.
KR1020160059652A 2015-05-15 2016-05-16 주파수 가변 클럭 생성기로 크리티컬 경로 수용 KR102550777B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201562162034P 2015-05-15 2015-05-15
US62/162,034 2015-05-15

Publications (2)

Publication Number Publication Date
KR20160134586A KR20160134586A (ko) 2016-11-23
KR102550777B1 true KR102550777B1 (ko) 2023-07-03

Family

ID=57277020

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160059652A KR102550777B1 (ko) 2015-05-15 2016-05-16 주파수 가변 클럭 생성기로 크리티컬 경로 수용

Country Status (2)

Country Link
US (1) US9891652B2 (ko)
KR (1) KR102550777B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10659014B2 (en) * 2017-10-13 2020-05-19 Samsung Electronics Co., Ltd. Clock control in semiconductor system
KR102376653B1 (ko) * 2017-10-13 2022-03-21 삼성전자주식회사 반도체 장치 및 반도체 시스템
US10469060B1 (en) * 2017-12-22 2019-11-05 The Boeing Company Synchronizable ring oscillators
US11928003B2 (en) * 2019-11-19 2024-03-12 Sony Semiconductor Solutions Corporation Voltage control device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100299557A1 (en) 2009-05-22 2010-11-25 David Michael Bull Providing tuning limits for operational parameters in data processing apparatus

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9088288B1 (en) * 2009-02-25 2015-07-21 Marvell Israel (M.I.S.L.) Ltd. Method and apparatus for clock generator
US8354857B1 (en) * 2009-02-25 2013-01-15 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for speed monitoring

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100299557A1 (en) 2009-05-22 2010-11-25 David Michael Bull Providing tuning limits for operational parameters in data processing apparatus

Also Published As

Publication number Publication date
US20160334832A1 (en) 2016-11-17
KR20160134586A (ko) 2016-11-23
US9891652B2 (en) 2018-02-13

Similar Documents

Publication Publication Date Title
US6914460B1 (en) Counter-based clock doubler circuits and methods
KR102550777B1 (ko) 주파수 가변 클럭 생성기로 크리티컬 경로 수용
TWI442704B (zh) 用以在一特定時間間隔過程中計數輸入脈衝之裝置
KR102314767B1 (ko) 지연-고정 루프에서 루프 카운트를 검출하기 위한 장치들 및 방법들
US7236557B1 (en) Counter-based clock multiplier circuits and methods
US7734944B2 (en) Mechanism for windaging of a double rate driver
JP4995325B2 (ja) クロック乗せ換え回路およびそれを用いた試験装置
US8878582B2 (en) Apparatus and method for duty cycle calibration
US8829953B1 (en) Programmable clock divider
US8675810B2 (en) Programmable low power multi-modulus divider with 50/50 duty cycle
US8786347B1 (en) Delay circuits for simulating delays based on a single cycle of a clock signal
US11545963B1 (en) Ring oscillator-based Ising machine system
US6906571B1 (en) Counter-based phased clock generator circuits and methods
US20180246819A1 (en) Asynchronous finite state machines
US8816743B1 (en) Clock structure with calibration circuitry
US9344064B2 (en) Integrated circuit comprising frequency change detection circuitry
EP3895364B1 (en) Clock recovery circuit and method of operating same
KR101172270B1 (ko) 지연고정루프에서의 듀티 사이클 보정
US9537477B2 (en) Semiconductor apparatus capable of converting a frequency of an input clock
US20190280684A1 (en) Pulse width modulator apparatus with enhanced resolution
US8094698B2 (en) Method for generating a spread spectrum clock and apparatus thereof
KR101406087B1 (ko) 분주기 및 분주기의 분주 방법
JP4560039B2 (ja) 直交クロック分周器
JPH1117531A (ja) デジタル遅延回路及びデジタルpll回路
CN117811539A (zh) Fpga时钟无毛刺切换电路

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant