Skip to main content

임베디드 설계의 판도를 바꿔 나가는 AI

글/브랜든 루이스(Brandon Lewis), 마우저 일렉트로닉스(Mouser Electronics)

 

인공지능(AI)은 임베디드 시스템을 설계부터 구현 가능한 기능에 이르기까지 모든 측면에서 재정의하고 있다.

이 글에서는 임베디드 시스템에서 AI가 큰 영향을 미치고 있는 세 가지 핵심 분야인 소프트웨어 개발, 하드웨어 설계, AI 기반 애플리케이션을 살펴본다. AI가 각 분야에 어떤 영향을 미치고 있는지를 분석하고, 최신 도구들을 소개하며, 이 새로운 설계 패러다임에서 성공을 위한 핵심 설계 원칙들을 짚어본다.

AR(임베디드)-1.jpg
(출처: btiger/stock.adobe.com; AI로 생성)

 

AI 기반 임베디드 개발: 더 스마트하고 효율적인 코딩

소프트웨어 도구는 AI 분야에서 가장 빠르게 발전하고 있는 영역 중 하나다. 그리 놀라운 일이 아닌 것이, 이는 코드 기반이 텍스트 중심이라는 점에서 대규모 언어 모델(large language model, LLM)이 자연스럽게 잘 맞기 때문이다. 하지만 단순히 코드 생성을 넘어서, AI는 문서화, 시각화, 테스트 등에서도 중요한 역할을 한다. 각 분야에서 나타나는 주요 흐름을 좀더 면밀히 살펴본다.
 

임베디드 시스템을 위한 AI 코딩 어시스턴트

초기에 AI 코딩 어시스턴트는 범용 프로그래밍 작업에 도움이 되는 수준이었지만, 이제는 상당히 발전해 임베디드 시스템 개발에서도 중요한 도구로 자리 잡고 있다. 깃허브 코파일럿(GitHub Copilot), 아마존 코드위스퍼러(Amazon CodeWhisperer) 같은 도구는 마이크로컨트롤러(MCU) 기반 개발에 적합한 코드를 제안할 수 있어 다음과 같은 작업에 이상적이다:

• 마이크로컨트롤러 아키텍처에 특화된 주변 장치 초기화 및 설정

• 이벤트 기반 시스템에 최적화된 인터럽트 핸들러

• 통합된 구성 요소 간의 데이터 교환을 위한 통신 프로토콜

이러한 발전은 이제는 AI 코딩 도구가 낮은 수준의 하드웨어 중심적인 임베디드 개발 과제에도 도움을 줄 수 있게 되었음을 의미한다. 그러나 이러한 이점은 도구를 올바르게 사용할 때만 실현된다는 점에 유의하고, 개발자는 다음 사항에 주의해야 한다:

• 대상 하드웨어에 대한 이해: AI는 전력 관리, 메모리 자원의 제약 등 시스템 고유의 특성을 완전히 이해하지 못할 수 있다.

• 생성된 코드의 검증: AI는 문법적으로 올바른 코드를 생성할 수 있지만, 해당 코드는 의도한 대로 동작하지 않을 수도 있다.

• 의존성에 대한 주의: AI가 생성한 코드는 임베디드 환경에 적합하지 않은 라이브러리를 포함할 수 있다.

이 글에서 반복적으로 강조하는 내용은, AI는 해박한 설계 엔지니어의 손에서 가장 효과적으로 작동한다는 점이다. 다시 말해, AI는 인간의 엔지니어링 역량을 대체하는 것이 아니라 강화하는 역할을 해야 한다.

 

자동화된 문서화 및 시각화 도구

통상적으로 문서화는 임베디드 개발에서 가장 시간이 많이 들고 자주 간과되는 작업 중 하나였다. 하지만 이제는 AI 기반 도구들이 기술 문서를 생성, 유지, 시각화하는 방식을 혁신하고 있다:

• 문서화: 독시전(Doxygen)과 같은 도구는 소스 코드에 포함된 구조화된 주석을 추출하여 API 문서를 생성하고, 코드 업데이트와 함께 동기화된 상태를 유지한다.

• 설명: 깃허브 코파일럿 챗(GitHub Copilot Chat) 같은 어시스턴트는 복잡한 함수들을 분석하여 코드의 이해를 돕는 요약문을 생성할 수 있다.

• 시각화: 멀메이드 차트(Mermaid Chart) 같은 플랫폼은 프로토콜의 타이밍 다이어그램 등 시각적 자료를 만들어 하드웨어와 소프트웨어 팀 간의 이해를 돕는다.

단, 이러한 도구들이 효과적으로 작동하려면 올바른 설정과 입력이 필요하다. 예를 들어, 독시전(Doxygen)은 특정 형식의 주석 작성 규칙을 따라야 제대로 작동한다.

또한 맥락 파악도 중요한 요소다. 자동화 도구는 숙련된 엔지니어라면 놓치지 않을 미묘한 차이를 간과할 수 있다. 따라서 생성된 문서는 특히 안전이 중요한 시스템에서는 반드시 세심하게 검토해야 한다. 문서화 오류는 심각한 결과로 이어질 수 있기 때문이다.
 

강화된 테스트 프레임워크

AI는 코드 테스트에서도 상당한 향상을 이끌고 있다. 에그플랜트 테스트 오토메이션(Eggplant Test Automation) 같은 프레임워크는 HIL(hardware-in-the-loop) 시뮬레이션을 지원해 개발자가 더 다양한 테스트 케이스를 만들어낼 수 있게 한다.[1] 더 폭넓은 테스트를 수행함으로써, 이러한 도구는 기존 테스트 방식으로는 놓칠 수 있는 전력 소비, 자원 활용, 경쟁 조건과 같은 문제점들을 찾아낼 수 있다. 예를 들면, 특정 타이밍 조건에서만 나타나는 문제를 탐지할 수 있다. 또한 테스트 엔지니어는 파라미터를 실시간으로, 그리고 동적으로 조정함으로써 코드를 지속적으로 개선할 수 있다.

그러나 이들 프레임워크는 인간의 창의성과 직관을 대신할 수 없다. 예를 들어, 탄소 배출 제로 설계와 같은 미묘한 개념을 처리하는 데 어려움을 겪을 수 있다.[2] 따라서 이 프레임워크의 효율을 극대화하기 위해서는 인간의 감독과 입력이 필요하다. 

하지만 이들 도구의 성능은 이들 도구가 학습하는 데이터의 품질에 크게 의존한다. 예컨대, 데이터의 품질이 낮으면 도구의 정확성과 신뢰성 역시 떨어진다.

 

AI 기반 설계: 부품 선택부터 프로토타이핑까지 효율화

소프트웨어 도구가 급속한 발전을 이루어 온 반면, AI는 하드웨어 설계 분야에서 그보다 훨씬 더 큰 변화를 가져왔다. 이제 설계 엔지니어는 부품 선택부터 시뮬레이션, 테스트에 이르기까지 다양한 단계에서 AI 기반 도구를 활용할 수 있다. 많은 경우, 이러한 도구는 기존에 엔지니어가 수작업으로 수행해 오던 일들을 대체하여, 설계 엔지니어에게 출시 시간 단축과 설계 최적화 측면에서 획기적인 개선 기회를 제공한다.

 

첨단 시뮬레이션 및 테스트

AI는 아날로그 회로 시뮬레이션에서 상당한 이점을 제공한다. 기존의 SPICE 시뮬레이터는 엔지니어가 매개변수를 수동으로 설정해야 한다. 이는 복잡하고 시간이 많이 소요되는 작업이다. 반면, 시놉시스 프라임심(Synopsys PrimeSim)과 지멘스 솔리도 설계 환경(Siemens Solido Design Environment) 같은 도구는 시뮬레이션을 자동으로 설정하고 잠재적인 문제를 예측한다. 이들 도구는 중요한 테스트 케이스를 식별하는 데 도움을 줄 뿐 아니라, 전력 공급망을 최적화하고 시스템 효율을 높일 수 있는 부품 값을 제안할 수 있다.

PCB 라우팅 최적화의 경우, 플럭스(Flux)와 딥PCB (DeepPCB) 같은 도구는 딥러닝을 활용해 설계 엔지니어의 전문성을 보완한다. 이러한 시스템은 다양한 구성 방식을 평가하면서 트레이스 배치가 신호 품질, 열 발산, 전력 전달에 미치는 영향을 분석할 수 있다.

단, 아날로그 시뮬레이션은 특히 민감한 특성을 갖고 있다는 점을 명심해야 한다. 예를 들어, 부품 값이나 동작 조건의 미세한 변화만으로도 회로 동작에 막대한 영향을 줄 수 있다. 따라서 이러한 도구를 효과적으로 활용하려면 탄탄한 아날로그 설계 기초 지식이 필요하다.

 

칩 설계 최적화를 위한 AI

AI는 FPGA 및 ASIC 설계 방식에도 혁신을 가져오고 있다. 이를 대표하는 도구로 시놉시스(Synopsys)의 DSO.ai가 있다. 이 도구는 여러 설계 목표를 동시에 최적화할 수 있어 설계자가 가장 효과적인 설계를 빠르게 도출할 수 있게 해준다.[3] 시놉시스에 따르면, DSO.ai는 생산성을 최대 3배 향상시키고, 다이 크기를 크게 줄이며, 전력 소비를 최대 15%까지 저감할 수 있다.[4]

하지만 이러한 도구의 잠재적인 단점은 해석 가능성이다. AI가 생성한 FPGA 및 ASIC 설계는 수동으로 분석하거나 수정하기가 어려울 수 있으며, 특히 전통적인 방식과 다른 설계가 제안될 경우 더욱 그렇다.

 

신속한 프로토타이핑 및 제조 통합

AI 기반 도구는 프로토타이핑과 제조 공정 또한 효율화하고 있다. 오토데스크 퓨전 360(Autodesk Fusion 360)과 같은 솔루션은 머신러닝(ML)을 활용해 부품 배치, 신호 무결성, 열 성능을 최적화함으로써 엔지니어가 설계를 더 빠르게 재현하고 개선할 수 있도록 돕는다. 엔지니어는 설계를 신속하게 조정하고 시뮬레이션을 실행하며 다양한 대안을 탐색할 수 있어, 개념 정의 단계에서 최종 제품까지의 소요 시간을 크게 단축할 수 있다.

AI는 제조 공정에서도 운영 장비의 성능과 효율이 자동화된 생산 워크플로우에 적절히 부합하도록 개선할 수 있다. 엣지 AI 개발 프레임워크도 성숙 단계에 이르면서 예방정비 기능의 광범위한 적용이 가능해지고 있으며, 이는 장비 효율성, 품질 관리, 운영 비용 최적화에 기여하고 있다.

 

엣지 AI 설계를 통한 예방정비 구현

AI 기반 도구가 개발 속도를 높이는 동시에, AI는 새로운 설계 가능성도 열어준다. 그중 가장 성숙한 활용 사례 중 하나는 예방정비로, 이미 수년 전부터 실제 현장에 적용되어 왔다. AI 모델이 마이크로컨트롤러 및 엣지 디바이스에 맞게 최적화됨에 따라, 임베디드 엔지니어는 이제 이전에는 프로세싱 능력이 부족했던 하드웨어에 지능형 기능을 직접 구현할 수 있게 되었다.
 

엣지 디바이스를 위한 자원 효율적인 AI 플랫폼

전통적으로 임베디드 시스템과 엣지 디바이스는 AI 알고리즘을 지원하는 데 한계가 있었다. 대부분의 머신러닝 모델은 이러한 자원 제약 환경을 고려해 설계되지 않았기 때문이다. 하지만 TinyML(TensorFlow Lite for Microcontrollers)과 엣지 임펄스(Edge Impulse) 같은 임베디드 AI 플랫폼이 등장하면서 상황이 달라지고 있다. 이들은 다음과 같은 주요 이점을 제공한다:

• 약 50KB 수준의 메모리만으로도 ML 모델을 실행할 수 있는 기능

• 모델을 양자화하고 최적화할 수 있는 종합적인 도구 제공

• 특정 MCU 아키텍처에 맞게 모델을 선택, 학습, 조정하는 간편한 워크플로우

하드웨어 또한 발전하고 있다. 점점 더 많은 마이크로프로세서와 MCU가 AI 실행을 지원하는 가속기를 내장함으로써, 비교적 낮은 사양의 시스템에서도 AI 실행이 가능해지고 있다.

 

AutoML을 통한 모델 최적화

엔지니어는 오토케라스(AutoKeras)와 같은 자동화된 머신러닝(AutoML) 도구를 활용해 모델 개발 과정을 더욱 간소화할 수 있다. 이러한 솔루션은 하드웨어 성능과 애플리케이션 요구사항에 따라 모델의 구조와 가중치를 신속하게 최적화할 수 있도록 지원한다. 다만, AutoML 도구는 반복적인 조정이 필요한 경우가 많기 때문에, 시스템의 대상 하드웨어뿐 아니라 AI와 머신러닝에 대한 전문 지식까지 요구된다.

엣지 AI 구현에서는 학습 데이터의 품질 또한 중요한 과제다. 흔히 발생하는 문제 중 하나는 데이터세트의 규모가 너무 작을 경우에 발생하는 과적합(overfitting)이다. 반대로, 모델이나 데이터세트가 지나치게 복잡한 경우에도 성능이 저하될 수 있다. 적절한 균형점을 찾는 일은 과학이자 동시에 예술이며, 모델 개발을 시작할 때는 숙련된 AI 전문가의 조언을 받는 것이 바람직하다.

 

예방정비 애플리케이션

산업용 애플리케이션에서 엣지 AI의 진가는 예방정비 분야에서 잘 드러난다. 대부분의 현대 산업 시스템은 진동, 전류 소비, 음향 신호 등 다양한 센서를 포함하고 있다. 예방정비 알고리즘은 이러한 모든 센서 데이터를 수집하여 분석하고, 장비 고장이 발생할 가능성을 나타내는 패턴을 식별할 수 있다.

AI는 문제를 감지한 후 작업자에게 경고를 보내며, 이를 통해 작업자는 고장 난 부품을 수리하거나 교체할 수 있다. 이 기능은 연합 학습(federated learning)과 결합될 때 더욱 강력해진다. 연합 학습은 분산된 로컬 데이터세트에서 모델을 학습시키고, 모델 업데이트만 중앙 서버로 전송하는 방식이다. 이러한 방식은 산업 현장에서 다음과 같은 여러 이점을 제공한다:

• 원시 데이터를 로컬에 유지함으로써 데이터 프라이버시 및 보안 강화

• 데이터 전송량을 줄여 규제 요건을 준수하기가 용이

• 데이터 전송에 따른 운영 비용 절감

엣지 프로세싱과 연합 학습의 결합은 시간이 지날수록 정확도가 향상되는 유지보수 시스템을 가능하게 하며, 보안이나 효율성을 떨어트리지 않고도 지속적인 성능 향상을 이끌어낸다.

 

설계와 개발의 지능화된 미래

AI는 전자 설계의 판도를 근본적으로 바꾸며, 개발부터 생산에 이르는 전체 과정에서 효율성과 생산성을 크게 향상시키고 있다. AI 기반 코딩 어시스턴트와 문서화 도구에서부터, 지능형 PCB 설계 최적화, 자원 효율적인 엣지 플랫폼에 이르기까지, 이 기술은 임베디드 시스템의 전체 라이프사이클에서 워크플로우를 재구성하고 있다.

하지만 AI는 기업이 무턱대고 도입할 수 있는 기술이 아니다. AI를 성공적으로 활용하기 위해서는 적절한 도구 선택과 그 한계에 대한 명확한 이해가 필요하다. 가장 효과적인 AI 활용은 반복 작업 처리, 광범위한 설계 공간 탐색, 눈에 띄지 않는 패턴 인식 등 AI의 강점을 잘 인식하고, 여전히 인간의 전문성이 필요한 영역과 조화롭게 통합할 때 이루어진다. AI는 언제나 인간의 지능과 결합될 때 가장 큰 효과를 발휘하며, 엔지니어를 대체하는 것이 아니라 엔지니어의 가능성을 확장하는 수단이 된다. 

 


 

출처

[1] https://www.keysight.com/us/en/assets/3124-1343/case-studies/Major-Automotive-Manufacturer-Chooses-Keysight-Eggplant.pdf

[2] https://www.cundall.com/ideas/blog/the-pros-and-cons-of-ai-in-design

[3] https://www.synopsys.com/ai/ai-powered-eda/dso-ai.html

[4] https://aws.amazon.com/blogs/apn/boost-chip-design-with-ai-how-synopsys-dso-ai-on-aws-delivers-lower-power-and-faster-time-to-market/