JP6056509B2 - 情報処理装置および情報処理装置の制御方法 - Google Patents

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

Info

Publication number
JP6056509B2
JP6056509B2 JP2013015567A JP2013015567A JP6056509B2 JP 6056509 B2 JP6056509 B2 JP 6056509B2 JP 2013015567 A JP2013015567 A JP 2013015567A JP 2013015567 A JP2013015567 A JP 2013015567A JP 6056509 B2 JP6056509 B2 JP 6056509B2
Authority
JP
Japan
Prior art keywords
information
cpu
unit
arithmetic processing
control unit
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2013015567A
Other languages
English (en)
Other versions
JP2014146254A (ja
Inventor
貴継 小野
貴継 小野
佐藤 充
充 佐藤
晋 嵯峨
晋 嵯峨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013015567A priority Critical patent/JP6056509B2/ja
Priority to US14/162,186 priority patent/US9170896B2/en
Publication of JP2014146254A publication Critical patent/JP2014146254A/ja
Application granted granted Critical
Publication of JP6056509B2 publication Critical patent/JP6056509B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • G06F11/0724Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU] in a multiprocessor or a multi-core unit
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • 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
    • 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/2033Failover techniques switching over of hardware resources
    • 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
    • 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/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • 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
    • 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

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)
  • Stored Programmes (AREA)

Description

