米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> 松下電器産業株式会社

発明の名称 キャッシュ制御方法およびキャッシュ制御装置
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開平7−44459
公開日 平成7年(1995)2月14日
出願番号 特願平5−188026
出願日 平成5年(1993)7月29日
代理人 【弁理士】
【氏名又は名称】小鍜治 明 (外2名)
発明者 八十島 広至
要約 目的
主メモリ、キャッシュメモリ、ライトバッファのそれぞれの間でのデータの無矛盾化を維持しながら、システム性能を向上させるキャッシュ制御の方法と装置を提供する。

構成
プロセッサからのリード/ライト要求あるいはバススヌープ(監視)中のデータのヒット判定にアドレスタグ器150のデータだけではなく、ライトバッファ315のデータも調べることによって、ライトバッファ315のデータと主メモリの無矛盾化を維持し、キャッシュ内あるいはライトバッファ内のデータをライトバッファを経由しないで、直接システムバス300に送出することによってライトバッファ315のフラッシュを後回しにし、それによってシステム性能を向上させる。
特許請求の範囲
【請求項1】ライトバッファを備えたライトバック方式の1つあるいは複数のキャッシュを備えたシステムにおいて、バスマスタが主メモリにデータのリード要求をしたときに、前記データのコピーが前記バスマスタとはシステムバスを介して接続されているキャッシュのライトバッファあるいはキャッシュメモリにあるかを認識する工程と、前記データのコピーがライトバッファあるいはキャッシュメモリにあったとき、前記1つあるいは複数のキャッシュから1つのキャッシュを選択し、前記選択されたキャッシュにおいて、ライトバッファをフラッシュせずに、前記データのコピーをシステムバスに送出する工程とを含み、キャッシュとライトバッファと主メモリとの間の無矛盾化を維持するキャッシュ制御方法。
【請求項2】ライトバッファを備えたライトバック方式の複数のキャッシュを備えたシステムにおいて、キャッシュメモリのデータの置き換えが発生したときに、置き換えられるデータを前記ライトバッファにコピーする工程と、前記ライトバッファのフラッシュに先だって置き換えるデータのリード要求をシステムバスに出力する工程と、前記置き換えるデータのコピーが前記システムバスを介して接続されているキャッシュのライトバッファあるいはキャッシュメモリにあるかを認識する工程と、前記置き換えるデータのコピーがライトバッファあるいはキャッシュメモリにあったとき、前記複数のキャッシュから1つのキャッシュを選択し、前記選択されたキャッシュにおいて、ライトバッファをフラッシュせずに、前記データのコピーをシステムバスに送出する工程とを含み、キャッシュとライトバッファと主メモリとの間の無矛盾化を維持するキャッシュ制御方法。
【請求項3】プロセッサバスとデータの送受信をするプロセッサバス制御器と、システムバスとデータの送受信をするシステムバス制御器と、前記プロセッサバス制御器と前記システムバス制御器に接続され、キャッシュ制御装置内でデータ転送をする内部バスと、前記内部バスから前記システムバス制御器に接続され、前記システムバスに送出する1つあるいは複数のデータと前記データのそれぞれのアドレスと前記データのそれぞれが有効か無効かを示すフラグを一時記憶するライトバッファと、前記ライトバッファのアドレス部と前記内部バスのアドレス部を比較し、前記ライトバッファのデータと主メモリとの矛盾を認識するアドレス比較器と、前記内部バスに接続され、キャッシュメモリ内の各データのアドレスと前記データが有効か無効かを示すフラグと前記データが書き変わったか書き変わっていないかを示すフラグと前記データのコピーが他のキャッシュにある可能性があるかないかを示すフラグを記憶し、プロセッサあるいは代替バスマスタが要求したデータがキャッシュメモリ内にあるかないかを判断するアドレスタグ器と、前記プロセッサバスあるいは前記システムバスからの要求に対して、前記アドレスタグ器と前記アドレス比較器からの信号によって前記プロセッサバス制御器と前記システムバス制御器と前記ライトバッファと前記アドレスタグ装置と前記内部バスを制御する制御回路とを備えたキャッシュ制御装置。
【請求項4】プロセッサバスとデータの送受信をするプロセッサバス制御器と、システムバスとデータの送受信をするシステムバス制御器と、前記プロセッサバス制御器に接続され、キャッシュ制御装置内でデータ転送をする内部プロセッサバスと、前記システムバス制御器に接続され、キャッシュ制御装置内でデータ転送をする内部システムバスと、前記内部プロセッサバスと前記内部システムバスに接続され、前記システムバスに送出する1つあるいは複数のデータと前記データのそれぞれのアドレスと前記データのそれぞれが有効か無効かを示すフラグを一時記憶するライトバッファと、前記ライトバッファ内のアドレス部と前記内部プロセッサバスのアドレス部あるいは前記システムバスのアドレス部とを比較し、前記ライトバッファ内のデータと主メモリとの矛盾を認識するアドレス比較器と、前記内部プロセッサバスと前記内部システムバスに接続された、前記内部システムバスから前記内部プロセッサバスにデータを転送するとき、前記データを一時記憶するリードバッファと、前記内部プロセッサバスと前記内部システムバスに接続され、前記ライトバッファを飛び越えて前記内部プロセッサバスから前記内部システムバスにデータを転送するとき、前記データを一時記憶するサプライバッファと、前記内部プロセッサバスと前記内部システムバスに接続され、キャッシュメモリ内の各データのアドレスと前記データが有効か無効かを示すフラグと前記データが書き変わったか書き変わっていないかを示すフラグと前記データのコピーが他のキャッシュにある可能性があるかないかを示すフラグを記憶し、プロセッサあるいは代替バスマスタが要求したデータがキャッシュメモリ内にあるかないかを判断するアドレスタグ器と、前記プロセッサバスあるいは前記システムバスからの要求に対して、前記アドレスタグ器と前記アドレス比較器からの信号によって前記プロセッサバス制御器と前記システムバス制御器と前記ライトバッファと前記アドレスタグ器と前記リードバッファと前記サプライバッファを制御する制御回路とを備えたキャッシュ制御装置。
発明の詳細な説明
【0001】
【産業上の利用分野】本発明はキャッシュ制御方法およびキャッシュ制御装置に係わり、更に詳述するとライトバッファ付きのライトバック方式キャッシュ間あるいはライトバッファ付きのライトバック方式キャッシュと主メモリ間の無矛盾化を維持するキャッシュ制御方法およびキャッシュ制御装置に関する。
【0002】
【従来の技術】従来、速いプロセッサと遅い主メモリを用いた多くの計算機システムは、キャッシュを有することによってシステムの性能を向上させている。プロセッサは、少容量だが高速なキャッシュと情報交換をし、キャッシュ内に必要なデータがなかったときのみ主メモリをアクセスする。プロセッサの要求するデータは高い確率でキャッシュ内にあるので、速いプロセッサと遅い主メモリとの間でシステムバスを占有する時間を減少することができ、プロセッサの待ち時間も減少し、システム性能が向上する。
【0003】単一プロセッサシステムにおいては、データの特定なものの2つのコピー、主メモリに1つ、キャッシュに写しが存在し得るので、プロセッサがキャッシュに書き込み操作をしたとき、主メモリとキャッシュとの間の矛盾化となる。また、マルチプロセッサシステムでは、単一プロセッサシステムと同様の主メモリとキャッシュ間の矛盾化に加えて、それぞれのプロセッサに接続したキャッシュにも、データの特定なものの複数のコピーが存在し得るので、あるプロセッサがキャッシュに書き込み操作をしたとき、該キャッシュと他のキャッシュ間の矛盾化となる。
【0004】主メモリとキャッシュ間、あるいは複数のキャッシュ間の矛盾を無くす為の従来技術がいくつか知られているが(Archibald,J. and Baer,J. -L., "Cache Coherence Protocols:Evaluation Using a Multiprocessor Simulation Model," ACM Trans. Computer Systems, vol.4, no.4, pp.273-298, Nov.1986)、ここでは、ライトバック方式で、システムバスを監視(スヌープ)する方式について説明する。キャッシュ制御装置はメモリブロックごとに4つの状態を管理して、状態によってキャッシュを制御する。図4に前記状態の遷移図を示す。前記状態の種類と意味は、次の4つである。
【0005】(1)I(invalid):無効、つまり有効なデータはない。
(2)EC(exclusive clean):キャッシュメモリ間にコピーがなくて、主メモリと同じ値である。
【0006】(3)ED(exclusive dirty):キャッシュメモリ間にコピーがなくて、主メモリと異なる値である。
【0007】(4)SC(shared clean):キャッシュメモリ間にコピーがある可能性があり、主メモリと同じ値である。
【0008】図3はキャッシュメモリを備えたマルチプロセッサシステムの構成例を示した図である。キャッシュ制御装置の動作について、図3の第1のプロセッサユニット316を中心に説明する。
【0009】(1)プロセッサ310がリード要求したデータがキャッシュメモリ314にあるとき:データの状態は変化しない(411、412、413)。
【0010】(2)プロセッサ310がリード要求したデータがキャッシュメモリ314にないとき:ライトバッファをフラッシュした後、システムバス300にリード要求を出すと同時にデータが転送される予定先のキャッシュメモリ314のメモリブロックに存在するデータがED状態のときは、該データをライトバッファ315に転送する。システムバス300を監視している第1以外のキャッシュ制御装置323、333が、該データがキャッシュメモリ324、334にあればライトバッファ325、335にコピーする。その後、ライトバッファ325、335をフラッシュする。第1以外のすべてのライトバッファ325、335の内容が主メモリに転送された後、主メモリからプロセッサがリード要求したデータがキャッシュメモリに転送され、該データが第2のキャッシュメモリ324あるいは第3のキャッシュメモリ334にあったときはSC状態402に、ないときはEC状態401になる。
【0011】(3)プロセッサ310がライト要求した先のデータがキャッシュメモリ314にあるとき:第1のキャッシュ312以外のキャッシュ322、332にデータのコピーがある場合、該データのコピーがI状態407になり、キャッシュメモリ314に転送されたライトデータはED状態406、413になる。
【0012】(4)プロセッサ310がライト要求した先のデータがキャッシュメモリ314にないとき:ライト要求した先に、(3)と同じ手段で主メモリからデータがリードされる。その後、プロセッサ310からキャッシュメモリ314にライト要求されたデータが転送され、該データはED状態403になる。第1のキャッシュ312以外のキャッシュ322、332にデータのコピーがある場合は、該データのコピーがI状態407になる。
【0013】主メモリとキャッシュ間で矛盾化したデータを、無矛盾化を維持しながらリードする動作を次に説明する。
【0014】図5は第1のプロセッサユニット316がリード要求をしたときのシステム動作の流れ図で、図7(a)は第1のプロセッサユニット316が主メモリ301と第2のキャッシュメモリ324間で矛盾しているデータをリードしようとしたときのタイミング図である。
【0015】第1のプロセッサユニット316がリード要求したデータがキャッシュメモリ314に在るときは、キャッシュメモリ314からデータをリードする。ないときは、ライトバッファ315に在るデータを主メモリ301にフラッシュした後、システムバス300にリード要求を出すと同時に、リードするデータに置き換えられるキャッシュメモリ314のデータがED状態ならライトバッファ315にコピーする。第1以外のプロセッサユニット326、336は常にシステムバス300の監視をしていて、第1のプロセッサユニット316がシステムバス300にリード要求をしたとき、リード要求の中止要求を出すと同時に、該当データがキャッシュメモリ324、334に在るかを調べ、在ればライトバッファ325、335にコピーする。その後、システムバスが空いたらライトバッファのデータを主メモリにフラッシュする。第1以外の全てのプロセッサユニット326、336がシステムバスを解放することにより、第1のプロセッサユニットのリード要求が再開され、第1のプロセッサユニットは主メモリとキャッシュ間で矛盾していたデータを矛盾なくリードすることができる。
【0016】
【発明が解決しようとする課題】しかしながら、上記のような構成では、第1のプロセッサユニットが主メモリとキャッシュ間で矛盾しているデータのリード要求をしてからデータをリードするまでに、第1のプロセッサユニットのライトバッファのフラッシュと第1以外の全てのプロセッサユニットのライトバッファのフラッシュが入り、この間第1のプロセッサユニットでは処理が停止する。
【0017】本発明は上記従来の欠点に鑑み、主メモリとキャッシュ間で矛盾しているデータをリードするときでもライトバッファのフラッシュによってプロセッサユニットでの処理が停止しないキャッシュ制御方法とキャッシュ制御装置を提供することを目的とするものである。
【0018】
【課題を解決するための手段】上記問題点を解決するために本発明のキャッシュ制御方法は、ライトバッファを備えたライトバック方式の1つあるいは複数のキャッシュを備えたシステムにおいて、バスマスタが主メモリにデータのリード要求をしたときに、前記データのコピーが前記バスマスタとはシステムバスを介して接続されているキャッシュのライトバッファあるいはキャッシュメモリにあるかを認識する工程と、前記データのコピーがライトバッファあるいはキャッシュメモリにあったとき、前記1つあるいは複数のキャッシュから1つのキャッシュを選択し、前記選択されたキャッシュにおいて、ライトバッファをフラッシュせずに、前記データのコピーをシステムバスに送出する工程とを含み、キャッシュとライトバッファと主メモリとの間の無矛盾化を維持するという構成を備えたものである。
【0019】本発明のキャッシュ制御装置は、プロセッサバスとデータの送受信をするプロセッサバス制御器と、システムバスとデータの送受信をするシステムバス制御器と、前記プロセッサバス制御器と前記システムバス制御器に接続され、キャッシュ制御装置内でデータ転送をする内部バスと、前記内部バスから前記システムバス制御器に接続され、前記システムバスに送出する1つあるいは複数のデータと前記データのそれぞれのアドレスと前記データのそれぞれが有効か無効かを示すフラグを一時記憶するライトバッファと、前記ライトバッファのアドレス部と前記内部バスのアドレス部を比較し、前記ライトバッファのデータと主メモリとの矛盾を認識するアドレス比較器と、前記内部バスに接続され、キャッシュメモリ内の各データのアドレスと前記データが有効か無効かを示すフラグと前記データが書き変わったか書き変わっていないかを示すフラグと前記データのコピーが他のキャッシュにある可能性があるかないかを示すフラグを記憶し、プロセッサあるいは代替バスマスタが要求したデータがキャッシュメモリ内にあるかないかを判断するアドレスタグ器と、前記プロセッサバスあるいは前記システムバスからの要求に対して、前記アドレスタグ器と前記アドレス比較器からの信号によって前記プロセッサバス制御器と前記システムバス制御器と前記ライトバッファと前記アドレスタグ装置と前記内部バスを制御する制御回路という構成を備えたものである。
【0020】
【作用】本発明は、上記した構成によって、ライトバッファを備えたライトバック方式の1つあるいは複数のキャッシュを備えたシステムにおいて、バスマスタが主メモリにデータのリード要求をしたときに、前記データのコピーが前記バスマスタとはシステムバスを介して接続されているキャッシュのライトバッファあるいはキャッシュメモリにあるかを認識する工程と、前記データのコピーがライトバッファあるいはキャッシュメモリにあったとき、前記1つあるいは複数のキャッシュから1つのキャッシュを選択し、前記選択されたキャッシュにおいて、ライトバッファをフラッシュせずに、前記データのコピーをシステムバスに送出する工程とを含むキャッシュ制御方法により、キャッシュ間あるいはキャッシュと主メモリ間の無矛盾化を維持しながら、ライトバッファのフラッシュよりもバスマスタが要求したデータ転送にシステムバスを使用することを優先させる。
【0021】本発明は、上記した構成によって、ライトバックモードで動作可能なキャッシュ制御装置内のライトバッファのデータと主メモリの間の無矛盾化を維持し、ライトバッファのフラッシュによるシステム性能の劣化を最小限にするための装置である。その装置は、プロセッサからのリード/ライト要求あるいはバススヌープ(監視)中のデータのヒット判定にアドレスタグ器のデータだけではなく、ライトバッファのデータも調べることによって、ライトバッファのデータと主メモリの無矛盾化を維持し、キャッシュ内あるいはライトバッファ内のデータをライトバッファを経由しないで、直接システムバスに送出することによってライトバッファのフラッシュを後回しにし、それによってシステム性能を向上する。
【0022】
【実施例】以下、本発明の実施例を図面によって詳述する。図3は本発明の方法と装置を実施するのに望ましいキャッシュを備えたマルチプロセッサシステムの構成例で、第1〜第3のプロセッサユニット316、326、336と、システムバス300および主メモリ301から成る。
【0023】第1のプロセッサユニット316は第1のプロセッサ310、第1のキャッシュ312、第1のプロセッサバス311から成る。第2のプロセッサユニット326と第3のプロセッサユニット336も第1のプロサッセユニットと同様に、それぞれのプロセッサ320、330、キャッシュ322、332、プロセッサバス321、331から成る。
【0024】第1〜第3のプロセッサ310、320、330は、所定の命令を処理する機能ユニットである。
【0025】第1〜第3のキャッシュ312、322、332は、それぞれの、少容量だがプロセッサの動作を律速しない程度に高速な記憶装置であるキャッシュメモリ314、324、334と、プロセッサ310、320、330とキャッシュメモリ314、324、334と主メモリ301との間のデータ転送を管理し、キャッシュメモリ314、324、334から主メモリ301へ転送するデータを一時記憶するライトバッファ315、325、335を内蔵するキャッシュ制御装置313、323、333から成る。
【0026】本発明では、キャッシュ間およびキャッシュと主メモリ間の無矛盾化を維持するために、キャッシュメモリのエントリごとに4つの状態、およびライトバッファのエントリごとに2つの状態を管理して、状態によってキャッシュを制御する。前記状態の種類と意味は、次の4つである。
【0027】(1)I(invalid):無効、つまり有効なデータはない。
(2)EC(exclusive clean):キャッシュメモリ間にコピーがなくて、主メモリと同じ値である。
【0028】(3)ED(exclusive dirty):キャッシュメモリ間にコピーがなくて、主メモリと異なる値である。
【0029】(4)SC(shared clean):キャッシュメモリ間にコピーがある可能性があり、主メモリと同じ値である。
【0030】ただし、ライトバッファのエントリは、I状態かED状態のどちらかである。次に主メモリとキャッシュ間の無矛盾化のための動作を説明する。
【0031】図6は第1のプロセッサユニット316がリード要求をしたときのシステム動作の流れ図で、図7(b)は第1のプロセッサユニット316が主メモリ301と第2のキャッシュメモリ324間で矛盾しているデータをリードしようとしたときのタイミング図である。
【0032】第1のプロセッサユニット316がリード要求したデータがキャッシュメモリ314あるいはライトバッファ315に在るときは、キャッシュメモリ314あるいはライトバッファ315からデータをリードする。
【0033】キャッシュメモリ314にもライトバッファ315にもデータがないときは、システムバス300にリード要求を出すと同時に、リードするデータに置き換えられるキャッシュメモリ314内のデータがED状態ならライトバッファ315にコピーする。
【0034】第2のプロセッサユニット326は常にバスの監視をしていて、第1のプロセッサユニット316がシステムバス300にリード要求をしたとき、該当データが第2のプロセッサユニット326のキャッシュメモリ324あるいはライトバッファ325に在るかを調べ、在れば主メモリ301がデータを出力するのを抑止し、該当データをシステムバス300に出力し、第1のプロセッサユニット316が主メモリ301とキャッシュメモリ324間で矛盾していたデータを矛盾なくリードすることができる。なお、ライトバッファ315のフラッシュはシステムバス300が空いているときに行なわれる。
【0035】実施例1として、プロセッサバス311とシステムバス300が同周波数同位相のクロックで動作する場合のキャッシュ制御装置313について説明する。
【0036】図1は本発明の典型的なキャッシュ制御装置313のブロック構成で、プロセッサバス制御器110、システムバス制御器120、内部バス170、ライトバッファ315、アドレス比較器140、アドレスタグ器150および制御器160から成る。
【0037】プロセッサバス制御器110はプロセッサバス311上のデータ転送を制御する。これをプロセッサバス311と内部バス170に接続する。システムバス制御器120はシステムバス300上のデータ転送を監視(スヌーピング)あるいは制御する。これをシステムバス300と内部バス170とライトバッファ315に接続する。
【0038】内部バス170は、プロセッサバス制御器110、システムバス制御器120、ライトバッファ315、アドレス比較器140およびアドレスタグ器150のそれぞれの間でデータ、アドレス、制御信号を転送する。
【0039】ライトバッファ315は、1つあるいは複数のエントリを持ち、それぞれのエントリはデータ131とアドレス133と該データが有効か無効かを示すフラグ132を記憶し、FIFO動作する。これを内部バス170とシステムバス制御器120に接続する。
【0040】アドレス比較器140は、ライトバッファ315のそれぞれのエントリのアドレス部133と内部バス170のアドレス部を比較し、その結果を制御器160に送る。これを内部バス170とライトバッファ315のアドレス部133と制御器160に接続する。
【0041】アドレスタグ器150は、キャッシュメモリ314の各データのアドレス151と、該データが有効か無効かを示すフラグ152と、該データが書き変わったか書き変わっていないかを示すフラグ153と、該データのコピーが他のキャッシュにある可能性があるかないかを示すフラグ154を記憶し、アドレスタグ器のそれぞれのエントリのアドレス部151と内部バス170のアドレス部を比較し、その結果と、内部バス170のアドレス部と一致したアドレス部151を持つエントリのフラグ152、153、154の状態を制御器160に送る。これを内部バス170と制御器160に接続する。
【0042】制御器160は、プロセッサバス311あるいはシステムバス300を介しての要求に対して、アドレスタグ器150とアドレス比較器140から送られた信号によってプロセッサバス制御器110とシステムバス制御器120とライトバッファ315とアドレスタグ器150と内部バス170を制御する。制御器160からそれぞれのブロックに制御信号線を接続する。
【0043】次に動作について第1のキャッシュ制御装置313を中心に説明する。第1のキャッシュ制御装置313は、大きく分けると3つの種類の処理があり、同時に処理が発生した場合は優先度の低い処理が後回しにされる。前記3つの処理は優先度の高い順に次のようになる。
【0044】(1)第1のプロセッサ310以外のプロセッサ(第2のプロセッサ320あるいは第3のプロセッサ330)のデータ転送要求によって生じたシステムバス300上でのデータ転送要求をスヌーピング(監視)し、処理する。
【0045】(2)第1のプロセッサ310からのデータ転送要求の処理をする。
(3)ライトバッファ315に存在するデータをシステムバス300を介して主メモリ301に転送する。
【0046】前記(1)の処理について説明する。第1以外のプロセッサ320、330が要求したデータのアドレスと要求内容がシステムバス300からシステムバス制御器120と内部バス170を介して、アドレスはアドレスタグ器150とアドレス比較器140に送られ、要求内容は制御器160に送られる。アドレスタグ器150およびアドレス比較器140からの出力信号によって制御器160が、第1以外のプロセッサ320、330が要求したデータが第1のキャッシュメモリ314にあるのか、第1のキャッシュのライトバッファ315にあるのか、あるいはどちらにもないのかを判断する。
【0047】第1のキャッシュメモリ314に該データがあるときは、第1のプロセッサバス311の使用権を第1のプロセッサ310よりも優先的に取り、キャッシュメモリ314からプロセッサバス311とプロセッサ制御器110と内部バス170とシステムバス制御器120とシステムバス300を介して該データを送出すると共に、該データがED状態のときは該データを主メモリ301に書き込む。該データがSC状態になるようにアドレスタグ器150を設定する。
【0048】第1のライトバッファ315に該データがあるときは、ライトバッファ315に存在するデータをシステムバス制御器120とシステムバス300を介して該データを送出すると共に、該データを主メモリ301に書き込み、ライトバッファ315の該データをI状態414にする。
【0049】前記(2)の処理について説明する。第1のプロセッサ310からアドレスと要求内容がプロセッサバス制御器110と内部バス170を介して、アドレスはアドレスタグ器150とアドレス比較器140に、要求内容は制御器160に送られ、アドレスタグ器150およびアドレス比較器140からの出力信号によって制御器160が、第1のプロセッサ310の要求したデータがキャッシュメモリ314にあるのか、ライトバッファ315にあるのか、主メモリ301にしかないのかを判断する。
【0050】第1のプロセッサ310が要求したデータがキャッシュメモリ314にあるときは、第1のプロセッサバス311を介して第1のプロセッサ310と第1のキャッシュメモリ314の間で該データが転送される。そしてこのとき、第1のプロセッサ310の要求がライトだったときは、システムバス制御器120からシステムバス300に該データの無効化命令を発行するとともに、該データがED状態になるようにアドレスタグ器150を設定する。
【0051】該データがキャッシュメモリ314になく、代わりにED状態のデータがあるときは、前記データをキャッシュメモリ314からプロセッサバス311とプロセッサバス制御器110と内部バス170を介して、ライトバッファ315に転送すると共に、前記データのアドレスと状態値をアドレスタグ器150から内部バス170を介してライトバッファ315に転送する。第1のプロセッサ310が要求したデータのアドレスをアドレスタグ器150に内部バス170から転送し、I状態にフラグ152、153、154を設定する。
【0052】第1のプロセッサ310がリード要求したデータがライトバッファ315にあるとき、ライトバッファ315からシステムバス制御器120と内部バス170とプロセッサバス制御器110とプロセッサバス311を介して第1のプロセッサ310と第1のキャッシュメモリ314に該データが転送される。ライトバッファ315にある該データはI状態となり414、新たに第1のキャッシュメモリ314に転送された該データはED状態403になる。
【0053】第1のプロセッサ310がライト要求したデータがライトバッファ315にあるとき、プロセッサバス制御回路110からプロセッサバス311を介して第1のプロセッサ310に中断命令を発行し、プロセッサバス311の使用権を獲得する。ライトバッファ315からシステムバス制御器120と内部バス170とプロセッサバス制御器110とプロセッサバス311を介して第1のキャッシュメモリ314に該データが転送された後、プロセッサバス制御器110からプロセッサバス311を介して第1のプロセッサ310に再開命令を発行する。前記再開命令の発行により、第1のプロセッサ310からプロセッサバス311を介して第1のキャッシュメモリ314にライトデータが書き込まれる。ライトバッファ315にある該データはI状態414となり、新たに第1のキャッシュメモリに転送された該データはED状態403になる。
【0054】第1のプロセッサ310がリード要求したデータが第1のキャッシュメモリ314にも第1のキャッシュ制御装置313のライトバッファ315にもないとき、システムバス制御器120からシステムバス300にデータのリード命令を発行する。主メモリ301あるいは第1以外のキャッシュ制御装置322、332の中の1つのキャッシュ制御装置の応答により、システムバス300からシステムバス制御器120と内部バス170とプロセッサバス制御器110とプロセッサバス311を介して、第1のプロセッサ310と第1のキャッシュメモリ314に該データを転送する。該データのコピーが第2のキャッシュメモリ324にも第3のキャッシュメモリ334にもないときは該データがEC状態に、どちらかのキャッシュメモリ324、334にあるときはSC状態になるようにアドレスタグ器150に設定する。
【0055】第1のプロセッサ310がライト要求した先のデータが第1のキャッシュメモリ314にも第1のキャッシュ制御装置313のライトバッファ315にもないとき、システムバス制御器120からシステムバス300に該データのリード命令と該データの無効化命令を発行すると共に、プロセッサバス制御回路110からプロセッサバス311を介して第1のプロセッサ310に中断命令を発行し、プロセッサバス311の使用権を獲得する。主メモリ301あるいは第1以外のキャッシュ制御装置322、332の中の1つのキャッシュ制御装置の応答により、システムバス300からシステムバス制御器120と内部バス170とプロセッサバス制御器110とプロセッサバス311を介して、第1のキャッシュメモリ314に該データを転送し、その後、プロセッサバス制御器110からプロセッサバス311を介して第1のプロセッサ310に再開命令を発行する。前記再開命令の発行により、第1のプロセッサ310からプロセッサバス311を介して第1のキャッシュメモリ314にライトデータが書き込まれる。該ライトデータはED状態403にされる。
【0056】前記(3)の処理について説明する。ライトバッファ315にED状態のデータがあれば、システムバス制御器120からシステムバス300にシステムバス300の使用権を獲得を要求する信号を出力し、システムバス300の使用権を獲得できたら、ライトバッファ315のデータをシステムバス制御器120とシステムバス300を介して主メモリ301に書き込み、該データをI状態414にする。
【0057】実施例2として、プロセッサバス311の動作周波数とシステムバス300の動作周波数が異なる場合のキャッシュ制御装置313について説明する。
【0058】図2はプロセッサバス311とシステムバス300の動作周波数が異なる場合の本発明の典型的なキャッシュ制御装置313のブロック構成で、プロセッサバス制御器110、システムバス制御器120、内部プロセッサバス170、内部システムバス175、ライトバッファ115、アドレス比較器140、リードバッファ180、サプライバッファ190、アドレスタグ器150および制御回路160から成る。すなわち、実施例1の構成にリードバッファ180、サプライバッファ190、内部システムバスを追加した構成である。
【0059】内部バス170に接続したリードバッファ180、サプライバッファ190、ライトバッファ315を内部システムバス175に接続する。内部システムバス175はシステムバス制御器に接続されるとともに、内部バス170とのセレクタを通してアドレスタグ器150にも接続される。
【0060】内部バス170はプロセッサバス311と同じ周波数で動作し、内部システムバス175はシステムバス300と同じ周波数で動作する。内部バス170と内部システムバス175の動作周波数の違いをリードバッファ180、サプライバッファ190、ライトバッファ315で吸収する。
【0061】サプライバッファ190は、キャッシュメモリ314のデータをライトバッファ315を使わないでシステムバスに出力するためのパスである。
【0062】
【発明の効果】以上のように本発明は、ライトバッファを備えたライトバック方式の1つあるいは複数のキャッシュを備えたシステムにおいて、バスマスタが主メモリにデータのリード要求をしたときに、前記データのコピーが前記バスマスタとはシステムバスを介して接続されているキャッシュのライトバッファあるいはキャッシュメモリにあるかを認識する工程と、前記データのコピーがライトバッファあるいはキャッシュメモリにあったとき、前記1つあるいは複数のキャッシュから1つのキャッシュを選択し、前記選択されたキャッシュにおいて、ライトバッファをフラッシュせずに、前記データのコピーをシステムバスに送出する工程とを含むキャッシュ制御方法により、キャッシュ間あるいはキャッシュと主メモリ間の無矛盾化を維持しながら、ライトバッファのフラッシュよりもバスマスタが要求したデータ転送にシステムバスを使用することを優先させることで、システム性能が向上する。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013