(57)【特許請求の範囲】
【請求項１】
第１のユニットと複数の第２のユニットとがバスを介して接続されたプロセッサ装置において、
前記第１のユニットは、第１のプロセッサと第１のキャッシュから構成され、
前記第２のユニットは、第２のプロセッサと第１の記憶領域と第２の記憶領域から構成され、
前記第２のプロセッサは、キャッシュロジック機能とプロセッサ機能とを有し、該キャッシュロジック機能においては、前記第１のプロセッサの制御の下、前記第２のプロセッサが前記第１の記憶領域をキャッシュとして動作させ、前記プロセッサ機能においては、前記第１のプロセッサの制御の下、前記第２のプロセッサが前記第２の記憶領域内のプログラムを実行することを特徴とする、プロセッサ装置。
【請求項２】
第１のユニットと複数の第２のユニットとがバスを介して接続され、該第１のユニットは、第１のプロセッサと第１のキャッシュから構成され、該第２のユニットは、第２のプロセッサと第１の記憶領域と第２の記憶領域から構成され、該第２のプロセッサは、複数の機能を有するプロセッサ装置を使用する方法において、
前記第１のプロセッサの制御の下、前記第２のプロセッサが前記第２の記憶領域内のプログラムを実行することによってプロセッサ機能を奏して分散処理を実行し、
更に、第１のプロセッサの制御の下、前記第２のプロセッサが前記第１の記憶領域をキャッシュとして動作させることによってキャッシュロジック機能を奏する、プロセッサ装置を使用する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、階層的に構成された並列コンピュータシステムにあって、今までのプログラミングスタイルのままで高速にて並列処理を行う高速プロセッサシステム、これを使用する方法及び記録媒体に関する。
【背景技術】
【０００２】
現在、大量のデータを高速に処理する方式としては、例えば、ＣＰＵと、キャッシュメモリを有する低速大容量のＤＲＡＭとを備えた高速プロセッサシステムが知られている。この高速プロセッサシステムにおいては、図１に示すように、１次キャッシュを内蔵したＣＰＵ１に対して、共通バスラインを介して接続された複数個の並列配置のＤＲＡＭ２が設けられ、そしてＤＲＡＭ２の処理速度をＣＰＵ１に近づけるために、各ＤＲＡＭ２には２次キャッシュ３が備えられている。
【０００３】
このような図１の回路構成において、ＣＰＵ１からの命令によってＤＲＡＭ２の内容が読み出されて処理されまた書き込まれる。このとき、ＤＲＡＭ２の所望の内容がキャッシュ３に存在すればヒットとなって、ＣＰＵ１０は２次キャッシュ３に対してアクセスができて高速データ処理が可能となる。しかし、所望の内容がキャッシュ３に存在しないミスヒットの場合には、キャッシュ３は改めてＤＲＡＭ２からその内容を読み出すことになる。
【０００４】
そして、上述の例に示されプロセッサ、ＤＲＡＭ、キャッシュを組み合わせた高速プロセッサシステムの構成自体は、通常のプログラミングスタイルで制御できるという特徴を有して現在の主流となっている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、このキャッシュを階層的に組み合わせた高速プロセッサシステムでは、ＣＰＵは１つであり並列処理をすることができない。また、１つのＣＰＵを用いた通常のプログラミングは、元々、並列処理を前提に作られていないので、そのままで並列プロセッッシングシステムを実行しようとするのは難しく、実用上ネックとなっている。
【課題を解決するための手段】
【０００６】
本発明は、上述の問題に鑑み、新規な高速プロセッサ装置及び該高速プロセッサ装置を使用する方法を提供することを目的とする。
【０００７】
本発明は、上述の問題に鑑み、今までのプログラミングスタイルを維持したままで、並列プロセッサを得る新規な高速プロセッサ装置及び該高速プロセッサ装置を使用する方法を提供することを目的とする。
【０００８】
本発明に係るプロセッサ装置は、第１のユニットと複数の第２のユニットとがバスを介して接続されたプロセッサ装置において、前記第１のユニットは、第１のプロセッサと第１のキャッシュから構成され、前記第２のユニットは、第２のプロセッサと第１の記憶領域と第２の記憶領域から構成され、前記第２のプロセッサは、キャッシュロジック機能とプロセッサ機能とを有し、該キャッシュロジック機能においては、前記第１のプロセッサの制御の下、前記第２のプロセッサが前記第１の記憶領域をキャッシュとして動作させ、前記プロセッサ機能においては、前記第１のプロセッサの制御の下、前記第２のプロセッサが前記第２の記憶領域内のプログラムを実行する、ことを特徴とする。
【０００９】
また、本発明に係るプロセッサ装置を使用する方法は、第１のユニットと複数の第２のユニットとがバスを介して接続され、該第１のユニットは、第１のプロセッサと第１のキャッシュから構成され、該第２のユニットは、第２のプロセッサと第１の記憶領域と第２の記憶領域から構成され、該第２のプロセッサは、複数の機能を有するプロセッサ装置を使用する方法であって、前記第１のプロセッサの制御の下、前記第２のプロセッサが前記第２の記憶領域内のプログラムを実行することによってプロセッサ機能を奏して分散処理を実行し、更に、第１のプロセッサの制御の下、前記第２のプロセッサが前記第１の記憶領域をキャッシュとして動作させることによってキャッシュロジック機能を奏する、ことを特徴とする。
【発明の効果】
【００１８】
本発明によれば、新規な高速プロセッサ装置及び該高速プロセッサ装置を使用する方法を提供することができる。
【００１９】
本発明によれば、今までのプログラミングスタイルを維持したままで、並列プロセッサを得る新規な高速プロセッサ装置及び該高速プロセッサ装置を使用する方法を提供することを目的とする。
【発明を実施するための最良の形態】
【００２０】
ここで、図２〜図９を参照して本発明による実施の形態の一例を説明する。図２に示す高速プロセッサシステムの構成は、１次キャッシュであるＩキャッシュ（インストラクション・キャッシュ）１０ａ、Ｄキャッシュ（データ・キャッシュ）１０ｂ及びスクラッチパッド・メモリ１０ｃ（以上を「１次キャッシュ」とも称する。）を有するＣＰＵ１０と、その接続されたユニファイド・キャッシュ・メモリ（「２次キャッシュ」とも称する。）１１と、更に最下層にバスラインを介して相互に並列接続された複数個のユニファイド・キャッシュ・メモリ（「３次キャッシュ」とも称する。）１２と、ＤＲＡＭ１３-1〜１３-3とを備えている。また、２次キャッシュ及び３次キャッシュには、キャッシュロジックとして、ＭＰＵ（Micro processing Unit）１４及び１６が、夫々内蔵されている。
【００２１】
このように、各層にキャッシュを備えるのは、高速処理のためである。これらキャッシュメモリは、下層に行く程キャッシュメモリの容量単位であるラインサイズ、即ちバーストread／write長（一括読み出し／書き込み長）が長くなっている。なお、図２に示す構成では、２次キャッシュ１１の存在は必須なものでなく、１次キャッシュを有するＣＰＵ１０と、各々がユニファイド・キャッシュ・メモリ１２を有する複数個のＤＲＡＭ１３とからなる構成も採ることができる。
【００２２】
図２に示す構成では、２次キャッシュ１１及び３次キャッシュ１２のキャッシュロジックとして内蔵されているＭＰＵ１４及び１６と、ＣＰＵ１０とは、相互にバイナリ互換性を有している。これらＭＰＵ１４、１６は二つの機能、即ち、キャッシュロジックとしての機能とプロセッサとしての機能とを有する。キャッシュロジック機能とは、ＣＰＵ１０の制御によりキャッシュメモリを制御するための機能であり、また、プロセッサ機能とは、ＣＰＵ１０に対して分散並列システム用サブＣＰＵとして果たす機能である。
【００２３】
図３は、図２に示す高速プロセッサ構造を、具体的に半導体チップ１５に具現化したものである。このチップ１５には、ＤＲＡＭ１３として主要部を構成するＤＲＡＭアレイ１３ａと、センスアンプ１３ｂと、ロー・アドレス１３ｃと、カラム・アドレス１３ｄと、制御回路１３ｅと、データ入出力回路１３ｆとが形成されている。この図３に示すチップ１５では、キャッシュメモリとしてはＳＲＡＭ１２が備えられ、このＳＲＡＭ１２は、ＤＲＡＭアレイ１３ａのデータの入出力をつかさどるセンスアンプ１３ｂと直結され、かつデータ入出力回路１３ｆとの間でデータのやりとりがされる。
【００２４】
このＳＲＡＭ１２であるキャッシュメモリは、キャッシュ・ロジック機能とプロセッサ機能とを有するＭＰＵ１４によって制御される。キャッシュ・ロジック機能の面に関しては、ＭＰＵ１４の制御のもと、ＳＲＡＭ１２はシンプルなユニファイド・キャッシュとして働き、このＳＲＡＭ１２を介してＤＲＡＭアレイ１３ａに対してRead／Writeを行う。
【００２５】
また、プロセッサ機能の面に関しては、図２の例では、ＣＰＵ１０から見てＳＲＡＭ１２は３次キャッシュメモリとなり、ＣＰＵ１０からＭＰＵ１４へ送られる制御信号のもと、ＭＰＵ１４は、ＤＲＡＭ１３ａ内のプログラムとデータとからなるオブジェクトを実行したり、所定のプリフェッチ命令によりデータの先読みを行ったりする。
【００２６】
ここで、ＭＰＵ１４は、ＣＰＵ１０からのプリフェッチ命令により駆動される。一般に、ＣＰＵとメモリとの間に配置された高速メモリとしてのキャッシュによって、プロセッサシステムのスピードが左右されるので、最近では、キャッシュを積極的に利用する傾向があり、具体的には、ＣＰＵは、プリフェッチ命令を用いてデータの先読みを行っている。本発明では、このキャッシュ制御のためのプリフェッチ命令をＭＰＵ１４に対しても適用して、ＭＰＵ１４によってプロセッシングまで行っている。
【００２７】
ここで、ＭＰＵ１４としては、具体的には、ＡＲＭ（Advanced RISC Machines）やＭＩＰＳ（Microprocessor without interlocked Pipe Stage）のような比較的小さなコアでも構成でき、かつハイパフォーマンスなＣＰＵも構成できるスケーラブルなＲＩＳＣ（Restricted Instruction Set Computer）―ＣＰＵコアを採用してシステム内のキャッシュメモリに内蔵することができる。
【００２８】
図４は、図２に示すＣＰＵ１０と２次キャッシュ１１との具体的構成を示したものである。２次キャッシュ１１は、基本的にはユニファイド・キャッシュ１１ａを内蔵したプロセッサとして把握できる。このプロセッサ機能を果たすＭＰＵ１６は、ＣＰＵ１０に対して２次キャッシュメモリとなり、２次キャッシュとして働くことができる。２次キャッシュ内部のユニファイド・キャッシュ１１ａはＳＲＡＭにより構成され、ＣＰＵ１０に対しては２次キャッシュ、ＭＰＵ１６からは１次キャッシュとしてアクセスされる。なお、図４に示す符号１７は、ＤＲＡＭ１３に接続されるメモリインタフェースを示している。
【００２９】
この２次キャッシュ１１は、前述の通り、１次キャッシュ（Ｉキャッシュ，Ｄキャッシュ，スクラッチパッド）と比較して、相対的に長いバーストRead／Write長を持っている。２次キャッシュ１１は、ＣＰＵ１０からの制御プロトコルにより２次キャッシュとして動作したり、３次キャッシュやメインメモリ内のプログラムとデータからなるオブジェクトの処理（主として、高度な演算処理ではなく、ＤＲＡＭ１３-1〜１３-3相互間のデータ転送回数が多い処理）を実行する。
【００３０】
また、ＣＰＵ１０からの命令により、３次キャッシュ１２に内蔵されたＭＰＵ１４が実行するプリフェッチ命令よりも一層広い、例えば複数のＤＲＡＭ相互間に跨るような範囲の一層高度なプリフェッチ命令を実行する。
【００３１】
図５は、図２に示す回路構成にあって通常のキャッシュモードによるデータの流れ、即ち、ＭＰＵ１４，１６がキャッシュロジック機能のみを果たし、プロセッサ機能を果たしていない場合を示している。ＤＲＡＭ１３のデータがＣＰＵ１０によって処理される場合、ＤＲＡＭ１３のデータの読み込みは、転送粒度（一度に転送されるデータ量）が比較的大きく且つ転送頻度が比較的少ない最下位の３次キャッシュ１２から、その上位の２次キャッシュ１１に転送され、更に最上位の１次キャッシュへと転送されて、ＣＰＵ１０に送られる。反対に、ＤＲＡＭ１３へのデータの書き込みは、その逆の道筋を辿ることになる。
【００３２】
この結果、データのアクセスは何度も行われることになり、現在のＣＰＵ１０のスタック機能（例えば、後入れ先出し記憶方式）によれば、このようなアクセスは一見有効である。しかし、例えば、画像処理とか大量のデータの探索等のような、ＣＰＵ１０より１回しかアクセスしないデータによって、何度もアクセスしなけばならないデータがキャッシュアウトされる事態が発生し、その結果、アクセス回数が増大し非常に無駄が多いことになる。このような無駄の存在は、今まで説明した本発明のキャッシュ・コントロールを行う発想につながるものである。
【００３３】
しかしながら、現時点では、図５のように何回もアクセスするパスがあることを前提として、プロセッサシステムの設計がされている。しかし、このようなメモリアーキテクチャを用い、通常のプログラミングで動作させることに対しても図５の如く適用が可能であることは現実に非常に有用なことである。
【００３４】
図６は、３次キャッシュ１２内のＭＰＵ１４が、プロセッサ機能を発揮する場合を示し、ここでは、ＭＰＵ１４は、ローカルオブジェクトの分散処理を実行している。即ち、ＣＰＵ１０にて処理する必要がないローカルオブジェクトに関しては、ＣＰＵ１０からのプリフェッチ命令の制御プロトコルによって、ＭＰＵ１４がこのようなローカルオブジェクトの処理を実行している。ローカルオブジェクトとしては、単一のＤＲＡＭブロックに記録されたプログラムとデータとがあり、ローカルオブジェクトの処理としては、例えば、単なるインクリメント演算や最大値を求める演算のような処理が挙げられる。このように、ＭＰＵ１４において分散並列処理を実行することができる。なお、ローカルオブジェクト処理が実行されるＤＲＡＭブロックは、分散処理の際には上位キャッシュからブロック単位でキャッシュアウトされる。
【００３５】
図７は、２次キャッシュ１１内のＭＰＵ１６が、プロセッサ機能を発揮する場合を示し、ここでは、ＭＰＵ１６は、一定の範囲でオブジェクトの分散処理を実行している。即ち、ＣＰＵ１０にて処理する必要がない処理に関しては、ＣＰＵ１０からの制御プロトコルによって、ＭＰＵ１６がこのような処理を実行している。このような分散処理としては、例えば大域転送処理や低演算高転送処理が挙げられ、例えばＤＲＡＭ１３-1から別のＤＲＡＭ１３-2に転送処理する場合がある。
【００３６】
ＭＰＵ１６は、基本的には全メモリにアクセスすることができるので、ＭＰＵ１６は、マルチプロセッサシステムとして、ＣＰＵ１０の実行する処理を代行することができる。しかし、ＣＰＵ１０に比較して、ＭＰＵ１６は演算能力が相対的に低いので、大量データの大域転送のような大きな転送粒度の転送が適しており、ＣＰＵ１０の高い演算能力や上位キャッシュの機能が必要でない処理を選択的に実行することができる。このＭＰＵ１６による処理も、ＣＰＵ１０からの制御プロトコルによって実行される。
【００３７】
図８はインテリジェントプリフェッチ命令の具体的説明を示すものである。従来のプログラミングスタイルを維持したまま、ＣＰＵ１０からみて下位のＭＰＵ１６，１４等に対する制御の方法として、インテリジェントプリフェッチ命令（ＩＰＲＥＦ）が用いられる。図８においては、ＣＰＵ１０内において、１０ａはＩキャッシュを、１０ｂはＤキャッシュを、夫々示している。ここで、ＭＰＵ１６がプロセッサ機能を果たすに際し、キャッシュ・コヒーレンスの問題があり、即ちＭＰＵ１６によるプログラムの実行の結果によりデータが変わった場合、ＣＰＵ１０のＤキャッシュ１０ｂのデータと整合がとれなくなる。この問題を回避するため、ＣＰＵ１０がＭＰＵ１６に仕事をさせるに際しては、ＣＰＵ１０のＤキャッシュ１０ｂのデータをキャッシュアウトして、Ｄキャッシュ１０ｂの内容をＭＰＵ１６によるプログラムの実行に基づく新たなデータ（指定データ）によって更新することとする。
【００３８】
ＭＰＵ１６はキャッシュであるので、キャッシュとして制御をしようとするもので、キャッシュに対する制御命令として、通常のキャッシュに対するプリフェッチ命令と同様に、ＩＰＲＥＦによりＭＰＵ１６に仕事をさせている。即ち、ＩＰＲＥＦにてキャッシュに対する制御とＭＰＵ１６に対する制御とを同時に行うことができる。因に、ＭＰＵ１６に対するプリフェッチ命令ではＭＰＵ１６はキャッシュとして働くことになるが、ＩＰＲＥＦではプログラムにより仕事をすることになる。
【００３９】
つまり、図８において、ＩＰＲＥＦはＣＰＵ１０の拡張命令であり、実行されることによりＤキャッシュ１０ｂの対象領域をキャッシュアウトして、下位のＭＰＵ付きキャッシュに制御プロトコルを送る。下位の指定ＭＰＵではこの制御プロトコルを受け取り指定プログラムを実行し、ＤＲＡＭや下位のメモリブロックにアクセスし、所定のデータをキャッシュメモリ上にセットする。
【００４０】
以下は最大値データの検索例を示している。
【００４１】
【数１】
0004656565.tif 000002
この例において、ＤＲＡＭ０〜３には予め図８に示す指定データが登録されているものとし、ここにいうＩＰＲＥＦ  ＤＲＡＭ０〜３は予め指定されたプログラムを実行するものである。そして、予め登録されたプログラムはＩＰＲＥＦ命令によりＤキャッシュ１０ｂの指定領域をキャッシュアウトしてから実行される。ここではＤＲＡＭ０〜３に対してＩＰＲＥＦを実行させて行き、ＣＰＵ１０にはＤＲＡＭ１〜３に対して制御プロトコルを送り、最大値がキャッシュに入った状態でＬｏａｄ命令を実行する。ＤＲＡＭの粒度にもよるがＩＰＲＥＦとＬｏａｄの計８命令で４つの最大値を求めることができ、最大値相互間のチェックにより真の最大値を得る。
【００４２】
本発明によれば、キャッシュメモリにＭＰＵを内蔵し、このＭＰＵをキャッシュロジックとしてあるいはその層以下のプロセッサとして働かせることにより、今までのプログラミングスタイルのままで高速で無駄のない並列処理を行うことができる。
【図面の簡単な説明】
【００４３】
【図１】図１は、従来の並列プロセッサの一例のブロック図を示す図である。
【図２】図２は、本発明の実施の形態の一例のブロック図を示す図である。
【図３】図３は、ＤＲＡＭ、ＭＰＵ、キャッシュのチップ配置の具体例を示すブロック図である。
【図４】図４は、２次キャッシュ及びＭＰＵの内部構成を示すブロック図である。
【図５】図５は、通常のキャッシュモードを示すデータ流れ図を示す図である。
【図６】図６は、ローカルオブジェクト分散実行のデータ流れ図を示す図である。
【図７】図７は、２次キャッシュによる転送処理に伝わるデータ流れ図を示す図である。
【図８】図８は、インテリジェントプリフェッチ命令に伝わる具体的説明図を示す図である。
【図９】図９は、ＡＳＩＣ  ＤＲＡＭのチップシステムを示す図を示す図である。
【符号の説明】
【００４４】
１０：ＣＰＵ、
１１：２次キャッシュ、
１２：３次キャッシュ、
１３：ＤＲＡＭ、
１４，１６：ＭＰＵ
【図１】
0004656565.tif 000003
【図２】
0004656565.tif 000004
【図３】
0004656565.tif 000005
【図４】
0004656565.tif 000006
【図５】
0004656565.tif 000007
【図６】
0004656565.tif 000008
【図７】
0004656565.tif 000009
【図８】
0004656565.tif 000010
【図９】
0004656565.tif 000011