BLOG

Embedded System_내장형 시스템

2021-11-29


내장형 체계로서 기계장치를 사용하기 위해 기계 ‘내부에 탑재된’ 컴퓨터를 뜻한다. 이를 넓은 의미로 정의하자면, 특정 목적을 가지고 만들어진 프로그래밍 가능한 모든 컴퓨터를 의미한다. 전화기, 냉장고, TV, FAX 등은 각자의 기능을 수행하기 위한 마이크로 컨트롤러를 가지고 있으며, 이것들이 프로그래밍 가능할 경우 특수한 목적을 수행하기 위한 컴퓨터이므로 임베디드 시스템이라고 할 수 있다.


주요 특징

프로그램 최적화

임베디드 시스템은 하드웨어의 성능이 열악하기 때문에 가장 압축된 코드만으로 최고의 효율을 낼 수 있어야 한다. IT 업계 중 가장 효율적인 코딩을 요구한다. 특히, 여러 제품들에 임베디드 시스템을 내장할 경우, 더욱이 프로그램의 최적화가 필요하다. 이 때문에 아직도 어셈블리어가 현재도 현역으로 사용되고 있으며 더 좋은 성능의 알고리즘과 메모리 등의 자원 역시 절약의 필요성이 크다. 이 때문에 사용 가능한 프로그래밍 언어에도 제약이 많다. 대부분의 제품들은 C를 쓰며 대형 프로젝트에는 C++, 성능이 지나치게 부족한 하드웨어에는 어셈블리어를 쓴다.


복잡한 알고리즘

마이크로프로세서에 의해 수행되는 명령은 아주 정교해야 하는 경우가 있다. 예를 들어, 자동차를 컨트롤하는 ECU 마이크로프로세서의 경우, 차의 연비를 높이면서도 이산화탄소 배출을 최소함으로서 차의 퍼포먼스를 높이기 위한 복잡한 알고리즘 연산을 수행해야 한다.


GUI 유저 인터페이스

여러 선택지를 가진 유저 인터페이스를 컨트롤하기 위해 자주 사용된다. 대표적인 사례로는 GPS를 사용한 내비게이션이 복잡한 유저 인터페이스가 있다. 프로그래밍 언어와 바인드된 전용 UI/UX 디자인 빌더 및 XML 등의 디자인 언어가 별개인 경우와 declarative UI와 같이 하나의 프로그래밍 언어에서 디자인 클래스까지 하나로 통합되어 가고 있는 추세이며 프로그램과 UI/UX 디자인이 분리되는 것이 아닌 프로그래밍이 UI/UX를 지배해 가고 있다. 거기에 UI/UX의 그래픽 디자인 요소 역시 동일한 프로그래밍 언어에 의해 결합되어 별개의 테마 패키지로 추가 시키고 있다.


실시간 처리 지원

많은 임베디드 시스템의 경우 Realtime process를 수행하는 것이 중요하다. 어떤 데이터가 데드라인 안에 준비되지 않으면 시스템은 멈추기 때문이다. 1997년 화성에 착륙한 탐사선 마스 패스파인더는 착률 후 화성의 기상 정보를 지구로 전송하는 과정에서 우선 순위의 역전이 생기는 바람에 데이터들이 제 시간 안에 처리되지 못했고, 이상을 감지한 시스템은 스스로를 리셋했다. 이후 다시 기상 정보를 수집해 지구로 보내는 과정에서 같은 일이 반복해서 발생하면서 탐사 임무를 제대로 수행하지 못한 일이 발생한 적이 있다.


멀티레이트 (Multirate)

이 실시간 작업은 하나만 수행되는 게 아니라 여러 개가 동시에 일어나기도 한다. 임베디드 시스템은 어떤 것들은 Slow rate로, 어떤 것들은 fast rate로 수행되도록 동시에 컨트롤해야 한다.


하드웨어 지식

펌웨어를 포함하는 임베디드 시스템은 시스템 회로에 대한 지식이 필수적이다. 임베디드 프로그램 파트와 회로 파트의 업부가 분리되어 있는 경우가 있는데 주로 회로 파트의 경력을 거쳐 펌웨어 임베디드 시스템으로 범위를 넓혀가는 것이 정석이다.


출처 : 나무위키 / 위키백과

사업자등록번호 : 611-81-29261ㅣ업태 : 정보통신업ㅣAI 빅데이터 전문 솔루션 ㅣ 대표 : 서대호

주소 : 서울특별시 금천구 가산디지털2로 108,  뉴티캐슬 1210호 
문의  02-857-5510   /   FAX  02-857-5520   / 이메일  cs@elesther.net