WO2013103023A1 - 情報処理装置、情報処理方法、およびコンピュータプログラム - Google Patents

情報処理装置、情報処理方法、およびコンピュータプログラム Download PDF

Info

Publication number
WO2013103023A1
WO2013103023A1 PCT/JP2012/064885 JP2012064885W WO2013103023A1 WO 2013103023 A1 WO2013103023 A1 WO 2013103023A1 JP 2012064885 W JP2012064885 W JP 2012064885W WO 2013103023 A1 WO2013103023 A1 WO 2013103023A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
backup
file
application configuration
rewriting
Prior art date
Application number
PCT/JP2012/064885
Other languages
English (en)
French (fr)
Inventor
聡 道籏
丸山 清泰
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to JP2013552383A priority Critical patent/JP5575338B2/ja
Priority to CN201280065486.6A priority patent/CN104025047B/zh
Priority to US14/370,657 priority patent/US9471435B2/en
Priority to DE112012005589.6T priority patent/DE112012005589T5/de
Publication of WO2013103023A1 publication Critical patent/WO2013103023A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Definitions

  • the present invention relates to an information processing apparatus, an information processing method, and a computer program.
  • NAND flash memories which are nonvolatile memories
  • the NAND flash memory has the advantages that the capacity is increased and the bit unit price is lower than that of the NOR flash memory.
  • repeated reading of stored data may cause a bit error due to loss of charge, which has a demerit in data reliability. For this reason, when a program for starting the system is stored in the NAND flash memory, the system may not be started due to a bit error, or the system may hang up after being started.
  • Patent Document 1 the first boot program is read from the system non-volatile memory, error detection is performed on the first boot program, and the read first boot program is illegally changed. If the second boot program is read from the backup non-volatile memory, error detection is performed on the second boot program, and the read second boot program is illegally changed. A controller that outputs an error when determined is described. In this control device, when it is determined that the boot program has not been illegally changed as a result of error detection for the boot program, boot processing is performed using the boot program.
  • the present invention provides an information processing apparatus and an information processing method that can speed up the start of system startup processing and can be restarted with a highly reliable program when an error is detected in the startup program And to provide a computer program.
  • An information processing apparatus includes: A non-volatile memory including a program area storing a program for starting the system, and a plurality of backup areas each storing a plurality of backup programs having the same contents as the program; A process execution means for executing a program stored in the program area to start the system; In parallel with the startup process by the process execution unit, an error detection unit that performs error detection on the program stored in the program area; When an error is detected in the program by the error detection means, the program stored in the program area is rewritten with the backup program stored in the backup area, and stored in the program area.
  • Restarting means for restarting the system by the rewritten program refers to history information indicating a history of rewriting of the program by the backup program when performing the recovery process, and uses the information for the rewriting from the plurality of backup programs based on the history information.
  • a backup program is selected, and the program is rewritten with the selected backup program.
  • An information processing method includes: A program stored in the program area of a non-volatile memory including a program area storing a program for starting the system and a plurality of backup areas each storing a plurality of backup programs having the same contents as the program A process execution step for executing the system startup process by executing In parallel with the startup process by the process execution step, an error detection step of performing error detection on the program stored in the program area, When an error is detected in the program by the error detection step, the program stored in the program area is rewritten with the backup program stored in the backup area, and stored in the program area. A restarting step of restarting the system by the rewritten program.
  • the restarting step when performing the recovery process, reference is made to history information indicating a history of rewriting of the program by the backup program, and based on the history information, the history information is used for the rewriting.
  • a backup program is selected, and the program is rewritten with the selected backup program.
  • the computer program according to the present invention is A program stored in the program area of a non-volatile memory including a program area storing a program for starting the system and a plurality of backup areas each storing a plurality of backup programs having the same contents as the program
  • a process execution step for executing the system startup process by executing In parallel with the startup process by the process execution step, an error detection step of performing error detection on the program stored in the program area, When an error is detected in the program by the error detection step, the program stored in the program area is rewritten with the backup program stored in the backup area, and stored in the program area.
  • the computer is caused to execute a restarting step of restarting the system by the rewritten program.
  • the restarting step when performing the recovery process, reference is made to history information indicating a history of rewriting of the program by the backup program, and based on the history information, it is used for the rewriting from among the plurality of backup programs.
  • a backup program is selected, and the program is rewritten with the selected backup program.
  • FIG. 1 is a block diagram schematically showing the configuration of the information processing apparatus 1 according to the present embodiment.
  • the information processing apparatus 1 includes a nonvolatile memory 2, a work memory 3, a central processing unit (CPU) 4, a communication unit 5, and an external interface (external IF) 6.
  • CPU central processing unit
  • IF external interface
  • the nonvolatile memory 2 is a readable / writable memory that stores various programs and data, and is, for example, a NAND flash memory.
  • the non-volatile memory 2 includes a program area that stores a program for starting the system (hereinafter referred to as “start program”) and a backup area that stores a backup program (also referred to as a duplicate program) having the same content as the start program.
  • start program a program for starting the system
  • backup program also referred to as a duplicate program having the same content as the start program.
  • the above system is specifically a computer system, and more specifically is a computer system of the information processing apparatus 1 (centered on the CPU 4).
  • the non-volatile memory 2 further includes a file area that stores an application configuration file for starting an application, and a backup file area that stores a backup file (also referred to as a duplicate file) having the same contents as the application configuration file. And further including. A plurality of backup areas and backup file areas are provided. Further, the nonvolatile memory 2 stores error detection data for detecting an error of the program or file for each of the startup program, the backup program, the application configuration file, and the backup file.
  • the work memory 3 is a memory used as a work area for the CPU 4 and stores programs and data read from the nonvolatile memory 2.
  • CPU 4 executes a program such as a startup program stored in the non-volatile memory 2. Specifically, the CPU 4 reads (or copies) necessary blocks among the programs and data stored for each block in the nonvolatile memory 2, accesses the work memory 3, and accesses the work memory. The processing described in the program read in 3 is executed.
  • the communication unit 5 converts the transmission / reception data according to a communication protocol with the externally connected device.
  • the external interface 6 is an interface for connecting the information processing apparatus 1 and an external connection device, for example, a USB interface.
  • FIG. 2 is a schematic diagram showing a storage format of the nonvolatile memory 2.
  • the nonvolatile memory 2 includes a boot program 100 for performing a boot process after a system reset of the information processing apparatus 1 and a kernel for starting an operating system (OS: Operating System) as startup programs.
  • a program 106 is stored.
  • the nonvolatile memory 2 stores an application configuration file A 112 and an application configuration file B 114 necessary for starting an application that operates on the kernel as application configuration files.
  • nonvolatile memory 2 as a backup program, a boot program first backup 102 and a boot program second backup 104 having the same contents as the boot program 100, and a kernel program first backup 108 having the same contents as the kernel program 106 are stored. And the kernel program second backup 110 are stored.
  • the nonvolatile memory 2 has the same contents as the application configuration file A first backup 116 and the application configuration file A second backup 120 and the application configuration file B 114 as the backup file.
  • An application configuration file B first backup 118 and an application configuration file B second backup 122 are stored.
  • the boot program 100, the boot program first backup 102, the boot program second backup 104, the kernel program 106, the kernel program first backup 108, the kernel program second backup 110, and the application stored in the nonvolatile memory 2 In the configuration file A 112, the application configuration file B 114, the application configuration file A first backup 116, the application configuration file B first backup 118, the application configuration file A second backup 120, and the application configuration file B second backup 122, respectively.
  • checksum values 101, 103, 105, 107, 109, 111 113,115,117,119,121,123 is added.
  • the boot program 100 and its checksum value 101 are stored in the same block B1, and the boot program first backup 102 and its checksum value 103 are stored in the same block B2.
  • the program second backup 104 and its checksum value 105 are stored in the same block B3.
  • the block B1 is a program area (also referred to as a genuine block), and the blocks B2 and B3 are backup areas (also referred to as duplicate blocks).
  • the kernel program 106 and its checksum value 107 are stored in the same block B4, the kernel program first backup 108 and its checksum value 109 are stored in the same block B5, and the kernel program second backup 110 is stored.
  • And its checksum value 111 are stored in the same block B6.
  • Block B4 is a program area (also referred to as a genuine block), and blocks B5 and B6 are backup areas (also referred to as duplicate blocks).
  • the application configuration file the application configuration file A112 and its checksum value 113, and the application configuration file B114 and its checksum value 115 are stored in the same block B7.
  • the application configuration file A first backup 116 and its checksum value 117 and the application configuration file B first backup 118 and its checksum value 119 are stored in the same block B8.
  • the application configuration file A second backup 120 and its checksum value 121 and the application configuration file B second backup 122 and its checksum value 123 are stored in the same block B9.
  • Block B7 is a file area (also referred to as a genuine block), and blocks B8 and B9 are backup file areas (also referred to as duplicate blocks).
  • the nonvolatile memory 2 stores rewrite flag information 124 used in program rewrite processing and file rewrite processing described later, and start history information 126 for recording system start history information. . Further, the non-volatile memory 2 may store rewrite order information 128 indicating the rewrite order of the backup program.
  • the storage format of the nonvolatile memory 2 shown in FIG. 2 is an example, and the present invention is not limited to this.
  • the boot program 100 causes the CPU 4 to transfer the boot program 100 itself and its checksum value 101 stored in the non-volatile memory 2 to the work memory 3, and execute the initialization process of the information processing apparatus 1.
  • the kernel program 106 is programmed to jump the read destination.
  • the boot program 100 describes boot processing as startup processing.
  • the boot program 100 performs a checksum operation on the boot program 100 transferred to the work memory 3 in parallel with the boot processing described above, and compares the result of the operation with the checksum value 101 for booting.
  • the program 100 is programmed to execute an error detection process for confirming the presence or absence (or validity) of the program 100. That is, the boot program 100 describes error detection processing, and further describes parallel control for performing startup processing and error detection processing in parallel.
  • the kernel program 106 causes the CPU 4 to transfer the kernel program 106 itself and its checksum value 107 stored in the nonvolatile memory 2 to the work memory 3, and to make system settings such as enabling peripheral devices including the communication unit 5. It is programmed to execute a system control process for performing As described above, the kernel program 106 describes boot processing for booting the OS. Further, the kernel program 106 performs a checksum operation on the kernel program 106 transferred to the work memory 3 in parallel with the above-described system control processing to the CPU 4, and calculates the checksum value 107 on the work memory 3. And an error detection process for confirming whether the kernel program 106 has an error (or validity). That is, the kernel program 106 describes error detection processing, and further describes parallel control for performing startup processing and error detection processing in parallel.
  • the application configuration file A112 is executed after the kernel program 106 is started, and causes the CPU 4 to transfer the application configuration file A112 itself and its checksum value 113 stored in the nonvolatile memory 2 to the work memory 3.
  • the program is programmed to execute a predetermined process for starting the application. That is, the application configuration file A112 describes a startup process for starting an application. Further, the application configuration file A112 performs a checksum operation on the application configuration file A112 transferred to the work memory 3 in parallel with the above processing to the CPU 4, and the operation result and the checksum value 113 on the work memory 3 are calculated. And an error detection process for confirming whether or not there is an error (or validity) in the application configuration file A112. That is, the application configuration file A112 describes an error detection process, and further describes a parallel control for performing the activation process and the error detection process in parallel.
  • the application configuration file B114 is the same as the application configuration file A112.
  • the application configuration file B114 also describes startup processing, error detection processing, and parallel control.
  • FIG. 3 is a block diagram showing a functional configuration of the information processing apparatus 1 according to the present embodiment.
  • the information processing apparatus 1 includes a parallel processing unit 10, a process execution unit 11, an error detection unit 12, a restart unit 13, and a rewrite control unit 14.
  • the parallel processing unit 10, the process execution unit 11, the error detection unit 12, the restart unit 13, and the rewrite control unit 14 are respectively configured by the CPU 4 such as the boot program 100, the kernel program 106, the application configuration file A 112, This is realized by executing parallel control, startup processing, error detection processing, restart processing, and rewrite control described in the application configuration file B114.
  • the parallel processing unit 10 performs control to perform a plurality of processes including a start process and an error detection process in parallel by time division. Specifically, in order to perform the processes in the CPU 4 in parallel, the parallel processing unit 10 divides the processing time of the CPU 4 into short units, and assigns the divided unit times to the respective processes in order. The process of the CPU 4 is controlled so that the processes are performed in parallel.
  • the process executing unit 11 executes a start process for starting the system by executing the start program stored in the program area of the nonvolatile memory 2. Specifically, the process execution unit 11 executes the start process described in the boot program 100 called after the system reset, executes the start process described in the kernel program 106 called by the boot program 100, and sets the application configuration The startup process described in the file A 112 and the application configuration file B 114 is executed, and the process until the application is started is executed. Furthermore, the process execution part 11 may perform the arithmetic process etc. on an application.
  • the error detection unit 12 performs error detection on the startup program and application configuration file stored in the program area in parallel with the startup processing by the process execution unit 11, and confirms the validity of the startup program and application configuration file. To do. Specifically, the error detection unit 12 performs error detection for each of the boot program 100, the kernel program 106, the application configuration file A 112, and the application configuration file B 114 using the respective error detection data. More specifically, the error detection unit 12 calculates a checksum value for the boot program 100, the kernel program 106, the application configuration file A 112, and the application configuration file B 114 stored in the nonvolatile memory 2. The calculated checksum value is compared with the corresponding checksum value stored in advance in the non-volatile memory 2 to detect whether or not the activation program or file has been unfairly changed, and the detection result is restarted. 13 is notified.
  • the restart unit 13 is stored in the backup area.
  • the system is restarted using the stored backup program (boot program first backup 102, boot program second backup 104, kernel program first backup 108, or kernel program second backup 110).
  • the restart unit 13 rewrites the startup program stored in the program area with the backup program stored in the backup area. And restart the system using the boot program after rewriting.
  • the restart unit 13 refers to history information indicating a history of rewriting of the startup program by the backup program (or history information about a past history of rewriting the startup program by the backup program), Based on the history information, a backup program to be used for rewriting is selected from a plurality of backup programs, and the activation program stored in the program area is rewritten with the selected backup program.
  • the history information is included in the activation history information 126 in the nonvolatile memory 2.
  • the restarting unit 13 further refers to rewrite order information indicating the rewrite order of the backup program, selects a backup program to be used for rewriting from a plurality of backup programs based on the rewrite order information and history information, The activation program stored in the area may be rewritten with the selected backup program.
  • the rewrite order information is information indicating the order in which a plurality of backup programs are used for rewriting, and is included in the rewrite order information 128 in the nonvolatile memory 2.
  • the restart unit 13 selects a backup program used for rewriting in the recovery process based on the history information so that the backup programs are used in the order indicated by the rewrite order information.
  • the restart unit 13 when performing the recovery process, rewrites among the plurality of backup programs stored in the plurality of backup areas based on the history information (or history information and rewrite order information). A backup program that is not used in the above is selected, and the startup program stored in the program area is rewritten with the selected backup program. On the other hand, when an error is detected in the activation program by the error detection unit 12 and the backup program that has not been used for rewriting does not exist in the plurality of backup areas, the restarting unit 13 instructs the rewrite control unit 14 to A program rewriting process described later is executed.
  • the restart unit 13 stores the backup file (application configuration file A first) stored in the backup file area.
  • the application is restarted using the backup 116, the application configuration file A second backup 120, the application configuration file B first backup 118, or the application configuration file B second backup 122).
  • the restart unit 13 changes the application configuration file stored in the file area to the backup file stored in the backup file area. The restoration process to be rewritten is performed, and the application is restarted by the application configuration file after the rewriting.
  • the restart unit 13 refers to history information indicating a history of rewriting the application configuration file with the backup file (or history information about a past history of rewriting the application configuration file with the backup file). Then, based on the history information, a backup file used for rewriting is selected from a plurality of backup files, and the application configuration file stored in the file area is rewritten with the selected backup file.
  • the history information is included in the activation history information 126 in the nonvolatile memory 2.
  • the restarting unit 13 further refers to the rewrite order information indicating the rewrite order of the backup file, selects a backup file to be used for rewriting from a plurality of backup files based on the rewrite order information and history information, The application configuration file stored in the area may be rewritten with the selected backup file.
  • the rewrite order information is information indicating the order in which a plurality of backup files are used for rewriting, and is included in the rewrite order information 128 in the nonvolatile memory 2.
  • the restarting unit 13 selects a backup file used for rewriting in the recovery process based on the history information so that the backup files are used in the order indicated by the rewrite order information.
  • the restarting unit 13 when performing the recovery processing, the restarting unit 13 is still out of the plurality of backup files stored in the plurality of backup file areas based on the history information (or history information and rewrite order information). A backup file that is not used for rewriting is selected, and the application configuration file stored in the file area is rewritten with the selected backup file. On the other hand, when an error is detected in the application configuration file by the error detection unit 12, when the backup file that has not been used for rewriting does not exist in the plurality of backup file areas, the restarting unit 13 notifies the rewrite control unit 14 On the other hand, a file rewriting process described later is executed.
  • the restart unit 13 copies, for example, the backup program stored in the backup area to the program area as a new boot program. Further, for example, the restarting unit 13 overwrites the startup program stored in the program area with the backup program stored in the backup area. The same applies to the case where the application configuration file is rewritten with a backup file.
  • the rewrite control unit 14 acquires a new start program from the outside and performs a program rewrite process for rewriting the start program with the new start program.
  • This program rewriting process is executed when a backup program that has not yet been used for rewriting does not exist in a plurality of backup areas when an error is detected in the startup program (boot program 100 or kernel program 106).
  • the program rewriting process is also executed when the activation program (boot program 100 or kernel program 106) is updated (updated).
  • the rewrite control unit 14 obtains a new start program for rewriting from the outside of the information processing apparatus 1, and among the plurality of backup programs stored in the plurality of backup areas, Is rewritten with the new start program, and the start program stored in the program area is rewritten with the predetermined backup program after the rewrite. If there is no abnormality when the rewritten startup program is executed, the rewrite control unit 14 rewrites all the backup programs other than the predetermined backup program among the plurality of backup programs after rewriting. If there is an abnormality in the predetermined backup program or the updated start program, the start program stored in the program area is rewritten with a backup program other than the predetermined backup program.
  • the rewrite control unit 14 acquires a new application configuration file from the outside, and performs a file rewrite process for rewriting the application configuration file with the new application configuration file.
  • This file rewriting process is executed when an error is detected in the application configuration file (application configuration file A112 or B114) and there are no backup files that are not yet used for rewriting in the plurality of backup file areas.
  • the file rewriting process is also executed when an application configuration file (application configuration file A112 or B114) is updated (updated).
  • the rewrite control unit 14 acquires a new application configuration file for rewriting from the outside of the information processing apparatus 1, and among the plurality of backup files stored in the plurality of backup file areas.
  • the predetermined backup file is rewritten with the new application configuration file, and the application configuration file stored in the file area is rewritten with the predetermined backup file after the rewriting. Then, when there is no abnormality when the rewritten application configuration file is executed, the rewrite control unit 14 rewrites all the backup files other than the predetermined backup file among the plurality of backup files after rewriting. When there is an abnormality in rewriting with a predetermined backup file or a rewritten application configuration file, the application configuration file stored in the file area is rewritten with a backup file other than the predetermined backup file.
  • the rewrite control unit 14 copies the new start program to the backup area as a new backup program, for example.
  • the rewrite control unit 14 overwrites the backup program stored in the backup area with a new activation program. The same applies to the case where the start program is rewritten with the backup program, or the case where the backup file is rewritten with a new application configuration file.
  • the new start program and application configuration file acquired from the outside by the rewrite control unit 14 are the same as the start program currently stored in the nonvolatile memory 2. Alternatively, it may be a newer version than the currently stored startup program or the like.
  • FIG. 4 is a flowchart showing the operation of the information processing apparatus 1 according to this embodiment. Hereinafter, the operation of the information processing apparatus 1 will be described with reference to FIG.
  • the CPU 4 accesses a predetermined address (hereinafter referred to as “boot address”) in which the boot program 100 in the nonvolatile memory 2 is stored, and accesses the work memory 3 to the boot program 100. And its checksum value 101 are transferred. Then, the CPU 4 reads the boot program 100 from the work memory 3 and executes a startup process including an initialization process described in the boot program 100 (S1).
  • the boot address is a fixed address.
  • the CPU 4 jumps to the address where the kernel program 106 is stored according to the instruction described in the boot program 100, and transfers the kernel program 106 and its checksum value 107 to the work memory 3. Then, the CPU 4 reads the kernel program 106 from the work memory 3 and executes a startup process described in the kernel program 106 (S5).
  • the CPU 4 checks the application configuration file A 112 and the application configuration file B 114 for starting an application designated in advance in the kernel from the nonvolatile memory 2 and the respective checksum values. 113 and 115 are transferred to the work memory 3. Then, the CPU 4 reads the application configuration file A112 and the application configuration file B114 from the work memory 3, and starts the application by executing the startup process described in the application configuration file A112 and the application configuration file B114. Are provided (S10). Note that the application configuration file A 112 and the application configuration file B 114 may be executed one by one in order or in parallel with each other.
  • the CPU 4 executes the error detection process described in the boot program 100 in parallel with the boot process of the boot program 100 in step S1 by executing the parallel control described in the boot program 100. Then, the checksum value of the boot program 100 is calculated (S2). Then, the CPU 4 determines whether or not the calculated checksum value matches the checksum value 101 of the boot program 100 (S3). If they do not match (S3: NO), the CPU 4 determines It is determined that there is an illegal bit change, and the process proceeds to the restart process (S4). In this restart process, the CPU 4 performs a recovery process of rewriting the boot program 100 with the boot program first backup 102 or the boot program second backup 104, and restarts the system with the boot program 100 after the rewriting. The restart process (S4) will be described in detail later.
  • the CPU 4 determines that there is no illegal bit change in the boot program 100, and Subsequently, the checksum value of the kernel program 106 to be read is calculated (S6). Then, the CPU 4 determines whether or not the calculated checksum value matches the checksum value 107 of the kernel program 106 (S7). If they do not match (S7: NO), the CPU 4 determines whether the checksum value does not match (S7: NO). It is determined that there is an illegal bit change, and the process proceeds to the restart process (S8).
  • the CPU 4 performs a recovery process in which the kernel program 106 is rewritten with the kernel program first backup 108 or the kernel program second backup 110, and the system is restarted with the rewritten kernel program 106.
  • the restart process (S8) will be described in detail later.
  • the CPU 4 determines that there is no illegal bit change in the kernel program 106, and Subsequently, the checksum value of the application configuration file A112 to be read is calculated (S11). Then, the CPU 4 determines whether or not the calculated checksum value matches the checksum value 113 of the application configuration file A112 (S12). If they do not match (S12: NO), the application configuration file It is determined that there is an illegal bit change in A112, and the process proceeds to the restart process (S13).
  • the CPU 4 performs a recovery process to rewrite the application configuration file A112 with the application configuration file A first backup 116 or the application configuration file second backup 120, and restarts the application with the rewritten application configuration file A112. Do.
  • the restart process (S13) will be described in detail later.
  • the CPU 4 determines that there is no illegal bit change in the application configuration file A112. If there is an application configuration file to be read, the same processing as the processing for the application configuration file A 112 is performed on the read application configuration file (S11, S12), and if there is no other application configuration file to be read, It will be in a standby state. For example, when the application configuration file B114 is read after the application configuration file A112, the CPU 4 performs processing on the application configuration file B114 following processing on the application configuration file A112 (S11, S12), and enters a standby state. However, when the application configuration file B114 is executed in parallel with the application configuration file A112, the CPU 4 may perform processing on the application configuration file B114 in parallel with processing on the application configuration file A112.
  • steps S1, S5, and S10 in FIG. 4 are realized by the CPU 4 executing the startup process described in the boot program, the kernel program, and the application configuration file, respectively.
  • steps S2 and S3, steps S6 and S7, and steps S11 and S12 are realized by the CPU 4 executing error detection processing described in the boot program, kernel program, and application configuration file, respectively.
  • Step S4, step S8, and step S13 are realized by the CPU 4 executing a restart process described in the boot program, kernel program, and application configuration file, respectively. That is, steps S1, S5, and S10 are processes of the process execution unit 11, steps S2, S3, S6, S7, S11, and S12 are processes of the error detection unit 12, and steps S4, S8, and S13 are This is processing of the restarting unit 13.
  • FIG. 5 is a flowchart showing the restart process.
  • the restart process in steps S4, S8, and S13 of FIG. 4 will be described with reference to FIG.
  • step S4 the restart process in step S4 will be described.
  • the CPU 4 stops the start process (the process of step S1) (S21).
  • the CPU 4 refers to the activation history information 126 stored in the nonvolatile memory 2 and changes it (S22).
  • the activation history information 126 is information indicating the rewriting source (or copy source) of the program or file that is being activated.
  • FIG. 6 is a diagram showing the format of the activation history information 126.
  • the activation history information 126 includes activation history values corresponding to the boot program 100, the kernel program 106, the application configuration file A 112, and the application configuration file B 114.
  • the boot history values of the boot program 100, kernel program 106, application configuration file A112, and application configuration file B114 are recorded at addresses N, N + 1, N + 2, and N + 3 of the nonvolatile memory 2, respectively.
  • the boot history value “1” indicates that the boot program 100 stored in the block B1 is restarted in the reboot process (S4).
  • the boot history value “2” indicates that the boot program 100 stored in the block B1 is rewritten by the boot program second backup 104 in the restart process (S4). It shows that there is. Therefore, the CPU 4 can know the program that is the rewrite source (or copy source) of the boot program 100 currently used for startup by referring to the startup history value at the address N of the startup history information 126.
  • the rewriting order of the boot program 100 in the restart process (S4) is rewritten with the boot program first backup 102 in the first restart process, and the boot program second backup 104 in the next restart process.
  • the order of rewriting is as follows.
  • the order of rewriting is the same for the kernel program 106, the application configuration file A 112, and the application configuration file B 114.
  • rewrite order information 128 indicating the rewrite order of the backup program or backup file is recorded for each of the boot program 100, the kernel program 106, the application configuration file A 112, and the application configuration file B 114.
  • the CPU 4 refers to the rewrite order information 128 and determines the rewrite order. That is, the CPU 4 performs the processing from step S22 onward based on the rewrite order information 128.
  • the rewrite order information may be changed.
  • the manufacturer of the information processing apparatus 1 can set the rewrite order to a desired order by recording the rewrite order information indicating the desired order in the nonvolatile memory 2.
  • the information processing apparatus 1 may change the rewrite order information according to information such as an error detection rate of each block or an operation from the user, for example.
  • step S ⁇ b> 22 when the boot history value of the boot program 100 is “0”, the CPU 4 rewrites the boot program 100 with the boot program first backup 102. Is changed to “1”. In addition, when the boot history value of the boot program 100 is “1”, the CPU 4 rewrites the boot program 100 with the boot program second backup 104, so the boot history value of the boot program 100 is changed to “2”. . Further, when the boot history value of the boot program 100 is “2”, the CPU 4 does not change the boot history value of the boot program 100.
  • the CPU 4 determines whether or not the boot program 100 can be rewritten by the backup program (S23). Specifically, the CPU 4 determines that rewriting is possible when the boot history value of the boot program 100 at the address N is “0” or “1”, and the boot history value is “2”. It is determined that rewriting is not possible. Note that the determination in step S23 is made based on the activation history value referenced in step S22, that is, the activation history value before being changed in step S22.
  • the CPU 4 rewrites the boot program 100 and its checksum value 101 stored in the block B1 with the backup program and its checksum value (S24). Specifically, when the boot history value of the boot program 100 is “0”, the CPU 4 sets the boot program first backup 102 and its checksum value 103 as the new boot program 100 and its checksum value 101. When the boot history value of the boot program 100 is “1” after copying to the block B1, the boot program second backup 104 and its checksum value 105 are used as the new boot program 100 and its checksum value 101, and the block B1. To copy. When the rewriting of the boot program 100 and the checksum value 101 is completed, the CPU 4 restarts the system (S25).
  • step S24 is performed based on the activation history value referred to in step S22, that is, the activation history value before being changed in step S22.
  • the CPU 4 when it is determined that the boot program 100 cannot be rewritten (S23: NO), the CPU 4 outputs a message notifying that it is necessary to newly acquire the boot program from the outside to a display unit (not shown) or the like. (S26) The program proceeds to a program rewriting process (S27) for rewriting the boot program with an external boot program.
  • the program rewriting process will be described in detail later.
  • the boot program first backup 102 and the boot program second backup 104 are exemplified as the order of rewriting the boot program 100.
  • the boot program second backup 104 and the boot program first backup 102 are referred to. It may be in order.
  • the boot history value of the boot program 100 is “0”
  • the CPU 4 changes the boot history value to “2”
  • the boot history value is “2”.
  • the boot history value is changed to" 1 "and the boot program 100 is rewritten with the boot program first backup 102. If the boot history value is" 1 ", the program rewriting process is performed without changing the boot history value. Do.
  • step S8 the restart process in step S8 will be described.
  • the CPU 4 stops the start process (process of step S5) (S21).
  • the CPU 4 refers to and changes the activation history value of the address N + 1 of the activation history information 126 stored in the nonvolatile memory 2 (S22).
  • the activation history value of the address N + 1 of the activation history information 126 will be described.
  • “0”, “1”, or “2” is recorded as the activation history value of the kernel program 106 in the address N + 1 of the activation history information 126 as in the case of the address N.
  • the boot history value “0” of the kernel program 106 indicates that the kernel program 106 stored in the block B4 has not been rewritten in the restart process (S8), and the boot history value “1” is stored in the block B4. It indicates that the stored kernel program 106 has been rewritten by the kernel program first backup 108 in the restart process (S8), and the boot history value “2” is the kernel program 106 stored in the block B4. Indicates that it has been rewritten by the kernel program second backup 110 in the restart process (S8).
  • step S ⁇ b> 22 when the boot history value of the kernel program 106 is “0”, the CPU 4 rewrites the kernel program 106 with the kernel program first backup 108. Is changed to “1”. Further, when the boot history value of the kernel program 106 is “1”, the CPU 4 changes the boot history value of the kernel program 106 to “2” because the kernel program 106 is rewritten with the kernel program second backup 110. . Further, when the boot history value of the kernel program 106 is “2”, the CPU 4 does not change the boot history value of the kernel program 106.
  • the CPU 4 determines whether or not the kernel program 106 can be rewritten by the backup program (S23). Specifically, the CPU 4 determines that rewriting is possible when the boot history value of the kernel program 106 at the address N + 1 is “0” or “1”, and the boot history value is “2”. It is determined that rewriting is not possible. Note that the determination in step S23 is made based on the activation history value referenced in step S22, that is, the activation history value before being changed in step S22.
  • the CPU 4 rewrites the kernel program 106 and its checksum value 107 stored in the block B4 with the backup program and its checksum value (S24). Specifically, when the boot history value of the kernel program 106 is “0”, the CPU 4 sets the kernel program first backup 108 and its checksum value 109 as the new kernel program 106 and its checksum value 107. When the boot history value of the kernel program 106 is “1” after copying to the block B4, the kernel program second backup 110 and its checksum value 111 are set as a new kernel program 106 and its checksum value 107, and the block B4. To copy.
  • step S25 When the rewriting of the kernel program 106 and the checksum value 107 is completed, the CPU 4 restarts the system (S25). Specifically, when the rewriting is completed, the CPU 4 performs a software reset, accesses the boot address where the boot program 100 is stored, and performs the process of FIG. 4 from the beginning. That is, in FIG. 4, the process returns from step S8 to step S1, and the boot process of the boot program 100 is performed again. In the processing after the restart, the rewritten kernel program 106 is read and executed. The process of step S24 is performed based on the activation history value referred to in step S22, that is, the activation history value before being changed in step S22.
  • the CPU 4 when it is determined that the kernel program 106 cannot be rewritten (S23: NO), the CPU 4 outputs a message notifying that a new kernel program needs to be acquired from the outside (S26). The process proceeds to a program rewriting process (S27) for rewriting with an external kernel program.
  • S27 program rewriting process
  • step S13 the restart process in step S13, as shown in FIG. 5, first, the CPU 4 stops the start process (the process of step S10) (S21). Next, the CPU 4 refers to and changes the activation history value of the address N + 2 of the activation history information 126 stored in the nonvolatile memory 2 (S22).
  • the activation history value of the address N + 2 of the activation history information 126 will be described.
  • “0”, “1”, or “2” is recorded in the address N + 2 of the activation history information 126 as the activation history value of the application configuration file A 112 as in the case of the address N.
  • the activation history value “0” of the application configuration file A112 indicates that the application configuration file A112 stored in the block B7 has not been rewritten in the restart process (S13), and the activation history value “1” This indicates that the application configuration file A112 stored in B7 has been rewritten by the application configuration file A first backup 116 in the restart process (S13), and the startup history value “2” is stored in the block B7.
  • step S22 when the activation history value of the application configuration file A112 is “0”, the CPU 4 rewrites the application configuration file A112 with the application configuration file A first backup 116. The activation history value of A112 is changed to “1”. When the activation history value of the application configuration file A112 is “1”, the CPU 4 rewrites the application configuration file A112 with the application configuration file A second backup 120. Therefore, the activation history value of the application configuration file A112 is changed to “ Change to 2 ”. Further, when the activation history value of the application configuration file A112 is “2”, the CPU 4 does not change the activation history value of the application configuration file A112.
  • the CPU 4 determines whether or not the application configuration file A112 can be rewritten with the backup file (S23). Specifically, the CPU 4 determines that rewriting is possible when the activation history value of the application configuration file A112 at the address N + 2 is “0” or “1”, and the activation history value is “2”. In this case, it is determined that rewriting is not possible. Note that the determination in step S23 is made based on the activation history value referenced in step S22, that is, the activation history value before being changed in step S22.
  • the CPU 4 rewrites the application configuration file A112 and its checksum value 113 stored in the block B7 with the backup file and its checksum value (S24). Specifically, when the activation history value of the application configuration file A112 is “0”, the CPU 4 uses the application configuration file A first backup 116 and its checksum value 117 as the new application configuration file A112 and its check. When it is copied to the block B7 as the sum value 113 and the activation history value of the application configuration file A112 is “1”, the application configuration file A second backup 120 and its checksum value 121 are transferred to the new application configuration file A112. The checksum value 113 is copied to the block B7.
  • step S25 When the rewriting of the application configuration file A 112 and the checksum value 113 is completed, the CPU 4 restarts the application (S25). Specifically, when the rewriting is completed, the CPU 4 loads the application configuration file A112 again in a state where the system is activated (specifically, a state where the kernel is activated). That is, in FIG. 4, the process proceeds from step S13 to step S10, the application configuration file A112 is read again, and the application activation process is performed. In this case, the rewritten application configuration file A112 is read and executed. The process of step S24 is performed based on the activation history value referred to in step S22, that is, the activation history value before being changed in step S22.
  • the CPU 4 when it is determined that the application configuration file A112 cannot be rewritten (S23: NO), the CPU 4 outputs a message notifying that it is necessary to newly acquire the application configuration file from the outside (S26). The process proceeds to a file rewriting process (S27) for rewriting the configuration file A112 with an external application configuration file.
  • S27 file rewriting process
  • the restart process for the application configuration file B114 is the same as the restart process for the application configuration file A112.
  • the backup history information 126 is referred to and the backup program used for the rewriting is selected.
  • a backup program other than the backup program used for rewriting the program in the past and in which an error was detected in the program after the rewrite (or a backup program other than the backup program in which an error was detected in the past) can be selected,
  • the restart process can be performed by a more reliable backup program.
  • a backup program other than the first backup for example, the second backup
  • restart processing is possible to perform processing, and it is possible to perform restart processing with a more reliable backup program.
  • FIG. 7 is a flowchart showing the program (or file) rewriting process in step S27 of FIG.
  • the boot program, kernel program, and application configuration file program (or file) rewrite processing are realized by the CPU 4 executing rewrite control described in the boot program, kernel program, and application configuration file, respectively. Is done.
  • the boot program program rewriting process will be described.
  • the program rewriting process of the boot program as shown in FIG. 7, when the CPU 4 recognizes that the external memory is connected to the external interface 6, a new rewriting for rewriting is performed from the external memory via the communication unit 5.
  • the boot program and its checksum value are read, and the boot program first backup 102 and the checksum value 103 are rewritten with the new boot program and checksum value (S31).
  • the external memory is connected to the external interface 6 of the information processing apparatus 1 by a user who has seen the message in step S26 of FIG. 5, for example, and is a portable memory such as a USB memory.
  • the CPU 4 changes the rewrite flag information 124 (S32).
  • the rewrite flag information 124 is information indicating whether or not a program (or file) rewrite process is being executed.
  • FIG. 8 is a diagram showing the format of the rewrite flag information 124.
  • the rewrite flag information 124 includes a rewrite flag corresponding to each of the boot program 100, the kernel program 106, the application configuration file A 112, and the application configuration file B 114.
  • the rewrite flags of the boot program 100, the kernel program 106, the application configuration file A112, and the application configuration file B114 are recorded at addresses M, M + 1, M + 2, and M + 3 of the nonvolatile memory 2, respectively.
  • the rewrite flag is normally “0” and is a flag that is set to “1” when the program (or file) rewrite process is executed.
  • M addresses M
  • “0” indicates that the corresponding program (or file) is not being rewritten
  • “1” corresponds Indicates that the program (or file) to be rewritten is being rewritten.
  • step S32 the CPU 4 changes the rewrite flag of the boot program 100 at the address M from “0” to “1”.
  • the rewrite flag “1” of the boot program 100 is stored in the boot program 100, the boot program second backup 104, and the boot program first backup 102 when the boot program first backup 102 is rewritten with a new boot program. Represents different.
  • the CPU 4 rewrites the boot program 100 and the checksum value 101 with the boot program first backup 102 and the checksum value 103 after the rewriting (S33).
  • the CPU 4 changes the activation history value corresponding to the boot program 100 in the activation history information 126 to “1” (S34), and restarts the system (S35). That is, the CPU 4 performs a software reset, accesses the boot address, reads and executes the rewritten boot program 100, and executes a checksum calculation (step S2 in FIG. 4) in parallel with the startup process (step S1 in FIG. 4). )I do.
  • the CPU 4 refers to the rewrite flag and the boot history value of the boot program 100, and when the rewrite flag is “1” and the boot history value is “1”. Advances to step S36 in FIG. If the rewrite flag is “0”, the process proceeds to step S3 in FIG. 4. If the rewrite flag is “1” and the activation history value is “2”, step S43 described later is performed. Will proceed to.
  • step S36 the CPU 4 determines whether or not there is an abnormality in the boot program 100. Specifically, the CPU 4 determines that there is no abnormality when the boot program 100 starts normally and the calculated checksum value matches the checksum value 101, and the boot program 100 does not start normally. If the checksum values do not match, it is determined that there is an abnormality.
  • the CPU 4 changes the boot history value corresponding to the boot program 100 to "0" (S37), and the boot program second backup 106 is changed to the boot program first. The data is rewritten with the backup 104 (S38). Then, the CPU 4 returns the rewrite flag of the boot program 100 to “0” (S39), and ends the program rewrite process. After the program rewriting process is completed, the process proceeds to step S6 in FIG.
  • Step S2 the CPU 4 rewrites the boot program 100 with the boot program second backup 104 (S40), and changes the boot history value corresponding to the boot program 100 to “2”. Then (S41), the system is restarted (S42). That is, the CPU 4 performs a software reset, accesses the boot address, reads out and executes the boot program 100 after rewriting, and performs checksum calculation (step S1 in FIG. 4) in parallel with the startup process (step S1 in FIG. 4) Step S2) is performed.
  • the CPU 4 refers to the rewrite flag and the boot history value of the boot program 100, and when the rewrite flag is “1” and the boot history value is “2”. Advances to step S43 in FIG.
  • step S43 the CPU 4 determines whether or not there is an abnormality in the boot program 100, as in step S36.
  • the CPU 4 If it is determined that there is no abnormality (S43: NO), the CPU 4 notifies the user by displaying, for example, on a display unit (not shown) that the new boot program acquired from outside is abnormal. (S44) The program rewriting process is terminated. After the program rewriting process is completed, the process proceeds to step S6 in FIG.
  • the CPU 4 changes the rewrite flag of the kernel program 106 at the address M + 1 in the rewrite flag information 124 from “0” to “1” (S32).
  • the CPU 4 rewrites the kernel program 106 and the checksum value 107 with the rewritten kernel program first backup 108 and the checksum value 109 (S33).
  • the CPU 4 changes the boot history value corresponding to the kernel program 106 in the boot history information 126 to “1” (S34), and restarts the system (S35). That is, the CPU 4 performs a software reset, accesses the boot address, reads and executes the boot program 100, reads the kernel program 106, and executes the kernel program 106 startup process (step S5 in FIG. 4). Checksum calculation (step S6 in FIG. 4) is performed.
  • the CPU 4 refers to the rewrite flag and the activation history value of the kernel program 106, and when the rewrite flag is “1” and the activation history value is “1”. Advances to step S36 in FIG. If the rewrite flag is “0”, the process proceeds to step S7 in FIG. 4. If the rewrite flag is “1” and the activation history value is “2”, step S43 described later is performed. Will proceed to.
  • step S36 the CPU 4 determines whether or not there is an abnormality in the kernel program 106. Specifically, the CPU 4 determines that there is no abnormality when the kernel program 106 starts normally and the calculated checksum value matches the checksum value 107, and the kernel program 106 does not start normally. If the checksum values do not match, it is determined that there is an abnormality.
  • the CPU 4 When it is determined that there is no abnormality (S36: NO), the CPU 4 changes the boot history value corresponding to the kernel program 106 to “0” (S37), and the kernel program second backup 110 is changed to the kernel program first. The data is rewritten with the backup 108 (S38). Then, the CPU 4 returns the rewrite flag of the kernel program 106 to “0” (S39) and ends the program rewrite process. After the program rewriting process is completed, the process proceeds to step S11 in FIG.
  • the CPU 4 rewrites the kernel program 106 with the kernel program second backup 110 (S40) and changes the boot history value corresponding to the kernel program 106 to “2”. Then (S41), the system is restarted (S42). That is, the CPU 4 performs a software reset, accesses the boot address, reads and executes the boot program 100, reads the kernel program 106, and executes the kernel program 106 startup process (step S5 in FIG. 4). Then, checksum calculation (step S6 in FIG. 4) is performed.
  • the CPU 4 refers to the rewrite flag and the activation history value of the kernel program 106, and when the rewrite flag is “1” and the activation history value is “2”. Advances to step S43 in FIG.
  • step S43 the CPU 4 determines whether or not there is an abnormality in the kernel program 106, as in step S36.
  • the CPU 4 changes the rewrite flag of the application configuration file A112 at the address M + 2 in the rewrite flag information 124 from “0” to “1” (S32).
  • the CPU 4 rewrites the application configuration file A112 and the checksum value 113 with the rewritten application configuration file A first backup 116 and the checksum value 117 (S33).
  • the CPU 4 changes the activation history value corresponding to the application configuration file A112 in the activation history information 126 to “1” (S34), and restarts the application (S35). Specifically, the CPU 4 reads the application configuration file A112 again in a state where the system is activated (specifically, a state where the kernel is activated), and is parallel to the activation processing of the application configuration file A112 (step S10 in FIG. 4). Then, checksum calculation (step S11 in FIG. 4) is performed.
  • the CPU 4 refers to the rewrite flag and the activation history value of the application configuration file A112, and the rewrite flag is “1” and the activation history value is “1”.
  • step S36 of FIG. If the rewrite flag is “0”, the process proceeds to step S12 in FIG. 4. If the rewrite flag is “1” and the activation history value is “2”, step S43 described later is performed. Will proceed to.
  • step S36 the CPU 4 determines whether or not there is an abnormality in the application configuration file A112. Specifically, the CPU 4 determines that there is no abnormality when the application configuration file A112 starts normally and the calculated checksum value matches the checksum value 113, and the application configuration file A112 is normal. If it does not start or the checksum values do not match, it is determined that there is an abnormality.
  • the CPU 4 When it is determined that there is no abnormality (S36: NO), the CPU 4 changes the activation history value corresponding to the application configuration file A112 to “0” (S37), and the application configuration file A second backup 120 is changed to the application.
  • the configuration file A is rewritten with the first backup 116 (S38). Then, the CPU 4 returns the rewrite flag of the application configuration file A112 to “0” (S39), and ends the file rewrite process. After the file rewriting process is completed, it enters a standby state.
  • the CPU 4 rewrites the application configuration file A112 with the application configuration file A second backup 120 (S40), and sets the activation history value corresponding to the application configuration file A112 to “ 2 "(S41), and the application is restarted (S42). Specifically, the CPU 4 reads the application configuration file A112 again in a state where the system is activated (specifically, a state where the kernel is activated), and is parallel to the activation processing of the application configuration file A112 (step S10 in FIG. 4). Then, checksum calculation (step S11 in FIG. 4) is performed.
  • the CPU 4 refers to the rewrite flag and the activation history value of the application configuration file A112, and the rewrite flag is “1” and the activation history value is “2”. In step S43 of FIG.
  • step S43 the CPU 4 determines whether or not there is an abnormality in the application configuration file A112, as in step S36.
  • the CPU 4 If it is determined that there is no abnormality (S43: NO), the CPU 4 notifies the user that there is an abnormality in the new application configuration file acquired from the outside (S44), and ends the file rewriting process. . After the file rewriting process is completed, it enters a standby state.
  • the file rewriting process of the application configuration file B114 is the same as the file rewriting process of the application configuration file A112.
  • the information processing apparatus 1 may perform a backup confirmation process for confirming whether there is an error (validity) in the backup program or the backup file while the error detection process is in a standby state in the process of FIG. .
  • a backup confirmation process for confirming whether there is an error (validity) in the backup program or the backup file while the error detection process is in a standby state in the process of FIG. .
  • a waiting period until step S6 is started
  • Step S7 This is a waiting period until Step S11 is started
  • a waiting period until Step S10 is ended after YES is determined in Step S12.
  • FIG. 9 is a flowchart showing the backup confirmation process.
  • the backup confirmation process will be described with reference to FIG.
  • the CPU 4 compares the boot program first backup 102 and the boot program second backup 104 to determine whether or not they match (S51). If they do not match (S51: NO), the CPU 4 proceeds to step S52 and matches. If yes (S51: YES), the process proceeds to step S53.
  • step S 52 the CPU 4 calculates the checksum values of the boot program first backup 102 and the boot program second backup 104, and the calculated checksum value of the boot program first backup 102 matches the checksum value 103. It is determined whether or not the calculated checksum value of the boot program second backup 104 matches the checksum value 105, the other backup program is rewritten with the matching backup program, and the process proceeds to step S53. If the checksum values of both the boot program first backup 102 and the boot program second backup 104 do not match, for example, the boot program first backup 102 and the boot program second backup 104 are stored in the boot program 100. Or may be rewritten with a new boot program acquired from the outside.
  • step S53 the CPU 4 compares the kernel program first backup 108 and the kernel program second backup 110 to determine whether or not they match. If they do not match (S53: NO), the process proceeds to step S54. If they match (S53: YES), the process proceeds to step S55.
  • step S54 the CPU 4 calculates the checksum value of each of the kernel program first backup 108 and the kernel program second backup 110, and the calculated checksum value of the kernel program first backup 108 matches the checksum value 109. It is determined whether or not the calculated checksum value of the kernel program second backup 110 matches the checksum value 111, the other backup program is rewritten with the matching backup program, and the process proceeds to step S55. If the checksum values of both the kernel program first backup 108 and the kernel program second backup 110 do not match, for example, the kernel program first backup 108 and the kernel program second backup 110 are replaced with the kernel program 106. It may be rewritten with a new kernel program acquired from outside.
  • step S55 the CPU 4 compares the application configuration file A first backup 116 and the application configuration file A second backup 120 to determine whether or not they match, and if they do not match (S55: NO), step S55 is performed. The process proceeds to S56, and if they match (S55: YES), the process proceeds to Step S57.
  • step S56 the CPU 4 calculates the checksum values of the application configuration file A first backup 116 and the application configuration file A second backup 120, and the calculated checksum values of the application configuration file A first backup 116 are calculated. It is determined whether or not the checksum value 117 matches the checksum value of the application configuration file A second backup 120, and the checksum value 121 matches the checksum value 121. And the process proceeds to step S57. If the checksum values of both the application configuration file A first backup 116 and the application configuration file A second backup 120 do not match, for example, the application configuration file A first backup 116 and the application configuration file A first 2 The backup 120 may be rewritten with the application configuration file A112, or may be rewritten with a new application configuration file acquired from the outside.
  • step S57 the CPU 4 compares the application configuration file B first backup 118 and the application configuration file B second backup 122 to determine whether or not they match, and if they do not match (S57: NO), step S57 is performed. The process proceeds to S58, and if they match (S57: YES), the backup confirmation process is terminated and a standby state is entered.
  • step S58 the CPU 4 performs the same process as step S56 on the application configuration file B first backup 118 and the application configuration file B second backup 122, and then ends the backup confirmation process and enters a standby state. .
  • the information processing apparatus is configured to execute a startup program to perform system startup processing, and to perform error detection on the startup program in parallel with the startup processing. For this reason, according to the present embodiment, the start of the system start-up process can be accelerated compared to the configuration in which the system start-up process is started after error detection is performed on the start-up program. Thereby, for example, the timing at which the system startup screen is displayed can be accelerated.
  • the information processing apparatus restarts the system using a backup program when an error is detected in the startup program. For this reason, when there is an error in the activation program, the system can be activated by a more reliable activation program.
  • FIG. 10 is a graph showing the processing time in the configuration in which the startup process is performed after error detection.
  • the horizontal axis of FIG. 10 is time, and FIG. 10 shows processing time T1 of boot program error detection processing, processing time T2 of boot program startup processing, processing time T3 of kernel program error detection processing, The processing time T4 of the startup processing, the processing time T5 of the error detection processing of the application configuration file, and the processing time T6 of the startup processing of the application configuration file are shown.
  • FIG. 11 is a graph showing the processing time in the configuration of the present embodiment.
  • the horizontal axis of FIG. 11 is time.
  • the processing time T11 of boot program error detection processing, the processing time T12 of boot program startup processing, the processing time T13 of kernel program error detection processing, the kernel program The processing time T14 of the startup process, the processing time T15 of the error detection process of the application configuration file, and the processing time T16 of the startup process of the application configuration file are shown.
  • the information processing apparatus When an error is detected in the startup program, the information processing apparatus performs a recovery process of rewriting the startup program stored in the program area with the backup program stored in the backup area, and Restart the system programmatically. According to this aspect, it is possible to increase the number of correct startup programs by rewriting an erroneous startup program with the backup program, and to improve the reliability of startup of the system.
  • the information processing apparatus refers to the history information indicating the history of rewriting by the backup program of the startup program, and selects the backup program used for rewriting.
  • the backup program used for rewriting.
  • the restart process can be performed by a more reliable backup program.
  • the information processing apparatus refers to the rewrite order information indicating the rewrite order of the backup program, and selects a backup program to be used for rewriting based on the rewrite order information and the history information.
  • the rewrite order can be changed by changing the rewrite order information.
  • the dead block is a block in which normal read / write cannot be performed, such as a block that has exceeded a predetermined rewrite limit number or an initial defective block of a semiconductor.
  • the information processing apparatus selects a backup program that has not been used for rewriting as a backup program used for rewriting.
  • the restart process can be performed by a highly reliable backup program.
  • the information processing apparatus acquires a new startup program in a program rewriting process in which the startup program is rewritten with a new startup program, and a predetermined backup program among a plurality of backup programs stored in a plurality of backup areas If there is no abnormality when the updated startup program is executed and the updated startup program is executed, the update program stored in the program area is rewritten.
  • a backup program other than the predetermined backup program is rewritten with the predetermined backup program after rewriting or the starting program after rewriting, and if there is an abnormality, the starting program stored in the program area Rewrites the backup program other than the predetermined backup program.
  • the boot program when the boot program is rewritten with a new boot program, if there is an abnormality in the new boot program after rewriting (for example, when the boot program cannot be booted normally or an illegal bit change is confirmed) In this case, the start-up program in the program area can be returned to the state before rewriting while ensuring the backup of the new start-up program. For this reason, for example, when there is an error in the new boot program and the system cannot be booted, it is possible to prevent the system from being booted because the original boot program cannot be restored.
  • an abnormality in the new boot program after rewriting for example, when the boot program cannot be booted normally or an illegal bit change is confirmed
  • the information processing apparatus executes the application configuration file to perform application startup processing, and performs error detection on the application configuration file in parallel with the startup processing. According to this aspect, it is possible to speed up the start of the application activation process compared to a configuration in which the application activation process is started after error detection is performed on the application configuration file. Thereby, for example, the timing at which the startup screen of the application is displayed can be accelerated. In addition, when an error is detected in the application configuration file, the information processing apparatus restarts the application using the backup file. For this reason, when there is an error in the application configuration file, the application can be activated by a more reliable application configuration file.
  • the information processing apparatus performs a recovery process of rewriting the application configuration file stored in the file area with the backup file stored in the backup file area, and Restart the application using the rewritten application configuration file.
  • the correct application configuration file can be increased, and the reliability of application startup can be improved.
  • the information processing apparatus refers to the history information indicating the history of rewriting of the application configuration file by the backup file, and selects the backup file to be used for rewriting.
  • the information processing apparatus refers to the history information indicating the history of rewriting of the application configuration file by the backup file, and selects the backup file to be used for rewriting.
  • the information processing apparatus refers to the rewrite order information indicating the rewrite order of the backup file, and selects a backup file to be used for rewriting based on the rewrite order information and the history information.
  • the rewrite order can be changed by changing the rewrite order information.
  • the information processing apparatus selects a backup file that has not been used for rewriting as a backup file used for rewriting. According to this aspect, the restart process can be performed with a highly reliable backup file.
  • the information processing apparatus acquires a new application configuration file in a file rewriting process in which the application configuration file is rewritten with a new application configuration file, and among the plurality of backup files stored in the plurality of backup file areas, If there is no abnormality when the specified backup file is rewritten with a new application configuration file, the application configuration file stored in the file area is rewritten with the specified backup file, and the updated application configuration file is executed Among the multiple backup files, backup files other than the predetermined backup file are changed to the predetermined backup file after rewriting or the application after rewriting. Rewriting the configuration file, if there is an abnormality, the application configuration file stored in the file area is rewritten in the backup file other than the predetermined backup file.
  • an application configuration file when an application configuration file is rewritten with a new application configuration file, when there is an abnormality in the new application configuration file after rewriting (for example, when the application cannot be started normally or an illegal bit change occurs) When it is confirmed, the application configuration file in the file area can be returned to the state before rewriting while ensuring a backup of the new application configuration file. For this reason, for example, when there is an error in the new application configuration file and the application cannot be activated, it is possible to prevent the application from being activated due to being unable to return to the original application configuration file.
  • the file area of the nonvolatile memory stores a plurality of application configuration files so that they can be read for each application configuration file. According to this aspect, since data transfer from the nonvolatile memory to the work memory can be performed for each application configuration file, the transfer time to the work memory can be shortened.
  • the file area of the nonvolatile memory stores a plurality of application configuration files and error detection data of each of the plurality of application configuration files.
  • error detection data for example, checksum value
  • error detection data is applied to a file group in which a plurality of application configuration files are collected.
  • the information processing apparatus performs error detection on the backup program stored in the backup area, and rewrites the backup program in which the error is detected with the backup program in which no error is detected. According to this aspect, the reliability of the backup program can be improved. Thereby, for example, in step S23 in the restart process (S4, S8) in FIG. 4, it is possible to reduce the probability that it is determined that the start program cannot be rewritten by the backup program.
  • the information processing apparatus performs error detection on the backup file stored in the backup file area, and rewrites the backup file in which the error is detected with a backup file in which no error is detected. According to this aspect, the reliability of the backup file can be improved. Thereby, for example, in step S23 in the restart process (S13) of FIG. 4, the probability that it is determined that the application file cannot be rewritten by the backup file can be kept low.
  • the startup program (specifically, boot program 100) that is read and executed first requires the above recovery processing when the boot address is fixed. Can be restarted without performing recovery processing by changing the boot address to the head address of the backup program.
  • one or more application configuration files may be used, and actually more The application configuration file is often required.
  • the error detection unit 12 includes the following (a) to (d): It is also possible to realize in such a manner.
  • the error detection unit 12 is realized by the CPU 4 executing an error detection program different from the startup program.
  • the error detection unit 12 is realized by a CPU different from the CPU 4 executing an error detection process described in an error detection program different from the activation program or the activation program.
  • the CPU 4 includes a plurality of processor cores, and the error detection unit 12 has a processor core that is different from the processor core that realizes the processing execution unit 11 among the plurality of processor cores. This is realized by executing error detection processing described in the error detection program.
  • the error detection unit 12 is realized by a hardware circuit for error detection.
  • the startup process and the error detection process can actually be executed in parallel.
  • the startup time can be shortened compared to a configuration in which the startup processing of the system is started after error detection is performed on the startup program.
  • FIG. 12 is a graph showing a processing time in a configuration in which the startup process and the error detection process are executed in parallel by different processing devices.
  • the horizontal axis of FIG. 12 is time.
  • the processing time T21 for boot program error detection processing, the processing time T22 for boot program startup processing, the processing time T23 for kernel program error detection processing, The processing time T24 of the startup processing, the processing time T25 of the error detection processing of the application configuration file, and the processing time T26 of the startup processing of the application configuration file are shown.
  • the boot program, the kernel program, and the application configuration are compared with the configuration in which the startup process is performed after error detection. It can be seen that the end time of each activation process of the file is earlier.
  • restarting unit 13 and the rewrite control unit 14 may be realized in the modes (a) to (d) as in the error detection unit 12.
  • the history information indicating the history of rewriting of the program by the backup program is exemplified as the activation history value indicating the program rewriting source.
  • the history information is not limited to this, for example, a plurality of backup programs. Of these, it may be information indicating a backup program used for program rewriting in the past.
  • the history information may be prepared for each backup program. For example, for each backup program, a history flag indicating whether or not the backup program has been used for program rewriting in the past may be recorded in the nonvolatile memory 2.
  • the history flag is, for example, “0” when not used for rewriting and “1” when used for rewriting. The same applies to the application configuration file.
  • the configuration in which the backup program that has not been used for rewriting is selected based on the history information is exemplified.
  • a configuration in which a backup program other than this is selected may be used.
  • the restart unit 13 may be configured to select a backup program that has not been read for a long period of time with reference to the history information. According to this configuration, it is possible to prevent charge loss in the nonvolatile memory.
  • Examples of the backup program that has not been read for a long period include, for example, a backup program that has the longest period of no read among a plurality of backup programs and a backup program that has not been read for a predetermined period or longer.
  • the history information is, for example, information indicating a period during which each backup program is not read.
  • SYMBOLS 1 Information processing apparatus 2 Non-volatile memory, 3 Work memory, 4 CPU, 5 Communication part, 6 External interface, 10 Parallel processing part, 11 Process execution part, 12 Error detection part, 13 Restart part, 14 Rewrite control part, 100 boot program, 101, 103, 105, 107, 109, 111, 113, 115, 117, 119, 121, 123 checksum value, 102 boot program first backup, 104 boot program second backup, 106 kernel program, 108 Kernel program first backup, 110 Kernel program second backup, 112 Application configuration file A, 114 Application configuration file B, 116 Publication configuration file A first backup, 118 application configuration file B first backup, 120 second application configuration file A backup 122 application configuration file B second backup, 124 rewrites flag information, 126 boot history information, 128 replacement order information.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

 本発明は、システムの起動処理の開始を早くするとともに、起動プログラムに誤りが検出された場合に信頼性の高いプログラムで再起動を行う。情報処理装置(1)は、システムを起動するためのプログラムを記憶したプログラム領域と、複数のバックアッププログラムをそれぞれ記憶した複数のバックアップ領域とを含む不揮発性メモリと、プログラムを実行してシステムの起動処理を行う処理実行部(11)と、起動処理と並行してプログラムに対して誤り検出を行う誤り検出部(12)と、誤りが検出された場合にプログラムをバックアッププログラムで書き換える復旧処理を行い、書き換え後のプログラムによりシステムの再起動を行う再起動部(13)とを備える。再起動部は、復旧処理を行う際、プログラムの書き換えの履歴を示す履歴情報を参照し、書き換えに用いるバックアッププログラムを選択し、プログラムを選択されたバックアッププログラムで書き換える。

Description

情報処理装置、情報処理方法、およびコンピュータプログラム
 本発明は、情報処理装置、情報処理方法、およびコンピュータプログラムに関する。
 近年、不揮発性メモリであるNAND型フラッシュメモリが広く普及している。NAND型フラッシュメモリは、NOR型フラッシュメモリに比べて大容量化が進んでおりビット単価が安いといったメリットがある。一方で、記憶データの読み出しを繰り返すと電荷が抜けてしまうことによりビットエラーの発生する可能性があり、データの信頼性におけるデメリットがある。このため、NAND型フラッシュメモリにシステムを起動するためのプログラムを記憶させた場合、ビットエラーにより、システムが起動できない場合や、起動した後にシステムがハングアップしてしまう場合がある。
 これに対し、特許文献1には、システム用不揮発性メモリから第1のブートプログラムを読み出し、当該第1のブートプログラムに対して誤り検出を行い、読み出した第1のブートプログラムが不正に変化していると判定したとき、バックアップ用不揮発性メモリから第2のブートプログラムを読み出し、当該第2のブートプログラムに対して誤り検出を行い、読み出した第2のブートプログラムが不正に変化していると判定したとき、エラーを出力する制御装置が記載されている。この制御装置では、ブートプログラムに対する誤り検出の結果、ブートプログラムが不正に変化していないと判定されると、そのブートプログラムを用いてブート処理が行われる。
特開2010-26650号公報
 特許文献1に記載された制御装置では、システム用不揮発性メモリから読み出されたブートプログラムに対して誤り検出が行われ、誤り検出の結果、ブートプログラムが不正に変化していないと判定されてから、ブートプログラムを用いたブート処理が開始される。このため、ブート処理の開始が遅くなるという問題がある。
 本発明は、システムの起動処理の開始を早くすることができるとともに、起動用のプログラムに誤りが検出された場合に信頼性の高いプログラムで再起動を行うことができる情報処理装置、情報処理方法、およびコンピュータプログラムを提供することを目的とする。
 本発明に係る情報処理装置は、
 システムを起動するためのプログラムを記憶したプログラム領域と、前記プログラムと同一内容の複数のバックアッププログラムをそれぞれ記憶した複数のバックアップ領域とを含む不揮発性メモリと、
 前記プログラム領域に記憶されているプログラムを実行して前記システムの起動処理を行う処理実行手段と、
 前記処理実行手段による起動処理と並行して、前記プログラム領域に記憶されているプログラムに対して誤り検出を行う誤り検出手段と、
 前記誤り検出手段により前記プログラムに誤りが検出された場合に、前記プログラム領域に記憶されているプログラムを、前記バックアップ領域に記憶されているバックアッププログラムで書き換える復旧処理を行い、前記プログラム領域に記憶されている前記書き換え後のプログラムにより前記システムの再起動を行う再起動手段とを備え、
 前記再起動手段は、前記復旧処理を行う際、前記プログラムの前記バックアッププログラムによる書き換えの履歴を示す履歴情報を参照し、前記履歴情報に基づいて、前記複数のバックアッププログラムの中から前記書き換えに用いるバックアッププログラムを選択し、前記プログラムを前記選択されたバックアッププログラムで書き換えることを特徴とする。
 また、本発明に係る情報処理方法は、
 システムを起動するためのプログラムを記憶したプログラム領域と、前記プログラムと同一内容の複数のバックアッププログラムをそれぞれ記憶した複数のバックアップ領域とを含む不揮発性メモリのうち、前記プログラム領域に記憶されているプログラムを実行して前記システムの起動処理を行う処理実行工程と、
 前記処理実行工程による起動処理と並行して、前記プログラム領域に記憶されているプログラムに対して誤り検出を行う誤り検出工程と、
 前記誤り検出工程により前記プログラムに誤りが検出された場合に、前記プログラム領域に記憶されているプログラムを、前記バックアップ領域に記憶されているバックアッププログラムで書き換える復旧処理を行い、前記プログラム領域に記憶されている前記書き換え後のプログラムにより前記システムの再起動を行う再起動工程とを含み、
 前記再起動工程では、前記復旧処理を行う際、前記プログラムの前記バックアッププログラムによる書き換えの履歴を示す履歴情報を参照し、前記履歴情報に基づいて、前記複数のバックアッププログラムの中から前記書き換えに用いるバックアッププログラムを選択し、前記プログラムを前記選択されたバックアッププログラムで書き換えることを特徴とする。
 また、本発明に係るコンピュータプログラムは、
 システムを起動するためのプログラムを記憶したプログラム領域と、前記プログラムと同一内容の複数のバックアッププログラムをそれぞれ記憶した複数のバックアップ領域とを含む不揮発性メモリのうち、前記プログラム領域に記憶されているプログラムを実行して前記システムの起動処理を行う処理実行工程と、
 前記処理実行工程による起動処理と並行して、前記プログラム領域に記憶されているプログラムに対して誤り検出を行う誤り検出工程と、
 前記誤り検出工程により前記プログラムに誤りが検出された場合に、前記プログラム領域に記憶されているプログラムを、前記バックアップ領域に記憶されているバックアッププログラムで書き換える復旧処理を行い、前記プログラム領域に記憶されている前記書き換え後のプログラムにより前記システムの再起動を行う再起動工程とをコンピュータに実行させ、
 前記再起動工程では、前記復旧処理を行う際、前記プログラムの前記バックアッププログラムによる書き換えの履歴を示す履歴情報を参照し、前記履歴情報に基づいて、前記複数のバックアッププログラムの中から前記書き換えに用いるバックアッププログラムを選択し、前記プログラムを前記選択されたバックアッププログラムで書き換えることを特徴とする。
 本発明によれば、システムの起動処理の開始を早くすることができるとともに、起動用のプログラムに誤りが検出された場合に信頼性の高いプログラムで再起動を行うことができる。
実施の形態における情報処理装置の構成を概略的に示すブロック図である。 不揮発性メモリの記憶フォーマットを示す概略図である。 実施の形態における情報処理装置の機能構成を示すブロック図である。 実施の形態における情報処理装置の動作を示すフローチャートである。 再起動処理を示すフローチャートである。 起動履歴情報のフォーマットを示す概略図である。 プログラム(またはファイル)書き換え処理を示すフローチャートである。 書き換えフラグ情報のフォーマットを示す概略図である。 バックアップ確認処理を示すフローチャートである。 誤り検出後に起動処理を行う構成における処理時間を示す概略図である。 実施の形態の構成における処理時間を示す概略図である。 起動処理と誤り検出処理とを別々の処理装置で並行して実行する構成における処理時間を示す概略図である。
 以下、本発明の実施の形態を図面に従って説明する。
 [情報処理装置の構成]
 図1は、本実施の形態に係る情報処理装置1の構成を概略的に示すブロック図である。図1において、情報処理装置1は、不揮発性メモリ2、ワークメモリ3、中央処理装置(CPU:Central Processing Unit)4、通信部5、および外部インタフェース(外部IF)6を備える。
 不揮発性メモリ2は、各種のプログラムやデータを記憶する読み書き可能なメモリであり、例えばNAND型フラッシュメモリである。不揮発性メモリ2は、システムを起動するためのプログラム(以下、「起動プログラム」と称す)を記憶したプログラム領域と、上記起動プログラムと同一内容のバックアッププログラム(複製プログラムともいう)を記憶したバックアップ領域とを含む。上記システムは、具体的にはコンピュータシステムであり、より具体的には情報処理装置1の(CPU4を中心とする)コンピュータシステムである。本例では、不揮発性メモリ2は、さらに、アプリケーションを起動するためのアプリケーション構成ファイルを記憶したファイル領域と、上記アプリケーション構成ファイルと同一内容のバックアップファイル(複製ファイルともいう)を記憶したバックアップファイル領域とをさらに含む。また、バックアップ領域およびバックアップファイル領域は、それぞれ複数設けられる。さらに、不揮発性メモリ2には、起動プログラム、バックアッププログラム、アプリケーション構成ファイル、およびバックアップファイルの各々について、当該プログラムまたはファイルの誤りを検出するための誤り検出用データが記憶される。
 ワークメモリ3は、CPU4の作業領域として使用されるメモリであり、不揮発性メモリ2から読み出されたプログラムやデータを記憶する。
 CPU4は、不揮発性メモリ2に記憶されている起動プログラム等のプログラムを実行する。具体的には、CPU4は、不揮発性メモリ2にブロックごとに記憶されているプログラムやデータのうち必要となるブロックをワークメモリ3に読み出し(またはコピーし)、ワークメモリ3にアクセスし、ワークメモリ3に読み出されたプログラムに記述されている処理を実行する。
 通信部5は、CPU4が情報処理装置1に接続された外部の機器(外部接続機器)と外部インタフェース6を介して通信を行う際に、送受信データを外部接続機器との通信プロトコルに従ってデータ変換する。
 外部インタフェース6は、情報処理装置1と外部接続機器とを接続するためのインタフェースであり、例えばUSBインタフェースである。
 図2は、不揮発性メモリ2の記憶フォーマットを示す概略図である。図2の例では、不揮発性メモリ2には、起動プログラムとして、情報処理装置1のシステムリセット後にブート処理を行うためのブートプログラム100と、オペレーティングシステム(OS:Operating System)を起動するためのカーネルプログラム106とが記憶されている。また、不揮発性メモリ2には、アプリケーション構成ファイルとして、カーネル上で動作するアプリケーションを起動するために必要なアプリケーション構成ファイルA112およびアプリケーション構成ファイルB114が記憶されている。
 また、不揮発性メモリ2には、バックアッププログラムとして、ブートプログラム100と同じ内容であるブートプログラム第1バックアップ102およびブートプログラム第2バックアップ104と、カーネルプログラム106と同じ内容であるカーネルプログラム第1バックアップ108およびカーネルプログラム第2バックアップ110とが記憶されている。また、不揮発性メモリ2には、バックアップファイルとして、アプリケーション構成ファイルA112と同じ内容であるアプリケーション構成ファイルA第1バックアップ116およびアプリケーション構成ファイルA第2バックアップ120と、アプリケーション構成ファイルB114と同じ内容であるアプリケーション構成ファイルB第1バックアップ118およびアプリケーション構成ファイルB第2バックアップ122とが記憶されている。
 さらに、不揮発性メモリ2に記憶されている上記のブートプログラム100、ブートプログラム第1バックアップ102、ブートプログラム第2バックアップ104、カーネルプログラム106、カーネルプログラム第1バックアップ108、カーネルプログラム第2バックアップ110、アプリケーション構成ファイルA112、アプリケーション構成ファイルB114、アプリケーション構成ファイルA第1バックアップ116、アプリケーション構成ファイルB第1バックアップ118、アプリケーション構成ファイルA第2バックアップ120、およびアプリケーション構成ファイルB第2バックアップ122には、それぞれ、対応する誤り検出用データとして、チェックサム値101、103、105、107、109、111、113、115、117、119、121、123が付加されている。
 図2に示されるように、ブートプログラム100とそのチェックサム値101は同一ブロックB1に記憶されており、ブートプログラム第1バックアップ102とそのチェックサム値103は同一ブロックB2に記憶されており、ブートプログラム第2バックアップ104とそのチェックサム値105は同一ブロックB3に記憶されている。ここで、ブロックB1はプログラム領域(純正ブロックともいう)であり、ブロックB2およびB3はバックアップ領域(複製ブロックともいう)である。同様に、カーネルプログラム106とそのチェックサム値107は同一ブロックB4に記憶されており、カーネルプログラム第1バックアップ108とそのチェックサム値109は同一ブロックB5に記憶されており、カーネルプログラム第2バックアップ110とそのチェックサム値111は同一ブロックB6に記憶されている。ブロックB4はプログラム領域(純正ブロックともいう)であり、ブロックB5およびB6はバックアップ領域(複製ブロックともいう)である。アプリケーション構成ファイルについては、アプリケーション構成ファイルA112とそのチェックサム値113およびアプリケーション構成ファイルB114とそのチェックサム値115は同一ブロックB7に記憶されている。また、アプリケーション構成ファイルA第1バックアップ116とそのチェックサム値117およびアプリケーション構成ファイルB第1バックアップ118とそのチェックサム値119は同一ブロックB8に記憶されている。さらに、アプリケーション構成ファイルA第2バックアップ120とそのチェックサム値121およびアプリケーション構成ファイルB第2バックアップ122とそのチェックサム値123は同一ブロックB9に記憶されている。ブロックB7はファイル領域(純正ブロックともいう)であり、ブロックB8およびB9はバックアップファイル領域(複製ブロックともいう)である。
 これらに加え、不揮発性メモリ2には、後述のプログラム書き換え処理およびファイル書き換え処理の際に使用される書き換えフラグ情報124と、システム起動の履歴情報を記録する起動履歴情報126とが記憶されている。さらに、不揮発性メモリ2には、バックアッププログラムの書き換えの順番を示す書き換え順番情報128が記憶されていてもよい。
 なお、図2に示される不揮発性メモリ2の記憶フォーマットは一例であり、これに限るものではない。
 ここで、ブートプログラム100は、CPU4に、不揮発性メモリ2に記憶されているブートプログラム100自身とそのチェックサム値101をワークメモリ3に転送させ、情報処理装置1の初期化処理を実行させ、初期化処理の後、カーネルプログラム106に読み出し先をジャンプさせるようにプログラムされている。このように、ブートプログラム100には、起動処理としてのブート処理が記述されている。また、ブートプログラム100は、CPU4に、上記のブート処理に並行して、ワークメモリ3に転送されたブートプログラム100についてチェックサム演算を行い、演算の結果とチェックサム値101とを比較してブートプログラム100の誤りの有無(または正当性)を確認する誤り検出処理を実行させるようにプログラムされている。すなわち、ブートプログラム100には、誤り検出処理が記述されており、さらに、起動処理と誤り検出処理とを並行して行うための並列制御が記述されている。
 カーネルプログラム106は、CPU4に、不揮発性メモリ2に記憶されているカーネルプログラム106自身とそのチェックサム値107をワークメモリ3に転送させ、通信部5を含めた周辺機器の有効化などのシステム設定を行うシステム制御処理を実行させるようにプログラムされている。このように、カーネルプログラム106には、OSを起動するための起動処理が記述されている。また、カーネルプログラム106は、CPU4に、上記のシステム制御処理に並行して、ワークメモリ3に転送されたカーネルプログラム106についてチェックサム演算を行い、演算の結果とワークメモリ3上のチェックサム値107とを比較してカーネルプログラム106の誤りの有無(または正当性)を確認する誤り検出処理を実行させるようにプログラムされている。すなわち、カーネルプログラム106には、誤り検出処理が記述されており、さらに、起動処理と誤り検出処理とを並行して行うための並列制御が記述されている。
 アプリケーション構成ファイルA112は、カーネルプログラム106が起動した後に実行されるものであり、CPU4に、不揮発性メモリ2に記憶されているアプリケーション構成ファイルA112自身とそのチェックサム値113をワークメモリ3に転送させ、アプリケーションを起動するための所定の処理を実行させるようにプログラムされている。すなわち、アプリケーション構成ファイルA112には、アプリケーションを起動するための起動処理が記述されている。また、アプリケーション構成ファイルA112は、CPU4に、上記の処理に並行して、ワークメモリ3に転送されたアプリケーション構成ファイルA112についてチェックサム演算を行い、演算の結果とワークメモリ3上のチェックサム値113とを比較してアプリケーション構成ファイルA112の誤りの有無(または正当性)を確認する誤り検出処理を実行させるようにプログラムされている。すなわち、アプリケーション構成ファイルA112には、誤り検出処理が記述されており、さらに、起動処理と誤り検出処理とを並行して行うための並列制御が記述されている。
 アプリケーション構成ファイルB114は、上記アプリケーション構成ファイルA112と同様のものであり、アプリケーション構成ファイルB114にも、起動処理、誤り検出処理、および並列制御が記述されている。
 さらに、ブートプログラム100、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114のそれぞれには、再起動処理および書き換え制御が記述されている。
 図3は、本実施の形態に係る情報処理装置1の機能構成を示すブロック図である。図3において、情報処理装置1は、並列処理部10、処理実行部11、誤り検出部12、再起動部13、および書き換え制御部14を有する。
 具体的には、並列処理部10、処理実行部11、誤り検出部12、再起動部13、および書き換え制御部14は、それぞれ、CPU4が、ブートプログラム100、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114に記述されている、並列制御、起動処理、誤り検出処理、再起動処理、および書き換え制御を実行することにより実現される。
 並列処理部10は、起動処理および誤り検出処理を含む複数の処理を時分割により並行処理するための制御を行う。具体的には、並列処理部10は、CPU4内の処理を並行して行うために、CPU4の処理時間を短い単位に分割し、分割された単位時間を順番に各処理に割り当てることによって、複数の処理が並行して行われるようにCPU4の処理を制御する。
 処理実行部11は、不揮発性メモリ2のプログラム領域に記憶されている起動プログラムを実行してシステムを起動するための起動処理を行う。具体的には、処理実行部11は、システムリセット後に呼び出されるブートプログラム100に記述された起動処理を実行し、ブートプログラム100により呼び出されるカーネルプログラム106に記述された起動処理を実行し、アプリケーション構成ファイルA112およびアプリケーション構成ファイルB114に記述された起動処理を実行し、アプリケーションを起動するまでの処理を実行する。さらに、処理実行部11は、アプリケーション上の演算処理などを行ってもよい。
 誤り検出部12は、処理実行部11による起動処理と並行して、プログラム領域に記憶されている起動プログラムやアプリケーション構成ファイルに対して誤り検出を行い、起動プログラムやアプリケーション構成ファイルの正当性を確認する。具体的には、誤り検出部12は、ブートプログラム100、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114に対して、それぞれの誤り検出用データを用いて誤り検出を行う。より具体的には、誤り検出部12は、不揮発性メモリ2に記憶されている、ブートプログラム100、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114に対してチェックサム値の計算を行い、計算されたチェックサム値を予め不揮発性メモリ2に記憶されている対応するチェックサム値と比較し、起動プログラムやファイルが不当に変化していないかどうかを検出し、検出結果を再起動部13に通知する。
 再起動部13は、誤り検出部12により起動プログラム(ブートプログラム100またはカーネルプログラム106)に誤りが検出された場合に、システムが起動しないことやフリーズしてしまうことを避けるために、バックアップ領域に記憶されているバックアッププログラム(ブートプログラム第1バックアップ102、ブートプログラム第2バックアップ104、カーネルプログラム第1バックアップ108、またはカーネルプログラム第2バックアップ110)を用いてシステムの再起動を行う。本例では、再起動部13は、誤り検出部12により起動プログラムに誤りが検出された場合に、プログラム領域に記憶されている起動プログラムを、バックアップ領域に記憶されているバックアッププログラムで書き換える復旧処理を行い、当該書き換え後の起動プログラムによりシステムの再起動を行う。また、再起動部13は、復旧処理を行う際、起動プログラムのバックアッププログラムによる書き換えの履歴を示す履歴情報(または、起動プログラムをバックアッププログラムによって書き換えた過去の履歴についての履歴情報)を参照し、当該履歴情報に基づいて、複数のバックアッププログラムの中から書き換えに用いるバックアッププログラムを選択し、プログラム領域に記憶されている起動プログラムを上記選択されたバックアッププログラムで書き換える。上記履歴情報は、不揮発性メモリ2内の起動履歴情報126に含まれる。再起動部13は、さらにバックアッププログラムの書き換えの順番を示す書き換え順番情報を参照し、書き換え順番情報と履歴情報とに基づいて、複数のバックアッププログラムの中から書き換えに用いるバックアッププログラムを選択し、プログラム領域に記憶されている起動プログラムを上記選択されたバックアッププログラムで書き換えてもよい。上記書き換え順番情報は、複数のバックアッププログラムを書き換えに用いる順番を示す情報であり、不揮発性メモリ2内の書き換え順番情報128に含まれる。再起動部13は、復旧処理を行う際、書き換え順番情報により示される順番でバックアッププログラムが用いられるように、履歴情報に基づいて、当該復旧処理で書き換えに用いるバックアッププログラムを選択する。一つの態様では、復旧処理を行う場合、再起動部13は、履歴情報(または履歴情報および書き換え順番情報)に基づいて、複数のバックアップ領域に記憶されている複数のバックアッププログラムのうち、まだ書き換えに用いられていないバックアッププログラムを選択し、プログラム領域に記憶されている起動プログラムを上記選択されたバックアッププログラムで書き換える。一方、誤り検出部12により起動プログラムに誤りが検出された場合において、まだ書き換えに用いられていないバックアッププログラムが複数のバックアップ領域に存在しないときには、再起動部13は、書き換え制御部14に対して後述のプログラム書き換え処理を実行させる。
 また、再起動部13は、誤り検出部12によりアプリケーション構成ファイル(アプリケーション構成ファイルA112またはB114)に誤りが検出された場合に、バックアップファイル領域に記憶されているバックアップファイル(アプリケーション構成ファイルA第1バックアップ116、アプリケーション構成ファイルA第2バックアップ120、アプリケーション構成ファイルB第1バックアップ118、またはアプリケーション構成ファイルB第2バックアップ122)を用いてアプリケーションの再起動を行う。本例では、再起動部13は、誤り検出部12によりアプリケーション構成ファイルに誤りが検出された場合に、ファイル領域に記憶されているアプリケーション構成ファイルを、バックアップファイル領域に記憶されているバックアップファイルに書き換える復旧処理を行い、当該書き換え後のアプリケーション構成ファイルによりアプリケーションの再起動を行う。また、再起動部13は、復旧処理を行う際、アプリケーション構成ファイルのバックアップファイルによる書き換えの履歴を示す履歴情報(または、アプリケーション構成ファイルをバックアップファイルによって書き換えた過去の履歴についての履歴情報)を参照し、当該履歴情報に基づいて、複数のバックアップファイルの中から書き換えに用いるバックアップファイルを選択し、ファイル領域に記憶されているアプリケーション構成ファイルを上記選択されたバックアップファイルで書き換える。上記履歴情報は、不揮発性メモリ2内の起動履歴情報126に含まれる。再起動部13は、さらにバックアップファイルの書き換えの順番を示す書き換え順番情報を参照し、書き換え順番情報と履歴情報とに基づいて、複数のバックアップファイルの中から書き換えに用いるバックアップファイルを選択し、ファイル領域に記憶されているアプリケーション構成ファイルを上記選択されたバックアップファイルで書き換えてもよい。上記書き換え順番情報は、複数のバックアップファイルを書き換えに用いる順番を示す情報であり、不揮発性メモリ2内の書き換え順番情報128に含まれる。再起動部13は、復旧処理を行う際、書き換え順番情報により示される順番でバックアップファイルが用いられるように、履歴情報に基づいて、当該復旧処理で書き換えに用いるバックアップファイルを選択する。一つの態様では、復旧処理を行う場合、再起動部13は、履歴情報(または履歴情報および書き換え順番情報)に基づいて、複数のバックアップファイル領域に記憶されている複数のバックアップファイルのうち、まだ書き換えに用いられていないバックアップファイルを選択し、ファイル領域に記憶されているアプリケーション構成ファイルを上記選択されたバックアップファイルで書き換える。一方、誤り検出部12によりアプリケーション構成ファイルに誤りが検出された場合において、まだ書き換えに用いられていないバックアップファイルが複数のバックアップファイル領域に存在しないときには、再起動部13は、書き換え制御部14に対して後述のファイル書き換え処理を実行させる。
 なお、再起動部13は、復旧処理において起動プログラムをバックアッププログラムで書き換える場合、例えば、バックアップ領域に記憶されているバックアッププログラムを新たな起動プログラムとしてプログラム領域にコピーする。また例えば、再起動部13は、プログラム領域に記憶されている起動プログラムをバックアップ領域に記憶されているバックアッププログラムで上書きする。アプリケーション構成ファイルをバックアップファイルで書き換える場合についても同様である。
 書き換え制御部14は、外部から新たな起動プログラムを取得し、当該新たな起動プログラムで起動プログラムを書き換えるプログラム書き換え処理を行う。このプログラム書き換え処理は、起動プログラム(ブートプログラム100またはカーネルプログラム106)に誤りが検出された場合において、まだ書き換えに用いられていないバックアッププログラムが複数のバックアップ領域に存在しないときに実行される。また、プログラム書き換え処理は、起動プログラム(ブートプログラム100またはカーネルプログラム106)をアップデート(更新)する場合にも実行される。本例では、プログラム書き換え処理において、書き換え制御部14は、情報処理装置1の外部から書き換え用の新たな起動プログラムを取得し、複数のバックアップ領域に記憶されている複数のバックアッププログラムのうち、所定のバックアッププログラムを上記新たな起動プログラムで書き換え、プログラム領域に記憶されている起動プログラムを上記書き換え後の所定のバックアッププログラムで書き換える。そして、書き換え制御部14は、当該書き換え後の起動プログラムが実行された際に、異常がない場合は、複数のバックアッププログラムのうち、上記所定のバックアッププログラム以外のすべてのバックアッププログラムを、書き換え後の所定のバックアッププログラムまたは書き換え後の起動プログラムで書き換え、異常があった場合は、プログラム領域に記憶されている起動プログラムを、所定のバックアッププログラム以外のバックアッププログラムで書き換える。
 また、書き換え制御部14は、外部から新たなアプリケーション構成ファイルを取得し、当該新たなアプリケーション構成ファイルでアプリケーション構成ファイルを書き換えるファイル書き換え処理を行う。このファイル書き換え処理は、アプリケーション構成ファイル(アプリケーション構成ファイルA112またはB114)に誤りが検出された場合において、まだ書き換えに用いられていないバックアップファイルが複数のバックアップファイル領域に存在しないときに実行される。また、ファイル書き換え処理は、アプリケーション構成ファイル(アプリケーション構成ファイルA112またはB114)をアップデート(更新)する場合にも実行される。本例では、ファイル書き換え処理において、書き換え制御部14は、情報処理装置1の外部から書き換え用の新たなアプリケーション構成ファイルを取得し、複数のバックアップファイル領域に記憶されている複数のバックアップファイルのうち、所定のバックアップファイルを上記新たなアプリケーション構成ファイルで書き換え、ファイル領域に記憶されているアプリケーション構成ファイルを上記書き換え後の所定のバックアップファイルで書き換える。そして、書き換え制御部14は、当該書き換え後のアプリケーション構成ファイルが実行された際に、異常がない場合は、複数のバックアップファイルのうち、所定のバックアップファイル以外のすべてのバックアップファイルを、書き換え後の所定のバックアップファイルまたは書き換え後のアプリケーション構成ファイルで書き換え、異常があった場合は、ファイル領域に記憶されているアプリケーション構成ファイルを、所定のバックアップファイル以外のバックアップファイルで書き換える。
 なお、書き換え制御部14は、バックアッププログラムを新たな起動プログラムで書き換える場合、例えば、新たな起動プログラムを新たなバックアッププログラムとしてバックアップ領域にコピーする。また例えば、書き換え制御部14は、バックアップ領域に記憶されているバックアッププログラムを新たな起動プログラムで上書きする。起動プログラムをバックアッププログラムで書き換える場合や、バックアップファイルを新たなアプリケーション構成ファイルで書き換える場合などについても同様である。
 また、プログラム書き換え処理およびファイル書き換え処理において、書き換え制御部14により外部から取得される新たな起動プログラムおよびアプリケーション構成ファイルは、現在不揮発性メモリ2に記憶されている起動プログラム等と同じものであってもよいし、現在記憶されている起動プログラム等より新しいバージョンのものであってもよい。
 [情報処理装置の動作]
 図4は、本実施の形態に係る情報処理装置1の動作を示すフローチャートである。以下、図4を参照して、情報処理装置1の動作について説明する。
 システムリセットが解除されると、CPU4は、不揮発性メモリ2内のブートプログラム100が記憶されている所定のアドレス(以下、「ブートアドレス」と称す)へとアクセスし、ワークメモリ3へブートプログラム100とそのチェックサム値101を転送する。そして、CPU4は、ワークメモリ3からブートプログラム100を読み出し、ブートプログラム100に記述されている初期化処理を含む起動処理を実行する(S1)。なお、本例では、ブートアドレスは固定のアドレスである。
 次に、CPU4は、ブートプログラム100に記述されている命令に従い、カーネルプログラム106が記憶されているアドレスへジャンプし、カーネルプログラム106とそのチェックサム値107をワークメモリ3へ転送する。そして、CPU4は、ワークメモリ3からカーネルプログラム106を読み出し、カーネルプログラム106に記述されている起動処理を実行する(S5)。
 次に、カーネルプログラム106の起動が完了すると、CPU4は、不揮発性メモリ2からカーネル内で予め指定されているアプリケーションを起動するためのアプリケーション構成ファイルA112およびアプリケーション構成ファイルB114と、それぞれのチェックサム値113および115とをワークメモリ3へ転送する。そして、CPU4は、ワークメモリ3からアプリケーション構成ファイルA112およびアプリケーション構成ファイルB114を読み出し、アプリケーション構成ファイルA112およびアプリケーション構成ファイルB114に記述されている起動処理を実行することでアプリケーションを起動し、ユーザへ所望のアプリケーションを提供する(S10)。なお、アプリケーション構成ファイルA112およびアプリケーション構成ファイルB114は、1つずつ順番に実行されてもよいし、互いに並行して実行されてもよい。
 一方で、CPU4は、ブートプログラム100に記述されている並列制御を実行することにより、ステップS1のブートプログラム100の起動処理に並行して、ブートプログラム100に記述されている誤り検出処理を実行し、ブートプログラム100のチェックサム値を計算する(S2)。そして、CPU4は、計算されたチェックサム値とブートプログラム100のチェックサム値101とが一致するか否かを判断し(S3)、両者が一致しない場合は(S3:NO)、ブートプログラム100に不正なビット変化があると判定し、再起動処理(S4)へと進む。この再起動処理では、CPU4は、ブートプログラム100をブートプログラム第1バックアップ102またはブートプログラム第2バックアップ104で書き換える復旧処理を行い、書き換え後のブートプログラム100によりシステムの再起動を行う。再起動処理(S4)については後に詳しく説明する。
 一方、計算されたブートプログラム100のチェックサム値がチェックサム値101と一致している場合(S3:YES)、CPU4は、ブートプログラム100に不正なビット変化がないと判定し、ブートプログラム100に続いて読み出されるカーネルプログラム106のチェックサム値を計算する(S6)。そして、CPU4は、計算されたチェックサム値とカーネルプログラム106のチェックサム値107とが一致するか否かを判断し(S7)、両者が一致しない場合は(S7:NO)、カーネルプログラム106に不正なビット変化があると判定し、再起動処理(S8)へと進む。この再起動処理では、CPU4は、カーネルプログラム106をカーネルプログラム第1バックアップ108またはカーネルプログラム第2バックアップ110で書き換える復旧処理を行い、書き換え後のカーネルプログラム106によりシステムの再起動を行う。再起動処理(S8)については後に詳しく説明する。
 一方、計算されたカーネルプログラム106のチェックサム値がチェックサム値107と一致している場合(S7:YES)、CPU4は、カーネルプログラム106に不正なビット変化がないと判定し、カーネルプログラム106に続いて読み出されるアプリケーション構成ファイルA112のチェックサム値を計算する(S11)。そして、CPU4は、計算されたチェックサム値とアプリケーション構成ファイルA112のチェックサム値113とが一致するか否かを判断し(S12)、両者が一致しない場合は(S12:NO)、アプリケーション構成ファイルA112に不正なビット変化があると判定し、再起動処理(S13)へと進む。この再起動処理では、CPU4は、アプリケーション構成ファイルA112をアプリケーション構成ファイルA第1バックアップ116またはアプリケーション構成ファイル第2バックアップ120で書き換える復旧処理を行い、書き換え後のアプリケーション構成ファイルA112によりアプリケーションの再起動を行う。再起動処理(S13)については後に詳しく説明する。
 一方、計算されたアプリケーション構成ファイルA112のチェックサム値がチェックサム値113と一致している場合は(S12:YES)、CPU4は、アプリケーション構成ファイルA112に不正なビット変化がないと判定し、他に読み出されるアプリケーション構成ファイルがある場合は、読み出されたアプリケーション構成ファイルについて上記アプリケーション構成ファイルA112に対する処理と同様の処理を行い(S11,S12)、他に読み出されるアプリケーション構成ファイルが無い場合は、待機状態となる。例えば、アプリケーション構成ファイルA112に続いてアプリケーション構成ファイルB114が読み出される場合、CPU4は、アプリケーション構成ファイルA112に対する処理に続いて、アプリケーション構成ファイルB114に対する処理を行い(S11,S12)、待機状態となる。ただし、アプリケーション構成ファイルB114がアプリケーション構成ファイルA112と並行して実行される場合、CPU4は、アプリケーション構成ファイルA112に対する処理と並行して、アプリケーション構成ファイルB114に対する処理を行ってもよい。
 なお、図4のステップS1、S5、およびS10は、それぞれ、CPU4が、ブートプログラム、カーネルプログラム、およびアプリケーション構成ファイルに記述されている起動処理を実行することにより実現される。ステップS2とS3、ステップS6とS7、およびステップS11とS12は、それぞれ、CPU4が、ブートプログラム、カーネルプログラム、およびアプリケーション構成ファイルに記述されている誤り検出処理を実行することにより実現される。ステップS4、ステップS8、およびステップS13は、それぞれ、CPU4が、ブートプログラム、カーネルプログラム、およびアプリケーション構成ファイルに記述されている再起動処理を実行することにより実現される。すなわち、ステップS1、S5、およびS10は処理実行部11の処理であり、ステップS2、S3、S6、S7、S11、およびS12は誤り検出部12の処理であり、ステップS4、S8、およびS13は再起動部13の処理である。
 [再起動処理]
 図5は、再起動処理を示すフローチャートである。以下、図5を参照して、図4のステップS4、S8、およびS13における再起動処理について説明する。
 まず、ステップS4の再起動処理について説明する。ステップS4の再起動処理では、図5に示されるように、まず、CPU4は、起動処理(ステップS1の処理)を停止する(S21)。次に、CPU4は、不揮発性メモリ2に記憶されている起動履歴情報126を参照し、変更する(S22)。
 ここで、起動履歴情報126について説明する。本例では、起動履歴情報126は、起動を行っているプログラムやファイルの書き換え元(またはコピー元)を表す情報である。図6は、起動履歴情報126のフォーマットを示す図である。図6において、起動履歴情報126は、ブートプログラム100、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114の各々に対応する起動履歴値を含む。ブートプログラム100、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114の起動履歴値は、それぞれ不揮発性メモリ2のアドレスN、N+1、N+2、およびN+3に記録される。アドレスNには、ブートプログラム100が初めて起動される場合は「0」が書き込まれており、再起動処理(S4)が行われるまでアドレスNの値は「0」のままとなる。再起動処理(S4)が行われ、ブートプログラム100がブートプログラム第1バックアップ102で書き換えられたプログラムとなっている場合は、アドレスNに「1」が書き込まれ、ブートプログラム100がブートプログラム第2バックアップ104で書き換えられたプログラムとなっている場合は、アドレスNに「2」が書き込まれる。すなわち、アドレスNには、「0」、「1」、または「2」が書き込まれ、アドレスNの起動履歴値「0」は、ブロックB1に記憶されているブートプログラム100が再起動処理(S4)で書き換えられたものでないこと(すなわち初期プログラムであること)を示し、起動履歴値「1」は、ブロックB1に記憶されているブートプログラム100が再起動処理(S4)においてブートプログラム第1バックアップ102で書き換えられたものであることを示し、起動履歴値「2」は、ブロックB1に記憶されているブートプログラム100が再起動処理(S4)においてブートプログラム第2バックアップ104で書き換えられたものであることを示す。したがって、CPU4は、起動履歴情報126のアドレスNの起動履歴値を参照することで、現在起動に用いられているブートプログラム100の書き換え元(またはコピー元)となるプログラムを知ることができる。
 ここで、本例では、再起動処理(S4)におけるブートプログラム100の書き換えの順序を、最初の再起動処理ではブートプログラム第1バックアップ102で書き換え、次の再起動処理ではブートプログラム第2バックアップ104で書き換えるという順番としている。この書き換えの順序は、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114についても同様である。
 例えば、不揮発性メモリ2内には、ブートプログラム100、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114のそれぞれについて、バックアッププログラムまたはバックアップファイルの書き換えの順序を示した書き換え順番情報128が記録されており、CPU4は、書き換え順番情報128を参照して書き換えの順番を決定する。すなわち、CPU4は、書き換え順番情報128に基づいて、下記ステップS22以降の処理を行う。この構成では、書き換えの順番を変更したい場合は、書き換え順番情報を変更すればよい。例えば、情報処理装置1の製造者は、所望の順番を示す書き換え順番情報を不揮発性メモリ2に記録することにより、書き換えの順番を所望の順番に設定することができる。また、情報処理装置1は、例えば各ブロックの誤り検出率等の情報や使用者からの操作に応じて、書き換え順番情報を変更してもよい。
 図5に戻り、ステップS22において、CPU4は、ブートプログラム100の起動履歴値が「0」の場合、ブートプログラム100をブートプログラム第1バックアップ102で書き換えることになるため、ブートプログラム100の起動履歴値を「1」に変更する。また、CPU4は、ブートプログラム100の起動履歴値が「1」の場合、ブートプログラム100をブートプログラム第2バックアップ104で書き換えることになるため、ブートプログラム100の起動履歴値を「2」に変更する。また、CPU4は、ブートプログラム100の起動履歴値が「2」の場合には、ブートプログラム100の起動履歴値を変更しない。
 ついで、CPU4は、バックアッププログラムによるブートプログラム100の書き換えが可能か否かを判断する(S23)。具体的には、CPU4は、アドレスNのブートプログラム100の起動履歴値が「0」または「1」である場合には書き換えが可能であると判断し、起動履歴値が「2」である場合には書き換えが可能でないと判断する。なお、当該ステップS23の判断は、ステップS22で参照された起動履歴値、すなわちステップS22で変更される前の起動履歴値に基づいて行われる。
 そして、書き換えが可能と判断された場合(S23:YES)、CPU4は、ブロックB1に記憶されているブートプログラム100とそのチェックサム値101を、バックアッププログラムとそのチェックサム値で書き換える(S24)。具体的には、CPU4は、ブートプログラム100の起動履歴値が「0」となっている場合、ブートプログラム第1バックアップ102とそのチェックサム値103を新たなブートプログラム100とそのチェックサム値101としてブロックB1にコピーし、ブートプログラム100の起動履歴値が「1」となっている場合、ブートプログラム第2バックアップ104とそのチェックサム値105を新たなブートプログラム100とそのチェックサム値101としてブロックB1にコピーする。ブートプログラム100およびチェックサム値101の書き換えが完了すると、CPU4は、システムの再起動を行う(S25)。具体的には、CPU4は、書き換えが完了すると、ソフトウェアリセットをかけて、ブートアドレスへアクセスし、図4の処理を最初から行う。すなわち、図4において、処理がステップS4からステップS1に戻り、再度ブートプログラム100の起動処理が行われる。この場合、書き換え後のブートプログラム100が読み出されて実行されることになる。なお、上記ステップS24の処理は、ステップS22で参照された起動履歴値、すなわちステップS22で変更される前の起動履歴値に基づいて行われる。
 一方、ブートプログラム100の書き換えが可能でないと判断された場合(S23:NO)、CPU4は、新たに外部からブートプログラムを取得する必要がある旨を知らせるメッセージを不図示の表示部などに出力し(S26)、ブートプログラムを外部からのブートプログラムで書き換えるためのプログラム書き換え処理(S27)へと進む。プログラム書き換え処理については後に詳しく説明する。
 なお、上記の説明では、ブートプログラム100の書き換えの順番として、ブートプログラム第1バックアップ102、ブートプログラム第2バックアップ104という順番を例示したが、ブートプログラム第2バックアップ104、ブートプログラム第1バックアップ102という順番であってもよい。この場合、CPU4は、ブートプログラム100の起動履歴値が「0」の場合、起動履歴値を「2」に変更するとともにブートプログラム100をブートプログラム第2バックアップ104で書き換え、起動履歴値が「2」の場合、起動履歴値を「1」に変更するとともにブートプログラム100をブートプログラム第1バックアップ102で書き換え、起動履歴値が「1」の場合、起動履歴値を変更せずにプログラム書き換え処理を行う。これは、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114についても同様である。
 次に、ステップS8の再起動処理について説明する。ステップS8の再起動処理では、図5に示されるように、まず、CPU4は、起動処理(ステップS5の処理)を停止する(S21)。次に、CPU4は、不揮発性メモリ2に記憶されている起動履歴情報126のアドレスN+1の起動履歴値を参照し、変更する(S22)。
 ここで、起動履歴情報126のアドレスN+1の起動履歴値について説明する。図6において、起動履歴情報126のアドレスN+1には、上記アドレスNの場合と同様に、カーネルプログラム106の起動履歴値として、「0」、「1」、または「2」が記録される。カーネルプログラム106の起動履歴値「0」は、ブロックB4に記憶されているカーネルプログラム106が再起動処理(S8)で書き換えられたものでないことを示し、起動履歴値「1」は、ブロックB4に記憶されているカーネルプログラム106が再起動処理(S8)においてカーネルプログラム第1バックアップ108で書き換えられたものであることを示し、起動履歴値「2」は、ブロックB4に記憶されているカーネルプログラム106が再起動処理(S8)においてカーネルプログラム第2バックアップ110で書き換えられたものであることを示す。
 図5に戻り、ステップS22において、CPU4は、カーネルプログラム106の起動履歴値が「0」の場合、カーネルプログラム106をカーネルプログラム第1バックアップ108で書き換えることになるため、カーネルプログラム106の起動履歴値を「1」に変更する。また、CPU4は、カーネルプログラム106の起動履歴値が「1」の場合、カーネルプログラム106をカーネルプログラム第2バックアップ110で書き換えることになるため、カーネルプログラム106の起動履歴値を「2」に変更する。また、CPU4は、カーネルプログラム106の起動履歴値が「2」の場合には、カーネルプログラム106の起動履歴値を変更しない。
 ついで、CPU4は、バックアッププログラムによるカーネルプログラム106の書き換えが可能か否かを判断する(S23)。具体的には、CPU4は、アドレスN+1のカーネルプログラム106の起動履歴値が「0」または「1」である場合には書き換えが可能であると判断し、起動履歴値が「2」である場合には書き換えが可能でないと判断する。なお、当該ステップS23の判断は、ステップS22で参照された起動履歴値、すなわちステップS22で変更される前の起動履歴値に基づいて行われる。
 そして、書き換えが可能と判断された場合(S23:YES)、CPU4は、ブロックB4に記憶されているカーネルプログラム106とそのチェックサム値107を、バックアッププログラムとそのチェックサム値で書き換える(S24)。具体的には、CPU4は、カーネルプログラム106の起動履歴値が「0」となっている場合、カーネルプログラム第1バックアップ108とそのチェックサム値109を新たなカーネルプログラム106とそのチェックサム値107としてブロックB4にコピーし、カーネルプログラム106の起動履歴値が「1」となっている場合、カーネルプログラム第2バックアップ110とそのチェックサム値111を新たなカーネルプログラム106とそのチェックサム値107としてブロックB4にコピーする。カーネルプログラム106およびチェックサム値107の書き換えが完了すると、CPU4は、システムの再起動を行う(S25)。具体的には、CPU4は、書き換えが完了すると、ソフトウェアリセットをかけて、ブートプログラム100が記憶されているブートアドレスへアクセスし、図4の処理を最初から行う。すなわち、図4において、処理がステップS8からステップS1に戻り、再度ブートプログラム100の起動処理が行われる。再起動後の処理では、書き換え後のカーネルプログラム106が読み出されて実行されることになる。なお、上記ステップS24の処理は、ステップS22で参照された起動履歴値、すなわちステップS22で変更される前の起動履歴値に基づいて行われる。
 一方、カーネルプログラム106の書き換えが可能でないと判断された場合(S23:NO)、CPU4は、新たに外部からカーネルプログラムを取得する必要がある旨を知らせるメッセージを出力し(S26)、カーネルプログラム106を外部からのカーネルプログラムで書き換えるためのプログラム書き換え処理(S27)へと進む。プログラム書き換え処理については後に詳しく説明する。
 次に、ステップS13の再起動処理について説明する。ステップS13の再起動処理では、図5に示されるように、まず、CPU4は、起動処理(ステップS10の処理)を停止する(S21)。次に、CPU4は、不揮発性メモリ2に記憶されている起動履歴情報126のアドレスN+2の起動履歴値を参照し、変更する(S22)。
 ここで、起動履歴情報126のアドレスN+2の起動履歴値について説明する。図6において、起動履歴情報126のアドレスN+2には、上記アドレスNの場合と同様に、アプリケーション構成ファイルA112の起動履歴値として、「0」、「1」、または「2」が記録される。アプリケーション構成ファイルA112の起動履歴値「0」は、ブロックB7に記憶されているアプリケーション構成ファイルA112が再起動処理(S13)で書き換えられたものでないことを示し、起動履歴値「1」は、ブロックB7に記憶されているアプリケーション構成ファイルA112が再起動処理(S13)においてアプリケーション構成ファイルA第1バックアップ116で書き換えられたものであることを示し、起動履歴値「2」は、ブロックB7に記憶されているアプリケーション構成ファイルA112が再起動処理(S13)においてアプリケーション構成ファイルA第2バックアップ120で書き換えられたものであることを示す。
 図5に戻り、ステップS22において、CPU4は、アプリケーション構成ファイルA112の起動履歴値が「0」の場合、アプリケーション構成ファイルA112をアプリケーション構成ファイルA第1バックアップ116で書き換えることになるため、アプリケーション構成ファイルA112の起動履歴値を「1」に変更する。また、CPU4は、アプリケーション構成ファイルA112の起動履歴値が「1」の場合、アプリケーション構成ファイルA112をアプリケーション構成ファイルA第2バックアップ120で書き換えることになるため、アプリケーション構成ファイルA112の起動履歴値を「2」に変更する。また、CPU4は、アプリケーション構成ファイルA112の起動履歴値が「2」の場合には、アプリケーション構成ファイルA112の起動履歴値を変更しない。
 ついで、CPU4は、バックアップファイルによるアプリケーション構成ファイルA112の書き換えが可能か否かを判断する(S23)。具体的には、CPU4は、アドレスN+2のアプリケーション構成ファイルA112の起動履歴値が「0」または「1」である場合には書き換えが可能であると判断し、起動履歴値が「2」である場合には書き換えが可能でないと判断する。なお、当該ステップS23の判断は、ステップS22で参照された起動履歴値、すなわちステップS22で変更される前の起動履歴値に基づいて行われる。
 そして、書き換えが可能と判断された場合(S23:YES)、CPU4は、ブロックB7に記憶されているアプリケーション構成ファイルA112とそのチェックサム値113を、バックアップファイルとそのチェックサム値で書き換える(S24)。具体的には、CPU4は、アプリケーション構成ファイルA112の起動履歴値が「0」となっている場合、アプリケーション構成ファイルA第1バックアップ116とそのチェックサム値117を新たなアプリケーション構成ファイルA112とそのチェックサム値113としてブロックB7にコピーし、アプリケーション構成ファイルA112の起動履歴値が「1」となっている場合、アプリケーション構成ファイルA第2バックアップ120とそのチェックサム値121を新たなアプリケーション構成ファイルA112とそのチェックサム値113としてブロックB7にコピーする。アプリケーション構成ファイルA112およびチェックサム値113の書き換えが完了すると、CPU4は、アプリケーションの再起動を行う(S25)。具体的には、CPU4は、書き換えが完了すると、システムが起動した状態(具体的にはカーネルが起動した状態)で、再度アプリケーション構成ファイルA112をロードする。すなわち、図4において、処理がステップS13からステップS10に移行し、再度アプリケーション構成ファイルA112が読み出されてアプリケーションの起動処理が行われる。この場合、書き換え後のアプリケーション構成ファイルA112が読み出されて実行されることになる。なお、上記ステップS24の処理は、ステップS22で参照された起動履歴値、すなわちステップS22で変更される前の起動履歴値に基づいて行われる。
 一方、アプリケーション構成ファイルA112の書き換えが可能でないと判断された場合(S23:NO)、CPU4は、新たに外部からアプリケーション構成ファイルを取得する必要がある旨を知らせるメッセージを出力し(S26)、アプリケーション構成ファイルA112を外部からのアプリケーション構成ファイルで書き換えるためのファイル書き換え処理(S27)へと進む。ファイル書き換え処理については後に詳しく説明する。
 なお、アプリケーション構成ファイルB114についての再起動処理は、上記アプリケーション構成ファイルA112についての再起動処理と同様である。
 このように、ブートプログラム100、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114のバックアッププログラムによる書き換えを行う際に、起動履歴情報126を参照し、書き換えに用いるバックアッププログラムを選択することで、過去にプログラムの書き換えに用いられて当該書き換え後のプログラムに誤りが検出されたバックアッププログラム以外のバックアッププログラム(または過去に誤りが検出されたバックアッププログラム以外のバックアッププログラム)を選択することができ、より信頼性の高いバックアッププログラムにより再起動処理を行うことができる。例えば、起動プログラムを第1バックアップで書き換えた直後に起動プログラムに誤りが検出された場合に、誤りのある可能性の高い第1バックアップ以外のバックアッププログラム(例えば第2バックアップ)を選択して再起動処理を行うことができ、より信頼性の高いバックアッププログラムで再起動処理を行うことができる。
 [プログラム(ファイル)書き換え処理]
 図7は、図5のステップS27のプログラム(またはファイル)書き換え処理を示すフローチャートである。以下、図7を参照して、ブートプログラムのプログラム書き換え処理、カーネルプログラムのプログラム書き換え処理、およびアプリケーション構成ファイルのファイル書き換え処理について説明する。なお、ブートプログラム、カーネルプログラム、およびアプリケーション構成ファイルのプログラム(またはファイル)書き換え処理は、それぞれ、CPU4が、ブートプログラム、カーネルプログラム、およびアプリケーション構成ファイルに記述されている書き換え制御を実行することによって実現される。
 まず、ブートプログラムのプログラム書き換え処理について説明する。ブートプログラムのプログラム書き換え処理では、図7に示されるように、CPU4は、外部インタフェース6に外部メモリが接続されたことを認識すると、通信部5を介して当該外部メモリから、書き換え用の新たなブートプログラムおよびそのチェックサム値を読み出し、当該新たなブートプログラムとチェックサム値で、ブートプログラム第1バックアップ102とチェックサム値103を書き換える(S31)。なお、上記外部メモリは、例えば図5のステップS26のメッセージを見たユーザによって情報処理装置1の外部インタフェース6に接続されるものであり、例えばUSBメモリ等の可搬型メモリである。
 上記の書き換えが完了すると、CPU4は、書き換えフラグ情報124を変更する(S32)。
 ここで、書き換えフラグ情報124について説明する。書き換えフラグ情報124は、プログラム(またはファイル)書き換え処理の実行中であるか否かを表す情報である。図8は、書き換えフラグ情報124のフォーマットを示す図である。図8において、書き換えフラグ情報124は、ブートプログラム100、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114の各々に対応する書き換えフラグを含む。ブートプログラム100、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114の書き換えフラグは、それぞれ不揮発性メモリ2のアドレスM、M+1、M+2、およびM+3に記録される。書き換えフラグは、通常は「0」であり、プログラム(またはファイル)書き換え処理が実行される際に「1」にされるフラグである。アドレスM、M+1、M+2、およびM+3の各々には、「0」または「1」が記録され、「0」は対応するプログラム(またはファイル)について書き換え処理中でないことを示し、「1」は対応するプログラム(またはファイル)について書き換え処理中であることを示す。
 図7に戻り、ステップS32において、CPU4は、アドレスMのブートプログラム100の書き換えフラグを「0」から「1」に変更する。ブートプログラム100の書き換えフラグ「1」は、ブートプログラム第1バックアップ102が新たなブートプログラムで書き換えられたことで、ブートプログラム100およびブートプログラム第2バックアップ104と、ブートプログラム第1バックアップ102とで内容が異なっていることを表す。
 次に、CPU4は、ブートプログラム100とチェックサム値101を、上記書き換え後のブートプログラム第1バックアップ102とチェックサム値103で書き換える(S33)。
 上記書き換えが完了すると、CPU4は、起動履歴情報126におけるブートプログラム100に対応する起動履歴値を「1」に変更し(S34)、システムを再起動する(S35)。すなわち、CPU4は、ソフトウェアリセットをかけ、ブートアドレスへアクセスし、書き換え後のブートプログラム100を読み出して実行し、起動処理(図4のステップS1)と並行してチェックサム計算(図4のステップS2)を行う。
 上記チェックサム計算が終わると、CPU4は、ブートプログラム100の書き換えフラグおよび起動履歴値を参照し、書き換えフラグが「1」となっており、かつ起動履歴値が「1」となっている場合には、図7のステップS36に進む。なお、書き換えフラグが「0」となっている場合には、図4のステップS3に進むことになり、書き換えフラグが「1」で起動履歴値が「2」の場合には、後述のステップS43に進むことになる。
 ステップS36では、CPU4は、ブートプログラム100に異常があるか否かを判断する。具体的には、CPU4は、ブートプログラム100が正常に起動し、かつ計算されたチェックサム値がチェックサム値101と一致する場合には異常がないと判断し、ブートプログラム100が正常に起動しないか、またはチェックサム値が一致しない場合には異常があると判断する。
 そして、異常がないと判断された場合(S36:NO)、CPU4は、ブートプログラム100に対応する起動履歴値を「0」に変更し(S37)、ブートプログラム第2バックアップ106をブートプログラム第1バックアップ104で書き換える(S38)。そして、CPU4は、ブートプログラム100の書き換えフラグを「0」に戻し(S39)、プログラム書き換え処理を終了させる。プログラム書き換え処理の終了後は、図4のステップS6に進む。
 一方、異常があると判断された場合(S36:YES)、CPU4は、ブートプログラム100をブートプログラム第2バックアップ104で書き換え(S40)、ブートプログラム100に対応する起動履歴値を「2」に変更し(S41)、システムの再起動を行う(S42)。すなわち、CPU4は、ソフトウェアリセットをかけて、ブートアドレスへとアクセスし、書き換え後のブートプログラム100を読み出して実行し、起動処理(図4のステップS1)と並行してチェックサム計算(図4のステップS2)を行う。
 上記チェックサム計算が終わると、CPU4は、ブートプログラム100の書き換えフラグおよび起動履歴値を参照し、書き換えフラグが「1」となっており、かつ起動履歴値が「2」となっている場合には、図7のステップS43に進む。
 ステップS43では、CPU4は、上記ステップS36と同様に、ブートプログラム100に異常があるか否かを判断する。
 そして、異常がないと判断された場合(S43:NO)、CPU4は、外部から取得された新たなブートプログラムに異常があった旨を、例えば不図示の表示部に表示してユーザに通知し(S44)、プログラム書き換え処理を終了させる。プログラム書き換え処理の終了後は、図4のステップS6に進む。
 一方、異常があると判断された場合(S43:YES)、CPU4は、図5のステップS26に戻り、再度、新たに外部からブートプログラムを取得する必要がある旨を知らせるメッセージを出力し、プログラム書き換え処理(S27)を実行する。
 次に、カーネルプログラムのプログラム書き換え処理について説明する。カーネルプログラムのプログラム書き換え処理では、図7に示されるように、CPU4は、外部インタフェース6に外部メモリが接続されたことを認識すると、当該外部メモリから、書き換え用の新たなカーネルプログラムおよびそのチェックサム値を読み出し、当該新たなカーネルプログラムとチェックサム値で、カーネルプログラム第1バックアップ108とチェックサム値109を書き換える(S31)。
 上記の書き換えが完了すると、CPU4は、書き換えフラグ情報124におけるアドレスM+1のカーネルプログラム106の書き換えフラグを「0」から「1」に変更する(S32)。
 次に、CPU4は、カーネルプログラム106とチェックサム値107を、上記書き換え後のカーネルプログラム第1バックアップ108とチェックサム値109で書き換える(S33)。
 上記書き換えが完了すると、CPU4は、起動履歴情報126におけるカーネルプログラム106に対応する起動履歴値を「1」に変更し(S34)、システムを再起動する(S35)。すなわち、CPU4は、ソフトウェアリセットをかけ、ブートアドレスへアクセスし、ブートプログラム100を読み出して実行し、続いてカーネルプログラム106を読み出し、カーネルプログラム106の起動処理(図4のステップS5)と並行してチェックサム計算(図4のステップS6)を行う。
 上記チェックサム計算が終わると、CPU4は、カーネルプログラム106の書き換えフラグおよび起動履歴値を参照し、書き換えフラグが「1」となっており、かつ起動履歴値が「1」となっている場合には、図7のステップS36に進む。なお、書き換えフラグが「0」となっている場合には、図4のステップS7に進むことになり、書き換えフラグが「1」で起動履歴値が「2」の場合には、後述のステップS43に進むことになる。
 ステップS36では、CPU4は、カーネルプログラム106に異常があるか否かを判断する。具体的には、CPU4は、カーネルプログラム106が正常に起動し、かつ計算されたチェックサム値がチェックサム値107と一致する場合には異常がないと判断し、カーネルプログラム106が正常に起動しないか、またはチェックサム値が一致しない場合には異常があると判断する。
 そして、異常がないと判断された場合(S36:NO)、CPU4は、カーネルプログラム106に対応する起動履歴値を「0」に変更し(S37)、カーネルプログラム第2バックアップ110をカーネルプログラム第1バックアップ108で書き換える(S38)。そして、CPU4は、カーネルプログラム106の書き換えフラグを「0」に戻し(S39)、プログラム書き換え処理を終了させる。プログラム書き換え処理の終了後は、図4のステップS11に進む。
 一方、異常があると判断された場合(S36:YES)、CPU4は、カーネルプログラム106をカーネルプログラム第2バックアップ110で書き換え(S40)、カーネルプログラム106に対応する起動履歴値を「2」に変更し(S41)、システムの再起動を行う(S42)。すなわち、CPU4は、ソフトウェアリセットをかけて、ブートアドレスへとアクセスし、ブートプログラム100を読み出して実行し、続いてカーネルプログラム106を読み出し、カーネルプログラム106の起動処理(図4のステップS5)と並行してチェックサム計算(図4のステップS6)を行う。
 上記チェックサム計算が終わると、CPU4は、カーネルプログラム106の書き換えフラグおよび起動履歴値を参照し、書き換えフラグが「1」となっており、かつ起動履歴値が「2」となっている場合には、図7のステップS43に進む。
 ステップS43では、CPU4は、上記ステップS36と同様に、カーネルプログラム106に異常があるか否かを判断する。
 そして、異常がないと判断された場合(S43:NO)、CPU4は、外部から取得された新たなカーネルプログラムに異常があった旨をユーザに通知し(S44)、プログラム書き換え処理を終了させる。プログラム書き換え処理の終了後は、図4のステップS11に進む。
 一方、異常があると判断された場合(S43:YES)、CPU4は、図5のステップS26に戻り、再度、新たに外部からカーネルプログラムを取得する必要がある旨を知らせるメッセージを出力し、プログラム書き換え処理(S27)を実行する。
 次に、アプリケーション構成ファイルのファイル書き換え処理について説明する。アプリケーション構成ファイルA112のファイル書き換え処理では、図7に示されるように、CPU4は、外部インタフェース6に外部メモリが接続されたことを認識すると、当該外部メモリから、書き換え用の新たなアプリケーション構成ファイルおよびそのチェックサム値を読み出し、当該新たなアプリケーション構成ファイルとチェックサム値で、アプリケーション構成ファイルA第1バックアップ116とチェックサム値117を書き換える(S31)。
 上記の書き換えが完了すると、CPU4は、書き換えフラグ情報124におけるアドレスM+2のアプリケーション構成ファイルA112の書き換えフラグを「0」から「1」に変更する(S32)。
 次に、CPU4は、アプリケーション構成ファイルA112とチェックサム値113を、上記書き換え後のアプリケーション構成ファイルA第1バックアップ116とチェックサム値117で書き換える(S33)。
 上記書き換えが完了すると、CPU4は、起動履歴情報126におけるアプリケーション構成ファイルA112に対応する起動履歴値を「1」に変更し(S34)、アプリケーションの再起動を行う(S35)。具体的には、CPU4は、システムが起動した状態(具体的にはカーネルが起動した状態)で、再度アプリケーション構成ファイルA112を読み出し、アプリケーション構成ファイルA112の起動処理(図4のステップS10)と並行してチェックサム計算(図4のステップS11)を行う。
 上記チェックサム計算が終わると、CPU4は、アプリケーション構成ファイルA112の書き換えフラグおよび起動履歴値を参照し、書き換えフラグが「1」となっており、かつ起動履歴値が「1」となっている場合には、図7のステップS36に進む。なお、書き換えフラグが「0」となっている場合には、図4のステップS12に進むことになり、書き換えフラグが「1」で起動履歴値が「2」の場合には、後述のステップS43に進むことになる。
 ステップS36では、CPU4は、アプリケーション構成ファイルA112に異常があるか否かを判断する。具体的には、CPU4は、アプリケーション構成ファイルA112が正常に起動し、かつ計算されたチェックサム値がチェックサム値113と一致する場合には異常がないと判断し、アプリケーション構成ファイルA112が正常に起動しないか、またはチェックサム値が一致しない場合には異常があると判断する。
 そして、異常がないと判断された場合(S36:NO)、CPU4は、アプリケーション構成ファイルA112に対応する起動履歴値を「0」に変更し(S37)、アプリケーション構成ファイルA第2バックアップ120をアプリケーション構成ファイルA第1バックアップ116で書き換える(S38)。そして、CPU4は、アプリケーション構成ファイルA112の書き換えフラグを「0」に戻し(S39)、ファイル書き換え処理を終了させる。ファイル書き換え処理の終了後は、待機状態となる。
 一方、異常があると判断された場合(S36:YES)、CPU4は、アプリケーション構成ファイルA112をアプリケーション構成ファイルA第2バックアップ120で書き換え(S40)、アプリケーション構成ファイルA112に対応する起動履歴値を「2」に変更し(S41)、アプリケーションの再起動を行う(S42)。具体的には、CPU4は、システムが起動した状態(具体的にはカーネルが起動した状態)で、再度アプリケーション構成ファイルA112を読み出し、アプリケーション構成ファイルA112の起動処理(図4のステップS10)と並行してチェックサム計算(図4のステップS11)を行う。
 上記チェックサム計算が終わると、CPU4は、アプリケーション構成ファイルA112の書き換えフラグおよび起動履歴値を参照し、書き換えフラグが「1」となっており、かつ起動履歴値が「2」となっている場合には、図7のステップS43に進む。
 ステップS43では、CPU4は、上記ステップS36と同様に、アプリケーション構成ファイルA112に異常があるか否かを判断する。
 そして、異常がないと判断された場合(S43:NO)、CPU4は、外部から取得された新たなアプリケーション構成ファイルに異常があった旨をユーザに通知し(S44)、ファイル書き換え処理を終了させる。ファイル書き換え処理の終了後は、待機状態となる。
 一方、異常があると判断された場合(S43:YES)、CPU4は、図5のステップS26に戻り、再度、新たに外部からアプリケーション構成ファイルを取得する必要がある旨を知らせるメッセージを出力し、ファイル書き換え処理(S27)を実行する。
 なお、アプリケーション構成ファイルB114のファイル書き換え処理は、上記アプリケーション構成ファイルA112のファイル書き換え処理と同様である。
 [バックアップ確認処理]
 さらに、情報処理装置1は、図4の処理において誤り検出処理が待機状態となっている間に、バックアッププログラムやバックアップファイルの誤りの有無(正当性)を確認するバックアップ確認処理を行ってもよい。上記待機状態となっている間とは、具体的には、図4のステップS3でYESと判定された後、ステップS6が開始されるまでの待機期間、ステップS7でYESと判定された後、ステップS11が開始されるまでの待機期間、および、ステップS12でYESと判定された後、ステップS10が終了するまでの待機期間である。図9は、バックアップ確認処理を示すフローチャートである。以下、図9を参照して、バックアップ確認処理について説明する。
 CPU4は、ブートプログラム第1バックアップ102とブートプログラム第2バックアップ104とを比較し、両者が一致するか否かを判断し(S51)、一致しない場合(S51:NO)、ステップS52へ進み、一致する場合(S51:YES)、ステップS53へ進む。
 ステップS52では、CPU4は、ブートプログラム第1バックアップ102およびブートプログラム第2バックアップ104の各々のチェックサム値を演算し、演算されたブートプログラム第1バックアップ102のチェックサム値がチェックサム値103と一致するかどうか、演算されたブートプログラム第2バックアップ104のチェックサム値がチェックサム値105と一致するかどうかを判定し、一致した方のバックアッププログラムで他方のバックアッププログラムを書き換え、ステップS53へ進む。なお、ブートプログラム第1バックアップ102およびブートプログラム第2バックアップ104の両方ともチェックサム値が一致しなかった場合には、例えば、ブートプログラム第1バックアップ102およびブートプログラム第2バックアップ104を、ブートプログラム100で書き換えてもよいし、外部から取得される新たなブートプログラムで書き換えてもよい。
 ステップS53では、CPU4は、カーネルプログラム第1バックアップ108とカーネルプログラム第2バックアップ110とを比較し、両者が一致するか否かを判断し、一致しない場合(S53:NO)、ステップS54へ進み、一致する場合(S53:YES)、ステップS55へ進む。
 ステップS54では、CPU4は、カーネルプログラム第1バックアップ108およびカーネルプログラム第2バックアップ110の各々のチェックサム値を演算し、演算されたカーネルプログラム第1バックアップ108のチェックサム値がチェックサム値109と一致するかどうか、演算されたカーネルプログラム第2バックアップ110のチェックサム値がチェックサム値111と一致するかどうかを判定し、一致した方のバックアッププログラムで他方のバックアッププログラムを書き換え、ステップS55へ進む。なお、カーネルプログラム第1バックアップ108およびカーネルプログラム第2バックアップ110の両方ともチェックサム値が一致しなかった場合には、例えば、カーネルプログラム第1バックアップ108およびカーネルプログラム第2バックアップ110を、カーネルプログラム106で書き換えてもよいし、外部から取得される新たなカーネルプログラムで書き換えてもよい。
 ステップS55では、CPU4は、アプリケーション構成ファイルA第1バックアップ116とアプリケーション構成ファイルA第2バックアップ120とを比較し、両者が一致するか否かを判断し、一致しない場合(S55:NO)、ステップS56へ進み、一致する場合(S55:YES)、ステップS57へ進む。
 ステップS56では、CPU4は、アプリケーション構成ファイルA第1バックアップ116およびアプリケーション構成ファイルA第2バックアップ120の各々のチェックサム値を演算し、演算されたアプリケーション構成ファイルA第1バックアップ116のチェックサム値がチェックサム値117と一致するかどうか、演算されたアプリケーション構成ファイルA第2バックアップ120のチェックサム値がチェックサム値121と一致するかどうかを判定し、一致した方のバックアップファイルで他方のバックアップファイルを書き換え、ステップS57へ進む。なお、アプリケーション構成ファイルA第1バックアップ116およびアプリケーション構成ファイルA第2バックアップ120の両方ともチェックサム値が一致しなかった場合には、例えば、アプリケーション構成ファイルA第1バックアップ116およびアプリケーション構成ファイルA第2バックアップ120を、アプリケーション構成ファイルA112で書き換えてもよいし、外部から取得される新たなアプリケーション構成ファイルで書き換えてもよい。
 ステップS57では、CPU4は、アプリケーション構成ファイルB第1バックアップ118とアプリケーション構成ファイルB第2バックアップ122とを比較し、両者が一致するか否かを判断し、一致しない場合(S57:NO)、ステップS58へ進み、一致する場合(S57:YES)、バックアップ確認処理を終了して待機状態となる。
 ステップS58では、CPU4は、アプリケーション構成ファイルB第1バックアップ118およびアプリケーション構成ファイルB第2バックアップ122に対して上記ステップS56と同様の処理を行った後、バックアップ確認処理を終了して待機状態となる。
 [効果]
 以上説明した本実施の形態によれば、下記(1)~(16)の効果が得られ得る。
 (1)本実施の形態に係る情報処理装置は、起動プログラムを実行してシステムの起動処理を行い、この起動処理と並行して起動プログラムに対して誤り検出を行うように構成されている。このため、本実施の形態によれば、起動プログラムに対して誤り検出を行った後にシステムの起動処理を開始する構成と比較して、システムの起動処理の開始を早くすることができる。これにより、例えば、システムの起動画面が表示されるタイミングを早くすることができる。また、本実施の形態に係る情報処理装置は、起動プログラムに誤りが検出された場合に、バックアッププログラムを用いてシステムの再起動を行う。このため、起動プログラムに誤りがある場合、より信頼性の高い起動プログラムによりシステムの起動を行うことができる。
 特に、近年、機器の高機能化が進むに伴って起動プログラムのデータ容量が著しく増えており、これにより起動プログラムに対する誤り検出処理の処理時間が長くなっており、起動プログラムに対して誤り検出を行った後にシステムの起動処理を開始する構成では、システムの起動処理の開始が著しく遅くなるという問題がある。本実施の形態によれば、この問題を解決することができる。
 図10は、誤り検出後に起動処理を行う構成における処理時間を示すグラフである。図10の横軸は時間であり、図10には、ブートプログラムの誤り検出処理の処理時間T1、ブートプログラムの起動処理の処理時間T2、カーネルプログラムの誤り検出処理の処理時間T3、カーネルプログラムの起動処理の処理時間T4、アプリケーション構成ファイルの誤り検出処理の処理時間T5、およびアプリケーション構成ファイルの起動処理の処理時間T6が示されている。
 図11は、本実施の形態の構成における処理時間を示すグラフである。図11の横軸は時間であり、図11には、ブートプログラムの誤り検出処理の処理時間T11、ブートプログラムの起動処理の処理時間T12、カーネルプログラムの誤り検出処理の処理時間T13、カーネルプログラムの起動処理の処理時間T14、アプリケーション構成ファイルの誤り検出処理の処理時間T15、およびアプリケーション構成ファイルの起動処理の処理時間T16が示されている。
 図10および図11から、本実施の形態では、誤り検出後に起動処理を行う構成と比較して、ブートプログラム、カーネルプログラム、およびアプリケーション構成ファイルの起動処理の開始タイミングが早くなっていることが分かる。
 (2)情報処理装置は、起動プログラムに誤りが検出された場合に、プログラム領域に記憶されている起動プログラムを、バックアップ領域に記憶されているバックアッププログラムで書き換える復旧処理を行い、当該書き換え後のプログラムによりシステムの再起動を行う。本態様によれば、誤りのある起動プログラムをバックアッププログラムで書き換えることで、正しい起動プログラムを増やすことができ、システムの起動の信頼性を高めることができる。
 (3)情報処理装置は、復旧処理を行う際、起動プログラムのバックアッププログラムによる書き換えの履歴を示す履歴情報を参照し、書き換えに用いるバックアッププログラムを選択する。これにより、起動プログラムに誤りが検出された場合に、信頼性の高いプログラムで再起動を行うことができる。具体的には、過去にプログラムの書き換えに用いられて当該書き換え後のプログラムに誤りが検出されたバックアッププログラム以外のバックアッププログラム(または過去に誤りが検出されたバックアッププログラム以外のバックアッププログラム)を選択することができ、より信頼性の高いバックアッププログラムにより再起動処理を行うことができる。
 (4)情報処理装置は、復旧処理にて、バックアッププログラムの書き換えの順番を示す書き換え順番情報を参照し、書き換え順番情報と履歴情報とに基づいて、書き換えに用いるバックアッププログラムを選択する。本態様によれば、書き換え順番情報を変更することによって書き換えの順番を変更することができる。これにより、例えば、不揮発性メモリのデッドブロックや誤り検出率が多いブロックに記録されているバックアッププログラムの順番を遅くすることができ、より信頼性の高いバックアッププログラムを優先的に用いて書き換えを行うことができる。ここで、デッドブロックとは、所定の書き換え制限回数を超えてしまったブロックや半導体の初期不良ブロックなど、正常なリード/ライトが行えなくなってしまったブロックである。
 (5)情報処理装置は、復旧処理にて、書き換えに用いるバックアッププログラムとして、まだ書き換えに用いられていないバックアッププログラムを選択する。本態様によれば、信頼性の高いバックアッププログラムにより再起動処理を行うことができる。
 (6)情報処理装置は、起動プログラムを新たな起動プログラムで書き換えるプログラム書き換え処理において、新たな起動プログラムを取得し、複数のバックアップ領域に記憶されている複数のバックアッププログラムのうち、所定のバックアッププログラムを新たな起動プログラムで書き換え、プログラム領域に記憶されている起動プログラムを所定のバックアッププログラムで書き換え、当該書き換え後の起動プログラムが実行された際に、異常がない場合は、複数のバックアッププログラムのうち、所定のバックアッププログラム以外のバックアッププログラムを、書き換え後の所定のバックアッププログラムまたは書き換え後の起動プログラムで書き換え、異常があった場合は、プログラム領域に記憶されている起動プログラムを、所定のバックアッププログラム以外のバックアッププログラムで書き換える。本態様によれば、起動プログラムを新たな起動プログラムで書き換える際に、書き換え後の新たな起動プログラムに異常があった場合に(例えば、正常に起動できない場合や、不正なビット変化が確認された場合に)、新たな起動プログラムのバックアップを確保しつつ、プログラム領域の起動プログラムを書き換え前の状態に戻すことができる。このため、例えば、新たな起動プログラムにエラーがあり、システムを起動できない場合に、元の起動プログラムに戻すことができずシステムの起動ができなくなってしまうことを防ぐことができる。
 (7)情報処理装置は、アプリケーション構成ファイルを実行してアプリケーションの起動処理を行い、この起動処理と並行してアプリケーション構成ファイルに対して誤り検出を行う。本態様によれば、アプリケーション構成ファイルに対して誤り検出を行った後にアプリケーションの起動処理を開始する構成と比較して、アプリケーションの起動処理の開始を早くすることができる。これにより、例えば、アプリケーションの起動画面が表示されるタイミングを早くすることができる。また、情報処理装置は、アプリケーション構成ファイルに誤りが検出された場合に、バックアップファイルを用いてアプリケーションの再起動を行う。このため、アプリケーション構成ファイルに誤りがある場合、より信頼性の高いアプリケーション構成ファイルによりアプリケーションの起動を行うことができる。
 (8)情報処理装置は、アプリケーション構成ファイルに誤りが検出された場合に、ファイル領域に記憶されているアプリケーション構成ファイルを、バックアップファイル領域に記憶されているバックアップファイルで書き換える復旧処理を行い、当該書き換え後のアプリケーション構成ファイルによりアプリケーションの再起動を行う。本態様によれば、誤りのあるアプリケーション構成ファイルをバックアップファイルで書き換えることで、正しいアプリケーション構成ファイルを増やすことができ、アプリケーションの起動の信頼性を高めることができる。
 (9)情報処理装置は、復旧処理の際に、アプリケーション構成ファイルのバックアップファイルによる書き換えの履歴を示す履歴情報を参照し、書き換えに用いるバックアップファイルを選択する。これにより、アプリケーション構成ファイルに誤りが検出された場合に、信頼性の高いファイルで再起動を行うことができる。具体的には、過去にアプリケーション構成ファイルの書き換えに用いられて当該書き換え後のアプリケーション構成ファイルに誤りが検出されたバックアップファイル以外のバックアップファイル(または過去に誤りが検出されたバックアップファイル以外のバックアップファイル)を選択することができ、より信頼性の高いバックアップファイルにより再起動処理を行うことができる。
 (10)情報処理装置は、復旧処理にて、バックアップファイルの書き換えの順番を示す書き換え順番情報を参照し、書き換え順番情報と履歴情報とに基づいて、書き換えに用いるバックアップファイルを選択する。本態様によれば、書き換え順番情報を変更することによって書き換えの順番を変更することができる。これにより、例えば、不揮発性メモリのデッドブロックや誤り検出率が多いブロックに記録されているバックアップファイルの順番を遅くすることができ、より信頼性の高いバックアップファイルを優先的に用いて書き換えを行うことができる。
 (11)情報処理装置は、復旧処理にて、書き換えに用いるバックアップファイルとして、まだ書き換えに用いられていないバックアップファイルを選択する。本態様によれば、信頼性の高いバックアップファイルにより再起動処理を行うことができる。
 (12)情報処理装置は、アプリケーション構成ファイルを新たなアプリケーション構成ファイルで書き換えるファイル書き換え処理において、新たなアプリケーション構成ファイルを取得し、複数のバックアップファイル領域に記憶されている複数のバックアップファイルのうち、所定のバックアップファイルを新たなアプリケーション構成ファイルで書き換え、ファイル領域に記憶されているアプリケーション構成ファイルを所定のバックアップファイルで書き換え、当該書き換え後のアプリケーション構成ファイルが実行された際に、異常がない場合は、複数のバックアップファイルのうち、所定のバックアップファイル以外のバックアップファイルを、書き換え後の所定のバックアップファイルまたは書き換え後のアプリケーション構成ファイルで書き換え、異常があった場合は、ファイル領域に記憶されているアプリケーション構成ファイルを、所定のバックアップファイル以外のバックアップファイルで書き換える。本態様によれば、アプリケーション構成ファイルを新たなアプリケーション構成ファイルで書き換える際に、書き換え後の新たなアプリケーション構成ファイルに異常があった場合に(例えば、正常に起動できない場合や、不正なビット変化が確認された場合に)、新たなアプリケーション構成ファイルのバックアップを確保しつつ、ファイル領域のアプリケーション構成ファイルを書き換え前の状態に戻すことができる。このため、例えば、新たなアプリケーション構成ファイルにエラーがあり、アプリケーションを起動できない場合に、元のアプリケーション構成ファイルに戻すことができずアプリケーションの起動ができなくなってしまうことを防ぐことができる。
 (13)不揮発性メモリのファイル領域は、複数のアプリケーション構成ファイルをアプリケーション構成ファイルごとに読み出し可能に記憶する。本態様によれば、アプリケーション構成ファイルごとに不揮発性メモリからワークメモリへのデータ転送が可能となるため、ワークメモリへの転送時間を短縮することができる。
 (14)不揮発性メモリのファイル領域は、複数のアプリケーション構成ファイルと、当該複数のアプリケーション構成ファイルの各々の誤り検出用データとを記憶する。本態様では、アプリケーション構成ファイルごとに個別の誤り検出用データ(例えばチェックサム値)を付加しているため、複数のアプリケーション構成ファイルをまとめたファイル群に対して誤り検出用データ(例えばチェックサム値)を付加した場合に比べて、誤り検出用データを用いた誤り検出の処理時間(例えばチェックサム値の演算時間)を短くすることができる。
 (15)情報処理装置は、バックアップ領域に記憶されているバックアッププログラムに対して誤り検出を行い、誤りが検出されたバックアッププログラムを誤りが検出されなかったバックアッププログラムで書き換える。本態様によれば、バックアッププログラムの信頼性を高めることができる。これにより、例えば、図4の再起動処理(S4,S8)内のステップS23にて、バックアッププログラムによる起動プログラムの書き換えが不可能と判断される確率を低く抑えることができる。
 (16)情報処理装置は、バックアップファイル領域に記憶されているバックアップファイルに対して誤り検出を行い、誤りが検出されたバックアップファイルを誤りが検出されなかったバックアップファイルで書き換える。本態様によれば、バックアップファイルの信頼性を高めることができる。これにより、例えば、図4の再起動処理(S13)内のステップS23にて、バックアップファイルによるアプリケーション構成ファイルの書き換えが不可能と判断される確率を低く抑えることができる。
 なお、本発明は、上記実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の態様で実施することができる。
 例えば、上記の説明では、起動プログラムに誤りが検出された場合に、バックアッププログラムによる起動プログラムの書き換え(復旧処理)を行った後にシステムの再起動を行う構成を例示したが、情報処理装置1は、起動プログラムの書き換え(復旧処理)を行わずに、バックアッププログラムをワークメモリ3に読み出してシステムの再起動を行ってもよい。同様に、情報処理装置1は、バックアップファイルによるアプリケーション構成ファイルの書き換え(復旧処理)を行わずに、バックアップファイルをワークメモリ3に読み出してアプリケーションの再起動を行ってもよい。なお、起動プログラムのうち、最初に読み出されて実行される起動プログラム(具体的にはブートプログラム100)については、ブートアドレスが固定である場合には上記復旧処理が必要であるが、ブートアドレスを変更可能な構成であれば、ブートアドレスをバックアッププログラムの先頭アドレスに変更することで、復旧処理を行わずに再起動することが可能である。
 また、上記の説明では、不揮発性メモリ2に複数のバックアッププログラムが記憶される構成を例示したが、バックアッププログラムの個数は、複数に限られず、1つであってもよい。これはバックアップファイルについても同様である。
 また、上記の説明では、アプリケーション構成ファイルとして、アプリケーション構成ファイルA112およびアプリケーション構成ファイルB114の2つのファイルを用いる場合を例示したが、アプリケーション構成ファイルは1つ以上であればよく、実際にはさらに多くのアプリケーション構成ファイルが必要となる場合が多い。
 また、上記の説明では、処理実行部11および誤り検出部12が、共通のCPU4と共通のプログラムにより実現される構成を例示したが、誤り検出部12は、下記(a)~(d)のような態様で実現されることも可能である。
 (a)誤り検出部12は、CPU4が、起動プログラムとは別の誤り検出用のプログラムを実行することにより実現される。
 (b)誤り検出部12は、CPU4とは別のCPUが、起動プログラムまたは起動プログラムとは別の誤り検出用のプログラムに記述されている誤り検出処理を実行することにより実現される。
 (c)CPU4は複数個のプロセッサコアを含み、誤り検出部12は、複数個のプロセッサコアのうち処理実行部11を実現するものとは別のプロセッサコアが、起動プログラムまたは起動プログラムとは別の誤り検出用のプログラムに記述されている誤り検出処理を実行することにより実現される。
 (d)誤り検出部12は、誤り検出用のハードウェア回路により実現される。
 上記(b)~(d)のように、起動処理と誤り検出処理とを別々の処理装置で並行して実行する構成では、起動処理と誤り検出処理とを実際に並行処理することができ、起動プログラムに対して誤り検出を行った後にシステムの起動処理を開始する構成と比較して、起動時間を短くすることができる。
 図12は、起動処理と誤り検出処理とを別々の処理装置で並行して実行する構成における処理時間を示すグラフである。図12の横軸は時間であり、図12には、ブートプログラムの誤り検出処理の処理時間T21、ブートプログラムの起動処理の処理時間T22、カーネルプログラムの誤り検出処理の処理時間T23、カーネルプログラムの起動処理の処理時間T24、アプリケーション構成ファイルの誤り検出処理の処理時間T25、およびアプリケーション構成ファイルの起動処理の処理時間T26が示されている。
 図10および図12から、起動処理と誤り検出処理とを別々の処理装置で並行して実行する構成では、誤り検出後に起動処理を行う構成と比較して、ブートプログラム、カーネルプログラム、およびアプリケーション構成ファイルのそれぞれの起動処理の終了時刻が早くなっていることが分かる。
 また、再起動部13および書き換え制御部14についても、誤り検出部12と同様に、上記(a)~(d)のような態様で実現されてもよい。
 また、上記の説明では、プログラムのバックアッププログラムによる書き換えの履歴を示す履歴情報として、プログラムの書き換え元を表す起動履歴値を例示したが、履歴情報はこれに限られず、例えば、複数のバックアッププログラムのうち過去にプログラムの書き換えに用いられたバックアッププログラムを示す情報であってもよい。また、履歴情報は、バックアッププログラム毎に用意されてもよい。例えば、不揮発性メモリ2には、バックアッププログラム毎に、当該バックアッププログラムが過去にプログラムの書き換えに用いられたか否かを示す履歴フラグが記録されてもよい。履歴フラグは、例えば、書き換えに用いられていない場合には「0」であり、書き換えに用いられた場合に「1」となる。なお、上記のことは、アプリケーション構成ファイルについても同様である。
 また、上記の説明では、履歴情報に基づいて、まだ書き換えに用いられていないバックアッププログラムを選択する構成を例示したが、これ以外のバックアッププログラムを選択する構成であってもよい。例えば、不揮発性メモリでは、長い期間リードを行っていないブロックは経時的な電荷抜けが起きてしまい、不正にデータ内容が変化してしまう。そのため、復旧処理の際には出来るだけまんべんなくバックアッププログラムをリードすることで、電荷抜けが起きてしまうリスクを抑えることが可能である。この観点より、再起動部13は、履歴情報を参照して、長い期間リードが行われていないバックアッププログラムを選択するように構成されてもよい。この構成によれば、不揮発性メモリにおける電荷抜けを未然に防止することが出来る。上記長い期間リードが行われていないバックアッププログラムとしては、例えば、複数のバックアッププログラムのうち、リードが行われていない期間が最も長いバックアッププログラムや、所定期間以上リードが行われていないバックアッププログラムがある。また、この構成では、履歴情報は、例えば、各バックアッププログラムのリードが行われていない期間を示す情報である。
 1 情報処理装置、 2 不揮発性メモリ、 3 ワークメモリ、 4 CPU、 5 通信部、 6 外部インタフェース、 10 並列処理部、 11 処理実行部、 12 誤り検出部、 13 再起動部、 14 書き換え制御部、 100 ブートプログラム、 101,103,105,107,109,111,113,115,117,119,121,123 チェックサム値、 102 ブートプログラム第1バックアップ、 104 ブートプログラム第2バックアップ、 106 カーネルプログラム、 108 カーネルプログラム第1バックアップ、 110 カーネルプログラム第2バックアップ、 112 アプリケーション構成ファイルA、 114 アプリケーション構成ファイルB、 116 アプリケーション構成ファイルA第1バックアップ、 118 アプリケーション構成ファイルB第1バックアップ、 120 アプリケーション構成ファイルA第2バックアップ、 122 アプリケーション構成ファイルB第2バックアップ、 124 書き換えフラグ情報、 126 起動履歴情報、 128 書き換え順番情報。

