(57)【要約】【課題】複数のプロセッシングユニットがキャッシュデータを共有している場合のキャッシュコヒーレンシ維持のための無駄な動作を減少させる。【解決手段】キャッシュメモリを持つ複数のプロセッシングユニットが、相互接続手段を介して相互に接続され、また、複数のユニットで共有する主記憶150に接続されて構成されている。マルチプロセッサシステムを構成する複数のプロセッシングユニットは、キャッシュメモリに保持されるキャッシュラインを管理するため、主記憶アドレス情報の一部のビットフィールドからなるタグ情報、そのキャッシュラインのデータがどのプロセッシングユニットと共有されているかを示す状態情報をキャッシュラインと共に保持する。状態情報105は、どのプロセッシングユニットとキャッシュラインを共有しているかを示す情報をS1〜S4ビットに保持し、また、そのキャッシュラインのデータが書き替えられたか否かの情報をmビットに保持している。【選択図】図１
2009054000.tif 000002
【特許請求の範囲】
【請求項１】
それぞれがキャッシュメモリ及び１または複数のプロセッサを有する複数のプロセッシングユニットと、これらの複数のプロセッシングユニットで共有する主記憶とが相互接続手段を介して接続されて構成されるマルチプロセッサシステムにおいて、
前記プロセッシングユニットのそれぞれのキャッシュメモリに保持するキャッシュライン毎に、そのキャッシュラインに保持するデータが、他のどのプロセッシングユニットと共有状態にあるかを示す状態情報を設け、複数のプロセッシングユニット相互間で共有されるデータを持つキャッシュラインに対してあるプロセッシングユニットが書き込みを行う場合、該あるプロセッシングユニットは、前記相互接続手段を介して他のプロセッシングユニットに、前記状態情報含むキャッシュコヒーレンシ維持のための情報を送信し、共有データを持つ他のプロセッシングユニットがキャッシュコヒーレンシ維持動作を行うことを特徴とするマルチプロセッサシステム。
【請求項２】
前記相互接続手段が、前記プロセッシングユニット同士を１対１形式で接続している接続手段である場合、前記あるプロセッシングユニットは、キャッシュデータを共有しているプロセッシングユニットに対してキャッシュコヒーレンシ維持のための情報の送信を行うことを特徴とする請求項１記載のマルチプロセッサシステム。
【請求項３】
それぞれがキャッシュメモリ及び１または複数のプロセッサを有する複数のプロセッシングユニットと、これらの複数のプロセッシングユニットで共有する主記憶とが相互接続手段を介して接続されて構成されるマルチプロセッサシステムにおけるキャッシュ管理方法において、
前記プロセッシングユニットのそれぞれのキャッシュメモリに保持するキャッシュライン毎に、そのキャッシュラインに保持するデータが、他のどのプロセッシングユニットと共有状態にあるかを示す状態情報を設け、複数のプロセッシングユニット相互間で共有されるデータを持つキャッシュラインに対してあるプロセッシングユニットが書き込みを行う場合、該あるプロセッシングユニットは、前記相互接続手段を介して他のプロセッシングユニットに、前記状態情報含むキャッシュコヒーレンシ維持のための情報を送信し、共有データを持つ他のプロセッシングユニットがキャッシュコヒーレンシ維持動作を行うことを特徴とするキャッシュ管理方法。
【請求項４】
前記相互接続手段が、前記プロセッシングユニット同士を１対１形式で接続している接続手段である場合、前記あるプロセッシングユニットは、キャッシュデータを共有しているプロセッシングユニットに対してキャッシュコヒーレンシ維持のための情報の送信を行うことを特徴とする請求項３記載のキャッシュ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチプロセッサシステム及びキャッシュ管理方法に係り、特に、マルチプロセッサシステムを構成する複数のプロセッシングユニット間でキャッシュコヒーレンシを保ちながら処理を行うマルチプロセッサシステム及びキャッシュ管理方法に関する。
【背景技術】
【０００２】
図５は従来技術によるマルチプロセッサシステムの構成例を示すブロック図であり、以下、図５を参照して従来技術について説明する。図５に示すマルチプロセッサシステムは、４台のプロセッシングユニットを備えた場合の例である。
【０００３】
従来技術によるマルチプロセッサシステムは、図５に示すように、キャッシュメモリを持つ複数のプロセッシングユニット２００、２１０、２２０、２３０が、それぞれの接続手段１０８、１１８、１２８、１３８、及び、相互接続手段１４０を介して相互に接続され、また、アドレス空間を複数のプロセッシングユニットで共有する主記憶１５０に接続されて構成されている。マルチプロセッサシステムを構成する複数のプロセッシングユニット２００〜２３０は、プロセッシングユニット２００を代表として説明すると、複数のプロセッサ１０１、１０２と、キャッシュメモリ２０３とが接続手段１０７により接続されて構成されている。他のプロセッシングユニットも、異なる符号が付されているが、全て同様な構成を有して構成されている。
【０００４】
前述したように構成されるマルチプロセッサシステムにおいて、各プロセッシングユニット２００、２１０、２２０、２３０のキャッシュメモリ２０３、２１３、２２３、２３３の相互間と主記憶１５０との間のキャッシュコヒーレンシ維持を行う場合、相互接続手段１４０を介した情報の授受によるバススヌーピング方式によるキャッシュコヒーレンシ維持動作を行う方法が用いられるのが一般的である。
【０００５】
バススヌーピング方式は、あるプロセッサ、例えば、プロセッサ１０１がキャッシュメモリ２０３に書き込みを行う際、書き込み対象のキャッシュラインのデータが他プロセッシングユニットのキャッシュメモリと共有されていることを当該キャッシュラインの状態情報が示している場合に、アクセスするアドレスやアクセスの種類等の情報を持ったキャッシュコヒーレンシ維持のための情報を、相互接続手段１４０を介して他プロセッシングユニットに送出することにより、キャッシュコヒーレンシ維持動作を行うものである。
【０００６】
データをキャッシュメモリに登録し、または、その登録を破棄する場合、一般に、そのデータは、キャッシュライン単位に管理される。管理するための情報としては、主記憶アドレス情報の一部のビットフィールドからなるタグ情報や、キャッシュラインへのデータ登録状況を示す状態情報が使用される。プロセッシングユニット２００のキャッシュメモリ２０３に付いて言えば、キャッシュメモリ２０３に保持される各キャッシュライン１０６には、タグ情報１０４と状態情報２０５とが付与されている。
【０００７】
図６は従来技術の場合のキャッシュラインの状態を管理する状態情報の構成例を示す図である。この図６に示す状態情報は、一般的なＭＥＳＩプロトコルを利用した場合のキャッシュラインの状態を管理する状態情報を示している。
【０００８】
キャッシュコヒーレンシ維持方式の１つであるＭＥＳＩプロトコルを利用する場合、図６に示すように、Invalid 、Exclusive 、Shared、Modifiedの４つの状態を２ビット（ｓｔ０、ｓｔ１）で表してキャッシュラインの状態を管理する。これらの状態が持つ意味は、それぞれ、「キャッシュラインのデータが無効」、「他のキャッシュメモリと非共有で無変更のデータを持つ」、「他のキャッシュメモリと共有で無変更のデータを持つ」、「他のキャッシュメモリと非共有で変更済みのデータを持つ」である。
【０００９】
前述した従来技術は、マルチプロセッサシステムを構成するプロセッシングユニットの数が多くなると、内部のプロセッサの動作に伴うキャッシュコヒーレンシ維持のためのキャッシュメモリ相互間での情報の授受が増加し、タグ情報、状態情報をアクセスする頻度が増加してしまうという問題点を生じさせる。
【００１０】
前述したような問題を解決することができる他の従来技術として、例えば、特許文献１等に記載された技術が知られている。この従来技術は、キャッシュコヒーレンシ制御情報をヒストリーテーブルに記録しておき、キャッシュコヒーレン制御要求を受け取ったときに、そのヒストリーテーブルをチェックすることにより、同一のキャッシュラインに対するキャッシュコヒーレンシ制御を２回目以降行わないようにして、キャッシュコヒーレンシ制御動作を削減するというものである。
【００１１】
また、他の従来技術として、例えば、特許文献２等に記載された技術が知られている。この従来技術は、ディレクトリテーブルを用意し、そのテーブル内容を確認することにより、キャッシュコヒーレンシ維持動作の対象プロセッシングユニットを削減するというものである。
【特許文献１】特開平９−２９３０６０号公報
【特許文献２】特開平１０−５５３１３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
前述したＭＥＳＩプロトコルを用いる従来技術は、キャッシュラインの状態情報を、例えば、図６により説明したように２ビットで構成することができる。ここで、あるプロセッサ、例えば、プロセッサ１０１が、共有状態にあるキャッシュライン、すなわち、状態がSharedであるキャッシュラインに対して書き込みを行った場合のキャッシュコヒーレンシ維持動作について説明する。
【００１３】
共有されているキャッシュラインにプロセッシングユニット２００内のプロセッサ１０１が書き込みを行ったとき、他のプロセッシングユニット２１０、２２０、２３０が当該キャッシュラインと同じデータを共有しているキャッシュライン（共有キャッシュラインと呼ぶ）に対して書き込みをしないことを保障しつつ書き込みを行い、同時に共有キャッシュラインを登録破棄させて、その状態をInvalid の状態にする必要がある。このため、プロセッシングユニット２００は、相互接続手段１４０に対してキャッシュコヒーレンシ維持のための情報を送出し、それにより他のプロセッシングユニット２１０、２２０、２３０が当該共有キャッシュラインへの書き込みを行わないようにする。
【００１４】
同時期に複数のプロセッシングユニットが共有キャッシュラインに書き込みを行おうとする可能性があるが、その際には、書き込みを許可するプロセッシングユニットを選択する方法をとることができる。このプロセッシングユニットを選択する方法としては、例えば、相互接続手段１４０を共有バス構造とし、バス使用権を確保したプロセッシングユニットに書き込み権を与えるという方法等がある。この場合、書き込み権を取得することができなかったプロセッシングユニットは、当該キャッシュコヒーレンシ維持動作が終了するまで、書き込み動作が延期させられることになる。
【００１５】
そして、さらに、他のプロセッシングユニット２１０、２２０、２３０は、プロセッシングユニット２００から送出されたキャッシュコヒーレンシ維持のための情報を使用して、キャッシュメモリのタグ情報と状態情報とをチェックし、自分が共有キャッシュラインを保持していた場合に、そのキャッシュラインの登録を破棄する。一方で、プロセッシングユニット２００内のキャッシュメモリ２０３は、書き込み権を得て書き込みをした結果、当該キャッシュラインの状態をModifiedとする。
【００１６】
前述した方法は、プロセッシングユニット２００が、キャッシュメモリ２０３への書き込みに伴い送出するキャッシュコヒーレンシ維持のための情報を、他の全てのプロセッシングユニットが取り込んでタグ情報と状態情報とのチェックを行うことになるが、キャッシュラインを共有していないプロセッシングユニットもこのチェックを行うことになる。このため、キャッシュラインを共有していないプロセッシングユニットは、無駄な動作を行うことになり、タグ情報と状態情報とのチェック動作を無駄に実行する分だけ、本来実行しなければならない処理動作が遅くなり、情報処理速度が低下してしまうと共に、無駄なチェック動作による回路動作により無駄に電力を消費してしまうことになる。
【００１７】
さらに、前述した従来技術は、相互接続手段１４０がプロセッシングユニット相互間を１対１で接続する形式の場合、相互接続手段１４０を介したキャッシュコヒーレンシ維持のための情報の授受も無駄に行われる部分が存在し、前述と同様に本来実行しなければならない通信の処理速度を低下させ、また、必要な通信のためのバンド幅確保のために回路を高速動作させるために動作マージンが減少して信頼性を低減させ、または、必要な通信バンド幅確保のために回路、配線物量を増大させなければならす、製造原価が増大するという問題を生じさせてしまう。
【００１８】
本発明の目的は、前述したような点に鑑みて、キャッシュコヒーレンシ維持のための無駄な動作を減少させ、その結果として情報処理の速度を高速化し、また、電力消費を低減させ、プロセッシングユニット相互間の通信の信頼性を上げ、あるいは、製造原価を低減することのできるマルチプロセッサシステム及びキャッシュ管理方法を提供することにある。
【課題を解決するための手段】
【００１９】
本発明によれば前記目的は、それぞれがキャッシュメモリ及び１または複数のプロセッサを有する複数のプロセッシングユニットと、これらの複数のプロセッシングユニットで共有する主記憶とが相互接続手段を介して接続されて構成されるマルチプロセッサシステムにおいて、前記プロセッシングユニットのそれぞれのキャッシュメモリに保持するキャッシュライン毎に、そのキャッシュラインに保持するデータが、他のどのプロセッシングユニットと共有状態にあるかを示す状態情報を設け、複数のプロセッシングユニット相互間で共有されるデータを持つキャッシュラインに対してあるプロセッシングユニットが書き込みを行う場合、該あるプロセッシングユニットは、前記相互接続手段を介して他のプロセッシングユニットに、前記状態情報含むキャッシュコヒーレンシ維持のための情報を送信し、共有データを持つ他のプロセッシングユニットがキャッシュコヒーレンシ維持動作を行うことにより達成される。
【発明の効果】
【００２０】
本発明によれば、あるプロセッシングユニットが、自ユニットのキャッシュメモリへ書き替えのための書き込みを行った場合に、書き込み対象のキャッシュラインのデータを共有していない他のプロセッシングユニットが、無駄なキャッシュコヒーレンシ維持のためのタグ情報と状態情報のチェックを行わないようにすることができ、その結果として情報処理の速度を高速化することができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明によるマルチプロセッサシステム及びキャッシュ管理方法の実施形態を図面により詳細に説明する。
【００２２】
図１は本発明の一実施形態によるマルチプロセッサシステムの構成を示すブロック図である。図１に示すマルチプロセッサシステムは、４台のプロセッシングユニットを備えた場合の例であるが、プロセッシングユニットをさらに多数設けて構成してもよい。
【００２３】
本発明の一実施形態によるマルチプロセッサシステムは、図５に示す従来技術の場合と同様に、キャッシュメモリを持つ複数のプロセッシングユニット１００、１１０、１２０、１３０が、それぞれの接続手段１０８、１１８、１２８、１３８、及び、相互接続手段１４０を介して相互に接続され、また、アドレス空間を複数のプロセッシングユニットで共有する主記憶１５０に接続されて構成されている。マルチプロセッサシステムを構成する複数のプロセッシングユニット１００、１１０、１２０、１３０は、プロセッシングユニット１００を代表として説明すると、複数のプロセッサ１０１、１０２と、キャッシュメモリ１０３とが接続手段１０７により接続されて構成されている。他のプロセッシングユニットも、異なる符号が付されているが、全て同様な構成を有して構成されている。
【００２４】
そして、図５に示す従来技術の場合と同様に、各プロセッシングユニット１００、１１０、１２０、１３０内のキャッシュメモリ１０３、１１３、１２３、１３３に保持されるキャッシュライン１０６、１１６、１２６、１３６を管理するための情報として、主記憶アドレス情報の一部のビットフィールドからなるタグ情報や、キャッシュラインへのデータ登録状況を示す状態情報が使用される。プロセッシングユニット１００のキャッシュメモリ１０３に付いて言えば、キャッシュメモリ１０３に保持される各キャッシュライン１０６には、タグ情報１０４と状態情報１０５とが付与されている。
【００２５】
本発明の実施形態では、キャッシュメモリ１０３の状態情報１０５を、図１に示すように、従来技術によるキャッシュラインの状態情報を拡張してどのプロセッシングユニットとキャッシュラインを共有しているかを示す情報を保持することとしている。この例の場合、状態情報１０５の中のｓ０ビットは、プロセッシングユニット１００が当該キャッシュラインにデータを持つことを意味し、ｓ１ビットは、プロセッシングユニット１１０が当該キャッシュラインに保持されるデータと同じデータを共有しているか否かを示し、同様に、ｓ２ビットは、プロセッシングユニット１２０が、ｓ３ビットは、プロセッシングユニット１３０が当該キャッシュラインに保持されるデータと同じデータを共有しているか否かを示している。また、ｍビットは、そのキャッシュラインのデータが書き替えられた（変更された）か否かを示している。
【００２６】
このように、本発明の実施形態は、キャッシュラインの共有状態を従来技術の場合より細かく管理することにより、チェック動作を行うべきプロセッシングユニットとチェック動作を行う必要のないプロセッシングユニットとを区別し、キャッシュコヒーレンシ維持のための情報を送出する際に、チェック動作を行うべきプロセッシングユニットを特定することを可能とし、課題の欄で説明したような従来技術の場合のような無駄なチェック動作が発生することを防止している。
【００２７】
図２、図３は本発明の実施形態でのキャッシュラインの状態を管理する状態情報の構成例を示す図である。図２に示す状態情報の例は、一般的なＭＥＳＩプロトコルを使用した場合のキャッシュラインの状態を管理する状態情報の例を示しており、図３に示す状態情報の例は、ＭＯＥＳＩプロトコルを使用した場合のキャッシュラインの状態を管理する状態情報の例を示している。
【００２８】
図２、図３に示す状態情報の例は、プロセッシングユニット１００のキャッシュメモリ１０３におけるキャッシュライン１０６の状態情報を示しており、プロセッシングユニット１００のキャッシュメモリ１０３に登録されて有効なキャッシュラインがなく、また、他のプロセッシングユニットのキャッシュメモリにも有効なキャッシュラインがない「Invalid 」の状態、プロセッサ１０１が主記憶１５０から読み出したデータをキャッシュメモリ１０３に登録した「Exclusive 」の状態、他のプロセッシングユニットがキャッシュメモリ１０３内のキャッシュラインのデータを共有している状況を示す「Shared」の状態、「Exclusive 」の状態で、プロセッサ１０１がキャッシュラインのデータを書き替えた「Modified」の状態を示している。さらに、図３に示す状態情報では、書き替えられたキャッシュラインのデータを、どのプロセッシングユニットが共有しているかまで判るように「Owned 」の状態をも管理することができる。
【００２９】
図４は図１に示すマルチプロセッサシステムで処理が行われた場合のプロセッシングユニット１００のキャッシュメモリ１０３における状態情報の変化を示す図であり、次に、この図を参照して、本発明の実施形態によるキャッシュメモリの共有状態の維持管理の方法について説明する。
【００３０】
いま、プロセッシングユニット１００のキャッシュメモリ１０３に登録されて有効なキャッシュラインがなく、また、他のプロセッシングユニットのキャッシュメモリにも有効なキャッシュラインがないものとすると、プロセッシングユニット１００のキャッシュメモリ１０３の状態情報１０５は、図４に６００として示すような「Invalid 」の状態にある。
【００３１】
この状態からプロセッシングユニット１００のプロセッサ１０１がキャッシュメモリ１０３を読み出しアクセスを行った結果キャッシュミスになり、主記憶１５０から読み出されたデータがキャッシュメモリ１０３に登録されると、そのキャッシュラインの状態情報１０５は、図４に示す６００の状態から６０１として示すような「Exclusive 」の状態に移行する。
【００３２】
次に、キャッシュラインの共有状態が発生する例として、他のプロセッシングユニットのプロセッサ、例えば、プロセッサ１１１が、前記プロセッサ１０１と同じデータを読み出すべくキャッシュメモリ１１３をアクセスしたとする。このアクセスは、キャッシュミスになり、プロセッシングユニット１１０は主記憶に対する読み出しアクセスを行うため相互接続手段１４０に主記憶アクセス情報を送出する。この主記憶アクセス情報には、プロセッシングユニット１１０が送出したことを示す情報が付随している。
【００３３】
各プロセッシングユニット１００、１２０、１３０は、相互接続手段１４０の情報を監視しており、主記憶アクセス情報があった場合、それぞれ自キャッシュメモリ１０３、１２３、１３３に当該主記憶アクセス情報が示すアドレスのデータが登録されているか否かをチェックする。プロセッシングユニット１００は、このチェックにより、自ユニット内のキャッシュメモリ１０３に同一アドレスのデータが登録されていることが判るので、相互接続手段１４０にインターベンション情報を送出する。
【００３４】
本発明の実施形態では、プロセッシングユニット１００は、そのとき、自ユニット内のキャッシュメモリ１０３が保持していたキャッシュラインの状態１０５のうち、共有状態を示す情報ｓ０、ｓ１、ｓ２、ｓ３を修正し、図４に６０２として示すような「Shared」の状態にし、この新たな状態情報をキャッシュラインの状態１０５に記憶し、また、前記インターベンション情報にこの新たな状態情報ｓ０、ｓ１、ｓ２、ｓ３を付加して送出する。
【００３５】
主記憶１５０は、相互接続手段１４０を介してこのインターベンション情報を得ることにより、前述したプロセッシングユニット１１０による主記憶アクセスを中断する。同様に、前述のインターベンション情報を得たプロセッシングユニット１１０は、当該インターベンション情報に含まれているデータを自ユニットのキャッシュラインに登録し、このとき、そのインターベンション情報に付随している共有状態を示す情報をキャッシュメモリ１１３の状態１１５として記憶する。これにより、キャッシュメモリ１０３と１１３との状態情報は、共に図４に６０２として示す「Shared」状態に移行したことになる。
【００３６】
次に、この共有状態のキャッシュラインに対して、あるプロセッサ、例えば、プロセッサ１０１が書き込みを行う場合を説明する。プロセッサ１０１によるキャッシュメモリ１０３への書き込みに伴い、プロセッシングユニット１００は、前述の方法等によって書き込み権を取得しキャッシュラインに書き込みを行う。その際、プロセッシングユニット１００は、相互接続手段１４０に送出されるキャッシュコヒーレンシ維持のための情報と共に、キャッシュラインの状態情報１０５のうちの共有状態情報ｓ０、ｓ１、ｓ２、ｓ３を何らかの形で表現して送出する。
【００３７】
プロセッシングユニット１１０、１２０、１３０は、相互接続手段１４０を介してキャッシュコヒーレンシ維持のための情報を受け取ると、それに付随する共有状態情報ｓ０、ｓ１、ｓ２、ｓ３により自キャッシュメモリがコヒーレンシ維持のためタグ情報と状態情報とのチェック動作を行う必要があるか否かを判定する。
【００３８】
相互接続手段１４０が共有バス形式の場合は、共有状態情報ｓ０、ｓ１、ｓ２、ｓ３の４ビット分の情報がキャッシュコヒーレンシ維持のための情報に付加されて相互接続手段１４０を介して他のプロセッシングユニット１１０、１２０、１３０に送られる。そして、このキャッシュコヒーレンシ維持のための情報を受け取ったプロセッシングユニット１１０、１２０、１３０は、付加されている状態情報の自プロセッシングユニットに対応する情報が、自ユニットのキャッシュメモリのキャッシュラインと共有されていることを示しているかを判定し、共有している場合に、キャッシュコヒーレンシ維持のため動作、すなわち、タグ情報と状態情報とのチェック動作を実行し、そうでない場合、キャッシュコヒーレンシ維持のため動作を行わない。
【００３９】
また、相互接続手段１４０がプロセッシングユニット１００、１１０、１２０、１３０と主記憶１５０との１対１接続のような非共有バス形式の場合、共有状態情報ｓ０、ｓ１、ｓ２、ｓ３が示す自プロセッシングユニット以外の共有キャッシュラインを持つプロセッシングユニット、すなわち、プロセッシングユニット１１０のみにキャッシュコヒーレンシ維持のための情報を送る。これを受けたプロセッシングユニット１１０は、キャッシュコヒーレンシ維持のため動作すなわち、タグ情報と状態情報とのチェック動作を行う。それ以外のプロセッシングユニットは、キャッシュコヒーレンシ維持のための情報を受け取ることはなく、従って何の処理動作も行う必要がない。
【００４０】
プロセッシングユニット１１０は、キャッシュコヒーレンシ維持のためのタグ情報と状態情報とのチェック動作の結果、共有状態にあるキャッシュラインを発見し、そのキャッシュラインのデータを破棄し、それに伴ってそのキャッシュラインの状態情報を「Invalid 」に変更する。一方、プロセッシングユニット１００は、キャッシュラインへの書き込みに伴い、そのキャッシュラインの状態情報を図４に６０３として示す「Modified」の状態にする。
【００４１】
前述したように本発明の実施形態は、キャッシュラインのデータの共有状態を維持管理して利用することとしているため、共有状態にあるキャッシュラインに対して書き込みを行った際のキャッシュコヒーレンシ維持のためのタグ情報と状態情報とのチェック動作を削減することができ、また、相互接続手段１４０が非共有バス形式の場合、キャッシュコヒーレンシ維持情報を送る必要のないプロセッシングユニットとの通信処理を削減することができる。
【００４２】
前述した本発明の実施形態によれば、あるプロセッシングユニットが、自ユニットのキャッシュメモリへ書き替えの書き込みを行った場合に、書き込み対象のキャッシュラインのデータを共有していない他のプロセッシングユニットが、無駄なキャッシュコヒーレンシ維持のためのタグ情報と状態情報のチェックを行わないようにすることができ、その結果として情報処理の速度を高速化することができる。
【００４３】
すなわち、前述した本発明の実施形態によれば、別に用意するテーブル等を参照してキャッシュコヒーレンシ維持動作対象のプロセッシングユニットを選択するのではなく、キャッシュラインの状態情報を数ビット拡張することにより、キャッシュコヒーレンシ維持動作を引き起こすキャッシュアクセスを行ったときに、直ちにキャッシュコヒーレンシ維持動作対象のプロセッシングユニットを特定することができるため、従来技術の場合に比較して、より高速にキャッシュコヒーレンシ維持動作を実行することができ、また、余分な動作を削減することができる。
【００４４】
また、本発明の実施形態によれば、プロセッシングユニット相互間の相互接続手段が１対１接続のような非共有バス形式の場合にも、従来技術により説明したような余分な通信動作を削減することができる。
【００４５】
前述したように、本発明の実施形態は、無駄な動作を削減した結果として、その削減分を本来実行すべきキャッシュ状態管理、利用動作やプロセッシングユニット相互間の通信処理に割り振ることができるようになるため、マルチプロセッサシステムにおける情報処理速度を向上させることができるという効果を得ることができる。
【００４６】
また、前述した本発明の実施形態は、無駄な動作を削減したことを情報処理速度の向上のために使用する代わりに、必要なバンド幅の低減に利用するようにすることもでき、この場合、回路動作周波数の低減、通信動作周波数の低減を図ることができ、結果として動作マージン向上の効果を得ることができる。さらに、必要なバンド幅の低減を周波数低減ではなく、回路、配線物量の削減に利用すれば、マルチプロセッサシステムの製造原価の低減を図ることができるという効果を得ることができる。
【図面の簡単な説明】
【００４７】
【図１】本発明の一実施形態によるマルチプロセッサシステムの構成を示すブロック図である。
【図２】本発明の実施形態でのキャッシュラインの状態を管理する状態情報の構成例（その１）を示す図である。
【図３】本発明の実施形態でのキャッシュラインの状態を管理する状態情報の構成例（その２）を示す図である。
【図４】図１に示すマルチプロセッサシステムで処理が行われた場合のプロセッシングユニット１００のキャッシュメモリ１０３における状態情報の変化を示す図である。
【図５】従来技術によるマルチプロセッサシステムの構成例を示すブロック図である。
【図６】図６は従来技術でのキャッシュラインの状態を管理する状態情報の構成例を示す図である。
【符号の説明】
【００４８】
１００、１１０、１２０、１３０  プロセッシングユニット
１０１、１０２、１１１、１１２、１２１、１２２、１３１、１３２  プロセッサ
１０３、１１３、１２３、１３３  キャッシュメモリ
１０４、１１４、１２４、１３４  タグ情報
１０５、１１５、１２５、１３５  状態情報
１０６、１１６、１２６、１３６  キャッシュライン
１０７、１０８、１１７、１１８、１２７、１２８、１３７、１３８  接続手段
１４０  相互接続手段
１５０  主記憶
【図１】
2009054000.tif 000003
【図２】
2009054000.tif 000004
【図３】
2009054000.tif 000005
【図４】
2009054000.tif 000006
【図５】
2009054000.tif 000007
【図６】
2009054000.tif 000008