임베디드 시스템에서 소프트웨어와 하드웨어 간의 격차를 해소하여 비즈니스 성공을 달성하세요.
기술 솔루션의 설계 및 프로토타입 제작 단계는 일반적으로 길고 사업 성공에 매우 중요합니다. 이러한 프로젝트에는 초기 자본 투자가 많이 필요할 수 있습니다. 따라서 위험 부담과 기대치가 높습니다! 팬데믹으로 인한 배송 지연과 전자 부품 부족으로 여전히 어려움을 겪고 있는 상황에서, 많은 기업들은 시장에 진출하고 정해진 재고를 제때 공급해야 하는 엄청난 압박을 받고 있습니다.
애플리케이션이 종종 더 높은 처리 능력을 요구하기 때문에 하드웨어 리소스를 확보하기 위한 끊임없는 경쟁이 있습니다. 즉, 하드웨어는 초기에는 너무 크고 시간이 지남에 따라 노후화될 가능성이 높습니다. 따라서 기술 제품에 더 많은 하드웨어 기능을 지속적으로 추가하고 비용과 투자를 불필요하게 늘리기 위해 설계를 수정해야 합니다.
마지막으로, 임베디드 시스템, 하드웨어, 소프트웨어에 대한 전문 지식을 갖춘 숙련된 직원을 찾는 것이 항상 쉬운 것은 아닙니다. 일부 회사에서는 임베디드 시스템 경험이 없는 엔지니어가 기술 프로젝트를 주도하고 개발하기도 합니다. 따라서 이러한 시스템에 대한 익숙함과 다른 시스템과의 통합을 용이하게 하는 표준 기능 때문에 개발자 키트(Jetson Nano, Arduino, Raspberry PI)를 선택할 수도 있습니다. 개발자 보드는 고유한 산업용 응용 분야를 가지고 있으며, 이 블로그 게시물에서 이에 대해 자세히 알아볼 수 있습니다. 하지만 대량 생산에는 적합하지 않을 수 있습니다.
이러한 모든 요소는 언어 프로그래밍, 알고리즘 아키텍처, 그리고 전반적인 애플리케이션 소프트웨어 개발에 대한 결정에 부정적인 영향을 미칠 수 있습니다. 때로는 Stack Overflow 콜라주 코드를 사용하는 맞춤형 또는 특화된 운영 체제 대신 표준 운영 체제를 사용하는 것으로 결정되기도 합니다. 이는 미활용 리소스, 과도한 하드웨어 구성 요소, 불필요한 지연, 추가적인 재설계 또는 재인증 비용으로 이어집니다. 따라서 처음에는 비용 효율적인 솔루션처럼 보일 수 있지만, 나중에는 그렇지 않다는 것을 알게 될 수도 있습니다. 더 심각한 것은, 일반적인 운영 환경에서 하드웨어가 최대 성능으로 작동하면 발열, 평균 고장 간격(MTBF) 감소, 그리고 더 큰 수리 비용 증가로 이어질 수 있다는 것입니다.
알고리즘 아키텍처
기업들이 알고리즘 아키텍처를 구축하는 일반적인 경로를 분석해 보겠습니다. 안타깝게도 임베디드 시스템 엔지니어 중 일부는 아무런 계획이나 설계 없이 프로그래밍에 착수합니다. 문제는 알고리즘이 효과적인지 비효율적인지는 나중에야 알 수 있다는 것입니다.
이상적인 알고리즘의 두 가지 예를 살펴보겠습니다. 선형 알고리즘과 대수 알고리즘입니다. 각 기본 연산에 1초가 걸린다고 가정해 보겠습니다. 선형 알고리즘의 경우, 표 1에서 볼 수 있듯이 입력이 증가함에 따라 실행 시간도 증가합니다. 만약 이 알고리즘이 입력이 증가함에 따라 대수적으로 동작한다면, 실행 시간은 안정적으로 유지될 것입니다(표 2). 예를 들어, 이진 탐색 알고리즘은 대수적으로 동작합니다.
표 1. 선형 알고리즘의 입력과 실행 시간 간의 관계.
입력 |
실행 시간 |
10 |
0.00000001 |
100 |
0.0000001 |
1000 |
0.000001 |
1 000 000 000 |
1 |
표 2. 대수 알고리즘의 입력과 실행 시간의 관계.
입력 |
실행 시간 |
10 |
3.3E-09 |
100 |
6.6E-09 |
1000 |
1.0E-08 |
1 000 000 000 |
3.0E-08 |
이 두 가지 예는 알고리즘이 선형 또는 대수적으로 동작하는 경우가 거의 없기 때문에 실생활에서 흔히 발견되지 않습니다. "Stupid Sort" 알고리즘은 프로그래밍을 시작하기 전에 계획이나 설계를 수행하지 않았을 때 발생하는 결과의 예로 사용할 수 있습니다. 이는 팩토리얼 동작이 있는 카드 그룹에서 무작위 테스트를 기반으로 하는 구조화 알고리즘입니다(표 3). 100개의 입력이 있는 경우 3.2E+183년 동안 문제를 해결해야 합니다. NASA에 따르면 우주의 나이는 13,7E9년입니다. 즉, 우주가 생성된 날짜에 알고리즘을 실행해도 여전히 아무런 해결책 없이 실행됩니다. 하드웨어 리소스 낭비를 피하려면 "Stupid Sort" 알고리즘과 같은 팩토리얼 알고리즘은 사용하지 않는 것이 좋습니다.
표 3. 팩토리얼 알고리즘의 입력과 실행 시간 간의 관계.
입력 |
실행 시간 |
기간(년) |
10 |
10 |
3.171E-7 |
100 |
1.0E+191 |
3.2E+183 |
1000 |
? |
? |
1 000 000 000 |
? |
? |
사실, 하드웨어에는 한계가 있습니다. 일반적으로 임베디드 시스템의 시간 척도는 사람이 이해하기 어렵습니다. 따라서 이 분석을 위해 이해하기 쉬운 척도를 정의하겠습니다. 2014년형 일반 컴퓨터에 포함된 일반적인 3.9GHz 프로세서의 경우, 표 4에 표시된 시간으로 CPU 사이클 1회에 1초가 소요된다고 할 수 있습니다. 이 경우 하드 드라이브의 파일을 읽는 데 최악의 경우 1.5년이 걸리거나 RAM 메모리의 파일을 읽는 데 32초가 걸릴 수 있습니다. 보시다시피, 잘못 설계된 알고리즘은 리소스를 낭비합니다. 따라서 소프트웨어 개발 방식을 검토해야 할 때, 더욱 강력한 기능을 갖춘 하드웨어가 필요하다고 생각할 수 있습니다.
표 4. 이해하기 쉬운 규모로 나타낸 컴퓨터에서의 일반적인 프로세스 실행 시간.
활동 |
시간 |
인간적 척도 |
CPU 사이클 |
0.256나노초 |
1초 |
캐시 L1 |
1.026나노초 |
4초 |
캐시 L2 |
3.077나노초 |
12초 |
캐시 L3 |
6.154나노초 |
24초 |
RAM 메모리 |
8.4나노초 |
32초 |
하드 드라이브 - 최상의 케이스 |
2.9밀리초 |
132일 |
하드 드라이브 - 최악의 경우 |
12밀리초 |
1.5년 |
SDD |
85μs |
3일 20시간 |
문맥 변경 |
10μs |
10.8시간 |
양자 |
100밀리초 |
12.4년 |
기술 제품을 개발할 때 어떻게 사업적 성공을 달성할 수 있나요?
신중한 알고리즘 아키텍처를 구축해야 합니다. 임베디드 시스템 경험이 풍부한 엔지니어를 최소 한 명 이상 포함한 팀을 구성해야 합니다. 이 전문가는 특정 하드웨어에서 실행되는 알고리즘을 설계하는 데 가장 적합합니다. 이 전문가는 기본적으로 하드웨어에 가장 적합하도록 소프트웨어를 개선합니다(반대로 하드웨어에 최적화하는 것이 아닙니다). 이를 통해 투자 수익률(ROI)을 높이고 운영 및 제조 과정에서 발생하는 많은 문제를 해결할 수 있습니다.
임베디드 시스템 엔지니어는 소프트웨어 개발 시 흔히 발생하는 실수를 방지하기 위해 전략을 수립하고, 계획하고, 프로그래밍하며, 하드웨어 성능을 예측할 수 있습니다. 이를 통해 어려움을 줄이고 사업 성공을 더 쉽게 달성할 수 있습니다. 누가 알겠습니까! 어쩌면 회사에서 인더스트리 4.0, 사물 인터넷, 로봇 공학, 이미지 처리 분야의 영웅이 될 수도 있습니다.
이 주제에 대해 계속 읽고 싶다면 다음을 확인하세요. 이 블로그 . 또한 이 페이지를 확인하세요 임베디드 시스템에 대한 자세한 내용은