반응형
반응형
반응형

1. Clock Sources

대부분의 전자 제품은 쿼츠 크리스털(quartz crystal)에서 발생하는 음파를 클럭 소스로 사용한다. 반면, 초저가 제품(예: 음악이 나오는 축하 카드 등)은 R/C(저항-커패시터) 발진기(RC Oscillator)를 사용하지만, 일반적으로 정확도가 10% 정도밖에 되지 않는다. 음악 축하 카드의 경우, 한 세미톤(semitone)이 약 6%의 주파수 변화에 해당하므로, 이러한 카드는 정확한 음조에서 벗어날 가능성이 높다.

그림 4.41크리스털의 압전 효과(piezoelectric effect)를 이용하여 발진시키는 전형적인 회로를 보여준다.


인버터(inverter)는 저항을 통해 바이어스되어 고이득(High-Gain)의 거의 선형 영역에서 인버팅 증폭기(Inverting Amplifier) 역할을 한다.
진동(oscillation) 주파수는 크리스털 두께의 역수에 의해 결정된다. 20MHz 이상의 고주파 영역에서는 크리스털을 충분히 얇게 절단할 수 없으므로, 외부 L/C 탱크 회로(L/C tank circuit)를 이용하여 3차 또는 5차 오버톤(Overtone, 배음)을 강제로 발생시킨다.


2. PLL 및 클럭 트리 (PLL and Clock Trees)

CPU 코어에서 요구되는 1GHz 수준의 높은 클럭 주파수를 생성하기 위해서는 칩 내부에서 크리스털 오실레이터 주파수를 승수(multiply)하여 사용해야 한다. 이를 위해 위상 고정 루프(PLL, Phase-Locked Loop)가 사용된다.

1) PLL의 원리

  • PLL은 그림 4.42의 왼쪽에 나타나 있다.

  • 전압 제어 오실레이터(VCO, Voltage-Controlled Oscillator)는 입력 전압에 따라 주파수가 변하는 클럭 신호를 생성한다.
  • 생성된 주파수를 일정한 비율(예: 10분의 1)로 나누어(divide) 원래 크리스털 클럭과 동기화한다.
  • 단순한 AND 게이트(AND Gate)를 위상 비교기(Phase Comparator)로 활용하여 VCO의 출력이 너무 빠르면 외부 클럭과의 겹침(overlap)이 줄어들어 AND 게이트 출력의 평균 전압이 감소한다.
  • 저역통과 필터(Low-Pass Filter, LPF)가 적용되어 안정성을 유지하며, VCO는 이 신호를 기반으로 출력 주파수를 조정하여 외부 클럭과 위상 및 주파수를 동기화한다.

2) 동적 주파수 스케일링 (DFS, Dynamic Frequency Scaling)

  • 4.6.8절에서 설명한 DFS는 PLL의 분주 비율(division ratio)을 변경하여 주파수를 조절하는 방식이다.
  • 분주 비율을 크게 하면 시스템 클럭이 증가하고, 반대로 하면 시스템 클럭이 감소한다.
  • 이를 통해 외부 기준(reference) 클럭을 유지하면서도 유동적으로 시스템 클럭을 조정할 수 있다.

3) 클럭 트리 (Clock Tree) 설계

클럭 트리는 동일한 클럭 도메인 내의 모든 플립플롭(flip-flop)에 클럭을 배포하는 역할을 한다.
클럭 도착 시간의 편차(Skew)가 너무 크면 shoot-through 현상이 발생할 수 있다 (4.6.9절 참조).
이는 한 플립플롭의 출력이 이미 변경되었음에도 불구하고, 여전히 동작해야 하는 신호로 사용되는 문제이다.

최소한의 클럭 스큐(Skew)를 보장하기 위해 클럭 분배 구조(Clock Distribution Tree)에서 다음과 같은 기법이 사용된다:

(a) 균형 잡힌 클럭 트리 구조

  • VCO에서 각 플립플롭까지의 경로 길이(net length) 및 버퍼 개수를 동일하게 유지하여 균형 잡힌(Balanced) 클럭 트리를 설계한다.
  • 클럭 신호의 고-저 전이(rising/falling transition)는 완벽하게 일치하지 않기 때문에, 버퍼(inverter) 체인을 사용하여 최소한의 펄스 수축(pulse shrinkage) 효과를 유지한다.

(b) 바이너리 H-트리(Binary H-Tree)

  • 그림 4.42의 오른쪽에 나타난 바이너리 H-트리 구조는 균형 잡힌 클럭 트리 설계의 대표적인 예이다.
  • 각 H 분기점(branch)에 인버터(Inverter)를 추가하여, 클럭 신호가 일정하게 전달되도록 조정한다.
  • 모든 플립플롭은 H 패턴의 가장 작은 선(line)의 끝 부분에 연결된다.
  • 이 구조를 유지하면, 클럭 신호의 전달 지연(Propagation Delay)이 균등하게 보장되므로 추가적인 조정이 필요 없다.

4) 클럭 지연 모델 (Clock Delay Model)

균형 잡힌 클럭 트리가 필요하지 않은 경우(예: 클럭 스큐 조정, 클럭 게이트 지연 보상), 보다 정밀한 클럭 지연 모델이 필요하다.

(a) 간단한 모델: 집합 요소 지연 (Lumped-Element Delay Model)

  • 가장 단순한 방식으로, 저항 및 커패시턴스를 하나의 값으로 계산하여 전체 지연을 모델링한다.

(b) Elmore Delay Model (보다 정밀한 방식)

  • 각 네트(segment)의 저항 및 커패시턴스를 합산하여 지연을 계산한다.
  • 저항(R)과 커패시턴스(C)의 곱을 기반으로 시간 지연을 산출한다.
  • 균일한 비분기 네트(Non-Forking Net)의 경우, 지연은 다음과 같이 길이(L)의 제곱에 비례한다:

  • R: 단위 길이당 저항(Resistance per unit length)
  • C: 단위 길이당 커패시턴스(Capacitance per unit length)
  • L: 배선 길이
  • 이는 단순 모델에서 사용되는 **선형 길이 기반 지연(linear delay)**과 대비되며, 실제 클럭 트리 설계에서는 Elmore 모델이 보다 현실적인 지연 값을 제공한다.

결론

  • 대부분의 SoC는 크리스털 오실레이터를 사용하여 기본 클럭을 생성하며, R/C 발진기는 저가형 제품에만 사용된다.
  • 고주파 클럭(1GHz 이상)이 필요한 경우, PLL을 사용하여 크리스털 클럭을 증폭한다.
  • 균형 잡힌 클럭 트리 설계(H-Tree)를 통해 클럭 스큐를 최소화하여 타이밍 오류를 방지한다.
  • Elmore Delay Model과 같은 정밀한 모델을 활용하여 클럭 지연을 분석한다.
반응형
반응형

DVFS(Dynamic Voltage and Frequency Scaling)는 서브시스템의 클럭 주파수와 전원 전압을 조정하는 기법입니다.
이러한 조정은 일반적으로 저역통과 필터(low-pass filter)가 포함된 피드백 루프에 의해 제어됩니다.
즉, 클럭과 전압 조정에는 일정한 관성(inertia, 지연)이 존재하며, 변경은 최소 1~10ms 단위로 수행되어야 합니다.

추가적인 전력 절감 기법으로는 클럭 차단(clock gating)서브시스템의 전원 차단(power gating)이 있습니다.
이 두 방법은 디지털 방식으로 즉각적으로 실행 가능하여 매우 빠르게 적용할 수 있습니다.
여기에서는 자동 클럭 게이팅(Automatic Clock Gating)에 대해 설명합니다.


1. 클럭 분배 트리와 전력 소비

SoC(System on Chip)의 클럭 분배 트리(Clock Distribution Tree)는 SoC 내에서 상당한 양의 전력을 소비합니다. 실제로, 클럭 신호는 비활성 서브시스템에서도 전체 에너지의 약 10%를 소비할 수 있습니다. 논리 회로 영역에서 모든 플립플롭(flip-flop)이 현재의 데이터를 유지하고 있다면, 즉 클럭을 통해 새로운 데이터가 로드되지 않는다면, 해당 영역은 유휴(idle) 상태라고 할 수 있습니다. 하지만, 이러한 유휴 상태에서도 클럭이 계속 공급되면 불필요한 전력 소모가 발생하여 해당 영역은 여전히 10%의 전력을 소비하게 됩니다. 유휴 기간(idle period)은 연속된 여러 개의 유휴 클럭 사이클로 정의됩니다. 이 기간은 단 하나의 클럭 사이클에서 수천 개의 클럭 사이클까지 지속될 수 있습니다. 따라서, 유휴 상태에서 클럭을 차단하면 상당한 전력 절감 효과를 얻을 수 있습니다.