本発明は、情報処理装置および情報処理装置の制御方法に関する。
CPU(Central Processing Unit)等の複数の演算処理装置が搭載されるシステムにおいて、いずれか一の演算処理装置の故障を検出し、他の演算処理装置に置き換える手法が提案されている(例えば、特許文献1参照。)。
特開2004−318885号公報
故障した演算処理装置を他の演算処理装置に置き換える場合、演算処理装置の物理的な接続が変更される。このため、システムは、例えば、各演算処理装置に固有に割り当てた番号等の情報を変更し、変更した情報を各演算処理装置に認識させ、演算処理装置の置き換え後の演算処理装置間での通信を可能にする。すなわち、故障した演算処理装置が他の演算処理装置に置き換えられる場合、システム内の各演算処理装置に設定された情報は更新される。
1つの側面では、本発明の目的は、故障した演算処理装置が交換される場合にも、システム内の各演算処理装置に設定された情報を更新することなく、演算処理装置の交換の前後で、同じ手続により演算処理装置間の通信を可能にすることである。
本発明の一形態では、情報処理装置は、それぞれ演算処理を行う複数の演算処理装置と、それぞれデータを記憶する複数の記憶装置と、複数の演算処理装置のいずれかと複数の記憶装置のいずれかとを、接続情報に基づいて接続してシステムを構築するスイッチ部と、複数の演算処理装置をそれぞれ識別する物理情報と、システム内の各演算処理装置を識別する論理情報との対応付けを示す対応付け情報を記憶する記憶部と、複数の演算処理装置に対応してそれぞれ設けられ、対応する演算処理装置が送信先の演算処理装置にデータを送信する場合、対応付け情報に基づいて、送信先の演算処理装置の論理情報から変換した物理情報と、対応する演算処理装置の物理情報とを伝送路を介して出力し、対応する演算処理装置が送信元の演算処理装置からデータを受信する場合、対応付け情報に基づいて、送信元の演算処理装置から伝送路を介して受信した送信元の演算処理装置の物理情報から変換した論理情報を対応する演算処理装置に出力する第1の制御部と、システム内の演算処理装置の故障の発生に基づいて接続情報を変更し、スイッチ部を制御して故障が発生した演算処理装置を複数の演算処理装置に含まれる他の演算処理装置に置き換える第2の制御部と、故障の発生に基づいて、故障した演算処理装置の物理情報に対応する論理情報を含む対応付け情報を無効にし、他の演算処理装置の物理情報と無効にした対応付け情報に含まれる論理情報とを対応付ける第3の制御部を有する。
本発明の別の形態では、それぞれ演算処理を行う複数の演算処理装置と、それぞれデータを記憶する複数の記憶装置と、複数の演算処理装置のいずれかと複数の記憶装置のいずれかとを、接続情報に基づいて接続してシステムを構築するスイッチ部と、複数の演算処理装置をそれぞれ識別する物理情報と、システム内の各演算処理装置を識別する論理情報との対応付けを示す対応付け情報を記憶する記憶部とを有する情報処理装置の制御方法において、複数の演算処理装置に対応してそれぞれ設けられた第1の制御部が、対応する演算処理装置が送信先の演算処理装置にデータを送信する場合、対応付け情報に基づいて、送信先の演算処理装置の論理情報から変換した物理情報と、対応する演算処理装置の物理情報とを伝送路を介して出力し、対応する演算処理装置が送信元の演算処理装置からデータを受信する場合、第1の制御部が、対応付け情報に基づいて、送信元の演算処理装置から伝送路を介して受信した送信元の演算処理装置の物理情報から変換した論理情報を対応する演算処理装置に出力し、情報処理装置に含まれる第2の制御部が、システム内の演算処理装置の故障の発生に基づいて接続情報を変更し、スイッチ部を制御して故障が発生した演算処理装置を複数の演算処理装置に含まれる他の演算処理装置に置き換え、情報処理装置に含まれる第3の制御部が、故障の発生に基づいて、故障した演算処理装置の物理情報に対応する論理情報を含む対応付け情報を無効にし、他の演算処理装置の物理情報と無効にした対応情報に含まれる論理情報とを対応付ける。
故障した演算処理装置が交換される場合にも、システム内の各演算処理装置に設定された情報を更新することなく、演算処理装置の交換の前後で、同じ手続により演算処理装置間の通信が可能になる。
一実施形態における情報処理装置の例を示す。 図1に示した情報処理装置において、故障したCPUを未使用のCPUに交換する例を示す。 他の実施形態における情報処理装置の例を示す。 図3に示したCPU制御部とメモリ制御部の例を示す。 図4に示した構成制御部の例を示す。 図5に示したマップ情報テーブルの例を示す。 図4に示した設定テーブルの例を示す。 図3に示したクロスバースイッチの例を示す。 図4に示したレジスタI/Fのレジスタ部の例を示す。 図4に示した仮想化部の例を示す。 図10に示したアドレス変換テーブルの例を示す。 図4に示したCPU監視部の例を示す。 図12に示したCPU監視部の動作の例を示す。 図3に示した情報処理装置において、故障したCPUを未使用のCPUに置き換える例を示す。 図3に示した情報処理装置において、故障したCPUを未使用のCPUに置き換える前後でのCPU制御部の動作の例を示す。 図3に示した情報処理装置において、故障したCPUを未使用のCPUに置き換える前後でのCPU制御部の動作の他の例を示す。 図3に示した情報処理装置において、故障したメモリを未使用のメモリに置き換える例を示す。 図3に示したCPUの電源投入時の動作の例を示す。 図5に示した構成制御部の動作の例を示す。
以下、図面を用いて実施形態を説明する。
図1は、一実施形態における情報処理装置の例を示す。情報処理装置1000は、CPU(CPU0、CPU1、CPU2)、メモリMEM(MEM0、MEM1、MEM2)、スイッチ部SW、テーブルTBLおよび制御部CNT1(CNT10、CNT11、CNT12)、CNT2、CNT3を有する。CPUは、演算処理を行う演算処理装置の一例であり、メモリMEMは、データを記憶する記憶装置の一例である。制御部CNT1は、第1の制御部の一例であり、制御部CNT2は、第2の制御部の一例であり、制御部CNT3は、第3の制御部の一例である。例えば、CPUは、汎用のCPUであり、メモリMEMは、汎用のメモリである。
スイッチ部SWは、CPU0−CPU2の少なくとも1つと、メモリMEM0−MEM2の少なくとも1つとを接続情報に基づいて接続し、システムを構築する。接続情報は、CPUとメモリMEMとをどのように接続するかを示す情報である。図1では、スイッチ部SW内に破線で示すように、接続情報に基づいて、CPU1、CPU2が、スイッチ部SWを介してメモリMEM1に接続され、CPU1−CPU2およびメモリMEM1によりコンピュータシステムSYSが構築される。
各CPUには、情報処理装置1000内での固有の番号である物理番号P#(#は、0、1、2のいずれか)が割り当てられる。また、コンピュータシステムSYS内の各CPU1、CPU2には、仮想の番号である論理番号L#(#は、0、1のいずれか)が割り当てられる。物理番号P#は、情報処理装置1000内のCPUを識別する物理情報の一例であり、論理番号L#は、コンピュータシステムSYS内のCPUを識別する論理情報の一例である。図1において、CPU0内に示した”−”は、CPU0が未使用であり、情報処理装置1000内に含まれるが、コンピュータシステムSYSに含まれないことを示す。
テーブルTBLは、CPU0−CPU2にそれぞれ割り当てられた物理番号P0、P1、P2と、コンピュータシステムSYS内のCPU1、CPU2に割り当てられた論理番号L0、L1を対応付ける対応付け情報を記憶する。テーブルは、物理番号P#と論理番号L#との対応付けを対応付け情報として記憶する記憶部の一例である。例えば、テーブルTBLは、DRAM(Dynamic Random Access Memory)またはSRAM(Static Random Access Memory)等のメモリ装置に記憶される。なお、接続情報は、テーブルTBLを記憶する記憶装置内に、テーブルとして記憶されてもよい。
制御部CNT10−CNT12は、各CPU0−CPU2に対応してそれぞれ設けられる。各制御部CNT10−CNT12は、コンピュータシステムSYSに含まれるCPU間での通信において、論理番号L#および物理番号P#の相互の変換を実行する。
例えば、CPU1からCPU2にデータを送信する場合、送信元のCPU1は、送信先のCPU2を示す論理番号L1をデータとともに制御部CNT11に出力する。制御部CNT11は、テーブルTBLに記憶された物理番号P#と論理番号L#との対応付けに基づいて、送信先を示す論理番号L1を物理番号P2に変換し、変換した物理番号P2を送信元のCPU1を示す物理番号P1とともに内部バスIBUSに出力する。内部バスIBUSは、伝送路の一例である。
送信先のCPU2に対応する制御部CNT12は、内部バスIBUSを介して、送信元のCPU1を示す物理番号P1と、送信先のCPU2を示す物理番号P2とを受信する。なお、制御部CNT12は、送信先の物理番号P#がP0またはP1の場合、伝送路IBUSに伝送される情報は受信しない。
制御部CNT12は、テーブルTBLに記憶された物理番号P#と論理番号L#との対応付けに基づいて、送信元を示す物理番号P1を論理番号L0に変換し、変換した論理番号L0をCPU2に出力する。CPU2は、論理番号L0が割り当てられたCPU(この例では、CPU1)からのデータを受信したことを認識し、受信したデータを用いてデータ処理を実行する。
なお、各制御部CNT10−CNT12が、受信したデータおよび送信元を示す論理番号L#を保持するレジスタやバッファ等の記憶部を有する場合、CPU2は、制御部CNT12が保持したデータおよび論理番号L#を読み出してもよい。この場合、例えば、制御部CNT12は、データの受信に基づいて、記憶部の所定のビットにデータの受信を示す情報を書き込む。CPU2は、制御部CNT12の記憶部の所定のビットをポーリングすることで、データの受信を知ることができる。
なお、CPU間で通信されるデータは、制御部CNT10−CNT12および内部バスIBUSを介して伝送されてもよく、制御部CNT10−CNT12を介さずに、内部バスIBUSを介して伝送されてもよい。
一方、CPU2からCPU1に情報を送信する場合、上述と同様に、送信元のCPU2は、送信先のCPU1を示す論理番号L0を制御部CNT12に出力する。制御部CNT12は、テーブルTBLに記憶された情報に基づいて、論理番号L0を物理番号P1に変換し、変換した物理番号P1を送信元のCPU2を示す物理番号P2とともに伝送路IBUSに出力する。
制御部CNT11は、送信先を示す物理番号P1と送信元を示す物理番号P2とを伝送路IBUSを介して受信する。なお、制御部CNT11は、送信先の物理番号P#がP0またはP2の場合、伝送路IBUSに伝送される情報は受信しない。
制御部CNT11は、テーブルTBLに記憶された情報に基づいて、送信元を示す物理番号P2を論理番号L1に変換し、変換した論理番号L1をCPU1に出力する。CPU1は、論理番号L1が割り当てられたCPU(この例では、CPU2)からのデータを受信したことを認識し、受信したデータを用いてデータ処理を実行する。
一方、制御部CNT2は、コンピュータシステムSYS内のCPU1(またはCPU2)の故障の発生が検出されたことに基づいて、接続情報を変更する。接続情報の変更により、スイッチ部SWは、故障したCPU1(またはCPU2)とメモリMEM1との接続を解除し、例えば、未使用のCPU0をメモリMEM1に接続する。これにより、故障したCPU1(またはCPU2)は、他のCPU(例えば、CPU0)に置き換えられる。すなわち、制御部CNT2は、変更した接続情報に基づいてスイッチ部SWを制御して、故障したCPUを他のCPUに置き換える。なお、CPUの故障は、CPUからの情報に基づいて、制御部CNT2により検出されてもよく、CPUの故障を検出する検出部により検出されてもよい。制御部CNT3の機能および動作の例は、図2で説明する。
図2は、図1に示した情報処理装置1000において、故障したCPU2を未使用のCPU0に交換する例を示す。
制御部CNT2は、図1で説明したように、接続情報の変更に基づいてスイッチ部SWを制御し、故障したCPU2とメモリMEM1との接続を解除し、未使用のCPU0をメモリMEM1に接続する。これにより、故障したCPU2は、他のCPU0に置き換えられ、新たな接続関係を有するコンピュータシステムSYSが構築される。
制御部CNT3は、コンピュータシステムSYS内のCPU1(またはCPU2)の故障の発生に基づいて変更された接続情報に合わせてテーブルTBLを書き換える。例えば、CPU2が故障した場合、制御部CNT3は、CPU2を示す物理番号P2に対応する論理番号L#(この例では、L1)を無効にし、CPU0を示す物理番号P0に対応する論理番号の領域に無効にした論理番号L#(この例では、L1)を書き込む。すなわち、制御部CNT3は、故障したCPU2に割り当てられた物理番号P2と論理番号L0との対応付けとを示す対応付け情報を無効にし、CPU0に割り当てられた物理番号P0に、故障したCPU2に割り当てられた論理番号L0を対応付ける。
これにより、CPU2の故障前に、論理番号L0、L1に対応するCPU1、CPU2間で実行された通信は、CPU2の故障後にも、論理番号L0、L1を変えることなく、CPU1、CPU2間で実行可能である。すなわち、この実施形態では、コンピュータシステムSYS内のCPU間の通信で、物理番号P#を使用しないため、故障によるCPUの交換の前後で、コンピュータシステムSYS内のCPUの設定を維持できる。例えば、CPUにより実行されるプログラムは、変更されることなく継続して実行可能であり、CPUの交換の前後で、同じ手続によりCPU間の通信が可能である。
したがって、情報処理装置1000において、外部からの制御や操作を伴うことなく、故障したCPUを自動的に未使用のCPUに置き換え可能にでき、情報処理装置1000の信頼性を従来に比べて向上できる。情報処理装置1000は、メンテナンスフリーな組み込みシステム(Embedded system)として動作可能になるため、例えば、人手によるメンテナンスが困難な海底や山奥あるいは宇宙に設置可能になる。さらに、故障したCPUを自動的に未使用のCPUに置き換えできるため、汎用のCPUを用いる場合にも、情報処理装置1000の信頼性を従来に比べて向上できる。
図3は、他の実施形態における情報処理装置の例を示す。図1に示した実施形態で説明した要素と同様または同一の要素については、同一の符号を付し、これ等については、詳細な説明を省略する。
例えば、この実施形態の情報処理装置1100は、複数のCPUと、複数のメモリMEMと、CPUおよびメモリMEMを制御するシステム制御装置100とを有する。情報処理装置1100は、CPUがプログラムを実行することでシステムとして動作する。例えば、情報処理装置1100は、n+1個(n:正の整数)のCPU(CPU0、CPU1、CPU2、...、CPUn)と、m+1個(正の整数)のメモリMEM(MEM0、MEM1、MEM2、...、MEMm)とを有する。
例えば、CPUは、汎用のCPUであり、メモリMEMは、フラッシュメモリ、強誘電体メモリ、DRAM、またはSRAM等の汎用のメモリである。フラッシュメモリまたは強誘電体メモリ等の書き換え可能な不揮発性メモリがメモリMEMとして採用される場合、情報処理装置1100が起動される前に、CPUが実行するプログラムをメモリMEMに格納することが可能になる。一方、DRAMやSRAMがメモリMEMとして採用される場合、情報処理装置1100は、CPUが実行するプログラムを予め格納するROM(Read Only Memory)を有してもよい。この場合、情報処理装置1100の起動時のイニシャルシーケンスにおいて、システム制御装置100は、ROMからメモリMEMの少なくともいずれかにプログラムを転送する。
書き換え可能な不揮発性メモリを使用し、あるいは、DRAMやSRAMをROMと組み合わせて使用することより、情報処理装置1100は、メンテナンスフリーな組み込みシステムとして動作可能になる。これにより、人手によるメンテナンスが困難な海底や山奥あるいは宇宙に設置可能になる。例えば、情報処理装置1100は、海底に設置される各種センサの制御、通信機器の基地局や放送設備の中継装置、人工衛星や無人偵察機に搭載される各種センサの制御に使用される。すなわち、情報処理装置1100は、図3に示した以外にも、各種センサやカメラなどの入力デバイスとそのインタフェースを含んでもよい。
例えば、CPU0−CPUn、メモリMEM0−MEMmおよびシステム制御装置100は、それぞれ個別の半導体チップであり、情報処理装置1100は、これ等半導体チップが搭載された基板を有する。なお、情報処理装置1100は、複数のプロセッサコアが搭載されたマルチコアタイプの半導体チップを用いてもよく、複数のメモリMEMが搭載された半導体チップを用いてもよい。また、情報処理装置1100は、CPUの代わりに、プログラムを実行することで動作するDSP(Digital Signal Processor)やGPU(Graphics Processing Unit)等のプロセッサを有してもよい。
システム制御装置100は、CPUにそれぞれ接続された複数のCPU制御部200、メモリMEMにそれぞれ接続された複数のメモリ制御部300、構成制御部400、設定テーブル500、スイッチ制御部600およびクロスバースイッチ700を有する。クロスバースイッチ700は、CPUの少なくとも1つとメモリMEMの少なくとも1つとを接続することで、少なくとも1つのコンピュータシステムを構築するスイッチ部の一例である。
各CPU制御部200は、対応するCPUと、クロスバースイッチ700を介して接続されたメモリMEMとの間で授受されるデータ等の情報を制御する。また、各CPU制御部200は、内部バスIBUSを介してCPU間で授受されるデータ等の情報を制御するとともに、対応するCPUの動作を監視してCPUの故障を検出する。CPU制御部200の例は、図4に示す。
各メモリ制御部300は、対応するメモリMEMのアクセスを制御するとともに、対応するメモリMEMの動作を監視して、メモリMEMの故障を検出する。メモリ制御部300の例は、図4に示す。
構成制御部400は、動作中のコンピュータシステムにおいて、故障したCPUを予備のCPUに置き換える機能と、故障したメモリMEMを予備のメモリMEMに置き換える機能とを有する。例えば、構成制御部400は、CPU等のプロセッサを有し、プロセッサが制御プログラムを実行することにより、故障したCPUを予備のCPUに置き換える機能と、故障したメモリMEMを予備のメモリMEMに置き換える機能とを実現する。
構成制御部400は、CPU制御部200からCPUの故障を示すCPUエラー情報を受信し、メモリ制御部300からメモリMEMの故障を示すメモリエラー情報を受信する。構成制御部400は、CPUエラー情報またはメモリエラー情報に基づいて、マップ情報テーブル408を書き換える。これにより、故障したCPUは、予備のCPUに置き換えられ、故障したメモリMEMは予備のメモリMEMに置き換えられる。例えば、マップ情報テーブル408の内容は、システム制御装置100に搭載されるメモリ装置に格納される。
さらに、構成制御部400は、更新したマップ情報テーブル408に基づいて、CPU制御部200を制御するとともに、CPUおよびメモリMEMへの電源の供給を制御する。例えば、構成制御部400は、各CPUの電源の供給と遮断とを制御する制御情報CPUPWRを各CPUに出力し、各メモリMEMの電源の供給と遮断とを制御する制御情報MEMPWRを各メモリMEMに出力する。構成制御部400の例は、図5に示す。
設定テーブル500は、構成制御部400により書き換え可能であり、構成制御部400から出力されるマップ情報を記憶する。マップ情報は、コンピュータシステムとして動作させるCPUとメモリMEMとの接続仕様を示す。例えば、設定テーブル500の内容は、システム制御装置100に搭載されるメモリ装置内に格納される。
スイッチ制御部600は、設定テーブル500に設定されたマップ情報に基づいて、クロスバースイッチ700を切り替えて、CPUの少なくとも1つとメモリMEMの少なくとも1つとを接続する。クロスバースイッチ700の例は、図8に示す。
図4は、図3に示したCPU制御部200とメモリ制御部300の例を示す。図4では、説明を簡単にするために、1つのCPUに接続されたCPU制御部200と、1つのメモリMEMに接続されたメモリ制御部300とを示す。他のCPUに接続されたCPU制御部200および他のメモリMEMに接続されたメモリ制御部300も図4と同一または同様である。
CPU制御部200は、メモリI/F(InterFace)220、レジスタI/F240、CPU監視部260および内部バスIBUSに接続された仮想化部280を有する。
メモリI/F220は、例えば、CPUから出力されるメモリMEMのアクセス用のアドレス、制御信号および書き込みデータを受信し、受信したアドレス、制御信号および書き込みデータをクロスバースイッチ700に出力する。また、メモリI/F220は、例えば、クロスバースイッチ700を介してメモリMEMから供給される読み出しデータを受信し、受信した読み出しデータをCPUに出力する。
レジスタI/F240は、例えば、対応するCPUと他のCPUとの間での通信に使用されるレジスタREGを有する。レジスタREGは、対応するCPUから出力される送信データおよび送信先のCPUを示す情報と、他のCPU(送信元のCPU)から出力される受信データおよび他のCPUを示す情報とを記憶する領域を有する。また、レジスタREGは、CPUおよびCPU監視部260によりアクセスされ、CPUの故障の検出に使用されるモニタビットと、CPUの起動原因を示す理由ビットとを有する。レジスタREGの例は、図9に示す。
CPU監視部260は、レジスタREGのモニタビットの値に基づいてCPUの故障を検出した場合に、CPUの故障を示す故障情報CPUFAILを構成制御部400に出力する。CPU監視部260は、CPUに対応してそれぞれ設けられ、対応するCPUの故障を検出する。これにより、複数のCPUの故障を共通のCPU監視部により検出する場合に比べて、CPUの故障を迅速に検出でき、CPUの故障の発生からCPUの置き換えまでの時間を短縮できる。この結果、CPUの置き換えに伴うコンピュータシステムの性能の低下を、複数のCPUの故障を共通のCPU監視部により検出する場合に比べて軽減できる。CPU監視部260は、コンピュータシステム内のCPUの故障を検出する第1の検出部の一例である。CPU監視部260の例は、図12に示す。
仮想化部280は、レジスタREGから受信する送信先のCPUを示す論理情報を、構成制御部400により設定されたシステム仕様に基づいて物理情報に変換する機能を有する。例えば、仮想化部280は、構成制御部400により設定されるアドレス変換テーブル286を有する。仮想化部280は、変換された送信先のCPUを示す物理情報を、レジスタREGに格納された送信データとともに内部バスIBUSに出力する機能を有する。例えば、アドレス変換テーブル286の内容は、システム制御装置100に搭載されるメモリ装置内に格納される。なお、アドレス変換テーブル286の内容、マップ情報テーブル408の内容および設定テーブル500の内容は、システム制御装置100に搭載される共通のメモリ装置に格納されてもよい。
仮想化部280は、対応するCPUがコンピュータシステム内の送信先のCPUにデータを送信する場合、アドレス変換テーブル286に記憶された情報に基づいて、対応するCPUが指示する送信先のCPUを示す論理情報を物理情報に変換する。なお、送信先のCPUの論理情報および送信データは、対応するCPUがレジスタREGに書き込む。仮想化部280は、変換により得られた送信先のCPUを示す物理情報と、対応するCPUを示す物理情報とを内部バスIBUSに出力する。
また、仮想化部280は、対応するCPUがコンピュータシステム内の送信元のCPUからデータを受信する場合、アドレス変換テーブル286の情報に基づいて、内部バスIBUSを介して受信する送信元のCPUを示す物理情報を論理情報に変換する。そして、仮想化部280は、変換により得られた論理情報を、受信データとともにレジスタREGに書き込む。レジスタREGに書き込まれた送信元のCPUを示す論理情報および受信データは、対応するCPUにより読み出される。
仮想化部280の上記動作により、故障したCPUが他のCPUに置き換えられる場合にも、送信データは、正しいCPUに送られ、受信データは、正しいCPUで受信される。仮想化部280は、第1の制御部の一例である。仮想化部280の例は、図10に示す。
メモリ制御部300は、メモリI/F320、エラー検出訂正部340およびメモリ監視部360を有する。
メモリI/F320は、例えば、クロスバースイッチ700を介してCPUから供給されるアドレス、制御信号および書き込みデータを、メモリMEMのインタフェース仕様に合わせてメモリMEMに出力する。また、メモリI/F320は、例えば、メモリMEMから出力される読み出しデータを受信し、受信した読み出しデータを、クロスバースイッチ700を介してCPU制御部200のメモリI/F220に出力する。
エラー検出訂正部340は、メモリMEMに書き込むデータを用いてエラー検出・訂正用の符号を生成する。生成された符号は、メモリI/F320を介して書き込みデータとともにメモリMEMに書き込まれる。また、エラー検出訂正部340は、メモリI/F320を介してメモリMEMから読み出される読み出しデータおよび符号を用いて、読み出しデータのエラーを検出し、訂正可能なエラーを訂正する。エラー検出訂正部340は、エラーを訂正した場合にエラー訂正情報をメモリ監視部360に出力し、訂正不可能なエラーを検出した場合にエラー検出情報をメモリ監視部360に出力する。
メモリ監視部360は、エラー検出訂正部340から所定の回数のエラー訂正情報を受信した場合に、エラーの訂正可能な故障がメモリMEMに発生したことを示す故障情報MEMFAILを構成制御部400に出力する。なお、エラー訂正情報の出力回数を示す上記所定の回数は、メモリMEMの全ての記憶領域におけるエラーの訂正回数でもよく、メモリMEMの所定の記憶領域毎におけるエラーの訂正回数でもよい。また、メモリ監視部360は、エラー検出訂正部340からエラー検出情報を受信した場合に、エラーの訂正が困難な故障がメモリMEMに発生したことを示す故障情報MEMFAILを構成制御部400に出力する。メモリ監視部360は、コンピュータシステム内のメモリMEMの故障を検出する第2の検出部の一例である。
メモリ監視部360は、メモリMEMに対応してそれぞれ設けられ、対応するメモリMEMの故障を検出する。これにより、複数のメモリMEMの故障を共通のメモリ監視部により検出する場合に比べて、メモリMEMの故障を迅速に検出でき、メモリMEMの故障の発生からメモリMEMの置き換えまでの時間を短縮できる。この結果、メモリMEMの置き換えに伴うコンピュータシステムの性能の低下を、複数のメモリMEMの故障を共通のメモリ監視部により検出する場合に比べて軽減できる。
図5は、図4に示した構成制御部400の例を示す。構成制御部400は、故障受信部402、マップ制御部404、マップ決定部406、マップ情報テーブル408、書き換え部410、412および電源制御部414を有する。例えば、故障受信部402は、構成制御部400に内蔵されるプロセッサの割り込み機能を用いて実現され、マップ制御部404、マップ決定部406および書き換え部410、412は、プロセッサが実行する制御プログラムにより実現される。なお、電源制御部414は、第4の制御部の一例であり、構成制御部400の外部に配置されてもよい。
例えば、書き換え部410は、システム制御装置100のアドレス空間上に割り当てられた設定テーブル500(図7)にメモリアクセスする構成制御部400に内蔵されるプロセッサにより実現される。例えば、書き換え部412は、システム制御装置100のアドレス空間上に割り当てられたアドレス変換テーブル286(図11)にメモリアクセスする構成制御部400に内蔵されるプロセッサにより実現される。例えば、電源制御部414は、構成制御部400に内蔵されるプロセッサのI/O機能を用いて実現される。例えば、マップ情報テーブル408の内容は、構成制御部400に内蔵されるプロセッサの内蔵メモリに格納される。
故障受信部402は、複数のCPU監視部260からの故障情報CPUFAILを受信し、受信した故障情報CPUFAILをマップ制御部404およびマップ決定部406に通知する。また、故障受信部402は、複数のメモリ監視部360からの故障情報MEMFAILを受信し、受信した故障情報MEMFAILをマップ制御部404およびマップ決定部406に通知する。
マップ制御部404は、故障情報CPUFAIL、MEMFAILの受信に基づいて、マップ決定部406を動作させる起動情報STを出力し、マップ決定部406からのマップ情報NEWMAPを待つ。マップ制御部404は、マップ決定部406が求めたマップ情報NEWMAPに基づいて、更新情報UPDをマップ情報テーブル408に出力し、マップ情報テーブル408を更新する。マップ情報テーブル408の例は、図6に示す。
また、マップ制御部404は、マップ情報テーブル408を更新した後、更新したマップ情報テーブル408に合わせて設定テーブル500を書き換える指示を書き換え部410に出力する。マップ制御部404は、マップ情報テーブル408を更新した後、更新したマップ情報テーブル408に合わせてアドレス変換テーブル286を書き換える指示を書き換え部412に出力する。さらに、マップ制御部404は、マップ情報テーブル408を更新した後、各CPUの電源の投入、遮断を制御する指示と、各メモリMEMの電源の投入、遮断を制御する指示を電源制御部414に出力する。
マップ決定部406は、故障情報CPUFAIL、MEMFAILおよび起動情報STに基づいて、マップ情報テーブル408に設定されたマップ情報を読み出し、新たなマップ情報NEWMAPを作成する。すなわち、故障したCPUを未使用のCPUのいずれに置き換えるかを決定し、あるいは故障したメモリMEMを未使用のメモリMEMのいずれに置き換えるかを決定し、決定した情報をマップ情報NEWMAPとしてマップ制御部404に出力する。
この実施形態では、マップ決定部406は、故障したCPUの代わりに使用するCPUを決定する機能と、故障したメモリMEMの代わりに使用するメモリMEMを決定する機能とを有する。マップ制御部404は、マップ決定部406による決定内容に基づいて、マップ情報テーブル408、設定テーブル500およびアドレス変換テーブル286の書き換えを制御する機能を有する。機能毎に分けてマップ決定部406とマップ制御部404とを設計することで、マップ決定部406とマップ制御部404とを纏めて設計する場合に比べて、各回路ブロックを簡易に設計できる。
書き換え部410は、マップ制御部404からの指示に基づき、マップ情報NEWMAPにより書き換えられたマップ情報テーブル408のマップ情報にしたがって、設定テーブル500を書き換える。書き換え部412は、マップ制御部404からの指示に基づき、マップ情報NEWMAPにより書き換えられたマップ情報テーブル408のマップ情報にしたがって、アドレス変換テーブル286を書き換える。
マップ制御部404、マップ決定部406および書き換え部410は、動作中のコンピュータシステム内のCPUの故障の発生が検出されたことに基づいて設定テーブル500の内容を変更する。そして、マップ制御部404、マップ決定部406および書き換え部410は、クロスバースイッチ700を制御して、故障したCPUを他のCPUに置き換える機能を有する。マップ制御部404、マップ決定部406および書き換え部410は、第2の制御部の一例である。また、マップ制御部404およびマップ決定部406は、CPUの故障の発生に基づいて、故障したCPUと置き換える他のCPUを、未使用のCPUの中から選択し、選択結果に基づいてマップ情報テーブル408を変更する選択部の一例である。
マップ制御部404、マップ決定部406および書き換え部412は、故障したCPUを示す物理IDと論理ID(図11)との対応付けを示す対応付け情報を無効にし、他のCPUを示す物理IDと無効にした論理IDとを対応付ける第3の制御部の一例である。
電源制御部414は、マップ制御部404からの指示に基づき、マップ情報NEWMAPにより書き換えられたマップ情報テーブル408のマップ情報にしたがって、CPUの電源を制御する制御情報CPUPWRをCPUに出力する。これにより、故障したCPUの電源が遮断され、故障したCPUの代わりに動作するCPUの電源が投入される。
また、電源制御部414は、マップ制御部404からの指示に基づき、マップ情報NEWMAPにより書き換えられたマップ情報テーブル408のマップ情報にしたがって、メモリMEMの電源を制御する制御情報MEMPWRをメモリMEMに出力する。これにより、故障したメモリMEMの電源が遮断され、故障したメモリMEMの代わりに動作するメモリMEMの電源が投入される。
例えば、各制御情報CPUPWRは、外部電源線とCPUの電源線との間に配置されたスイッチの動作を制御する制御信号である。スイッチは、電源の投入を示す制御情報CPUPWRを受信した場合に、外部電源線をCPUの電源線に接続し、電源の遮断を示す制御情報CPUPWRを受信した場合に、外部電源線とCPUの電源線との接続を遮断する。
同様に、各制御情報MEMPWRは、例えば、外部電源線とメモリMEMの電源線との間に配置されたスイッチの動作を制御する制御信号である。スイッチは、電源の投入を示す制御情報MEMPWRを受信した場合に、外部電源線をメモリMEMの電源線に接続し、電源の遮断を示す制御情報MEMPWRを受信した場合に、外部電源線とメモリMEMの電源線との接続を遮断する。
電源制御部414が、未使用あるいは故障したCPUの電源を遮断し、未使用あるいは故障したメモリMEMの電源を遮断することで、情報処理装置1100の消費電力は、電源を遮断しない場合に比べて削減できる。
図6は、図5に示したマップ情報テーブル408の例を示す。マップ情報テーブル408は、情報処理装置1100が有するCPUの数に対応して、システム識別ビットS、CPU識別ビットC(例えば、C3、C2、C1、C0)およびメモリ識別ビットM(例えば、M3、M2、M1、M0)を有する。図6では、説明を簡単にするために、情報処理装置1100が4つCPU3−CPU0と、4つのメモリMEM3−MEM0を有する例を示す。このため、マップ情報テーブル408は、CPUの数に対応する4つの識別ビットSと、識別ビットS毎に設けられる4つのCPU識別ビットC3−C0および4つのメモリ識別ビットM3−M0とを有する。なお、情報処理装置1100が有するCPUの数とメモリMEMの数は、互いに相違してもよい。
システム識別ビットSの”1”は、1つのコンピュータシステムが構築されることを示し、システム識別ビットSの”0”は、コンピュータシステムが構築されないことを示す。
CPU識別ビットC3−C0は、システム識別ビットS毎に、CPU3−CPU0に対応して設けられる。”1”に設定されたシステム識別ビットSに対応する行において、”1”に設定されたCPU識別ビットCは、対応するCPUが構築されるコンピュータシステムに含まれることを示す。メモリ識別ビットM3−M0は、システム識別ビットS毎に、メモリMEM3−MEM0に対応して設けられる。”1”に設定されたシステム識別ビットSに対応する行において、”1”に設定されたメモリ識別ビットMは、対応するメモリMEMが構築されるコンピュータシステムに含まれることを示す。
例えば、図6に示したマップ情報テーブル408の1行目は、1つのコンピュータシステムが、CPU識別ビットC1、C0に対応するCPU1、CPU0と、MEM識別ビットM0に対応するメモリMEM0とにより構築されることを示す。同様に、マップ情報テーブル408の2行目は、他の1つのコンピュータシステムが、CPU識別ビットC3に対応するCPU3と、MEM識別ビットM3、M2に対応するメモリMEM3、MEM2とにより構築されることを示す。
図6の右側は、マップ情報テーブル408により構築される2つのコンピュータシステムを破線で示す。ここで、マップ情報テーブル408の1行目は、仮想システムID(IDentification)が0番のコンピュータシステムSYS0を示し、マップ情報テーブル408の2行目は、仮想システムIDが1番のコンピュータシステムSYS1を示す。
図7は、図4に示した設定テーブル500の例を示す。例えば、設定テーブル500は、図6に示したマップ情報テーブル408と同様の構成を有し、システム識別ビットS、CPU識別ビットCおよびメモリ識別ビットMを有する。また、設定テーブル500の内容は、図5に示したマップ決定部406が求めたマップ情報NEWMAPに基づいて、マップ制御部404により書き換えられるため、マップ情報テーブル408と同様の内容である。図7においても、図6と同様に、情報処理装置1100が4つCPU3−CPU0と、4つのメモリMEM3−MEM0を有する例を示す。
図8は、図3に示したクロスバースイッチ700の例を示す。図8に示した例は、設定テーブル500が図7に示した状態に設定された場合を示す。太い実線は、複数の信号線(例えば、アドレスバスAD、データバスI/Oまたは制御信号CNT)を示し、細い実線は、単数の信号線(例えば、チップセレクト信号CS)を示す。例えば、制御信号CNTは、SRAMやフラッシュメモリでは、ライトイネーブル信号およびアウトプットイネーブル信号を含み、DRAMでは、ロウアドレスストローブ信号、コラムアドレスストローブ信号およびライトイネーブル信号を含む。
クロスバースイッチ700の周囲に示した丸印は、クロスバースイッチ700の入出力端子を示す。クロスバースイッチ700の内部に示した信号線は、設定テーブル500に基づいて設定されたクロスバースイッチ700の端子間の接続関係を示す。この例では、仮想システムIDが0番のコンピュータシステムSYS0では、1つのメモリMEM0が、2つのCPU0、CPU1に共有される。仮想システムIDが1番のコンピュータシステムSYS1では、2つのメモリMEM2、MEM3が、1つのCPU3によりアクセスされる。
CPU0、CPU1の各々は、メモリMEM0にアクセスする場合にアドレス信号線AD、データ信号線I/O、制御信号CNTおよびチップセレクト信号CS0を駆動する。図6および図7に示した例では、各CPU0−CPU3は、最大で4つのメモリMEM0−MEM3に接続可能である。このため、4つのチップセレクト端子CS0、CS1、CS2、CS3を有するCPUが、CPU0−CPU3として使用される。なお、チップセレクト信号CS0、CS1、CS2、CS3は、制御信号CNTに含まれるが、説明を分かりやすくするために、制御信号CNTとは別に記載した。
コンピュータシステムSYS0において、データ信号線I/Oには、CPU0またはCPU1からメモリMEMにデータを書き込む書き込み動作時に、書き込みデータが伝達される。CPU0、CPU1は、メモリMEM0にアクセスしない場合にアドレス信号線AD、データ信号線I/Oおよび制御信号CNTをフローティング状態に設定する。これにより、CPU0、CPU1からメモリMEMに出力される信号が衝突することはない。
コンピュータシステムSYS1において、CPU3は、メモリMEM2にアクセスする場合に、アドレス信号AD、データ信号I/Oおよび制御信号CNTとともに、チップセレクト信号CS0をクロスバースイッチ700に出力する。CPU3は、メモリMEM3にアクセスする場合に、アドレス信号AD、データ信号I/Oおよび制御信号CNTとともに、チップセレクト信号CS1をクロスバースイッチ700に出力する。クロスバースイッチ700を介して、チップセレクト信号CS0は、メモリMEM2のチップセレクト端子CSに供給され、チップセレクト信号CS1は、メモリMEM3のチップセレクト端子CSに供給される。
図9は、図4に示したレジスタI/F240のレジスタ部REGの例を示す。レジスタ部REGは、各CPUに対応して設けられる。レジスタREGは、CPU情報CPUIDと、CPU数情報NCPUと、送信用のCPU情報TCPUIDおよび送信データSDATAと、受信用のCPU情報SCPUIDおよび受信データRDATAとを格納する領域を有する。また、レジスタREGは、フラグB、I、Vと、理由ビットRと、モニタビットMONとを有する。
CPU情報CPUIDは、対応するCPUが属するコンピュータシステム内で割り当てられたCPUを示す論理IDを示す。例えば、CPU情報CPUIDが”0”に設定されたCPUは、コンピュータシステムの全体を管理するシステムCPUである。論理IDについては、図11で説明する。
CPU数情報NCPUは、対応するCPUが属するコンピュータシステムに含まれるCPUの数を示す。例えば、図6に示した仮想システムIDが0番のコンピュータシステムSYS0は、2つのCPU0、CPU1を含む。この場合、CPU0に対応するレジスタREGのCPU数情報NCPUの領域およびCPU1に対応するレジスタREGのCPU数情報NCPUの領域には、ともに”2”が格納される。同様に、図6に示した仮想システムIDが1番のコンピュータシステムは、1つのCPU3を含む。この場合、CPU3に対応するレジスタREGのCPU数情報NCPUの領域には、”1”が格納される。
例えば、コンピュータシステムが複数のCPUを含むマルチプロセッサシステムとして動作する場合、CPU数情報NCPUは、OS(Operating System)による各CPUへのタスクの分配に使用される。OSは、マルチプロセッサシステム全体を管理し、コンピュータシステムの起動時に、構成制御部400がレジスタREGに設定したCPU数情報NCPUを読み出す。
CPU情報TCPUIDは、送信先のCPUの論理IDを示し、例えば、CPU情報TCPUIDの領域には、CPU情報CPUIDと同じ値が格納される。送信データSDATAの領域には、CPU情報TCPUIDが示すCPUに送信するデータが格納される。
フラグBは、レジスタI/F240によるデータ送信の機能がビジー状態またはレディ状態であることを示す。レジスタI/F240は、対応するCPUがCPU情報TCPUIDおよび送信データSDATAをレジスタREGに書き込んだ場合にフラグBをビジー状態にセットする。送信データSDATAがCPU情報TCPUIDにより示されるCPUに送信された後、レジスタI/F240は、フラグBをレディ状態にリセットする。
フラグBのビジー状態は、レジスタI/F240による送信データSDATAの送信中または送信待ちを示す。フラグBがビジー状態にセットされている間、対応するCPUによる新たなCPU情報TCPUIDおよび送信データSDATAのレジスタREGへの書き込みは禁止される。これにより、レジスタREGに書き込まれたデータは、上書きされることなく、CPU情報TCPUIDにより指定されたCPUに送信され、コンピュータシステムは誤動作を避けることができる。
CPU情報SCPUIDは、受信データRDATAを送った送信元のCPUの論理IDを示す。例えば、内部バスIBUSを介してCPU1からCPU2にデータを送信する場合、CPU1に対応するレジスタI/F240は、CPU2に対応するレジスタREGのCPU情報SCPUIDの領域に”2”を格納する。
受信データRDATAの領域には、CPU情報SCPUIDが示す送信元のCPUから受信したデータが格納される。例えば、CPU1からCPU2にデータを送信する場合、送信元のCPU1に対応するレジスタREGに格納された送信データSDATAが、内部バスIBUSを介して、送信先のCPU2に対応するレジスタREGの受信データRDATAの領域に格納される。
フラグVは、レジスタREGに有効な受信データRDATAがある場合に”1”にセットされ、レジスタREGに有効な受信データRDATAがない場合に”0”にリセットされる。例えば、レジスタI/F240は、送信元である他のCPUからレジスタREGにCPU情報RCPUIDおよび受信データRDATAが転送された場合に、フラグVをセットする。送信先である対応するCPUは、フラグVを周期的にモニタし、フラグVがセットされている場合に、CPU情報RCPUIDおよび受信データRDATAをレジスタREGから読み込む。レジスタI/F240は、CPUによるCPU情報RCPUIDおよび受信データRDATAの読み出し後、フラグVをリセットする。
フラグIは、対応するCPUが、他のCPUからレジスタREGに受信データRDATAが転送されたことを割り込み機能を用いて知るために使用される。対応するCPUによりフラグIが”1”にセットされた場合、レジスタI/F240は、レジスタVのセットに基づいて、対応するCPUに割り込み要求を発生する。対応するCPUは、割り込み要求に基づいて、データの受信を認識し、レジスタREGからCPU情報RCPUおよび受信データRDATAを読み出す。そして、対応するCPUは、レジスタREGからCPU情報RCPUおよび受信データRDATAを読み出した後に、フラグVをリセットする。
理由ビットRは、対応するCPUがどのような理由で起動されたかを示す。理由ビットRの”0”は、対応するCPUが通常の電源投入シーケンスで起動されたことを示す。
例えば、図4に示した構成制御部400は、情報処理装置1100の電源投入時の初期化シーケンスにおいて、各CPUに対応するレジスタREGの理由ビットRを”0”にリセットする。また、構成制御部400は、故障したCPUを未使用のCPUと交換して、未使用のCPUの使用を開始する場合、新たに使用するCPUに対応するレジスタREGの理由ビットRを”1”にセットする。各CPUは、電源投入後に理由ビットRを参照することで、通常の電源投入シーケンスにより起動されたのか、故障したCPUの交換に伴って起動されたのかを判断できる。
モニタビットMONは、対応するCPUにより所定の周期T0(図13)でセットされ、CPU監視部260により周期T0より長い所定の周期T1(図13)でリセットされる。CPU監視部260は、リセット前に読み出したモニタビットMONの値が、リセット状態を示す場合に、モニタビットMONが、対応するCPUによりセットされなかったことを検出し、対応するCPUの故障を検出する。モニタビットMONについては、図12および図13で説明する。
図10は、図4に示した仮想化部280の例を示す。仮想化部280は、分離部282、283、アドレス変換部284、285、アドレス変換テーブル286、合成部288、289および複数のフリップフロップFF(FF1−FF8)を有する。例えば、フリップフロップFF1、FF2、FF3、FF4、FF5、FF6、FF7、FF8は、共通のクロック信号CLKに同期して動作する。フリップフロップFF1−FF8は、ラッチの一例である。
分離部282、アドレス変換部284、合成部288およびフリップフロップFF1−FF4は、対応するCPUが他のCPUへデータを送信する場合に動作する。分離部283、アドレス変換部285、合成部289およびフリップフロップFF5−FF8は、対応するCPUが他のCPUからデータを受信する場合に動作する。
分離部282は、例えば、図4に示したレジスタI/F240からパケットとして送られる送信元のCPUを示すCPU情報CPUID(論理ID)および送信先のCPUを示すCPU情報TCPUID(論理ID)と、送信データSDATAとを分離する。分離部282は、分離したCPU情報CPUID、TCPUIDをフリップフロップFF3に出力し、分離した送信データSDATAをフリップフロップFF1に出力する。
アドレス変換部284は、アドレス変換テーブル286を参照して、フリップフロップFF3から受信するCPU情報CPUID、TCPUIDが示す論理IDをそれぞれ物理IDに変換する。アドレス変換部284は、変換により得られた物理IDをフリップフロップFF4に出力する。フリップフロップFF1、FF2は、分離部282から出力される送信データSDATAを順次にラッチし、最終段のフリップフロップFF2は、ラッチした送信データSDATAを合成部288に出力する。
合成部288は、フリップフロップFF3、FF4から受信する送信データSDATAおよび変換された物理IDを合成して、例えばパケットを生成し、生成したパケットを内部バスIBUSに出力する。
一方、分離部283は、例えば、内部バスIBUSからパケットとして送られる送信元のCPUを示すCPU情報SCPUID(物理ID)および受信データRDATAを分離する。分離部282は、分離したCPU情報SCPUIDをフリップフロップFF7に出力し、分離した受信データRDATAをフリップフロップFF5に出力する。
アドレス変換部285は、アドレス変換テーブル286を参照して、フリップフロップFF7から受信するCPU情報SCPUIDが示す論理IDを物理IDに変換する。アドレス変換部284は、変換により得られた物理IDをフリップフロップFF8に出力する。フリップフロップFF5、FF6は、分離部283から出力される受信データRDATAを順次にラッチし、最終段のフリップフロップFF6は、ラッチした受信データRDATAを合成部289に出力する。
合成部289は、フリップフロップFF6、FF8から受信する受信データRDATAおよび変換された物理IDを合成して、例えばパケットを生成し、生成したパケットを対応するレジスタI/F240に出力する。
例えば、アドレス変換部284は、フリップフロップFF1−FF4が受信するクロック信号の1サイクル内に、アドレス変換テーブル286を参照し、論理IDを物理IDに変換する。このため、フリップフロップFF2、FF4は、フリップフロップFF1からの送信データSDATAと、アドレス変換部284からの物理IDとを、共通のクロックサイクルでラッチし、合成部288に出力できる。同様に、アドレス変換部285は、フリップフロップFF5−FF8が受信するクロック信号の1サイクル内に、アドレス変換テーブル286を参照し、物理IDを論理IDに変換する。このため、フリップフロップFF6、FF8は、フリップフロップFF5からの送信データSDATAと、アドレス変換部285からの物理IDとを、共通のクロックサイクルでラッチし、合成部288に出力できる。
すなわち、アドレス変換部284またはアドレス変換部285の変換動作に所定の時間が掛かる場合にも、変換された物理IDを送信データSDATAに対して遅れることなく送信先のCPUに伝達できる。同様に、アドレス変換部285の変換動作に所定の時間が掛かる場合にも、変換された物理IDを受信データRDATAに対して遅れることなくレジスタI/F240に伝達できる。
アドレス変換部284は、分離部282により分離されたCPU情報TCPUIDを処理すればよいため、送信データSDATAを含む情報の中からCPU情報TCPUIDを抽出する手間を省ける。これにより、CPU情報TCPUIDの抽出動作と物理IDへの変換動作の両方を実行する場合に比べ、アドレス変換部284の変換動作を1クロックサイクル内に完了することが容易にできる。同様に、アドレス変換部285は、分離部283により分離されたCPU情報SCPUIDを処理すればよいため、受信データRDATAを含む情報の中からCPU情報SCPUIDを抽出する手間を省ける。これにより、CPU情報SCPUIDの抽出動作と物理IDへの変換動作の両方を実行する場合に比べ、アドレス変換部285の変換動作を1クロックサイクル内に完了することが容易にできる。アドレス変換テーブル286の例は、図11に示す。
なお、データの送信時に動作するアドレス変換部284は、送信元のCPUを示すCPU情報CPUIDが示す論理IDを物理IDに変換することなく、送信先のCPUを示すCPU情報TCPUIDが示す論理IDを物理IDに変換してもよい。この場合、データを受信するCPUは、送信元のCPUを示すCPU情報CPUIDを物理IDとしてではなく、論理IDとして受信できる。このため、分離部283、アドレス変換部285、合成部289およびフリップフロップFF5−FF8は、仮想化部280から削除でき、図10に比べて簡易な回路にできる。
なお、アドレス変換部284による変換動作の時間が、1クロックサイクルより長く2クロックサイクルより短い場合、送信データSDATAのラッチ用に直列に接続されるフリップフロップFFの数を3つにすればよい。同様に、アドレス変換部285による変換動作の時間が、1クロックサイクルより長く2クロックサイクルより短い場合、受信データRDATAのラッチ用に直列に接続されるフリップフロップFFの数を3つにすればよい。
図11は、図10に示したアドレス変換テーブル286の例を示す。図11に示す例では、説明を簡単にするために、情報処理装置1100は4つのCPUを有するとする。アドレス変換テーブル286は、CPUの物理ID、仮想システムID及びCPUの論理ID(仮想ID)を格納する領域を有する。
物理IDは、情報処理装置1100に搭載されるCPUを識別する固有の番号であり、物理情報の一例である。仮想システムIDは、情報処理装置1100内に構築されるコンピュータシステムSYSの番号を示す。論理IDは、コンピュータシステムSYS内のCPUを識別するために仮想的に割り当てられる番号であり、論理情報の一例である。アドレス変換テーブル286は、CPUの物理IDと論理IDとの対応付けを示す対応付け情報を記憶する記憶部の一例である。
以降の説明では、0番の物理ID、1番の物理ID、2番の物理ID、3番の物理IDは、それぞれ符号P0、P1、P2、P3で示す場合がある。同様に、0番の論理ID、1番の論理IDは、それぞれ符号L0、L1で示す場合がある。
図11に示した例では、情報処理装置1100は、仮想システムIDが0番と1番の2つのコンピュータシステムSYS0、SYS1を有する。0番のコンピュータシステムSYS0は、物理IDが0番と1番のCPUを有し、物理IDが0番と1番のCPUは、0番のコンピュータシステムSYS0内で0番と1番の論理IDにそれぞれに割り当てられる。1番のコンピュータシステムSYS1は、物理IDが3番のCPUを有し、物理IDが3番のCPUは、1番のコンピュータシステムSYS1内で0番の論理IDに割り当てられる。
未使用のCPU(この例では、物理IDが2番のCPU)は、仮想システムIDの領域に16進数で”FFFF”が設定される。図11の右側には、アドレス変換テーブル286により構築される2つのコンピュータシステムSYS0、SYS1が破線で示される。なお、2つのコンピュータシステムSYS0、SYS1に含まれるメモリMEM0、MEM2、MEM3は、図6に示すマップ情報テーブル408および図7に示す設定テーブル500により割り当てられる。
この実施形態では、複数のコンピュータシステムを識別する仮想システムIDの領域が、アドレス変換テーブル286に確保されるため、情報処理装置1100内に複数のコンピュータシステムを構築できる。
図12は、図4に示したCPU監視部260の例を示す。CPU監視部260は、タイマ262、モニタ部264およびリセット部266を有する。タイマ262は、所定の周期T1(図13)でトリガ信号等のトリガ情報TRGを出力する。モニタ部264は、トリガ情報TRGに基づいてレジスタI/F240のレジスタREG内のモニタビットMONの値を読む。モニタ部264は、モニタビットMONの値が”1”の場合にリセット信号等のリセット情報RSTを出力し、モニタビットMONの値が”0”の場合に故障情報CPUFAILを図4に示した構成制御部400に出力する。リセット部266は、リセット情報RSTに基づいて、モニタビットMONを”0”にリセットする。
なお、モニタビットMONは、対応するCPU内に設けられるウォッチドッグモジュールにより、周期T1より短い所定の周期T0(図13)で”1”にセットされる。これにより、対応するCPUが正常に動作する場合、モニタビットMONは周期的に”1”にセットされ、モニタ部264がモニタビットMONの”0”を検出することはない。これに対して、対応するCPUの故障により、ウォッチドッグモジュールの動作が停止した場合、リセット部266によりリセットされたモニタビットMONは、対応するCPUによりセットされない。これにより、モニタ部264は、モニタビットMONの”0”を検出することで、対応するCPUの故障を検出する。例えば、ウォッチドッグモジュールは、CPUのハードウェアにより実現されてもよく、ソフトウエアにより実現されてもよい。
図13は、図12に示したCPU監視部260の動作の例を示す。図13の動作は、コンピュータシステムとして動作するCPU毎に実行される。まず、対応するCPUのウォッチドッグモジュールは、ステップS200において、周期T0が経過したか否かを判定し、周期T0が経過した場合、ステップS202において、モニタビットMONを”1”にセットする。この後、ウォッチドッグモジュールは、再びステップS200を繰り返して、周期T0の経過を待つ。
CPU監視部260は、ステップS100において、周期T0より長い周期T1が経過したか否かを判定し、周期T1が経過した場合、ステップS102において、モニタビットMONの値をチェックする。次に、ステップS104において、CPU監視部260は、モニタビットMONが”0”にリセットされたか否かを判定する。モニタビットMONが”1”の場合、CPU監視部260は、ステップS106において、モニタビットMONを”0”にリセットする。この後、CPU監視部260は、再びステップS100を繰り返して、周期T1の経過を待つ。
一方、モニタビットMONが”0”の場合、ステップS108において、CPU監視部260は、CPUの故障を検出し、故障情報CPUFAILを図4に示した構成制御部400に出力する。
なお、ウォッチドッグモジュールが、ソフトウエアにより実現される場合、CPUは、タイマを用いて周期T0毎に割り込みハンドラを起動する。割り込みハンドラは、モニタビットMONを”1”にセットし、終了する。割り込みハンドラの終了により、割り込みハンドラが起動される前の元のプログラムの実行が復帰される。なお、割り込みハンドラを起動する割り込み要求は、他の割り込み要求に比べて優先度が高く、OSによりマスクされないNMI(Non-Maskable Interrupt)などを用いることが好ましい。これにより、割り込みハンドラの起動が、OSの処理などによって妨げられることを避けることができ、OS等の動作中にもCPUの故障を検出できる。
図14は、図3に示した情報処理装置において、故障したCPUを未使用のCPUに置き換える例を示す。図14の上側に示す状態は、図6、図7、図11に示した状態と同様である。図14の上側に示す状態で情報処理装置1100が動作中、例えば、CPU1に対応するCPU監視部260(図12)は、CPU1の故障を検出し、CPU1の故障を示す故障情報CPUFAILを構成制御部400に出力する。
構成制御部400(図5)は、故障情報CPUFAILに基づいて、図14の下側に示すように、図6に示したマップ情報テーブル408を書き換える。そして、構成制御部400は、書き換えたマップ情報テーブル408に基づいて、図14の下側に示すように、設定テーブル500(図7)および示したアドレス変換テーブル286(図11)を書き換える。図14の下側において、書き換えられた値は、太字で示す。これにより、仮想システムIDが0番に設定されたコンピュータシステムSYS0において、故障したCPU1は、人手を介することなく、空いているCPU2に自動的に置き換えられる。
図15は、図3に示した情報処理装置において、故障したCPUを未使用のCPUに置き換える前後でのCPU制御部200の動作の例を示す。図15の上側に示す状態は、図14の上側に示した状態での動作を示し、図15の下側に示す状態は、図14の下側に示した状態での動作を示す。すなわち、この例では、図14と同様に、仮想システムIDが0番に設定されたコンピュータシステムSYS0において、CPU1が故障し、未使用のCPU2に置き換えられるとする。
CPU1が故障する前、仮想システムIDが0番に設定されたコンピュータシステムSYS0では、0番の論理ID(L0)にCPU0が割り当てられ、1番の論理ID(L1)にCPU1が割り当てられる。例えば、図15の上側において、CPU0は、論理ID(=L1)および送信データSDATAを、CPU0に対応するレジスタREG内の送信用のCPU情報TCPUIDおよび送信データSDATAの領域に格納する(図15(a))。この際、CPU0は、送信先のCPUを論理IDによって認識し、物理ID(すなわちCPU1)では認識しない。
CPU0に対応する仮想化部280は、図11に示したアドレス変換テーブル286を参照し、送信元を示すCPU情報CPUIDに格納された論理ID(=L0)を物理ID(=P0)に変換する。また、CPU0に対応する仮想化部280は、送信先を示すCPU情報TCPUIDに格納された論理ID(=L1)を物理ID(=P1)に変換する(図15(b))。そして、CPU0に対応する仮想化部280は、送信元を示すCPUの物理ID(=P0)および送信先を示すCPUの物理ID(=P1)を、送信データSDATAとともに内部バスIBUSに出力する(図15(c))。
CPU1(物理ID=P1)に対応する仮想化部280は、送信先を示す物理ID(=P1)とともに内部バスIBUSから転送される送信元の物理ID(=P0)および送信データSDATAを受信する。CPU1に対応する仮想化部280は、受信した送信元の物理ID(=P0)を、アドレス変換テーブル286に基づいて論理ID(=L0)に変換する(図15(d))。CPU1に対応する仮想化部280は、変換した論理ID(=L0)および受信した送信データSDATAを、CPU1に対応するレジスタREG内の受信用のCPU情報SCPUIDおよび受信データRDATAの領域に格納する(図15(e))。論理ID(=L1)が割り当てられたCPU1は、レジスタREGを介して論理ID(=L0)が割り当てられたCPU0からデータが送信されたことを認識し、受信データRDATAをレジスタREGから読み出す(図15(f))。これにより、仮想システムIDが0番に設定されたコンピュータシステムSYS0において、論理ID(=L0)が割り当てられたCPU0から論理ID(=L1)が割り当てられたCPU1へのデータの転送が完了する。
一方、故障したCPU1がCPU2に置き換えられる場合、構成制御部400(図5)は、故障前のCPU1に対応するレジスタREGに設定された情報(例えば、CPU情報CPUIDおよびCPU数情報NCPU)を、CPU2に対応するレジスタREGに設定する。また、構成制御部400は、アドレス変換テーブル286(図11)を書き換え、1番の論理ID(L1)にCPU2を割り当てる。
例えば、図15の下側において、CPU0は、論理ID(=L1)および送信データSDATAを、CPU0に対応するレジスタREGの送信用のCPU情報TCPUIDおよび送信データSDATAの領域に格納する(図15(g))。この際、CPU0は、送信先のCPUを論理IDによって認識し、物理ID(すなわちCPU2)では認識しない。
CPU0に対応する仮想化部280は、アドレス変換テーブル286を参照し、送信元を示すCPU情報CPUIDに格納された論理ID(=L0)を物理ID(=P0)に変換する。また、CPU0に対応する仮想化部280は、送信先を示すCPU情報TCPUIDに格納された論理ID(=L1)を物理ID(=P2)に変換する(図15(h))。そして、CPU0に対応する仮想化部280は、送信元を示すCPUの物理ID(=P0)および送信先を示すCPUの物理ID(=P2)を、送信データSDATAとともに内部バスIBUSに出力する(図15(i))。
CPU2(物理ID=P2)に対応する仮想化部280は、送信先を示す物理ID(=P2)とともに内部バスIBUSから転送される送信元の物理ID(=P0)および送信データSDATAを受信する。CPU2に対応する仮想化部280は、受信した送信元の物理ID(=P0)を、アドレス変換テーブル286に基づいて論理ID(=L0)に変換する(図15(j))。CPU2に対応する仮想化部280は、変換した論理ID(=L0)および受信した送信データSDATAを、CPU2に対応するレジスタREG内の受信用のCPU情報SCPUIDおよび受信データRDATAの領域に格納する(図15(k))。論理ID(=L1)が割り当てられたCPU2は、レジスタREGを介して論理ID(=L0)が割り当てられたCPU0からデータが送信されたことを認識し、受信データRDATAをレジスタREGから読み出す(図15(l))。これにより、仮想システムIDが0番に設定されたコンピュータシステムSYS0において、論理ID(=L0)が割り当てられたCPU0から論理ID(=L1)が割り当てられたCPU2へのデータの転送が完了する。
図15の上側および下側において、各CPUは、論理IDを用いてデータを送信し、論理IDを用いてデータを受信する。このため、CPUが故障により交換された場合にも、各CPUは、認識している設定を変えることなく、データを送受信できる。
図16は、図3に示した情報処理装置において、故障したCPUを未使用のCPUに置き換える前後でのCPU制御部200の動作の他の例を示す。図15と同一または同様の状態および動作については、詳細な説明は省略する。図15と同様に、図16の上側に示す状態は、図14の上側に示した状態での動作を示し、図16の下側に示す状態は、図14の下側に示した状態での動作を示す。
例えば、図16の上側において、論理ID(=L1)が割り当てられたCPU1は、論理ID(=L0)および送信データSDATAを、CPU1に対応するレジスタREGの送信用のCPU情報TCPUIDおよび送信データSDATAの領域に格納する(図16(a))。CPU1に対応する仮想化部280は、送信元を示すCPU情報CPUIDに格納された論理ID(=L1)を物理ID(=P1)に変換し、送信先を示すCPU情報TCPUIDに格納された論理ID(=L0)を物理ID(=P0)に変換する(図16(b))。そして、CPU1に対応する仮想化部280は、送信元を示すCPUの物理ID(=P1)および送信先を示すCPUの物理ID(=P0)を、送信データSDATAとともに内部バスIBUSに出力する(図16(c))。
CPU0(物理ID=P0)に対応する仮想化部280は、送信先を示す物理ID(=P0)とともに内部バスIBUSから転送される送信元の物理ID(=P1)および送信データSDATAを受信する。CPU0に対応する仮想化部280は、受信した送信元の物理ID(=P1)を論理ID(=L1)に変換する(図16(d))。CPU0に対応する仮想化部280は、変換した論理ID(=L1)および受信した送信データSDATAを、CPU0に対応するレジスタREG内の受信用のCPU情報SCPUIDおよび受信データRDATAの領域に格納する(図16(e))。そして、論理ID(=L0)が割り当てられたCPU0は、レジスタREGを介して論理ID(=L1)が割り当てられたCPU1からの受信データRDATAを読み出す(図16(f))。
一方、故障したCPU1がCPU2に置き換えられた後(図16の下側)、例えば、CPU2は、論理ID(=L0)および送信データSDATAを、CPU2に対応するレジスタREGに格納する(図16(g))。CPU2に対応する仮想化部280は、送信元を示すCPU情報CPUIDに格納された論理ID(=L1)を物理ID(=P2)に変換する。また、CPU2に対応する仮想化部280は、送信先を示すCPU情報TCPUIDに格納された論理ID(=L0)を物理ID(=P0)に変換する(図16(h))。そして、CPU2に対応する仮想化部280は、送信元を示すCPUの物理ID(=P2)および送信先を示すCPUの物理ID(=P0)を、送信データSDATAとともに内部バスIBUSに出力する(図16(i))。
CPU0(物理ID=P0)に対応する仮想化部280は、送信先を示す物理ID(=P0)とともに内部バスIBUSから転送される送信元の物理ID(=P2)および送信データSDATAを受信する。CPU0に対応する仮想化部280は、受信した送信元の物理ID(=P2)を、アドレス変換テーブル286に基づいて論理ID(=L1)に変換する(図16(j))。CPU0に対応する仮想化部280は、変換した論理ID(=L1)および受信した送信データSDATAを、CPU0に対応するレジスタREG内の受信用のCPU情報SCPUIDおよび受信データRDATAの領域に格納する(図16(k))。論理ID(=L0)が割り当てられたCPU0は、レジスタREGを介して論理ID(=L1)が割り当てられたCPU2からデータが送信されたことを認識し、受信データRDATAをレジスタREGから読み出す(図16(l))。
図16においても、各CPUは、論理IDを用いてデータを送信し、論理IDを用いてデータを受信する。このため、CPUが故障により交換された場合にも、各CPUは、認識している設定を変えることなく、データを送受信できる。
図17は、図3に示した情報処理装置において、故障したメモリMEMを未使用のメモリMEMに置き換える例を示す。図14の上側の状態は、図6、図7、図11に示した状態と同様である。この状態で、情報処理装置1100が動作中、メモリMEM3に対応するメモリ監視部360(図4)は、メモリMEM3の故障を検出し、メモリMEM3の故障を示す故障情報MEMFAILを構成制御部400に出力する。
構成制御部400は、故障情報MEMFAILに基づいて、図17の下側に示すように、図6に示したマップ情報テーブル408を書き換える。そして、構成制御部400は、書き換えたマップ情報テーブル408に基づいて、図14の下側に示すように、図7に示した設定テーブル500を書き換える。図17の下側において、書き換えられた値は、太字で示す。
これにより、仮想システムIDが1番のコンピュータシステムSYS1において、故障したメモリMEM3が空いているメモリMEM1に、人手を介することなく自動的に置き換えられる。なお、メモリMEMの故障の場合、図10に示した仮想化部280のアドレス変換テーブル286は書き換えられない。
図18は、図3に示したCPUの電源投入時の動作の例を示す。図18は、情報処理装置1100に電源が投入された場合の動作のCPUの動作と、故障したCPUから置き換えられたCPUの動作の両方を示す。なお、図18の動作は、各CPUが、情報処理装置1100の本来の機能を実現するユーザプログラムを実行する前の初期化ルーチンで実行される。また、図18の動作の開始時に、各CPUに対応するレジスタI/F240のレジスタREGの内容は、図4に示した構成制御部400により設定されている。
まず、ステップS110において、電源が投入されたCPUは、図9に示したレジスタI/F240のレジスタREGから自身のCPU情報CPUIDを読む。次にステップS112において、CPUは、レジスタREGから読んだCPU情報CPUIDに基づいて、コンピュータシステムの全体を管理するシステムCPUであるか否かを判定する。例えば、CPU情報CPUIDが”0”に設定されたCPUは、システムCPUであることを認識する。CPUがシステムCPUの場合、処理はステップS114に移行し、CPUがシステムCPUでない場合、処理はステップS128に移行する。なお、図11に示したように、仮想システムIDに応じて構築されるコンピュータシステムの各々において、仮想IDが0番のCPUがシステムCPUである。
ステップS114において、システムCPUは、レジスタREGの理由ビットRを参照し、CPUの起動原因を取得する。次にステップS116において、システムCPUは、理由ビットRの値に基づいて、起動原因が他のCPUの故障による交換によるものか否かを判定する。交換による起動の場合、処理はステップS134に移行し、交換による起動でない場合、すなわち、情報処理装置1100に電源が投入された場合、処理はステップS118に移行する。
ステップS118において、システムCPUは、レジスタREGのCPU数情報NCPUを参照し、自身を含むコンピュータシステムに属するCPUの数を認識する。また、システムCPUは、レジスタI/F240を介して仮想化部280のアドレス変換テーブル286にアクセスし、自分が属するコンピュータシステムに含まれる他のCPUの情報(物理ID、仮想ID等)を取得する。なお、システムCPUは、ステップS118において、自身に割り当てられたメモリMEMの容量と、自身に接続されたI/O(Input/Output)デバイスの種類および数を、レジスタI/F240を介して取得してもよい。また、システムCPUは、ステップS118において、自分が属するコンピュータシステムに含まれる他のCPUが起動済みか否かをレジスタI/F240を介して取得してもよい。次に、ステップS120において、CPUは、ステップS118において取得した情報を、対応するレジスタREGに格納する。なお、ステップS118において取得した情報のうち、レジスタREGに格納する領域が割り当てられていない情報は、メモリMEMに格納されてもよい。
次に、ステップS122において、システムCPUは、ステップS118で取得した情報に基づいて、自分が属するコンピュータシステムに含まれる他のCPUがあるか否かを判定する。他のCPUがある場合、処理はステップ124に移行し、他のCPUがない場合、処理はステップS132に移行する。
ステップS124において、システムCPUは、レジスタI/F240のレジスタREGを用いて、他のCPUの1つへ通信する。例えば、システムCPUは、フラグBがレディ状態を示す場合に、図9に示したレジスタREGにおける送信用のCPU情報TCPUIDの領域に、他のCPUの1つの論理IDを書き込み、送信データSDATAの領域に通信の開始を示す情報を書き込む。システムCPUは、CPU情報TCPUIDおよび送信データSDATAのレジスタREGへの書き込みによりビジー状態にセットされたフラグBがレディ状態にリセットされることをモニタすることで、他のCPUの1つへの通信が完了したと判断する。
次に、ステップS126において、システムCPUは、自分が属するコンピュータシステムに含まれる他の全てのCPUに対する通信が完了したか否かを判定する。全てのCPUに対する通信が完了した場合、処理はステップS132に移行し、通信が完了していないCPUがある場合、処理はステップS124に戻る。
CPUがシステムCPUでない場合(すなわち、他のCPU)、ステップS128において、他のCPUは、レジスタREGのフラグVをモニタし、システムCPUからの通信を待つ。次に、ステップS130において、他のCPUは、フラグVがセットされたか否かを判定し、フラグVがセットされた場合、システムCPUから通信の開始を示す情報を受信したか否かを判定する。通信の開始を示す情報を受信した場合、処理はステップS132に移行し、フラグVがセットされない場合、処理はステップS128に戻る。
なお、他のCPUがレジスタREGのフラグIを利用できる場合、他のCPUは、割り込み要求の発生により、通信の開始を示す情報の受信を知ることができる。この場合、CPUは、ステップS128では、割り込み要求の発生を待つ処理を実行し、ステップS130では、受信したデータが通信の開始を示す情報を示すか否かを判定する。
ステップS132において、システムCPUのOSにより分配されたタスクにしたがって、システムCPUおよび他のCPUは、ユーザプログラムの実行を開始する。ユーザプログラムの開始により、各CPUの電源投入時の動作は完了する。
一方、起動の要因が他のシステムCPUの故障による交換による場合、コンピュータシステム内のCPU間の通信は既に確立されている。このため、ステップS134において、システムCPUは、故障したシステムCPU(OS)が管理した情報をメモリMEMから読み出す。例えば、システムCPUは、コンピュータシステムに含まれるメモリMEMの容量や、システムCPUがユーザプログラムを実現するタスクを取り出すキューの先頭アドレスを、メモリMEMから読み出す。ステップS134により、故障したシステムCPUから置き換えられた新たなシステムCPUは、故障したシステムCPUと等価な動作を実行可能になる。
図19は、図5に示した構成制御部400の動作の例を示す。例えば、図19の動作は、構成制御部400内のプロセッサが制御プログラムを実行することで実現される。
まず、ステップS210において、構成制御部400は、内蔵するROM等の不揮発性メモリ装置から初期値を読み出し、読み出した初期値に基づいて、マップ情報テーブル408を初期状態に設定する。例えば、マップ情報テーブル408の初期状態は、図6に示した状態である。
次に、ステップS212において、構成制御部400は、初期状態に設定したマップ情報テーブル408に基づいて、図5に示した書き換え部410を制御し、設定テーブル500を初期状態に設定する。また、構成制御部400は、初期状態に設定したマップ情報テーブル408に基づいて、図5に示した書き換え部412を制御し、仮想化部280のアドレス変換テーブル286を初期状態に設定する。例えば、設定テーブル500の初期状態は、図7に示した状態であり、アドレス変換テーブル286の初期状態は、図11に示した状態である。
次に、ステップS214において、構成制御部400は、マップ情報テーブル408に基づいて、各レジスタI/F240のレジスタREGのCPU情報CPUIDおよびCPU数情報NCPUを設定する。CPU情報CPUIDおよびCPU数情報NCPUの設定は、図4に示した仮想化部280を介して実行される。
次に、ステップS216において、構成制御部400は、マップ情報テーブル408に基づいて、コンピュータシステムとして動作させるCPU(アクティブなCPU)およびメモリMEM(アクティブなメモリ)に電源を投入する。
図6に示した例では、システム識別ビットSが”1”に設定された2つの行で、CPU識別ビットCが”1”に設定されたCPU0、CPU1、CPU3およびメモリ識別ビットMが”1”に設定されたメモリMEM0、MEM2、MEM3に電源が投入される。電源の投入により、コンピュータシステムとして動作するCPUは、図18に示した動作を開始し、ユーザプログラムの実行を開始する。すなわち、ステップ216の実行後、コンピュータシステムは、各種センサを制御する制御装置、あるいは通信機器の中継装置などとして動作する。
次に、ステップS218において、構成制御部400は、図3に示したCPU監視部260からの故障情報CPUFAILおよびメモリ監視部360からの故障情報MEMFAILを監視する。次に、ステップS220において、構成制御部400は、故障情報CPUFAILに基づいてCPUの故障が発生したか否かを判定し、故障情報MEMFAILに基づいてメモリMEMの故障が発生したか否かを判定する。CPUまたはメモリMEMの故障が発生した場合、処理はステップS222に移行する。CPUおよびメモリMEMの故障が発生していない場合、処理は、ステップS218に戻り、故障情報CPUFAIL、MEMFAILの監視を続ける。
ステップS222において、構成制御部400は、CPUの故障が発生した場合、処理をステップS224に移行し、CPUの故障が発生していない場合、メモリMEMの故障が発生したと判定し、処理をステップS232に移行する。
CPUの故障が発生した場合、ステップS224において、構成制御部400は、図6に示したマップ情報テーブル408を参照して、未使用のCPUがあるか否かを判定する。未使用のCPUは、マップ情報テーブル408のシステム識別ビットSが”1”に設定された全ての行で、全てのCPU識別ビットCが”0”に設定されたCPUである。例えば、図6に示したマップ情報テーブル408では、未使用のCPUはCPU2である。未使用のCPUがある場合、処理はステップS226に移行し、未使用のCPUがない場合、処理はステップS246に移行する。
ステップS226において、構成制御部400は、マップ情報テーブル408を更新することで、未使用のCPUの中から交換するCPUを選択する。例えば、構成制御部400は、マップ情報テーブル408を、図14の上側に示す状態から図14の下側に示す状態に変更する。なお、未使用のCPUが複数個ある場合、例えば、ID番号の小さいCPUが選択される。
次に、ステップS228において、構成制御部400は、更新されたマップ情報テーブル408に基づいて、各CPU制御部200のレジスタREGのCPU情報CPUIDを更新する。また、構成制御部400は、各CPU制御部200の仮想化部280のアドレス変換テーブル286を更新する。例えば、構成制御部400は、アドレス変換テーブル286を、図14の上側に示す状態から図14の下側に示す状態に変更する。
次に、ステップS230において、構成制御部400は、図5に示した電源制御部414を制御し、故障したCPUと交換される未使用のCPUに電源を投入する。
一方、メモリMEMの故障が発生した場合、ステップS232において、構成制御部400は、メモリ監視部360からの故障情報MEMFAILに基づいて、故障が訂正可能なエラーに起因するものであるか否かを判定する。訂正可能なエラーに起因する故障の場合、メモリMEMは正しいデータを保持するため、処理はステップS234に移行する。訂正が困難なエラーに起因する故障の場合、メモリMEMに保持されたデータが失われたおそれがあるため、処理はステップS246に移行する。
ステップS234において、構成制御部400は、マップ情報テーブル408を参照して、未使用のメモリMEMがあるか否かを判定する。未使用のメモリMEMは、マップ情報テーブル408のシステム識別ビットSが”1”に設定された全ての行で、全てのメモリ識別ビットMが”0”に設定されたメモリMEMである。例えば、図6に示したマップ情報テーブル408では、未使用のメモリMEMはメモリMEM1である。未使用のメモリMEMがある場合、処理はステップS236に移行し、未使用のメモリMEMがない場合、処理はステップS246に移行する。
ステップS236において、構成制御部400は、マップ情報テーブル408を更新することで、未使用のメモリMEMの中から交換するメモリMEMを選択する。例えば、構成制御部400は、マップ情報テーブル408を、図17の上側に示す状態から図17の下側に示す状態に変更する。なお、未使用のメモリMEMが複数個ある場合、例えば、ID番号の小さいメモリMEMが選択される。
次に、ステップS238において、構成制御部400は、図5に示した電源制御部414を制御し、故障したメモリMEMと交換される未使用のメモリMEMに電源を投入する。
次に、ステップS240において、構成制御部400は、故障したメモリMEMに格納されたデータを、交換される未使用のメモリMEMにコピーする。例えば、メモリMEM間のコピー動作は、構成制御部400と各メモリMEMとの間に接続された信号線を用いて実行される。構成制御部400がDMAC(Direct Memory Access Controller)を有する場合、メモリMEM間のコピー動作は、DMACを用いて実行されてもよい。
なお、メモリMEM間のコピー動作は、CPU制御部200、クロスバースイッチ700およびメモリ制御部300を介して実行されてもよい。この場合、構成制御部400は、後述するステップS242により設定テーブル500を更新する前に、故障したメモリMEMに格納されたデータを読み出し、読み出したデータをシステム制御装置100内のメモリ装置に保持する。そして、構成制御部400は、ステップS242により設定テーブル500を更新した後に、システム制御装置100内のメモリ装置に保持したデータを、新たに割り当てられた未使用のメモリMEMに書き込む。CPU制御部200、クロスバースイッチ700およびメモリ制御部300を介したメモリMEM間のコピー動作は、故障したメモリMEMを含むコンピュータシステム内のCPUにより実行されてもよい。この後、処理はステップS242に移行される。
ステップS242において、構成制御部400は、更新されたマップ情報テーブル408に基づいて、図7に示した設定テーブル500を更新する。例えば、構成制御部400は、設定テーブル500を、図14の上側に示す状態から図14の下側に示す状態に変更し、あるいは、設定テーブル500を、図17の上側に示す状態から図17の下側に示す状態に変更する。設定テーブル500の更新により、故障したCPUがコンピュータシステムから切り離され、交換される未使用のCPUがコンピュータシステムに接続される。あるいは、設定テーブル500の更新により、故障したメモリMEMがコンピュータシステムから切り離され、交換される未使用のメモリMEMがコンピュータシステムに接続される。
次に、ステップS244において、構成制御部400は、更新されたマップ情報テーブル408に基づいて、故障したCPUまたは故障したメモリMEMの電源を遮断する。
一方、未使用のCPUがない場合、未使用のメモリMEMがない場合、あるいは、訂正不可能なエラーがメモリMEMに発生した場合、ステップS246において、構成制御部400は、コンピュータシステムにシステムエラーが発生したことを上位の装置に通知する。
以上、この実施形態においても、上述した実施形態と同様に、故障によるCPUの交換の前後で、コンピュータシステムSYS内のCPUの設定を維持でき、CPUの交換の前後で、同じ手続によりCPU間の通信が可能である。また、外部からの制御や操作を伴うことなく、CPUを自動的に未使用のCPUに置き換え可能にでき、情報処理装置1100の信頼性を従来に比べて向上できる。
例えば、故障したCPUが未使用のCPUに置き換えられる場合に、構成制御部400が、マップ決定部406の決定にしたがってアドレス変換テーブル286を書き換えることで、CPUの交換の前後で、同じ手続によりCPU間の通信が可能である。また、アドレス変換テーブル286(図11)が、複数のコンピュータシステムを識別する仮想システムIDの領域を有するため、情報処理装置1100内に複数のコンピュータシステムを構築できる。
また、構成制御部400の電源制御部414(図5)により、未使用あるいは故障したCPUの電源を遮断することで、情報処理装置1100の消費電力を、電源を遮断しない場合に比べて削減できる。
さらに、アドレス変換部284(図10)が、フリップフロップFF2、FF4間に配置されるため、アドレス変換部284の変換動作の時間に拘わりなく、変換された物理IDを送信データSDATAに対して遅れることなく内部バスIBUSに出力できる。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
100‥システム制御装置;200‥CPU制御部;220‥メモリI/F;240‥レジスタI/F;260‥CPU監視部;262‥タイマ;264‥モニタ部;266‥リセット部;280‥仮想化部;282‥分離部;284‥アドレス変換部;286‥アドレス変換テーブル;288‥合成部;300‥メモリ制御部;320‥メモリI/F;340‥エラー検出訂正部;360‥メモリ監視部;400‥構成制御部;402‥故障受信部;404‥マップ制御部;406‥マップ決定部;408‥マップ情報テーブル;410、412‥書き換え部;414‥電源制御部;500‥設定テーブル;600‥スイッチ制御部;700‥クロスバースイッチ;1000、1100‥情報処理装置;CNT1、CNT2、CNT3‥制御部;CPUFAIL‥故障情報;CPUID‥CPU情報;CPUPWR‥制御情報;IBUS‥内部バス;L0、L1‥論理番号;MEM‥メモリ;MEMFAIL‥故障情報;MEMPWR‥制御情報;NCPU‥CPU数情報;NEWMAP‥マップ情報;P0、P1、P2‥物理番号;RDATA‥受信データ;REG‥レジスタ;SCPUID‥CPU情報;SDATA‥送信データ;ST‥起動情報;SW‥スイッチ部;SYS‥コンピュータシステム;TBL‥テーブル;TCPUID‥CPU情報;UPD‥更新情報

