(57)【要約】【課題】マルチプロセッサシステムにおいて、キャッシュミスを低減し、動作の高速化を行えるキャッシュメモリ装置およびマルチプロセッサシステムを提供する。【解決手段】マルチプロセッサシステムにおけるキャッシュメモリ装置１３０Ａは、記憶領域１３１Ａと他のキャッシュメモリ装置の記憶領域とでアクセスされるデータの関連性に基づいて決められる関係情報を受信する。そして、関係情報に基づいて、記憶領域１３１Ａに対するアクセス情報を他のキャッシュメモリ装置に送信し、関係情報に基づいて、他のキャッシュメモリ装置からのアクセス情報を受信し、データの共有化を行う。このような構成をとることにより、キャッシュミスを低減し、動作速度を向上させることが可能となった。【選択図】図２
2008152571.tif 000002
【特許請求の範囲】
【請求項１】
マルチプロセッサシステムを構成する複数のプロセッサのそれぞれに固有なキャッシュメモリ装置であって、
キャッシュ記憶部と、
前記キャッシュ記憶部に対する読み出しおよび書き込みを行う制御部と、
前記制御部の制御下にあるキャッシュメモリ装置と制御下にない他のキャッシュメモリ装置とでアクセスされるデータ間の関係に基づいて定められる関係情報を少なくとも前記プロセッサの１つから受信する関係情報受信手段と、
前記制御部が前記制御下にあるキャッシュ記憶部に対して読み出しおよび書き込みを行った際のデータとアドレスとをアクセス情報として、前記関係情報受信手段が受信した前記関係情報に基づいて前記制御下にない他のキャッシュメモリ装置に送信する送信手段と、
を有することを特徴とするキャッシュメモリ装置。
【請求項２】
前記制御下にない他のキャッシュメモリ装置からのデータとアドレスをアクセス情報として受信した時、少なくとも前記アクセス情報の一部と前記関係情報受信部に受信された前記関係情報の一部が合致した場合、前記アクセス情報を用いて前記キャッシュ記憶部に格納されているデータを前記制御部を介して更新する受信手段を更に有することを特徴とする請求項１に記載のキャッシュメモリ装置。
【請求項３】
固有のキャッシュメモリ装置を備える複数のプロセッサと、主記憶装置とがバスに接続されるマルチプロセッサシステムにおいて、
それぞれの前記キャッシュメモリ装置は、
キャッシュ記憶部と、
前記キャッシュ記憶部に対する読み出しおよび書き込みを行う制御部と、
前記制御部の制御下にあるキャッシュメモリ装置と制御下にない他のキャッシュメモリ装置とでアクセスされるデータ間の関係に基づいて定められる関係情報を少なくとも前記プロセッサの１つから受信する関係情報受信部と、
前記制御部が前記制御下にあるキャッシュ記憶部に対して読み出しおよび書き込みを行った際のデータとアドレスをアクセス情報として、前記制御下にない他のキャッシュメモリ装置に送信する送信手段と、
前記制御下にない他のキャッシュメモリ装置からのデータとアドレスとをアクセス情報として受信した時、当該アクセス情報を用いて前記キャッシュ記憶部に格納されているデータを前記制御部を介して更新する受信手段と
を有することを特徴とするマルチプロセッサシステム。
【請求項４】
固有のキャッシュメモリ装置を備える複数のプロセッサと、主記憶装置とがバスに接続されるマルチプロセッサシステムにおいて、
それぞれの前記キャッシュメモリ装置は、
キャッシュ記憶部と、
前記キャッシュ記憶部に対する読み出しおよび書き込みを行う制御部と、
前記制御部の制御下にあるキャッシュメモリ装置と制御下にない他のキャッシュメモリ装置とでアクセスされるデータ間の関係に基づいて定められる関係情報を少なくとも前記プロセッサの１つから受信する関係情報受信部と、
前記制御部が前記制御下にあるキャッシュ記憶部に対して読み出しおよび書き込みを行った際のデータとアドレスをアクセス情報として、前記関係情報受信部に受信された前記関係情報に通知先と設定されている前記制御下にない他のキャッシュメモリ装置に送信する送信手段と、
前記制御下にない他のキャッシュメモリ装置からのデータとアドレスとをアクセス情報として受信した時、当該アクセス情報を用いて前記キャッシュ記憶部に格納されているデータを前記制御部を介して更新する受信手段と
を有することを特徴とするマルチプロセッサシステム。
【請求項５】
前記キャッシュメモリ装置を識別するためのキャッシュ識別番号を記憶するキャッシュ識別番号記憶部をさらに有し、
前記関係情報受信部は、少なくとも前記プロセッサの１つから前記キャッシュ識別番号が設定された通知先テーブルを受信し、
前記送信手段は、前記アクセス情報に前記関係情報受信部が受信した前記通知先テーブルを追加して前記制御下にない他のキャッシュメモリ装置に送信し、
前記受信手段は、前記制御下にない他のキャッシュメモリ装置から受信した前記アクセス情報の前記通知先テーブル中のキャッシュ識別番号と前記キャッシュ識別番号記憶部に格納された前記キャッシュ識別番号とを比較して、少なくとも一部が合致した場合に、前記アクセス情報を用いて前記キャッシュ記憶部に格納されているデータを前記制御部を介して更新する
ことを特徴とする請求項４に記載のマルチプロセッサシステム。
【請求項６】
固有のキャッシュメモリ装置を備える複数のプロセッサと、主記憶装置とがバスに接続されるマルチプロセッサシステムにおいて、
それぞれの前記キャッシュメモリ装置は、
キャッシュ記憶部と、
前記キャッシュ記憶部に対する読み出しおよび書き込みを行う制御部と、
前記制御部の制御下にあるキャッシュメモリ装置と制御下にない他のキャッシュメモリ装置とでアクセスされるデータ間の関係に基づいて定められる関係情報を少なくとも前記プロセッサの１つから受信する関係情報受信部と、
前記制御部が前記制御下にあるキャッシュ記憶部に対して読み出しおよび書き込みを行った際のデータとアドレスをアクセス情報として、前記制御下にない他のキャッシュメモリ装置に送信する送信手段と、
前記制御下にない他のキャッシュメモリ装置からのデータとアドレスとをアクセス情報として受信した時、当該アクセス情報の送信元が前記関係情報受信部で受信した前記関係情報に設定される監視先である場合に、当該アクセス情報を用いて前記キャッシュ記憶部に格納されているデータを前記制御部を介して更新する受信手段と
を有することを特徴とするマルチプロセッサシステム。
【請求項７】
前記キャッシュメモリ装置を識別するためのキャッシュ識別番号を記憶するキャッシュ識別番号記憶部をさらに有し、
前記関係情報受信部は、少なくとも前記プロセッサの１つから前記キャッシュ識別番号が設定された監視先テーブルを受信し、
前記送信手段は、前記キャッシュ識別番号記憶部に記憶されている前記キャッシュ識別番号を前記アクセス情報に追加して制御下にない他のキャッシュメモリ装置に送信し、
前記受信手段は、前記制御下にない他のキャッシュメモリ装置から受信した前記アクセス情報に追加されている前記キャッシュ識別番号と前記関係情報受信部で受信した前記監視先テーブルに設定されている前記キャッシュ識別番号とを比較して、少なくとも一部が合致した場合に、前記アクセス情報を用いて前記キャッシュ記憶部に格納されているデータを前記制御部を介して更新する
ことを特徴とする請求項６に記載のマルチプロセッサシステム。
【請求項８】
前記キャッシュ記憶部が記憶するデータのうち、前記アクセス情報により更新されたデータについては当該アクセス情報の発信元である前記キャッシュメモリ装置の前記キャッシュ識別番号と共に記憶し、
前記キャッシュメモリ装置を識別するためのキャッシュ識別番号を記憶するキャッシュ識別番号記憶部をさらに有し、
前記関係情報受信部は、少なくとも前記プロセッサの１つから前記キャッシュ識別番号と当該キャッシュ識別番号の優先度との組が設定された監視先優先度テーブルを受信し、
前記送信手段は、前記キャッシュ識別番号記憶部に記憶されている前記キャッシュ識別番号を前記アクセス情報に追加して制御下にない他のキャッシュメモリ装置に送信し、
前記受信手段は、前記制御下にない他のキャッシュメモリ装置から前記アクセス情報を受信し、当該アクセス情報に追加された前記キャッシュ識別番号を用いて前記監視先優先度テーブルからアクセス情報優先度を決定し、当該アクセス情報が有するアドレスに指定されるデータと共に記憶された前記キャッシュ識別番号を用いて前記監視先優先度テーブルから記憶データ優先度を決定し、前記アクセス情報優先度が前記記憶データ優先度よりも高い場合に、前記アクセス情報を用いて前記キャッシュ記憶部に格納されているデータを前記制御部を介して更新する
ことを特徴とする請求項６に記載のマルチプロセッサシステム。
【請求項９】
前記送信手段および前記受信手段の動作又は停止を設定可能にしたことを特徴とする請求項３乃至請求項８のいずれか１項に記載のマルチプロセッサシステム。
【請求項１０】
前記プロセッサの２つ以上が１つのタスクを共同で処理する際に、当該プロセッサに固有な前記キャッシュメモリ装置に格納されているデータの共有化するように、前記関係情報受信部は前記送信手段と前記受信手段の動作を制御する前記関係情報を受信することを特徴とする請求項４乃至請求項８のいずれか１項に記載のマルチプロセッサシステム。
【請求項１１】
第１のプロセッサから第２のプロセッサにタスク処理が変更される際に、前記第１のプロセッサの前記キャッシュメモリ装置に対してアクセスしたデータを、前記第２のプロセッサの前記キャッシュメモリ装置に共有化するように、前記関係情報受信部は前記送信手段と前記受信手段の動作を制御する前記関係情報を受信することを特徴とする請求項４乃至請求項８のいずれか１項に記載のマルチプロセッサシステム。
【請求項１２】
前記プロセッサの１つがスケジューリング専用プロセッサであって、前記スケジューリング専用プロセッサで作成した関係情報を前記プロセッサのキャッシュメモリ装置に送信することを特徴とする請求項４乃至請求項８のいずれか１項に記載のマルチプロセッサシステム。
【請求項１３】
固有のキャッシュメモリ装置を備える複数のプロセッサと、スケジューリング専用のハードウェアと、主記憶装置とがバスに接続されるマルチプロセッサシステムにおいて、
それぞれの前記キャッシュメモリ装置は、
キャッシュ記憶部と、
前記キャッシュ記憶部に対する読み出しおよび書き込みを行う制御部と、
前記制御部の制御下にあるキャッシュメモリ装置と制御下にない他のキャッシュメモリ装置とでアクセスされるデータ間の関係に基づいて定められる関係情報を前記スケジューリング専用のハードウェアから受信する関係情報受信部と、
前記制御部が前記制御下にあるキャッシュ記憶部に対して読み出しおよび書き込みを行った際のデータとアドレスとをアクセス情報として、前記制御下にない他のキャッシュメモリ装置に送信する送信手段と、
前記制御下にない他のキャッシュメモリ装置からのデータとアドレスとをアクセス情報として受信した時、当該アクセス情報を用いて前記キャッシュ記憶部に格納されているデータを前記制御部を介して更新する受信手段と
を有することを特徴とするマルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリ装置およびマルチプロセッサシステムに関するものである。
【背景技術】
【０００２】
マルチプロセッサシステムは広く使用されている。当該マルチプロセッサの構成としては、複数のプロセッサがそれぞれ固有のキャッシュメモリ装置を有し、それらがバスを通じて主記憶装置と接続されているものなどが挙げられる。
【０００３】
しかし、マルチプロセッサシステムには、例えば、タスクの処理を行うプロセッサが変更された場合、変更前と変更後のプロセッサ固有のキャッシュメモリ装置の間でデータを共有していないと、特にキャッシュミスが頻発して、キャッシュメモリ装置の使用効率が低下するという問題点がある。キャッシュミス時には、プロセッサは主記憶装置をアクセスすることになるため動作速度が低下する。これは、あるプロセッサが固有なキャッシュメモリ装置に行うアクセスについての情報が、他のプロセッサに伝わらないことが原因である。
【０００４】
ここで、マルチプロセッサシステムにおいて、キャッシュメモリ装置に書き込みがあった場合に、その情報を他のキャッシュメモリ装置に送信する方法が提案されている（例えば、特許文献１参照）。
【０００５】
しかし、上記の特許文献１では、複数のキャッシュメモリ装置との間のデータの一貫性を保持することを目的としている。そのため、他のプロセッサ固有のキャッシュメモリ装置に保持されていないデータについては、共有（更新）されないため、キャッシュミスが頻発する現象を防止できず、動作速度が低下する。
【特許文献１】特開２００１−３４５９７公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述の特許文献１の方法では、タスクの処理を行うプロセッサが変更された場合など、各キャッシュメモリ装置で適切なデータの共有化が行われないため、キャッシュミスが頻発することがあり、動作速度の低下を招く。
【０００７】
本発明は、上記問題点を解決するためになされたものであって、マルチプロセッサシステムにおけるキャッシュミスを低減し、動作の高速化を行えるキャッシュメモリ装置およびマルチプロセッサシステムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１の発明であるキャッシュメモリ装置は、マルチプロセッサシステムを構成する複数のプロセッサのそれぞれに固有なキャッシュメモリ装置であって、キャッシュ記憶部と、前記キャッシュ記憶部に対する読み出しおよび書き込みを行う制御部と、前記制御部の制御下にあるキャッシュメモリ装置と制御下にない他のキャッシュメモリ装置とでアクセスされるデータ間の関係に基づいて定められる関係情報を少なくとも前記プロセッサの１つから受信する関係情報受信手段と、前記制御部が前記制御下にあるキャッシュ記憶部に対して読み出しおよび書き込みを行った際のデータとアドレスとをアクセス情報として、前記関係情報受信手段が受信した前記関係情報に基づいて前記制御下にない他のキャッシュメモリ装置に送信する送信手段とを有することを特徴とする。
【０００９】
本発明の第２の発明であるマルチプロセッサシステムは、固有のキャッシュメモリ装置を備える複数のプロセッサと、主記憶装置とがバスに接続されるマルチプロセッサシステムにおいて、それぞれの前記キャッシュメモリ装置は、キャッシュ記憶部と、前記キャッシュ記憶部に対する読み出しおよび書き込みを行う制御部と、前記制御部の制御下にあるキャッシュメモリ装置と制御下にない他のキャッシュメモリ装置とでアクセスされるデータ間の関係に基づいて定められる関係情報を少なくとも前記プロセッサの１つから受信する関係情報受信部と、前記制御部が前記制御下にあるキャッシュ記憶部に対して読み出しおよび書き込みを行った際のデータとアドレスをアクセス情報として、前記制御下にない他のキャッシュメモリ装置に送信する送信手段と、前記制御下にない他のキャッシュメモリ装置からのデータとアドレスとをアクセス情報として受信した時、当該アクセス情報を用いて前記キャッシュ記憶部に格納されているデータを前記制御部を介して更新する受信手段とを有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、マルチプロセッサシステムにおけるキャッシュミスを低減し、動作の高速化を行えるキャッシュメモリ装置およびマルチプロセッサシステムを提供する。
【発明を実施するための最良の形態】
【００１１】
以下、本発明における第１の実施形態について、図面に基づいて説明する。
【００１２】
（第１の実施形態）
第１の実施形態に係るマルチプロセッサシステムの構成を図１に示した。マルチプロセッサシステムには、例えば演算処理部１１０Ａ〜１１０Ｃを有する３つのプロセッサ１００Ａ〜１００Ｃと、スケジューリング専用のプロセッサ１００Ｄと、それぞれのプロセッサ１００Ａ〜１００Ｄに固有に設けられたキャッシュメモリ装置１２０Ａ〜１２０Ｄ、１３０Ａ〜１３０Ｄと、プロセッサ１００Ａ〜１００Ｄおよびキャッシュメモリ装置１２０Ａ〜１２０Ｄ、１３０Ａ〜１３０Ｄとバス１５０を介して接続された主記憶装置２００とを備えている。
【００１３】
第１の実施形態に係るマルチプロセッサシステムは、それぞれのプロセッサ１００Ａ〜１００Ｄのハードウェア性能が異なるヘテロジニアスな構成となっており、組み込み用途とする。ただし、パソコンに対しても適用可能であり、ホモジニアスな構成でも良い。その場合、主記憶装置２００とキャッシュメモリ装置１２０Ａ〜１２０Ｄ、１３０Ａ〜１３０Ｄとの間に２次キャッシュメモリ装置を介在させる方式が一般的である。
【００１４】
スケジューリング専用のプロセッサ１００Ｄにおいて動作するオペレーティングシステム（ＯＳ）は、実行待機状態にあるタスクをそれぞれのプロセッサ１００Ａ〜１００Ｃに割り当てるスケジューリングを行う。タスクとは、ＯＳが管理するプログラムの単位であり、一般的にプロセスやスレッドと呼ばれるものの総称である。プロセッサ１００Ｄのスケジューリング機能は、ＯＳがバス１５０を介してそれぞれのプロセッサ１００Ａ〜１００Ｃにアクセスすることで実現される。
【００１５】
また、各キャッシュメモリ装置は互いに命令、データなどの記憶している情報の共有化を行う。スケジューリング機能を有するプロセッサ１００Ｄは、データの共有に伴う処理を制御するための関係情報を命令用キャッシュメモリ装置１２０Ａ〜１２０Ｃ、データ用キャッシュメモリ装置１３０Ａ〜１３０Ｃに送信する機能を有する。
【００１６】
キャッシュメモリ装置は、命令用キャッシュメモリ装置１２０Ａ〜１２０Ｄとデータ用キャッシュメモリ装置１３０Ａ〜１３０Ｄの２種類がある。各キャッシュメモリ装置の１つのキャッシュラインは、例えば４ワードの大きさとなっている。またデータ格納構造は、例えば２ウェイのセットアソシアティブ方式とする。さらにまた、データ更新方式は、ライトバック方式とする。ただし、本発明はこの方式に限らず、他の構成を適用することができる。
【００１７】
第１の実施形態に係るマルチプロセッサシステムのプロセッサ１００Ａのデータ用キャッシュメモリ装置１３０Ａを有するコントローラ１３２Ａの構成について図２に示す。ただし、図２ではコントローラ１３２Ａとの情報の授受を行う演算処理部１１０Ａと記憶領域１３１Ａとバス１５０も図示している。以下、コントローラ１３２Ａの構成と動作について説明する。なお、コントローラ１２２Ａ〜１２２Ｃ、１３２Ｂ、１３２Ｃについても同様の構成および動作となっている。また、コントローラ１２２Ｄ、１３２Ｄは、一般的なキャッシュメモリ装置のコントローラと同じ構成であるため、説明を省略する。
【００１８】
コントローラ１３２Ａは、制御下にあるキャッシュメモリ装置１３０Ａと制御下にない他のキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ｂ、１３０Ｃとの関係情報をプロセッサ１００Ｄより受信する関係情報受信部１３６Ａと、記憶領域１３１Ａに対して読み出しおよび書き込みを制御する制御部１３３Ａと、記憶領域１３１Ａに対して読み出しおよび書き込みを行った際のデータとアドレスをアクセス情報として制御下にない他のキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ｂ、１３０Ｃに送信する送信部１３４Ａと、制御下にない他のキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ｂ、１３０Ｃの図示しない送信部により送信されたアクセス情報を受信する受信部１３５Ａと、キャッシュメモリ装置１３０Ａ固有に定められたキャッシュ識別番号を記憶するキャッシュ識別番号記憶部１３７Ａと、を有している。ここで、関係情報受信部１３６Ａは、スケジューリング専用のプロセッサ１００Ｄにより送信された関係情報を受信する。送信部１３４Ａと受信部１３５Ａの動作は、関係情報受信部１３６Ａにより受信した関係情報により制御される。
【００１９】
キャッシュメモリ装置１３０Ａの記憶領域１３１Ａは、例えばキャッシュラインに格納されたデータの有効と無効を示す有効／無効ビットアレイと、キャッシュラインに格納されているデータのタグを格納するタグアレイと、キャッシュラインに格納されているデータを格納するデータアレイとを有する。
【００２０】
制御部１３３Ａは、演算処理部１１０Ａおよび受信部１３５Ａから送信された情報を用いて、記憶領域１３１Ａに対して読み出しおよび書き込みを行う機能と、記憶領域１３１Ａに対して読み出しおよび書き込みを行った際のデータとアドレスをアクセス情報として送信部１３４Ａに送信する機能を有する。
【００２１】
ここで、アクセス情報とは、制御下にあるキャッシュメモリ装置に対して行われた読み出しおよび書き込みについての情報を、制御下にない他のキャッシュメモリ装置に通知するためのものである。アクセス情報は、読み出し時のデータあるいは書き込み時の更新後のデータと、アドレスとを有する。当該データは、キャッシュラインサイズと同じ４ワードの大きさである。さらに、アクセス情報には、キャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃ内の各送信部により様々な情報が追加される。
【００２２】
送信部１３４Ａは、制御部１３３Ａから送信されたアクセス情報を受信する機能と、当該アクセス情報に適宜情報の追加を行う機能と、情報が追加されたアクセス情報をバス１５０に送信する機能とを有する。情報の追加により、複数のキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃ間における効率的なデータ共有が実現できる。例えば、送信部１３４Ａから送信されたアクセス情報は、バス１５０に接続されている制御下にない他のキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ｂ、１３０Ｃで受信することが可能となる。例えば、送信部１３４Ａは、動作するか停止するかを設定可能である。加えて、送信部１３４Ａは、アクセス情報を送信する他のキャッシュメモリ装置（通知先）を指定することができる。これらの構成は、コントローラ１２２Ａ〜１２２Ｃ、１３２Ｂ、１３２Ｃ内の図示しない送信部でも同じである。
【００２３】
受信部１３５Ａは、バス１５０を常時監視し、制御下にない他のキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ｂ、１３０Ｃから送信されたアクセス情報を受信する機能と、アクセス情報に基づき、キャッシュメモリ装置１３０Ａ内の記憶領域１３１Ａに格納されているデータの更新を行うか判断する機能とを有する。また受信部１３５Ａは、データ更新時にアクセス情報の送信元のキャッシュメモリ装置（監視先）を指定することができる。さらにまた、受信部１３５Ａは動作するか停止するかを設定可能である。これらの構成は、コントローラ１２２Ａ〜１２２Ｃ、１３２Ｂ、１３２Ｃ内の図示しない受信部でも同じである。
【００２４】
また、バス１５０には、情報線とは別に送信部１３４Ａと受信部１３５Ａが使用する制御線が追加されている。
【００２５】
ここで、受信部１３５Ａが受信するアクセス情報に含まれるデータとアドレスとの一例を表１に示す。受信したアクセス情報に含まれるデータとアドレスは、演算処理部１１０Ａから記憶領域１３１Ａに対して行われたアクセスの種類（リード／ライト）、およびアクセスがキャッシュヒット／キャッシュミスであるかによりその内容が異なる。これは、アクセス情報に含まれるデータを最新の値とするためである。
【表１】
2008152571.tif 000003
【００２６】
キャッシュ識別番号記憶部１３７Ａには、キャッシュメモリ装置１３０Ａ固有のキャッシュ識別番号が記憶される。キャッシュ識別番号は、静的に定められていても良く、動的に変更されても良い。この構成は、コントローラ１２２Ａ〜１２２Ｃ、１３２Ｂ、１３２Ｃ内の図示しないキャッシュ識別番号記憶部でも同じである。
【００２７】
関係情報受信部１３６Ａは、スケジューリング専用のプロセッサ１００Ｄにより送信された制御下にあるキャッシュメモリ装置１３０Ａと制御下にない他のキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ｂ、１３０Ｃとの間の関係情報を受信する機能と、設定した関係情報を送信部１３４Ａと受信部１３５Ａとに送信する機能とを持つ。
【００２８】
関係情報は、例えば送信部１３４Ａにおける通知先の決定と、例えば受信部１３５Ａにおける監視先の決定に用いる情報である。ここで関係情報は、スケジューリング専用のプロセッサ１００Ｄにおいて、異なるキャッシュメモリ装置における同一データが書き込まれる確率および同一データが読み込まれる確率の大小の予測に基づいて設定される。さらに関係情報は、情報処理装置の特性に応じて、静的に設定されていても良く、また動的に変更されていてもよい。
【００２９】
関係情報の動的変更は、スケジューリング専用のプロセッサ１００Ｄから送信される関係情報を、それぞれのキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃが受信することにより実現される。
【００３０】
また、関係情報は、キャッシュメモリ装置間１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃにおいてデータを共有する方式により異なる。以下、４種類のデータ共有方式と関係情報とについて説明する。
【００３１】
（有効無効切り替え方式）
有効無効切り替え方式において関係情報は、それぞれのキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃごとに、送信部１２４Ａ〜１２４Ｃ、１３４Ａ〜１３４Ｃが動作する（有効）か、停止する（無効）かを設定し、また受信部１２５Ａ〜１２５Ｃ、１３５Ａ〜１３５Ｃが動作する（有効）か、停止する（無効）かを設定するための情報となっている。
【００３２】
（通知先指定方式）
通知先指定方式において関係情報は、通知先であるキャッシュメモリ装置を指定するキャッシュ識別番号が格納された通知先テーブルとなっている。通知先テーブルは、コントローラ１２２Ａ〜１２２Ｃ、１３２Ａ〜１３２Ｃ内の送信部毎に保持される。また、各送信部は、通知先テーブルをアクセス情報に追加して送信する機能を有する。
【００３３】
（監視先指定方式）
監視先指定方式において関係情報は、監視先であるキャッシュメモリ装置を指定するキャッシュ識別番号が格納された監視先テーブルとなっている。監視先テーブルは、コントローラ１２２Ａ〜１２２Ｃ、１３２Ａ〜１３２Ｃ内の受信部毎に保持される。また、監視先テーブルは、各受信部がアクセス情報を受信した際に使用される。
【００３４】
（監視先優先度方式）
監視先優先度方式において関係情報は、キャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃごとに、監視先であるキャッシュメモリ装置を指定するキャッシュ識別番号と優先度との組が格納された監視先優先度テーブルとなっている。監視先優先度テーブルは、コントローラ１２２Ａ〜１２２Ｃ、１３２Ａ〜１３２Ｃ内の受信部毎に保持される。また、監視先優先度テーブルは、各受信部がアクセス情報を受信した際に使用される。
【００３５】
これらのデータ共有方式は１種類だけ使用しても良く、異なる２種類以上の方式を使用しても良い。
【００３６】
次に、それぞれのキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃに格納された関係情報を動的に変更するための構成について３種類説明する。
【００３７】
１番目の動的変更手法は、関係情報を送信するための専用ラインをバス１５０に新たに設ける構成である。この構成によれば、スケジューリング専用のプロセッサ１００Ｄからキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃの関係情報受信部に専用ラインを通じて、関係情報を送信できる。
【００３８】
また、専用ラインを使用するため関係情報の動的変更時におけるレイテンシが小さい。しかし、関係情報を送信するための専用ラインをバス１５０に追加することになるため、配線数の増加による回路面積の肥大化を招く。
【００３９】
２番目の動的変更手法は、関係情報を記憶する記憶素子に、マルチプロセッサシステムのグローバルなアドレス空間をマッピングする構成である。この本構成によれば、スケジューリング専用のプロセッサ１００Ｄからキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃの関係情報受信部に、既存のバスラインを通じて関係情報を送信できる。
【００４０】
また、関係情報の動的変更処理とデータやアドレスの送受信処理とでバス１５０を共有している。そのため、バス１５０の使用について他の通信との競合が発生し、専用ラインを利用する場合よりもレイテンシは大きくなる。また、バス１５０から受信した関係情報とその他の情報とをそれぞれ、関係情報を記憶する記憶素子とキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃの記憶領域とに分けて送信するためのアドレスデコーダが必要となる。
【００４１】
３番目の動的変更手法は、関係情報を記憶する記憶素子に、プロセッサ１００Ａ〜１００Ｃのローカルなアドレス空間をマッピングする構成である。この構成によれば、スケジューリング専用のプロセッサ１００Ｄから送信された関係情報に応じて、プロセッサ１００Ａ〜１００Ｃが固有のキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃの関係情報受信部に対して関係情報を送信する。
【００４２】
また、関係情報の動的変更要求処理とデータやアドレスの送受信処理とでバス１５０を共有しており、さらにプロセッサ１００Ａ〜１００Ｃの処理が必要となる。そのため、バス１５０の使用時における他の通信との競合が発生する上、プロセッサ１００Ａ〜１００Ｃに割り込み処理を行うためのレイテンシが発生する。また、プロセッサ１００Ａ〜１００Ｃが送信する関係情報とその他の情報とをそれぞれ、関係情報を記憶する記憶素子とその他とに分けて送信するためのアドレスデコーダが必要となる。
【００４３】
一般的に、１番目、２番目、３番目の動的変更手法の順に、関係情報の動的変更にかかる時間が小さく、設計コストが大きい。３種類の構成のどれを採用するかは、上記トレードオフとマルチプロセッサシステムに要求される性能とにより決定される。
【００４４】
次に、コントローラ１３２Ａの送信部１３４Ａが、データ共有化のためのアクセス情報を送信するときの動作について図３を用いて説明する。なお、コントローラ１２２Ａ〜１２２Ｃ、１３２Ｂ、１３２Ｃも同様の動作を行う。
【００４５】
まず、プロセッサ１００Ａの演算処理部１１０Ａが制御部１３３Ａを介してキャッシュメモリ装置１３０Ａをアクセスする（ステップＳ１０１）。なお、キャッシュメモリ装置１３０Ａに対して行われたアクセスが、キャッシュヒットの場合と、データの読み出し時におけるキャッシュミスの場合と、データの書き込み時におけるキャッシュミスの場合とで以下の動作の流れが異なる。
【００４６】
制御部１３３Ａは、記憶領域１３１Ａに対する読み出しおよび書き込みを行った際のデータとアドレスをアクセス情報として、送信部１３４Ａに送信する（ステップＳ１０２）。ここで、送信部１３４Ａが動作中か停止中かを判断する（ステップＳ１０３）。送信部１３４Ａが停止中の場合には、アクセス情報を他のキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ｂ、１３０Ｃに送信することはないので、コントローラ１３２Ａの動作を終了する。
【００４７】
送信部１３４Ａが動作中である場合には、送信部１３４Ａは受信したアクセス情報に適宜情報を追加する（ステップＳ１０４）。例えば、データ共有方式が通知先指定方式の場合は、通知先テーブルをアクセス情報に追加する。また、データ共有方式が監視先指定方式および監視先優先度方式の場合には、キャッシュ識別番号記憶部１３７Ａに記憶されているキャッシュ識別番号をアクセス情報に追加する。
【００４８】
その後、送信部１３４Ａは、上記情報を追加したアクセス情報をバス１５０に送信する（ステップＳ１０５）。ここで、プロセッサ１００Ａのキャッシュメモリ装置１３０Ａに対する読み出し時あるいは書き込み時にキャッシュヒットであった場合には（ステップＳ１０６）、制御下にない他のキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ｂ、１３０Ｃの関係情報受信部がプロセッサ１００Ａの送信部１３４Ａから送信されたアクセス情報を受信し（ステップＳ１０７）、コントローラ１３２Ａの動作は終了する。
【００４９】
しかし、プロセッサ１００Ａのキャッシュメモリ装置１３０Ａに対する読み出し時あるいは書き込み時にキャッシュミスであった場合には、アクセス情報が有するデータが不足している。そこで、主記憶装置２００が送信部１３４Ａから送信されたアクセス情報を受信し、アクセス情報に含まれるアドレスにより指定されるデータを読み出す。その後、主記憶装置２００は、読み出したデータをアクセス情報に追加する（ステップＳ１０８）。そして主記憶装置２００は、データが追加されたアクセス情報データをコントローラ１３２Ａのキャッシュメモリ装置１３０Ａに送信する（ステップＳ１０９）。
【００５０】
ここで、プロセッサ１００Ａのキャッシュメモリ装置１３０Ａに対する読み出し時にキャッシュミスであった場合には（ステップＳ１１０）、主記憶装置２００が送信したアクセス情報を他のキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ｂ、１３０Ｃの関係情報受信部が受信し、データの共有化が行われる（ステップＳ１１１）。即ち、読み出しアクセス時はデータが変更されるわけではないので、他のキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ｂ、１３０Ｃとのデータ共有化を行ってコントローラ１３２Ａの動作は終了する。
【００５１】
しかし、プロセッサ１００Ａのキャッシュメモリ装置１３０Ａに対する書き込み時にキャッシュミスであった場合には、主記憶装置２００が送信したアクセス情報に含まれるデータは更新前のものである。そこで、キャッシュメモリ装置１３０Ａの関係情報受信部１３６Ａが当該アクセス情報を受信する。制御部１３３Ａは、受信したアクセス情報とプロセッサ１００Ａから書き込みを要求されたデータとを用いて記憶領域１３１Ａに書き込みを行う（ステップＳ１１２、Ｓ１１３）。また、制御部１３３Ａは、プロセッサ１００Ａからの書き込みデータをアクセス情報に追加し、送信部１３４Ａに送信する（ステップＳ１１４）。
【００５２】
送信部１３４Ａは、受信したアクセス情報をバス１５０に送信する（ステップＳ１１５）。他のキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ｂ、１３０Ｃは、当該アクセス情報を受信する（ステップＳ１１６）。そして、写しを記憶するプロセッサのキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ｂ、１３０Ｃは、記憶内容を更新してデータ共有化動作を行い、コントローラ１３２Ａは動作を終了する。
【００５３】
ここで、プロセッサ１００Ａが行ったキャッシュメモリ装置１３０Ａに対する書き込み時にキャッシュミスであった場合の動作の一部について、さらに詳細に説明する。キャッシュラインの１ラインは、例えば４ワードの大きさを有しているとする。そのため、書き込みを行うデータが１ワードの場合、書き込みを行うキャッシュラインに格納されたデータの中で、３ワードは更新されない。
【００５４】
このため、アドレスと３ワードのデータをアクセス情報として、送信部１３４Ａからバス１５０に送信しても問題は無い。このアクセス情報は、主記憶装置２００のみならず、キャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ｂ、１３０Ｃの受信部にも受信される。この時点で、受信部は、アクセス情報の一部であるアドレスと３ワードのデータとを保持しておく。その後、送信部１３４Ａが書き込みを行った１ワードのデータをキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ｂ、１３０Ｃの受信部に送信する。このような方式をとることにより、データの共有化を効率よく行うことができる。
【００５５】
次に、コントローラ１３２Ａの受信部１３５Ａが、データ共有化のためのアクセス情報を受信するときの動作について図４を用いて説明する。なお、他のコントローラ１２２Ａ〜１２２Ｃ、１３２Ｂ、１３２Ｃも同様の動作を行う。
【００５６】
まず、受信部１３５Ａが、バス１５０を介して他のキャッシュメモリ装置からアクセス情報を受信する（ステップＳ２０１）。受信部１３５Ａが停止中の場合は、アクセス情報によるデータ共有化は行わず、コントローラ１３２Ａは動作を終了する（ステップＳ２０２）。
【００５７】
受信部１３５Ａが動作中の場合は、受信したアクセス情報中の通知先テーブルあるいはキャッシュ識別番号を参照する（ステップＳ２０３）。アクセス情報に通知先テーブルおよびキャッシュ識別番号が含まれていない場合は、当該アクセス情報により記憶領域１３１Ａに格納されているデータが更新されることとなる。
【００５８】
一方、アクセス情報に通知先テーブルあるいはキャッシュ識別番号が含まれている場合は、受信部１３５Ａは、データの共有化を行うか否かを決定する。
【００５９】
この判断方法はデータ共有方式によって異なる。通知先指定方式の場合は、通知先テーブルがアクセス情報に追加されている。そこで、受信部１３５Ａは、データ用キャッシュメモリ装置１３０Ａに対応するキャッシュ識別番号が通知先テーブルに存在する場合に、データの共有化を行うことを決定する。一方、通知先テーブルにデータ用キャッシュメモリ装置１３０Ａに対応するキャッシュ識別番号が存在しない場合には、データの共有化は行わないものとする。即ち、受信部１３５Ａは、制御下にない他のキャッシュメモリ装置から受信したアクセス情報に追加されている通知先テーブル中のキャッシュ識別番号とキャッシュ識別番号記憶部１３７Ａに格納されたキャッシュ識別番号とを比較し、少なくとも一部が一致する場合、データの共有化を行う。
【００６０】
データ共有の方式が監視先指定方式の場合は、キャッシュ識別番号がアクセス情報に追加されている。そこで、受信部１３５Ａは、監視先テーブルの中に当該キャッシュ識別番号が存在する場合に、データの共有化を行うことを決定する。一方、監視先テーブルの中に当該キャッシュ識別番号が存在しない場合には、データの共有化は行わないものとする。即ち、受信部１３５Ａは、制御下にない他のキャッシュメモリ装置から受信したアクセス情報に追加されているキャッシュ識別番号と監視先テーブル中のキャッシュ識別番号とを比較し、少なくとも一部が一致する場合、データの共有化を行う。データ共有の方式が監視先優先度方式の場合の動作については後述する。
【００６１】
次に、通知先指定方式と監視先指定方式とにおける、データの共有化を行うことを決定したあとの動作について説明する。
【００６２】
制御部１３３Ａは、アクセス情報に含まれるアドレスを用いて記憶領域１３１Ａをアクセスする。そのアクセス結果として、キャッシュヒット／キャッシュミスの判定を行う（ステップＳ２０５）。キャッシュヒットした場合には、アクセス情報に含まれるデータを用いて、指定されるアドレスのキャッシュラインにデータを書き込み（更新）、データの共有化を行う（ステップＳ２０６）。そして、コントローラ１３２Ａは動作を終了する。
【００６３】
一方、キャッシュミスの場合には、制御部１３１Ａは、アクセス情報に含まれるアドレスのインデックスを参照してキャッシュラインを特定する（ステップＳ２０７）。第１の実施の形態では、２ウェイのセットアソシアティブ方式であるので、２つのキャッシュラインが特定される。
【００６４】
その後、制御部１３１Ａは、２つのキャッシュラインの中から、ＬＲＵにより一方を選択する（ステップＳ２０８）。そして、当該キャッシュラインにデータを書き込み（更新）、データの共有化を行う。そして、コントローラ１３２Ａは動作を終了する。
【００６５】
次に、データ共有の方式が監視先優先度方式の場合の、データの共有化を行うか否かの決定方法とその後の動作について図５を用いて説明する。なお、関係情報受信部１３６Ａは、スケジューリング専用のプロセッサ１００Ｄからキャッシュ識別番号と当該キャッシュ識別番号の優先度の組が設定された監視先優先度テーブルを関係情報として受信しているものとする。
【００６６】
データ共有の方式が監視先優先度方式の場合は、まず、受信部１３５Ａがアクセス情報を用いて記憶領域１３１Ａに格納されているデータを更新するか否かを判断する（ステップＳ３０１）。この判断は、アクセス情報の優先度（アクセス情報優先度）と、記憶領域１３１Ａに格納された更新候補データの優先度（記憶データ優先度）の大小関係に基づいてなされる。
【００６７】
即ち、受信部１３５Ａは、アクセス情報に追加されているキャッシュ識別番号を用いて、監視先優先度テーブルからアクセス情報優先度を求める。
【００６８】
また、制御部１３３Ａは、アクセス情報が有するアドレスのインデックスによりキャッシュラインを特定し、特定されたキャッシュラインに格納されているデータを更新される候補とする。次に、受信部１３５Ａは、更新候補データの優先度（記憶データ優先度）を求める。
【００６９】
ここで、監視先優先度方式において、キャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃの記憶領域は、キャッシュライン毎にキャッシュ識別番号を格納する領域を有する。このキャッシュ識別番号を格納する領域には、キャッシュラインに格納されているデータがアクセス情報により更新されていた場合に、そのアクセス情報の発信元であるキャッシュメモリ装置のキャッシュ識別番号が格納される。
【００７０】
そこで、受信部１３５Ａは、更新される候補であるデータ（キャッシュライン）と共に格納されたキャッシュ識別番号を用いて監視先優先度テーブルから記憶データ優先度を求めることができる。ここで、更新される候補であるデータ（キャッシュライン）と共にキャッシュ識別番号が格納されていない場合、そのデータはプロセッサ１００Ａの演算処理部１１０Ａによりアクセスされたものであり、その優先度は無限大とする。
【００７１】
なお、第１の実施形態に係るキャッシュメモリ装置は２ウェイのセットアソシアティブ方式であるため、アクセス情報が有するアドレスのインデックスから２つのキャッシュラインが特定され、キャッシュラインごとに記憶データ優先度が求められる。
【００７２】
そして、受信部１３５Ａは、アクセス情報優先度よりも優先度が小さい記憶データ優先度が少なくとも１つあった場合、アクセス情報を用いて記憶領域１３１Ａに格納されているデータの共有化を行うことを決定する（ステップＳ３０１のＹｅｓ）。
【００７３】
一方、アクセス情報優先度がいずれの記憶データ優先度よりも小さい場合は、データの共有化は行わず、コントローラ１３２Ａは動作を終了する（ステップＳ３０１のＮｏ）。
【００７４】
ステップＳ３０１においてデータの共有化を行うと決定した後、制御部１３３Ａは、複数の記憶データ優先度のうち優先度が最小のものが１つあるか複数あるかを調べる（ステップＳ３０２）。
【００７５】
記憶データ優先度が最小のキャッシュラインが１つの場合、当該キャッシュラインのデータを更新する（ステップＳ３０３）。一方、記憶データ優先度最小のキャッシュラインが複数あった場合、それらのキャッシュラインの中からＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）で１つを選択し当該キャッシュラインのデータの更新を行う（ステップＳ３０４）。その後、コントローラ１３２Ａは動作を終了する。
【００７６】
次に、第１の実施形態に係るマルチプロセッサシステムの動作時の関係情報の設定例について図１、表２〜表４を用いて説明する。
【００７７】
それぞれのキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃにおけるデータ共有方式が有効無効切り替え方式と監視先優先度方式の併用であるとする。この場合、スケジューリング用のプロセッサ１００Ｄにより、それぞれのキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃのキャッシュ識別番号と監視先優先度テーブルとが動的に制御される。
【００７８】
ここで、例えばプロセッサ１００Ａ、１００Ｂは共同でタスク１を処理しており、プロセッサ１００Ｃがタスク２を処理しているとする。また、タスク２の処理は、タスク１の処理結果に基づいて行われるものとする。
【００７９】
プロセッサ１００Ａ〜１００Ｃが上記の性質を持つタスク１、２を処理していることに基づき、プロセッサ１００Ｄは、キャッシュ識別番号、送信部と受信部との有効／無効、監視先優先度テーブルとを決定する。決定されたキャッシュ識別番号、送信部と受信部との有効／無効、監視先優先度テーブルの一例を表２〜表４に示す。なお、
表２は、それぞれのキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃのキャッシュ識別番号記憶部１２７Ａ〜１２７Ｃ、１３７Ａ〜１３７Ｃが有するキャッシュ識別番号を示す。表３は、プロセッサ１００Ａ〜１００Ｃのキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃにおける送信部と受信部の有効／無効の設定状態を示す。表４は、プロセッサ１００Ａ〜１００Ｃのキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃの監視先優先度テーブルを示す。
【表２】
2008152571.tif 000004
【表３】
2008152571.tif 000005
【表４】
2008152571.tif 000006
【００８０】
ここで、例えば、プロセッサ１００Ａがデータ用キャッシュメモリ装置１３０Ａからデータの読み出しを行った場合を考える。データ用キャッシュメモリ装置１３０Ａに対して読み出しが行われた場合、送信部１３４Ａはキャッシュ識別番号記憶部１３７Ａが有するキャッシュ識別番号「＃１２」をアクセス情報に追加し、そのアクセス情報をバス１５０に送信する。送信部１３４Ａにより送信されたアクセス情報は、バス１５０を介して、プロセッサ１００Ａ〜１００Ｃのキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ｂ、１３０Ｃの受信部に受信される。
【００８１】
表４に示すように、アクセス情報に追加されているキャッシュ識別番号「＃１２」が監視先優先度テーブルに存在しないキャッシュメモリ装置１２０Ａ〜１２０Ｃの受信部は、そのアクセス情報を無視する。一方、アクセス情報に追加されているキャッシュ識別番号「＃１２」が監視先優先度テーブルに存在するキャッシュメモリ装置１３０Ｂ、１３０Ｃの受信部は、そのアクセス情報を用いて記憶領域に格納されているデータの更新を行う（データの更新の方法については、上述した図５のステップＳ３０２〜Ｓ３０４の通りである）。
【００８２】
ここで、表４に示す通り、データ用キャッシュメモリ装置１３０Ｃにおける監視先優先度テーブルは、データ用キャッシュメモリ装置１３０Ｂのキャッシュ識別番号「＃２２」に対して優先度「１０」が設定され、データ用キャッシュメモリ装置１３０Ａのキャッシュ識別番号「＃１２」に対して優先度「５」と設定されているため、データ用キャッシュメモリ装置１３０Ａが送信するアクセス情報よりもデータ用キャッシュメモリ装置１３０Ｂのアクセス情報を優先的に使用して、データの共有化を行うことになる。
【００８３】
そして、プロセッサ１００Ａの演算処理部１１０Ａがデータ用キャッシュメモリ装置１３０Ａに対してアクセスを行ったときの情報は、共同でタスク１を処理しているプロセッサ１００Ｂのデータ用キャッシュメモリ装置１３０Ｂ、およびタスク２（タスク１の処理結果に基づいて処理される）を処理しているプロセッサＣのデータ用キャッシュメモリ装置１３０Ｃに送信され、データ共有化が実現される。
【００８４】
また同様に、プロセッサ１００Ｂの演算処理部１１０Ｂがデータ用キャッシュメモリ装置１３０Ｂに対してアクセスを行ったときのアクセス情報を用いて、監視先優先度テーブルにデータ用キャッシュメモリ装置１３０Ｂのキャッシュ識別番号「＃２２」を有するプロセッサ１００Ａ、１００Ｃのデータ用キャッシュメモリ装置１３０Ａ、１３０Ｃにおいてデータの共有化が行われる。
【００８５】
そして、プロセッサ１００Ｃがデータ用キャッシュメモリ装置１３０Ｃに対してアクセスを行ったときの情報は、表３に示す通り、プロセッサ１００Ｃのデータ用キャッシュメモリ装置１３０Ｃの送信部が「無効」であるためバス１５０に送信されることはない。プロセッサＣはタスク２を処理しており、タスク２の処理時に必要な命令、データを必要とする他のプロセッサがないからである。よって、プロセッサ１００Ｃのデータ用キャッシュメモリ装置１３０Ｃの送信部が「無効」に設定されていることから、無用な信号がバス１５０に送信されることがなく、バス１５０の帯域を有効に活用できる。
【００８６】
以上のような関係情報の設定およびデータ共有化の動作を行うことにより、タスク１を共同で処理しているプロセッサ１００Ａとプロセッサ１００Ｂは、お互いにデータ共有を行うことができ、キャッシュミスを低減できる。また、タスク２（タスク１の処理結果に基づいて処理される）を処理するプロセッサ１００Ｃは、タスク1の処理結果であるプロセッサ１００Ａ、１００Ｂのアクセス情報を得ることができるため、キャッシュミスを低減できる。
【００８７】
次に、スケジューリング専用のプロセッサ１００Ｄが、タスク１の処理終了が間近であると予測した場合を考える。また、プロセッサ１００Ｄのスケジューリング機能により、プロセッサ１００Ａによるタスク１の処理が終了した後、プロセッサ１００Ｃで処理中であるタスク２がプロセッサ１００Ａ、１００Ｃにより共同処理されると決定されているものとする。即ち、プロセッサ１００Ａは近い将来タスク１の処理からタスク２の処理へ移行することとなる。
【００８８】
そこで、スケジューリング専用のプロセッサ１００Ｄは、プロセッサ１００Ａの命令用キャッシュメモリ装置１２０Ａとデータ用キャッシュメモリ装置１３０Ａの監視先優先度テーブルの変更を行う。
【００８９】
ここで、プロセッサ１００Ａはタスク１の処理中であるので、共同でタスク１の処理を行っているプロセッサ１００Ｂの命令用キャッシュメモリ装置１２０Ｂとデータ用キャッシュメモリ装置１３０Ｂからのアクセス情報を優先的に使用しデータ共有化を行う必要がある。
【００９０】
しかし上記のデータ共有化のみでは、プロセッサ１００Ａの処理するタスク１がタスク２へ変更した場合、キャッシュミスが頻発する恐れがある。そのため、プロセッサ１００Ａの命令用キャッシュメモリ装置１２０Ａとデータ用キャッシュメモリ装置１３０Ａは、タスク２の処理を行っているプロセッサ１００Ｃの命令用キャッシュメモリ装置１２０Ｃとデータ用キャッシュメモリ装置１３０Ｃのアクセス情報を使用してデータ共有化を行う必要がある。
【００９１】
そこで、スケジューリング専用のプロセッサ１００Ｄは、プロセッサ１００Ａの命令用キャッシュメモリ装置１２０Ａとデータ用キャッシュメモリ装置１３０Ａの送信部と受信部の有効／無効の設定状態を表５のように、監視先優先度テーブルを表６のように変更する。
【表５】
2008152571.tif 000007
【表６】
2008152571.tif 000008
【００９２】
ここで、プロセッサ１００Ａのデータ用キャッシュメモリ装置１３０Ａの監視先優先度テーブルにおいて、プロセッサ１００Ｂのデータ用キャッシュメモリ装置１３０Ｂのキャッシュ識別番号「＃２１」の優先度が「５」で最大であり、データ用キャッシュメモリ装置１３０Ｂのアクセス情報を優先的に使用しデータ共有を行う。そのため、プロセッサ１００Ａとプロセッサ１００Ｂが共同処理を行っているタスク１の処理において、キャッシュミスを低減できる。
【００９３】
さらに、プロセッサ１００Ａのデータ用キャッシュメモリ装置１３０Ａの監視先優先度テーブルにおいて、プロセッサ１００Ｃのデータ用キャッシュメモリ装置１３０Ｃのキャッシュ識別番号「＃３１」の優先度が「３」であり、データ用キャッシュメモリ装置１３０Ｃのアクセス情報を使用しデータ共有を行う。ここで、データ用キャッシュメモリ装置１３０Ｃの優先度「３」は、データ用キャッシュメモリ装置１３０Ｂのアクセス情報よりも優先度（「５」）より低いため、データ用キャッシュメモリ装置１３０Ｂのアクセス情報により更新された記憶領域１３１Ａのデータが消去されることはない。そのため、タスク１の処理におけるキャッシュミスを増大させることなく、プロセッサ１００Ａがタスク１からタスク２の処理に移行したときのキャッシュミスを低減できる。
【００９４】
次に、プロセッサ１００Ａ、１００Ｂで共同処理していたタスク１の処理が終了した場合を考える。ここで、スケジューリング専用のプロセッサ１００Ｄにより、タスク２の処理は、プロセッサ１００Ｃ単独で行われていた状態からプロセッサ１００Ａ、１００Ｃの共同処理に移行されたものとする。また、プロセッサ１００Ｂでは、タスク２とは無関係のタスク３が処理されるものとする。
【００９５】
ここで、プロセッサ１００Ｂは、タスク２とは無関係のタスク３を処理しているため、データの共有化を行う必要がない。一方、プロセッサ１００Ａとプロセッサ１００Ｃは、タスク２を共同で処理するため、お互いにデータ共有化を行う必要がある。
【００９６】
そこで、スケジューリング専用のプロセッサ１００Ｄは、キャッシュ識別番号、送信部と受信部との有効／無効、監視先優先度テーブルとを表７〜表９に示すように変更する。
【００９７】
表７は、プロセッサ１００Ａ〜１００Ｃのキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃのキャッシュ識別番号記憶部が有するキャッシュ識別番号を示す。表８は、プロセッサ１００Ａ〜１００Ｃのキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃにおける送信部と受信部の有効／無効の設定状態を示す。表９は、プロセッサ１００Ａ〜１００Ｃのキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃの監視先優先度テーブルを示す。
【表７】
2008152571.tif 000009
【表８】
2008152571.tif 000010
【表９】
2008152571.tif 000011
【００９８】
ここで、表８に示すように、プロセッサ１００Ｂの命令用キャッシュメモリ装置１２０Ｂ、データ用キャッシュメモリ装置１３０Ｂの送信部と、受信部は「無効」に設定されている。また、表９に示すように、キャッシュメモリ装置１２０Ｂ、１３０Ｂの監視先優先度テーブルのエントリはすべて消去される。
【００９９】
また、表９に示すように、プロセッサ１００Ａのデータ用キャッシュメモリ装置１３０Ａの監視先優先度テーブルにおいて、プロセッサ１００Ｃの命令用キャッシュメモリ装置１２０Ａのキャッシュ識別番号「＃３１」の優先度が「５」と設定される。また、プロセッサ１００Ｃのデータ用キャッシュメモリ装置１３０Ａの監視先優先度テーブルにおいて、プロセッサ１００Ａのデータ用キャッシュメモリ装置１３０Ａのキャッシュ識別番号「＃４１」の優先度が「５」と設定される。
【０１００】
さらに、プロセッサ１００Ａの処理するタスク１がタスク２に切り替わった瞬間に、プロセッサ１００Ａの命令用キャッシュメモリ装置１２０Ａのキャッシュ識別番号が「＃４１」に、データ用キャッシュメモリ装置１３０Ａのキャッシュ識別番号が「＃４２」に変更される。
【０１０１】
このようにキャッシュ識別番号を変更すると、他のキャッシュメモリ装置１２０Ｂ、１２０Ｃ、１３０Ｂ、１３０Ｃにおいて、プロセッサ１００Ａがタスク１を処理していたときにデータ共有化を行ったデータと、プロセッサ１００Ａがタスク２を処理していたときにデータ共有化を行ったデータとを区別することができる。そのため、キャッシュメモリ装置１２０Ｂ、１２０Ｃ、１３０Ｂ、１３０Ｃにデータ共有化によって不要なデータが格納されることを防ぐことができる。
【０１０２】
表７〜表９に示すように、スケジューリング専用のプロセッサ１００Ｄが、キャッシュ識別番号と、送信部と受信部の有効／無効と、監視先優先度テーブルとを設定することにより、プロセッサ１００Ａとプロセッサ１００Ｃがお互いにデータ共有化を行い、キャッシュミスを低減できる。また、プロセッサ１００Ｂのキャッシュメモリ装置１２０Ｂ、１３０Ｂの送信部と受信部は「無効」に設定されており、アクセス情報をバス１５０に送信することがなく、無用なトラフィックを発生させることはない。
【０１０３】
以上、第１の実施の形態に係るマルチプロセッサシステムでは、それぞれのプロセッサ１００Ａ〜１００Ｃがアクセスした情報が、それぞれのプロセッサ１００Ａ〜１００Ｃに固有のキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃに格納されるだけではなく、さらに他のプロセッサ１００Ａ〜１００Ｃがそれぞれの固有なキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃにアクセスした情報を前もって格納することができる。
【０１０４】
このため、タスクを共同で処理する場合、タスクを処理するプロセッサが変更される場合など、キャッシュミスの低減が実現でき、マルチプロセッサシステムの動作速度の向上が実現できる。
【０１０５】
なお、それぞれのキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃの送信部の有効／無効を切り替え可能であるため、バス１５０のトラフィックの増加を抑制することができる。よって、マルチプロセッサシステム全体が、データ共有化を行うことによるオーバーヘッドが発生するために、性能低下を招くことも無い。
【０１０６】
また、それぞれのキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃの受信部の有効／無効を切り替え可能であり、キャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃの記憶領域に対する無駄なデータの書き込みを低減できる。
【０１０７】
また、通知先テーブル、監視先テーブルを利用すれば、プロセッサ１００Ａ〜１００Ｃが使用したデータを特定の相手のみに送信することができる。よって、キャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃの記憶領域１２１Ａ〜１２１Ｃ、１３１Ａ〜１３１Ｃに対する無駄なデータの書き込みをさらに低減できる。
【０１０８】
また、監視先優先度テーブルを利用することにより、プロセッサ１００Ａ〜１００Ｃにより使用される確率の大きいデータを、キャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃが優先的に受け取ることができる。
【０１０９】
また、スケジューリング専用のプロセッサ１００Ｄをハードウェアにより実現することもできる。この場合、プロセッサ１００Ｄで動作するプログラムではなく、ハードウェアでスケジューリングを行えるため、高速なスケジューリングが実現できる。
【０１１０】
（第２の実施形態）
図６は、本発明の第２の実施形態に係るマルチプロセッサシステムのブロック図を示す。
【０１１１】
本発明の第２の実施形態に係るマルチプロセッサシステムは、例えば演算処理部１１０Ａ〜１１０Ｃを有する３つのプロセッサ１００Ａ〜１００Ｃと、それぞれのプロセッサ１００Ａ〜１００Ｃに固有なキャッシュメモリ装置１２０Ａ〜１２０Ｃと、１３０Ａ〜１３０Ｃと、プロセッサ１００Ａ〜１００Ｃおよびキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃとバス１５０を介して接続された主記憶装置２００とを備えている。
【０１１２】
即ち、本発明の第２の実施形態に係るマルチプロセッサシステムは、第１の実施形態に係るマルチプロセッサシステムと比較して、スケジューリング専用のプロセッサが無い点が異なる。
【０１１３】
そのため、プロセッサ１００Ａ〜１００Ｃで動作するオペレーティングシステム（ＯＳ）は、実行待機状態にあるタスクをそれぞれのプロセッサ１００Ａ〜１００Ｃに割り当てるスケジューリングを行う機能が導入されている。
【０１１４】
また、プロセッサ１００Ａは、スケジューリングと同時に、キャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃに対して関係情報を送信する。
【０１１５】
プロセッサ１００Ａがキャッシュメモリ装置１２０Ａ、１３０Ａに対して関係情報を送信する際には、第１の実施形態に係るマルチプロセッサシステムを説明する際に示した第３の動的変更手法が用いられる。
【０１１６】
プロセッサ１００Ａがキャッシュメモリ装置１２０Ｂ、１２０Ｃ、１３０Ｂ、１３０Ｃに対して関係情報を送信する際には、第１の実施形態に係るマルチプロセッサシステムを説明する際に示した第１乃至第３のいずれかの動的変更手法が用いられる。なお、プロセッサ１００Ｂ、１００Ｃについても同様である。
【０１１７】
以上、第２の実施の形態に係るマルチプロセッサシステムでは、それぞれのプロセッサにスケジューリング機能を導入することにより、スケジューリング専用のプロセッサが不要となる。さらに、タスクを共同で処理する場合、タスクを処理するプロセッサが変更される場合など、キャッシュミスの低減が実現でき、マルチプロセッサシステムの動作速度の向上が実現できる。
【０１１８】
（第３の実施形態）
図７は、本発明の第３の実施形態に係るマルチプロセッサシステムのブロック図を示す。
【０１１９】
本発明の第３の実施形態に係るマルチプロセッサシステムは、例えば演算処理部１１０Ａ〜１１０Ｃを有する３つのプロセッサ１００Ａ〜１００Ｃと、スケジューリング専用のプロセッサ１００Ｄと、それぞれのプロセッサ１００Ａ〜１００Ｃに固有なキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃと、プロセッサに内蔵されない拡張用キャッシュメモリ装置１４０と、プロセッサ１００Ａ〜１００Ｃおよびキャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃとバス１５０を介して接続された主記憶装置２００とを備えている。
【０１２０】
即ち、本発明の第３の実施形態に係るマルチプロセッサシステムは、第１の実施形態に係るマルチプロセッサシステムと比較して、プロセッサに内蔵されない拡張用キャッシュメモリ装置１４０を備える点が異なる。
【０１２１】
また、拡張用キャッシュメモリ装置１４０の構成は、キャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃの構成と比較して、送信部を備えない点のみが異なる。プロセッサに内蔵されないため、プロセッサからのアクセスが発生せず、送信部が不要だからである。
【０１２２】
ここで、スケジューリング専用のプロセッサ１００Ｄが送信する関係情報は、キャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃの間でアクセスされるデータの関連性に基づいて決められる。さらに、第３の実施形態に係るマルチプロセッサシステムでは拡張用キャッシュメモリ装置１４０がバス１５０に接続されたため、スケジューリング専用のプロセッサ１００Ｄが送信する関係情報は、キャッシュメモリ装置１２０Ａ〜１２０Ｃ、１３０Ａ〜１３０Ｃにおいてアクセスされるデータのうち拡張用キャッシュメモリ装置１４０に格納するデータを指定することとなる。
【０１２３】
拡張用キャッシュメモリ装置１４０は、関係情報により定められる特定のキャッシュメモリ装置からのアクセス情報によりデータ更新を行い、データを蓄積する。その後、拡張用キャッシュメモリ装置１４０に蓄積されたデータを使用する可能性の大きいプロセッサが固有のキャッシュメモリ装置に対してアクセスを行いキャッシュミスであった場合に、主記憶装置２００にアクセスする前に拡張用キャッシュメモリ装置１４０にアクセスする。
【０１２４】
第３の実施形態に係るマルチプロセッサシステムがこのような動作をすることにより、主記憶装置２００に対するアクセス頻度を低減し、マルチプロセッサシステムの動作速度を向上させることができる。
【０１２５】
さらに、本発明は以上の構成に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化可能である。また、実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、本実施の形態に示される全構成要素からいくつかの要素を削除しても良い。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
【図面の簡単な説明】
【０１２６】
【図１】第１の実施の形態に係るマルチプロセッサシステムの構成を示すブロック図。
【図２】第１の実施の形態に係るコントローラの構成を示すブロック図。
【図３】第１の実施の形態に係るコントローラがアクセス情報を送信する時の動作を示すフローチャート。
【図４】第１の実施の形態に係るコントローラがアクセス情報を受信する時の動作を示すフローチャート。
【図５】第１の実施の形態に係る監視先優先度方式のコントローラがアクセス情報を受信する時の動作を示すフローチャート。
【図６】第２の実施の形態に係るマルチプロセッサシステムの構成を示すブロック図。
【図７】第３の実施の形態に係るマルチプロセッサシステムの構成を示すブロック図。
【符号の説明】
【０１２７】
１００Ａ〜１００Ｄ  プロセッサ
１１０Ａ〜１１０Ｃ  演算処理部
１２０Ａ〜１２０Ｄ  命令用キャッシュメモリ装置
１３０Ａ〜１３０Ｄ  データ用キャッシュメモリ装置
１２１Ａ〜１２１Ｃ、１３１Ａ〜１３１Ｃ  記憶領域
１２２Ａ〜１２２Ｃ、１３２Ａ〜１３２Ｃ  コントローラ
１３３Ａ  制御部
１３４Ａ  送信部
１３５Ａ  受信部
１３６Ａ  関係情報受信部
１３７Ａ  キャッシュ識別番号記憶部
１４０  拡張用キャッシュメモリ装置
１５０  バス
２００  主記憶装置
【図１】
2008152571.tif 000012
【図２】
2008152571.tif 000013
【図３】
2008152571.tif 000014
【図４】
2008152571.tif 000015
【図５】
2008152571.tif 000016
【図６】
2008152571.tif 000017
【図７】
2008152571.tif 000018