JP6001185B2 - キャッシュのキャッシュライン長を調整する方法及び装置 - Google Patents

キャッシュのキャッシュライン長を調整する方法及び装置 Download PDF

Info

Publication number
JP6001185B2
JP6001185B2 JP2015537128A JP2015537128A JP6001185B2 JP 6001185 B2 JP6001185 B2 JP 6001185B2 JP 2015537128 A JP2015537128 A JP 2015537128A JP 2015537128 A JP2015537128 A JP 2015537128A JP 6001185 B2 JP6001185 B2 JP 6001185B2
Authority
JP
Japan
Prior art keywords
cache
length
preset
lines
cache line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2015537128A
Other languages
English (en)
Other versions
JP2015532496A (ja
Inventor
ワン,チージュン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Publication of JP2015532496A publication Critical patent/JP2015532496A/ja
Application granted granted Critical
Publication of JP6001185B2 publication Critical patent/JP6001185B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0886Variable-length word access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本発明は、コンピュータ技術分野に関し、特にキャッシュのキャッシュライン長を調整する方法及び装置に関する。
現在、従来技術において、キャッシュ(Cache)技術は、主にプログラムの局部連続性とキャッシュのアクセスレートが次段のメモリよりはるかに速い特性を持つことが考慮に入れられている。図1は従来技術におけるシステムメモリの構造図であって、図1に示すように、CPU、キャッシュ、バスインタフェースを含み、外部メモリ装置はバスインタフェースを介してデータとアドレス情報を伝送する。32ビット幅のシステムに対して、1つの4バイトのコマンド又はデータにアクセスする場合、一定の期間で直接にキャッシュからコマンド又はデータを取得できることを保証し、プログラムの実行速度を向上させ、実行時間を短縮させるように、このアドレスが含まれる1つのキャッシュライン(cacheline)の長さの内容(コマンド又はデータ)を一回に1つのキャッシュラインにロードするが、あるプログラムの局部連続性が高くない場合、このように局部の一つのコマンドが読み取られる度に、このアドレスが含まれる1つのキャッシュラインの長さを有するの内容(コマンド又はデータ)を一回で1つのキャッシュラインにロードすることになる。
キャッシュのサイズが一定である場合、キャッシュラインの長さが比較的に大きいと、将来の一定期間で大量の実行必要がないコード又はデータがキャッシュ空間を占有し、キャッシュの置き換え回数を増加させ、例えば、複数の大容量のオーディオ及びビデオファイル(例えば、4G bytesのビデオファイルであって、ファイルが複数のセグメントに分割され、各セグメントのサイズが1Kbytes)を処理するフォーマット変換又は属性統計アルゴリズムにおいては、オーディオ及びビデオファイルの各セグメントの先頭又は末尾の数バイトのデータを取得するだけでよいのに、この時にキャッシュライン長が比較的に大きいと、キャッシュを開いた場合、キャッシュの置き換え回数が非常に頻繁になり、このようして必然的にアルゴリズムの効率に影響を与えるので、この場合にキャッシュラインの長さができるだけ小さいことが望まれ、逆に大量のコマンドの連続性が比較的に強く、又は大量且つ連続的なデータ空間にアクセスしたい場合、キャッシュライン長が比較的に小さいキャッシュであると、キャッシュの性能を明らかに低下させ、例えば、大量の大きなオーディオ及びビデオファイル(例えば、4GbytesのHDビデオファイル)をダウンロード又はアップロードする場合、5Gbytesのオーディオ及びビデオデータに連続的にアクセスすると、毎回1つのヒットされないデータにアクセスすることになるので、より多くのデータを1つのキャッシュラインにロードすることができることが望まれ、そうすればにオーディオ及びビデオファイルのアップロード及びダウンロードレートが倍に向上される。
本発明の実施形態は、従来技術においてキャッシュのキャッシュライン長が調整されることができない問題を解決するように、キャッシュのキャッシュラインの長さを調整する方法及び装置を提供する。
本実施形態によるキャッシュのキャッシュライン長を調整する方法は、キャッシュにおけるアクセスされたデータ又はコマンドの連続ヒット失敗回数が第一のプリセット閾値より大きい場合、キャッシュにおけるすべてのキャッシュラインを無効にして削除し、キャッシュを無効化し、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整し、そしてキャッシュを有効化することと、データ又はコマンドにアクセスする時に、キャッシュに連続的にラインフィルを行う回数が第二のプリセット閾値より大きく且つ毎回ラインフィルが行われた後にキャッシュライン全体でのデータとコマンドが順次アクセスされた場合、キャッシュにおけるすべてのキャッシュラインを無効にして削除し、キャッシュを無効化し、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整し、そしてキャッシュを有効化することとを含む。
キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整することは、ハードウェアで自動的に調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整すること、又は、ソフトウェアでレジスタを制御して調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整することを含む。
1つの実施態様において、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット値に調整することは、ハードウェアで自動的に調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整すること、又は、ソフトウェアでレジスタを制御して調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整することを含んでもよい。
1つの態様において、キャッシュは、セットアソシアティブのストレージマッピング関係を採用し、そして疑似ランダム及び順次置き換えの置き換えポリシーを採用する。
1つの実施態様において、前記方法は、最大のキャッシュライン長に設定される書き込みバッファが3つである場合、3つの書き込みバッファを用いてキャッシュの基本的な操作をサポートし、ここにおいて、3つの書き込みバッファが1つのvictim書き込みバッファ、1つのキャッシュラインフィルバッファ、及び1つの記憶バッファであり、基本的な操作が無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化、及び置き換えを含み、3つの書き込みバッファが最大のキャッシュライン長に設定されない場合、3つの書き込みバッファの低アドレス空間を用いてキャッシュの基本的な操作をサポートし、ここにおて、3つの書き込みバッファが1つのvictim書き込みバッファ、1つのキャッシュラインフィルバッファ及び1つの記憶バッファを含み、基本的な操作が無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化及び置き換えを含むこと、をさらに含む。
本発明のひとつの実施形態は、キャッシュにおけるアクセスされたデータ又はコマンドの連続ヒット失敗回数が第一のプリセット閾値より大きい場合、キャッシュにおけるすべてのキャッシュラインを無効にして削除し、キャッシュを無効化し、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整し、そしてキャッシュを有効化するように構成される第一の調整モジュールと、データ又はコマンドにアクセスする時に、キャッシュに連続的にラインフィルを行う回数が第二のプリセット閾値より大きく且つ毎回ラインフィルが行われたキャッシュライン全体でのデータとコマンドが順次アクセスされた場合、キャッシュにおけるすべてのキャッシュラインを無効にして削除し、キャッシュを無効化し、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整し、そしてキャッシュを有効化するように構成される第二の調整モジュールとを含む、キャッシュのキャッシュライン長を調整する装置をさらに提供する。
1つの実施態様において、第一の調整モジュールは、ハードウェアで自動的に、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整するように構成され、又は、ソフトウェアでレジスタを制御して、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整するように構成されてもよい。
1つの実施態様において、第二の調整モジュールは、ハードウェアで自動的に調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整し、又は、ソフトウェアでレジスタを制御して調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整するように構成される。
1つの実施態様において、キャッシュは、セットアソシアティブのストレージマッピング関係を採用し、そして疑似ランダム及び順次置き換えの置き換えポリシーを採用してもよい。
1つの実施態様において、前記装置は、最大のキャッシュライン長に設定される書き込みバッファが3つである場合、3つの書き込みバッファを用いてキャッシュの基本的な操作をサポートし、その中、3つの書き込みバッファが1つのvictim書き込みバッファ、1つのキクリーンラインフィルバッファ、及び1つの記憶バッファであり、基本的な操作が無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化及び置き換えを含むように構成される第一の処理モジュールと、3つの書き込みバッファに最大のキャッシュライン長が設定されない場合、3つの書き込みバッファの低アドレス空間を用いてキャッシュの基本的な操作をサポートし、ここにおいて、3つの書き込みバッファが1つのvictim書き込みバッファ、1つのクリーンュラインフィルバッファ及び1つの記憶バッファを含み、基本的な操作が無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化及び置き換えを含むように第二の処理モジュールとをさらに含む。
本発明の実施形態の有益な効果は、次の通りである。
キャッシュライン長を随時切り替えて異なる応用シーンに適用することで、従来技術においてキャッシュのキャッシュライン長が調整されることができない問題を解決して、システムコマンドデータのアクセスレートを高め、システム性能を向上させることができる。
図面全体において、同じ符号で同じ部品を表す。
従来技術におけるシステムメモリの構造図である; 本発明の実施形態によるキャッシュのキャッシュライン長を調整する方法のフローチャートである; 本発明の実施形態によるキャッシュラインの長さが32バイトであるキャッシュの構造図である; 本発明の実施形態によるキャッシュラインの長さが64バイトであるキャッシュの構造図である; 本発明の実施形態によるキャッシュのキャッシュライン長を調整する装置の構造図である。
実際の応用においては、キャッシュは、ある場合では、キャッシュラインのサイズが8バイト(いくつかのオーディオ及びビデオファイル属性統計といくつかのオーディオフォーマット変換処理アルゴリズムにおいてなどの、プログラムが低い局部連続性を有する場合)でなければならず、他のある場合では、キャッシュラインの長さは64バイト又は128バイト(HDオーディオのビデオアップロード及びダウンロードのような、プログラムの局部連続性が特に高い場合又は大量の連続的なアドレス空間データにアクセスしたい場合)でなければならず、その他、プログラムが1つのセグメントのプログラム内にジャンプすることが異常に頻繁であり、且つ毎回ジャンプするコマンドの間の仮想アドレスが遠く離れ、且つ毎回ジャンプした後で連続的なコマンドが比較的に少なく、又は、一定期間で大量のデータにアクセスしたいがデータが空間において大きなスパンを有し、このようにして毎回キャッシュラインに入るコマンドの数又はデータの数が少ないほど良いことが望ましく、したがってキャッシュラインの長さができるだけ短いことが望ましいが、他の場合において、長い期間にプログラムが逐次的に実行されていく、又は長い期間に大きな連続的な空間内のデータが処理される場合は、一回にキャッシュに入るコマンドの数またはデータの数は、出来る限り多いことが望ましい。
したがって、応用シーンに応じてキャッシュのキャッシュラインの長さを調整する必要があって、従来技術においてキャッシュのキャッシュラインの長さが調整されることができない問題を解決するために、本発明は、キャッシュのキャッシュライン長を調整する方法及び装置を提供し、以下に図面及び実施形態を参照して、本発明をさらに詳しく説明する。
方法の実施形態
本発明の実施形態によれば、キャッシュのキャッシュライン長を調整する方法が提供される。図2は本発明の実施形態によるキャッシュのキャッシュライン長を調整する方法のフローチャートである。図2に示すように、本発明の実施形態によるキャッシュのキャッシュライン長を調整する方法は、以下の201から202までの処理を含む。
ステップ201では、キャッシュにおけるアクセスされたデータ又はコマンドの連続ヒット失敗回数が第一のプリセット閾値より大きい場合、キャッシュにおけるすべてのキャッシュラインを無効にして削除し、キャッシュを無効化し、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整し、そしてキャッシュを有効化する。
ステップ201において、キャッシュにおけるキャッシュラインを現在の長さより小さい第一のプリセット長さに調整することは、具体的に、
方式1、ハードウェアで自動的に調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整することと、
方式2、ソフトウェアでレジスタを制御して調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整することとを含む。
方式2において、ハードウェアもキャッシュラインの長さを調整できる必要があり、且つレジスタが調整可能なキャッシュライン長値を予め設定する必要があり、そしてソフトウェアがレジスタによりキャッシュラインの長さの選択を制御する、ということを認識すべきである。
方式1と方式2において、レジスタにより、この機能を起動するかどうかを設定できる。
ステップ202では、データ又はコマンドにアクセスする時に、キャッシュに連続的にラインフィルを行う回数が第二のプリセット閾値より大きく、且つ毎回ラインフィルが行われた後にキャッシュライン全体のデータとコマンドが順次アクセスされた場合、キャッシュにおけるすべてのキャッシュラインを無効にして削除し、キャッシュを無効化し、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整し、そしてキャッシュを有効化する。
ステップ202において、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整することは、具体的に、
方式1、ハードウェアで自動的に調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整することと、
方式2、ソフトウェアでレジスタを制御して調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整することとを含む。
方式2において、ハードウェアでキャッシュラインの長さを調整できる必要もあって、且つレジスタによって調整可能なキャッシュライン長を予め設定する必要があり、ソフトウェアがレジスタによりキャッシュラインの長さの選択を制御することを認識すべきである。
方式1と方式2において、レジスタにより、この機能を起動するかどうかを設定できる。
本発明の実施形態において、キャッシュは、セットアソシアティブのストレージマッピング関係を採用し、そして疑似ランダム及び順次置き換えの置き換えポリシーを採用することを認識すべきである。
キャッシュの基本的な操作を保証するために、最大のキャッシュライン長に設定される書き込みバッファが3つ存在する場合、3つの書き込みバッファがキャッシュの基本的な操作をサポートするために用いられ、その場合、3つの書き込みバッファはそれぞれ1つのvictim書き込みバッファ、1つのキャッシュラインフィルバッファ、及び1つの記憶バッファであり、基本的な操作は無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化及び置き換えを含み、
3つの書き込みバッファが最大のキャッシュライン長に設定されない場合、3つの書き込みバッファの低アドレス空間を用いてキャッシュの基本的な操作をサポートし、その場合、3つの書き込みバッファはそれぞれ1つのvictim書き込みバッファ、1つのキャッシュラインフィルバッファ及び1つの記憶バッファであり、基本的な操作は無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化及び置き換えを含む。
以下、図面を参照して本発明の実施形態の上記の技術的スキームを詳しく説明する。
本発明の実施形態は、異なる状況に応じてキャッシュライン長を変更する方法を提案しており、それらは、以下の5つの態様を含む。
一、どのようにキャッシュライン長を切り替えるかについて、2つの方法が次のように提供される。
方法1は、ハードウェアで自動的に長さを変更することであって、アクセスされたデータ又はコマンドが連続して複数回(例えば5回)ヒット(hit)して失敗する場合、ハードウェアが自動的に現在のキャッシュライン長を切り替えてより小さい値に変更し、データ又はコマンドにアクセスする時に、連続的に複数回行うラインフィル(linefill)プロセスにおいて毎回ラインフィルが行われた後にキャッシュライン全体でのデータとコマンドが順次アクセスされることを発見する場合、ハードウェアが自動的に現在のキャッシュライン長を切り替えてより大きい値に変更し、レジスタを用いてこの機能を起動するかどうかを設定する。
方法2は、ソフトウェアがレジスタによりキャッシュの長さを設定することであって、アクセスされたデータ又はコマンドが連続して複数回(例えば5回)ヒット(hit)して失敗する場合は、ソフトウェアがレジスタにより現在のキャッシュライン長を切り替えてより小さい値に変更し、データ又はコマンドにアクセスする時に、複数回(例えば5回)ラインフィル(linefill)を連続的に行うプロセスにおいて毎回ラインフィルが行われた後にキャッシュライン全体でのデータとコマンドが順次アクセスされることを発見する場合は、ソフトウェアがレジスタにより現在のキャッシュライン長を切り替えてより大きい値に変更し、レジスタを用いてこの機能を起動するかどうかを設定する。
ハードウェア又はソフトウェアでキャッシュライン長を切り替えている間に、データ又はコマンドを記憶したキャッシュの構成を調整する必要があり、キャッシュがデータにアクセスする場合、タグビット数が変化し、そのサイズが32−n−7であり、キャッシュライン長が2bytesである。
例1、表1はキャッシュラインが32バイトであるキャッシュの構造であって、この場合にn=5である。
図3は本発明の実施形態によるキャッシュライン長さが32バイトであるキャッシュの構造図である。図3に示すように、キャッシュのサイズが32k bytesであると、32個のセットを採用し、キャッシュラインが32byteであると、各セットが32個のキャッシュラインであり、即ち32wayであって、開始アドレスが0x0であると、way0が0x00000000〜0x000003ffを記憶し、way1が0x00000400〜0x7ffを記憶し、......、Way31が0x7c00〜0x7fffを記憶する。その中、bit[31:13]は、setが所属するwayの先頭アドレスであり、bit[12:5]はどのキャッシュラインであるかを表し、bit[4:2]はキャッシュラインにおけるwordのオフセットアドレスを表す。
例2、表2は64bytesキャッシュラインをを有するキャッシュの構造であり、この場合にn=6である。
図4は本発明の実施形態によるキャッシュラインの長さが64バイトであるキャッシュの構造図である。キャッシュにおいてセットアソシアティブの方式を採用してキャッシュを設計し、キャッシュのサイズが32k bytesであると、32個のセットを採用し、キャッシュラインのサイズが64byteであると、Setが16個のキャッシュラインであり、即ち32wayであって、開始アドレスが0x0であると、way0が0x000000000〜0x000003ffを記憶し、way1が0x00000400〜0x7ffを記憶し、.......、way31が0x7c00〜0x7fffを記憶する。特に、bit[31:14]は、setが所属するグループ(Set)tの先頭アドレスを表し、bit[15:6]はどのキャッシャラインであるかを表し、bit[5:2]はキャッシュラインにおけるwordのオフセットアドレスを表す。
例1と例2によれば、他のキャッシュラインサイズの場合におけるキャッシュの構造を得ることができる。
二、ハードウェアでキャッシュラインの長さ値を変更した後に行われるべき操作は、次の通りである。
ステップ1、すべてのキャッシュラインを無効にして削除する。
ステップ2、キャッシュを無効化(disable)する。
ステップ3、キャッシュラインの長さを変更する。
ステップ4、キャッシュを有効化(enable)する。
三、異なるキャッシュライン長の場合に、サポートされる必要のあるすべての操作には、無効(inv)、クリーン(clean)、無効及びクリーン(invclean)、ロックダウン(lockdown)、有効化(enable)、無効化(disable)及び記憶(eviction)を含み、そして現在の長さのキャッシュラインを基本的な単位として操作することができ、
1)、キャッシュのこれらの基本的な操作をサポートするために、3つの最大キャッシュライン長の書き込みバッファ(write buffer)が必要であり、その中には、1つのvictim書き込みバッファ(victim write buffer)、1つのキャッシュラインフィルバッファ(cache linefill buffer)、1つの記憶バッファ(srore buffer)が含まれ、
2)、3つの書き込みバッファの長さが設定可能な最大長さではない場合、低アドレス空間の部分のみを用いる。
四、キャッシュに採用される記憶マッピング関係:キャッシュにおいてセットアソシアティブの方式を採用してキャッシュを設計する。
五、キャッシュに採用される置き換えポリシー:ランダム及び順次置き換えを採用する。
本実施形態がサポートすることができるキャッシュライン長を現在のシステムデータビット幅(例えば32bits)の整数倍にさせる必要があって、同時にキャッシュラインの長さを256bytesより大きくさせることができないと認識すべきである。このようなキャッシュがあると、自分のプログラムの構造とデータ操作の状況に応じて異なる長さのキャッシュラインを用いてプログラム実行、データアクセスの速度を向上させ、動作効率を高めることができる。
上述したことを纏めると、本発明の実施形態において、キャッシュライン長可変のキャッシュの思想が導入され、1、いくつかのオーディオ及びビデオファイル処理アルゴリズムにおいて、例えば大量のオーディオ及びビデオファイル、及び各セグメントのある特殊属性値のみにアクセスする必要がある場合、キャッシュライン値を小さく設定すること、2、ネットワークデータパケット処理プロセスにおいて、例えば大量のネットワークデータパケットにおける各セグメントの先頭又は末尾、及び各セグメントのある特殊属性値のみにアクセスする場合、キャッシュライン値を小さく設定すること、3、USB、HDMI(登録商標)、PCI、又はSATA及びいくつかの外部装置におけるデータ処理及び伝送プロセスにおいて、前の一部のデータパケットの各セグメントの属性値に基づいて、後の大量のデータの伝送プロセスにおいてキャッシュライン値の変更に関連することを決定すること、4、大量の大きなオーディオ及びビデオファイル、及び大きなネットワークパケットの連続伝送プロセスにおいてキャッシュライン長を大きな値に設定することにより、システムの速度と効率が大きく向上されること、という応用の場面がある。これから分かるように、この構造のキャッシュは、ソフトウェアまたはハードウェアでキャッシュラインの長さを決定することができ、キャッシュラインの長さが随時切り替えられて異なる応用の場面に適応してシステムコマンドデータのアクセスレートを高め、システム性能を向上させることができるという利点を持つ。
装置の実施形態
本発明の実施形態によれば、キャッシュのキャッシュライン長を調整する装置が提供される。図5は本実施形態によるキャッシュのキャッシュライン長を調整する装置の構造図である。図5に示すように、キャッシュのキャッシュライン長を調整する装置は、第一の調整モジュール50、及び第二の調整モジュール52を含み、以下、本発明の実施形態の各モジュールを詳しく説明する。
第一の調整モジュール50は、キャッシュにおけるアクセスされたデータ又はコマンドの連続ヒット失敗回数が第一のプリセット閾値より大きい場合、キャッシュにおけるすべてのキャッシュラインを無効にして削除し、キャッシュを無効化し、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整し、そしてキャッシュを有効化するように構成される。
第一の調整モジュール50は、具体的に、ハードウェアで自動的に調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整するように構成され、又は、ソフトウェアでレジスタを制御して調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整するように構成される。
ソフトウェアでレジスタを制御して調整する方式において、ハードウェアでキャッシュラインの長さを調整できる必要もあって、且つ調整可能なキャッシュライン長を予め設定するためのレジスタが必要であり、ソフトウェアがレジスタによりキャッシュラインの長さの選択を制御することを認識すべきである。第一の調整モジュール50は、レジスタによりこの機能を起動するかどうかを設置することができる。
第二の調整モジュール52は、データ又はコマンドにアクセスする時に、キャッシュに連続的にラインフィルを行う回数が第二のプリセット閾値より大きく且つ毎回ラインフィルが行われた後にキャッシュライン全体でのデータとコマンドが順次アクセスされた場合、キャッシュにおけるすべてのキャッシュラインを無効にして削除し、キャッシュを無効化し、キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整し、そしてキャッシュを有効化するように構成される。
第二の調整モジュール52は、具体的に、ハードウェアで自動的に調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整するように構成され、又は、ソフトウェアでレジスタを制御して調整する方式でキャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整するように構成される。
ソフトウェアでレジスタを制御して調整する方式においては、ハードウェアもキャッシュラインの長さを調整できる必要があり、レジスタが調整可能なキャッシュライン長の値を予め設定する必要もあり、そして、ソフトウェアがレジスタによりキャッシュラインの長さの選択を制御すると認識すべきである。第二の調整モジュール52は、レジスタによりこの機能を起動するかどうかを設定することができる。
好ましくは、キャッシュは、セットアソシアティブのストレージマッピング関係を採用し、そして疑似ランダム及び順次置き換えの置き換えポリシーを採用する。
また、キャッシュの基本的な操作を保証するために、前記装置は、最大のキャッシュライン長に設定される書き込みバッファが3つである場合、3つの書き込みバッファを用いてキャッシュの基本的な操作をサポートし、その中、3つの書き込みバッファがそれぞれ1つのvictim書き込みバッファ、1つのキャッシュラインフィルバッファ、及び1つの記憶バッファであり、基本的な操作が無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化及び置き換えを含むような第一の処理モジュールと、3つの書き込みバッファが最大のキャッシュライン長に設定されない場合、3つの書き込みバッファの低アドレス空間を用いてキャッシュの基本的な操作をサポートし、その中、3つの書き込みバッファが1つのvictim書き込みバッファ、1つのキャッシュラインフィルバッファ及び1つの記憶バッファを含み、基本的な操作が無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化及び置き換えを含むように構成される第二の処理モジュールと、をさらに含む。
以下、図面を参照して、本発明の実施形態の上記の技術スキームを詳しく説明する。
本発明の実施形態による異なる状況に応じてキャッシュライン長を変更する方法は、主に以下の5つの内容を含む。
一、どのようにキャッシュライン長を切り替えるかについて、2種類の方法が次のように提供される。
方法1は、ハードウェアで自動的に長さを変更することであって、アクセスされたデータ又はコマンドが連続して複数回(例えば5回)ヒット(hit)して失敗する場合、ハードウェアが自動的に現在のキャッシュライン長を切り替えてより小さい値に変更し、データ又はコマンドにアクセスする時に、連続的に複数回ラインフィル(linefill)を行うプロセスにおいて毎回ラインフィルが行われた後にキャッシュライン全体でのデータとコマンドが順次アクセスされることを発見する場合、第一の調整モジュール50は、ハードウェアで自動的に現在のキャッシュライン長を切り替えてより大きい値に変更し、レジスタを用いてこの機能を起動するかどうかを設定する。
方法2は、ソフトウェアがレジスタによりキャッシュの長さを設定することであって、アクセスされたデータ又はコマンドが連続して複数回(例えば5回)ヒット(hit)して失敗する場合、ソフトウェアがレジスタにより現在のキャッシュライン長を切り替えてより小さい値に変更し、データ又はコマンドにアクセスする時に、連続的に複数回(例えば5回)行うラインフィル(linefill)プロセスにおいて毎回ラインフィルが行われたキャッシュ全体でのデータとコマンドが順次アクセスされることを発見する場合、ソフトウェアがレジスタにより現在のキャッシュラインの長さを切り替えてより大きい値に変更し、レジスタによりこの機能を起動するかどうかを設置できる。
ハードウェア又はソフトウェアでキャッシュライン長を切り替えている間に、データ又はコマンドを記憶したキャッシュの構成を調整する必要があり、キャッシュがデータにアクセスする場合、タグビット数が変化し、そのサイズが32−n−7であり、キャッシュライン長が2bytesである。
例1、表1は32バイトのキャッシュラインの長さのキャッシュの構造であって、この場合にn=5である。
図3は本発明の実施形態によるキャッシュラインの長さが32バイトであるキャッシュの構造図である。図3に示すように、キャッシュのサイズが32k bytesであると、32個のセットを採用し、キャッシュラインのサイズが32byteであると、各セットが32個のキャッシュラインであり、即ち32wayであって、開始アドレスが0x0であると、way0が0x00000000〜0x000003ffを記憶し、way1が0x00000400〜0x7ffを記憶し、......、Way31が0x7c00〜0x7fffを記憶する。その中、bit[31:13]は、setが所属するwayの先頭アドレスであり、bit[12:5]はどのキャッシュラインであるかを表し、bit[4:2]はキャッシュラインにおけるwordのオフセットアドレスを表す。
例2、表2は 64bytesキャッシュラインを有するキャッシュの構造であり、この場合にn=6である。
図4は本発明の実施形態によるキャッシュラインの長さが64バイトであるキャッシュの構造図である。キャッシュにおいてセットアソシアティブの方式を採用してキャッシュを設計し、キャッシュのサイズが32k bytesであると、32個のセットを採用し、キャッシュラインのサイズが64byteであると、Setが16個のキャッシュラインであり、即ち32wayであって、開始アドレスが0x0であると、way0が0x000000000〜0x000003ffを記憶し、way1が0x00000400〜0x7ffを記憶し、.......、way31が0x7c00〜0x7fffを記憶する。その中、bit[31:14]は、setが所属するグループ(Set)tの先頭アドレスを表し、bit[15:6]はどのキャッシャラインであるかを表し、bit[5:2]はキャッシュラインにおけるwordのオフセットアドレスを表す。
例1と例2によれば、他のキャッシュラインサイズの場合におけるキャッシュの構造を得ることができる。
二、ハードウェアでキャッシュラインの長さ値を変更した後に行われるべき操作は、次の通りである。
ステップ1、すべてのキャッシュラインを無効にして削除する。
ステップ2、キャッシュを無効化(disable)する。
ステップ3、キャッシュラインの長さを変更する。
ステップ4、キャッシュを有効化(enable)する。
三、異なるキャッシュライン長の場合に、サポートされる必要のあるすべての操作には、無効(inv)、クリーン(clean)、無効及びクリーン(invclean)、ロックダウン(lockdown)、有効化(enable)、無効化(disable)及び記憶(eviction)を含み、そして現在の長さのキャッシュラインを基本的な単位として操作することができ、
1)、キャッシュのこれらの基本的な操作をサポートできるために、3つの最大のキャッシュラインの長さの書き込みバッファ(write buffer)が必要であり、その中に1つのvictim書き込みバッファ(victim write buffer)、1つのキャッシュラインフィルバッファ(cache linefill buffer)、1つの記憶バッファ(srore buffer)を含み、
2)、3つの書き込みバッファの長さが設定可能な最大長さではない場合、低アドレス空間の部分のみを用いる。
四、キャッシュに採用される記憶マッピング関係:キャッシュにおいてセットアソシアティブの方式を採用してキャッシュを設計する。
五、キャッシュに採用される置き換えポリシー:ランダム及び順次置き換えを採用する。
本発明の実施形態がサポートすることができるキャッシュラインの長さを現在のシステムデータビット幅(例えば32bits)の整数倍にさせる必要があって、同時にキャッシュラインの長さを256bytesより大きくさせることができないと認識すべきである。このようなキャッシュがあると、自分のプログラムの構造とデータ操作の状況に応じて異なる長さのキャッシュラインを用いてプログラム実行、データアクセスの速度を向上させ、動作効率を高めることができる。cpuと外部装置との通信スピードを高めて、soc全体の性能を改善する。
上述したことを纏めると、本発明の実施形態において、キャッシュライン長可変のキャッシュの思想が導入され、1、いくつかのオーディオ及びビデオファイル処理アルゴリズムにおいて、例えば大量のオーディオ及びビデオファイル、及び各セグメントのある特殊属性値のみにアクセスする必要がある場合、キャッシュライン値を小さく設定すること、2、ネットワークデータパケット処理プロセスにおいて、例えば大量のネットワークデータパケットにおける各セグメントの先頭又は末尾、及び各セグメントのある特殊属性値のみにアクセスする場合、キャッシュライン値を小さく設定すること、3、USB(汎用シリアルバス)、HDMI(登録商標)(ハイデフィニションマルチメディアインタフェース)、PCI、又はSATA及びいくつかの外部装置におけるデータ処理及び伝送プロセスにおいて、前の一部のデータパケットの各セグメントの属性値に基づいて後の大量のデータの伝送プロセスにおいてキャッシュライン値の変更に関連することを決定すること、4、大量の大きなオーディオ及びビデオファイル、及び大きなネットワークパケットの連続伝送プロセスにおいてキャッシュライン長を大きな値に設定することにより、システムの速度と効率が大きく向上されること、という応用の場面がある。これから分かるように、この構造のキャッシュは、ソフトウェアまたはハードウェアでキャッシュラインの長さを決定することができ、キャッシュラインの長さが随時切り替えられて異なる応用シーンに適応してシステムコマンドデータのアクセスレートを高め、システム性能を向上させることができるという利点を持つ。
ここに提供されるアルゴリズム及び表示は、本質的にいかなる特定のコンピュータ又は他の装置にも関連付けられない。様々な汎用システムは、ここでの教示と一緒に使用されることもできる。以上の説明によれば、このようなシステムを構築するにはいかなる構造が要求されるかは、明らかである。さらに、本発明は、いかなる特定のプログラミング言語に基づいたものでもない。ここに記載される本発明の内容を実現するために、多数のプログラミング言語を用いることができ、上記の特定言語によって行われた説明は本発明の最適な実施形態を開示するためのものであると理解すべきである。
ここに提供される明細書においては、多くの具体的な詳細が記載された。しかしながら、本発明の実施形態はこれらの具体的な詳細によらなくても実施できることは理解できるであろう。いくつかの実施形態において、本説明書に対する理解を不明確としないようにするために、周知の方法、構造及び技術は詳細には示していない。
同様に、本開示を簡素化させ且つ本発明の様々な態様の一つ以上に対する理解を助けるために、以上の本発明の例示的な実施形態に対する説明において、本発明の各特徴は、一緒に単一の実施形態、図面、又はそれに対する説明にグループ化される場合があると理解すべきである。しかしながら、当該開示される方法は、請求された本発明が各請求項において明らかに記載される特徴より多い特徴を要求するという意図を反映するものと解釈されるべきではない。より具体的には、以下の特許請求の範囲に反映されるように、本発明の技術事項の数は、開示された単一の実施形態が有するすべての特徴の数より少なくてもよい。したがって、特許請求の範囲の具体的な実施形態に従った、当該具体的な実施形態を明細書に組み込み、その中各請求項自体のそれぞれが本発明の別個の実施形態とする。
本分野の当業者は、実施形態における装置でのモジュールを適応的に変更し且つそれらを当該実施形態と異なる1つ以上の装置に設置することができると理解すべきである。実施形態におけるモジュール又はユニット又は部品を1つのモジュール又はユニット又は部品に組み合わせることができ、またそれらを複数のサブモジュール又はサブユニット又はサブ部品に分割することができる。このような特徴及び/又はプロセス又はユニットのうちの少なくともいくつかの相互に排他的であるもの以外、いかなる組み合わせを採用しても本説明書(添付の特許請求の範囲、要約書及び図面を含む)において開示された特徴及びこのように開示されたいかなる方法又は装置のすべてのプロセス又はユニットの組み合わせとすることができる。特記がない限り、本説明書(添付の特許請求の範囲、要約書及び図面を含む)に開示された各特徴は、同じ、同等又は類似の目的を提供する代替的な特徴によって置換されることができる。
また、本分野の当業者が理解できるであろうように、ここに記載されたいくつかの実施形態は他の実施形態に含まれるある特徴を含み別の特徴は含まないものであるが、異なる実施形態の他の特徴の組み合わせも本発明の範囲にあり且つ異なる実施形態を形成することを意味している。例えば、以下の特許請求の範囲の、請求された実施形態のいずれか一つは、任意の組み合わせで使用されることができる。
上記の実施形態は、本発明を説明するものであって、本発明を限定するものではなく、且つ本分野の当業者は添付の特許請求の範囲から逸脱せずに代替的な実施形態を設計することができることを認識すべきである。特許請求の範囲において、括弧でくくったいかなる符号も、特許請求の範囲を限定するものとして理解するべきではない。単語「含む」は、特許請求の範囲に記載されていない要素又はステップが存在することを排除しない。要素の前にある単語「一」、「一つ」は、このような要素が複数存在することを排除しない。本発明は、若干の明確な要素が含まれるハードウエア及び適切にプログラムされたコンピュータにより実現されることができる。若干の装置を列挙する請求項において、これらの装置における若干のものが同じハードウエアで具体的に実現されることができる。単語第一、第二、及び第三などの使用は、いかなる順序を示すものではない。これらの単語は、名称として解釈されることができる。

