(57)【特許請求の範囲】
【請求項１】
０系及び１系プロセッサカードにそれぞれ搭載されたプロセッサユニット間において互いにデータを受け渡して、前記プロセッサユニット内のメモリ内容を一致させるようにした２重化プロセッサシステムであって、
前記プロセッサユニットの各々は、他系の前記プロセッサユニットへの送信データにその連続性を判断するための情報を付加する情報付加手段と、他系の前記プロセッサユニットからの受信データに付加されている前記情報を検出する情報検出手段と、前記情報検出手段により検出された前記情報が付加されたデータを受信した旨を示す受信完了通知を他系の前記プロセッサユニットに送信する通知手段と、他系の前記プロセッサユニットからの前記受信完了通知を基に他系の前記プロセッサユニットへのデータ送信を制御する送信制御手段とを含み、
前記送信制御手段は、他系の前記プロセッサユニットからの前記受信完了通知が示す他系の前記プロセッサユニットの前記情報検出手段により検出された前記情報を基にデータ欠落有りと判断する場合にこの欠落したデータが他系の前記プロセッサユニットに再送信されるよう、他系の前記プロセッサユニットへのデータ送信を制御するようにしたことを特徴とする２重化プロセッサシステム。
【請求項２】
前記プロセッサユニットの各々は、他系の前記プロセッサユニットへの送信データを記憶する記憶手段を含み、前記送信制御手段は、他系の前記プロセッサユニットからの前記受信完了通知が示す他系の前記プロセッサユニットの前記情報検出手段により検出された前記情報を基にデータ欠落無しと判断する場合、前記記憶手段の再送信用読出し位置を更新し、他系の前記プロセッサユニットからの前記受信完了通知が示す他系の前記プロセッサユニットの前記情報検出手段により検出された前記情報を基にデータ欠落有りと判断する場合、前記再送信用読出し位置から前記記憶手段に記憶されているデータが読出され他系の前記プロセッサユニットに送信されることを特徴とする請求項１記載の２重化プロセッサシステム。
【請求項３】
前記０系及び１系プロセッサカードの各々には前記プロセッサユニットが複数搭載されており、これ等複数の前記プロセッサユニットの各々とこれに１対１に対応付けられた他系の前記プロセッサユニット間において互いにデータを受け渡して、これ等プロセッサユニット内のメモリ内容を一致させるようにしたことを特徴とする請求項１又は２記載の２重化プロセッサシステム。
【請求項４】
前記０系及び１系プロセッサカードの各々に設けられ、自系の前記プロセッサユニット間のデータ転送を自系の前記プロセッサユニット内の各メモリの所定領域に格納されたデータ転送命令を基に自律的に行うプロセッサ間通信手段を含むことを特徴とする請求項３記載の２重化プロセッサシステム。
【請求項５】
前記プロセッサ間通信手段は、自系の前記プロセッサユニットの各々に対応して設けられ、対応する前記プロセッサユニット内のメモリに格納されている前記データ転送命令を自律的に読出し、このデータ転送命令を基に当該メモリに格納されている転送データを自律的に読出し転送する転送手段と、自系の前記プロセッサユニットの各々に対応して設けられ、受信された前記転送データを対応する前記プロセッサユニット内のメモリに自律的に書込む受信手段とを有することを特徴とする請求項４記載の２重化プロセッサシステム。
【請求項６】
前記０系及び１系プロセッサカードの各々に自系の前記プロセッサユニットの各々に対応して設けられ、領域が自系の前記プロセッサユニットをそれぞれ示す領域に区分された送信レジスタ及び受信レジスタを含み、前記プロセッサユニットによりこれに対応する前記送信レジスタの区分された領域に書込まれたデータが、このデータが書込まれた領域が示す前記プロセッサユニットに対応する前記受信レジスタの当該データを前記送信レジスタに書込んだ前記プロセッサユニットを示す領域に書込まれることを特徴とする請求項３〜５いずれか記載の２重化プロセッサシステム。
【請求項７】
前記０系及び１系プロセッサカードの各々に設けられ、自系の前記プロセッサユニット、他系の入出力部、システム外部からの入力データのデータパスを自系の前記プロセッサカードの動作状態に応じて切替える入出力部を含むことを特徴とする請求項１〜６いずれか記載の２重化プロセッサシステム。
【請求項８】
前記入出力部の各々は、自系の前記プロセッサカードの動作状態に応じて自系の前記プロセッサユニットからの入力データ及び前記システム外部からの入力データの中から一の入力データを選択し他系の前記入出力部へ出力する選択手段と、自系の前記プロセッサカードの動作状態に応じて自系の前記プロセッサユニットからの入力データ及び他系の前記入出力部からの入力データの中から一の入力データを選択し前記システム外部へ出力する選択手段と、前記システム外部からの入力データ及び他系の前記入出力部からの入力データの中から一の入力データを選択し自系の前記プロセッサユニットへ出力する選択手段とを有することを特徴とする請求項７記載の２重化プロセッサシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は２重化プロセッサシステムに関し、特に各プロセッサカードに複数のプロセッサユニットが搭載された２重化プロセッサシステムに関する。
【０００２】
【従来の技術】
通信機器等の高可用性を実現するために構成される２重化プロセッサシステムでは、一般的にプロセッサが搭載されるプロセッサカードと入出力部が分離されており、プロセッサカードには高速なプロセッサが設けられ、稼働系及び待機系のプロセッサ内のメモリ内容を一致化させるべく稼働系及び待機系のプロセッサがバス等で接続されている。このような２重化プロセッサシステムに対して、近年、プロセッサの高性能化、メイト間通信機構の信頼性の向上や一枚のカード辺りの機能を増やしスペースファクタを改善することが要求されている。
【０００３】
このような要請に応えるために、例えば、「小型ノード制御プロセッサ（電子通信学会２００１年ソサイエティ大会Ｂ−６−７４）」に開示されているように、高速なプロセッサを内蔵し、ＥＣＣ（誤り訂正符号）を付加したシリアルリンクでメイト間通信機構を実現し、入出力カードへの交絡インタフェースを設けることにより２重化プロセッサシステムを構成することが提案されている。
【０００４】
この文献に記載された２重化プロセッサシステムの構成が図１０に示されている。図１０において、符号ＣＰ０及びＣＰ１は中央処理装置であり、符号ＭＣ０及びＭＣ１は他系プロセッサ接続部であり、符号ＭＭ０及びＭＭ１はメインメモリであり、符号Ｂ００，Ｂ０１，Ｂ１０及びＢ１１はバスインタフェース部であり、符号ＦＭ０及びＦＭ１は入出力インタフェース部である。０系及び１系プロセッサカードＣ０及びＣ１に搭載された各プロセッサユニットは、中央処理装置と他系プロセッサ接続部とメインメモリとから構成される。他系プロセッサ接続部ＭＣ０及びＭＣ１により０系及び１系のプロセッサユニット間において互いにデータを受け渡してメモリＭＭ０及びＭＭ１の内容を一致させている。このデータの受け渡しの際にＥＣＣを用いてデータエラーの発生に対処することにより、メモリＭＭ０及びＭＭ１の内容が不一致となることを防いでいる。
【０００５】
また、交絡バスＢＳ０，ＢＳ１により０系プロセッサカードＣ０と入出力カードＣ３間、１系プロセッサカードＣ１と入出力カードＣ２間を接続することにより、システムの入出力部をも２重化冗長構成としている。
【０００６】
【発明が解決しようとする課題】
しかし、メイト間通信（０系及び１系のプロセッサユニット間通信）において、ＥＣＣにより訂正できないデータエラーが発生すると、その結果他系切り離し処理を行い１重化運転動作となり可用性を低下させるという問題がある。また、図１０に示したように、２重化システムを構成するために最低でも４枚のカードを必要とし、省スペースが求められる装置への適用が困難であるという問題がある。
【０００７】
また、各プロセッサカードに搭載されるプロセッサは１つであるため、プロセッサパワーを要するアプリケーションソフトを実行した場合に、一定時間内に演算が完了せず、その結果、この２重化プロセッサシステムが適用される通信機器としての動作を保証できないという問題がある。なお、この問題を解決するためには、２重化プロセッサシステムとして２重化マルチプロセッサシステムを採用すればよい。例えばＣＰＵ、他系プロセッサ接続部及びメインメモリから構成されるプロセッサユニットを各プロセッサカードに複数搭載する２重化マルチプロセッサシステムを採用する場合、同一カード上のプロセッサユニット間の通信が必要であるが、この通信により各プロセッサユニットにかかる負荷を低減して、システムの性能をより向上させることが求められる。
【０００８】
本発明の目的は、高性能かつ小型化可能な２重化プロセッサシステムを提供することである。
【０００９】
【課題を解決するための手段】
本発明による２重化プロセッサシステムは、０系及び１系プロセッサカードにそれぞれ搭載されたプロセッサユニット間において互いにデータを受け渡して、前記プロセッサユニット内のメモリ内容を一致させるようにした２重化プロセッサシステムであって、前記プロセッサユニットの各々は、他系の前記プロセッサユニットへの送信データにその連続性を判断するための情報を付加する情報付加手段と、他系の前記プロセッサユニットからの受信データに付加されている前記情報を検出する情報検出手段と、前記情報検出手段により検出された前記情報が付加されたデータを受信した旨を示す受信完了通知を他系の前記プロセッサユニットに送信する通知手段と、他系の前記プロセッサユニットからの前記受信完了通知を基に他系の前記プロセッサユニットへのデータ送信を制御する送信制御手段とを含み、前記送信制御手段は、他系の前記プロセッサユニットからの前記受信完了通知が示す他系の前記プロセッサユニットの前記情報検出手段により検出された前記情報を基にデータ欠落有りと判断する場合にこの欠落したデータが他系の前記プロセッサユニットに再送信されるよう、他系の前記プロセッサユニットへのデータ送信を制御するようにしたことを特徴とする。
【００１１】
また、前記２重化プロセッサシステムにおいて、前記プロセッサユニットの各々は、他系の前記プロセッサユニットへの送信データを記憶する記憶手段を含み、前記送信制御手段は、他系の前記プロセッサユニットからの前記受信完了通知が示す他系の前記プロセッサユニットの前記情報検出手段により検出された前記情報を基にデータ欠落無しと判断する場合、前記記憶手段の再送信用読出し位置を更新し、他系の前記プロセッサユニットからの前記受信完了通知が示す他系の前記プロセッサユニットの前記情報検出手段により検出された前記情報を基にデータ欠落有りと判断する場合、前記再送信用読出し位置から前記記憶手段に記憶されているデータが読出され他系の前記プロセッサユニットに送信されることを特徴とする。
【００１２】
また、前記２重化プロセッサシステムにおいて、前記０系及び１系プロセッサカードの各々には前記プロセッサユニットが複数搭載されており、これ等複数の前記プロセッサユニットの各々とこれに１対１に対応付けられた他系の前記プロセッサユニット間において互いにデータを受け渡して、これ等プロセッサユニット内のメモリ内容を一致させるようにしたことを特徴とする。
【００１３】
また、前記２重化プロセッサシステムにおいて、前記０系及び１系プロセッサカードの各々に設けられ、自系の前記プロセッサユニット間のデータ転送を自系の前記プロセッサユニット内の各メモリの所定領域に格納されたデータ転送命令を基に自律的に行うプロセッサ間通信手段を含むことを特徴とする。
【００１４】
また、前記２重化プロセッサシステムにおいて、前記プロセッサ間通信手段は、自系の前記プロセッサユニットの各々に対応して設けられ、対応する前記プロセッサユニット内のメモリに格納されている前記データ転送命令を自律的に読出し、このデータ転送命令を基に当該メモリに格納されている転送データを自律的に読出し転送する転送手段と、自系の前記プロセッサユニットの各々に対応して設けられ、受信された前記転送データを対応する前記プロセッサユニット内のメモリに自律的に書込む受信手段とを有することを特徴とする。
【００１５】
また、前記２重化プロセッサシステムにおいて、前記０系及び１系プロセッサカードの各々に自系の前記プロセッサユニットの各々に対応して設けられ、領域が自系の前記プロセッサユニットをそれぞれ示す領域に区分された送信レジスタ及び受信レジスタを含み、前記プロセッサユニットによりこれに対応する前記送信レジスタの区分された領域に書込まれたデータが、このデータが書込まれた領域が示す前記プロセッサユニットに対応する前記受信レジスタの当該データを前記送信レジスタに書込んだ前記プロセッサユニットを示す領域に書込まれることを特徴とする。
【００１６】
また、前記２重化プロセッサシステムにおいて、前記０系及び１系プロセッサカードの各々に設けられ、自系の前記プロセッサユニット、他系の入出力部、システム外部からの入力データのデータパスを自系の前記プロセッサカードの動作状態に応じて切替える入出力部を含むことを特徴とする。
【００１７】
また、前記２重化プロセッサシステムにおいて、前記入出力部の各々は、自系の前記プロセッサカードの動作状態に応じて自系の前記プロセッサユニットからの入力データ及び前記システム外部からの入力データの中から一の入力データを選択し他系の前記入出力部へ出力する選択手段と、自系の前記プロセッサカードの動作状態に応じて自系の前記プロセッサユニットからの入力データ及び他系の前記入出力部からの入力データの中から一の入力データを選択し前記システム外部へ出力する選択手段と、前記システム外部からの入力データ及び他系の前記入出力部からの入力データの中から一の入力データを選択し自系の前記プロセッサユニットへ出力する選択手段とを有することを特徴とする。
【００１８】
本発明の作用は次の通りである。０系及び１系プロセッサカードにそれぞれ搭載されたプロセッサユニット間の通信において、送信側で送信データにその連続性を判断するための情報を付加し、受信側で受信データに付加されている当該情報を検出し、検出された当該情報に対する受信完了通知を送信側に通知するようにすることにより、送信側が送信データの欠落を知ることができ、この欠落データ以降のデータを再送信するようにする。
【００１９】
また、同一プロセッサカード上の複数のプロセッサユニット間の通信において、プロセッサ間通信手段が、各プロセッサユニット内のメモリに格納されたデータ転送命令を基に、自律的にプロセッサユニット間のデータ転送を行うようにする。また、同一プロセッサカード上の複数のプロセッサユニットの各々に対応して設けられた送信レジスタ及び受信レジスタの領域を、同一プロセッサカード上の複数のプロセッサユニットをそれぞれ示す領域に区分することにより、送信レジスタに書込まれたデータが、そのデータが書込まれた領域が示すプロセッサユニットに対応して設けられた受信レジスタに書込まれるようにする。なお、このとき、受信レジスタに書込まれるデータは、そのデータを送信レジスタに書込んだプロセッサユニットを示す領域に書込まれる。
【００２０】
また、２重化プロセッサシステムの入出力部を２重化して各プロセッサカードに搭載し、各入出力部が、それが搭載されているプロセッサカードの動作状態に応じて入力データのデータパスを切替えるようにしている。
【００２１】
【発明の実施の形態】
以下に、本発明の実施例について図面を用いて説明する。図１は本発明の実施例による２重化マルチプロセッサシステムの構成を示す図である。図１を参照すると、０系プロセッサカードＣ０には、４個のプロセッサユニットＰＵ００，ＰＵ０１，ＰＵ０２及びＰＵ０３と、プロセッサ間接続部（プロセッサ間通信部）ＰＣ０と、入出力切替部ＩＣ０及び入出力インタフェース部ＦＭ０を有する入出力部とが搭載されている。また、１系プロセッサカードＣ１には、４個のプロセッサユニットＰＵ１０，ＰＵ１１，ＰＵ１２及びＰＵ１３と、プロセッサ間接続部（プロセッサ間通信部）ＰＣ１と、入出力切替部ＩＣ１及び入出力インタフェース部ＦＭ１を有する入出力部とが搭載されている。
【００２２】
各プロセッサユニットは、最も単純な構成例としては、図１０に示したようにＣＰＵと他系プロセッサ接続部とメインメモリとから構成される。０系のプロセッサユニットＰＵ００は１系のプロセッサユニットＰＵ１０に対応付けられており、０系のプロセッサユニットＰＵ０１は１系のプロセッサユニットＰＵ１１に対応付けられており、０系のプロセッサユニットＰＵ０２は１系のプロセッサユニットＰＵ１２に対応付けられており、０系のプロセッサユニットＰＵ０３は１系のプロセッサユニットＰＵ１３に対応付けられている。このように、１対１に対応付けられたプロセッサユニット間で互いにデータを受け渡して、これ等プロセッサユニットのメモリ内容を一致させるようにしている。
【００２３】
プロセッサ間接続部ＰＣ０，ＰＣ１は、同一プロセッサカード上の各プロセッサユニット間の通信を行うためのものである。入出力切替部ＩＣ０は、プロセッサユニットＰＵ００、入出力インタフェース部ＦＭ０及び入出力切替部ＩＣ１に接続され、０系プロセッサカードの動作状態に応じて入力データのデータパスを切替える。入出力切替部ＩＣ１は、プロセッサユニットＰＵ１０、入出力インタフェース部ＦＭ１及び入出力切替部ＩＣ０に接続され、１系プロセッサカードの動作状態に応じて入力データのデータパスを切替える。なお、入出力インタフェース部ＦＭ０，ＦＭ１は、メモリ、例えばフラッシュメモリであってもよい。
【００２４】
図２に図１に示した２重化マルチプロセッサシステムにおけるデータパス例が示されている。各プロセッサカード上の４つのプロセッサユニットはそれぞれ独立して動作しており、他系のそれぞれ対応するプロセッサに独立したデータパスを介してデータを受け渡し、各プロセッサ内のメモリ内容の一致化を行っている。このデータパス例は図２のＡＣ１に示されている。
【００２５】
図３は図１の各プロセッサユニット内の他系プロセッサ接続部（図１０参照）の構成例を示す図である。図３において、他系プロセッサ接続部１０は０系プロセッサカードＣ０上の各プロセッサユニット内の他系プロセッサ接続部であり、他系プロセッサ接続部１１は１系プロセッサカードＣ１上の各プロセッサユニット内の他系プロセッサ接続部である。各他系プロセッサ接続部は、ローカルバスインタフェースＬ１と、シーケンス番号付加部１００と、ＦＩＦＯ型バッファメモリ１１０と、受信完了通知部１２０と、パリティ生成部１３０と、パラレル／シリアル変換部１４０と、シリアル／パラレル変換部１５０と、パリティチェック部１６０と、シーケンス番号チェック部１７０と、再送制御部１８０とを有している。  シーケンス番号付加部１００は、ローカルバスインタフェースＬ１に入力されたデータに、その連続性を判断するためのシーケンス番号を付加してＦＩＦＯ型バッファメモリ１１０に出力する。パリティ生成部１３０は、受信完了通知部１２０からのデータにパリティビットを付加してパラレル／シリアル変換部１４０に出力する。パラレル／シリアル変換部１４０は、パリティ生成部１３０からのデータをパラレル／シリアル変換してシリアルリンクに出力する。このシリアルリンクは、他系プロセッサ接続部１０，１１が例えば図１のプロセッサユニットＰＵ００，ＰＵ１０内の他系プロセッサ接続部であれば、シリアルリンクｓ００，ｓ１０である。
【００２６】
シリアル／パラレル変換部１５０は、シリアルリンクからのデータをシリアル／パラレル変換してパリティチェック部１６０に出力する。パリティチェック部１６０は、シリアル／パラレル変換部１５０からのデータに対してパリティチェックを行い、データが正常であれば当該データをシーケンス番号チェック部１７０に出力し、データ誤りを検出したならば当該データを廃棄する。シーケンス番号チェック部１７０は、パリティチェック部１６０からのデータに付加されているシーケンス番号を検出し、この検出されたシーケンス番号を受信完了通知部１２０に送出すると共に、パリティチェック部１６０からのデータを再送制御部１８０に出力する。
【００２７】
受信完了通知部１２０は、シーケンス番号チェック部１７０により検出されたシーケンス番号に対する受信完了通知をＦＩＦＯ型バッファメモリ１１０からのデータに付加してパリティ生成部１３０に出力することにより、当該シーケンス番号が付加されたデータを受信した旨を当該データの送信元である他系に通知する。再送制御部１８０は、シーケンス番号チェック部１７０からのデータに付加されている受信完了通知情報を基に、他系へのデータ送信を制御する。より具体的には、再送制御部１８０は、シーケンス番号チェック部１７０からのデータに付加されている受信完了通知情報を基に、ＦＩＦＯ型バッファメモリ１１０のリード・リトライポインタを制御する。
【００２８】
ＦＩＦＯ型バッファメモリ１１０のリード・リトライポインタの制御について図４及び３を用いて説明する。ＦＩＦＯ型バッファメモリ１１０の構成は図４に示したように例えば２５６段構成であり、ＦＩＦＯ型バッファメモリ１１０への書込みはライトポインタ（ＷＰ）に示されるアドレスに対して行われ、書込みが完了するとライトポインタは更新される（１つ進められる）。また、ＦＩＦＯ型バッファメモリ１１０への読出しはリードポインタ（ＲＰ）に示されるアドレスに対して行われ、読出しが完了するとリードポインタは更新される（１つ進められる）。
【００２９】
このような書込み及び読出し動作は通常のＦＩＦＯ型バッファメモリと同様であるが、受信完了通知情報を基に欠落データを再送する再送機能を実現するために、３つめのポインタとしてリード・リトライポインタ（ＲＲＰ）を使用する。再送制御部１８０は、シーケンス番号チェック部１７０からデータを受信すると、それに付加されている受信完了通知情報と前回受信された受信完了通知情報とを基に、他系のプロセッサユニットにおける受信データに欠落があるか否かを判断する。再送制御部１８０は、データに欠落がないと判断した場合、ＦＩＦＯ型バッファメモリ１１０のリード・リトライポインタを更新する（１つ進める）。
【００３０】
一方、再送制御部１８０は、データに欠落があると判断した場合、ＦＩＦＯ型バッファメモリ１１０の読出しアドレスをリードポインタからリード・リトライポインタに切替えて、リード・リトライポインタに示されるアドレスからデータの読出しを行う。この読出しの後、再送制御部１８０は、リード・リトライポインタを更新して、更新されたリード・リトライポインタに示されるアドレスからデータの読出しを行う。
【００３１】
このような再送制御部１８０の制御動作により、他系のプロセッサユニットにおいて受信されなかった欠落データ（エラーが検出されたデータも含む）からデータ送信をやり直すことができるので、障害発生時に他系プロセッサカードを切り離すことなく通常運転を継続することができ、これにより、信頼性の高い通信を実現することができる。また、処理時間のかかるＥＣＣを使用する必要がなく、パリティ等の簡易なエラー検出コードを使用することができ、回路規模の削減と処理時間の短縮から遅延時間の短縮を図ることができる。
【００３２】
なお、ＦＩＦＯ型バッファメモリ１１０の各ポインタは２５５を過ぎると０から新たにカウントアップを行うものである。また、ＦＩＦＯ型バッファメモリ１１０の動作を示す状態として、ＦＩＦＯフル状態とＦＩＦＯエンプティ状態があるが、図４に示したようにリード・リトライポインタが設けられているため、ＦＩＦＯフル状態は、ライトポインタがリード・リトライポインタに追いつきリード・リトライポインタとライトポインタの差が１になった状態と定義され、ＦＩＦＯエンプティ状態は、リードポインタがライトポインタに追いつきライトポインタとリードポインタの差が１になった状態と定義されることになる。
【００３３】
また、シーケンス番号付加部１００はシーケンス番号を生成して送信データに付加しているが、送信データの連続性を判断することができればよい。したがって、例えば、シーケンス番号としてＦＩＦＯ型バッファメモリ１１０のリードポインタに示されるアドレスを使用することができる。リードポインタは順次カウントアップされるので、リードポインタに示されるアドレス情報を送信データに付加するようにしても、その連続性を判断することができる。
【００３４】
次に、４つのプロセッサユニットがそれぞれ接続され互いにデータ通信を行うためのプロセッサ間接続部ＰＣ０，ＰＣ１（図１参照）について説明する。プロセッサ間接続部ＰＣ０によるデータパス例が図２のＡＣ２に示されている。図５は図１のプロセッサ間接続部ＰＣ０，ＰＣ１の各々の構成を示す図である。図５を参照すると、各プロセッサ間接続部は、プロセッサインタフェースＰＩ０〜ＰＩ３と、内部バスＩＢ０〜ＩＢ３とから構成される。
【００３５】
プロセッサインタフェースＰＩ０は、ローカルバスを介して図１のプロセッサユニット（ＰＵ０）に接続され、プロセッサインタフェースＰＩ１は、ローカルバスを介して図１のプロセッサユニット（ＰＵ１）に接続され、プロセッサインタフェースＰＩ２は、ローカルバスを介して図１のプロセッサユニット（ＰＵ２）に接続され、プロセッサインタフェースＰＩ３は、ローカルバスを介して図１のプロセッサユニット（ＰＵ３）に接続される。
【００３６】
各プロセッサインタフェースは、ローカルバスインタフェースＬ１２と、送信ＤＭＡ(Direct Memory Access)部Ｄ０と、ＦＩＦＯ型バッファメモリＤ１及びＤ３と、受信ＤＭＡ部Ｄ２と、セレクタＤ５とから構成される。ローカルバスインタフェースＬ１２を介して、送信ＤＭＡ部Ｄ０及び受信ＤＭＡ部Ｄ２はプロセッサユニット内のメインメモリ（図１０参照）へアクセスする。メモリの所定領域には送信ＤＭＡ部Ｄ０と受信ＤＭＡ部Ｄ２に対する命令と送信データが格納されており、また、メモリには受信データ格納領域が確保されている。
【００３７】
送信ＤＭＡ部Ｄ０は、メインメモリに格納されているデータ転送命令を自律的に読出し、メモリ上に送信データが準備されている事と当該送信データを送信すべきプロセッサユニットを示す送信先プロセッサナンバを解読する。次に、送信ＤＭＡ部Ｄ０は、メモリの送信データをローカルバスインタフェースＬ１２を介して自律的に読出し、ＦＩＦＯバッファメモリＤ１に格納する。続いて、データ転送命令に記された送信先プロセッサユニットに対して送信データを送信するため、内部バスを経由して、送信先プロセッサユニットに接続されたプロセッサインタフェースのＦＩＦＯ型バッファメモリＤ３に書込む。この時、送信先であるプロセッサインタフェースの受信ＤＭＡ部Ｄ２を起動する。
【００３８】
送信先プロセッサユニットに接続されたプロセッサインタフェースにおいて、起動された受信ＤＭＡ部Ｄ２は、送信先プロセッサユニット内のメモリからローカルバスインタフェースＬ１２を介して受信データ格納領域を示した命令を自律的に読出し、ＦＩＦＯ型バッファメモリＤ３から読出した送信データをその命令の示す格納領域に書込む。全ての送信データの書込みを完了すると、受信ＤＭＡ部Ｄ２は、受信完了割り込みをローカルバスインタフェースＬ１２を介して送信先プロセッサユニットに出力し、同時に送信元のプロセッサインタフェースの送信ＤＭＡ部Ｄ０に通知する。
【００３９】
この通知を受けた送信ＤＭＡ部Ｄ０は、ローカルバスインタフェースＬ１２を介して送信元プロセッサユニットに送信完了割り込みを出力し、処理を完了する。なお、送信ＤＭＡ部Ｄ０及び受信ＤＭＡ部Ｄ２は、当業者にとってよく知られているので、その詳細な構成は省略する。
【００４０】
図８は図５のプロセッサ間接続部の状態遷移図である。この状態遷移図を用いて図５のプロセッサ間接続部の動作について説明する。なお、図８に示した状態遷移図は初期状態Ａ１から時計回りに動作するものである。図８及び５を参照すると、初期状態Ａ１において、送信ＤＭＡ部Ｄ０が起動されると送信命令リード状態Ａ２に遷移し、送信ＤＭＡ部Ｄ０は、ローカルバスインタフェースＬ１２を介して接続されているプロセッサユニット内のメモリからデータ転送命令を自律的に読出し、データ転送命令を基に、メモリの送信データ格納領域から送信データを読出して送信先プロセッサユニットに接続されたプロセッサインタフェースのＦＩＦＯ型バッファメモリＤ３に転送すると共に、送信先プロセッサユニットに接続されたプロセッサインタフェースの受信ＤＭＡ部Ｄ２を起動する。
【００４１】
これにより、プロセッサ間接続部の状態が受信命令リード状態Ａ３に遷移し、受信ＤＭＡ部Ｄ２は、送信先プロセッサユニット内のメモリから受信データ格納領域を示した命令（受信命令）を自律的に読み出す。次に、データ転送状態Ａ４に遷移し、受信ＤＭＡ部Ｄ２は、ＦＩＦＯ型バッファメモリＤ３のデータを読出して、上記命令に示された受信データ格納領域を基に、送信先プロセッサユニット内のメモリに送信データを書込む。
【００４２】
全ての書込みが完了すると受信完了書込み状態Ａ５に遷移し、送信先プロセッサユニット内のメモリの受信命令領域に受信完了報告を書込み、受信完了割り込みを送信先プロセッサユニットに出力する。次に、送信完了書込み状態Ａ６に遷移し、送信元プロセッサ内のメモリのデータ転送命令領域に送信完了報告を書き込み送信完了割り込みを送信元プロセッサユニットに出力する。これにより一連の状態遷移を完了し初期状態Ａ１に遷移する。
【００４３】
このように、同一カード上のプロセッサユニット間通信として大量データを通信する場合においても、プロセッサユニットから同一カード上の他のプロセッサユニット内のメモリへ直接ライトすることなく、自己のメモリにデータ転送命令と転送データを書込むことにより、プロセッサユニット間通信が可能となるので、プロセッサ能力に負担を掛けずプロセッサユニット間通信を実現することができる。
【００４４】
図５を用いて説明したプロセッサユニット間通信は、特に大量データを通信する場合に使用されるものであり、同一カード上のプロセッサユニット間において少量データを通信する場合は図６に示した構成が用いられる。図６は図１のプロセッサ間接続部ＰＣ０，ＰＣ１の各々の構成を示す図である。
【００４５】
図６を参照すると、各プロセッサ間接続部は、送信レジスタＲ０１と受信レジスタＲ０２とを有するレジスタペアＲ０と、送信レジスタＲ０３と受信レジスタＲ０４とを有するレジスタペアＲ１と、送信レジスタＲ０５と受信レジスタＲ０６とを有するレジスタペアＲ２と、送信レジスタＲ０７と受信レジスタＲ０８とを有するレジスタペアＲ３とから構成される。
【００４６】
送信レジスタＲ０１及び受信レジスタＲ０２は図１のプロセッサユニット（ＰＵ０）に接続され、送信レジスタＲ０３及び受信レジスタＲ０４は図１のプロセッサユニット（ＰＵ１）に接続され、送信レジスタＲ０５及び受信レジスタＲ０６は図１のプロセッサユニット（ＰＵ２）に接続され、送信レジスタＲ０７及び受信レジスタＲ０８は図１のプロセッサユニット（ＰＵ３）に接続される。なお、図６に示した構成と図５に示した構成とは互いに独立しているものである。
【００４７】
各送信レジスタは、４つの送信先プロセッサユニット（ＰＵ０，ＰＵ１，ＰＵ２，ＰＵ３）の各々毎にレジスタ内の領域が区分されている。また、各受信レジスタは、４つの送信元プロセッサユニット（ＰＵ０，ＰＵ１，ＰＵ２，ＰＵ３）の各々毎にレジスタ内の領域が区分されている。そして、送信レジスタ内の区分された領域に、当該送信レジスタに接続されたプロセッサユニットがデータを書込むと、その領域が示すプロセッサユニットに接続された受信レジスタの区分された領域（当該送信レジスタに接続されたプロセッサユニットを示す領域である）に当該データが書込まれるという動作が実行される。
【００４８】
一例として、図１における０系プロセッサカード上のプロセッサユニット（ＰＵ０）ＰＵ００から、０系プロセッサカード上のプロセッサユニット（ＰＵ２）ＰＵ０２に、少量データとしてのフラグデータを送信する場合について説明する。図１及び６において、プロセッサユニットＰＵ００が送信レジスタＲ０１のＴｏ２の領域にフラグデータを書込むと、図６中の矢印のルートを経由して、プロセッサユニットＰＵ０２に接続された受信レジスタＲ０６のFrom０の領域にフラグデータが書込まれる。
【００４９】
このように、送信レジスタにおいて送信先プロセッサユニットを指定してフラグデータを書き込むと、当該送信先プロセッサユニットに接続された受信レジスタにおいて送信元プロセッサユニットを示す領域に当該フラグデータが書込まれることになる。割り込み通信も上述したフラグ通信と同様に実現されるが、割り込み通信は一般的に緊急度が高いため、送信先プロセッサユニットが受信レジスタに書込まれた割り込み要因ビットをクリアすることにより、送信元プロセッサユニットに接続された送信レジスタに書込まれた該当ビットのクリアを行うようにする。
【００５０】
以上述べたように、領域が同一カード上のプロセッサユニットをそれぞれ示す領域に区分された送信レジスタ及び受信レジスタを用いて、同一カード上のプロセッサユニット間通信としてフラグ通信や割り込み通信等の少量データ通信を行うことにより、同一カード上のプロセッサユニット間の少量データ通信を簡易なプロセッサライト、リード命令で実現することができ、ソフトウェアの開発が容易となる。また、各レジスタの領域がプロセッサユニット毎に区分されているので、送信先アドレスや送信元アドレスの格納領域を必要とせず、少ないハード量で効率の良いデータ転送を実現している。
【００５１】
次に、図１の入出力切替部ＩＣ０，ＩＣ１について説明する。図１において、０系プロセッサカードＣ０が稼動系、１系プロセッサカードＣ１が待機系とした場合のデータパス例が図２のＡＣ３に示されている。図７は図１の入出力切替部ＩＣ０，ＩＣ１の各々の構成を示す図である。
【００５２】
図７及び１において、各入出力切替部は、自系のプロセッサユニット（ＰＵ０）にプライマリバスを介して接続されるプライマリバス・インタフェースＢ０と、自系の入出力インタフェース部にセカンダリバスを介して接続されるセカンダリバス・インタフェースＢ１と、他系の入出力切替部にシリアルリンクを介して接続される送信用シリアルインタフェースＢ２と、他系の入出力切替部にシリアルリンクを介して接続される受信用シリアルインタフェースＢ３と、セレクタＳＥＬ０，ＳＥＬ１及びＳＥＬ２とから構成される。
【００５３】
各入出力切替部は、それが搭載されているプロセッサカードの動作状態（稼働状態、待機状態）に応じて、入力データのデータパスを切替えるものであり、動作状態に応じたセレクタＳＥＬ０及びＳＥＬ１の選択動作により、図２のＡＣ３に示されたデータパスが実現される。セレクタＳＥＬ０及びＳＥＬ１の選択動作は動作状態を示す選択制御信号により制御され、選択制御信号がＳＢＹ＝０のときが稼働状態を示し、ＳＢＹ＝１のときが待機状態を示す。セレクタＳＥＬ２は、アービトレーションを伴うセレクタであり、稼動系では常に動作するものである。なお、セレクタＳＥＬ２は、待機系では動作を停止している。
【００５４】
自系のプロセッサユニット（ＰＵ０）からの入力データは、プライマリバス・インタフェースＢ０を介してセレクタＳＥＬ０及びＳＥＬ１に入力される。また、システム外部からの入力データは、セカンダリバス・インタフェースＢ１を介してセレクタＳＥＬ０及びＳＥＬ２に入力される。また、他系の入出力切替部からの入力データは、受信用シリアルインタフェースＢ３を介してセレクタＳＥＬ１及びＳＥＬ２に入力される。
【００５５】
まず、入出力切替部が搭載されているプロセッサカードが稼動系の場合、すなわち、当該プロセッサカードの動作状態が稼働状態の場合、動作状態が稼働状態（ＳＢＹ＝０）であるため、セレクタＳＥＬ０は自系のプロセッサユニット（ＰＵ０）からの入力データを選択出力する。これにより、自系のプロセッサユニット（ＰＵ０）からの入力データは、他系の入出力切替部に出力されることになる。また、セレクタＳＥＬ１は、自系のプロセッサユニット（ＰＵ０）からの入力データを選択出力する。これにより、自系のプロセッサユニット（ＰＵ０）からの入力データは、システム外部に出力されることになる。
【００５６】
また、システム外部からの入力データは、セカンダリバス・インタフェースＢ１，セレクタＳＥＬ２を経由してプライマリバス・インタフェースＢ０に到達し、自系のプロセッサユニット（ＰＵ０）に出力される。他系の入出力切替部からの入力データは、受信用シリアルインタフェースＢ３，セレクタＳＥＬ２を経由してプライマリバス・インタフェースＢ０に到達し、自系のプロセッサユニット（ＰＵ０）に出力される。
【００５７】
一方、入出力切替部が搭載されているプロセッサカードが待機系の場合、すなわち、当該プロセッサカードの動作状態が待機状態の場合、動作状態が待機状態（ＳＢＹ＝１）であるため、セレクタＳＥＬ０はシステム外部からの入力データを選択出力する。これにより、システム外部からの入力データは、他系の入出力切替部に出力されることになる。また、セレクタＳＥＬ１は、他系の入出力切替部からの入力データを選択出力する。これにより、他系の入出力切替部からの入力データは、システム外部に出力されることになる。
【００５８】
図７に示した構成により、図２のＡＣ３に示したデータパスを実現することができ、入出力部の２重化を０系及び１系プロセッサカード上ですることができる。また、データパスの切替を３つのセレクタにより実現しており、回路規模を小さくすることが可能である。
【００５９】
また、本実施例では、図１に示したように、各プロセッサユニット内の他系プロセッサ接続部や入出力切替部に、シリアルリンクＳ００〜Ｓ０４，Ｓ１０〜１４を使用しているので、パラレルバスに比べ各プロセッサカードの端子数の影響を受けにくく、カード上のプロセッサユニット数の増大を図ることができる。
【００６０】
次に、本発明の他の実施例について図面を用いて説明する。図９は本発明の他の実施例による２重化マルチプロセッサシステムの構成を示す図であり、図１と同等部分は同一符号にて示している。
【００６１】
図１に示した２重化マルチプロセッサシステムでは、入出力切替部ＩＣ０，ＩＣ１は同一カード上のプロセッサユニットＰＵ００，ＰＵ１０に接続されるが、図９に示した２重化マルチプロセッサシステムでは、入出力切替部ＩＣ０，ＩＣ１は同一カード上のプロセッサ間接続部ＰＣ０，ＰＣ１に接続される。したがって、図９に示した２重化マルチプロセッサシステムでは、各プロセッサユニットから同一カード上の入出力切替部ＩＣ０，ＩＣ１に共通にアクセスすることが可能となり、図１と比べてプロセッサユニットＰＵ００，ＰＵ１０の負荷を低減することができる。
【００６２】
このように、入出力切替部ＩＣ０，ＩＣ１が同一カード上のプロセッサ間接続部ＰＣ０，ＰＣ１に接続される場合、図５において内部バスが１本追加されて、これに図７のプライマリバスインタフェースＢ０が接続されることになる。
【００６３】
【発明の効果】
本発明による効果は、高性能かつ小型化可能な２重化プロセッサシステムを実現することができることである。その理由は、０系及び１系プロセッサカードにそれぞれ搭載されたプロセッサユニット間の通信において、送信側で送信データにその連続性を判断するための情報を付加し、受信側で受信データに付加されている当該情報を検出し、検出された当該情報に対する受信完了通知を送信側に通知するようにすることにより、送信側が送信データの欠落を知ることができ、この欠落データを再送信するようにしているためである。これにより、０系及び１系プロセッサカードにそれぞれ搭載されたプロセッサユニット間通信の信頼性が向上される。
【００６４】
また、同一プロセッサカード上の複数のプロセッサユニット間の通信において、プロセッサ間通信手段が、各プロセッサユニット内のメモリに格納されたデータ転送命令を基に、自律的にプロセッサユニット間のデータ転送を行うようにする。また、同一プロセッサカード上の複数のプロセッサユニットの各々に対応して設けられた送信レジスタ及び受信レジスタの領域を、同一プロセッサカード上の複数のプロセッサユニットをそれぞれ示す領域に区分することにより、送信レジスタに書込まれたデータが、そのデータが書込まれた領域が示すプロセッサユニットに対応して設けられた受信レジスタに書込まれるようにする。なお、このとき、受信レジスタに書込まれるデータは、そのデータを送信レジスタに書込んだプロセッサユニットを示す領域に書込まれる。これにより、同一プロセッサカード上のプロセッサユニット間通信による各プロセッサユニットの負荷が低減され、各プロセッサユニットの処理能力を向上することができる。
【００６５】
また、２重化プロセッサシステムの入出力部を２重化して各プロセッサカードに搭載し、各入出力部が、それが搭載されているプロセッサカードの動作状態に応じて入力データのデータパスを切替えるようにする。これにより、入出力部がプロセッサカードから分離していた従来の２重化プロセッサシステムに比べて、小型化が可能となる。
【図面の簡単な説明】
【図１】本発明の実施例による２重化マルチプロセッサシステムの構成を示す図である。
【図２】図１の２重化マルチプロセッサシステムにおけるデータパス例を示す図である。
【図３】図１の各プロセッサユニット内の他系プロセッサ接続部の構成例を示す図である。
【図４】図３のバッファメモリについて説明するための図である。
【図５】図１のプロセッサ間接続部の構成を示す図である。
【図６】図１のプロセッサ間接続部の構成を示す図である。
【図７】図１の入出力切替部の構成を示す図である。
【図８】図５のプロセッサ間接続部の状態遷移図である。
【図９】本発明の他の実施例による２重化マルチプロセッサシステムの構成を示す図である。
【図１０】従来の２重化プロセッサシステムの構成を示す図である。
【符号の説明】
Ｂ２，Ｂ３    シリアルインタフェース
Ｃ０，Ｃ１    プロセッサカード
Ｄ０    送信ＤＭＡ部
Ｄ２    受信ＤＭＡ部
Ｄ５，ＳＥＬ０〜ＳＥＬ２    セレクタ
ＦＭ０，ＦＭ１    入出力インタフェース部
ＩＢ０〜ＩＢ３    内部バス
ＩＣ０，ＩＣ１    入出力切替部
Ｌ１，Ｌ１２，Ｂ０，Ｂ１    バスインタフェース
ＰＣ０，ＰＣ１    プロセッサ間接続部
ＰＩ０〜ＰＩ３    プロセッサインタフェース
ＰＵ００〜ＰＵ０３，ＰＵ１０〜ＰＵ１３    プロセッサユニット
Ｒ０〜Ｒ３    レジスタペア
Ｒ０１〜Ｒ０８    レジスタ
Ｓ００〜Ｓ０４，Ｓ１０〜Ｓ１４    シリアルリンク
１０，１１    他系プロセッサ接続部
１００    シーケンス番号付加部
Ｄ１，Ｄ３，１１０    ＦＩＦＯ
１２０    受信完了通知部
１３０    パリティ生成部
１４０    パラレル／シリアル変換部
１５０    シリアル／パラレル変換部
１６０    パリティチェック部
１７０    シーケンス番号検出部
１８０    再送制御部
【図１】
0004453238.tif 000002
【図２】
0004453238.tif 000003
【図３】
0004453238.tif 000004
【図４】
0004453238.tif 000005
【図５】
0004453238.tif 000006
【図６】
0004453238.tif 000007
【図７】
0004453238.tif 000008
【図８】
0004453238.tif 000009
【図９】
0004453238.tif 000010
【図１０】
0004453238.tif 000011