WO2011024688A1 - ファームウェア更新システム、及び情報機器、並びにプログラム - Google Patents

ファームウェア更新システム、及び情報機器、並びにプログラム Download PDF

Info

Publication number
WO2011024688A1
WO2011024688A1 PCT/JP2010/063934 JP2010063934W WO2011024688A1 WO 2011024688 A1 WO2011024688 A1 WO 2011024688A1 JP 2010063934 W JP2010063934 W JP 2010063934W WO 2011024688 A1 WO2011024688 A1 WO 2011024688A1
Authority
WO
WIPO (PCT)
Prior art keywords
update
data
firmware
processing
block
Prior art date
Application number
PCT/JP2010/063934
Other languages
English (en)
French (fr)
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 EP10811738.3A priority Critical patent/EP2362312B1/en
Priority to CN201080002439.8A priority patent/CN102132258B/zh
Priority to US13/120,219 priority patent/US8726262B2/en
Publication of WO2011024688A1 publication Critical patent/WO2011024688A1/ja

Links

Images

Classifications

    • 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
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates

Definitions

  • the present invention relates to a firmware update system and an information device constituting a part thereof, and relates to a technique for rewriting firmware stored in a nonvolatile memory such as a NOR flash memory in the field of embedded devices, for example.
  • firmware images are generally large in size, when updating firmware, a method of extracting and distributing only the difference is used instead of distributing the entire image.
  • the entire image comparison method As a method for extracting the difference, there is an entire image comparison method in which the entire old and new firmware images are compared in byte units and the difference is extracted (for example, see Non-Patent Document 1).
  • the entire image comparison method when creating a new image from the difference on the information device side, the entire old image is required, and therefore, the entire old image needs to be backed up in order to recover when the update is interrupted. This is because the old data that has been rewritten does not remain in the RAM, so that it is necessary to keep a backup of the entire image in order to restore the old image.
  • the blocks that make up the old and new images are compared in block units, and they do not match.
  • the present invention has been made in view of such a situation.
  • the total size of a backup area and a storage area for differential data necessary for recovery when updating is interrupted is reduced efficiently and inexpensively.
  • a technique capable of executing firmware update is provided.
  • a firmware update system includes a management device that generates firmware update data, and an information device that acquires the firmware update data and updates the old firmware to the new firmware. Yes.
  • the management device generates difference data from the data of the old firmware and the new firmware, generates an update procedure document that describes update processing for generating new firmware from the old firmware and the difference data in the information device, and updates the information device Write back reference information (write back source address table) describing information for executing processing (write back processing) for returning data in the middle of update processing to a state before starting the update processing (write back processing) when the processing is interrupted.
  • Firmware update data distributed package
  • the management device prepares a plurality of types of processing order indicating the order for updating the plurality of blocks, and generates intermediate data indicating the state of each block being rewritten from the old firmware to the new firmware for each processing order, Using the new firmware and the intermediate data, the necessity of backup and the necessity of extracting differential data are checked in block units.
  • the management apparatus determines that the total value of the capacity required for backup and the capacity required for storing differential data is the smallest among a plurality of processing orders based on the check results regarding the necessity of backup and the necessity of extracting differential data. Specify the processing order. The specified processing order is described in the update procedure manual.
  • the management device compares the block to be processed with the other blocks in the intermediate data, checks the necessity of the backup according to whether or not they match, and determines the processing target in the new firmware.
  • the block is compared with all the blocks of the intermediate data, and the necessity of differential data extraction is checked depending on whether or not they match.
  • the management device indicates the reference position and size of data when executing the write-back process in units smaller than the block size, and can acquire the write-back process data from a plurality of positions. Information may be described.
  • the management apparatus can update the update procedure document so that the update process data can be acquired from a plurality of positions by specifying the reference position and size of the data when executing the update process in units smaller than the block size. You may make it describe.
  • the information device manages the update status including the information indicating that the backup is completed and the information indicating that the update process is completed in block units in correspondence with the process procedure of the update procedure manual.
  • the information device confirms the update status, identifies the processing procedure in which the interruption occurred, refers to the update procedure manual, and identifies the processing procedure.
  • the block being processed is specified, the write-back reference information is confirmed, the data write-back process is executed for the specified block being processed, and the block is brought into a state before the update process is started.
  • FIG. 10 is a diagram for illustrating the necessity of a fourth policy in which when the interruption is during block rewriting of the target data, the update is resumed by rewriting the corresponding block. It is a figure which shows schematic structure of the firmware update system by embodiment of this invention. It is a flowchart for demonstrating the outline of the difference extraction process in a management apparatus. It is a flowchart for demonstrating the detail of a backup necessity investigation process. It is a flowchart for demonstrating the detail of a difference distribution (extraction) necessity investigation process. It is an example of the necessity investigation process (FIGS. 4 and 5) for backup and differential distribution (extraction), and shows an example when processing is performed in a predetermined processing order.
  • FIG. 4 It is an example of a backup and differential distribution (extraction) necessity investigation process (FIGS. 4 and 5), and shows an example when processing is performed in a processing order different from FIG. 6A. It is a figure which shows the example of the write-back origin address table. It is a figure which shows the example of an update procedure manual. It is a figure which shows the example of an update condition. It is a flowchart for demonstrating the update process (a recovery process is included) in an information device. It is a figure which shows the example of the update procedure for enabling operation in a unit smaller than a block unit, and a write-back address table.
  • the present invention relates to the restoration of a firmware stored in a non-volatile memory such as a NOR type flash memory in the field of embedded devices and the saving of non-volatile memory capacity when an update interruption occurs when rewriting differential data that has been changed.
  • the present invention relates to a difference extraction / difference application method and apparatus for realizing both of the above.
  • ⁇ Prerequisites> The embodiment of the present invention will be described on the assumption that a nonvolatile memory used in an embedded device has a limitation that it can be erased only in units of blocks. Therefore, when a block is rewritten, the data of the rewritten block is created in a volatile memory and then written into the corresponding block.
  • firmware update based on the following four policies will be described. That means First policy: Backup area should be a maximum of 1 block, Second policy: The backup area must be cleared at the end of rewriting of each block. Third policy: save differential data to the end, Fourth policy: If the interruption was in the process of rewriting a block of the target data, the update was resumed by rewriting the original block It is.
  • the fourth policy is because some data of the rewrite target block may be necessary for rewriting as shown in FIG. This case is hereinafter referred to as self-reference.
  • FIG. 1 is a diagram illustrating an example when there is a self-reference for indicating the necessity of the fourth policy.
  • FIG. 2 is a diagram showing a schematic configuration of the firmware update system according to the embodiment of the present invention.
  • the firmware update system according to the embodiment includes a management device 1, a distribution device 2, and at least one information device 3.
  • the management device 1 includes a terminal unit 11 having a CPU 11A and a memory 11B, a communication port 12, and an external storage device 13.
  • the external storage device 13 is composed of a non-volatile memory, and always maintains the state of the difference extracting unit 13A, the transferring unit 13B, the old data storage unit 13C, the new data storage unit 13D, and the non-volatile memory being updated.
  • Intermediate data storage unit 13E which is data in the middle of rewriting (ie, data indicating the state of firmware being rewritten), and data in each block of the non-volatile memory is unprocessed (0) or in process (-1) Or a processing status table 13F for recording whether it is processed (1), a backup necessity table 13G, a difference distribution necessity table 13H indicating whether the difference should be extracted and distributed, and difference data storage Unit 13I, update procedure storage unit 13J, and write-back source address table 13K.
  • the distribution device 2 includes a terminal unit 21 having a CPU 21A and a memory 21B, a communication port 22, and an external storage device 23.
  • the external storage device 23 is composed of a non-volatile memory, and includes a transfer unit 23A and a distribution package 23B.
  • the information device 3 includes a terminal unit 31 having a CPU 31A and a memory 31B, a communication port 32, and an external storage device 33.
  • the external storage device 33 is configured by a non-volatile memory, and a boot block 3301 that is executed first when the information device 3 is started up, a normal firmware block 3302 that is normally used, and an update firmware block 3303 that is used when updating the firmware. And a differential data storage block 3304 used at the time of firmware update, and a backup block 3305 used at the time of firmware update.
  • the boot block 3301 includes boot setting information 3301B for identifying a boot loader 3301A that is executed first when the apparatus is started and firmware to be loaded at the next start (specifically, which of 3302A and 3303A is to be started next time). Is stored.
  • the boot loader 3301A reads either the normal firmware block 3302 or the update firmware block 3303 after startup. Which is read depends on the activation setting information 3301B.
  • the activation setting information 3301B is switched from the normal firmware block to the update firmware block 3303 when the update is necessary, and is returned to the normal firmware block when the update is successfully completed.
  • the necessity for updating is, for example, when the distribution device 2 instructs the information device 3 to update, or when the information device 3 periodically checks the firmware version with the distribution device 2 to obtain a new version. In such a case, it may be determined that updating is necessary.
  • normal base software 3302A and normal application software 3302B are stored.
  • update firmware block 3303 update base software 3303A and an update program (update processing unit) 3303B are stored.
  • the difference data storage block 3304 includes difference data 3304A that is a difference between the current firmware and the new firmware, an update procedure 3304B that records the update procedure, and an old data area that was in the data area that is being rewritten when the update is interrupted.
  • difference data 3304A that is a difference between the current firmware and the new firmware
  • update procedure 3304B that records the update procedure
  • an old data area that was in the data area that is being rewritten when the update is interrupted.
  • a write-back source address table 3304C used when data is written back, and an update status 3305D for recording an update procedure execution end position indicating which part of the update procedure is completed are stored.
  • FIG. 3 is a flowchart for explaining the entire difference extraction process in the management apparatus 1.
  • the difference extraction process is executed, for example, when new firmware is input to the management apparatus 1.
  • the CPU 11A executes the difference extraction process via the difference extraction unit 13A (in cooperation with both).
  • the difference extraction unit 13A will be described as an operation subject.
  • the difference extraction means 13A determines the next rewrite block order (step 201).
  • the rewrite block order indicates a rewrite order when there are a plurality of blocks to be rewritten. For example, if the nonvolatile memory is composed of three blocks, the rewriting process in the order of 1 ⁇ 2 ⁇ 3, 2 ⁇ 3 ⁇ 1,. Therefore, in step 201, it is determined in which order among the plurality of rewrite orders, the loop is considered.
  • the difference extraction means 13A advances the next block to be processed in accordance with the determined order, and updates the processing status table (step 202). For example, in the case of processing in the order of 2 ⁇ 3 ⁇ 1, if the previous block 2 is processed, the current processing target is the block 3.
  • the difference extraction means 13A updates the intermediate data (step 203).
  • the intermediate data is data for constantly holding the state of the nonvolatile memory being updated. That is, in step 203, the corresponding block is acquired from the new data and copied to the intermediate data (see, for example, FIG. 6).
  • the difference extracting means 13A performs a backup necessity investigation on the corresponding block data (step 204). Further, the difference extracting means 13A conducts a difference distribution necessity investigation on the corresponding block data (step 205). Details of the backup necessity investigation and the difference distribution necessity investigation will be described later with reference to FIGS.
  • the difference extraction unit 13A checks whether all blocks have been processed. If not, the process proceeds to step 202. If processed, the difference extraction unit 13A shifts the process to step 207 (step 206). . Further, the difference extraction unit 13A checks whether or not all rewrite block orders have been processed. If not, the difference extraction unit 13A shifts the process to step 201, and if it does, shifts the process to step 208 ( Step 207).
  • the difference extraction unit 13A determines a rewrite order in which the sum of the capacities of the backup area and the difference area is the minimum (step 208).
  • the capacity of the backup area takes the maximum value among the records in the backup necessity table.
  • the sum of each record in the difference necessity table is calculated.
  • the rewrite order that minimizes the sum of the maximum value and the sum of each record is determined as the rewrite order in the update procedure 13J. If there are a plurality of orders having the same total value, the first calculated procedure is selected. Like that.
  • the difference extraction unit 13A packages the difference data 13I, the update procedure 13J, and the write-back address table 13K (step 209).
  • FIG. 4 is a flowchart for explaining the details of the backup necessity investigation process (step 204).
  • the difference extraction means 13A compares the target block in the intermediate data with each of the other blocks in the intermediate data and checks whether they match. For example, for block 1 in state 6A-1 in FIG. 6A, C (block 1) is compared with B (block 2) and A (block 3). In this case, since there is no match with C, it is determined that there is a need for backup.
  • the difference extraction means 13A If there is a match (YES in step 401), since there is no need for backup, the difference extraction means 13A describes 0 in the record of the backup necessity table and matches it in the firmware data being rewritten. It is written in the write-back source address table so that it can be recovered from the data (step 402).
  • the difference extraction means 13A indicates 1 in the record in the backup necessity table indicating the number of blocks (in this embodiment, in units of blocks). Is written in the write-back source address table so that data can be recovered from the backup area (step 403).
  • FIG. 5 is a flowchart for explaining details of the difference distribution necessity investigation process (step 205).
  • the difference extraction means 13A compares the target block in the new data with each block in the intermediate data and checks whether they match (step 501). For example, for block 1 in state 6A-1 in FIG. 6A, B (new data block 1), C (intermediate data block 1), B (intermediate data block 2) and A (intermediate data block 3) ) And. In this case, it is determined that there is no need for differential distribution because the data that matches the B of the new data block 1 is in the block 2 of the intermediate data.
  • step 501 If there is a match (YES in step 501), since there is no need for difference distribution, the difference extraction means 13A describes 0 in the record of the difference distribution necessity table, and in the record of the update procedure, A copy command from matching data in the old data is described (step 502).
  • step 501 if there is no match (NO in step 501), since there is a need for difference distribution, the difference extraction means 13A describes 1 representing the number of blocks in the record of the difference distribution necessity table, A copy command from the distributed difference data is described (step 503).
  • FIG. 6 shows an example of state transition when the intermediate data update process (step 203), the backup necessity investigation process (step 204 and FIG. 4), and the difference distribution necessity investigation process (step 205 and FIG. 5) are executed.
  • FIG. 6 shows an example of state transition when the intermediate data update process (step 203), the backup necessity investigation process (step 204 and FIG. 4), and the difference distribution necessity investigation process (step 205 and FIG. 5) are executed.
  • FIG. 6A shows the case where the processing order of block 1, block 2, and block 3 is set in step 201, and states 6A-1, 6A-2, and 6A-3 are the states immediately after the processing of step 205 for block 1, respectively.
  • the state immediately after the processing of step 205 for the block 2 and the state immediately after the processing of step 205 for the block 3 are shown.
  • FIG. 6B shows the processing order of block 2, block 1, and block 3, and states 6B-1, 6B-2, and 6B-3 are the state immediately after the processing of step 205, block 6 for block 2, respectively.
  • 1 shows a state immediately after step 205 for 1 and a state immediately after the process of step 205 for block 3.
  • the block processing order is 1 ⁇ 2 ⁇ 3, 1 ⁇ 3 ⁇ 2, 3 ⁇ 1 ⁇ 2, 3 ⁇ 2 ⁇ 1, as shown in FIG.
  • the backup is 1 and the differential capacity is 2 in total.
  • the order processed first among the former is selected as the optimal update order in step 208.
  • the backup data is erased after the corresponding block processing.
  • the backup data is not erased after the corresponding block processing.
  • the required flash memory capacity is 3, that is, the backup is 2 and the differential capacity is 1.
  • FIG. 7 is a diagram illustrating an example of a write-back source address table corresponding to the example of FIG. 6A.
  • the write-back source address table is a table used for restoring old data or data being rewritten from the backup area when an update interruption occurs. Since the processing procedure of FIG. 6A is block 1 ⁇ 2 ⁇ 3, the block number is also 1 ⁇ 2 ⁇ 3 in the write-back source address table of FIG. 7, but if the processing procedure is different, the block number is changed. The order will vary accordingly.
  • the address of the backup area is Fbup_start
  • the address of the nth block of the firmware area (old data) is Fdat_n_start
  • the address of the difference data is Fdlt_start. Note that the data size is unified to size indicating the erase block size of the nonvolatile memory for simplicity.
  • the first record is written from the backup area
  • the second record is written from the firmware block being rewritten
  • the third record is written from the backup area.
  • FIG. 8 is a diagram illustrating an example of an update procedure document corresponding to the example of FIG. 6A.
  • the processing procedure number matches the row number.
  • the first procedure indicates an instruction for executing a process of copying data for size from the head of the second block of the firmware block.
  • the second procedure shows an instruction for executing a process of copying data for size from the top of the difference area.
  • the third procedure indicates an instruction for executing a process of copying data for size from the head of the first block of the firmware block.
  • FIG. 9 is a diagram illustrating an example of an update status table indicating an update status when the processing procedure 1 is completed and the processing procedure 2 is completed up to the backup processing.
  • the update status management method includes the method shown in FIGS. 9A and 9B. That is, for example, as shown in FIG. 9A, the procedure number is described in the file at the start of each procedure of the update procedure, the character BupEnd indicating it at the end of the backup, and the character END indicating the end at the end of the update processing in the file.
  • the log area is divided into a backup log area (B-1) and an end log area (B-2) for each record of the update procedure.
  • the backup log (B-1) is cleared to 0 at the start of each record of the update procedure, and 1 is written at the end of backup. Accordingly, only “1” is displayed in the backup log area (B-1) indicating that the block currently being updated is backup completed.
  • the update status log (B-2) is provided with a block for recording the update status, starting from a state of all 0 at the beginning, and when the processing is completed, the position corresponding to the corresponding processing procedure number counted from the upper byte. "0" is rewritten to "1" for the bytes of.
  • processing interruption for example, power OFF
  • FIG. 9 when processing interruption (for example, power OFF) occurs, it can be seen from FIG. 9 that processing procedure 2 was being updated.
  • the processing destination copy destination or addition destination
  • the rewrite source address is (Fdat_1_start size) with reference to FIG.
  • FIG. 10 is a flowchart for explaining an update process including a recovery process from interruption executed in the information device 3.
  • the CPU 31A executes the update process via the update program 3303B (both cooperate to form an update processing unit).
  • the update program 3303B will be described as an operation subject.
  • the update program 3303B refers to the update status table (FIG. 9) and checks whether all update statuses are empty (step 1101). If the update status table is not empty, the process proceeds to step 1002, and if the table is empty, the process proceeds to step 1004. If at least one piece of information related to the update status is included in the update status table, it is determined that the update status is not empty.
  • the update program 3303B determines the block to be processed with reference to the update procedure manual (FIG. 8). (Step 1004). Further, the update program 3303B refers to the record of the processing number (processing target block number) in the write-back source address table, and performs the backup if necessary (step 1005). For example, if the write-back source address starts with Fbup, backup is necessary. If the write-back source address starts with Fdat, there is no need to back up to the backup area because the data exists in the old data. If there is an interruption in the middle of the backup process, the write-back process is not performed because only the backup is taken again.
  • the update program 3303B executes processing of the processing target block according to the update procedure (step 1006). Furthermore, the update program 3303B confirms whether or not it is the last line of the update procedure. If it is the last line, the process proceeds to step 1004. If it is not the last line, the process ends.
  • the update program 3303B refers to the record of the update status and the processing number in the write-back source address table, and performs the write-back if necessary (step 1002). ).
  • “when writing back is necessary” means a case where an interruption occurs during the update process according to the update procedure after the backup is completed. If an interruption occurs during backup processing, it will only be backed up again, so it does not fall under "when write-back is required". For example, if an interruption occurs in the update state of FIG. 9, the interruption occurs when processing procedure 2 is being executed, so reference is made to processing procedure 2 in the update procedure manual (FIG. 8).
  • the processing (copy) destination of processing procedure 2 When the processing (copy) destination of processing procedure 2 is viewed, it is found that the processing target block is block 2. Then, referring to the write-back source address table (FIG. 7), it is Fdat_start, so the process of writing back the data of the block 2 to be processed is executed by the size from the beginning of the block 1 of the old data.
  • step 1002 the update program 3303B determines the processing target block with reference to the update procedure manual (FIG. 8) (step 1003). Thereafter, the process proceeds to step 1005.
  • the update firmware block 3303 may be mounted and the update program 3303B may be executed. Even in this case, if there is an interruption, the update can be started from the update firmware block 3303 and the update can be resumed.
  • the processing unit is a block unit.
  • each record in the update procedure and the write-back source address table is separated by a comma and a plurality of data are arranged so that an operation in a unit smaller than the block unit can be performed. Can be possible.
  • FIG. 11 is a diagram showing an example of an update procedure and a write-back source address table for enabling an operation in a unit smaller than a block unit.
  • FIG. 11A means that at the time of the write-back process, half the data of the block size is acquired from the head of the backup area, and the remaining half of the data is acquired from the data of the rear half of the block 1. Thereby, even when the data of one block is divided and saved at a plurality of positions, it can be recovered at the time of updating interruption.
  • FIG. 11B shows a process of acquiring half the data of the block size from the head of the difference block and inserting it from the head of the block 2 and copying the first half of the block 1 to the second half of the block 2 during the update process. Means to execute. Thereby, since the data of one block can be rewritten from the data of a some position, the size of difference data can be suppressed.
  • the backup capacity is a maximum of one block is shown, but this may be one block or more.
  • data for returning to the original data from the interruption point may be stored in the backup area until the update is completed. In this case, data other than necessary data may be deleted.
  • the difference data may be deleted when it is no longer needed.
  • the write-back process may be executed only when there is a self-reference.
  • the management device generates difference data from the old data and new data, generates an update procedure document that describes an update process for generating new firmware from the old firmware and the difference data in the information device, Write-back reference information (write-back source address table) describing information for executing processing (write-back processing) for returning data in the middle of update processing to a state before starting update processing when update processing in the device is interrupted Generate. Then, the information device executes an update process according to the firmware update data. By doing so, even when the update process is interrupted in the information device, recovery from the interrupt can be performed smoothly, and the update process can be resumed from the point where the interrupt has occurred due to the write-back process.
  • the management device prepares a plurality of types of processing orders indicating the order for updating the plurality of blocks (corresponding to the divided blocks of the nonvolatile memory), and each processing order is being rewritten from the old firmware to the new firmware. Intermediate data indicating the state of each block is generated. Then, the management device checks the necessity of backup and the necessity of extracting differential data on a block basis using the new firmware and the intermediate data. In addition, the management apparatus determines that the total value of the capacity required for backup and the capacity required for storing differential data is the smallest among a plurality of processing orders based on the check results regarding the necessity of backup and the necessity of extracting differential data. Specify the processing order. The specified processing order is described in the update procedure manual.
  • the management device compares the block to be processed with the other blocks in the intermediate data, checks the necessity of the backup according to whether or not they match, and determines the processing target in the new firmware.
  • the block is compared with all the blocks of the intermediate data, and the necessity of differential data extraction is checked depending on whether or not they match.
  • the necessity of backup and the necessity of extracting differential data can be chucked. Then, by specifying the processing order with less necessity, it is possible to reduce the memory area required when executing the recovery processing from the update interruption. Therefore, the cost of information equipment can be reduced.
  • the management device indicates the reference position and size of data when executing the write-back process in units smaller than the block size, and can acquire the write-back process data from a plurality of positions. Information may be described.
  • the management apparatus can update the update procedure document so that the update process data can be acquired from a plurality of positions by specifying the reference position and size of the data when executing the update process in units smaller than the block size. You may make it describe. In this way, data of one block can be rewritten from data stored at a plurality of positions, and the size of the difference data can be further suppressed.
  • the information device manages the update status including the information indicating that the backup is completed and the information indicating that the update process is completed in block units in correspondence with the process procedure of the update procedure manual.
  • the information device confirms the update status, identifies the processing procedure in which the interruption occurred, refers to the update procedure manual, and identifies the processing procedure.
  • the block being processed is specified, the write-back reference information is confirmed, the data write-back process is executed for the specified block being processed, and the block is brought into a state before the update process is started. In this way, it is possible to easily identify the block to be written back, and easily determine from which area the write back processing for the block to be processed should be executed. Further, it is only necessary to set the state before starting the update process only for the necessary blocks, not the entire firmware. In addition, it is possible to realize recovery when the update is interrupted while saving the capacity of the nonvolatile memory used for storing backup data and differential data.
  • the present invention can also be realized by a program code of software that realizes the functions of the embodiment.
  • a storage medium in which the program code is recorded is provided to the system or apparatus, and the computer (or CPU or MPU) of the system or apparatus reads the program code stored in the storage medium.
  • the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the program code itself and the storage medium storing the program code constitute the present invention.
  • a storage medium for supplying such program code for example, a flexible disk, CD-ROM, DVD-ROM, hard disk, optical disk, magneto-optical disk, CD-R, magnetic tape, nonvolatile memory card, ROM Etc. are used.
  • an OS operating system
  • the computer CPU or the like performs part or all of the actual processing based on the instruction of the program code.
  • the program code is stored in a storage means such as a hard disk or memory of a system or apparatus, or a storage medium such as a CD-RW or CD-R
  • the computer of the system or apparatus or CPU or MPU may read and execute the program code stored in the storage means or the storage medium when used.