Claims (10)

  1. キャッシュのキャッシュライン長を調整する方法であって、
    キャッシュにおけるアクセスされたデータ又はコマンドの連続ヒット失敗回数が第一のプリセット閾値より大きい場合、前記キャッシュにおけるすべてのキャッシュラインを無効にして削除し、前記キャッシュを無効化し、前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整し、そして前記キャッシュを有効化することと、
    データ又はコマンドにアクセスする時に、前記キャッシュに連続的にラインフィルを行う回数が第二のプリセット閾値より大きく且つ毎回のラインフィルが行われた後に毎回キャッシュライン全体でのデータとコマンドが順次アクセスされた場合、前記キャッシュにおけるすべてのキャッシュラインを無効にして削除し、前記キャッシュを無効化し、前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整し、そして前記キャッシュを有効化することとを含む方法。
  2. 前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整することが、
    ハードウェアで自動的に調整する方式で前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整すること、又は、
    ソフトウェアでレジスタを制御して調整する方式で前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整することを含むことを特徴とする
    請求項1に記載の方法。
  3. 前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット値に調整することは、
    ハードウェアで自動的に調整する方式で前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整すること、又は、
    ソフトウェアでレジスタを制御して調整する方式で前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整することを含むことを特徴とする
    請求項1に記載の方法。
  4. 前記キャッシュは、セットアソシアティブのストレージマッピング関係を採用し、そして疑似ランダム及び順次置き換えの置き換えポリシーを採用することを特徴とする
    請求項1〜3のいずか1項に記載の方法。
  5. 最大のキャッシュライン長に設定される書き込みバッファが3つである場合、前記3つの書き込みバッファを用いてキャッシュの基本的な操作をサポートし、その中、前記3つの書き込みバッファがそれぞれ1つのvictim書き込みバッファ、1つのキャッシュラインフィルバッファ、及び1つの記憶バッファであり、前記基本的な操作が無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化及び置き換えを含むことと
    3つの書き込みバッファが最大のキャッシュライン長に設定されない場合、前記3つの書き込みバッファの低アドレス空間を用いて前記キャッシュの基本的な操作をサポートし、その中、前記3つの書き込みバッファがそれぞれ1つのvictim書き込みバッファ、1つのキャッシュラインフィルバッファ及び1つの記憶バッファであり、前記基本的な操作が無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化及び置き換えを含むことと、をさらに含むことを特徴とする
    請求項1〜3のいずれか1項に記載の方法。
  6. キャッシュのキャッシュライン長を調整する装置であって、
    キャッシュにおけるアクセスされたデータ又はコマンドの連続ヒット失敗回数が第一のプリセット閾値より大きい場合、前記キャッシュにおけるすべてのキャッシュラインを無効にして削除し、前記キャッシュを無効化し、前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整し、そして前記キャッシュを有効化するように構成される第一の調整モジュールと、
    データ又はコマンドにアクセスする時に、前記キャッシュに連続的にラインフィルを行う回数が第二のプリセット閾値より大きく且つ毎回のラインフィルが行われた後に毎回キャッシュライン全体でのデータとコマンドが順次アクセスされた場合、前記キャッシュにおけるすべてのキャッシュラインを無効にして削除し、前記キャッシュを無効化し、前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整し、そして前記キャッシュを有効化するように構成される第二の調整モジュールとを含む装置。
  7. 前記第一の調整モジュールが、
    ハードウェアで自動的に調整する方式で前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整するように構成され、又は、
    ソフトウェアでレジスタを制御して調整する方式で前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより小さい第一のプリセット長さに調整するように構成されることを特徴とする
    請求項6に記載の装置。
  8. 前記第二の調整モジュールが、ハードウェアで自動的に調整する方式で前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整するように構成され、又は、
    ソフトウェアでレジスタを制御して調整する方式で前記キャッシュにおけるすべてのキャッシュラインの長さを現在の長さより大きい第二のプリセット長さに調整するように構成されることを特徴とする
    請求項6に記載の装置。
  9. 前記キャッシュが、セットアソシアティブのストレージマッピング関係を採用し、そして疑似ランダム及び順次置き換えの置き換えポリシーを採用することを特徴とする
    請求項6〜8のいずれか1項に記載の装置。
  10. 最大のキャッシュライン長に設定される書き込みバッファが3つである場合、前記3つの書き込みバッファを用いて前記キャッシュの基本的な操作をサポートするように配置され、その中、前記3つの書き込みバッファがそれぞれ1つのvictim書き込みバッファ、1つのキャッシュラインフィルバッファ、及び1つの記憶バッファであり、前記基本的な操作が無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化及び置き換えを含む第一の処理モジュールと、
    前記3つの書き込みバッファに最大のキャッシュライン長が設定されない場合、前記3つの書き込みバッファの低アドレス空間を用いて前記キャッシュの基本的な操作をサポートするように配置され、その中、前記3つの書き込みバッファがそれぞれ1つのvictim書き込みバッファ、1つのキャッシュラインフィルバッファ及び1つの記憶バッファであり、前記基本的な操作が無効、クリーン、無効及びクリーン、ロックダウン、有効化、無効化及び置き換えを含む第二の処理モジュールとをさらに含むことを特徴とする
    請求項6〜8のいずれか1項に記載の装置。
