(57)【特許請求の範囲】
【請求項１】
Ｍ（Ｍは２以上の整数である）個のＣＰＵカードとこれらのＣＰＵカードを接続する単方向のＣＰＵカード間接続インタフェースとを備え、
前記ＣＰＵカードの各々は、複数のプロセッサと、該複数のプロセッサに接続されているキャッシュコヒーレンシ制御回路と、主記憶装置と、該主記憶装置に接続されている主記憶制御回路と、前記キャッシュコヒーレンシ制御回路と前記主記憶制御回路および前記ＣＰＵカード間接続インタフェースとに接続されているＣＰＵカード間制御回路とを有するマルチプロセッサシステムの制御装置において、
前記ＣＰＵカード間制御回路は、
前記複数のプロセッサからの前記主記憶装置に対する複数の命令を受けた時に、これらの命令をそれぞれＮ（Ｎは２以上の整数であってＭより小さい整数である）個の分割命令に分割して第１から第Ｎ転送命令とし、これらのＮ個の分割命令をＮサイクルに分割して前記ＣＰＵカード間接続インタフェースに送出する命令送出回路と、
前記複数のＣＰＵカードからの前記分割命令を受けた時に、これらの分割命令の調停で各転送命令をＮサイクルに分割されたまま調停しシリアル化して前記命令を再生して前記主記憶制御回路に与える調停回路を有することを特徴とするマルチプロセッサシステムの制御装置。
【請求項２】
前記キャッシュコヒーレンシ制御回路は、前記Ｎ個のプロセッサが内蔵するキャッシュと主記憶装置とのコヒーレンシ制御を行うことを特徴とする請求項１記載のマルチプロセッサシステムの制御装置。
【請求項３】
Ｍ（Ｍは２以上の整数である）個のＣＰＵカードとこれらのＣＰＵカードを接続する単方向のＣＰＵカード間接続インタフェースとを備え、
前記ＣＰＵカードの各々は、複数のプロセッサと、該複数のプロセッサに接続されているキャッシュコヒーレンシ制御回路と、主記憶装置と、該主記憶装置に接続されている主記憶制御回路と、前記キャッシュコヒーレンシ制御回路と前記主記憶制御回路および前記ＣＰＵカード間接続インタフェースとに接続されているＣＰＵカード間制御回路とを有するマルチプロセッサシステムの制御装置において、
前記ＣＰＵカード間制御回路は、
前記複数のプロセッサからの前記主記憶装置に対する複数の命令を受けた時に、これらの命令をそれぞれＭ個の分割命令に分割して第１から第Ｍ転送命令とし、これらのＭ個の分割命令をＭサイクルに分割して前記ＣＰＵカード間接続インタフェースに送出する命令送出回路と、
前記複数のＣＰＵカードからの前記分割命令を受けた時に、これらの分割命令の調停で各転送命令をＭサイクルに分割されたまま調停してシリアル化して前記命令を再生して前記主記憶制御回路に与える調停回路とを有することを特徴とするマルチプロセッサシステムの制御装置。
【請求項４】
前記キャッシュコヒーレンシ制御回路は、前記Ｎ個のプロセッサが内蔵するキャッシュと主記憶装置とのコヒーレンシ制御を行うことを特徴とする請求項３記載のマルチプロセッサシステムの制御装置。
【請求項５】
Ｍ（Ｍは２以上の整数である）個のＣＰＵカードとこれらのＣＰＵカードを接続する単方向のＣＰＵカード間接続インタフェースとを備え、
前記ＣＰＵカードの各々は、複数のプロセッサと、該複数のプロセッサに接続されているキャッシュコヒーレンシ制御回路と、主記憶装置と、該主記憶装置に接続されている主記憶制御回路と、前記キャッシュコヒーレンシ制御回路と前記主記憶制御回路および前記ＣＰＵカード間接続インタフェースとに接続されているＣＰＵカード間制御回路とを有するマルチプロセッサシステムの制御方法において、
前記ＣＰＵカード間制御回路が前記複数のプロセッサからの前記主記憶装置に対する複数の命令を受けた時に、これらの命令をそれぞれＮ（Ｎは２以上の整数であってＭより小さい整数である）個の分割命令に分割して第１から第Ｎ転送命令とするステップと、
前記ＣＰＵカード間制御回路が前記Ｎ個の分割命令をＮサイクルに分割して前記ＣＰＵカード間接続インタフェースに送出するステップとを有し、
前記ＣＰＵカード間制御回路が前記複数のＣＰＵカードからの前記分割命令を受けた時に、これらの分割命令の調停で各転送命令をＮサイクルに分割されたまま調停してシリアル化して前記命令を再生して前記主記憶制御回路に与えるステップを有することを特徴とするマルチプロセッサシステムの制御方法。
【請求項６】
前記キャッシュコヒーレンシ制御回路は、前記Ｎ個のプロセッサが内蔵するキャッシュと主記憶装置とのコヒーレンシ制御を行うことを特徴とする請求項５記載のマルチプロセッサシステムの制御方法。
【請求項７】
Ｍ（Ｍは２以上の整数である）個のＣＰＵカードとこれらのＣＰＵカードを接続する単方向のＣＰＵカード間接続インタフェースとを備え、
前記ＣＰＵカードの各々は、複数のプロセッサと、該複数のプロセッサに接続されているキャッシュコヒーレンシ制御回路と、主記憶装置と、該主記憶装置に接続されている主記憶制御回路と、前記キャッシュコヒーレンシ制御回路と前記主記憶制御回路および前記ＣＰＵカード間接続インタフェースとに接続されているＣＰＵカード間制御回路とを有するマルチプロセッサシステムの制御方法において、
前記ＣＰＵカード間制御回路が前記複数のプロセッサからの前記主記憶装置に対する複数の命令を受けた時に、これらの命令をそれぞれＭ個の分割命令に分割して第１から第Ｍ転送命令とするステップと、
前記ＣＰＵカード間制御回路が前記Ｍ個の分割命令をＭサイクルに分割して前記ＣＰＵカード間接続インタフェースに送出するステップとを有し、
前記ＣＰＵカード間制御回路が前記複数のＣＰＵカードからの前記分割命令を受けた時に、これらの分割命令の調停で各転送命令をＭサイクルに分割されたまま調停してシリアル化して前記命令を再生して前記主記憶制御回路に与えるステップを有することを特徴とするマルチプロセッサシステムの制御方法。
【請求項８】
前記キャッシュコヒーレンシ制御回路は、前記Ｎ個のプロセッサが内蔵するキャッシュと主記憶装置とのコヒーレンシ制御を行うことを特徴とする請求項７記載のマルチプロセッサシステムの制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のプロセッサをそれぞれ有する複数のＣＰＵカードと、これらのＣＰＵカードを接続するＣＰＵカード間接続インタフェースとを備えているマルチプロセッサシステムの制御装置および方法に関する。
【０００２】
【従来の技術】
従来より、この種のマルチプロセッサシステムとして図９に示すものが知られている。この従来のマルチプロセッサシステムは、複数のＣＰＵカード５００１〜５００ｎと双方向のＣＰＵカード間接続インタフェース６０００（バス）とを備えている。ＣＰＵカード５００１〜５００ｎの各々は、複数のプロセッサと、これらのプロセッサに接続されているキャッシュコヒーレンシ制御回路と、主記憶装置と、この主記憶装置に接続されている主記憶制御回路と、前記キャッシュコヒーレンシ制御回路と前記主記憶制御回路および前記ＣＰＵカード間接続インタフェース６０００とに接続されているＣＰＵカード間制御回路とを有している。ＣＰＵカード５００１〜５００ｎの各々は、バスを所有するために、先ずバス上に命令を発行する要求を出し、他のＣＰＵカードとの調停を行って、調停で勝った時に始めてバスに命令を発行することができる。また、バスが双方向であるため、バスを切り替えるサイクルが必要となり、調停に失敗したＣＰＵカードは、再び調停に要求を出すまで、１サイクル待たなければならない（デッドサイクル）。
【０００３】
図１０は、ＣＰＵカード５００１〜５００３のプロセッサ５１１１、６１１１、７１１１が主記憶装置にアクセスする動作を示す。プロセッサ５１１１、６１１１、７１１１はＣＰＵカード５００１、５００２、５００３に命令を発行すると、ＣＰＵカード５００１はバスの所有権をとるために、バスに命令を発行する要求を出す。図１０のタイムチャートでは、ＣＰＵカード５００１、５００２、５００３のＲＱ（リクエスト）フェーズにおいて、ＣＰＵカード５００１、５００２、５００３がバスに命令Ａ、Ｂ、Ｃを要求していることを示す。ＣＰＵカード５００１〜５００３は、他のＣＰＵカードとの調停を行い、調停で勝った場合は、バスの所有権を得ることができる。バスの所有権を得たＣＰＵカード（図１０ではＣＰＵカード５００１）は、バス上に命令を発行し、主記憶装置に対するアクセスを行う。図１０では、サイクル５でＣＰＵカード５００１が命令Ａをバスに発行し、サイクル６で命令Ａを主記憶装置に転送する。以下同様に、ＣＰＵカード５００２、５００３、５００１が発行した命令は、Ｂ、Ｃ、Ｄの順に主記憶装置に転送される（図１０参照）。図１０より、命令Ａが主記憶装置に発行されてから、命令Ｄが主記憶装置に発行されるまで、１３サイクルかかる。
【０００４】
【発明が解決しようとする課題】
しかしながら、従来のマルチプロセッサシステムにおいては、ＣＰＵカード間接続インタフェース（バス）が双方向であるため、ＣＰＵカード間接続インタフェースを切り替えるサイクルが必要となり、調停に失敗したＣＰＵカードが再び調停に要求を出すまで、１サイクル待たなければならない（デッドサイクル）から、ＣＰＵカード間接続インタフェースの使用効率が悪いという問題がある。
【０００５】
また、従来のマルチプロセッサシステムにおいては、ＣＰＵカード間接続インタフェース（バス）が双方向であるため、ＣＰＵカード間接続インタフェースのパッケージ上の配線負荷が大きくなり高速動作ができないという問題がある。
【０００６】
本発明の目的は、ＣＰＵカード間接続インタフェースの使用効率を増大させることができるマルチプロセッサシステムの制御装置および方法を提供することにある。
【０００７】
また、本発明の他の目的は、ＣＰＵカード間接続インタフェースのパッケージ上の配線負荷を低減して高速動作が可能であるマルチプロセッサシステムの制御装置および方法を提供することにある。
【０００８】
【課題を解決するための手段】
前記課題を解決するために、請求項１記載の発明は、Ｍ（Ｍは２以上の整数である）個のＣＰＵカードと、これらのＣＰＵカードを接続する単方向のＣＰＵカード間接続インタフェースとを備え、ＣＰＵカードの各々は、複数のプロセッサと、複数のプロセッサに接続されているキャッシュコヒーレンシ制御回路と、主記憶装置と、主記憶装置に接続されている主記憶制御回路と、キャッシュコヒーレンシ制御回路と主記憶制御回路およびＣＰＵカード間接続インタフェースとに接続されているＣＰＵカード間制御回路とを有するマルチプロセッサシステムの制御装置において、ＣＰＵカード間制御回路は、複数のプロセッサからの主記憶装置に対する複数の命令を受けた時に、これらの命令をそれぞれＮ（Ｎは２以上の整数であってＭより小さい整数である）個の分割命令に分割して第１から第Ｎ転送命令とし、これらのＮ個の分割命令をＮサイクルに分割してＣＰＵカード間接続インタフェースに送出する命令送出回路を有し、ＣＰＵカード間制御回路は、複数のＣＰＵカードからの分割命令を受けた時に、これらの分割命令の調停で各転送命令をＮサイクルに分割されたまま調停してシリアル化して命令を再生して主記憶制御回路に与える調停回路を有することを特徴とする。
【０００９】
請求項２記載の発明は、請求項１記載の発明において、キャッシュコヒーレンシ制御回路は、Ｎ個のプロセッサが内蔵するキャッシュと主記憶装置とのコヒーレンシ制御を行うことを特徴とする。
【００１０】
請求項３記載の発明は、Ｍ（Ｍは２以上の整数である）個のＣＰＵカードとこれらのＣＰＵカードを接続する単方向のＣＰＵカード間接続インタフェースとを備え、ＣＰＵカードの各々は、複数のプロセッサと、複数のプロセッサに接続されているキャッシュコヒーレンシ制御回路と、主記憶装置と、主記憶装置に接続されている主記憶制御回路と、キャッシュコヒーレンシ制御回路と主記憶制御回路およびＣＰＵカード間接続インタフェースとに接続されているＣＰＵカード間制御回路とを有するマルチプロセッサシステムの制御装置において、ＣＰＵカード間制御回路は、複数のプロセッサからの主記憶装置に対する複数の命令を受けた時に、これらの命令をそれぞれＭ個の分割命令に分割して第１から第Ｍ転送命令とし、これらのＭ個の分割命令をＭサイクルに分割してＣＰＵカード間接続インタフェースに送出する命令送出回路を有し、ＣＰＵカード間制御回路は、複数のＣＰＵカードからの分割命令を受けた時に、これらの分割命令の調停で各転送命令をＭサイクルに分割されたまま調停してシリアル化して命令を再生して主記憶制御回路に与える調停回路を有することを特徴とする。
【００１１】
請求項４記載の発明は、請求項３記載の発明において、キャッシュコヒーレンシ制御回路は、Ｎ個のプロセッサが内蔵するキャッシュと主記憶装置とのコヒーレンシ制御を行うことを特徴とする。
【００１２】
請求項５記載の発明は、Ｍ（Ｍは２以上の整数である）個のＣＰＵカードと、これらのＣＰＵカードを接続する単方向のＣＰＵカード間接続インタフェースとを備え、ＣＰＵカードの各々は、複数のプロセッサと、複数のプロセッサに接続されているキャッシュコヒーレンシ制御回路と、主記憶装置と、主記憶装置に接続されている主記憶制御回路と、キャッシュコヒーレンシ制御回路と主記憶制御回路およびＣＰＵカード間接続インタフェースとに接続されているＣＰＵカード間制御回路とを有するマルチプロセッサシステムの制御方法において、ＣＰＵカード間制御回路が複数のプロセッサからの主記憶装置に対する複数の命令を受けた時に、これらの命令をそれぞれＮ（Ｎは２以上の整数であってＭより小さい整数である）個の分割命令に分割して第１から第Ｎ転送命令とするステップと、ＣＰＵカード間制御回路がＮ個の分割命令をＮサイクルに分割してＣＰＵカード間接続インタフェースに送出するステップとを有し、ＣＰＵカード間制御回路が複数のＣＰＵカードからの分割命令を受けた時に、これらの分割命令の調停で各転送命令をＮサイクルに分割されたまま調停してシリアル化して命令を再生して主記憶制御回路に与えるステップを有することを特徴とする。
【００１３】
請求項６記載の発明は、請求項５記載の発明において、キャッシュコヒーレンシ制御回路は、前記Ｎ個のプロセッサが内蔵するキャッシュと主記憶装置とのコヒーレンシ制御を行うことを特徴とする。
【００１４】
請求項７記載の発明は、Ｍ（Ｍは２以上の整数である）個のＣＰＵカードと、これらのＣＰＵカードを接続する単方向のＣＰＵカード間接続インタフェースとを備え、ＣＰＵカードの各々は、複数のプロセッサと、複数のプロセッサに接続されているキャッシュコヒーレンシ制御回路と、主記憶装置と、主記憶装置に接続されている主記憶制御回路と、キャッシュコヒーレンシ制御回路と主記憶制御回路およびＣＰＵカード間接続インタフェースとに接続されているＣＰＵカード間制御回路とを有するマルチプロセッサシステムの制御方法において、ＣＰＵカード間制御回路が複数のプロセッサからの主記憶装置に対する複数の命令を受けた時に、これらの命令をそれぞれＭ個の分割命令に分割して第１から第Ｍ転送命令とするステップと、ＣＰＵカード間制御回路がＭ個の分割命令をＭサイクルに分割してＣＰＵカード間接続インタフェースに送出するステップとを有し、ＣＰＵカード間制御回路が複数のＣＰＵカードからの分割命令を受けた時に、これらの分割命令の調停で各転送命令をＭサイクルに分割されたまま調停してシリアル化して命令を再生して主記憶制御回路に与えるステップを有することを特徴とする。
【００１５】
請求項８記載の発明は、請求項７記載の発明において、キャッシュコヒーレンシ制御回路は、Ｎ個のプロセッサが内蔵するキャッシュと主記憶装置とのコヒーレンシ制御を行うことを特徴とする。
【００１６】
【発明の実施の形態】
次に、本発明の実施の形態を図面に基づいて詳細に説明する。
図１に示すように、本発明の１つの実施形態としてのマルチプロセッサシステムの制御装置は、複数のＣＰＵカード１〜ｎと、これらのＣＰＵカード１〜ｎを接続する単方向のＣＰＵカード間接続インタフェース（バス）１０１〜１０ｎとを備えている。図２に示すように、ＣＰＵカードｎは、複数のプロセッサｎ１１１〜ｎ１１４と、これらのプロセッサｎ１１１〜ｎ１１４に接続されているキャッシュコヒーレンシ制御回路５ｎと、主記憶装置９ｎと、この主記憶装置９ｎに接続されている主記憶制御回路７ｎと、キャッシュコヒーレンシ制御回路５ｎと主記憶制御回路７ｎおよびＣＰＵカード間接続インタフェース１０１〜１０ｎとに接続されているＣＰＵカード間制御回路６ｎとを有している。キャッシュコヒーレンシ制御回路５ｎは、プロセッサｎ１１１〜ｎ１１４が内蔵するキャッシュと主記憶装置９ｎとのコヒーレンシ制御を行う。主記憶制御回路７ｎは、主記憶装置９ｎを制御する。ＣＰＵカード１〜（ｎ−１）の各々は、ＣＰＵカードｎと同じように構成されている。
【００１７】
図３に示すように、ＣＰＵカード間制御回路６ｎは、キャッシュコヒーレンシ制御回路５ｎおよびＣＰＵカード間接続インタフェース１０ｎに接続されている命令送出回路２ｎ１と、ＣＰＵカード間接続インタフェース１０ｎおよび主記憶制御回路７ｎに接続されている調停回路２ｎ２を有している。命令送出回路２ｎ１は、複数のプロセッサｎ１１１〜ｎ１１４からの主記憶装置９ｎに対する複数の命令をキャッシュコヒーレンシ制御回路５ｎを介して受けた時に、これらの命令をそれぞれ４つの分割命令に分割し、これらの４つの分割命令を４サイクルに分割してＣＰＵカード間接続インタフェース１０ｎに送出する。調停回路２ｎ２は、複数のＣＰＵカード１〜ｎからの分割命令を受けた時に、これらの分割命令を調停してシリアル化して上記命令を再生して主記憶制御回路７ｎに与える。
【００１８】
ＣＰＵカード間接続インタフェース１０ｎは、各ＣＰＵカードを１：ｎ−１の単方向に接続するインタフェースである（図１）。ＣＰＵカード間接続インタフェース１０ｎは、インタフェースの向きを単方向にすることにより、バスの切り替えによる制御の複雑化を抑止する。ＣＰＵカード間制御回路６ｎでＣＰＵカード間接続インタフェース１０ｎに送出する命令を４サイクルに分割して送出することにより、１つの命令の情報量を１／４に減らしてインタフェースの増加を抑止している。ＣＰＵカード１〜（ｎ−１）のＣＰＵカード間制御回路の各々は、ＣＰＵカード間制御回路６ｎと同じ構造である。
【００１９】
図４に示すように、命令送出回路２ｎ１は、プロセッサｎ１１１〜ｎ１１４が発行した命令Ａを４サイクル間ホールドし、１つの命令を４サイクルに分割して（４サイクルに分割された分割命令を第一転送命令、第二転送命令、第三転送命令、第四転送命令と呼ぶ。）ＣＰＵカード間接続インタフェース１０ｎに命令Ａを送出する制御を行う。プロセッサｎ１１１〜ｎ１１４からの命令は命令送出回路２ｎ１によって、４サイクル間ホールドされるため、プロセッサが発行する命令Ａ、Ｂ、Ｃは、実際に４サイクル毎にＣＰＵカード間接続インタフェース１０ｎに発行される。この場合に、調停制御をＣＰＵ間接続インタフェース１０ｎに送出した後の受信側で行うことにより、命令送出回路２ｎ１は、毎サイクルにおいてＣＰＵカード間接続インタフェースに命令を送出することが可能となる。また、命令送出回路２ｎ１は、第一転送命令に対して、ＣＰＵカード１の命令が有効であることを示す第一転送命令ストローブ信号を付加することにより、その後３サイクル間に発行する命令が有効であることを受信側に知らせる。
【００２０】
調停回路２ｎ２は、ＣＰＵカード間接続インタフェース１０１〜１０ｎのあるものから、有効な命令をＣＰＵカード間制御回路６ｎが受信した時に、各ＣＰＵカードが発行した命令に対して、ＣＰＵカードの番号から１＜２＜・・・＜ｎ（若番優先）となるように調停を行い、ＣＰＵカード１〜ｎの各々が発行した命令をシリアル化して主記憶制御回路７ｎに送出する。調停回路２ｎ２では、ＣＰＵカード１〜ｎが発行する命令に対して、毎サイクルにおいて主記憶装置９ｎに対してアクセスすることができるように調停論理を行う。
【００２１】
図５は、ＣＰＵカード４の調停回路２４２がＣＰＵカード１〜４から受信した命令を調停して主記憶制御回路７４に命令を転送するまでのブロック図を示す。レジスタａ〜ｄには、ＣＰＵカード１〜４が発行した命令が格納される。レジスタａ〜ｄに格納されている命令は、調停論理によって若番優先に優先順位を付けられ、第一転送命令〜第四転送命令の並べ替え回路２４２１〜２４２４に格納される。並べ替え回路２４２１〜２４２４は、第一転送〜第四転送命令をＣＰＵカード１〜４の若番優先に並べ替えて主記憶装置に送出する。第一転送〜第四転送命令の並び替え回路２４２１〜２４２４は、調停論理をレジスタＡＲ２１〜２４、ＡＲ３１〜３４、ＡＲ４１〜４４で３サイクル間ホールドすることにより、４サイクルに分割された命令に対して全て等しい調停を行い、各ＣＰＵカードが発行した命令の順序を保証する。
【００２２】
第一転送命令並び替え回路２４２１にあるセレクタＳ１１〜Ｓ１３は、レジスタＲ１１〜１３にレジスタａ〜ｄの命令をセットする制御を行い、レジスタＲ１１〜Ｒ１３で命令と命令の間に空が出ないようにセレクトする。レジスタａ〜ｄに格納されている命令は、まず、調停論理で若番優先に優先順位（プライオリティ）を付加され、次に、先行に他のＣＰＵカード１〜４からの命令が存在するかを並び替え回路２４２１のレジスタＲ１１〜Ｒ１３がセットされているかでチェックし、セットされている命令が存在すれば、セットされているレジスタと自分のプライオリティからレジスタＲ１１〜Ｒ１３にセットされる。セレクタＳ１０は、レジスタＲ１１〜Ｒ１３に１つも命令がセットされていない場合、プライオリティの最も高い命令をセレクトする。第二転送命令並び替え回路２４２２にあるセレクタＳ２０〜Ｓ２３は、第一転送命令並び替え回路２４２１の調停論理をレジスタＡＲ２１〜ＡＲ２４で１サイクルホールドした値を使用する。第三転送命令並び替え回路２４２３のセレクタＳ３０〜Ｓ３３は、第二転送命令並び替え回路２４２２の調停論理をレジスタＡＲ３１〜ＡＲ３４で１サイクルホールドした値を使用する。第四転送命令並び替え回路２４２４のセレクタＳ４０〜Ｓ４３は、第三転送命令並び替え回路の調停論理をレジスタＡＲ４１〜ＡＲ４４で１サイクルホールドした値を使用する。これにより、４サイクルに分割された命令が全て同じ調停論理となることを保証する。
【００２３】
図６および図７に調停論理のフローチャートを示す。図６および図７は４つのＣＰＵカード１〜４が１つの命令を４サイクルに分割して発行した例を示す。図６のフローチャートは、ＣＰＵカード１〜４が主記憶装置に対する命令を発行した場合、命令を発行したＣＰＵカード１〜４の若番優先となるように調停する論理を示す。若番優先の調停は、ある命令を受け取った時に、その命令を発行したＣＰＵカードの番号が最若番（１）であるならば、直ちに調停を取ることができ、命令を発行したＣＰＵカードの番号が最若番号（１）でない場合は、命令を発行したＣＰＵカードの番号から１→２→３→４となるように、各命令に優先順位を付ける。各優先順位を高い順にプライオリティ１、２、３、４とする。例えば、図６を参照すると、ある命令を受け付けたとき、その命令を発行したＣＰＵカードの番号が１であるならば、無条件に優先順位が一番高くなり（プライオリティ１とする）（ステップＳ１，Ｓ２）、ＣＰＵカードの番号が２であるならば、同時にＣＰＵカード１の命令を受け付けているかどうか（自分よりプライオリティの高い命令が存在するか）を調べ、ＣＰＵカード１の命令が存在する場合は優先順位が二番目になり（プライオリティ２とする）（ステップＳ３，Ｓ４，Ｓ５）、ＣＰＵカード１の命令が存在しなければ、優先順位が一番高くなる（プライオリティ１となる）（ステップＳ３，Ｓ４，Ｓ２）。同様にして、ＣＰＵカードが発行した命令に対してプライオリティを付ける（ステップＳ６〜Ｓ１５）。
【００２４】
次に、若番優先にプライオリティを付加した命令を、上記の優先順位どおりになるように、並べ替える制御を行う。ここで、各ＣＰＵカード１〜４が発行する命令は、４サイクルに分割されて転送されるため、第一転送命令〜第四転送命令はそれぞれ４サイクルに１度しか受け付けない。つまり、４サイクルに１度の割合で４つのＣＰＵカード１〜４から発行される命令なので、並び替えの調停制御を行う第一転送〜第四転送の並び替え回路では、必ずいずれかのレジスタが空となる。例えば、図６の若番優先調停で、ある命令がプライオリティ１に選択された場合、そのＣＰＵカードは、その第一転送命令を発行する４サイクル前まで第一転送命令を発行していないことになり、その命令より以前に第一転送並び替え回路に存在する命令は、そのＣＰＵカードを除いた３個以下に限定される。よって、このケースでは、レジスタＲ１３に命令が格納されていることはない。同様に、プライオリティ２に選択された場合は、レジスタａ〜ｄに２つの第一転送命令が存在することを示すため、第一転送並び替え回路内の命令は、その２つのＣＰＵカードを除いた２個以下に限定される。以下同様に、プライオリティ３に選択された命令は、第一転送並び替え回路内に存在する命令は１個以下に限定される。プライオリティ４に選択された命令は、同時に４つのＣＰＵカードから命令が発行されていることを示すため、第一転送並び替え回路に存在する命令は０個となる。
【００２５】
次に、図５の第一転送並び替え回路を例に図７のフローチャートを参照して説明する。あるＣＰＵカードが発行した命令に対して、その命令の優先順位が一番高い場合（図６で示すプライオリティ１である場合）、その命令を受け付ける以前の命令は３個以下に限定され、各命令はセレクタＳ１０、Ｒ１１、Ｒ１２のいずれかに存在する。そのため、レジスタＲ１２、Ｒ１１に命令が格納されているかをチェックし、Ｒ１２に有効な命令が格納されている場合は、レジスタＲ１２にセットし（ステップＳ２１，Ｓ２２，Ｓ２５）、レジスタＲ１１に有効な命令がセットされている場合は、レジスタＲ１１にセットする（ステップＳ２３，Ｓ２６）。また、レジスタＲ１２、Ｒ１１に有効な命令が存在しない場合、セレクタＳ１０でセレクトされ（ステップＳ２３，Ｓ２４）、主記憶制御回路に対して第一転送命令を送出する。プライオリティ２の命令に対しては、先行に存在する命令は、２個以下に限定され、各命令はセレクタＳ１０、Ｒ１１のいずれかに存在するため、レジスタＲ１２のチェックを行う必要はなく、レジスタＲ１１に有効な命令が存在するかをチェックする（ステップＳ２７，Ｓ２８）。
【００２６】
レジスタＲ１１に有効な命令が存在する場合、プライオリティ１の命令がレジスタＲ１１にセットされるため、プライオリティ２の命令はレジスタＲ１２にセットされる（ステップＳ２８，Ｓ３０）。また、レジスタＲ１１に有効な命令が存在しない場合、プライオリティ１の命令がセレクタＳ１０でセレクトされるため、プライオリティ２の命令は、レジスタＲ１１にセットされる（ステップＳ２８，Ｓ２９）。プライオリティ３の命令は、先行に１個以下（先行の命令は、Ｓ１０によりセレクトされている）の命令しか存在しないため、レジスタＲ１１〜１３に存在する命令は無く、プライオリティ１の命令がセレクタＳ１０でセレクトされ、プライオリティ２の命令がレジスタＲ１１にセットされ、プライオリティ３の命令は、レジスタＲ１２にセットされる（ステップＳ３１，Ｓ３２）。プライオリティ４の命令に関しては、先行に存在する命令は０個であるため、プライオリティ１の命令がセレクタＳ１０でセレクトされ、プライオリティ２の命令がレジスタＲ１１に、プライオリティ３の命令がレジスタＲ１２にセットされるため、プライオリティ４の命令はレジスタＲ１３にしかセットされない（ステップＳ３３，Ｓ３４）。この方法により、調停された命令は、無駄なサイクルを作らず、毎サイクルにおいて主記憶装置にアクセスすることができる。なお、シリアル化は、全ＣＰＵカード１〜４で同一制御アルゴリズムで行うため、全ＣＰＵカード１〜４で同じ調停結果が得られ、全ＣＰＵカード１〜４におけるメモリアクセスの順序が保証でき、ＣＰＵカード１〜４の間でのコヒーレンシ制御が容易であり、階層型バス構成のマルチプロセッサシステムの実現に適している。主記憶制御回路７ｎは、ＣＰＵカード間制御回路６ｎからシリアル化された４サイクルの命令を受け取り、その順序で主記憶装置９ｎにアクセスする。
【００２７】
図１のＣＰＵカード間接続インタフェース１０１と図３のＣＰＵカード間制御回路６１の動作について、図８のタイムチャートを参照して説明する。図８のタイムチャートでは、ＣＰＵカード１、２、３に接続するプロセッサ１１１１、２１１１、３１１１が、ＣＰＵカード４に接続する主記憶装置９４に対して、同時にアクセス（命令Ａ、命令Ｂ、命令Ｃを発行）する例を示す。プロセッサ１１１１に関しては、主記憶装置９４に対して、連続して命令Ａと命令Ｄを発行する。
【００２８】
プロセッサ１１１１、２１１１、３１１１が発行した命令Ａ、Ｂ、Ｃは、ＣＰＵカード１、２、３のキャッシュコヒーレンシ制御回路５１、５２、５３によって、ＣＰＵカード制御回路６１、６２、６３に送出される。図８では、２サイクル目にプロセッサ１１１１、２１１１、３１１１から命令Ａ、Ｂ、Ｃが発行され、３サイクル目にプロセッサ１１１１から命令Ｄが発行されることを示す。ＣＰＵカード間制御回路６１は、ＣＰＵカード間接続インタフェース１０１に命令を送出する制御を行う命令送出回路２１１において、キャッシュコヒーレンシ制御回路５１から受け取った命令ＡをＡ１〜Ａ４の４サイクルに分割して、各分割命令をＡ１〜Ａ４の順にＣＰＵカード間接続インタフェース１０１に送出する。ＣＰＵカード１においては、連続してプロセッサから命令Ｄが発行されるため、命令送出回路２０１は、先ずＡの命令をＣＰＵカード間接続インタフェース１０１に送出し、Ａの命令の第四転送命令を送出した後、Ｄの命令をＤ１〜Ｄ４の順にＣＰＵカード間接続インタフェース１０１に送出する。ＣＰＵカード２、３についても、ＣＰＵカード１と同一の動作を行い、ＣＰＵカード２の命令送出回路２２１は、Ｂの命令をＢ１〜Ｂ４の順にＣＰＵカード間接続インタフェース１０２に送出し、ＣＰＵカード３の命令送出回路２３１は、Ｃの命令をＣ１〜Ｃ４の順にＣＰＵカード間接続インタフェース１０３に送出する。
【００２９】
図８では、ＣＰＵカード間接続インタフェース１０１上に３サイクル目から６サイクル目にかけて命令Ａが発行され、６サイクル目にＡ４が発行された後、Ｄ１が発行されていることを示し、ＣＰＵカード間接続インタフェース１０２と１０３上に３サイクル目から６サイクル目にかけて命令Ｂ、Ｃが発行されていることを示す。ＣＰＵカード４におけるＣＰＵカード間制御回路６４の調停回路２４２は、４サイクルに分割された命令Ａ１〜Ａ４、Ｂ１〜Ｂ４、Ｃ１〜Ｃ４を同時にＣＰＵカード間接続インタフェース１０１〜１０３を経由して受け取る。ＣＰＵカード間制御回路６４は、調停回路２４２でＣＰＵカード１、２、３から送出される命令Ａ、Ｂ、Ｃ、Ｄが有効であることをチェックし、ＣＰＵカードの番号の若番優先（ＣＰＵカード番号から１＜２＜・・・＜ｎとなるように）となるように、４サイクルに分割されてくる命令を調停する。ここで、４サイクル間に行う調停制御は全て同じ調停を行うため、４サイクルに分割された命令のまま、Ａ、Ｂ、Ｃ、Ｄの順に命令がシリアル化される。ＣＰＵカード間制御回路６４は、調停回路２４２によりシリアル化された命令を、主記憶制御回路７４に送出する。図８では、第一転送命令調停〜第四転送命令調停で各転送命令を４サイクルに分割されたままＡ、Ｂ、Ｃ、Ｄの順に調停してシリアル化していることを示す。
【００３０】
主記憶制御回路７４は、調停回路２４２によりシリアル化された命令Ａ、Ｂ、Ｃ、Ｄを第一転送命令は４サイクル、第二転送命令は３サイクル、第三転送命令は２サイクル、第四転送命令は１サイクル間保持することによって、ＣＰＵカード間制御回路６４から４サイクル全ての情報を受け取ったら、主記憶装置９４に対するアクセスを要求する。図８では、主記憶装置９４に対する命令を送出するタイミングを示す。これより、本発明では、プロセッサが要求する命令Ａ、Ｂ、Ｃ、Ｄに対して、最初に命令Ａが主記憶装置９４にアクセスしてから４サイクルでＡ〜Ｄの命令をすべて主記憶装置９４に送出することができる。
【００３１】
本発明の実施形態においては、ＣＰＵカード間接続インタフェース１０ｎに命令を送出するＣＰＵカードｎは、命令をＣＰＵカード間接続インタフェースｎに発行する際の調停を行う必要が無いので、毎回ＣＰＵカード間接続インタフェース１０ｎに命令を送出することができるため（デッドサイクルが発生しない）、ＣＰＵカード間接続インタフェース１０ｎのスループットを向上させることができる。
【００３２】
また、本発明の実施形態においては、命令を複数に分割して分割命令を生成することにより、ＣＰＵカード間接続インタフェース１０ｎに転送する命令の情報量を減らし、ＣＰＵカード間接続インタフェース１０ｎのピン数が増加することを抑止する。なお、全ＣＰＵカードの調停回路における分割命令のシリアル化は、全ＣＰＵカードで同一制御のアルゴリズムで行うため、全ＣＰＵカードで同じ調停結果が得られ、全ＣＰＵカードにおけるメモリアクセス順が保証でき、ＣＰＵカード間でのコヒーレンシ制御が容易であり、階層型バス構成のマルチプロセッサシステムの実現に適している。
【００３３】
また、本発明の実施形態においては、ＣＰＵカード数ｎ、ＣＰＵ間接続インタフェース１０１〜１０ｎの本数、および、ＣＰＵカード間接続インタフェース１０１〜１０ｎの転送サイクルは、構成に合わせて任意に最適化可能である。
【００３４】
また、本発明の実施形態においては、キャッシュコヒーレンシ制御回路５ｎは、これまで一般的に用いられている方式（Ｗｒｉｔｅ  Ｏｎｃｅ、ＭＥＳＩプロトコル等）を用いることで実現できる。
【００３５】
【発明の効果】
本発明によれば、複数のＣＰＵカードを単方向のＣＰＵカード間接続インタフェースにより接続しプロセッサが毎サイクルにおいてＣＰＵ間接続インタフェース（バス）に命令を発行することが可能であるためデッドサイクルがないから、主記憶装置に対するスループットが向上しＣＰＵカード間接続インタフェースの使用効率が向上する。
【００３６】
また、本発明によれば、双方向で発生するバスの切り替え制御が必要なく、ＣＰＵカード間接続インタフェースのパッケージ上の配線負荷が小さくなり、高速動作が可能である。
【図面の簡単な説明】
【図１】本発明の１つの実施形態としてのマルチプロセッサシステムの制御装置を示すブロック図である。
【図２】図１のマルチプロセッサシステムの制御装置におけるＣＰＵカードを示すブロック図である。
【図３】図１のマルチプロセッサシステムの制御装置におけるプロセッサが主記憶装置にアクセスする動作を説明するためのブロック図である。
【図４】図１のマルチプロセッサシステムの制御装置におけるＣＰＵカードの命令送出回路を示すブロック図である。
【図５】図１のマルチプロセッサシステムの制御装置におけるＣＰＵカードの調停回路を示すブロック図である。
【図６】図５の調停回路の動作を説明するためのフローチャートである。
【図７】図５の調停回路の動作を説明するための他のフローチャートである。
【図８】図１のマルチプロセッサシステムの制御装置の動作を説明するためのタイムチャートである。
【図９】従来のマルチプロセッサシステムの制御装置を示すブロック図である。
【図１０】図９の従来のマルチプロセッサシステムの制御装置の動作を説明するためのタイムチャートである。
【符号の説明】
１〜ｎ  ＣＰＵカード
５ｎ  キャッシュコヒーレンシ制御回路
６ｎ  ＣＰＵカード間制御回路
７ｎ  主記憶制御回路
９ｎ  主記憶装置
１０１〜１０ｎ  ＣＰＵカード間接続インタフェース
２ｎ１  命令送出回路
２ｎ２  調停回路
ｎ１１１〜ｎ１１４  プロセッサ
２４２１〜２４２４  並び替え回路
【図１】
0003698912.tif 000002
【図２】
0003698912.tif 000003
【図３】
0003698912.tif 000004
【図４】
0003698912.tif 000005
【図５】
0003698912.tif 000006
【図６】
0003698912.tif 000007
【図７】
0003698912.tif 000008
【図８】
0003698912.tif 000009
【図９】
0003698912.tif 000010
【図１０】
0003698912.tif 000011