Landscapes

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

Abstract

 本発明は、更新中断時の復旧と、バックアップおよび差分データ保存に使われる不揮発性メモリ容量の節約を、同時に実現することができるファームウェア更新処理を提供する。そのために、新旧ファームウェアの他に、書き換え中のファームウェアの状態を常に保持する中間データを備え、ファームウェアを構成するすべてのブロックを任意の順番で更新する場合について、前期中間データと新しいファームウェアの該ブロックを逐次比較し、更新中断時の復旧のためのデータのアドレスとそれに必要なバックアップ容量の計算と、配布すべき差分データ抽出とその容量の計算と更新手順の作成を行い、バックアップ容量と差分データ容量の合計が最小となる処理順序を導き出す(図2参照)。

Description

ファームウェア更新システム、及び情報機器、並びにプログラム
 本発明は、ファームウェア更新システム、及びその一部を構成する情報機器であって、例えば、組込み機器分野でNOR型フラッシュメモリ等の不揮発性メモリに格納されているファームウェアを書き換える技術に関するものである。
 家電分野では、Read-Onlyなファイルシステムが多用されているため、ファイルシステムの機能を利用したファイル単位の書き込みは不可能である。そのため、ファームウェアを更新する際は、ファームウェアのイメージを書き換える必要がある。ファームウェアイメージは、一般に、サイズが大きいため、ファームウェアを更新する場合、イメージ全体を配信するのではなく、差分のみを抽出・配信する方法が利用される。
 差分を抽出する手法として、新旧ファームウェアイメージ全体同士を、バイト単位で比較し、差分を抽出するイメージ全体比較法がある(例えば、非特許文献1参照)。イメージ全体比較法では、情報機器側で差分から新イメージを作る場合、旧イメージ全体が必要であるため、更新中断時の復旧のためには、旧イメージ全体のバックアップが必要である。書き換えてしまった旧データはRAM上に残っていないので、旧イメージを復旧させるためにはその全体のバックアップを取っておく必要があるからである。
 また、ファームウェアイメージとその全体のバックアップを保持する方法もある(例えば、特許文献1参照)。
 さらに、更新中断時に復旧できる形にファームウェアイメージの差分を抽出する手法として、新旧のイメージを構成する各ブロック(ファームウェアを格納する不揮発性メモリのブロックに対応)同士をブロック単位で比較し、一致しないブロックのデータを配布すべき差分データに追加するという、分割ブロック比較法がある。この方法で差分を適用する場合、書き換え対象のブロックをバックアップする。
