-
[전자공학] Clock gating공학/전자공학 2023. 8. 13. 14:34
글의 참고
- https://wh00300.tistory.com/120
- https://m.blog.naver.com/dong880510/140156794477
- https://coolenjoy.net/bbs/37/2656?sst=wr_datetime&sod=desc&sop=and&page=251&device=mobile
글의 전제
- 내가 글을 쓰다가 궁금한 점은 파란색 볼드체로 표현했다. 나도 모르기 때문에 나중에 알아봐야 할 내용이라는 뜻이다.
- 밑줄로 작성된 글은 좀 더 긴 설명이 필요해서 친 것이다. 그러므로, 밑 줄 처친 글이 이해가 안간다면 링크를 따라서 관련 내용을 공부하자.
글의 내용
- Clock gating 이란 ?
- Clock 공급 Gate를 통제함으로써 낭비되는 전력을 최소화 하는 기술이다. 정확한 설명은 CPU 내부를 작은 기능에 따라 작은 Block 단위로 묶고 사용하지 않는 Block에는 Clock을 공급하지 않는 방식이다. 예를 들면, Camera Module을 사용하지 않는 상황이라면 Camera Module과 관련된 CPU Block의 Clock 공급을 제거함으로써 사용하지 않는 CPU Block에서 발생하는 전력 낭비가 없어져 저전력을 구현할 수 있게 되는 것이다. 그리고 Clock Gating을 하면 부수적으로 해당 부분의 발열까지도 감소시켜 한 번에 두 가지 이익을 가져오게 된다. 단, Clock Gating을 사용하기 위해서는 CPU 내부 혹은 SoC( System-on-Chip )가 구조적으로 Clock Gating을 지원해야 한다.
- 프로세서의 전력 파라미터의 하나로 동기회로는 클럭이 들어가서 동작을 하게 된다. 그래서 동작 주파수가 높으면 그만큼 많은 동작으로 전력 소모가 늘어 날 수 있으므로 클럭을 차단하는 것으로 클럭이 차단된 회로는 기존의 정보를 담고 있으며 전력 소모를 줄일 수 있다.
- 아래 그림은 기본 논리 회로를 단순화 한 그림이다. 우선 대전제로서 최근 논리 회로는 '동기화 회로'로 구성되어있다. '동기화'라는 것은 '외부에서 입력되는 클럭 신호에 맞추어 데이터의 송수신을 한다'라는 의미다. 파이프 라인의 각 단계는 실제로 여러 게이트 회로(논리 회로)로 구성되어 있지만, 단계 전체가 하나로 간주 한 그림이다.
- 위 그림에서 빨간 테두리로 클럭이 공급되고 있다.
- 동기화 회로에서는 외부에서 데이터 입력(Input) 외에, 클럭 신호와 전원을 공급 받는다. 이 클럭 신호에 맞추어 데이터의 송수신을 하는 것이 동기화 회로이지만, 그 요소가 되는 것이 앞에있는 '래치'(Latch)다. 래치는 '값을 유지하는 회로'라고 생각하면 된다. Input에서 값은 시간 경과에 따라 변화하지만, 래치는 클럭 신호의 상승 시간에 Input값을 판단하여 그 값을 래치의 출력으로 하여 계속 유지한다. 이 래치의 출력은 다음 클럭 신호의 상승시기까지 어떠한 것도 변화하지 않는다. 또한 래치의 앞에는 실제 회로가 있지만, 이들은 클럭 신호를 사용하지 않는다.
- 클럭 게이팅은 위 그림과 같이 래치에 클럭 신호 공급 회로에 스위치를 끼우는 것으로, 래치에 클럭 신호의 공급을 중지 할 수 있도록 하는 방법이다. 클럭 신호의 공급을 중지하면 래치는 클럭 신호의 상승을 감지 할 수 없기 때문에, 래치에서 출력되는 신호는 변하지 않은 채로있다. 그렇게 되면 'Gate 0'에 입력이 변화하지 않기 때문에, Gate 0 출력(= Gate 1 입력)에도 변화가 없어 결국 Gate n까지 전혀 변화하지 않게 된다. 이 '변화가 없다'는 게 CMOS 회로에서는 매우 중요하다. CMOS에서 전압 상태를 유지하고 있기 때문이다. 예를 들어 'High'라면 2V, 'Low'라면 0V가 될 경우, 'High에서 Low'또는 'Low에서 High'라는 변화가 있으면, 전압이 0V에서 2V 또는 2V에서 0V로 변하게 된다. 이 변화에는 아무래도 전류가 흐르게 되는데, 이것이 CMOS 회로의 동작시 소비 전력(Dynamic Power)의 정체이다. 클럭 게이팅에 의해 작동이 멈춘다고 말하는 것은 모든 게이트가 전혀 상태가 변하지 않으므로 동작시 소비 전력은 '0'이 된다는 것이다. 여담이지만, CMOS 이전에 널리 사용되고 있었던 '바이폴라 회로'의 경우 상태를 '전류'로 유지했다. Low라면 0A, High라면 10mA라는 구조다. 이 경우 상태가 Low로 유지되면 전류는 흐르지 않지만, 상태가 High로 유지되면 전류가 흘러버려서, 전력 소비를 줄일 수 없다. 클럭 게이팅은 어디 까지나 CMOS 회로에만 사용할 수 있는 기법이다.
'공학 > 전자공학' 카테고리의 다른 글
[전자공학] GPIO mode (2) 2023.12.17 [전자 공학] Set-up time vs Hold-up time (0) 2023.08.16 [전자공학] Power gating (0) 2023.08.13 [전자공학] 전압강하 (0) 2023.08.07 [전자공학] Direction of electric current (0) 2023.08.07