Claims (29)

  1.  システムを起動するためのプログラムを記憶したプログラム領域と、前記プログラムと同一内容の複数のバックアッププログラムをそれぞれ記憶した複数のバックアップ領域とを含む不揮発性メモリと、
     前記プログラム領域に記憶されているプログラムを実行して前記システムの起動処理を行う処理実行手段と、
     前記処理実行手段による起動処理と並行して、前記プログラム領域に記憶されているプログラムに対して誤り検出を行う誤り検出手段と、
     前記誤り検出手段により前記プログラムに誤りが検出された場合に、前記プログラム領域に記憶されているプログラムを、前記バックアップ領域に記憶されているバックアッププログラムで書き換える復旧処理を行い、前記プログラム領域に記憶されている前記書き換え後のプログラムにより前記システムの再起動を行う再起動手段とを備え、
     前記再起動手段は、前記復旧処理を行う際、前記プログラムの前記バックアッププログラムによる書き換えの履歴を示す履歴情報を参照し、前記履歴情報に基づいて、前記複数のバックアッププログラムの中から前記書き換えに用いるバックアッププログラムを選択し、前記プログラムを前記選択されたバックアッププログラムで書き換える、
     ことを特徴とする情報処理装置。
  2.  前記再起動手段は、前記復旧処理にて、さらに前記バックアッププログラムの書き換えの順番を示す書き換え順番情報を参照し、前記書き換え順番情報と前記履歴情報とに基づいて、前記複数のバックアッププログラムの中から前記書き換えに用いるバックアッププログラムを選択し、前記プログラムを前記選択されたバックアッププログラムで書き換える、
     ことを特徴とする請求項1に記載の情報処理装置。
  3.  前記復旧処理にて選択されるバックアッププログラムは、まだ書き換えに用いられていないバックアッププログラムである、
     ことを特徴とする請求項1または2に記載の情報処理装置。
  4.  前記情報処理装置は、前記プログラムを前記バックアップ領域に記憶されていない新たなプログラムで書き換えるプログラム書き換え処理を行う書き換え手段をさらに備え、
     前記書き換え手段は、前記プログラム書き換え処理において、前記新たなプログラムを取得し、前記複数のバックアップ領域に記憶されている複数のバックアッププログラムのうち、所定のバックアッププログラムを前記新たなプログラムで書き換え、前記プログラム領域に記憶されているプログラムを前記所定のバックアッププログラムで書き換え、当該書き換え後のプログラムが実行された際に、異常がない場合は、前記複数のバックアッププログラムのうち、前記所定のバックアッププログラム以外のバックアッププログラムを、前記書き換え後の所定のバックアッププログラムまたは前記書き換え後のプログラムで書き換え、異常があった場合は、前記プログラム領域に記憶されているプログラムを、前記所定のバックアッププログラム以外のバックアッププログラムで書き換える、
     ことを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
  5.  前記誤り検出手段により前記プログラムに誤りが検出された場合において、まだ書き換えに用いられていないバックアッププログラムが前記複数のバックアップ領域に存在しないときには、前記書き換え手段が前記プログラム書き換え処理を行うことを特徴とする請求項4に記載の情報処理装置。
  6.  前記不揮発性メモリは、アプリケーションを起動するためのアプリケーション構成ファイルを記憶したファイル領域と、前記アプリケーション構成ファイルと同一内容のバックアップファイルを記憶したバックアップファイル領域とをさらに含み、
     前記処理実行手段は、前記ファイル領域に記憶されているアプリケーション構成ファイルを実行してアプリケーションの起動処理を行い、
     前記誤り検出手段は、前記処理実行手段による前記アプリケーションの起動処理と並行して、前記ファイル領域に記憶されているアプリケーション構成ファイルに対して誤り検出を行い、
     前記再起動手段は、前記誤り検出手段により前記アプリケーション構成ファイルに誤りが検出された場合に、前記バックアップファイル領域に記憶されているバックアップファイルを用いて前記アプリケーションの再起動を行う、
     ことを特徴とする請求項1から5のいずれか1項に記載の情報処理装置。
  7.  前記再起動手段は、前記誤り検出手段により前記アプリケーション構成ファイルに誤りが検出された場合に、前記ファイル領域に記憶されているアプリケーション構成ファイルを、前記バックアップファイル領域に記憶されているバックアップファイルで書き換える復旧処理を行い、前記ファイル領域に記憶されている前記書き換え後のアプリケーション構成ファイルにより前記アプリケーションの再起動を行うことを特徴とする請求項6に記載の情報処理装置。
  8.  前記バックアップファイル領域は複数であり、
     前記再起動手段は、前記復旧処理を行う際、前記アプリケーション構成ファイルの前記バックアップファイルによる書き換えの履歴を示す履歴情報を参照し、前記履歴情報に基づいて、前記複数のバックアップファイル領域に記憶されている複数のバックアップファイルの中から前記書き換えに用いるバックアップファイルを選択し、前記アプリケーション構成ファイルを前記選択されたバックアップファイルで書き換える、
     ことを特徴とする請求項7に記載の情報処理装置。
  9.  前記再起動手段は、前記復旧処理にて、さらに前記バックアップファイルの書き換えの順番を示す書き換え順番情報を参照し、前記書き換え順番情報と前記履歴情報とに基づいて、前記複数のバックアップファイルの中から前記書き換えに用いるバックアップファイルを選択し、前記アプリケーション構成ファイルを前記選択されたバックアップファイルで書き換える、
     ことを特徴とする請求項8に記載の情報処理装置。
  10.  前記バックアップファイル領域は複数であり、
     前記再起動手段は、前記復旧処理を行う場合、前記複数のバックアップファイル領域に記憶されている複数のバックアップファイルのうち、まだ書き換えに用いられていないバックアップファイルを選択し、前記ファイル領域に記憶されているアプリケーション構成ファイルを前記選択されたバックアップファイルで書き換える、
     ことを特徴とする請求項7から9のいずれか1項に記載の情報処理装置。
  11.  前記バックアップファイル領域は複数であり、
     前記書き換え手段は、前記アプリケーション構成ファイルを新たなアプリケーション構成ファイルで書き換えるファイル書き換え処理を行い、
     前記書き換え手段は、前記ファイル書き換え処理において、前記新たなアプリケーション構成ファイルを取得し、前記複数のバックアップファイル領域に記憶されている複数のバックアップファイルのうち、所定のバックアップファイルを前記新たなアプリケーション構成ファイルで書き換え、前記ファイル領域に記憶されているアプリケーション構成ファイルを前記所定のバックアップファイルで書き換え、当該書き換え後のアプリケーション構成ファイルが実行された際に、異常がない場合は、前記複数のバックアップファイルのうち、前記所定のバックアップファイル以外のバックアップファイルを、前記書き換え後の所定のバックアップファイルまたは前記書き換え後のアプリケーション構成ファイルで書き換え、異常があった場合は、前記ファイル領域に記憶されているアプリケーション構成ファイルを、前記所定のバックアップファイル以外のバックアップファイルで書き換える、
     ことを特徴とする請求項6から10のいずれか1項に記載の情報処理装置。
  12.  前記誤り検出手段により前記アプリケーション構成ファイルに誤りが検出された場合において、まだ書き換えに用いられていないバックアップファイルが前記複数のバックアップファイル領域に存在しないときには、前記書き換え手段が前記ファイル書き換え処理を行うことを特徴とする請求項11に記載の情報処理装置。
  13.  前記アプリケーション構成ファイルは複数であり、
     前記ファイル領域は、前記複数のアプリケーション構成ファイルを前記アプリケーション構成ファイルごとに読み出し可能に記憶し、
     前記バックアップファイル領域は、前記複数のアプリケーション構成ファイルと同一内容の複数のバックアップファイルを記憶する、
     ことを特徴とする請求項6から12のいずれか1項に記載の情報処理装置。
  14.  前記ファイル領域は、前記複数のアプリケーション構成ファイルと、当該複数のアプリケーション構成ファイルの各々の誤り検出用データとを記憶し、
     前記誤り検出手段は、前記ファイル領域に記憶されているアプリケーション構成ファイルに対し、当該アプリケーション構成ファイルの前記誤り検出用データを用いて誤り検出を行う、
     ことを特徴とする請求項13に記載の情報処理装置。
  15.  システムを起動するためのプログラムを記憶したプログラム領域と、前記プログラムと同一内容の複数のバックアッププログラムをそれぞれ記憶した複数のバックアップ領域とを含む不揮発性メモリのうち、前記プログラム領域に記憶されているプログラムを実行して前記システムの起動処理を行う処理実行工程と、
     前記処理実行工程による起動処理と並行して、前記プログラム領域に記憶されているプログラムに対して誤り検出を行う誤り検出工程と、
     前記誤り検出工程により前記プログラムに誤りが検出された場合に、前記プログラム領域に記憶されているプログラムを、前記バックアップ領域に記憶されているバックアッププログラムで書き換える復旧処理を行い、前記プログラム領域に記憶されている前記書き換え後のプログラムにより前記システムの再起動を行う再起動工程とを含み、
     前記再起動工程では、前記復旧処理を行う際、前記プログラムの前記バックアッププログラムによる書き換えの履歴を示す履歴情報を参照し、前記履歴情報に基づいて、前記複数のバックアッププログラムの中から前記書き換えに用いるバックアッププログラムを選択し、前記プログラムを前記選択されたバックアッププログラムで書き換える、
     ことを特徴とする情報処理方法。
  16.  前記再起動工程では、前記復旧処理にて、さらに前記バックアッププログラムの書き換えの順番を示す書き換え順番情報を参照し、前記書き換え順番情報と前記履歴情報とに基づいて、前記複数のバックアッププログラムの中から前記書き換えに用いるバックアッププログラムを選択し、前記プログラムを前記選択されたバックアッププログラムで書き換える、
     ことを特徴とする請求項15に記載の情報処理方法。
  17.  前記復旧処理にて選択されるバックアッププログラムは、まだ書き換えに用いられていないバックアッププログラムである、
     ことを特徴とする請求項15または16に記載の情報処理方法。
  18.  前記情報処理方法は、前記プログラムを前記バックアップ領域に記憶されていない新たなプログラムで書き換えるプログラム書き換え処理を行う書き換え工程をさらに含み、
     前記書き換え工程では、前記プログラム書き換え処理において、前記新たなプログラムを取得し、前記複数のバックアップ領域に記憶されている複数のバックアッププログラムのうち、所定のバックアッププログラムを前記新たなプログラムで書き換え、前記プログラム領域に記憶されているプログラムを前記所定のバックアッププログラムで書き換え、当該書き換え後のプログラムが実行された際に、異常がない場合は、前記複数のバックアッププログラムのうち、前記所定のバックアッププログラム以外のバックアッププログラムを、前記書き換え後の所定のバックアッププログラムまたは前記書き換え後のプログラムで書き換え、異常があった場合は、前記プログラム領域に記憶されているプログラムを、前記所定のバックアッププログラム以外のバックアッププログラムで書き換える、
     ことを特徴とする請求項15から17のいずれか1項に記載の情報処理方法。
  19.  前記誤り検出工程により前記プログラムに誤りが検出された場合において、まだ書き換えに用いられていないバックアッププログラムが前記複数のバックアップ領域に存在しないときには、前記プログラム書き換え処理を行うことを特徴とする請求項18に記載の情報処理方法。
  20.  前記不揮発性メモリは、アプリケーションを起動するためのアプリケーション構成ファイルを記憶したファイル領域と、前記アプリケーション構成ファイルと同一内容のバックアップファイルを記憶したバックアップファイル領域とをさらに含み、
     前記処理実行工程では、前記ファイル領域に記憶されているアプリケーション構成ファイルを実行してアプリケーションの起動処理を行い、
     前記誤り検出工程では、前記処理実行工程による前記アプリケーションの起動処理と並行して、前記ファイル領域に記憶されているアプリケーション構成ファイルに対して誤り検出を行い、
     前記再起動工程では、前記誤り検出工程により前記アプリケーション構成ファイルに誤りが検出された場合に、前記バックアップファイル領域に記憶されているバックアップファイルを用いて前記アプリケーションの再起動を行う、
     ことを特徴とする請求項15から19のいずれか1項に記載の情報処理方法。
  21.  前記再起動工程では、前記誤り検出工程により前記アプリケーション構成ファイルに誤りが検出された場合に、前記ファイル領域に記憶されているアプリケーション構成ファイルを、前記バックアップファイル領域に記憶されているバックアップファイルで書き換える復旧処理を行い、前記ファイル領域に記憶されている前記書き換え後のアプリケーション構成ファイルにより前記アプリケーションの再起動を行うことを特徴とする請求項20に記載の情報処理方法。
  22.  前記バックアップファイル領域は複数であり、
     前記再起動工程では、前記復旧処理を行う際、前記アプリケーション構成ファイルの前記バックアップファイルによる書き換えの履歴を示す履歴情報を参照し、前記履歴情報に基づいて、前記複数のバックアップファイル領域に記憶されている複数のバックアップファイルの中から前記書き換えに用いるバックアップファイルを選択し、前記アプリケーション構成ファイルを前記選択されたバックアップファイルで書き換える、
     ことを特徴とする請求項21に記載の情報処理方法。
  23.  前記再起動工程では、前記復旧処理にて、さらに前記バックアップファイルの書き換えの順番を示す書き換え順番情報を参照し、前記書き換え順番情報と前記履歴情報とに基づいて、前記複数のバックアップファイルの中から前記書き換えに用いるバックアップファイルを選択し、前記アプリケーション構成ファイルを前記選択されたバックアップファイルで書き換える、
     ことを特徴とする請求項22に記載の情報処理方法。
  24.  前記バックアップファイル領域は複数であり、
     前記再起動工程では、前記復旧処理を行う場合、前記複数のバックアップファイル領域に記憶されている複数のバックアップファイルのうち、まだ書き換えに用いられていないバックアップファイルを選択し、前記ファイル領域に記憶されているアプリケーション構成ファイルを前記選択されたバックアップファイルで書き換える、
     ことを特徴とする請求項21から23のいずれか1項に記載の情報処理方法。
  25.  前記バックアップファイル領域は複数であり、
     前記書き換え工程では、前記アプリケーション構成ファイルを新たなアプリケーション構成ファイルで書き換えるファイル書き換え処理を行い、
     前記ファイル書き換え処理において、前記新たなアプリケーション構成ファイルを取得し、前記複数のバックアップファイル領域に記憶されている複数のバックアップファイルのうち、所定のバックアップファイルを前記新たなアプリケーション構成ファイルで書き換え、前記ファイル領域に記憶されているアプリケーション構成ファイルを前記所定のバックアップファイルで書き換え、当該書き換え後のアプリケーション構成ファイルが実行された際に、異常がない場合は、前記複数のバックアップファイルのうち、前記所定のバックアップファイル以外のバックアップファイルを、前記書き換え後の所定のバックアップファイルまたは前記書き換え後のアプリケーション構成ファイルで書き換え、異常があった場合は、前記ファイル領域に記憶されているアプリケーション構成ファイルを、前記所定のバックアップファイル以外のバックアップファイルで書き換える、
     ことを特徴とする請求項20から24のいずれか1項に記載の情報処理方法。
  26.  前記誤り検出工程により前記アプリケーション構成ファイルに誤りが検出された場合において、まだ書き換えに用いられていないバックアップファイルが前記複数のバックアップファイル領域に存在しないときには、前記ファイル書き換え処理を行うことを特徴とする請求項25に記載の情報処理方法。
  27.  前記アプリケーション構成ファイルは複数であり、
     前記ファイル領域は、前記複数のアプリケーション構成ファイルを前記アプリケーション構成ファイルごとに読み出し可能に記憶し、
     前記バックアップファイル領域は、前記複数のアプリケーション構成ファイルと同一内容の複数のバックアップファイルを記憶する、
     ことを特徴とする請求項20から26のいずれか1項に記載の情報処理方法。
  28.  前記ファイル領域は、前記複数のアプリケーション構成ファイルと、当該複数のアプリケーション構成ファイルの各々の誤り検出用データとを記憶し、
     前記誤り検出工程では、前記ファイル領域に記憶されているアプリケーション構成ファイルに対し、当該アプリケーション構成ファイルの前記誤り検出用データを用いて誤り検出を行う、
     ことを特徴とする請求項27に記載の情報処理方法。
  29.  システムを起動するためのプログラムを記憶したプログラム領域と、前記プログラムと同一内容の複数のバックアッププログラムをそれぞれ記憶した複数のバックアップ領域とを含む不揮発性メモリのうち、前記プログラム領域に記憶されているプログラムを実行して前記システムの起動処理を行う処理実行工程と、
     前記処理実行工程による起動処理と並行して、前記プログラム領域に記憶されているプログラムに対して誤り検出を行う誤り検出工程と、
     前記誤り検出工程により前記プログラムに誤りが検出された場合に、前記プログラム領域に記憶されているプログラムを、前記バックアップ領域に記憶されているバックアッププログラムで書き換える復旧処理を行い、前記プログラム領域に記憶されている前記書き換え後のプログラムにより前記システムの再起動を行う再起動工程とをコンピュータに実行させ、
     前記再起動工程では、前記復旧処理を行う際、前記プログラムの前記バックアッププログラムによる書き換えの履歴を示す履歴情報を参照し、前記履歴情報に基づいて、前記複数のバックアッププログラムの中から前記書き換えに用いるバックアッププログラムを選択し、前記プログラムを前記選択されたバックアッププログラムで書き換える、
     ことを特徴とするコンピュータプログラム。
