전자제품 구동을 위해서 핵심 반도체로 쓰이는 MCU(Micro Controller Unit)에 대해 MCU 반도체 전문기업인 ST마이크로일렉트로닉스의 유지 카와노 매니저의 연재기고를 통해 전문적으로 알아보는 자리를 마련했다.
‘MCU’, CPU·메모리·보조 모듈로 독자적 기능 수행
동작수행 프로그램 필수, 메모리 데이터 저장
보조모듈, 통신·AD/DA전환·타이머 기능 수행
[편집자주]일반적으로 반도체라 하면 컴퓨터의 CPU와 메모리처럼 일반인에게 익숙한 반도체를 떠올리기 마련이다. 반면에 전자제품 구동을 위해서 핵심 반도체로 쓰이는 MCU(Micro Controller Unit)의 경우 일반적으로 우리가 쉽게 접하는 모든 전자제품에서 사용되고 있으면서도 일반인에게는 아직 낯선 반도체다. 이런 MCU가 최근 반도체 부족 사태로 인해 언론에 오르내리며, 일반인들에게 주목받기 시작했다. 이에 본지는 MCU 반도체 전문기업인 ST마이크로일렉트로닉스의 유지 카와노 매니저의 연재기고를 통해 MCU에 대해 전문적으로 알아보는 자리를 마련했다.
마이크로컨트롤러유닛(MCU)는 다양한 종류가 있다. MCU제조사의 설계 엔지니어들이 제품 개선을 위해 독창적인 기능을 다양하게 탑재하기 때문에 면밀히 살펴보면 다른 구조들을 갖추고 있지만 일반적 MCU 내부는 비슷하다.
MCU는 기본적으로 △프로그래머가 생성한 프로그램 코드를 읽는다 △읽은 프로그램을 처리한다 △프로그램 처리 후, 처리 결과를 MCU 외부에 출력한다와 같은 3가지 기능을 수행한다.
여기서 ‘출력(Output)’이란 MCU의 동작 수행을 의미하며, 데이터 표시, 적외선 신호 생성, 버튼 작동으로 데이터 불러오기, 시간 확인 또는 외부 IC와의 통신과 같은 기능 등을 포함한다.
이러한 기능들을 수행하기 위해서 MCU는 동작 수행을 위한 프로그램이 반드시 있어야 하며, 이 프로그램이 저장되는 장소를 메모리라고 부르는데, 프로그래머는 MCU가 사용되기 전 메모리에 프로그램(MCU가 처리할 명령)을 입력해야 한다.
이 프로그램을 처리하는 기능도 반드시 필요하며, 중앙 처리 장치(CPU)가 담당한다. 만약 프로그램이 매우 단순하다면 하나의 CPU가 전체 프로그램을 처리할 수 있지만 프로그램이 복잡하면 CPU는 명령을 처리하는 동안 일부 데이터를 임시로 저장할 수 있어야 한다.
메모리는 바로 이런 목적으로도 사용된다.
언급된 다른 명령과 적외선 신호 생성과 같은 일을 포함하는 MCU의 출력은 보조 모듈(peripheral module)에 의해 처리된다.
요약하면 MCU는 CPU, 일부 메모리 및 보조 모듈로 구성된다.
▲그림1. MCU의 내부 구조
그림1은 3개의 큰 블록으로 구성된 MCU를 간략하게 표시하고 있다. 메모리와 CPU는 명령과 데이터를 서로 주고받고, 프로그램 처리 결과에 대한 정보는 CPU와 MCU의 외부 인터페이스인 보조 모듈 사이에 교환된다.
데이터는 정보 전송 회로인 버스(bus)에 의해 위의 3개 블록들 사이에서 전송되지만 실제 MCU의 내부가 어떻게 작동하는지를 이해하려면 그 이상의 정보가 필요하다.
▲그림2. 더 자세한 MCU의 내부 구조
메모리는 여러 종류가 있다. 플래시 ROM, EEPROM은 변경되지 않는 데이터를 저장하기 위해 고안됐기 때문에 이 메모리들은 주로 변경 빈도가 아주 낮은 프로그램을 저장하는 반면 CPU의 운영 데이터는 사용 빈도가 상대적으로 높다. 이렇게 사용 빈도가 높은 데이터는 랜덤 엑세스 메모리(RAM)에 저장되게 된다.
CPU는 대체로 산술 논리 연산 장치(ALU), 레지스터 및 쉬프터 장치로 나눠진다. ALU는 산술 연산과 논리연산 처리를 수행하고, 쉬프터 장치는 데이터를 이동시킨다. 레지스터는 임시적으로 데이터를 저장하는데, 메모리에서 제거된 데이터가 동작할 때까지만 데이터를 임시 저장한다.
보조 모듈 장치에도 다양한 종류가 있다. 여기서는 커뮤니케이션(통신 모듈), AD/DA 전환, 타이머 기능 등과 관련된 보조 모듈을 다룬다.
커뮤니케이션 기능은 SPI, USART, 및 I2C와 같은 표준을 준수한다.
다른 표준들로는 오디오 전송만을 다루는 I2S와 USB, 그리고 많은 사람들에게 익숙한 인터페이스 커뮤니케이션 등이 있다.
AD/DA 전환을 위한 보조 모듈은 아날로그 데이터를 디지털 데이터로 바꾸는 AD 컨버터와(그림2의 ADC), 디지털 데이터를 아날로그 데이터로 바꾸는 DA 컨버터(그림2의 ‘DAC’)로 구성된다.
또한 아날로그 데이터를 비교하기 위한 컴퍼레이터가 포함된다. 타이머는 시간을 측정하기 위해 사용된다. 일부 고-기능 타이머는 입력 캡쳐, 토글 또는 PWM 기능을 갖추고 있다.
이제 MCU가 실제 사용될 때, 위에 언급된 기능들이 어떻게 작동하는지를 알아보자.
여기서 ‘MCU가 사용될 때’란 프로그래머에 의한 프로그램 생성과 MCU 외부와의 첫 정보 교환(데이터) 사이의 프로세스를 의미한다.
▲그림3. MCU 부품의 프로세스
그림3은 MCU 부품이 처리하는 다양한 프로세스를 설명하고 있다.