클럭 게이팅 기법 (Clock Gating Technique)
쉽게 풀면
디지털 회로에서는 클럭 신호가 계속 스위칭하면서 회로 전체에 전력을 소모시킵니다. 그런데 특정 순간에 사용되지 않는 회로 블록도 클럭이 계속 들어오면 실제 일을 하지 않으면서도 전력을 낭비하게 됩니다. 클럭 게이팅은 사용하지 않는 블록에는 클럭 신호가 아예 도달하지 않도록 문(gate)을 닫아버리는 기법입니다. 마치 쓰지 않는 방의 전등 스위치를 꺼두는 것처럼, 필요 없는 부분에는 클럭이라는 '깜빡임'을 멈춰서 전력을 아낍니다.
왜 중요한가
클럭 신호는 디지털 회로에서 가장 자주 스위칭하는 신호라서 전체 동적 소비전력에서 큰 비중을 차지합니다. 클럭 게이팅은 회로 동작을 바꾸지 않으면서도 소비전력을 효과적으로 줄일 수 있어 프로세서, SoC 설계에서 표준적으로 사용되는 저전력 기법으로 다뤄집니다.
논문에서는 이렇게 쓰입니다
유휴 상태인 기능 유닛에 세밀한 클럭 게이팅을 적용하여 처리량에 영향을 주지 않으면서 동적 전력을 줄였다는 내용입니다.
클럭 게이팅 셀이 기능 오류를 유발할 수 있는 글리치를 방지하도록 설계되었다는 의미입니다.
조금 더 깊게 보면
클럭 게이팅은 보통 래치 기반의 통합 클럭 게이팅 셀(ICG)을 사용하여, 활성화 신호가 낮은 레벨일 때 클럭 신호와 안전하게 결합되도록 설계함으로써 글리치를 방지합니다. 적용 범위에 따라 레지스터 단위의 세밀한(fine-grained) 게이팅과 큰 블록 단위의 굵은(coarse-grained) 게이팅으로 나눌 수 있으며, 자동화된 합성 도구에서도 널리 지원됩니다.
주의할 점
클럭 게이팅 셀을 잘못 설계하면 클럭 신호에 글리치가 발생해 오동작을 유발할 수 있으므로, 활성화 신호와 클럭의 타이밍 관계를 신중하게 설계해야 합니다.