(57)【要約】プロセッサモジュールは、複数のプロセッサと、前記複数のプロセッサと共通に接続されると共に外部と接続可能な共通部とを備え、各プロセッサは、制御回路と資源とを有する。各プロセッサ内の制御回路は、１又は複数の他のプロセッサの制御回路を制御して、そのプロセッサ内の資源に加え、前記１又は複数の他のプロセッサ内の資源の少なくとも一部を利用する。
2004046954.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサと、
該複数のプロセッサと共通に接続されると共に外部と接続可能な共通部とを備え、
各プロセッサは、制御回路と資源とを有し、
各プロセッサ内の制御回路は、１又は複数の他のプロセッサの制御回路を制御して、そのプロセッサ内の資源に加え、該１又は複数の他のプロセッサ内の資源の少なくとも一部を利用することを特徴とする、プロセッサモジュール。
【請求項２】
前記資源は、記憶部及び演算部の少なくとも一方であることを特徴とする、請求の範囲第１項記載のプロセッサモジュール。
【請求項３】
資源を他のプロセッサに提供したプロセッサは、提供していない資源を用いて他のプロセッサに従属して動作することを特徴とする、請求の範囲第１項又は第２項記載のプロセッサモジュール。
【請求項４】
各プロセッサ内の制御回路は、前記１又は複数の他のプロセッサの制御回路を、そのプロセッサの負荷又は資源の不足に応じて動的に制御することを特徴とする、請求の範囲第１項〜第３項のいずれか１項記載のプロセッサモジュール。
【請求項５】
複数のプロセッサモジュールがバスを介して接続された情報処理装置であって、
各プロセッサモジュールは、複数のプロセッサと、該複数のプロセッサと共通に接続されると共に前記バスと接続する共通部とを備え、
１つのプロセッサモジュール内において、各プロセッサは制御回路と資源とを有し、各プロセッサ内の制御回路は１又は複数の他のプロセッサの制御回路を制御して、そのプロセッサ内の資源に加えて該１又は複数の他のプロセッサ内の資源の少なくとも一部を利用することを特徴とする、情報処理装置。
【請求項６】
前記資源は、記憶部及び演算部の少なくとも一方であることを特徴とする、請求の範囲第５項記載の情報処理装置。
【請求項７】
前記１つのプロセッサモジュールにおいて、資源を他のプロセッサに提供したプロセッサは、提供していない資源を用いて他のプロセッサに従属して動作することを特徴とする、請求の範囲第５項又は第６項記載の情報処理装置。
【請求項８】
前記１つのプロセッサモジュールにおいて、各プロセッサ内の制御回路は、前記１又は複数の他のプロセッサの制御回路を、そのプロセッサの負荷又は資源の不足に応じて動的に制御することを特徴とする、請求の範囲第５項〜第７項のいずれか１項記載の情報処理装置。
【発明の詳細な説明】
【技術分野】  本発明は、プロセッサモジュール及び情報処理装置に係り、特にＣＰＵ等のプロセッサを複数有する構成のプロセッサモジュール及び情報処理装置に関する。
一般に、複数のＣＰＵを有する情報処理装置は、マルチプロセッサシステム（以下、Ｍｕｌｔｉ  Ｐｒｏｃｅｓｓｏｒ（ＭＰ）Ｓｙｓｔｅｍとも言う）と呼ばれる。情報処理装置に要求される拡張性、信頼性、機能の多様性等に伴い、マルチプロセッサシステムでは、ＳＭＰ（Ｓｙｍｍｅｔｒｉｃ  Ｍｕｌｔｉ  Ｐｒｏｃｅｓｓｏｒ）構造に代わるＣＭＰ（Ｃｈｉｐ  Ｍｕｌｔｉ  Ｐｒｏｃｅｓｓｏｒ）構造が採用され始めている。
マルチプロセッサの高機能化の要求は、今後とも増大していくことが予想される。そこで、本発明は、ＣＭＰ構造を持つマルチプロセッサシステムにおける応用性の更なる向上に関する。
【背景技術】  図１は、ＳＭＰ構造を採用するマルチプロセッサシステムの基本的概念図であり、図２は、ＣＭＰ構造を採用するマルチプロセッサシステムの基本的概念図である。図２中、図１と実質的に同じ部分には同一符号を付し、その説明は省略する。
図１に示すように、一般的に採用されているＳＭＰ構造では、複数のＣＰＵ１−１〜１−Ｎが、各々直接、メインメモリ３や入出力装置（Ｉ／Ｏ）４等と繋がるバス２に接続されており、個々のＣＰＵ１−１〜１−Ｎの能力を均等に使用するようになっている。このため、ＳＭＰ構造では、ＣＰＵ１−１〜１−Ｎの数Ｎが大きくなる程バス２での競合が増加し、マルチプロセッサシステムの性能向上に限界が生じてしまう。この結果、ＳＭＰ構造では、ＣＰＵ１−１〜１−Ｎの数Ｎの増大が、マルチプロセッサシステムの拡張性やスケーラビリティを劣化させる要因となる。
他方、ＣＭＰ構造では、図２に示すように、同じ構成を有する複数のプロセッサモジュール１１−１〜１１−Ｍが、メインメモリ３やＩ／Ｏ４等と繋がるバス２に接続されている。各プロセッサモジュール１１−１〜１１−Ｍの半導体基板（図示せず）上には、複数のＣＰＵ１２−１〜１２−Ｎと共通部１３とが実装されている。１つのプロセッサモジュール１１内では、このプロセッサモジュール１１内の全てのＣＰＵ１２−１〜１２−Ｎが共通部１３を共有する。従って、共通部１３はコヒーレンシを保証し、各々直接、メインメモリ３やＩ／Ｏ４等と繋がるバス２に接続されている。同じ基板上に実装されたＣＰＵ１２−１〜１２−Ｎ間の通信、即ち、１つのプロセッサモジュール１１内のＣＰＵ１２−１〜１２−Ｎ間の通信は、共通部１３のみを介して行われるため、バス２での競合を減らすことができる。この結果、ＣＭＰ構造では、ＳＭＰ構造においてＣＰＵの数が増大した場合に発生する問題を軽減することができる。
しかし、ＣＭＰ構造の場合、同レベルのテクノロジを用いた１つのＣＰＵを実装するＳＭＰ構造の場合と比較すると、個々のＣＰＵの性能は下がる。このため、高速演算処理を必要とする科学技術計算等、多数のＣＰＵよりも１つの高性能なＣＰＵにより処理を行った方が処理速度が向上するような場合には、ＣＭＰ構造を採用するマルチプロセッサシステムの方がＳＭＰ構造を採用するマルチプロセッサシステムより結果的に性能が劣り、ＣＭＰ構造を採用するマルチプロセッサシステムの応用性を狭める要因となる。
情報処理装置の使用例としては、例えばデータベースのような単一のＣＰＵの高速化よりも、マルチプロセッサシステムの並列処理特性を重視し、それにより処理が高速、且つ、円滑に進むような用途がある。他方、例えば科学技術計算等において、多数のＣＰＵの並列処理よりも、個々のＣＰＵの高機能化によって高速処理を実現できるような用途がある。これらは、トレードオフの関係に有り、両者の要求を同時に満たすことは難しい。
尚、先行技術文献としては、以下のものがある。
特開昭６３−２９９４３１号公報
特開平７−１５２６５１号公報
特開平１０−２５４７７５号公報
【発明の開示】
本発明は、上記の問題を解決した、新規、且つ、プロセッサモジュール及び情報処理装置を提供することを概括的目的とする。
本発明のより具体的な目的は、ＣＭＰ構造を採用する情報処理装置において、１つのプロセッサモジュール内で、１つのプロセッサが他のプロセッサの計算資源を用いて単一のプロセッサの場合より高速な処理を行う多並列重視の要求と、単一プロセッサによる高速処理の要求とを、同時に満たすことにある。
本発明の他の目的は、複数のプロセッサと、該複数のプロセッサと共通に接続されると共に外部と接続可能な共通部とを備え、各プロセッサは、制御回路と資源とを有し、各プロセッサ内の制御回路は、１又は複数の他のプロセッサの制御回路を制御して、そのプロセッサ内の資源に加え、該１又は複数の他のプロセッサ内の資源の少なくとも一部を利用することを特徴とするプロセッサモジュールを提供することにある。本発明になるプロセッサモジュールによれば、ＣＭＰ構造を採用する情報処理装置において、１つのプロセッサモジュール内で、１つのプロセッサが他のプロセッサの計算資源を用いて単一のプロセッサの場合より高速な処理を行う多並列重視の要求と、単一プロセッサによる高速処理の要求とを、同時に満たすことができる。
本発明の更に他の目的は、複数のプロセッサモジュールがバスを介して接続された情報処理装置であって、各プロセッサモジュールは、複数のプロセッサと、該複数のプロセッサと共通に接続されると共に前記バスと接続する共通部とを備え、１つのプロセッサモジュール内において、各プロセッサは制御回路と資源とを有し、各プロセッサ内の制御回路は１又は複数の他のプロセッサの制御回路を制御して、そのプロセッサ内の資源に加えて該１又は複数の他のプロセッサ内の資源の少なくとも一部を利用することを特徴とする情報処理装置を提供することにある。提供することにある。本発明になる情報処理装置によれば、ＣＭＰ構造を採用する情報処理装置において、１つのプロセッサモジュール内で、１つのプロセッサが他のプロセッサの計算資源を用いて単一のプロセッサの場合より高速な処理を行う多並列重視の要求と、単一プロセッサによる高速処理の要求とを、同時に満たすことができる。
本発明の更に他の目的及び特長は、以下図面と共に述べる説明より明らかとなろう。
【図面の簡単な説明】  図１は、ＳＭＰ構造を採用するマルチプロセッサシステムの基本的概念図である。
図２は、ＣＭＰ構造を採用するマルチプロセッサシステムの基本的概念図である。
図３は、本発明の動作原理を、情報処理装置のＣＰＵの資源がキャッシュメモリ等の記憶部である場合について説明する図である。
図４は、本発明の動作原理を、情報処理装置のＣＰＵの資源が演算器等の演算部である場合について説明する図である。
図５は、本発明になる情報処理装置の第１実施例の要部を示すブロック図である。
図６は、本発明になる情報処理装置の第２実施例の要部を示すブロック図である。
図７は、第１及び第２実施例におけるキャッシュ切り替え動作を説明するフローチャートである。
図８は、第１及び第２実施例におけるキャッシュ切り替え動作を説明するフローチャートである。
図９は、本発明になる情報処理装置の第３実施例の要部を示すブロック図である。
図１０は、本発明になる情報処理装置の第４実施例の要部を示すブロック図である。
図１１は、第３及び第４実施例における演算器切り替え動作を説明するフローチャートである。
図１２は、第３及び第４実施例における演算器切り替え動作を説明するフローチャートである。
【発明を実施するための最良の形態】  先ず、本発明になる情報処理装置の動作原理を、図３及び図４と共に説明する。本発明になる情報処理装置は、ＣＭＰ構造を採用し、１つのプロセッサモジュール内の各ＣＰＵが個別に有する資源（リソース）を切り離して他のＣＰＵの資源の一部として利用可能な構成を備える。図３は、情報処理装置のＣＰＵの資源がキャッシュメモリ等の記憶部である場合を示し、図４は、情報処理装置のＣＰＵの資源が演算器等の演算部である場合を示す。尚、資源は記憶部及び演算部に限定されるものではなく、ＣＰＵ間で共有可能な資源であれば良いことは、言うまでもない。図３及び図４中、図２と実質的に同じ部分には同一符号を付し、その説明は省略する。本発明では、各プロセッサモジュールの基本構成は図２に示すものと同様であるが、各ＣＰＵの構成が図２に示すものとは異なる。
図３（ａ）は、各ＣＰＵが自分の資源を自分で利用している状態を示し、図３（ｂ）は、一方のＣＰＵが他方のＣＰＵの資源の少なくとも一部を利用している状態を示す。プロセッサモジュール１１は、説明の便宜上、２つのＣＰＵ１２−１，１２−２と、共通部１３とからなるものとするが、ＣＰＵの数は２つに限定されるものではない。ＣＰＵ１２−１，１２−２は、夫々制御回路２１と、キャッシュメモリ２２とからなる。
制御回路２１は、その制御回路２１が属するＣＰＵ１２の資源であるキャッシュメモリ２２を制御するために設けられており、このＣＰＵ１２が他のＣＰＵ１２へキャッシュメモリ２２を提供したときに動作する。図３（ａ）の状態では、２つのＣＰＵ１２−１，１２−２が夫々のキャッシュメモリ２２を利用し、２つのＣＰＵ１２−１，１２−２として夫々が共通部１３とのデータのやり取りを行う。
他方、図３（ｂ）の状態では、ＣＰＵ１２−２が内部に持つキャッシュメモリ２２をＣＰＵ１２−１に提供し、ＣＰＵ１２−１がＣＰＵ１２−２のキャッシュメモリ２２を利用可能とする。ＣＰＵ１２−１内の制御回路２２は、ＣＰＵ１２−２のキャッシュメモリ２２を制御するＣＰＵ１２−２内の制御回路２２を動作させ、ＣＰＵ１２−２のキャッシュメモリ２２をＣＰＵ１２−１内部のキャッシュメモリ２２と合わせて単一のキャッシュメモリとして利用する。これと同時に、ＣＰＵ１２−２の制御回路２１は、ＣＰＵ１２−１と外部とのデータのやり取りを管理し、ＣＰＵ１２−１は外部とのデータのやり取りを停止する。これにより、ＣＰＵ１２−１，１２−２によるデータ処理の分担がなされ、ＣＰＵ１２−１，１２−２の高速化が可能となる。
図４（ａ）は、各ＣＰＵが自分の資源を自分で利用している状態を示し、図４（ｂ）は、一方のＣＰＵが他方のＣＰＵの資源の少なくとも一部を利用している状態を示す。プロセッサモジュール１１は、説明の便宜上、２つのＣＰＵ１２−１，１２−２と、共通部１３（図示省略）とからなるものとするが、ＣＰＵの数は２つに限定されるものではない。ＣＰＵ１２−１，１２−２は、夫々制御回路２１（図示省略）と、演算部２３とからなる。
制御回路２１は、その制御回路２１が属するＣＰＵ１２の資源である演算器２３を制御するために設けられており、このＣＰＵ１２が他のＣＰＵ１２へ演算器２３を提供したときに動作する。図４（ａ）の状態では、２つのＣＰＵ１２−１，１２−２が夫々の演算器２３を利用し、２つのＣＰＵ１２−１，１２−２として夫々が共通部１３とのデータのやり取りを行う。
つまり、各ＣＰＵ１２−１，１２−２は、各々が有する演算器２３へ命令を発行する機構に加え、他の命令を発行する機構を備えている。他の命令を発行する機構には、他ＣＰＵの演算器２３へ命令を発行する機能が含まれるが、各ＣＰＵ１２−１，１２−２が個々に動作している時にはその機能が停止している。図４（ａ）は、この状態での情報処理装置を示す。
従って、ＣＰＵ１２−１に大きな負荷がかかったとき、或いは、資源（キャッシュ）が不足しているとき、他のＣＰＵ１２−２に資源であるキャッシュメモリ２２の提供を要求する。要求に応答するＣＰＵ１２−２は、キャッシュメモリ２２のパージ（メインメモリ３へのデータの掃き出し）を行い、その制御をＣＰＵ１２−１に渡す。ＣＰＵ１２−１への負荷が減少し、ＣＰＵ１２−２からキャッシュメモリ２２を提供してもらう必要が無くなると、ＣＰＵ１２−１はＣＰＵ１２−２のキャッシュメモリ２２をパージし、その制御をＣＰＵ１２−２に戻す。
他方、図４（ｂ）の状態では、ＣＰＵ１２−１が内部に持つ演算器２３をＣＰＵ１２−２に提供し、ＣＰＵ１２−２がＣＰＵ１２−２の演算器２３を利用可能とする。ＣＰＵ１２−２内の制御回路２２は、ＣＰＵ１２−１の演算器２３を制御するＣＰＵ１２−１内の制御回路２２を動作させ、ＣＰＵ１２−１の演算器２３をＣＰＵ１２−２内部の演算器２３と合わせて単一の演算器として利用する。これと同時に、ＣＰＵ１２−１の制御回路２１は、ＣＰＵ１２−２と外部とのデータのやり取りを管理し、ＣＰＵ１２−１は外部とのデータのやり取りを停止する。これにより、ＣＰＵ１２−１，１２−２によるデータ処理の分担がなされ、ＣＰＵ１２−１の高速化が可能となる。
つまり、情報処理装置が図４（ｂ）に示す状態にあると、ＣＰＵ１２−１はＣＰＵとしての機能を停止し、内部の演算器２３をＣＰＵ１２−２に提供している。このとき、ＣＰＵ１２−２は、ＣＰＵ１２−１の演算器２３への命令発行の機能を用いて、通常の倍の演算器を持つＣＰＵ相当として動作する。
従って、ＣＰＵ１２−２に大きな負荷がかかったとき、或いは、資源（演算器）が不足しているとき、他のＣＰＵ１２−１に資源である演算器２３の提供を要求する。要求に応答するＣＰＵ１２−１は、キャッシュメモリ２２のパージ（メインメモリ２へのデータの掃き出し）を行い、その制御をＣＰＵ１２−２に渡す。ＣＰＵ１２−２負荷が減少し、ＣＰＵ１２−１から演算器２３を提供してもらう必要が無くなると、ＣＰＵ１２−２はＣＰＵ１２−１のキャッシュメモリ２２をパージし、その制御をＣＰＵ１２−１に戻す。
上記の如き、１つのＣＰＵが自分の資源のみを利用するか、或いは、自分の資源と他のＣＰＵの資源の少なくとも一部を利用するかは、情報処理装置が稼働中に、個別のプロセッサモジュールＰ毎に動的に切り替えることが可能である。これにより、複数のＣＰＵが、夫々の計算資源を統合し、あたかも単独の高速なＣＰＵであるかのように動作することが可能となる。
次に、本発明になるプロセッサモジュール及び本発明になる情報処理装置の各実施例を、図５以降と共に説明する。
図５は、本発明になる情報処理装置の第１実施例の要部を示すブロック図である。情報処理装置の第１実施例では、本発明になるプロセッサモジュールの第１実施例を用いる。図５中、図３と同一部分には同一符号を付し、その説明は省略する。
本実施例では、１つのプロセッサモジュール１の基板上に、２つのＣＰＵ１２−１，１２−２が設けられている。各ＣＰＵ１２−１，１２−２は、制御回路２１、キャッシュメモリ２２、パージ回路２５、マルチプレクサ２６、命令発行部１１０等を有する。図５では、説明の便宜上、ＣＰＵ１２−１がＣＰＵ１２−２のキャッシュ（Ｌ１＄）２２を利用する場合に必要な回路部分のみを示しているが、実際にはＣＰＵ１２−２がＣＰＵ１２−１のキャッシュ２２を利用する場合に必要な回路部分が鏡対称に存在する。
図６は、本発明になる情報処理装置の第２実施例の要部を示すブロック図である。情報処理装置の第２実施例では、本発明になるプロセッサモジュールの第２実施例を用いる。図６中、図３及び図５と同一部分には同一符号を付し、その説明は省略する。
本実施例では、１つのプロセッサモジュール１の基板上に、３つのＣＰＵ１２−１，１２−２，１２−３が設けられている。各ＣＰＵ１２−１，１２−２，１２−３は、制御回路２１、キャッシュメモリ２２、パージ回路２５、マルチプレクサ２６、命令発行部１１０等を有する。図５では、説明の便宜上、ＣＰＵ１２−１がＣＰＵ１２−２，１２−３のキャッシュ（Ｌ１＄）２２を利用する場合に必要な回路部分のみを示しているが、実際にはＣＰＵ１２−２がＣＰＵ１２−１，１２−３のキャッシュ２２を利用する場合に必要な回路部分及びＣＰＵ１２−３がＣＰＵ１２−１，１２−２のキャッシュ２２を利用する場合に必要な回路部分が鏡対称に存在する。
図７は、第１及び第２実施例におけるキャッシュ切り替え動作を説明するフローチャートである。図７の説明中、「他のＣＰＵ」とは、第１実施例の場合はＣＰＵ１２−１を指し、第２実施例の場合はＣＰＵ１２−２，１２−３を指す。
ＣＰＵ１２−１の負荷が増大したり、資源（キャッシュ）が不足したりして、ＣＰＵ１２−１の命令発行部１１０がＣＰＵ間の資源（キャッシュ）提供命令を受け取ると、資源（キャッシュ）提供要求が発生した旨をＣＰＵ１２−１の制御回路２１へ通知し、図７の処理が開始される。ステップＳ１では、資源（キャッシュ）提供要求が発生したか否かを判定し、判定結果がＹＥＳであると、ＣＰＵ１２−１の制御回路２１から他のＣＰＵの制御回路２１へ、資源提供のリクエストＲＥＱ１を出す。ステップＳ２では、他のＣＰＵの制御回路２１から、他のＣＰＵのパージ回路２５へ、情報保存のため、他のＣＰＵのキャッシュメモリ２２の内容をメインメモリ２へパージするリクエストＲＥＱ２を出す。これにより、他のＣＰＵのパージ回路２５は、他のＣＰＵのキャッシュメモリ２２の内容をパージする。
ステップＳ３では、他のＣＰＵのパージ回路２５によるパージが完了したか否かを判定する。ステップＳ３の判定結果がＹＥＳであると、他のＣＰＵのパージ回路２５から他のＣＰＵの制御回路２１へ、パージが完了したことを示す完了通知ＡＣＫ１を返す。ステップＳ４では、他のＣＰＵの制御回路２１が、完了通知ＡＣＫ１に応答して、他のＣＰＵのマルチプレクサ２６をイネーブルする信号ＭｕｘＥｎａｂｌｅをマルチプレクサ２６に供給する。又、ステップＳ５では、他のＣＰＵの制御回路２１が、完了通知ＡＣＫ１に応答して、ＣＰＵ１２−１の制御回路２１へ完了通知ＡＣＫ２を返すことで、ＣＰＵ１２−１による他のＣＰＵのキャッシュメモリ２２へのアクセスを可能にし、処理は終了する。
資源をＣＰＵ１２−１に提供したＣＰＵ１２−２（１２−３）は、提供していない資源を用いてＣＰＵ１２−１に従属して動作可能である。
ＣＰＵ１２−１の負荷が減ったり、ＣＰＵ１２−１が資源（キャッシュ）を借りる必要が無くなると、他のＣＰＵのキャッシュメモリ２２の制御を、以下に示す如き手順で他のＣＰＵへ返す。
図８は、第１及び第２実施例におけるキャッシュ切り替え動作を説明するフローチャートである。図８の説明中、「他のＣＰＵ」とは、第１実施例の場合はＣＰＵ１２−１を指し、第２実施例の場合はＣＰＵ１２−２，１２−３を指す。
ＣＰＵ１２−１の負荷が減ったり、資源（キャッシュ）の不足が解消されたりして、ＣＰＵ１２−１の命令発行部１１０がＣＰＵ間の資源（キャッシュ）提供キャンセル命令を受け取ると、資源（キャッシュ）提供要求がキャンセルされた旨をＣＰＵ１２−１の制御回路２１へ通知し、図８の処理が開始される。ステップＳ１１では、資源（キャッシュ）提供キャンセル要求が発生したか否かを判定し、判定結果がＹＥＳであると、ＣＰＵ１２−１の制御回路２１から他のＣＰＵの制御回路２１へ、他のＣＰＵのキャッシュメモリ２２の制御を返すリクエストＲＥＱ１を出す。ステップＳ１２では、他のＣＰＵの制御回路２１から、他のＣＰＵのパージ回路２５へ、情報保存のため、他のＣＰＵのキャッシュメモリ２２の内容をメインメモリ２へパージするリクエストＲＥＱ２を出す。これにより、他のＣＰＵのパージ回路２５は、他のＣＰＵのキャッシュメモリ２２の内容をパージする。
ステップＳ１３では、他のＣＰＵのパージ回路２５によるパージが完了したか否かを判定する。ステップＳ１３の判定結果がＹＥＳであると、他のＣＰＵのパージ回路２５から他のＣＰＵの制御回路２１へ、パージが完了したことを示す完了通知ＡＣＫ１を返す。ステップＳ１４では、他のＣＰＵの制御回路２１が、完了通知ＡＣＫ１に応答して、他のＣＰＵのマルチプレクサ２６をディセーブルする信号Ｍｕｘｄｉｓａｂｌｅをマルチプレクサ２６に供給する。又、ステップＳ５では、他のＣＰＵの制御回路２１が、完了通知ＡＣＫ１に応答して、ＣＰＵ１２−１の制御回路２１へ完了通知ＡＣＫ２を返すことで、ＣＰＵ１２−１による他のＣＰＵのキャッシュメモリ２２へのアクセスを不可能にし、処理は終了する。
図９は、本発明になる情報処理装置の第３実施例の要部を示すブロック図である。情報処理装置の第３実施例では、本発明になるプロセッサモジュールの第３実施例を用いる。図９中、図４と同一部分には同一符号を付し、その説明は省略する。
本実施例では、１つのプロセッサモジュール１の基板上に、２つのＣＰＵ１２−１，１２−２が設けられている。各ＣＰＵ１２−１，１２−２は、制御回路２１、演算器２３、マルチプレクサ２７，２８等を有する。図９では、説明の便宜上、ＣＰＵ１２−１がＣＰＵ１２−２の演算器２３を利用する場合に必要な回路部分のみを示しているが、実際にはＣＰＵ１２−２がＣＰＵ１２−１の演算器２３を利用する場合に必要な回路部分が鏡対称に存在する。
図１０は、本発明になる情報処理装置の第４実施例の要部を示すブロック図である。情報処理装置の第４実施例では、本発明になるプロセッサモジュールの第４実施例を用いる。図１０中、図４及び図９と同一部分には同一符号を付し、その説明は省略する。
本実施例では、１つのプロセッサモジュール１の基板上に、３つのＣＰＵ１２−１，１２−２，１２−３が設けられている。各ＣＰＵ１２−１，１２−２，１２−３は、制御回路２１、演算器２３、マルチプレクサ２７，２８等を有する。図１０では、説明の便宜上、ＣＰＵ１２−１がＣＰＵ１２−２，１２−３の演算器２３を利用する場合に必要な回路部分のみを示しているが、実際にはＣＰＵ１２−２がＣＰＵ１２−１，１２−３の演算器２３を利用する場合に必要な回路部分及びＣＰＵ１２−３がＣＰＵ１２−１，１２−２の演算器２３を利用する場合に必要な回路部分が鏡対称に存在する。
図１１は、第３及び第４実施例における演算器切り替え動作を説明するフローチャートである。図１１の説明中、「他のＣＰＵ」とは、第３実施例の場合はＣＰＵ１２−１を指し、第４実施例の場合はＣＰＵ１２−２，１２−３を指す。
ＣＰＵ１２−１の負荷が増大したり、資源（演算器）が不足したりして、ＣＰＵ１２−１の命令発行部１１０がＣＰＵ間の資源（演算器）提供命令を受け取ると、資源（演算器）提供要求が発生した旨をＣＰＵ１２−１の制御回路２１へ通知し、図１１の処理が開始される。ステップＳ２１では、資源（演算器）提供要求が発生したか否かを判定し、判定結果がＹＥＳであると、ＣＰＵ１２−１の制御回路２１から他のＣＰＵの制御回路２１へ、資源提供のリクエストＲＥＱ１を出す。ステップＳ２２では、他のＣＰＵの制御回路２１から、他のＣＰＵの演算器２３へ、演算処理の終了を要求するリクエストＲＥＱ２を出す。
ステップＳ２３では、他のＣＰＵの演算器２３による演算処理が終了したか否かを判定する。他のＣＰＵの演算器２３から演算処理の終了を示す完了通知ＡＣＫ１が返され、ステップＳ２３の判定結果がＹＥＳであると、ステップＳ２４では、他のＣＰＵの制御回路２１が、完了通知ＡＣＫ１に応答して、他のＣＰＵのマルチプレクサ２６，２７をイネーブルする信号ＭｕｘＥｎａｂｌｅをマルチプレクサ２６，２７に供給する。又、ステップＳ２５では、他のＣＰＵの制御回路２１が、完了通知ＡＣＫ１に応答して、ＣＰＵ１２−１の制御回路２１へ完了通知ＡＣＫ２を返すことで、ＣＰＵ１２−１による他のＣＰＵの演算器２３の利用を可能にし、処理は終了する。これにより、ＣＰＵ１２−１は、他のＣＰＵの演算器２３に対して命令を発行して、演算処理に他のＣＰＵの演算器２３を利用可能となる。
資源をＣＰＵ１２−１に提供したＣＰＵ１２−２（１２−３）は、提供していない資源を用いてＣＰＵ１２−１に従属して動作可能である。
ＣＰＵ１２−１の負荷が減ったり、ＣＰＵ１２−１が資源（演算器）を借りる必要が無くなると、他のＣＰＵのキャッシュメモリ２２の制御を、以下に示す如き手順で他のＣＰＵへ返す。
図１２は、第３及び第４実施例におけるキャッシュ切り替え動作を説明するフローチャートである。図１２の説明中、「他のＣＰＵ」とは、第３実施例の場合はＣＰＵ１２−１を指し、第４実施例の場合はＣＰＵ１２−２，１２−３を指す。
ＣＰＵ１２−１の負荷が減ったり、資源（演算器）の不足が解消されたりして、ＣＰＵ１２−１の命令発行部１１０がＣＰＵ間の資源（演算器）提供キャンセル命令を受け取ると、資源（演算器）提供要求がキャンセルされた旨をＣＰＵ１２−１の制御回路２１へ通知し、図１２の処理が開始される。ステップＳ３１では、資源（演算器）提供キャンセル要求が発生したか否かを判定し、判定結果がＹＥＳであると、ＣＰＵ１２−１の制御回路２１から他のＣＰＵの制御回路２１へ、他のＣＰＵの演算器２３の制御を返すリクエストＲＥＱ１を出す。ステップＳ２２では、他のＣＰＵの制御回路２１から、他のＣＰＵの演算器２３へ、演算処理の終了を要求するリクエストＲＥＱ２を出す。
ステップＳ３３では、他のＣＰＵの演算器２３による演算処理が終了したか否かを判定する。他のＣＰＵの演算器２３から演算処理の終了を示す完了通知ＡＣＫ１が返され、ステップＳ３３の判定結果がＹＥＳであると、ステップＳ３４では、他のＣＰＵの制御回路２１が、完了通知ＡＣＫ１に応答して、他のＣＰＵのマルチプレクサ２６，２７をディセーブルする信号ＭｕｘＤｉｓａｂｌｅをマルチプレクサ２６，２７に供給する。又、ステップＳ３５では、他のＣＰＵの制御回路２１が、完了通知ＡＣＫ１に応答して、ＣＰＵ１２−１の制御回路２１へ完了通知ＡＣＫ２を返すことで、ＣＰＵ１２−１による他のＣＰＵの演算器２３の利用を不可能にし、処理は終了する。これにより、他のＣＰＵは、他のＣＰＵの演算器２３に対して命令を発行して、演算処理に利用可能となる。
このように、本発明によれば、ＣＭＰ構造を採用するマルチプロセッサシステムが、並列性と同時に単一高速性を実現することができる。これにより、マルチプロセッサシステムを各種用途に合わせて個別に設計する必要が無くなり、１つのマルチプロセッサシステムで両方の要求に応えることができるので、コストも低減可能となる。
又、１つのＣＰＵは、１又は複数のＣＰＵの資源を利用可能であれば良く、１つのＣＰＵが３以上のＣＰＵの資源を利用する構成であっても良い。
更に、上記第１及び第３実施例を適宜組み合わせたり、上記第２及び第４実施例を低ｋ義組み合わせることも可能である。１つのＣＰＵは、１又は複数のＣＰＵの資源の少なくとも一部を利用可能であれば良い。
尚、本発明は、上記実施例に限定されるものではなく、本発明の範囲内で種々の改良及び変更が可能であることは、言うまでもない。
【図１】
2004046954.tif 000003
【図２】
2004046954.tif 000004
【図３】
2004046954.tif 000005
【図４】
2004046954.tif 000006
【図５】
2004046954.tif 000007
【図６】
2004046954.tif 000008
【図７】
2004046954.tif 000009
【図８】
2004046954.tif 000010
【図９】
2004046954.tif 000011
【図１０】
2004046954.tif 000012
【図１１】
2004046954.tif 000013
【図１２】
2004046954.tif 000014
【国際調査報告】
2004046954.tif 000015
2004046954.tif 000016