2. 클럭 게이팅 방식

2.1 클럭 게이팅 회로의 종류

그림 4.31은 서브시스템의 클럭을 비활성화하는 세 가지 회로를 보여줍니다.

(a) 비동기적 클럭 인에이블 구조 (Asynchronous Clock Enable Structure)

  • 외부 멀티플렉서(Multiplexer)를 사용하여 클럭을 선택.
  • 이 멀티플렉서는 실제로 플립플롭 내부에 일부로 구현됨.
  • 그러나 클럭 신호 자체를 차단하지 않기 때문에 동적 전력 소모를 줄이지 못함.

(b) AND 게이트를 이용한 클럭 게이팅 (Clock Gating with AND Gate)

  • 클럭 신호와 클럭 인에이블(CEN) 신호를 AND 게이트를 통해 조합.
  • 문제점:
    • 클럭이 HIGH 상태에서 CEN이 변하면 클럭 글리치(Glitch, 잡음)가 발생할 가능성이 있음.

(c) OR 게이트를 이용한 클럭 게이팅 (Clock Gating with OR Gate)

  • OR 게이트를 사용하여 클럭 인에이블 신호를 제어.
  • 문제점:
    • 클럭이 LOW 상태에서 CEN이 변하면 글리치가 발생할 가능성이 있음.

3. 클럭 게이팅 시 발생하는 문제와 해결 방법

3.1 클럭 게이팅 글리치 방지

AND/OR 게이트를 사용하는 방식의 가장 큰 문제는 클럭 신호의 글리치(Glitch)입니다.
이를 해결하기 위해 투명 래치(Transparent Latch)를 사용하여 CEN 신호의 변화를 지연시킵니다.
즉, 안전한 클럭 신호 구간에서만 CEN 신호가 적용되도록 합니다.

그림 4.32에서:

  • 투명 래치가 CEN 신호를 지연시켜 클럭을 안정적으로 게이팅합니다.
  • 이를 통해 글리치 없이 안전한 클럭 차단이 가능해집니다.

3.2 클럭 게이팅 도메인 간의 신호 스큐 문제

  • 비게이팅 도메인(non-gated domain)과 게이팅된 도메인(gated domain) 간에 신호 전송 시 클럭 스큐(clock skew)가 발생할 수 있음.
  • 이러한 비정상적인 신호 경로로 인해 shoot-through(신호 전파 오류)가 발생할 가능성이 있음.

해결책:

  • 딜레이 버퍼(Delay Buffer)를 삽입하여 비게이팅된 신호 경로를 조정.

4. 클럭 인에이블 조건 생성 (Clock Enable Condition Generation)

클럭을 비활성화하려면 어떤 조건에서 클럭을 차단할 것인지 정의하는 로직이 필요합니다.

4.1 소프트웨어 제어 방식

  • 소프트웨어를 통해 클럭 게이팅을 제어하는 방식.
  • 예: 레지스터 플래그(Register Flags)를 활용하여 특정 블록의 클럭을 제어.
  • 이 방식은 전력 차단(Power Gating)에서도 일반적으로 사용됨.

4.2 자동 검출 방식 (Automatic Detection)

  • 최신 설계에서는 자동 클럭 게이팅을 위한 추가적인 논리 회로를 삽입.
  • 논리 합성(Synthesis) 과정에서 자동으로 추가됨.
  • 클럭이 필요할 경우, 해당 레지스터 그룹에만 클럭을 공급.

예: Mitre 패턴(Mitre Pattern)

  • 플립플롭의 D 입력과 Q 출력의 차이를 비교하여 클럭이 필요한지 판단.


5. 파이프라인 기반 클럭 게이팅 (Pipeline Clock Gating)

파이프라인 구조에서는 한 단계(Stage)의 활동이 다음 단계(Stage)의 활동에 영향을 미칠 수 있습니다.
이를 활용하여 클럭 게이팅 영역 간 정보를 공유하면 전력 절감 효과를 극대화할 수 있습니다.

그림 4.34:

  • 이전 클럭 사이클에서 활성화된 영역의 정보를 다음 클럭 사이클에서 다른 영역에서 활용.
  • 필요할 때만 클럭을 공급하여 불필요한 전력 소모를 방지.


