맨위로가기

클럭 게이팅

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

클럭 게이팅은 클럭 신호를 제어하여 디지털 회로의 전력 소비를 줄이는 기술이다. 클럭 게이팅은 클럭 활성화 로직을 사용하여 플립플롭과 같은 회로 요소의 클럭을 선택적으로 비활성화하여, 해당 요소가 작업을 수행하지 않을 때 전력 소비를 줄인다. 클럭 게이팅은 RTL 코딩, ICG 셀 삽입, 자동 클럭 게이팅 도구 사용 등 다양한 방식으로 설계에 적용될 수 있으며, 휴대폰, 웨어러블 장치 등 전력 효율성이 중요한 기기에 널리 사용된다.

더 읽어볼만한 페이지

  • 클럭 신호 - 클럭 속도
    클럭 속도는 CPU의 주기적인 신호 속도로 헤르츠(Hz) 단위로 측정되며, CPU 성능에 영향을 미치지만 아키텍처 등 다른 요인과 함께 고려해야 하고, 오버클럭킹은 성능 향상과 함께 시스템 불안정의 위험이 있다.
  • 클럭 신호 - 동기 회로
    동기 회로는 클럭 신호에 맞춰 동작하는 논리 회로이며, 동기식 설계는 오동작 방지에 유리하나 클럭 분배의 어려움이 있고, 클럭 비동기 설계는 소비 전력 감소 등의 장점을 제공한다.
  • 전기 - 전기장
    전기장은 공간의 각 지점에서 단위 전하가 받는 힘으로 정의되는 벡터장으로, 전하 또는 시간에 따라 변하는 자기장에 의해 발생하며, 전기력선으로 표현되고 맥스웰 방정식으로 기술되는 전자기장의 한 요소이다.
  • 전기 - 전압
    전압은 두 지점 사이의 전위차로서 단위 전하당 에너지 차이를 나타내며, 정전기학에서는 단위 전하를 이동시키는 데 필요한 일, 회로 이론에서는 노드 간 전위차로 정의되고, 직류 및 교류 전압으로 구분되며, 다양한 방식으로 발생하여 여러 분야에 응용된다.
클럭 게이팅
클럭 게이팅
종류AND 게이팅
OR 게이팅
래치 기반 게이팅
사용전력 관리
같이 보기
관련 항목비동기 회로
동적 전압 스케일링

2. 상세

클럭 게이팅의 대안은 입력 멀티플렉서를 사용하는 동기식 데이터 경로에서 클럭 활성화(CE) 로직을 사용하는 것이다. 예를 들어 D형 플립플롭의 경우 C / Verilog 언어 표기법을 사용하면 다음과 같다.

: Dff= CE? D: Q;

여기서 Dff는 D형 플립플롭의 D 입력, D는 CE 입력이 없는 모듈 정보 입력, Q는 D형 플립플롭 출력이다. 이러한 유형의 클럭 게이팅은 경합 상태가 없으며 FPGA 설계에 선호된다. FPGA의 경우 모든 D형 플립플롭은 추가 CE 입력 신호를 갖는다.

2. 1. 작동 원리

클럭 게이팅은 레지스터에 연결된 활성화 조건을 가져와 클럭을 게이팅하는 방식으로 작동한다. 설계를 통해 클럭 게이팅의 이점을 얻으려면 이러한 활성화 조건이 포함되어야 한다. 이 클럭 게이팅 프로세스는 다수의 멀티플렉서를 제거하고 클럭 게이팅 로직으로 대체하므로 상당한 다이 면적과 전력을 절약할 수 있다. 이 클럭 게이팅 로직은 일반적으로 "통합 클럭 게이팅"(ICG) 셀의 형태이다. 그러나 클럭 게이팅 로직이 클럭 트리에 위치하므로 클럭 트리 구조를 변경한다.

클럭 게이팅 로직은 다양한 방식으로 설계에 추가할 수 있다.

  • 합성 도구에서 클럭 게이팅 로직으로 자동 변환될 수 있는 활성화 조건으로 레지스터 전송 레벨 (RTL) 코드에 코딩된다(세밀한 클럭 게이팅).
  • RTL 설계자가 라이브러리 특정 통합 클럭 게이팅(ICG) 셀을 인스턴스화하여 특정 모듈 또는 레지스터의 클럭을 게이팅함으로써 수동으로 설계에 삽입된다(일반적으로 모듈 레벨 클럭 게이팅으로 간주됨).
  • 자동 클럭 게이팅 도구에서 RTL에 반자동으로 삽입된다. 이러한 도구는 ICG 셀을 RTL에 삽입하거나 활성화 조건을 RTL 코드에 추가한다. 또한 일반적으로 순차 클럭 게이팅 최적화를 제공한다.


일반적으로 클럭 게이팅을 더 큰 세분성으로 적용하면 리소스 오버헤드가 감소하고 전력 절약이 증가한다.

클럭 게이팅을 개선하기 위한 모든 RTL 수정 사항은 설계에 기능적 변경을 가져오며(레지스터가 이제 다른 값을 유지하므로) 이를 검증해야 한다.

순차 클럭 게이팅은 추가 레지스터를 클럭 게이팅할 수 있도록 활성화 조건을 업스트림/다운스트림 순차 요소로 추출/전파하는 프로세스이다.

휴대폰, 웨어러블 장치 등에 사용되는 배터리 또는 매우 낮은 전력으로 작동하도록 설계된 칩은 여러 형태의 클럭 게이팅을 함께 구현한다. 한쪽 끝은 소프트웨어에서 수동으로 클럭을 게이팅하는 것으로, 드라이버가 주어진 유휴 컨트롤러에서 사용되는 다양한 클럭을 활성화하거나 비활성화한다. 다른 쪽 끝은 자동 클럭 게이팅으로, 하드웨어는 수행할 작업이 있는지 감지하고 필요하지 않은 경우 주어진 클럭을 끌 수 있다. 이러한 형태는 서로 상호 작용하며 동일한 활성화 트리의 일부일 수 있다. 예를 들어, 내부 브리지 또는 버스는 CPU 또는 DMA 엔진이 이를 사용해야 할 때까지 게이팅 해제되도록 자동 게이팅을 사용할 수 있으며, 해당 버스의 여러 주변 장치는 해당 보드에서 사용하지 않는 경우 영구적으로 게이팅 해제될 수 있다.

2. 2. 구현 방식

클럭 게이팅은 레지스터에 연결된 활성화 조건을 통해 클럭을 제어하는 방식으로 작동한다. 클럭 게이팅의 이점을 얻으려면 설계에 이러한 활성화 조건이 포함되어야 한다. 이 과정에서 다수의 멀티플렉서를 클럭 게이팅 로직으로 대체하여 다이 면적과 전력을 절약할 수 있다. 클럭 게이팅 로직은 주로 "통합 클럭 게이팅"(ICG) 셀 형태로 제공되지만, 클럭 트리에 위치하여 클럭 트리 구조를 변경시킨다는 특징이 있다.

일반적으로 클럭 게이팅을 더 세밀하게 적용할수록 리소스 오버헤드가 감소하고 전력 절감 효과는 커진다. RTL 수정은 설계에 기능적 변화를 가져오므로 (레지스터 값이 달라짐) 검증이 필요하다.

순차 클럭 게이팅은 활성화 조건을 업스트림/다운스트림 순차 요소로 추출/전파하여 더 많은 레지스터를 클럭 게이팅하는 프로세스이다.

휴대폰, 웨어러블 기기 등 저전력 칩은 다양한 클럭 게이팅 방식을 함께 사용한다. 소프트웨어가 수동으로 클럭을 제어하거나(드라이버가 유휴 컨트롤러 클럭 활성화/비활성화), 하드웨어가 자동 클럭 게이팅을 수행한다(작업 유무 감지하여 불필요한 클럭 차단). 이들은 상호 작용하며, 동일 활성화 트리의 일부일 수 있다. 예를 들어, 내부 브리지나 버스는 CPU 또는 DMA 엔진 사용 시까지 자동 게이팅 해제될 수 있고, 해당 버스의 주변 장치는 미사용 시 영구적으로 게이팅 해제 가능하다.