JP2015537128A 2012-10-18 2013-09-26 キャッシュのキャッシュライン長を調整する方法及び装置 Expired - Fee Related JP6001185B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201210396334.6 2012-10-18
CN201210396334.6A CN103778069B (zh) 2012-10-18 2012-10-18 高速缓冲存储器的高速缓存块长度调整方法及装置
PCT/CN2013/084369 WO2014059869A1 (zh) 2012-10-18 2013-09-26 高速缓冲存储器的高速缓存块长度调整方法及装置

Publications (2)

Publication Number Publication Date
JP2015532496A JP2015532496A (ja) 2015-11-09
JP6001185B2 true JP6001185B2 (ja) 2016-10-05

Family

ID=50487557

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015537128A Expired - Fee Related JP6001185B2 (ja) 2012-10-18 2013-09-26 キャッシュのキャッシュライン長を調整する方法及び装置

Country Status (6)

Country Link
US (1) US20150269027A1 (ja)
EP (1) EP2911062A4 (ja)
JP (1) JP6001185B2 (ja)
KR (1) KR20150076200A (ja)
CN (1) CN103778069B (ja)
WO (1) WO2014059869A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111857822B (zh) * 2016-08-05 2024-04-05 中科寒武纪科技股份有限公司 一种运算装置及其操作方法
US10664405B2 (en) * 2017-11-03 2020-05-26 Google Llc In-memory distributed cache
US11294808B2 (en) * 2020-05-21 2022-04-05 Micron Technology, Inc. Adaptive cache
CN112711383B (zh) * 2020-12-30 2022-08-26 浙江大学 用于电力芯片的非易失性存储读取加速方法
CN113778912B (zh) * 2021-08-25 2024-05-07 深圳市中科蓝讯科技股份有限公司 cache映射架构动态调整方法及cache控制器
CN113805814B (zh) * 2021-09-22 2023-08-15 深圳宏芯宇电子股份有限公司 缓存管理方法、装置、存储设备和可读存储介质
US20240028512A1 (en) * 2022-07-25 2024-01-25 Samsung Electronics Co., Ltd. Adaptive cache indexing for a storage device

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4315312A (en) * 1979-12-19 1982-02-09 Ncr Corporation Cache memory having a variable data block size
JPH03144750A (ja) * 1989-10-31 1991-06-20 Pfu Ltd キャッシュメモリ制御方式
US5257360A (en) * 1990-03-23 1993-10-26 Advanced Micro Devices,Inc. Re-configurable block length cache
US5465342A (en) * 1992-12-22 1995-11-07 International Business Machines Corporation Dynamically adaptive set associativity for cache memories
JP2002163150A (ja) * 2000-11-28 2002-06-07 Toshiba Corp プロセッサ
CN1232911C (zh) * 2002-10-09 2005-12-21 凌阳科技股份有限公司 可适应性存取指令与资料的方法与架构
JP2004259109A (ja) * 2003-02-27 2004-09-16 Toshiba Corp マイクロプロセッサ及びキャッシュ制御方法
US7464246B2 (en) * 2004-09-30 2008-12-09 International Business Machines Corporation System and method for dynamic sizing of cache sequential list
JP4378386B2 (ja) * 2007-02-26 2009-12-02 富士通株式会社 キャッシュウェイ縮退監視装置、キャッシュウェイ縮退監視方法およびキャッシュウェイ縮退監視プログラム
US8549208B2 (en) * 2008-12-08 2013-10-01 Teleputers, Llc Cache memory having enhanced performance and security features
US8285936B2 (en) * 2009-10-20 2012-10-09 The Regents Of The University Of Michigan Cache memory with power saving state
US8631198B2 (en) * 2010-08-06 2014-01-14 Seagate Technology Llc Dynamic cache reduction utilizing voltage warning mechanism
CN102521149B (zh) * 2011-11-28 2014-08-27 曙光信息产业(北京)有限公司 一种从多缓冲区收取数据的优化轮询系统和方法
CN102591799B (zh) * 2011-12-30 2015-04-15 华为技术有限公司 一种存放数据的方法和装置