Claims (9)

  1. それぞれ演算処理を行う複数の演算処理装置と、
    それぞれデータを記憶する複数の記憶装置と、
    前記複数の演算処理装置のいずれかと前記複数の記憶装置のいずれかとを、接続情報に基づいて接続してシステムを構築するスイッチ部と、
    前記複数の演算処理装置をそれぞれ識別する物理情報と、前記システム内の各演算処理装置を識別する論理情報との対応付けを示す対応付け情報を記憶する記憶部と、
    前記複数の演算処理装置に対応してそれぞれ設けられ、対応する演算処理装置が送信先の演算処理装置にデータを送信する場合、前記対応付け情報に基づいて、前記送信先の演算処理装置の論理情報から変換した物理情報と、前記対応する演算処理装置の物理情報とを伝送路を介して出力し、前記対応する演算処理装置が送信元の演算処理装置からデータを受信する場合、前記対応付け情報に基づいて、前記送信元の演算処理装置から前記伝送路を介して受信した前記送信元の演算処理装置の物理情報から変換した論理情報を前記対応する演算処理装置に出力する第1の制御部と、
    前記システム内の演算処理装置の故障の発生に基づいて前記接続情報を変更し、前記スイッチ部を制御して、前記故障が発生した演算処理装置と記憶装置との接続を解除し、接続を解除した記憶装置と前記複数の演算処理装置に含まれる他の演算処理装置とを接続する第2の制御部と、
    前記故障の発生に基づいて、前記故障した演算処理装置の物理情報に対応する論理情報を含む対応付け情報を無効にし、前記他の演算処理装置の物理情報と無効にした前記対応付け情報に含まれる論理情報とを対応付ける第3の制御部を有することを特徴とする情報処理装置。
  2. 前記第1の制御部は、
    前記対応する演算処理装置から受けるデータと前記送信先の演算処理装置の論理情報とを分離する分離部と、
    前記分離部により分離された前記送信先の演算処理装置の論理情報を物理情報に変換する変換部と、
    前記変換部の変換により得られた物理情報と前記分離部により分離されたデータとを合成し、合成した情報を前記伝送路を介して出力する合成部を有すること
    を特徴とする請求項1記載の情報処理装置。
  3. 前記分離部と前記合成部との間に直列に配置され、前記分離部により分離されたデータをクロックに同期して順次にラッチする第1ラッチおよび第2ラッチと、
    前記分離部と前記変換部との間に配置され、前記分離部により分離された前記送信先の演算処理装置の論理情報を前記クロックに同期してラッチする第3ラッチと、
    前記変換部と前記合成部との間に配置され、前記変換部の変換により得られた物理情報を前記クロックに同期してラッチする第4ラッチを有し、
    前記変換部は、前記クロックの1サイクル内に、前記送信先の演算処理装置の論理情報を物理情報に変換すること
    を特徴とする請求項2記載の情報処理装置。
  4. 前記第2の制御部は、前記故障の発生に基づいて、前記故障した演算処理装置と置き換える前記他の演算処理装置を未使用の演算処理装置の中から選択し、選択結果に基づいて前記接続情報を変更する選択部を有し、
    前記第3の制御部は、前記選択部により変更された接続情報に基づいて、前記記憶部を書き換えること
    を特徴とする請求項1ないし請求項3のいずれか1項記載の情報処理装置。
  5. 前記接続情報に基づいて、未使用の演算処理装置または前記故障が発生した演算処理装置の電源を遮断し、前記システム内で動作させる演算処理装置および記憶装置に電源を供給する第4の制御部を有すること
    を特徴とする請求項1ないし請求項4のいずれか1項記載の情報処理装置。
  6. 前記記憶部は、前記複数の演算処理装置の各々に対応して、前記物理情報を格納する領域と、前記システムを識別するシステム情報を格納する領域と、システム情報により識別されるシステム毎に、前記論理情報を格納する領域を有すること
    を特徴とする請求項1ないし請求項5のいずれか1項記載の情報処理装置。
  7. 前記システム内の演算処理装置の前記故障を検出する第1の検出部を有し、
    前記第2の制御部は、前記第1の検出部による演算処理装置の故障の検出に基づいて前記接続情報を変更すること
    を特徴とする請求項1ないし請求項6のいずれか1項記載の情報処理装置。
  8. 前記システム内の記憶装置の故障を検出する第2の検出部を有し、
    前記第2の制御部は、前記第2の検出部による記憶装置の故障の検出に基づいて前記接続情報を変更し、前記スイッチ部を制御して故障した記憶装置を前記複数の記憶装置に含まれる他の記憶装置に置き換えること
    を特徴とする請求項1ないし請求項7のいずれか1項記載の情報処理装置。
  9. それぞれ演算処理を行う複数の演算処理装置と、それぞれデータを記憶する複数の記憶装置と、前記複数の演算処理装置のいずれかと前記複数の記憶装置のいずれかとを、接続情報に基づいて接続してシステムを構築するスイッチ部と、前記複数の演算処理装置をそれぞれ識別する物理情報と、前記システム内の各演算処理装置を識別する論理情報との対応付けを示す対応付け情報を記憶する記憶部とを有する情報処理装置の接続方法において、
    前記複数の演算処理装置に対応してそれぞれ設けられた第1の制御部が、対応する演算処理装置が送信先の演算処理装置にデータを送信する場合、前記対応付け情報に基づいて、前記送信先の演算処理装置の論理情報から変換した物理情報と、前記対応する演算処理装置の物理情報とを伝送路を介して出力し、
    前記対応する演算処理装置が送信元の演算処理装置からデータを受信する場合、前記第1の制御部が、前記対応付け情報に基づいて、前記送信元の演算処理装置から前記伝送路を介して受信した前記送信元の演算処理装置の物理情報から変換した論理情報を前記対応する演算処理装置に出力し、
    前記情報処理装置に含まれる第2の制御部が、前記システム内の演算処理装置の故障の発生に基づいて前記接続情報を変更し、前記スイッチ部を制御して、前記故障が発生した演算処理装置と記憶装置との接続を解除し、接続を解除した記憶装置と前記複数の演算処理装置に含まれる他の演算処理装置とを接続し
    前記情報処理装置に含まれる第3の制御部が、前記故障の発生に基づいて、前記故障した演算処理装置の物理情報に対応する論理情報を含む対応付け情報を無効にし、前記他の演算処理装置の物理情報と無効にした前記対応付け情報に含まれる論理情報とを対応付けることを特徴とする情報処理装置の制御方法。
