JP6377084B2 - キャッシュメモリアクセスを高速化するためのキャッシュメモリフィルの重要ワード優先順序付け、ならびに関連するプロセッサベースのシステムおよび方法 - Google Patents

キャッシュメモリアクセスを高速化するためのキャッシュメモリフィルの重要ワード優先順序付け、ならびに関連するプロセッサベースのシステムおよび方法 Download PDF

Info

Publication number
JP6377084B2
JP6377084B2 JP2015561531A JP2015561531A JP6377084B2 JP 6377084 B2 JP6377084 B2 JP 6377084B2 JP 2015561531 A JP2015561531 A JP 2015561531A JP 2015561531 A JP2015561531 A JP 2015561531A JP 6377084 B2 JP6377084 B2 JP 6377084B2
Authority
JP
Japan
Prior art keywords
cache
cache line
memory
data entries
data
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
JP2015561531A
Other languages
English (en)
Other versions
JP2016509324A (ja
JP2016509324A5 (ja
Inventor
シアンユ・ドン
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2016509324A publication Critical patent/JP2016509324A/ja
Publication of JP2016509324A5 publication Critical patent/JP2016509324A5/ja
Application granted granted Critical
Publication of JP6377084B2 publication Critical patent/JP6377084B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/128Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
    • 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/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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

Landscapes

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

Description

優先権の主張
本出願は、参照により全体を本明細書において援用する、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とラベル表示)は、1つのプロセッサクロックサイクルを表す。クロックサイクルチャート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 プロセッサクロックサイクル

Claims (13)

  1. 複数のデータエントリを格納するように構成された複数のデータエントリブロックを備えるキャッシュラインを備えるデータアレイであって、前記複数のデータエントリブロックは、高速ゾーンメモリ、および低速ゾーンメモリを含み、前記高速ゾーンメモリは、前記低速ゾーンメモリよりも短い待ち時間を有するメモリを含む、データアレイと、
    前記高速ゾーンメモリ内に、前記複数のデータエントリの中の重要ワードを格納するために、キャッシュフィル中に前記キャッシュラインへの前記複数のデータエントリを重要ワード優先順序付けするように構成されるキャッシュライン順序付け論理であって、
    前記キャッシュラインに関係付けられるキャッシュライン順序付けインデックスを格納するように構成され、前記キャッシュライン順序付けインデックスが前記キャッシュラインの前記複数のデータエントリの前記重要ワード優先順序付けを指示する、キャッシュライン順序付け論理と、
    前記キャッシュラインの前記キャッシュライン順序付けインデックスに基づいて、前記キャッシュラインの前記複数のデータエントリの各々にアクセスするように構成されたキャッシュアクセス論理とを備え
    前記キャッシュライン順序付け論理は、
    前記複数のデータエントリを重要ワード優先順位付けするために前記複数のデータエントリが回転された前記キャッシュライン内の位置数を判定し、
    前記位置数を前記キャッシュライン順序付けインデックスとして格納する
    ことによって、前記キャッシュライン順序付けインデックスを格納するように構成される、キャッシュメモリ。
  2. 前記キャッシュアクセス論理は、前記キャッシュラインの前記キャッシュライン順序付けインデックスに基づいて、要求されたデータエントリを前記複数のデータエントリの1つにマップすることによって、前記キャッシュラインの前記複数のデータエントリの各々にアクセスするように構成される請求項1に記載のキャッシュメモリ。
  3. 前記キャッシュライン順序付け論理は、キャッシュミスに応答して前記複数のデータエントリを重要ワード優先順序付けするようにさらに構成される請求項1に記載のキャッシュメモリ。
  4. 前記キャッシュライン順序付け論理は、下位レベルメモリから発信された前記複数のデータエントリを受信するようにさらに構成される請求項1に記載のキャッシュメモリ。
  5. 前記キャッシュラインに対応するタグをさらに備え、
    前記キャッシュライン順序付け論理は、前記キャッシュラインに対応する前記タグに、前記キャッシュラインに関係付けられる前記キャッシュライン順序付けインデックスを格納するように構成される請求項1に記載のキャッシュメモリ。
  6. 前記キャッシュラインに対応する少なくとも1つのフラグビットをさらに備え、
    前記キャッシュライン順序付け論理は、前記キャッシュラインに対応する少なくとも1つのフラグビットに、前記キャッシュラインに関係付けられる前記キャッシュライン順序付けインデックスを格納するように構成される請求項1に記載のキャッシュメモリ。
  7. 半導体ダイに組み込まれた請求項1に記載のキャッシュメモリ。
  8. セットトップボックス、エンターテイメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、携帯電話、セルラー電話、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナ、ラジオ、衛星ラジオ、音楽プレイヤー、デジタル音楽プレイヤー、ポータブル音楽プレイヤー、デジタルビデオプレイヤー、ビデオプレイヤー、デジタルビデオディスク(DVD)プレイヤー、およびポータブルデジタルビデオプレイヤーから成るグループから選択されたデバイスに組み込まれた請求項1に記載のキャッシュメモリ。
  9. キャッシュメモリフィルを重要ワード優先順位付けする方法であって、
    高速ゾーンメモリ内に、複数のデータエントリの中の重要ワードを格納するために、キャッシュフィル中にキャッシュラインへの前記複数のデータエントリを重要ワード優先順序付けするステップであって、前記キャッシュラインは、前記高速ゾーンメモリ、および低速ゾーンメモリを含み、前記高速ゾーンメモリは、前記低速ゾーンメモリよりも短い待ち時間を有するメモリを含む、ステップと、
    前記キャッシュラインに関係付けられるキャッシュライン順序付けインデックスを格納するステップであって、前記キャッシュライン順序付けインデックスが前記キャッシュラインの前記複数のデータエントリの前記重要ワード優先順序付けを指示する、ステップと、
    前記キャッシュラインの前記キャッシュライン順序付けインデックスに基づいて前記キャッシュラインの前記複数のデータエントリの各々にアクセスするステップとを備え
    前記キャッシュライン順序付けインデックスを格納するステップは、
    前記複数のデータエントリを重要ワード優先順位付けするために前記複数のデータエントリが回転された前記キャッシュライン内の位置数を判定するステップと、
    前記位置数を前記キャッシュライン順序付けインデックスとして格納するステップとを備える、方法。
  10. 前記キャッシュラインの前記複数のデータエントリの各々にアクセスするステップは、前記キャッシュラインの前記キャッシュライン順序付けインデックスに基づいて、要求されたデータエントリを前記複数のデータエントリの1つにマップするステップを備える請求項9に記載の方法。
  11. 前記複数のデータエントリを重要ワード優先順序付けするステップは、キャッシュミスに応答して前記複数のデータエントリを重要ワード優先順序付けするステップを備える請求項9に記載の方法。
  12. 下位レベルメモリから前記複数のデータエントリを受信するステップをさらに備える請求項9に記載の方法。
  13. 前記キャッシュライン順序付けインデックスを格納するステップは、前記キャッシュライン順序付けインデックスを前記キャッシュラインに対応するタグに格納するステップを備えるか、または
    前記キャッシュライン順序付けインデックスを格納するステップは、前記キャッシュラインに対応する少なくとも1つのフラグビットに前記キャッシュライン順序付けインデックスを格納するステップを備える、請求項9に記載の方法。
JP2015561531A 2013-03-07 2014-03-04 キャッシュメモリアクセスを高速化するためのキャッシュメモリフィルの重要ワード優先順序付け、ならびに関連するプロセッサベースのシステムおよび方法 Expired - Fee Related JP6377084B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361773951P 2013-03-07 2013-03-07
US61/773,951 2013-03-07
US13/925,874 US20140258636A1 (en) 2013-03-07 2013-06-25 Critical-word-first ordering of cache memory fills to accelerate cache memory accesses, and related processor-based systems and methods
US13/925,874 2013-06-25
PCT/US2014/020229 WO2014138029A1 (en) 2013-03-07 2014-03-04 Critical-word-first ordering of cache memory fills to accelerate cache memory accesses, and related processor-based systems and methods

Publications (3)

Publication Number Publication Date
JP2016509324A JP2016509324A (ja) 2016-03-24
JP2016509324A5 JP2016509324A5 (ja) 2017-03-16
JP6377084B2 true JP6377084B2 (ja) 2018-08-22

Family

ID=51489354

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015561531A Expired - Fee Related JP6377084B2 (ja) 2013-03-07 2014-03-04 キャッシュメモリアクセスを高速化するためのキャッシュメモリフィルの重要ワード優先順序付け、ならびに関連するプロセッサベースのシステムおよび方法

Country Status (7)

Country Link
US (1) US20140258636A1 (ja)
EP (1) EP2965209A1 (ja)
JP (1) JP6377084B2 (ja)
KR (1) KR20150130354A (ja)
CN (1) CN105027094A (ja)
BR (1) BR112015021438A2 (ja)
WO (1) WO2014138029A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180045087A (ko) * 2016-10-24 2018-05-04 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US10599585B2 (en) * 2017-03-23 2020-03-24 Intel Corporation Least recently used-based hotness tracking mechanism enhancements for high performance caching
US10380034B2 (en) * 2017-07-14 2019-08-13 International Business Machines Corporation Cache return order optimization
KR200492757Y1 (ko) 2020-04-13 2020-12-04 주식회사 케이티 서비스 북부 Tv 셋탑박스 걸이구

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781923A (en) * 1996-05-28 1998-07-14 Hewlett-Packard Company Adding a field to the cache tag in a computer system to indicate byte ordering
US6360297B1 (en) * 1999-11-09 2002-03-19 International Business Machines Corporation System bus read address operations with data ordering preference hint bits for vertical caches
US20040103251A1 (en) * 2002-11-26 2004-05-27 Mitchell Alsup Microprocessor including a first level cache and a second level cache having different cache line sizes
US7162583B2 (en) * 2003-12-29 2007-01-09 Intel Corporation Mechanism to store reordered data with compression
US7293141B1 (en) * 2005-02-01 2007-11-06 Advanced Micro Devices, Inc. Cache word of interest latency organization
US8205262B2 (en) * 2006-05-16 2012-06-19 Bird Peter L Hardware support for computer speciation
US8271729B2 (en) * 2009-09-18 2012-09-18 International Business Machines Corporation Read and write aware cache storing cache lines in a read-often portion and a write-often portion

Also Published As

Publication number Publication date
JP2016509324A (ja) 2016-03-24
CN105027094A (zh) 2015-11-04
EP2965209A1 (en) 2016-01-13
KR20150130354A (ko) 2015-11-23
WO2014138029A1 (en) 2014-09-12
US20140258636A1 (en) 2014-09-11
BR112015021438A2 (pt) 2017-07-18

Similar Documents

Publication Publication Date Title
KR102545726B1 (ko) 프로세서-기반 시스템들에서 공간 QoS(Quality of Service) 태깅을 사용한 이종 메모리 시스템들의 유연한 관리의 제공
US10146693B2 (en) Providing memory bandwidth compression using multiple last-level cache (LLC) lines in a central processing unit (CPU)-based system
US9823854B2 (en) Priority-based access of compressed memory lines in memory in a processor-based system
US20180329830A1 (en) Reducing metadata size in compressed memory systems of processor-based systems
US10372635B2 (en) Dynamically determining memory attributes in processor-based systems
US20170212840A1 (en) Providing scalable dynamic random access memory (dram) cache management using tag directory caches
JP6377084B2 (ja) キャッシュメモリアクセスを高速化するためのキャッシュメモリフィルの重要ワード優先順序付け、ならびに関連するプロセッサベースのシステムおよび方法
US20180173623A1 (en) Reducing or avoiding buffering of evicted cache data from an uncompressed cache memory in a compressed memory system to avoid stalling write operations
US20180074949A1 (en) Providing memory bandwidth compression using adaptive compression in central processing unit (cpu)-based systems
US10152261B2 (en) Providing memory bandwidth compression using compression indicator (CI) hint directories in a central processing unit (CPU)-based system
US10176096B2 (en) Providing scalable dynamic random access memory (DRAM) cache management using DRAM cache indicator caches

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170209

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180205

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180607

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: 20180625

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180724

R150 Certificate of patent or registration of utility model

Ref document number: 6377084

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees