반응형
반응형
반응형

트랜지스터 수가 수백만 개에 달하는 SoC(System on Chip)에서는 소수의 클럭만 사용되므로, 개별 클럭은 수천 개의 플립플롭(flip-flop) 또는 SRAMS, CPU 코어와 같은 다른 클럭을 사용하는 기본 회로에 분배되어야 합니다.

H-트리(H-tree) 및 PLL(Phase-Locked Loop)을 이용한 클럭 분배에 대한 내용은 앞에서 다루었습니다.

많은 클럭은 클럭 게이팅(clock gating)이 필요하므로, H-트리의 구조적 계층은 적절한 지점에서 클럭 게이트 입력을 수용할 수 있도록 설계되어야 합니다. 또한, 클럭 게이트를 거치지 않는 경로들과 비교했을 때, 클럭 게이트를 통과하는 신호의 지연이 적절히 조정되어야 shoot-through 현상(불필요한 신호 전파)이 방지됩니다.

 

SoC의 물리적 거리도 클럭 트리 생성 시 고려해야 하므로, 클럭 트리 합성(clock tree synthesis)은 배치(placement) 이후, 배선(routing) 전 또는 배선 과정의 일부로 수행됩니다. 배선 도구(router)는 사용하려는 금속층(metal layer)에 기존 배선이 없는 경우 가장 효과적으로 동작합니다. 따라서, 클럭 트리는 일반 논리 네트(net) 배선 전에 배치되어야 합니다.

 

장거리 클럭 신호는 주로 M4 및 M5 같은 중간 금속층(lower-middle layers)을 사용합니다. 클럭이 설계된 후, 라우터는 데이터 네트(data net) 및 버스(bus)의 장거리 배선을 위해 동일한 금속층을 추가적으로 활용할 수 있습니다.

특정한 도구를 사용하는 대신, 클럭 트리 라우팅은 일반적인 라우터를 위한 일련의 명령 시퀀스로 구현됩니다. 예를 들어, TCL 스크립트를 사용하여 자동화할 수 있습니다.


고급 설계 흐름 (Advanced Flow)

일반적으로 모든 지점에 클럭을 동시에 전달하는 방식 대신, 의도적인 클럭 스큐(clock skewing, 클럭 지연 조정)를 활용하여 타이밍 마진을 최대화하는 기법이 사용됩니다.

예를 들어, 많은 레지스터들이 동시에 토글(toggling, 신호 변화)할 경우, 공급 전원 레일(supply rail)에 노이즈가 발생할 수 있습니다. 이를 방지하기 위해 클럭 스큐를 자동으로 조정하는 기능이 제공되며, 일반적으로 최대 스큐 값가장 빠른 클럭의 15%로 설정됩니다.

또한, 수동 편집(manual edit)을 통해 파이프라인 내 연속된 레지스터들 사이에서 클럭 스큐를 더욱 극단적으로 조정할 수도 있습니다. 이러한 방식은 조합 논리(combinational logic)가 스테이지(stage)별로 균형 잡혀 있지 않을 경우 특히 필요합니다. 최적의 타이밍 및 전원 노이즈 목표를 동시에 충족시키기 위해 시행착오(trial-and-error) 접근 방식이 필요할 수도 있습니다.

반응형
반응형

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과 같은 정밀한 모델을 활용하여 클럭 지연을 분석한다.
반응형

+ Recent posts