(57)【特許請求の範囲】
【請求項１】
キャッシュのキャッシュライン長を調整する方法であって、
キャッシュにおけるアクセスされたデータ又はコマンドの連続ヒット失敗回数が第一のプリセット閾値より大きい場合、前記キャッシュにおけるすべてのキャッシュラインを無効にして削除し、前記キャッシュを無効化し、前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整し、そして前記キャッシュを有効化することと、
データ又はコマンドにアクセスする時に、前記キャッシュに連続的にラインフィルを行う回数が第二のプリセット閾値より大きく且つ毎回のラインフィルが行われた後に毎回キャッシュライン全体でのデータとコマンドが順次アクセスされた場合、前記キャッシュにおけるすべてのキャッシュラインを無効にして削除し、前記キャッシュを無効化し、前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整し、そして前記キャッシュを有効化することとを含む方法。
【請求項２】
前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整することが、
ハードウェアで自動的に調整する方式で前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整すること、又は、
ソフトウェアでレジスタを制御して調整する方式で前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整することを含むことを特徴とする
請求項１に記載の方法。
【請求項３】
前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット値に調整することは、
ハードウェアで自動的に調整する方式で前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整すること、又は、
ソフトウェアでレジスタを制御して調整する方式で前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整することを含むことを特徴とする
請求項１に記載の方法。
【請求項４】
前記キャッシュは、セットアソシアティブのストレージマッピング関係を採用し、そして疑似ランダム及び順次置き換えの置き換えポリシーを採用することを特徴とする
請求項１〜３のいずか１項に記載の方法。
【請求項５】
最大のキャッシュライン長に設定される書き込みバッファが３つである場合、前記３つの書き込みバッファを用いてキャッシュの基本的な操作をサポートし、その中、前記３つの書き込みバッファがそれぞれ１つのｖｉｃｔｉｍ書き込みバッファ、１つのキャッシュラインフィルバッファ、及び１つの記憶バッファであり、前記基本的な操作が無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化及び置き換えを含むことと
３つの書き込みバッファが最大のキャッシュライン長に設定されない場合、前記３つの書き込みバッファの低アドレス空間を用いて前記キャッシュの基本的な操作をサポートし、その中、前記３つの書き込みバッファがそれぞれ１つのｖｉｃｔｉｍ書き込みバッファ、１つのキャッシュラインフィルバッファ及び１つの記憶バッファであり、前記基本的な操作が無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化及び置き換えを含むことと、をさらに含むことを特徴とする
請求項１〜３のいずれか１項に記載の方法。
【請求項６】
キャッシュのキャッシュライン長を調整する装置であって、
キャッシュにおけるアクセスされたデータ又はコマンドの連続ヒット失敗回数が第一のプリセット閾値より大きい場合、前記キャッシュにおけるすべてのキャッシュラインを無効にして削除し、前記キャッシュを無効化し、前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整し、そして前記キャッシュを有効化するように構成される第一の調整モジュールと、
データ又はコマンドにアクセスする時に、前記キャッシュに連続的にラインフィルを行う回数が第二のプリセット閾値より大きく且つ毎回のラインフィルが行われた後に毎回キャッシュライン全体でのデータとコマンドが順次アクセスされた場合、前記キャッシュにおけるすべてのキャッシュラインを無効にして削除し、前記キャッシュを無効化し、前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整し、そして前記キャッシュを有効化するように構成される第二の調整モジュールとを含む装置。
【請求項７】
前記第一の調整モジュールが、
ハードウェアで自動的に調整する方式で前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整するように構成され、又は、
ソフトウェアでレジスタを制御して調整する方式で前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整するように構成されることを特徴とする
請求項６に記載の装置。
【請求項８】
前記第二の調整モジュールが、ハードウェアで自動的に調整する方式で前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整するように構成され、又は、
ソフトウェアでレジスタを制御して調整する方式で前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整するように構成されることを特徴とする
請求項６に記載の装置。
【請求項９】
前記キャッシュが、セットアソシアティブのストレージマッピング関係を採用し、そして疑似ランダム及び順次置き換えの置き換えポリシーを採用することを特徴とする
請求項６〜８のいずれか１項に記載の装置。
【請求項１０】
最大のキャッシュライン長に設定される書き込みバッファが３つである場合、前記３つの書き込みバッファを用いて前記キャッシュの基本的な操作をサポートするように配置され、その中、前記３つの書き込みバッファがそれぞれ１つのｖｉｃｔｉｍ書き込みバッファ、１つのキャッシュラインフィルバッファ、及び１つの記憶バッファであり、前記基本的な操作が無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化及び置き換えを含む第一の処理モジュールと、
前記３つの書き込みバッファに最大のキャッシュライン長が設定されない場合、前記３つの書き込みバッファの低アドレス空間を用いて前記キャッシュの基本的な操作をサポートするように配置され、その中、前記３つの書き込みバッファがそれぞれ１つのｖｉｃｔｉｍ書き込みバッファ、１つのキャッシュラインフィルバッファ及び１つの記憶バッファであり、前記基本的な操作が無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化及び置き換えを含む第二の処理モジュールとをさらに含むことを特徴とする
請求項６〜８のいずれか１項に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ技術分野に関し、特にキャッシュのキャッシュライン長を調整する方法及び装置に関する。
【背景技術】
【０００２】
現在、従来技術において、キャッシュ（Ｃａｃｈｅ）技術は、主にプログラムの局部連続性とキャッシュのアクセスレートが次段のメモリよりはるかに速い特性を持つことが考慮に入れられている。図１は従来技術におけるシステムメモリの構造図であって、図１に示すように、ＣＰＵ、キャッシュ、バスインタフェースを含み、外部メモリ装置はバスインタフェースを介してデータとアドレス情報を伝送する。３２ビット幅のシステムに対して、１つの４バイトのコマンド又はデータにアクセスする場合、一定の期間で直接にキャッシュからコマンド又はデータを取得できることを保証し、プログラムの実行速度を向上させ、実行時間を短縮させるように、このアドレスが含まれる１つのキャッシュライン（ｃａｃｈｅｌｉｎｅ）の長さの内容（コマンド又はデータ）を一回に１つのキャッシュラインにロードするが、あるプログラムの局部連続性が高くない場合、このように局部の一つのコマンドが読み取られる度に、このアドレスが含まれる１つのキャッシュラインの長さを有するの内容（コマンド又はデータ）を一回で１つのキャッシュラインにロードすることになる。
【０００３】
キャッシュのサイズが一定である場合、キャッシュラインの長さが比較的に大きいと、将来の一定期間で大量の実行必要がないコード又はデータがキャッシュ空間を占有し、キャッシュの置き換え回数を増加させ、例えば、複数の大容量のオーディオ及びビデオファイル（例えば、４Ｇ  ｂｙｔｅｓのビデオファイルであって、ファイルが複数のセグメントに分割され、各セグメントのサイズが１Ｋｂｙｔｅｓ）を処理するフォーマット変換又は属性統計アルゴリズムにおいては、オーディオ及びビデオファイルの各セグメントの先頭又は末尾の数バイトのデータを取得するだけでよいのに、この時にキャッシュライン長が比較的に大きいと、キャッシュを開いた場合、キャッシュの置き換え回数が非常に頻繁になり、このようして必然的にアルゴリズムの効率に影響を与えるので、この場合にキャッシュラインの長さができるだけ小さいことが望まれ、逆に大量のコマンドの連続性が比較的に強く、又は大量且つ連続的なデータ空間にアクセスしたい場合、キャッシュライン長が比較的に小さいキャッシュであると、キャッシュの性能を明らかに低下させ、例えば、大量の大きなオーディオ及びビデオファイル（例えば、４ＧｂｙｔｅｓのＨＤビデオファイル）をダウンロード又はアップロードする場合、５Ｇｂｙｔｅｓのオーディオ及びビデオデータに連続的にアクセスすると、毎回１つのヒットされないデータにアクセスすることになるので、より多くのデータを１つのキャッシュラインにロードすることができることが望まれ、そうすればにオーディオ及びビデオファイルのアップロード及びダウンロードレートが倍に向上される。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の実施形態は、従来技術においてキャッシュのキャッシュライン長が調整されることができない問題を解決するように、キャッシュのキャッシュラインの長さを調整する方法及び装置を提供する。
【課題を解決するための手段】
【０００５】
本実施形態によるキャッシュのキャッシュライン長を調整する方法は、キャッシュにおけるアクセスされたデータ又はコマンドの連続ヒット失敗回数が第一のプリセット閾値より大きい場合、キャッシュにおけるすべてのキャッシュラインを無効にして削除し、キャッシュを無効化し、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整し、そしてキャッシュを有効化することと、データ又はコマンドにアクセスする時に、キャッシュに連続的にラインフィルを行う回数が第二のプリセット閾値より大きく且つ毎回ラインフィルが行われた後にキャッシュライン全体でのデータとコマンドが順次アクセスされた場合、キャッシュにおけるすべてのキャッシュラインを無効にして削除し、キャッシュを無効化し、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整し、そしてキャッシュを有効化することとを含む。
【０００６】
キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整することは、ハードウェアで自動的に調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整すること、又は、ソフトウェアでレジスタを制御して調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整することを含む。
【０００７】
１つの実施態様において、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット値に調整することは、ハードウェアで自動的に調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整すること、又は、ソフトウェアでレジスタを制御して調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整することを含んでもよい。
１つの態様において、キャッシュは、セットアソシアティブのストレージマッピング関係を採用し、そして疑似ランダム及び順次置き換えの置き換えポリシーを採用する。
【０００８】
１つの実施態様において、前記方法は、最大のキャッシュライン長に設定される書き込みバッファが３つである場合、３つの書き込みバッファを用いてキャッシュの基本的な操作をサポートし、ここにおいて、３つの書き込みバッファが１つのｖｉｃｔｉｍ書き込みバッファ、１つのキャッシュラインフィルバッファ、及び１つの記憶バッファであり、基本的な操作が無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化、及び置き換えを含み、３つの書き込みバッファが最大のキャッシュライン長に設定されない場合、３つの書き込みバッファの低アドレス空間を用いてキャッシュの基本的な操作をサポートし、ここにおて、３つの書き込みバッファが１つのｖｉｃｔｉｍ書き込みバッファ、１つのキャッシュラインフィルバッファ及び１つの記憶バッファを含み、基本的な操作が無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化及び置き換えを含むこと、をさらに含む。
【０００９】
本発明のひとつの実施形態は、キャッシュにおけるアクセスされたデータ又はコマンドの連続ヒット失敗回数が第一のプリセット閾値より大きい場合、キャッシュにおけるすべてのキャッシュラインを無効にして削除し、キャッシュを無効化し、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整し、そしてキャッシュを有効化するように構成される第一の調整モジュールと、データ又はコマンドにアクセスする時に、キャッシュに連続的にラインフィルを行う回数が第二のプリセット閾値より大きく且つ毎回ラインフィルが行われたキャッシュライン全体でのデータとコマンドが順次アクセスされた場合、キャッシュにおけるすべてのキャッシュラインを無効にして削除し、キャッシュを無効化し、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整し、そしてキャッシュを有効化するように構成される第二の調整モジュールとを含む、キャッシュのキャッシュライン長を調整する装置をさらに提供する。
【００１０】
１つの実施態様において、第一の調整モジュールは、ハードウェアで自動的に、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整するように構成され、又は、ソフトウェアでレジスタを制御して、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整するように構成されてもよい。
【００１１】
１つの実施態様において、第二の調整モジュールは、ハードウェアで自動的に調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整し、又は、ソフトウェアでレジスタを制御して調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整するように構成される。
１つの実施態様において、キャッシュは、セットアソシアティブのストレージマッピング関係を採用し、そして疑似ランダム及び順次置き換えの置き換えポリシーを採用してもよい。
【００１２】
１つの実施態様において、前記装置は、最大のキャッシュライン長に設定される書き込みバッファが３つである場合、３つの書き込みバッファを用いてキャッシュの基本的な操作をサポートし、その中、３つの書き込みバッファが１つのｖｉｃｔｉｍ書き込みバッファ、１つのキクリーンラインフィルバッファ、及び１つの記憶バッファであり、基本的な操作が無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化及び置き換えを含むように構成される第一の処理モジュールと、３つの書き込みバッファに最大のキャッシュライン長が設定されない場合、３つの書き込みバッファの低アドレス空間を用いてキャッシュの基本的な操作をサポートし、ここにおいて、３つの書き込みバッファが１つのｖｉｃｔｉｍ書き込みバッファ、１つのクリーンュラインフィルバッファ及び１つの記憶バッファを含み、基本的な操作が無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化及び置き換えを含むように第二の処理モジュールとをさらに含む。
【００１３】
本発明の実施形態の有益な効果は、次の通りである。
キャッシュライン長を随時切り替えて異なる応用シーンに適用することで、従来技術においてキャッシュのキャッシュライン長が調整されることができない問題を解決して、システムコマンドデータのアクセスレートを高め、システム性能を向上させることができる。
【図面の簡単な説明】
【００１４】
図面全体において、同じ符号で同じ部品を表す。
【図１】従来技術におけるシステムメモリの構造図である；
【図２】本発明の実施形態によるキャッシュのキャッシュライン長を調整する方法のフローチャートである；
【図３】本発明の実施形態によるキャッシュラインの長さが３２バイトであるキャッシュの構造図である；
【図４】本発明の実施形態によるキャッシュラインの長さが６４バイトであるキャッシュの構造図である；
【図５】本発明の実施形態によるキャッシュのキャッシュライン長を調整する装置の構造図である。
【発明を実施するための形態】
【００１５】
実際の応用においては、キャッシュは、ある場合では、キャッシュラインのサイズが８バイト（いくつかのオーディオ及びビデオファイル属性統計といくつかのオーディオフォーマット変換処理アルゴリズムにおいてなどの、プログラムが低い局部連続性を有する場合）でなければならず、他のある場合では、キャッシュラインの長さは６４バイト又は１２８バイト（ＨＤオーディオのビデオアップロード及びダウンロードのような、プログラムの局部連続性が特に高い場合又は大量の連続的なアドレス空間データにアクセスしたい場合）でなければならず、その他、プログラムが１つのセグメントのプログラム内にジャンプすることが異常に頻繁であり、且つ毎回ジャンプするコマンドの間の仮想アドレスが遠く離れ、且つ毎回ジャンプした後で連続的なコマンドが比較的に少なく、又は、一定期間で大量のデータにアクセスしたいがデータが空間において大きなスパンを有し、このようにして毎回キャッシュラインに入るコマンドの数又はデータの数が少ないほど良いことが望ましく、したがってキャッシュラインの長さができるだけ短いことが望ましいが、他の場合において、長い期間にプログラムが逐次的に実行されていく、又は長い期間に大きな連続的な空間内のデータが処理される場合は、一回にキャッシュに入るコマンドの数またはデータの数は、出来る限り多いことが望ましい。
【００１６】
したがって、応用シーンに応じてキャッシュのキャッシュラインの長さを調整する必要があって、従来技術においてキャッシュのキャッシュラインの長さが調整されることができない問題を解決するために、本発明は、キャッシュのキャッシュライン長を調整する方法及び装置を提供し、以下に図面及び実施形態を参照して、本発明をさらに詳しく説明する。
【００１７】
方法の実施形態
本発明の実施形態によれば、キャッシュのキャッシュライン長を調整する方法が提供される。図２は本発明の実施形態によるキャッシュのキャッシュライン長を調整する方法のフローチャートである。図２に示すように、本発明の実施形態によるキャッシュのキャッシュライン長を調整する方法は、以下の２０１から２０２までの処理を含む。
【００１８】
ステップ２０１では、キャッシュにおけるアクセスされたデータ又はコマンドの連続ヒット失敗回数が第一のプリセット閾値より大きい場合、キャッシュにおけるすべてのキャッシュラインを無効にして削除し、キャッシュを無効化し、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整し、そしてキャッシュを有効化する。
【００１９】
ステップ２０１において、キャッシュにおけるキャッシュラインを現在の長さより小さい第一のプリセット長さに調整することは、具体的に、
方式１、ハードウェアで自動的に調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整することと、
方式２、ソフトウェアでレジスタを制御して調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整することとを含む。
【００２０】
方式２において、ハードウェアもキャッシュラインの長さを調整できる必要があり、且つレジスタが調整可能なキャッシュライン長値を予め設定する必要があり、そしてソフトウェアがレジスタによりキャッシュラインの長さの選択を制御する、ということを認識すべきである。
方式１と方式２において、レジスタにより、この機能を起動するかどうかを設定できる。
【００２１】
ステップ２０２では、データ又はコマンドにアクセスする時に、キャッシュに連続的にラインフィルを行う回数が第二のプリセット閾値より大きく、且つ毎回ラインフィルが行われた後にキャッシュライン全体のデータとコマンドが順次アクセスされた場合、キャッシュにおけるすべてのキャッシュラインを無効にして削除し、キャッシュを無効化し、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整し、そしてキャッシュを有効化する。
【００２２】
ステップ２０２において、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整することは、具体的に、
方式１、ハードウェアで自動的に調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整することと、
【００２３】
方式２、ソフトウェアでレジスタを制御して調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整することとを含む。
【００２４】
方式２において、ハードウェアでキャッシュラインの長さを調整できる必要もあって、且つレジスタによって調整可能なキャッシュライン長を予め設定する必要があり、ソフトウェアがレジスタによりキャッシュラインの長さの選択を制御することを認識すべきである。
方式１と方式２において、レジスタにより、この機能を起動するかどうかを設定できる。
【００２５】
本発明の実施形態において、キャッシュは、セットアソシアティブのストレージマッピング関係を採用し、そして疑似ランダム及び順次置き換えの置き換えポリシーを採用することを認識すべきである。
【００２６】
キャッシュの基本的な操作を保証するために、最大のキャッシュライン長に設定される書き込みバッファが３つ存在する場合、３つの書き込みバッファがキャッシュの基本的な操作をサポートするために用いられ、その場合、３つの書き込みバッファはそれぞれ１つのｖｉｃｔｉｍ書き込みバッファ、１つのキャッシュラインフィルバッファ、及び１つの記憶バッファであり、基本的な操作は無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化及び置き換えを含み、
【００２７】
３つの書き込みバッファが最大のキャッシュライン長に設定されない場合、３つの書き込みバッファの低アドレス空間を用いてキャッシュの基本的な操作をサポートし、その場合、３つの書き込みバッファはそれぞれ１つのｖｉｃｔｉｍ書き込みバッファ、１つのキャッシュラインフィルバッファ及び１つの記憶バッファであり、基本的な操作は無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化及び置き換えを含む。
【００２８】
以下、図面を参照して本発明の実施形態の上記の技術的スキームを詳しく説明する。
本発明の実施形態は、異なる状況に応じてキャッシュライン長を変更する方法を提案しており、それらは、以下の５つの態様を含む。
一、どのようにキャッシュライン長を切り替えるかについて、２つの方法が次のように提供される。
【００２９】
方法１は、ハードウェアで自動的に長さを変更することであって、アクセスされたデータ又はコマンドが連続して複数回（例えば５回）ヒット（ｈｉｔ）して失敗する場合、ハードウェアが自動的に現在のキャッシュライン長を切り替えてより小さい値に変更し、データ又はコマンドにアクセスする時に、連続的に複数回行うラインフィル（ｌｉｎｅｆｉｌｌ）プロセスにおいて毎回ラインフィルが行われた後にキャッシュライン全体でのデータとコマンドが順次アクセスされることを発見する場合、ハードウェアが自動的に現在のキャッシュライン長を切り替えてより大きい値に変更し、レジスタを用いてこの機能を起動するかどうかを設定する。
【００３０】
方法２は、ソフトウェアがレジスタによりキャッシュの長さを設定することであって、アクセスされたデータ又はコマンドが連続して複数回（例えば５回）ヒット（ｈｉｔ）して失敗する場合は、ソフトウェアがレジスタにより現在のキャッシュライン長を切り替えてより小さい値に変更し、データ又はコマンドにアクセスする時に、複数回（例えば５回）ラインフィル（ｌｉｎｅｆｉｌｌ）を連続的に行うプロセスにおいて毎回ラインフィルが行われた後にキャッシュライン全体でのデータとコマンドが順次アクセスされることを発見する場合は、ソフトウェアがレジスタにより現在のキャッシュライン長を切り替えてより大きい値に変更し、レジスタを用いてこの機能を起動するかどうかを設定する。
【００３１】
ハードウェア又はソフトウェアでキャッシュライン長を切り替えている間に、データ又はコマンドを記憶したキャッシュの構成を調整する必要があり、キャッシュがデータにアクセスする場合、タグビット数が変化し、そのサイズが３２−ｎ−７であり、キャッシュライン長が２ｎｂｙｔｅｓである。
例１、表１はキャッシュラインが３２バイトであるキャッシュの構造であって、この場合にｎ＝５である。
【００３２】
【表１】
0006001185.tif 000002
【００３３】
図３は本発明の実施形態によるキャッシュライン長さが３２バイトであるキャッシュの構造図である。図３に示すように、キャッシュのサイズが３２ｋ  ｂｙｔｅｓであると、３２個のセットを採用し、キャッシュラインが３２ｂｙｔｅであると、各セットが３２個のキャッシュラインであり、即ち３２ｗａｙであって、開始アドレスが０ｘ０であると、ｗａｙ０が０ｘ００００００００〜０ｘ０００００３ｆｆを記憶し、ｗａｙ１が０ｘ０００００４００〜０ｘ７ｆｆを記憶し、．．．．．．、Ｗａｙ３１が０ｘ７ｃ００〜０ｘ７ｆｆｆを記憶する。その中、ｂｉｔ[３１：１３]は、ｓｅｔが所属するｗａｙの先頭アドレスであり、ｂｉｔ[１２：５]はどのキャッシュラインであるかを表し、ｂｉｔ[４：２]はキャッシュラインにおけるｗｏｒｄのオフセットアドレスを表す。
【００３４】
例２、表２は６４ｂｙｔｅｓキャッシュラインをを有するキャッシュの構造であり、この場合にｎ＝６である。
【表２】
0006001185.tif 000003
【００３５】
図４は本発明の実施形態によるキャッシュラインの長さが６４バイトであるキャッシュの構造図である。キャッシュにおいてセットアソシアティブの方式を採用してキャッシュを設計し、キャッシュのサイズが３２ｋ  ｂｙｔｅｓであると、３２個のセットを採用し、キャッシュラインのサイズが６４ｂｙｔｅであると、Ｓｅｔが１６個のキャッシュラインであり、即ち３２ｗａｙであって、開始アドレスが０ｘ０であると、ｗａｙ０が０ｘ０００００００００〜０ｘ０００００３ｆｆを記憶し、ｗａｙ１が０ｘ０００００４００〜０ｘ７ｆｆを記憶し、．．．．．．．、ｗａｙ３１が０ｘ７ｃ００〜０ｘ７ｆｆｆを記憶する。特に、ｂｉｔ[３１：１４]は、ｓｅｔが所属するグループ（Ｓｅｔ）ｔの先頭アドレスを表し、ｂｉｔ[１５：６]はどのキャッシャラインであるかを表し、ｂｉｔ[５：２]はキャッシュラインにおけるｗｏｒｄのオフセットアドレスを表す。
例１と例２によれば、他のキャッシュラインサイズの場合におけるキャッシュの構造を得ることができる。
【００３６】
二、ハードウェアでキャッシュラインの長さ値を変更した後に行われるべき操作は、次の通りである。
ステップ１、すべてのキャッシュラインを無効にして削除する。
ステップ２、キャッシュを無効化（ｄｉｓａｂｌｅ）する。
ステップ３、キャッシュラインの長さを変更する。
ステップ４、キャッシュを有効化（ｅｎａｂｌｅ）する。
【００３７】
三、異なるキャッシュライン長の場合に、サポートされる必要のあるすべての操作には、無効（ｉｎｖ）、クリーン（ｃｌｅａｎ）、無効及びクリーン（ｉｎｖｃｌｅａｎ）、ロックダウン（ｌｏｃｋｄｏｗｎ）、有効化（ｅｎａｂｌｅ）、無効化（ｄｉｓａｂｌｅ）及び記憶（ｅｖｉｃｔｉｏｎ）を含み、そして現在の長さのキャッシュラインを基本的な単位として操作することができ、
１）、キャッシュのこれらの基本的な操作をサポートするために、３つの最大キャッシュライン長の書き込みバッファ（ｗｒｉｔｅ  ｂｕｆｆｅｒ）が必要であり、その中には、１つのｖｉｃｔｉｍ書き込みバッファ（ｖｉｃｔｉｍ  ｗｒｉｔｅ  ｂｕｆｆｅｒ）、１つのキャッシュラインフィルバッファ（ｃａｃｈｅ  ｌｉｎｅｆｉｌｌ  ｂｕｆｆｅｒ）、１つの記憶バッファ（ｓｒｏｒｅ  ｂｕｆｆｅｒ）が含まれ、
２）、３つの書き込みバッファの長さが設定可能な最大長さではない場合、低アドレス空間の部分のみを用いる。
【００３８】
四、キャッシュに採用される記憶マッピング関係：キャッシュにおいてセットアソシアティブの方式を採用してキャッシュを設計する。
【００３９】
五、キャッシュに採用される置き換えポリシー：ランダム及び順次置き換えを採用する。
【００４０】
本実施形態がサポートすることができるキャッシュライン長を現在のシステムデータビット幅（例えば３２ｂｉｔｓ）の整数倍にさせる必要があって、同時にキャッシュラインの長さを２５６ｂｙｔｅｓより大きくさせることができないと認識すべきである。このようなキャッシュがあると、自分のプログラムの構造とデータ操作の状況に応じて異なる長さのキャッシュラインを用いてプログラム実行、データアクセスの速度を向上させ、動作効率を高めることができる。
【００４１】
上述したことを纏めると、本発明の実施形態において、キャッシュライン長可変のキャッシュの思想が導入され、１、いくつかのオーディオ及びビデオファイル処理アルゴリズムにおいて、例えば大量のオーディオ及びビデオファイル、及び各セグメントのある特殊属性値のみにアクセスする必要がある場合、キャッシュライン値を小さく設定すること、２、ネットワークデータパケット処理プロセスにおいて、例えば大量のネットワークデータパケットにおける各セグメントの先頭又は末尾、及び各セグメントのある特殊属性値のみにアクセスする場合、キャッシュライン値を小さく設定すること、３、ＵＳＢ、ＨＤＭＩ（登録商標）、ＰＣＩ、又はＳＡＴＡ及びいくつかの外部装置におけるデータ処理及び伝送プロセスにおいて、前の一部のデータパケットの各セグメントの属性値に基づいて、後の大量のデータの伝送プロセスにおいてキャッシュライン値の変更に関連することを決定すること、４、大量の大きなオーディオ及びビデオファイル、及び大きなネットワークパケットの連続伝送プロセスにおいてキャッシュライン長を大きな値に設定することにより、システムの速度と効率が大きく向上されること、という応用の場面がある。これから分かるように、この構造のキャッシュは、ソフトウェアまたはハードウェアでキャッシュラインの長さを決定することができ、キャッシュラインの長さが随時切り替えられて異なる応用の場面に適応してシステムコマンドデータのアクセスレートを高め、システム性能を向上させることができるという利点を持つ。
【００４２】
装置の実施形態
本発明の実施形態によれば、キャッシュのキャッシュライン長を調整する装置が提供される。図５は本実施形態によるキャッシュのキャッシュライン長を調整する装置の構造図である。図５に示すように、キャッシュのキャッシュライン長を調整する装置は、第一の調整モジュール５０、及び第二の調整モジュール５２を含み、以下、本発明の実施形態の各モジュールを詳しく説明する。
【００４３】
第一の調整モジュール５０は、キャッシュにおけるアクセスされたデータ又はコマンドの連続ヒット失敗回数が第一のプリセット閾値より大きい場合、キャッシュにおけるすべてのキャッシュラインを無効にして削除し、キャッシュを無効化し、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整し、そしてキャッシュを有効化するように構成される。
【００４４】
第一の調整モジュール５０は、具体的に、ハードウェアで自動的に調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整するように構成され、又は、ソフトウェアでレジスタを制御して調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整するように構成される。
【００４５】
ソフトウェアでレジスタを制御して調整する方式において、ハードウェアでキャッシュラインの長さを調整できる必要もあって、且つ調整可能なキャッシュライン長を予め設定するためのレジスタが必要であり、ソフトウェアがレジスタによりキャッシュラインの長さの選択を制御することを認識すべきである。第一の調整モジュール５０は、レジスタによりこの機能を起動するかどうかを設置することができる。
【００４６】
第二の調整モジュール５２は、データ又はコマンドにアクセスする時に、キャッシュに連続的にラインフィルを行う回数が第二のプリセット閾値より大きく且つ毎回ラインフィルが行われた後にキャッシュライン全体でのデータとコマンドが順次アクセスされた場合、キャッシュにおけるすべてのキャッシュラインを無効にして削除し、キャッシュを無効化し、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整し、そしてキャッシュを有効化するように構成される。
【００４７】
第二の調整モジュール５２は、具体的に、ハードウェアで自動的に調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整するように構成され、又は、ソフトウェアでレジスタを制御して調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整するように構成される。
【００４８】
ソフトウェアでレジスタを制御して調整する方式においては、ハードウェアもキャッシュラインの長さを調整できる必要があり、レジスタが調整可能なキャッシュライン長の値を予め設定する必要もあり、そして、ソフトウェアがレジスタによりキャッシュラインの長さの選択を制御すると認識すべきである。第二の調整モジュール５２は、レジスタによりこの機能を起動するかどうかを設定することができる。
好ましくは、キャッシュは、セットアソシアティブのストレージマッピング関係を採用し、そして疑似ランダム及び順次置き換えの置き換えポリシーを採用する。
【００４９】
また、キャッシュの基本的な操作を保証するために、前記装置は、最大のキャッシュライン長に設定される書き込みバッファが３つである場合、３つの書き込みバッファを用いてキャッシュの基本的な操作をサポートし、その中、３つの書き込みバッファがそれぞれ１つのｖｉｃｔｉｍ書き込みバッファ、１つのキャッシュラインフィルバッファ、及び１つの記憶バッファであり、基本的な操作が無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化及び置き換えを含むような第一の処理モジュールと、３つの書き込みバッファが最大のキャッシュライン長に設定されない場合、３つの書き込みバッファの低アドレス空間を用いてキャッシュの基本的な操作をサポートし、その中、３つの書き込みバッファが１つのｖｉｃｔｉｍ書き込みバッファ、１つのキャッシュラインフィルバッファ及び１つの記憶バッファを含み、基本的な操作が無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化及び置き換えを含むように構成される第二の処理モジュールと、をさらに含む。
【００５０】
以下、図面を参照して、本発明の実施形態の上記の技術スキームを詳しく説明する。
本発明の実施形態による異なる状況に応じてキャッシュライン長を変更する方法は、主に以下の５つの内容を含む。
一、どのようにキャッシュライン長を切り替えるかについて、２種類の方法が次のように提供される。
【００５１】
方法１は、ハードウェアで自動的に長さを変更することであって、アクセスされたデータ又はコマンドが連続して複数回（例えば５回）ヒット（ｈｉｔ）して失敗する場合、ハードウェアが自動的に現在のキャッシュライン長を切り替えてより小さい値に変更し、データ又はコマンドにアクセスする時に、連続的に複数回ラインフィル（ｌｉｎｅｆｉｌｌ）を行うプロセスにおいて毎回ラインフィルが行われた後にキャッシュライン全体でのデータとコマンドが順次アクセスされることを発見する場合、第一の調整モジュール５０は、ハードウェアで自動的に現在のキャッシュライン長を切り替えてより大きい値に変更し、レジスタを用いてこの機能を起動するかどうかを設定する。
【００５２】
方法２は、ソフトウェアがレジスタによりキャッシュの長さを設定することであって、アクセスされたデータ又はコマンドが連続して複数回（例えば５回）ヒット（ｈｉｔ）して失敗する場合、ソフトウェアがレジスタにより現在のキャッシュライン長を切り替えてより小さい値に変更し、データ又はコマンドにアクセスする時に、連続的に複数回（例えば５回）行うラインフィル（ｌｉｎｅｆｉｌｌ）プロセスにおいて毎回ラインフィルが行われたキャッシュ全体でのデータとコマンドが順次アクセスされることを発見する場合、ソフトウェアがレジスタにより現在のキャッシュラインの長さを切り替えてより大きい値に変更し、レジスタによりこの機能を起動するかどうかを設置できる。
【００５３】
ハードウェア又はソフトウェアでキャッシュライン長を切り替えている間に、データ又はコマンドを記憶したキャッシュの構成を調整する必要があり、キャッシュがデータにアクセスする場合、タグビット数が変化し、そのサイズが３２−ｎ−７であり、キャッシュライン長が２ｎｂｙｔｅｓである。
例１、表１は３２バイトのキャッシュラインの長さのキャッシュの構造であって、この場合にｎ＝５である。
【００５４】
【表３】
0006001185.tif 000004
【００５５】
図３は本発明の実施形態によるキャッシュラインの長さが３２バイトであるキャッシュの構造図である。図３に示すように、キャッシュのサイズが３２ｋ  ｂｙｔｅｓであると、３２個のセットを採用し、キャッシュラインのサイズが３２ｂｙｔｅであると、各セットが３２個のキャッシュラインであり、即ち３２ｗａｙであって、開始アドレスが０ｘ０であると、ｗａｙ０が０ｘ００００００００〜０ｘ０００００３ｆｆを記憶し、ｗａｙ１が０ｘ０００００４００〜０ｘ７ｆｆを記憶し、．．．．．．、Ｗａｙ３１が０ｘ７ｃ００〜０ｘ７ｆｆｆを記憶する。その中、ｂｉｔ[３１：１３]は、ｓｅｔが所属するｗａｙの先頭アドレスであり、ｂｉｔ[１２：５]はどのキャッシュラインであるかを表し、ｂｉｔ[４：２]はキャッシュラインにおけるｗｏｒｄのオフセットアドレスを表す。
【００５６】
例２、表２は  ６４ｂｙｔｅｓキャッシュラインを有するキャッシュの構造であり、この場合にｎ＝６である。
【表４】
0006001185.tif 000005
【００５７】
図４は本発明の実施形態によるキャッシュラインの長さが６４バイトであるキャッシュの構造図である。キャッシュにおいてセットアソシアティブの方式を採用してキャッシュを設計し、キャッシュのサイズが３２ｋ  ｂｙｔｅｓであると、３２個のセットを採用し、キャッシュラインのサイズが６４ｂｙｔｅであると、Ｓｅｔが１６個のキャッシュラインであり、即ち３２ｗａｙであって、開始アドレスが０ｘ０であると、ｗａｙ０が０ｘ０００００００００〜０ｘ０００００３ｆｆを記憶し、ｗａｙ１が０ｘ０００００４００〜０ｘ７ｆｆを記憶し、．．．．．．．、ｗａｙ３１が０ｘ７ｃ００〜０ｘ７ｆｆｆを記憶する。その中、ｂｉｔ[３１：１４]は、ｓｅｔが所属するグループ（Ｓｅｔ）ｔの先頭アドレスを表し、ｂｉｔ[１５：６]はどのキャッシャラインであるかを表し、ｂｉｔ[５：２]はキャッシュラインにおけるｗｏｒｄのオフセットアドレスを表す。
例１と例２によれば、他のキャッシュラインサイズの場合におけるキャッシュの構造を得ることができる。
【００５８】
二、ハードウェアでキャッシュラインの長さ値を変更した後に行われるべき操作は、次の通りである。
ステップ１、すべてのキャッシュラインを無効にして削除する。
ステップ２、キャッシュを無効化（ｄｉｓａｂｌｅ）する。
ステップ３、キャッシュラインの長さを変更する。
ステップ４、キャッシュを有効化（ｅｎａｂｌｅ）する。
【００５９】
三、異なるキャッシュライン長の場合に、サポートされる必要のあるすべての操作には、無効（ｉｎｖ）、クリーン（ｃｌｅａｎ）、無効及びクリーン（ｉｎｖｃｌｅａｎ）、ロックダウン（ｌｏｃｋｄｏｗｎ）、有効化（ｅｎａｂｌｅ）、無効化（ｄｉｓａｂｌｅ）及び記憶（ｅｖｉｃｔｉｏｎ）を含み、そして現在の長さのキャッシュラインを基本的な単位として操作することができ、
１）、キャッシュのこれらの基本的な操作をサポートできるために、３つの最大のキャッシュラインの長さの書き込みバッファ（ｗｒｉｔｅ  ｂｕｆｆｅｒ）が必要であり、その中に１つのｖｉｃｔｉｍ書き込みバッファ（ｖｉｃｔｉｍ  ｗｒｉｔｅ  ｂｕｆｆｅｒ）、１つのキャッシュラインフィルバッファ（ｃａｃｈｅ  ｌｉｎｅｆｉｌｌ  ｂｕｆｆｅｒ）、１つの記憶バッファ（ｓｒｏｒｅ  ｂｕｆｆｅｒ）を含み、
２）、３つの書き込みバッファの長さが設定可能な最大長さではない場合、低アドレス空間の部分のみを用いる。
【００６０】
四、キャッシュに採用される記憶マッピング関係：キャッシュにおいてセットアソシアティブの方式を採用してキャッシュを設計する。
【００６１】
五、キャッシュに採用される置き換えポリシー：ランダム及び順次置き換えを採用する。
【００６２】
本発明の実施形態がサポートすることができるキャッシュラインの長さを現在のシステムデータビット幅（例えば３２ｂｉｔｓ）の整数倍にさせる必要があって、同時にキャッシュラインの長さを２５６ｂｙｔｅｓより大きくさせることができないと認識すべきである。このようなキャッシュがあると、自分のプログラムの構造とデータ操作の状況に応じて異なる長さのキャッシュラインを用いてプログラム実行、データアクセスの速度を向上させ、動作効率を高めることができる。ｃｐｕと外部装置との通信スピードを高めて、ｓｏｃ全体の性能を改善する。
【００６３】
上述したことを纏めると、本発明の実施形態において、キャッシュライン長可変のキャッシュの思想が導入され、１、いくつかのオーディオ及びビデオファイル処理アルゴリズムにおいて、例えば大量のオーディオ及びビデオファイル、及び各セグメントのある特殊属性値のみにアクセスする必要がある場合、キャッシュライン値を小さく設定すること、２、ネットワークデータパケット処理プロセスにおいて、例えば大量のネットワークデータパケットにおける各セグメントの先頭又は末尾、及び各セグメントのある特殊属性値のみにアクセスする場合、キャッシュライン値を小さく設定すること、３、ＵＳＢ（汎用シリアルバス）、ＨＤＭＩ（登録商標）（ハイデフィニションマルチメディアインタフェース）、ＰＣＩ、又はＳＡＴＡ及びいくつかの外部装置におけるデータ処理及び伝送プロセスにおいて、前の一部のデータパケットの各セグメントの属性値に基づいて後の大量のデータの伝送プロセスにおいてキャッシュライン値の変更に関連することを決定すること、４、大量の大きなオーディオ及びビデオファイル、及び大きなネットワークパケットの連続伝送プロセスにおいてキャッシュライン長を大きな値に設定することにより、システムの速度と効率が大きく向上されること、という応用の場面がある。これから分かるように、この構造のキャッシュは、ソフトウェアまたはハードウェアでキャッシュラインの長さを決定することができ、キャッシュラインの長さが随時切り替えられて異なる応用シーンに適応してシステムコマンドデータのアクセスレートを高め、システム性能を向上させることができるという利点を持つ。
【００６４】
ここに提供されるアルゴリズム及び表示は、本質的にいかなる特定のコンピュータ又は他の装置にも関連付けられない。様々な汎用システムは、ここでの教示と一緒に使用されることもできる。以上の説明によれば、このようなシステムを構築するにはいかなる構造が要求されるかは、明らかである。さらに、本発明は、いかなる特定のプログラミング言語に基づいたものでもない。ここに記載される本発明の内容を実現するために、多数のプログラミング言語を用いることができ、上記の特定言語によって行われた説明は本発明の最適な実施形態を開示するためのものであると理解すべきである。
【００６５】
ここに提供される明細書においては、多くの具体的な詳細が記載された。しかしながら、本発明の実施形態はこれらの具体的な詳細によらなくても実施できることは理解できるであろう。いくつかの実施形態において、本説明書に対する理解を不明確としないようにするために、周知の方法、構造及び技術は詳細には示していない。
【００６６】
同様に、本開示を簡素化させ且つ本発明の様々な態様の一つ以上に対する理解を助けるために、以上の本発明の例示的な実施形態に対する説明において、本発明の各特徴は、一緒に単一の実施形態、図面、又はそれに対する説明にグループ化される場合があると理解すべきである。しかしながら、当該開示される方法は、請求された本発明が各請求項において明らかに記載される特徴より多い特徴を要求するという意図を反映するものと解釈されるべきではない。より具体的には、以下の特許請求の範囲に反映されるように、本発明の技術事項の数は、開示された単一の実施形態が有するすべての特徴の数より少なくてもよい。したがって、特許請求の範囲の具体的な実施形態に従った、当該具体的な実施形態を明細書に組み込み、その中各請求項自体のそれぞれが本発明の別個の実施形態とする。
【００６７】
本分野の当業者は、実施形態における装置でのモジュールを適応的に変更し且つそれらを当該実施形態と異なる１つ以上の装置に設置することができると理解すべきである。実施形態におけるモジュール又はユニット又は部品を１つのモジュール又はユニット又は部品に組み合わせることができ、またそれらを複数のサブモジュール又はサブユニット又はサブ部品に分割することができる。このような特徴及び／又はプロセス又はユニットのうちの少なくともいくつかの相互に排他的であるもの以外、いかなる組み合わせを採用しても本説明書（添付の特許請求の範囲、要約書及び図面を含む）において開示された特徴及びこのように開示されたいかなる方法又は装置のすべてのプロセス又はユニットの組み合わせとすることができる。特記がない限り、本説明書（添付の特許請求の範囲、要約書及び図面を含む）に開示された各特徴は、同じ、同等又は類似の目的を提供する代替的な特徴によって置換されることができる。
【００６８】
また、本分野の当業者が理解できるであろうように、ここに記載されたいくつかの実施形態は他の実施形態に含まれるある特徴を含み別の特徴は含まないものであるが、異なる実施形態の他の特徴の組み合わせも本発明の範囲にあり且つ異なる実施形態を形成することを意味している。例えば、以下の特許請求の範囲の、請求された実施形態のいずれか一つは、任意の組み合わせで使用されることができる。
【００６９】
上記の実施形態は、本発明を説明するものであって、本発明を限定するものではなく、且つ本分野の当業者は添付の特許請求の範囲から逸脱せずに代替的な実施形態を設計することができることを認識すべきである。特許請求の範囲において、括弧でくくったいかなる符号も、特許請求の範囲を限定するものとして理解するべきではない。単語「含む」は、特許請求の範囲に記載されていない要素又はステップが存在することを排除しない。要素の前にある単語「一」、「一つ」は、このような要素が複数存在することを排除しない。本発明は、若干の明確な要素が含まれるハードウエア及び適切にプログラムされたコンピュータにより実現されることができる。若干の装置を列挙する請求項において、これらの装置における若干のものが同じハードウエアで具体的に実現されることができる。単語第一、第二、及び第三などの使用は、いかなる順序を示すものではない。これらの単語は、名称として解釈されることができる。
【図１】
0006001185.tif 000006
【図２】
0006001185.tif 000007
【図３】
0006001185.tif 000008
【図４】
0006001185.tif 000009
【図５】
0006001185.tif 000010