WO2014109100A1 - 情報処理装置、情報処理方法及びプログラム - Google Patents

情報処理装置、情報処理方法及びプログラム Download PDF

Info

Publication number
WO2014109100A1
WO2014109100A1 PCT/JP2013/077223 JP2013077223W WO2014109100A1 WO 2014109100 A1 WO2014109100 A1 WO 2014109100A1 JP 2013077223 W JP2013077223 W JP 2013077223W WO 2014109100 A1 WO2014109100 A1 WO 2014109100A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
copy
unit
determined
activation
Prior art date
Application number
PCT/JP2013/077223
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 JP2014556322A priority Critical patent/JPWO2014109100A1/ja
Publication of WO2014109100A1 publication Critical patent/WO2014109100A1/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/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/16Error detection or correction of the data by redundancy in hardware
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements

Definitions

  • the present invention relates to an information processing apparatus, an information processing method, and a program.
  • NAND flash memories which are nonvolatile memories
  • the NAND flash memory has an advantage that the capacity is increased as compared with the NOR flash memory, and the bit unit price is low.
  • the NAND flash memory has demerits that there is an upper limit in the number of data writes, a limited data retention period, and a limited number of data reads. Therefore, there is a possibility that a bit error occurs when reading data and correct data cannot be read. Therefore, when a program for starting the system is stored in the NAND flash memory, a situation where the system cannot be started due to a bit error or a situation where the system hangs up after starting may occur.
  • Patent Document 1 the first boot program is read from the nonvolatile memory for the system, error detection is performed on the first boot program, and the read first boot program is illegally changed.
  • a control device is described that reads the second boot program from the non-volatile memory for backup when it is determined that it is. The control device performs error detection on the read second boot program, and outputs an error when it is determined that the second boot program is illegally changed.
  • the control device performs a boot process using the boot program.
  • Patent Document 2 describes an information processing apparatus that, when rewriting data stored in a non-volatile memory, stores a copy of data to be rewritten as backup data prior to rewriting the data. Has been.
  • the information processing apparatus operates after determining whether or not the rewritten data has been normally processed by using a flag indicating the rewrite execution status, and confirming the validity.
  • Patent Document 2 can recover data even if the power is cut off during data rewriting.
  • the data rewrite target is a boot program
  • an object of the present invention is to enable restart with a highly reliable startup program when an error is detected in the startup program.
  • An information processing apparatus includes a storage unit that stores a first program, a second program, and a third program as a startup application program, and a first program stored in the storage unit, A process execution unit that selects one of the second program and the third program and performs a start-up process using the selected program, and the second program and the third program stored in the storage unit are respectively A program determination unit for determining whether the program is correct, and a program determined to be correct by the program determination unit among the second program and the third program stored in the storage unit is determined as a copy source program, Copy determination unit that determines a program that is not determined to be correct by the program determination unit as a copy destination program A copy processing unit that updates a copy destination program determined by the copy determination unit with a copy source program determined by the copy determination unit, and a copy source program determined by the copy determination unit in the storage unit.
  • An information processing method selects any one of a first program, a second program, and a third program as an activation application program, and performs activation processing using the selected program.
  • Copy to update the copy destination program determined in the determination process A storage process for storing copy source information indicating a copy source program determined in the copy determination process, and a process execution process cannot perform a startup process using the first program, A startup control process that refers to the copy source information stored in the startup storage process and selects the copy source program determined in the copy determination process to instruct the process execution process to perform the startup process.
  • the second program or the third program is selected according to an instruction from the activation control process, and the activation process is performed using the selected program.
  • a program according to an aspect of the present invention includes a first program, a second program, and a third program stored as an application program for starting a computer, a first program stored in the storage unit, The process execution means for selecting either the second program or the third program and performing the startup process using the selected program, and the second program and the third program stored in the storage means are correct.
  • Program determining means for determining whether the program is determined to be correct among the second program and the third program stored in the storage means as the copy source program, and determining the program A program that is not determined to be correct
  • a copy determination unit that determines the copy destination, a copy processing unit that updates the copy destination program determined by the copy determination unit with the copy source program determined by the copy determination unit in the storage unit, and a determination by the copy determination unit
  • Startup storage means for storing copy source information indicating the copied copy source program, and the startup storage means when the process execution means cannot perform startup processing using the first program stored in the storage means
  • the copy source information stored in the copy determination unit is referred to, and the copy execution unit is selected to perform a start-up process by selecting the copy-source program determined by the copy determination unit, and the process execution unit is functioned as a start control unit.
  • the execution unit executes the second program or the third program stored in the storage unit. Select the program, and performs the activation process with the selected program.
  • the activation when an error is detected in the activation program, the activation can be restarted with a highly reliable activation program.
  • FIG. 1 is a block diagram schematically showing a configuration of an information processing device according to a first embodiment.
  • FIG. 3 is a conceptual diagram showing a program stored in a second ROM in the first embodiment.
  • 3 is a flowchart showing an operation of a start control unit in the first embodiment.
  • 3 is a flowchart showing a startup operation of a CPU in the first embodiment.
  • 4 is a flowchart illustrating processing in a program determination unit according to the first embodiment.
  • 6 is a flowchart illustrating processing in a copy determination unit according to the first embodiment.
  • 3 is a flowchart illustrating a start state monitoring process of a start control unit in the first embodiment.
  • FIG. 3 is a block diagram schematically showing a configuration of an information processing device according to a second embodiment.
  • 11 is a conceptual diagram showing a program and data stored in a second ROM in the second embodiment.
  • 10 is a flowchart illustrating processing in a start control unit according to the second embodiment.
  • 10 is a flowchart illustrating a startup operation of a CPU according to the second embodiment.
  • FIG. 1 is a block diagram schematically showing the configuration of the information processing apparatus 100 according to the first embodiment.
  • an information processing apparatus 100 includes a CPU (Central Processing Unit) 110, a first ROM (Read Only Memory) 120, a second ROM 121, a RAM (Random Access Memory) 122, a startup control unit 130, and a startup memory. Unit 131 and timer 132.
  • the CPU 110, the first ROM 120, the second ROM 121, and the RAM 122 are connected by a bus 140.
  • the CPU 110 is a processing execution unit that performs information processing in the information processing apparatus 100.
  • the CPU 110 reads a program stored in the first ROM 120 or the second ROM 121 to the RAM 122 and performs various processes. For example, the CPU 110 selects any one of the first program, the second program, and the third program as the activation application program stored in the second ROM 121, and performs the activation process using the selected program. Do.
  • the CPU 110 includes a program determination unit 111, a copy determination unit 112, and a copy processing unit 113.
  • the program determination unit 111 determines whether the contents of the plurality of programs stored in the second ROM 121 are correct.
  • the copy determination unit 112 determines a copy source program and a copy destination program for a plurality of programs stored in the second ROM 121 according to the determination result in the program determination unit 111. For example, the copy determination unit determines a program determined to be correct by the program determination unit 111 out of the second program and the third program stored in the second ROM 121 as a copy source program, and is determined to be correct by the program determination unit 111. The program that has not been determined is determined as the copy destination program.
  • the copy processing unit 113 performs a copy process of a plurality of programs stored in the second ROM 121 based on the determination by the copy determination unit 112. For example, the copy processing unit 113 updates the copy destination program determined by the copy determination unit 112 with the copy source program determined by the copy determination unit 112.
  • 1st ROM120 is a non-volatile memory as a memory
  • the first ROM 120 is loaded with a minimum program for starting the CPU 110.
  • the first ROM 120 does not have a large program size. Therefore, there is no limit on the number of readings such as a NOR flash, and a highly reliable device can be used.
  • the second ROM 121 is a non-volatile memory as a storage unit that stores an application program that is read and executed by execution of a startup program.
  • the second ROM 121 stores three types of programs and error detection data corresponding to each of them.
  • FIG. 2 is a conceptual diagram showing a program stored in the second ROM 121.
  • Reference numeral 160 denotes a first program.
  • Reference numeral 161 is error detection data of the first program 160.
  • the error detection data is a checksum or CRC (Cyclic Redundancy Check).
  • Reference numeral 162 denotes a second program.
  • Reference numeral 163 is error detection data of the second program 162.
  • Reference numeral 164 denotes a third program.
  • Reference numeral 165 is error detection data of the third program 164.
  • the first program 160, the second program 162, and the third program 164 may have the same contents. Further, the second program 162 and the third program 164 may be configured such that the versions are the same and only the first program has a new version.
  • the second ROM 121 may be composed of a NAND flash memory for recording a large-scale program.
  • the RAM 122 is a readable / writable memory used for the CPU 110 to execute a startup program and an application program.
  • the start control unit 130 performs start control of the CPU 110. For example, when the CPU 110 cannot perform the activation process using the first program 160, the activation control unit 130 performs the activation process using the program determined as the copy source program by the copy determination unit 112. Instructs the CPU 110. At this time, the activation control unit 130 performs reset control and activation mode setting pin control of the CPU 110 and communicates with the CPU 110. Here, the activation control unit 130 gives the CPU 110 a reset control signal RC when controlling the reset of the CPU 110. In addition, when the activation control unit 130 sets the activation parameter in the activation mode setting pin of the CPU 110, the activation control unit 130 gives the activation mode setting pin control signal BPC to the CPU 110. Furthermore, the activation control unit 130 exchanges a communication signal CO with the CPU 110.
  • the activation storage unit 131 is a memory to which the activation control unit 130 writes and refers to data.
  • the activation storage unit 131 stores activation parameters and copy source information.
  • the activation parameter is “A”
  • the first program is used at the time of activation.
  • the activation parameter is “B”
  • the second program is used at the time of activation.
  • the activation parameter is “C”
  • the third program is used at the time of activation.
  • the copy source information indicates an application program (copy source program) used as a copy source.
  • the copy source information is “B”, it indicates that the application program used as the copy source is the second program, and when the copy source information is “C”, it is used as the copy source. Indicates that the application program to be executed is the third program.
  • Timer 132 is a time measuring unit that measures time. For example, the timer 132 measures the time after the CPU 110 starts the activation process.
  • the information processing apparatus 100 starts to operate when the power supply 150 is turned on. For example, in the information processing apparatus 100, when the power 150 is turned on, the reset of the activation control unit 130 is released, and the activation control unit 130 operates. The operation at this time will be described with reference to the flowchart of FIG.
  • FIG. 3 is a flowchart showing the operation of the activation control unit 130.
  • the activation control unit 130 resets the CPU 110 (S10).
  • the activation control unit 130 gives the CPU 110 a reset control signal RC that instructs resetting.
  • CPU110 which received such a signal will be in a reset state.
  • the activation control unit 130 reads the activation parameter stored in the activation storage unit 131 (S11). Then, the activation control unit 130 determines whether or not the read activation parameter is “B” (S12). If the activation parameter is “B” (S12: Yes), the process proceeds to step S13. If the activation parameter is not “B” (S12: No), the process proceeds to step S14.
  • step S13 the activation control unit 130 determines the activation parameter as “B”. On the other hand, in step S14, the activation control unit 130 determines whether or not the read activation parameter is “C”. If the activation parameter is “C” (S14: Yes), the process proceeds to step S15. If the activation parameter is not “C” (S14: No), the process proceeds to step S16.
  • step S15 the activation control unit 130 determines the activation parameter as “C”.
  • step S16 the activation control unit 130 determines the activation parameter as “A”.
  • the activation control unit 130 transmits the activation parameter determined in step S13, S15, or S16 to the CPU 110 (S17).
  • the output pin 2 bit of the activation control unit 130 and the input pin 2 bit of the CPU 110 are connected and the activation control unit 130 is the activation parameter “A”
  • the output pin 2 bit is set to [0, 1]
  • the activation parameter When “B”, the output pin 2 bit is set to [1, 0], and when the activation parameter is “C”, the output pin 2 bit is set to [1, 1].
  • “0” and “1” of the output pin 2 bits correspond to “Low” and “High” in the digital signal, respectively.
  • the activation control unit 130 sets the activation parameter to the output pin, and transmits the activation parameter to the CPU 110.
  • the starting control part 130 cancels
  • the activation control unit 130 gives the CPU 110 a reset control signal RC instructing release of reset. Receiving such a signal, the CPU 110 releases the reset state and starts operating.
  • CPU110 reads and executes the program memorize
  • FIG. 4 is a flowchart showing the startup operation of the CPU 110.
  • the CPU 110 performs initial setting (S20). This is, for example, the setting of the access timing parameter of the first ROM 120 and the setting of the access timing of the second ROM 121.
  • the CPU 110 performs initial setting of the RAM 122 (S21).
  • the RAM 122 is an SDRAM (Synchronous Dynamic Random Access Memory)
  • the CPU 110 performs memory clock setting, response speed setting, bus width setting, address pin setting, and the like. By performing such settings, the CPU 110 can access the RAM 122.
  • the CPU 110 refers to the state of the input pin and acquires the activation parameter designated by the activation control unit 130 (S22). Then, the CPU 110 determines whether or not the acquired activation parameter is “B” (S23). If the acquired activation parameter is “B” (S23: Yes), the process proceeds to step S24. If the acquired activation parameter is not “B” (S23: No), the process proceeds to step S24. Proceed to S25.
  • step S24 the CPU 110 specifies the activation parameter as “B”.
  • step S25 the CPU 110 determines whether or not the activation parameter is “C”. If the activation parameter is “C” (S25: Yes), the process proceeds to step S26. If the activation parameter is not “C” (S25: No), the process proceeds to step S27.
  • step S ⁇ b> 26 the CPU 110 specifies the activation parameter as “C”.
  • step S27 the CPU 110 specifies the activation parameter as “A”.
  • CPU110 reads the program corresponding to the starting parameter specified by step S24, S26, or S27 from the 2nd ROM121, and performs it (S28). For example, when the specified activation parameter is “A”, the CPU 110 reads the first program 160 from the second ROM 121. When the specified activation parameter is “B”, the CPU 110 reads the second program 162 from the second ROM 121. Further, when the specified activation parameter is “C”, the CPU 110 reads the third program 164 from the second ROM 121. At this time, the CPU 110 calculates error detection data for each program and compares it with error detection data corresponding to each program to confirm whether the program has no problem as data.
  • the CPU 110 can select and activate the program recorded in the second ROM 121.
  • the backup process is realized by the program determination unit 111, the copy determination unit 112, and the copy processing unit 113. The process flow of the program determination unit 111 will be described with reference to the flowchart of FIG.
  • FIG. 5 is a flowchart showing processing in the program determination unit 111.
  • the program determination unit 111 calculates error detection data of the second program 162 (S30).
  • the program determination unit 111 compares the error detection data calculated in step S30 with the second error detection data 163 stored in the second ROM 121 (S31), so that the second program is correct. Determine whether or not. For example, if the error detection data calculated in step S30 matches the second error detection data 163 (S31: Yes), the process proceeds to step S32, and the error detection data calculated in step S30 If the second error detection data 163 does not match (S31: No), the process proceeds to step S33.
  • step S32 the program determination unit 111 determines that the second program 162 is correct.
  • step S33 the program determination unit 111 determines that the second program 162 is illegal.
  • the program determination unit 111 calculates error detection data of the third program 164 (S34).
  • the program determination unit 111 compares the error detection data calculated in step S34 with the third error detection data 165 stored in the second ROM 121 (S35), so that the third program is correct. Determine whether or not. For example, if the error detection data calculated in step S34 matches the third error detection data 165 (S35: Yes), the process proceeds to step S36, and the error detection data calculated in step S34 If the third error detection data 165 does not match (S35: No), the process proceeds to step S37.
  • step S36 the program determination unit 111 determines that the third program 164 is correct.
  • step S37 the program determination unit 111 determines that the third program 164 is illegal.
  • FIG. 6 is a flowchart showing processing in the copy determination unit 112.
  • the copy determination unit 112 determines whether the second program 162 is correct based on the determination result of the program determination unit 111 (S40). If the second program 162 is correct (S40: Yes), the process proceeds to step S41. If the second program 162 is invalid (S40: No), the process proceeds to step S42.
  • step S41 the copy determination unit 112 determines “B” as the copy source.
  • step S42 the copy determination unit 112 determines whether the third program 164 is correct based on the determination result of the program determination unit 111 (S42). If the third program 164 is correct (S42: Yes), the process proceeds to step S43. If the third program 164 is invalid (S42: No), the process proceeds to step S44.
  • step S43 the copy determination unit 112 determines the copy source to be “C”. On the other hand, in step S44, the copy determination unit 112 raises the failure flag. This failure flag is assumed to be stored in the RAM 122, for example.
  • the CPU 110 Based on the copy source determined by the copy determination unit 112, the CPU 110 generates copy source information. For example, when the copy source is “B”, the copy source information is “B” so as to indicate the second program 162, and when the copy source is “C”, the copy source information is third. As shown in the program 164, “C” is assumed. Then, the CPU 110 transmits the generated copy source information to the activation control unit 130, and the activation control unit 130 stores the copy source information in the activation storage unit 131.
  • the copy processing unit 113 performs a copy process based on the processing results in the program determination unit 111 and the copy determination unit 112. For example, if both the second program 162 and the third program 164 are correct, the copy processing unit 113 does not perform the copy process. On the other hand, when any one of the second program 162 and the third program 164 is illegal, the copy processing unit 113 performs a copy process from the program determined as the copy source to the copy destination program. For example, in the second ROM 121, the copy processing unit 113 deletes the program that is the copy destination (the program determined to be illegal), and stores the program determined as the copy source as the copy destination program. If both programs are illegal, the copy processing unit 113 does not perform copy processing.
  • the backup processing performed by the program determination unit 111, the copy determination unit 112, and the copy processing unit 113 is periodically performed.
  • the implementation may be based on the number of times of activation or the elapsed time after the data is written. May be based.
  • the backup process may be performed when the predetermined number of activations has been reached, or when the predetermined elapsed time has elapsed since the first activation or the previous backup process.
  • FIG. 7 is a flowchart showing the activation state monitoring process of the activation control unit 130.
  • the flowchart in FIG. 7 is started after the reset state of the CPU 110 is released in step S18 of the flowchart in FIG.
  • the activation control unit 130 sets a timer threshold value after canceling the reset state of the CPU 110 (S50).
  • the timer threshold value is determined in advance.
  • the starting control part 130 starts the timer 132, and starts time-measurement (S51).
  • the timer 132 is a type that starts from zero and adds.
  • the activation control unit 130 compares the value of the timer 132 with the timer threshold value (S52). If the value of the timer 132 is equal to or less than the timer threshold value (S52: Yes), the process proceeds to step S53. If the value of the timer 132 exceeds the timer threshold value (S52: No), the process proceeds to step S53. Proceed to S55.
  • step S53 the activation control unit 130 notifies that the application program (here, the first program 160, the second program 162, or the third program 164) being executed by the CPU 110 has been completed up to a predetermined process. Check if it is. If the predetermined process has been completed (S53: Yes), the process proceeds to step S54. If the predetermined process has not been completed (S53: No), the process proceeds to step S54. Return to S52.
  • the application program here, the first program 160, the second program 162, or the third program 164
  • step S54 the activation control unit 130 determines normal activation and ends the flow.
  • step S55 it is determined that the program in use (here, the first program 160, the second program 162, or the third program 164) is not operating normally, and the activation control unit 130 stores it in the activation storage unit 131.
  • the activation parameter is set based on the copied source information (S55). Note that the activation parameter set in step S55 is “B” or “C”. And the starting control part 130 notifies CPU110 by setting a starting parameter to an output pin similarly to FIG.3 S17.
  • the activation control unit 130 resets the CPU 110 (S56). For example, the activation control unit 130 sets the CPU 110 to the reset state, and then cancels the CPU reset state. Then, the process returns to step S50.
  • the CPU 110 executes processing according to the flow shown in FIG. 4 after canceling the reset, and starts using the second program 162 or the third program 164 stored in the second ROM 121.
  • the copy process in the copy processing unit 113 the copy source, that is, the correct operation
  • the program to be executed can be specified by referring to the copy source information. For this reason, even if the first program 160 does not start correctly at that timing, the system can be started with the application program (copy source program) that starts correctly by the restart processing of the start control unit 130.
  • the data capacity of application programs has increased remarkably in recent years as devices have become more sophisticated, and the copy process can take a lot of time, causing a power interruption during the copy process, and Even when the first program 160 does not start correctly at that timing, the information processing apparatus 100 according to the first embodiment can start the system.
  • a configuration is described in which when the first program 160 is not started, the second program 162 or the third program 164 being backed up is used for restarting.
  • the group to be backed up is restarted using the copy source of the first program 160 and the third program 164. It may be configured.
  • the group to be backed up is set as the first program 160 and the second program 162, and when the third program 164 is not started, the group is restarted using the copy source of the first program 160 and the second program 162. It may be configured.
  • FIG. FIG. 8 is a block diagram schematically showing the configuration of the information processing apparatus 200 according to the second embodiment.
  • the information processing apparatus 200 includes a CPU 210, a first ROM 120, a second ROM 221, a RAM 122, a start control unit 230, a start storage unit 231, and a timer 132.
  • the CPU 210, the first ROM 120, the second ROM 221 and the RAM 122 are connected by a bus 140.
  • the information processing apparatus 200 according to the second embodiment is the information according to the first embodiment in terms of processing in the CPU 210 and the activation control unit 230 and information stored in the second ROM 221 and the activation storage unit 231. Different from the processing apparatus 100.
  • copy source information indicating the copy source program is stored in the activation storage unit 131.
  • the activation control unit 130 refers to the copy source information stored in the activation storage unit 131 and notifies the activation parameter to the CPU 110 when the first program 160 does not activate correctly. Thus, the CPU 110 is restarted.
  • the copy source information is stored in the second ROM 221 configured with the NAND flash memory, and when the CPU 210 executes the startup program stored in the first ROM 120, the first information is stored.
  • the application program to be used is selected with reference to the copy source information stored in the 2ROM 221.
  • the second embodiment will be described in detail.
  • the CPU 210 is a processing execution unit that performs information processing in the information processing apparatus 200.
  • the CPU 210 includes a program determination unit 111, a copy determination unit 112, and a copy processing unit 113.
  • the processing in the program determination unit 111, the copy determination unit 112, and the copy processing unit 113 in the second embodiment is the same as the processing performed by these parts in the first embodiment.
  • the CPU 110 transmits the copy source information generated according to the determination in the copy determination unit 112 to the activation control unit 130 and stores it in the activation storage unit 131.
  • the CPU 210 stores the copy source information in the second ROM 221.
  • the second ROM 221 is a non-volatile memory that stores an application program and copy source information that are read and executed by execution of the startup program.
  • the second ROM 221 stores three types of programs, error detection data corresponding to each of the programs, and copy source information.
  • FIG. 9 is a conceptual diagram showing programs and data stored in the second ROM 221.
  • Reference numeral 160 denotes a first program.
  • Reference numeral 161 is error detection data of the first program 160.
  • Reference numeral 162 denotes a second program.
  • Reference numeral 163 is error detection data of the second program 162.
  • Reference numeral 164 denotes a third program.
  • Reference numeral 165 is error detection data of the third program 164.
  • Reference numerals 160 to 165 are the same as reference numerals 160 to 165 in the first embodiment (see FIG. 2).
  • Reference numeral 266 is copy source information.
  • the copy source information 266 indicates an application program (second program or third program) used as a copy source, as in the first embodiment.
  • the activation control unit 230 performs activation control of the CPU 210.
  • the activation control of the activation control unit 230 in the second embodiment will be described in detail with reference to FIG.
  • the activation control unit 130 according to the first embodiment performs a process of storing the copy source information provided from the CPU 110 in the activation storage unit 131.
  • the activation control unit 230 according to the second embodiment performs such a process. Do not do.
  • the activation storage unit 231 is a memory to which the activation control unit 230 writes and refers to data.
  • the activation storage unit 231 in the second embodiment stores activation parameters.
  • the activation storage unit 231 in the second embodiment does not store copy source information.
  • the activation parameter stored in the activation storage unit 231 indicates a value of “A” or “B”.
  • the activation parameter is “A”
  • the first program 160 is used at the time of activation.
  • the second program 162 or the third program 164 is used at the time of activation according to the copy source information.
  • the information processing apparatus 200 starts to operate when the power supply 150 is turned on. First, the reset of the activation control unit 230 is released, and the activation control unit 230 operates. The operation at that time will be described with reference to the flowchart of FIG.
  • the flow shown in FIG. 10 is an alternative to the flow shown in FIGS. 3 and 7 in the first embodiment.
  • FIG. 10 is a flowchart showing processing in the activation control unit 230.
  • the activation control unit 230 first initializes the number-of-times parameter N (S60).
  • the activation control unit 230 sets the value of the number-of-times parameter N to “0”.
  • the number parameter N is a parameter that is linked to the number of activations.
  • the number-of-times parameter N indicates, for example, the number of activations.
  • the activation control unit 230 sets the activation parameter to “A” and sets the CPU 210 to a reset state (S61).
  • the activation control unit 230 transmits the activation parameter “A” to the CPU 210 by setting the output pin 2 bits to [0, 1].
  • the activation control unit 230 cancels the reset signal of the CPU 210
  • the reset state of the CPU 210 is canceled (S62), and the CPU 210 starts to operate.
  • the operation of the CPU 210 will be described later with reference to FIG.
  • the activation control unit 230 sets a predetermined timer threshold (S63) and operates the timer 132 (S64).
  • the timer 132 is a type that starts from zero and adds.
  • the activation control unit 230 compares the value of the timer 132 with the timer threshold value (S65). If the value of the timer 132 is equal to or less than the timer threshold value (S65: Yes), the process proceeds to step S66. If the value of the timer 132 exceeds the timer threshold value (S65: No), the process is performed. Proceed to step S68.
  • step S66 the activation control unit 230 confirms whether or not the application program being executed by the CPU 210 has notified that a predetermined process has been completed. If the predetermined process has been completed (S66: Yes), the process proceeds to step S67. If the predetermined process has not been completed (S66: No), the process proceeds to step S67. Return to S65.
  • step S67 the activation control unit 230 determines that the activation process in the CPU 210 is normal activation, and ends the flow.
  • step S68 it is determined that the application program executed by the CPU 210 is not operating normally, and the activation control unit 230 adds “1” to the number-of-times parameter N. Then, the activation control unit 230 determines whether or not the number parameter N is smaller than “3” that is the first number threshold (S69). If the number parameter N is smaller than “3” (S69: Yes), the process returns to step S61. If the number parameter N is “3” or more (S69: No), the process proceeds to step S70. move on.
  • a start-up trial can be performed 3 times, and in the case of a start-up failure due to a sudden factor such as a temporary decrease in noise and voltage, the start-up can be normally started by a second attempt.
  • the startup process using the currently used application program is continued until the state in which the CPU 110 cannot execute the predetermined process by a predetermined time exceeds the predetermined number of times. Done.
  • the value of the first number threshold value indicating the number of start attempts can be arbitrarily set.
  • step S70 the activation control unit 230 determines whether or not the number parameter N is smaller than “6” that is the second number threshold. If the number parameter N is smaller than “6” (S70: Yes), the process proceeds to step S71. If the number parameter N is “6” or more (S70: No), the process proceeds to step S72. move on.
  • step S71 the activation control unit 230 sets the activation parameter stored in the activation storage unit 231 to “B”. Then, the activation control unit 230 sets [1, 0] to the output pin according to the activation parameter stored in the activation storage unit 231, and notifies the CPU 210 of it. Furthermore, the activation control unit 230 resets the CPU 210 and returns the process to step S62.
  • step S72 the activation control unit 230 determines that there is a failure because the activation parameter “B” cannot be activated normally, and sets a failure flag.
  • the second threshold value (here, “6”) in step S70 is a difference value (here, “3”) from the first threshold value (here, “3”) in step S69. This is the number of start attempts when the start parameter is “B”. In other words, the startup process using the currently used application program is continued until the state in which the CPU 210 cannot execute the predetermined process by a predetermined time exceeds the predetermined number of times. Done. Note that by changing this second number threshold, the number of start attempts when the start parameter is “B” can be changed.
  • the operation of the CPU 210 will be described. After the reset is released, the CPU 210 reads and executes the startup program stored in the first ROM 120. This operation will be described with reference to the flowchart shown in FIG.
  • FIG. 11 is a flowchart showing the startup operation of the CPU 210.
  • the CPU 210 performs initial setting (S80). This is, for example, the setting of the access timing parameter of the first ROM 120 and the setting of the access timing of the second ROM 221.
  • the CPU 210 performs initial setting of the RAM 122 (S81). For example, when the RAM 122 is an SDRAM, the CPU 210 performs memory clock setting, response speed setting, bus width setting, address pin setting, and the like. By performing such settings, the CPU 210 can access the RAM 122.
  • the CPU 210 refers to the state of the input pin and acquires the activation parameter designated by the activation control unit 230 (S82). Then, the CPU 210 determines whether or not the acquired activation parameter is “A” (S83). If the acquired activation parameter is “A” (S83: Yes), the process proceeds to step S84. If the acquired activation parameter is not “A” (S83: No), the process proceeds to step S84. Proceed to S85.
  • step S84 the CPU 210 specifies the activation parameter as “A”.
  • step S85 the CPU 210 reads the copy source information 266 stored in the second ROM 221.
  • the CPU 210 determines whether or not the copy source information 266 is “B” (S86). When the copy source information 266 is “B” (S86: Yes), the process proceeds to step S87. On the other hand, when the copy source information 266 is not “B” (S86: No), in other words, when the copy source information 266 is “C”, the process proceeds to step S88.
  • step S87 the CPU 210 identifies the activation parameter as “B”. On the other hand, in step S88, the CPU 210 specifies the activation parameter as “C”.
  • CPU210 reads the program corresponding to the starting parameter specified by step S84, S87, or S88 from the 2nd ROM221, and performs it (S89). For example, when the specified activation parameter is “A”, the CPU 210 reads the first program 160 from the second ROM 221. When the specified activation parameter is “B”, the CPU 210 reads the second program 162 from the second ROM 221. Further, when the specified activation parameter is “C”, the CPU 210 reads the third program 164 from the second ROM 221. At this time, the CPU 210 calculates error detection data of each program and compares it with error detection data corresponding to each program to confirm whether the program has no problem as data.
  • the information processing apparatus 200 can restart the activation control unit 230 even when the CPU 210 cannot be activated using the first program 160.
  • the program can be started with a program (second program 162 or third program 164) that starts correctly.
  • the process of returning the second program 162 and the third program 164 to the correct state specifically, even when the power is cut off during the copy process, the copy source information is referred to by referring to the copy source information.
  • the original that is, the program that operates correctly can be identified. For this reason, even if the first program 160 does not start correctly at the timing of the copy process, the system can be started with a program that starts correctly by the restart process of the start control unit 230.
  • a configuration is described in which when the first program 160 is not started, the second program 162 or the third program 164 being backed up is used for restarting.
  • the group to be backed up is restarted using the copy source of the first program 160 and the third program 164. It may be configured.
  • the group to be backed up is set as the first program 160 and the second program 162, and when the third program 164 is not started, the group is restarted using the copy source of the first program 160 and the second program 162. It may be configured.
  • Embodiment 3 In the first embodiment and the second embodiment, both programs to be backed up (in the first embodiment and the second embodiment, the second program 162 and the third program 164) are both garbled. (It may become invalid data). In such a case, if the first program 160 becomes illegal, the system will not start. For example, in FIG. 6, which is a flowchart for explaining the operation of the copy determination unit 112, if the failure flag is raised in step S44 and the first program 160 becomes invalid, the system cannot be started normally. Therefore, the information processing apparatuses 100 and 200 further include a failure warning unit (not shown) that indicates a warning when both the second program 162 and the third program 164 are illegal when the backup process is executed. It may be configured.
  • a failure warning unit not shown
  • the failure warning unit is a management device such as a server. Notify failure. If the information processing apparatuses 100 and 200 are displays, the failure warning unit displays a warning on a screen, for example. If the information processing devices 100 and 200 are terminal devices, the failure warning unit turns on or blinks a light emitting unit such as a lamp mounted on the terminal.
  • the third embodiment it is possible to notify the user that the backup application program is in an abnormal state, and to prevent the system from starting up in advance.
  • the information processing apparatuses 100 and 200 described in the first to third embodiments are apparatuses including a storage unit that has low reliability and may not be able to read correct data, such as a NAND flash memory. Any device may be used.
  • the information processing apparatuses 100 and 200 are optical television terminals such as IP-STB (IP-Set Top Box), multi-function mobile terminals such as Android terminals, information display devices such as navigation systems and digital signage systems, video It may be a video recording / playback device such as a recorder and a desk player, a router, a TA (Terminal Adapter), or the like.

Landscapes

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

Abstract

 第1プログラム、第2プログラム及び第3プログラムの何れかを選択して、選択されたプログラムを用いて起動処理を行うCPU(110)と、第2プログラム及び第3プログラムが、それぞれ正しいか否かを判定するプログラム判定部(111)と、第2プログラム及び第3プログラムの内、正しいと判定されたプログラムをコピー元プログラムとして決定し、正しいと判定されなかったプログラムをコピー先プログラムとして決定するコピー決定部(112)と、コピー元プログラムで、コピー先プログラムを更新するコピー処理部(113)と、コピー元プログラムを示すコピー元情報を記憶する起動記憶部(131)と、第1プログラムを用いて起動処理を行うことができない場合に、コピー元情報を参照して、コピー元プログラムを選択して起動処理を行うようにCPU(110)に指示する起動制御部(130)とを備える。

Description

情報処理装置、情報処理方法及びプログラム
 本発明は、情報処理装置、情報処理方法及びプログラムに関する。
 近年、不揮発性メモリであるNAND型フラッシュメモリが広く普及している。NAND型フラッシュメモリは、NOR型フラッシュメモリに比べて大容量化が進んでおり、ビット単価が安いといったメリットがある。一方で、NAND型フラッシュメモリには、データの書き込み回数に上限があること、データ保持期間が有限であること、及び、データの読み出し回数が有限であること、というデメリットがある。このため、データ読み出し時にビットエラーが発生し、正しいデータが読み出せない可能性がある。従って、NAND型フラッシュメモリに、システムを起動するためのプログラムを記憶させた場合には、ビットエラーによりシステムが起動できない状況、又は、起動した後にシステムがハングアップしてしまう状況が発生し得る。
 これに対し、特許文献1には、システム用の不揮発性メモリから第1のブートプログラムを読み出し、当該第1のブートプログラムに対して誤り検出を行い、読み出した第1のブートプログラムが不正に変化していると判定した場合に、バックアップ用の不揮発性メモリから第2のブートプログラムを読み出す制御装置が記載されている。この制御装置は、読み出された第2のブートプログラムに対して誤り検出を行い、この第2のブートプログラムが不正に変化していると判定したとき、エラーを出力する。一方、この制御装置は、ブートプログラムに対する誤り検出の結果、ブートプログラムが不正に変化していないと判定すると、そのブートプログラムを用いてブート処理を行う。
 また、特許文献2には、不揮発性メモリに記憶されたデータの書き換えを行う際に、当該データの書き換えに先立って、書き換え対象となるデータの複製を、バックアップデータとして保存する情報処理装置が記載されている。この情報処理装置は、書き換え実施状況を示すフラグを用いることで、書き換えが行われたデータが正常に処理されたものか否かを判断し、正当性を確認してから動作する。
特開2010-26650号公報 特開2007-328438号公報
 特許文献1に記載された制御装置では、ブート処理が所定の回数行われると第2のブートプログラムで第1のブートプログラムが上書きされる。しかし、第2のブートプログラムで第1のブートプログラムを書き換えているときに、電源断が発生した場合に、第1のブートプログラムが正常に上書きされないため、システムが起動しなくなってしまう問題がある。
 また、特許文献2に記載された情報処理装置では、データの書き換え中に電源断が発生しても、データを復旧することが可能である。しかしながら、データの書き換え対象がブートプログラムである場合、データ書き換え中に電源断が発生すると、データが不完全のため、システムが起動しないという問題がある。
 そこで、本発明は、起動用のプログラムに誤りが検出された場合に、信頼性の高い起動用のプログラムで再起動を行うことができるようにすることを目的とする。
 本発明の一態様に係る情報処理装置は、起動用のアプリケーションプログラムとしての、第1プログラム、第2プログラム及び第3プログラムを記憶する記憶部と、前記記憶部に記憶されている第1プログラム、第2プログラム及び第3プログラムの何れかを選択して、当該選択されたプログラムを用いて起動処理を行う処理実行部と、前記記憶部に記憶されている第2プログラム及び第3プログラムが、それぞれ正しいか否かを判定するプログラム判定部と、前記記憶部に記憶されている第2プログラム及び第3プログラムの内、前記プログラム判定部で正しいと判定されたプログラムをコピー元プログラムとして決定し、前記プログラム判定部で正しいと判定されなかったプログラムをコピー先プログラムとして決定するコピー決定部と、前記記憶部において、前記コピー決定部で決定されたコピー元プログラムで、前記コピー決定部で決定されたコピー先プログラムを更新するコピー処理部と、前記コピー決定部で決定されたコピー元プログラムを示すコピー元情報を記憶する起動記憶部と、前記処理実行部が前記記憶部に記憶されている第1プログラムを用いて起動処理を行うことができない場合に、前記起動記憶部に記憶されているコピー元情報を参照して、前記コピー決定部で決定されたコピー元プログラムを選択して起動処理を行うように前記処理実行部に指示する起動制御部とを備え、前記処理実行部は、前記起動制御部からの指示に従って、前記記憶部に記憶されている第2プログラム又は第3プログラムを選択して、当該選択されたプログラムを用いて起動処理を行うことを特徴とする。
 本発明の一態様に係る情報処理方法は、起動用のアプリケーションプログラムとしての、第1プログラム、第2プログラム及び第3プログラムの何れかを選択して、当該選択されたプログラムを用いて起動処理を行う処理実行過程と、前記第2プログラム及び前記第3プログラムが、それぞれ正しいか否かを判定するプログラム判定過程と、前記第2プログラム及び前記第3プログラムの内、前記プログラム判定過程で正しいと判定されたプログラムをコピー元プログラムとして決定し、前記プログラム判定過程で正しいと判定されなかったプログラムをコピー先プログラムとして決定するコピー決定過程と、前記コピー決定過程で決定されたコピー元プログラムで、前記コピー決定過程で決定されたコピー先プログラムを更新するコピー処理過程と、前記コピー決定過程で決定されたコピー元プログラムを示すコピー元情報を記憶する起動記憶過程と、前記処理実行過程が前記第1プログラムを用いて起動処理を行うことができない場合に、前記起動記憶過程で記憶されたコピー元情報を参照して、前記コピー決定過程で決定されたコピー元プログラムを選択して起動処理を行うように前記処理実行過程に指示する起動制御過程とを有し、前記処理実行過程は、前記起動制御過程からの指示に従って、前記第2プログラム又は前記第3プログラムを選択して、当該選択されたプログラムを用いて起動処理を行うことを特徴とする。
 本発明の一態様に係るプログラムは、コンピュータを、起動用のアプリケーションプログラムとしての、第1プログラム、第2プログラム及び第3プログラムを記憶する記憶手段、前記記憶手段に記憶されている第1プログラム、第2プログラム及び第3プログラムの何れかを選択して、当該選択されたプログラムを用いて起動処理を行う処理実行手段、前記記憶手段に記憶されている第2プログラム及び第3プログラムが、それぞれ正しいか否かを判定するプログラム判定手段、前記記憶手段に記憶されている第2プログラム及び第3プログラムの内、前記プログラム判定手段で正しいと判定されたプログラムをコピー元プログラムとして決定し、前記プログラム判定手段で正しいと判定されなかったプログラムをコピー先プログラムとして決定するコピー決定手段と、前記記憶手段において、前記コピー決定手段で決定されたコピー元プログラムで、前記コピー決定手段で決定されたコピー先プログラムを更新するコピー処理手段、前記コピー決定手段で決定されたコピー元プログラムを示すコピー元情報を記憶する起動記憶手段、前記処理実行手段が前記記憶手段に記憶されている第1プログラムを用いて起動処理を行うことができない場合に、前記起動記憶手段に記憶されているコピー元情報を参照して、前記コピー決定手段で決定されたコピー元プログラムを選択して起動処理を行うように前記処理実行手段に指示する起動制御手段として機能させ、前記処理実行手段は、前記起動制御手段からの指示に従って、前記記憶手段に記憶されている第2プログラム又は第3プログラムを選択して、当該選択されたプログラムを用いて起動処理を行うことを特徴とする。
 本発明の一態様によれば、起動用のプログラムに誤りが検出された場合に、信頼性の高い起動用のプログラムで再起動を行うことができる。
実施の形態1に係る情報処理装置の構成を概略的に示すブロック図である。 実施の形態1における第2ROMに記憶されているプログラムを示す概念図である。 実施の形態1における起動制御部の動作を示すフローチャートである。 実施の形態1におけるCPUの起動動作を示すフローチャートである。 実施の形態1におけるプログラム判定部での処理を示すフローチャートである。 実施の形態1におけるコピー決定部での処理を示すフローチャートである。 実施の形態1における起動制御部の起動状態監視処理を示すフローチャートである。 実施の形態2に係る情報処理装置の構成を概略的に示すブロック図である。 実施の形態2における第2ROMに記憶されているプログラム及びデータを示す概念図である。 実施の形態2における起動制御部での処理を示すフローチャートである。 実施の形態2におけるCPUの起動動作を示すフローチャートである。
実施の形態1.
 図1は、実施の形態1に係る情報処理装置100の構成を概略的に示すブロック図である。図1において、情報処理装置100は、CPU(Central Processing Unit)110と、第1ROM(Read Only Memory)120と、第2ROM121と、RAM(Ramdom Access Memory)122と、起動制御部130と、起動記憶部131と、タイマー132とを備える。なお、CPU110、第1ROM120、第2ROM121及びRAM122は、バス140で接続されている。
 CPU110は、情報処理装置100での情報処理を行う処理実行部である。CPU110は、第1ROM120又は第2ROM121に記憶されているプログラムをRAM122に読み出し、各種処理を行う。例えば、CPU110は、第2ROM121に記憶されている、起動用のアプリケーションプログラムとしての、第1プログラム、第2プログラム及び第3プログラムの何れかを選択して、選択されたプログラムを用いて起動処理を行う。CPU110は、プログラム判定部111と、コピー決定部112と、コピー処理部113とを備える。
 プログラム判定部111は、第2ROM121に記憶されている複数のプログラムについて、内容が正しいかどうか判定する。
 コピー決定部112は、プログラム判定部111での判定結果に従って、第2ROM121に記憶されている複数のプログラムについて、コピー元プログラム及びコピー先プログラムを決定する。例えば、コピー決定部は、第2ROM121に記憶されている第2プログラム及び第3プログラムの内、プログラム判定部111で正しいと判定されたプログラムをコピー元プログラムとして決定し、プログラム判定部111で正しいと判定されなかったプログラムをコピー先プログラムとして決定する。
 コピー処理部113は、コピー決定部112での決定に基づいて、第2ROM121に記憶されている複数のプログラムのコピー処理を行う。例えば、コピー処理部113は、コピー決定部112で決定されたコピー元プログラムで、コピー決定部112で決定されたコピー先プログラムを更新する。
 第1ROM120は、CPU110のリセット解除後に実行される起動プログラムを記憶する記憶部としての不揮発性メモリである。ここで、第1ROM120は、CPU110が起動するための最小限のプログラムを搭載する。そして、第1ROM120は、搭載するプログラムのサイズも大きくないことから、NOR型フラッシュ等の読み出し回数の制限がなく、信頼性の高いデバイスを使用することができる。
 第2ROM121は、起動プログラムの実行によって読み出されて実行されるアプリケーションプログラムを記憶する記憶部としての不揮発性メモリである。ここで、第2ROM121に記憶されているプログラム構成について説明する。第2ROM121には、3種類のプログラムとそれぞれに対応した誤り検出用データが記憶される。
 図2は、第2ROM121に記憶されているプログラムを示す概念図である。符号160は、第1プログラムである。符号161は、第1プログラム160の誤り検出用データである。誤り検出用データは、具体的には、チェックサム、又は、CRC(Cyclic Redundancy Check;巡回冗長検査)等である。符号162は、第2プログラムである。符号163は、第2プログラム162の誤り検出用データである。符号164は、第3プログラムである。符号165は、第3プログラム164の誤り検出用データである。なお、第1プログラム160、第2プログラム162及び第3プログラム164は、同じ内容でも良い。また、第2プログラム162及び第3プログラム164は、バージョンは同じで、第1プログラムのみバージョンが新しいという構成でも良い。
 なお、この第2ROM121は、大規模なプログラムを記録するために、NAND型フラッシュメモリで構成されてもよい。
 RAM122は、起動プログラム及びアプリケーションプログラムを、CPU110が実行するために使用される読み書き自在のメモリである。
 起動制御部130は、CPU110の起動制御を行う。例えば、起動制御部130は、CPU110が第1プログラム160を用いて起動処理を行うことができない場合に、コピー決定部112でコピー元プログラムに決定されたプログラムを用いて起動処理を行うように、CPU110に指示する。この際、起動制御部130は、CPU110のリセット制御及び起動モード設定用ピン制御を行うとともに、CPU110と通信を行う。ここで、起動制御部130は、CPU110のリセットを制御する際には、リセット制御信号RCをCPU110に与える。また、起動制御部130は、CPU110の起動モード設定用ピンに起動パラメータを設定する際には、起動モード設定用ピン制御信号BPCをCPU110に与える。さらに、起動制御部130は、CPU110との間で通信信号COをやり取りする。
 起動記憶部131は、起動制御部130がデータを書き込み及び参照するメモリである。例えば、起動記憶部131は、起動パラメータ及びコピー元情報を記憶する。
 なお、起動パラメータが“A”である場合には、起動の際に第1プログラムが用いられる。また、起動パラメータが“B”である場合には、起動の際に第2プログラムが用いられる。さらに、起動パラメータが“C”である場合には、起動の際に第3プログラムが用いられる。
 また、コピー元情報は、コピー元として用いられるアプリケーションプログラム(コピー元プログラム)を示す。本実施の形態においては、コピー元情報が“B”の場合は、コピー元として用いられるアプリケーションプログラムが第2プログラムであることを示し、コピー元情報が“C”の場合は、コピー元として用いられるアプリケーションプログラムが第3プログラムであることを示す。
 タイマー132は、時間を計測する計時部である。例えば、タイマー132は、CPU110が起動処理を開始してからの時間を計測する。
 情報処理装置100は、電源150の投入によって動作し始める。例えば、情報処理装置100では、電源150が投入されると、起動制御部130のリセットが解除され、起動制御部130が動作する。このときの動作を、図3のフローチャートを用いて説明する。
 図3は、起動制御部130の動作を示すフローチャートである。
 起動制御部130は、CPU110をリセット状態にする(S10)。例えば、起動制御部130は、リセットを指示するリセット制御信号RCをCPU110に与える。このような信号を受けたCPU110は、リセット状態になる。
 次に、起動制御部130は、起動記憶部131に記憶された起動パラメータを読み出す(S11)。そして、起動制御部130は、読み出された起動パラメータが“B”か否かを判定する(S12)。そして、起動パラメータが“B”である場合(S12:Yes)には、処理はステップS13に進み、起動パラメータが“B”ではない場合(S12:No)には、処理はステップS14に進む。
 ステップS13では、起動制御部130は、起動パラメータを“B”に決定する。
 一方、ステップS14では、起動制御部130は、読み出された起動パラメータが“C”か否かを判定する。そして、起動パラメータが“C”である場合(S14:Yes)には、処理はステップS15に進み、起動パラメータが“C”ではない場合(S14:No)には、処理はステップS16に進む。
 ステップS15では、起動制御部130は、起動パラメータを“C”に決定する。
 一方、ステップS16では、起動制御部130は、起動パラメータを“A”に決定する。
 そして、起動制御部130は、ステップS13、S15又はS16で決定された起動パラメータを、CPU110に伝える(S17)。例えば、起動制御部130の出力ピン2bitと、CPU110の入力ピン2bitとを接続し、起動制御部130が、起動パラメータ“A”のときは、出力ピン2bitを[0,1]とし、起動パラメータ“B”のときは、出力ピン2bitを[1,0]、起動パラメータ“C”のときは、出力ピン2bitを[1,1]とする。ここで、出力ピン2bitの「0」及び「1」は、デジタル信号における「Low」及び「High」にそれぞれ相当する。このように、起動制御部130は、起動パラメータを出力ピンに設定することで、その起動パラメータをCPU110に伝える。
 そして、起動制御部130は、CPU110のリセット状態を解除する(S18)。例えば、起動制御部130は、リセットの解除を指示するリセット制御信号RCをCPU110に与える。このような信号を受けたCPU110は、リセット状態を解除して、動作し始める。
 CPU110は、リセット解除後、第1ROM120に記憶されているプログラムを読み出して実行する。このときの動作を、図4のフローチャートを用いて説明する。
 図4は、CPU110の起動動作を示すフローチャートである。
 まず、CPU110は、初期設定を行う(S20)。これは、例えば、第1ROM120のアクセスタイミングパラメータの設定、及び、第2ROM121のアクセスタイミングの設定等である。
 次に、CPU110は、RAM122の初期設定を行う(S21)。例えば、RAM122がSDRAM(Syncronous Dynamic Random Access Memory)の場合、CPU110は、メモリクロックの設定、応答速度の設定、バス幅設定、及び、アドレスピンの設定等を行う。このような設定を行うことで、CPU110は、RAM122にアクセスすることができる。
 次に、CPU110は、入力ピンの状態を参照し、起動制御部130が指定した起動パラメータを取得する(S22)。そして、CPU110は、取得された起動パラメータが“B”か否かを判定する(S23)。取得された起動パラメータが“B”である場合(S23:Yes)には、処理はステップS24に進み、取得された起動パラメータが“B”ではない場合(S23:No)には、処理はステップS25に進む。
 ステップS24では、CPU110は、起動パラメータを“B”に特定する。
 一方、ステップS25では、CPU110は、起動パラメータが“C”か否かを判定する。そして、起動パラメータが“C”である場合(S25:Yes)には、処理はステップS26に進み、起動パラメータが“C”ではない場合(S25:No)には、処理はステップS27に進む。
 ステップS26では、CPU110は、起動パラメータを“C”に特定する。
 一方、ステップS27では、CPU110は、起動パラメータを“A”に特定する。
 そして、CPU110は、第2ROM121から、ステップS24、S26又はS27で特定された起動パラメータに対応するプログラムを読み出して、実行する(S28)。例えば、特定された起動パラメータが“A”の場合には、CPU110は、第2ROM121から第1プログラム160を読み出す。また、特定された起動パラメータが“B”の場合には、CPU110は、第2ROM121から第2プログラム162を読み出す。さらに、特定された起動パラメータが“C”の場合には、CPU110は、第2ROM121から第3プログラム164を読み出す。このとき、CPU110は、それぞれのプログラムの誤り検出用データを算出し、それぞれのプログラムに対応した誤り検出用データと比較することで、プログラムがデータとして問題ないかの確認を行う。
 このように起動制御部130が起動パラメータを指定することで、CPU110は、第2ROM121に記録されているプログラムを選択して起動することができる。
 次に、第2ROM121に記憶されている第1プログラム160を用いて動作しているときの、第2プログラム162及び第3プログラム164のバックアップ処理について説明する。第1プログラム160、第2プログラム162及び第3プログラム164については、いずれも、第2ROM121に記憶されているため、NAND型フラッシュメモリのデメリットであるデータ保持期間が有限であること、及び、データの読み出し回数が有限であることによりデータが変化してしまい、正しいデータとして読み出すことができなくなるおそれがある。バックアップ処理は、プログラム判定部111、コピー決定部112及びコピー処理部113で実現する。プログラム判定部111の処理の流れを、図5のフローチャートを用いて説明する。
 図5は、プログラム判定部111での処理を示すフローチャートである。
 プログラム判定部111は、第2プログラム162の誤り検出データの算出を行う(S30)。
 次に、プログラム判定部111は、ステップS30で算出された誤り検出データと、第2ROM121に記憶されている第2誤り検出用データ163とを比較することで(S31)、第2プログラムが正しいか否かを判定する。例えば、ステップS30で算出された誤り検出データと、第2誤り検出用データ163とが一致した場合(S31:Yes)には、処理はステップS32に進み、ステップS30で算出された誤り検出データと、第2誤り検出用データ163とが一致しない場合(S31:No)には、処理はステップS33に進む。
 ステップS32では、プログラム判定部111は、第2プログラム162は正しいと判定する。一方、ステップS33では、プログラム判定部111は、第2プログラム162は、不正と判定する。
 次に、プログラム判定部111は、第3プログラム164の誤り検出データの算出を行う(S34)。
 次に、プログラム判定部111は、ステップS34で算出された誤り検出データと、第2ROM121に記憶されている第3誤り検出用データ165とを比較することで(S35)、第3プログラムが正しいか否かを判定する。例えば、ステップS34で算出された誤り検出データと、第3誤り検出用データ165とが一致した場合(S35:Yes)には、処理はステップS36に進み、ステップS34で算出された誤り検出データと、第3誤り検出用データ165とが一致しない場合(S35:No)には、処理はステップS37に進む。
 ステップS36では、プログラム判定部111は、第3プログラム164は正しいと判定する。一方、ステップS37では、プログラム判定部111は、第3プログラム164は、不正と判定する。
 さらに、コピー決定部112での処理の流れを、図6のフローチャートを用いて説明する。
 図6は、コピー決定部112での処理を示すフローチャートである。
 コピー決定部112は、プログラム判定部111の判定結果に基づいて、第2プログラム162が正しいかどうかを判断する(S40)。第2プログラム162が正しい場合(S40:Yes)には、処理はステップS41に進み、第2プログラム162が不正の場合(S40:No)には、処理はステップS42に進む。
 ステップS41では、コピー決定部112は、コピー元を“B”に決定する。
 一方、ステップS42では、コピー決定部112は、プログラム判定部111の判定結果に基づいて、第3プログラム164が正しいかどうかを判断する(S42)。第3プログラム164が正しい場合(S42:Yes)には、処理はステップS43に進み、第3プログラム164が不正の場合(S42:No)には、処理はステップS44に進む。
 ステップS43では、コピー決定部112は、コピー元を“C”に決定する。
 一方、ステップS44では、コピー決定部112は、故障フラグをあげる。この故障フラグは、例えば、RAM122に記憶されているものとする。
 そして、コピー決定部112によって決められたコピー元に基づいて、CPU110は、コピー元情報を生成する。例えば、コピー元が“B”である場合には、コピー元情報が第2プログラム162を示すように、“B”とし、コピー元が“C”である場合には、コピー元情報が第3プログラム164を示すように、“C”とする。そして、CPU110は、生成されたコピー元情報を起動制御部130に伝え、起動制御部130は、そのコピー元情報を、起動記憶部131に保存する。
 次に、コピー処理部113は、プログラム判定部111及びコピー決定部112での処理結果に基づき、コピー処理を行う。例えば、コピー処理部113は、第2プログラム162及び第3プログラム164の両方が正しければ、コピー処理は行わない。一方、コピー処理部113は、第2プログラム162及び第3プログラム164の何れかのプログラムが不正の場合には、コピー元として決定されたプログラムからコピー先となるプログラムへのコピー処理を行う。例えば、コピー処理部113は、第2ROM121において、コピー先となるプログラム(不正と判断されたプログラム)を消去して、コピー元として決定されたプログラムを、コピー先のプログラムとして記憶する。また、どちらのプログラムも不正である場合には、コピー処理部113は、コピー処理を行わない。
 なお、このプログラム判定部111、コピー決定部112及びコピー処理部113で行うバックアップ処理は定期的に行うが、実施については、起動回数に基づいてもよいし、データを書き込んでからの経過時間に基づいてもよい。言い換えると、予め定められた起動回数に達した場合、又は、初回起動時若しくは前回のバックアップ処理から予め定められた経過時間が経過した場合に、バックアップ処理が行われればよい。
 次に、第2ROM121に記憶されている第1プログラム160が正常に起動しない場合の処理について、図7のフローチャートを用いて説明する。
 図7は、起動制御部130の起動状態監視処理を示すフローチャートである。図7のフローチャートは、図3のフローチャートのステップS18において、CPU110のリセット状態が解除された後に開始される。
 起動制御部130は、CPU110のリセット状態を解除したあと、タイマー閾値を設定する(S50)。タイマー閾値は、予め定められているものとする。そして、起動制御部130は、タイマー132を動作させて、計時を開始させる(S51)。タイマー132は、ゼロからスタートし、加算するタイプとする。
 起動制御部130は、タイマー132の値とタイマー閾値とを比較する(S52)。そして、タイマー132の値がタイマー閾値以下である場合(S52:Yes)には、処理はステップS53に進み、タイマー132の値がタイマー閾値を超えた場合(S52:No)には、処理はステップS55に進む。
 ステップS53では、起動制御部130は、CPU110で実行しているアプリケーションプログラム(ここでは、第1プログラム160、第2プログラム162又は第3プログラム164)が予め定められた処理まで完了したことを通知しているかどうか確認する。そして、予め定められた処理まで完了している場合(S53:Yes)には、処理はステップS54に進み、予め定められた処理まで完了していない場合(S53:No)には、処理はステップS52に戻る。
 ステップS54では、起動制御部130は、正常起動と判断して、フローを終了する。
 一方、ステップS52において、タイマーの値がタイマー閾値を超えている場合(S52:No)には、処理はステップS55に進む。ステップS55では、使用中のプログラム(ここでは、第1プログラム160、第2プログラム162又は第3プログラム164)が正常に動作していないと判断し、起動制御部130は、起動記憶部131に記憶されているコピー元情報に基づいて、起動パラメータを設定する(S55)。なお、ステップS55で設定される起動パラメータは、“B”又は“C”である。そして、起動制御部130は、図3のステップS17と同様に、起動パラメータを出力ピンに設定することで、CPU110に通知する。
 そして、起動制御部130は、CPU110のリセットを実行する(S56)。例えば、起動制御部130は、CPU110をリセット状態に設定してから、CPUのリセット状態を解除する。そして、処理はステップS50に戻る。
 なお、CPU110は、リセット解除後、図4に示すフローに従って処理を実行し、第2ROM121に保存されている第2プログラム162又は第3プログラム164を用いて起動する。
 以上のように実施の形態1を構成することで、情報処理装置100は、第1プログラム160で起動できなくなったとしても、起動制御部130の再起動処理によって、正しく起動するアプリケーションプログラム(ここでは、第2プログラム162又は第3プログラム)で起動することができる。
 また、第2プログラム162と第3プログラム164を正しい状態に戻す処理、具体的には、コピー処理部113におけるコピー処理を行っているときに電源断が発生しても、コピー元、すなわち正しく動作するプログラムを、コピー元情報を参照することで特定することができる。このため、仮にそのタイミングで、第1プログラム160が正しく起動しない場合でも、起動制御部130の再起動処理によって、正しく起動するアプリケーションプログラム(コピー元のプログラム)で、システムを起動させることができる。
 特に、近年、機器の高機能化が進むに伴ってアプリケーションプログラムのデータ容量が著しく増えており、コピー処理に多くの時間を要する場合があるため、コピー処理中に電源断が発生し、かつ、そのタイミングで第1プログラム160が正しく起動しない場合でも、実施の形態1に係る情報処理装置100によれば、システムを起動することができる。
 なお、実施の形態1では、第1プログラム160が起動しなかったときに、バックアップ処理している第2プログラム162又は第3プログラム164のコピー元を用いて再起動する構成が説明されているが、このような構成に限定されるものではない。例えば、バックアップ処理する組を、第1プログラム160及び第3プログラム164として、第2プログラム162が起動しなかったときに、第1プログラム160と第3プログラム164のコピー元を用いて再起動するように構成されていてもよい。また、バックアップ処理する組を、第1プログラム160と第2プログラム162として、第3プログラム164が起動しなかったときに、第1プログラム160及び第2プログラム162のコピー元を用いて再起動するように構成されていてもよい。
実施の形態2.
 図8は、実施の形態2に係る情報処理装置200の構成を概略的に示すブロック図である。図8において、情報処理装置200は、CPU210と、第1ROM120と、第2ROM221と、RAM122と、起動制御部230と、起動記憶部231と、タイマー132とを備える。なお、CPU210、第1ROM120、第2ROM221及びRAM122は、バス140で接続されている。実施の形態2に係る情報処理装置200は、CPU210及び起動制御部230での処理の点、並びに、第2ROM221及び起動記憶部231に記憶されている情報の点において、実施の形態1に係る情報処理装置100と異なっている。
 実施の形態1では、第2プログラム162と第3プログラム164のバックアップ処理において、コピー元のプログラムを示すコピー元情報を、起動記憶部131に記憶している。そして、実施の形態1では、起動制御部130は、第1プログラム160で正しく起動しなかった場合に、起動記憶部131に記憶されているコピー元情報を参照して、起動パラメータをCPU110に伝えるように設定し、CPU110を再起動するように構成されている。これに対して、実施の形態2では、コピー元情報は、NAND型フラッシュメモリで構成されている第2ROM221内に記憶され、CPU210が第1ROM120に記憶されている起動プログラムを実行するときに、第2ROM221内に記憶されているコピー元情報を参照して、使用するアプリケーションプログラムを選択するように構成されている。以下、実施の形態2について、詳細に説明する。
 CPU210は、情報処理装置200での情報処理を行う処理実行部である。CPU210は、プログラム判定部111と、コピー決定部112と、コピー処理部113とを備える。実施の形態2におけるプログラム判定部111、コピー決定部112及びコピー処理部113での処理については、実施の形態1におけるこれらの部分が行う処理と同様である。
 但し、実施の形態1では、CPU110は、コピー決定部112での決定に従って生成されたコピー元情報を起動制御部130に伝えて、起動記憶部131に保存させたが、実施の形態2では、CPU210は、コピー元情報を第2ROM221に保存させる。
 第2ROM221は、起動プログラムの実行によって読み出されて実行されるアプリケーションプログラム及びコピー元情報を記憶する不揮発性メモリである。ここで、第2ROM221に記憶されているプログラム構成について説明する。第2ROM221には、3種類のプログラムとそれぞれに対応した誤り検出用データ及びコピー元情報が記憶される。
 図9は、第2ROM221に記憶されているプログラム及びデータを示す概念図である。符号160は、第1プログラムである。符号161は、第1プログラム160の誤り検出用データである。符号162は、第2プログラムである。符号163は、第2プログラム162の誤り検出用データである。符号164は、第3プログラムである。符号165は、第3プログラム164の誤り検出用データである。なお、符号160~165は、実施の形態1における符号160~165と同様である(図2参照)。
 符号266は、コピー元情報である。コピー元情報266は、実施の形態1と同様、コピー元として用いられるアプリケーションプログラム(第2プログラム又は第3プログラム)を示す。
 起動制御部230は、CPU210の起動制御を行う。実施の形態2における起動制御部230の起動制御については、図10を用いて詳細に説明する。
 また、実施の形態1における起動制御部130は、CPU110から与えられたコピー元情報を起動記憶部131に記憶させる処理を行ったが、実施の形態2における起動制御部230は、このような処理を行わない。
 起動記憶部231は、起動制御部230がデータを書き込み及び参照するメモリである。例えば、実施の形態2における起動記憶部231は、起動パラメータを記憶する。なお、実施の形態2における起動記憶部231は、実施の形態1とは異なり、コピー元情報は記憶しない。
 ここで、実施の形態2においては、起動記憶部231に記憶される起動パラメータは、“A”又は“B”の値を示す。起動パラメータが“A”である場合には、起動の際に第1プログラム160が用いられる。また、起動パラメータが“B”である場合には、コピー元情報に応じて、起動の際に第2プログラム162又は第3プログラム164が用いられる。
 情報処理装置200は、電源150の投入によって動作し始める。まず、起動制御部230のリセットが解除され、起動制御部230が動作する。そのときの動作を、図10のフローチャートを用いて説明する。なお、図10に示されているフローは、実施の形態1における図3及び図7に示されているフローの代わりである。
 図10は、起動制御部230での処理を示すフローチャートである。
 起動制御部230は、まず、回数パラメータNを初期化する(S60)。ここでは、起動制御部230は、回数パラメータNの値を「0」とする。回数パラメータNは、起動回数と連動するパラメータである。実施の形態2では、回数パラメータNは、例えば、起動回数を示す。
 次に、起動制御部230は、起動パラメータを“A”に設定し、CPU210をリセット状態にする(S61)。ここでは、実施の形態1と同様に、起動制御部230は、その出力ピン2bitを[0,1]に設定することで、起動パラメータ“A”をCPU210に伝える。そして、起動制御部230が、CPU210のリセット信号を解除することで、CPU210のリセット状態が解除され(S62)、CPU210が動作し始める。CPU210の動作については、図11を用いて後述する。
 次に、起動制御部230は、予め定められたタイマー閾値を設定して(S63)、タイマー132を動作させる(S64)。タイマー132は、ゼロからスタートし、加算するタイプとする。
 次に、起動制御部230は、タイマー132の値とタイマー閾値とを比較する(S65)。そして、タイマー132の値がタイマー閾値以下である場合(S65:Yes)には、処理はステップS66に進み、タイマー132の値がタイマー閾値を超えている場合(S65:No)には、処理はステップS68に進む。
 ステップS66では、起動制御部230は、CPU210で実行しているアプリケーションプログラムが予め定められた処理まで完了したことを通知しているかどうか確認する。そして、予め定められた処理まで完了している場合(S66:Yes)には、処理はステップS67に進み、予め定められた処理まで完了していない場合(S66:No)には、処理はステップS65に戻る。
 ステップS67では、起動制御部230は、CPU210での起動処理は、正常起動であると判断して、フローを終了する。
 一方、ステップS65において、タイマー132の値がタイマー閾値を超えている場合(S65:No)には、処理はステップS68に進む。ステップS68では、CPU210が実行しているアプリケーションプログラムが正常な動作をしていないと判断し、起動制御部230は、回数パラメータNに「1」を加算する。そして、起動制御部230は、回数パラメータNが、第1回数閾値である「3」よりも小さいか否かを判断する(S69)。回数パラメータNが「3」よりも小さい場合(S69:Yes)には、処理はステップS61に戻り、回数パラメータNが「3」以上である場合(S69:No)には、処理はステップS70に進む。なお、このステップS69により、起動試行を3回行うことができ、ノイズ及び電圧の一時的な低下等の突発的な要因による起動不具合の場合は、再度の試行により正常に起動することができる。言い換えると、予め定められた時間までに、CPU110が予め定められた処理を実行することのできない状態が、予め定められた回数を超えるまでは、現在使用されているアプリケーションプログラムを用いた起動処理が行われる。この起動試行の回数を示す第1回数閾値の値は、任意に設定することができる。
 ステップS70では、起動制御部230は、回数パラメータNが第2回数閾値である「6」よりも小さいか否かを判断する。回数パラメータNが「6」よりも小さい場合(S70:Yes)には、処理はステップS71に進み、回数パラメータNが「6」以上である場合(S70:No)には、処理はステップS72に進む。
 ステップS71では、起動制御部230は、起動記憶部231に記憶されている起動パラメータを“B”に設定する。そして、起動制御部230は、起動記憶部231に記憶されている起動パラメータに従って、その出力ピンに[1,0]を設定して、CPU210に通知する。さらに、起動制御部230は、CPU210をリセット状態にして、処理をステップS62に戻す。
 一方、ステップS72では、起動制御部230は、起動パラメータ“B”でも正常起動できなかったために、故障と判断して、故障フラグをたてる。ここで、ステップS70における第2回数閾値(ここでは、「6」)は、ステップS69における第1回数閾値(ここでは、「3」)との差分の値(ここでは、「3」)において、起動パラメータを“B”とした場合の起動試行の回数となる。言い換えると、予め定められた時間までに、CPU210が予め定められた処理を実行することのできない状態が、予め定められた回数を超えるまでは、現在使用されているアプリケーションプログラムを用いた起動処理が行われる。なお、この第2回数閾値を変更することで、起動パラメータが“B”のときの起動試行の回数を変更することができる。
 次に、CPU210の動作について説明する。CPU210は、リセット解除後、第1ROM120に記憶されている起動プログラムを読み出して実行する。この動作について、図11に示されているフローチャートを用いて説明する。
 図11は、CPU210の起動動作を示すフローチャートである。
 まず、CPU210は、初期設定を行う(S80)。これは、例えば、第1ROM120のアクセスタイミングパラメータの設定、及び、第2ROM221のアクセスタイミングの設定等である。
 次に、CPU210は、RAM122の初期設定を行う(S81)。例えば、RAM122がSDRAMの場合、CPU210は、メモリクロックの設定、応答速度の設定、バス幅設定、及び、アドレスピンの設定等を行う。このような設定を行うことで、CPU210は、RAM122にアクセスすることができる。
 次に、CPU210は、入力ピンの状態を参照し、起動制御部230が指定した起動パラメータを取得する(S82)。そして、CPU210は、取得された起動パラメータが“A”か否かを判定する(S83)。取得された起動パラメータが“A”である場合(S83:Yes)には、処理はステップS84に進み、取得された起動パラメータが“A”ではない場合(S83:No)には、処理はステップS85に進む。
 ステップS84では、CPU210は、起動パラメータを“A”に特定する。
 一方、ステップS85では、CPU210は、第2ROM221に記憶されているコピー元情報266を読み出す。
 次に、CPU210は、コピー元情報266が“B”であるか否かを判断する(S86)。そして、コピー元情報266が“B”である場合(S86:Yes)には、処理はステップS87に進む。一方、コピー元情報266が“B”ではない場合(S86:No)、言い換えると、コピー元情報266が“C”である場合には、処理はステップS88に進む。
 ステップS87では、CPU210は、起動パラメータを“B”に特定する。
 一方、ステップS88では、CPU210は、起動パラメータを“C”に特定する。
 そして、CPU210は、第2ROM221から、ステップS84、S87又はS88で特定された起動パラメータに対応するプログラムを読み出して、実行する(S89)。例えば、特定された起動パラメータが“A”の場合には、CPU210は、第2ROM221から第1プログラム160を読み出す。また、特定された起動パラメータが“B”の場合には、CPU210は、第2ROM221から第2プログラム162を読み出す。さらに、特定された起動パラメータが“C”の場合には、CPU210は、第2ROM221から第3プログラム164を読み出す。このとき、CPU210は、それぞれのプログラムの誤り検出データを算出し、それぞれのプログラムに対応した誤り検出用データと比較することで、プログラムがデータとして問題ないかの確認を行う。
 以上のように、実施の形態2に係る情報処理装置200を構成することで、情報処理装置200は、CPU210が第1プログラム160を用いて起動できなくなったとしても、起動制御部230の再起動処理によって、正しく起動するプログラム(第2プログラム162又は第3プログラム164)で起動することができる。
 また、第2プログラム162と第3プログラム164を正しい状態に戻す処理、具体的には、コピー処理を行っているときに、電源断が発生しても、コピー元情報を参照することで、コピー元、即ち、正しく動作するプログラムを特定することができる。このため、仮にコピー処理しているタイミングで、第1プログラム160が正しく起動しない場合でも、起動制御部230の再起動処理によって、正しく起動するプログラムで、システムを起動させることができる。
 なお、実施の形態2では、第1プログラム160が起動しなかったときに、バックアップ処理している第2プログラム162又は第3プログラム164のコピー元を用いて再起動する構成が説明されているが、このような構成に限定されるものではない。例えば、バックアップ処理する組を、第1プログラム160及び第3プログラム164として、第2プログラム162が起動しなかったときに、第1プログラム160と第3プログラム164のコピー元を用いて再起動するように構成されていてもよい。また、バックアップ処理する組を、第1プログラム160と第2プログラム162として、第3プログラム164が起動しなかったときに、第1プログラム160及び第2プログラム162のコピー元を用いて再起動するように構成されていてもよい。
