KR20130000400A - 처리 장치 및 기입 방법 - Google Patents

처리 장치 및 기입 방법 Download PDF

Info

Publication number
KR20130000400A
KR20130000400A KR1020127025277A KR20127025277A KR20130000400A KR 20130000400 A KR20130000400 A KR 20130000400A KR 1020127025277 A KR1020127025277 A KR 1020127025277A KR 20127025277 A KR20127025277 A KR 20127025277A KR 20130000400 A KR20130000400 A KR 20130000400A
Authority
KR
South Korea
Prior art keywords
address
block
file
stored
blocks
Prior art date
Application number
KR1020127025277A
Other languages
English (en)
Other versions
KR101421364B1 (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 가부시키가이샤 제이브이씨 켄우드
Publication of KR20130000400A publication Critical patent/KR20130000400A/ko
Application granted granted Critical
Publication of KR101421364B1 publication Critical patent/KR101421364B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • 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/04Addressing variable-length words or parts of words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

취득부(130)는 파일을 복수의 블록으로 분할하여 기억 가능한 기억 장치로부터, 각 블록의 어드레스가 표시된 관리 정보를 취득한다. 생성부(132)는 취득한 관리 정보로부터, 각 블록의 어드레스를 추출하는 한편, 어드레스가 연속된 블록을 연속 영역으로서 집약하는 것에 의해, 각 연속 영역에 대한 스타트 어드레스와 사이즈가 표시된 테이블을 생성한다. 판독부(134)는 비휘발성 메모리에 기억된 파일을 판독한다. 분할부(136)는 판독한 파일을 복수의 블록으로 분할한다. 기입부(138)는 테이블에 기초하여, 스타트 어드레스에서 사이즈에 걸친 연속 영역별로, 관리 정보에 표시된 어드레스를 유지시키도록, 분할한 파일을 기억 장치에 기입한다.

Description

처리 장치 및 기입 방법{PROCESSING DEVICE AND WRITE METHOD}
본 발명은, 기입 기술에 관한 것으로서, 기억 매체에 파일을 기입하는 처리 장치 및 기입 방법에 관한 것이다.
컴퓨터에는, 일반적으로 운영체제(OS: Operating System)가 탑재되어 있고, 각종의 소프트웨어 프로그램은 이 운영체제를 바탕으로 동작된다. 컴퓨터의 기동시에는 BIOS(Basic Input Output System)가 부트로더를 RAM에 카피하여 기동시키고, 부트로더가 하드디스크 드라이브(HDD)에 기억된 운영체제의 이미지 파일을 RAM으로 불러오는 것에 의해, 운영체제가 동작 가능하게 된다. 이에 부트로더에 의한 운영체제의 이미지 판독에서는, 파일 할당 테이블(File Allocation Table)이 종시 참조된다. 하지만, 파일 할당 테이블을 참조한 판독은, 일반적으로 고속으로 실행할 수 있는 것이 아니기 때문에, 운영체제의 기동 시간의 단축이 방해되었다(예를 들면, 특허문헌 1 참조).
일본국 특허출원공개 2004-246787호 공보
펌웨어도 HDD에 기억될 수 있다. 예를 들면, 튜너나 네트워크에 의해 다운로드한 펌웨어나 착탈 가능한 기억 매체로부터 카피한 펌웨어가 일시적으로 HDD에 격납된다. 여기서, HDD에 기억된 펌웨어가 FLASH ROM 등의 비휘발성 메모리에 기입되는 것에 의해 펌웨어가 경신된다. HDD로의 펌웨어의 격납, 비휘발성 메모리로의 펌웨어의 기입은, 어플리케이션 프로그램도 가능하다. 하지만, 비휘발성 메모리로의 기입에 관해서는, 처리 도중의 정전이나 전원이 차단되는 등이 발생하면, 다음번 어플리케이션을 기동할 수 없게 되므로, 복귀 처리도 포함하면 부트로더가 수행하는 것이 바람직하다.
한편, 어플리케이션 프로그렘이 파일 시스템 상에서 펌웨어를 격납했다고 해도, 파일 시스템에 대응되지 않는 부트로더는 블록 어드레스를 지정하여 펌웨어를 직접 판독해야 한다. 구체적으로 설명하면, 파일 시스템 정보를 해석한다. ext2의 경우, 파일 시스템 정보는, 슈퍼 블록, 파일 기술자 등에 상당한다. 이에 이어서, 부트로더는 디렉토리 엔트리를 서치하면서 펌웨어의 선두 어드레스를 추출하고, 그 후 필요한 파일의 내용물 혹은 그 일부를 판독한다.
CD-ROM 등에서 사용되는 ISO 9660 파일 시스템에서는, 파일의 선두 어드레스만 추출할 수 있으면, 파일 내용물의 블록 어드레스가 연속되어 있으므로, 적당하게 판독 단위를 구획하여 판독하면 된다. 하지만, ext2의 경우 파일 내용물이 블록 어드레스가 연속되어 있지 않고, 데이터 사이에 부정기로 i노드가 포함되어 있다. 그러므로, 파일 시스템을 사용하지 않는 부트로더는, 1블록별로, 1노드에 의해 표시되는 어드레스를 추출하는 것에 의해 파일을 판독한다. i노드를 판독할 때마다 시크 액세스의 오버로드가 발생하여, 처리에 시간이 걸리고 만다. 이러한 과제는 판독할 때뿐만 아니라 기입할 때도 동일하게 존재한다.
구버전의 펌웨어 혹은 그 일부를 HDD에 기억시킨 경우, 파일 시스템의 규칙에 따라 작성된 파일이 경신되면, 작성되는 파일의 블록 어드레스는 매번 변하게 된다. 그러므로, 판독 기입의 대상이 되는 블록 어드레스가 확정되지 않고, 결국, 부트로더에 파일 시스템에 상당한 처리를 부가하는 것이 필요하다. 그 결과, 부트로더의 코드량이 증대하고 만다. 이는, 리소스가 한정된 삽입 기기(embedded device)에 있어서 바람직하지 않다. 이러한 것들의 회피책으로서, 파일 시스템을 사용하지 않고 운용하는 방법도 있지만, 반대로 어플리케이션 프로그램으로부터 파일을 판독 기입할 수 없게 될 뿐만 아니라, 기타 파일을 기억할 수 없게 된다.
본 발명은, 상기와 같은 과제를 해결하기 위하여, 부트로더에 의한 파일의 판독 기입의 처리 지연을 단축하는 기술을 제공하는 것을 목적으로 한다.
상기 과제를 해결하기 위하여, 본 발명의 일 실시형태에 따른 처리 장치는, 파일을 복수의 블록으로 분할하여 기억 가능한 기억 장치로부터, 파일을 구성하는 각 블록의 어드레스가 표시된 관리 정보를 취득하는 취득부와; 취득부에서 취득한 관리 정보로부터, 각 블록의 어드레스를 추출하는 한편, 어드레스가 연속된 블록을 연속 영역으로서 집약하는 것에 의해, 각 연속 영역에 대한 스타트 어드레스와 사이즈가 표시된 테이블을 생성하는 생성부와; 비휘발성 메모리에 기억된 데이터를 판독하는 판독부와; 생성부에서 생성한 테이블에 기초하여, 데이터를, 스타트 어드레스에서 사이즈로 결정되는 종료 어드레스까지 걸쳐진 연속 영역별로 분할하고, 분할한 데이터를 관리 정보에 표시된 파일을 구성하는 각 블록의 어드레스를 유지시키도록 상기 기억 장치에 기입하는 기입부; 를 구비한다.
이 실시형태에 의하면, 기억 장치로부터, 연속 영역에 대응한 스타트 어드레스와 사이즈가 표시된 테이블을 작성하고, 테이블에 따라 기억 장치에 파일을 기입하기 때문에, 기입 시간을 단축할 수 있다.
취득부는 파일이 복수의 블록으로 분할되어 기억된 기억 장치로부터, 각 블록의 어드레스가 표시된 관리 정보를 재취득하고; 생성부는 취득부에서 재취득한 관리 정보로부터, 각 블록의 어드레스를 추출하는 한편, 어드레스가 연속된 블록을 연속 영역으로서 재집약하는 것에 의해, 각 연속 영역에 대한 스타트 어드레스와 사이즈가 표시된 테이블을 재생성하고; 판독부는 생성부에서 재생성한 테이블에 기초하여, 스타트 어드레스에서 사이즈로 결정되는 종료 어드레스까지 걸쳐진 연속 영역별로, 기억 장치에 분할되어 기억된 파일을 구성하는 각 블록의 데이터를 판독하고; 기입부는 판독부에서 판독한 각 블록의 데이터를 비휘발성 메모리에 기입해도 좋다. 이 경우, 기억 장치에 기억된 파일 내의 연속 영역에 대응한 스타트 어드레스와 사이즈가 표시된 테이블을 재작성하고, 테이블에 따라 판독 처리를 실행하기 때문에, 경신 시간을 단축할 수 있다.
기입부는, 분할한 데이터를 기억 장치에 기입할 때, 기억 장치에 기억된 파일 정보 중에서, 속성, 파일명, 경신 일시 중의 적어도 하나를 경신해도 좋다. 이 경우, 속성, 파일명, 경신 일시 중의 적어도 하나를 경신하기 때문에, 경신 완료한 증거를 남길 수 있다.
본 발명의 다른 실시형태에 따른 처리 장치는, 제 1의 펌웨어 프로그램이 복수의 블록으로 분할되어 기억된 기억 장치로부터, 각 블록의 어드레스가 표시된 관리 정보를 취득하는 취득부와; 취득부에서 취득한 관리 정보로부터, 각 블록의 어드레스를 추출하는 한편, 어드레스가 연속된 블록을 연속 영역으로서 집약하는 것에 의해, 각 연속 영역에 대한 스타트 어드레스와 사이즈가 표시된 테이블을 생성하는 생성부와; 생성부에서 생성한 테이블에 기초하여, 스타트 어드레스에서 사이즈로 결정되는 종료 어드레스까지 걸쳐진 연속 영역별로, 기억장치에 분할되어 기억된 제 1의 펌웨어 프로그램을 판독하는 판독부와; 판독부에서 판독한 제 1의 펌웨어 프로그램에 의해, 비휘발성 메모리에 기억된 제 2의 펌웨어 프로그램을 경신하는 기입부; 를 구비한다.
이 실시형태에 의하면, 기억 장치에 기억된 제 1의 펌웨어 프로그램 내의 연속 영역에 대응한 스타트 어드레스와 사이즈가 표시된 테이블을 작성하고, 테이블에 따라 판독 처리를 실행하기 때문에, 경신 시간을 단축할 수 있다.
판독부는, 제 1의 펌웨어 프로그램의 일부를 판독 대상으로 하는 경우, 생성부에서 생성한 테이블에 기초하여, 판독 대상에 대응한 블록만 판독한다. 이 경우, 연속 영역 중에서 판독 대상에 대응한 블록만을 판독하기 때문에, 제 1의 펌웨어 프로그램의 일부를 판독 대상으로 하는 경우에도 대응할 수 있다.
생성부는, 이미 생성한 테이블을 재이용하는 것에 의해, 테이블의 생성을 생략해도 좋다. 이 경우, 이미 생성한 테이블을 재이용하기 때문에, 처리기간을 단축할 수 있다.
본 발명의 일 실시형태에 따른 기입 방법은, 파일을 복수의 블록으로 분할하여 기억 가능한 기억 장치로부터, 파일을 구성하는 각 블록의 어드레스가 표시된 관리 정보를 취득하는 스텝과; 취득한 관리 정보로부터, 각 블록의 어드레스를 추출하는 한편, 어드레스가 연속된 블록을 연속 영역으로서 집약하는 것에 의해 각 연속 영역에 대한 스타트 어드레스와 사이즈가 표시된 테이블을 생성하는 스텝과; 비휘발성 메모리에 기억된 데이터를 판독하는 스텝과; 생성한 테이블에 기초하여, 데이터를, 스타트 어드레스에서 사이즈로 결정하는 종료 어드레스까지 걸쳐진 연속 영역별로 분할하고, 분할한 데이터를 관리 정보에 표시된 파일을 구성하는 각 블록의 어드레스를 유지시키도록 기억 장치에 기입하는 스텝; 을 포함한다.
본 발명의 다른 실시형태에 따른 기입 방법은, 제 1의 펌웨어 프로그램이 복수의 블록으로 분할되어 기억된 기억 장치로부터, 각 블록의 어드레스가 표시된 관리 정보를 취득하는 스텝과; 취득한 관리 정보로부터, 각 블록의 어드레스를 추출하는 한편, 어드레스가 연속된 블록을 연속 영역으로서 집약하는 것에 의해 각 연속 영역에 대한 스타트 어드레스와 사이즈가 표시된 테이블을 생성하는 스텝과; 생성한 테이블에 기초하여, 스타트 어드레스에서 사이즈로 결정되는 종료 어드레스까지 걸쳐진 연속 영역별로, 기억 장치에 분할되어 기억된 제 1의 펌웨어 프로그램을 판독하는 스텝과; 판독한 제 1의 펌웨어 프로그램에 의해, 비휘발성 메모리에 기억된 제 2의 펌웨어 프로그램을 경신하는 스텝; 을 포함한다.
또한, 이상의 구성 요소의 임의의 조합, 본 발명의 표현을, 방법, 장치, 시스템, 기록매체, 컴퓨터 프로그램 등의 사이에서 변환한 것도, 본 발명의 실시형태로서 유효하다.
본 발명에 의하면, 부트로더에 의한 파일의 판독 기입의 처리 지연을 단축할 수 있다.
도 1은 본 발명의 실시예 1에 따른 처리 장치의 구성을 나타내는 도면이다.
도 2는 도 1의 HDD에 있어서의 ext2 파일 시스템의 개요를 나타내는 도면이다.
도 3은 도 1의 HDD에 있어서의 i노드 테이블과 블록 어드레스의 개요를 나타내는 도면이다.
도 4는 도 1의 HDD에 있어서의 블록 어드레스 상의 파일과 i노드의 관계를 나타내는 도면이다.
도 5는 도 1의 HDD의 구성을 나타내는 도면이다.
도 6은 도 1의 HDD의 판독 단위 블록 수와 판독 시간의 관계를 나타내는 도면이다.
도 7은 도 1의 부트로더의 구성을 나타내는 도면이다.
도 8은 도 7의 생성부에서 생성되는 연속 영역의 개요를 나타내는 도면이다.
도 9는 도 7의 생성부에서 생성되는 테이블을 나타내는 도면이다.
도 10은 도 7의 판독부에 있어서의 시단과 종단에 의한 스타트 어드레스와 사이즈의 조정 개념도이다.
도 11은 도 7의 부트로더에 의한 기입 순서를 나타내는 플로차트이다.
도 12는 도 7의 생성부에 있어서의 테이블의 작성 순서를 나타내는 플로차트이다.
도 13은 도 7의 생성부에 있어서의 블록 어드레스의 추출 순서를 나타내는 플로차트이다.
도 14는 본 발명의 실시예 2에 따른 부트로더에 의한 기입 순서를 나타내는 플로차트이다.
도 15는 본 발명의 실시예 3에 따른 부트로더에 의한 기입 순서를 나타내는 플로차트이다.
도 16은 본 발명의 실시예 4에 따른 부트로더에 의한 기입 순서를 나타내는 플로차트이다.
도 17은 본 발명의 실시예 5에 따른 부트로더에 의한 기입 순서를 나타내는 플로차트이다.
도 18은 도 17에 이어지는 부트로더에 의한 기입 순서를 나타내는 플로차트이다.
도 19는 본 발명의 실시예 6에 따른 부트로더에 의한 기입 순서를 나타내는 플로차트이다.
(실시예 1)
본 발명을 구체적으로 설명하기 전에, 먼저 개요를 기술한다. 본 발명의 실시예는, HDD(Hard Disk Drive)에 기억된 펌웨어 프로그램에 의해, 비휘발성 메모리에 기억된 펌웨어 프로그램을 경신하기 위한 부트로더에 관한 것이다. 여기서는, 일례로서 HDD에 사용되는 파일 시스템이 ext2인 것으로 한다. ext2에 있어서, 펌웨어 프로그램은 복수의 블록으로 분할되어 기억된다. 한편, 복수의 블록이 꼭 연속되어 있는 것은 아니다. 상세한 것은 후술하지만, HDD로부터의 펌웨어 프로그램의 판독기간을 단축하기 위해서는, 시크의 반복 회수를 적게 하고, 연속된 블록을 한번에 판독하는 것이 유효하다.
한편, 부트로더는, HDD에 기억된 펌웨어 프로그램의 블록 어드레스를 미리 인식하고 있기 않기 때문에, 블록 어드레스가 표시된 i노드를 취득해야 한다. 이 i노드는, HDD 내에서 분산하여 격납되기 때문에, i노드로부터 블록 어드레스를 취득하면서, 펌웨어 프로그램을 판독하는 경우, 연속된 블록을 한번에 판독하는 것이 곤란해진다. 그러므로, 판독 속도의 고속화가 곤란해진다. 이에 대응하기 위하여, 실시예에 따른 부트로더는 다음의 처리를 실행한다.
부트로더는, 펌웨어 프로그램을 판독하기 전에, i노드로부터 블록 어드레스를 취득하고, 연속된 블록(이하, "연속 영역"이라고 함)에 관한 테이블을 생성한다. 당해 테이블에는 각 연속 영역의 스타트 어드레스와 사이즈가 표시되어 있다. 부트로더는, 테이블을 참조하면서 연속된 블록을 한번에 판독하는 것에 의해, HDD로부터의 펌웨어 프로그램의 판독을 고속화시킨다.
도 1은 본 발명의 실시예 1에 따른 처리 장치(100)의 구성을 나타낸다. 처리 장치(100)는, 프로세서(102), HDD(104), 휘발성 메모리(106), 비휘발성 메모리(108), 착탈식 메모리(110), 튜너(112)를 포함한다. 또한, 프로세서(102)는 CPU(중앙 처리 장치)(114), 부트로더(116)를 포함한다. 또한, 처리 장치(100)는 네트워크(118)를 통해 서버(112)에 접속된다.
프로세서(102)는 집적회로 등에 의해 실현된다. 프로세서(102)는 CPU(114)와 부트로더(116) 이외에, 다양한 드라이버, 전용 처리 모듈을 통합하고 있다. 프로세서(102)는 다양한 디바이스나 미디어와 액세스가 가능하다. 비휘발성 메모리(108)는 FLASH ROM, EEPROM 등이고, CPU(114)가 처리해야 하는 프로그램을 격납한다. 또한, 비휘발성 메모리(108)는 펌웨어 프로그램을 기억한다. 휘발성 메모리(106)는 SDRAM 등으로 구성된 실처리용 메모리이다. 부트로더(116)가 프로그램을 비휘발성 메모리(108)로부터 휘발성 메모리(106)에 불러와 기동시키는 것에 의해, CPU(114)가 프로그램을 처리 가능하게 된다. 또한, 부트로더(116)의 처리는 단계적으로 나눌 수 있기 때문에, 일부가 프로그램에 포함되는 경우도 있다.
튜너(112)는, BS/CS/지상파 디지털/지상파 아날로그 등을 수신 가능한 모듈이고, 프로세서(102)에 의한 제어에 의해 수신데이터를 출력한다. HDD(104)는 각종의 프로그램이나 튜너(112)에 의해 수신한 데이터 등을 축적한다. 여기서, HDD(104)는 비휘발성 메모리(108)에 기억된 펌웨어 프로그램보다 새로운 버전의 펌웨어 프로그램을 기억한다. 프로세서(102)에는 착탈식 메모리(110)의 드라이버가 포함되어 있고, 착탈식 메모리(110)에 대해 데이터의 판독 기입이 가능하다. 또한, 프로세서(102)는 통신용 드라이버를 구비하고 있고, 인터넷, 인트라넷 등의 네트워크(118)를 통해 원격지의 서버(112)와 통신한다.
비휘발성 메모리(108)에는, 일반적으로 공장 출하시에 펌웨어 프로그램 등의 프로그램이 기입되어 있다. 프로그램의 내용 수정이나 성능 향상을 목적으로 하여, 출하 후에 사용자의 사용 환경에 있어서 프로그램의 경신이 이루어진다. 프로그램 경신의 일례가, 위성방송을 이용한 온에어 다운로드에 의한 경신이다. 이는, 편성표 등과 마찬가지로, 프로그램의 경신 데이터가 튜너(112)에 의해 다운로드되고, 데이터를 축적한 후, 프로그램 경신이 이루어진다. 마찬가지로 원격지로부터 다운로드하는 방법으로서, 원격지의 서버(112)로부터 네트워크(118)를 경유하여 프로그램의 경신 데이터가 다운로드되고, 데이터를 축적한 후 프로그램 경신이 이루어져도 좋다. 또한, 다른 방법으로서, 착탈식 메모리(110)에 기억된 데이터가 카피되고, 데이터를 축적한 후 프로그램 경신이 이루어져도 좋다.
본 실시예는, 프로그램 경신으로서, 펌웨어 프로그램의 경신을 대상으로 한다. 펌웨어 프로그램의 경신에 있어서의 처리는, 경신 데이터를 취득하여 축적하기 위한 처리(이하, "축적 처리"라고 함), 축적한 경신 데이터를 판독하여 비휘발성 메모리(108)에 기입 처리(이하, "기입 처리"라고 함)로 분류된다. 전술한 바와 같이, 경신 데이터는 HDD(104)에 축적된다. 축적 처리는, 온에어 다운로드나 네트워크(118)를 경유한 다운로드 등, 어플리케이션 프로그램의 동작 중에 이루어지기 때문에, 축적 처리 자체도 어플리케이션 프로그램에 의해 이루어진다. 착탈식 메모리(110)로부터의 데이터 카피도, 어플리케이션 프로그램의 동작 중이면, 파일을 카피하는 것만으로 끝나기 때문에, 어플리케이션 프로그램에 의한 축적 처리가 적합하다.
한편, 기입 처리는, 어플리케이션 프로그램으로도 실현 가능하지만, 어플리케이션 프로그램은 경신 데이터에 포함된다. 그러므로, 기입 중에 정전이나 사용자에 의한 전원 차단이 발생하면, 다음에 OS(Operating System)나 어플리케이션 프로그램이 정상으로 기동하지 않게 될 우려가 있다. 그 결과, 기입의 재시행이 불가능해져, 두 번 다시 복귀하지 못하게 된다. 그러므로, 축적한 경신 데이터를 판독하여 비휘발성 메모리(108)에 기입하는 처리는, OS나 어플리케이션에 의존하지 않는 부트로더(116)에 의해 이루어지는 것이 바람직하다. 또한, 기입 처리를 부트로더(116)가 하는 경우, 전처리인 경신 데이터를 취득하여 축적하는 처리와의 사이에는 리부트 처리가 따르기 때문에, 데이터의 축적 장소는 비휘발성이면서 경신용의 소프트웨어 프로그램을 격납 가능한 용량이 필요하게 된다. 그러므로, HDD(104)가 경신용의 소프트웨어 프로그램의 축적 장소로 적합하다.
도 2는 HDD(104)에 있어서의 ext2 파일 시스템의 개요를 나타낸다. OS에 Linux를 사용하는 경우, 블록 파일 시스템으로서는, ext2가 사용되는 경우가 많다. ext2는 Fast File System을 바탕으로 개발되었고, UNIX(등록상표)에서 전통적으로 사용되어 온 "블록 관리 알고리즘"을 베이스로 하고 있다. ext2에서는, 1024, 2048, 4096bytes 중의 하나로 블록 단위가 구성되고, 복수의 블록이 "블록 그룹"으로 통합되어 관리된다. 도 2에서는 블록 그룹의 구조가 도시된다. 도 2의 좌측은 도 1의 HDD(104) 내에 형성된 파티션을 나타내고, 도 2의 중앙은 ext2 파티션의 레이아웃을 나타낸다. 도 2의 우측은 블록 그룹 내의 레이아웃을 더욱 상세하게 나타낸다. 여기서, 슈퍼 블록이란 파일 시스템에 관한 관리 정보이고, 그룹 기술자란 그룹 내의 정보이고, 데이터 블록 비트맵이란 데이터 블록의 정보이다. 또한, i노드 테이블은 파일/디렉토리에 관한 정보를 유지하는 i노드를 격납하고, 데이터 블록은 실제 데이터를 유지한다.
도 1의 부트로더(116)는, 슈퍼 블록이나 그룹 기술자의 정보에서 파일 시스템의 정보를 얻은 후, 디렉토리 엔트리 내를 서치하여, 목적의 파일에 대응한 i노드 테이블의 정보를 얻는다. i노드 테이블에 기초하여, 데이터 블록의 메모리 어드레스를 구하는 것에 의해, 실제 파일 내 데이터의 판독이 가능해진다. 데이터 블록의 사이즈는, 다른 블록과 동일한 1024, 2048, 4096bytes 중의 한 값이다. 데이터 블록의 사이즈가 2048byte이고, 파일 사이즈가 200kbytes인 파일의 참조에는 100개의 데이터 블록이 필요하게 된다. 하지만, 100개의 데이터 블록에 대해 100개의 어드레스를 유지하는 경우, 정보량이 증대하기 때문에, ext2에서는 효율적으로 어드레스 범위를 사용하기 위하여 간접 블록을 작성하고, 간접 포인터에 의해 참조할 수 있도록 하고 있다.
도 3은 HDD(104)에 있어서의 i노드 테이블과 블록 어드레스의 개요를 나타낸다. i노드가 갖는 데이터 블록 참조용 배열은 15개이고, ext2에서는 그 중 12개를 "직접 참조", 나머지 3개를 각각 "1단 간접 참조" "2단 간접 참조" "3단 간접 참조"용으로 사용한다. 이에 의해 ext2는, 복수의 데이터 블록을 필요로 하는 용량이 큰 파일을 효율적으로 다룬다. 각각의 참조 방법에서, 표현 가능한 파일 사이즈는 계산상 다음과 같이 된다. 직접 참조의 계산식은 "블록 사이즈×12개"이다. 블록 사이즈가 1024bytes, 2048bytes, 4096bytes인 경우, 각각 파일 사이즈는 12Kbytes, 24Kbytes, 48Kbytes가 된다.
1단 간접 참조에서는, 간접 참조용으로 "블록 사이즈÷4"개분 사용할 수 있다. 이는, 블록 포인터의 크기 "byte"에 상당한다. 그러므로, 파일 사이즈로 환산하면 "블록 사이즈÷4*블록 사이즈"가 되고, 블록 사이즈가 1024bytes, 2048bytes, 4096bytes인 경우, 각각의 파일 사이즈는 256Kbytes, 1Mbytes, 4Mbytes가 된다. 2단 간접 참조에서는, 파일 사이즈로 환산하면 "((블록사이즈÷4)2)×블록 사이즈"가 된다. 그러므로, 블록 사이즈가 1024bytes, 2048bytes, 4096 bytes인 경우, 각각의 파일 사이즈는 64Mbytes, 512Mbytes, 4Gbytes가 된다. 도 1의 비휘발성 메모리(108)에 기입해야 하는 경신용 프로그램의 파일 사이즈가 수십~수백Mbytes인 경우, 2단 간접 참조를 사용하는 것이 바람직하다.
도 4는 HDD(104)에 있어서의 블록 어드레스 상의 파일과 i노드의 관계를 나타낸다. i노드 자체는, HDD(104)에 있어서 통합된 영역에 격납되어 있지 않고, 데이터 블록 내에 형성된다. 그러므로, 간접 참조를 사용한 경우, 원 파일의 데이터에 연속성이 없어진다. 이는 커널(kernel)이 i노드와 그에 대응하는 데이터 블록을 판독할 때, 디스크 헤드의 시크를 줄이기 위해서 i노드를 데이터 블록과 동일 그룹 내에 할당하려고 하기 때문이다. 어드레스 표현이 4bytes인 경우, 1블록 중에 격납할 수 있는 어드레스 수는, [블록 사이즈÷4]가 된다. 즉, 계산상 [블록 사이즈÷4]에 1회는 데이터 중에 i노드를 넣지 않으면 모든 어드레스를 표현할 수 없다. 예를 들면, 2048bytes인 경우, 512bytes에 1회는 i노드가 삽입되지 않으면 모든 어드레스를 표현할 수 없다. 그리고 실제로는 항상 512bytes가 아닌, 부정기로, 또는 더 적은 간격으로 i노드가 삽입된다. 또한, 파일의 위치와 그 중에 포함되는 i노드의 위치는 파일 생성시마다 경신되기 때문에 특정이 곤란하게 된다. 즉, 도 1의 부트로더(116)는 파일의 선두 데이터가 들어 있는 블록 어드레스를 추출했다고 해도 블록을 연속으로 판독하지 않고, 1 블록별로 참조를 실행하면서 데이터의 블록 어드레스를 판독해야 한다.
도 5는 HDD(104)의 구성을 나타낸다. 동심원 형태로 생성된 트랙(150)에 데이터를 판독 기입하는 단위로서 섹터(152)라는 영역이 형성된다. 스윙암(114)에 의해 자기 헤드(146)가 디스크(140) 상을 이동하게 되고, 데이터에 대한 액세스가 이루어진다. 이 조작을 시크라고 부르고, 그 소요 시간을 시크 시간이라고 부른다. 동일 실린더(148) 내이면 시크 시간이 없기 때문에, 회전 대기 시간만 존재하지만, 시크를 수반하는 경우에는 시크 시간을 고려해야 한다. 일반적으로 HDD(104)의 데이터 판독 시간은 [(평균 시크 시간+평균 회전 대기 시간+데이터 전송 시간)×(시크의 반복 회수)]로 계산된다. 여기서, 데이터의 전송 시간<<(평균 시크 시간+평균 회전 대기 시간)의 관계가 성립된다. 그러므로, [시크의 반복 회수]가 적을수록 전체의 데이터 판독 시간은 단축된다. 또한, 하나의 트랙(150)을 넘는 사이즈의 파일을 판독하는 경우에 연속된 어드레스를 한번에 판독하는 것이, 롱시크가 아닌, 1트랙 점프로 액세스할 수 있기 때문에, 데이터 판독 시간이 단축된다.
도 6은 HDD(104)의 판독 단위 블록 수와 판독 시간의 관계를 나타낸다. 이는 액세스 단위를 변경하면서 128Mbytes의 데이터의 판독 시간을 계측한 결과이다. 1블록 단위의 판독에 대해, 판독 단위 블록 수를 늘려 나아가는 것에 따라, 판독시간이 크게 감소하고, 128Mbytes부근에서 포화되어 있다.
도 7은 부트로더(116)의 구성을 나타낸다. 부트로더(116)는 취득부(130), 생성부(132), 판독부(134), 분할부(136), 기입부(138)를 포함한다. 취득부(130)는 도 1의 HDD(104)에 있어서의 ext2 파일 시스템 상에 구성되어 있는 슈퍼 블록을 해석하여, 블록 사이즈 등의 필요한 정보를 취득한다. 취득부(130)는 그룹 기술자를 해석하여, i노드 테이블 ID 등 필요한 정보를 취득한다. 취득부(130)는 디렉토리 엔트리를 서치하여, 업데이트 파일의 i노드 정보를 취득한다.
생성부(132)는 경신용 펌웨어 프로그램이 복수의 블록으로 분할되어 기억된 HDD(104)로부터, 각 블록의 어드레스가 표시된 관리 정보를 취득한다. 생성부(132)는 취득한 관리 정보, 즉 i노드 테이블의 정보와 간접 참조를 사용하여 파일 내의 각 블록에 대응한 블록 어드레스를 추출한다. 생성부(132)는 블록 어드레스가 연속된 블록을 연속 영역으로서 집약한다. 도 8은 생성부(132)에서 생성되는 연결 영역의 개요를 나타낸다. 그리고 블록 어드레스와 연속 영역의 스타트 어드레스와, 사이즈를 나타내는 테이블의 관계에 대해 보족한다. 도 8은 파일 내의 전체 블록을 배열로서 표현하고, 각각의 블록 어드레스와의 대응을 나타낸 것이다. 직접 참조인 Block[0]에서 Block[11]까지는 블록 어드레스도 연결되어 있지만, Block[12]부터는 블록 어드레스가 하나씩 어긋나 있다. 이는 i노드의 간접 참조에 사용되고 있으므로, 0×00001C0C가 빠져있기 때문이다. 도 7로 돌아간다.
또한, 생성부(132)는 각 연속 영역에 대한 스타트 어드레스와 사이즈가 표시된 테이블을 생성한다. 테이블은 도 1의 휘발성 메모리(106) 상에 배열로서 구성되어도 좋고, HDD(104)나 비휘발성 메모리(108)에 격납되어도 좋다. 도 9는 생성부(132)에서 생성되는 테이블을 나타낸다. 최초의 연속 영역은 도 8의 Block[0]에서 Block[11]의 범위가 되고, 대응하는 스타트 어드레스와 사이즈는 도 9의 최초의 행에 나타내는 값이 된다. 제 2의 연속 영역 이후에도 동일하고, 결과로서 도 9와 같은 테이블이 생성된다. 도 9의 테이블 사이즈는, 도 8의 테이블 사이즈보다 훨씬 작다. 예를 들면, 펌웨어 프로그램의 파일 사이즈가 수십~수백Mbytes이고 블록 사이즈가 2048bytes인 경우, 2단 간접 참조로 실현할 수 있고, 대략 계산으로 1/(2048/4)=1/512의 테이블 사이즈가 된다. 그러므로, 도 8의 테이블을 유지하는 경우보다 테이블을 유지하기 위한 리소스가 대폭으로 삭감된다. 도 7로 돌아간다.
판독부(134)는 생성부(132)에서 생성한 테이블에 기초하여, 스타트 어드레스로부터 사이즈에 걸친 연속 영역별로, HDD(104)로 분할하여 기억된 경신용 펌웨어 프로그램을 판독한다. 즉, 판독부(134)는 연속 영역에 포함된 복수의 블록을 통합하여 판독한다. 판독부(134)는 판독한 펌웨어 프로그램을 휘발성 메모리(106)에 일시적으로 기억한다. 이때, 경신용 펌웨어 프로그램 내의 일부를 잘라내는 경우, 잘라내는 일부의 시단과 종단이 꼭 연속 영역의 구획부로 되어 있는 것은 아니다. 그때, 판독부(134)는 시단과 종단이 어느 연속 영역에 포함되는지를 미리 검출하고, 스타트 어드레스와 사이즈를 조정한다.
예를 들면, 연속 영역의 도중의 블록이 시단인 경우, 시단에 대응한 블록까지 스타트 어드레스가 후방으로 옮겨진다. 또한, 종단에 관해서도 동일하다. 즉, 판독부(134)는 경신용 펌웨어 프로그램의 일부를 판독 대상으로 하는 경우, 생성부(132)에서 생성한 테이블에 기초하여, 판독 대상에 대응한 블록만 판독한다. 기입부(138)는 휘발성 메모리(106)로부터 경신용 펌웨어 프로그램을 판독하여, 비휘발성 메모리(108)에 기입한다. 즉, 기입부(138)는 판독부(134)에서 판독한 경신용 펌웨어 프로그램에 의해, 비휘발성 메모리(108)에 기억된 지금까지의 펌웨어 프로그램을 경신한다. 또한, 분할부(136)는 실시예 1에 있어서 동작하지 않는다.
파일 내 일부의 데이터에 대해, 판독 기입하는 경우, 도 9의 테이블에 있어서의 연속 영역의 구획이 꼭 시단과 종단으로 되어 있지는 않다. 따라서, 판독 기입을 개시하기 전에, 미리 시단과 종단이 어느 연속 영역에 포함되는지를 검출하고, 각각의 스타트 어드레스와 사이즈를 조정함으로써 대응한다. 도 10은 판독부(134)에 있어서의 시단과 종단에 따른 스타트 어드레스와 사이즈의 조정의 개념도이다. 시단과 종단에 있어서의 스타트 어드레스와 사이즈의 조정을 하기 위해서는, 우선, 도 10의 우측에 나타내는 바와 같이 연속 영역을 차례로 연결해나가, 가상의 어드레스를 작성한다(실제로는, 사이에 i-node가 들어가기 때문에, 실제 어드레스와는 상이하다). 그 과정에 있어서, 판독 대상 데이터의 (파일 선두 기준에 있어서의) 선두 위치를 나타내는 start 및 종단 위치를 나타내는 end가, 각 연속 영역의 가상 어드레스 내에 존재하는지 여부를 검출한다. 도면에 나타내는 바와 같이, start와 end를 실선으로 둘러싼 영역이 판독하고자 하는 데이터이다. 이 경우의 start 위치는 Ext[3]에 포함되기 때문에, Ext[3]에 대해 스타트 어드레스를 뒤로 옮기고, 또한 사이즈를 작게 하는 것으로 보정이 가능하게 된다. 동일하게, end 위치에 대해서는 Ext[(112)]에 포함되기 때문에 Ext[(112)]에 대해 사이즈를 작게 하는 것으로 보정이 가능하게 된다.
이 구성은, 하드웨어적으로는 임의의 컴퓨터 CPU, 메모리, 기타 LSI로 실현할 수 있고, 소프트웨어적으로는 메모리에 로드된 프로그램 등에 의해 실현되지만, 여기서 그들의 협력에 의해 실현되는 기능 블록을 도시하고 있다. 따라서, 이들 기능 블록이 하드웨어만으로, 소프트웨어만으로, 또는 이들의 조합에 의해 다양한 형태로 실현할 수 있는 것은, 당업자에게 있어서 자명하다.
이상의 구성에 따른 부트로더(116)의 동작을 설명한다. 도 11은 부트로더(116)에 의한 기입 순서를 나타내는 플로차트이다. 취득부(130)는 ext2 파일 시스템 상에 구성되어 있는 슈퍼 블록의 해석을 하여(S10), 블록 사이즈 등의 필요한 정보를 취득한다. 취득부(130)는 그룹 기술자의 해석을 하여(S12), i노드 테이블 ID 등의 필요한 정보를 취득한다. 취득부(130)는 디렉토리 엔트리를 서치하여, 업데이트 파일의 i노드 정보를 취득한다(S14).
생성부(132)는 i노드 테이블의 정보와 간접 참조를 사용하여 파일 내의 각 블록에 대응한 블록 어드레스를 추출하고, 연속 영역의 스타트 어드레스와 사이즈를 나타내는 테이블을 작성한다(S16). 판독부(134)는 연속 영역별로 경신용 펌웨어를 HDD(104)로부터 판독하여, 휘발성 메모리(106)에 일시 격납한다(S18). 기입부(138)는 휘발성 메모리(106)로부터 경신용 펌웨어를 판독하여 휘발성 메모리(108)에 기입한다(S20).
도 12는 생성부(132)에 있어서의 테이블의 작성 순서를 나타내는 플로차트이다. 생성부(132)는 파일의 선두에 위치하는 선두 블록 어드레스를 추출한다(S40). 생성부(132)는 연속 영역의 스타트 어드레스에, 추출한 선두 블록 어드레스의 값을 삽입한다(S42). 생성부(132)는 파라미터(연속 영역 번호, 연속 영역 사이즈, 블록수 카운터)를 초기화한다(S44). 블록수 카운터(m)가 블록 사이즈를 넘지 않았으면(S46의 Y), 생성부(132)는 블록 어드레스를 추출한다(S48).
생성부(132)는 블록 어드레스가 한개 앞의 데이터의 블록 어드레스와 연속되어 있는지를 확인하고, 연속되어 있는 경우에는 (S50의 Y), 사이즈만 인크리멘트한다(S54). 연속되어 있지 않은 경우에는(S50의 N), 생성부(132)는 연속 영역 번호를 인크리멘트함과 동시에, 스타트 어드레스를 현재 대상으로 하고 있는 블록 어드레스로 경신하고, 사이즈를 초기화(1)한다(S52). 생성부(132)는 블록수 카운터를 인크리멘트한(S56) 후에 스텝(S46)으로 돌아간다. 블록수 카운터(m)가 블록 사이즈를 넘으면 (S46의 N), 처리는 종료된다.
도 13은 생성부(132)에 있어서의 블록 어드레스의 추출 순서를 나타내는 플로차트이다. 이는, 도 12의 스텝(S40), 스텝(S48)에서의 블록 어드레스의 추출에 상당한다. 도 11의 스텝(S14)에서 얻어진 i노드 정보로부터, 도 3에 표시된 i노드 테이블 중에서, 대상의 i노드의 추출할 수 있지만, 설명을 명료하게 하기 위해 이 중의 참조 정보를 빼낸 것을 i_node[i] 0<i<15로 한다(S70). i<12이면(S72의 Y), 생성부(132)는 직접 참조를 하여 블록 어드레스를 추출한다(S74). i<12가 아니고 (S72의 N) i=12이면(S76의 Y), 생성부(132)는 1단 간접 참조를 하여 블록 어드레스를 추출한다(S78). i=12가 아니고(S76의 N), i=13이면(S80의 Y), 생성부(132)는 2단 간접 참조를 하여 블록 어드레스를 추출한다(S82). i=13이면(S80의 N), 즉 i=14이면 생성부(132)는 3단 간접 참조를 하여 블록 어드레스를 추출한다(S84).
본 발명의 실시예에 의하면, HDD에 격납된 경신용 펌웨어 프로그램 내의 연속 영역에 대응된 스타트 어드레스와 사이즈가 표시된 테이블을 작성하고, 테이블에 따라 판독 처리를 실행하기 때문에, 펌웨어 프로그램의 경신 시간을 단축할 수 있다. 또한, 테이블을 작성하기 때문에, 파일 시스템을 갖지 않는 부트로더가, 비휘발성 메모리에 격납된 펌웨어 프로그램을 경신하는 경우에도, 경신 시간을 단축할 수 있다. 또한 HDD로부터의 판독 사이즈는, [블록 사이즈÷4]에 가까워지기 때문에, 판독을 고속으로 할 수 있다. 또한, 파일 시스템 상에서 파일의 재배치 등이 이루어진 경우에도 유연하게 추종하기 때문에, 성능에 대한 영향을 줄일 수 있다. 또한, 연속 영역의 테이블의 정보량은, 블록 어드레스에 대한 테이블의 정보량보다 작기 때문에, 처리 효율을 향상시킬 수 있다.
(실시예 2)
본 발명의 실시예 2는, 실시예 1과 동일하게, 펌웨어 프로그램을 기입하기 위한 부트로더에 관한 것이다. 한편, 실시예 2는 실시예 1과 달리, 비휘발성 메모리에 기억된 펌웨어 프로그램을 HDD에 일시 격납하는 경우에 상당한다. 여기서 HDD로의 일시 격납은, 펌웨어 프로그램의 백업을 목적으로 이루어진다. 즉, 실시예 2와 실시예 1에서는, 펌웨어 프로그램을 판독해야 하는 기억 매체와, 펌웨어 프로그램을 기입해야 하는 기억 매체가 반대로 된다. 실시예 2에 따른 처리 장치(100)는 도 1과 동일한 타입이고, 실시예 2에 따른 부트로더(116)는 도 7과 동일한 타입이다. 여기서는, 실시예 1과의 차이를 중심으로 설명한다.
또, HDD(104)에는, 백업용 펌웨어 프로그램 혹은 백업해야하는 펌웨어 프로그램과 동일 사이즈의 파일이, 파일 시스템 상에 있어서 어플리케이션 프로그램 등에 의해 격납되어 있다. 취득부(130)는 도 1의 HDD(104)에 대해, 슈퍼 블록 및 그룹 기술자를 해석한다. 나아가, 취득부(130)는 디렉토리 엔트리를 서치하여, HDD(104)에 이미 기억되어 있는 파일의 i노드 정보를 취득한다.
생성부(132)는 백업용 펌웨어 등의 파일을 복수의 블록으로 분할하여 기억 가능한 HDD(104)로부터, 각 블록의 어드레스가 표시된 관리 정보를 취득한다. 생성부(132)는, i노드 테이블의 정보와 간접 참조를 사용하여 파일 내의 각 블록에 대응한 블록 어드레스를 추출한다. 생성부(132)는, 블록 어드레스가 연속된 블록을 연속 영역으로서 집약한다. 생성부(132)는, 각 연속 영역에 대한 스타트 어드레스와 사이즈가 표시된 테이블을 생성한다. 판독부(134)는, 비휘발성 메모리(108)에 기억된 펌웨어 프로그램을 판독하여, 휘발성 메모리(106)에 일시 격납한다. 판독한 펌웨어 프로그램이, 지금부터 백업해야하는 펌웨어 프로그램이다.
분할부(136)는 휘발성 메모리(106)에 기억된 펌웨어 프로그램을 분할한다. 또한, 분할부(136)는 생성부(132)에서 집약한 연속 영역에 적합하도록, 분할한 복수의 블록을 집약한다. 이와 같은 처리에 의해, 생성부(132)에서 생성한 각 연속 영역에 대응하도록, 펌웨어 프로그램이 복수로 분할된다. 기입부(138)는, 생성부(132)에서 생성한 테이블에 기초하여, 스타트 어드레스에서 사이즈에 걸친 연속 영역별로, 분할부(136)에서 분할한 펌웨어 프로그램을 HDD(104)에 기입한다. 즉, 연속 영역의 어드레스를 변경하지 않도록, 복수로 분할된 펌웨어 프로그램이 HDD(104)에 기입된다. 그 결과, i노드 테이블과 같은 관리 정보에 표시된 블록 어드레스도 변화되지 않는다. HDD(104)에 펌웨어 프로그램을 기입하는 것이, 펌웨어 프로그램을 백업하는 것에 상당한다.
도 14는 본 발명의 실시예 2에 따른 부트로더(116)에 의한 기입 순서를 나타내는 플로차트이다. 취득부(130)는 ext2 파일 시스템 상에 구성되어 있는 슈퍼 블록의 해석을 하여(S100), 블록 사이즈 등의 필요한 정보를 취득한다. 취득부(130)는 그룹 기술자의 해석을 하여(S102), i노드 테이블 ID 등의 필요한 정보를 취득한다. 취득부(130)는 디렉토리 엔트리를 서치하여, 백업용 파일의 i노드 정보를 취득한다(S104).
생성부(132)는 i노드 테이블의 정보와 간접 참조를 사용하여 파일 내의 각 블록에 대응한 블록 어드레스를 추출하고, 연속 영역의 스타트 어드레스와 사이즈를 나타내는 테이블을 작성한다(S106). 판독부(134)는 비휘발성 메모리(108)로부터 펌웨어를 휘발성 메모리(106)로 불러온다(S108). 기입부(138)는 휘발성 메모리(106)로부터 백업용 펌웨어를 판독하여, 연속 영역별로, HDD(104)에서의 백업 파일에 기입한다(S110).
본 발명의 실시예에 의하면, 미리 어플리케이션 프로그램 등에 의해 생성한 동일 사이즈의 파일에 대해, 연속 영역에 대응한 스타트 어드레스와 사이즈가 표시된 테이블을 작성하고, 테이블에 따라 기입 처리를 실행하기 때문에 백업 시간을 단축할 수 있다. 또한, 테이블에 따라 기입 처리를 실행하기 때문에 HDD 내에 백업용 데이터를 기억할 때에도 기입 처리를 고속으로 할 수 있다. 또한, 테이블에 따라 기입 처리를 실행하기 때문에, 파일 시스템을 사용한 어플리케이션 프로그램의 처리와 공존할 수 있다. 또한, 파일 시스템을 갖지 않는 부트로더에 의한 파일의 기입은, 곤란하지만, 먼저 배치한 동일 사이즈의 파일 블록 어드레스를 이용하여 기입을 하기 때문에, 파일 시스템 상의 어플리케이션 프로그램의 처리와의 공존을 실현할 수 있다.
또, 상기 설명에는 분할부(136)와 기입부(138)가 분리되어 있는 경우에 대해 설명했지만, 실제의 처리에 있어서는 휘발성 메모리(106)와 HDD(104) 사이에서 데이터 전송(카피)하는 API(Application Program Interface) 혹은 함수를 준비하여, 지정하는 어드레스를 옮겨가는 것에 의해 실현 가능한 것은 물론이다.
(실시예 3)
본 발명의 실시예 3은, 실시예 2의 동작에 이어서 실시예 1의 동작을 실행하는 경우에 상당한다. 즉, 실시예 3은 실시예 2의 동작에 의해 HDD에 기억된 백업 파일을 이용하여, 비휘발성 메모리의 펌웨어 프로그램을 경신하는 경우에 상당한다. 이와 같은 펌웨어 프로그램의 경신은, 펌웨어 프로그램의 리커버리라고도 할 수 있다. 실시예 3에 따른 처리 장치(100)는 도 1과 동일한 타입이고, 실시예 3에 따른 부트로더(116)는 도 7과 동일한 타입이다. 여기서는, 지금까지의 실시예와의 차이를 중심으로 설명한다.
HDD(104)에는 백업용 펌웨어 프로그램이, 파일 시스템 상에 있어서, 실시예 2에서의 처리에 의해 격납되어 있다. 취득부(130)는, 도 1의 HDD(104)에 있어서의 ext2 파일 시스템 상에 구성되어 있는 슈퍼 블록 및 그룹 기술자를 해석한다. 취득부(130)는 디렉토리 엔트리를 서치하여, 백업용 파일의 i노드 정보를 재취득한다. 즉, 취득부(130)는 백업용 펌웨어 프로그램이 복수의 블록으로 분할되어 기억된 HDD(104)로부터, 각 블록의 어드레스가 표시된 관리 정보를 재취득한다.
생성부(132)는 취득부(130)에서 취득한 관리 정보, 즉 i노드 테이블의 정보와 간접 참조를 사용하여 백업용 펌웨어 프로그램 내의 각 블록에 대응한 블록 어드레스를 추출한다. 생성부(132)는 블록 어드레스가 연속된 블록을 연속 영역으로서 집약한다. 생성부(132)는 각 연속 영역에 대한 스타트 어드레스와 사이즈가 표시된 테이블을 재생성한다. 판독부(134)는 생성부(132)에서 재생성한 테이블에 기초하여, 스타트 어드레스에서 사이즈에 걸친 연속 영역별로, HDD(104)에 분할되어 기억된 백업용 펌웨어 프로그램을 판독한다. 판독부(134)는 판독한 펌웨어 프로그램을 휘발성 메모리(106)에 일시적으로 기억한다.
기입부(138)는 휘발성 메모리(106)로부터 백업용 펌웨어 프로그램을 판독하여, 비휘발성 메모리(108)에 기입한다. 즉, 기입부(138)는 판독부(134)에서 판독한 백업용 펌웨어 프로그램에 의해, 비휘발성 메모리(108)에 기억된 지금까지의 펌웨어 프로그램을 리커버리한다. 또, 분할부(136)는 실시예 3에 있어서 동작하지 않는다.
도 15는 본 발명의 실시예 3에 따른 부트로더(116)에 의한 기입 순서를 나타내는 플로차트이다. 취득부(130)는 ext2 파일 시스템 상에 구성되어 있는 슈퍼 블록의 해석을 하여(S130), 블록 사이즈 등의 필요한 정보를 취득한다. 취득부(130)는 그룹 기술자의 해석을 하여(S132), i노드 테이블 ID 등의 필요한 정보를 취득한다. 취득부(130)는 디렉토리 엔트리를 서치하여, 업데이트 파일의 i노드 정보를 취득한다(S134).
생성부(132)는 i노드 테이블의 정보와 간접 참조를 사용하여 파일 내의 각 블록에 대응한 블록 어드레스를 추출하고, 연속 영역의 스타트 어드레스와 사이즈를 나타내는 테이블을 작성한다(S136). 판독부(134)는 연속 영역별로, 백업용 펌웨어를 HDD(104)로부터 판독하여, 휘발성 메모리(106)에 일시 격납한다(S138). 기입부(138)는 휘발성 메모리(106)로부터 백업용 펌웨어를 판독하여, 휘발성 메모리(108)에 기입한다(S140).
본 발명의 실시예에 의하면, HDD에 격납된 경신용 펌웨어 프로그램 내의 연속 영역에 대응한 스타트 어드레스와 사이즈가 표시된 테이블을 작성하고, 테이블에 따라 판독 처리를 실행하기 때문에, 펌웨어 프로그램의 리커버리 시간을 단축할 수 있다. 또한, 테이블을 작성하기 때문에, 파일 시스템을 갖지 않는 부트로더가 비휘발성 메모리에 격납된 펌웨어 프로그램을 경신하는 경우에도, 리커버리 시간을 단축할 수 있다.
(실시예 4)
본 발명의 실시예 4는, 실시예 2와 동일하게, 비휘발성 메모리에 기억된 펌웨어 프로그램을 HDD에 일시 격납하는 경우에 상당한다. 실시예 4에서는, 펌웨어 프로그램을 HDD에 격납할 때 파일 정보도 경신된다. 실시예 4에 따른 처리 장치(100)는 도 1과 동일한 타입이고, 실시예 4에 따른 부트로더(116)는 도 7과 동일한 타입이다. 여기서는, 지금까지의 실시예와의 차이를 중심으로 설명한다.
기입부(138)는 실시예 2와 동일하게, 생성부(132)에서 생성한 테이블에 기초하여, 스타트 어드레스에서 사이즈에 걸친 연속 영역별로 분할부(136)에서 분할한 펌웨어 프로그램을 HDD(104)에 기입한다. 그때, 기입부(138)는 HDD(104)에 기입해야 하는 펌웨어 프로그램에 관한 파일 정보 중에서 속성, 파일명, 경신 일시 중의 적어도 하나를 경신한다.
도 16은 본 발명의 실시예 4에 따른 부트로더(116)에 의한 기입 순서를 나타내는 플로차트이다. 도 16 스텝(S160)~스텝(S170)은, 도 14의 스텝(S100)~스텝(S110)과 동일하다. 기입부(138)는 파일 정보 중에서, 속성, 파일명, 경신 일시 중의 적어도 하나를 경신한다(S172).
본 발명의 실시예에 의하면, 파일 정보 중에서, 속성, 파일명, 경신 일시 중의 적어도 하나를 경신하기 때문에, 경신 완료한 증거를 남길 수 있다. 또한, 파일 정보 중에서, 속성, 파일명, 경신 일시 중의 적어도 하나를 경신하는 것에 의해, 파일 시스템 상의 데이터를 경신하기 때문에, 어플리케이션 프로그램으로부터도 경신을 확인할 수 있다.
(실시예 5)
본 발명의 실시예 5는, 실시예 2에 있어서 사용한 테이블과 실시예 3에 있어서 사용한 테이블을 공통화하는 경우에 상당한다. 즉, 실시예 5는 비휘발성 메모리에 기억된 펌웨어 프로그램을 HDD에 백업 파일로서 일시 격납하는 경우와, HDD에 일시 격납한 백업 파일을 이용하는 것에 의해, 비휘발성 메모리에 기억된 펌웨어 프로그램을 경신하는 경우에 있어서 테이블을 공통화하는 것에 관한다. 이와 같은 처리에 의해, 테이블 작성을 위한 시간을 삭감하는 것이 가능하게 된다. 실시예 5에 따른 처리 장치(100)는 도 1과 동일한 타입이고, 실시예 5에 따른 부트로더(116)는 도 7과 동일한 타입이다. 여기서는, 지금까지의 실시예와의 차이를 중심으로 설명한다.
실시예 2와 동일하게, 비휘발성 메모리(108)에 기억된 펌웨어 프로그램을 HDD(104)에 기억시킬 때, 취득부(130)는 HDD(104)나 비휘발성 메모리(108)에, 이미 생성한 테이블이 격납되어 있는지를 확인한다. 테이블이 격납되어 있지 않으면, 취득부(130) 및 생성부(132)는 실시예 2와 동일한 처리를 실행하는 것에 의해 테이블을 생성한다. 한편, 테이블이 격납되어 있으면, 취득부(130) 및 생성부(132)는 실시예 2에서의 처리를 생략하고, 판독부(134)는 비휘발성 메모리(108)에 기억된 펌웨어 프로그램을 판독하여, 휘발성 메모리(106)에 일시 격납한다.
실시예 3과 동일하게, HDD(104)에 기억된 백업용 펌웨어 프로그램을 비휘발성 메모리(108)에 기억시킬 때도, 취득부(130)는 HDD(104)나 비휘발성 메모리(108)에, 이미 생성한 테이블이 격납되어 있는지를 확인한다. 여기서, 테이블은 과거에 있어서, 비휘발성 메모리(108)에 기억된 펌웨어 프로그램을 HDD(104)에 기억시킬 때, 혹은 HDD(104)에 기억된 펌웨어 프로그램을 비휘발성 메모리(108)에 기억시킬 때 생성되어 있으면 된다. 테이블이 격납되어 있지 않으면, 취득부(130) 및 생성부(132)는 실시예 3과 동일한 처리를 실행하는 것에 의해 테이블을 생성한다. 한편, 테이블이 격납되어 있으면, 취득부(130) 및 생성부(132)는 실시예 3에서의 처리를 생략하고, 판독부(134)는 격납되어 있던 테이블에 기초하여, 스타트 어드레스에서 사이즈에 걸친 연속 영역별로, HDD(104)에 분할되어 기억된 백업용 펌웨어 프로그램을 판독한다. 이와 같이 생성부(132)는, 이미 생성한 테이블을 재이용하는 것에 의해, 테이블의 생성 처리를 생략한다.
도 17은 본 발명의 실시예 5에 따른 부트로더(116)에 의한 기입 순서를 나타내는 플로차트이다. 기존의 테이블이 있으면(S190의 Y), 판독부(134)는 테이블을 판독한다(S192). 기존의 테이블이 없으면(S190의 N), 취득부(130)는 슈퍼 블록을 해석한다(S194). 스텝(S194)~스텝(S206)은 도 14의 스텝(S100)~스텝(S110)과 동일하다.
도 18은 도 17에 이어서 부트로더(116)에 의한 기입 순서를 나타내는 플로차트이다. 기존의 테이블이 있으면(S220의 Y), 판독부(134)는 테이블을 판독한다(S222). 기존의 테이블이 없으면(S220의 N), 취득부(130)는 슈퍼 블록을 해석한다(S224). 스텝(S224)~스텝(S236)은 도 15의 스텝(S130)~스텝(S140)과 동일하다.
본 발명의 실시예에 의하면, 테이블을 공통화하는 것에 의해, 백업 데이터의 경신 처리 시간을 단축할 수 있고, 또한 백업 데이터를 사용한 리커버리의 처리 시간도 단축할 수 있다. 또한, 기존의 테이블을 판독하기 때문에 테이블 작성을 위한 시간을 삭감할 수 있다. 또한, 기존의 테이블을 판독하기 때문에 처리량을 줄일 수 있다.
(실시예 6)
본 발명의 실시예 6은, 실시예 1에 있어서 테이블을 이미 생성한 경우, 테이블을 새로 생성하지 않고, 이미 생성한 테이블을 이용하는 경우에 상당한다. 실시예 6에 따른 처리 장치(100)는 도 1과 동일한 타입이고, 실시예 6에 따른 부트로더(116)는 도 7과 동일한 타입이다. 여기서는, 지금까지의 실시예와의 차이를 중심으로 설명한다.
실시예 1과 동일하게, HDD(104)에 기억된 경신용 펌웨어 프로그램을 비휘발성 메모리(108)에 기억시킬 때, 취득부(130)는, HDD(104)나 비휘발성 메모리(108)에, 이미 생성한 테이블이 격납되어 있는지를 확인한다. 테이블이 격납되어 있지 않으면, 취득부(130) 및 생성부(132)는 실시예 1과 동일한 처리를 실행하는 것에 의해 테이블을 생성한다. 한편, 테이블이 격납되어 있으면, 취득부(130) 및 생성부(132)는 실시예 1에서의 처리를 생략하고, 판독부(134)는 격납되어 있는 테이블에 기초하여, 스타트 어드레스에서 사이즈에 걸친 연결 영역별로, HDD(104)에 분할되어 기억된 경신용 펌웨어 프로그램을 판독한다. 또, 취득부(130)는, 테이블이 격납되어 있는 경우에도, 테이블의 작성 일시를 확인하고, 소정의 기간보다 전에 테이블이 작성되어 있는 경우, 취득부(130) 및 생성부(132)는 실시예 1과 동일한 처리를 실행해도 좋다. 즉, 테이블이 소정의 기간보다 새로운 경우에만 당해 테이블이 이용되면 된다.
도 19는 본 발명의 실시예 6에 따른 부트로더(116)에 의한 기입 순서를 나타내는 플로차트이다. 기존의 테이블이 있으면(S250의 Y), 판독부(134)는 테이블을 판독한다(S252). 기존의 테이블이 없으면(S250의 N), 취득부(130)는 슈퍼 블록을 해석한다(S254). 스텝(S254)~스텝(S266)은 도 11의 스텝(S10)~스텝(S20)과 동일하다.
본 발명의 실시예에 의하면, 기존의 테이블을 판독하기 때문에, 테이블 작성을 위한 시간을 삭감할 수 있다. 또한, 테이블 작성을 위한 시간이 삭감되기 때문에, 펌웨어 프로그램의 경신 시간을 단축할 수 있다. 또한, 동일 경신용 펌웨어 프로그램을 사용하여 처리를 재시행하고자 하는 경우나, 생산시에 미리 기입해놓는 경우에, 처리 기간을 단축할 수 있다.
이상, 본 발명을 실시예를 바탕으로 설명했다. 이 실시예는 예시이고, 상기 실시예들의 각 구성 요소나 각 처리 프로세스의 조합에 다양한 변형예가 가능하고, 또한 그러한 변형예도 본 발명의 범위에 포함되는 것은, 당업자에게 있어서 자명하다.
실시예 1~6의 임의의 조합도 유효하다. 본 변형예에 의하면, 실시예 1~6의 임의의 조합에 의한 효과를 얻을 수 있다.
실시예 1~6에 있어서, 부트로더(116)는 펌웨어 프로그램을 처리 대상으로 하고 있다. 하지만, 이에 한정되지 않고 예를 들면, 부트로더(116)는 펌웨어 프로그램의 파일을 처리 대상으로 해도 좋다. 본 변형예에 의하면 다양한 종류의 파일의 판독 처리나 기입 처리에 본 발명을 적용할 수 있다.
실시예 1~7에 있어서, HDD(104)에서의 파일 시스템으로서 ext2 파일 시스템을 설명 대상으로 하고 있다. 하지만, 이에 한정되지 않고 예를 들면, HDD(104)에서의 파일 시스템으로서 ext2 이외의 파일 시스템, ext3이 사용되어도 좋다. 본 변형예에 의하면, 다양한 종류의 파일 시스템에 대해 본 발명을 적용할 수 있다.
100: 처리 장치
102: 프로세서
104: HDD
106: 휘발성 메모리
108: 비휘발성 메모리
110: 착탈식 메모리
112: 튜너
114: CPU
116: 부트로더
118: 네트워크
120: 서버
130: 취득부
132: 생성부
134: 판독부
136: 분할부
138: 기입부
[산업상 이용가능성]
본 발명에 의하면, 부트로더에 의한 파일 판독 기입의 처리 지연을 단축할 수 있다.

Claims (11)

  1. 파일을 복수의 블록으로 분할하여 기억 가능한 기억 장치로부터, 상기 파일을 구성하는 각 블록의 어드레스가 표시된 관리 정보를 취득하는 취득부와,
    상기 취득부에서 취득한 관리 정보로부터 각 블록의 어드레스를 추출하는 한편, 어드레스가 연속된 블록을 연속 영역으로서 집약하는 것에 의해, 각 연속 영역에 대한 스타트 어드레스와 사이즈가 표시된 테이블을 생성하는 생성부와,
    비휘발성 메모리에 기억된 데이터를 판독하는 판독부와,
    상기 생성부에서 생성한 테이블에 기초하여, 상기 데이터를, 스타트 어드레스에서 사이즈로 결정되는 종료 어드레스까지 걸쳐진 연속 영역별로 분할하고, 분할한 데이터를, 관리 정보에 표시된 상기 파일을 구성하는 각 블록의 어드레스를 유지시키도록 상기 기억 장치에 기입하는 기입부를 구비하는 것을 특징으로 하는 처리 장치.
  2. 제 1항에 있어서,
    상기 취득부는, 파일이 복수의 블록으로 분할되어 기억된 상기 기억 장치로부터, 각 블록의 어드레스가 표시된 관리 정보를 재취득하고,
    상기 생성부는, 상기 취득부에서 재취득한 관리 정보로부터, 각 블록의 어드레스를 추출하는 한편, 어드레스가 연속된 블록을 연속 영역으로서 재집약하는 것에 의해, 각 연속 영역에 대한 스타트 어드레스와 사이즈가 표시된 테이블을 재생성하고,
    상기 판독부는, 상기 생성부에서 재생성한 테이블에 기초하여, 스타트 어드레스에서 사이즈로 결정되는 종료 어드레스까지 걸쳐진 연속 영역별로, 상기 기억 장치에 분할되어 기억된 상기 파일을 구성하는 각 블록의 데이터를 판독하고,
    상기 기입부는, 상기 판독부에서 판독한 상기 각 블록의 데이터를 상기 비휘발성 메모리에 기입하는 것을 특징으로 하는 처리 장치.
  3. 제 1항에 있어서,
    상기 기입부는, 분할한 데이터를 상기 기억 장치에 기입할 때, 상기 기억 장치에 기억된 파일 정보 중에서, 속성, 파일명, 경신 일시 중의 적어도 하나를 경신하는 것을 특징으로 하는 처리 장치.
  4. 제 1의 펌웨어 프로그램이 복수의 블록으로 분할되어 기억된 기억 장치로부터, 각 블록의 어드레스가 표시된 관리 정보를 취득하는 취득부와,
    상기 취득부에서 취득한 관리 정보로부터, 각 블록의 어드레스를 추출하는 한편, 어드레스가 연속된 블록을 연속 영역으로서 집약하는 것에 의해, 각 연속 영역에 대한 스타트 어드레스와 사이즈가 표시된 테이블을 생성하는 생성부와,
    상기 생성부에서 생성한 테이블에 기초하여, 스타트 어드레스에서 사이즈로 결정되는 종료 어드레스까지 걸쳐진 연속 영역별로, 상기 기억 장치에 분할되어 기억된 제 1의 펌웨어 프로그램을 판독하는 판독부와,
    상기 판독부에서 판독한 제 1의 펌웨어 프로그램에 의해, 비휘발성 메모리에 기억된 제 2의 펌웨어 프로그램을 경신하는 기입부를 구비하는 것을 특징으로 하는 처리 장치.
  5. 제 4항에 있어서,
    상기 판독부는, 제 1의 펌웨어 프로그램의 일부를 판독 대상으로 하는 경우, 상기 생성부에서 생성한 테이블에 기초하여, 판독 대상에 대응한 블록만 판독하는 것을 특징으로 하는 처리 장치.
  6. 제 5항에 있어서,
    상기 판독부는, 연속 영역을 차례로 연결해가는 것에 의해 가상의 어드레스를 작성하는 한편, 판독 대상의 일부 데이터의 시단과 종단이 어느 연속 영역의 가상 어드레스 내에 존재하는지를 검출한 후, 스타트 어드레스와 사이즈를 조정하는 것을 특징으로 하는 처리 장치.
  7. 제 1항 내지 제 6항 중 어느 한 항에 있어서,
    상기 생성부는, 이미 생성한 테이블을 재이용하는 것에 의해, 테이블의 생성을 생략하는 것을 특징으로 하는 처리 장치.
  8. 파일을 복수의 블록으로 분할하여 기억 가능한 기억 장치로부터, 상기 파일을 구성하는 각 블록의 어드레스가 표시된 관리 정보를 취득하는 스텝과,
    취득한 관리 정보로부터, 각 블록의 어드레스를 추출하는 한편, 어드레스가 연속된 블록을 연속 영역으로서 집약하는 것에 의해, 각 연속 영역에 대한 스타트 어드레스와 사이즈가 표시된 테이블을 생성하는 스텝과,
    비휘발성 메모리에 기억된 데이터를 판독하는 스텝과,
    생성한 테이블에 기초하여, 상기 데이터를, 스타트 어드레스에서 사이즈로 결정되는 종료 어드레스까지 걸쳐진 연속 영역별로 분할하고, 분할한 데이터를, 관리 정보에 표시된 상기 파일을 구성하는 각 블록의 어드레스를 유지시키도록 상기 기억 장치에 기입하는 스텝을 포함하는 것을 특징으로 하는 기입 방법.
  9. 제 1의 펌웨어 프로그램이 복수의 블록으로 분할되어 기억된 기억 장치로부터, 각 블록의 어드레스가 표시된 관리 정보를 취득하는 스텝과,
    취득한 관리 정보로부터, 각 블록의 어드레스를 추출하는 한편, 어드레스가 연속된 블록을 연속 영역으로서 집약하는 것에 의해, 각 연속 영역에 대한 스타트 어드레스와 사이즈가 표시된 테이블을 생성하는 스텝과,
    생성한 테이블에 기초하여, 스타트 어드레스에서 사이즈로 결정되는 종료 어드레스까지 걸쳐진 연속 영역별로, 상기 기억 장치에 분할되어 기억된 제 1의 펌웨어 프로그램을 판독하는 스텝과,
    판독한 제 1의 펌웨어 프로그램에 의해, 비휘발성 메모리에 기억된 제 2의 펌웨어 프로그램을 경신하는 스텝을 포함하는 것을 특징으로 하는 기입 방법.
  10. 파일을 복수의 블록으로 분할하여 기억 가능한 기억 장치로부터, 상기 파일을 구성하는 각 블록의 어드레스가 표시된 관리 정보를 취득하는 스텝과,
    취득한 관리 정보로부터, 각 블록의 어드레스를 추출하는 한편, 어드레스가 연속된 블록을 연속 영역으로서 집약하는 것에 의해, 각 연속 영역에 대한 스타트 어드레스와 사이즈가 표시된 테이블을 생성하는 스텝과,
    비휘발성 메모리에 기억된 데이터를 판독하는 스텝과,
    생성한 테이블에 기초하여, 상기 데이터를, 스타트 어드레스에서 사이즈로 결정되는 종료 어드레스까지 걸쳐진 연속 영역별로 분할하고, 분할한 데이터를 관리 정보에 표시된 상기 파일을 구성하는 각 블록의 어드레스를 유지시키도록 상기 기억 장치에 기입하는 스텝을, 컴퓨터에 실행시키기 위한 프로그램.
  11. 제 1의 펌웨어 프로그램이 복수의 블록으로 분할되어 기억된 기억 장치로부터, 각 블록의 어드레스가 표시된 관리 정보를 취득하는 스텝과,
    취득한 관리 정보로부터, 각 블록의 어드레스를 추출하는 한편, 어드레스가 연속된 블록을 연속 영역으로서 집약하는 것에 의해, 각 연속 영역에 대한 스타트 어드레스와 사이즈가 표시된 테이블을 생성하는 스텝과,
    생성한 테이블에 기초하여, 스타트 어드레스에서 사이즈로 결정되는 종료 어드레스까지 걸쳐진 연속 영역별로, 상기 기억 장치에 분할되어 기억된 제 1의 펌웨어 프로그램을 판독하는 스텝과,
    판독한 제 1의 펌웨어 프로그램에 의해, 비휘발성 메모리에 기억된 제 2의 펌웨어 프로그램을 경신하는 스텝을, 컴퓨터에 실행시키기 위한 프로그램.
KR1020127025277A 2010-02-26 2011-02-16 처리 장치 및 기입 방법 KR101421364B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2010043428 2010-02-26
JPJP-P-2010-043428 2010-02-26
JPJP-P-2011-022605 2011-02-04
JP2011022605A JP5728982B2 (ja) 2010-02-26 2011-02-04 処理装置および書込方法
PCT/JP2011/000847 WO2011105023A1 (ja) 2010-02-26 2011-02-16 処理装置および書込方法

Publications (2)

Publication Number Publication Date
KR20130000400A true KR20130000400A (ko) 2013-01-02
KR101421364B1 KR101421364B1 (ko) 2014-07-18

Family

ID=44506458

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127025277A KR101421364B1 (ko) 2010-02-26 2011-02-16 처리 장치 및 기입 방법

Country Status (6)

Country Link
US (1) US20120317349A1 (ko)
EP (1) EP2541421A4 (ko)
JP (1) JP5728982B2 (ko)
KR (1) KR101421364B1 (ko)
CN (1) CN102792283B (ko)
WO (1) WO2011105023A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103535043A (zh) * 2011-11-25 2014-01-22 华为技术有限公司 一种机顶盒中呈现自定义内容的方法和机顶盒
JP2014194672A (ja) * 2013-03-28 2014-10-09 Fujitsu Ltd メモリ制御装置、及びメモリ制御方法
US9372643B2 (en) 2013-04-12 2016-06-21 International Business Machines Corporation Data set management
US9274900B2 (en) * 2013-12-03 2016-03-01 Samsung Electronics Co., Ltd. Method and apparatus for updating firmware
US20160306623A1 (en) * 2015-04-16 2016-10-20 Aic Inc. Control module of node and firmware updating method for the control module
CN105740134B (zh) * 2016-01-29 2018-03-20 浪潮(北京)电子信息产业有限公司 一种基于文件的测试方法及装置
CN106933970B (zh) * 2017-02-10 2019-11-22 福州瑞芯微电子股份有限公司 一种快速烧录数据至ext分区的方法和装置
KR20190083051A (ko) 2018-01-03 2019-07-11 에스케이하이닉스 주식회사 컨트롤러 및 그것의 동작방법
JP7367359B2 (ja) * 2018-08-10 2023-10-24 株式会社デンソー 車両用電子制御システム、ファイルの転送制御方法、ファイルの転送制御プログラム及び装置
CN109241012B (zh) * 2018-10-12 2024-02-02 平安科技(深圳)有限公司 样本录入方法、装置、计算机设备及存储介质
KR20200116373A (ko) * 2019-04-01 2020-10-12 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 그 동작 방법
CN110874285B (zh) * 2019-11-19 2022-06-21 厦门市美亚柏科信息股份有限公司 一种实现ext文件系统的可还原写操作的方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5740435A (en) * 1994-10-31 1998-04-14 Sony Corporation Data management apparatus and method for managing data of variable lengths recorded on a record medium
JPH1185580A (ja) * 1997-09-11 1999-03-30 Matsushita Electric Ind Co Ltd ファイル管理システム及びファイル管理方法
JP2914360B2 (ja) * 1997-09-30 1999-06-28 ソニー株式会社 外部記憶装置及びデータ処理方法
US7046805B2 (en) * 2001-03-20 2006-05-16 Digeo, Inc. System and method for efficiently storing and processing multimedia content
JP4122998B2 (ja) 2003-02-17 2008-07-23 セイコーエプソン株式会社 情報処理装置およびプログラム制御方法
JP2005235007A (ja) * 2004-02-20 2005-09-02 Sony Corp データ記憶装置及び方法
DE602004025556D1 (de) * 2004-06-08 2010-04-01 Freescale Semiconductor Inc Aufrechterhaltung der Cachespeicherkoherenz zum direkten Zugriff (DMA), Abschluss einer Aufgabe, zur Synchronisierung
US20070143559A1 (en) * 2005-12-20 2007-06-21 Yuichi Yagawa Apparatus, system and method incorporating virtualization for data storage
JP4652240B2 (ja) * 2006-01-18 2011-03-16 Necインフロンティア株式会社 パーティション・サイズ可変ファームウェア組込装置のファームウェア更新方法
JP4910402B2 (ja) * 2006-01-26 2012-04-04 富士ゼロックス株式会社 不揮発性メモリの書き換え装置及び書き換え方法
JP4855102B2 (ja) * 2006-02-23 2012-01-18 株式会社日立製作所 計算機システム及び管理計算機とストレージシステム並びに記憶領域割当量制御方法
JP2007310533A (ja) * 2006-05-17 2007-11-29 Matsushita Electric Ind Co Ltd 不揮発性記憶システム、不揮発性記憶装置、及びファイルデータ書き込み方法
TW200809610A (en) * 2006-08-03 2008-02-16 Realtek Semiconductor Corp Firmware update circuit of display device and the method thereof
JP2008146514A (ja) * 2006-12-13 2008-06-26 Canon Inc 情報処理装置、情報処理装置の制御方法、および情報処理装置の制御プログラム
JPWO2009096180A1 (ja) * 2008-01-30 2011-05-26 パナソニック株式会社 メモリコントローラ、不揮発性記憶装置、及び、不揮発性記憶システム
US9678879B2 (en) * 2008-05-29 2017-06-13 Red Hat, Inc. Set partitioning for encoding file system allocation metadata
JP5364340B2 (ja) * 2008-11-07 2013-12-11 株式会社ケーヒン バックアップ方法及び装置並びに車両用電子制御装置
US7900090B2 (en) * 2009-02-13 2011-03-01 Oracle America, Inc. Systems and methods for memory retention across resets
US8665897B2 (en) * 2009-10-26 2014-03-04 Adc Dsl Systems, Inc. Systems and methods for high-speed digital subscriber line software download
US8219768B2 (en) * 2010-01-05 2012-07-10 Hitachi, Ltd. System and method for establishing a copy pair relationship between source and destination volumes
US9003110B2 (en) * 2010-01-13 2015-04-07 International Business Machines Corporation Dividing incoming data into multiple data streams and transforming the data for storage in a logical data object

Also Published As

Publication number Publication date
WO2011105023A1 (ja) 2011-09-01
EP2541421A4 (en) 2013-11-20
JP5728982B2 (ja) 2015-06-03
KR101421364B1 (ko) 2014-07-18
EP2541421A1 (en) 2013-01-02
US20120317349A1 (en) 2012-12-13
CN102792283B (zh) 2015-06-10
CN102792283A (zh) 2012-11-21
JP2011198357A (ja) 2011-10-06

Similar Documents

Publication Publication Date Title
KR20130000400A (ko) 처리 장치 및 기입 방법
US10705919B2 (en) Data backup using metadata mapping
JP5342302B2 (ja) ファームウェア更新システム、ファームウェア配信サーバ、及びプログラム
US9128940B1 (en) Method and apparatus for performing file-level restoration from a block-based backup file stored on a sequential storage device
JP4261800B2 (ja) クライアントサーバー環境における差分バックアップシステムの管理方法
US8001165B2 (en) Storage system format for transaction safe file system
KR102319657B1 (ko) 저장된 데이터 유닛들의 동작 관리
KR20070003578A (ko) 데이터 무결성의 검증을 지연시킨 파일 시스템
KR20070003576A (ko) 파일 시스템 무결성에 대한 최적화된 시동 검증
CN113254394B (zh) 一种快照处理方法、系统、设备及存储介质
CN111506253A (zh) 一种分布式存储系统及其存储方法
KR102275240B1 (ko) 저장된 데이터 유닛들의 동작 관리
CN112230947A (zh) 一种操作系统的升级方法、升级系统
US20050262033A1 (en) Data recording apparatus, data recording method, program for implementing the method, and program recording medium
CN113419897A (zh) 一种文件处理方法、装置、电子设备及其存储介质
US10423494B2 (en) Trimming unused blocks from a versioned image backup of a source storage that is stored in a sparse storage
US10860533B1 (en) File size as an indicator of file properties
US20200364058A1 (en) Space snapshots
JPH09152983A (ja) フラッシュメモリに内在するファイルシステムにおけるリエントラントガーベジコレクション処理
CN111143284A (zh) 文件系统动态索引方法及装置
CN113821176B (zh) 一种数据迁移的处理方法、装置及存储介质
WO2024001643A1 (zh) 后备存储设备、元数据管理方法、装置、存储介质
CN110618897B (zh) 一种基于vgda信息恢复vg数据的方法
US11256583B2 (en) Efficient handling of RAID-F component repair failures
KR100704621B1 (ko) 이동형 저장 장치의 데이터 무결성을 보장하는 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170616

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180619

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190619

Year of fee payment: 6