임베디드 월드 2021로 가는 길에서: 에피소드 5

편집자 주: 임베디드 월드 2021(Embedded World 2021)을 앞두고 마련된 블로그 시리즈(총 5편) 중 에피소드 1에서는 임베디드 월드를 간략히 소개했습니다. 에피소드 2에서는 Randall과 함께 C 프로그래밍 언어를 살펴보았습니다. 에피소드 3에서는 객체 지향 프로그래밍을 사용하여 복잡성을 줄이는 방법에 대해 중점적으로 다뤘습니다. 에피소드 4에서는 빌딩 블록을 다시 구현하지 않고도 변화하는 요구 사항에 따라 재구성할 수 있어야 본질적으로 우수한 설계로 인정받을 수 있는 이유를 알아보았습니다. 마지막 블로그인 에피소드 5에서는 Randall의 임베디드 월드 2021 기조 발표에 앞서 운영 체제에 계속해서 더 많은 공간이 필요한지를 점검하고 시스템 분해에 관해 간략히 알아봅니다.

지난 게시글에서 시스템은 인터페이스 뒤에 정보를 숨겨야 하며 변경사항을 신속하게 반영할 수 있는 모듈로 분해되어야 한다는 David Parnas의 관점을 소개해 드렸습니다. Righting Software라는 저서에서 이러한 접근 방식을 현대적으로 수용한 Juval Löwy도 언급했습니다.

이러한 접근 방식은 오늘날 더 널리 사용되는 것으로 알려진 기능별 분해와 다릅니다. 하지만 Parnas의 접근 방식이 더 효과적이라는 명확한 증거가 있습니다. 그중 하나는 변경 사항을 반영하도록 설계된 시스템은 비교적 이해하기 쉽다는 점입니다. 이러한 시스템은 비교적 이해하기 쉽고 새로운 구현으로 재구성하기가 비교적 용이합니다. 이러한 시스템을 사용하면 비전문가가 다른 사람의 전문 지식에 접근할 수 있기 때문에 재사용률 증진에 있어 핵심적인 개념입니다. 또한 다른 사람들이 구상하는 것을 만들 수 있도록 지원하여 임베디드 엔지니어의 시장을 확대할 수 있습니다. 따라서 빌딩 블록을 다시 구현하지 않고도 변화하는 요구 사항에 따라 재구성할 수 있어야 본질적으로 우수한 설계로 인정받을 수 있습니다. 이렇게 다양한 핵심 사용 사례는 특정 사용 사례와 특정 요구 사항을 위해 설계된 빌딩 블록 간의 단순한 상호 작용입니다.

하지만 불행히도 이러한 접근 방식에는 책임과 위험이 따릅니다. 그중에는 비효율성과 폐기물이 포함됩니다. 시스템이 확장되면 자연히 제어가 어려워집니다. Nikita가 작성한 이 흥미로운 게시글을 읽어 보시기 바랍니다. 2020년의 53번째 주인 현재까지도 이 글이 게시되어 있습니다. Nikita가 작성한 내용은 다음과 같습니다.

”An Android system with no apps takes up almost 6 GB. Just think for a second about how obscenely HUGE that number is. What’s in there, HD movies? I guess it’s basically code: kernel, drivers. Some string and resources too, sure, but those can’t be big. So, how many drivers do you need for a phone?

Windows 95 was 30 MB. Today we have web pages heavier than that! Windows 10 is 4 GB, which is 133 times as big. But is it 133 times as superior? I mean, functionally they are basically the same. Yes, we have Cortana, but I doubt it takes 3970 MB. But whatever Windows 10 is, is Android really 150% of that?

2020년 11월에 발표된 Apple의 M1 칩에는 160억 개의 트랜지스터가 포함되어 있습니다. 오늘날의 기준으로 엄청난 수입니다. 임베디드 설계에 사용할 수 있는 큰 용량의 FPGA도 있습니다. 범용 컴퓨터 하드웨어 및 프로그램을 제어하기 어려워졌는데, 임베디드 분야에서도 같은 일이 벌어지고 있습니다.

디지털 신호 처리는 일찍이 1960년대에 개발되어 레이더 신호를 처리하는 데 사용되었습니다. 마이크로 프로세서와 프로그래밍 가능 논리가 등장하기 전이었습니다. 그때부터 다른 누군가가 개발한 기능, 즉 FPGA 벤더와 부가 가치 리셀러의 IP 블록과 다양한 소프트웨어 라이브러리를 활용하기 시작했습니다. 이로 인해 생산성이 증대되었지만 솔루션의 크기도 커졌습니다. 문제는 애플리케이션에 포함된 기능이 전부 필요하지 않을 수 있으며 포함된 모든 기능(사용하는 IC에 제조업체가 내장한 테스트 도구 등)을 잘 알지 못할 가능성이 크다는 것입니다. 모듈화된 기능을 묶어 최종 제품에 추가하기가 더 용이해졌습니다. 솔루션을 구현하는 데 더 오랜 시간이 소요되기 때문에 더욱 견고한 솔루션을 개발하는 것은 효율적이지 않습니다.

