brunch

You can make anything
by writing

C.S.Lewis

by 이경종 Mar 08. 2020

Ch2-4. 클럭? 주파수? MIPS?

클럭(Clock)? 주파수(Frequency)? MIPS?

컴퓨터 시스템에서 가장 기초가 되는 것들, 그리고 빈번하게 나오는 개념에 대해 정리해보자. 

우리는 이미 하드웨어 기초 파트에서 주파수에 대해 알아보았다. 이제 이 개념을 컴퓨터 시스템에 접목해보자.

클럭(Clock), 주파수(Frequency) 내지는 Clock Frequency, 그리고 MIPS 라는 단어는 더 이상 일반인에게도 생소한 것들이 아니다. 하지만 일반인이 아는 수준을 넘어서 실제 임베디드 엔지니어라면 기본적으로 알아야 하는 것들이 있다. 


클럭 주파수나 MIPS는 흔히 기기의 성능, 정확하게는 기기에 들어있는 메인 프로세서(CPU)의 성능을 나타내는 척도로 사용된다. 필자가 지금 사용하고 있는 스마트폰의 사양을 보니 옥타코어 1.5GHz라고 나온다. 몇 MIPS인지는 해당 프로세서의 데이터시트를 찾아봐야 알 수 있다.


클럭이 1.5GHz니끼, 정확하게 표현을 하면, 클럭 주파수(Clock Frequency)가 1.5GHz이고 클럭 당 시간(Clock Period)는 1/(1.5 X 1,000,000,000) == 0.67 nsec(nano second) 이다. 한 개의 클럭에 걸리는 시간이 0.67 나노세컨드라는 이야기다. 아래 그림으로 보면 쉽게 알 수 있다.

통상의 디바이스에서 클럭은 시스템 내부나 외부의 크리스탈(Crystal)로부터 베이스 클럭(Base Clock)이 만들어진다.(하드웨어 기초에서 크리스탈 배웠죠잉~?)


시스템 내부의 클럭 시스템(PLL / Clock Generator / Clock Divider)에서 이 베이스 클럭을 가지고 내부의 각각의 서브 모듈에 맞는 서브 클럭들을 다시 만들어낸다. 클럭은 시스템에 있어 기준이 되는 시간이라고 할 수 있다. 단일 디바이스부터 여러 디바이스들이 모여서 만들어진 커다란 에코시스템까지 클럭은 아주아주 중요하다. 이 클럭에 맞춰서 명령(Command)이 수행되고, 통신이 이루어지고 서로 동기화가 이루어진다.


그렇다면 이 클럭 주파수가 높다면 어떻게 될까?

단위 클럭 시간이 짧아지는 만큼 더 많은 명령을 수행할 수 있으니까, 성능을 높일 수 있겠죠잉?

상식적으로 단위 클럭 시간이 짧아지면, 그 시간에 동기화되어 동작되는 서브시스템들은 더 짧은 주기로 명령을 내보낼 수 있게 된다. 더 짧은 시간에 더 많이 움직이면 열도 많이 나고 부작용도 있을수 있다. 그래서 고성능 프로세서일수록 발열이 심하다. 이 발열을 잡는 것은 또 하나의 테크놀로지이다.


프로세서는 하나의 명령을 수행하는데 최소한 하나 이상의 클럭(Clock Cycle)을 필요로 한다. 프로세서의 종류에 따라서 명령 하나에 소요되는 클럭의 수도 다르다. 또한 동일 프로세서라도 특정 명령의 경우 소요되는 클럭의 개수는 각기 다 다를수 있다. 


MIPS(Million Instructions Per Second)는 프로세서가 1초에 수행하는 명령의 개수를 나타낸다.

그래서 클럭 주파수와 함께 프로세서의 성능을 나타내는 또다른 지표가 된다. 과거에는 클럭주파수와 MIPS 둘다 높으면 높을수록 성능은 좋아지는 것으로 생각되었지만, 현재는 꼭 그렇지만은 않다. 여전히 MIPS는 높은 것이 고성능으로 생각할 수 있겠지만, 클럭 주파수는 꼭 그렇지는 않다. 위에서 잠깐 얘기했지만 발열등의 문제로 이제 클럭 주파수를 높여서 성능을 증가시키는 기술은 거의 한계에 이르렀다. 근래에는 멀티코어를 쓴다던지, 병렬화(Parallelism) 기법으로 성능을 높이는 추세라고 할 수 있다.


임베디드 시스템의 클럭에 대해 조금만 더 들어가 보자.

앞에서 잠깐 언급했지만 하나의 임베디드 시스템 디바이스에는 여러 종류의 클럭이 존재한다.

CPU에서 필요로 하는 클럭과 그래픽 장치에서 필요로 하는 클럭이 같지 않다. 

왜냐? 둘의 성능이 같지 않기 때문이다.  

그럼에도 서로간의 통신이나 동기화를 위해 기준 클럭(Reference Clock)은 존재해야 한다.  

하나의 예로 CPU와 주변장치들끼리의 통신을 위해 사용되는 I2C 버스(BUS)는 100KHz 내지는 400KHz의 매우 낮은 클럭 주파수를 가지고 있다. 빈번하게 억세스되는 메모리의 경우, 2000MHz 정도로 빠른 클럭이 사용된다.


결국 클럭이라는 것은 단일 CPU의 내부 명령수행을 위해서이건, 외부와의 통신을 위해서이건 그 시간적 기준을 제공하는 불가결한 요소이다. 0과 1로 대변되는 디지털 세상에서 클럭은 모든 디지털 신호를 처리하는 데 있어 빈 악보와 같은 존재라고 할 수 있다. 그리고 그 악보의 앞이 4/4박자인지 3/4박지인지에 따라 시스템의 성능이나 처리시간들이 달라지게 된다.



       YES24 링크 교보문고 링크

작가의 이전글 Ch2-3. IC technology
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari