임베디드 시스템

최근 편집: 2018년 8월 28일 (화) 07:29
현대적 임베디드 시스템의 예: ADSL 모뎀/라우터 내부. (4) 마이크로프로세서, (6) RAM, (7) 플래시 메모리.

임베디드 시스템(영어: embedded system)은 전기밥솥에서 공사용 크레인에 이르기까지 다양한 기계에 포함되어 기계를 실시간으로 제어하는 전자 부품과 소프트웨어를 통칭한다. 기계의 일부로 "내장"되었다는 의미에서 "임베디드"라고 불린다.

일반적인 컴퓨터와는 다르게 범용성이 목적이 아니라 그 기계 전용으로 만들어져 필요한 기능만 수행하도록 되어있다. 기계가 정확하게, 에러 없이, 사용하는 그대로 작동하는 것이 중요하기 때문에, 실시간 반응성과 신뢰성에 비중을 높이 둔다. 그러나 원격 조정, 소프트웨어 업그레이드 등의 목적으로 범용적인 구성으로 만드는 경향 또한 존재한다.

개인용 컴퓨터는 하드 디스크와 같은 대용량 저장장치에 운영 체제를 내장하고 있다. 그에 반해, 임베디드 시스템은 운영 체제와 응용 프로그램들이 롬(플래시)에 이미지 형태로 저장되어 있다가 시동과 동시에 램 디스크를 만든 다음, 램 디스크 위에 운영 체제와 응용 프로그램들이 구성되고 구동되는 시스템도 있다. 마이크로컨트롤러DSP 등의 프로세서 코어를 일반적으로 장착한다. 마이크로컨트롤러는 규모가 작은 시스템에 사용하므로 보통 운영 체제를 포함하지 않는 경향이 있다면, 임베디드는 좀 더 규모가 크기 때문에 운영 체제(윈도우 CE, 또는 리눅스 커널)가 시스템에 포함된다. 이 운영체제 위에 특수한 기능만을 수행하도록 응용 프로그램이 장착되어 동작하는 경향이있다. 예를 들어 같은 ARM 칩이라도 마이크로컨트롤러는 한 칩에 메모리(플래시, RAM)을 포함하고 기타 하드웨어(타이머, UART, SPI, ADC 등 필요에 따라 장착)를 포함한다. 여기서 메모리는 용량이 크지 않기 때문에 운영체제를 포함하기에는 한계가 있다. 그러나 임베디드 시스템에서는 하드웨어는 한 칩내에 장착하지만, 칩 밖에 많은 용량의 메모리를 장착하고 PCB에서 연결하는 것이 일반적이다. 이것은 시스템이 크기 때문에 용량이 큰 메모리를 시스템에 장착할 필요성이 있기 때문이다.

일반적으로 "임베디드 시스템"이란 용어는 엄밀하게 정의된 것은 아닌 것이, 대부분의 시스템은 어느 정도의 확장성 또는 재프로그램 능력을 갖추고 있다. 예를 들어 수첩형 컴퓨터는 임베디드 시스템과 유사한 운영 체제와 마이컴을 사용할 수 있지만, 다른 응용 프로그램을 읽어들이거나 다른 주변장치를 연결하는 것이 허용된다. 더 나아가서 재프로그램성을 주요 기능으로 드러내지 않는 시스템도 보통 소프트웨어 갱신을 지원할 필요가 있다. "범용" 과 "임베디드" 사이의 연속체 속에서 대형 응용 시스템은 한두 가지 기능 전용으로 설계되었다 하더라도 부품 수준에서 범용 요소를 대부분 가지고 있다.