2. 2. 1. 자동 변환

클럭 게이팅 로직은 다양한 방식으로 설계에 추가할 수 있다.

  • 합성 도구에서 클럭 게이팅 로직으로 자동 변환될 수 있는 활성화 조건으로 레지스터 전송 레벨(RTL) 코드에 코딩된다(세밀한 클럭 게이팅).
  • RTL 설계자가 라이브러리 특정 통합 클럭 게이팅(ICG) 셀을 인스턴스화하여 특정 모듈 또는 레지스터의 클럭을 게이팅함으로써 수동으로 설계에 삽입된다(일반적으로 모듈 레벨 클럭 게이팅으로).
  • 자동 클럭 게이팅 도구에서 RTL에 반자동으로 삽입된다. 이러한 도구는 ICG 셀을 RTL에 삽입하거나 활성화 조건을 RTL 코드에 추가한다. 또한 일반적으로 순차 클럭 게이팅 최적화를 제공한다.

2. 2. 2. 수동 삽입

RTL 설계자는 라이브러리 특정 통합 클럭 게이팅(ICG) 셀을 인스턴스화하여 특정 모듈 또는 레지스터의 클럭을 게이팅함으로써 수동으로 설계에 삽입한다. 이는 일반적으로 모듈 레벨 클럭 게이팅으로 불린다.

2. 2. 3. 반자동 삽입

클럭 게이팅 로직은 다양한 방식으로 설계에 추가할 수 있다.

  • 레지스터 전송 레벨(RTL) 코드에 활성화 조건으로 코딩되어 합성 도구에서 클럭 게이팅 로직으로 자동 변환될 수 있다. (세밀한 클럭 게이팅).
  • RTL 설계자가 라이브러리 특정 통합 클럭 게이팅(ICG) 셀을 인스턴스화하여 특정 모듈 또는 레지스터의 클럭을 게이팅함으로써 수동으로 설계에 삽입된다. (일반적으로 모듈 레벨 클럭 게이팅).
  • 자동 클럭 게이팅 도구에서 RTL에 반자동으로 삽입된다. 이러한 도구는 ICG 셀을 RTL에 삽입하거나 활성화 조건을 RTL 코드에 추가한다. 또한 일반적으로 순차 클럭 게이팅 최적화를 제공한다.

2. 3. 순차 클럭 게이팅

순차 클럭 게이팅은 활성화 조건을 업스트림/다운스트림 순차 요소로 추출/전파하여 추가 레지스터를 클럭 게이팅할 수 있도록 하는 프로세스이다.

휴대폰, 웨어러블 장치 등과 같이 배터리 또는 매우 낮은 전력으로 작동하도록 설계된 칩은 여러 형태의 클럭 게이팅을 함께 구현한다. 한쪽 끝은 소프트웨어에서 수동으로 클럭을 게이팅하는 것으로, 드라이버가 주어진 유휴 컨트롤러에서 사용되는 다양한 클럭을 활성화하거나 비활성화한다. 다른 쪽 끝은 자동 클럭 게이팅으로, 하드웨어는 수행할 작업이 있는지 감지하고 필요하지 않은 경우 주어진 클럭을 끌 수 있다. 이러한 형태는 서로 상호 작용하며 동일한 활성화 트리의 일부일 수 있다. 예를 들어, 내부 브리지 또는 버스는 CPU 또는 DMA 엔진이 이를 사용해야 할 때까지 게이팅 해제되도록 자동 게이팅을 사용할 수 있으며, 해당 버스의 여러 주변 장치는 해당 보드에서 사용하지 않는 경우 영구적으로 게이팅 해제될 수 있다.

3. 응용 분야

주어진 원본 소스 자료가 없으므로, 클럭 게이팅의 응용 분야에 대한 내용은 이 섹션에 작성할 수 없습니다.



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com