(57)【要約】【課題】システムとして優先度の高いプロセッサ、処理のデータをキャッシュに残し、システム効率を向上する。【解決手段】複数のプロセッサで共通のキャッシュメモリを使用する装置において、各プロセッサの識別番号と処理内容とにより優先度を設定する優先度設定テーブル１０７と、キャッシュに取込んだプロセッサの上記優先度に関する情報をデータ対応にプロセッサ情報として書きこむキャッシュメモリ１０３と、キャッシュメモリに書きこまれたプロセッサ情報と、優先度設定テーブルの優先度とを比較する優先度比較器１０８とを備え、ミスヒットしたプロセッサの優先度と上記優先度比較器の優先度の比較によりキャッシュ書き換えを行なう。【選択図】　　　　図１
2004145780.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサで共通のキャッシュメモリを使用する装置において、
上記各プロセッサの識別番号と処理内容とにより優先度を設定する優先度決定テーブルと、
上記キャッシュに取込んだプロセッサの上記優先度に関する情報をデータ対応にプロセッサ情報として書きこむキャッシュメモリと、
上記キャッシュメモリに書きこまれたプロセッサ情報と、上記優先度決定テーブルの優先度とを比較する優先度比較器とを備え、
上記キャッシュメモリをミスヒットすると、該ミスヒットしたプロセッサの優先度と上記優先度比較器の優先度の比較によりキャッシュ書き換えを行なうようにしたことを特徴とするマルチプロセッサ・キャッシュ装置。
【請求項２】
実行プロセッサの設定優先度とキャッシュメモリ中のプロセッサ情報とを比較するプロセッサ情報更新判定部を備えて、
上記実行プロセッサがキャッシュヒットし、かつ該実行プロセッサの優先度が既にキャッシュメモリに書かれたプロセッサ情報の優先度より高い場合は、プロセッサ情報として上記実行プロセッサの優先度に書き換えるようにしたことを特徴とする請求項１記載のマルチプロセッサ・キャッシュ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、計算やデータ処理に利用し、特にデータアクセスの処理速度向上に好適な、共有キャッシュを有するコンピュータシステムのキャッシュ装置に関するものである。
【０００２】
【従来の技術】
一般的なコンピュータシステムでは、高速メモリを持ったプロセッサ内部の専用キャッシュメモリ（上位レベルのメモリ）から大容量・低速の主記憶（下位レベルのメモリ）により記憶階層が作られている。この中で、主記憶へのアクセスは、コンピュータシステムの処理性能を劣化させる主要因になっている。
そのため、プロセッサ内部の専用キャッシュメモリと大容量・低速の主記憶の間にキャッシュメモリを設けており、マルチプロセッサシステムの場合は、全プロセッサ共有で使用するキャッシュメモリを設けることがある。この共有キャッシュメモリは、全プロセッサが平等に使用することを前提に、主記憶へのアクセス頻度を低減している。
【０００３】
この共有キャッシュメモリを利用して、処理性能を向上する方式については、マルチプロセッサシステムを前提に各プロセッサのキャッシュメモリを共有使用することで、見かけ上のキャッシュ容量を増大させたシステムがある（特許文献１）。
【０００４】
【特許文献１】
特開平１−２５１２５０号公報
【０００５】
【発明が解決しようとする課題】
従来の技術は、上記のように構成されており、全プロセッサが平等に使用することを前提にしているが、実際の各プロセッサは、実行しているプロセスによって優先度が変化するため、システムとして効率良くキャッシュメモリを使用していないという課題がある。
【０００６】
この発明は上記のような課題を解決するためになされたもので、優先度の低いプロセッサが使用したキャッシュラインを優先してリプレースし、優先度の高いプロセッサが使用するキャッシュラインを残すことにより、優先度の高いプロセッサのキャッシュ効率を高め、システムとして効率良くキャッシュメモリを使用する。
【０００７】
【課題を解決するための手段】
この発明に係るマルチプロセッサ・キャッシュ装置は、複数のプロセッサで共通のキャッシュメモリを使用する装置において、
上記各プロセッサの識別番号と処理内容とにより優先度を設定する優先度決定テーブルと、
上記キャッシュに取込んだプロセッサの上記優先度に関する情報をデータ対応にプロセッサ情報として書きこむキャッシュメモリと、
上記キャッシュメモリに書きこまれたプロセッサ情報と、上記優先度決定テーブルの優先度とを比較する優先度比較器とを備え、
上記キャッシュメモリをミスヒットすると、このミスヒットしたプロセッサの優先度と上記優先度比較器の優先度の比較によりキャッシュ書き換えを行なうようにした。
【０００８】
【発明の実施の形態】
実施の形態１．
以下、マルチプロセッサによる共通キャッシュの使用効率を向上した本発明の実施形態を説明する。図１は、本実施の形態におけるマルチプロセッサ・キャッシュ装置を内蔵したコンピュータシステムの構成ブロック図である。図において、キャッシュ装置１０１、プロセッサインタフェース制御部１０２、キャッシュメモリ１０３、ヒット／ミス判定回路１０４、リプレース選択回路１０５、プロセッサ情報生成部１０６、優先度決定テーブル１０７、リプレース優先度比較器１０８、プロセッサ情報更新判定部１０９、主記憶インターフェース制御部１１０、プロセッサ１１１ａ、１１１ｂ、１１１ｃ、１１１ｎ、主記憶１１２によりシステムは構成される。
【０００９】
次に、図１に示したキャッシュ装置１０１の内部の各機能の概要を説明する。
プロセッサインターフェース制御部１０２は、プロセッサ１１１のいづれかからキャッシュ装置１０１へ任意のアドレスに対するデータのアクセス要求があると、アクセス要求されたアドレスに対するキャッシュラインを求める。キャッシュメモリ１０３は各ウエイの各キャッシュラインに、プロセッサ情報フィールド、タグフィールド、データフィールドを持っている。ヒット／ミス判定回路１０４は、プロセッサインタフェース制御部１０２によって求めたキャッシュライン１２０と、そのキャッシュラインのタグ情報１２１から、キャッシュヒット／ミスを各ウエイごとに判定する。なお、アクセス要求されたアドレスに対するデータがキャッシュメモリ内に存在するときにキャッシュヒット、存在しない時にキャッシュミスと呼ぶ。キャッシュミスが発生すると、アクセス要求されたアドレスに対するデータをキャッシュに書込むために、キャッシュ内に現存するデータを追い出さなければならない。
【００１０】
リプレース選択回路１０５は、キャッシュミス時にデータを追い出すウエイの候補の順序を決定するものであり、一般的には、ラウンドロビンやＬＲＵといったアルゴリズムに基づき決定する。プロセッサ情報生成部１０６は、図２に示すように、アクセス要求をしたプロセッサの識別情報と、そのプロセスの状況をオペレーティングシステム等から得る。
優先度決定テーブル１０７は、図３に示すように、アクセス要求をしたプロセッサの情報とそのプロセッサのプロセスの全組合わせに対する処理の優先順位を定義している。リプレース優先度比較器１０８は、キャッシュミスの場合に、キャッシュメモリ１０３内の各ウエイで、アクセス要求のあったキャッシュラインのプロセッサ情報フィールドからのプロセッサ情報１２２と、リプレース選択回路１０５からの追い出すウエイの候補の順序の情報１２３と、プロセッサ情報生成部１０６からのデータのアクセス要求を行ったプロセッサの情報１２４と、優先度決定テーブル１０７からの優先順位の情報１２５から、最終的にどのウエイのデータを追い出すか決定する。
【００１１】
プロセッサ情報更新判定部１０９は、キャッシュヒットした場合に、ヒット／ミス判定回路１０４からのキャッシュヒットしたウエイを示す情報１２６と、キャッシュメモリ１０３内の各ウエイで、アクセス要求のあったキャッシュラインのプロセッサ情報フィールドからのプロセッサ情報１２２と、プロセッサ情報生成部１０６からのデータのアクセス要求を行ったプロセッサの情報１２４と、優先度決定テーブル１０７からの優先順位の情報１２５から、キャッシュメモリ１０３内のキャッシュヒットしたウエイのアクセス要求のあったキャッシュラインのプロセッサ情報フィールドを優先度の高い情報に書換える。
主記憶インターフェース制御部１１０は、主記憶１１２に対してデータのアクセスを制御する。主記憶１１２は、キャッシュメモリより大容量の記憶装置である。
【００１２】
次に、図１から図４を用いて動作の詳細を説明する。
図１において、プロセッサ１１１ａ〜１１１ｎのいづれかからキャッシュ装置へ任意のアドレスに対するデータのアクセス要求があると、プロセッサ情報生成部１０６は、このプロセッサの情報を取込む。プロセッサの情報とは、このプロセッサの番号や、リアルタイム処理中のアクセス要求か否かなどのプロセスの実行状態である。図２にプロセッサ情報生成部１０６で生成する情報のビットアサイン例を示す。図２において、リアルタイム処理ビット２００は、プロセッサの実行しているプロセスの状態を示すビットであり、データのアクセス要求を行ったプロセッサがリアルタイム処理中のとき１、それ以外の処理中では０の値が入力される。また、ＣＰＵ＿ＩＤビット２０１は、アクセス要求を行ったプロセッサのプロセッサ番号が入力される。プロセッサの番号および、プロセッサがリアルタイム処理中であるか否かはオペレーションシステム等によって、プロセッサ情報生成部１０６に伝達される。
【００１３】
図３は優先度決定テーブル１０７の内容である。優先度決定テーブル１０７は、プロセッサ情報生成部で生成した情報に対応した優先度を定義している。図３では、例えばプロセッサ情報生成部で生成された情報が１００すなわち、ＣＰＵ番号００のプロセッサからリアルタイム処理中にアクセス要求があったときに優先度は１（最も優先度が高い）となり、ＣＰＵ番号１１のプロセッサからリアルタイム処理以外の期間にアクセス要求があったときに優先度は８（最も優先度が低い）となる。優先度決定テーブル１０７では、プロセッサ情報生成部１０６で生成される情報の全ての組合わせが優先度として設定されている。
一方、ヒット／ミス判定回路１０４によって、キャッシュヒット／ミスの判定が行われ、キャッシュミスの場合は、リプレース優先度比較器１０８によって、リプレースするウエイを決定する。リプレース優先度比較器１０８は、プロセッサ情報生成部１０６からのデータのアクセス要求を行ったプロセッサの情報１２４と、優先度決定テーブル１０７からの優先順位の情報１２５と、キャッシュメモリ１０３内の各ウエイで、アクセス要求のあったキャッシュラインのプロセッサ情報フィールドからのプロセッサ情報１２２と、リプレース選択回路１０５からの追い出すウエイの候補の順序の情報１２３を入力とし、データを追い出すウエイを決定する。
【００１４】
図４を用いてリプレース優先度比較器１０８の動作を説明する。なお、本説明はウエイ数４のキャッシュメモリとして説明しているが、本発明は、ウエイ数が幾つであっても構わない。図４において、優先度算出器Ａ４００は、プロセッサ情報生成部１０６からのデータのアクセス要求を行ったプロセッサの情報１２４と、優先度決定テーブル１０７からの優先順位の情報１２５から、データアクセス要求に対する優先度を算出する。例えば、プロセッサ情報生成部１０６からのデータのアクセス要求を行ったプロセッサの情報１２４がＩＤとしては１０１の場合は、優先度決定テーブル１０７内のテーブルから優先度は２となる。優先度算出器Ｂ〜Ｅ４０１ｂ〜４０１ｅは、キャッシュメモリ１０３内の各ウエイで、アクセス要求のあったキャッシュラインのプロセッサ情報フィールドからのプロセッサ情報１２２と、優先度決定テーブル１０７からの優先順位の情報１２５から、アクセス要求をしたデータに対する優先度を算出する。
【００１５】
優先度算出器Ｂはウエイ０用であり、優先度算出器Ｃはウエイ１用であり、優先度算出器Ｄはウエイ２用であり、優先度算出器Ｅはウエイ３用である。優先度比較器Ｗ〜Ｚ４０２ｗ〜４０２ｚは、優先度算出器Ａ４００の算出結果と優先度算出器Ｂ〜Ｅ４０１ｂ〜４０１ｅの算出結果を比較し、優先度算出器Ａ４００の算出結果の優先度が優先度算出器Ｂ〜Ｅ４０１ｂ〜４０１ｅの算出結果の優先度と同じもしくは高い場合には、追い出しの対象である旨を、低い場合には追い出しの対象外である旨を出力する。優先度比較器Ｗはウエイ０用であり、優先度比較器Ｘはウエイ１用であり、優先度比較器Ｙはウエイ２用であり、優先度比較器Ｚはウエイ３用である。ウエイ確定器４０３は、優先度比較器Ｗ〜Ｚ４０２からの追い出しの対象か否かの情報と、リプレース選択回路１０５からの追い出すウエイの候補の順序の情報１２３により、データを追い出すウエイを決定し、追い出しウエイ情報４１０として出力する。
【００１６】
図５にウエイ確定器４０３の処理のフローチャートを示す。リプレース選択回路１０５からの追い出すウエイの候補の順序の情報１２３で、データを追い出す第１候補のウエイに対する優先度比較器Ｗ〜Ｚ４０２ｗ〜４０２ｚの出力結果が、追い出しの対象になっているか調査し（ステップＡ１）、追い出しの対象になっている場合は、そのウエイを追い出すウエイとして確定する（ステップＡ２）。追い出しの対象外の場合は、リプレース選択回路１０５からの追い出すウエイの候補の順序の情報１２３で、データを追い出す第２候補のウエイに対する優先度比較器Ｗ〜Ｚ４０２ｗ〜４０２ｚの出力結果が、追い出しの対象になっているか調査し（ステップＢ１）、追い出しの対象になっている場合は、そのウエイを追い出すウエイとして確定する（ステップＢ２）。追い出しの対象外の場合は、リプレース選択回路１０５からの追い出すウエイの候補の順序の情報１２３で、データを追い出す第３候補のウエイに対する優先度比較器Ｗ〜Ｚ４０２ｗ〜４０２ｚの出力結果が、追い出しの対象になっているか調査し（ステップＣ１）、追い出しの対象になっている場合は、そのウエイを追い出すウエイとして確定する（ステップＣ２）。
【００１７】
追い出しの対象外の場合は、リプレース選択回路１０５からの追い出すウエイの候補の順序の情報１２３で、データを追い出す第４候補のウエイに対する優先度比較器Ｗ〜Ｚ４０２ｗ〜４０２ｚの出力結果が、追い出しの対象になっているか調査し（ステップＤ１）、追い出しの対象になっている場合は、そのウエイを追い出すウエイとして確定する（ステップＤ２）。追い出しの対象外の場合は、リプレース選択回路１０５からの追い出すウエイの候補の順序の情報１２３で、データを追い出す第１候補のウエイを追い出すウエイとして確定する（ステップＥ１）。
なお、本説明は、リプレース選択回路１０５からの追い出すウエイの候補の順序の情報１２３で、データを追い出す第１候補から順に調査しているが、全候補を同時に調査し、その結果から最終的に追い出すウエイを確定する方式でも構わない。
【００１８】
キャッシュメモリ１０６内のプロセッサ情報フィールドの更新は、キャッシュヒットまたはキャッシュミスにより、タグフィールドやデータフィールドを更新するのと同じタイミングで行う。
ヒット／ミス判定回路１０４によって、キャッシュヒット／ミスの判定がキャッシュミスの場合は、データを追い出した後に、そのウエイのキャッシュラインに対してプロセッサから要求されたデータを書込むが、このときプロセッサ情報フィールドには、プロセッサ情報生成部１０６からのプロセッサの情報１２４を書込む。
【００１９】
ヒット／ミス判定回路１０４によって、キャッシュヒット／ミスの判定がヒットの場合は、プロセッサ情報更新判定部１０９によって、ヒット／ミス判定回路１０４からのヒットしたウエイを示す情報１２６と、キャッシュメモリ１０３内の各ウエイで、アクセス要求のあったキャッシュラインのプロセッサ情報フィールドからのプロセッサ情報１２２と、プロセッサ情報生成部１０６からのデータのアクセス要求を行ったプロセッサの情報１２４と、優先度決定テーブル１０７からの優先順位の情報１２５からヒットしたキャッシュラインのプロセッサ情報フィールドの情報を書換えるかどうか判定する。
【００２０】
図６を用いてプロセッサ情報更新判定部１０９の動作を説明する。図６において、優先度算出器Ｆ６０２は、プロセッサ情報生成部１０６からのデータのアクセス要求を行ったプロセッサの情報１２４と、優先度決定テーブル１０７からの優先順位の情報１２５から、データアクセスに対する優先度を算出する。なお、優先度算出器Ｆ６０２は、上記のリプレース優先度比較器１０８内の優先度算出器Ａ４００と同一機能であるので、１つに統合しても構わない。
プロセッサ情報選択器６０１は、ヒット／ミス判定回路１０４からのヒットしたウエイを示す情報１２６と、キャッシュメモリ１０３内の各ウエイで、アクセス要求のあったキャッシュラインのプロセッサ情報フィールドからのプロセッサ情報１２２（ウエイ０〜３）からキャッシュヒットしたウエイのプロセッサ情報フィールドの情報を選択する。優先度算出器Ｇ６０３は、優先度決定テーブル１０７からの優先順位の情報１２５をもとに、プロセッサ情報選択器６０１からの情報の優先度を算出する。プロセッサ情報更新判定器６０４は、優先度算出器Ｆ６０２からの優先度の情報と、優先度算出器Ｇ６０３からの優先度の情報を比較し、どちらが優先度が高いかを判定し、優先度判定結果６０５として出力する。優先度算出器Ｆ６０２からの優先度が高い場合には、キャッシュヒットしたキャッシュラインのプロセッサ情報フィールドの情報を、プロセッサ情報生成部１０６からのデータのアクセス要求を行ったプロセッサの情報１２４に書換える。
【００２１】
以上に説明したように構成することによって、本装置は、キャッシュメモリのキャッシュラインごとに、プロセッサＩＤと処理とによるプロセッサ情報を有し、特に、キャッシュミスにより、キャッシュメモリ内に現存するデータを追い出さなければならない場合、優先度の低いプロセッサが使用したキャッシュラインを優先してリプレースし、優先度の高いプロセッサが要求するデータをキャッシュメモリ内に残すことにより、上記効果によって処理の高速化を保つことができる。
また、キャッシュミスにより、キャッシュメモリ内のデータがリプレースされ、プロセッサから要求されたデータに更新するのに伴い、該当するデータに対するプロセッサの情報も更新するため、キャッシュミスによりキャッシュメモリ内が更新されても、上記、優先度を考慮したキャッシュメモリの共有を継続できる効果がある。
【００２２】
また、キャッシュヒットにより、キャッシュメモリ内のプロセッサから要求されたデータをアクセスした場合、前回アクセスしたときのプロセッサの情報、すなわち該当するデータに対してキャッシュメモリ内に保持しているプロセッサの情報と、現在アクセスを要求しているプロセッサの情報を比較し、より優先度の高いプロセッサの情報に書換えることにより、キャッシュヒットによりデータをアクセスしたときにも、上記、優先度を考慮したキャッシュメモリの共有を継続できる効果がある。
【００２３】
【発明の効果】
以上のようにこの発明によれば、優先度決定テーブルと、プロセッサ情報を記憶するキャッシュメモリと、プロセッサ情報によるリプレース優先度比較器を備えたので、マルチプロセッサによる共有キャッシュ装置におけるシステム処理速度を向上できる効果がある。
【図面の簡単な説明】
【図１】この発明の実施の形態１におけるマルチプロセッサ・キャッシュ装置を使用した計算機システムの構成ブロック図である。
【図２】実施の形態１におけるプロセッサ情報生成部が抽出する情報を示す図である。
【図３】実施の形態１における優先度決定テーブルの例を示す図である。
【図４】実施の形態１におけるリプレース優先度比較器の構成を示す図である。
【図５】図４のウエイ確定器の動作を示すフロー図である。
【図６】実施の形態１におけるプロセッサ情報更新判定部の構成を示す図である。
【符号の説明】
１０１　キャッシュ装置、１０２　プロセッサインタフェース制御部、１０３キャッシュメモリ、１０４　ヒット／ミス判定回路、１０５　リプレース選択回路、１０６　プロセッサ情報生成部、１０７　優先度決定テーブル、１０８リプレース優先度比較器、１０９　プロセッサ情報更新判定部、１１１ａ，１１１ｂ，１１１ｃ，１１１ｎ　プロセッサ、１１２　主記憶、１２０　データのアクセス要求を行ったキャッシュラインの情報、１２１　キャッシュラインのタグ情報、１２２　プロセッサ情報フィールドからのプロセッサ情報、１２３　追い出すウエイの候補の順序の情報、１２４　データのアクセス要求を行ったプロセッサの情報、１２５　優先順位の情報、１２６　キャッシュヒットしたウエイを示す情報、２００　リアルタイム処理ビット、２０１　ＣＰＵ＿ＩＤビット、４００，４０１ｂ，４０１ｃ，４０１ｄ，４０１ｅ　優先度算出器、４０２ｍ，４０２ｘ，４０２ｙ，４０２ｚ　優先度比較器、４０３　ウエイ確定器、４１０追い出しを行ったウエイ情報、６０１　プロセッサ情報選択器、６０２，６０３　優先度算出器、６０４　プロセッサ情報更新判定器、６０５　優先度判定結果。
【図１】
2004145780.tif 000003
【図２】
2004145780.tif 000004
【図３】
2004145780.tif 000005
【図４】
2004145780.tif 000006
【図５】
2004145780.tif 000007
【図６】
2004145780.tif 000008