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과 같은 정밀한 모델을 활용하여 클럭 지연을 분석한다.
'System-on-Chip Design' 카테고리의 다른 글
Evolution of Image Signal Processors: 2000s to 2020s (3) | 2025.03.13 |
---|---|
클럭 트리 삽입 (Clock Tree Insertion) (0) | 2025.03.01 |
동적 클럭 게이팅 (Dynamic Clock Gating) (0) | 2025.03.01 |
시스템 반도체 설계를 위한 SysML 기반의 기능 분석 (2) | 2025.02.22 |
SERDES(Serializer/Deserializer)의 개념, 아키텍처, 그리고 응용 분야 (2) | 2025.02.20 |