(57)【要約】【課題】記憶装置からデータを読み出し、キャッシュメモリへ書き込む際の時間を短縮すること。【解決手段】キャッシュメモリシステムは、複数のキャッシュラインに区分された記憶領域を有するキャッシュメモリと、あるバス幅を有するバスを介してデータの読み書きを各々行う少なくとも１つの記憶装置と、前記バス幅のうち最も小さいバス幅と等しいビット数を処理単位として、前記各キャッシュラインについて、データの有効または無効を示す有効情報を記憶する管理テーブルと、前記記憶装置から読み出したデータを前記キャッシュメモリへ書き込むメモリ制御手段であって、前記キャッシュメモリへデータを書き込む際、前記管理テーブルにおいて書き換え対象となるキャッシュラインに相当する有効情報のうち、書き換えが行われる処理単位に相当する有効情報を有効を示す情報に書き換えるメモリ制御手段とを有する。【選択図】図１
2009075705.tif 000002
【特許請求の範囲】
【請求項１】
複数のキャッシュラインに区分された記憶領域を有するキャッシュメモリと、
前記キャッシュメモリとの間で、あるバス幅を有するバスを介してデータの読み書きを各々行う少なくとも１つの記憶装置と、
前記バス幅のうち最も小さいバス幅と等しいビット数を処理単位として、前記各キャッシュラインについて、データの有効または無効を示す有効情報を記憶する管理テーブルと、
前記記憶装置から読み出したデータを前記キャッシュメモリへ書き込むメモリ制御手段であって、前記キャッシュメモリへデータを書き込む際、前記管理テーブルにおいて書き換え対象となるキャッシュラインに相当する有効情報のうち、書き換えが行われる処理単位に相当する有効情報を有効を示す情報に、それ以外の処理単位に相当する有効情報を無効を示す情報に書き換えるメモリ制御手段と
を有するキャッシュメモリシステム。
【請求項２】
前記メモリ制御手段が、複数の転送方式により前記記憶手段からデータを読み出すことが可能であり、
前記記憶装置から読み出すデータのサイズを検出するサイズ検出手段と、
前記サイズ検出手段により検出されたサイズに基づいて、前記記憶装置からデータを読み出す転送方式を決定する転送方式決定手段と
を有し、
前記メモリ制御手段が、前記転送方式決定手段により決定されたデータ転送方式に従って前記記憶装置から読み出したデータを前記キャッシュメモリへ書き込む
ことを特徴とする請求項１に記載のキャッシュメモリシステム。
【請求項３】
前記メモリ制御手段が、複数の転送方式により前記記憶手段からデータを読み出すことが可能であり、
前記記憶装置の記憶領域のうち、将来アクセスされるであろう記憶領域の位置を、前記処理単位ごとに予測する投機的読み込みアドレス生成手段と、
前記複数のキャッシュラインのうち書き換え対象となるキャッシュラインについて、前記投機的読み込みアドレス生成手段により予測された記憶領域の位置に基づいて、前記処理単位毎にアクセスの有無を示す情報を記憶するアクセス予測テーブルを生成するアクセス予測テーブル生成手段と、
前記アクセス予測テーブル生成手段により生成されたアクセス予測テーブルに基づいて、前記記憶装置からデータを読み出す転送方式を決定する転送方式決定手段と
を有し、
前記メモリ制御手段が、前記転送方式決定手段により決定されたデータ転送方式に従って前記記憶装置から読み出したデータを前記キャッシュメモリへ書き込む
ことを特徴とする請求項１に記載のキャッシュメモリシステム。
【請求項４】
前記メモリ制御手段が、複数の転送方式により前記記憶手段からデータを読み出すことが可能であり、
前記複数の転送方式の各々について、その転送方式でデータを読み出した場合の読み出し時間と前記複数の転送方式によるデータ読み出しの最短時間との時間差Δｔと、その転送方式でデータを読み出した場合に転送されるデータ量と前記複数の転送方式によるデータ転送量の最小値との差ΔＤに基づいて算出される転送効率ΔＤ／Δｔを算出する転送効率算出手段を有し、
前記メモリ制御手段が、前記複数の転送方式のうち、前記転送効率算出手段により算出された転送効率が予め設定された転送効率よりも高い転送方式に従って前記記憶装置から読み出したデータを前記キャッシュメモリへ書き込む
ことを特徴とする請求項１に記載のキャッシュメモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュメモリシステムに関する。
【背景技術】
【０００２】
コンピュータにおいては、主記憶装置やバスの速度がＣＰＵ（Central Processing Unit）などの処理装置の速度よりも遅く、全体として性能向上のボトルネックとなっている。この問題を解決するために、主記憶装置に代わってデータを入出力する、高速小容量のキャッシュメモリが用いられている。
【０００３】
システムのさらなる高速化のため、キャッシュメモリへのアクセスを高速化する技術が知られている（例えば、特許文献１）。特許文献１によれば、キャッシュラインは複数のサブブロックに分割される。サブブロックを単位として、ビットがダーティであるか判定される。キャッシュラインからデータを主記憶装置に書き込む際には、サブブロックのダーティビット状態から、書き戻すサブブロックの組み合わせが最適化され、主記憶装置への書き込みが行われる。
【特許文献１】特開平１０−２７５１１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
これに対し本発明は、記憶装置からデータを読み出し、キャッシュメモリへ書き込む際の時間を短縮する技術を提供する。
【課題を解決するための手段】
【０００５】
上述の課題を解決するため、本発明は、複数のキャッシュラインに区分された記憶領域を有するキャッシュメモリと、前記キャッシュメモリとの間で、あるバス幅を有するバスを介してデータの読み書きを各々行う少なくとも１つの記憶装置と、前記バス幅のうち最も小さいバス幅と等しいビット数を処理単位として、前記各キャッシュラインについて、データの有効または無効を示す有効情報を記憶する管理テーブルと、前記記憶装置から読み出したデータを前記キャッシュメモリへ書き込むメモリ制御手段であって、前記キャッシュメモリへデータを書き込む際、前記管理テーブルにおいて書き換え対象となるキャッシュラインに相当する有効情報のうち、書き換えが行われる処理単位に相当する有効情報を有効を示す情報に、それ以外の処理単位に相当する有効情報を無効を示す情報に書き換えるメモリ制御手段とを有するキャッシュメモリシステムを提供する。
【０００６】
好ましい態様において、このキャッシュメモリシステムは、前記メモリ制御手段が、複数の転送方式により前記記憶手段からデータを読み出すことが可能であり、前記記憶装置から読み出すデータのサイズを検出するサイズ検出手段と、前記サイズ検出手段により検出されたサイズに基づいて、前記記憶装置からデータを読み出す転送方式を決定する転送方式決定手段とを有し、前記メモリ制御手段が、前記転送方式決定手段により決定されたデータ転送方式に従って前記記憶装置から読み出したデータを前記キャッシュメモリへ書き込んでもよい。
【０００７】
別の好ましい態様において、このキャッシュメモリシステムは、前記メモリ制御手段が、複数の転送方式により前記記憶手段からデータを読み出すことが可能であり、前記記憶装置の記憶領域のうち、将来アクセスされるであろう記憶領域の位置を、前記処理単位ごとに予測する投機的読み込みアドレス生成手段と、前記複数のキャッシュラインのうち書き換え対象となるキャッシュラインについて、前記投機的読み込みアドレス生成手段により予測された記憶領域の位置に基づいて、前記処理単位毎にアクセスの有無を示す情報を記憶するアクセス予測テーブルを生成するアクセス予測テーブル生成手段と、前記アクセス予測テーブル生成手段により生成されたアクセス予測テーブルに基づいて、前記記憶装置からデータを読み出す転送方式を決定する転送方式決定手段とを有し、前記メモリ制御手段が、前記転送方式決定手段により決定されたデータ転送方式に従って前記記憶装置から読み出したデータを前記キャッシュメモリへ書き込んでもよい。
【０００８】
さらに別の好ましい態様において、このキャッシュメモリシステムは、前記メモリ制御手段が、複数の転送方式により前記記憶手段からデータを読み出すことが可能であり、前記複数の転送方式の各々について、その転送方式でデータを読み出した場合の読み出し時間と前記複数の転送方式によるデータ読み出しの最短時間との時間差Δｔと、その転送方式でデータを読み出した場合に転送されるデータ量と前記複数の転送方式によるデータ転送量の最小値との差ΔＤに基づいて算出される転送効率ΔＤ／Δｔを算出する転送効率算出手段を有し、前記メモリ制御手段が、前記複数の転送方式のうち、前記転送効率算出手段により算出された転送効率が予め設定された転送効率よりも高い転送方式に従って前記記憶装置から読み出したデータを前記キャッシュメモリへ書き込んでもよい。
【発明の効果】
【０００９】
請求項１記載のキャッシュメモリシステムによれば、記憶装置から読み出したデータは、最小バス幅と等しいビット数を処理単位として前記キャッシュメモリへ書き込まれる。
請求項２記載のキャッシュメモリシステムによれば、記憶装置から読み出すデータのサイズに基づいてデータ転送方式が決定される。
請求項３記載のキャッシュメモリシステムによれば、投機的予測に基づいてデータ転送方式が決定される。
請求項４記載のキャッシュメモリシステムによれば、データの転送効率に基づいてデータ転送方式が決定される。
【発明を実施するための最良の形態】
【００１０】
１．第１実施形態
本発明の第１実施形態の説明に先立ち、従来技術について簡単に説明する。
図９は、従来技術に係るキャッシュメモリシステム９の構成を示す図である。キャッシュメモリ９００は、従来技術に係るキャッシュメモリである。記憶装置３０は、主記憶装置である。キャッシュメモリコントローラ９２０は、キャッシュメモリ９００と記憶装置３０との間のデータの読み書きを制御する制御装置である。
【００１１】
キャッシュメモリ９００は、複数のＴＡＧメモリ９１０および複数のキャッシュライン９３０を有する。ＴＡＧメモリ９１０は、キャッシュライン９３０に記憶されているデータの、記憶装置３０上の位置を記憶するメモリである。キャッシュライン９３０は、データを記憶する記憶領域である。従来技術において、キャッシュラインを処理単位としてデータの読み書きが行われる。
【００１２】
図１０は、ライン転送によるデータ転送に要する時間を説明する図である。「ライン転送」とは、記憶装置３０との間でキャッシュラインを単位としてデータの転送を行う転送方式をいう。いま、キャッシュライン９３０の大きさが３２バイトであり、記憶装置３０のバス幅が３２ビットである場合を例に説明する。この場合、記憶装置３０とキャッシュメモリ９００との間のデータの転送はバス幅すなわち３２ビットを処理単位として行われる。図１０および図１１において、データＤ０−Ｄ７は、それぞれ処理単位（３２ビット）のデータを示す。すなわち、１つのキャッシュラインはデータＤ０−Ｄ７を記憶している。いま、記憶装置３０からアドレスの読み出しに要する時間がｔａｄｄ、１処理単位のデータの読み出しに要する時間がｔｄａｔである場合を例に説明する。
【００１３】
キャッシュライン９３０において、１処理単位のデータ（例えばデータＤ０）しか書き込みを行わない場合であっても、１ライン分のデータ（データＤ０−Ｄ７）がキャッシュライン９３０に書き込まれる。一方このとき、記憶装置３０からのデータの読出しには、１ライン分のデータ（データＤ０−Ｄ７）がキャッシュライン９３０に読み込まれるが、これにはｔａｄｄ＋８ｔｄａｔの時間を要する。
【００１４】
図１１は、シングル転送によりデータ転送に要する時間を説明する図である。「シングル転送」とは、記憶装置３０との間でキャッシュラインの容量よりも小さいデータ量（例えば、１処理単位）を単位としてデータの転送を行う転送方式をいう。いま仮に、従来技術とは異なりシングル転送によりデータを読み出す場合、すなわち、キャッシュメモリを用いない場合を考えると、記憶装置３０からのデータの読出しに要する時間は、ｔａｄｄ＋ｔｄａｔである。このように、記憶装置３０から読み出すデータの大きさがキャッシュラインよりも小さい場合、キャッシュメモリ９００を用いない方が処理にかかる時間が短い。
【００１５】
そこで本実施形態に係るキャッシュメモリシステムは、必要に応じてキャッシュラインより小さいデータ量を単位として記憶装置３０からのデータの読み出しを行うことで読み出し時間を短縮し、キャッシュメモリを利用したデータ転送の高速化を図るものである。
【００１６】
図１は、第１実施形態に係るキャッシュメモリシステム１の構成を示す図である。キャッシュメモリ１０は、複数のＴＡＧメモリ１１０と、複数の管理テーブル１２０と、複数のキャッシュライン１３０とを有する。ＴＡＧメモリ１１０は、キャッシュライン１３０に記憶されているデータの、記憶装置３０上の位置を記憶するメモリである。管理テーブル１２０は、キャッシュライン１３０の各々について、処理単位毎に有効情報を記憶したテーブルである。有効情報とは、その処理単位のデータが有効であるか無効であるかを示す情報をいう。
【００１７】
処理単位は、キャッシュメモリに接続される主記憶装置のバス幅のうち最も小さいバス幅と等しいビット数である。キャッシュメモリシステム１において、記憶装置３０のバス幅は６４ビットである。したがって処理単位は６４ビットである。キャッシュライン１３０の大きさは３２バイトであるので、キャッシュライン１３０は、図１において破線で示されるように４つのセルに区分される。ここで、「セル」とは、ある大きさを有する記憶領域をいう。キャッシュライン１３０において、各セルは、処理単位と同じ大きさ、すなわちこの例では６４ビットの記憶領域である。管理テーブル１２０は、キャッシュライン１３０の４つのセルに対応して構成される。管理テーブル１２０において、各セルは有効情報を記憶できる大きさ、例えば１ビットの記憶領域である。管理テーブル１２０のセルは、それぞれ、キャッシュライン１３０の一の処理単位に対応している。
【００１８】
キャッシュメモリコントローラ２０は、主記憶装置である記憶装置３０とキャッシュメモリ１０との間のデータの読み書きを制御する制御装置、すなわちメモリ制御手段の一例である。キャッシュメモリコントローラ２０は、ＣＰＵ（図示略）など、システムの主制御装置の制御下で記憶装置３０とキャッシュメモリ１０との間のデータの読み書きを制御する。具体的には、キャッシュメモリコントローラ２０は、記憶装置３０から読み出したデータをキャッシュメモリ１０に書き込む際、処理単位を基準としてデータの転送を行う。
【００１９】
例えば、データＤ０およびＤ１の２単位のデータを記憶装置３０から読み出してキャッシュライン１３０に書き込むことが要求された場合、キャッシュメモリコントローラ２０は、データＤ０が格納される記憶装置３０のアドレスＡ０を用いて、データＤ０およびＤ１を記憶装置３０から読み出す。キャッシュメモリコントローラ２０は、アドレスＡ０をＴＡＧメモリ１１０に書き込む。キャッシュメモリコントローラ２０は、アドレスが書き込まれたＴＡＧメモリ１１０に対応するキャッシュライン１３０のセルのうち、先頭の２つのセルのデータを、データＤ０およびＤ１に書き換える。さらにキャッシュメモリコントローラ２０は、データＤ０およびＤ１が書き込まれた管理テーブル１２０のセルのうち、データＤ０およびＤ１に対応するセルの有効情報を「有効」に、それ以外のセルの有効情報を「無効」にする。
【００２０】
このようにして記憶装置３０から読み出したデータをキャッシュメモリ１０に書き込む処理が完了した時点で、キャッシュライン１３０の４つのセルには、先頭から順にデータＤ０、Ｄ１が記憶されている。後ろ２つのセルには、キャッシュされるべきデータとは無関係なデータ、すなわち無効なデータが記憶されている。管理テーブル１２０において、先頭の２つのセルには「有効」を示す有効情報が、後ろ２つのセルには「無効」を示す有効情報が記憶されている。
【００２１】
この状態でＣＰＵからアドレスＡ０にアクセスされると、キャッシュメモリコントローラ２０は、ＴＡＧメモリ１１０内を検索し、アドレスＡ０のデータがキャッシュされているか判断する。アドレスＡ０を発見すると、キャッシュメモリコントローラ２０は、アドレスＡ０に対応する管理テーブル１２０を参照し、キャッシュライン１３０から「有効」なデータを読み出してＣＰＵに提供する。
【００２２】
このように本実施形態によれば、記憶装置３０から読み出したデータをキャッシュメモリ１０に書き込む際、記憶装置３０とキャッシュメモリ１０との間で転送されるデータは、キャッシュラインよりも小さい処理単位を基準として行われる。すなわちキャッシュラインを基準としてデータ転送が行われる従来技術と比較すると、キャッシュラインよりも小さいデータを転送する場合において、記憶装置３０から読み出したデータをキャッシュメモリ１０に書き込む時間が短縮される。
【００２３】
２．第２実施形態
続いて、本発明の第２実施形態について説明する。以下、第１実施形態と共通する事項についてはその説明を省略する。また、第１実施形態と共通の要素については、共通の参照符号が用いられる。
【００２４】
図２は、第２実施形態に係るキャッシュメモリシステム２の構成を示す図である。キャッシュメモリシステム２は、複数の主記憶装置（記憶装置３０および記憶装置４０）を有する点において第１実施形態のキャッシュメモリシステム１と異なっている。いま記憶装置３０のバス幅は６４ビットであり、記憶装置４０のバス幅は３２ビットである。この場合において、キャッシュメモリコントローラ２０は、複数の記憶装置のバス幅のうち最も小さいバス幅と同じ大きさ、すなわち３２ビットを処理単位としてデータの転送を行う。
【００２５】
第１実施形態と同様にキャッシュライン１３０の大きさは３２バイトであるので、ここではキャッシュライン１３０は８つのセルに区分される。各セルの大きさは３２ビットである。同様に、管理テーブル１２０も８つのセルに区分される。各セルの大きさは例えば１ビットである。
【００２６】
図３は、管理テーブル１２０およびキャッシュライン１３０の内容を例示する図である。処理単位の大きさが異なっている点を除けば、キャッシュメモリシステム２の動作は基本的に第１実施形態で説明したものと同様である。図３（Ａ）は記憶装置４０から３２ビットすなわち１処理単位のデータを読み出してキャッシュメモリ１０に記憶した後の、図３（Ｂ）は記憶装置３０から６４ビットすなわち２処理単位のデータを読み出してキャッシュメモリ１０に記憶した後の、管理テーブル１２０およびキャッシュライン１３０の内容を示している。
【００２７】
記憶装置４０から３２ビットのデータＤ００を読み出してキャッシュメモリ１０に記憶する場合、キャッシュメモリコントローラ２０は、キャッシュライン１３０の先頭のセルにデータＤ００を記憶し、管理テーブル１２０の先頭のセルの内容を「有効（図３では「Ｖ」）」に、それ以外のセルの内容を「無効（図３では「Ｎ」）」とする。記憶装置３０から６４ビットのデータＤ１０を読み出してキャッシュメモリ１０に記憶する場合、キャッシュメモリコントローラ２０は、キャッシュライン１３０の先頭から２つのセルにまたがってデータＤ１０を記憶し、管理テーブル１２０の先頭から２つのセルの内容を「有効（図３では「Ｖ」）」に、それ以外のセルの内容を「無効（図３では「Ｎ」）」とする。
【００２８】
以上で説明したように本実施形態によれば、バス幅が異なる複数の主記憶装置が接続される場合においても、バス幅に応じて設定された処理単位を基準としてデータの転送が行われる。
【００２９】
３．第３実施形態
続いて、本発明の第３実施形態について説明する。以下、第１〜第２実施形態と共通する事項についてはその説明を省略する。また、第１〜第２実施形態と共通の要素については、共通の参照符号が用いられる。
【００３０】
図４は、第３実施形態に係るキャッシュメモリシステム３の構成を示す図である。ＣＰＵ５０が記憶装置３０からのデータを読み出し動作を行うと、読み出しデータサイズ検出部６０は、記憶装置３０から読み出されるデータのサイズを検出する。データ転送方式決定部７０は、読み出しデータサイズ検出部６０により検出されたデータサイズに基づいて、記憶装置３０からデータを読み出す転送方式を決定する。キャッシュメモリコントローラ２０は、決定されたデータ転送方式に従って記憶装置３０から読み出されたデータをＣＰＵ３０に送ると同時にキャッシュメモリ１０に書き込む。
【００３１】
また、本実施形態において、キャッシュメモリコントローラ２０は、複数の転送方式、例えば、ライン転送およびバースト転送でデータを転送することができる。ライン転送とは、１キャッシュライン分、すなわちこの例では３２バイトのデータを単位として転送を行う方式をいう。これは従来技術に係る転送方式と同じである。一方、バースト転送とは、処理単位を基準として、必要なデータのみ転送する方式をいう。これは第１〜第２実施形態で説明した方式と同じである。
【００３２】
図５は、キャッシュメモリシステム３の動作を示すフローチャートである。図５のフローは、例えば、ＣＰＵ５０が、記憶装置３０からデータの読み出しを行う命令を出力したことをトリガとして開始される。ステップＳ１００において、読み出しデータサイズ検出部６０は、記憶装置３０から読み出されるデータのサイズが、キャッシュラインサイズに等しいか、またはキャッシュラインサイズよりも小さいか判断する。データサイズがキャッシュラインサイズに等しいと判断された場合（Ｓ１００：ＹＥＳ）、処理はステップＳ１３０に移行される。データサイズがキャッシュラインサイズよりも小さいと判断された場合（Ｓ１００：ＮＯ）、処理はステップＳ１１０に移行される。
【００３３】
ステップＳ１１０において、データ転送方式決定部７０は、転送方式をシングル転送もしくはバースト転送とすることを決定する。データ転送方式決定部７０は、転送方式をバースト転送とすることを示す命令をキャッシュメモリコントローラ２０に出力する。キャッシュメモリコントローラ２０は、記憶装置３０から必要なデータを読み出す。ステップＳ１２０において、キャッシュメモリコントローラ２０は、読み出したデータをステップ１５０においてＣＰＵ５０にデータ応答すると同時にキャッシュメモリ１０に書き込む。ステップＳ１１０〜Ｓ１２０におけるキャッシュメモリコントローラ２０の動作は第１実施形態で説明したとおりである。
【００３４】
ステップＳ１３０において、データ転送方式決定部７０は、転送方式をライン転送とすることを決定する。データ転送方式決定部７０は、転送方式をライン転送とすることを示す命令をキャッシュメモリコントローラ２０に出力する。キャッシュメモリコントローラ２０は、記憶装置３０から１キャッシュライン分のデータを読み出す。ステップＳ１４０において、キャッシュメモリコントローラ２０は、ステップ１５０においてＣＰＵ５０にデータ応答すると同時に、読み出したデータをキャッシュメモリ１０に書き込む。ステップＳ１３０〜Ｓ１４０におけるキャッシュメモリコントローラ２０の動作は従来技術に係るものである。
【００３５】
以上で説明したように本実施形態によれば、読み出すデータのサイズに応じて、ライン転送とバースト転送が切り換えられる。したがって、データの転送時間という観点からより効率的なデータ転送が行われる。
【００３６】
４．第４実施形態
続いて、本発明の第４実施形態について説明する。以下、第１〜第３実施形態と共通する事項についてはその説明を省略する。また、第１〜第３実施形態と共通の要素については、共通の参照符号が用いられる。
【００３７】
図６は、第４実施形態に係るキャッシュメモリシステム４の構成を示す図である。投機的読み込みアドレス生成部８０は、記憶装置３０の記憶領域のうち、将来アクセスされるであろう記憶領域の位置を、処理単位ごとに予測する装置である。アクセス予測テーブル生成部９０は、複数のキャッシュライン１３０のうち書き換え対象となるキャッシュライン１３０について、投機的読み込みアドレス生成部８０により予測された記憶領域の位置に基づいて、処理単位毎にアクセスの有無を示す情報を記憶するアクセス予測テーブルを生成する。データ転送方式決定部７０は、アクセス予測テーブルに基づいて、記憶装置３０からデータを読み出す転送方式を決定する。
【００３８】
図７は、データ転送方式を例示する図である。本実施形態において、キャッシュメモリコントローラ２０は、バースト転送、シングル転送およびライン転送の３つの転送方式でデータの読み出しを行うことができる。図７（Ａ）はバースト転送を、図７（Ｂ）はシングル転送を、図７（Ｃ）はライン転送を、それぞれ示している。いま、データＤ０およびＤ１の２処理単位のデータを記憶装置３０から読み出してキャッシュメモリ１０に記憶する場合を例に説明する。
【００３９】
バースト転送は、要求されたデータの先頭のアドレスに続けて要求されたデータを転送する方式で、データＤ０のアドレスＡ０に続けて、データＤ０およびＤ１が転送される。転送に要する時間は、ｔａｄｄ＋２ｔｄａｔである。
【００４０】
シングル転送は、要求されたデータを、そのアドレスと１対１に対応させて転送する方式である。データＤ０のアドレスＡ０、データＤ０、データＤ１のアドレスＡ１、およびデータＤ１の順番で転送される。転送に要する時間は、２（ｔａｄｄ＋ｔｄａｔ）である。
【００４１】
ライン転送は、キャッシュラインごとに転送する方式である。いま、キャッシュラインが、４つのセルに分割される場合を考えると、要求されたデータがデータＤ０およびＤ１だけであっても、データＤ０〜Ｄ３の４処理単位のデータが転送され、キャッシュメモリ１０に格納される。転送に要する時間はｔａｄｄ＋４ｔｄａｔである。
【００４２】
投機的読み込みアドレス生成部８０は、例えば特開平９−２４４８８９号公報に記載された投機的実行によって、記憶装置３０のデータのうち将来アクセスされるであろうデータのアドレスを予測する。アクセス予測テーブル生成部９０は、その予測結果に従って、アクセス予測テーブルを生成する。
【００４３】
データ転送方式決定部７０は、アクセス予測テーブルを参照して、データ転送方式を決定する。具体的には、データ転送方式決定部７０は、アクセス予測テーブルに基づいてデータを転送するのに要する時間を算出する。いま、データＤ０およびＤ１の２処理単位のデータがアクセスされると予測された場合を例とすると、各転送方式が要する時間は既に説明したとおりである。データ転送方式決定部７０は、転送に要する時間が最も短い転送方式、この例では図７（Ａ）記載のバースト転送を用いることを決定する。キャッシュメモリコントローラ２０は、決定された転送方式に従って、記憶装置３０からデータを読み出してキャッシュメモリ１０に記憶する。
【００４４】
なお以上では、データの転送に要する時間に基づいて転送方式を決定する例について説明したが、データの転送に要する時間以外のパラメータ、例えば転送効率に基づいて転送方式が決定されてもよい。
【００４５】
図８は、各データ転送方式における転送効率を例示する図である。ここで転送効率は、
時間差Δｔと冗長データΔＤの比ΔＤ／Δｔとして定義される。時間差Δｔは、その転送方式でデータを読み出した場合の転送時間と複数の転送方式によるデータ読み出しの最短時間との差をいう。冗長データΔＤは、その転送方式でデータを読み出した場合に転送されるデータ量と複数の転送方式によるデータ転送量の最小値との差をいう。ここで定義される転送効率は、冗長データすなわち転送することが要求されていないデータの転送効率である。したがって、ここでいう転送効率の数値が高くなると、アクセス予測テーブル９０上では、アクセスしないと判断されるデータがより多く転送されていることを意味する。しかし、投機的読み込みアドレス生成手段で予測し切れない場合においては、予測外のアクセスが生じる事もあり得る。そこでデータ転送方式決定部７０は、必要なデータの転送効率が最も高い、あるいは、あるしきい値よりも効率のよい転送方式を採用してもよい。
【００４６】
以上で説明したように本実施形態によれば、複数のデータ転送方式の中から、転送時間が最短の転送方式、または効率がよい転送方式によりデータの転送を行うことが可能となる。
【００４７】
５．他の実施形態
本発明は上述の実施形態に限定されるものではなく種々の変形実施が可能である。
キャッシュメモリコントローラ２０、読み出しデータサイズ検出部６０、データ転送方式決定部７０、投機的読み込みアドレス生成部８０、およびアクセス予測テーブル生成部９０などキャッシュメモリシステムの構成要素は、専用の回路により構成されてもよいし、ＣＰＵなど汎用の処理装置がこれらの機能の一部または全部を兼ね備えていてもよい。
【００４８】
上述の実施形態におけるバス幅、キャッシュラインの容量などの数値はあくまで一例にすぎず、本発明はこれに限定されない。主記憶装置の数もあくまで一例である。また、第１〜第４実施形態のうち２つ以上のものが組み合わせて用いられてもよい。
【図面の簡単な説明】
【００４９】
【図１】第１実施形態に係るキャッシュメモリシステム１の構成を示す図である。
【図２】第２実施形態に係るキャッシュメモリシステム２の構成を示す図である。
【図３】管理テーブルおよびキャッシュラインの内容を例示する図である。
【図４】第３実施形態に係るキャッシュメモリシステム３の構成を示す図である。
【図５】キャッシュメモリシステム３の動作を示すフローチャートである。
【図６】第４実施形態に係るキャッシュメモリシステム４の構成を示す図である。
【図７】データ転送方式を例示する図である。
【図８】各データ転送方式における転送効率を例示する図である。
【図９】従来技術に係るキャッシュメモリシステム９の構成を示す図である。
【図１０】ライン転送によるデータ転送に要する時間を説明する図である。
【図１１】シングル転送によるデータ転送に要する時間を説明する図である。
【符号の説明】
【００５０】
１…キャッシュメモリシステム、２…キャッシュメモリシステム、３…キャッシュメモリシステム、９…キャッシュメモリシステム、１０…キャッシュメモリ、２０…キャッシュメモリコントローラ、３０…記憶装置、４０…記憶装置、５０…ＣＰＵ、６０…読み出しデータサイズ検出部、７０…データ転送方式決定部、８０…投機的読み込みアドレス生成部、９０…アクセス予測テーブル生成部、１１０…ＴＡＧメモリ、１２０…管理テーブル、１３０…キャッシュライン、９００…キャッシュメモリ、９１０…ＴＡＧメモリ、９２０…キャッシュメモリコントローラ、９３０…キャッシュライン
【図１】
2009075705.tif 000003
【図２】
2009075705.tif 000004
【図３】
2009075705.tif 000005
【図４】
2009075705.tif 000006
【図５】
2009075705.tif 000007
【図６】
2009075705.tif 000008
【図７】
2009075705.tif 000009
【図８】
2009075705.tif 000010
【図９】
2009075705.tif 000011
【図１０】
2009075705.tif 000012
【図１１】
2009075705.tif 000013