Also Published As

Publication number Publication date
JP2015532496A (ja) 2015-11-09
WO2014059869A1 (zh) 2014-04-24
US20150269027A1 (en) 2015-09-24
EP2911062A4 (en) 2015-10-14
CN103778069A (zh) 2014-05-07
EP2911062A1 (en) 2015-08-26
CN103778069B (zh) 2017-09-08
KR20150076200A (ko) 2015-07-06

Similar Documents

Publication Publication Date Title
JP6001185B2 (ja) キャッシュのキャッシュライン長を調整する方法及び装置
JP6514569B2 (ja) データ処理装置における動的なキャッシュ・アロケーション・ポリシーの適応
US9996466B2 (en) Apparatus, system and method for caching compressed data
JP5908100B2 (ja) ストレージ・システムの二次キャッシュ内にデータをポピュレートするための方法、制御装置、プログラム
US9280474B2 (en) Adaptive data prefetching
KR102437775B1 (ko) 효율적인 맵핑을 위한 페이지 캐시 장치 및 방법
US20170070574A1 (en) Storage server and storage system
US20140149668A1 (en) Prefetching according to attributes of access requests
US9910598B2 (en) Host interface controller and control method for storage device
CN106557431B (zh) 一种用于多路顺序流的预读方法及装置
US20230409198A1 (en) Memory sharing control method and device, computer device, and system
WO2021062982A1 (zh) 管理hmb内存的方法、装置、计算机设备及存储介质
US9778858B1 (en) Apparatus and method for scatter gather list handling for an out of order system
EP2940950B1 (en) Information centric networking (ICN) router
KR20220033976A (ko) 저장 디바이스들에 대한 강화된 선판독 능력
JP6112193B2 (ja) アクセス制御プログラム、ディスク装置及びアクセス制御方法
CN117032595B (zh) 顺序流检测方法及存储设备
CN111309641B (zh) 一种存储系统中预读的方法、系统、设备及介质
US11375286B1 (en) Pre-fetch of data using seek intervals
JP2011086131A (ja) データ処理システム
JP2011100295A (ja) メモリ制御回路
JP2010191754A (ja) キャッシュ記憶装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20160108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160727

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160802

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160831

R150 Certificate of patent or registration of utility model

Ref document number: 6001185

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees