광범위한 복잡성과 엄청난 가격 압력 그리고 지속적으로 발전하는 기저 하드웨어를 요구하는 시장에서 살아남기 위해 애플리케이션은 강력하고도 유연한 플랫폼 상에 탑재되어야만 한다. 이러한 플랫폼은 추상적이면서도 동시에 특정 하드웨어 기능들을 최적화할 수 있어야만 한다. 이제 플랫폼을 정의하는 것은 프로세싱 아키텍처나 주변장치들의 집합이 아니라 개발자가 사용할 수 있는 프로그래밍 환경이다. 이를 달성하기 위한 윈도우나 안드로이드, iOS, 리눅스 등과 같은 표준적인 플랫폼들은 최소한의 하드웨어 요건 면에서 더 이상 내려갈 수 없는 한계에 부딪히고 있다. 이 같은 한계는 의료용 웨어러블 기기들의 가격, 전력 및 물리적 제약과 양립될 수 없다. 현재로선 이러한 요건에 맞는 유일한 선택은 고도의 적응 능력과 확장 능력을 갖춘 RTOS 환경뿐이다. RTOS 환경은 베어메탈을 대체할 수 있을 뿐만 아니라 완전한 기능을 갖는 운영체제의 보다 로엔드 부문과도 중첩될 수 있기 때문이다.
웨어러블 의료기기의 향후 기능들을 이용하기 위한 기법
글: 앤드류 케이플스, 멘토 그래픽스
http://www.mentorkr.com/
휴대용 의료기기의 착용이 우리의 일상생활 속에 완벽하게 녹아 드는 날이 올 것이다. 사실, 우리는 이러한 기기들을 더 이상 “장비”라기보다는 이들이 제공하는 종류의 서비스로 인식하게 될 것이다. 무선 커넥티비티의 끊임 없는 발전과 가능하면 외래환자 모델로 전환하려는 비용 상의 압력 때문에 예상되는 수요를 앞서가는 개발자들에게는 훌륭한 기회가 기다리고 있다.
물론 개발자들은 매우 엄격한 제조 요건들에 부응하지 않으면 안 된다. 웨어러블 의료기기는 크기가 작고 항상 인터넷에 연결되어 있으며 긴 배터리 수명을 가져야만 한다. 제공되는 기능들은 좁은 기기 안에 탑재 가능한 컴퓨팅 자원들을 항상 한계까지 밀어붙이게 될 것이다. 개발자들은 갈수록 복잡성이 증가하는 경쟁 치열한 시장에서 살아남아야만 한다. 그러기 위해서는 빠르고 유연하며 가볍고 비용 효율적인 플랫폼을 기반으로 하지 않으면 안 된다(그림 1).
그림 1: 소프트웨어 플랫폼은 애플리케이션 특정적이지 않은 모든 코드를 망라해야만 한다.
장비 프로파일
웨어러블 의료기기는 크게 일회용과 재사용 가능형의 두 가지 범주로 나누어진다. 일회용 기기는 비교적 새로운 시장 부문으로서, 이러한 기기들의 제품 수명은 비교적 짧기 때문에 빠르게 발전할 수 있다. 이와는 반대로, 재사용 가능형 기기는 훨씬 긴 수명주기와 보안성은 물론 높은 신뢰성 계수를 필요로 한다.
일회용 분야의 기기들은 박리다매의 경제학에 의해 움직인다. 그러기 위해 일회용 기기들은 자원제약이 극히 심한 프로세서들로부터 최대한의 기능성을 끌어내지 않으면 안 된다. 수익을 극대화하기 위해서는 다양한 최종 사용자들을 겨냥한 일련의 제품들을 갖춤으로써 가격과 기능을 절충하는 것이 일반적이다.
제품 기능 범위의 각 단계마다 이를 위한 애플리케이션을 작성한다는 것은 전혀 경제적이지 못하다. 따라서 단일 애플리케이션 기반을 지원하되 일련의 컴퓨팅 자원들 전반에 걸쳐 매끄럽게 옮겨갈 수 있는 공통의 소프트웨어 환경을 갖춰야만 한다. 이 같은 환경은 종종 매우 작은 메모리 자원만을 가지고 있는 가장 미니멀리즘적인 시스템에 이르기까지 규모를 축소할 수 있으면서도 보다 폭 넓은 기능들을 지원할 수 있도록 확장 가능해야만 한다.
재사용 가능형 제품 시장에서는 이와 다른 일련의 문제들에 직면하게 된다. 기기 제조업체가 시장에 제공하는 중요한 부가가치는 최종 고객을 때이른 프로세서의 단종으로부터 보호할 수 있는 능력이다. 반도체 벤더들은 이들이 지원하는 기기의 수명 주기 동안에 커다란 변화를 겪는다. 반면에 의료 분야의 고객들은 제품 교체 서비스가 십 년 이상의 기간에 걸쳐 지원되기를 기대하는 경우도 많다. 이처럼 이해가 상충되는 상황을 견뎌내면서도 수익성 유지를 위해 필요한 애플리케이션 코드의 긴 수명을 유지할 수 있으려면 특정한 프로세서 디바이스가 아니라 안정적인 프로그래밍 API를 개발해야 한다.
커넥티비티 옵션
기기를 착용할 수 있을 정도로 작게 만들 수 있는 능력은 이미 오래 전부터 실현되어 있었다. 과거와 현재 사이의 흥미로운 차이점은 전세계적인 커넥티비티를 제공할 수 있는 능력에 있다. 이는 인터넷(이나 클라우드)에 직접 연결되거나 중개 역할을 하는 로컬 장치(사용자의 스마트폰에 페어링된 의료용 웨어러블 기기)를 통해 궁극적으로는 인터넷에 연결된다. 이러한 커넥티비티는 무선이나 일시적인 유선 연결을 이용한 간헐적인 것일 수도 있고, 사용 가능한 수많은 무선 옵션 중 하나를 이용해 끊임없이 제공되는 것일 수도 있다.
유선 옵션이 가장 저렴한 방법이지만 유연성 면에서는 가장 제한적이다. 하지만 저가형 기기에 있어서는 여전히 경쟁력 있는 솔루션이다. 웨어러블 시스템의 벤더가 제공하는 다른 기기에 유선 링크를 통해 연결할 경우에는 SPI나 I2C와 같은 극히 간단한 방법들을 사용할 수 있다.
반면에, 일반적으로 사용 가능한 컴퓨팅 장치에 연결하기 위해서는 USB와 같이 보다 개방적인 표준이 필요하다. 이처럼 서로 다른 방법들을 사용해본 엔지니어라면 USB와 다른 보다 간단한 방법들 간의 프로토콜 복잡성이 크게 차이 난다는 점을 알고 있을 것이다. 이러한 선택은 기기의 수명 기간 동안이나 심지어는 개발 주기 동안에도 변화할 가능성이 충분히 있다. 애플리케이션 레벨을 기저의 연결 방법 변화로부터 보호하는 일은 운영 환경을 통해 다루는 것이 가장 효과적이다.
그러나 웨어러블 의료기기의 진정한 미래는 무선 커넥티비티의 영역에 있다. USB가 SPI보다 복잡한 프로토콜이긴 하지만 다양한 무선 커넥티비티 옵션들은 USB보다 훨씬 더 복잡하며, 보안 기능이 연관될 때는 특히 그렇다. 무선 연결 방법의 범위는 근거리 무선통신망(Near Field Radio)으로부터 블루투스/BLE, 와이파이는 물론 이동통신망(mobile cellular networks)에까지 이른다. 이는 기술과 프로토콜, 옵션이 급격한 변화를 보이고 있는 영역이다. 보다 중요한 점은 이들 시스템의 비용 역학으로서, 현재 지나치게 비싸다고 여겨지고 있는 솔루션들이 내일이면 금새 경제적인 표준이 될 수 있다. 한편으로, 애플리케이션 레벨의 코드는 그보다 앞서 긴 수명과 유용성을 유지하고 있다.
그림 2: 무선 연결 옵션은 다양하며 끊임없이 변화하고 있다.
실시간 운영체제(RTOS) 환경이 미니멀리스트적인 기기 내에 SPI 레벨의 인터페이스를 가지고 탑재될 수 있으면서도 완전한 셀룰러 커넥티비티로 이전될 수 있다면(그것이 일련의 제품들 간에 걸친 것이든 혹은 제품 수명주기 간에 걸친 것이든) 웨어러블 의료 장비 OEM은 향후 발생 가능한 어떠한 상황에도 적응할 수 있게 될 것이 틀림없다.
전력 요건
배터리 수명은 웨어러블 의료기기에 있어서 극히 중요한 요소임에 틀림없다. 무게는 사용자가 휴대하거나 착용하는 데 있어서 문제가 될 수 밖에 없는데, 배터리는 모든 포터블 기기에 있어서 가장 무겁고 덩치 큰 부분이다. 사용자가 어쩌면 저녁 때까지 하루 종일 휴대해야 할 물건이라면 전력 소비를 최소화 함으로써 배터리 수명을 늘리는 것만으로는 충분치 못하다.
전력에 대한 요구를 배터리 크기가 최소화 될 정도까지 극적으로 줄이지 않으면 안 된다. 스마트폰과 같은 품목들은 특정한 크기의 배터리를 탑재할 수 있으며, 이들은 특정한 전력량을 제공한다. 이러한 파라미터를 고정 기준으로 사용하면 단지 특정한 배터리 충전 수명을 충족시키는 것만으로도 고객의 기대에 부응하는 만족스러운 제품이 개발된다. 그러나 웨어러블 의료기기의 경우는 그렇지가 못하다. 일단 배터리 충전 수명이 결정되고 난 뒤에도 전력 소비를 줄여야 한다는 압력은 끝없이 이어진다. 전력소비를 줄일수록 배터리의 크기와 무게는 더욱 줄어들기 때문이다.
오늘날의 현대적인 프로세서들은 놀랍도록 다양한 일련의 효과적인 절전 기능들을 탑재하고 있다. 유감스럽게도, 이러한 기능들은 복잡한 데다가 서로 간에는 물론 구현되고 있는 특정한 절전 모드와는 관련이 없는 시스템 부분들과도 매우 상호의존적인 경우가 많다. 예를 들어, 기기의 클럭 주파수를 변경하면 통신의 클럭 속도가 영향을 받는다. 이는 통신용 주변장치들의 전력 상태에 변화가 없는 데도 그렇다.
이 모든 상황들은 단지 목표 애플리케이션을 완성하는 일만으로도 책임이 막중한 애플리케이션 개발자에게 커다란 부담이 된다. 배터리 전력을 마지막 한 방울까지 짜낼 수 있는 능력이 그 기기의 시장 경쟁력을 결정하게 된다. 개발자들은 복잡성에 있어서 애플리케이션 못지 않거나 그보다도 더 심한 소프트웨어 작업과 살아남기 위해서는 프로젝트의 주변장치 측면을 수행해내야만 하는 현실 사이에서 압박 받고 있다.
그림 3: 전력소비의 최적화는 웨어러블 기기의 모든 구성요소들에 영향을 미친다.
이러한 문제에 대한 해결책은 전력관리 기능을 해당 환경의 필수불가결한 일부로서 포함하는 소프트웨어 플랫폼 상에 애플리케이션을 개발하는 것이다(그림 3). 대부분의 대형 범용 운영체제들은 매우 정교한 일련의 전력관리 기능들을 탑재하고 있다. 그러나 이러한 운영체제들은 휴대형 의료기기를 겨냥한 프로세싱 디바이스 분야에서는 전혀 기능을 발휘하지 못한다.
대부분의 실시간 운영체제들은 일종의 전력관리 기능을 제공하는데, 가장 일반적인 것이 틱 억제(tick suppression) 기능이다. 이것은 실행될 작업이 없을 경우 커널의 주기적인 타이머 틱 인터럽트를 다음 번 타이머 이벤트가 발생할 때까지 중단시킨다. 웨어러블 기기에는 보다 정교한 다른 방법들이 필요하지만, 이러한 것들은 RTOS 분야에서는 드물다. 현재로선 오직 멘토 그래픽스의 Nucleus RTOS 만이 디바이스 절전 기능의 모든 측면들에 대한 지원 기능을 내장하고 있다. 여기에는 동적 전압/주파수 조정(DVFS) 기능은 물론 주변장치와 코어 동작 클럭 주기 간의 모든 상호작용을 통해 모든 주변장치 전력 수준을 완전히 제어하는 기능도 포함되어 있다(그림 4).
그림 4: 구조화된 전력 프레임워크로 인해 개발 노력이 최적화된다.
크기 제약
웨어러블 의료기기의 물리적인 폼팩터를 수용하기 위해 전자장치는 부품 탑재뿐만 아니라 폐열 방출 기능을 위한 공간도 매우 작다. 폐열 문제는 전력소비 문제와 유사한 것으로서 이미 다뤄져 있다. 물리적인 크기 제약으로 인해 대개는 MCU 시스템온칩(SoC)이 코어 프로세싱 엔진으로 선택된다. 이러한 디바이스들은 크기에 비해 놀라울 정도로 다양한 주변장치들을 탑재할 수 있지만, 메모리 용량 문제는 공간 문제를 비켜갈 수 없는 영역 중 하나이다. 모든 애플리케이션은 보다 많은 메모리를 필요로 한다. 소형 디바이스에 있어서 메모리는 휘발성이든 비휘발성이든 매우 귀한 자원일 수 밖에 없다.
개발자로선 자신들의 애플리케이션이 한정된 자원을 놓고 RTOS와 경쟁하는 일만큼은 절대로 피하고 싶을 것이다. 범용 운영체제가 웨어러블 의료기기 분야에 진입하지 못하는 이유는 무엇보다도 바로 이 점 때문이다. RTOS를 고려해야 할 경우에는 코드와 데이터 요건 모두 최소한의 크기로 축소시키지 않으면 안 되는데, 가장 기본적인 커널을 위해 2K 정도의 텍스트 공간이 선호된다(최저가 디바이스 범주에서 살아남기 위해). 또한 이 같은 RTOS를 예컨대 셀룰러 이동통신을 포함하여 완전한 기능을 제공하는 서비스까지도 확장할 수 있어야만 한다. 그렇지 못할 경우 개발자들은 여러 운영체제 환경을 망라하는 애플리케이션을 지원하기 위해 애쓰지 않으면 안 된다.
기술 구현과 실제 제품 간의 간극
PC 혁명이 일어나던 초기 시절에 광고주, 마케팅 담당자, 기술 매거진들이 클럭 속도와 버스 크기 및 기타 기술적인 세부사항들에 집착하던 일이 기억날 것이다. 그러나 오늘날의 장치들은 오로지 최종 사용자의 경험에 의해서만 판단된다. 엄청난 엔지니어링적 위업을 통해 뛰어난 명령어 처리속도를 갖는 디바이스를 손목 밴드 속에 집어넣는 데 성공해 봤자 동료들 사이의 자랑거리는 될지언정 수익에는 아무 도움도 안 된다.
이 때문에 개발자들은 가장 많은 기능들을 최소한의 하드웨어 만으로 구현하지 않으면 안 되는 상황에 처해 있다. 그것이 가장 작은 메모리든 혹은 가장 느린 클럭(디바이스의 한계나 실제 사용상의)이나 가장 작은 배터리이든, 엔지니어에게 기대되는 것은 대개의 경우 일회용에 불과한 기기에 마법을 구현해내는 것이다.
결론
광범위한 복잡성과 엄청난 가격 압력 그리고 지속적으로 발전하는 기저 하드웨어를 요구하는 시장에서 살아남기 위해 애플리케이션은 강력하고도 유연한 플랫폼 상에 탑재되어야만 한다. 이러한 플랫폼은 추상적이면서도 동시에 특정 하드웨어 기능들을 최적화할 수 있어야만 한다.
이제 플랫폼을 정의하는 것은 프로세싱 아키텍처나 주변장치들의 집합이 아니라 개발자가 사용할 수 있는 프로그래밍 환경이다. 이를 달성하기 위한 윈도우나 안드로이드, iOS, 리눅스 등과 같은 표준적인 플랫폼들은 최소한의 하드웨어 요건 면에서 더 이상 내려갈 수 없는 한계에 부딪히고 있다.
이 같은 한계는 의료용 웨어러블 기기들의 가격, 전력 및 물리적 제약과 양립될 수 없다. 현재로선 이러한 요건에 맞는 유일한 선택은 고도의 적응 능력과 확장 능력을 갖춘 RTOS 환경뿐이다. RTOS 환경은 베어메탈을 대체할 수 있을 뿐만 아니라 완전한 기능을 갖는 운영체제의 보다 로엔드 부문과도 중첩될 수 있기 때문이다.
저자 약력
앤드류 케이플스(Andrew Caples) 씨는 멘토 그래픽스 임베디드 시스템 사업부(ESD)의 제품 마케팅 매니저이다. 신생업체와 포춘 500대 하이테크 기업에서 20년 이상 일해온 경력을 가졌으며, 기술 마케팅으로부터 판매 관리에 이르기까지 다양한 직책들을 두루 역임해 왔다. 캘리포니아 폴리테크닉 대학에서 전기 및 컴퓨터 공학 학사 학위를 받았으며, 현 직책 중에는 Nucleus Real-Time Operating System의 제품 관리직도 포함되어 있다.