PCT/JP2012/064885 2012-01-05 2012-06-11 情報処理装置、情報処理方法、およびコンピュータプログラム WO2013103023A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2013552383A JP5575338B2 (ja) 2012-01-05 2012-06-11 情報処理装置、情報処理方法、およびコンピュータプログラム
CN201280065486.6A CN104025047B (zh) 2012-01-05 2012-06-11 信息处理装置、信息处理方法以及计算机程序
US14/370,657 US9471435B2 (en) 2012-01-05 2012-06-11 Information processing device, information processing method, and computer program
DE112012005589.6T DE112012005589T5 (de) 2012-01-05 2012-06-11 Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Computerprogramm

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012-000492 2012-01-05
JP2012000492 2012-01-05

Publications (1)

Publication Number Publication Date
WO2013103023A1 true WO2013103023A1 (ja) 2013-07-11

Family

ID=48745093

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2012/064885 WO2013103023A1 (ja) 2012-01-05 2012-06-11 情報処理装置、情報処理方法、およびコンピュータプログラム

Country Status (5)

Country Link
US (1) US9471435B2 (ja)
JP (1) JP5575338B2 (ja)
CN (1) CN104025047B (ja)
DE (1) DE112012005589T5 (ja)
WO (1) WO2013103023A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016103159A (ja) * 2014-11-28 2016-06-02 京セラドキュメントソリューションズ株式会社 画像処理装置及びプログラムのバックアップ方法
JP2019082970A (ja) * 2017-10-31 2019-05-30 株式会社 ニューテック 記憶装置および情報処理装置
JP2022182841A (ja) * 2021-05-28 2022-12-08 キヤノン株式会社 情報処理装置及びその制御方法
JP7477328B2 (ja) 2020-03-16 2024-05-01 Fdk株式会社 制御装置及び制御プログラムの書き換え方法

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160006630A1 (en) * 2013-05-17 2016-01-07 Hitachi, Ltd. Computer system evaluation method, computer system control method, and computer system
FR3024869B1 (fr) * 2014-08-14 2016-08-26 Zodiac Aero Electric Systeme de distribution electrique pour un aeronef et procede de commande correspondant
CN108471935A (zh) * 2016-04-18 2018-08-31 奥林巴斯株式会社 电池驱动型医疗装置
US10534618B2 (en) * 2016-09-27 2020-01-14 American Megatrends International, Llc Auto bootloader recovery in BMC
CN106850342B (zh) * 2017-01-20 2020-11-24 苏州浪潮智能科技有限公司 测试交换机兼容性和稳定性的方法及装置
CN110402428B (zh) * 2017-03-24 2024-01-30 日立安斯泰莫株式会社 车载控制装置、及程序更新软件
JP6915565B2 (ja) * 2018-02-22 2021-08-04 京セラドキュメントソリューションズ株式会社 画像処理装置
US11010249B2 (en) * 2019-01-08 2021-05-18 Dell Products L.P. Kernel reset to recover from operating system errors
CN110060726B (zh) * 2019-01-30 2022-12-16 北京品驰医疗设备有限公司 快闪存储器的程序检测方法和植入式医疗设备
WO2020158075A1 (ja) * 2019-01-30 2020-08-06 デンソートリム株式会社 メモリの書き換え履歴記録装置
CN110059005B (zh) * 2019-01-30 2022-12-16 北京品驰医疗设备有限公司 快闪存储器的程序检测方法和植入式医疗设备
CN110083393B (zh) * 2019-01-30 2022-12-16 北京品驰医疗设备有限公司 快闪存储器和植入式医疗设备
JP2020201637A (ja) * 2019-06-07 2020-12-17 京セラドキュメントソリューションズ株式会社 情報処理システム
JP2022066084A (ja) * 2020-10-16 2022-04-28 キヤノン株式会社 情報処理装置
CN112596766A (zh) * 2020-12-24 2021-04-02 浙江合众新能源汽车有限公司 基于Bootloader的软件升级方法及装置
CN115185722A (zh) * 2021-04-02 2022-10-14 广州三星通信技术研究有限公司 异常规避方法和异常规避装置
CN114253761A (zh) * 2021-12-20 2022-03-29 中国科学院微小卫星创新研究院 一种基于校验的程序块三模存储方法
US11922175B2 (en) * 2022-07-29 2024-03-05 Arista Networks, Inc. Unplanned reboot expedited recovery for network devices
US12014056B2 (en) * 2022-08-23 2024-06-18 Netapp, Inc. Slice file recovery using dead replica slice files
CN116319269B (zh) * 2023-05-19 2023-09-15 南方电网数字电网研究院有限公司 具备通讯故障自检及快速隔离的新能源边缘侧通信模块

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001331327A (ja) * 2000-05-24 2001-11-30 Matsushita Electric Ind Co Ltd 電子機器
JP2005275697A (ja) * 2004-03-24 2005-10-06 Toshiba Microelectronics Corp マイクロプロセッサブートアップ制御装置、不揮発性メモリの制御装置及び情報処理システム
JP2008084291A (ja) * 2006-08-28 2008-04-10 Fujitsu Ltd 記憶装置、制御方法及び制御装置
WO2008075646A1 (ja) * 2006-12-18 2008-06-26 International Business Machines Corporation 情報処理システムおよび該システムの起動/リカバリ方法
JP2008217636A (ja) * 2007-03-07 2008-09-18 Alpine Electronics Inc データ処理装置及びプログラム起動方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05173965A (ja) 1991-12-24 1993-07-13 Hitachi Denshi Ltd 端末局プログラムの書替え方式
JP3069877B2 (ja) 1992-08-26 2000-07-24 株式会社東芝 情報送受信装置
JPH07255080A (ja) 1994-03-16 1995-10-03 Fujitsu Ltd 無線基地局装置
GB2290890B (en) * 1994-06-29 1999-03-24 Mitsubishi Electric Corp Information processing system
JP3589433B2 (ja) 1995-11-27 2004-11-17 富士通株式会社 データベース保証方式
JPH1011293A (ja) 1996-06-27 1998-01-16 Nec Corp 情報処理装置
JP2940480B2 (ja) 1996-07-05 1999-08-25 日本電気株式会社 コンピュータシステム
JPH1091405A (ja) 1996-09-18 1998-04-10 Hitachi Ltd ソフトウェア保守方法
US6754855B1 (en) * 1999-12-01 2004-06-22 Microsoft Corporation Automated recovery of computer appliances
GB2367656A (en) * 2000-10-06 2002-04-10 Hewlett Packard Co Self-repairing operating system for computer entities
US6651188B2 (en) * 2001-06-29 2003-11-18 Intel Corporation Automatic replacement of corrupted BIOS image
JP3677252B2 (ja) * 2002-03-22 2005-07-27 株式会社東芝 情報機器、記憶媒体、及び初期状態復元方法
US7340638B2 (en) * 2003-01-30 2008-03-04 Microsoft Corporation Operating system update and boot failure recovery
US20040268116A1 (en) * 2003-06-30 2004-12-30 Vasisht Virender K Fault tolerant recovery block with reduced flash footprint
US7370234B2 (en) * 2004-10-14 2008-05-06 International Business Machines Corporation Method for system recovery
JP2008117148A (ja) 2006-11-02 2008-05-22 Ricoh Co Ltd 情報処理装置および情報処理方法
US7900036B2 (en) * 2006-12-18 2011-03-01 International Business Machines Corporation System and method for implementing boot/recovery on a data processing sysem
JP5072092B2 (ja) 2007-12-18 2012-11-14 株式会社リコー リカバリー制御装置、制御方法、プログラム及びコンピュータ読み取り可能な記憶媒体
JP2010026650A (ja) 2008-07-16 2010-02-04 Mitsubishi Electric Corp 制御装置
TW201030518A (en) * 2009-02-11 2010-08-16 Inventec Corp BIOS, computer device and BIOS recovery
TW201115341A (en) * 2009-10-20 2011-05-01 Inventec Corp Method for protecting redundant data
CN102053875B (zh) 2009-10-29 2013-03-27 纬创资通股份有限公司 恢复计算机系统的基本输入输出系统的方法及计算机系统
US20120246384A1 (en) * 2011-03-21 2012-09-27 Winbond Electronics Corp. Flash memory and flash memory accessing method
US8826080B2 (en) * 2011-07-29 2014-09-02 The Boeing Company Methods and systems for preboot data verification
US9183091B2 (en) * 2012-09-27 2015-11-10 Intel Corporation Configuration information backup in memory systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001331327A (ja) * 2000-05-24 2001-11-30 Matsushita Electric Ind Co Ltd 電子機器
JP2005275697A (ja) * 2004-03-24 2005-10-06 Toshiba Microelectronics Corp マイクロプロセッサブートアップ制御装置、不揮発性メモリの制御装置及び情報処理システム
JP2008084291A (ja) * 2006-08-28 2008-04-10 Fujitsu Ltd 記憶装置、制御方法及び制御装置
WO2008075646A1 (ja) * 2006-12-18 2008-06-26 International Business Machines Corporation 情報処理システムおよび該システムの起動/リカバリ方法
JP2008217636A (ja) * 2007-03-07 2008-09-18 Alpine Electronics Inc データ処理装置及びプログラム起動方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016103159A (ja) * 2014-11-28 2016-06-02 京セラドキュメントソリューションズ株式会社 画像処理装置及びプログラムのバックアップ方法
JP2019082970A (ja) * 2017-10-31 2019-05-30 株式会社 ニューテック 記憶装置および情報処理装置
JP7477328B2 (ja) 2020-03-16 2024-05-01 Fdk株式会社 制御装置及び制御プログラムの書き換え方法
JP2022182841A (ja) * 2021-05-28 2022-12-08 キヤノン株式会社 情報処理装置及びその制御方法
JP7292328B2 (ja) 2021-05-28 2023-06-16 キヤノン株式会社 情報処理装置及びその制御方法

Also Published As

Publication number Publication date
JPWO2013103023A1 (ja) 2015-05-11
US9471435B2 (en) 2016-10-18
DE112012005589T5 (de) 2014-10-16
CN104025047B (zh) 2017-06-06
JP5575338B2 (ja) 2014-08-20
CN104025047A (zh) 2014-09-03
US20140365823A1 (en) 2014-12-11

Similar Documents

Publication Publication Date Title
JP5575338B2 (ja) 情報処理装置、情報処理方法、およびコンピュータプログラム
TWI515660B (zh) 韌體變量更新方法
TWI501253B (zh) 於裝置開機期間處置來自非揮發性記憶體之錯誤
JP5431111B2 (ja) 情報処理装置及びシステム設定方法
US9205809B2 (en) Vehicle unit and method for operating the vehicle unit
US20090094450A1 (en) Firmware image update and management
WO2016206514A1 (zh) 启动处理方法及装置
US20090271660A1 (en) Motherboard, a method for recovering the bios thereof and a method for booting a computer
WO2011095074A1 (zh) 一种终端设备系统升级方法及终端设备
CN101807152A (zh) 自我验证选择只读存储器的基本输出入系统及其验证方法
CN106775674B (zh) 一种基于通用引导加载程序的设备及其启动方法
WO2016155524A1 (zh) 一种系统安全升级的方法和装置
TW201314574A (zh) 用於電腦系統之基本輸入輸出系統程式更新方法及更新裝置
WO2015184732A1 (zh) 引导程序的存储方法、故障恢复方法及设备、计算机存储介质
JP6021597B2 (ja) 情報処理装置、情報処理方法、およびコンピュータプログラム
JP2022142263A (ja) 情報処理装置及び情報処理プログラム
JPWO2004081791A1 (ja) 仮想計算機システム、仮想計算機システムにおけるファームウェアアップデート方法
JP2011164827A (ja) フラッシュメモリを備えた電子機器およびフラッシュメモリに格納されたプログラムの更新方法
JP5585502B2 (ja) 情報処理装置およびそのファームウェア更新方法
JP6011687B1 (ja) 記憶装置およびその制御方法
TWI839136B (zh) 基板管理控制器的下游裝置的韌體更新方法
US11507385B1 (en) Embedded electronic device, boot method, and embedded electronic device readable recording medium with stored program
TWI480799B (zh) 嵌入式系統之韌體更新方法及設備
JP6072521B2 (ja) コンピュータ起動システムおよびコンピュータ起動プログラムとコンピュータならびにコンピュータ起動方法
JP2010282645A (ja) Linuxプログラム起動システム

Legal Events

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

Ref document number: 12864520

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013552383

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14370657

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 112012005589

Country of ref document: DE

Ref document number: 1120120055896

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12864520

Country of ref document: EP

Kind code of ref document: A1