KR20170037017A - 메모리 업그레이드 시스템 및 방법 - Google Patents

메모리 업그레이드 시스템 및 방법 Download PDF

Info

Publication number
KR20170037017A
KR20170037017A KR1020150136049A KR20150136049A KR20170037017A KR 20170037017 A KR20170037017 A KR 20170037017A KR 1020150136049 A KR1020150136049 A KR 1020150136049A KR 20150136049 A KR20150136049 A KR 20150136049A KR 20170037017 A KR20170037017 A KR 20170037017A
Authority
KR
South Korea
Prior art keywords
upgrade
mtd
size
environment variable
image
Prior art date
Application number
KR1020150136049A
Other languages
English (en)
Other versions
KR102429346B1 (ko
Inventor
권기덕
고우다 소마세크하라
정선용
이현동
Original Assignee
한화테크윈 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한화테크윈 주식회사 filed Critical 한화테크윈 주식회사
Priority to KR1020150136049A priority Critical patent/KR102429346B1/ko
Publication of KR20170037017A publication Critical patent/KR20170037017A/ko
Application granted granted Critical
Publication of KR102429346B1 publication Critical patent/KR102429346B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 메모리 업그레이드 시스템은 MTD 파티션의 사이즈에 관한 정보를 가지는 환경변수 데이터를 포함하고, 메모리 업그레이드를 위해 사용되는 업그레이드 이미지; 상기 업그레이드 이미지를 수신하는 데이터 입력부; 상기 업그레이드 이미지 및 상기 환경변수 데이터를 기록하는 저장부; 상기 업그레이드 이미지 및 상기 환경변수 데이터의 기록의 성공 여부를 판단하고, 상기 환경변수 데이터를 기초로 상기 저장부에 새롭게 MTD 파티션을 동적으로 생성하는 제어부를 포함한다.

Description

메모리 업그레이드 시스템 및 방법{Memory Upgrade System And Method}
본 발명은 메모리 업그레이드 시스템 및 방법에 관한 것으로써, 보다 상세하게는 메모리 업그레이드를 수행할 때, 업그레이드 이미지의 사이즈가 MTD 파티션의 사이즈보다 항상 작도록 하여 정상적인 기능을 수행하도록 하는 메모리 업그레이드 시스템 및 방법에 관한 것이다.
임베디드 시스템(Embedded System)이란, 미리 정해진 특정 기능을 수행하기 위해 각종 전자제품이나 장치 등에 프로세서를 내장하여 장치를 조작하는 제어시스템이다. 임베디드 시스템은 MCU(Main Control Unit)와 그 MCU를 구동하여 특정한 기능을 수행하도록 프로그램을 탑재함으로써 해당 장치의 용도에 맞는 기본적인 컴퓨팅 능력을 가지고 그 용도에 맞는 어플리케이션을 이용하여 제어 동작을 수행하게 된다.
이러한 임베디드 시스템은 임베디드 리눅스(Embedded Linux)를 OS(운영체제)로 사용하고, 운영체제와 프로그램을 저장하기 위해 메모리 장치를 통해 프로그램과 리소스를 저장한다. 최근 하드웨어의 소형화에 따라, 이러한 임베디드 시스템도 크기가 작은 메모리를 사용하며 단가를 낮추고 성능이 최적화되도록 구현하여야 한다. 따라서 임베디드 시스템에서는 저장공간으로 플래시 메모리(Flash Memory)를 많이 사용하고 있다.
플래시 메모리는 작고 가벼우며, 비휘발성이면서도 전력 소모가 적고 충격에 강하다. 이러한 장점 때문에 최근 휴대폰이나 디지털 카메라 등의 휴대 기기의 저장 장치로 많이 사용되고 있다. 이러한 플래시 메모리를 하드 디스크와 같이 사용하기 위하여 MTD(Memory Technology Device)를 사용하게 된다. MTD란 다양한 메모리 형태의 장치를 지원하기 위해 만들어진 기술이며, 플래시 메모리는 MTD에 의해 MTD 파티션(MTD Partition)이라고 부르는 몇 개의 부분들로 나누어져 있고, MTD 서브시스템이 플래시 메모리의 MTD 파티션을 지원한다.
그러나 종래에는 각 MTD 파티션마다 사이즈(Size)가 미리 할당이 되도록 세팅되어 있었다. 따라서 상기 업그레이드를 위해 업그레이드 이미지(Upgrade Image)를 받아 기록(Write) 동작을 할 때, 상기 업그레이드 이미지의 사이즈가 상기 MTD 파티션의 사이즈보다 클 경우에는 시스템이 정상적으로 작동하지 않을 수 있어 문제가 되었다.
한국공개공보 제 2009-0060774 호 한국공개공보 제 2013-0075018 호
본 발명이 해결하고자 하는 과제는, 메모리 업그레이드를 수행할 때 업그레이드 이미지의 사이즈가 MTD 파티션의 사이즈보다 항상 작도록 하여 시스템 펌웨어가 정상적인 기능을 수행하도록 하는 메모리 업그레이드 시스템 및 방법을 제공하는 것이다.
본 발명의 과제들은 이상에서 언급한 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 메모리 업그레이드 시스템은 MTD 파티션의 사이즈에 관한 정보를 가지는 환경변수 데이터를 포함하고, 메모리 업그레이드를 위해 사용되는 업그레이드 이미지; 상기 업그레이드 이미지를 수신하는 데이터 입력부; 상기 업그레이드 이미지 및 상기 환경변수 데이터를 기록하는 저장부; 상기 업그레이드 이미지 및 상기 환경변수 데이터의 기록의 성공 여부를 판단하고, 상기 환경변수 데이터를 기초로 상기 저장부에 새롭게 MTD 파티션을 동적으로 생성하는 제어부를 포함한다.
상기 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 메모리 업그레이드 방법은 USB 또는 인터넷을 통해 업그레이드 프로그램이 선택되어 시작되는 단계; MTD 파티션의 사이즈에 관한 정보를 가지는 환경변수 데이터를 포함하고, 메모리 업그레이드를 위해 사용되는 업그레이드 이미지를 복사하는 단계; 저장부에 있는 MTD 파티션에 기록된 기존의 이미지를 삭제하고 새로운 상기 업그레이드 이미지를 기록하는 단계; 상기 업그레이드 이미지를 기록하는 동작이 성공하면, 상기 업그레이드 프로그램이 상기 MTD 파티션에 있는 기존의 환경변수 데이터를 삭제하고 새로운 상기 환경변수 데이터를 기록하는 단계; 및 상기 환경변수 데이터를 기초로 상기 저장부에 새롭게 MTD 파티션을 동적으로 생성하는 단계를 포함한다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 실시예들에 의하면 적어도 다음과 같은 효과가 있다.
업그레이드 이미지에 MTD 파티션의 사이즈에 관한 정보가 포함되며 플래시 메모리의 MTD 파티션의 사이즈가 동적으로 할당됨으로써, 메모리 업그레이드를 수행할 때 상기 MTD 파티션의 사이즈에 관한 정보에 따라 MTD 파티션의 영역이 새로 할당이 되어 업그레이드 이미지의 사이즈가 MTD 파티션의 사이즈보다 항상 작도록 하여, 시스템 펌웨어가 정상적인 기능을 수행하도록 한다.
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 메모리 업그레이드 시스템(1)의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 메모리 업그레이드 방법의 흐름도이다.
도 3은 종래의 저장부(102)의 MTD 파티션 분할을 도시한 테이블이다.
도 4는 본 발명의 일 실시예에 따른 저장부(102)의 MTD 파티션 분할을 도시한 테이블이다.
도 5는 본 발명의 일 실시예에 따른 저장부(102)의 MTD 파티션의 사이즈를 동적으로 세팅하기 위한 파일의 내용을 나타낸 참고도이다.
도 6은 본 발명의 일 실시예에 따른 복수의 MTD 파티션마다 사이즈를 할당하는 방법을 나타낸 흐름도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 메모리 업그레이드 시스템(1)의 블록도이다.
도 1에 도시된 바와 같이, 시스템 펌웨어(System Firmware)를 업그레이드하려는 업그레이드 대상 모듈(10)은 입력부(101), 저장부(102), 제어부(103)를 포함한다. 입력부(101)는 CD-ROM 인터페이스, USB 인터페이스, 인터넷 통신 인터페이스, 무선 통신 인터페이스를 포함하는 다양한 인터페이스 중 적어도 하나의 인터페이스를 통해 업그레이드 이미지(20)를 받을 수 있다. 여기서 업그레이드 이미지(20)는 시스템의 새로운 커널(Kernel), 루트 파일 시스템(Root File System)을 포함한다.
업그레이드 이미지(20)는 Uboot 환경변수(201)를 포함한다. Uboot(Universal Boot Loader)란 주로 PowerPC와 ARM 임베디드 시스템에서 사용되는 부트로더(Boot Loader)를 말한다. 본 발명을 구현하기 위하여 다양한 종류의 부트로더가 사용될 수 있으나 본 발명의 일 실시예에서는 Uboot를 사용하며, 이하 Uboot를 사용한 본 발명의 일 실시예에 대하여 설명한다. Uboot 환경변수(201)란 플래시 메모리의 일정 영역에 저장되어 부팅 환경을 변경시키는 값으로, 대표적으로 bootargs, bootcmd, bootdelay, ipaddr 등이 있다. 여기서 bootargs는 커널에 값을 전달하는 환경변수이고, Uboot 환경변수(201) 중에서 특히 bootargs에는 복수의 MTD 파티션 영역 각각의 사이즈에 관한 정보(202)가 포함되어 있다.
저장부(102)는 데이터를 저장할 수 있는 영역을 말하며, 여기서 저장부(102)는 다양한 종류가 있을 수 있으나, 본 발명의 일 실시예에 따르면 플래시 메모리인 것이 바람직하다. 따라서 이하, 저장부(102)가 플래시 메모리인 본 발명의 일 실시예에 대하여 설명한다. 플래시 메모리는 복수의 MTD 파티션으로 분할되며, 각 MTD 파티션의 영역마다 저장되는 부트 컨텐츠가 다르다. 하기에 기술할 바 본 발명의 일 실시예에 따른 플래시 메모리는 MTD 파티션의 영역이 미리 할당되지 않고, MTD 파티션의 사이즈 정보에 따라 동적으로 영역이 할당된다. 여기서 동적으로 영역이 할당된다는 것은, MTD 파티션의 사이즈가 단순히 가변적이라는 것이 아니라, 사용자가 직접 사이즈를 변경하는 작업 없이도 MTD 파티션의 사이즈에 관한 정보(202)에 따라 MTD 파티션이 자동적으로 분할되는 것을 의미한다.
따라서, 본 발명의 일 실시예에 따른 메모리 업그레이드 시스템(1)은 업그레이드 이미지(20)를 받으면, 업그레이드 이미지(20) 내에 포함된 MTD 파티션의 사이즈에 관한 정보(202)에 따라 플래시 메모리의 MTD 파티션 영역이 새로 할당되므로, 업그레이드 이미지(20)의 사이즈가 MTD 파티션의 사이즈보다 항상 작도록 하여 시스템 펌웨어가 정상적인 기능을 수행하도록 한다.
제어부(103)는 저장부(102)의 MTD 파티션에 기록(Write)된 기존의 이미지와Uboot 환경변수 이미지를 삭제(Erase)하고, 새로운 업그레이드 이미지(20)와 Uboot 환경변수 이미지를 기록(Write)하며 기록 성공 여부를 판단한다. 여기서 제어부(103)는 본 발명의 일 실시예에 따른 메모리 업그레이드를 진행하는데 필요한 제어를 하는 모든 모듈들을 포함하며, 부트로더, 커널 등이 이에 해당한다. 종래의 경우에는 제어부(103)가 업그레이드 이미지(20)의 사이즈와 MTD 파티션의 사이즈를 비교하는 과정이 필요하나, 본 발명의 일 실시예에 따른 메모리 업그레이드 시스템(1)은 업그레이드 이미지(20)의 사이즈가 MTD 파티션의 사이즈보다 항상 작으므로 제어부(103)가 따로 사이즈를 비교하는 과정이 불필요하다.
도 2는 본 발명의 일 실시예에 따른 메모리 업그레이드 방법의 흐름도이다.
시스템 펌웨어(System Firmware)를 업그레이드(Upgrade)하기 위해 도 2에 도시된 바와 같이, 우선 USB(Universal Serial Bus) 또는 인터넷(Internet)을 통해 커널 및 루트 파일 시스템의 업그레이드를 수행할 업그레이드 프로그램이 선택된다(S201). 상기 선택된 업그레이드 프로그램이 시작(Launch)되면(S202) Uboot 환경변수(201) 이미지가 항상 포함된 업그레이드 이미지(20)가 저장부(102)로 복사된다(S203). Uboot 환경변수(201)에는 복수의 MTD 파티션 영역 각각의 사이즈에 관한 정보(202)가 포함되어 있다.
상기 복사된 업그레이드 프로그램이 수행(Run)되면(S204) MTD 파티션에 기록(Write)된 기존의 이미지가 삭제(Erase)되고, 새로운 업그레이드 이미지(20)가 기록된다(S205). 새로운 업그레이드 이미지(20)의 기록이 성공하지 않는다면(S206) 시스템은 재부팅 후 작동을 멈추게 되나(S207, S208), 이 기록이 성공한다면(S206) 부트 컨텐츠들의 영역 할당을 위해, 업그레이드 프로그램은 MTD 파티션에 기록(Write)된 기존의 Uboot 환경변수(201) 이미지를 삭제(Erase)하고, 새로운 Uboot 환경변수(201) 이미지를 기록하게 된다(S209). Uboot 환경변수(201) 이미지의 기록이 성공하지 않는다면(S210) 시스템은 재부팅 후 작동을 멈추게 되나(S211, S212), 이 기록이 성공한다면(S210) 시스템은 재시작 후 새로운 업그레이드 이미지(20)를 시작한다(S213, S214). 이 때, Uboot 환경변수(201)에 포함된 복수의 MTD 파티션 영역 각각의 사이즈 정보(202)로 인해 MTD 파티션이 새롭게 분할 생성되고, 업그레이드 이미지(20)의 사이즈는 MTD 파티션의 사이즈보다 항상 작게 되어 시스템은 올바른 기능을 수행할 수 있다(S215).
도 3은 종래의 저장부(102)의 MTD 파티션 분할을 도시한 테이블이고, 도 4는 본 발명의 일 실시예에 따른 저장부(102)의 MTD 파티션 분할을 도시한 테이블이다.
임베디드 시스템은 전원 온(On) 시 MTD 0의 부트로더(Boot Loader)가 구동되고 MTD 2의 커널(Kernel)을 로딩(Loading)한 후, MTD 4의 루트 파일 시스템(Root File System)의 시스템 파일(System File)을 로딩하여 구동된다. 이러한 임베디드 시스템은 시스템 펌웨어를 업그레이드 할 때에는, 도 2에 도시된 흐름도에 따라 USB 또는 인터넷을 통해 MTD 2의 커널 및 MTD 4의 루트 파일 시스템을 업그레이드한다.
도 3 및 도 4에 도시된 바와 같이, MTD0 영역은 운영체제를 구동하기 위한 부트로더가 저장된 영역이고, MTD1 영역은 상기 부트로더의 환경설정이 저장된 영역이다. MTD2 영역은 정상적으로 로드되는 리눅스 커널 이미지가 저장된 영역이고, MTD3 영역은 로고(Logo) 즉, 하드웨어, 응용 소프트웨어가 부분적으로 교체되어도 안정적인 동작을 인증해 주는 로고가 저장된 영역이다. MTD4 영역은 정상적으로 로드되는 루트 파일 시스템이 저장된 영역이고, MTD5 영역은 정상적으로 로드되는 사용자 어플리케이션이 저장된 영역이다. MTD6 영역은 어플리케이션 설정 파라미터들이 저장된 영역이며, MTD7 영역은 MTD6에 저장된 어플리케이션 설정 파라미터들이 중복저장(Mirror)된 영역이다. MTD8 영역은 부트로더에 의해 사용되는 데이터가 저장되는 자유 영역이다.
위와 같이 리눅스 기반의 임베디드 디바이스가 동작되기 위해서는 부트로더 영역, 리눅스 커널 영역, 기능 수행에 필요한 공통 라이브러리 및 유틸리티, 파티션이 포함되어 있는 루트 파일 시스템 영역, 비즈니스 로직이 구현되어 있는 라이브러리와 어플리케이션이 포함된 사용자 어플리케이션 영역, 변경 가능한 구성 정보 영역 등으로 메모리가 구성될 수 있으며, 사용자 어플리케이션 영역은 루트 파일 시스템 영역에 포함되어 구성될 수도 있다.
종래의 경우에는 도 3에 도시된 바와 같이, 각각의 MTD 파티션의 영역마다 사이즈가 미리 할당되어 있다. 플래시 메모리의 MTD 파티션은 논리적으로 구분되므로 사이즈는 변경할 수 있으나, 이를 변경하기 위해서는 Uboot 환경변수(201) 중에 bootargs를 사용자가 직접 /etc/cmdline 파일을 통해 변경하여야 한다. 따라서 업그레이드 이미지(20)의 사이즈가 MTD 파티션의 사이즈보다 클 경우에 시스템이 정상적으로 동작하지 않는다. 또한, 사용자가 이를 해결하기 위해 어떤 영역의 MTD 파티션의 사이즈를 변경해야 하는지 알아내기 어려우며 그 과정이 번거롭다.
본 발명의 일 실시예에 따른 플래시 메모리의 경우에는 도 4에 도시된 바와 같이 각각의 MTD 파티션의 영역마다 사이즈가 미리 할당되지 않고 동적이다. 따라서 업그레이드가 진행되면 업그레이드 이미지(20)에 포함된 MTD 파티션의 사이즈에 관한 정보(202)에 따라 MTD 파티션이 분할 생성되고 업그레이드 이미지(20)에 포함된 새로운 커널, 루트 파일 시스템 등은 대응되는 MTD 파티션에 각각 저장된다.
도 4에 도시된 바와 같이, MTD 파티션의 사이즈가 미리 할당되지 않으므로 각각의 MTD 파티션의 주소코드도 할당되지 않는다. 주소코드 또한 각각의 MTD 파티션의 사이즈가 할당되면, 그 사이즈를 계산하여 주소코드도 자동적으로 생성된다.
도 5는 본 발명의 일 실시예에 따른 저장부(102)의 MTD 파티션의 사이즈를 동적으로 세팅하기 위한 파일의 내용을 나타낸 참고도이다.
Uboot 환경변수(201) 중에 bootargs는 커널에 값을 전달하는 환경변수이고, bootargs에는 복수의 MTD 파티션 영역 각각의 사이즈에 관한 정보(202)가 포함되어 있다. Uboot가 bootargs를 커널로 전달할 때, 커널은 상기 MTD 파티션 영역 각각의 사이즈에 관한 정보(202)에 따라 플래시 메모리를 각각 다른 사이즈의 MTD 파티션으로 분할하며, 상세한 정보를 /etc/cmdline 파일에 저장한다.
본 발명의 일 실시예에 따른 Uboot 환경변수(201) 중 bootargs는 MTD 파티션을 미리 분할하여 고정시키지 않도록, /etc/cmdline 파일이 도 5에 도시된 바와 같이 설정된다.
MTD 파티션의 사이즈를 할당하는 방법은 'mtdparts = [drv-name]:size(partition name), size(partition name)… 문구를 추가한다. 여기서 'drv-name'에는 MTD 드라이버 이름(driver name)을 기재한다. 본 발명의 일 실시예에 따르면 도 5에 도시된 바와 같이, 드라이버의 이름은 hinand이다.
'size'에는 각각의 MTD 파티션의 이름에 대응되는 MTD 파티션의 사이즈를 기재하나, 본 발명의 일 실시예에 따르면 도 5에 도시된 바와 같이, 곧바로 MTD 파티션의 사이즈를 기재하지 않고, 미리 'uboot_mtd_size', 'ubootenv_mtd_size' 등과 같은 새로운 변수들을 지정하며 상기 새로운 변수들에 각각의 MTD 파티션의 사이즈에 대응되는 숫자를 각각 대입한다. 그리고 상기 새로운 변수들을 'size'에 기재하며, 각각의 새로운 변수 이름의 앞에 '$'를 붙여 변수에 대입된 숫자가 고정되지 않도록 한다. 시스템 펌웨어의 업그레이드가 시작되면 플래시 메모리에 업그레이드 이미지(20)가 기록되고, 업그레이드 이미지(20)의 기록이 성공하면 Uboot 환경변수(201)를 기록하게 된다. 이 때, bootargs에 있는 MTD 파티션의 사이즈에 관한 정보(202)가 기록되므로, 상기 MTD 파티션의 사이즈에 관한 정보(202)에 따라 상기 새로운 변수들에 대입되는 숫자가 자동으로 변경된다. 상기와 같은 방법으로 사용자가 직접 MTD 파티션의 사이즈를 변경하는 작업을 하지 않고도 MTD 파티션의 사이즈가 동적으로 할당될 수 있다. 다만, 업그레이드 이미지(20)에 포함된 새로운 MTD 파티션의 사이즈에 관한 정보(202)에도 각각 상기 새로운 변수들의 이름과 같은 이름의 변수가 설정되어 있어야 자동으로 숫자가 대입될 수 있다.
플래시 메모리에 내장되는 부트 컨텐츠들은 기재된 순서대로 MTD0, MTD1, MTD2… 영역에 각각 대응된다. 도 5에 도시된 바와 같이, 루트 파일 시스템의 사이즈를 지칭하는 'rootfs'는 6번째에 기재되어 있고, 도 3 및 도 4에 도시된 바와 같이, 루트 파일 시스템은 6번째 영역인 MTD5에 저장되어 있다. 따라서 도 5에 도시된 바와 같이 'root=dev/mtdblock5'라고 기재를 하여 제어부(103)가 루트 파일 시스템을 MTD5에서 찾아 판독하도록 한다.
플래시 메모리를 저장매체로 사용하기 위한 방법에는, 크게 FTL(Flash Translation Layer: 플래시 변환계층)을 구현하여 플래시 메모리와 결합 사용하는 방법과, 플래시 메모리 전용 파일 시스템을 사용하는 방법이 있다.
FTL은 쓰기 연산 시에 파일 시스템이 생성한 논리주소를 플래시 메모리 상에서, 이미 삭제 연산이 수행된 영역에 대한 물리주소로 변환하는 역할을 수행한다. 그리고 상위 계층인 파일 시스템에 쓰기 연산 시 필요한 삭제 연산을 감추어 일반적인 자기 디스크용 파일 시스템이 플래시 메모리 상에서 작동할 수 있도록 하고, 시간 지연 및 마모의 문제를 상위의 운영체제에서 방지할 수 있도록 한다. 이 경우 파일 시스템은 리눅스(linux)에서 널리 쓰이는 ext2(second extended file system, 이차 확장 파일 시스템)이 사용될 수 있다.
FTL을 사용하지 않는 경우에는, MTD(Memory Technology Device)를 사용하는 JFFS2(Journaling Flash File System 2), YAFFS (Yet Another Flash File System), 및 YAFFS2 등과 같은 LFS(Log-structured File System: 로그 구조 파일 시스템)가 많이 사용된다. LFS와 같은 파일 시스템들은 저장 공간을 하나의 로그로 보고, 데이터를 앞에서부터 차례로 기록한다. 또한, 데이터를 기록함과 함께 메타데이터가 저장되고, 상기 메타 데이터 기반으로 매핑 테이블(Mapping Table)을 주 메모리 상에 구성하여 관리하게 된다.
본 발명의 일 실시예에 따른 플래시 메모리는 ext2를 사용하며, 이 경우 도 5에 도시된 바와 같이, 'rootfstype=ext2' 라고 기재한다. 그러나 이에 제한되지 않고 다양한 루트 파일 시스템이 사용될 수 있다.
도 6은 본 발명의 일 실시예에 따른 복수의 MTD 파티션마다 사이즈를 할당하는 방법을 나타낸 흐름도이다.
도 2에 도시된 흐름도에서 업그레이드 이미지(20)의 기록이 성공한다면(S206) 업그레이드 프로그램은 MTD 파티션에 기록(Write)된 기존의 Uboot 환경변수 이미지를 삭제(Erase)하고, 새로운 Uboot 환경변수(201) 이미지를 기록하게 된다(S209). 도 6은 이 이후에 복수의 MTD 파티션마다 사이즈를 할당하여 새롭게 MTD 파티션이 분할 생성되는 과정을 더 자세히 나타낸다.
도 6에 도시된 바와 같이, 새로운 Uboot 환경변수(201)의 기록이 성공적으로 끝난 후, 시스템은 새로운 업그레이드 이미지(20)를 시작하기 위해 우선 Uboot를 시동시키면(S601), Uboot의 초기화가 완료된다(S602). Uboot 환경변수를 판독함으로써 bootargs 내의 MTD 파티션의 사이즈가 동적으로 할당될 수 있도록 세팅한다(S603). 상기 기술한 바, /etc/cmdline 파일을 도 5에 도시된 바와 같이 세팅함으로써, MTD 파티션의 사이즈가 동적으로 할당될 수 있다. 그 후에, Uboot가 새로운 업그레이드 이미지(20)에 포함된 bootargs 내에 있는 MTD 파티션의 사이즈에 관한 정보(202)를 획득하고, 상기 MTD 파티션의 사이즈에 관한 정보(202)를 커널로 전달하면(S604), 커널은 새로운 업그레이드 이미지(20)에 포함된 /etc/cmdline 파일을 판독한다(S605). 그리고 커널은 상기 MTD 파티션의 사이즈에 관한 정보(202)를 기초로 하여 플래시 메모리의 MTD 파티션을 새롭게 분할 생성한다(S606). MTD 파티션은 상기 S603단계에서 사이즈가 동적으로 할당되도록 이미 세팅을 하였으므로, 사용자가 직접 변경하는 과정 없이도 MTD 파티션이 자동으로 분할된다. 만약 MTD 파티션의 분할이 실패하면(S607) 시스템은 부팅에 실패하게 되나(S608), MTD 파티션의 분할이 성공하면(S607) 각 MTD 파티션의 영역에 각각의 부트 컨텐츠들이 저장되면서 주소코드가 새롭게 생성된다. 따라서 시스템은 새로운 업그레이드 이미지의 부팅에 성공한다(S609). 이 때 본 발명의 일 실시예에 따른 메모리 업그레이드 시스템(1)은 업그레이드 이미지(20)의 사이즈가 MTD 파티션의 사이즈보다 항상 작으므로 제어부(103)가 따로 사이즈를 비교하는 과정이 불필요하다(S610).
본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
1: 메모리 업그레이드 시스템 10: 업그레이드 대상 모듈
20: 업그레이드 이미지 101: 입력부
102: 저장부 103: 제어부
201: Uboot 환경변수 202: MTD 파티션의 사이즈에 관한 정보

Claims (6)

  1. MTD 파티션의 사이즈에 관한 정보를 가지는 환경변수 데이터를 포함하고, 메모리 업그레이드를 위해 사용되는 업그레이드 이미지;
    상기 업그레이드 이미지를 수신하는 데이터 입력부;
    상기 업그레이드 이미지 및 상기 환경변수 데이터를 기록하는 저장부;
    상기 업그레이드 이미지 및 상기 환경변수 데이터의 기록의 성공 여부를 판단하고, 상기 환경변수 데이터를 기초로 상기 저장부에 새롭게 MTD 파티션을 동적으로 생성하는 제어부를 포함하는, 메모리 업그레이드 시스템.
  2. 제1항에 있어서,
    상기 저장부는,
    플래시 메모리를 포함하는, 메모리 업그레이드 시스템.
  3. 제2항에 있어서,
    상기 환경변수 데이터는,
    상기 업그레이드 이미지에 포함되는 각각의 부트 컨텐츠의 사이즈에 관한 정보를 포함하는, 메모리 업그레이드 시스템.
  4. USB 또는 인터넷을 통해 업그레이드 프로그램이 선택되어 시작되는 단계;
    MTD 파티션의 사이즈에 관한 정보를 가지는 환경변수 데이터를 포함하고, 메모리 업그레이드를 위해 사용되는 업그레이드 이미지를 복사하는 단계;
    저장부에 있는 MTD 파티션에 기록된 기존의 이미지를 삭제하고 새로운 상기 업그레이드 이미지를 기록하는 단계;
    상기 업그레이드 이미지를 기록하는 동작이 성공하면, 상기 업그레이드 프로그램이 상기 MTD 파티션에 있는 기존의 환경변수 데이터를 삭제하고 새로운 상기 환경변수 데이터를 기록하는 단계; 및
    상기 환경변수 데이터를 기초로 상기 저장부에 새롭게 MTD 파티션을 동적으로 생성하는 단계를 포함하는, 메모리 업그레이드 방법.
  5. 제4항에 있어서,
    상기 저장부는,
    플래시 메모리를 포함하는, 메모리 업그레이드 방법.
  6. 제5항에 있어서,
    상기 환경변수 데이터는,
    상기 업그레이드 이미지에 포함되는 각각의 부트 컨텐츠의 사이즈에 관한 정보를 포함하는, 메모리 업그레이드 방법.
KR1020150136049A 2015-09-25 2015-09-25 메모리 업그레이드 시스템 및 방법 KR102429346B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150136049A KR102429346B1 (ko) 2015-09-25 2015-09-25 메모리 업그레이드 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150136049A KR102429346B1 (ko) 2015-09-25 2015-09-25 메모리 업그레이드 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20170037017A true KR20170037017A (ko) 2017-04-04
KR102429346B1 KR102429346B1 (ko) 2022-08-03

Family

ID=58588715

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150136049A KR102429346B1 (ko) 2015-09-25 2015-09-25 메모리 업그레이드 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102429346B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108196870A (zh) * 2017-12-29 2018-06-22 北京臻迪科技股份有限公司 升级方法及装置
CN110716723A (zh) * 2019-09-25 2020-01-21 天津华来科技有限公司 一种固件升级方法及系统
CN113626060A (zh) * 2021-08-06 2021-11-09 天津津航计算技术研究所 vxworks系统下基于分离存储的在线升级方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090060774A (ko) 2007-12-10 2009-06-15 한국전자통신연구원 임베디드 시스템의 펌웨어 및 데이터 미러링 장치 및 방법
JP2011095952A (ja) * 2009-10-29 2011-05-12 Kyocera Mita Corp ファームウェア更新方法および電子機器
KR20130075018A (ko) 2011-12-27 2013-07-05 한국전자통신연구원 플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090060774A (ko) 2007-12-10 2009-06-15 한국전자통신연구원 임베디드 시스템의 펌웨어 및 데이터 미러링 장치 및 방법
JP2011095952A (ja) * 2009-10-29 2011-05-12 Kyocera Mita Corp ファームウェア更新方法および電子機器
KR20130075018A (ko) 2011-12-27 2013-07-05 한국전자통신연구원 플래시 메모리 파일 시스템에 적용 가능한 데이터 업데이트 장치 및 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108196870A (zh) * 2017-12-29 2018-06-22 北京臻迪科技股份有限公司 升级方法及装置
CN110716723A (zh) * 2019-09-25 2020-01-21 天津华来科技有限公司 一种固件升级方法及系统
CN113626060A (zh) * 2021-08-06 2021-11-09 天津津航计算技术研究所 vxworks系统下基于分离存储的在线升级方法
CN113626060B (zh) * 2021-08-06 2023-08-01 天津津航计算技术研究所 vxworks系统下基于分离存储的在线升级方法

Also Published As

Publication number Publication date
KR102429346B1 (ko) 2022-08-03

Similar Documents

Publication Publication Date Title
US8370835B2 (en) Method for dynamically generating a configuration for a virtual machine with a virtual hard disk in an external storage device
US7032107B2 (en) Virtual partition for recording and restoring computer data files
KR101121641B1 (ko) 시스템 동작 제어 장치 및 방법
KR100823171B1 (ko) 파티션된 플래시 변환 계층을 갖는 컴퓨터 시스템 및플래시 변환 계층의 파티션 방법
KR102269452B1 (ko) 컨텐츠 변환 없는 컴퓨팅 디바이스에서의 다중 운영 체제 환경들의 지원
KR20210089150A (ko) 호스트 컴퓨팅 디바이스 가상 메모리에 의해 지원되는 가상 머신 메모리의 더 빠른 액세스
CN103198450B (zh) 图像形成装置
EP3518099B1 (en) Installation of operating system
EP2765503B1 (en) Method and electronic device of the file system prefetching and boot-up method
KR20080007430A (ko) Nand 플래시 메모리 시스템 체계
US8370617B2 (en) Booting method and computer system using the booting method
JPWO2005071522A1 (ja) 高速再起動方法および情報処理装置ならびにプログラム
US20180095693A1 (en) Information processing apparatus, information processing system, and method for controlling information processing apparatus
US20120089765A1 (en) Method for performing automatic boundary alignment and related non-volatile memory device
KR101692015B1 (ko) 운영체제와 파일저장 기능이 가능한 이동식 저장장치
CN111796882A (zh) 电子设备系统处理方法、装置及电子设备
KR102429346B1 (ko) 메모리 업그레이드 시스템 및 방법
US9952984B2 (en) Erasing a storage block before writing partial data
CN111694580B (zh) 存储设备升级及初始化的方法、装置、电子设备
CN101604253A (zh) 计算机系统及启动方法
US7234039B1 (en) Method, system, and apparatus for determining the physical memory address of an allocated and locked memory buffer
US10564894B2 (en) Free space pass-through
KR102571501B1 (ko) 메모리 장치
CN113950673A (zh) 非易失性存储分区标识符
TWI841160B (zh) 存儲控制器的驅動管理方法及相關設備

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant