Information processing device, information processing method, and non-transitory computer readable medium

The present invention provides an information processing device comprising a memory; a non-volatile memory; and a processor coupled to the memory and the non-volatile memory, the processor configured to: store in the non-volatile memory a snapshot of the memory in a state where a part of an activation process is implemented; and implement the activation process by using the snapshot stored in the non-volatile memory. More specifically, store in the non-volatile memory a snapshot of the main memory in a state before feeding a program to the external memory in an activation process using the main memory and the external memory; and implement at least a process of feeding a program for an external memory to the external memory from the main memory.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is based on and claims priority under 35 USC 119 from Japanese Patent Application No. 2018-124559 filed Jun. 29, 2018.

FIELD

The present invention relates to an information processing device, an information processing method, and a non-transitory computer readable medium.

BACKGROUND ART

For example, Japanese Patent Application Laid-Open (JP-A) No. 2009-176151 discloses an information processing device configured to shorten a device activation time by directly writing a snapshot image of a command code and data of a subject software program developed and executed on a RAM, into a memory.

Further, Japanese Patent Application Laid-Open (JP-A) No. 2016-046565 discloses an image formation device including a returning unit configured to read a snapshot associated with an activation factor from a flash memory and store the same into an RAM.

SUMMARY OF THE INVENTION

According to an aspect of the invention, there is provided an information processing device comprising a memory; a non-volatile memory; and a processor coupled to the memory and the non-volatile memory, the processor configured to: store a snapshot of the memory into the non-volatile memory, in a state wherein a part of the activation process is implemented; and implement the activation process by using the snapshot stored in the non-volatile memory.

According to another aspect of the invention, there is provided an information processing method comprising the steps of: generating a snapshot of a memory in a state where an activation process is implemented up to somewhere in the process; and distributing the snapshot generated on the memory to another image reading device.

According to another aspect of the invention, there is provided a non-transitory computer-readable recording medium storing a program that causes a computer to execute a process comprising: a snapshot of a memory in a state where an activation process is implemented up to somewhere in the process.

DESCRIPTION OF EMBODIMENTS

Background and Summary

To speed up an activation of an information processing device, there is a method in which a memory state after the activation of the device is entirely retreated as a snapshot and the snapshot is directly restored on a memory during a next activation of the device.

However, in the information processing device including not only a main memory but also an external memory, a state of the external memory can not be included into the snapshot. For example, in a radio LAN chip mounted in a scanner device, there is a dedicated firmware (chip firmware) which operates on a volatile memory in the chip, and thus, that part cannot be included in the snapshot. Thus, an initialization process of a radio LAN driver needs to be separately implemented after the snapshot is restored. With this, even if a snapshot activation is implemented, it is not possible to obtain the snapshot activation effect in an initialized portion of the radio LAN driver.

Therefore, the information processing device of the present embodiment stores the snapshot of a memory in a state where a part of the activation process is implemented and implements an activation process by using the stored snapshot. More specifically, it is not that a portion about the radio LAN driver is not included in the snapshot, but a state is maintained where the radio LAN driver is temporarily suspended immediately before the chip firmware is fed in the initialization process of the radio LAN driver (referred to as “init_pause”), and in this state, the snapshot is created. As a result, the portion of the initialization process of the radio LAN driver can be also partially shortened.

EMBODIMENT

FIG. 1is a drawing illustrating a whole configuration of an information processing system1.

As illustrated inFIG. 1, the information processing system1includes a scanner device2and an update distribution server7, and these components are connected to each other via an access point80and a network8. In the information processing system1, a scanner device6for creating the snapshot is further provided, and is connected to the update distribution server7.

The scanner device2is an image reading device configured to read an image to generate image data, and incorporates an information processing unit20(described later) configured to process the read image data.

The scanner device6for creating the snapshot has a configuration substantially similar to the scanner device2.

The update distribution server7uses the scanner device6for creating the snapshot to create an activation program (including the snapshot) for activating the scanner device2. It is noted that in the present example, a mode is described as a specific example, where when distributing an update program (a program for updating a firmware or the like) to the scanner device2, the update distribution server7distributes an updated activation program (including the snapshot) via the network8; however, this is not limiting. For example, the scanner device2at the time of shipment from a factory may write an activation program created by the update distribution server7via a recording medium such as a USB cable and a CD-ROM, into the scanner device2.

FIG. 2is a drawing illustrating a hardware configuration and a software configuration of the information processing unit20incorporated in the scanner device2.

