반응형
개발을 하거나 새로운 공고문 등을 보면 Embedded라는 단어를 쉽게 접할수 있다.
전공 CS 공부를 하거나 IT 지식 부분에서도 자주 등장하는 단어인 Embedded에 대해서 작성할 것이다.
우선 Embedded라는 말은 단독으로 사용되기보다는 시스템 이라는 단어와 합쳐져서 임베디드 시스템/소프트웨어 라고 불리곤 한다.
단어 그대로 직역을 하면
내장형 시스템/소프트웨어 라는 뜻으로, 시스템/소프트웨어 '내부에 탑재된' 컴퓨터를 뜻한다.
좀 더 쉽게 말하면
특정한 기능을 수행하기 위해 하드웨어와 소프트웨어가 내장된 전자 제어 시스템으로 컴퓨터
특징
- 하드웨어 지식
펌웨어를 포함하는 임베디드 시스템은 시스템 회로 및 관련 하드웨어에 대한 지식이 필수적이다. 펌웨어나 단순한 앱 프로그래밍 정도 알아서는 디렉팅 및 기획을 할수가 없다. 시스템 아키텍쳐, 아날로그 회로, 디지털 로직, 네트워크 통신, EMI/EMC, Safety, 프로토타입 제작, 메커니컬 디자인까지 알아야 한다. 즉, 하드웨어/펌웨어/소프트웨어 디자인을 모두 섭렵한 사람만이 임베디드 시스템 디자인이 가능하다. - 프로그램 최적화
임베디드 시스템의 디바이스들은 절제된 리소스를 사용하므로 메모리 리크, 힙/스택 관리 등과 함께 효율적 코딩이 필요하다. 같은 동작을 하는 앱을 일반 응용 소프트웨어 개발자가 작성한 코드와 임베디드 설계자가 작성한 코드를 비교해보면 임베디드 코드가 압도적으로 간결하고 정갈한 경우가 많다. 2010년대 중반에 접어들면서 마이크로프로세서의 성능 향상과 더불어 고급 라이브러리들이 많이 공개되면서 예전과 같은 어려운 코딩의 필요성이 줄어들었다. 플래시나 SRAM등 메모리 용량이 적은 로 코스트 칩 경우 프로그램 최적화가 중요한 편이다. - 주변 디바이스와 연관된 알고리즘
마이크로프로세서에 의해 수행되는 명령은 주변 디바이스를 직접 제어하기 때문에 안전성이나 정밀도 요구 사항이 더 높다. 자동차 엔진을 컨트롤하는 ECU 마이크로프로세서의 경우 차의 연비를 높이면서 공기 오염을 최소화함과 동시에 차의 퍼포먼스를 높이기 위한 복잡한 필터링 알고리즘을 수행한다.
실시간 처리 지원 - 임베디드 RTOS에서 말하는 실시간이란 빠른 실행을 의미하는 것이 아니라 어느 시간때 태스크가 실행됨을 파악할수 있음을 의미한다. Tick 타임과 Task Priority등의 태스크 스케쥴링이 특징이다. Async, 멀티 테스크/스레드, 멀티 코어 등의 Concurrent/Parallel 프로그래밍 기법이 필요하다. 1997년 화성에 착륙한 탐사선 마스 패스파인더는 착륙 후 화성의 기상 정보를 지구로 전송하는 과정에서 RTOS의 Priority Inversion 버그가 생기는 바람에 데이터들이 제 시간 안에 처리되지 못했고, Watchdog 타이머에 의해 시스템은 스스로를 리셋했다. 이후 다시 기상 정보를 수집해 지구로 보내는 과정에서 같은 일이 반복해서 발생하면서 탐사 임무를 제대로 수행하지 못한 일이 발생한 적이 있다. 이런한 태스크 우선순위 버그를 해결하기 위한 RTOS 프로그래밍 기법들이 있다. RTOS에는 무료인 freeRTOS와 유료인 Nucleus, VxWorks 등이 있다. Linux 또한 실시간 처리를 지원하고 있다.
- UX
특정 목적의 사용자 인터페이스를 디자인한다. 임베디드 시스템의 유져 인터페이스는 마이크로 컨트롤러 전용의 GUI 라이브러리를 사용하는 경우 또는 리소스가 넉넉한 시스템에서는 기존 OS의 어플리케이션 GUI 라이브러리를 사용한다.
멀티레이트(Multirate)
멀티 스트림등의 실시간 작업은 여러 개가 동시에 일어나기도 한다. 태스크 별로 slow rate과 fast rate로 수행되도록 동시에 컨트롤해야 한다. 멀티미디어를 예로 들면, 스트리밍되는 오디오 부분과 비디오 부분은 서로 rate가 다르지만, 반드시 동기화되어야 한다.
위에 대한 설명이 나온 위키 사이트 이다.
https://namu.wiki/w/%EC%9E%84%EB%B2%A0%EB%94%94%EB%93%9C%20%EC%8B%9C%EC%8A%A4%ED%85%9C
https://ko.wikipedia.org/wiki/%EC%9E%84%EB%B2%A0%EB%94%94%EB%93%9C_%EC%8B%9C%EC%8A%A4%ED%85%9C
오늘날에는 많은 전자/가전 제품에도 들어가있고, 이로 인해 사물인터넷과 연관지을수도 있다.
그리고 많은 단말기(스마트폰, 태블릿, 전자사전 등등), 오늘날 차량 등 많은 곳에서 사용이 된다.
반응형
'IT > Knowledge' 카테고리의 다른 글
유선과 무선 네트워크를 동시에 잡을 경우 (11) | 2024.08.20 |
---|---|
와이파이(Wi-FI) 2.4G와 5G의 차이 (18) | 2024.08.19 |
Go 언어란?(Go Lang) (4) | 2024.08.08 |
Netty 개념과 아키텍처 (14) | 2024.08.07 |
Apache Thrift(쓰리프트) (11) | 2024.08.04 |
댓글