WO2010073510A1 - 情報処理装置およびそのメモリ制御方法 - Google Patents

情報処理装置およびそのメモリ制御方法 Download PDF

Info

Publication number
WO2010073510A1
WO2010073510A1 PCT/JP2009/006688 JP2009006688W WO2010073510A1 WO 2010073510 A1 WO2010073510 A1 WO 2010073510A1 JP 2009006688 W JP2009006688 W JP 2009006688W WO 2010073510 A1 WO2010073510 A1 WO 2010073510A1
Authority
WO
WIPO (PCT)
Prior art keywords
shared memory
standby
active
notification data
cpu
Prior art date
Application number
PCT/JP2009/006688
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 日本電気株式会社
Publication of WO2010073510A1 publication Critical patent/WO2010073510A1/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/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
    • G06F11/202Error 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 where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • 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
    • G06F11/202Error 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 where processing functionality is redundant
    • G06F11/2038Error 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 where processing functionality is redundant with a single idle spare processing component
    • 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
    • G06F11/202Error 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 where processing functionality is redundant
    • G06F11/2043Error 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 where processing functionality is redundant where the redundant components share a common memory address space

Definitions

  • the present invention relates to an information processing apparatus and a memory control method thereof.
  • Patent Document 1 describes an information processing apparatus including a shared memory between an active CPU and a standby CPU.
  • the active CPU accumulates a part of the data in the shared memory, and the standby CPU can read the data from the shared memory. Therefore, the information processing apparatus can guarantee the continuity of the data.
  • Patent Document 2 describes a method for preventing the data in the shared memory from being accidentally destroyed when the standby CPU operates.
  • Patent Document 1 and Patent Document 2 described above when the active CPU runs out of control, incorrect data may be written to an unspecified area in the shared memory, and the data on the shared memory may be destroyed. In addition, when the active CPU stops while writing data to the shared memory, the data on the shared memory may become discontinuous. In such a case, the information processing apparatus operates based on the broken data when switching from the active system to the standby system, which may cause a serious problem such as abnormal operation or operation stop.
  • the present invention has been made to solve the above-described problems, and its object is to provide a highly reliable system that can safely switch from the active system to the standby system when an abnormality occurs in the active CPU. It is an object of the present invention to provide an information processing apparatus and its memory control method that guarantees the performance.
  • an information processing apparatus is accessible from an active system and a standby system, and stores a first shared memory for storing notification data to be notified from the active system to the standby system, A first access control device for the active system that prohibits or permits writing to the first shared memory from the active system, a standby memory that is accessible only from the standby system, and the notification data as the first data
  • the notification data is written to the first shared memory.
  • the active CPU that notifies the standby system that the active system has already written the first shared memory, and the notification data from the active CPU is the first shared memory.
  • the notification data When notified that the data has been written to the memory, the notification data is read from the first shared memory, the notification data is stored in the standby system memory, and the notification data is stored in the standby system by the first system.
  • a standby CPU that executes processing using the notification data stored in the standby system memory when the active system is notified to the active system and the standby system is switched to the standby system. And have.
  • the memory control method of the present invention is a memory control method for an information processing apparatus having an active system and a standby system, wherein the active system sends notification data to be notified from the active system to the standby system. Only when writing to the first shared memory accessible from the standby system, writing to the first shared memory is permitted, and when the active system writes the notification data to the first shared memory, The standby system notifies the standby system that the notification data has been written to the first shared memory, and the standby system notifies the active system that the notification data has been written to the first shared memory.
  • the notification data is read from the first shared memory, the notification data is stored in a standby memory accessible only from the standby system, and the notification data is The active system is notified that it has been read from the first shared memory, and when the standby system is switched from the active system to the standby system, processing is performed using the notification data stored in the standby system memory. Execute.
  • the present invention when an abnormality occurs in the active CPU of the information processing apparatus, it is possible to safely switch from the active system to the standby system, and to ensure high reliability.
  • FIG. 3 is a flowchart showing a data write processing procedure to a shared memory performed by an active CPU shown in FIG. 1.
  • 2 is a flowchart showing a procedure for reading data from a shared memory, which is performed by a standby CPU shown in FIG. 1.
  • It is a block diagram which shows the structure of the information processing apparatus which concerns on 2nd Embodiment.
  • It is a block diagram which shows the structure of the information processing apparatus which concerns on 3rd Embodiment.
  • 6 is a flowchart showing a data write processing procedure to a shared memory performed by an active CPU shown in FIG. 5.
  • 6 is a flowchart showing a procedure for reading data from a shared memory performed by a standby CPU shown in FIG. 5.
  • It is a block diagram which shows the structure of the information processing apparatus which concerns on 4th Embodiment.
  • the standby CPU saves the data notified from the active CPU in a standby memory that cannot be accessed by the active CPU, thereby protecting the data.
  • FIG. 1 is a block diagram showing the configuration of the information processing apparatus according to the first embodiment.
  • the information processing apparatus 1 includes a CPU 10, a memory 11, a first access control device 12, and an interrupt controller 13 as an active system.
  • the information processing apparatus 1 according to the first embodiment includes a CPU 20, a memory 21, a first access control device 22, and an interrupt controller 23 as a standby system.
  • the information processing apparatus 1 according to the first embodiment includes a recording medium 30, a recording medium interface unit 31, and a first shared memory 32 as common units.
  • the recording medium 30 is recorded with an active system program and a standby system program for providing predetermined functions of the information processing apparatus 1.
  • the recording medium 30 may be a magnetic disk, a semiconductor memory, an optical disk, or other recording medium.
  • the working CPU 10 reads the working program recorded on the recording medium 30 via the recording medium interface unit 31 into the working memory 11.
  • the CPU 10 executes processing according to the program read into the memory 11.
  • the standby CPU 20 reads the standby program recorded on the recording medium 30 into the standby memory 21 via the recording medium interface unit 31.
  • the CPU 20 executes processing according to the program read into the memory 21.
  • the active memory 11 is a storage device for storing an active program and data processed by the active CPU 10. Only the active CPU 10 can access the memory 11, and the standby CPU 20 cannot access it.
  • the standby system memory 21 is a storage device for storing a standby system program and data processed by the standby CPU 20. Only the standby CPU 20 can access the memory 21, and the active CPU 10 cannot access it.
  • the first shared memory 32 is a memory used for information transmission between the active system and the standby system, and is accessible from both the CPU 10 and the CPU 20.
  • a RAM Random Access Memory
  • the first shared memory 32 for example, a RAM (Random Access Memory) having a multiport is used.
  • the active first access control device 12 is a device for restricting writing to the first shared memory 32 of the CPU 10 and can be realized by using, for example, an LSI (Large Scale Integration) composed of various logic circuits. .
  • the CPU 10 sets whether the writing from the CPU 10 to the first shared memory 32 is permitted or prohibited for the first access control device 12.
  • the first access control device 12 is normally set to prohibit writing to the first shared memory 32, and only when the CPU 10 writes to the first shared memory 32, the first shared memory 32 is set. 32 is set so as to allow writing to 32.
  • the first access control device 12 sends an active CS (chip select) to the first shared memory 32. ) Output the signal.
  • the first access control device 12 fixes the CS signal to inactive, and the CPU 10 erroneously writes data to the first shared memory 32. To prevent that.
  • the first access control device 22 of the standby system is a device for restricting writing to the first shared memory 32 of the CPU 20, and the method of realizing it is the same as that of the first access control device 12. .
  • the standby interrupt controller 23 is a device that outputs an interrupt signal to the standby CPU 20 in response to a request from the active CPU 10.
  • the active CPU 10 instructs the interrupt controller 23 to output an interrupt signal to the standby CPU 20 and notifies the standby CPU 20 that the data has been written to the first shared memory 32.
  • the active interrupt controller 13 is a device that outputs an interrupt signal to the active CPU 10 in response to a request from the standby CPU 20.
  • the standby CPU 20 instructs the interrupt controller 13 to output an interrupt signal to the active CPU 10 and notifies the active CPU 10 that the data has been read from the first shared memory 32.
  • the CPU 10 In the active system, the CPU 10, the recording medium interface unit 31, the memory 11, the first shared memory 32, the first access control device 12, and the interrupt controller 13 are connected via the internal bus 14.
  • the CPU 20, the recording medium interface unit 31, the memory 21, the first shared memory 32, the first access control device 22, and the interrupt controller 23 are connected via the internal bus 24.
  • the CPU 10 executes the processing described below in accordance with the working system program stored in the memory 11.
  • the notification data includes setting information for defining the operation of the information processing apparatus.
  • the information processing apparatus 1 stores the setting information in the working memory 11 so that the working CPU 10 can refer to the setting information. Further, the information processing apparatus 1 makes it possible for the standby CPU 20 to refer to the setting information in preparation for a case where an abnormality occurs in the active CPU 10 and the standby CPU 20 is switched.
  • the CPU 10 determines whether or not the standby CPU 20 is reading data from the first shared memory 32 (step S3). Note that if the CPU 10 writes other notification data to the first shared memory 32 while the standby CPU 20 is reading the notification data, the notification data being read by the standby CPU 20 may be destroyed. Therefore, when the standby CPU 20 is reading the notification data from the first shared memory 32, the CPU 10 waits until the reading is completed.
  • the active CPU 10 instructs the interrupt controller 23 to output an interrupt signal to the standby CPU 20 and has already written the notification data to the first shared memory 32 (hereinafter referred to as the first shared memory 32). , Referred to as a write notification).
  • the standby CPU 20 instructs the interrupt controller 13 to output an interrupt signal to the active CPU 10 and has read the notification data from the first shared memory 32 (hereinafter referred to as a read notification). To the active CPU 10. Therefore, the standby CPU 20 receives data from the first shared memory 32 from the time when the standby CPU 20 notifies the standby CPU 20 of the write notification until the read notification is notified from the standby CPU 20. Is being read out. On the other hand, during other periods, it is determined that the standby CPU 20 is not reading data from the first shared memory 32.
  • the CPU 10 sets the first access control device 12 to permit writing to the first shared memory 32 (step S4). ). Subsequently, the CPU 10 writes the notification data to the first shared memory 32 (step S5). When the notification data is written to the first shared memory 32, the CPU 10 sets the first access control device 12 to prohibit writing to the first shared memory 32 (step S6).
  • the CPU 10 instructs the interrupt controller 23 to output an interrupt signal to the standby CPU 20 and sends a write notification.
  • the standby CPU 20 is notified (step S7).
  • the CPU 10 notifies the standby CPU 20 of the write notification, the CPU 10 proceeds to step S2 and waits until data to notify the standby system again occurs.
  • the CPU 20 executes the processing described below according to the standby program stored in the memory 21.
  • step S11 When the CPU 20 starts processing (step S11), it first waits until a writing notification is notified from the active CPU 10 (step S12). The write notification is notified to the CPU 20 when the CPU 20 receives an interrupt signal from the interrupt controller 23.
  • the CPU 20 When the write notification is notified from the active CPU 10, the CPU 20 reads the notification data from the first shared memory 32 and stores the read notification data in the memory 21 (step S13). Since the standby CPU 20 does not write to the first shared memory 32, the first access control device 22 is set to always prohibit writing to the first shared memory 32. Subsequently, the CPU 20 instructs the interrupt controller 13 to output an interrupt signal to the active CPU 10 and notifies the active CPU 10 of a read notification (step S14).
  • step S12 When the CPU 20 notifies the active CPU 10 of the read notification, the CPU 20 proceeds to step S12 and waits until the write notification is notified from the active CPU 10 again.
  • the information processing apparatus restricts writing to the shared memory. In other words, when it is assumed that the active CPU or standby CPU does not write data to the shared memory, writing to the shared memory is prohibited, so the data in the shared memory is destroyed during operation. The possibility is low.
  • the standby CPU reads the data from the shared memory at the timing when the active CPU has finished writing the notification data to the shared memory, and stores the read data in the standby memory that cannot be accessed from the active system.
  • the standby CPU operates according to the data stored in the standby memory, not the data stored in the shared memory. If the active CPU is stopped while writing the notification data to the shared memory, the write notification is not notified to the standby CPU, and the standby CPU does not read the data from the shared memory. For this reason, there is no possibility that discontinuous data during writing is used in the standby system.
  • the active CPU prohibits writing to the shared memory and then notifies the standby CPU of a write notification. That is, when the active CPU runs away and the notification data in the shared memory is destroyed, the write notification is not notified to the standby CPU, and the standby CPU does not read the data from the shared memory. For this reason, there is no possibility that the destroyed notification data is used in the standby system.
  • the information processing apparatus can safely switch from the active system to the standby system when an abnormality occurs in the active CPU, and can guarantee high reliability.
  • FIG. 4 is a block diagram showing the configuration of the information processing apparatus according to the second embodiment.
  • the information processing apparatus 1 according to the second embodiment includes a CPU 10, a memory 11, a first access control apparatus 12, and an interrupt controller 13 as an active system.
  • the information processing apparatus 1 according to the second embodiment includes a CPU 20, a memory 21, a first access control device 22, and an interrupt controller 23 as a standby system.
  • the information processing apparatus 1 according to the second embodiment includes a recording medium 30, a recording medium interface unit 31, a first shared memory 32, an external input / output device 34, and an external bus switch 35 as common units. .
  • CPU 10 memory 11, first access control device 12, interrupt controller 13, CPU 20, memory 21, first access control device 22, interrupt controller 23, recording medium 30, recording medium interface unit 31, first shared memory 32
  • the configuration is the same as that of the first embodiment.
  • the external input / output device 34 is a device provided in a known communication device used in a communication system having a function of transmitting / receiving data to / from an external communication device (not shown).
  • Examples of the external input / output device 34 include a LAN (Local Area Network) controller and a wireless LAN controller.
  • the external bus switch 35 is a device that switches the connection destination of the external input / output device 34 depending on whether the processing is performed in the active system or the standby system, and can be realized using, for example, an LSI including various logic circuits.
  • External input / output device 34 and external switch 35 are connected via an external bus 36.
  • the information processing apparatus shows an example in which data received from an external communication device is used as notification data.
  • the information processing apparatus When the information processing apparatus according to the second embodiment receives data from an external communication device, the information processing apparatus stores the received data in the memory 11, performs a predetermined process on the stored data, and performs a predetermined process. Send the implemented data to an external communication device.
  • the predetermined process is a process that differs depending on the function of the information processing apparatus. Examples of the predetermined process include a process of rewriting address information included in the data in order to transmit data received from an external communication device to another communication device.
  • the active CPU 10 When the active CPU 10 receives data from an external communication device, it transmits the received data to the standby CPU 20 via the first shared memory 32.
  • the standby CPU 20 stores the data received from the active CPU 10 in the memory 21.
  • the active CPU 10 performs a predetermined process on the data received from the external communication device and transmits the data subjected to the predetermined process to the external communication device, the processing for the data is completed. Notification is made to the standby CPU 20 via the first shared memory 32. The standby CPU 20 erases the data notified of the completion of processing from the active CPU 10 from the memory 21.
  • the information processing apparatus 1 switches from the active system to the standby system when an abnormality occurs in the active CPU 10.
  • the standby CPU 20 switches the external bus switch 35 to the standby system.
  • the standby CPU 20 performs a predetermined process on the data stored in the memory 21 and transmits the data subjected to the predetermined process to an external communication device.
  • the continuity of communication data is reduced without losing data being processed. It becomes possible to keep.
  • the information processing apparatus shown in the first embodiment uses an interrupt controller to notify the standby CPU that the active CPU has written the notification data to the shared memory.
  • the second CPU is used to notify the standby CPU that the active CPU has written the notification data to the first shared memory. May be.
  • a method for notifying the standby CPU that the active CPU has written the notification data to the first shared memory using the second shared memory without using the interrupt controller. Will be explained.
  • FIG. 5 is a block diagram showing the configuration of the information processing apparatus according to the third embodiment.
  • the information processing apparatus 1 according to the third embodiment includes a CPU 10, a memory 11, a first access control device 12, and a second access control device 15 as active systems. Further, the information processing apparatus 1 according to the third embodiment includes a CPU 20, a memory 21, a first access control device 22, and a second access control device 25 as a standby system. Furthermore, the information processing apparatus 1 according to the third embodiment includes a recording medium 30, a recording medium interface unit 31, a first shared memory 32, and a management second shared memory 33 as common units.
  • the configurations of the CPU 10, the memory 11, the first access control device 12, the CPU 20, the memory 21, the first access control device 22, the recording medium 30, the recording medium interface unit 31, and the first shared memory 32 are the same as those in the first embodiment.
  • the form is the same.
  • the second shared memory 33 is a memory used for notifying the standby CPU 20 that the active CPU 10 has written the notification data to the first shared memory 32.
  • the second shared memory 33 is accessible from both the CPU 10 and the CPU 20.
  • As the second shared memory 33 for example, a RAM (Random Access Memory) having a multiport is used.
  • the active second access control device 15 is a device for restricting writing to the second shared memory 33 of the CPU 10, and the method of realizing it is the same as that of the first access control device 12.
  • the second access control device 25 in the standby system is a device for restricting writing to the second shared memory 33 by the CPU 20, and the method for realizing it is the same as that of the first access control device 22. .
  • the CPU 10 the recording medium interface unit 31, the memory 11, the first shared memory 32, the first access control device 12, the second shared memory 33, and the second access control device 15 are connected via the internal bus 14. Connected.
  • the CPU 20, the recording medium interface unit 31, the memory 21, the first shared memory 32, the first access control device 22, the second shared memory 33, and the second access control device 25 are connected to the internal bus 24. Connected through.
  • the CPU 10 executes the processing described below in accordance with the working system program stored in the memory 11.
  • CPU10 will start a process (step S21), and will wait until notification data generate
  • the CPU 10 determines whether or not the standby CPU 20 is reading data from the first shared memory 32 (step S23).
  • the standby CPU 20 in order for the active CPU 10 to notify the standby CPU 20 that notification data has been generated, write information and read information to the second shared memory 33.
  • write information and read information there are a write counter and a read counter. The write counter and the read counter are initialized to 0 when the information processing apparatus is activated. The active CPU 10 counts up the write counter of the second shared memory 33 when the notification data is written in the first shared memory 32.
  • the standby CPU 20 reads the notification data from the first shared memory 32, it counts up the read counter of the second shared memory 33.
  • the standby CPU 20 determines that notification data that has not been read exists in the first shared memory 32. Further, when the value of the write counter is larger than the value of the read counter, the active CPU 10 determines that the standby CPU 20 is reading the notification data from the first shared memory 32.
  • the CPU 10 instructs the first access control device 12 to allow writing to the first shared memory 32. (Step S24). Subsequently, the CPU 10 writes the notification data to the first shared memory 32 (step S25). When the notification data is written to the first shared memory 32, the CPU 10 instructs the first access control device 12 to set to prohibit writing to the first shared memory 32 (step S26).
  • the CPU 10 instructs the second access control device 15 to set to permit writing to the second shared memory 33 (step S27). Subsequently, the CPU 10 counts up the write counter of the second shared memory 33 (step S28). When the write counter of the second shared memory 33 is counted up, the CPU 10 instructs the second access control device 15 to set to prohibit writing to the second shared memory 33 (step S29).
  • the CPU 10 instructs the second access control device 15 to set to prohibit writing to the second shared memory 33, the CPU 10 proceeds to step S22 and again waits until notification data is generated.
  • the CPU 20 executes the processing described below according to the standby program stored in the memory 21.
  • step S31 the CPU 20 first waits until the active CPU 10 writes notification data in the first shared memory 32 (step S32). Whether the active CPU 10 has written the notification data to the first shared memory 32 is determined based on a comparison between the value of the write counter stored in the second shared memory 33 and the value of the read counter. .
  • the CPU 20 When the active CPU 10 writes the notification data to the first shared memory 32, the CPU 20 reads the notification data from the first shared memory 32 and stores the read data in the memory 21 (step S33). Since the standby CPU 20 does not write to the first shared memory 32, the first access control device 22 is set to always prohibit writing to the first shared memory 32.
  • the CPU 20 instructs the second access control device 25 to set to permit writing to the second shared memory 33 (step S34). Subsequently, the CPU 20 counts up the read counter of the second shared memory 33 (step S35). When the read counter of the second shared memory 33 is counted up, the CPU 20 instructs the second access control device 25 to set to prohibit writing to the second shared memory 33 (step S36).
  • step S32 the active CPU 10 again checks the first shared memory 33. The process waits until the notification data is written to 32.
  • the information processing apparatus restricts writing to the shared memory. In other words, when it is assumed that the active CPU or standby CPU does not write data to the shared memory, writing to the shared memory is prohibited, so the data in the shared memory is destroyed during operation. The possibility is low.
  • the standby CPU reads the data from the first shared memory at the timing when the active CPU has finished writing the notification data to the first shared memory, and the standby CPU cannot access the read data from the active system. Save to memory.
  • the standby CPU operates according to the data stored in the standby memory, not the data stored in the first shared memory. If the active CPU stops while writing the notification data to the first shared memory, the write information of the second shared memory is not updated, and the standby CPU reads the data from the first shared memory. Absent. For this reason, there is no possibility that discontinuous data during writing is used in the standby system.
  • the current CPU prohibits writing to the first shared memory, it updates the write information of the second shared memory and indicates that the notification data has been written to the first shared memory. Notify That is, when the active CPU runs out of control and the notification data in the first shared memory is destroyed, the write information in the second shared memory is not updated, and the standby CPU transfers data from the first shared memory. Do not read. For this reason, there is no possibility that the destroyed notification data is used in the standby system.
  • the third embodiment it is possible to obtain the same effect as the information processing apparatus according to the first embodiment without using the interrupt controller shown in the first embodiment. Become.
  • the information processing apparatus according to the third embodiment can safely switch from the active system to the standby system when an abnormality occurs in the active CPU, and can ensure high reliability.
  • FIG. 8 is a block diagram showing the configuration of the information processing apparatus according to the fourth embodiment.
  • the information processing apparatus 1 according to the fourth embodiment includes a CPU 10, a memory 11, a first access control device 12, and a second access control device 15 as active systems.
  • the information processing apparatus 1 according to the fourth embodiment includes a CPU 20, a memory 21, a first access control device 22, and a second access control device 25 as a standby system.
  • the information processing apparatus 1 according to the fourth embodiment includes, as common units, a recording medium 30, a recording medium interface unit 31, a first shared memory 32, a second management shared memory 33, and an external input / output device. 34 and an external bus switch 35.
  • CPU 10 memory 11, first access control device 12, second access control device 15, CPU 20, memory 21, first access control device 22, second access control device 25, recording medium 30, and recording medium interface unit
  • the configurations of 31, the first shared memory 32 and the second shared memory 32 are the same as those of the third embodiment.
  • the configurations of the external input / output device 34 and the external bus switch 35 are the same as those in the second embodiment.
  • the information processing apparatus according to the fourth embodiment is the same as the information processing apparatus according to the second embodiment without using the interrupt controller described in the second embodiment. It becomes possible to obtain the effect.
  • the information processing apparatus according to the fourth embodiment performs communication without losing data being processed when an abnormality occurs in the active CPU. Data continuity can be maintained.
  • the present invention can be applied to an information processing apparatus having an active system and a standby system. According to the present invention, it is possible to provide an information processing apparatus and a memory control method thereof that guarantee high reliability that can be safely switched from the active system to the standby system when an abnormality occurs in the active CPU.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Abstract

 現用系のCPUが異常になったときに、安全に現用系から待機系へ切り換えることが可能な高い信頼性を保障する情報処理装置およびそのメモリ制御方法を提供する。現用系は、現用系から待機系に通知する通知データを現用系および待機系からアクセス可能な第1の共用メモリに書き込むときのみ、第1の共用メモリへの書き込みを許可する。現用系は、通知データを第1の共用メモリに書き込むと、通知データを第1の共用メモリに書き込み済みであることを待機系に通知する。待機系は、通知データが第1の共用メモリに書き込み済みであることを現用系から通知されると、通知データを第1の共用メモリから読み出し、待機系からのみアクセス可能な待機系のメモリに通知データを保存し、通知データを第1の共用メモリから読み出し済みであることを現用系に通知する。待機系は、現用系から待機系に切り替わると、待機系のメモリに保存された通知データを用いて処理を実行する。

Description

情報処理装置およびそのメモリ制御方法
 本発明は、情報処理装置およびそのメモリ制御方法に関する。
 近年の情報処理装置では、情報処理装置が万一故障した場合であっても、運用を継続できるように冗長化構成を採用したものが増加してきている。冗長化構成には用途に応じてさまざまな種類がある。一般的に、一瞬の停止も許されない環境で用いられる情報処理装置は、装置内に複数のCPU(Central Processing Unit)を搭載し、現用系のCPUが故障したとき待機系のCPUに切り換えて、信頼性の向上をはかっている。
 冗長化構成を採用した情報処理装置では、情報処理装置の動作を規定するための設定情報や処理中のデータの情報を現用系と待機系の間で共有していない。そのため、情報処理装置を現用系から待機系に切り替えた場合に、情報処理装置の動作が変わってしまう問題がある。また、情報処理装置を通信システムに用いる場合は、情報処理装置を現用系から待機系に切り替えたときに処理中の通信データが消失し、通信データの連続性を失ってしまう問題があった。
 これらの問題を解決するため、特許文献1には、現用系のCPUと待機系のCPUとの間に共用メモリを備えた情報処理装置が記載されている。これにより、現用系のCPUが一部のデータを共用メモリに蓄積し、待機系のCPUが共用メモリから当該データを読み出せるため、情報処理装置は、データの連続性を保障することができる。
 また、特許文献2には、待機系のCPUが動作するときに誤って共用メモリのデータを破壊しないようにする方法が記載されている。
特開昭63-61338号公報 特開平8-129508号公報
 上述した特許文献1および特許文献2では、現用系のCPUが暴走した場合に、共用メモリ内の不特定の領域に誤ったデータを書き込み、共用メモリ上のデータを破壊することがある。また、現用系のCPUが共用メモリへデータ書き込み中に停止した場合に、共用メモリ上のデータが不連続になることもある。このような場合、情報処理装置は、現用系から待機系へ切り替わったときに壊れたデータにもとづいて動作するため、異常動作や動作停止などの重大な問題を引き起こすおそれがある。
 本発明は、上述した課題を解決するためになされたものであって、その目的は、現用系のCPUに異常が発生したときに、安全に現用系から待機系へ切り換えることが可能な高い信頼性を保障する情報処理装置およびそのメモリ制御方法を提供することである。
 上記目的を達成するために、本発明の情報処理装置は、現用系および待機系からアクセス可能であり、前記現用系から前記待機系に通知する通知データを格納する第1の共用メモリと、前記現用系からの前記第1の共用メモリへの書き込みを禁止または許可する現用系の第1のアクセス制御装置と、前記待機系からのみアクセス可能な待機系のメモリと、前記通知データを前記第1の共用メモリに書き込むときのみ前記現用系の第1のアクセス制御装置に該第1の共用メモリへの書き込みを許可させ、前記通知データを前記第1の共用メモリに書き込むと、前記通知データを前記現用系から前記第1の共用メモリに書き込み済みであることを前記待機系に通知する現用系のCPUと、前記現用系のCPUから前記通知データが前記第1の共用メモリに書き込み済みであることを通知されると、前記通知データを前記第1の共用メモリから読み出し、前記通知データを前記待機系のメモリに保存し、前記通知データを前記待機系で前記第1の共用メモリから読み出し済みであることを前記現用系に通知し、前記現用系から前記待機系に切り替わると、前記待機系のメモリに保存された通知データを用いて処理を実行する待機系のCPUとを有する。
 また、本発明のメモリ制御方法は、現用系と待機系を有する情報処理装置のメモリ制御方法であって、前記現用系は、前記現用系から前記待機系に通知する通知データを前記現用系および前記待機系からアクセス可能な第1の共用メモリに書き込むときのみ、前記第1の共用メモリへの書き込みを許可し、前記現用系は、前記通知データを前記第1の共用メモリに書き込むと、前記通知データを前記第1の共用メモリに書き込み済みであることを前記待機系に通知し、前記待機系は、前記通知データが前記第1の共用メモリに書き込み済みであることを前記現用系から通知されると、前記通知データを前記第1の共用メモリから読み出し、前記待機系からのみアクセス可能な待機系のメモリに前記通知データを保存し、前記通知データを前記第1の共用メモリから読み出し済みであることを前記現用系に通知し、前記待機系は、前記現用系から前記待機系に切り替わると、前記待機系のメモリに保存された通知データを用いて処理を実行する。
 本発明によれば、情報処理装置の現用系のCPUに異常が発生したときに、安全に現用系から待機系へ切り換えることができ、高い信頼性を保障できる。
第1の実施の形態に係る情報処理装置の構成を示すブロック図である。 図1に示した現用系のCPUが実施する共用メモリへのデータ書き込み処理手順を示すフローチャートである。 図1に示した待機系のCPUが実施する共用メモリからのデータ読み出し処理手順を示すフローチャートである。 第2の実施の形態に係る情報処理装置の構成を示すブロック図である。 第3の実施の形態に係る情報処理装置の構成を示すブロック図である。 図5に示した現用系のCPUが実施する共用メモリへのデータ書き込み処理手順を示すフローチャートである。 図5に示した待機系のCPUが実施する共用メモリからのデータ読み出し処理手順を示すフローチャートである。 第4の実施の形態に係る情報処理装置の構成を示すブロック図である。
 次に、本発明の各実施の形態について図面を参照して詳細に説明する。
 本発明の各実施の形態では、現用系のCPUあるいは待機系のCPUが共用メモリへ書き込みを実施しないことが想定されているとき、共用メモリへの書き込みを禁止する。さらに、待機系のCPUは、現用系のCPUから通知されたデータを現用系のCPUがアクセスできない待機系のメモリに保存して、データの保全をはかる。
 (第1の実施の形態)
 次に、本発明の第1の実施の形態について説明する。
 図1は第1の実施の形態に係る情報処理装置の構成を示すブロック図である。
 図1に示すように、第1の実施の形態に係る情報処理装置1は、現用系として、CPU10、メモリ11、第1のアクセス制御装置12および割り込みコントローラ13を有する。また、第1の実施の形態に係る情報処理装置1は、待機系として、CPU20、メモリ21、第1のアクセス制御装置22および割り込みコントローラ23を有する。さらに、第1の実施の形態に係る情報処理装置1は、共通部として、記録媒体30、記録媒体インタフェース部31および第1の共用メモリ32を有する。
 記録媒体30には、情報処理装置1の所定の機能を提供するための現用系用のプログラムおよび待機系用のプログラムが記録される。なお、記録媒体30は、磁気ディスク、半導体メモリ、光ディスクあるいはその他の記録媒体であってもよい。
 現用系のCPU10は、記録媒体インタフェース部31を介して記録媒体30に記録された現用系用のプログラムを現用系のメモリ11に読み込む。CPU10はメモリ11に読み込んだプログラムにしたがって処理を実行する。
 一方、待機系のCPU20は、記録媒体インタフェース部31を介して記録媒体30に記録された待機系用のプログラムを待機系のメモリ21に読み込む。CPU20はメモリ21に読み込んだプログラムにしたがって処理を実行する。
 現用系のメモリ11は、現用系用のプログラムおよび現用系のCPU10が処理するデータを記憶するための記憶装置である。メモリ11には、現用系のCPU10のみがアクセス可能であり、待機系のCPU20はアクセスできない。
 一方、待機系のメモリ21は、待機系用のプログラムおよび待機系のCPU20が処理するデータを記憶するための記憶装置である。メモリ21には、待機系のCPU20のみがアクセス可能であり、現用系のCPU10はアクセスできない。
 第1の共用メモリ32は、現用系と待機系の間の情報伝達のために用いられるメモリであり、CPU10およびCPU20の両方からアクセス可能である。第1の共用メモリ32として、例えばマルチポートを備えたRAM(Random Access Memory)が用いられる。
 現用系の第1のアクセス制御装置12は、CPU10の第1の共用メモリ32への書き込みを制限するための装置であり、例えば各種の論理回路からなるLSI(Large Scale Integration)を用いて実現できる。CPU10は、第1のアクセス制御装置12に対して、CPU10から第1の共用メモリ32への書き込みを許可するか禁止するかを設定する。第1のアクセス制御装置12は、通常は第1の共用メモリ32への書き込みを禁止するように設定されており、CPU10が第1の共用メモリ32へ書き込みを実施するときのみ第1の共用メモリ32への書き込みを許可するように設定される。第1の共用メモリ32への書き込みが許可されると、CPU10が第1の共用メモリ32にアクセスするとき、第1のアクセス制御装置12は、第1の共用メモリ32へアクティブなCS(チップセレクト)信号を出力する。逆に、第1の共用メモリ32への書き込みが禁止されると、第1のアクセス制御装置12は、CS信号をインアクティブに固定し、CPU10が誤って第1の共用メモリ32にデータを書き込むことを防止する。
 一方、待機系の第1のアクセス制御装置22は、CPU20の第1の共用メモリ32への書き込みを制限するための装置であり、その実現方法は、第1のアクセス制御装置12と同様である。
 待機系の割り込みコントローラ23は、現用系のCPU10からの要求に応じて待機系のCPU20に割り込み信号を出力する装置である。現用系のCPU10は、割り込みコントローラ23に指示を行って待機系のCPU20に割り込み信号を出力させ、第1の共用メモリ32へデータを書き込んだことを待機系のCPU20に通知する。
 一方、現用系の割り込みコントローラ13は、待機系のCPU20からの要求に応じて現用系のCPU10に割り込み信号を出力する装置である。待機系のCPU20は、割り込みコントローラ13に指示を行って現用系のCPU10に割り込み信号を出力させ、第1の共用メモリ32からデータを読み出したことを現用系のCPU10に通知する。
 現用系では、CPU10、記録媒体インタフェース部31、メモリ11、第1の共用メモリ32、第1のアクセス制御装置12および割り込みコントローラ13が内部バス14を介して接続される。
 一方、待機系では、CPU20、記録媒体インタフェース部31、メモリ21、第1の共用メモリ32、第1のアクセス制御装置22および割り込みコントローラ23が内部バス24を介して接続される。
 次に、図1に示した現用系のCPU10が実施する第1の共用メモリ32へのデータ書き込み処理手順について図2のフローチャートを参照して説明する。
 CPU10はメモリ11に保存された現用系用のプログラムにしたがって以下に記載する処理を実行する。
 CPU10は、処理を開始すると(ステップS1)、まず、待機系のCPU20に通知すべきデータ(以降、通知データと称する)が発生するまで待機する(ステップS2)。なお、通知データとしては、情報処理装置の動作を規定するための設定情報などがある。利用者が情報処理装置の動作を規定するための設定情報を変更すると、情報処理装置1は、当該設定情報を現用系のCPU10が参照できるように現用系のメモリ11に保存する。さらに、情報処理装置1は、現用系のCPU10で異常が発生して待機系に切り替わる場合に備えて、当該設定情報を待機系のCPU20も参照できるようにしておく。
 通知データが発生すると、CPU10は、待機系のCPU20が第1の共用メモリ32からデータを読み出し中か否かを判別する(ステップS3)。なお、待機系のCPU20が通知データを読み出し中にCPU10が別の通知データを第1の共用メモリ32へ書き込むと、待機系のCPU20が読み出し中の通知データは破壊されるおそれがある。このため、CPU10は、待機系のCPU20が第1の共用メモリ32から通知データを読み出し中の場合、その読み出しが完了するまで待機する。第1の実施の形態では、現用系のCPU10は、割り込みコントローラ23に指示を行って待機系のCPU20に割り込み信号を出力させ、通知データを第1の共用メモリ32へ書き込み済みであること(以降、書き込み通知と称する)を待機系のCPU20に通知する。一方、待機系のCPU20は、割り込みコントローラ13に指示を行って現用系のCPU10に割り込み信号を出力させ、通知データを第1の共用メモリ32から読み出し済みであること(以降、読み出し通知と称する)を現用系のCPU10に通知する。したがって、現用系のCPU10は、書き込み通知を待機系のCPU20に通知してから、読み出し通知が待機系のCPU20から通知されるまでの間は、待機系のCPU20が第1の共用メモリ32からデータを読み出し中であると判別する。一方、それ以外の期間は、待機系のCPU20が第1の共用メモリ32からデータを読み出し中でないと判別する。
 待機系のCPU20が第1の共用メモリ32から通知データを読み出し中でない場合、CPU10は、第1のアクセス制御装置12に第1の共用メモリ32への書き込みを許可するように設定する(ステップS4)。続いて、CPU10は、通知データを第1の共用メモリ32へ書き込む(ステップS5)。第1の共用メモリ32へ通知データを書き込むと、CPU10は、第1のアクセス制御装置12に第1の共用メモリ32への書き込みを禁止するように設定する(ステップS6)。
 第1のアクセス制御装置12に第1の共用メモリ32への書き込みを禁止するように設定すると、CPU10は、割り込みコントローラ23に指示を行って待機系のCPU20に割り込み信号を出力させ、書き込み通知を待機系のCPU20に通知する(ステップS7)。CPU10は、書き込み通知を待機系のCPU20に通知すると、ステップS2へ移行し、再度待機系に通知するデータが発生するまで待機する。
 次に、図1に示した待機系のCPU20が実施する第1の共用メモリ32からのデータ読み出し処理手順について図3のフローチャートを参照して説明する。
 CPU20はメモリ21に保存された待機系用のプログラムにしたがって以下に記載する処理を実行する。
 CPU20は、処理を開始すると(ステップS11)、まず、書き込み通知が現用系のCPU10から通知されるまで待機する(ステップS12)。なお、書き込み通知は、CPU20が割り込みコントローラ23から割り込み信号を受信することでCPU20に通知される。
 書き込み通知が現用系のCPU10から通知されると、CPU20は、通知データを第1の共用メモリ32から読み出し、読み出した通知データをメモリ21に保存する(ステップS13)。なお、待機系のCPU20が第1の共用メモリ32へ書き込むことはないため、第1のアクセス制御装置22は、常に第1の共用メモリ32への書き込みを禁止するように設定される。続いて、CPU20は、割り込みコントローラ13に指示を行って現用系のCPU10に割り込み信号を出力させ、読み出し通知を現用系のCPU10に通知する(ステップS14)。
 CPU20は、読み出し通知を現用系のCPU10に通知すると、ステップS12へ移行し、再度、書き込み通知が現用系のCPU10から通知されるまで待機する。
 第1の実施の形態に係る情報処理装置は、共用メモリへの書き込みを制限する。すなわち、現用系のCPUあるいは待機系のCPUが共用メモリへデータを書き込まないことが想定されているとき、共用メモリへの書き込みは禁止されているので、運用中に共用メモリのデータが破壊される可能性は低くなる。
 また、待機系のCPUは、現用系のCPUが通知データを共用メモリへ書き込み終わったタイミングで当該データを共用メモリから読み出し、読み出したデータを現用系からアクセスできない待機系のメモリに保存する。現用系から待機系に切り替わると、待機系のCPUは、共用メモリに保存されたデータではなく、待機系のメモリに保存されたデータにしたがって動作する。また、現用系のCPUが通知データを共用メモリへ書き込んでいるときに停止した場合、書き込み通知が待機系のCPUに通知されず、待機系のCPUは共用メモリからデータを読み出さない。このため、書き込み途中の不連続なデータが待機系で使用されるおそれがなくなる。
 また、現用系のCPUは共用メモリへの書き込みを禁止にしてから書き込み通知を待機系のCPUに通知する。つまり、現用系のCPUが暴走し、共用メモリの通知データが破壊された場合、書き込み通知が待機系のCPUに通知されず、待機系のCPUは共用メモリからデータを読み出さない。このため、破壊された通知データが待機系で使用されるおそれがなくなる。
 これにより、第1の実施の形態に係る情報処理装置は、現用系のCPUに異常が発生したときに、安全に現用系から待機系へ切り換えることができ、高い信頼性を保障できる。
 (第2の実施の形態)
 第2の実施の形態では、通信システムで用いられる情報処理装置について説明する。
 図4は第2の実施の形態に係る情報処理装置の構成を示すブロック図である。
 図4に示すように、第2の実施の形態に係る情報処理装置1は、現用系として、CPU10、メモリ11、第1のアクセス制御装置12および割り込みコントローラ13を有する。また、第2の実施の形態に係る情報処理装置1は、待機系として、CPU20、メモリ21、第1のアクセス制御装置22および割り込みコントローラ23を有する。さらに、第2の実施の形態に係る情報処理装置1は、共通部として、記録媒体30、記録媒体インタフェース部31、第1の共用メモリ32、外部入出力装置34および外部バス切り替え器35を有する。
 CPU10、メモリ11、第1のアクセス制御装置12、割り込みコントローラ13、CPU20、メモリ21、第1のアクセス制御装置22、割り込みコントローラ23、記録媒体30、記録媒体インタフェース部31、第1の共用メモリ32の構成は第1の実施の形態と同一である。
 外部入出力装置34は、外部の通信機器(図示せず)とデータを送受信する機能をもつ、通信システムで用いられる周知の通信装置が備える装置である。外部入出力装置34の例としては、LAN(Local Area Network)コントローラや無線LANコントローラなどがある。
 外部バス切り替え器35は、現用系または待機系のいずれで処理するかに応じて外部入出力装置34の接続先を切り替える装置であり、例えば各種の論理回路からなるLSIを用いて実現できる。
 外部入出力装置34および外部切り替え器35は、外部バス36を介して接続される。
 第1の実施の形態に係る情報処理装置では、情報処理装置の動作を規定するための設定情報を通知データとして用いる例を示した。第2の実施の形態に係る情報処理装置では、外部の通信機器から受信したデータを通知データとして用いる例を示す。
 第2の実施の形態に係る情報処理装置は、外部の通信機器からデータを受信すると、受信したデータをメモリ11に格納し、格納したデータに対して所定の処理を実施し、所定の処理を実施したデータを外部の通信機器に送信する。なお、所定の処理とは、情報処理装置の機能に応じて異なる処理である。所定の処理としては、例えば、外部の通信機器から受信したデータを別の通信機器に送信するために、当該データに含まれるアドレス情報を書き換える処理などがある。
 現用系のCPU10は、外部の通信機器からデータを受信すると、受信したデータを、第1の共用メモリ32を介して待機系のCPU20に送信する。待機系のCPU20は、現用系のCPU10から受信したデータをメモリ21に保存する。
 また、現用系のCPU10は、外部の通信機器から受信したデータに対して所定の処理を実施し、所定の処理を実施したデータを外部の通信機器に送信すると、当該データに対する処理の完了を、第1の共用メモリ32を介して待機系のCPU20に通知する。待機系のCPU20は、現用系のCPU10から処理の完了が通知されたデータをメモリ21から消去する。
 情報処理装置1は、現用系のCPU10に異常が発生すると、現用系から待機系へ切り換える。情報処理装置1が待機系に切り替わると、待機系のCPU20は、外部バス切り替え器35を待機系へ切り替える。また、待機系のCPU20は、メモリ21に保存されているデータに対して所定の処理を実施し、所定の処理を実施したデータを外部の通信機器に送信する。
 第2の実施の形態に従えば、情報処理装置が通信システムに用いられる場合において、現用系のCPUに異常が発生したときに、処理中のデータを消失することなく、通信データの連続性を保つことが可能になる。
 (第3の実施の形態)
 第1の実施の形態で示した情報処理装置は、現用系のCPUが通知データを共用メモリへ書き込んだことを待機系のCPUに通知するために割り込みコントローラを使用した。一方、情報処理装置が複数の共用メモリを有する場合は、第2の共用メモリを使用して、現用系のCPUが通知データを第1の共用メモリへ書き込んだことを待機系のCPUに通知してもよい。第3の実施の形態では、割り込みコントローラを使用せず、第2の共用メモリを使用して現用系のCPUが通知データを第1の共用メモリへ書き込んだことを待機系のCPUに通知する方法を説明する。
 図5は第3の実施の形態に係る情報処理装置の構成を示すブロック図である。
 図5に示すように、第3の実施の形態に係る情報処理装置1は、現用系として、CPU10、メモリ11、第1のアクセス制御装置12および第2のアクセス制御装置15を有する。また、第3の実施の形態に係る情報処理装置1は、待機系として、CPU20、メモリ21、第1のアクセス制御装置22および第2のアクセス制御装置25を有する。さらに、第3の実施の形態に係る情報処理装置1は、共通部として、記録媒体30、記録媒体インタフェース部31、第1の共用メモリ32および管理用の第2の共用メモリ33を有する。
 CPU10、メモリ11、第1のアクセス制御装置12、CPU20、メモリ21、第1のアクセス制御装置22、記録媒体30、記録媒体インタフェース部31および第1の共用メモリ32の構成は第1の実施の形態と同一である。
 第2の共用メモリ33は、現用系のCPU10が通知データを第1の共用メモリ32へ書き込んだことを待機系のCPU20に通知するために用いられるメモリである。第2の共用メモリ33は、CPU10およびCPU20の両方からアクセス可能である。第2の共用メモリ33として、例えばマルチポートを備えたRAM(Random Access Memory)が用いられる。
 現用系の第2のアクセス制御装置15は、CPU10の第2の共用メモリ33への書き込みを制限するための装置であり、その実現方法は、第1のアクセス制御装置12と同様である。
 一方、待機系の第2のアクセス制御装置25は、CPU20の第2の共用メモリ33への書き込みを制限するための装置であり、その実現方法は、第1のアクセス制御装置22と同様である。
 現用系では、CPU10、記録媒体インタフェース部31、メモリ11、第1の共用メモリ32、第1のアクセス制御装置12、第2の共用メモリ33および第2のアクセス制御装置15が内部バス14を介して接続される。
 一方、待機系では、CPU20、記録媒体インタフェース部31、メモリ21、第1の共用メモリ32、第1のアクセス制御装置22、第2の共用メモリ33および第2のアクセス制御装置25が内部バス24を介して接続される。
 次に、図5に示した現用系のCPU10が実施する第1の共用メモリ32へのデータ書き込み処理手順について図6のフローチャートを参照して説明する。
 CPU10はメモリ11に保存された現用系用のプログラムにしたがって以下に記載する処理を実行する。
 CPU10は、処理を開始すると(ステップS21)、まず、通知データが発生するまで待機する(ステップS22)。
 通知データが発生すると、CPU10は、待機系のCPU20が第1の共用メモリ32からデータを読み出し中か否かを判別する(ステップS23)。なお、第3の実施の形態に係る情報処理装置1は、通知データが発生したことを現用系のCPU10が待機系のCPU20に通知するために、第2の共用メモリ33に書き込み情報および読み出し情報を記憶する。書き込み情報および読み出し情報を記憶するための実現例として、書き込みカウンタおよび読み出しカウンタがある。書き込みカウンタおよび読み出しカウンタは、情報処理装置の起動時は0に初期化されている。現用系のCPU10は、第1の共用メモリ32に通知データを書き込むと第2の共用メモリ33の書き込みカウンタをカウントアップする。一方、待機系のCPU20は、第1の共用メモリ32から通知データを読み出すと第2の共用メモリ33の読み出しカウンタをカウントアップする。待機系のCPU20は、書き込みカウンタの値が読み出しカウンタの値より大きいと、読み出していない通知データが第1の共用メモリ32に存在すると判別する。また、現用系のCPU10は、書き込みカウンタの値が読み出しカウンタの値より大きいと、待機系のCPU20が第1の共用メモリ32から通知データを読み出し中であると判別する。
 待機系のCPU20が第1の共用メモリ32から通知データを読み出し中でない場合、CPU10は、第1のアクセス制御装置12に指示を行って第1の共用メモリ32への書き込みを許可するように設定する(ステップS24)。続いて、CPU10は、通知データを第1の共用メモリ32へ書き込む(ステップS25)。第1の共用メモリ32へ通知データを書き込むと、CPU10は、第1のアクセス制御装置12に指示を行って第1の共用メモリ32への書き込みを禁止するように設定する(ステップS26)。
 次に、CPU10は、第2のアクセス制御装置15に指示を行って第2の共用メモリ33への書き込みを許可するように設定する(ステップS27)。続いて、CPU10は、第2の共用メモリ33の書き込みカウンタをカウントアップする(ステップS28)。第2の共用メモリ33の書き込みカウンタをカウントアップすると、CPU10は、第2のアクセス制御装置15に指示を行って第2の共用メモリ33への書き込みを禁止するように設定する(ステップS29)。
 CPU10は、第2のアクセス制御装置15に指示を行って第2の共用メモリ33への書き込みを禁止するように設定すると、ステップS22へ移行し、再度、通知データが発生するまで待機する。
 次に、図5に示した待機系のCPU20が実施する第1の共用メモリ32からのデータ読み出し処理手順について図7のフローチャートを参照して説明する。
 CPU20はメモリ21に保存された待機系用のプログラムにしたがって以下に記載する処理を実行する。
 CPU20は、処理を開始すると(ステップS31)、まず、現用系のCPU10が第1の共用メモリ32に通知データを書き込むまで待機する(ステップS32)。なお、現用系のCPU10が第1の共用メモリ32に通知データを書き込んだか否かは、第2の共用メモリ33に格納されている書き込みカウンタの値と読み出しカウンタの値の比較に基づいて判別する。
 現用系のCPU10が第1の共用メモリ32に通知データを書き込むと、CPU20は、通知データを第1の共用メモリ32から読み出し、読み出したデータをメモリ21に保存する(ステップS33)。なお、待機系のCPU20が第1の共用メモリ32へ書き込むことはないため、第1のアクセス制御装置22は、常に第1の共用メモリ32への書き込みを禁止するように設定される。
 次に、CPU20は、第2のアクセス制御装置25に指示を行って第2の共用メモリ33への書き込みを許可するように設定する(ステップS34)。続いて、CPU20は、第2の共用メモリ33の読み出しカウンタをカウントアップする(ステップS35)。第2の共用メモリ33の読み出しカウンタをカウントアップすると、CPU20は、第2のアクセス制御装置25に指示を行って第2の共用メモリ33への書き込みを禁止するように設定する(ステップS36)。
 CPU20は、第2のアクセス制御装置25に指示を行って第2の共用メモリ33への書き込みを禁止するように設定すると、ステップS32へ移行し、再度、現用系のCPU10が第1の共用メモリ32に通知データを書き込むまで待機する。
 第3の実施の形態に係る情報処理装置は、共用メモリへの書き込みを制限する。すなわち、現用系のCPUあるいは待機系のCPUが共用メモリへデータを書き込まないことが想定されているとき、共用メモリへの書き込みは禁止されているので、運用中に共用メモリのデータが破壊される可能性は低くなる。
 また、待機系のCPUは、現用系のCPUが通知データを第1の共用メモリへ書き込み終わったタイミングで第1の共用メモリから当該データを読み出し、読み出したデータを現用系からアクセスできない待機系のメモリに保存する。現用系から待機系に切り替わると、待機系のCPUは、第1の共用メモリに保存されたデータではなく、待機系のメモリに保存されたデータにしたがって動作する。現用系のCPUが通知データを第1の共用メモリへ書き込んでいるときに停止した場合、第2の共用メモリの書き込み情報が更新されず、待機系のCPUは第1の共用メモリからデータを読み出さない。このため、書き込み途中の不連続なデータが待機系で使用されるおそれがなくなる。
 また、現用系のCPUは第1の共用メモリへの書き込みを禁止にしてから、第2の共用メモリの書き込み情報を更新し、通知データを第1の共用メモリへ書き込んだことを待機系のCPUに通知する。つまり、現用系のCPUが暴走し、第1の共用メモリの通知データが破壊された場合、第2の共用メモリの書き込み情報が更新されず、待機系のCPUは第1の共用メモリからデータを読み出さない。このため、破壊された通知データが待機系で使用されるおそれがなくなる。
 つまり、第3の実施の形態に従えば、第1の実施の形態に示した割り込みコントローラを使用せずに、第1の実施の形態に係る情報処理装置と同様の効果を得ることが可能になる。第3の実施の形態に係る情報処理装置は、現用系のCPUに異常が発生したときに、安全に現用系から待機系へ切り換えることができ、高い信頼性を保障できる。
 (第4の実施の形態)
 第4の実施の形態では、通信システムで用いられる情報処理装置について説明する。
 図8は第4の実施の形態に係る情報処理装置の構成を示すブロック図である。
 図8に示すように、第4の実施の形態に係る情報処理装置1は、現用系として、CPU10、メモリ11、第1のアクセス制御装置12および第2のアクセス制御装置15を有する。また、第4の実施の形態に係る情報処理装置1は、待機系として、CPU20、メモリ21、第1のアクセス制御装置22および第2のアクセス制御装置25を有する。さらに、第4の実施の形態に係る情報処理装置1は、共通部として、記録媒体30、記録媒体インタフェース部31、第1の共用メモリ32、第2の管理用共用メモリ33、外部入出力装置34および外部バス切り替え器35を有する。
 CPU10、メモリ11、第1のアクセス制御装置12、第2のアクセス制御装置15、CPU20、メモリ21、第1のアクセス制御装置22、第2のアクセス制御装置25、記録媒体30、記録媒体インタフェース部31、第1の共用メモリ32および第2の共用メモリ32の構成は第3の実施の形態と同一である。
 また、外部入出力装置34および外部バス切り替え器35の構成は第2の実施の形態と同一である。
 本構成を採ることで、第4の実施の形態に係る情報処理装置は、第2の実施の形態に示した割り込みコントローラを使用せずに、第2の実施の形態に係る情報処理装置と同様の効果を得ることが可能になる。つまり、第4の実施の形態に係る情報処理装置は、情報処理装置が通信システムに用いられる場合において、現用系のCPUに異常が発生したときに、処理中のデータを消失することなく、通信データの連続性を保つことが可能になる。
 以上、実施形態を参照して本発明を説明したが、本発明は上述した実施形態に限定されるものではない。本発明の構成や詳細には、本発明の範囲内で当業者が理解し得る様々な変更を加えることができる。
 この出願は、2008年12月26日に出願された日本出願特願2008-332984号を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 本発明は、現用系および予備系を有する情報処理装置に適用することができる。本発明によれば、現用系のCPUに異常が発生したときに、安全に現用系から待機系へ切り換えることが可能な高い信頼性を保障する情報処理装置およびそのメモリ制御方法を提供できる。
1 情報処理装置
10、20 CPU
11、21 メモリ
12、22 第1のアクセス制御装置
13、23 割り込みコントローラ
14、24 内部バス
15、25 第2のアクセス制御装置
30 記録媒体
31 記録媒体インタフェース部
32 第1の共用メモリ
33 第2の共用メモリ
34 外部入出力装置
35 外部バス切り替え器
36 外部バス

Claims (9)

  1.  現用系および待機系からアクセス可能であり、前記現用系から前記待機系に通知する通知データを格納する第1の共用メモリと、
     前記現用系からの前記第1の共用メモリへの書き込みを禁止または許可する現用系の第1のアクセス制御装置と、
     前記待機系からのみアクセス可能な待機系のメモリと、
     前記通知データを前記第1の共用メモリに書き込むときのみ前記現用系の第1のアクセス制御装置に該第1の共用メモリへの書き込みを許可させ、前記通知データを前記第1の共用メモリに書き込むと、前記通知データを前記現用系から前記第1の共用メモリに書き込み済みであることを前記待機系に通知する現用系のCPUと、
     前記現用系のCPUから前記通知データが前記第1の共用メモリに書き込み済みであることを通知されると、前記通知データを前記第1の共用メモリから読み出し、前記通知データを前記待機系のメモリに保存し、前記通知データを前記待機系で前記第1の共用メモリから読み出し済みであることを前記現用系に通知し、前記現用系から前記待機系に切り替わると、前記待機系のメモリに保存された通知データを用いて処理を実行する待機系のCPUと
     を有する情報処理装置。
  2.  前記現用系のCPUからの要求に応じて前記待機系のCPUに割り込み信号を出力する待機系の割り込みコントローラと、
     前記待機系のCPUからの要求に応じて前記現用系のCPUに割り込み信号を出力する現用系の割り込みコントローラと
     をさらに有し、
     前記現用系のCPUは、前記待機系の割り込みコントローラに前記割り込み信号を出力させて、前記通知データを前記現用系から前記第1の共用メモリに書き込み済みであることを書き込み通知として前記待機系に通知し、
     前記待機系のCPUは、前記現用系の割り込みコントローラに前記割り込み信号を出力させて、前記通知データを前記待機系で前記第1の共用メモリから読み出し済みであることを読み出し通知として前記現用系に通知する請求項1記載の情報処理装置。
  3.  前記現用系および前記待機系からアクセス可能であり、前記通知データを前記現用系から前記第1の共用メモリに書き込み済みであることを示す書き込み情報および前記通知データを前記待機系で前記第1の共用メモリから読み出し済みであることを示す読み出し情報を格納する第2の共用メモリと、
     前記現用系からの前記第2の共用メモリへの書き込みを禁止または許可する現用系の第2のアクセス制御装置と、
     前記待機系からの前記第2の共用メモリへの書き込みを禁止または許可する待機系の第2のアクセス制御装置と
     をさらに有し、
     前記現用系のCPUは、前記書き込み情報を前記第2の共用メモリに書き込むときのみ前記現用系の第2のアクセス制御装置に該第2の共用メモリへの書き込みを許可させ、前記通知データを前記第1の共用メモリに書き込むと、前記第2の共用メモリの前記書き込み情報を更新して、前記通知データを前記現用系から前記第1の共用メモリに書き込み済みであることを前記待機系に通知し、
     前記待機系のCPUは、前記読み出し情報を前記第2の共用メモリに書き込むときのみ前記待機系の第2のアクセス制御装置に該第2の共用メモリへの書き込みを許可させ、前記第1の共用メモリから読み出した前記通知データを前記待機系のメモリに保存すると、前記第2の共用メモリの前記読み出し情報を更新して、前記通知データを前記待機系で前記第1の共用メモリから読み出し済みであることを前記現用系に通知する請求項1記載の情報処理装置。
  4.  外部の通信機器とデータを送受信する外部入出力装置と、
     前記現用系または前記待機系のいずれで処理するかに応じて前記外部入出力装置の接続先を切り替える外部バス切り替え器と、
     をさらに有する請求項1から3のいずれか1項に記載の情報処理装置。
  5.  前記現用系のCPUは、前記待機系に通知する前記通信データが発生した場合において、前記待機系のCPUが前記通知データを読み出し中であると判別した場合には、前記待機系のCPUにおける前記通知データの読み出しが完了するまで待機する請求項1から4のいずれか1項に記載の情報処理装置。
  6.  前記現用系のCPUは、前記通知データを前記第1の共用メモリに書き込み済みであることを前記待機系のCPUへ通知してから、前記通知データを前記第1の共用メモリから読み出し済みであることが前記待機系から通知されるまでの間は、前記待機系のCPUが前記通知データを読み出し中であると判別する請求項5記載の情報処理装置。
  7.  現用系と待機系を有する情報処理装置のメモリ制御方法であって、
     前記現用系は、前記現用系から前記待機系に通知する通知データを前記現用系および前記待機系からアクセス可能な第1の共用メモリに書き込むときのみ、前記第1の共用メモリへの書き込みを許可し、
     前記現用系は、前記通知データを前記第1の共用メモリに書き込むと、前記通知データを前記第1の共用メモリに書き込み済みであることを前記待機系に通知し、
     前記待機系は、前記通知データが前記第1の共用メモリに書き込み済みであることを前記現用系から通知されると、前記通知データを前記第1の共用メモリから読み出し、前記待機系からのみアクセス可能な待機系のメモリに前記通知データを保存し、前記通知データを前記第1の共用メモリから読み出し済みであることを前記現用系に通知し、
     前記待機系は、前記現用系から前記待機系に切り替わると、前記待機系のメモリに保存された通知データを用いて処理を実行するメモリ制御方法。
  8.  前記現用系は、前記待機系に割り込み信号を出力して、前記通知データを前記第1の共用メモリに書き込み済みであることを書き込み通知として前記待機系に通知し、
     前記待機系は、前記現用系に割り込み信号を出力して、前記通知データを前記第1の共用メモリから読み出し済みであることを読み出し通知として前記現用系に通知する請求項7記載のメモリ制御方法。
  9.  前記現用系は、前記通知データを前記現用系から前記第1の共用メモリに書き込み済みであることを示す書き込み情報を前記現用系および前記待機系からアクセス可能な第2の共用メモリに書き込むときのみ前記第2の共用メモリへの書き込みを許可し、
     前記現用系は、前記通知データを前記第1の共用メモリに書き込むと、前記第2の共用メモリの前記書き込み情報を更新して、前記通知データを前記現用系から前記第1の共用メモリに書き込み済みであることを前記待機系に通知し、
     前記待機系は、前記通知データを前記待機系で前記第1の共用メモリから読み出し済みであることを示す読み出し情報を前記第2の共用メモリに書き込むときのみ前記第2の共用メモリへの書き込みを許可し、
     前記待機系は、前記第1の共用メモリから読み出した前記通知データを前記待機系のメモリに保存すると、前記第2の共用メモリの前記読み出し情報を更新して、前記通知データを前記待機系で前記第1の共用メモリから読み出し済みであることを前記現用系に通知する請求項7記載のメモリ制御方法。
PCT/JP2009/006688 2008-12-26 2009-12-08 情報処理装置およびそのメモリ制御方法 WO2010073510A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008-332984 2008-12-26
JP2008332984A JP2010231249A (ja) 2008-12-26 2008-12-26 情報処理装置およびそのメモリ制御方法

Publications (1)

Publication Number Publication Date
WO2010073510A1 true WO2010073510A1 (ja) 2010-07-01

Family

ID=42287168

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/006688 WO2010073510A1 (ja) 2008-12-26 2009-12-08 情報処理装置およびそのメモリ制御方法

Country Status (2)

Country Link
JP (1) JP2010231249A (ja)
WO (1) WO2010073510A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04111039A (ja) * 1990-08-31 1992-04-13 Toshiba Corp 複合系システムにおける他系メモリ制御方式
JPH10289121A (ja) * 1997-04-14 1998-10-27 Sumitomo Sitix Corp 2重化コンピュータシステム
JP2004070642A (ja) * 2002-08-06 2004-03-04 Fujitsu Access Ltd 共有メモリを介してデータ転送を行う通信システム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04111039A (ja) * 1990-08-31 1992-04-13 Toshiba Corp 複合系システムにおける他系メモリ制御方式
JPH10289121A (ja) * 1997-04-14 1998-10-27 Sumitomo Sitix Corp 2重化コンピュータシステム
JP2004070642A (ja) * 2002-08-06 2004-03-04 Fujitsu Access Ltd 共有メモリを介してデータ転送を行う通信システム

Also Published As

Publication number Publication date
JP2010231249A (ja) 2010-10-14

Similar Documents

Publication Publication Date Title
US8321622B2 (en) Storage system with multiple controllers and multiple processing paths
US8886978B2 (en) Multiprocessor system and control method where a power saving mode control that safely stops/starts accesses to a shared memory
JP5161791B2 (ja) 情報処理装置、集積回路、方法、およびプログラム
JP3807250B2 (ja) クラスタシステム、コンピュータ及びプログラム
US6880104B2 (en) Computer system for mutual communication through network and its memory management method
CN101884071A (zh) 在共享的多端口存储装置中记忆库的共享与更新
JP4153802B2 (ja) 記憶装置
JP2009199478A (ja) メモリミラーリング自動構成制御方式
JP4693843B2 (ja) メモリ制御装置及びメモリ制御方法
WO2010073510A1 (ja) 情報処理装置およびそのメモリ制御方法
JP5103823B2 (ja) 情報処理装置および入出力要求制御方法
EP1589427B1 (en) Boot control system
JP2017010102A (ja) 二重系システム
JP2008287727A (ja) 記憶装置
KR20080112601A (ko) 부트램과 데이터램을 공유하는 메모리 장치 및 상기 메모리장치를 포함하는 시스템 부팅 방법
JP2005209178A (ja) メモリ保護装置、メモリ保護方法及びメモリ保護プログラム
WO2021192098A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
JP2006243852A (ja) 通信装置及びメモリ装置
JP3364751B2 (ja) データ転送システム
JP2006209371A (ja) 制御装置
KR100818725B1 (ko) 공유 뱅크를 가지는 멀티 포트 반도체 메모리 장치, 상기 반도체 메모리 장치를 포함하는 시스템, 및 그 리프레시 방법
JP4009401B2 (ja) ディスク制御装置及びプログラムを記録した記録媒体
KR20030024472A (ko) Cpu 이중화 장치 및 방법
JP2008077389A (ja) データ処理装置
JPH1196083A (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: 09834325

Country of ref document: EP

Kind code of ref document: A1

WA Withdrawal of international application
NENP Non-entry into the national phase

Ref country code: DE