As illustrated inFIG. 2, the information processing unit20includes, as a hardware30, a CPU300, a radio LAN chip310, a RAM320, and a ROM330.

The CPU300is a central processing unit.

The radio LAN chip310is a chip for performing a radio connection, and realizes a Wi-Fi connection, for example. It is noted that the volatile memory on the radio LAN chip310is an example of an external memory according to the present invention; however, this is not limiting.

The RAM320is a volatile memory, and functions as a main memory (main storage device).

The ROM330is a non-volatile memory such as a Flash ROM, and stores therein an activation program including the snapshot, for example.

Further, as illustrated inFIG. 2, the information processing unit20includes, as a firmware40, a boot program400, a Linux kernel410, a radio LAN driver420, a Wi-Fi control application430, another device driver440, and another control application450.

The boot program400is a boot program for activating the scanner device2.

The Linux kernel410is an example of an operating system (OS), and is a core portion of Linux.

The radio LAN driver420is a driver for the radio LAN chip310.

The Wi-Fi control application430controls the radio LAN chip310via the radio LAN driver420to realize the Wi-Fi connection to the access point80.

Another device driver440is a driver for a liquid crystal display and a touch panel, for example.

Another control application450is an application program for controlling, for example, a liquid crystal display and a touch panel to perform reception of a user input, a display of an input result and the like.

FIG. 3is a drawing for describing an activation order of a firmware40in the activation process of the scanner device2.

As illustrated inFIG. 3, an initialization processing unit412of the Linux kernel410performs an initialization process of itself to instruct the radio LAN driver420and the another device driver440to be activated.

The radio LAN driver420includes a first initialization processing unit422configured to implement an initialization process before an upload of the chip firmware, and a second initialization processing unit424configured to implement an initialization process after the upload of the chip firmware (subsequent activation process).

A Wi-Fi control application430includes a radio LAN driver initialization control unit432configured to control initialization of the radio LAN driver420, and a Wi-Fi connection control unit434configured to control a Wi-Fi connection process. Upon completion of restoring of the snapshot, the radio LAN driver initialization control unit432instructs the second initialization processing unit424of the radio LAN driver420to release init_pause. In response thereto, the second initialization processing unit424of the radio LAN driver420starts feeding the chip firmware.

Another device driver440includes an initialization processing unit442.

FIG. 4is a flowchart describing a snapshot creation process (S10) of the update distribution server7. In the present example, a case is described as a specific example, where a user installs an update program into the scanner device6for creating the snapshot, and operates the scanner device2via the update distribution server7to create and distribute the snapshot in a state where an update is applied.

As illustrated inFIG. 4, in step100(S100), when the user instructs a setting of a snapshot creation mode, the scanner device6writes the activation mode being the snapshot creation mode into the ROM330such as EEPROM.

In step105(S105), the scanner device6turns OFF the power supply by shutting down the information processing unit20(FIG. 2), in accordance with a user operation. Subsequently, the scanner device6turns ON the power supply in accordance with the user operation.

In step110(S110), when the power is supplied to the scanner device6, the boot program400(FIG. 2,FIG. 3) of the scanner device6is activated to refer to an activation mode (in this example, the snapshot creation mode) written into the ROM330.

In step115(S115), when it is determined that the activation mode is the snapshot creation mode, the boot program400loads the Linux kernel410for activation.

In step120(S120), the Linux kernel410activates each driver. During that time, the Linux kernel410in the present example temporarily suspends the radio LAN driver420at a stage corresponding to the first initialization processing unit422(stage immediately before the chip firmware is fed), and suspends the activation process in an init_pause state.

In step125(S125), each control application (the Wi-Fi control application430and the another control application450) are activated.

In step130(S130), the update distribution server7instructs the scanner device6to generate the snapshot image on the RAM320. At this time, the initialization process is completed for the Wi-Fi control application430, the another device driver440, the another control application450, and a portion corresponding to the first initialization processing unit422of the radio LAN driver420, and the initialization process is not completed for a portion corresponding to the second initialization processing unit424of the radio LAN driver420.

In step135(S135), the update distribution server7extracts, as a snapshot file, the snapshot image generated on the RAM320.

In step140(S140), the update distribution server7combines the snapshot file extracted from the RAM320of the scanner device6and another file, and distributes, as an activation program, to another scanner device2via the network8.

