최근 수정 시각 : 2017-09-12 15:30:42

임베디드 시스템

파일:나무위키프로젝트.png
이 문서는 나무위키 컴퓨터 프로젝트에서 다루는 문서입니다.
해당 프로젝트 문서를 방문하여 도움이 필요한 문서에 기여하여 주세요!

1. 정의2. 특징

1. 정의

넓은 범주에서 정의하자면, 일반적인 목적으로 만들어진 컴퓨터가 아닌, 특수한 목적을 가지고 만들어진 프로그래밍 가능한 모든 컴퓨터를 의미한다. PC는 임베디드 시스템을 구축하는 데 사용되긴 하지만, 그 외에도 수많은 용도로 사용될 수 있으므로 그 자체로 임베디드 시스템은 아니다. 하지만 컴퓨터와는 달리 어떤 특수한 목적만을 수행하기 위해 만들어진상 컴퓨터들, 예를 들면 전화기, 냉장고, 텔레비전, FAX 등은 각자의 기능을 수행하기 위한 MCU를 가지고 있으며, 이것들은 특수한 목적을 수행하기 위한 컴퓨터이므로 임베디드 시스템이라고 할 수 있다.

2. 특징

성능은 일반 목적 컴퓨팅과 임베디드 컴퓨팅 양 쪽 모두에게 중요한 요소이긴 하지만, 임베디드의 경우 그것 말고도 신경써야 할 것들이 많다. 이 의미는, 임베디드 시스템은 일반 목적 컴퓨터에 비해 더 열악한 하드웨어 환경에서 더 정교하게 작동해야 한다는 뜻이다.
  • 유저 인터페이스
    여러 선택지를 가진 유저 인터페이스를 컨트롤하기 위해 자주 사용된다. GPS를 사용한 네비게이션이 복잡한 유저 인터페이스의 좋은 예이다.
여기다 임베디드 시스템을 더 복잡하게 만들기 위해(?) 일정 시간 안에 수행되어야 하는 데드라인을 만들기도 한다.
  • 실시간
    많은 임베디드 시스템의 경우 실시간으로 수행되는 것이 중요한데, 만약 어떤 데이터가 데드라인 안에 준비되지 못한다면 시스템이 멈춘다. 실제로 1997년 화성에 착륙한 탐사선 마스 패스파인더는 착륙 후 화성의 기상 정보를 지구로 전송하는 과정에서 우선 순위의 역전이 생기는 바람에 데이터들이 제 시간 안에 처리되지 못했고, 이상을 감지한 시스템은 스스로를 리셋했다. 이후 다시 기상 정보를 수집해 지구로 보내는 과정에서 같은 일이 반복해서 발생하면서 탐사 임무를 제대로 수행하지 못한 일이 발생한 적이 있다. #1
  • 멀티레이트(Multirate)
    이 실시간 작업은 하나만 수행되는 게 아니라 여러개가 동시에 일어나기도 한다. 임베디드 시스템은 어떤 것들은 slow rate로, 어떤 것들은 fast rate로 수행되도록 동시에 컨트롤해야 한다. 멀티미디어를 예로 들면, 스트리밍되는 오디오 부분과 비디오 부분은 서로 rate가 다르지만, 반드시 동기화되어야 한다.
  • 최적화(optimization)
    전자제품이라던가 여러 기계들이 고유의 목적을 위한 마이크로프로세서를 가지고 있게 되었지만, 그들이 가진 컴퓨터 능력의 한계가 있을 수 있다. 마이크로프로세서가 단가 문제 등으로 상대적으로 작은 크기이거나 기능이 적거나 할 경우. 여러 가전제품들에 임베디드 시스템을 넣기 위해선 프로그래밍의 최적화가 필요하다. 이 때문에 아직도 어셈블리어가 현역에서 돌아가는 것이며, 더 성능 좋은 알고리즘과 메모리 등의 자원 역시 절약의 필요성이 크다. 이 때문에 사용 가능한 프로그래밍 언어에도 제약이 많을 수 있다. 요즘이야 자바를 돌리는 머신이 구현된 보드도 나온다지만 [1], 대체로 대부분의 제품들은 보통 어셈블리어 혹은 C언어를 쓰며 대형 프로젝트에는 좀 더 나아가서 C++ 를 쓴다.

[1] 마이크로 어셈블러에서는 주어진 역할에 비하여 과도하게 성능을 올릴 필요도 없을 뿐더러 단가 문제와 덩치 때문에 당연히 안 쓰고, 중-고급의 네비게이션 같이 어느 정도의 크기와 성능에 여유를 두고 많을 작업을 수행할 때만 선택적으로 자바를 탑재한다

분류