実施の形態3
 実施の形態1及び実施の形態2において、バックアップ対象となっている両方のプログラム(実施の形態1及び実施の形態2では、第2プログラム162及び第3プログラム164)がどちらもデータ化けしてしまう(不正なデータになってしまう)場合もある。このような場合に、第1プログラム160が不正になると、システムが起動しなくなってしまう。例えば、コピー決定部112の動作を説明するフローチャートである図6において、ステップS44において故障フラグがあがっているときに、第1プログラム160が不正になると、正常にシステムが起動できなくなる。そのため、情報処理装置100、200は、バックアップ処理を実行したとき、第2プログラム162及び第3プログラム164のどちらも不正な場合は、警告を示す故障警告部(図示せず)をさらに有するように構成されていてもよい。
 例えば、バックアップ処理の中で、第2プログラム162及び第3プログラム164がどちらも不正な場合は、情報処理装置100、200がネットワーク機器であれば、故障警告部は、例えば、サーバー等の管理装置に故障を通達する。また、情報処理装置100、200が表示器であれば、故障警告部は、例えば、画面上に警告を表示する。情報処理装置100、200が端末装置であれば、故障警告部は、端末に搭載されているランプ等の発光部を点灯又は点滅させる。
 以上のように、実施の形態3によれば、ユーザーにバックアップ用のアプリケーションプログラムが異常状態で有ることを知らせることができ、システムが起動しなくなることを事前に回避することができる。
 なお、故障警告部は、実施の形態1における、図6のステップS44で故障フラグがたてられた場合、又は、実施の形態2における、図10のステップS72で故障フラグがたてられた場合に、警告を行うようにしてもよい。
 以上の実施の形態1~3に記載された情報処理装置100、200は、NAND型フラッシュメモリ等のように、信頼性が低く、正しいデータが読み出せなくなる可能性のある記憶部を備える装置であればどのような装置であってもよい。例えば、情報処理装置100、200は、IP-STB(IP-Set Top Box)等の光テレビ用の端末、アンドロイド端末等の多機能携帯端末、ナビゲーションシステム、デジタルサイネージシステム等の情報表示機器、ビデオレコーダー及びデスクプレーヤー等の映像記録再生機器、ルータ並びにTA(Terminal Adapter)等であってもよい。
 100,200 情報処理装置、 110,210 CPU、 111 プログラム判定部、 112 コピー決定部、 113 コピー処理部、 120 第1ROM、 121,221 第2ROM、 122 RAM、 130,230 起動制御部、 131,231 起動記憶部、 132 タイマー、 140 バス、 150 電源。

Claims (17)

  1.  起動用のアプリケーションプログラムとしての、第1プログラム、第2プログラム及び第3プログラムを記憶する記憶部と、
     前記記憶部に記憶されている第1プログラム、第2プログラム及び第3プログラムの何れかを選択して、当該選択されたプログラムを用いて起動処理を行う処理実行部と、
     前記記憶部に記憶されている第2プログラム及び第3プログラムが、それぞれ正しいか否かを判定するプログラム判定部と、
     前記記憶部に記憶されている第2プログラム及び第3プログラムの内、前記プログラム判定部で正しいと判定されたプログラムをコピー元プログラムとして決定し、前記プログラム判定部で正しいと判定されなかったプログラムをコピー先プログラムとして決定するコピー決定部と、
     前記記憶部において、前記コピー決定部で決定されたコピー元プログラムで、前記コピー決定部で決定されたコピー先プログラムを更新するコピー処理部と、
     前記コピー決定部で決定されたコピー元プログラムを示すコピー元情報を記憶する起動記憶部と、
     前記処理実行部が前記記憶部に記憶されている第1プログラムを用いて起動処理を行うことができない場合に、前記起動記憶部に記憶されているコピー元情報を参照して、前記コピー決定部で決定されたコピー元プログラムを選択して起動処理を行うように前記処理実行部に指示する起動制御部とを備え、
     前記処理実行部は、前記起動制御部からの指示に従って、前記記憶部に記憶されている第2プログラム又は第3プログラムを選択して、当該選択されたプログラムを用いて起動処理を行うこと
     を特徴とする情報処理装置。
  2.  前記記憶部は、前記コピー決定部で決定されたコピー元プログラムを示すコピー元情報をさらに記憶し、
     前記起動制御部は、前記記憶部に記憶されているコピー元情報を参照して、前記コピー決定部で決定されたコピー元プログラムを選択して起動処理を行うように前記処理実行部に指示すること
     を特徴とする請求項1に記載の情報処理装置。
  3.  時間を計測する計時部をさらに備え、
     前記起動制御部は、前記計時部において計測された、前記起動処理を開始してからの時間が予め定められた閾値を超える前に、前記処理実行部が予め定められた処理を完了していない場合に、前記処理実行部が前記記憶部に記憶されている第1プログラムを用いて起動処理を行うことができないと判断して、前記コピー決定部で決定されたコピー元プログラムを選択して起動処理を行うように前記処理実行部に指示すること
     を特徴とする請求項1又は2に記載の情報処理装置。
  4.  時間を計測する計時部をさらに備え、
     前記起動制御部は、前記計時部において計測された、前記起動処理を開始してからの時間が予め定められた閾値を超える前に、前記処理実行部が予め定められた処理を完了できない状態が、予め定められた第1の回数連続して生じた場合に、前記処理実行部が前記記憶部に記憶されている第1プログラムを用いて起動処理を行うことができないと判断して、前記コピー決定部で決定されたコピー元プログラムを選択して起動処理を行うように前記処理実行部に指示すること
     を特徴とする請求項1又は2に記載の情報処理装置。
  5.  前記起動制御部からの指示に従って、前記処理実行部が前記記憶部に記憶されている第2プログラム又は第3プログラムを選択して、当該選択されたプログラムを用いて起動処理を行っている際に、前記計時部において計測された、前記起動処理を開始してからの時間が前記予め定められた閾値を超える前に前記処理実行部が前記予め定められた処理を完了できない状態が、予め定められた第2の回数連続して生じた場合に、前記起動制御部は、故障と判断し、
     前記起動制御部が故障と判断した場合に、警告を行う故障警告部をさらに備えること
     を特徴とする請求項4に記載の情報処理装置。
  6.  前記プログラム判定部が、前記記憶部に記憶されている第2プログラム及び第3プログラムの両方が正しくないと判定した場合に、警告を行う故障警告部をさらに備えること
     を特徴とする請求項1から4の何れか一項に記載の情報処理装置。
  7.  起動用のアプリケーションプログラムとしての、第1プログラム、第2プログラム及び第3プログラムの何れかを選択して、当該選択されたプログラムを用いて起動処理を行う処理実行過程と、
     前記第2プログラム及び前記第3プログラムが、それぞれ正しいか否かを判定するプログラム判定過程と、
     前記第2プログラム及び前記第3プログラムの内、前記プログラム判定過程で正しいと判定されたプログラムをコピー元プログラムとして決定し、前記プログラム判定過程で正しいと判定されなかったプログラムをコピー先プログラムとして決定するコピー決定過程と、
     前記コピー決定過程で決定されたコピー元プログラムで、前記コピー決定過程で決定されたコピー先プログラムを更新するコピー処理過程と、
     前記コピー決定過程で決定されたコピー元プログラムを示すコピー元情報を記憶する起動記憶過程と、
     前記処理実行過程が前記第1プログラムを用いて起動処理を行うことができない場合に、前記起動記憶過程で記憶されたコピー元情報を参照して、前記コピー決定過程で決定されたコピー元プログラムを選択して起動処理を行うように前記処理実行過程に指示する起動制御過程とを有し、
     前記処理実行過程は、前記起動制御過程からの指示に従って、前記第2プログラム又は前記第3プログラムを選択して、当該選択されたプログラムを用いて起動処理を行うこと
     を特徴とする情報処理方法。
  8.  時間を計測する計時過程をさらに有し、
     前記起動制御過程は、前記計時過程において計測された、前記起動処理を開始してからの時間が予め定められた閾値を超える前に、前記処理実行部が予め定められた処理を完了していない場合に、前記処理実行過程が前記第1プログラムを用いて起動処理を行うことができないと判断して、前記コピー決定過程で決定されたコピー元プログラムを選択して起動処理を行うように前記処理実行過程に指示すること
     を特徴とする請求項7に記載の情報処理方法。
  9.  時間を計測する計時過程をさらに有し、
     前記起動制御過程は、前記計時過程において計測された、前記起動処理を開始してからの時間が予め定められた閾値を超える前に、前記処理実行過程が予め定められた処理を完了できない状態が、予め定められた第1の回数連続して生じた場合に、前記処理実行過程が前記第1プログラムを用いて起動処理を行うことができないと判断して、前記コピー決定過程で決定されたコピー元プログラムを選択して起動処理を行うように前記処理実行過程に指示すること
     を特徴とする請求項7に記載の情報処理方法。
  10.  前記起動制御過程からの指示に従って、前記処理実行部が前記記憶部に記憶されている第2プログラム又は第3プログラムを選択して、当該選択されたプログラムを用いて起動処理を行っている際に、前記計時部において計測された、前記起動処理を開始してからの時間が前記予め定められた閾値を超える前に前記処理実行部が前記予め定められた処理を完了できない状態が、予め定められた第2の回数連続して生じた場合に、前記起動制御過程は、故障と判断し、
     前記起動制御過程が故障と判断した場合に、警告を行う故障警告過程をさらに有すること
     を特徴とする請求項9に記載の情報処理方法。
  11.  前記プログラム判定過程が、前記第2プログラム及び前記第3プログラムの両方が正しくないと判定した場合に、警告を行う故障警告過程をさらに有すること
     を特徴とする請求項7から9の何れか一項に記載の情報処理方法。
  12.  コンピュータを、
     起動用のアプリケーションプログラムとしての、第1プログラム、第2プログラム及び第3プログラムを記憶する記憶手段、
     前記記憶手段に記憶されている第1プログラム、第2プログラム及び第3プログラムの何れかを選択して、当該選択されたプログラムを用いて起動処理を行う処理実行手段、
     前記記憶手段に記憶されている第2プログラム及び第3プログラムが、それぞれ正しいか否かを判定するプログラム判定手段、
     前記記憶手段に記憶されている第2プログラム及び第3プログラムの内、前記プログラム判定手段で正しいと判定されたプログラムをコピー元プログラムとして決定し、前記プログラム判定手段で正しいと判定されなかったプログラムをコピー先プログラムとして決定するコピー決定手段と、
     前記記憶手段において、前記コピー決定手段で決定されたコピー元プログラムで、前記コピー決定手段で決定されたコピー先プログラムを更新するコピー処理手段、
     前記コピー決定手段で決定されたコピー元プログラムを示すコピー元情報を記憶する起動記憶手段、
     前記処理実行手段が前記記憶手段に記憶されている第1プログラムを用いて起動処理を行うことができない場合に、前記起動記憶手段に記憶されているコピー元情報を参照して、前記コピー決定手段で決定されたコピー元プログラムを選択して起動処理を行うように前記処理実行手段に指示する起動制御手段として機能させ、
     前記処理実行手段は、前記起動制御手段からの指示に従って、前記記憶手段に記憶されている第2プログラム又は第3プログラムを選択して、当該選択されたプログラムを用いて起動処理を行うこと
     を特徴とするプログラム。
  13.  前記記憶手段は、前記コピー決定手段で決定されたコピー元プログラムを示すコピー元情報をさらに記憶し、
     前記起動制御手段は、前記記憶手段に記憶されているコピー元情報を参照して、前記コピー決定手段で決定されたコピー元プログラムを選択して起動処理を行うように前記処理実行手段に指示すること
     を特徴とする請求項12に記載のプログラム。
  14.  前記コンピュータを、時間を計測する計時手段としてさらに機能させ、
     前記起動制御手段は、前記計時手段において計測された、前記起動処理を開始してからの時間が予め定められた閾値を超える前に、前記処理実行手段が予め定められた処理を完了していない場合に、前記処理実行手段が前記記憶手段に記憶されている第1プログラムを用いて起動処理を行うことができないと判断して、前記コピー決定手段で決定されたコピー元プログラムを選択して起動処理を行うように前記処理実行手段に指示すること
     を特徴とする請求項12又は13に記載のプログラム。
  15.  前記コンピュータを、時間を計測する計時手段としてさらに機能させ、
     前記起動制御手段は、前記計時手段において計測された、前記起動処理を開始してからの時間が予め定められた閾値を超える前に、前記処理実行手段が予め定められた処理を完了できない状態が、予め定められた第1の回数連続して生じた場合に、前記処理実行手段が前記記憶手段に記憶されている第1プログラムを用いて起動処理を行うことができないと判断して、前記コピー決定手段で決定されたコピー元プログラムを選択して起動処理を行うように前記処理実行手段に指示すること
     を特徴とする請求項12又は13に記載のプログラム。
  16.  前記起動制御手段からの指示に従って、前記処理実行手段が前記記憶手段に記憶されている第2プログラム又は第3プログラムを選択して、当該選択されたプログラムを用いて起動処理を行っている際に、前記計時手段において計測された、前記起動処理を開始してからの時間が前記予め定められた閾値を超える前に前記処理実行手段が前記予め定められた処理を完了できない状態が、予め定められた第2の回数連続して生じた場合に、前記起動制御手段は、故障と判断し、
     前記コンピュータを、前記起動制御手段が故障と判断した場合に、警告を行う故障警告手段としてさらに機能させること
     を特徴とする請求項15に記載のプログラム。
  17.  前記コンピュータを、前記プログラム判定手段が、前記記憶手段に記憶されている第2プログラム及び第3プログラムの両方が正しくないと判定した場合に、警告を行う故障警告手段としてさらに機能させること
     を特徴とする請求項12から15の何れか一項に記載のプログラム。
PCT/JP2013/077223 2013-01-08 2013-10-07 情報処理装置、情報処理方法及びプログラム WO2014109100A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014556322A JPWO2014109100A1 (ja) 2013-01-08 2013-10-07 情報処理装置、情報処理方法及びプログラム

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2013-000772 2013-01-08
JP2013000772 2013-01-08

Publications (1)

Publication Number Publication Date
WO2014109100A1 true WO2014109100A1 (ja) 2014-07-17

Family

ID=51166765

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/077223 WO2014109100A1 (ja) 2013-01-08 2013-10-07 情報処理装置、情報処理方法及びプログラム

Country Status (2)

Country Link
JP (1) JPWO2014109100A1 (ja)
WO (1) WO2014109100A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6011687B1 (ja) * 2015-07-09 2016-10-19 日本電気株式会社 記憶装置およびその制御方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265767A (ja) * 1992-03-17 1993-10-15 Nec Corp プログラム起動方法
JP2003099146A (ja) * 2001-09-20 2003-04-04 Fujitsu Ltd 計算機システムの起動制御方式
JP2005222366A (ja) * 2004-02-06 2005-08-18 Nippon Telegr & Teleph Corp <Ntt> 自動復帰方法/プログラム/プログラム記録媒体、処理装置
JP2006243780A (ja) * 2005-02-28 2006-09-14 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2012059034A (ja) * 2010-09-09 2012-03-22 Mitsubishi Electric Corp ブート処理装置
JP2012212415A (ja) * 2011-03-18 2012-11-01 Hitachi Kokusai Electric Inc 無線基地局装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265767A (ja) * 1992-03-17 1993-10-15 Nec Corp プログラム起動方法
JP2003099146A (ja) * 2001-09-20 2003-04-04 Fujitsu Ltd 計算機システムの起動制御方式
JP2005222366A (ja) * 2004-02-06 2005-08-18 Nippon Telegr & Teleph Corp <Ntt> 自動復帰方法/プログラム/プログラム記録媒体、処理装置
JP2006243780A (ja) * 2005-02-28 2006-09-14 Tdk Corp メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2012059034A (ja) * 2010-09-09 2012-03-22 Mitsubishi Electric Corp ブート処理装置
JP2012212415A (ja) * 2011-03-18 2012-11-01 Hitachi Kokusai Electric Inc 無線基地局装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6011687B1 (ja) * 2015-07-09 2016-10-19 日本電気株式会社 記憶装置およびその制御方法

Also Published As

Publication number Publication date
JPWO2014109100A1 (ja) 2017-01-19

Similar Documents

Publication Publication Date Title
JP5575338B2 (ja) 情報処理装置、情報処理方法、およびコンピュータプログラム
TWI386847B (zh) 可安全復原的韌體更新方法及可安全復原之韌體更新的嵌入式電子裝置
JP5431111B2 (ja) 情報処理装置及びシステム設定方法
US8341386B2 (en) Method for updating basic input/output system and method for repairing thereof
JP2009134692A (ja) 単一キー制御を使用するシステム構成の自動修復方法
CN101140524A (zh) 程序启动控制装置
JP5981906B2 (ja) 画像形成装置
JP2010170197A (ja) ファームウェア管理プログラム、記憶装置およびファームウェア管理方法
JP2008504628A (ja) 安全なフラッシング
US9772905B2 (en) Updating control firmware of information processing apparatus, method of controlling the same, and storage medium
JP6021597B2 (ja) 情報処理装置、情報処理方法、およびコンピュータプログラム
WO2015184732A1 (zh) 引导程序的存储方法、故障恢复方法及设备、计算机存储介质
JP2007122151A (ja) ブート制御装置およびブート制御方法
WO2014109100A1 (ja) 情報処理装置、情報処理方法及びプログラム
JP2012118904A (ja) 情報処理装置
JP2011175352A (ja) ファームウエア更新装置、通信装置、電子機器、ファームウエア更新システム、ファームウエア更新方法及びプログラム
JP5072092B2 (ja) リカバリー制御装置、制御方法、プログラム及びコンピュータ読み取り可能な記憶媒体
US11467898B2 (en) Information processing apparatus and method of controlling the same
JP2004054616A (ja) ファームウェア自動修復機能を有する情報処理装置
JP2007115066A (ja) ディジタル端末のブートプログラム書き替え方法
WO2016136014A1 (ja) 監視レコーダ
JP2012212415A (ja) 無線基地局装置
JP6911591B2 (ja) 情報処理装置、制御装置および情報処理装置の制御方法
JP2006018594A (ja) 情報処理装置
JP2005128613A (ja) 画像形成装置

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: 13870663

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2014556322

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13870663

Country of ref document: EP

Kind code of ref document: A1