Thus, the update distribution server7temporarily suspends the scanner device6for creating the snapshot while the activation process of the firmware is executed up to somewhere in the process, and creates the snapshot in a temporarily suspended state.

FIG. 5is a flowchart describing a snapshot creation process (S20) after a language selection, as another embodiment of the present invention. In the present example, a case is described where after the user activates the scanner device2and selects a language to be used in a user interface of the scanner device2, the snapshot including this state is created. In this case, the snapshot is created and stored by the scanner device2only.

As illustrated inFIG. 5, in step200(S200), when the user selects the language on a language setting screen of a setting menu, the scanner device2writes the selected language and the activation mode being the snapshot creation mode, into the ROM330such as EEPROM.

In step205(S205), the scanner device2shuts down the information processing unit20(FIG. 2), in accordance with a user operation, turns OFF the power supply, and thereafter, turns ON the power supply of the device.

In step210(S210), when the power is supplied to the scanner device2, the boot program400(FIG. 2,FIG. 3) of the scanner device2is activated to refer to an activation mode (in this example, the snapshot creation mode) written into the ROM330.

In step215(S215), when it is determined that the activation mode is the snapshot creation mode, the boot program400loads the Linux kernel410for activation.

In step220(S220), the Linux kernel410activates each driver. During that time, the Linux kernel410in the present example temporarily suspends the radio LAN driver420at a stage corresponding to the first initialization processing unit422, and suspends the activation process in an init_pause state.

In step225(S225), each control application (the Wi-Fi control application430and the another control application450) are activated.

In step230(S230), the firmware40performs a language setting change in accordance with the language written into the ROM330.

In step235(S235), the scanner device2generates the snapshot image on the RAM320in a state where the language setting change is performed.

In step235(S235), the scanner device2writes the snapshot image generated on the RAM320, into the ROM330, and changes the activation mode to a normal activation mode.

Thus, when the user changes the language setting, the scanner device2automatically generates the snapshot in a state where the language setting is changed. If the snapshots for high-speed activation as much as the number of languages are prepared and written in the ROM, the data size increases, and thus, as described above, the scanner device2in the present example takes the snapshot again when the language setting is changed to prevent a wasted use of a resource.

FIG. 6is a flowchart describing the activation process (S30) of the scanner device2in the normal activation mode.

As illustrated inFIG. 6, in step300(S300), the scanner device2turns ON the power supply in accordance with the user operation. It is noted that after receiving the update program, the scanner device2itself may perform the process of turning ON the power supply.

In step305(S305), when the power is supplied to the scanner device2, the boot program400(FIG. 2,FIG. 3) of the scanner device2is activated to refer to the activation mode (in this example, the normal activation mode) written into the ROM330.

In step310(S310), upon determination that the activation mode is the normal activation mode, the boot program400reads the snapshot from the ROM330and develops the same into the RAM320to restore the memory state. At this time, the radio LAN driver420is in the init_pause state, as illustrated inFIG. 3, and the another device driver440is in a state where the initialization process is completed.

In step315(S315), the Wi-Fi connection control unit434of the Wi-Fi control application430starts a Wi-Fi connection control.

In step320(S320), the radio LAN driver initialization control unit432of the Wi-Fi control application430instructs the radio LAN driver420to release the init_pause state.

In step325(S325), in response to the instruction from the radio LAN driver initialization control unit432, the second initialization processing unit424of the radio LAN driver420releases the init_pause state, and starts feeding the chip firmware to implement a subsequent initialization process.

In step330(S330), upon completion of the initialization of the radio LAN driver420, the second initialization processing unit424of the radio LAN driver420notifies the Wi-Fi control application430of the completion.

In step335(S335), in response to the completion notification from the radio LAN driver420, the Wi-Fi control application430continues the Wi-Fi connection control.

In step340(S340), the Wi-Fi control application430completes the Wi-Fi connection process, and the scanner device2completes the activation process.

Thus, the scanner device2uses the snapshot in a state where a part of the activation process is implemented to enable a high-speed activation.

As described above, the scanner device2of the present embodiment uses the snapshot in a state where the activation process is partially implemented to enable a high-speed activation.

Further, when the language setting is changed, the scanner device2in the present example takes the snapshot again in a state where the language setting is reflected, and thus, it is possible to suppress a data amount of the Snapshot to be written into the non-volatile memory.

Further, the update distribution server7in the present example creates and distributes the snapshot of the updated program, and thus, it is possible to provide a high-speed activation even after the program is updated.