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

지난 글에 이어 이번에는 펌웨어 업데이트의 빈도를 제한하는 주요 기술과 업데이트 속도를 줄이는 다양한 기술에 대해 알아보고자 한다.


◆얼마나 빈번하게 업데이트하는가
펌웨어 업데이트의 빈도를 제한하는 주요 요인은 애플리케이션에 사용된 메모리의 내구성 한계이다. SST26VF064B와 같은 SuperFlash 기술 메모리는 내구성 사이클이 100,000회에 달하며, 이는 각각의 섹터를 10만 번 프로그래밍하고 소거할 수 있다는 뜻이다. 

펌웨어 업데이트를 10만 번 할 수 있다면 꽤 많은 회수 같지만, 많은 IoT 디바이스들은 사용되는 내내 수시로 데이터를 수집하고 NOR 플래시에 정보를 저장하므로 최대 내구성 사이클 한계를 계산할 때는 이 점을 고려해야 한다. 

내구성을 위해서는 메모리에 섹터들을 충분히 할당하는 것이 중요하다. 예를 들어 어떤 IoT 디바이스가 16바이트의 정보를 수집 및 저장하고, 이 정보를 제품 수명 동안 1억 번 수집하고 저장한다고 생각해 보자. 여기에 할당해야 할 섹터의 수는 다음과 같이 계산할 수 있다:

- 1개 섹터 = 4KB
- 이 섹터의 모든 어드레스 위치가 정보를 저장하는 데 사용된다고 가정하면, 한 번에 16바이트씩 쓰이고 섹터 끝에 도달할 때까지 새로운 어드레스 위치에 쓰여질 것이다(예: 0x0000-0x000F, 그 다음에는 0x0010-0x001F, 그 다음에는 0x0020-0x002F 등).
- 4KB/16바이트 = 256이며, 이 숫자는 스토리지가 섹터 용량에 도달하고 섹터 데이터를 소거하기까지 쓸 수 있는 횟수이다.
- 1개 섹터의 내구성 한계 = 100,000 사이클
- 따라서 1개 섹터를 256회 쓸 수 있고 내구성 한계가 100,000 사이클이므로, 이 데이터를 25,600,000번 수집하고 저장할 수 있다.
- 어떤 애플리케이션이 이 데이터를 1억 번 수집하고 저장해야 한다면, 할당해야 할 섹터 수는 100,000,000/25,600,000 = 3.9로 계산할 수 있다. 따라서 이 경우에는 애플리케이션 수명 동안 16바이트 데이터를 저장하기 위해 4개 섹터를 할당해야 한다.

IoT 디바이스 엔지니어는 이러한 계산을 수행하여 데이터 로깅 파라미터에 대해 섹터 및 블록을 충분히 할당함으로써 NOR 플래시 디바이스의 내구성 한계를 초과하지 않도록 해야 한다. 


◆업데이트 속도
업데이트 속도는 소거하고 재프로그래밍해야 하는 블록과 섹터의 수에 기초하여 계산할 수 있다. SST26VF064B 내의 여러 64KB 블록에 저장된 1Mb, 2Mb, 4Mb 펌웨어 코드/데이터를 재프로그래밍한다고 가정해 보자.

이 코드/데이터는 업데이트하고자 하는 펌웨어 코드나 이미지 파일, 여타 코드들로 구성돼 있다. 업데이트를 하기 위해서는 플래시로 일련의 명령을 실행해야 한다. 순서대로 먼저 메모리 블록 보호를 해제하고, 이 블록들을 소거하고, 업데이트하려는 데이터/코드로 블록들을 프로그래밍하며, 이 블록들을 다시 보호할 것이다. 

표 1: 1Mb/2Mb/4Mb 메모리를 업데이트하기 위한 플래시 명령 시퀀스

표1은 SST26VF064B에서 1Mb/2Mb/4Mb 메모리를 업데이트하는 데 필요한 명령 시퀀스를 보여준다. 표1을 보면 가장 중요한 시간 두 가지는 소거 시간과 프로그램 시간이라는 사실을 확인할 수 있다. 

SST26VF064B는 소거 성능이 탁월한 SuperFlash 기술을 사용한다. 표2는 SuperFlash 기술과 기존 플래시의 소거 및 프로그램 성능을 비교한다. SuperFlash 기술은 기존 플래시 비해 소거 성능이 훨씬 더 우수하기 때문에 업데이트 시간을 줄이는 데 매우 유용하다. 

표 2: SST26VF064B 및 기존 플래시의 프로그램 및 소거 시간

SST26VF064B는 최대 클록 주파수 104MHz, 최대 섹터 소거 시간 25ms, 최대 블록 소거 시간 25ms, 최대 페이지 프로그램 시간 1.5ms를 지원한다. 또한 104MHz의 클록 주파수로 동작할 때, 플래시 메모리에 보내는 각 명령들 사이에 12ns의 지연(CE 하이 시간)이 필요하다. 

표 3: SuperFlash 기술 메모리 1Mb/2Mb/4Mb 업데이트 시 필요한 시간

표3과 표4는 표1의 명령 시퀀스와 이미 알고 있는 프로그램 및 소거 시간을 사용해, SuperFlash 기술 메모리와 기존 플래시 메모리에서 1Mb/2Mb/4Mb를 업데이트하는 데 필요한 총 시간을 계산한 내용을 보여준다. 이러한 계산을 통해 IoT 디바이스 엔지니어는 업데이트 중 IoT 디바이스 다운타임을 최소화하는 것을 목표로 업데이트 진행 속도를 계산해야 한다.

표 4: 기존 플래시 메모리 1Mb/2Mb/4Mb 업데이트 시 필요한 시간


IoT 디바이스 설계 엔지니어는 애플리케이션 코드와 데이터의 업데이트를 위한 유연성을 제공해야 한다. 어떤 코드를 얼마나 많이 업데이트할지, 얼마나 빈번하게 업데이트할지, 그리고 업데이트 속도 문제는 IoT 디바이스를 설계하는 단계에서 해결하여야 한다. 

비휘발성 메모리를 선택하는 것은 이들 문제에 큰 영향을 미치며, 그 결과는 코드 업데이트의 타이밍과 속도를 계산하는 데 중요한 역할을 한다.

 

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

최태우 기자  taewoo@itbiznews.com

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

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