特開平11-110218号公報
xdelta: URL=http://xdelta.org/
 しかしながら、非特許文献1に記載されているイメージ全体比較法では、差分データのサイズは小さくなるものの、更新中断時に復帰するために必要なバックアップは旧イメージ全体となるのでサイズが大きくなってしまう。
 また、分割ブロック比較法では、更新中断時に復帰するためのバックアップは書き換え中のブロックのみで済むが、旧イメージ内に書き換え対象のデータと同一のデータが他のブロックに存在する場合でもそれとは別にバックアップを取るため、不揮発性メモリの無駄が発生してしまう。また、ブロック単位でしか比較しないため、差分データが大きくなってしまう。
 本発明はこのような状況に鑑みてなされたものであり、不揮発メモリにおいて、更新中断時に復旧するために必要なバックアップ領域と差分データの保存領域との合計サイズを小さくして効率よくかつ廉価にファームウェア更新を実行することのできる技術を提供するものである。
 上記課題を解決するために、本発明によるファームウェア更新システムは、ファームウェア更新用データを生成する管理装置と、ファームウェア更新用データを取得して旧ファームウェアを新ファームウェアに更新する情報機器と、を備えている。管理装置は、旧ファームウェア及び新ファームウェアのデータから差分データを生成し、情報機器において旧ファームウェア及び差分データから新ファームウェアを生成するための更新処理を記述する更新手順書を生成し、情報機器における更新処理が中断した場合に更新処理途中のデータを更新処理開始前の状態に戻す処理(書き戻し処理)を実行するための情報を記述する書き戻し参照情報(書き戻し元アドレステーブル)を生成する。ファームウェア更新用データ(配布パッケージ)は、ブロック単位で更新処理するためのデータとして生成される。
 管理装置は、複数のブロックを更新処理するための順番を示す処理順序を複数種類用意し、各処理順序について、旧ファームウェアから新ファームウェアに書き換え中の各ブロックの状態を示す中間データを生成し、新ファームウェア及び前記中間データを用いてブロック単位でバックアップの必要性及び差分データ抽出の必要性をチェックする。また、管理装置は、バックアップの必要性及び差分データ抽出の必要性に関するチェック結果に基づいて、複数の処理順序の中でバックアップに必要な容量と差分データ格納に必要な容量の合計値が最小となる処理順序を特定する。この特定された処理順序が更新手順書に記述される。より具体的には、管理装置は、中間データ内において処理対象のブロックとそれ以外のブロックとを比較し、一致するか否かによって前記バックアップの必要性をチェックし、新ファームウェア内の処理対象のブロックと中間データの全ブロックとを比較し、一致するか否かによって差分データ抽出の必要性をチェックする。
 なお、管理装置は、書き戻し処理を実行する際のデータの参照位置及びサイズをブロックのサイズより小さい単位で指示して複数の位置から前記書き戻し処理のデータを取得できるように、書き戻し参照情報を記述するようにしてもよい。また、管理装置は、更新処理を実行する際のデータの参照位置及びサイズをブロックサイズより小さい単位で指示して複数の位置から更新処理のデータを取得できるように、更新手順書の更新手順を記述するようにしてもよい。
 一方、情報機器は、更新手順書の処理手順に対応させて、ブロック単位で、バックアップが終了したことを示す情報、及び更新処理が終了したことを示す情報を含む更新状況を管理する。
 また、情報機器は、処理中断が起こった場合、更新状況を確認してどの処理手順に従って処理していたときに中断が発生したか特定し、更新手順書を参照して特定された処理手順によって処理途中であったブロックを特定し、書き戻し参照情報を確認し、特定された処理途中のブロックについてデータ書き戻し処理を実行して当該ブロックを更新処理開始前の状態にする。
 さらなる本発明の特徴は、以下本発明を実施するための最良の形態および添付図面によって明らかになるものである。
 本発明によれば、バックアップデータや差分データ保存に使われる不揮発性メモリ容量の節約をしながら、更新中断時の復旧を実現することができるようになる。