이전 게시글에서 코끼리와 쥐의 아키텍처는 기본적으로 동일하다는 Löwy의 말을 언급했습니다. 이 말은 인간의 DNA는 바나나(90%)와 초파리(95%)의 계보 대부분을 포함하고 있다는 사실을 떠오르게 합니다. 이러한 유전자 계보를 가지고 있으면서도 이를 의식하지 못합니다. 이러한 현상이 임베디드 시스템에 일어나고 있습니다. 즉시 사용 가능한 기능이 들어 있는 추가적인 짐을 들고 있는 것입니다. 우리는 IT 부서에서 개발한 것처럼 보이는 프레임워크(예: Microchip의 Harmony, Texas Instruments의 xDAIS, NXP의 MCUXpresso 등)를 사용하여 임베디드 시스템을 설계하고 있습니다.

최근에 EE Journal에 수록된 Kevin Morris의 기사를 읽게 되었는데, 그 내용은 다음과 같습니다.

“Neither Xilinx nor Altera/Intel, despite hovering around 80% combined FPGA market share for the last couple of decades, has shipped the most FPGA devices. That distinction goes to Lattice Semiconductor, and not by a small margin. The reason, of course, is that, in recent years, Lattice has focused on the mid-range and low-end segment of the market, while the better-known programmable logic companies have struggled for supremacy in the largest, most expensive FPGAs, FPGA-SoCs, and similar components.

This strategic emphasis on lower-cost, higher-volume sockets has helped Lattice deliver billions of FPGAs into a wide range of systems across numerous market segments. And, as the capabilities of FPGA technology have increased, Lattice has drafted behind the big two, bringing technology that was considered high-end just a few years ago into much more cost-constrained applications, and then they have taken the technology in new directions with pre-engineered solutions that significantly lower the bar for engineering teams without vast FPGA expertise to take advantage of the technology.”

DigiKey 검색창에 “마이크로 컨트롤러”를 입력하면 87,000종 이상의 기기가 검색됩니다. “FPGA”를 입력하면 25,000종 이상의 기기가 검색됩니다. 그림 1을 살펴보겠습니다. 고객이 구매한 마이크로 컨트롤러의 종류가 나타나 있습니다. 가장 큰 기회는 저사양 8비트 시장을 겨냥하는 것임을 알 수 있습니다. 현재의 ARM과 RISC-V 시대에 놀라운 결과일 수도 있겠지만 Lattice에 관한 기사 내용과 일치합니다.

그림 1: 마이크로 컨트롤러 유형별 인기도

임베디드 엔지니어로서의 당면 과제는 기능을 부풀리고자 하는 유혹을 떨쳐내는 것입니다. 현재는 Microchip에 소속된 부서인 Microsemi로 변경된 Actel에는 게이트 고블러(Gate Gobbler)라는 툴이 있었습니다. 아직도 존재하는 것으로 알고 있습니다. 이 툴을 사용하면 불필요한 논리가 삭제됩니다. 사용자가 불필요한 기능을 삭제할 수 있도록 이러한 툴을 부활시켜야 할지도 모릅니다.

임베디드 월드(Embedded World) 프레젠테이션에서는 Parnas의 접근 방식을 사용한 시스템 분해의 예시를 소개하고 임베디드 엔지니어를 위한 시장이 어떻게 확대되고 성장하고 있는지 보여드릴 예정입니다. 또한 초심자와 전문가 모두를 위해 다른 회사의 기능을 사용하는 경우의 복잡성을 줄이는 관점을 살펴보겠습니다. 이러한 기회를 통해 밝은 미래를 보장할 수 있음을 보여드리려고 합니다. 그리고 프로그래밍 가능 논리 기업들로 인해 시장이 어떻게 타격을 입었는지, 이를 해결하기 위해서는 어떻게 해야 하는지 알아보겠습니다.

기업에는 가장 많은 잠재 고객이 제품을 사용할 수 있도록 하는 것이 중요합니다. 제가 일을 시작한 지 얼마 되지 않아, 한 미국 자동차 회사에서 대규모 정리 해고가 있었습니다. 당시 한 기사에 따르면, 해고된 직원 중 에디슨, 포드, 다빈치와 같이 혁신적인 발명을 할 수 있었을 직원이 여러 명 포함되었을 가능성이 높습니다. 이 숙련되지 않은 대규모 시장에서 이러한 새로운 발명가가 나오게 될 것입니다. 이들이 우리의 전문성을 성공적으로 활용할 수 있도록 해야 합니다.

작성자 정보

Image of Randy Restle

Randall Restle은 전자 부품 업계에서 40년 넘게 경력을 쌓아왔습니다. 현재 현직에서는 은퇴했으며, DigiKey에서 응용 분야 엔지니어링 부문 부사장을 역임했습니다. 숙련된 응용 분야 엔지니어, 기술자 및 관리 인력으로 구성된 팀을 이끌며 독창적이고 고유한 고급 기술 제품을 개발하도록 하는 등의 직무를 수행했습니다.

개인적으로 관심 있는 분야로는 디지털 신호 처리, 프로그래밍 가능한 로직 구현, 동작 제어 개선 및 소프트웨어 설계 등이 있습니다. 다양한 업계에 걸쳐 특허를 보유하고 있으며, IEEE의 수석 회원입니다. Randall은 신시내티 대학에서 BSEE, MS, MBA 학위를 취득했습니다.

More posts by Randall Restle
 TechForum

Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.

Visit TechForum