WO2004068348A1 - 差分データ生成装置及び方法、更新後データ復元装置及び方法、並びにプログラム - Google Patents
差分データ生成装置及び方法、更新後データ復元装置及び方法、並びにプログラム Download PDFInfo
- Publication number
- WO2004068348A1 WO2004068348A1 PCT/JP2003/013383 JP0313383W WO2004068348A1 WO 2004068348 A1 WO2004068348 A1 WO 2004068348A1 JP 0313383 W JP0313383 W JP 0313383W WO 2004068348 A1 WO2004068348 A1 WO 2004068348A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- update
- area
- restoration
- difference
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000011084 recovery Methods 0.000 title abstract 2
- 238000013500 data storage Methods 0.000 claims abstract description 138
- 239000000872 buffer Substances 0.000 claims description 88
- 238000000605 extraction Methods 0.000 claims description 27
- 238000004891 communication Methods 0.000 claims description 11
- 230000003139 buffering effect Effects 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 abstract description 7
- 238000006243 chemical reaction Methods 0.000 abstract description 5
- 238000012545 processing Methods 0.000 description 23
- 230000005540 biological transmission Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 6
- 239000000284 extract Substances 0.000 description 5
- 230000000052 comparative effect Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 239000007853 buffer solution Substances 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 241001591518 Norape Species 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
Definitions
- the present invention relates to a data update method for updating data in the own device using difference data, and relates to a difference data generation device and method, an after-update data restoration device and method, and a program used in the data update method.
- a terminal device such as a personal computer, a personal digital assistant (PDA), or a mobile phone
- PDA personal digital assistant
- the target program is executed in order to improve the program.
- a so-called version upgrade may be performed to update the version of the data that contains it.
- data such as software before update (hereinafter referred to as “before update data”) recorded on a rewritable recording medium such as a flash ROM or a hard disk is used. Version) (to be referred to as updated data hereinafter).
- Non-Patent Document 1 a method of transferring update data via a communication path such as a network and updating the data.
- the transmitting device compares the pre-update data with the post-update data to extract the difference, and transfers only the difference data
- the receiving terminal device transfers the pre-update data in the device.
- a procedure for restoring the updated data from the difference data and updating the data is used (for example, see Patent Document 1).
- the difference is extracted in parts (referred to as blocks) (for example, see Non-Patent Document 1).
- the detailed difference extraction technique in Non-Patent Document 1 is described in Non-Patent Document 2.
- This difference extraction technique is called the Block-Move algorithm, and compares the pre-update data with the post-update data to search for a matching data sequence, and the matching data sequence is used as it is from the pre-update data to the post-update data.
- the data is copied in such a way that it moves as Move data, and the difference data is created by adding and writing a new data string as Add data for the data string that does not match.
- FIG. 11 shows a pseudo code used for extracting difference data.
- (P, q, 1) in the pseudo code is an instruction to move continuous data, and means that one (ell) byte from address p of the pre-update data can be carried to address q of the post-update data.
- p i to p 3 indicate addresses in the pre-update data. If the pre-update data is in the memory, p 1 to; 3 is the difference between the address in the memory and the head address of the pre-update data. If there is pre-update data on the file, p1 to p3 are represented by the distance from the beginning of the file. (11 to (13 are addresses in the post-update data, and have the same meanings as p1 to p3 in the pre-update data.)
- FIG. 12 shows an example of the data.
- FIG. 12 (A) shows the data before update
- FIG. 12 (B) shows the data after update
- FIG. 12 (C) shows the difference data.
- the output from the pseudo code in Fig. 11 is (i> 2, q2, 2) (p 3, q 3, 2) (pl, ql, 3).
- This command is transferred as differential data to the terminal device on the receiving side, and is applied to the data before update in FIG. 12 (A) at the terminal device, whereby the updated data in FIG. 12 (B) can be obtained.
- the difference data to be transferred becomes small, and the receiving terminal can restore and generate updated data based on the small amount of difference data to update the data. It becomes.
- Non-Patent Document 2 when generating difference data, By comparing each block obtained by dividing the data in a predetermined unit, instead of comparing the entire data, the time required for extracting the difference can be reduced. If the difference between the pre-update data and the post-update data is small and the pre-update data is mostly in the same block of the post-update data, the difference is extracted by referring to only a part of the data in block units as described above. It is possible to greatly reduce the amount of calculation for. Also, in this case, the increase in the amount of differential data by dividing into blocks is not so large, and the differential data can be kept small.
- Non-Patent Document 1 By referencing the preceding and following blocks in this way, it is possible to copy data that has moved significantly across blocks from the pre-update data to the post-update data, thus further reducing the amount of differential data. it can.
- a normal computer is assumed as a terminal device that receives the difference data for updating and the like and updates the data. It is not considered for use in embedded devices such as portable information terminals. Embedded devices such as mobile phones have the following special features.
- an area (also referred to as an updatable area or a code area) for holding data to be updated such as a device program on a rewritable non-volatile memory such as a flash ROM and the like when the user uses it.
- An area that holds stored data, etc., and that is not to be rewritten when updating data (also referred to as non-updatable area or user area) may be mixed.
- the post-update data cannot be saved during the update. If an attempt is made to write the updated data to the area where the updated data is stored in parallel with the restoration of the updated data, the contents of the unupdated data referred to during restoration using the differential data will be changed. I cannot do a correct restoration.
- FIG. 13 is a diagram for explaining a problem when restoring and writing of updated data are performed in parallel.
- the non-updatable user areas 501, 503 and the updatable area code areas 502, 504 are mixed.
- the data update operation in the state where the data is present will be described.
- blocks a to g of code regions 502 and 504 are updated.
- the data is updated by referring to the pre-update data of the reference range 5 1 2 (block b in the example shown) starting from the rewrite address 5 11 1 at the address 5 10 in the memory.
- the updated data is restored based on the data, and the updated data is written to the write range 5 13 (block b).
- the reference range 5 12 and the write range 5 13 overlap, and the data in the reference range 5 12 changes during the restoration and writing operations, making it impossible to restore the updated data. It becomes.
- the updated data is restored by referring to a plurality of blocks before and after as described in the related art, the user area that is the non-updatable area and the code area that is the updatable area are separated. If the code areas are mixed and discontinuous, or blocks with different block sizes are mixed in the code area, correct restoration cannot be performed.
- the area in which the difference extraction means updates data is continuous. It interprets that it is and extracts the difference.
- the data may not be correctly restored because it may refer to different data than when the difference was extracted There is a risk.
- FIG. 14 is a diagram illustrating a problem when the code area that is the updatable area is discontinuous.
- the user areas 501 and 503 which are non-updatable areas
- the code areas 500, 504 which are updatable areas
- the data update operation of the blocks a to g in the code areas 502 and 504 in the state where the data is mixed will be described.
- Fig. 14 (A) when the pre-update data 540 is divided into uniform and continuous block sizes according to the conventional method, and the difference is extracted by comparing multiple blocks.
- the reference range 551 for block b and the reference range 552 for block d are compared between the pre-update data and the post-update data. Will do.
- FIG. 14 (B) When restoring the updated data, as shown in FIG. 14 (B), on address 510 of rewritable nonvolatile memory 500, reference range 531 for block b and reference range 531 for block d Reference range 5 32 will be referred to.
- the block d refers to the user area 503, and there are parts 5 3 3 and 5 5 3 where the contents of the reference destination are different between the time of difference extraction and the time of restoration, and data can be restored correctly. Can not. Also, in this case, since the user area and the code area are not recognized to be distinguished, data may be written to the user area.
- the pre-update data is expanded on the rewritable nonvolatile memory 500 as shown in FIGS. 15 (A) and (B). It is also conceivable that dummy data 561 and 562 are inserted and expanded in the user area so that the layout is the same as that described above, and the difference is extracted using the expanded pre-update data 560.
- the reference range 571 for the block b and the reference range 572 for the block d are compared between the pre-update data and the post-update data. For comparison reference.
- the block d refers to the dummy data 562 when extracting the difference, and refers to the user area 503 different from the dummy data 562 when restoring the updated data. 5 3 3 and 5 7 3 are generated, and data restoration cannot be performed correctly.
- the present invention relates to a case where a non-updatable area and an updatable area are mixed on a memory, and a storage area for pre-update data / updated data is discontinuous, or a storage area having a different block size is mixed. Even in this case, it is an object of the present invention to provide a differential data generation device and method, a post-update data restoration device and method, and a program that enable data to be correctly and efficiently executed with a simple calculation procedure.
- the present invention firstly provides a differential data generation device that generates differential data for rewriting data from pre-update data to post-update data, wherein the data-recovery-side data regarding the pre-update data and the post-update data
- Area setting means for setting a reference range of data before update at the time of difference extraction based on storage area information including arrangement information of storage areas in the data storage means;
- Difference extracting means for comparing and referencing the data before update to generate difference data; and header information including address information of target data at the time of data restoration in the data storage means on the data restoration side in the generated difference data.
- a difference file generating means for generating the added difference file.
- the updatable area for storing the data to be updated and the non-updatable area for storing the user data are mixed and the updatable area is discontinuous.
- the difference extracting means can generate difference data by referring to only one continuous updatable area based on the storage area information.
- the restoration-side device can normally restore the updated data from the pre-update data and the difference data by referring to only one continuous updatable area based on the header information in the difference file. It is.
- a storage area information holding means for holding the storage area information wherein the data storage means on the data restoration side stores the pre-update data or the post-update data in units of blocks.
- the storage area information includes address information of a storage area for storing the pre-update data and the post-update data in the data storage unit on the data restoration side;
- a storage area in which addresses on the data storage means are continuous and composed of one or more blocks of the same block size is defined as one updatable area, and the start address, end address, and It shall include the block size.
- the difference is determined by referring to only one continuous updatable area based on the storage area information. It is possible to generate data, and it is possible to prevent a problem in which difference data is generated by referring to another area.
- the reference range is set as a reference range of the data before update at the time of extraction so as to refer to a plurality of blocks combining the target block and one or more blocks before and after the target block based on the storage area information. If the reference range obtained from the target block does not fit in the updatable area, an area that is within the reference range and that is within the updatable area is newly set as the reference range. Shall be.
- the pre-update data and post-update data consist of multiple blocks
- other data is generated based on the storage area information. It is possible to generate difference data by referring to only one continuous updatable area without straddling the area. In this case, the data amount of the difference data can be reduced by referring to a plurality of blocks. Therefore, the restoration-side device can normally restore data while referring to a plurality of blocks even if the updatable area of the data storage means is discontinuous.
- the header information includes address information indicating a writing range of updated data at the time of data restoration in the data restoration unit on the data restoration side.
- the address information includes a reference range of the pre-update data at the time of data restoration in the data storage unit on the data restoration side.
- the restoration-side device uses the header information to store the difference data and the pre-update data.
- the process of restoring the updated data by referring to the data and the process of writing the restored updated data can be executed appropriately, so that when the data is restored, it is referred to over other areas or blocks that are still within the reference range are restored. It is possible to prevent a problem such as writing data after updating. For this reason, it is possible to normally rewrite the data before update to the data after update. In addition, these operations can be performed without requiring storage area information.
- the present invention provides a differential data generation method for generating differential data for rewriting data from pre-update data to post-update data, wherein the pre-update data and the post-update data are related to the data restoration side.
- a difference extraction step of generating difference data by comparing and referring to the pre-update data, and adding the address information of the target data at the time of data restoration in the data storage means on the data restoration side to the generated difference data.
- the updatable area for storing the data to be updated and the non-updatable area for storing the user data are mixed and the updatable area is discontinuous.
- the restoration-side device can normally restore the post-update data from the pre-update data and the difference data by referring to only one continuous updatable area based on the storage area information.
- the data storage means on the data restoration side has a storage area for storing the pre-update data or the post-update data in block units, and the storage area information is the data restoration side.
- a storage area consisting of one or a plurality of blocks having consecutive addresses on the storage means and having the same block size is defined as one updatable area, and the start address, end address, and block size of each updatable area are defined as
- the difference extraction is performed.
- the reference range is set as a reference range of the data before update based on the storage area information so as to refer to a plurality of blocks combining the target block and one or more blocks before and after the target block. If the reference range obtained from the target block does not fit in the updatable area, an area that is within the reference range and within the updatable area is newly set as the reference range. I do.
- the pre-update data and the post-update data are composed of multiple blocks, and the difference data is generated by referring to multiple blocks that combine the target block and the blocks before and after it, other data is generated based on the storage area information. It is possible to generate difference data by referring to only one continuous updatable area without straddling the area. In this case, the amount of difference data can be reduced by referring to a plurality of blocks. Therefore, the restoration-side device can normally restore data while referring to a plurality of blocks even if the updatable area of the data storage means is discontinuous.
- the present invention provides a program for causing a computer to execute the procedure of the differential data generation method according to the sixth or seventh aspect.
- the non-updatable area and the updatable area are mixed on the data storage means on the restoration side, the storage areas for the pre-update data and the post-update data are discontinuous, and the storage areas of different block sizes are used. Even when there is a mixture of data, it is possible to execute data updating correctly and efficiently with a simple calculation procedure.
- the present invention relates to an after-update data restoring device for restoring after-update data from before-update data and rewriting data by using difference data received via communication means, And data storage means for storing the updated data; reception means for receiving difference data sent via the communication means and address information of target data in the data storage means at the time of data restoration; Data restoring means for restoring post-update data from the pre-update data and the difference data with reference to the pre-update data of the reference range specified in the data storage means specified based on the address information; Buffer means for holding the updated data; And a data writing means for writing the updated data into a writing area in the data storage means specified based on the address information.
- the data storage means can have an updatable area for storing the data to be updated and a non-updatable area for storing user data and the like, so that the updatable area is discontinuous.
- the restoration means can restore the updated data by referring to only one continuous updatable area based on the address information. In this case, processing such as address conversion is not required at the time of restoration, and restoration processing can be performed with few simple procedures.
- the address information is a storage area including arrangement information of a storage area in the data storage unit regarding the pre-update data and the post-update data in the differential data generation device that generates the differential data. Information is stored and is generated based on this storage area information, and includes a writing range of updated data at the time of data restoration in the data storage means.
- the address information includes a reference range of pre-update data at the time of data restoration in the data storage means.
- the restoration process of the post-update data by referring to the difference data and the pre-update data and the write process of the restored post-update data can be appropriately executed in a small amount of memory, and other areas can be restored at the time of restoration. It is possible to prevent such a trouble that the data is referred to over a plurality of blocks or the updated data is written in a block still in the reference range. For this reason, it is possible to normally rewrite the data before the update to the data after the update on one data storage memory.
- the data storage means divides the pre-update data into a plurality of blocks in block units and stores the blocks.
- the storage area of the data storage means is transmitted to the differential data generation device.
- a storage area in which addresses on the data storage means are continuous and one or a plurality of blocks of the same block size is defined as one updatable area
- the data restoring means refers to a plurality of blocks obtained by combining the target block in the data storage means and one or more blocks before and after the block based on the address information as the reference range H, and refers to the updated data. Restore and block the target If the reference range obtained from is not within the updatable area, an area that is within the reference range and within the updatable area is newly referred to as the reference range and restored.
- the buffer unit includes a plurality of regions each configured by a buffer of a ring buffer system and holding updated data restored for each of the blocks
- the data writing unit includes: When the writing range of the updated data held in the buffer unit in the data storage unit deviates from the reference range at the time of data restoration by the data restoration unit, the corresponding updated data is stored in the data storage unit from the buffer unit. In this case, it is assumed that an instruction is given to open the holding area for the updated data after the completion of writing in the buffer means.
- the data storage means is reduced to a minimum memory capacity.
- the present invention provides a post-update data restoring method for rewriting data by restoring post-update data from pre-update data using difference data received via communication means, and Receiving the address information of the target data at the time of data restoration in the data storage means for storing the transmitted differential data and the pre-update data, and the data storage means specified based on the address information.
- the updatable area for storing the data to be updated and the non-updatable area for storing user data and the like in the data storage means are discontinuous and the updatable area is discontinuous.
- processing such as address conversion is not required at the time of restoration, and restoration processing can be performed with few simple procedures.
- the address information is a differential data generation device that generates the differential data, wherein the storage area information including the storage area arrangement information in the data storage unit with respect to the pre-update data and the post-update data.
- the data storage means is generated based on the storage area information, and includes a write range of updated data at the time of data restoration in the data storage means. Is divided into a plurality of blocks for each block, and stored in the storage area of the data storage means.According to the storage area information held in the differential data generation device, the addresses on the data storage means are consecutive, In addition, a storage area consisting of one or more blocks of the same block size constitutes one updatable area.
- the data restoration step based on the address information, a plurality of blocks obtained by combining a target block in the data storage unit and one or more blocks before and after the target block are set as the reference range. And restoring the post-update data, and when the reference range obtained from the target block does not fit in the updatable area, an area that is within the reference range and is within the updatable area. It is assumed that the reference range is newly referred to and restored.
- the address information includes a reference range of the pre-update data at the time of data restoration in the data storage means.
- the pre-update data and post-update data consist of multiple blocks, and the updated data is referenced by referring to multiple blocks that combine the target block and blocks before and after it.
- the data can be normally read by referring to only one continuous updatable area without straddling other areas based on the address information. Data can be restored.
- the updated data restored for each of the blocks is stored in a plurality of buffer units by using a buffer unit configured with a buffer of a ring buffer system and having a plurality of areas.
- the write range of the updated data held in the buffer means in the data storage means is referred to at the time of data restoration in the data restoration step.
- the corresponding updated data is written from the buffer means to the data storage means, and thereafter, an instruction is given to release the holding area of the written updated data in the buffer means.
- the buffer means of the ring buffer method it is possible to easily and appropriately execute the restoration processing of the updated data and the writing processing of the restored updated data by using the data storage means with the minimum memory capacity, In one data storage memory, it is possible to normally rewrite data from before update to data after update.
- the present invention provides, 18thly, a program for causing a computer to execute the procedure of the post-update data restoration method described in any one of the above 14th to 17th.
- the non-updatable area and the updatable area are mixed on the data storage means on the restoration side, the storage areas for the pre-update data and the post-update data are discontinuous, and the storage areas of different block sizes are used. Even when there is a mixture of data, it is possible to execute data updating correctly and efficiently with a simple calculation procedure.
- FIG. 1 is a block diagram showing a functional configuration of a data updating device that realizes a data updating method according to an embodiment of the present invention.
- FIG. 2 is a diagram showing an example of the contents of the code area information file and the structure of the data storage memory according to the present embodiment.
- (A) shows the contents of the code area information file
- (B) shows the structure of the data storage memory.
- FIG. 3 shows the difference for one block in the combined file according to the present embodiment.
- FIG. 4 is a diagram showing an example of a file format
- FIG. 4 is a diagram showing an address and a reference range when restoring the block b of the code area in the data storage memory according to the present embodiment
- FIG. 5 is a flowchart showing an operation procedure for generating difference data in the difference data generation and transmission unit of the present embodiment.
- FIG. 6 is a flowchart showing an operation procedure of the post-update data restoration in the difference data restoration unit of the present embodiment
- FIG. 7 is a diagram showing a specific example of an operation at the time of data restoration by the updated data restoration algorithm shown in FIG. 6 for each step.
- FIG. 8 is a diagram showing a specific example of an operation at the time of data restoration by the updated data restoration algorithm shown in FIG. 6 for each step.
- FIG. 9 is a graph showing the relationship between the number of reference blocks and the difference data size when the difference data generation method according to the present embodiment is applied.
- FIG. 10 is a diagram showing a specific example of an operation at the time of data restoration according to a conventional method for each step as a comparative example with respect to the present embodiment.
- FIG. 11 is a diagram showing pseudo code used for differential data extraction.
- Fig. 12 shows an example of data when data is updated.
- (A) shows data before update
- (B) shows data after update
- (C) shows these difference data.
- FIG. 13 explains the problems when restoring and writing the updated data in parallel when updating data in one rewritable nonvolatile memory using the conventional data update method.
- Fig. 14 explains the problem when the code area, which is the updatable area, is discontinuous when updating data in one rewritable nonvolatile memory using the conventional data update method.
- FIG. 15 shows dummy data inserted in order to avoid differences in the position of the reference range when restoring data when updating data in one rewritable nonvolatile memory using the conventional data update method.
- FIG. 7 is a diagram for explaining a problem in the case where the above operation is performed.
- 101 is data before update
- 102 is data after update
- 105 is a combined file
- 110 is a difference data generation and transmission unit
- 110 is a data storage unit
- 1 1 2 Is a difference extraction section
- 1 13 is a transmission buffer
- 1 14 is a transmission section
- 1 15 is a code area information file
- 1 16 is a code area setting section
- 1 17 is a control section
- 1 18 is an area Information storage unit
- 120 is a differential data restoration unit
- 1 21 is a data storage memory
- 122 is a reception unit
- 123 is a reception buffer
- 124 is a restoration unit
- 125 is a restoration buffer
- 1 26 is the memory write section
- 1 27 is the control section
- 130 is the network
- 150 is the rewrite address
- 152 is the reference range
- 150 3 is the write range
- 201, 203 is a user area
- 202 and 204 are code areas.
- FIG. 1 is a block diagram showing a functional configuration of a data updating device that realizes a data updating method according to an embodiment of the present invention.
- a data updating apparatus a configuration and an example of an operation when updating a version of data including an operation program and the like stored in a terminal device such as a mobile phone will be described.
- a difference data generation / transmission unit 110 provided in a server device and a difference data restoration unit 120 provided in a terminal device such as a mobile phone are connected by a wired or wireless communication device. It is configured to be connected via network 130.
- This data update device is used, for example, to update data in a terminal device via a communication line by transferring difference data from a server device to the terminal device via a network of a mobile communication system via a wireless communication network. Used for etc.
- the difference data generation and transmission unit 110 is composed of a data storage unit 111 composed of a hard disk or the like for storing the pre-update data 101 and the post-update data 102, the pre-update data 101 and the post-update data 110.
- a difference extraction unit 1 1 2 that extracts the difference from 2 to generate difference data
- a transmission buffer 1 13 that stores a combined file 1 05 for transmission that combines the generated difference data
- a transmitting unit 114 for transmitting data such as 5 to the differential data restoring unit 120 via the network 130.
- an area information storage unit 118 that stores a code area information file 115 that includes a code area (updatable area) block arrangement information in the memory of the receiving terminal device, and a code area information file 11 1 Based on the contents of 5
- a code area setting unit 116 for setting and instructing the difference extracting unit 112 is provided, and a control unit 117 for controlling each unit.
- the code area setting unit 116, the area information storage unit 118, and the control unit 117 implement the function of the area setting means described in the claims.
- the code area information file 115 corresponds to the storage area information described in the claims
- the area information storage unit 118 corresponds to the storage area information holding means described in the claims.
- the difference extracting unit 112 and the control unit 117 realize the function of the difference extracting means described in the claims.
- the difference extraction unit 112, the transmission buffer 113, and the control unit 117 realize the function of the difference file generation means described in the claims.
- the difference data restoring unit 120 is provided with a data storage memory 121 such as a rewritable nonvolatile memory (flash ROM, etc.) for storing data such as a program to be updated.
- a receiving unit 122 for receiving data such as the combined file 105 sent from the difference data generating and sending unit 110; a receiving buffer 123 for storing the received combined file 105;
- a restoration unit 124 that restores the updated data for each block while referring to the combined file 105 and the data before update in the data storage memory 121, and a restoration that temporarily stores the restored updated data.
- the data storage memory 121 corresponds to the data storage means described in the claims
- the restoration buffer 125 corresponds to the buffer means described in the claims.
- the receiving unit 122 and the receiving buffer 123 realize the function of the receiving means described in the claims.
- the restoration unit 124 and the control unit 127 realize the function of the data restoration means described in the claims.
- the memory writing section 126 and the control section 127 realize the function of the data writing means described in the claims.
- data to be updated such as a program, such as a user area 201, a code area 202, a user area 203, a code area 204,.
- the code area (updatable area) 202 and 204 that holds the data, and the user area (non-updatable area) 201 and 203 that hold the data that is not updated, such as user data, are mixed.
- the case where the block size is different between the area 202 and the code area 204 is shown.
- an outline of a data flow at the time of data update will be described.
- the pre-update data 101 and the post-update data 102 are stored in a continuous data state. That is, as shown in FIG. 1, even if the code areas 202 and 204 are discontinuous in the data storage memory 121 of the terminal device, the plurality of code areas 103 and 104 corresponding to this are not continuous. Stored with the data combined.
- Each of the code areas 103 and 104 represents a group of blocks of the same size when the pre-update data and the post-update data are stored in the memory.
- the pre-update data 101 is al to gl. It is assumed that the updated data 102 stores a2 to g2. As described above, the data before update 101, the data after update 102, the combined file 105 of the difference data, and the like are separated in units of blocks.
- the block is a unit at the time of batch erasing in the data storage memory 121 of the differential data restoration unit 120. It is assumed that the pre-update data 101 and the post-update data 102 are provided from another device or the like.
- the difference extraction unit 112 extracts a difference between the pre-update data 101 and the post-update data 102 based on the instruction of the control unit 117.
- the pre-update data 101 and the post-update data 102 stored in the data storage unit 111 are compared with each other by the Block-Move algorithm described above to search for a matching data string.
- the data string to be copied is copied as it is as Move data from the data before the update to the data after the update, and the data string that does not match is the differential data that includes an instruction to add and write a new data string as Add data.
- Generate The method of generating the difference data is described in detail in Non-patent Documents 1 and 2. In the present embodiment, an example in which difference data is generated for each block by comparing and referring to a plurality of blocks including before and after an update target block will be described.
- the difference extraction unit 112 attaches header information to the difference data generated for each block, creates a combined file 105 as transmission data of a predetermined unit, and stores this in the transmission buffer 113. I do.
- This combined file 105 is a set of differential data a 1 2 to g 1 2 indicating the location of the change from the pre-update data 101 to the post-update data 102. Are combined.
- the connection file 105 is transmitted from the transmission section 114 via the network 130.
- the differential data restoring unit 120 the combined file 105 transferred from the differential data generating and transmitting unit 110 is received by the receiving unit 122 and stored in the receiving buffer 123.
- the restoration unit 124 restores the post-update data with reference to the combined file 1 5 in the reception buffer 123 and the pre-update data in the data storage memory 122.
- the updated data is restored for each block by referring to a plurality of blocks including before and after the block to be updated. Then, the restoration unit 124 temporarily stores the updated data restored for each block in the restoration buffer 125.
- the restoration buffer 125 is divided into a plurality of (two in the example shown) areas 125a and 125b, and the size of each area is the largest in the data storage memory 121. Is the same as the size of the block.
- the restoration buffer 125 is managed by a ring buffer system, and data writing and reading are sequentially performed. The details of the ring buffer are described in detail by Kiyoshi Ishihata, “Algorithms and Data Structures”, Iwanami Koza Software Science, Iwanami Shoten, 1989, pp.46-48.
- the data storage memory 121 stores pre-update data before data update starts.
- the restoration unit 124 shifts the reference range in the data storage memory 121 by one block toward the block with the larger address. Then, the memory writing unit 126 writes the restored updated data held in the restoration buffer 125 to the block in the data storage memory 121 that is no longer referred to.
- the area of the restoration buffer 125 storing the written updated data is released.
- FIG. 2 (A) shows an example of the contents of the code area information file 1 15.
- the line number 16 1 is shown for the sake of convenience for ease of explanation, and does not exist in the actual code area information file 115.
- FIG. 2B illustrates an example of the structure of the data storage memory 121.
- embedded devices such as terminal devices, such as mobile phones, often use a rewritable nonvolatile memory such as a flash ROM for storing data such as software programs.
- reading can be referred to only by specifying the address in the same way as ordinary RAM, but data must be changed in a unit called a block, and then erased and written with new data. No. Even within a single device, the block size may differ depending on the address space.
- Flash ROM the code area for storing codes (programs) and the user area for storing user data are sometimes divided into blocks.
- 0x1000 force, 0x5000-1 and 0x7000 to 0x8800-1 are code regions 202, 204, and 0x0 force, etc.
- 0x1000-1 and 0x5000 to 0x7000-1 are user areas 201 and 203.
- the code area 202 corresponds to four blocks of addresses 0xl000 to 0x5000-l and blocks a to d.
- the code area 204 corresponds to three blocks of addresses 0x7000 to 0x8800-l and blocks e to g.
- the user area 201 corresponds to addresses 0 ⁇ 0 to 0 ⁇ 1000-1
- the user area 203 corresponds to addresses 0x5000 to 0x7000-l.
- the code area information file 115 shows information on the block arrangement of the code areas 202 and 204.
- One code area is represented by a range enclosed by curly braces ⁇ following the reserved word codearea representing the code area.
- curly braces ⁇ the value of each element is specified by the head indicating the start address of the code area, the tail indicating the end address of the code area, and the blocksize indicating the size of each block in the code area. I have.
- the first code region 202 is shown in the first to fifth lines.
- the head shows that the start address of the code area is 0x1000.
- the tail shows that the final address of the code area is 0x5000-1.
- the block size is all 0x1000 in the code area.
- the start address force is 0x7000
- the last address force is 0x8800-1
- the block size is 0x800.
- the format of the combined file 105 will be described with reference to FIG.
- the combined file 105 adds header information to difference data generated by comparing the pre-update data and the post-update data for each block on the data storage memory 121, and combines the data in predetermined units or in whole units.
- the difference data of each block with header information added is also called a difference file.
- Figure 3 shows an example of the format of the difference file for one block.
- the difference file format 170 of one block includes a block data length 171, a rewrite address 1772, and a block difference data 1773.
- the block data length 17 1 indicates the total length of the difference file for one block.
- the rewrite address 1772 is generated with reference to the code area information file 115, and indicates the head address of the area where the restored updated data is stored in the data storage memory 121.
- the block difference data 173 is one block of difference data extracted and generated by the difference extraction unit 112.
- the difference file contains, as header information added to the difference data, address information indicating the writing range of the restored updated data at the rewrite address 1772, as well as the pre-update data at the time of data restoration. It is also possible to include the address information indicating the reference range and transfer it to the data restoration side.
- FIG. 4 shows an address and a reference range when the block b of the code area 202 in the data storage memory 121 is restored.
- the target block and one block before and after the target block are referred to when generating the difference data and restoring the updated data.
- the reference range 152 on the address 150 of the data storage memory 121 is from block a to block c, that is, 0xl000 to 0x5000-l.
- the write range 1553 is block b, that is, 0x2000 to 0x3000-l.
- the rewrite address 15 1 when writing the updated data is the start address of the write range 15 3, that is, 0x2000.
- the rewrite address 155 is provided before the block difference data 173 in the difference file format 170 as shown in FIG.
- the difference extracting unit 112 adds based on the code area arrangement information obtained from the defining unit 116.
- FIG. 5 is a flowchart showing an operation procedure of difference data generation in the difference data generation and transmission unit of the present embodiment.
- the flowchart in FIG. 5 consists of a double loop consisting of an outer loop for processing all code regions and an inner loop for processing all blocks in each code region.
- a case will be described in which, when generating the difference data, the target block of the data before update and the data after update and one block before and after the target block, that is, three blocks in total.
- the outer loop (steps S401 to S402) performs processing for all code areas defined in the code area information file 115.
- the control unit 117 checks whether or not a code area to be processed remains in the code area information file 115 (Step S401). If no code area remains, the operation ends. If a code area remains, the code area setting unit 116 is instructed to read one code area from the code area information file 115 (step S402). Then, the control unit 117 performs the processing for the one read code area in the next loop from step S 403 to step S 409, and then executes step S 410 Return to and continue execution of the outer loop.
- the inner norape (steps S403 to S409) performs processing on one code area read in step S402.
- control unit 117 determines whether or not an unprocessed block remains in the code area being processed (step S403). Here, if there is no unprocessed block, the process returns to step S401 to proceed to the processing of the next code area. If an unprocessed block remains, the flow advances to step S404.
- the control unit 117 extracts the first block, that is, the block with the smallest start address, from the block of blocks for which difference extraction has not been performed to generate difference data (step S404). Then, the control unit 117 determines whether or not the extracted block is the head in the code area (step S405). Here, if it is the head of the code area, the process proceeds to step S 406, and the difference extraction unit 1 1 2 is configured to perform the difference generation while referring to a total of two blocks, the block being processed and the block immediately after it. Indicate to (Step S406). However, if there is only one block in the code area, only the block being processed is referenced. Next, after the end of step S406, the control unit 117 returns to step S403 and repeats the processing.
- step S405 determines in step S405 that the block is not the head of the code area
- the process proceeds to step S407, and determines whether the block being processed is the end of the code area.
- Step S407 determines whether the block being processed is the end of the code area.
- it is instructed to the difference extraction unit 112 to generate a difference while referring to a total of two blocks of the previous block and the block being processed (step S4). 0 8).
- step S408 the control unit 117 returns to step S403 and repeats the processing.
- the difference extraction unit 112 If the block being processed is not at the end of the code area in step S407, the difference extraction unit 112 generates the difference while referring to the block being processed and a total of three blocks of one block before and after. (Step S409).
- each of the above outer and inner loops is implemented by a program, it can be implemented by a program showing repetition of a for statement, a while statement, etc. in C language and Java language.
- step S402 the part enclosed in curly braces following the keyword codearea in the code area information file 115 in FIG. It means reading in order from.
- the code area following the already read code area is the force remaining in the code area information file 115, or the code area that was read last without remaining Check if there is no data after the end of the file (only insignificant data such as blanks, line feeds, tabs, comments, etc.).
- the inner loop processes one code region read in step S402 in the outer loop.
- the code area information file 1 15 indicates the start address, end address, and block size of the code area.
- the inner loop uses the initial value of one variable as the first address, the value used to determine when to end, the last address, Change with one iteration (repeated) This can be realized by a for statement that uses the value whose number increases as the block size.
- FIG. 6 is a flowchart showing the operation procedure of the post-update data restoration in the difference data restoration unit of the present embodiment.
- a difference file is used to refer to the target block of the pre-update data and one block before and after the target block, for a total of three blocks.
- the control unit 127 extracts the first difference file (corresponding to the first block) from the reception buffer 123 (step S501).
- This difference file contains difference data for each block and information on the rewrite address (write range).
- the rewrite address includes information indicating the write range of the restored post-update data. However, the rewrite address may include information indicating the reference range of the pre-update data at the time of data restoration together with the write range.
- the restoration unit 124 is instructed to restore one block while referring to the reference range of the data storage memory 121 (step S520). Then, the restored updated data is written to the restoration buffer 125 (step S503).
- step S504 it is determined whether or not the difference file remains in the reception buffer 123 (step S504). If no difference file remains, the process proceeds to step S510, and the contents written in the restoration buffer 125 being processed are transferred to the block indicated by the write destination address of the data storage memory 122. Write (step S510). If a difference file remains, the process proceeds to step S505, in which the first difference file in the reception buffer 123 is extracted (step S505), and the extracted difference file and the data storage memory are stored. The restoration unit 124 is instructed to restore the data of one block while referring to the reference range of 121 (step S506). Thereafter, the restored updated data is written to an empty area of the restoration buffer 125 (step S507).
- step S5 the updated data written in the restoration buffer 125, which was restored just before, is written to the corresponding block of the data storage memory 121 according to the write destination address of the data (step S5). 0 8).
- step S5 the area of the restoration buffer 125 referred to in step S508 is released (step S509). Then, returning to step S504, the next difference file Move to the processing of the file.
- the post-update data a 2 is restored and one area of the restoration buffer 125 (first area) Store in 1 2 5 a.
- the reference range at this time is a to c, which is the sum of the target block b and the preceding and following blocks a and c.
- the post-update data b 2 is restored and the other area of the restoration buffer 1 25 (second (Area) Store in 1 2 5 b.
- the updated data of the block a is written.
- the writing range at this time is the target block a, and the updated data a2 accumulated in the first area 125a of the restoration buffer 125 is written to the block a of the data storage memory 122.
- the first area 125a of the restoration buffer 125 storing the updated data a2 that has been written is released.
- the updated data of block c is restored.
- the reference range at this time is b to d, which is the sum of the target block c and the preceding and following blocks b and d.
- the post-update data c2 is restored to restore the first area of the released restoration buffer 125. Store in 1 2 5 a.
- the updated data of the block b is written.
- the writing range is the target block b
- the updated data b 2 accumulated in the second area 125 b of the restoration buffer 125 is written to the block b of the data storage memory 122.
- the updated The second area 125b of the restoration buffer 125 storing the subsequent data b2 is released.
- the updated data of the block d is restored.
- the reference range is c to d, which is the sum of the target block d and the previous block c.
- the post-update data d2 is restored and stored in the second area 1 25b of the restoration buffer 125. I do.
- the updated data of the block c is written.
- the writing range is the target block c
- the updated data c2 stored in the first area 125a of the restoration buffer 125 is written to the block c of the data storage memory 122.
- the first area 125a of the restoration buffer 125 storing the updated data c2 having been written is released.
- the updated data of the block d is written.
- the writing range is the target block d
- the updated data d2 accumulated in the second area 125b of the restoration buffer 125 is written to the block d of the data storage memory 122.
- the difference extraction unit 112 when generating the difference data, performs the difference extraction while referring to the enlarged reference range, and furthermore, the restriction of the reference range in the blocks near the beginning and end of the code area is restricted. Therefore, it is necessary to correct the conditional branch in steps S405 and S407 in FIG.
- FIG. 9 is a graph showing the relationship between the number of reference blocks and the difference data size when the above-described difference data generation method is applied to a certain embedded device.
- the data before update and the data after update are each 16 Mbytes (bytes), and the size of one block is 128 bytes.
- the figure shows the results obtained by calculating the change in the data amount of the difference data with respect to the increase in the number of reference blocks using the sample data obtained.
- the restoration buffer When restoring one block by referring to only one block, the total amount of differential data is about 6.5 Mbytes, and the compression ratio is about 40%. In this case, the restoration buffer only needs to be one block. Also, when referring to a total of 3 blocks including 1 block before and after, as in the above example, the sum of the data amount of the differential data is reduced to about 3.5 Mbytes, and the compression ratio is about 22%. is there. In this case, the restoration buffer should prepare an area for 2 blocks. When a total of 5 blocks are referenced, including the two blocks before and after, the total amount of differential data is reduced to about 1.7 Mbytes, and the compression ratio is about 11%. In this case, the area of the restoration buffer required is 3 blocks. From Fig.
- a restoration buffer for 2 blocks may be provided, and when the number of reference blocks is 5, a restoration buffer for 3 blocks may be provided.
- the difference data generation / transmission unit 110 stores the code area information file 115 corresponding to the code area arrangement information in the data storage memory 121 of the difference data restoration unit 120.
- a reference range is set based on the code area information file 115, and the addresses are continuous and the same in the data storage memory 121 of the difference data restoration unit 120.
- the difference between the pre-update data and the post-update data is extracted in block units for each code area of one block size. In other words, the code area addresses of different block sizes are not compared and referenced across the discontinuous code areas, so that the difference data is not generated.
- a rewrite address is generated based on the code area information file 115, and the rewrite address is added to the difference data as header information to generate a difference file (combined file 105).
- the rewrite address is address information on the data storage memory 122, including information on a write range for writing the updated data restored using the difference data.
- the rewrite address includes reference range information for restoring updated data using differential data. You may do it.
- the difference data restoring unit 120 upon receiving the combined file 105, refers to the specified reference range based on the header information of the combined file 105, and updates the pre-update data and the difference data. After the data can be restored. In this case, processing such as address conversion is not required on the restoration side, and correct updated data can be restored with few simple processing steps.
- the difference data generation and transmission unit 110 generates difference data by referring to the blocks before and after the block including the target block, and the difference data restoration unit 120 uses this difference data to generate the difference data before and after the block including the target block. Restore the updated data by referring to the block and write it to the restoration buffer 125.
- the differential processing can be performed. It is possible to reduce the amount of data.
- the data stored in the data storage memory 121 is no longer referred to during restoration in the updated data accumulated after restoration.
- the data after updating the block is written sequentially, and the data before updating is rewritten.
- the data storage memory 121 requires a minimum memory capacity, and can easily and correctly store data with a small amount of hardware resources. Updates can be made.
- the memory capacity of the restoration buffer 125 can also be reduced by the ring buffer method.
- the capacity of the data storage memory 121 is limited, and data is rewritten from pre-update data to post-update data in the same block. Even in such a case, store the restoration buffer 125 and the combined file 105, which are twice the size of the maximum block length of this data storage memory 121 (when referencing three blocks before and after restoration).
- the data in the data storage memory 121 can be updated only by providing the reception buffer 123 on the RAM.
- Non-patent Document 1 and Non-patent Document 2 described in the prior art.
- Such data update methods mainly target devices with large-capacity storage devices, such as hard disks, and store the pre-update data area to be referenced during restoration in the storage device and the restored post-update data. It is assumed that the area is different.
- an embedded device with a limited storage area such as a mobile phone
- the pre-update data and the post-update data are stored in the flash ROM.However, updating the program by installing twice the flash ROM to store both data is difficult. It is difficult in terms of cost and mounting area.
- the restored data after update can be expanded on the RAM once, and the expanded data can be written to the flash ROM.However, if the RAM has insufficient capacity, all the updated data cannot be expanded. This is also difficult to achieve. Also, in the case of RAM, there is a major disadvantage that increasing capacity leads to an increase in power consumption.
- data can be updated with the minimum hardware resources.
- a code area storing data of a program or the like to be updated and a user area storing user data or the like arbitrarily stored by a user are mixed, and the code area is stored in the data storage memory 1. Even if they are arranged discontinuously on the 2 1, it is possible to correctly restore updated data while referring to a plurality of blocks. Further, since processing can be executed only for the code area while distinguishing between the code area and the user area, it is possible to prevent the user area from being referred to at the time of data restoration or from writing data to the user area by mistake.
- the code area and the user area are separated. Since the reference range and the write range can be set only at the file or memory location without recognizing them separately, the reference range differs between when generating the difference and when restoring the data, and the data cannot be restored normally. If dummy data is inserted so that it has the same layout as when the pre-update data is expanded on the data storage memory 121, the dummy data is referred to when the difference is generated in a part where the code area is discontinuous. It cannot be restored normally because it is different from the contents of the user area that should be referenced when restoring data.
- the difference generation and the data restoration can be performed by referring only to the contiguous blocks of the same size in the code area, the updated data can be restored normally. It is. In addition, processing such as address conversion is not required when data is restored at the receiving device, and the updated data can be restored with simple processing steps.
- FIG. 10 shows an operation at the time of data restoration by a conventional method as a comparative example.
- This comparative example is described corresponding to the operation in the present embodiment shown in FIG. 7 and FIG.
- a case is shown in which a user area 602 indicated by oblique lines in the drawing exists between four blocks a to d in the data storage memory 601.
- the updated data is restored and stored in the restoration buffer 603, and the updated data after restoration is stored.
- Writing to the block in the writing range of the memory 601 will be performed.
- the user area 602 is referred to as a reference range, and the data can be restored normally. Can not.
- a code area to be updated and a user area not to be updated are mixed, and blocks of different sizes are mixed in the same memory.
- the data can be updated correctly and with a simple calculation procedure. That is, by providing the code area information file and the code area setting means, the data in the rewritable nonvolatile memory in which the code area and the user area are mixed can be rewritten by using only a small amount of memory while referring to a plurality of blocks. The practical effect is great.
- the present invention is not limited to the above-described embodiment at all, and can be implemented in various modes without departing from the gist thereof.
- blocks that are continuous in the memory space and have the same size are used as the code area. This is particularly effective when data movement is limited within the code area defined in the definition. It is effective and can generate and restore differences using a simple algorithm. When data is frequently moved between discontinuous blocks in the memory space, the blocks in the range in which the data is moved are treated as one logical code area regardless of the continuity in the memory space. In this way, efficient difference generation and restoration can be performed.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
Description
Claims
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP03756702A EP1589430A1 (en) | 2003-01-31 | 2003-10-20 | Differential data creating device and method, updated data recovery device and method, and program |
AU2003303838A AU2003303838A1 (en) | 2003-01-31 | 2003-10-20 | Differential data creating device and method, updated data recovery device and method, and program |
US10/543,967 US20060200502A1 (en) | 2003-01-31 | 2003-10-20 | Differential data creating device and method, updated data recovery device and method, and program |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003024412A JP4153324B2 (ja) | 2003-01-31 | 2003-01-31 | 差分データ生成装置及び方法、更新後データ復元装置及び方法、並びにプログラム |
JP2003-24412 | 2003-01-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2004068348A1 true WO2004068348A1 (ja) | 2004-08-12 |
Family
ID=32820762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2003/013383 WO2004068348A1 (ja) | 2003-01-31 | 2003-10-20 | 差分データ生成装置及び方法、更新後データ復元装置及び方法、並びにプログラム |
Country Status (6)
Country | Link |
---|---|
US (1) | US20060200502A1 (ja) |
EP (1) | EP1589430A1 (ja) |
JP (1) | JP4153324B2 (ja) |
CN (1) | CN1742262A (ja) |
AU (1) | AU2003303838A1 (ja) |
WO (1) | WO2004068348A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1949761B (zh) * | 2005-10-13 | 2010-09-15 | 腾讯科技(深圳)有限公司 | 一种数据同步方法及其差分编码方法 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7617226B1 (en) * | 2006-02-10 | 2009-11-10 | Google Inc. | Document treadmilling system and method for updating documents in a document repository and recovering storage space from invalidated documents |
US8185751B2 (en) * | 2006-06-27 | 2012-05-22 | Emc Corporation | Achieving strong cryptographic correlation between higher level semantic units and lower level components in a secure data storage system |
JP5103807B2 (ja) * | 2006-06-30 | 2012-12-19 | 富士通株式会社 | 制御プログラム、制御方法、情報処理装置及び情報処理システム |
JP4907380B2 (ja) * | 2007-02-21 | 2012-03-28 | 株式会社Access | データ生成方法、データ復元方法、データ生成装置およびデータ復元装置 |
CN100454265C (zh) * | 2007-06-07 | 2009-01-21 | 华为技术有限公司 | 镜像恢复方法、存储设备及网络系统 |
JP5347657B2 (ja) * | 2009-03-31 | 2013-11-20 | 富士通株式会社 | データ記憶プログラム、方法、及び情報処理装置 |
US8316057B2 (en) * | 2010-12-17 | 2012-11-20 | International Business Machines Corporation | Restoring deduplicated data objects from sequential backup devices |
JP5653259B2 (ja) * | 2011-03-08 | 2015-01-14 | クラリオン株式会社 | 更新差分データ作成装置、データ更新システムおよび更新差分データ作成プログラム |
CN102693168B (zh) * | 2011-03-22 | 2014-12-31 | 中兴通讯股份有限公司 | 一种数据备份恢复的方法、系统和服务节点 |
US9871698B2 (en) * | 2012-11-02 | 2018-01-16 | Nec Corporation | Information processing device |
JP6155769B2 (ja) * | 2013-03-29 | 2017-07-05 | 富士通株式会社 | ストレージ制御装置、制御プログラム及び制御方法 |
WO2015194027A1 (ja) * | 2014-06-20 | 2015-12-23 | 株式会社日立製作所 | 計算機システム、データ更新方法、および仮想化サーバ |
EP3252605B1 (en) * | 2015-01-26 | 2022-04-06 | Hitachi Astemo, Ltd. | Vehicle-mounted control device, program writing device, program generating device and program |
EP3358465B1 (en) * | 2015-09-29 | 2024-04-17 | Hitachi Astemo, Ltd. | In-vehicle control device, program update system, and program update software |
JP6609508B2 (ja) * | 2016-04-27 | 2019-11-20 | 日立オートモティブシステムズ株式会社 | 車両用電子制御装置、プログラム更新方法 |
WO2018159691A1 (ja) * | 2017-02-28 | 2018-09-07 | 日本電信電話株式会社 | 通信処理装置、情報処理装置、及び、通信処理装置の制御方法 |
JP7013918B2 (ja) * | 2018-02-16 | 2022-02-01 | トヨタ自動車株式会社 | 車両制御装置、プログラム更新方法およびプログラム |
CN108647116A (zh) * | 2018-04-13 | 2018-10-12 | 深圳大普微电子科技有限公司 | 数据恢复方法和存储设备 |
JP7265120B2 (ja) * | 2019-01-10 | 2023-04-26 | 富士通株式会社 | データ収集プログラム、データ収集装置およびデータ収集方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02168321A (ja) * | 1988-12-22 | 1990-06-28 | Nec Corp | プログラム差分抽出方式 |
JPH06274384A (ja) * | 1993-03-22 | 1994-09-30 | N T T Data Tsushin Kk | 実行ファイル差分抽出/更新装置及び実行ファイル差分抽出方法 |
JPH09204326A (ja) * | 1996-01-29 | 1997-08-05 | Nec Software Ltd | 画像データ格納制御装置 |
JP2003337723A (ja) * | 2002-03-11 | 2003-11-28 | Fujitsu Ltd | 差分転送方法、プログラム及びシステム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3516362B2 (ja) * | 1995-03-01 | 2004-04-05 | 富士通株式会社 | 共有データ処理装置及び共有データ処理システム |
US5832520A (en) * | 1996-07-03 | 1998-11-03 | Miller, Call, Plauck And Miller | Automatic file differencing and updating system |
US6775423B2 (en) * | 2000-05-03 | 2004-08-10 | Microsoft Corporation | Systems and methods for incrementally updating an image in flash memory |
US6925467B2 (en) * | 2002-05-13 | 2005-08-02 | Innopath Software, Inc. | Byte-level file differencing and updating algorithms |
-
2003
- 2003-01-31 JP JP2003024412A patent/JP4153324B2/ja not_active Expired - Fee Related
- 2003-10-20 US US10/543,967 patent/US20060200502A1/en not_active Abandoned
- 2003-10-20 WO PCT/JP2003/013383 patent/WO2004068348A1/ja not_active Application Discontinuation
- 2003-10-20 EP EP03756702A patent/EP1589430A1/en not_active Withdrawn
- 2003-10-20 AU AU2003303838A patent/AU2003303838A1/en not_active Abandoned
- 2003-10-20 CN CNA2003801092227A patent/CN1742262A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02168321A (ja) * | 1988-12-22 | 1990-06-28 | Nec Corp | プログラム差分抽出方式 |
JPH06274384A (ja) * | 1993-03-22 | 1994-09-30 | N T T Data Tsushin Kk | 実行ファイル差分抽出/更新装置及び実行ファイル差分抽出方法 |
JPH09204326A (ja) * | 1996-01-29 | 1997-08-05 | Nec Software Ltd | 画像データ格納制御装置 |
JP2003337723A (ja) * | 2002-03-11 | 2003-11-28 | Fujitsu Ltd | 差分転送方法、プログラム及びシステム |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1949761B (zh) * | 2005-10-13 | 2010-09-15 | 腾讯科技(深圳)有限公司 | 一种数据同步方法及其差分编码方法 |
Also Published As
Publication number | Publication date |
---|---|
EP1589430A1 (en) | 2005-10-26 |
CN1742262A (zh) | 2006-03-01 |
JP2004234503A (ja) | 2004-08-19 |
JP4153324B2 (ja) | 2008-09-24 |
US20060200502A1 (en) | 2006-09-07 |
AU2003303838A1 (en) | 2004-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4153324B2 (ja) | 差分データ生成装置及び方法、更新後データ復元装置及び方法、並びにプログラム | |
CN108027753B (zh) | 车载控制装置、程序更新系统以及保存有程序更新软件的存储介质 | |
US8418167B2 (en) | Methods and systems for updating content including a compressed version | |
US8200886B2 (en) | Efficient system and method for updating a memory device | |
KR102319657B1 (ko) | 저장된 데이터 유닛들의 동작 관리 | |
US20170336992A1 (en) | Method, device, and program for managing a flash memory for mass storage | |
US8561049B2 (en) | Method and system for updating content stored in a storage device | |
JP2007241576A (ja) | 不揮発性記憶装置およびそのデータ書込み方法 | |
US9043680B2 (en) | Method and system for in-place updating content stored in a storage device | |
EP3834082B1 (en) | Memory optimized block-based differential update algorithm | |
US8578359B2 (en) | Method and apparatus for reliable in-place update | |
US9577666B2 (en) | Method and system | |
US8689207B2 (en) | Performing an in-place update of an operating storage device | |
JP5100500B2 (ja) | データ書き換えシステム及び新版データ作成装置及び差分データ作成装置及び新版データ作成プログラム及び差分データ作成プログラム | |
JP7317609B2 (ja) | 電子制御装置 | |
JP2006004177A (ja) | プログラムのダウンロード方法 | |
CN113986126A (zh) | 基于固态硬盘的tcg数据删除方法、装置及计算机设备 | |
JP2003018017A (ja) | Biosプログラムの圧縮方法及び更新方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 20038A92227 Country of ref document: CN |
|
WWE | Wipo information: entry into national phase |
Ref document number: 10543967 Country of ref document: US |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2003756702 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 2003756702 Country of ref document: EP |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 2003756702 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 10543967 Country of ref document: US |