JP2013015567A 2013-01-30 2013-01-30 情報処理装置および情報処理装置の制御方法 Active JP6056509B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013015567A JP6056509B2 (ja) 2013-01-30 2013-01-30 情報処理装置および情報処理装置の制御方法
US14/162,186 US9170896B2 (en) 2013-01-30 2014-01-23 Information processing apparatus and control method for information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013015567A JP6056509B2 (ja) 2013-01-30 2013-01-30 情報処理装置および情報処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2014146254A JP2014146254A (ja) 2014-08-14
JP6056509B2 true JP6056509B2 (ja) 2017-01-11

Family

ID=51224391

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013015567A Active JP6056509B2 (ja) 2013-01-30 2013-01-30 情報処理装置および情報処理装置の制御方法

Country Status (2)

Country Link
US (1) US9170896B2 (ja)
JP (1) JP6056509B2 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015162000A (ja) * 2014-02-26 2015-09-07 富士通株式会社 情報処理装置,制御装置及びログ情報収集方法
JP2017107377A (ja) * 2015-12-09 2017-06-15 株式会社リコー 機器管理装置、機器管理システム、検証方法及びプログラム
US10037227B2 (en) * 2015-12-17 2018-07-31 Intel Corporation Systems, methods and devices for work placement on processor cores
CN105808391A (zh) * 2016-04-05 2016-07-27 浪潮电子信息产业股份有限公司 一种热替换cpu节点的方法及装置
JP6812737B2 (ja) * 2016-10-07 2021-01-13 オムロン株式会社 演算装置および制御装置
JP6897145B2 (ja) * 2017-02-23 2021-06-30 富士通株式会社 情報処理装置、情報処理システム及び情報処理装置制御方法
WO2018198460A1 (ja) * 2017-04-28 2018-11-01 日本電信電話株式会社 Id空間変換システム及びその方法
FR3076004B1 (fr) * 2017-12-27 2021-03-19 Bull Sas Procede de gestion de panne dans un reseau de noeuds et partie de reseau de noeuds associee
JP2020030536A (ja) * 2018-08-21 2020-02-27 株式会社デンソー 電子制御装置
US20200285574A1 (en) * 2018-09-26 2020-09-10 Tegze P. Haraszti Method of using a symbol transformer machine, and symbol transformer machine, for performing information storage and memory functions
JP7268516B2 (ja) * 2019-07-17 2023-05-08 株式会社デンソー 電子制御装置
US11106529B1 (en) * 2020-07-22 2021-08-31 Dell Products L.P. Post package repair failure memory location reporting system
JP2022139769A (ja) * 2021-03-12 2022-09-26 株式会社オートネットワーク技術研究所 車載装置、情報処理方法、及びコンピュータプログラム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0775001B2 (ja) * 1987-10-05 1995-08-09 株式会社日立製作所 系切替方法
JPH01224861A (ja) * 1988-03-03 1989-09-07 Nec Corp マルチプロセッサ制御方式
JPH06259275A (ja) * 1993-03-09 1994-09-16 Hitachi Ltd 情報処理装置
US5696983A (en) * 1994-05-26 1997-12-09 Hitachi, Ltd. Decentralized system connected by individual buses and bus connection method
JP2004164455A (ja) * 2002-11-15 2004-06-10 Nec Corp マルチベクトルプロセッサシステム及びベクトルプロセッサ
US7275180B2 (en) 2003-04-17 2007-09-25 International Business Machines Corporation Transparent replacement of a failing processor
JP2008217623A (ja) * 2007-03-07 2008-09-18 Renesas Technology Corp データプロセッサ
JP2010049589A (ja) * 2008-08-25 2010-03-04 Kyoto Univ 多重化実行に対してスケーラブルなパイプラインプロセッサシステム
JP5476902B2 (ja) * 2009-09-30 2014-04-23 富士通株式会社 ターボ復号装置及び通信装置
JP5829392B2 (ja) * 2010-09-30 2015-12-09 三菱重工業株式会社 制御装置および原子力発電プラント制御システム
US8799707B2 (en) * 2011-06-28 2014-08-05 Mitsubishi Heavy Industries, Ltd. Redundant system
JP6227239B2 (ja) * 2011-11-16 2017-11-08 ナブテスコ株式会社 航空機制御装置及び航空機制御システム
JP2014016894A (ja) * 2012-07-10 2014-01-30 Renesas Electronics Corp 並列演算装置、並列演算装置を備えたデータ処理システム、及び、データ処理プログラム

