(57)【特許請求の範囲】
【請求項１】
複数のプロセッサと、この複数のプロセッサで共有する共有キャッシュとを有し、
前記複数のプロセッサのうちの空プロセッサを、プリフェッチ機能を使用可能なプリフェッチ専用プロセッサとし、このプリフェッチ専用プロセッサと対を成すプロセッサと共に１つのプログラム実行単位として、前記複数のプロセッサに最適化された複数種類のオブジェクトソースを実行し、
前記複数種類のオブジェクトソースは、前記プリフェッチ専用プロセッサが実行するオブジェクトソースと、前記プリフェッチ専用プロセッサと対を成すプロセッサが実行するオブジェクトソースとを有し、
前記プリフェッチ専用プロセッサが実行するオブジェクトソースは、ロード系命令に関係のない命令を削除し、ロード系命令とストア系命令のデータ依存がある場合、ストア系命令を削除してロード系命令を同期制御付ロード系命令に変換したもので構成され、
前記プリフェッチ専用プロセッサと対を成すプロセッサが実行するオブジェクトソースは、ロード系命令とストア系命令のデータ依存がある場合、ストア系命令を同期制御付ストア系命令に変換したもので構成されることを特徴とするマルチプロセッサ。
【請求項２】
前記複数種類のオブジェクトソースは、それぞれ並列化されることを特徴とする請求項
１に記載のマルチプロセッサ。
【請求項３】
前記プリフェッチ専用プロセッサが実行するオブジェクトソースと、前記プリフェッチ専用プロセッサと対を成すプロセッサが実行するオブジェクトソースとは、１つのオブジェクトソースにマージされ、
前記１つのオブジェクトソースには、実行するプロセッサによって分岐する命令が含まれていることを特徴とする請求項１に記載のマルチプロセッサ。
【請求項４】
前記プリフェッチ機能を使用可能なプロセッサ情報と前記プリフェッチ機能を使用不可能なプロセッサ情報とをリードおよびライト可能に保持するモード情報をさらに有することを特徴とする請求項１に記載のマルチプロセッサ。
【請求項５】
前記プリフェッチ機能を使用不可能なプロセッサ分の領域を持ち、このプロセッサ分の領域は複数の同期制御付ロード系命令に関連する情報を持ち、当該情報は、ロード系命令のロードアドレスとロードサイズと同期制御付ストア系命令が実行されるプロセッサのプロセッサ番号をリードおよびライト可能に保持するアドレス情報を含むことを特徴とする請求項１に記載のマルチプロセッサ。
【請求項６】
前記同期制御付ストア系命令を実行した際、前記プリフェッチ機能を使用可能なプロセッサに仕掛中のロード系命令があった場合、該プロセッサと前記共有キャッシュとメインメモリにキャンセル指示を発行できる同期制御部をさらに有することを特徴とする請求項１に記載のマルチプロセッサ。
【請求項７】
前記共有キャッシュは、前記複数種類のオブジェクトソースのロード系命令によってキャッシュミスが発生した際、種類別に置き換えるウェイを予め決めておき、メインメモリのデータをキャッシュに登録することを特徴とする請求項１に記載のマルチプロセッサ。
【請求項８】
請求項１から７のいずれか１項に記載のマルチプロセッサを用いたことを特徴とするコンピュータシステム。
【請求項９】
複数のプロセッサと、この複数のプロセッサで共有する共有キャッシュとを備えたマルチプロセッサの処理方法であって、
前記マルチプロセッサが、前記複数のプロセッサのうちの空プロセッサを、プリフェッチ機能を使用可能なプリフェッチ専用プロセッサとし、このプリフェッチ専用プロセッサと対を成すプロセッサと共に１つのプログラム実行単位として、前記複数のプロセッサに最適化された複数種類のオブジェクトソースを実行し、
前記複数種類のオブジェクトソースは、前記プリフェッチ専用プロセッサが実行するオブジェクトソースと、前記プリフェッチ専用プロセッサと対を成すプロセッサが実行するオブジェクトソースとを有し、
前記プリフェッチ専用プロセッサが実行するオブジェクトソースは、ロード系命令に関係のない命令を削除し、ロード系命令とストア系命令のデータ依存がある場合、ストア系命令を削除してロード系命令を同期制御付ロード系命令に変換したもので構成され、
前記プリフェッチ専用プロセッサと対を成すプロセッサが実行するオブジェクトソースは、ロード系命令とストア系命令のデータ依存がある場合、ストア系命令を同期制御付ストア系命令に変換したもので構成されることを特徴とするマルチプロセッサの処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサ、これを用いたコンピュータシステム、およびマルチプロセッサの処理方法に関する。
【背景技術】
【０００２】
最近のコンピュータ業界の動向として、ＴＯＣを削減するために、ＨＷ（ハードウェア）リソースをどう有効利用するかどうかの研究、開発が盛んに行われている。しかしながら、更なるＴＯＣの削減を追及する余地がまだある。
【０００３】
これに関連する技術として、特許文献１には、プリフェッチ用スレッド及びプリチャージ用スレッドを生成するコンパイラ装置が記載されている。これによると、生成された両スレッドがメインプログラムと並列に動作しながら、プログラムの優先度及びキャッシュメモリの使用率を考慮したプリフェッチ及びプリチャージを行う。こうすることで、キャッシュメモリのヒット率を向上させ、キャッシュメモリからの無駄なプリフェッチを防止することができるとされている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−０７８２６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、マルチプロセッサを用いたコンピュータシステムの場合、空プロセッサがあっても他のプロセッサとＨＷが同じであるため、実行すべきプログラムがなければ、空プロセッサは無駄となる。このため、実行すべきプログラムがない場合、空プロセッサをどう有効活用するかが課題となっている。
【０００６】
その対策として、マルチプロセッサのコア内にアウト・オブ・オーダ機能やプリフェッチ機能や分岐予測機能を追加することにより、キャッシュミスによるメモリアクセス時間を隠蔽することができる。しかし、複雑な機能を追加すると、チップ面積が増大してマルチプロセッサ数が増やせないという課題がある。従って、マルチプロセッサを用いたコンピュータシステムの場合、プロセッサ単体の性能を向上させつつ、プロセッサ数を増やすことが課題にあげられる。
【０００７】
本発明の目的は、上記課題を解決し、プロセッサ単体の性能を向上させつつ、プロセッサ数を増やすことができるマルチプロセッサ、これを用いたコンピュータシステム、およびマルチプロセッサの処理方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の第１の観点によれば、複数のプロセッサと、この複数のプロセッサで共有する共有キャッシュとを有し、前記複数のプロセッサのうちの空プロセッサを、プリフェッチ機能を使用可能なプリフェッチ専用プロセッサとし、このプリフェッチ専用プロセッサと対を成すプロセッサと共に１つのプログラム実行単位として、前記複数のプロセッサに最適化された複数種類のオブジェクトソースを実行し、前記複数種類のオブジェクトソースは、前記プリフェッチ専用プロセッサが実行するオブジェクトソースと、前記プリフェッチ専用プロセッサと対を成すプロセッサが実行するオブジェクトソースとを有し、前記プリフェッチ専用プロセッサが実行するオブジェクトソースは、ロード系命令に関係のない命令を削除し、ロード系命令とストア系命令のデータ依存がある場合、ストア系命令を削除してロード系命令を同期制御付ロード系命令に変換したもので構成され、前記プリフェッチ専用プロセッサと対を成すプロセッサが実行するオブジェクトソースは、ロード系命令とストア系命令のデータ依存がある場合、ストア系命令を同期制御付ストア系命令に変換したもので構成されることを特徴とするマルチプロセッサが提供される。
【０００９】
本発明の第２の観点によれば、複数のプロセッサと、この複数のプロセッサで共有する共有キャッシュとを備えたマルチプロセッサの処理方法であって、前記マルチプロセッサが、前記複数のプロセッサのうちの空プロセッサを、プリフェッチ機能を使用可能なプリフェッチ専用プロセッサとし、このプリフェッチ専用プロセッサと対を成すプロセッサと共に１つのプログラム実行単位として、前記複数のプロセッサに最適化された複数種類のオブジェクトソースを実行し、前記複数種類のオブジェクトソースは、前記プリフェッチ専用プロセッサが実行するオブジェクトソースと、前記プリフェッチ専用プロセッサと対を成すプロセッサが実行するオブジェクトソースとを有し、前記プリフェッチ専用プロセッサが実行するオブジェクトソースは、ロード系命令に関係のない命令を削除し、ロード系命令とストア系命令のデータ依存がある場合、ストア系命令を削除してロード系命令を同期制御付ロード系命令に変換したもので構成され、前記プリフェッチ専用プロセッサと対を成すプロセッサが実行するオブジェクトソースは、ロード系命令とストア系命令のデータ依存がある場合、ストア系命令を同期制御付ストア系命令に変換したもので構成されることを特徴とするマルチプロセッサの処理方法が提供される。
【発明の効果】
【００１０】
本発明によれば、空プロセッサを利用してプリフェッチ機能を追加することにより、キャッシュのヒット率の増加とロード系命令のサイクル数の低減ができるので、プロセッサ単体の性能を向上することができる。また、複雑なＨＷを追加しないでプリフェッチ機能を実現することができるので、面積の増加を抑えることが可能でマルチプロセッサ数を増やすことができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施例に係るマルチプロセッサシステムの全体構成を示す概略ブロック図である。
【図２】図１に示すプリフェッチ機構の内部構成を示す概略ブロック図である。
【図３】図１に示すマルチプロセッサシステムの動作を示す概略フローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明に係るマルチプロセッサ、これを用いたコンピュータシステム、およびマルチプロセッサの処理方法の実施の形態について、図面を参照して詳細に説明する。
【００１３】
本実施の形態は、複数のプロセッサで共有するキャッシュで構成されているマルチプロセッサシステムにおいて、マルチプロセッサの空プロセッサをプリフェッチ処理に使うことにより性能を向上させると共に、空プロセッサがない場合は通常処理を行える柔軟なマルチプロセッサ環境を提供する。具体的には、（１）空プロセッサをプリフェッチ機能にするモードとプリフェッチ専用プロセッサに対応するプロセッサを指定する手段と、（２）プリフェッチ処理で先行するロード命令にデータ依存がある場合は、データ依存を解決する手段とを有する。以下、各手段について説明する。
【００１４】
（１）プリフェッチ機能にするモードとプリフェッチ専用プロセッサに対応するプロセッサを指定する手段は、マルチプロセッサの各コアのモードに情報を設定することで実現する。その設定は、専用命令で行う。各コアのモード情報には、現時点のプロセッサのモードが保持されている。モードの内容は、プリフェッチ機能、通常機能とする。
【００１５】
プリフェッチ機能がオンになると、対となるプロセッサ情報も保持される。対となるプロセッサグループは、ＯＳから見ると１つのプログラム実行単位となる。プリフェッチ機能有効のプロセッサでプログラムを実行する場合は、同じプログラムであるがそれぞれのプロセッサに最適化されたプログラムが実行される。プリフェッチ専用プロセッサに最適化されるプログラムは、ロード命令に関係ない命令（ストア命令、ロード命令に関係ない演算命令等）は、コンパイラによって削除される。データ依存が不明確な命令は、同期命令に変化して残す。空きプロセッサがない場合は、モードを通常機能としてプリフェッチ専用プロセッサに最適化されてないプログラムを実行する。
【００１６】
（２）データ依存を解決する手段は、同期制御とアドレス情報により処理される。その処理は、専用命令で行う。ここでのデータ依存とは、プロセッサ間で発生するロード命令とストア命令のライト・アフター・リード、リード・アフター・ライトである。ライト・アフター・ライトは、プリフェッチ専用プロセッサでストア命令は実行されないので考慮しない。同期方法は、同期型ロード命令でアドレスとデータ長を登録し、同期型ストア命令でデータ依存があるかチェックして、依存があればロード命令をキャンセルする。
【００１７】
上記の各手段は、複数のプロセッサで共有するキャッシュで構成されているマルチプロセッサシステムにおいて、次のようなコンパイラ、ＯＳ、コンピュータシステムの各構成により実現される。
【００１８】
（コンパイラ）
１．コンパイラは、同じプログラムソースから複数のプロセッサに最適化されたオブジェクトソースを生成するもので、次のような処理を行う。
【００１９】
１つは、プログラムソースから、ロード系命令とストア系命令のデータ依存を解析し、ロード系命令に関係のない命令を削除し、ロード系命令とストア系命令のデータ依存がある場合、ストア系命令を削除してロード系命令を同期制御付ロード系命令に変換して、オブジェクトソースを生成する。
【００２０】
もう１つは、プログラムソースから、ロード系命令とストア系命令のデータ依存がある場合、ストア系命令を同期制御付ストア系命令に変換して、オブジェクトソースを生成する。
【００２１】
２．上記１で生成された複数種類のオブジェクトソースは、それぞれ並列化される。
【００２２】
３．上記１か２で生成された２種類のオブジェクトソースは、１つのオブジェクトソースにマージされ、実行するプロセッサによって分岐する命令が追加される。
【００２３】
（ＯＳ）
４．ＯＳは、上記１か３で生成されたオブジェクトソースと、上記１か３以外で生成されたオブジェクトソースとを識別するための管理情報をもつ。
【００２４】
５．ＯＳは、上記２で並列化されたオブジェクトソースの必要プロセッサ数を保持するための管理情報をもつ。
【００２５】
６．ＯＳは、上記４と５の情報を元にプロセッサのモードをリード・設定・解除する命令を発行する。
【００２６】
７.ＯＳは、上記１か３のオブジェクトソースを実行する前に、複数のプロセッサが共有メモリ空間を確保できる初期化処理を行う。
【００２７】
８.ＯＳは、上記５と６の情報から上記１か３のオブジェクトソースを任意のプロセッサに実行できる。
【００２８】
（コンピュータシステム）
９.コンピュータシステムは、上記１と６の命令を制御するＨＷ（ハードウェア）機構をもつ。
【００２９】
１０．ＨＷ機構は、受信部と、送信部と、モード制御部と、同期制御部と、モード情報とアドレス情報を保持する部分とからなる。
【００３０】
１１．モード情報は、複数のプリフェッチ機能を使用可能なプロセッサ情報とプリフェッチ機能を使用不可能なプロセッサ情報を保持するとともに、複数のプリフェッチ機能を使用可能なプロセッサ情報とプリフェッチ機能を使用不可能なプロセッサ情報をグループ化して管理する情報を持ち、リード・ライトできる。
【００３１】
１２．アドレス情報は、複数のプリフェッチ機能を使用不可能なプロセッサ分の領域を持ち、プロセッサの領域は複数の同期制御付ロード系命令に関連する情報を持ち、当該情報は、ロード系命令のロードアドレスとロードサイズと同期制御付ストア系命令が実行されるプロセッサのプロセッサ番号をリード・ライトできる。
【００３２】
１３．同期制御部は、同期制御付ストア系命令を実行した際、プリフェッチ機能を使用可能なプロセッサに仕掛中のロード系命令があった場合、該プロセッサと共有キャッシュとメインメモリにキャンセル指示を発行できる。
【００３３】
１４．共有キャッシュは、上記１か３で生成した複数種類のオブジェクトソースのロード系命令によってキャッシュミスが発生した際、種類別に置き換えるウェイをコンピュータシステムが予め決めておき、メインメモリのデータをキャッシュに登録する。
【００３４】
以上説明したように、本実施の形態によれば、空プロセッサを利用してプリフェッチ機能を追加することにより、キャッシュのヒット率の増加とロード系命令のサイクル数の低減ができるので、性能を向上することができる。また、複雑なＨＷを追加しないでプリフェッチ機能を実現することができるので、面積の増加を抑えることが可能でマルチプロセッサ数を増やすことができる。
【実施例】
【００３５】
図１に本発明の実施例に係るマルチプロセッサシステムの全体構成を示す。
【００３６】
図１に示す本実施例のマルチプロセッサシステムは、マルチプロセッサ１０００およびメインメモリ１５００を含むコンピュータシステム１００と、このコンピュータシステム１００により実行されるＯＳ（オペレーティングシステム）１１１およびオブジェクトソース１１２を含むプログラム１１０と、コンパイラ１２０とを有する。以下、コンパイラ１２０、ＯＳ１１１、マルチプロセッサ１０００の順に説明する。
【００３７】
（コンパイラ１２０）
コンパイラ１２０は、同じプログラムソースから、マルチプロセッサ１０００の複数のプロセッサに最適化されたオブジェクトソース１１２を生成するもので、次の機能を有する。
【００３８】
１．ロード系命令とストア系命令とＩＯ系命令のデータ依存を解析して、静的にデータ依存がない演算系命令、ストア系命令、分岐系命令、ＩＯ系命令をオブジェクトソースから削除し、静的にデータ依存が不明確なロード系命令は同期制御付ロード系命令に変換し、プリフェッチ専用プロセッサのオブジェクトソースを生成する。
【００３９】
２．ロード系命令とストア系命令とＩＯ系命令のデータ依存を解析して、静的にデータ依存が不明確なストア系命令は同期制御付ストア系命令に変換し、プリフェッチ専用プロセッサと対となるプロセッサのオブジェクトソースを生成する。
【００４０】
３．自プロセッサがプリフェッチ専用プロセッサか否かを判断する命令と、前記２種類のオブジェクトソースに分岐する分岐命令を挿入して、１つのオブジェクトソースを生成する。
【００４１】
（ＯＳ１１０）
ＯＳ１１０は、次の機能を有する。
【００４２】
１．コンパイラ１２０が生成したプリフェッチ機能を使用するオブジェクトソースとプリフェッチ機能を使用しないオブジェクトソースを管理する。
【００４３】
２．プリフェッチ機能を使用するオブジェクトソースを実行する際、モード制御するためにモードリード命令、モード設定命令、モード解除命令を発行する。
【００４４】
３．プリフェッチ機能を使用するオブジェクトソースを実行する際、プリフェッチ専用プロセッサとプリフェッチ専用プロセッサと対となるプロセッサのメモリ空間が同一となるように初期設定する。
【００４５】
（マルチプロセッサ１０００）
マルチプロセッサ１０００は、図１に示すように、プロセッサコア１１００と、プロセッサコア群１２００と、ＨＷ機構であるプリフェッチ機構１３００と、共有キャッシュ１４００とから構成されている。このマルチプロセッサ１０００は、バス等を介してメインメモリ１５００に接続されている。
【００４６】
プロセッサコア１１００は、プリフェッチ専用プロセッサとして動作可能である。このことは、予めコンピュータシステム１００で定義されている。プロセッサコア群１２００も、プリフェッチ専用プロセッサとして動作可能である。このことも、予めコンピュータシステム１００で定義されている。
【００４７】
プリフェッチ機構１３００は、プロセッサコア１１００と、プロセッサコア群１２００と、共有キャッシュ１４００と、メインメモリ１５００とにそれぞれ接続されている。
【００４８】
共有キャッシュ１４００は、キャッシュコントローラ１４１０と、タグ群１４２０と、データ群１４３０とから成る２ウェイセットアソシアティブ方式のキャッシュで構成される。ここで、ウェイ番号１はプロセッサコア１１００で使う専用領域で、ウェイ番号２はプロセッサコア群１２００で使う専用領域である。ウェイ番号の決定は、キャッシュミスが発生した際の置き換え処理で決定する。
【００４９】
（プリフェッチ機構１３００）
図２は、プリフェッチ機構１３００の構成である。プリフェッチ機構１３００は、受信部２１００と、送信部２２００と、モード制御部２３００と、同期制御部２４００と、モード情報２５００と、アドレス情報２６００とで構成される。
【００５０】
受信部２１００は、マルチプロセッサ１０００から、コマンド部とデータ部からなる信号を受信する。この信号は、コンパイラ１２０で生成した同期制御付ロード系、同期制御付ストア系命令と、ＯＳ１１１が発行するモードリード命令、モード設定命令、モード解除命令の信号である。受信部２１００は、バッファを持ち、ＦＩＦＯ（First-In First-Out）で制御する。
【００５１】
送信部２２００は、前記各命令のリプライを各プロセッサコアに送信する。
【００５２】
モード制御部２３００は、モードリード命令、モード設定命令、モード解除命令に応じて、モード情報２５００にリード・ライトし、その結果を送信部２２００へ送る。
【００５３】
モード情報２５００は、各プロセッサコアの情報を保持する。この情報は、プリフェッチ機構が使用可能か不可能か保持し、使用可能な場合はプリフェッチ専用プロセッサと対となるプロセッサ情報を保持する。
【００５４】
同期制御部２４００は、同期制御付ロード系命令、同期制御付ストア系命令に応じて、アドレス情報２６００にリード・ライトし、その結果を判定して送信部２２００へ送る。アドレス情報２６００は、プロセッサコア群１２００の数分の領域を持つ。
【００５５】
各プロセッサコアの領域には、複数の同期制御付ロード系命令のロードアドレスとロードサイズを登録できる領域を持っている。同期制御付ロード系命令の場合、アドレス情報２６００にプロセッサコア番号とロードアドレスとロードサイズをライトする。同期制御付ストア系命令の場合、アドレス情報２６００からプロセッサコア番号とストアアドレスと同じアドレスを検索し、あれば情報を削除する。
【００５６】
（本実施例の動作）
図３は、本実施例の動作フローである。
【００５７】
本実施例に係るマルチプロセッサシステムにおいて、はじめにステップ３０１０で、ＯＳ１１１のディスパッチャで選択されたプログラムは、ＯＳ１１１のプログラム管理情報からプリフェッチ機能を使用するオブジェクトソースとプリフェッチ機能を使用しないオブジェクトソースかを識別される。その結果、プリフェッチ機能を使用するオブジェクトソースであれば、ステップ３０２０に、プリフェッチ機能を使用しないオブジェクトソースであれば、ステップ３０４０になる。
【００５８】
次のステップがステップ３０２０の場合、ＯＳ１１１のディスパッチャは、モードリード命令を発行してプリフェッチ専用プロセッサが使用可能か判定する。ここで、プリフェッチ専用プロセッサが使用可能かの判定は、プロセッサコア１０１０のモード情報２５００にモードが設定されてない場合は使用可能、モードが設定されている場合は使用不可能と判定する。
【００５９】
その結果、使用可能な場合は、ステップ３０３０とステップ３０４０に、使用不可能な場合は、ステップ３０４０のみとなる。一方、使用可能な場合、ＯＳ１１１のディスパッチャは、プリフェッチ専用プロセッサと対となるプロセッサ群を決定する。
【００６０】
プロセッサ群の決定は、ＯＳ１１１のプログラム管理情報に登録してあるプロセッサ数から決定する。また、ＯＳ１１１のディスパッチャは、プログラム管理情報のプロセッサ数と実行可能なプロセッサ数を比較して少ない方を決め、プリフェッチ機構１３００にモード設定命令を発行する。
【００６１】
ここで、並列化プログラムのプロセッサ群のプロセッサ割付アルゴリズムは、予めコンピュータシステム１００で定義されている。さらに、ＯＳ１１１のディスパッチャは、プロセッサコア１１００とプロセッサコア群１２００にプリフェッチ専用プロセッサとプリフェッチ専用プロセッサと対となるプロセッサのメモリ空間が同一となるように初期設定する。ＯＳ初期設定が終わると、次のステップ３０３０とステップ３０４０に移る。
【００６２】
次のステップ３０３０とステップ３０４０で、プリフェッチ専用プロセッサとプリフェッチ専用プロセッサと対となるプロセッサ群は、１つのオブジェクトソースを実行する。
【００６３】
プリフェッチ専用プロセッサは、プリフェッチ専用プロセッサのオブジェクトソースに分岐し、プリフェッチ専用プロセッサと対となるプロセッサ群は、プリフェッチ専用プロセッサと対となるプロセッサのオブジェクトソースに分岐して、各プロセッサコアで実行される。
【００６４】
プリフェッチ専用プロセッサは、ステップ３０５０に移る。プリフェッチ専用プロセッサと対となるプロセッサ群は、ステップ３０６０に移る。
【００６５】
次のステップ３０５０で、プリフェッチ専用プロセッサは、ロード系命令を実行する。ここで、ロード系命令が同期制御付ロード系命令の場合は、ステップ３０７０に移る。ロード系命令が同期制御付ロード系命令以外の場合は、ステップ３０９０に移る。
【００６６】
次のステップ３０７０で、プリフェッチ専用プロセッサは、同期制御付ロード系命令をプリフェッチ機構１３００に発行する。プリフェッチ機構１３００は、アドレス情報２６００に同じプロセッサコア番号で同じロードアドレスがないか判定する。
【００６７】
その結果、同じプロセッサコア番号で同じロードアドレスがなければ、アドレス情報２６００に対となる同期制御付ストア系命令が実行されるプロセッサコア番号とロードアドレスとロードサイズをライトする。一方、同じプロセッサコア番号で同じロードアドレスがあれば、先に同期制御付ストア系命令が実行されていることになり、同期制御付ロード系命令はキャンセルされる。
【００６８】
ここで、同期制御付ストア系命令の前に次の同期制御付ロード系命令がきた場合は、アドレス情報２６００の別の領域に次の同期制御付ロード系命令として登録していく。
【００６９】
次のステップ３０９０で、プリフェッチ専用プロセッサは、同期制御付ロード系命令以外のロード系命令を実行し、メインメモリ１５００から共有キャッシュ１４００にデータの写しをデータ群１４３０にコピーすると共に、タグ群１４２０にタグアドレスを登録する。この登録は、プリフェッチ専用プロセッサと対となるプロセッサ群に上書きされないようにウェイ番号１に登録される。
【００７０】
次のステップ３０６０で、プリフェッチ専用プロセッサと対となるプロセッサ群は命令を実行する。同期制御付ストア系命令の場合は、ステップ３０８０に移る。ロード系命令の場合は、プリフェッチ専用プロセッサのキャッシュへのプリフェッチが行われているとキャッシュヒットとなる。キャッシュミスとなった場合は、ウェイ番号２にメインメモリ１５００から共有キャッシュ１４００にデータの写しをデータ群１４３０にコピーすると共に、タグ群１４２０にタグアドレスを登録される。
【００７１】
次のステップ３０８０で、プリフェッチ専用プロセッサと対となるプロセッサ群は、同期制御付ストア系命令をプリフェッチ機構１３００に発行する。プリフェッチ機構１３００は、アドレス情報２６００に同じプロセッサコア番号で同じロードアドレスがないか判定する。
【００７２】
その結果、同じプロセッサコア番号で同じロードアドレスがなければ、アドレス情報２６００に対となる同期制御付ストア系命令実行されるプロセッサコア番号とロードアドレスとロードサイズをライトする。一方、同じプロセッサコア番号で同じロードアドレスがあれば、アドレス情報２６００に登録されている情報を削除する。
【００７３】
さらに、プリフェッチ専用プロセッサの同期制御付ロード系命令が仕掛かり中であれば、プリフェッチ専用プロセッサとメインメモリ１５００と共有キャッシュ１４００にキャンセル指示を発行する。
【００７４】
最後にステップ３１００では、プリフェッチ機能を使用するオブジェクトソースであれば、モード解除命令を発行し、ステップ３０１０に戻る。プリフェッチ機能を使用しないオブジェクトソースであれば、ステップ３０１０に戻る。
【００７５】
したがって、本実施例によれば、空プロセッサを利用してプリフェッチ機能を追加することにより、キャッシュのヒット率の増加とロード系命令のサイクル数の低減できるので、性能を向上することができる。また、複雑なＨＷを追加しないでプリフェッチ機能を実現することができるので、面積の増加を抑えることが可能で、マルチプロセッサ数を増やすことができる。
【００７６】
なお、上述したマルチプロセッサ内のＨＷ機構であるプリフェッチ機構の内部構成は特に限定されるものではなく、上述した各部の機能を実現可能であれば、各部の機能毎に個別に構成したものでも、各部の機能を一体的に構成したものでも、いずれも適用可能である。
【００７７】
以上、実施の形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施の形態及び実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【産業上の利用可能性】
【００７８】
本発明は、マルチプロセッサ、これを用いたコンピュータシステム、およびマルチプロセッサの処理方法の用途に利用可能である。
【符号の説明】
【００７９】
１００  コンピュータシステム
１１０  プログラム
１１１  ＯＳ
１１２  オブジェクトソース
１２０  コンパイラ
１０００  マルチプロセッサ
１１００  プロセッサコア
１２００  プロセッサコア群
１３００  プリフェッチ機構
１４００  共有キャッシュ
１４１０  キャッシュコントローラ
１４２０  タグ群
１４３０  データ群
１５００  メインメモリ
２１００  受信部
２２００  送信部
２３００  モード制御部
２４００  同期制御部
２５００  モード情報
２６００  アドレス情報
【図１】
0005541491.tif 000002
【図２】
0005541491.tif 000003
【図３】
0005541491.tif 000004