(57)【特許請求の範囲】
【請求項１】
ＣＰＵとメインメモリとの間に設置され高速のバッファメモリとして動作するキャッシュメモリ装置において、タグとデータとを対にして記憶するキャッシュ部と、タグとデータを対にして記憶し前記キャッシュ部よりも小容量の非アロケートバッファと、データ属性判定機能を有する制御回路とを備え、入力データに付加された属性情報が前記制御回路により所定の属性を示す情報であると判断された場合に前記入力データを前記キャッシュ部に格納し、前記入力データの属性情報が前記制御回路により前記所定の属性を示す情報でないと判断されたときに前記入力データを非アロケートバッファに格納し、外部からリードまたはライトのアクセスがあったときには先ず前記キャッシュ部および前記非アロケートバッファを同時にアクセスしミスヒットが発生しアクセス対象データの属性情報が前記制御回路により前記所定の属性を示す情報であると判断された場合に所定の方法で前記キャッシュ部の中から入れ替え対象ブロックを選択して前記入れ替え対象ブロックのタグおよびデータをアクセスアドレスのタグおよび前記メインメモリの前記アクセスアドレスに格納されたデータに入れ替えたのちに前記アクセスの処理を実行し、ミスヒットが発生しアクセス対象データの属性情報が前記制御回路により前記所定の属性を示す情報でないと判断された場合に前記非アロケートバッファのインデックスアドレスが指すブロックを入れ替え対象ブロックとしてタグおよびデータをアクセスアドレスのタグおよび前記メインメモリの前記アクセスアドレスに格納されたデータに入れ替えたのちに前記アクセスの処理を実行するキャッシュメモリ装置であって、
前記非アロケートバッファは、それぞれのタグ／データ対に対応してタイマが追加して設けられ、前記非アロケートバッファと前記メインメモリとの間でデータの入れ替えが発生した時点で前記タイマを始動し予め設定した時間を計時したときに前記入れ替えにより格納されたデータを前記メインメモリに書き戻しする
キャッシュメモリ装置。
【請求項２】
ＣＰＵとメインメモリとの間に設置され高速のバッファメモリとして動作するキャッシュメモリ装置において、タグとデータとを対にして記憶するキャッシュ部と、タグとデータを対にして記憶し前記キャッシュ部よりも小容量の非アロケートバッファと、データ属性判定機能を有する制御回路とを備え、入力データに付加された属性情報が前記制御回路により所定の属性を示す情報であると判断された場合に前記入力データを前記キャッシュ部に格納し、前記入力データの属性情報が前記制御回路により前記所定の属性を示す情報でないと判断されたときに前記入力データを非アロケートバッファに格納し、外部からリードまたはライトのアクセスがあったときには先ず前記キャッシュ部および前記非アロケートバッファを同時にアクセスしミスヒットが発生しアクセス対象データの属性情報が前記制御回路により前記所定の属性を示す情報であると判断された場合に所定の方法で前記キャッシュ部の中から入れ替え対象ブロックを選択して前記入れ替え対象ブロックのタグおよびデータをアクセスアドレスのタグおよび前記メインメモリの前記アクセスアドレスに格納されたデータに入れ替えたのちに前記アクセスの処理を実行し、ミスヒットが発生しアクセス対象データの属性情報が前記制御回路により前記所定の属性を示す情報でないと判断された場合に前記非アロケートバッファのインデックスアドレスが指すブロックを入れ替え対象ブロックとしてタグおよびデータをアクセスアドレスのタグおよび前記メインメモリの前記アクセスアドレスに格納されたデータに入れ替えたのちに前記アクセスの処理を実行するキャッシュメモリ装置であって、
前記非アロケートバッファは、それぞれのタグ／データ対に対応してタイマが追加して設けられ、ヒットしてアクセスされる毎に前記タイマを始動し予め設定した時間を計時したときに該当アドレスのデータを前記メインメモリに書き戻しする
キャッシュメモリ装置。
【請求項３】
ＣＰＵとメインメモリとの間に設置され高速のバッファメモリとして動作するキャッシュメモリ装置において、タグとデータとを対にして記憶するキャッシュ部と、タグとデータを対にして記憶し前記キャッシュ部よりも小容量の非アロケートバッファと、データ属性判定機能を有する制御回路とを備え、入力データに付加された属性情報が前記制御回路により所定の属性を示す情報であると判断された場合に前記入力データを前記キャッシュ部に格納し、前記入力データの属性情報が前記制御回路により前記所定の属性を示す情報でないと判断されたときに前記入力データを非アロケートバッファに格納し、外部からリードまたはライトのアクセスがあったときには先ず前記キャッシュ部および前記非アロケートバッファを同時にアクセスしミスヒットが発生しアクセス対象データの属性情報が前記制御回路により前記所定の属性を示す情報であると判断された場合に所定の方法で前記キャッシュ部の中から入れ替え対象ブロックを選択して前記入れ替え対象ブロックのタグおよびデータをアクセスアドレスのタグおよび前記メインメモリの前記アクセスアドレスに格納されたデータに入れ替えたのちに前記アクセスの処理を実行し、ミスヒットが発生しアクセス対象データの属性情報が前記制御回路により前記所定の属性を示す情報でないと判断された場合に前記非アロケートバッファのインデックスアドレスが指すブロックを入れ替え対象ブロックとしてタグおよびデータをアクセスアドレスのタグおよび前記メインメモリの前記アクセスアドレスに格納されたデータに入れ替えたのちに前記アクセスの処理を実行するキャッシュメモリ装置であって、
前記非アロケートバッファは、それぞれのタグ／データ対に対応してカウンタが追加して設けられ、アクセス回数をカウントして予め設定したアクセス回数に達したアドレスのデータを前記メインメモリへ書き戻しする
キャッシュメモリ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、キャッシュメモリ装置およびデータ処理装置に関し、特に、通信制御等のデータ処理におけるキャッシュとメインメモリ間のデータの入れ替え発生が低減されたキャッシュメモリ装置およびそれを含むデータ処理装置に関する。
【０００２】
【従来の技術】
イーサネット（登録商標）などで構成されたコンピュータネットワーク間を相互接続しネットワーク間の相互の通信を制御するために通信制御装置が設けられる。図６（ａ）は、通信制御装置の一例のルータのブロック図であり、（ｂ）は、パケットの構成を示す図である。ヘッダ１１には送り元のＩＰアドレス、送り先のＩＰアドレス、送り先のＭＡＣアドレス等の情報が含まれ、通信データ１２は送信するデータ本体であり、トレイラ１３にはエラーチェック情報が含まれる。
【０００３】
通信制御装置６１は、接続するネットワークからパケットデータＰＩを受信し、データの送付先であるネットワーク上に接続されている機器・装置のＩＰアドレスを識別し、経路テーブルを参照して伝送する経路を選択し、ヘッダのＭＡＣアドレス部を更新してパケットデータＰＯを送出する。このときの動作は次のようになる。通信制御装置６１では、システムバス６２に接続されたネットワークＩ／Ｏ装置６４が受信したパケット１０は、ＤＭＡ(direct memory access)６５によりシステムバス６２に接続されたメモリインタフェース６８を介してＤＲＡＭで構成されたメインメモリ６９に転送されて書き込まれた後、ＣＰＵ６３によって受信したパケットのＩＰアドレスの参照、ＭＡＣアドレスの更新が実行される。通信制御装置６１では、ＣＰＵ６３の処理の高速化のために、ＣＰＵ６３とメインメモリ６９との間にライトバック型の２次キャッシュを構成するキャッシュメモリ装置６７を有しているが、ＤＭＡによってメインメモリ６９内のデータが２次キャッシュ（キャッシュメモリ装置６７）内のデータよりも新しくなっている可能性があるため、キャッシュメモリ装置６７のデータをキャッシュのインバリデート命令かコヒーレンシプロトコル命令を用いて一旦無効化したのちに、ＣＰＵバス６６を介してキャッシュメモリ装置６７をアクセスする。データが無効化されたためにアクセス対象のパケットはキャッシュメモリ装置６７にはないので、キャッシュメモリ装置６７は、メモリインタフェース６８を介してメインメモリ６９からデータを読み込む。そののちに、ＣＰＵ６３は、ヘッダ１１を含むパケット１０の一部分をキャッシュメモリ装置６７から読み出し、ヘッダ１１のＭＡＣアドレス部を更新してキャッシュメモリ装置６７に書き込む。ヘッダ１１が更新されたパケットは、ＣＰＵ６３の命令によりキャッシュメモリ装置６７からメインメモリ６９へ書き戻し（フラッシュ）されたのちに、ＤＭＡ６５によりメインメモリ６９からメモリインタフェース６８およびシステムバス６２を介してネットワークＩ／Ｏ装置６４へ転送され、ネットワークＩ／Ｏ装置から他のネットワークへ送信される。
【０００４】
図７は、従来のキャッシュメモリ装置６７の内部ブロック図である。キャッシュメモリ装置６７は、タグアドレスを格納するタグ部とデータを格納するデータ部とを対として有するエントリをｍ（ｍ≧２以上の正整数）個含むウェイを第１のウェイ７１−１から第ｎのウェイ７１−ｎまでｎ（ｎ≧２以上の正整数）個含む（すなわち、タグ／データ対をｍ個格納できるウェイをｎ個含む）ｎウェイのキャッシュ部７２を備えている。または、キャッシュ部７２は、ウェイ７１−１からウェイ７１−ｎまでのｎ個のエントリを同一のインデックスアドレスで指定できるセットをｍセット備えていると理解してもよい。なお、図示していないが、キャッシュ部７２の各エントリに格納されたデータの有効／無効を示すバリッドビットおよびキャッシュ上のデータが更新されたがメインメモリへの書き戻しがされていない状態を示すダーティビット等が各エントリに対応して設けられる。キャッシュメモリ装置６７は、さらに、タグフィールド、インデックスフィールド、ラインフィールドを有するアドレスＡＤ（図４（ｂ）参照）のうちのインデックスアドレスＡＤＩで指示されたセットのタグ部に格納されたタグアドレスとアドレスＡＤのタグフィールドのアドレスＡＤＴとの一致を検出するｎ個の比較回路７３−１〜７３−ｎと、これらの比較回路で一致を検出したときにヒット信号ＨＩＴをアクティブにして制御回路７７に出力するＯＲ回路７４と、ＣＰＵ６３からのアクセスがリードアクセスであるときに一致を検出した比較回路に対応するウェイのブロック（複数のラインアドレス分のデータを含む）を選択してデータを読み出しデータＤＡＴとして出力する選択回路７５とを備えている。また、キャッシュメモリ装置６７は、インデックスアドレスが同一のｎウェイで構成されるセットの中で間で最も長い期間使用されていないブロックをそれぞれのセット毎に追い出し候補ブロックＬＲＵＢとして記憶するＬＲＵ(least recently used) メモリ部７６を備え、制御回路７７によりキャッシュメモリ部７２へのタグアドレスおよびデータの書き込み、読み出し、データの入れ替え等を制御する。
【０００５】
ＣＰＵ６３がＣＰＵバス６６を介してキャッシュメモリ装置６７にアクセスした場合に、ＣＰＵ６３からのアドレスＡＤのインデックスアドレスＡＤＩが指すセットｎ個のエントリのタグアドレスのいずれもがアドレスＡＤのタグフィールドのアドレスＡＤＴと一致しなかったとき、すなわちミスヒットが発生したときには、制御回路７７の制御のもとに、インデックスアドレスＡＤＩが指すセットの中からＬＲＵメモリ７６に登録された追い出し候補ブロックＬＲＵＢを抽出し、キャッシュ部７２の該当するエントリのタグアドレスおよびデータをアドレスＡＤの示すメインメモリ６９内のアドレスのタグフィールド部およびデータと置き換え、キャッシュ部７２から追い出し候補ブロックＬＲＵＢであるとして追い出されたブロックのデータをシステムバス６２を介してメインメモリ６９へ出力し、タグフィールドのアドレスＡＤＴおよびインデックスアドレスＡＤＩが対応するメインメモリ６９の該当領域に書き戻す。
【０００６】
ＣＰＵ６３からライトアクセスがありヒットしたときには、書き込みデータＷＤは制御回路７７に制御された切換部７８を通じてキャッシュ部７２の該当ブロックが書き換えられ、ダーティ(dirty) 情報を付加する。ダーティなブロックデータは、ＣＰＵ６３からのアクセスのミスヒットによる入れ替え発生時にメインメモリ６９に書き戻しされるか、メインメモリ６９からネットワークＩ／Ｏ装置６４への転送前にＣＰＵ６３からの命令によりフラッシュが行われることによりメインメモリ６９のデータが更新される。ミスヒットのときには、メインメモリ６９からのデータＭＤが制御回路７７に制御された切換部７８を通じてキャッシュ部７２に送られて書き込まれる。その後に、ＣＰＵ６３からキャッシュメモリ部７２へ上書きを行い、キャッシュ部の該当エントリにダーティ情報を付加する。
【０００７】
【発明が解決しようとする課題】
図６の従来の通信制御装置６１では、ＣＰＵ６３は、ＣＰＵバス６６を介してキャッシュメモリ装置６７に対してのみアクセス可能であり、ネットワークＩ／Ｏ装置６４は、システムバス６２を介してメインメモリ６９とのみＤＭＡが可能であるため、ネットワークＩ／Ｏ装置６４でパケットＰＩを受信してからＣＰＵでヘッダを更新してネットワークＩ／Ｏ６４からパケットＰＯとして送信するまでの間に、ＣＰＵからのアクセス毎にメインメモリ６９からキャッシュメモリ装置６７へ該当部分のデータを入れ替え、また、ＣＰＵ６３で更新したデータについてはネットワークＩ／Ｏ６４への転送前にキャッシュメモリ装置６７からメインメモリ６９にフラッシュする処理が必要であり、ＣＰＵでの処理よりもキャッシュメモリ装置６７とメインメモリ６９との間の受け渡し処理にかかる時間が大きいという問題点があった。
【０００８】
さらに加えて、従来のキャッシュメモリ装置６７では、パケット１０の中で通信制御情報の更新には使用されない通信データ１２の部分も区別されずにキャッシュ部７２に格納される。ＣＰＵによって使用されない通信データがアクセスされたときに使用確率の高いヘッダ部のデータ、ＣＰＵの命令コードおよび命令実行時に使用するデータ等をキャッシュ部７２から追い出すという事態が生じ、追い出されたヘッダデータが再度必要になったときにまた入れ替えが必要となる。このため、キャッシュメモリ装置６７とメインメモリ６９との間にデータブロックの入れ替えが頻繁に発生して２次キャッシュのヒット率が低下し、通信制御装置６１の性能が低下するという問題点があった。
【０００９】
本発明の目的は、Ｉ／Ｏ装置に入力するデータを使用頻度の大きいデータと使用頻度の小さいデータに区別してキャッシュメモリ装置との間で転送するデータ処理装置を提供し、また、使用頻度の大きいとされたデータを選択的にキャッシュ部に格納するキャッシュメモリ装置とを提供することにより、キャッシュメモリ装置とメインメモリとの間のデータの移動／入れ替えの回数を低減して通信制御処理の効率を向上させることにある。
【００１０】
【課題を解決するための手段】
本発明のキャッシュメモリ装置は、ＣＰＵとメインメモリとの間に設置され高速のバッファメモリとして動作するキャッシュメモリ装置において、タグとデータとを対にして記憶するキャッシュ部と、タグとデータを対にして記憶し前記キャッシュ部よりも小容量の非アロケートバッファと、データ属性判定機能を有する制御回路とを備え、入力データに付加された属性情報が前記制御回路により所定の属性を示す情報であると判断された場合に前記入力データを前記キャッシュ部に格納し、前記入力データの属性情報が前記制御回路により前記所定の属性を示す情報でないと判断されたときに前記入力データを非アロケートバッファに格納し、外部からリードまたはライトのアクセスがあったときには先ず前記キャッシュ部および前記非アロケートバッファを同時にアクセスしミスヒットが発生しアクセス対象データの属性情報が前記制御回路により前記所定の属性を示す情報であると判断された場合に所定の方法で前記キャッシュ部の中から入れ替え対象ブロックを選択して前記入れ替え対象ブロックのタグおよびデータをアクセスアドレスのタグおよび前記メインメモリの前記アクセスアドレスに格納されたデータに入れ替えたのちに前記アクセスの処理を実行し、ミスヒットが発生しアクセス対象データの属性情報が前記制御回路により前記所定の属性を示す情報でないと判断された場合に前記非アロケートバッファのインデックスアドレスが指すブロックを入れ替え対象ブロックとしてタグおよびデータをアクセスアドレスのタグおよび前記メインメモリの前記アクセスアドレスに格納されたデータに入れ替えたのちに前記アクセスの処理を実行するキャッシュメモリ装置であって、前記非アロケートバッファは、それぞれのタグ／データ対に対応してタイマが追加して設けられ、前記非アロケートバッファと前記メインメモリとの間でデータの入れ替えが発生した時点で前記タイマを始動し予め設定した時間を計時したときに前記入れ替えにより格納されたデータを前記メインメモリに書き戻しする。
【００１１】
または、本発明のキャッシュメモリ装置は、ＣＰＵとメインメモリとの間に設置され高速のバッファメモリとして動作するキャッシュメモリ装置において、タグとデータとを対にして記憶するキャッシュ部と、タグとデータを対にして記憶し前記キャッシュ部よりも小容量の非アロケートバッファと、データ属性判定機能を有する制御回路とを備え、入力データに付加された属性情報が前記制御回路により所定の属性を示す情報であると判断された場合に前記入力データを前記キャッシュ部に格納し、前記入力データの属性情報が前記制御回路により前記所定の属性を示す情報でないと判断されたときに前記入力データを非アロケートバッファに格納し、外部からリードまたはライトのアクセスがあったときには先ず前記キャッシュ部および前記非アロケートバッファを同時にアクセスしミスヒットが発生しアクセス対象データの属性情報が前記制御回路により前記所定の属性を示す情報であると判断された場合に所定の方法で前記キャッシュ部の中から入れ替え対象ブロックを選択して前記入れ替え対象ブロックのタグおよびデータをアクセスアドレスのタグおよび前記メインメモリの前記アクセスアドレスに格納されたデータに入れ替えたのちに前記アクセスの処理を実行し、ミスヒットが発生しアクセス対象データの属性情報が前記制御回路により前記所定の属性を示す情報でないと判断された場合に前記非アロケートバッファのインデックスアドレスが指すブロックを入れ替え対象ブロックとしてタグおよびデータをアクセスアドレスのタグおよび前記メインメモリの前記アクセスアドレスに格納されたデータに入れ替えたのちに前記アクセスの処理を実行するキャッシュメモリ装置であって、前記非アロケートバッファは、それぞれのタグ／データ対に対応してタイマが追加して設けられ、ヒットしてアクセスされる毎に前記タイマを始動し予め設定した時間を計時したときに該当アドレスのデータを前記メインメモリに書き戻しする。
【００１２】
または、本発明のキャッシュメモリ装置は、ＣＰＵとメインメモリとの間に設置され高速のバッファメモリとして動作するキャッシュメモリ装置において、タグとデータとを対にして記憶するキャッシュ部と、タグとデータを対にして記憶し前記キャッシュ部よりも小容量の非アロケートバッファと、データ属性判定機能を有する制御回路とを備え、入力データに付加された属性情報が前記制御回路により所定の属性を示す情報であると判断された場合に前記入力データを前記キャッシュ部に格納し、前記入力データの属性情報が前記制御回路により前記所定の属性を示す情報でないと判断されたときに前記入力データを非アロケートバッファに格納し、外部からリードまたはライトのアクセスがあったときには先ず前記キャッシュ部および前記非アロケートバッファを同時にアクセスしミスヒットが発生しアクセス対象データの属性情報が前記制御回路により前記所定の属性を示す情報であると判断された場合に所定の方法で前記キャッシュ部の中から入れ替え対象ブロックを選択して前記入れ替え対象ブロックのタグおよびデータをアクセスアドレスのタグおよび前記メインメモリの前記アクセスアドレスに格納されたデータに入れ替えたのちに前記アクセスの処理を実行し、ミスヒットが発生しアクセス対象データの属性情報が前記制御回路により前記所定の属性を示す情報でないと判断された場合に前記非アロケートバッファのインデックスアドレスが指すブロックを入れ替え対象ブロックとしてタグおよびデータをアクセスアドレスのタグおよび前記メインメモリの前記アクセスアドレスに格納されたデータに入れ替えたのちに前記アクセスの処理を実行するキャッシュメモリ装置であって、前記非アロケートバッファは、それぞれのタグ／データ対に対応してカウンタが追加して設けられ、アクセス回数をカウントして予め設定したアクセス回数に達したアドレスのデータを前記メインメモリへ書き戻しする。
【００１３】
【発明の実施の形態】
次に、本発明について、図面を参照して詳細に説明する。図１（ａ）は、本発明のデータ処理装置の一実施の形態である通信制御装置のブロック図である。
【００１４】
通信制御装置１は、システムバス２と、システムバス２に接続したＣＰＵ３、ネットワークＩ／Ｏ装置４およびキャッシュメモリ装置５を含み、キャッシュメモリ装置５はメモリインタフェース７を介してＤＲＡＭで構成されたメインメモリ８に接続されている。通信制御装置１では、ネットワークＩ／Ｏ装置４からキャッシュメモリ装置６へ直接にＤＭＡ転送が行われるので、ＤＭＡ転送されたデータをＣＰＵ３からアクセスするときにおけるメインメモリからキャッシュメモリ装置へのデータの移動が図６の従来の通信制御装置６１と比較して著しく低減できる。また、逆方向のキャッシュメモリ装置６からネットワークＩ／Ｏ４へのＤＭＡ転送においても、キャッシュメモリ装置６から直接に転送されるので、従来の通信制御装置６１では必要であった転送前にダーティなデータをメインメモリに一旦書き戻して当該エントリを無効化するフラッシュ処理を省略することができる。さらに、ネットワークＩ／Ｏ装置４が内蔵するＤＭＡ５は属性付加部９を備えており、図１（ｂ）に示すようにパケットのヘッダ１１，通信データ１２，トレイラ１３に属性ビット１４、１５，１６をそれぞれ付加し、経路テーブルを参照する際に使用されるヘッダ１１の属性ビット１４を“１”とし、ＣＰＵ３からは参照されない通信データ部１２の属性ビット１５を“０”としてＤＭＡ転送する。図１（ｂ）では、トレイラ１３の属性ビット１６も“０”として、ヘッダの属性ビット１４のみを“１”とした場合を示している。キャッシュメモリ装置６が、属性ビットが“１”のデータと属性ビットが“０”のデータとを選別し、属性ビットが“１”のデータをキャッシュ部にアロケートする機能を有するので、ＣＰＵ３の必要とするデータがキャッシュメモリ装置６に格納されるため、ヒット率が大幅に向上し、ミスヒットによって生じるキャッシュメモリ装置６とメインメモリ８との間のデータの入れ替えが低減し、特に、ＣＰＵ３がアクセスしないデータの入れ替えが低減するので、通信制御の処理効率が向上する。
【００１５】
次に動作について述べる。通信制御装置１は、接続するネットワークからパケットデータＰＩを受信し、データの送付先のＩＰアドレスを識別し、経路テーブルを参照して伝送する経路を選択し、これに対応してヘッダの一部分を更新してパケットデータＰＯを送出する。システムバス２に接続されたネットワークＩ／Ｏ装置４が受信したパケットには、ＤＭＡ５内の属性付加部９により、ヘッダ１１にキャッシュ部へのアロケート属性を示す“１”の属性ビット１４が付加され、通信データ部１２およびトレイラ１３には非アロケート属性を示す“０”の属性ビット１５，１６がそれぞれ付加されてから、システムバス２に接続されて２次キャッシュとして使用されるキャッシュメモリ装置６にＤＭＡ転送される。バストランザクションが固定されたサイズで行われる形式の場合には、アロケート属性のデータ部分と非アロケート属性のデータ部分の両方を含むトランザクションに対しては全体がアロケート属性を持つとして処理してもよい。キャッシュメモリ装置６では、属性ビットがアロケート属性“１”のデータであるヘッダ１１をキャッシュ部に格納する。転送先のタグアドレスがヒットした場合にはキャッシュ部の該当ブロックにデータが書き込まれ、ヒットしなかった場合にはＬＲＵ法により置換されるブロックを選択し、メインメモリ８中の該当アドレスのデータおよびタグアドレスと入れ替えてから書き込まれる。
【００１６】
ＣＰＵ３は、ヘッダ１１をキャッシュメモリ装置６から読み出し、ルーティング情報をチェックし、ヘッダ１１の一部分を更新しキャッシュメモリ装置６に戻す。パケットの送り先が決定すると、ＤＭＡが起動され、キャッシュメモリ装置６のキャッシュ部にアロケートされたヘッダ１１と、キャッシュ部にアロケートされなかった通信データ１２およびトレイラ１３とを合わせたパケットがシステムバス２を介してネットワークＩ／Ｏ装置４へＤＭＡ転送され、ネットワークＩ／Ｏ装置４から他のネットワークへ送信される。
【００１７】
なお、以上では、ヘッダ１１のみをアロケート属性“１”のデータとして扱う場合について説明したが、通信プロトコルやパケットの形式によっては、ヘッダ１１とトレイラ１３の両方をアロケート属性“１”のデータとして扱い、通信データ１２のみを非アロケート属性“０”のデータとする方がヒット率をより高めることができる場合もある。
【００１８】
図２は、本発明のキャッシュメモリ装置の第１実施形態の内部ブロック図である。キャッシュメモリ装置６ａは、図７の従来のキャッシュメモリ装置と同様に、タグ部とデータ部との対からなるウェイを第１のウェイ２１−１から第ｎのウェイ２１−ｎまでｎ個含むｎウェイのキャッシュ部２２と、タグフィールド、インデックスフィールドを有するアドレスＡＤのうちのインデックスアドレスＡＤＩで指示されたセットのタグ部に格納されたタグアドレスとアドレスＡＤのタグフィールドのアドレスＡＤＴとの一致を検出するｎ個の比較回路２３−１〜２３−ｎと、これらの比較回路で一致を検出したときにヒット信号ＨＩＴをアクティブにして制御回路２７に出力するＯＲ回路２４と、ＣＰＵ３からのアクセスがリードアクセスであるときに一致を検出した比較回路に対応するウェイのエントリを選択して格納されたデータを読み出しデータＤＡＴとして出力する選択回路２５とを備え、また、インデックスアドレスが同一であるｎウェイのブロックで構成されるセットの中で間で最も長い期間使用されていないブロックをそれぞれのセット毎に記憶するＬＲＵメモリ部２６を備えている。
【００１９】
これに加えて、キャッシュメモリ装置６ａは、制御回路２７内にデータ属性判定部２９を備えている。データ属性判定部２９は、ネットワークＩ／Ｏ装置４からシステムバス２を介して転送されたデータの属性ビットを判定し、アロケート属性を示す“１”が付加されたデータ（すなわちヘッダ）は、キャッシュ部２２へ優先的にアロケートするように切換部２８を操作する。すなわち、転送先のタグアドレスがヒットした場合にはキャッシュ部２２の該当ブロックにデータが書き込まれるとともに該当ブロックをダーティとする。ミスヒットした場合にはＬＲＵ法により置換されるブロックを選択し、そのブロックのデータがダーティであるならばメインメモリ８に書き戻したのちに、メインメモリ８より転送データが書き込まれるアドレスに該当するブロックのデータをアロケートした上で、転送データを上書きしてダーティ情報が付加される。ＤＭＡ５で非アロケート属性“０”が付加されたデータに対しては、先ずキャッシュ部２２でヒットするかをチェックし、ミスヒットした場合にはキャッシュメモリ装置６を通過してそのままデータＭＤとして出力するように切換部２８を操作する。データＭＤは、メモリインタフェース７を介してメインメモリ８に直接書き込まれる。キャッシュ部２２でヒットした場合にはキャッシュ部のデータを更新しダーティとする。
【００２０】
ＣＰＵ３がキャッシュメモリ装置６にアクセスする場合には、アクセス対象のデータがアロケート属性データであるか、非アロケート属性データであるかの情報も通知する。ＣＰＵからのすべてのアクセスにおいては、先ずキャッシュ部２２をアクセスし、ヒットして且つアクセス種類がライトアクセスがあったときには、制御回路２７が切換部２８を操作してキャッシュ部２２の該当ブロックを書き換え、ダーティ情報を付加する。ダーティなブロックのデータは、ミスによる入れ替え発生時にメインメモリ８に書き戻しされる。アクセス種類がリードアクセスであったときには、タグ部のタグアドレスがアドレスＡＤのタグフィールドのアドレスＡＤＴと一致するウェイのエントリのデータが読み出しデータＤＡＴとして読み出される。
【００２１】
アドレスＡＤのインデックスアドレスＡＤＩが指すセットのｎ個のエントリのタグアドレスのいずれもがタグフィールドのアドレスＡＤＴと一致しなかった場合にはミスヒットとみなされる。データ属性判定部２８でアクセス対象のデータがアロケート属性のデータと判断されたときには、制御回路２７の制御のもとに、インデックスアドレスＡＤＩが指すセットの中からＬＲＵメモリ２６にＬＲＵブロックとして登録されたブロックＬＲＵＢを抽出し、キャッシュ部２２のＬＲＵＢに該当するウェイのブロックのタグアドレスおよびデータをアドレスＡＤの示すメインメモリ８内のアドレスのタグフィールドに該当するタグアドレスおよびデータに更新し、キャッシュ部２２からＬＲＵ法により選択され追い出されたブロックのデータをキャッシュ部２２から追い出される前のタグアドレスおよびインデックスアドレスに対応するメインメモリ８のメモリアドレスに書き戻す。
【００２２】
ミスヒットが発生しデータ属性判定部２８でアクセス対象のデータがアロケート属性のデータではないと判断されたときには、制御回路２７の制御によりメモリインタフェース７を通して直接メインメモリ８をアクセスする。アクセス種類がリードアクセスのときは、アドレスＡＤがメインメモリ８に送られ、メインメモリ８から読み出されたデータＭＤがキャッシュメモリ装置６ａの切換部２８を通ってそのままシステムバス２に出力される。アクセス種類がライトアクセスのときは、アドレスＡＤがメインメモリ８に送られ、データはシステムバス２からキャッシュメモリ装置６ａの切換部２８を通ってメインメモリ８に送られて書き込まれる。
【００２３】
このように、キャッシュメモリ装置６ａは、データに付加された属性ビットにより、データをキャッシュ部２２内にアロケートするか、アロケートせずにメインメモリ８に送るかを選択できる機能を有するので、キャッシュ部２２には繰り返しアクセスされる確率の高いデータを選択的に格納でき、ヒット率を大幅に向上させることが可能となる。
【００２４】
図３は、本発明のキャッシュメモリ装置の第２実施形態の内部ブロック図である。本実施形態のキャッシュメモリ装置６ｂでは、非アロケート属性データを格納する非アロケートバッファ３１を有し、図２のキャッシュメモリ装置６ａではメインメモリ８に格納する非アロケート属性データの一部を非アロケートバッファ３１に格納する。すなわちキャッシュメモリ装置６ｂは、制御回路２７内のデータ属性判定部３３により、ネットワークＩ／Ｏ装置４からシステムバス２を介して転送されたデータの属性ビットを判定し、アロケート属性を示す“１”が付加されたデータに対してはキャッシュ部２２へアロケートされるように切換部２８を操作し、転送先のタグアドレスがヒットした場合にはキャッシュ部２２の該当ブロックにデータが書き込まれるとともにダーティ情報を付加し、ミスヒットした場合にはＬＲＵ法により置換されるブロックを選択してメインメモリに書き戻し、メインメモリ８より転送データが書き込まれるアドレスに該当するブロックのデータをアロケートした上で、転送データを上書きし、ダーティ情報を付加する。非アロケート属性“０”が付加されたデータに対しては非アロケートバッファ３１に転送されるように切換部２８を操作し、転送先のタグアドレスがヒットした場合には非アロケートバッファ３１の該当ブロックにデータが書き込まれるとともにダーティ情報を付加し、ミスヒットした場合には、インデックスアドレスＡＤＩｂが指すエントリを選択してメインメモリに書き戻し、メインメモリ８より転送データが書き込まれるアドレスに該当するブロックのデータを非アロケーションバッファの該当アドレスに書き込んだ上で、転送データを上書きし、ダーティ情報を付加する。
【００２５】
非アロケートバッファ３１は、キャッシュ部の各ウェイと同様にタグ部とデータ部とを有している。ただし、非アロケートバッファ３１の容量がキャッシュ部２２全体の記憶容量よりも小さいことは勿論であるが、キャッシュ部２２の１個のウェイの容量よりも小さくともよく、その場合には図４（ｂ）に示すように、非アロケートバッファ３１のインデックスアドレスＡＤＩｂに当てられるフィールドは、キャッシュ部２２のインデックスアドレスＡＤＩａのフィールドよりも小さくなり、その分だけ非アロケートバッファ３１に当てられるタグアドレスＡＤＴｂのフィールドがキャッシュ部２２のタグアドレスＡＤＴａのフィールドよりも大きくなる。したがって、非アロケートバッファ３１のタグ部に格納されるタグアドレスのビット数はキャッシュ部２２の各ウェイのタグ部に格納されるタグアドレスのビット数よりも大きい。
【００２６】
図４（ａ）は、キャッシュメモリ装置６ｂの動作フロー図である。ＣＰＵ３からのアクセスがあると、先ずステップ４１で、アクセス対象のアドレスＡＤの第１のインデックスアドレスＡＤＩａが指すキャッシュ部２２のｎ個のウェイのタグ部に格納されたタグアドレスとアドレスＡＤのタグフィールドのアドレスＡＤＴａを比較し、同時に、非アロケートバッファ３１のインデックスアドレスＡＤＩｂが指すタグ部に格納されたタグアドレスとアドレスＡＤの非アロケートバッファ用のタグアドレスＡＤＴｂを比較し、キャッシュ部２２のｎ個のウェイに対応する比較回路２３−１〜２３−ｎと非アロケートバッファ３１に対応する比較回路３２のうちのどれかが一致を検出したときにＯＲ回路２４からヒット信号ＨＩＴをアクティブにして出力する。次にステップ４２で、ヒットしたか否かを判断し、ヒットしたと判断された場合にはステップ４６へ進み、ミスヒットと判断された場合にはステップ４３へ進む。
【００２７】
ステップ４３では、ミスヒットであったデータの種類がアロケート属性データであるか否かを判断する。アクセス時にＣＰＵ３から通知されるデータの属性によりデータ属性判定部３３で判断し、アクセス対象のデータがアロケート属性データであると判断されたときにはステップ４４へ進み、ＬＲＵ法によりキャッシュ部２２の置換されるブロックを選択し、メインメモリ８中の該当アドレスのデータおよびタグアドレスと入れ替える。メインメモリ８からのデータＭＤは、制御回路２７に制御されて切換部２８を通ってキャッシュ部２２へ送られる。キャッシュ部から追い出されるブロックのデータはメインメモリ８に書き戻しされる。ステップ４３でデータの種類が非アロケート属性データであると判断された場合にはステップ４５に進み、非アロケートバッファ３１のインデックスアドレスＡＤＩｂが指すエントリをメインメモリ８中の該当アドレスのデータおよびタグアドレスと入れ替える。メインメモリ８からのデータＭＤは、制御回路２７に制御されて切換部２８を通って非アロケートバッファ３１へ送られる。非アロケートバッファ３１から追い出されるブロックのデータをメインメモリ８に書き戻す。
【００２８】
ステップ４４またはステップ４５の終了後にはステップ４１に戻るが、次にステップ４２の判断では必ずヒットするので、ステップ４６に進み、アクセス種類がリードアクセスであるか否かを判断する。リードアクセスでないと判断された場合にはステップ４７へ進み、ライトアクセスであるので、書き込みデータＷＤが制御回路２７に制御されて切換部２８を通ってヒットしたキャッシュ部２２のウェイまたは非アロケートバッファへ送られ、データの書き換えが実行されるとともにダーティ情報を付加してアクセス処理を終了する。ステップ４６でリードアクセスであった場合には、ヒットしたキャッシュ部２２のウェイまたは非アロケートバッファのブロックのデータを読み出しデータＤＡＴとしてシステムバス２を介してＣＰＵ３へ出力し、ＣＰＵ３からのアクセスを終了する。
【００２９】
キャッシュメモリ装置６ｂでは、アロケート属性が付加されていないデータの一部を非アロケートバッファ３１に格納することができるので、パケットがネットワークＩ／Ｏ４からキャッシュメモリ装置６ｂに転送され、ＣＰＵ３での処理後に再度当該パケットがキャッシュメモリ装置６ｂからネットワークＩ／Ｏ４へ送信されるまでの時間が極めて短く時間的な局所性がある通信環境、および送り元／送り先が同一のパケットが頻繁に送受信される空間的な局所性がある通信環境では、通信データおよびトレイラが非アロケートバッファ３１に格納されている間にアクセスされる確率が高まるため、非アロケートバッファ３１が非アロケート属性データに対するキャッシュメモリとして有効に働くので、非アロケート属性データのアクセス時間をも短縮することが可能となる。なお、非アロケートバッファ３１の構成をキャッシュ部２２のウェイの１個と同一の構成としたときには、非アロケートバッファがあたかもキャッシュ部２２の（ｎ＋１）番目のウェイであるようにキャッシュ部内のウェイのメモリブロックをそのまま流用でき、アドレスＡＤのインデックスフィールドおよびタグフィールドを共通にでき、比較回路３２に比較回路２３−１〜２３−ｎの回路ブロックを流用できるので、設計工数を削減できるという利点がある。
【００３０】
図５は、非アロケートバッファの別の実施例の内部ブロック図である。図５（ａ）の非アロケートバッファ５１は、タグとデータの対を４個エントリできるメモリ領域を備え、それぞれのタグ／データ対に対応してタイマが設けられている。この実施例の非アロケートバッファ５１においては、非アロケート属性データが非アロケートバッファ内に滞留する時間を制限する。インデックスアドレスがタグＢとデータＢの対に対応するアドレスへＣＰＵ３からアクセスがあり、タグアドレスが不一致でミスヒットとなってメインメモリ８との間でデータの入れ替えが発生したとすると、このとき非アロケートバッファ５１では、データの入れ替えが発生した時点でタイマを始動させ、予め設定した時間を計時したときに制御回路２７にタイムアウトＴＯＢを通知して非アロケート属性データをメインメモリ８に書き戻しする。このようにしてアクセス確率が小さくなったと判断できるデータのメインメモリへの書き戻しを前もって実行しておくことにより、パケットがネットワークＩ／Ｏ４から転送される際に、非アロケートバッファ３１にそれまで格納されていたデータをメインメモリへ書き戻す処理を削減でき、時間的な局所性、空間的な局所性のある通信環境における非アロケートバッファ設置の有効性を損なうことがない。なお、非アロケートバッファ５１においては、ヒットしてアクセスされる毎にタイマをリセットして再始動し予め設定した時間を計時したときに制御回路２７にタイムアウトＴＯＢを通知して非アロケート属性データをメインメモリに書き戻すようにしてもよい。
【００３１】
図５（ｂ）の非アロケートバッファ５２は、タグとデータの対を４個エントリできる領域を備え、それぞれのタグ／データ対に対応してカウンタが設けられている。この実施例の非アロケートバッファ５２においては、非アロケート属性データが予め設定した回数アクセスされた場合には、それ以上アクセスされる確率は小さいと判断してメインメモリ８に書き戻す。予めカウンタＡ〜Ｄに所定の値を設定し、ＣＰＵ３からのアクセスがタグＢとデータＢの対にヒットする毎にカウンタＢのカウンタ値を１ずつダウンカウントし、カウンタ値が０になったときにカウントアウトＣＯＢを制御回路２７に通知してメインメモリへ書き戻しする。図５（ａ）の実施例と同様に、パケットがネットワークＩ／Ｏ４から転送される際に、非アロケートバッファ３１にそれまで格納されていたデータをメインメモリに書き戻す処理を削減できる。ビデオストリームなどのデータでは、書き込みを行いそれを読み出したあとは再度とアクセスされることがないという特性を持つので、このようなパケットデータを頻繁に処理する環境では有効である。
【００３２】
なお、図５（ａ），（ｂ）ではタグとデータの対が４個の場合を例として説明したが、４個に限定されるものでないことは明らかである。
【００３３】
【発明の効果】
以上のように、本発明のキャッシュメモリ装置では、使用頻度の大きいとされたデータを選択的にキャッシュ部に格納するようにしたので、キャッシュメモリ装置のヒット率が向上し、データの移動／入れ替えの回数が低減する。
【００３４】
また、本発明のデータ処理装置では、Ｉ／Ｏ装置に入力するデータを使用頻度の大きいデータと使用頻度の小さいデータに選別して本発明のキャッシュメモリ装置との間で直接に転送するようにしたので、キャッシュメモリ装置とメインメモリとの間のデータの移動／入れ替えの回数がさらに低減し、通信制御処理の性能向上に大きな効果がある。
【図面の簡単な説明】
【図１】（ａ）は、本発明のデータ処理装置の一実施の形態である通信制御装置のブロック図であり、（ｂ）は、属性が付加されたパケットの構成を示す図である。
【図２】本発明のキャッシュメモリ装置の第１実施形態の内部ブロック図である。
【図３】本発明のキャッシュメモリ装置の第２実施形態の内部ブロック図である。
【図４】（ａ）は、キャッシュメモリ装置６ｂの動作フロー図であり、（ｂ）は、キャッシュ部と非アロケートバッファとのタグとインデックスの対照図である。
【図５】非アロケートバッファの別の実施例の内部ブロック図である。
【図６】（ａ）は、従来の通信制御装置のブロック図であり、（ｂ）は、パケットの構成を示す図である。
【図７】従来のキャッシュメモリ装置の内部ブロック図である。
【符号の説明】
１ 通信制御装置
２ システムバス
３ ＣＰＵ
４ ネットワークＩ／Ｏ装置
５ ＤＭＡ
６，６ａ，６ｂ キャッシュメモリ装置
７ メモリインタフェース
８ メインメモリ
９ 属性付加部
２２ キャッシュ部
２６ ＬＲＵメモリ部
２７ 制御回路
２９，３３ データ属性判定部
３１，５１，５２ 非アロケートバッファ
【図１】
0004822598.tif 000002
【図２】
0004822598.tif 000003
【図３】
0004822598.tif 000004
【図４】
0004822598.tif 000005
【図５】
0004822598.tif 000006
【図６】
0004822598.tif 000007
【図７】
0004822598.tif 000008