임베디드 시스템은 이제 친숙한 기술이 되었다. 일반적으로는 임베디드 시스템이라는 명칭은 널리 알려지지는 않았지만, IPTV, 태블릿, 스마트폰, IoT의 발전으로 이미 많은 사용자들이 임베디드 시스템의 기능의 혜택을 받고 있다. 임베디드 시스템은 데스크탑 PC나 랩탑과 같은 일반목적용 컴퓨터와 조금 다르다. 특정한 기능을 주로 수행하게 설계되어 기능이 제약이 좀 있으나 데스크탑 PC와 비슷하거나 특수 목적용으로 쓰이기 위해 개발된 프로세서를 중심으로 작동하는 시스템이다.
인텔이 주력으로 하는 x86 CPU에 비해 비교적 간단한 연산에 특화되어 있고 응용프로세서를 쓰기도 하지만, 전용프로세서를 쓴다고 하기도 하며 마이크로프로세서와 마이크로컨트롤러로도 구분하는 중앙처리유니트를 지닌다. 태블릿에 쓰이는 안드로이드는 응용프로세서로 제작된 마이크로프로세서를 쓰는 임베디드 시스템이며 카메라 센서를 구동하는 임베디드 시스템은 마이크로컨트롤러로 작동할 가능성이 크다.
운영체제도 임베디드에 특화되어 개발된다. 리눅스처럼 지원하는 프로세서의 호환성이 있는 운영체제를 기반으로 해서 조금씩 튜닝을 해서 쓰는 경우가 많다. 응용프로세서로 작동하는 라즈베리파이의 경우 리눅스를 튜닝한 자체 운영체제를 제공한다. IPTV 셋탑박스의 경우에도 리눅스에 기반한 안드로이드 운영체제를 쓴다. 감시용 카메라는 대부분 마이크로컨트롤러가 지원되는 프로그램을 내장해서 작동할 것이다.
전세계적으로 널리 쓰이는 임베디드 시스템 전용 프로세서는 ARM 구조를 따르는 경우가 많다. 영국의 ARM Holdings사에서 설계한 RISC 기반의 마이크로프로세서와 마이크로컨트롤러를 라이선싱 받아 시스템 온 칩 (SoC) 방식으로 커스터마이징해서 기기에 탑재한다. ARM은 세상에서 가장 널리 쓰이는 아키텍처일 것이다. 수십억대의 기기들이 ARM으로 돌아가는 것 같다.
ARM 제품들은 여러가지 라인업이 있다. Cortex-A 시리즈는 응용프로세서로, 데스크탑 PC나 랩탑 PC에서 할 수 있는 것과 같은 유형의 작업을 처리한다. 더 높은 클럭 주파수로 작동하므로 연산에 강하고, 기억장치 관리 유니트(MMU)를 지원해서 윈도우즈 계열이나 모바일에 특화된 OS를 돌린다. 64비트도 개발되어 쓰인다. Cortex-R은 실시간 응용을 위한 라인업으로 MMU는 미지원이다. 자동차 브레이크 제어, 대규모 저장 장치 제어 등에 쓰인다. Cortex-M 시리즈는 마이크로컨트롤러 계열이다. 응용프로세서에 비해 기능은 비일반목적이지만, 다수의 보드와 주변장치를 접속하여 특수한 일을 수행하도록 할때 쓰인다. LCD 표시와 같은 기능을 시험하는데도 쓰인다.
라이선싱한 업체마다 조금씩 다르지만, 하나의 칩 안에 ARM 프로세서와 기타 기능을 하는 부품을 집적한다. 보안용 하드웨어 AES 처리 파트, AD 컨버터, 병렬 입출력 포트, 직렬 인터페이스, 데이터 버스, 플래시 메모리, SRAM, 디버그 인터페이스, DMA 컨트롤러, 메모리 보호 유니트 등이 집적되어 작동한다.
코어 및 기억장치 = 프로세서와 SRAM 데이터 기억장치, 명령어, 플래시 메모리를 포함한다. 직렬 인터페이스로 연결한 PC에서 외부 IDE로 프로그램한 소스코드를 전송하여 내장시키면 원하는 작업이 수행된다.
병렬 입출력 포트 = 다양한 병렬 입출력 처리를 한다. GPIO가 대표적이다.
직렬 인터페이스 = USART, USB, UART 등을 입출력하는 연결을 지원한다.
아날로그 인터페이스 (AD 컨버터 포함) = 센서들과 같은 장치 구동을 위해 아날로그-디지털, 디지털-아날로그 변환을 하는 회로다.
타이머 및 트리거 = 타이밍과 카운트다운 이벤트를 추적하여 출력 파형을 발생시키고 주변장치들이 시간에 맞추어 동작을 시작하도록 한다.
클럭 관리 = 클록과 발진기들을 제어한다. 전력소모를 낮추거나 시작 시간을 단축한다.
에너지 관리 = 저전력 모드를 구현한다.
보안 = 고급 암호화 표준을 하드웨어로 구현한 파트다.
데이터 버스 = 칩 상의 요소들을 연결한다.
주변장치 버스 = 프로세서 개입없이도 주변장치 모듈들이 서로 직접 통신하게 한다.
(이 항목 해설은 William Stallings가 저술하고 김종현님이 번역하신 책 참고했습니다)
종합하자면 ARM Cortex-M 시리즈 프로세서는 MCU의 일종으로 임베디드 시스템의 특수 목적용으로 고안된 프로세서 코어로, 라이선싱 받은 업체가 자사의 설계 의도에 맞게 시스템 온 칩(SoC) 구조로 패키징해서 쓰는 마이크로컨트롤러 제품군이다.