6. 결론

  • 동적 클럭 게이팅(Dynamic Clock Gating)은 SoC의 전력 소비를 줄이기 위한 핵심 기술.
  • 투명 래치(Transparent Latch)를 사용하여 클럭 글리치 문제를 해결.
  • 자동 클럭 인에이블 검출(Auto Clock Enable Detection)을 통해 최적화.
  • 파이프라인을 활용한 클럭 게이팅 정보 공유로 추가적인 전력 절감 가능.
반응형
반응형

 

SoC 클럭 설계 이해

클럭은 동기식 디지털 시스템에서 핵심적인 역할을 하며, SoC(시스템 온 칩) 내부의 모든 이벤트는 클럭 신호에 의해 제어됩니다. 클럭 주파수는 처리량(Throughput)과 성능(Performance)을 결정하는 중요한 요소입니다. 하지만 클럭을 효과적으로 배포하는 것은 복잡한 설계 트레이드오프를 포함하는 중요한 문제입니다.

1. 클럭 스큐(Clock Skew)

클럭 스큐는 클럭 신호가 서로 다른 플립플롭(FF)에 도착하는 시간 차이를 의미합니다.

  • 양의(Positive) 클럭 스큐: 캡처 플립플롭(FF2)에서 클럭이 늦게 도착 → Setup Timing이 유리하지만 Hold Timing이 어려워짐.
  • 음의(Negative) 클럭 스큐: 런치 플립플롭(FF1)에서 클럭이 늦게 도착 → Hold Timing이 유리하지만 Setup Timing이 어려워짐.

 

또한 스큐는 다음과 같이 나뉩니다:

  • 로컬(Local) 스큐: 직접 연결된 FF 간의 클럭 도착 시간 차이 → 타이밍에 직접적인 영향.
  • 글로벌(Global) 스큐: 전체 SoC 내 FF 간의 클럭 도착 시간 차이 → 클럭 배포 품질 평가에 사용됨.

2. 라우팅 리소스(Routing Resources)

클럭 신호의 배포는 많은 칩 배선 리소스를 차지합니다.

  • 클럭 신호는 전력(Power) 배선과 경쟁하여 최상위 금속층을 사용할 때가 많음.
  • 비표준 라우팅(NDR, Non-Default Routing) 기법을 적용하여 두꺼운 배선 및 간격 조정 가능.
  • 고주파 신호인 클럭은 차폐(Shielding)하여 노이즈를 줄이기 위해 전원/그라운드 신호로 보호됨.

3. 클럭 전력(Clock Power)

클럭 신호는 전체 소비 전력의 50% 이상을 차지할 수도 있습니다.

  • 동적 전력(Dynamic Power): 클럭이 토글될 때 소비되는 전력 → 주파수, 전압, 배선 용량에 따라 결정됨.
  • 내부 전력(Internal Power): 클럭 셀 내부에서 발생하는 크로스바 전류에 의해 소모됨 → 클럭 Slew에 따라 영향을 받음.

4. 온칩 변동(OCV, On-Chip Variation)의 영향

제조 공정, 전압, 온도 등의 변화로 인해 클럭 지연이 발생할 수 있습니다.

클럭 네트워크에서 분기점 이후의 클럭 경로는 OCV 영향을 많이 받으므로 타이밍 분석이 중요합니다.

5. 클럭 트리 분배 방식

  • 클럭 메쉬(Clock Mesh): 균일한 클럭 분배 → 높은 성능, 높은 전력 소비.
  • 단일 소스 CTS(Single-Source CTS): 클럭 게이팅이 쉬움 → 저전력, 스큐가 클 수 있음.
  • 멀티 소스 CTS(Multi-Source CTS): 중간 형태 → 적절한 균형 유지.

6. 결론

SoC의 클럭 설계는 성능, 전력, 라우팅 자원 간의 균형을 맞추는 것이 핵심입니다.

  • 고성능이 중요하면 → 클럭 메쉬 사용.
  • 저전력이 중요하면 → 단일 소스 CTS 사용.
  • 균형을 맞추고 싶다면 → 멀티 소스 CTS 사용.

설계자는 목표에 맞춰 최적의 클럭 트리 아키텍처를 선택해야 합니다!

반응형

+ Recent posts