Embedded devices, rollback methods, and programs
The embedded device design addresses memory constraints by using a differential data approach for software rollback, enabling efficient updates and rollbacks with minimal storage needs.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-12-16
- Publication Date
- 2026-03-17
AI Technical Summary
Existing embedded devices with limited memory resources face inefficiencies and risks in managing software updates due to the need to permanently retain both new and old software for rollback, especially when incompatibilities occur, which can be costly in terms of memory and distribution.
An embedded device design that includes a software storage unit for current software, a differential data storage unit for generating old software from new software, and a restore unit to update software using rollback differential data, allowing for efficient rollback with minimal memory usage.
Enables embedded devices to rollback to older software with a small memory capacity, reducing storage requirements and distribution complexities.
Smart Images

Figure 0007830920000001 
Figure 0007830920000002 
Figure 0007830920000003
Abstract
Description
Technical Field
[0001] This invention relates to embedded devices, rollback methods, and programs.
Background Art
[0002] In devices where software such as firmware can be updated, there is a technique for updating the software by delivering a new version of the software (hereinafter also referred to as "new software") via a communication network. When an incompatibility is detected after updating the software, recovery is performed by rolling back to the previous version of the software (hereinafter also referred to as "old software") that was operating before the update. In order to roll back to the old software, it is necessary to make the old software available from the device, such as by redistributing the old software or retaining the old software in the device.
[0003] For example, Patent Document 1 discloses an invention in which two sides, a region for storing new firmware and a region for storing old firmware, are always ensured on a memory, and rollback is performed by switching between an operation side and a non-operation side.
Prior Art Documents
Patent Documents
[0004]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0005] However, permanently retaining both new and old software for rollback, which is only performed when an incompatibility occurs, is inefficient, especially for embedded devices with little memory resources. Nevertheless, since an incompatibility may occur in the communication function, redistributing the old software to perform rollback involves risks.
[0006] In view of the technical challenges described above, the present invention aims to provide an embedded device that can roll back to older software with a small memory capacity. [Means for solving the problem]
[0007] To solve the above problems, an embedded device according to one aspect of the present invention comprises a software storage unit configured to store software to be updated, a differential data storage unit configured to store rollback differential data for generating old software from new software, and a restore unit configured to update the software to be updated with the old software generated using the new software and rollback differential data. [Effects of the Invention]
[0008] According to one aspect of the present invention, it is possible to provide an embedded device that can roll back to older software with a small memory capacity. [Brief explanation of the drawing]
[0009] [Figure 1] This is a block diagram showing an example of the overall configuration of a software distribution system. [Figure 2] This is a block diagram showing an example of the hardware configuration of an embedded device. [Figure 3] This is a block diagram showing an example of the hardware configuration of a distribution device. [Figure 4] This is a block diagram showing an example of the functional configuration of a software distribution system in the first embodiment. [Figure 5] This is a flowchart showing an example of the processing procedure for the software distribution method in the first embodiment. [Figure 6] This block diagram shows an example of the functional configuration of a software distribution system in the second embodiment. [Figure 7] This flowchart shows an example of the processing procedure for the software distribution method in the second embodiment. [Figure 8] This is a block diagram showing an example of the functional configuration of a software distribution system in the third embodiment. [Figure 9] This flowchart shows an example of the processing procedure for the software distribution method in the third embodiment. [Figure 10] This is a block diagram showing an example of the functional configuration of a software distribution system in the fourth embodiment. [Figure 11] This is a flowchart showing an example of the processing procedure for the software distribution method in the fourth embodiment. [Modes for carrying out the invention]
[0010] Hereinafter, embodiments of the present invention will be described with reference to the accompanying drawings. In this specification and drawings, components having substantially the same functional configuration are denoted by the same reference numerals, and redundant descriptions will be omitted.
[0011] [First Embodiment] A first embodiment of the present invention is a software distribution system that distributes new software, such as firmware, to embedded devices whose software can be updated, via a communication network. This embodiment will be described assuming embedded devices with limited memory resources, such as IoT (Internet of Things) devices.
[0012] <Overall configuration of the software distribution system> First, the overall configuration of the software distribution system in this embodiment will be described with reference to Figure 1. Figure 1 is a block diagram showing an example of the overall configuration of the software distribution system in this embodiment.
[0013] As shown in FIG. 1, the software distribution system in the present embodiment includes one or more embedded devices 10 (10-1, …, 10-N, N≧1) and a distribution device 20. Hereinafter, when distinguishing each of the N embedded devices 10, they will be described using branch numbers such as "embedded device 10-1" and "embedded device 10-2".
[0014] The embedded device 10 and the distribution device 20 are each connected to a communication network 9. The communication network 9 is configured such that each connected device can communicate with each other. The communication network 9 is constructed by a network using wired communication such as, for example, a LAN (Local Area Network) or the Internet. The communication network 9 may include a network using wireless communication such as, for example, a wireless LAN or mobile communication.
[0015] The embedded device 10 is an embedded device such as an IoT device in which software such as firmware can be updated. The embedded device 10 receives software distributed from the distribution device 20 via the communication network 9. Also, the embedded device 10 updates the software to be updated with the received software.
[0016] The distribution device 20 is an information processing device such as a PC (Personal Computer), a workstation, or a server that distributes software to the embedded device 10. The distribution device 20 distributes software to the embedded device 10 via the communication network 9.
[0017] Note that the configuration of the software distribution system 1 shown in FIG. 1 is an example, and other configurations may be used. For example, a sensor network may be configured by a plurality of embedded devices 10, and the software distributed from the distribution device 20 may be transmitted and received among the plurality of embedded devices 10-1, …, 10-N by the sensor network.
[0018] <Hardware Configuration of Software Distribution System> Next, the hardware configuration of the software distribution system in this embodiment will be described with reference to Figures 2 and 3. Figure 2 is a block diagram showing an example of the hardware configuration of the embedded device in this embodiment. Figure 3 is a block diagram showing an example of the hardware configuration of the distribution device in this embodiment.
[0019] Hardware configuration of embedded devices As shown in Figure 2, the embedded device 10 in this embodiment includes a CPU (Central Processing Unit) 301, a ROM (Read Only Memory) 302, a RAM (Random Access Memory) 303, a flash memory 304, and a communication I / F (Interface) 305. Each piece of hardware in the embedded device 10 is interconnected via a bus line 306.
[0020] The CPU 301 is a computing device that controls and implements the functions of the entire embedded device 10 by reading programs and data from a storage device such as ROM 302 or flash memory 304 onto RAM 303 and executing processing.
[0021] ROM302 is an example of a non-volatile semiconductor memory (storage device) that can retain programs and data even when the power is turned off. ROM302 functions as a storage device that stores various programs and data necessary for the CPU301 to execute the various programs installed in flash memory304.
[0022] RAM303 is an example of a volatile semiconductor memory (storage device) whose programs and data are erased when the power is turned off. RAM303 provides a work area that is expanded when various programs installed in ROM302 or flash memory304 are executed by CPU301.
[0023] The flash memory 304 is an example of a non-volatile semiconductor memory (storage device) that stores programs and data. The flash memory 304 functions as a storage device that stores various programs and data executed by the CPU 301. In addition, the flash memory 304 provides a temporary storage area for data generated when various programs are executed.
[0024] Communication I / F305 is an interface that connects to the communication network 9 and allows the embedded device 10 to perform data communication.
[0025] The embedded device 10 in this embodiment can perform various processes described later by having the hardware configuration shown in Figure 2. Note that the hardware configuration shown in Figure 2 is just one example, and the embedded device 10 may have other hardware configurations. For example, the embedded device 10 may have multiple CPUs 301 or multiple RAMs 303.
[0026] ≪Hardware configuration of the distribution device≫ As shown in Figure 3, the distribution device 20 includes a CPU 501, ROM 502, RAM 503, HDD 504, input device 505, display device 506, communication I / F 507, and external I / F 508. Each piece of hardware in the distribution device 20 is interconnected via a bus line 509.
[0027] The CPU 501 is a computing unit that controls and implements the functions of the entire distribution device 20 by reading programs and data from a storage device such as the ROM 502 or HDD 504 onto the RAM 503 and executing processing.
[0028] ROM502 is an example of a non-volatile semiconductor memory (storage device) that can retain programs and data even when the power is turned off. ROM502 functions as the main memory, storing various programs and data necessary for the CPU501 to execute the various programs installed on HDD504.
[0029] RAM503 is an example of volatile semiconductor memory (storage device) whose programs and data are erased when the power is turned off. RAM503 provides a working area that is expanded when various programs installed on HDD504 are executed by CPU501.
[0030] HDD504 is an example of a non-volatile storage device that stores programs and data. The programs and data stored in HDD504 include the OS (Operating System), which is the basic software that controls the entire distribution device 20, and applications that provide various functions on the OS.
[0031] The input device 505 is, for example, a keyboard, mouse, or touch panel. The display device 506 is, for example, a display. The distribution device 20 does not necessarily have to have at least one of the input device 505 and the display device 506. Also, the input device 505 and the display device 506 may be used by connecting them to the external I / F 508.
[0032] Communication I / F 507 is an interface that connects to the communication network 9 and allows the distribution device 20 to perform data communication.
[0033] External I / F 508 is an interface to external devices such as the drive device 510. The distribution device 20 can read and write to the recording medium 511 set in the drive device 510 via the external I / F 508. Examples of recording media 511 include flexible disks, CDs (Compact Discs), DVDs (Digital Versatile Disks), SD memory cards (Secure Digital memory cards), and USB (Universal Serial Bus) flash drives.
[0034] The various programs to be installed on the HDD 504 are installed, for example, when the distributed recording medium 511 is set in a drive device 510 connected to an external I / F 508, and the various programs recorded on the recording medium 511 are read by the drive device 510. Alternatively, the various programs to be installed on the HDD 504 may be downloaded via the communication I / F 507 from a network other than the communication network and installed that way.
[0035] The distribution device 20 in this embodiment can realize various processes described later by having the hardware configuration shown in Figure 3. Note that the hardware configuration shown in Figure 3 is just one example, and the distribution device 20 may have other hardware configurations. For example, the distribution device 20 may have multiple CPUs 501 or multiple RAMs 503.
[0036] <Functional Configuration of Software Distribution System> Next, the functional configuration of the software distribution system in this embodiment will be described with reference to Figure 4. Figure 4 is a block diagram showing an example of the functional configuration of the software distribution system in this embodiment.
[0037] ≪Functional Configuration of the Distribution Device≫ As shown in Figure 4, the distribution device 20 in this embodiment includes a distribution data transmission unit 21 and a software storage unit 200.
[0038] The software storage unit 200 stores the new software to be distributed to the embedded device 10. The software storage unit 200 may also store previous versions of each software.
[0039] The software storage unit 200 is implemented, for example, using the HDD 504 shown in Figure 3.
[0040] The data transmission unit 21 generates distribution data based on the new software stored in the software storage unit 200. The data transmission unit 21 also transmits the generated distribution data to the embedded device 10.
[0041] The data transmission unit 21 is implemented, for example, by a process in which a program loaded from the HDD 504 shown in Figure 3 onto the RAM 503 is executed by the CPU 501.
[0042] ≪Functional Configuration of Embedded Devices≫ As shown in Figure 4, the embedded device 10 in this embodiment includes a distribution data receiving unit 11, a differential data generation unit 12, a software update unit 13, a software restoration unit 14, a software storage unit 100, a temporary data storage unit 110, and a differential data storage unit 120.
[0043] The software storage unit 100 stores the software to be updated. The software stored in the software storage unit 100 is the version currently running on the embedded device 10. In other words, the old software is stored in the software storage unit 100 before the software is updated, and the new software is stored after the software is updated.
[0044] The software storage unit 100 is implemented by a non-volatile memory such as the ROM 302 or flash memory 304 shown in Figure 2.
[0045] The temporary data storage unit 110 is a temporary storage area for building the software used for updates. The software stored in the temporary data storage unit 110 is erased after the update is complete.
[0046] The temporary data storage unit 110 is implemented by, for example, a volatile memory such as the RAM 303 shown in Figure 2, or a non-volatile memory such as the ROM 302 or flash memory 304.
[0047] The differential data storage unit 120 is configured to store differential data (hereinafter also referred to as "rollback differential data") for restoring the old software from the new software.
[0048] The differential data storage unit 120 is implemented by a non-volatile memory such as the ROM 302 or flash memory 304 shown in Figure 2.
[0049] The data distribution receiving unit 11 receives distribution data, including the new software, from the distribution device 20. The data distribution receiving unit 11 also stores the new software included in the received distribution data in the temporary data storage unit 110.
[0050] The differential data generation unit 12 generates rollback differential data based on the new software stored in the temporary data storage unit 110 and the old software stored in the software storage unit 100. The differential data generation unit 12 also stores the generated rollback differential data in the differential data storage unit 120.
[0051] The software update unit 13 updates the old software stored in the software storage unit 100 with the new software stored in the temporary data storage unit 110. After the update is complete, the software update unit 13 erases the new software stored in the temporary data storage unit 110.
[0052] The software restoration unit 14 restores the old software based on the new software stored in the software storage unit 100 and the rollback differential data stored in the differential data storage unit 120. The software restoration unit 14 also updates the new software stored in the software storage unit 100 with the restored old software.
[0053] Each processing unit of the embedded device 10 is realized, for example, by a process in which a program, which is loaded onto the RAM 303 from the ROM 302 or flash memory 304 shown in Figure 2, is executed by the CPU 301.
[0054] <Processing Procedure for Software Distribution System> The following describes the processing steps of the software distribution method executed by the software distribution system in this embodiment, with reference to Figure 5. Figure 5 is a flowchart showing an example of the processing steps of the software distribution method in this embodiment.
[0055] In step S21, the distribution data transmission unit 21 of the distribution device 20 generates distribution data based on the new software stored in the software storage unit 200. Next, the distribution data transmission unit 21 transmits the generated distribution data to the embedded device 10.
[0056] The data transmission unit 21 may reversibly process and transmit the data, taking into consideration reliability, security, or efficiency. For example, the data transmission unit 21 may compress the data before transmitting it, encrypt it before transmitting it, or divide it into multiple sub-data before transmitting it.
[0057] In step S11, the data distribution receiving unit 11 of the embedded device 10 receives distribution data including the new software from the distribution device 20. Next, the data distribution receiving unit 11 stores the new software included in the received distribution data in the temporary data storage unit 110.
[0058] If the data transmission unit 21 processes the data by compressing, encrypting, or splitting it before transmitting it, the data reception unit 11 can restore the data by decompressing, decrypting, or combining the processed data.
[0059] In step S12, the differential data generation unit 12 of the embedded device 10 generates rollback differential data based on the new software stored in the temporary data storage unit 110 and the old software stored in the software storage unit 100. Next, the differential data generation unit 12 stores the generated rollback differential data in the differential data storage unit 120.
[0060] The differential data generation unit 12 generates rollback differential data by calculating the binary differences between the new software and the old software. For example, differential compression techniques such as BSDiff can be used to calculate the binary differences of the software. The differential data generated by BSDiff will have a file size of approximately 5% to 10% of the target software, depending on the amount of changes from the new software to the old software.
[0061] In step S13, the software update unit 13 of the embedded device 10 updates the old software stored in the software storage unit 100 with the new software stored in the temporary data storage unit 110. After the update is complete, the software update unit 13 erases the new software stored in the temporary data storage unit 110.
[0062] In step S14A, the software restoration unit 14 of the embedded device 10 determines whether a rollback is necessary. If the software restoration unit 14 determines that a rollback is necessary (YES), it proceeds to step S14B; if it determines that a rollback is not necessary (NO), it terminates the process.
[0063] The determination of whether a rollback is necessary is made by a diagnostic function provided by the software being updated. This diagnostic function detects errors that occur while the new software is running and outputs a flag indicating that a rollback is necessary. When the software restoration unit 14 detects that this flag has been output, it determines that a rollback is necessary. This diagnostic function is constantly running while the software is in operation.
[0064] In step S14B, the software restoration unit 14 of the embedded device 10 copies the new software stored in the software storage unit 100 to the temporary data storage unit 110. Next, the software restoration unit 14 restores the old software from the new software stored in the temporary data storage unit 110 based on the rollback differential data stored in the differential data storage unit 120.
[0065] In step S14C, the software recovery unit 14 of the embedded device 10 updates the new software stored in the software storage unit 100 with the old software stored in the temporary data storage unit 110. After the update is complete, the software recovery unit 14 erases the old software stored in the temporary data storage unit 110.
[0066] In step S10, the embedded device 10 notifies the distribution device 20 of the result of the software update. Specifically, if the software update is successful (i.e., no rollback is performed), the software update unit 13 sends a signal to the distribution device 20 indicating that the software update was successful. If the software update fails (i.e., a rollback is performed), the software restoration unit 14 sends a signal to the distribution device 20 indicating that the software update failed.
[0067] <Effects of the First Embodiment> In this embodiment, when updating from old software to new software, the embedded device generates rollback differential data to generate the old software from the new software. Subsequently, when a rollback is required due to incompatibility with the new software or other reasons, the old software is restored from the new software using the rollback differential data.
[0068] Therefore, the embedded device in this embodiment only needs to store rollback differential data that is smaller in size than the old software, in preparation for future rollbacks. By configuring it in this way, the embedded device in this embodiment can roll back to the old software with a small amount of storage capacity.
[0069] [Second Embodiment] In the first embodiment, a configuration was described in which the distribution device distributes the entire new software to the embedded device. In the second embodiment, a configuration was described in which the distribution device distributes differential data (hereinafter also referred to as "update differential data") for updating the old software to the new software to the embedded device.
[0070] <Functional Configuration of Software Distribution System> First, the functional configuration of the software distribution system in this embodiment will be described with reference to Figure 6. Figure 6 is a block diagram showing an example of the functional configuration of the software distribution system in this embodiment.
[0071] ≪Functional Configuration of the Distribution Device≫ As shown in Figure 6, the distribution device 20 in this embodiment includes a differential data generation unit 22 in addition to the distribution data transmission unit 21 and software storage unit 200 that were included in the distribution device 20 of the first embodiment.
[0072] The software storage unit 200 stores not only the new software to be distributed to the embedded device 10, but also at least one version of the previous software.
[0073] The differential data generation unit 22 generates update differential data based on the new and old software stored in the software storage unit 200. The differential data generation unit 22 also sends the generated update differential data to the distribution data transmission unit 21.
[0074] The distribution data transmission unit 21 generates distribution data based on the update differential data received from the differential data generation unit 22. The distribution data transmission unit 21 also transmits the generated distribution data to the embedded device 10.
[0075] ≪Functional Configuration of Embedded Devices≫ As shown in Figure 6, the embedded device 10 in this embodiment further includes a software generation unit 15 in addition to the distribution data receiving unit 11, differential data generation unit 12, software update unit 13, software restoration unit 14, software storage unit 100, temporary data storage unit 110, and differential data storage unit 120 that were included in the embedded device 10 of the first embodiment.
[0076] The distribution data receiving unit 11 receives distribution data, including update differential data, from the distribution device 20. The distribution data receiving unit 11 also sends the update differential data included in the received distribution data to the software generation unit 15.
[0077] The software generation unit 15 receives update differential data from the distribution data receiving unit 11 and generates new software based on the old software and update differential data stored in the software storage unit 100. The software generation unit 15 also stores the generated new software in the temporary data storage unit 110.
[0078] <Processing Procedure for Software Distribution System> Next, the processing procedure of the software distribution method executed by the software distribution system in this embodiment will be described with reference to Figure 7, focusing on the differences from the first embodiment. Figure 7 is a flowchart showing an example of the processing procedure of the software distribution method in this embodiment.
[0079] In step S22, the differential data generation unit 22 of the distribution device 20 generates update differential data based on the new software and old software stored in the software storage unit 200. Next, the differential data generation unit 22 sends the generated update differential data to the distribution data transmission unit 21.
[0080] In step S21, the distribution data transmission unit 21 of the distribution device 20 generates distribution data based on the updated differential data received from the differential data generation unit 22. Next, the distribution data transmission unit 21 transmits the generated distribution data to the embedded device 10.
[0081] In step S11, the data distribution receiving unit 11 of the embedded device 10 receives distribution data including update differential data from the distribution device 20. Next, the data distribution receiving unit 11 sends the update differential data included in the received distribution data to the software generation unit 15.
[0082] In step S15, the software generation unit 15 of the embedded device 10 receives update differential data from the distribution data receiving unit 11 and copies the old software stored in the software storage unit 100 to the temporary data storage unit 110. Next, the software generation unit 15 generates new software from the old software stored in the temporary data storage unit 110 based on the update differential data.
[0083] The processing from step S12 onward is the same as in the first embodiment.
[0084] <Effects of the second embodiment> In this embodiment, the software distribution system distributes update differential data for updating from old software to new software via a distribution device. The embedded device generates new software from the old software using the update differential data, and also generates rollback differential data based on the old and new software.
[0085] Therefore, the software distribution system in this embodiment can reduce the volume of distribution data and alleviate the load on the communication network when distributing new software.
[0086] [Third Embodiment] In the first embodiment, a configuration was described in which a distribution device distributes the entire new software to an embedded device, and the embedded device generates rollback differential data based on the old software currently running and the distributed new software. In the third embodiment, a configuration is described in which a distribution device generates rollback differential data and distributes it to the embedded device along with the new software.
[0087] <Functional Configuration of Software Distribution System> First, the functional configuration of the software distribution system in this embodiment will be described with reference to Figure 8. Figure 8 is a block diagram showing an example of the functional configuration of the software distribution system in this embodiment.
[0088] ≪Functional Configuration of the Distribution Device≫ As shown in Figure 8, the distribution device 20 in this embodiment includes a distribution data transmission unit 21, a differential data generation unit 22, and a software storage unit 200, similar to the second embodiment.
[0089] The differential data generation unit 22 generates rollback differential data based on the new and old software stored in the software storage unit 200. The differential data generation unit 22 also sends the generated rollback differential data to the distribution data transmission unit 21.
[0090] The distribution data transmission unit 21 generates distribution data based on the rollback differential data received from the differential data generation unit 22 and the new software stored in the software storage unit 200. The distribution data transmission unit 21 also transmits the generated distribution data to the embedded device 10.
[0091] ≪Functional Configuration of Embedded Devices≫ As shown in Figure 8, the embedded device 10 in this embodiment includes the distribution data receiving unit 11, software update unit 13, software restoration unit 14, software storage unit 100, temporary data storage unit 110, and differential data storage unit 120 that were present in the embedded device 10 of the first embodiment. In other words, the embedded device 10 in this embodiment differs from the embedded device 10 of the first embodiment in that it does not include the differential data generation unit 12.
[0092] The distribution data receiving unit 11 receives distribution data from the distribution device 20, including new software and rollback differential data. The distribution data receiving unit 11 also stores the new software included in the received distribution data in the temporary data storage unit 110. Furthermore, the distribution data receiving unit 11 stores the rollback differential data included in the received distribution data in the differential data storage unit 120.
[0093] <Processing Procedure for Software Distribution System> Next, the processing procedure of the software distribution method executed by the software distribution system in this embodiment will be described with reference to Figure 9, focusing on the differences from the first embodiment. Figure 9 is a flowchart showing an example of the processing procedure of the software distribution method in this embodiment.
[0094] In step S22, the differential data generation unit 22 of the distribution device 20 generates rollback differential data based on the new software and old software stored in the software storage unit 200. Next, the differential data generation unit 22 sends the generated rollback differential data to the distribution data transmission unit 21.
[0095] In step S21, the distribution data transmission unit 21 of the distribution device 20 generates distribution data based on the rollback differential data received from the differential data generation unit 22 and the new software stored in the software storage unit 200. Next, the distribution data transmission unit 21 transmits the generated distribution data to the embedded device 10.
[0096] In step S11A, the data distribution receiving unit 11 of the embedded device 10 receives distribution data including new software and rollback differential data from the distribution device 20. Next, the data distribution receiving unit 11 stores the new software included in the received distribution data in the temporary data storage unit 110.
[0097] In step S11B, the data receiving unit 11 of the embedded device 10 stores the rollback differential data included in the data received from the distribution device 20 in the differential data storage unit 120.
[0098] The processing from step S13 onward is the same as in the first embodiment.
[0099] <Effects of the Third Embodiment> In this embodiment, the software distribution system involves a distribution device distributing rollback differential data along with the new software. Embedded devices only need to store the rollback differential data distributed from the distribution device and do not need to generate the rollback differential data themselves.
[0100] By configuring it in this way, the software distribution system in this embodiment can reduce the processing time required for the embedded device to generate rollback differential data.
[0101] [Fourth Embodiment] In the second embodiment, a configuration was described in which a distribution device distributes update differential data to an embedded device, the embedded device generates new software using the old software currently running and the distributed update differential data, and also generates rollback differential data based on the old and new software. In the fourth embodiment, a configuration was described in which a distribution device generates rollback differential data and distributes it to the embedded device along with the update differential data.
[0102] <Functional Configuration of Software Distribution System> First, the functional configuration of the software distribution system in this embodiment will be described with reference to Figure 10. Figure 10 is a block diagram showing an example of the functional configuration of the software distribution system in this embodiment.
[0103] ≪Functional Configuration of the Distribution Device≫ As shown in Figure 10, the distribution device 20 in this embodiment includes a distribution data transmission unit 21, a differential data generation unit 22, and a software storage unit 200, similar to the second embodiment.
[0104] The differential data generation unit 22 generates rollback differential data and update differential data based on the new software and old software stored in the software storage unit 200. The differential data generation unit 22 also sends the generated rollback differential data and update differential data to the distribution data transmission unit 21.
[0105] The data transmission unit 21 generates distribution data based on the rollback differential data and update differential data received from the differential data generation unit 22. The data transmission unit 21 also transmits the generated distribution data to the embedded device 10.
[0106] ≪Functional Configuration of Embedded Devices≫ As shown in Figure 10, the embedded device 10 in this embodiment includes the distribution data receiving unit 11, software update unit 13, software restoration unit 14, software generation unit 15, software storage unit 100, temporary data storage unit 110, and differential data storage unit 120 that were present in the embedded device 10 of the second embodiment. In other words, the embedded device 10 in this embodiment differs from the embedded device 10 of the second embodiment in that it does not include the differential data generation unit 12.
[0107] The data distribution receiving unit 11 receives distribution data from the distribution device 20, including update differential data and rollback differential data. The data distribution receiving unit 11 also sends the update differential data included in the received distribution data to the software generation unit 15. Furthermore, the data distribution receiving unit 11 stores the rollback differential data included in the received distribution data in the differential data storage unit 120.
[0108] <Processing Procedure for Software Distribution System> Next, the processing procedure of the software distribution method executed by the software distribution system in this embodiment will be described with reference to Figure 11, focusing on the differences from the second embodiment. Figure 11 is a flowchart showing an example of the processing procedure of the software distribution method in this embodiment.
[0109] In step S22, the differential data generation unit 22 of the distribution device 20 generates rollback differential data and update differential data based on the new software and old software stored in the software storage unit 200. Next, the differential data generation unit 22 sends the generated rollback differential data and update differential data to the distribution data transmission unit 21.
[0110] In step S21, the distribution data transmission unit 21 of the distribution device 20 generates distribution data based on the rollback differential data and update differential data received from the differential data generation unit 22. The distribution data transmission unit 21 also transmits the generated distribution data to the embedded device 10.
[0111] In step S11A, the data distribution receiving unit 11 of the embedded device 10 receives distribution data, including update differential data and rollback differential data, from the distribution device 20. Next, the data distribution receiving unit 11 sends the update differential data included in the received distribution data to the software generation unit 15.
[0112] In step S11B, the data receiving unit 11 of the embedded device 10 stores the rollback differential data included in the data received from the distribution device 20 in the differential data storage unit 120.
[0113] The processing from step S15 onward is the same as in the second embodiment.
[0114] <Effects of the 4th Embodiment> In this embodiment, the software distribution system involves a distribution device that distributes rollback differential data along with update differential data. Embedded devices only need to store the rollback differential data distributed by the distribution device and do not need to generate rollback differential data themselves.
[0115] By configuring it in this way, the software distribution system of this embodiment can reduce the volume of distributed data, as well as the temporary storage area and processing time required for the embedded device to generate rollback differential data.
[0116] [Differentiation] In the second and fourth embodiments, the distribution device 20 distributes update differential data to the embedded device 10, and the embedded device 10 generates new software from the old software using the update differential data. At this time, the software generation unit 15 may be configured to store the update differential data in the differential data storage unit 120 or the like after it has generated the new software.
[0117] If a non-conformity occurs after updating to the new software, the embedded device 10 will recover by rolling back to the old software. Subsequently, after verifying the details of the non-conformity, it may be found that there is no problem with the new software itself, but rather the non-conformity was due to the surrounding environment settings or hardware failure. In this case, it is possible to update to the rolled-back new software again by changing the surrounding environment settings or repairing or replacing the hardware.
[0118] By storing the update differential data in the differential data storage unit 120, there is no need to redistribute the update differential data in such cases, allowing for efficient use of the communication network.
[0119] In the first embodiment, the distribution device 20 distributes the new software to the embedded device 10. For example, the differential data generation unit 12 can generate update differential data using the old software stored in the software storage unit 100 and the new software stored in the temporary data storage unit 110, and store it together with the rollback differential data in the differential data storage unit 120.
[0120] [supplement] Each of the functions of the embodiments described above can be realized by one or more processing circuits. Hereinafter, "processing circuit" as used herein includes processors programmed to execute each function by software, such as processors implemented by electronic circuits, as well as devices such as ASICs (Application Specific Integrated Circuits), DSPs (digital signal processors), FPGAs (field programmable gate arrays), and conventional circuit modules designed to execute each of the functions described above.
[0121] The apparatus described in the examples represents only one of several computing environments for carrying out the embodiments disclosed herein. In one embodiment, the distribution device 20 includes multiple computing devices, such as a server cluster. The multiple computing devices are configured to communicate with each other via any type of communication link, including a network or shared memory, and perform the processing disclosed herein.
[0122] Although embodiments of the present invention have been described in detail above, the present invention is not limited to these embodiments, and various modifications or changes are possible within the scope of the gist of the present invention as described in the claims. [Explanation of symbols]
[0123] 1. Software distribution system 10 Embedded devices 11. Data distribution receiving unit 12. Differential Data Generation Unit 13. Software Update Section 14. Software Recovery Section 15. Software Generation Unit 100 Software Storage Unit 110 Temporary data storage unit 120 Differential Data Storage Unit 20 Distribution device 21 Distribution Data Transmission Unit 22 Difference Data Generation Unit 200 Software Storage Unit
Claims
1. A software storage unit configured to store the software to be updated, A differential data storage unit configured to store rollback differential data for generating old software from new software, An update unit configured to update the software to be updated with the new software, A restoration unit configured to update the software to be updated using the old software generated using the new software and the rollback difference data, Equipped with, The differential data storage unit is configured to store update differential data for updating from the old software to the new software after the software to be updated has been updated with the new software. The update unit is configured to update the software to be updated, which has been updated by the restoration unit using the old software, with the new software generated using the old software and the update difference data. Embedded devices.
2. An embedded device according to claim 1, The rollback difference data is calculated by determining the binary difference between the old software and the new software. Embedded devices.
3. An embedded device according to claim 1 or 2, A receiving unit configured to receive the aforementioned new software from a distribution device, A differential data generation unit configured to generate the rollback differential data using the old software and the new software, Embedded devices that further incorporate these features.
4. An embedded device according to claim 1 or 2, A receiving unit configured to receive the aforementioned update differential data from a distribution device, A software generation unit configured to generate the new software using the old software and the update difference data, A differential data generation unit configured to generate the rollback differential data using the old software and the new software, Embedded devices that further incorporate these features.
5. An embedded device according to claim 1 or 2, The system further includes a receiving unit configured to receive the aforementioned rollback difference data from a distribution device. Embedded devices.
6. An embedded device that stores the software to be updated, A differential data storage procedure for storing rollback differential data to generate old software from new software, The update procedure for updating the software to be updated with the new software, A restoration procedure for updating the software to be updated using the old software generated using the new software and the rollback differential data, Execute, The differential data storage procedure stores update differential data for updating from the old software to the new software after updating the software to be updated with the new software. The update procedure updates the software to be updated, which was updated with the old software by the restoration procedure, with the new software generated using the old software and the update difference data. How to roll back.
7. In the embedded device that stores the software to be updated, A differential data storage procedure for storing rollback differential data to generate old software from new software, The update procedure for updating the software to be updated with the new software, A restoration procedure for updating the software to be updated using the old software generated using the new software and the rollback differential data, Make it run, The differential data storage procedure stores update differential data for updating from the old software to the new software after updating the software to be updated with the new software. The update procedure updates the software to be updated, which was updated with the old software by the restoration procedure, with the new software generated using the old software and the update difference data. program.
Citation Information
Patent Citations
Data storage method, data storage device and data processor
JP1998177474A
Master device for vehicle, method for controlling execution of roll back, program for controlling execution of roll back, and data structure of specification data
JP2020027630A
Program update system, program transmitter, and program transmission method
JP2021060797A