Also Published As

Publication number Publication date
US20140215264A1 (en) 2014-07-31
JP2014146254A (ja) 2014-08-14
US9170896B2 (en) 2015-10-27

Similar Documents

Publication Publication Date Title
JP6056509B2 (ja) 情報処理装置および情報処理装置の制御方法
US10339047B2 (en) Allocating and configuring persistent memory
US20160378344A1 (en) Processor and platform assisted nvdimm solution using standard dram and consolidated storage
US8850081B2 (en) Method, system and apparatus for handling events for partitions in a socket with sub-socket partitioning
US7246269B1 (en) Efficient memory check architecture and method
US8949659B2 (en) Scheduling workloads based on detected hardware errors
US20090307686A1 (en) Selective memory donation in virtual real memory environment
WO2013081616A1 (en) Hardware based memory migration and resilvering
CN105095254B (zh) 一种实现数据一致性的方法及装置
US7194660B2 (en) Multi-processing in a BIOS environment
US11656967B2 (en) Method and apparatus for supporting persistence and computing device
JP2005275629A (ja) マルチプロセッサシステム、及び、メモリアクセス方法
US10157005B2 (en) Utilization of non-volatile random access memory for information storage in response to error conditions
US20230004459A1 (en) Error reporting for non-volatile memory modules
US8139595B2 (en) Packet transfer in a virtual partitioned environment
JP5773446B2 (ja) 記憶装置、冗長性回復方法、およびプログラム
US7831963B2 (en) Method for tracing a program executed on a system comprising a plurality of processing units, and a system comprising a plurality of processing units
CN116483600A (zh) 内存故障处理方法及计算机设备
JP4544901B2 (ja) 記憶制御システム及びブート制御システム
US20050165974A1 (en) Computer apparatus and computer system
US20130262782A1 (en) Central processing unit, method for controlling central processing unit, and information processing apparatus
JP2007102544A (ja) デジタルシグナルプロセッサシステムおよびそのブート方法。
KR102470888B1 (ko) 지속성 지원 장치 및 방법, 그리고 컴퓨팅 장치
DeLano Tukwila-a quad-core Intel® Itanium® processor
CN112765086A (zh) 固态存储中一种基于cache一致性的软硬件交互方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150903

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160524

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160607

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20161108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161121

R150 Certificate of patent or registration of utility model

Ref document number: 6056509

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150