(57)【特許請求の範囲】
【請求項１】
複数のデータエントリを格納するように構成された複数のデータエントリブロックを備えるキャッシュラインを備えるデータアレイであって、前記複数のデータエントリブロックは、高速ゾーンメモリ、および低速ゾーンメモリを含み、前記高速ゾーンメモリは、前記低速ゾーンメモリよりも短い待ち時間を有するメモリを含む、データアレイと、
前記高速ゾーンメモリ内に、前記複数のデータエントリの中の重要ワードを格納するために、キャッシュフィル中に前記キャッシュラインへの前記複数のデータエントリを重要ワード優先順序付けするように構成されるキャッシュライン順序付け論理であって、
前記キャッシュラインに関係付けられるキャッシュライン順序付けインデックスを格納するように構成され、前記キャッシュライン順序付けインデックスが前記キャッシュラインの前記複数のデータエントリの前記重要ワード優先順序付けを指示する、キャッシュライン順序付け論理と、
前記キャッシュラインの前記キャッシュライン順序付けインデックスに基づいて、前記キャッシュラインの前記複数のデータエントリの各々にアクセスするように構成されたキャッシュアクセス論理とを備え、
前記キャッシュライン順序付け論理は、
前記複数のデータエントリを重要ワード優先順位付けするために前記複数のデータエントリが回転された前記キャッシュライン内の位置数を判定し、
前記位置数を前記キャッシュライン順序付けインデックスとして格納する
ことによって、前記キャッシュライン順序付けインデックスを格納するように構成される、キャッシュメモリ。
【請求項２】
前記キャッシュアクセス論理は、前記キャッシュラインの前記キャッシュライン順序付けインデックスに基づいて、要求されたデータエントリを前記複数のデータエントリの1つにマップすることによって、前記キャッシュラインの前記複数のデータエントリの各々にアクセスするように構成される請求項1に記載のキャッシュメモリ。
【請求項３】
前記キャッシュライン順序付け論理は、キャッシュミスに応答して前記複数のデータエントリを重要ワード優先順序付けするようにさらに構成される請求項1に記載のキャッシュメモリ。
【請求項４】
前記キャッシュライン順序付け論理は、下位レベルメモリから発信された前記複数のデータエントリを受信するようにさらに構成される請求項1に記載のキャッシュメモリ。
【請求項５】
前記キャッシュラインに対応するタグをさらに備え、
前記キャッシュライン順序付け論理は、前記キャッシュラインに対応する前記タグに、前記キャッシュラインに関係付けられる前記キャッシュライン順序付けインデックスを格納するように構成される請求項1に記載のキャッシュメモリ。
【請求項６】
前記キャッシュラインに対応する少なくとも1つのフラグビットをさらに備え、
前記キャッシュライン順序付け論理は、前記キャッシュラインに対応する少なくとも1つのフラグビットに、前記キャッシュラインに関係付けられる前記キャッシュライン順序付けインデックスを格納するように構成される請求項1に記載のキャッシュメモリ。
【請求項７】
半導体ダイに組み込まれた請求項1に記載のキャッシュメモリ。
【請求項８】
セットトップボックス、エンターテイメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、携帯電話、セルラー電話、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナ、ラジオ、衛星ラジオ、音楽プレイヤー、デジタル音楽プレイヤー、ポータブル音楽プレイヤー、デジタルビデオプレイヤー、ビデオプレイヤー、デジタルビデオディスク(DVD)プレイヤー、およびポータブルデジタルビデオプレイヤーから成るグループから選択されたデバイスに組み込まれた請求項1に記載のキャッシュメモリ。
【請求項９】
キャッシュメモリフィルを重要ワード優先順位付けする方法であって、
高速ゾーンメモリ内に、複数のデータエントリの中の重要ワードを格納するために、キャッシュフィル中にキャッシュラインへの前記複数のデータエントリを重要ワード優先順序付けするステップであって、前記キャッシュラインは、前記高速ゾーンメモリ、および低速ゾーンメモリを含み、前記高速ゾーンメモリは、前記低速ゾーンメモリよりも短い待ち時間を有するメモリを含む、ステップと、
前記キャッシュラインに関係付けられるキャッシュライン順序付けインデックスを格納するステップであって、前記キャッシュライン順序付けインデックスが前記キャッシュラインの前記複数のデータエントリの前記重要ワード優先順序付けを指示する、ステップと、
前記キャッシュラインの前記キャッシュライン順序付けインデックスに基づいて前記キャッシュラインの前記複数のデータエントリの各々にアクセスするステップとを備え、
前記キャッシュライン順序付けインデックスを格納するステップは、
前記複数のデータエントリを重要ワード優先順位付けするために前記複数のデータエントリが回転された前記キャッシュライン内の位置数を判定するステップと、
前記位置数を前記キャッシュライン順序付けインデックスとして格納するステップとを備える、方法。
【請求項１０】
前記キャッシュラインの前記複数のデータエントリの各々にアクセスするステップは、前記キャッシュラインの前記キャッシュライン順序付けインデックスに基づいて、要求されたデータエントリを前記複数のデータエントリの1つにマップするステップを備える請求項9に記載の方法。
【請求項１１】
前記複数のデータエントリを重要ワード優先順序付けするステップは、キャッシュミスに応答して前記複数のデータエントリを重要ワード優先順序付けするステップを備える請求項9に記載の方法。
【請求項１２】
下位レベルメモリから前記複数のデータエントリを受信するステップをさらに備える請求項9に記載の方法。
【請求項１３】
前記キャッシュライン順序付けインデックスを格納するステップは、前記キャッシュライン順序付けインデックスを前記キャッシュラインに対応するタグに格納するステップを備えるか、または
前記キャッシュライン順序付けインデックスを格納するステップは、前記キャッシュラインに対応する少なくとも1つのフラグビットに前記キャッシュライン順序付けインデックスを格納するステップを備える、請求項9に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権の主張
本出願は、参照により全体を本明細書において援用する、2013年3月7日に出願した、「CRITICAL-WORD-FIRST ORDERING IN CACHE MEMORIES TO ACCELERATE CRITICAL-WORD-FIRST CACHE ACCESSES, AND RELATED PROCESSOR-BASED SYSTEMS AND METHODS」と題する米国仮特許出願第61/773,951号の優先権を主張するものである。
【０００２】
本出願はまた、参照により全体を本明細書において援用する、2013年6月25日に出願した、「CRITICAL-WORD-FIRST ORDERING OF CACHE MEMORY FILLS TO ACCELERATE CACHE MEMORY ACCESSES, AND RELATED PROCESSOR-BASED SYSTEMS AND METHODS」と題する米国特許出願第13/925,874号の優先権を主張するものである。
【０００３】
本開示の分野は、プロセッサベースのシステムにおいてキャッシュメモリにアクセスすることに関する。
【背景技術】
【０００４】
キャッシュメモリは、頻繁に使用されるメインメモリロケーションからデータのコピーを格納することによって平均メモリアクセス時間を短縮するために、中央演算処理装置(CPU)のようなコンピュータプロセッサによって使用され得る。キャッシュメモリは通常、コンピュータのメインメモリよりもはるかに少ない記憶容量を有する。しかし、キャッシュメモリはまた、メインメモリよりもはるかに低い待ち時間を有する(すなわち、キャッシュメモリは、CPUによってはるかに高速でアクセスされ得る)。したがって、CPUによるメモリ要求の多数が以前キャッシュされたメモリロケーションに対して行われる限り、キャッシュメモリの使用は結果として、メインメモリの待ち時間よりもキャッシュメモリの待ち時間に近い平均メモリアクセス待ち時間をもたらすことになる。キャッシュメモリは、CPU自体と同じコンピュータチップに組み込まれてもよく(すなわち、「オンチップ」キャッシュメモリ)、CPUと外部メモリとの間のインターフェースとしての機能を果たすことができる。キャッシュメモリは、複数のキャッシュレベルの階層(たとえば、L1、L2、またはL3キャッシュ)のように編成されてもよく、キャッシュ階層内の上位のレベルは、下位のレベルよりも小さく高速のメモリを備える。
【０００５】
より大きいオンチップキャッシュメモリは、外部メモリのアクセスの必要性を低減することができるが、オンチップキャッシュメモリサイズの増大はまた結果として、オンチップキャッシュメモリの相互接続待ち時間を増大させる。相互接続待ち時間とは、キャッシュメモリを構成するメモリアレイの物理的構造に起因する、キャッシュメモリの内容を取り出す際の遅延を指す。たとえば、大きいオンチップキャッシュメモリは、より低い相互接続待ち時間をもたらす「高速ゾーン」サブアレイ、およびより高い相互接続待ち時間を必要とする「低速ゾーン」サブアレイに分割されるメモリアレイを備えることができる。キャッシュメモリの物理的特性により、低速ゾーンサブアレイにキャッシュされたデータエントリの取出しは、高速ゾーンサブアレイに格納されたデータエントリの取出しよりも、より多くのプロセッサクロックパルスを必要とし得る。したがって、キャッシュメモリから要求されたデータエントリ(すなわち、「重要ワード」)が低速ゾーンサブアレイに位置する場合、余計な相互接続待ち時間が生じ、これはCPUのパフォーマンスに悪影響をもたらす。
【発明の概要】
【課題を解決するための手段】
【０００６】
本明細書において開示される実施形態は、キャッシュメモリアクセスを高速化するためのキャッシュメモリフィルの重要ワード優先順序付けを含む。関連するプロセッサベースのシステムおよび方法もまた開示される。本明細書において開示される実施形態において、複数のデータエントリは、複数のデータエントリの中の重要ワードが、キャッシュフィル中にキャッシュラインの第1のデータエントリブロックを占有するように順序付けられる。キャッシュライン順序付けインデックスは、重要ワードがキャッシュラインの第1のデータエントリブロックに順序付けされることに基づくキャッシュライン内の複数のデータエントリの順序付けを指示するために、キャッシュラインに関連して格納される。このようにして、キャッシュメモリ内のキャッシュラインがアクセスされるとき、キャッシュフィルが重要ワード優先順序付けされていることに基づいてキャッシュラインに格納されているデータエントリの順序付けを決定するために、キャッシュライン順序付けインデックスが照会される。非限定的な例として、本明細書において提供される重要ワード優先順序付けは、低速ゾーンメモリサブアレイにおけるデータエントリブロックヒット率を増大させることができ、それにより有効キャッシュアクセス待ち時間を低減して、プロセッサのパフォーマンスを向上させることができる。
【０００７】
この点に関して、1つの実施形態において、キャッシュメモリが提供される。キャッシュメモリは、キャッシュラインを備えるデータアレイを備え、キャッシュラインは複数のデータエントリを格納するように構成された複数のデータエントリブロックを備える。キャッシュメモリはまた、キャッシュライン順序付け論理を備える。キャッシュライン順序付け論理は、キャッシュフィル中にキャッシュラインへの複数のデータエントリを重要ワード優先順序付けするように構成される。キャッシュライン順序付け論理はまた、キャッシュラインに関係付けられるキャッシュライン順序付けインデックスを格納するように構成され、キャッシュライン順序付けインデックスはキャッシュラインの複数のデータエントリの重要ワード優先順序付けを指示する。キャッシュメモリは、キャッシュラインのキャッシュライン順序付けインデックスに基づいて、キャッシュラインの複数のデータエントリの各々にアクセスするように構成されたキャッシュアクセス論理をさらに備える。
【０００８】
別の実施形態において、キャッシュメモリが提供される。キャッシュメモリは、キャッシュラインの複数のデータエントリを格納するための手段を備える。キャッシュメモリはまた、キャッシュライン順序付け論理の手段を備える。キャッシュライン順序付け論理の手段は、キャッシュフィル中にキャッシュラインへの複数のデータエントリを重要ワード優先順序付けするように構成される。キャッシュライン順序付け論理の手段はまた、キャッシュラインに関係付けられるキャッシュライン順序付けインデックスを格納するように構成され、キャッシュライン順序付けインデックスはキャッシュラインの複数のデータエントリの重要ワード優先順序付けを指示する。キャッシュメモリは、キャッシュラインのキャッシュライン順序付けインデックスに基づいて、キャッシュライン内の複数のデータエントリの各々にアクセスするように構成されたキャッシュアクセス論理の手段をさらに備える。
【０００９】
別の実施形態において、キャッシュメモリフィルを重要ワード優先順序付けする方法が提供される。方法は、キャッシュフィル中にキャッシュラインへの複数のデータエントリを重要ワード優先順序付けするステップを備える。方法はまた、キャッシュラインに関係付けられるキャッシュライン順序付けインデックスを格納するステップを備え、キャッシュライン順序付けインデックスはキャッシュラインの複数のデータエントリの重要ワード優先順序付けを指示する。方法は、キャッシュラインのキャッシュライン順序付けインデックスに基づいて、キャッシュライン内の複数のデータエントリの各々にアクセスするステップをさらに備える。
【図面の簡単な説明】
【００１０】
【図１】キャッシュメモリアクセスを高速化するためのキャッシュメモリフィルの重要ワード優先順序付けを提供する例示的な中央演算処理装置(CPU)を示す図である。
【図２Ａ】キャッシュメモリフィルの重要ワード優先順序付けの前および後の図1のCPUのL1およびL2キャッシュの内容を示す図である。
【図２Ｂ】キャッシュメモリフィルの重要ワード優先順序付けの前および後の図1のCPUのL1およびL2キャッシュの内容を示す図である。
【図３】サブアレイに編成された例示的なキャッシュメモリを示す図である。
【図４】図3のキャッシュメモリの「高速ゾーン」および「低速ゾーン」サブアレイへのキャッシュアクセスを示す例示的なクロックサイクルチャートである。
【図５】キャッシュメモリアクセスを高速化するためのキャッシュフィルの重要ワード優先順序付けの例示的な動作を示す流れ図である。
【図６Ａ】キャッシュラインのキャッシュフィルの複数のデータエントリを受信して重要ワード優先順序付けするための例示的な動作を詳細に示す流れ図である。
【図６Ｂ】キャッシュラインのキャッシュフィルの複数のデータエントリを受信して重要ワード優先順序付けするための例示的な動作を詳細に示す流れ図である。
【図７】本明細書において説明される実施形態のいずれかによる、キャッシュメモリアクセスを高速化するためにキャッシュフィル中にデータエントリを重要ワード優先順序付けするための、図3のキャッシュメモリを含むことができる例示的なプロセッサベースのシステムを示すブロック図である。
【発明を実施するための形態】
【００１１】
以下では、図面を参照して、本開示の複数の例示的な実施形態が説明される。「例示的(exemplary)」という用語は、本明細書において、「例、事例、または図示の役割を果たすこと」を意味するために使用される。本明細書において「例示的(exemplary)」として説明される任意の実施形態は、必ずしもその他の実施形態よりも好ましいか、または有利であると解釈されるものではない。
【００１２】
本明細書において開示される実施形態は、キャッシュメモリアクセスを高速化するためのキャッシュメモリフィルの重要ワード優先順序付けを含む。関連するプロセッサベースのシステムおよび方法もまた開示される。本明細書において開示される実施形態において、複数のデータエントリは、複数のデータエントリの中の重要ワードが、キャッシュフィル中にキャッシュラインの第1のデータエントリブロックを占有するように順序付けられる。キャッシュライン順序付けインデックスは、重要ワードがキャッシュラインの第1のデータエントリブロックに順序付けされることに基づくキャッシュライン内の複数のデータエントリの順序付けを指示するために、キャッシュラインに関連して格納される。このようにして、キャッシュメモリ内のキャッシュラインがアクセスされるとき、重要ワード優先順序付けられているキャッシュフィルに基づいてキャッシュラインに格納されているデータエントリの順序付けを指示するために、キャッシュライン順序付けインデックスが照会される。非限定的な例として、本明細書において提供される重要ワード優先順序付けは、「低速ゾーン」メモリサブアレイにおけるデータエントリブロックヒット率を増大させることができ、それにより有効キャッシュアクセス待ち時間を低減して、プロセッサのパフォーマンスを向上させることができる。
【００１３】
この点に関して、1つの実施形態において、キャッシュメモリが提供される。キャッシュメモリは、キャッシュラインを備えるデータアレイを備え、キャッシュラインは複数のデータエントリを格納するように構成された複数のデータエントリブロックを備える。キャッシュメモリはまた、キャッシュライン順序付け論理を備える。キャッシュライン順序付け論理は、キャッシュフィル中にキャッシュラインへの複数のデータエントリを重要ワード優先順序付けするように構成される。キャッシュライン順序付け論理はまた、キャッシュラインに関係付けられるキャッシュライン順序付けインデックスを格納するように構成され、キャッシュライン順序付けインデックスはキャッシュラインの複数のデータエントリの重要ワード優先順序付けを指示する。キャッシュメモリは、キャッシュラインのキャッシュライン順序付けインデックスに基づいて、キャッシュラインの複数のデータエントリの各々にアクセスするように構成されたキャッシュアクセス論理をさらに備える。
【００１４】
この点に関して、図1は、キャッシュメモリアクセスを高速化するためのキャッシュメモリフィルの重要ワード優先順序付けを提供するキャッシュメモリを含む例示的な中央演算処理装置(CPU)10を示す。図1において、例示的なCPU10は、それぞれ双方向矢印22、24、26、および28によって指示されるように、L1キャッシュ14、L2キャッシュ16、およびL3キャッシュ18を含むキャッシュメモリ、ならびにメインメモリ20に通信可能に結合されているプロセッサ12を含む。L1キャッシュ14、L2キャッシュ16、L3キャッシュ18、およびメインメモリ20は、メモリの階層を集合的に表しており、L1キャッシュ14が階層の最上部、メインメモリ20が階層の最下部にある。階層のより上位のレベル(たとえば、L1キャッシュ14)は、格納されているデータへのより高速なアクセスをもたらすが、サイズはより小さい。逆に、階層のより下位のレベル(たとえば、メインメモリ20)は、より大きい記憶容量を有するが、比較的大きいアクセス待ち時間を有する。
【００１５】
図1のL1キャッシュ14は、キャッシュコントローラ30を含むが、これはL1キャッシュ14とプロセッサ12との間のデータのフローを制御する通信インターフェースを提供する。L1キャッシュ14はまた、下位レベルのキャッシュおよび/またはメインメモリ20から受信したデータを格納するためのキャッシュライン32を提供する。L2キャッシュ16は同様に、キャッシュコントローラ34およびキャッシュライン36を含む。L3キャッシュ18は、キャッシュコントローラ38およびキャッシュライン40を含む。L1キャッシュ14、L2キャッシュ16、およびL3キャッシュ18の各々は、明確にするため、1つのキャッシュライン32、36、40を有するものとして図1に示されていることを理解されたい。図1に示される構成は、例示のみを目的としており、一部の実施形態において、CPU10は、本明細書において説明されるL1キャッシュ14、L2キャッシュ16、およびL3キャッシュ18に比べてキャッシュメモリの追加のレベルまたはより少ないレベルを備えることができる。加えて、一部の実施形態において、L1キャッシュ14、L2キャッシュ16、およびL3キャッシュ18は、本明細書において説明されているよりも多くのキャッシュライン32、36、および/または40を備えることができる。
【００１６】
引き続き図1を参照すると、L1キャッシュ14のキャッシュコントローラ30は、キャッシュライン順序付け論理42およびキャッシュアクセス論理44を含む。以下でさらに詳細に説明されるように、キャッシュライン順序付け論理42は、キャッシュフィル中にキャッシュライン32への複数のデータエントリ(図示せず)を重要ワード優先順序付けするように構成される。キャッシュライン順序付け論理42はまた、キャッシュライン32に関連付けられ、キャッシュライン32の複数のデータエントリの重要ワード優先順序付けを指示するキャッシュライン順序付けインデックス46を格納するように構成される。キャッシュアクセス論理44は、キャッシュライン32のキャッシュライン順序付けインデックス46に基づいて、キャッシュライン32の複数のデータエントリにアクセスするように構成される。
【００１７】
L1キャッシュ14のキャッシュライン32への複数のデータエントリの重要ワード優先順序付けを含むキャッシュフィルを説明するため、図2Aおよび図2Bが提供される。図2Aは、重要ワードがプロセッサ12によってL1キャッシュ14に要求される(したがって、キャッシュフィルをトリガする)場合の、図1のL1キャッシュ14およびL2キャッシュ16の内容を示す。図2Bは、キャッシュフィルが完了した後の、L1キャッシュ14のキャッシュライン32の複数のデータエントリの重要ワード優先順序付けの結果を示す。
【００１８】
図2Aにおいて、L2キャッシュ16のキャッシュライン36は、非重要ワード48、非重要ワード50、重要ワード52、および非重要ワード54という合計4つのデータエントリを含む。キャッシュライン36のデータエントリが、以前のキャッシュフィル動作中に(図示せず)、L2キャッシュ16に格納されたことを想定されたい。この例において、L2キャッシュ14のキャッシュライン32は、空であってもよいし、または以前キャッシュされたデータエントリ(図示せず)を含んでいてもよい。この時点において、プロセッサ12は、重要ワード52を、処理のためにL1キャッシュ14に要求する。本明細書において使用される、「重要ワード」は、特定のメモリロケーションにおいて格納され、たとえば、プロセッサまたは上位レベルキャッシュのような要求側エントリによって要求される。重要ワード52は、現在L1キャッシュ14には格納されていないので、結果としてキャッシュミスが生じる。キャッシュミスに応答して、L2キャッシュ16にクエリが行われ、重要ワード52は、L2キャッシュ16のキャッシュライン36に位置していると判定される。次いで、「キャッシュフィル」と称される動作が開始し、その間、L2キャッシュ16のキャッシュライン36の内容は、L1キャッシュ14のキャッシュライン32に格納するために取り出される。
【００１９】
以下で図2Bを参照すると、L1キャッシュ14のキャッシュライン32は、高速ゾーン56と低速ゾーン58とに分割され得る。以下においてさらに詳細に説明されるL1キャッシュ14の物理的特性により、高速ゾーン56に格納されているデータエントリは、低速ゾーン58に格納されているデータエントリよりも、少ないプロセッサクロックサイクルを使用して取り出され得る。非限定的な例として、高速ゾーン56のデータエントリは、低速ゾーン58のデータエントリよりもキャッシュコントローラ30に物理的により近く格納されてもよい、および/または高速ゾーン56のデータエントリは、低速ゾーン58のデータエントリを格納するメモリよりも短い読取り/書込みアクセス待ち時間を有するメモリに格納されてもよい。したがって、L2キャッシュ16のキャッシュライン36の内容が、キャッシュフィル中にL1キャッシュ14のキャッシュライン32と同じ順序で格納された場合、重要ワード52は低速ゾーン58に格納されることになる。その後、重要ワード52がL1キャッシュ14から取り出される場合、余分な相互接続待ち時間が生じることになる。これは、重要ワード52が取り出される間、プロセッサ12が複数のプロセッサクロックサイクルにわたりアイドル状態を維持するよう強いられることによって、プロセッサパフォーマンスを低下させる原因となり得る。
【００２０】
したがって、図2BのL1キャッシュ14のキャッシュコントローラ30は、キャッシュフィル中にキャッシュライン32に格納されるようにデータエントリを重要ワード優先再順序付けするためのキャッシュライン順序付け論理42を提供する。図2Bに見られるように、キャッシュライン順序付け論理42は、2つの位置だけキャッシュライン32内でデータエントリの位置を回転させ、その結果重要ワード52がキャッシュライン32の高速ゾーン56に格納された。非重要ワード54の位置もまた、高速ゾーン56へと回転されているが、非重要ワード48および50の位置はキャッシュライン32を低速ゾーン58へと「ラップアラウンド」している。キャッシュライン順序付け論理42は、2進値0b10(すなわち、2の10進値)をキャッシュライン順序付けインデックス46として格納する。この例において、キャッシュライン順序付けインデックス46は、キャッシュライン32に格納されているデータエントリが、キャッシュライン32内で位置をいくつ回転されたかを指示する。キャッシュコントローラ30のキャッシュアクセス論理44は、キャッシュライン順序付けインデックス46の値を使用して、その後、キャッシュライン32のデータエントリの位置を回転または変更する必要なく、キャッシュライン32に格納されているデータエントリにアクセスすることができる。キャッシュライン32の高速ゾーン56に重要ワード52を配置することによって、相互接続待ち時間の短縮と、プロセッサパフォーマンスの向上が達成され得る。
【００２１】
図3は、例示的なキャッシュメモリ60の構造を説明するために提供される。キャッシュメモリ60は、半導体ダイ62に提供されてもよい。一部の実施形態において、キャッシュメモリ60は、メモリの階層内の、特に、図1のL1キャッシュ14、L2キャッシュ16、またはL3キャッシュ18であってもよい。この例において、キャッシュメモリ60は、2つのバンク64(0)および64(1)に編成されたメモリアレイである。バンク64(0)および64(1)の各々は、2つのサブバンクを備え、バンク64(0)はサブバンク66(0)と66(1)とを含み、バンク64(1)はサブバンク66(2)と66(3)とを含む。サブバンク66(0)〜66(3)はそれぞれ、キャッシュライン68(0)〜68(3)に対応する。サブバンク66(0)〜66(3)の各々は、4つのデータエントリブロック70(0)〜70(3)を含む。この例において、データエントリブロック70(0)〜70(3)は各々、4つのデータエントリの16バイトのグループ(図示せず)を格納する。したがって、キャッシュライン68(0)〜68(3)の各々は、メインメモリまたは下位レベルキャッシュ(図示せず)から受信した64バイトのデータを格納する。キャッシュライン68(0)〜68(3)の各々はまた、タグ72と、フラグビット74とを含む。タグ72は、対応するキャッシュライン68に格納されたキャッシュ済みデータがフェッチされたメモリアドレス(図示せず)の一部または全部を含むことができ、フラグビット74は、妥当性フラグおよび/またはダーティフラグ(図示せず)のようなフラグを含むことができる。
【００２２】
本明細書において説明される実施形態が、要素の任意の特定の配置に制限されることはなく、開示される技法がキャッシュメモリ60の様々な構造およびレイアウトに容易に拡張され得ることを理解されたい。図3に示される構成は、例示のみを目的としており、一部の実施形態において、キャッシュメモリ60は、本明細書において説明されているよりも、少ないかまたは多いバンク64、サブバンク66、データエントリブロック70、および/またはキャッシュライン68を備えることができる。キャッシュメモリ60の一部の実施形態は、本明細書において説明されている例示の4バイトのデータエントリよりも大きいかまたは小さいデータエントリ、および/または本明細書において説明されている例示の64バイトのキャッシュライン68よりも大きいかまたは小さいサイズのキャッシュライン68を使用することができる。
【００２３】
引き続き図3を参照すると、キャッシュコントローラ76は、各サブバンク66(0)〜66(3)の各データエントリブロック70(0)〜70(3)に接続可能に結合される。図3の例において、データエントリブロック70(2)および70(3)は、データエントリブロック70(0)および70(1)よりもキャッシュコントローラ76から物理的にさらに遠くに位置している。その結果、データエントリブロック70(0)または70(1)に格納されているデータエントリは、データエントリブロック70(2)または70(3)に格納されているデータエントリよりも少ないプロセッサクロックサイクルで読取りまたは書込みされ得る。たとえば、図4に関して以下において説明される一部の実施形態において、データエントリブロック70(0)または70(1)に格納されているデータエントリにアクセスするためには3クロックサイクルしか必要とされないが、データエントリブロック70(2)または70(3)に格納されているデータエントリにアクセスするためには5クロックサイクルが必要とされ得る。このため、データエントリブロック70(0)および70(1)は、キャッシュメモリ60の高速ゾーン78に存在し、データエントリブロック70(2)および70(3)は、キャッシュメモリ60の低速ゾーン80に存在すると考えられる。
【００２４】
キャッシュコントローラ76に対するデータエントリブロック70の物理的ロケーション以外の物理的特徴は、所与のデータエントリブロック70が高速ゾーン78または低速ゾーン80に存在すると考えられるという結果をもたらすことを理解されたい。非限定的な例として、高速ゾーン78内のデータエントリブロック70(0)および70(1)は、静的ランダムアクセスメモリ(SRAM)を備えることができる。対照的に、低速ゾーン80内のデータエントリブロック70(2)および70(3)は、磁気抵抗ランダムアクセスメモリ(MRAM)を備えることができ、これはSRAMと比較してより大きな読取り/書込みアクセス待ち時間を有する。
【００２５】
上記で説明されるように、要求側エンティティ(たとえば、図1のプロセッサ12または上位レベルのキャッシュ)は、処理のために、図2Aおよび図2Bの重要ワード52のような重要ワードを要求することができる。重要ワードがキャッシュメモリ60に見出されない場合、結果としてキャッシュミスが生じる。これに対して、キャッシュフィルは、キャッシュライン68のサイズと等しく、重要ワードを含むメモリの部分が取り出されるようにし、キャッシュライン68(0)〜68(3)の1つに格納されるようにする。キャッシュフィル動作が完了した後、重要ワードは高速ゾーン78(すなわち、キャッシュライン68(0)〜68(3)の1つのデータエントリブロック70(0)または70(1)の1つ)、または低速ゾーン80(キャッシュライン68(0)〜68(3)の1つのデータエントリブロック70(2)または70(3)の1つ)に格納され得る。重要ワードが低速ゾーン80に格納される場合、キャッシュメモリ60は、重要ワードが引き続きキャッシュメモリ60から取り出されるときに、余分な相互接続待ち時間を生じることになる。これは、重要ワードが取り出される間、図1〜図2Bのプロセッサ12のようなプロセッサが複数のプロセッサクロックサイクルにわたりアイドル状態を維持することを強いられることによって、プロセッサパフォーマンスを低下させる原因となり得る。
【００２６】
したがって、キャッシュメモリ60のキャッシュコントローラ76は、キャッシュフィル中に複数のデータエントリを重要ワード優先順序付けするように構成されるキャッシュライン順序付け論理82を提供する。キャッシュライン順序付け論理82は、キャッシュライン68に関連付けられ、キャッシュライン68の複数のデータエントリの重要ワード優先順序付けを指示するキャッシュライン順序付けインデックス(図示せず)を格納するようにさらに構成される。一部の実施形態において、キャッシュライン順序付けインデックスは、キャッシュライン68に関係付けられるタグ72、および/またはキャッシュライン68に関係付けられるフラグビット74に格納される。このようにして、キャッシュメモリ60の高速ゾーン78内のキャッシュライン68への重要ワードの配置が保証されてもよく、その結果、相互接続待ち時間の短縮と、プロセッサパフォーマンスの向上がもたらされる。
【００２７】
キャッシュメモリ60のキャッシュコントローラ76はまた、キャッシュライン68に関係付けられるキャッシュライン順序付けインデックスに基づいて、キャッシュライン68の複数のデータエントリにアクセスするように構成された、キャッシュアクセス論理84を提供する。たとえば、一部の実施形態は、キャッシュアクセス論理84が、キャッシュライン68のキャッシュライン順序付けインデックスに基づいてキャッシュライン68の複数のデータエントリの1つに、要求されたデータエントリをマップするように構成されると定めることができる。したがって、キャッシュアクセス論理84は、キャッシュライン68が再順序付けされることを必要とせずに、複数のデータエントリにアクセスすることができる。
【００２８】
図4は、キャッシュフィル動作中に重要ワードが格納されるゾーン(すなわち、高速ゾーン78または低速ゾーン80)が、図3のキャッシュメモリ60の、相互接続待ち時間、ひいては合計キャッシュアクセス待ち時間にどのように影響を及ぼし得るかをさらに明確に示すために提供される。図4は、図3のキャッシュライン68(0)〜68(3)の1つのデータエントリブロック70(0)〜70(3)の各々にアクセスするための例示的な動作を示すクロックサイクルチャート86を説明する。前述のように、データエントリブロック70(0)および70(1)は、キャッシュメモリ60の高速ゾーン78に位置するが、データエントリブロック70(2)および70(3)は、キャッシュメモリ60の低速ゾーン80に位置する。図4において、クロックサイクルチャート86内の列の各々(1,2,…8とラベル表示)は、１つのプロセッサクロックサイクルを表す。クロックサイクルチャート86内の行(「データエントリブロック70(0)」、「データエントリブロック70(1)」、「データエントリブロック70(2)」、および「データエントリブロック70(3)」とラベル表示)は、各プロセッサクロックサイクル中に各データエントリブロック70(0)〜70(3)に関して生じる動作を指示する。このようにして、いくつかのクロックサイクルの過程にわたるキャッシュメモリアクセス動作のシーケンスが示される。明確にするため、図3の要素が、図4に示される例示的な動作を説明する際に参照される。
【００２９】
図4に示されるように、処理は、プロセッサクロックサイクル1において開始し、高速ゾーン78内のデータエントリブロック70(0)および70(1)が各々キャッシュコントローラ76からイネーブル(Enable)信号を受信する。Enable信号はまた、低速ゾーン80内のデータエントリブロック70(2)および70(3)の各々にも送出される。この例において、データエントリブロック70(2)および70(3)とキャッシュコントローラ76との間の距離により、イネーブル信号は、1つのプロセッサクロックサイクルでは低速ゾーン80に到達しない。したがって、イネーブル信号をデータエントリブロック70(2)および70(3)に送信するため、プロセッサクロックサイクル1の期間中に、イネーブルリドライブ(Enable Re-drive)動作が必要とされる。
【００３０】
プロセッサクロックサイクル2の期間中に、データエントリブロック70(0)および70(1)の各々に対して、データエントリブロック70の内容にアクセスするためのアレイアクセス(Array Access)動作が開始する。同時に、以前送出されたイネーブル信号は、低速ゾーン80に到達し、データエントリブロック70(2)および70(3)の各々によって受信される。この時点において、低速ゾーン80内のデータエントリブロック70(2)、70(3)の相互接続待ち時間は、高速ゾーン78内のデータエントリブロック70(0)、70(1)の相互接続待ち時間よりも、1プロセッサクロックサイクルだけ長い。
【００３１】
図4のプロセッサクロックサイクル3において、データエントリブロック70(0)および70(1)の各々に対するアレイアクセス動作が続行するが、同時にデータエントリブロック70(2)および70(3)の各々に対するアレイアクセス動作も開始する。プロセッサクロックサイクル4の期間中、データエントリブロック70(0)および70(1)の内容は、キャッシュコントローラ76に送信され、その結果データアウトレディ(Data Out Ready)のステータスに至る。並行して、データエントリブロック70(2)および70(3)の各々に対するアレイアクセス動作は続行する。
【００３２】
プロセッサクロックサイクル5の期間中、データエントリブロック70(0)またはデータエントリブロック70(1)のいずれかからのデータは、(たとえば、図1〜図2Bのプロセッサ12のような要求側プロセッサ、または上位レベルキャッシュに)返されてもよい。この例において、データエントリブロック70(0)からのデータは、プロセッサクロックサイクル5において返され、データエントリブロック70(1)からのデータは、プロセッサクロックサイクル6において返される。しかし、同じプロセッサクロックサイクル4の期間中に、データエントリブロック70(0)および70(1)はいずれもデータアウトレディのステータスに到達するので、メモリアクセスの順序は逆転されてもよい。したがって、一部の実施形態において、データエントリブロック70(1)からのデータは、プロセッサクロックサイクル5において返されてもよく、データエントリブロック70(0)からのデータは、プロセッサクロックサイクル6において返されてもよい。
【００３３】
また、図4のプロセッサクロックサイクル5の期間中、データエントリブロック70(2)および70(3)の内容は、キャッシュコントローラ76に送信され、データアウトレディのステータスに到達する。この例におけるデータエントリブロック70(2)および70(3)とキャッシュコントローラ76との間の距離により、データは、1つのプロセッサクロックサイクルでは低速ゾーン80からキャッシュコントローラ76に到達しない。したがって、データをキャッシュコントローラ76に送信するため、プロセッサクロックサイクル6の期間中に、データアウトリドライブ(Data Out Re-drive)動作が必要とされる。
【００３４】
プロセッサクロックサイクル7において、データエントリブロック70(2)またはデータエントリブロック70(3)のいずれかからのデータは、(たとえば、要求側プロセッサまたは上位レベルキャッシュに)返されてもよい。図4において、データエントリブロック70(2)からのデータは、プロセッサクロックサイクル7において返され、データエントリブロック70(3)からのデータは、プロセッサクロックサイクル8において返される。しかし、同じプロセッサクロックサイクル5の期間中に、データエントリブロック70(2)および70(3)はいずれもデータアウトレディのステータスに到達するので、一部の実施形態において、メモリアクセスの順序は逆転されてもよい。したがって、一部の実施形態は、データエントリブロック70(3)からのデータが、プロセッサクロックサイクル7において返され、データエントリブロック70(2)からのデータが、プロセッサクロックサイクル8において返されると定めることができる。
【００３５】
図4に見られるように、データエントリブロック70(2)および70(3)に必要とされる追加のイネーブルリドライブおよびデータアウトリドライブ動作は、結果として低速ゾーン80におけるデータエントリブロック70の相互接続待ち時間の増大をもたらす。この例において、イネーブル信号の受信からデータアウトレディのステータスに到達するまでの、データエントリブロック70(0)および70(1)の相互接続待ち時間は、3つのプロセッサクロックサイクルで構成される。対照的に、イネーブルリドライブ動作からデータアウトリドライブ動作までの、データエントリブロック70(2)および70(3)の相互接続待ち時間は、5つのプロセッサクロックサイクルで構成される。したがって、データエントリブロック70(2)および70(3)の相互接続待ち時間は、高速ゾーン78内のデータエントリブロック70の相互接続待ち時間よりも、2プロセッサクロックサイクルだけ長い。キャッシュフィル中にデータエントリブロック70(0)〜70(3)のデータエントリを重要ワード優先順序付けすることによって、過剰な相互接続待ち時間が回避され得るので、後続のキャッシュアクセスを高速化して、プロセッサパフォーマンスを高めることができる。
【００３６】
この点に関して、キャッシュメモリアクセスを高速化するために図1のキャッシュコントローラ30のキャッシュライン順序付け論理42およびキャッシュアクセス論理44によって実行される例示的な動作を説明するため、図5が提供される。図5において、動作は、キャッシュライン順序付け論理42が、キャッシュフィル中に、図1のキャッシュライン32のようなキャッシュラインへの複数のデータエントリを重要ワード優先順位付けすることで開始する(ブロック88)。一部の実施形態において、重要ワードは、たとえば、プロセッサ、および/または上位レベルのキャッシュメモリによって要求されたデータエントリであってもよい。
【００３７】
キャッシュライン順序付け論理42は、次に、キャッシュライン32に関係付けられるキャッシュライン順序付けインデックス(たとえば、図1のキャッシュライン順序付けインデックス46)を格納する(ブロック90)。キャッシュライン順序付けインデックス46は、キャッシュライン32の複数のデータエントリの重要ワード優先順序付けを指示する。一部の実施形態は、キャッシュライン順序付けインデックス46が、キャッシュライン68(0)に関係付けられる図3のタグ72、またはキャッシュライン68(0)のフラグビット74に格納されると定めることができる。一部の実施形態において、キャッシュライン順序付けインデックス46は、複数のデータエントリを重要ワード優先順位付けするために複数のデータエントリがキャッシュライン32内で回転された位置数を指示することができる。次いで、キャッシュアクセス論理44は、キャッシュライン32のキャッシュライン順序付けインデックス46に基づいて、キャッシュライン32の複数のデータエントリの各々にアクセスする(ブロック92)。一部の実施形態において、キャッシュライン32の複数のデータエントリの各々にアクセスするステップは、要求されたデータエントリ(すなわち、キャッシュ読取り中に要求されたデータエントリ)を、キャッシュライン32のキャッシュライン順序付けインデックス46に基づいて、複数のデータエントリの1つにマップするステップを含む。
【００３８】
図1のキャッシュコントローラ30のキャッシュライン順序付け論理42およびキャッシュアクセス論理44によって実行されるさらに詳細な例示的動作は、図6Aおよび図6Bにおいて説明される。図6Aは、キャッシュミスに応答して、キャッシュフィルを受信し、重要ワード優先順序付けするための例示的な動作を示す流れ図である。図6Bは、キャッシュ読取り時に重要ワード優先順序付けされたデータエントリにアクセスするための例示的な動作を示す流れ図である。
【００３９】
図6Aにおいて、キャッシュライン順序付け論理42は、最初に、キャッシュミスが検出されたかどうかを判定する(ブロック94)。検出されない場合、処理は図6Bのブロック96に進む。図6Aのブロック94においてキャッシュミスが検出される場合、キャッシュライン順序付け論理42は、下位レベルメモリから複数のデータエントリを受信する(ブロック98)。一部の実施形態において、下位レベルメモリは、図1のL2キャッシュ16および/またはL3キャッシュ18のような下位レベルキャッシュであってもよい。一部の実施形態は、下位レベルメモリが、図1のメインメモリ20のようなメインメモリであると定めることができる。
【００４０】
次に、キャッシュライン順序付け論理42は、キャッシュフィル中に、(図1のL1キャッシュ14のキャッシュライン32のような)キャッシュラインへの複数のデータエントリを重要ワード優先順位付けする(ブロック100)。一部の実施形態において、重要ワードは、たとえば、プロセッサおよび/または上位レベルのキャッシュメモリによって要求されたデータエントリである。次いで、キャッシュライン順序付け論理42は、複数のデータエントリを重要ワード優先順位付けするために複数のデータエントリが回転されたキャッシュライン32内の位置数を判定する(ブロック102)。キャッシュライン順序付け論理42は、位置数を、図1のキャッシュライン順序付けインデックス46のような、キャッシュライン32に関係付けられるキャッシュライン順序付けインデックスとして格納する(ブロック104)。一部の実施形態は、キャッシュライン順序付けインデックス46が、図3のタグ72のようなタグ、および/または図3のフラグビット74のようなフラグビットに格納されると定めることができる。次いで、処理は図6Bのブロック96に進む。
【００４１】
以下で、図6Bを参照すると、キャッシュコントローラ30は、次に、キャッシュ読取りが検出されたかどうかを判定する(ブロック96)。検出されない場合、処理は図6Aのブロック94に戻る。図6Bのブロック96においてキャッシュ読取りが検出される場合、キャッシュコントローラ30のキャッシュアクセス論理44は、キャッシュライン32の複数のデータエントリの各々にアクセスする(ブロック106)。複数のデータエントリにアクセスするため、キャッシュアクセス論理44は、要求されたデータエントリを、キャッシュライン32のキャッシュライン順序付けインデックス46に基づいて、複数のデータエントリの1つにマップすることができる。これは、複数のデータエントリの別の再順序付けまたは再ソートを必要とすることなく、複数のデータエントリへのアクセスを許可することができる。次いで、処理は図6Aのブロック94において再開する。
【００４２】
本明細書において開示される実施形態による、キャッシュメモリアクセスを高速化するためにキャッシュメモリフィルを重要ワード優先順序付けするステップは、任意のプロセッサベースのデバイスにおいて提供され得るか、またはデバイスに組み入れられてもよい。例は、非限定的に、セットトップボックス、エンターテイメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、携帯電話、セルラー電話、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナ、ラジオ、衛星ラジオ、音楽プレイヤー、デジタル音楽プレイヤー、ポータブル音楽プレイヤー、デジタルビデオプレイヤー、ビデオプレイヤー、デジタルビデオディスク(DVD)プレイヤー、およびポータブルデジタルビデオプレイヤーを含む。
【００４３】
この点に関して、図7は、本明細書において説明される実施形態のいずれかによる、キャッシュメモリアクセスを高速化するためにキャッシュフィルを重要ワード優先順序に再順序付けするように構成された、図3のキャッシュメモリ60を含むことができる例示的なプロセッサベースのシステム108のブロック図である。この例において、プロセッサベースのシステム108は、各々1つまたは複数のプロセッサ12を含む1つまたは複数のCPU10を含む。CPU10は、一時的に格納されたデータに高速にアクセスするためにプロセッサ12に結合されたキャッシュメモリ60を有することができる。CPU10は、システムバス110に結合され、プロセッサベースのシステム108に含まれているマスターデバイスおよびスレーブデバイスを連結することができる。よく知られているように、CPU10は、システムバス110を介してアドレス、制御、およびデータ情報を交換することによって、これらの他のデバイスと通信する。たとえば、CPU10は、スレーブデバイスの一例としてメモリコントローラ112にバストランザクション要求を伝達することができる。
【００４４】
その他のマスターデバイスおよびスレーブデバイスが、システムバス110に接続されてもよい。図7に示されるように、これらのデバイスは、例として、メモリシステム114、1つまたは複数の入力デバイス116、1つまたは複数の出力デバイス118、1つまたは複数のネットワークインターフェースデバイス120、および1つまたは複数のディスプレイコントローラ122を含むことができる。入力デバイス116は、入力キー、スイッチ、音声プロセッサなどを含む任意のタイプの入力デバイスを含むことができるが、これらに限定されることはない。出力デバイス118は、オーディオ、ビデオ、その他のビジュアルインジケータなどを含む任意のタイプの出力デバイスを含むことができるが、これらに限定されることはない。ネットワークインターフェースデバイス120は、ネットワーク124との間のデータの交換を可能にするように構成された任意のデバイスであってもよい。ネットワーク124は、有線またはワイヤレスのネットワーク、プライベートまたはパブリックのネットワーク、ローカルエリアネットワーク(LAN)、ワイドローカルエリアネットワーク(WLAN)、およびインターネットを含む任意のタイプのネットワークであってもよいが、これらに限定されることはない。ネットワークインターフェースデバイス120は、望ましい任意のタイプの通信プロトコルをサポートするように構成されてもよい。メモリシステム114は、1つまたは複数のメモリユニット126(0〜N)を含むことができる。
【００４５】
CPU10はまた、1つまたは複数のディスプレイ128に送信される情報を制御するために、システムバス110を介してディスプレイコントローラ122にアクセスするように構成されてもよい。ディスプレイコントローラ122は、1つまたは複数のビデオプロセッサ130を介して表示されるべき情報をディスプレイ128に送信し、ビデオプロセッサ130は表示されるべき情報をディスプレイ128に適切なフォーマットに処理する。ディスプレイ128は、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイなどを含む任意のタイプのディスプレイを含むことができるが、これらに限定されることはない。
【００４６】
当業者であれば、本明細書において開示される実施形態に関連して説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムが、電子ハードウェアとして、メモリまたは別のコンピュータ可読媒体に格納され、プロセッサまたはその他の処理デバイスによって実行される命令として、またはその両方の組合せで実施され得ることをさらに理解するであろう。本明細書において説明されるマスターデバイスおよびスレーブデバイスは、例として、任意の回路、ハードウェアコンポーネント、集積回路(IC)、またはICチップにおいて採用されてもよい。本明細書において開示されるメモリは、任意のタイプおよびサイズのメモリであってもよく、望ましい任意のタイプの情報を格納するように構成され得る。この互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップは、概してそれらの機能に関して上記で説明されてきた。そのような機能がどのように実施されるかは、全体的なシステムに課される特定のアプリケーションおよび設計の選択および/または設計の制約によって異なる。当業者は、各々特定のアプリケーションについて異なる方法で、説明されている機能を実施することができるが、そのような実施の決定は、本開示の範囲からの逸脱を生じさせるものと解釈されるべきではない。
【００４７】
本明細書において開示される実施形態に関連して説明される様々な例示的な論理ブロック、モジュール、および回路は、プロセッサ、デジタル信号プロセッサ(DSP)、特殊用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)またはその他のプログラマブル論理デバイス、ディスクリートゲートまたはトランジスタ論理、ディスクリートハードウェアコンポーネント、または本明細書において説明される機能を実行するように設計されたこれらの任意の組合せにより実施または実行されてもよい。プロセッサは、マイクロプロセッサであってもよいが、代替策において、プロセッサは、任意の標準的なプロセッサ、コントローラ、マイクロコントローラ、または状態マシンであってもよい。プロセッサはまた、たとえばDSPとマイクロプロセッサの組合せのようなコンピューティングデバイスの組合せ、複数のマイクロプロセッサ、DSPコアと併せた1つまたは複数のマイクロプロセッサ、または任意の他のそのような構成として実施されてもよい。
【００４８】
本明細書において開示される実施形態は、ハードウェア、およびハードウェアに格納されている命令において具現されてもよく、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、取り外し可能ディスク、CD-ROM、または当技術分野において知られている任意のその他の形態のコンピュータ可読媒体に存在することができる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替策において、記憶媒体は、プロセッサに内蔵型であってもよい。プロセッサおよび記憶媒体は、ASIC内に存在することができる。ASICは、リモートステーション内に存在することができる。代替策において、プロセッサおよび記憶媒体は、リモートステーション、基地局、またはサーバ内にディスクリートコンポーネントとして存在することができる。
【００４９】
本明細書において説明される例示的な実施形態のいずれかにおいて説明される動作ステップが、例示および解説を提供するために説明されることにも留意されたい。説明される動作は、示されている順序以外の多くの異なる順序で実行されてもよい。さらに、単一の動作ステップにおいて説明される動作は、実際には多数の異なるステップで実行されてもよい。加えて、例示的な実施形態において解説される1つまたは複数の動作ステップは、組み合わされてもよい。流れ図に示される動作ステップが、当業者には容易に明らかとなるように、多数の様々な変更が行われ得ることを理解されたい。当業者であれば、また、情報および信号が、多種多様な技術および技法のいずれかを使用して表され得ることを理解するであろう。たとえば、上記の説明全体にわたり参照され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場または磁性粒子、光学場または光学粒子、またはそれらの任意の組合せによって表されてもよい。
【００５０】
本開示の以上の説明は、当業者が本開示を実施または使用できるようにするために提示される。本開示への様々な変更は、当業者には容易に明らかとなるものであり、本明細書において定義される一般的原理は、本開示の精神および範囲を逸脱することなくその他の変形に適用されてもよい。したがって、本開示は、本明細書において説明されている例および設計に限定されることは意図されないが、本明細書において開示される原理および新規の特徴と合致する最大範囲が許容されるものとする。
【符号の説明】
【００５１】
1  プロセッサ
2  キャッシュ
3  キャッシュコントローラ
4  キャッシュライン順序付け論理
5  キャッシュアクセス論理
6  キャッシュライン
7  キャッシュライン順序付けインデックス
8  メインメモリ
9  重要ワード
10  非重要ワード
11  データエントリブロック
12  バンク
13  サブバンク
14  高速ゾーン
15  低速ゾーン
16  タグ
17  フラグビット
18  プロセッサクロックサイクル
【図１】
0006377084.tif 000002
【図２Ａ】
0006377084.tif 000003
【図２Ｂ】
0006377084.tif 000004
【図３】
0006377084.tif 000005
【図４】
0006377084.tif 000006
【図５】
0006377084.tif 000007
【図６Ａ】
0006377084.tif 000008
【図６Ｂ】
0006377084.tif 000009
【図７】
0006377084.tif 000010