中断が対象データのブロック書き換え中であった場合は、該当ブロックを元に書き戻して更新再開するという第4のポリシーの必要性を示すための図である。 本発明の実施形態によるファームウェア更新システムの概略構成を示す図である。 管理装置における差分抽出処理の概略を説明するためのフローチャートである。 バックアップの必要性調査処理の詳細を説明するためのフローチャートである。 差分配布(抽出)必要性調査処理の詳細を説明するためのフローチャートである。 バックアップ及び差分配布(抽出)の必要性調査処理(図4及び5)の例であって、所定の処理順序で処理した場合の例を示す図である。 バックアップ及び差分配布(抽出)の必要性調査処理(図4及び5)の例であって、図6Aとは異なる処理順序で処理した場合の例を示す図である。 書き戻し元アドレステーブルの例を示す図である。 更新手順書の例を示す図である。 更新状況の例を示す図である。 情報機器における更新処理(復旧処理を含む)を説明するためのフローチャートである。 ブロック単位より小さな単位での操作を可能にするための更新手順と書き戻しアドレステーブルの例を示す図である。
 本発明は、組込み機器分野でNOR型フラッシュメモリ等の不揮発性メモリに格納されているファームウェアについて、変更のあった差分データを書き換える際に更新中断が発生したときの復旧と不揮発性メモリ容量の節約の両方を実現する差分抽出・差分適用の方法および装置に関する。
 以下、添付図面を参照して本発明の実施形態について説明する。ただし、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。また、各図において共通の構成については同一の参照番号が付されている。
 <前提条件>
 本発明の実施形態は、組込み機器で用いられる不揮発性メモリには、ブロック単位でしか消去できないという制限があるという前提で説明される。よって、ブロックを書き換える際、書き換え後のブロックのデータを揮発性のメモリ内に作った後、それを該当ブロックに書き込むという動作が実行される。
 また、本実施形態では、次の4つのポリシーに基づいたファームウェアの更新について説明する。つまり、
