임베디드 시스템이란 computer를 내장하고 있지만 general-purpose computer는 아닌 것을 의미한다.
general-purpose computer의 computation을 다룰 수는 있지만 더 약하다(less powerful). 또는 몇 개의 특정 operation만 수행할 수 있다.
그렇기에 general purpose computer에 비해 lower energy consumption이기도 하다.
임베디드 시스템은 특정 application에 최적화되어 디자인되는 경우가 많으며 general-purpose computer의 모든 기능을 구현할 필요가 없다.
임베디드 프로세서는 전체 마이크로프로세서 생산의 90% 이상을 차지하고 있다. 임베디드와 데스크탑의 비율이 100:1정도 됨.
high-end 자동차 한 대에 마이크로프로세서 100개 정도가 들어간다고 생각하면 정말 어마어마한 수준.. 우주 탐험할 때 쓰는 path finder같은 기계에도 다 들어간다고 함.
당연히 가격이 낮을 수록 좋다. 여기저기 많이 넣어야 하는데 가격이 높으면 안됨.. 말모말모~
성능이 general-purpose computer만큼 좋을 수는 없지만 어느 정도의 성능은 만족해야 함(throughput
). 그리고 real-time deadline을 충족해야함(latency
). 반드시 특정 시간 내에 어떤 동작이 수행되어야만 하는 조건이 있다면 그 조건을 만족시켜주어야 한다는 것임!
Mobile이나 portable system에 사용될 것이기 때문에 크기와 무게가 작을 수록 이득! 여기저기 들어가야 하는데 크고 무거우면 답이 없다..
battery capacity가 높아서 적은 전력으로도 오래 동작할 수 있으면 좋고 cooling limit이 있으면 좋다.
어떤 환경에서 동작해야하는지가 중요한데, 온도에 민감할 수도 있다. -40도에서 125도, 혹은 그 이상의 환경에서 동작해야 한다면 이를 충족해야 한다.
logic을 custom해서 lower power로도 동작할 수 있게 만들 수 있다. low-power electronic circuit을 이용하면 된다. 적은 전력의 회로만 사용해서 전체 전력 소모를 줄이는 것.
이전에 제작된 마이크로프로세서보다 현대에 만들어진 modern processor가 power consumption을 줄이는 데에 도움을 줄 수 있다.
CMOS
). 대신 clock rate를 줄이면 시스템의 performance가 그만큼 떨어지게 된다. 전력소모를 줄이기 위해 CPU의 clock rate를 줄이는 방법은 현재 PC에서도 많이 사용되는 방법이다.소프트웨어 디자인이 power consumption을 줄이는 데에 도움을 줄 수 있다.
메모리 access를 줄이거나 external communication을 줄이면 전력을 아낄 수 있다.
시스템이 malicious attack를 방지할 수 있는 능력을 말한다.
과거의 security는 IT와 data security에 국한된 경우가 많았지만, 최근에는 임베디드 시스템이 와이파이 등을 통해 네트워크에 연결되는 경우가 많아지면서 외부에서 원격으로 접근하는 공격의 가능성이 커졌다. 특히 IoT(Internet of Things)는 많은 special security challenges를 유발한다.
시스템이 crash나 harmful releases of energy등이 없이 stable한 상태를 유지하는 능력을 말한다.
security issue없이 임베디드 시스템을 만들어도 언제든 crash가 날 수 있다면 그 시스템을 사용할 수 없다. 따라서 safety또한 무조건 챙겨야 한다.
safety와 security 모두 필요하며 이것은 나중에 추가해서 끼워넣을 수 없고, 시스템을 구현할 때 부터 고려되어야 한다.
ASIC(Application Specific Integrated Circuit)과 FPGA(Field Programmable Gate Array)가 있다.
ASIC은 작은 die안에 모든 logic을 다 우겨넣어야 해서 design cost가 높지만 생산 기술의 발달로 unit cost는 매우 낮다.
Software Running on Generic Hardware
라고 분류되어 있는 아래의 빨간 글씨 3개부터 C나 C++같은 것을 쓸 수 있다.
프로세스가 event에 응답하는 real-time system을 의미한다.
response time을 최소화 하는 것이 궁극적인 목적이다. 그렇지 않으면 전체 시스템이 제대로 동작할 수 없을지도 모르기 때문이다.
시스템이 요구된 특정 deadline 시간안에 반드시 응답을 해야하는 경우를 말한다.
flight control system이나 nuclear plant control 등이 이에 해당한다.
이러한 것들은 정해진 시간 내에 시스템이 수행되지 않으면 큰 문제가 발생한다. 전투기에 문제가 생겨서 조종사가 긴급탈출 시스템을 동작시켰는데 이것이 수행되지 않으면 조종사는 사망하게 된다.
deadline이 중요하긴 하지만 deadline이 때로 지켜지지 않아도 정확하게 동작하는 시스템을 말한다.
Data acquisition system, mobile communication등이 이에 해당한다.
모바일로 웹페이지를 볼 때 때로 웹페이지가 늦게 떠도 사용하는 데에는 크게 지장이 없고, 그런 경우에는 새로고침을 하는 경우도 있다. 하지만 그런다고 해서 특별히 사용에 문제가 생기지는 않기 때문에 이것은 soft real-time에 해당하는 것이다.
soft real-time system과 비슷하지만 deadline이 지켜지지 않는 경우 그 서비스 자체의 의미가 사라지는 시스템을 의미한다.
video playing, voice call등이 이에 해당한다.
우리가 유튜브 동영상을 볼 때 전송이 느려지만 화질이 깨지지만 그래도 전송이 되는 경우라면 이는 firm real-time이 아니라 soft real-time이다. 패킷 전송이 느리고 몇 개의 손실이 있었지만 그 정보 자체가 의미가 없는 것은 아니기 때문이다.
하지만 전화같은 경우에는 전화를 하다가 갑자기 시스템이 잠깐 끊기면 해당 시간 동안의 대화 내용이 누락이 되어버리고 시간이 흘러도 그 내용이 전달되지 않는다 (그저 방금 뭐라고 했어? 라고 물어볼 뿐이다). 이러한 경우는 firm real-time이라고 볼 수 있다.