상단여백
HOME 오피니언 테크니컬 리포트
IoT 디바이스의 핵심: 펌웨어 업데이트를 위한 유연성 ①

사물인터넷(IoT) 디바이스는 가전기기부터 의료용 기기와 자동차에 이르기까지 빠른 속도로 출시되고 있다. 제조업체들은 새로운 혁신과 신기술의 도입 또는 통합을 위한 유연성을 바탕으로 경쟁자들보다 한 발 앞서야 한다. 

개발자는 새로운 기능 및 규제의 채택에 따라 계속 진화하고 있는 IoT 에코시스템에 맞추기 위해 제품에 유연성을 구축하여야 한다. 

펌웨어 업데이트를 통해 초기 구축 단계 동안 고객 측면에서 맞춤화가 가능할 뿐만 아니라, 제품을 현장에 설치한 후에도 새로운 기능을 추가하거나 사용 중 발생하는 펌웨어 문제를 해결할 수도 있다. 

펌웨어 코드 저장 매체로는 재프로그래밍이 가능하며 신뢰성이 우수한 NOR 플래시 등의 비휘발성 메모리가 주로 사용된다. 제조업체들은 디바이스의 비휘발성 메모리에 들어 있는 디바이스 펌웨어 코드 부분을 다시 작성하여 디바이스 성능을 손쉽게 업데이트할 수 있다.

이렇게 펌웨어를 업데이트할 때 고려해야 할 사항은 다음 세 가지이다. 어떤/얼마나 많은 코드를 업데이트하는가? 얼마나 빈번하게 업데이트하는가? 업데이트하는 데 필요한 시간(속도)는 얼마인가?


◆어떤/얼마나 많은 펌웨어 코드를 업데이트하는가
어떤 펌웨어 코드를 얼마나 많이 업데이트하는지는 IoT 디바이스를 설계하는 초기 단계에서 고려해야 한다. 펌웨어에서 업데이트가 가능한 부분은 업데이트가 불가능한 부분과 분리하여 NOR 플래시 디바이스의 별도 영역에 저장해야 한다. 

NOR 플래시의 어떤 부분을 업데이트하기 위해서는 먼저 해당 부분의 메모리를 소거한 뒤 거기에 새로운 정보를 프로그래밍해야 한다. NOR 플래시는 섹터와 블록으로 불리는 다양한 크기의 부분들로 구성된다. 

그림 1: SST26VF064B를 사용한 메모리 구성(맵) – 8KB 블록 8개, 32KB 블록 2개, 64KB 블록 126개로 구성

SST의 SuperFlash 기술 제품인 SST26VF064B(64Mb)와 같은 NOR 플래시 디바이스는 균일한 4KB 섹터들로 이루어졌으며, 이 섹터들을 각각 소거하고 재프로그래밍할 수 있다(4KB = 4 * 1024 * 8비트 = 32,762비트). 

이를 보다 큰 8KB, 32KB, 64KB 블록으로 구성할 수 있으며, 이 역시 각각 소거할 수 있다. 따라서 8KB 블록은 2개 섹터, 32KB 블록은 8개 섹터, 64KB 블록은 16개 섹터로 이루어진다. 

그림 1은 8KB/32KB/64KB 블록을 사용한 SST26VF064B의 메모리 구성을 보여준다. 또한 각 블록은 개별적으로 보호할 수 있다. 플래시의 어느 부분을 어떻게 업데이트하든, 소거 및 프로그래밍을 위해서는 먼저 그 부분 블록들의 보호를 해제해야 한다. 

업데이트를 완료한 후에는 실수로 해당 영역을 다시 쓰거나 삭제하지 않도록 이 블록들을 다시 보호해야 한다. 펌웨어의 업데이트 가능한 부분은 제한된 기능 및 최대 기능 업데이트를 모두 허용할 수 있을 만큼 유연한 섹터와 블록으로 구성해야 한다. 

업데이트 수행 속도는 소거 및 재프로그래밍해야 하는 섹터와 블록 수에 따라 결정되기 때문에, 펌웨어의 업데이트 가능한 부분을 구성할 때는 속도와 유연성을 함께 고려하는 것이 좋다. 

그림 2: 업데이트할 수 없는 부분(예:부트 코드)과 업데이트할 수 있는 부분 (예:기능, 이미지 파일, 파라미터 변수용 코드)으로 구성된 메모리

그림 2는 메모리를 업데이트할 수 있는 부분과 업데이트할 수 없는 부분으로 구성한 예를 보여준다. 

부트 코드와 같이 업데이트할 수 없는 부분은 보호 영역에 저장한다. 기능 등의 업데이트 가능한 펌웨어 부분은 유연성 요건에 따라 작은 블록이나 큰 블록에 나누어 저장할 수 있다. 업데이트 가능한 이미지 파일은 큰 블록에 저장하고, 업데이트 가능한 변수/파라미터들은 작은 블록에 저장하는 것이다.

다음 글에서는 펌웨어 업데이트의 빈도를 제한하는 주요 기술과 업데이트 속도를 줄이는 다양한 기술에 대해 알아본다.

 

글 : 하딕 파텔(Hardik Patel), 마이크로칩 테크놀로지 메모리 부문 수석 애플리케이션 엔지니어(Principal Applications Engineer, Memory Division, Microchip Technology Inc.)

최태우 기자  taewoo@itbiznews.com

<저작권자 © IT비즈뉴스, 무단 전재 및 재배포 금지>

최태우 기자의 다른기사 보기
icon인기기사
기사 댓글 0
전체보기
첫번째 댓글을 남겨주세요.
여백
여백
여백
Back to Top