第1のポリシー:バックアップ領域は最大1ブロックとすること、
第2のポリシー:バックアップ領域は各ブロックの書き換え終了時にクリアすること、
第3のポリシー:差分データは最後まで保存すること、
第4のポリシー:中断が対象データのブロック書き換え中であった場合は、該当ブロックを元に書き戻して更新再開すること、
である。なお、第4のポリシーは、図1のように書き換え対象ブロックの一部のデータが、書き換えのために必要な場合があるためである。以後この場合を自己参照と呼ぶこととする。図1は、第4のポリシーの必要性を示すための自己参照がある場合の例を示す図である。
 <ファームウェア更新システムの構成>
 図2は本発明の実施形態によるファームウェア更新システムの概略構成を示す図である。実施形態によるファームウェア更新システムは、管理装置1と、配布装置2と、少なくとも1つの情報機器3と、を備えている。
 管理装置1は、CPU11A及びメモリ11Bを有する端末部11と、通信ポート12と、外部記憶装置13と、を備えている。外部記憶装置13は不揮発性メモリで構成され、差分抽出手段13Aと、転送手段13Bと、旧データ格納部13Cと、新データ格納部13Dと、更新途中の不揮発性メモリの状態を常時保持するためのデータ(書き換え途中のデータの様子、つまりファームウェアの書き換え途中の状態を示すデータ)である中間データ格納部13Eと、不揮発メモリの各ブロックのデータが未処理(0)か処理中(-1)か処理済(1)かを記録するための処理状況テーブル13Fと、バックアップ必要性テーブル13Gと、差分を抽出して配布すべきデータであるかを示す差分配布必要性テーブル13Hと、差分データ格納部13Iと、更新手順格納部13Jと、書き戻し元アドレステーブル13Kと、を備えている。
 配布装置2は、CPU21A及びメモリ21Bを有する端末部21と、通信ポート22と、外部記憶装置23と、を備えている。外部記憶装置23は不揮発性メモリで構成され、転送手段23Aと、配布パッケージ23Bと、を備えている。
 情報機器3は、CPU31A及びメモリ31Bを有する端末部31と、通信ポート32と、外部記憶装置33と、を備えている。外部記憶装置33は不揮発性メモリで構成され、情報機器3の起動時に最初に実行されるブートブロック3301と、通常利用される通常ファームウェアブロック3302と、ファームウェアの更新時に利用される更新用ファームウェアブロック3303と、ファームウェア更新時に利用される差分データ保存ブロック3304と、ファームウェア更新時に利用されるバックアップブロック3305と、を備えている。
 ブートブロック3301には、本装置起動時最初に実行されるブートローダ3301Aと、次回起動時にロードするファームウェア(具体的には、次回に3302Aと3303Aのどちらを起動させるか)を識別する起動設定情報3301Bが格納されている。ブートローダ3301Aは、起動後、通常ファームウェアブロック3302もしくは更新用ファームウェアブロック3303のいずれかを読み込む。いずれを読み込むかは、起動設定情報3301Bに従う。起動設定情報3301Bは、更新の必要性が生じた場合に、通常ファームウェアブロックから、更新用ファームウェアブロック3303に切り替えられ、更新が無事終了すると、通常ファームウェアブロックに戻される。なお、更新の必要性は、例えば、配布装置2から情報機器3に更新が指示された場合、若しくは、情報機器3が定期的に配布装置2にファームウェアのバージョンを確認し、新しいバージョンとなっていた場合に、更新必要と判断するようにすれば良い。
 通常ファームウェアブロック3302には、通常基盤ソフトウェア3302A及び通常応用ソフトウェア3302Bが保存される。
 更新用ファームウェアブロック3303には、更新用基盤ソフトウェア3303A及び更新プログラム(更新処理部)3303Bが保存される。
 差分データ保存ブロック3304には、現在のファームウェアと新しいファームウェアの差分である差分データ3304Aと、更新手順を記録する更新手順3304Bと、更新の中断から復旧する際、書き換え中のデータ領域にあった古いデータを書き戻す際に利用する書き戻し元アドレステーブル3304Cと、該更新手順の中のどの部分まで終了しているかを表す更新手順実行終了位置を記録するための更新状況3305Dとが保存される。
 <差分抽出処理の全体概要>
 図3は、管理装置1における差分抽出処理の全体を説明するためのフローチャートである。なお、差分抽出処理は、例えば、新しいファームウェアが管理装置1に入力されたときに実行される。また、CPU11Aが差分抽出手段13Aを介して(両者が協働して)当該差分抽出処理を実行することになるが、以下では、差分抽出手段13Aを動作主体として説明する。
 まず、差分抽出手段13Aは、次の書き換えブロック順序を決定する(ステップ201)。この書き換えブロック順序とは書き換えるべきブロックが複数ある場合の書き換えの順序を示す。例えば、不揮発性メモリが3つのブロックから構成されているとすると、1→2→3、2→3→1、・・・、3→2→1の順での書き換え処理について検討される。従って、ステップ201では、これら複数の書き換え順序のうち、当該ループではどの順序で検討するか決定される。
 差分抽出手段13Aは、決定した順序に従い、次に処理対象のブロックを1つ進めて、処理状況テーブルを更新する(ステップ202)。例えば、2→3→1の順で処理している場合、前回ブロック2を処理したとすると、今回の処理対象をブロック3とされる。
 次に、差分抽出手段13Aは、中間データを更新する(ステップ203)。ここで、中間データとは、更新途中の不揮発性メモリの状態を常時保持するためのデータである。つまり、ステップ203では、該当ブロックを新データから取得し、中間データにコピーされる(例えば、図6参照)。
 また、差分抽出手段13Aは、該当ブロックデータについてバックアップの必要性調査を行なう(ステップ204)。さらに、差分抽出手段13Aは、該当ブロックデータについて差分配布の必要性調査を行なう(ステップ205)。バックアップ必要性調査及び差分配布必要性調査の処理の詳細は、図4及び5を用いてそれぞれ後述する。
 続いて、差分抽出手段13Aは、全部ブロックを処理したか調べ、処理していない場合は、ステップ202に処理を移行させ、処理している場合は、ステップ207に処理を移行させる(ステップ206)。また、差分抽出手段13Aは、全ての書き換えブロック順序を処理したかどうか調べ、処理していない場合は、ステップ201に処理を移行させ、処理している場合は、ステップ208に処理を移行させる(ステップ207)。
 そして、差分抽出手段13Aは、バックアップ領域と差分領域の容量の和が最小の書き換え順序を決定する(ステップ208)。例えば、バックアップ領域の容量については、バックアップ必要性テーブルの各レコードのうち最大値を取る。差分領域の容量については、差分必要性テーブルの各レコードの和を取る。この最大値と各レコードの和の合計値が最小となる書き換え順序を更新手順13J内の書き換え順序に決定するが、合計値が同一の順序が複数ある場合は最初に計算した手順が選択されるようにする。
 最後に、差分抽出手段13Aは、差分データ13I、更新手順13J、及び書き戻しアドレステーブル13Kをパッケージ化する(ステップ209)。
 <バックアップ必要性調査処理の詳細>
 図4は、バックアップ必要性調査処理(ステップ204)の詳細を説明するためのフローチャートである。
 まず、差分抽出手段13Aは、中間データ中の対象ブロックと、中間データ中のその他の各ブロックと比較し、一致するかチェックする。例えば、図6Aの状態6A-1のブロック1については、C(ブロック1)と、B(ブロック2)及びA(ブロック3)とを比較する。この場合、Cと一致するものがないため、バックアップの必要性はあると判断される。
 一致するものがある場合(ステップ401でYES)、バックアップの必要性が無いため、差分抽出手段13Aは、バックアップ必要性テーブルの該レコードに0を記述するとともに、書き換え中のファームウェアデータ中の一致するデータから復旧ができるように、書き戻し元アドレステーブルに記述する(ステップ402)。
 一方、一致するものがない場合(ステップ401でNO)、バックアップの必要性があるため、差分抽出手段13Aは、バックアップ必要性テーブルの該レコードにそのブロック数を表す1(本実施形態はブロック単位での書き換えを行う形態であるため)を記述するとともに、バックアップ領域からデータの復旧ができるように、書き戻し元アドレステーブルに記述する(ステップ403)。
 <差分配布必要性調査処理の詳細>
 図5は、差分配布必要性調査処理(ステップ205)の詳細を説明するためのフローチャートである。
 差分抽出手段13Aは、新データ中の対象ブロックと、中間データ中の各ブロックを比較し、一致するか調べる(ステップ501)。例えば、図6Aの状態6A-1のブロック1については、B(新データのブロック1)と、C(中間データのブロック1)、B(中間データのブロック2)及びA(中間データのブロック3)と、を比較する。この場合、新データのブロック1のBと一致するものが中間データのブロック2にあるため、差分配布の必要性なしと判断される。
 一致するものがある場合(ステップ501でYES)、差分配布の必要性が無いため、差分抽出手段13Aは、差分配布必要性テーブルの該レコードに0を記述するとともに、更新手順の該レコードに、旧データ中の一致するデータからのコピー命令を記述する(ステップ502)。
 一方、一致するものが無い場合(ステップ501でNO)、差分配布の必要性があるため、差分抽出手段13Aは、差分配布必要性テーブルの該レコードにそのブロック数を表す1を記述するとともに、配布した差分データからのコピー命令を記述する(ステップ503)。
 <状態遷移の具体例>
 図6は、中間データ更新処理(ステップ203)、バックアップ必要性調査処理(ステップ204及び図4)、及び差分配布必要性調査処理(ステップ205及び図5)を実行した場合の状態遷移例を示す図である。
 図6Aは、ステップ201において、ブロック1、ブロック2、ブロック3の処理順序とした場合で、状態6A-1、6A-2、6A-3は、それぞれ、ブロック1についてのステップ205の処理直後の状態、ブロック2についてのステップ205の処理直後の状態、ブロック3についてのステップ205の処理直後の状態を表している。また、図6Bは、ブロック2、ブロック1、ブロック3の処理順序とした場合で、状態6B-1、6B-2、6B-3は、それぞれ、ブロック2についてステップ205の処理直後の状態、ブロック1についてのステップ205直後の状態、ブロック3についてのステップ205の処理直後の状態を表している。
 なお、ブロックの処理順序として、1→2→3、1→3→2、3→1→2、3→2→1のいずれかの場合、図6に示されるように、バックアップが1、差分容量が1の合計2であるのに対し、2→1→3、または、2→3→1の場合、図6Bに示したように、バックアップが1、差分容量が2の合計3である。このため、前者のうち最初に処理した順序がステップ208で最適な更新順序として選ばれることになる。
 本実施形態では、バックアップデータを、該当ブロック処理後消去するという前提であるが、仮にバックアップデータを、該当ブロック処理後消去せず、例えば上記2→1→3または2→3→1の場合でデータBのバックアップをこれらの2つ目のブロックの処理後まで保持していた場合でも、必要なフラッシュメモリ容量は、バックアップが2、差分容量が1の合計3である。
 <書き戻し元アドレステーブルの例>
 図7は、図6Aの例に対応する書き戻し元アドレステーブルの例を示す図である。書き戻し元アドレステーブルとは、更新中断が発生したときに旧データ若しくはバックアップ領域から書き換え途中のデータを元に戻すために用いられるテーブルである。なお、図6Aの処理手順がブロック1→2→3であるため、図7の書き戻し元アドレステーブルでもブロック番号が1→2→3となっているが、処理手順が異なれば、ブロック番号の順序もそれによって異なってくる。
 更新処理中断時に処理対象ブロックのデータ復旧を実現する際には、書き戻し元アドレステーブルにおける、当該処理対象のブロック番号に対応するレコードが参照される。
 例えば、図7に示されるように、バックアップ領域のアドレスをFbup_start、ファームウェア領域(旧データ)の第nブロックのアドレスをFdat_n_start、差分データのアドレスをFdlt_startとしている。なお、データのサイズは、ここでは簡単のため、不揮発性メモリのイレースブロックサイズを表すsizeに統一した。
 図7では、第1レコードにはバックアップ領域から、第2レコードには書き換え中のファームウェアブロック中から、第3レコードにはバックアップ領域から書き戻すように記述されている。
 <更新手順書の例>
 図8は、図6Aの例に対応する更新手順書の例を示す図である。図8において、処理手順番号は、行番号と一致する。図8の例では、第1手順は、ファームウェアブロックの第2ブロックの先頭からsize分のデータをコピーする処理を実行させるための命令を示している。第2手順は、差分領域の先頭からsize分のデータをコピーする処理を実行させるための命令を示している。第3手順は、ファームウェアブロックの第1ブロックの先頭からsize分のデータをコピーする処理を実行させるための命令を示している。
 <更新状況の例>
 図9は、処理手順1が終了し、処理手順2に関してはバックアップ処理までが終わった場合の更新状況を示す更新状況テーブルの例を示す図である。
 更新状況の管理方法には、図9A及びBに示す方法がある。つまり、例えば、図9Aのようにファイルに更新手順の各手順の開始時に手順の番号を、バックアップ終了時にそれを表す文字BupEndを記述し、更新処理終了時に終了を表す文字ENDをファイルに記述するか、若しくは、図9Bのように、バックアップ用ログ領域(B-1)と更新手順の各レコードの終了用のログ領域(B-2)に分ける方法である。
 図9Bの場合、バックアップ用ログ(B-1)は、更新手順の各レコード開始時に0クリアしておき、バックアップ終了時に1を記述する。従って、バックアップ用ログ領域(B-1)には、現在更新処理中のブロックがバックアップ完了であることを示す「1」のみが表示されることになる。そして、更新状況用ログ(B-2)は、更新状況を記録するブロックを設け、最初はすべて0の状態から始め、処理が終われば、上位バイトから数えて該当する処理手順番号と一致する位置のバイトについて「0」が「1」に書き換えられる。
 例えば、処理中断(例えば電源OFF)が発生した場合、図9を見ると処理手順2の更新途中であったことが分かる。そして、更新手順(図8)の該当行(処理手順2)を参照し、処理先(コピー先或いは追加先)をチェックして処理対象のブロック番号を確認する。この場合、Fdat_2_startなのでブロック2となっている。よって、書き戻し元アドレスは、図7を参照して、(Fdat_1_start size)であることが分かる。
 <更新処理の内容>
 図10は、情報機器3において実行される、中断からの復旧処理を含めた更新処理を説明するためのフローチャートである。なお、CPU31Aが更新プログラム3303Bを介して(両者が協働して更新処理部を構成する)当該更新処理を実行することになる。以下では、更新プログラム3303Bを動作主体として説明する。
 まず、更新プログラム3303Bは、更新状況テーブル(図9)を参照して更新状況が全て空かどうか調べる(ステップ1101)。更新状況テーブルが空でなければ、処理はステップ1002に進み、当該テーブルが空であれば、処理はステップ1004に進む。なお、1つでも更新状況に関する情報が更新状況テーブルに含まれていれば、更新状況は空ではないと判断される。
 更新状況が空であると判断された場合(ステップ1001でYES)、つまり、更新が中断された場合でないとき、更新プログラム3303Bは、更新手順書(図8)を参照して処理対象ブロックを確定する(ステップ1004)。また、更新プログラム3303Bは、書き戻し元アドレステーブルの該処理番号(処理対象ブロック番号)のレコードを参照し、バックアップが必要なら行なう(ステップ1005)。例えば、書き戻し元アドレスがFbupで始まるものであればバックアップが必要であり、Fdatで始まるものであればデータが旧データ中に存在するのでバックアップ領域にバックアップする必要はない。また、バックアップ処理途中で中断があった場合は、再度バックアップを取るだけであるので書き戻し処理は行われない。
 そして、更新プログラム3303Bは、更新手順に従って、処理対象ブロックの処理を実行する(ステップ1006)。さらに、更新プログラム3303Bは、更新手順の最終行か確認し、最終行であれば処理をステップ1004に移行させ、最終行でなければ処理を終了する。
 一方、更新状況が空でない場合、更新が中断した場合であるので、更新プログラム3303Bは、更新状況と書き戻し元アドレステーブルの該処理番号のレコードを参照し、書き戻しが必要なら行なう(ステップ1002)。ここで「書き戻しが必要な場合」とは、バックアップ終了後更新手順書に従って更新処理中に中断が発生した場合を意味する。バックアップ処理中に中断が発生した場合は再度バックアップするだけなので「書き戻しが必要な場合」には該当しない。例えば、図9の更新状況の場合に中断が発生したとすると、処理手順2を実行しているときに中断発生したことになるので、更新手順書(図8)の処理手順2を参照する。処理手順2の処理(コピー)先を見ると、処理対象ブロックがブロック2であることが判明する。そして、書き戻し元アドレステーブル(図7)を参照するとFdat_startであるので、旧データのブロック1の先頭からサイズ分だけ当該処理対象のブロック2のデータを書き戻す処理が実行される。
 ステップ1002が終了すると、更新プログラム3303Bは、更新手順書(図8)を参照して処理対象ブロックを確定する(ステップ1003)。その後、処理はステップ1005に移行する。
 なお、通常ファームウェアブロック3302からの起動時に、更新用ファームウェアブロック3303をマウントし、更新プログラム3303Bを実行してもよい。その場合でも、中断があった場合には、更新用ファームウェアブロック3303から起動させ、更新を再開することができる。
 <変形例>
(1)上記実施形態では、処理単位をブロック単位としたが、更新手順と書き戻し元アドレステーブルの各レコードをカンマで区切り、複数のデータを並べることで、ブロック単位より小さな単位での操作を可能にすることができる。
 図11は、ブロック単位より小さな単位での操作を可能にするための更新手順と書き戻し元アドレステーブルの例を示す図である。
 図11Aは、書き戻し処理時に、ブロックサイズの半分のデータをバックアップ領域の先頭から取得し、残りの半分のデータをブロック1の後ろ半分のデータより取得することを意味している。これにより1つのブロックのデータが分割されて複数の位置に退避している場合でも更新中断時に復旧できる。
 また、図11Bは、更新処理時に、ブロックサイズの半分のデータを差分ブロックの先頭から取得してブロック2の先頭から挿入し、ブロック1の前半部分のデータをブロック2の後半部分にコピーする処理を実行することを意味する。これにより1つのブロックのデータを、複数の位置のデータから書き換えることができるため、差分データのサイズを抑えることができる。
(2)図10においては、ステップ1002で中断からの再開、及び書き戻しと記述したが、RAM上に復元しても良い。
(3)第1のポリシーについて、バックアップ容量が最大1ブロックの場合を示したが、これを1ブロック以上も可としても良い。
 また、第2のポリシーについて、中断点から元のデータに戻すためのデータは、更新が完了するまでずっとバックアップ領域に保管していても良い。その際必要なデータ以外は削除してよい。
 第3のポリシーについて、差分データは不要になった時点で削除しても良い。
 さらに、第4のポリシーについて、自己参照がある場合のみ書き戻し処理を実行するようにしても良い。
 <まとめ>
 本実施形態において、管理装置は、旧データと新データから差分データを生成し、情報機器において旧ファームウェア及び差分データから新ファームウェアを生成するための更新処理を記述する更新手順書を生成し、情報機器における更新処理が中断した場合に更新処理途中のデータを更新処理開始前の状態に戻す処理(書き戻し処理)を実行するための情報を記述する書き戻し参照情報(書き戻し元アドレステーブル)を生成する。そして、情報機器はこのファームウェア更新用データに従って更新処理を実行する。このようにすることにより、情報機器において更新処理が中断され場合でも中断からの復旧をスムーズに実行でき、書き戻し処理により中断が発生したところから更新処理を再開することができるようになる。
 また、管理装置は、複数のブロック(不揮発性メモリの分割ブロックに相当)を更新処理するための順番を示す処理順序を複数種類用意し、各処理順序について、旧ファームウェアから新ファームウェアに書き換え中の各ブロックの状態を示す中間データを生成する。そして、管理装置は、新ファームウェア及び前記中間データを用いてブロック単位でバックアップの必要性及び差分データ抽出の必要性をチェックする。また、管理装置は、バックアップの必要性及び差分データ抽出の必要性に関するチェック結果に基づいて、複数の処理順序の中でバックアップに必要な容量と差分データ格納に必要な容量の合計値が最小となる処理順序を特定する。この特定された処理順序が更新手順書に記述される。より具体的には、管理装置は、中間データ内において処理対象のブロックとそれ以外のブロックとを比較し、一致するか否かによって前記バックアップの必要性をチェックし、新ファームウェア内の処理対象のブロックと中間データの全ブロックとを比較し、一致するか否かによって差分データ抽出の必要性をチェックする。このように、中間データという概念を導入すると、バックアップの必要性及び差分データ抽出の必要性をチャックすることができるようになる。そして、これらの必要性が少ない処理順序を特定することにより、更新中断からの復旧処理を実行する際に必要なメモリ領域を小さくすることができる。よって、情報機器のコストを低減することができるようになる。
 なお、管理装置は、書き戻し処理を実行する際のデータの参照位置及びサイズをブロックのサイズより小さい単位で指示して複数の位置から前記書き戻し処理のデータを取得できるように、書き戻し参照情報を記述するようにしてもよい。また、管理装置は、更新処理を実行する際のデータの参照位置及びサイズをブロックサイズより小さい単位で指示して複数の位置から更新処理のデータを取得できるように、更新手順書の更新手順を記述するようにしてもよい。このようにすることにより、1つのブロックのデータを複数の位置に保存されたデータから書き換えることができるようになり、差分データのサイズをさらに抑えることができるようになる。
 一方、情報機器は、更新手順書の処理手順に対応させて、ブロック単位で、バックアップが終了したことを示す情報、及び更新処理が終了したことを示す情報を含む更新状況を管理する。このように更新状況を管理することにより、中断が発生した場合にどこのブロックまでどのような処理を実行していたか、どのブロックから復旧すれば良いか容易に把握することができ、スムーズに復旧処理に移行することができる。
 また、情報機器は、処理中断が起こった場合、更新状況を確認してどの処理手順に従って処理していたときに中断が発生したか特定し、更新手順書を参照して特定された処理手順によって処理途中であったブロックを特定し、書き戻し参照情報を確認し、特定された処理途中のブロックについてデータ書き戻し処理を実行して当該ブロックを更新処理開始前の状態にする。このようにすることにより、書き戻し処理を行うべきブロックを容易に特定でき、どの領域から当該処理対象のブロックに対する書き戻し処理を実行すれば良いか容易に判断することができる。また、ファームウェア全体についてではなく、必要なブロックについてのみ更新処理開始前の状態にすれば良い。そして、バックアップデータや差分データ保存に使われる不揮発性メモリ容量の節約をしながら、更新中断時の復旧を実現することができるようになる。
 なお、本発明は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ(又はCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
 また、プログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのCPUなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
 また、実施の形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ(又はCPUやMPU)が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
1・・・管理装置
11A、21A、31A・・CPU
11B、21B、31B・・・メモリ
12、22、32・・・通信ポート
13、23・・・外部記憶装置
33・・・不揮発性メモリ
13A・・・差分抽出手段
13B、23A・・・転送手段
13C・・・旧データ
13D・・・新データ
13E・・・中間データ
13F・・・処理状況テーブル
13G・・・バックアップ必要性テーブル
13H・・・差分配布必要性テーブル
13I・・・差分データ
13J・・・更新手順
13K・・・書き戻し元アドレステーブル
23B・・・配布パッケージ
3301・・・ブートブロック
3302・・・通常ファームウェアブロック
3303・・・更新用ファームウェアブロック
3304・・・差分データ保存ブロック
3305・・・バックアップブロック
3301A・・・ブートローダ
3301B・・・起動設定
3302A・・・通常基盤ソフトウェア
3302B・・・通常応用ソフトウェア
3303A・・・更新用基盤ソフトウェア
3303B・・・更新プログラム
3304A・・・差分データ
3304B・・・更新手順書
3304C・・・書き戻し元アドレステーブル
3304D・・・更新状況

Claims (11)

  1.  情報機器における旧ファームウェアを新ファームウェアに更新するファームウェア更新システムであって、
     ファームウェア更新用データを生成する管理装置と、前記ファームウェア更新用データを取得して前記旧ファームウェアを前記新ファームウェアに更新する情報機器と、を備え、
     前記管理装置は、前記旧ファームウェア及び前記新ファームウェアのデータから差分データを生成し、前記情報機器において前記旧ファームウェア及び前記差分データから前記新ファームウェアを生成するための更新処理を記述する更新手順書を生成し、前記情報機器における更新処理が中断した場合に更新処理途中のデータを更新処理開始前の状態に戻す処理(書き戻し処理)を実行するための情報を記述する書き戻し参照情報を生成し、前記差分データ、前記更新手順書、及び前記書き戻し参照情報を前記ファームウェア更新用データとして生成し、
     前記情報機器は、前記ファームウェア更新用データに含まれる前記差分データ、前記更新手順書、及び前記書き戻し参照情報に基づいて、前記旧ファームウェアを前記新ファームウェアに更新することを特徴とするファームウェア更新システム。
  2.  請求項1において、
     前記管理装置は、前記旧ファームウェア及び前記新ファームウェアを複数のブロックに分割し、ブロック単位で処理して前記ファームウェア更新用データを生成することを特徴とするファームウェア更新システム。
  3.  請求項2において、
     前記管理装置は、前記複数のブロックを更新処理するための順番を示す処理順序を複数提供し、
     各処理順序について、前記旧ファームウェアから前記新ファームウェアに書き換え中の各ブロックの状態を示す中間データを生成し、前記新ファームウェア及び前記中間データを用いて前記ブロック単位でバックアップの必要性及び差分データ抽出の必要性をチェックし、
     前記バックアップの必要性及び前記差分データ抽出の必要性に関するチェック結果に基づいて、前記複数の処理順序の中で前記バックアップに必要な容量と前記差分データ格納に必要な容量の合計値が最小となる処理順序を特定し、当該特定された処理順序を前記更新手順書に記述することを特徴とするファームウェア更新システム。
  4.  請求項3において、
     前記管理装置は、前記中間データ内において処理対象のブロックとそれ以外のブロックとを比較し、一致するか否かによって前記バックアップの必要性をチェックし、
     前記新ファームウェア内の処理対象のブロックと前記中間データの全ブロックとを比較し、一致するか否かによって前記差分データ抽出の必要性をチェックすることを特徴とするファームウェア更新システム。
  5.  請求項2において、
     前記管理装置は、前記書き戻し処理を実行する際のデータの参照位置及びサイズを前記ブロックのサイズより小さい単位で指示して複数の位置から前記書き戻し処理のデータを取得できるように、前記書き戻し参照情報を記述することを特徴とするファームウェア更新システム。
  6.  請求項2において、
     前記管理装置は、前記更新処理を実行する際のデータの参照位置及びサイズを前記ブロックサイズより小さい単位で指示して複数の位置から前記更新処理のデータを取得できるように、前記更新手順書の更新手順を記述することを特徴とするファームウェア更新システム。
  7.  請求項2乃至6の何れか1項において、
     前記情報機器は、前記更新手順書の処理手順に対応させて、前記ブロック単位で、バックアップが終了したことを示す情報、及び更新処理が終了したことを示す情報を含む更新状況を管理することを特徴とするファームウェア更新システム。
  8.  請求項7において、
     前記情報機器は、処理中断が起こった場合、前記更新状況を確認してどの処理手順に従って処理していたときに中断が発生したか特定し、
     前記更新手順書を参照して、前記特定された処理手順によって処理途中であったブロックを特定し、
     前記書き戻し参照情報を確認し、前記特定された処理途中のブロックについてデータ書き戻し処理を実行して当該ブロックを更新処理開始前の状態にすることを特徴とするファームウェア更新システム。
  9.  ファームウェア更新用データに基づいて、旧ファームウェアを新ファームウェアに更新する情報機器であって、
     前記ファームウェア更新用データは、前記旧ファームウェア及び前記新ファームウェアのデータから生成された差分データと、前記旧ファームウェア及び前記差分データから前記新ファームウェアを生成するための更新処理を記述する更新手順書と、前記更新処理が中断した場合に更新処理途中のデータを更新処理開始前の状態に戻す処理(書き戻し処理)を実行するための情報を記述する書き戻し参照情報と、を含み、
     前記ファームウェア更新用データを取得する更新用データ取得部と、
     前記ファームウェア更新用データに含まれる前記差分データ、前記更新手順書、及び前記書き戻し参照情報に基づいて、前記旧ファームウェアを前記新ファームウェアに更新する更新処理部を備え、
     前記更新処理部は、前記旧ファームウェア及び前記新ファームウェアを複数に分割して得られるブロックを単位として、前記更新手順書の処理手順に対応させて、前記ブロック単位で、バックアップが終了したことを示す情報、及び更新処理が終了したことを示す情報を含む更新状況を管理することを特徴とする情報機器。
  10.  請求項9において、
     前記情報機器は、処理中断が起こった場合、前記更新状況を確認してどの処理手順に従って処理していたときに中断が発生したか特定し、
     前記更新手順書を参照して、前記特定された処理手順によって処理途中であったブロックを特定し、
     前記書き戻し参照情報を確認し、前記特定された処理途中のブロックについてデータ書き戻し処理を実行して当該ブロックを更新処理開始前の状態にすることを特徴とする情報機器。
  11.  コンピュータを請求項10に記載の情報機器として機能させるためのプログラム。
PCT/JP2010/063934 2009-08-24 2010-08-18 ファームウェア更新システム、及び情報機器、並びにプログラム WO2011024688A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP10811738.3A EP2362312B1 (en) 2009-08-24 2010-08-18 Firmware update system, and information apparatus, as well as program
CN201080002439.8A CN102132258B (zh) 2009-08-24 2010-08-18 固件更新***、信息设备以及程序
US13/120,219 US8726262B2 (en) 2009-08-24 2010-08-18 Firmware update system and information apparatus, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2009-193235 2009-08-24
JP2009193235A JP5346253B2 (ja) 2009-08-24 2009-08-24 ファームウェア更新システム、及び情報機器、並びにプログラム

Publications (1)

Publication Number Publication Date
WO2011024688A1 true WO2011024688A1 (ja) 2011-03-03

Family

ID=43627794

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/063934 WO2011024688A1 (ja) 2009-08-24 2010-08-18 ファームウェア更新システム、及び情報機器、並びにプログラム

Country Status (5)

Country Link
US (1) US8726262B2 (ja)
EP (1) EP2362312B1 (ja)
JP (1) JP5346253B2 (ja)
CN (1) CN102132258B (ja)
WO (1) WO2011024688A1 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5342302B2 (ja) * 2009-03-30 2013-11-13 株式会社日立ソリューションズ ファームウェア更新システム、ファームウェア配信サーバ、及びプログラム
KR101341003B1 (ko) 2011-11-21 2013-12-12 웹싱크 주식회사 펌웨어 업데이트 방법 및 이를 위한 장치
JP2013127748A (ja) * 2011-12-19 2013-06-27 Fujitsu Ltd 情報処理装置、データ記憶方法及びプログラム
WO2013094003A1 (ja) * 2011-12-19 2013-06-27 富士通株式会社 ソフトウェアのインストール順序を決定する方法、プログラム、及び装置
WO2013126046A1 (en) * 2012-02-21 2013-08-29 Hewlett-Packard Development Company, L.P. Maintaining system firmware images remotely using a distribute file system protocol
CN104220981A (zh) * 2012-02-23 2014-12-17 惠普发展公司,有限责任合伙企业 用于修改有效固件的固件包
JP5683518B2 (ja) * 2012-03-27 2015-03-11 三菱電機株式会社 ファームウェア更新装置およびその方法
CN102693145B (zh) * 2012-05-31 2015-02-25 红石阳光(北京)科技有限公司 用于嵌入式***的差分升级方法
CN103713964B (zh) * 2012-09-29 2017-06-27 联想(北京)有限公司 一种数据备份、恢复的方法和电子设备
EP2951677A4 (en) * 2013-01-31 2016-08-03 Hewlett Packard Entpr Dev Lp UPDATING A VALIDATION LIST FOR INDICATING DATA TO WRITE TO A REFERENTIAL OF VARIABLES OF A MICROLOGICAL INTERFACE
WO2014158194A1 (en) * 2013-03-29 2014-10-02 Hewlett-Packard Development Company, L.P. Update of programmable for computing nodes
TWI525542B (zh) * 2013-09-09 2016-03-11 Insyde Software Corp Uefi bios開機及更新之系統及方法、記錄媒體及電腦程式產品
WO2015060853A1 (en) * 2013-10-24 2015-04-30 Intel Corporation Techniques for pre-os image rewriting to provide cross-architecture support, security introspection, and performance optimization
US20160267273A1 (en) * 2013-11-06 2016-09-15 Mitsubishi Electric Corporation Software update apparatus and computer-readable storage medium storing software update program
CN105917306B (zh) 2014-01-22 2020-04-10 惠普发展公司,有限责任合伙企业 用于配置***固件配置数据的***和方法
IN2015CH02762A (ja) * 2015-06-01 2015-07-17 Wipro Ltd
EP3510483B1 (en) 2016-09-23 2023-12-20 Huawei Technologies Co., Ltd. Binary image differential patching
JP6760813B2 (ja) * 2016-10-14 2020-09-23 日立オートモティブシステムズ株式会社 ソフトウェア更新装置、ソフトウェア更新方法、ソフトウェア更新システム
CN109284123A (zh) * 2017-07-21 2019-01-29 深圳市中兴微电子技术有限公司 一种采用版本分割实现压缩版本升级的方法及***
CN109324810A (zh) * 2017-07-26 2019-02-12 深圳市中兴微电子技术有限公司 物联网设备升级包的制作方法及***
US20190155598A1 (en) * 2017-11-17 2019-05-23 Apple Inc. Techniques for updating a file using a multi-version patch file
JP7013918B2 (ja) * 2018-02-16 2022-02-01 トヨタ自動車株式会社 車両制御装置、プログラム更新方法およびプログラム
JP7069826B2 (ja) * 2018-02-27 2022-05-18 株式会社リコー 情報処理装置、ファームウェア更新方法、プログラム
JP7249735B2 (ja) * 2018-03-05 2023-03-31 日本電産株式会社 ロボット制御装置、バックアップファイルの保存方法およびプログラム
TWI676933B (zh) * 2018-07-05 2019-11-11 慧榮科技股份有限公司 韌體更新方法
CN111104149A (zh) * 2018-10-25 2020-05-05 华为技术有限公司 一种固件升级方法、装置及终端
KR20200089939A (ko) * 2019-01-18 2020-07-28 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
CN114265613B (zh) * 2021-12-21 2022-06-28 红石阳光(北京)科技股份有限公司 一种整车所有电控单元固件差分升级方法及***

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11110218A (ja) 1997-10-03 1999-04-23 Hitachi Ltd ファームウェア書き換え装置
JP2002506249A (ja) * 1998-03-03 2002-02-26 シーベル システムズ,インコーポレイティド ソフトウェア・アップグレードの分配およびインスタンス化のための方法、システム、装置およびプログラム製品
JP2004194298A (ja) * 2002-11-18 2004-07-08 Ricoh Co Ltd 画像形成装置、プログラム更新方法
JP2004310221A (ja) * 2003-04-02 2004-11-04 Denso Corp データ書換方法及び電子制御装置
JP2008501180A (ja) * 2004-06-01 2008-01-17 レッド ベンド エルティーディー 記憶装置に記憶されたコンテンツをインプレース更新するための方法およびシステム
JP2008027331A (ja) * 2006-07-25 2008-02-07 Seiko Epson Corp ファームウェア書き換え方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7080371B1 (en) 1998-03-03 2006-07-18 Siebel Systems, Inc. Method, system, apparatus and program product for distribution and instantiation of software upgrades
JP4302970B2 (ja) 2002-12-16 2009-07-29 富士通株式会社 差分更新方法、プログラム及び装置
DE602004013120T2 (de) 2004-03-10 2009-05-14 Sony Ericsson Mobile Communications Ab Automatisierter Datensicherungsspeicher in Firmware-Aufwertungen
US7873669B2 (en) * 2004-07-09 2011-01-18 Microsoft Corporation Direct write back systems and methodologies
JP2006260058A (ja) * 2005-03-16 2006-09-28 Fujitsu Ltd 計算機サーバ・システムにおけるファームウェアアップデート方法
US20080172584A1 (en) 2007-01-11 2008-07-17 Red Bend Ltd. Method and system for in-place updating content stored in a storage device
EP1956482B1 (en) * 2007-02-09 2011-08-17 Telefonaktiebolaget LM Ericsson Generating delta updates for a processing device
CN101510161A (zh) 2009-03-30 2009-08-19 北京中星微电子有限公司 一种引导程序的实现方法、装置和便携式电子设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11110218A (ja) 1997-10-03 1999-04-23 Hitachi Ltd ファームウェア書き換え装置
JP2002506249A (ja) * 1998-03-03 2002-02-26 シーベル システムズ,インコーポレイティド ソフトウェア・アップグレードの分配およびインスタンス化のための方法、システム、装置およびプログラム製品
JP2004194298A (ja) * 2002-11-18 2004-07-08 Ricoh Co Ltd 画像形成装置、プログラム更新方法
JP2004310221A (ja) * 2003-04-02 2004-11-04 Denso Corp データ書換方法及び電子制御装置
JP2008501180A (ja) * 2004-06-01 2008-01-17 レッド ベンド エルティーディー 記憶装置に記憶されたコンテンツをインプレース更新するための方法およびシステム
JP2008027331A (ja) * 2006-07-25 2008-02-07 Seiko Epson Corp ファームウェア書き換え方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2362312A4

Also Published As

Publication number Publication date
EP2362312A4 (en) 2014-04-23
EP2362312A1 (en) 2011-08-31
US20110179406A1 (en) 2011-07-21
CN102132258A (zh) 2011-07-20
JP2011044087A (ja) 2011-03-03
US8726262B2 (en) 2014-05-13
EP2362312B1 (en) 2015-09-23
CN102132258B (zh) 2014-05-14
JP5346253B2 (ja) 2013-11-20

Similar Documents

Publication Publication Date Title
JP5346253B2 (ja) ファームウェア更新システム、及び情報機器、並びにプログラム
JP5113700B2 (ja) ファームウェア更新装置及び方法
US7533378B2 (en) File-update apparatus for updating a file recorded on a recording medium
JP5342302B2 (ja) ファームウェア更新システム、ファームウェア配信サーバ、及びプログラム
US8261035B1 (en) System and method for online data migration
JP5478986B2 (ja) 情報機器及びプログラム
KR101781447B1 (ko) 시스템 리셋
JP6064608B2 (ja) ストレージ装置、バックアッププログラム、およびバックアップ方法
US8578203B2 (en) Providing a backup service from a remote backup data center to a computer through a network
CN105260270A (zh) 一种Flash存储空间的动态恢复方法及装置
US8229892B2 (en) Storage apparatus and data restoring method used therein
CN104484240A (zh) 一种终端数据存储的方法及装置
CN109086078A (zh) 安卓***升级方法、装置、服务器及移动终端
US9015526B2 (en) Restoring method and computer system
JP2008033527A (ja) ストレージ装置、ディスク装置及びデータ復元方法
US20050262033A1 (en) Data recording apparatus, data recording method, program for implementing the method, and program recording medium
US11176089B2 (en) Systems and methods for implementing dynamic file systems
JP2008217202A (ja) ディスクアレイ装置及びファームウェア更新方法
JP4550869B2 (ja) データ同期システム及びデータ同期プログラム
JP2007328824A (ja) メモリカード、不揮発性メモリ、不揮発性メモリのデータ書込み方法及びデータ書込み装置
US20220129198A1 (en) Data updates for controllers
US20200364124A1 (en) Efficient handling of raid-f component repair failures
US8555020B2 (en) Reclaiming space occupied by an expired variable record in a non-volatile record storage
JP2005078368A (ja) ファイル制御プログラム、ファイル制御装置及びファイル制御方法
JP2005235110A (ja) 電子機器及び同機器に用いるプログラム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080002439.8

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 13120219

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2010811738

Country of ref document: EP

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10811738

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE