JP6038955B2 - 高時間的参照局所性のデータフィルバッファの排除防止 - Google Patents

高時間的参照局所性のデータフィルバッファの排除防止 Download PDF

Info

Publication number
JP6038955B2
JP6038955B2 JP2014553535A JP2014553535A JP6038955B2 JP 6038955 B2 JP6038955 B2 JP 6038955B2 JP 2014553535 A JP2014553535 A JP 2014553535A JP 2014553535 A JP2014553535 A JP 2014553535A JP 6038955 B2 JP6038955 B2 JP 6038955B2
Authority
JP
Japan
Prior art keywords
data buffer
high temporal
temporal reference
cache
counter
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
JP2014553535A
Other languages
English (en)
Other versions
JP2015508192A (ja
JP2015508192A5 (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 JP2015508192A publication Critical patent/JP2015508192A/ja
Publication of JP2015508192A5 publication Critical patent/JP2015508192A5/ja
Application granted granted Critical
Publication of JP6038955B2 publication Critical patent/JP6038955B2/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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • 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/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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

本特許出願は、本出願の譲受人に譲渡され、参照により本明細書に明確に組み込まれる、2012年1月23日に出願された「PREVENTING THE DISPLACEMENT OF HIGH TEMPORAL LOCALITY OF REFERENCE DATA FILL BUFFERS」と題する仮出願第61/589,577号の優先権を主張する。
本開示は、マイクロプロセッサの電力管理に関し、より詳細には、高時間的参照局所性(high temporal locality of reference)のデータフィルバッファ(data fill buffer)の排除を防止することに関する。
マイクロプロセッサの状況(context)でロードおよびストアの実行中に、高められた頻度でメモリの比較的小さなウィンドウが書き込まれ読み取られるデータパターンが発生する。そのようなメモリ領域は、高時間的参照局所性を有するといわれる。一例は、ソフトウェアスタックであり、プロシージャが呼び出されまたそれから戻るとき、スタックに対してプッシュ(push)およびプル(pull)がいつも行われる。
高時間的参照局所性を有するメモリ領域は、しばしばページテーブルでキャッシュ可能としてマーク付けされるので、より低い時間的参照局所性を有する領域よりも電力を必要とし、したがって、大きいキャッシュ構造が書き込まれた場合は常に、スタックに対する各プッシュが大きな電力消費をもたらす可能性がある。さらに、一般にフィルバッファの可用度は記憶装置のスループットにつながるため、キャッシュフィルバッファを、高時間的参照局所性を有していないメモリ領域に割り当てられた状態にしておくことは不都合である。加えて、フィルバッファのライフサイクルが管理されない場合、同じメモリ領域に対する複数のフィルバッファの割当ておよび割当て解除(de-allocation)が、時間の経過とともにさらなる電力の問題をもたらすことになる。
これは、モバイルデバイスのマイクロプロセッサのような電力が重要な領域の状況で問題となる。マイクロプロセッサの電力プロファイルは、モバイルデバイスのより長い寿命のバッテリへの需要が高まるとともに、ますます重要となっている。
本開示は、高時間的参照局所性を有するメモリ内容にアクセスすることに関する。本開示の実施形態は、データバッファに内容を記憶し、データバッファの内容が高時間的参照局所性を有すると決定し、内容を対象とする動作ごとに、内容を記憶するキャッシュの代わりにデータバッファにアクセスする。
添付の図面は、本発明の実施形態の説明を補助するために提示され、実施形態の限定ではなく、実施形態の例示のためのみに提供される。
本発明の少なくとも1つの実施形態による例示的なユーザ機器(UE)を示す図である。 本発明の少なくとも1つの実施形態による例示的なプロセッサの簡略ブロック図である。 本発明の少なくとも1つの実施形態による例示的なメモリ構造の簡略ブロック図である。 本発明の少なくとも1つの実施形態による例示的なフローチャートである。
本発明の特定の実施形態を対象とする以下の説明および関連する図面で、本発明の態様が開示される。本発明の範囲から逸脱することなく、代替の実施形態が考案され得る。さらに、本発明の関連する詳細を不明瞭にしないように、本発明のよく知られている要素は詳細に記載されないか、または省略される。
「例示的な」という言葉は、「例、実例、または例示として機能すること」を意味するために本明細書で使用される。「例示的な」として本明細書で説明するいかなる実施形態も、必ずしも他の実施形態よりも好ましいまたは有利であると解釈されるべきではない。同様に、「本発明の実施形態」という用語は、本発明のすべての実施形態が、論じられた特徴、利点または動作モードを含むことを必要としない。
本明細書の説明では、「ライト」および「書き込む」(write)という用語は、当技術分野で知られる「ストア」および「記憶」(store)動作と同義的に使用される。同様に、「リード」および「読み取る」(read)という用語は、「ロード」(load)と同義的に使用される。さらに、本明細書では、キャッシュライン全体に関するリード/ライト動作よりも粒度が小さくなり得る「キャッシュブロック(cash block)」に関するリード/ライト動作について参照することがある。しかしながら、そのような参照は、説明のためのものにすぎず、実施形態の範囲を限定するものと解釈されるべきでないことは理解されよう。たとえば、開示される技法は、適用可能な場合、キャッシュワード、キャッシュラインなどの任意の他の粒度の動作に容易に拡張することができる。さらに、データのライト/リード動作のみに関して説明する場合であっても、参照されるキャッシュブロックはデータまたは命令を含むことがあることも理解されよう。加えて、より低いレベルのメモリ階層に対する参照は、プロセッサまたは処理要素に関連付けられ得るローカルまたはレベル1(L1)キャッシュ以外の補助記憶要素(backing storage element)を含むことがある。たとえば、本明細書では、より低いレベルのメモリ階層に対する参照は、レベル2(L2)キャッシュ、メインメモリ、および、L2キャッシュとメインメモリとの間に存在し得るメモリ構造の1つまたは複数のレベルを示すことがある。
本明細書で使用される用語は、特定の実施形態の説明のみを目的とするものであり、本発明の実施形態を限定するものではない。本明細書で使用する単数形「a」、「an」、および「the」は、文脈が別段に明確に示すのでなければ、複数形をも含むものとする。さらに、本明細書で使用する「含む(comprises)」、「含んでいる(comprising)」、「含む(includes)」、および/または「含んでいる(including)」という用語は、述べられた特徴、整数、ステップ、動作、要素、および/または構成要素(component)の存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除しないことを理解されよう。
さらに、多くの実施形態が、たとえばコンピューティングデバイスの要素によって実行されるべき、一連の動作に関して説明される。本明細書で説明される様々な動作は、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって、1つまたは複数のプロセッサによって実行されるプログラム命令によって、あるいは両方の組合せによって実行され得ることを認識されよう。加えて、本明細書で説明されるこれらの一連の動作は、実行時に、関連するプロセッサに本明細書で説明される機能を実行させるコンピュータ命令の対応するセットを記憶した、あらゆる形式のコンピュータ可読記憶媒体内で全体として具現化されるものと見なされ得る。したがって、本発明の様々な態様は、特許請求する主題の範囲内に、そのすべてがあることが企図されている数々の異なる形式で具現化され得る。さらに、本明細書で説明される実施形態ごとに、任意のそのような実施形態の対応する形式は、本明細書では、たとえば、説明される動作を実行「するように構成されたロジック」として説明されることがある。
構成されたロジックまたは「するように構成されたロジック」は、特定の論理ゲートまたは論理要素に限定されるのではなく、概して、本明細書に記載した機能性を、(ハードウェアまたはハードウェアとソフトウェアの組合せの何れかを介して)実施するための能力を指すことが理解されよう。したがって、構成されたロジックまたは「するように構成されたロジック」は、「ロジック(論理)」という語を共有するにもかかわらず、必ずしも論理ゲートまたは論理要素として実装されるとは限らない。様々なブロックのロジック間の他のインタラクションまたは協働が、後でより詳しく説明する実施形態の検討から、当業者には明らかになるであろう。
図1を参照すると、たとえば携帯電話などのUE100(ここではワイヤレスデバイス)は、プラットフォーム102を有し、プラットフォーム102は、無線アクセスネットワーク(RAN)から送信され、最終的にはコアネットワーク、インターネット、および/または他のリモートサーバおよびネットワークから来る可能性がある、ソフトウェアアプリケーション、データ、および/またはコマンドを受信し、実行することができる。プラットフォーム102は、「ASIC」108または他のプロセッサ、マイクロプロセッサ、論理回路、または他のデータ処理デバイスに動作可能に結合された送受信機106を含み得る。ASIC108または他のプロセッサは、ワイヤレスデバイスのメモリ112中の任意の常駐プログラム(resident program)と仲立ちする(interface)アプリケーションプログラミングインターフェース(「API」)110レイヤを実行する。メモリ112は、読取り専用メモリまたはランダムアクセスメモリ(RAMおよびROM)、EEPROM、フラッシュカード、またはコンピュータプラットフォームに共通の任意のメモリから構成され得る。プラットフォーム102は、メモリ112中でアクティブに使用されないアプリケーションを保持することができるローカルデータベース114も含み得る。ローカルデータベース114は、一般にフラッシュメモリセルであるが、磁気媒体、EEPROM、光学媒体、テープ、ソフトまたはハードディスクなど、当技術分野で知られている任意の二次記憶デバイスであってもよい。内部プラットフォーム102のコンポーネントはまた、当技術分野で知られていているように、コンポーネントのうちでもとりわけ、アンテナ122、ディスプレイ124、プッシュツートークボタン128およびキーパッド126のような外部デバイスに動作可能に結合され得る。
したがって、本発明のある実施形態は、本明細書で説明された機能を実行する能力を含むUEを含み得る。当業者が諒解するように、様々な論理要素は、本明細書で開示される機能を達成するために、個別の要素、プロセッサ上で実行されるソフトウェアモジュール、またはソフトウェアとハードウェアとの任意の組合せで具現化され得る。たとえば、ASIC108、メモリ112、API110およびローカルデータベース114がすべて協働的に使用されて、本明細書で開示される様々な機能をロードし、記憶し、実行することができ、したがってこれらの機能を実行するためのロジックは様々な要素にわたって分散され得る。代替的に、機能は、1つの個別コンポーネントに組み込まれ得る。したがって、図1のUE100の特徴は、単に例示にすぎないものと見なされ、本発明は、示された特徴または構成に限定されない。
UE100とRANとの間のワイヤレス通信は、符号分割多元接続(CDMA)、W-CDMA、時分割多元接続(TDMA)、周波数分割多元接続(FDMA)、直交周波数分割多重(OFDM)、Global System for Mobile Communications(GSM(登録商標))、3GPPロングタームエボリューション(LTE)、またはワイヤレス通信ネットワークもしくはデータ通信ネットワークにおいて使用できる他のプロトコルなど、様々な技術に基づくことができる。したがって、本明細書で提供される例は、本発明の実施形態を限定するためのものではなく、単に本発明の実施形態の態様の説明を助力するためのものにすぎない。
図2は、ASIC108などのプロセッサ10の簡略機能ブロック図を示す。プロセッサ10は、制御ロジック14に従って命令実行パイプライン12中の命令を実行する。制御ロジック14は、プログラムカウンタ(PC)15を維持し、1つまたは複数の状態レジスタ16にビットをセットおよびクリアし、たとえば、現在の命令セット動作モード、算術演算の結果に関する情報、および論理比較(ゼロ、桁上げ、等しい、等しくない)などを示す。いくつかの実施形態では、パイプライン12が、複数の並列パイプラインを有するスーパースカラ設計ですることができる。パイプライン12は実行ユニットと呼ばれることもある。汎用レジスタ(GPR)ファイル24は、パイプライン12によってアクセス可能なレジスタを提供し、メモリ階層の最上部を構成する。
異なる命令セット動作モードで少なくとも2つの命令セットからの命令を実行するプロセッサ10は加えて、各命令を実行すると、少なくともあらかじめ定められたターゲット命令セット動作モードと現在の命令セット動作モードを比較して、2つの間の一致を示す表示(indication)を提供するように動作するデバッグ回路18を含む。デバッグ回路18については後でより詳細に説明する。
パイプライン12は、命令側変換索引バッファ(ITLB:Instruction-side Translation Lookaside Buffer)28によって管理されるメモリアドレス変換および許可を用いて、命令キャッシュ(Iキャッシュ)26から命令をフェッチ(fetch)する。主変換索引バッファ(TLB:main Translation Lookaside Buffer)32によって管理されるメモリアドレス変換および許可を用いて、データキャッシュ(Dキャッシュ)30からデータがアクセスされる。様々な実施形態において、ITLB28は、TLB32の一部のコピーを備えることができる。代替として、ITLB28およびTLB32は統合されてもよい。同様に、プロセッサ10の様々な実施形態において、Iキャッシュ26とDキャッシュ30が統合または一体化されてもよい。さらに、Iキャッシュ26およびDキャッシュ30がL1キャッシュとされてもよい。Iキャッシュ26および/またはDキャッシュ30中でのミスにより、メモリインターフェース34によって、メイン(オフチップ)メモリ38、40がアクセスされる。メモリインターフェース34は、1つまたは複数のメモリデバイス38、40への共有バスを実装するバス相互接続42へのマスタ入力とされてもよい。追加のマスタデバイス(図示せず)はバス相互接続42にさらに接続されてもよい。
プロセッサ10は、周辺バス46におけるマスタデバイスとすることができる入力/出力(I/O)インターフェース44を含むことができ、I/Oインターフェース44は、周辺バス46を介して様々な周辺デバイス48、50にアクセスすることができる。プロセッサ10の多数の変形が可能であることが当業者には理解されよう。たとえば、プロセッサ10は、Iキャッシュ26およびDキャッシュ30の何れかまたは両方のためのレベル2(L2)キャッシュを含んでもよい。加えて、プロセッサ10内に示す機能ブロックのうちの1つまたは複数は、特定の実施形態では省略してもよい。JTAGコントローラ、命令プリデコーダ、および分岐ターゲットアドレスキャッシュなどのようなプロセッサ10内に存在し得る他の機能ブロックは、本発明の説明とは密接に関連せず、明確化のために省略されている。
マイクロプロセッサの状況でロードおよびストアの実行中に、高い頻度でメモリの比較的小さなウィンドウが書き込まれ読み取られるデータパターンが発生する。そのようなメモリ領域は、高時間的参照局所性を有するといわれる。一例は、ソフトウェアスタックであり、プロシージャが呼び出されまたそれから戻るとき、スタックに対してプッシュおよびプルがいつも行われる。
高時間的参照局所性を有するメモリ領域は、コアの電力利用に関して課題がある。この課題は、それらのメモリ領域がしばしばページテーブルでキャッシュ可能としてマーク付けされることにより存在し、したがって、大きいキャッシュ構造が書き込まれた場合は常に、スタックに対する各プッシュが大きな電力消費をもたらす可能性がある。問題を複雑にすることに、フィルバッファの可用性は一般に記憶装置のスループットに変換されるため、キャッシュフィルバッファを、高時間的参照局所性を有していないメモリ領域に割り当てられた状態にしておくことは大変不都合である。加えて、フィルバッファのライフサイクルが管理されない場合、同じメモリ領域に対する複数のフィルバッファの割当ておよび割当て解除が、時間の経過とともに、さらなる電力の問題をもたらすことになる。
これは、モバイルデバイスのマイクロプロセッサのような電力が重要な領域の状況で問題となる。マイクロプロセッサの電力プロファイルは、モバイルデバイスのより長い寿命のバッテリへの需要が高まるとともに、ますます重要となっている。
本発明の一実施形態は、高時間的参照局所性を有するメモリ領域を検出すること、その領域を対象とするストア動作ごとのキャッシュに対する書き込みを防止すること、および、同じメモリ領域に対するバッファの恒常的な割当ておよび割当て解除を防止することによって、上記および他の課題に対処する。本発明の一実施形態は、キャッシュの代わりにフィルバッファに書き込みをする。フィルバッファのみに書き込むことにより、大きなキャッシュ構造へのアクセスに関連する電力が節約される。またフィルバッファがリタイアしないように維持することによって、同じメモリ領域に対する新しいフィルバッファの割当ておよび割当て解除が防止される。また、フィルバッファデータが、ロードユースペナルティ(load-use penalty)が変化しないようにロードに利用可能なままであるので、サイクル当たりの命令数(IPC)が減少しない。加えて、高時間的局所性を有するとマーク付けされたフィルバッファは、スタックポインタイベントを監視すること、および/またはフィルバッファがアクセスされる頻度を追跡することによって、自身のリタイアを管理するので、フィルバッファは、たいていは、高時間的参照局所性を有していないアクセスに利用可能なままである。
図3は、本発明の一実施形態による例示的なメモリ構造300の簡略ブロック図を示す。メモリ構造300は、レベル1(L1)キャッシュ305、レベル2(L2)キャッシュ、および/または他のより高いレベルのメモリ310を含む。メモリ構造300はまた、(バッファ320a、b、およびnとして示す)データバッファ0からNを含む。点線で示すように、データバッファ320bとデータバッファ320nとの間には任意の数のデータバッファが存在し得る。各データバッファ320a、b、およびnは、それぞれ時間的検出器(temporal detector)フィールド322a、b、ならびにn、および/またはそれぞれスタックフラグフィールド324a、b、およびnを含む。データは、レベル1(L1)キャッシュ305から、たとえばデータバッファ320aへ、または、レベル1(L1)キャッシュ305へ、たとえばデータバッファ320aから書き込むことができる。同様に、データは、キャッシュ/メモリ310から、たとえばデータバッファ320aへ、または、キャッシュ/メモリ310へ、たとえばデータバッファ320aから書き込むことができる。データは、任意の利用可能なデータバッファ0〜Nへ/から書き込むことができ、キャッシュ305および/またはキャッシュ/メモリ310から/へ、同じデータバッファへ/から書き込む必要がない。
本発明の一実施形態では、高時間的参照局所性を有するメモリ領域に関連付けられたロードおよびストア動作を認識し、それらの動作を、高時間的参照局所性を有するメモリ領域に関連付けられていないロードおよびストア動作から区別する。本発明の一実施形態では、関連付けられたデータキャッシュフィルバッファを、それらの時間的参照局所性に応じて管理する。
たとえば、高時間的参照局所性を決定するための技術は、動作がスタックに関連付けられたときを認識する。アドバンストRISC(縮小命令セットコンピュータ)マシン(ARM)アーキテクチャでは、スタックポインタが汎用レジスタファイルのレジスタ14(R14)に維持され、したがって、本発明の実施形態は、ロードおよびストア、たとえば、フィルバッファに対するロードおよびストアのためにR14が基底レジスタとして使用されることを検出する。この識別は、動作の属性として記憶ユニットへ提示される。記憶ユニットは、たとえば、図3のスタックフラグフィールド324a、b、またはnのようなフィルバッファのフィールドにフラグを設定することによって、高時間的局所性を有するものとしてデータキャッシュフィルバッファにフラグを立てる。キャッシュにメモリ領域があるかどうかにかかわらず、キャッシュではなくフィルバッファに対してストアが行われる。キャッシュ内の古いデータに対処するため、フィルバッファは、スタックからのロードの性能を維持するために、キャッシュそれ自体のようにアクセス可能にされる必要がある。キャッシュに書き込みをしないことに加え、フィルバッファのライフサイクルが延長され、このメモリ領域のフィルバッファが継続的に割当ておよび割当て解除されないようになされる。その後、データフィルバッファは、スタックポインタを変化させるシステムイベント(プッシュ/ポップ以外のイベント)を検出し、これに応じて、その高時間的局所性状態を除去することで応答し、通常のフィルバッファが行うようにリタイアする。
高時間的参照局所性を有するメモリ領域を識別するための別の技術では、各フィルバッファが、ストアまたはロードが各フィルバッファに対して行われる頻度を監視し、増えた頻度でアクセスされるフィルバッファに高時間的参照局所性を有するものとしてマーク付けする。当該別の技術は、上述の技法と併せて使用しても使用しなくてもよい。その後、フィルバッファは、フィルバッファがアクセスされる頻度の追跡を続け、そのフィルバッファに関連付けられた活動が低下すると、その高時間的局所性状態を除去する。
たとえば、フィルバッファは、フィルバッファのフィールド、たとえば、図3の時間的検出器フィールド322a、b、またはnに記憶されたカウンタを用いて、フィルバッファがアクセスされた頻度を追跡することができる。フィルバッファが割り当てられると、そのカウンタが当初は10に設定され得る。フィルバッファが例示的な100クロックサイクル内にアクセスされない場合、カウンタは9へ減分される。フィルバッファが次の100サイクル内にアクセスされない場合、カウンタは8へ減分され、以下同様に行われる。一方、フィルバッファが100サイクル内に少なくとも1回アクセスされた場合、カウンタは11へ増分される。同様に、フィルバッファが次の100サイクル内に少なくとも1回アクセスされた場合、カウンタは12へ増分され、以下同様に行われる。このようにして、10より大きいカウンタ値を有するフィルバッファは、高時間的参照局所性を有すると見なされ、そうでない場合のように割当て解除されることはない。一方、10より小さいカウンタ値を有するフィルバッファは、高時間的参照局所性を有していないと見なされ、通常通りに割当て解除される。
カウンタの初期値を10に、クロックサイクル数を100に設定することは単に例示であることは理解されよう。任意の数の他の可能性があり、それは、本発明の実施形態を実装する特定のプロセッサに応じて異なりうる。すなわち、これらの境界は、異なるプロセッサごとに異なることがあり、プロセッサの電力管理を最適化するために時間の経過とともに調整されることもある。たとえば、初期の境界では十分な電力管理が実現されない場合、高時間的参照局所性を有するフィルバッファの割当て解除が早過ぎないように、カウンタおよび/またはサイクル数を減少させることができる。すなわち、設定されたカウンタおよび/またはサイクル数が大き過ぎる場合、どのフィルバッファも高時間的参照局所性を有するものとして取り扱われないので、性能が低下することがある。
カウンタおよびサイクル閾値を変更することが必要な場合があるので、それらの値は、設定可能な値とすべきである。すなわち、それらの値は、1つまたは複数のレジスタに記憶され、ソフトウェアによって設定可能とすべきである。そのようにして、フィルバッファは、そのカウンタおよびクロックサイクル数を、カウンタおよび/またはクロックサイクルの境界を記憶するレジスタと比較することによって、フィルバッファが高時間的参照局所性を有するかどうかを決定することができる。
図4は、本発明の少なくとも1つの実施形態による例示的なフローチャート400を示す。410で、データフィルバッファは、アイドル状態であり、すなわち割り当てられていない。420で、データバッファは割り当てられ、データを充填される。この割当ては、前述のように時間的検出器カウンタを初期化することを含んでもよい。430で、フィルバッファの内容が高時間的参照局所性を有するかどうかが決定される。前述のように、これは、カウンタの値が特定の閾値より大きいかどうか、および/またはレジスタR14がフィルバッファに対するロードまたはストアのための基底レジスタとして使用されているかどうかを決定することを含むことができる。430で、フィルバッファの内容が高時間的参照局所性を有していないと決定された場合、450で、バッファの内容がキャッシュ、たとえば、キャッシュ305に書き込まれる。460で、フィルバッファは割当て解除され、410のアイドル状態に戻る。
430で、フィルバッファの内容が高時間的参照局所性を有していないと決定された場合、フィルバッファは、続いて割当て解除されることなく、440で、その時間的参照局所性への何らかの変化を待つ。このことは、たとえば、カウンタの値の減分を含む。カウンタの値の減分は、時間的参照局所性の起きうる変化を示すためである。その後、たとえば、バッファの使用不足により、またはスタックポインタの変化により、カウンタが減分されると、フィルバッファは再び、430で、その内容が高時間的参照局所性を有するかどうかを決定し、決定に応じて440または450に進む。
430と440のループによって示されるように、同じデータが、いくつかのサイクルにわたって、割り当てられたフィルバッファに記憶され得る。これは、そうでなければ、450および460にあるようにキャッシュおよび割当て解除されたフィルバッファに書き込まれることになるデータである。すなわち、420で割り当てられたデータが430で決定されるように高時間的参照局所性を有する場合、そのデータは、高時間的参照局所性を有しなくなるまで、フィルバッファに留まることになる(440)。そのようにして、頻繁にアクセスされるデータのロードまたはストアは、キャッシュの代わりにフィルバッファから利用される。
情報および信号は、多種多様な技術および技法の何れかを使用して表され得ることを当業者は理解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
さらに、本明細書で開示した実施形態に関連して説明した様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装できることを、当業者は理解されよう。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップを、上記では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
本明細書で開示された実施形態と関連して説明された方法、シーケンス、および/またはアルゴリズムは、ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、またはその2つの組合せで直接具現化され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られている任意の他の形態の記憶媒体中に存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。その代わりに、記憶媒体はプロセッサと一体であってもよい。
したがって、本発明の一実施形態は、時間的局所性が高いフィルバッファの排除を防止するための方法を具現化するコンピュータ可読媒体を含むことができる。したがって、本発明は図示の例に限定されず、本明細書で説明した機能を実行するためのいかなる手段も、本発明の実施形態中に含まれる。
上記の開示は本発明の例示的な実施形態を示すが、添付の特許請求の範囲によって規定される本発明の範囲から逸脱することなく、本明細書において様々な変更および修正を行えることに留意されたい。本明細書で説明された本発明の実施形態による方法クレームの機能、ステップおよび/または動作は、特定の順序で実行されなくてもよい。さらに、本発明の要素は、単数形で説明または特許請求されていることがあるが、単数形に限定することが明示的に述べられていない限り、複数形が企図される。
10 プロセッサ
12 パイプライン
14 制御ロジック
15 プログラムカウンタ
16 状態レジスタ
18 デバッグ回路
24 汎用レジスタファイル
26 命令キャッシュ
28 命令側変換索引バッファ(ITLB)
32 主変換索引バッファ(TLB)
30 データキャッシュ
34 メモリインターフェース
38 メモリデバイス
40 メモリデバイス
42 バス相互接続
44 I/Oインターフェース
46 周辺バス
48 周辺デバイス
50 周辺デバイス
100 UE
102 プラットフォーム
106 送受信機
108 ASIC
110 API
112 メモリ
114 ローカルデータベース
122 アンテナ
124 ディスプレイ
126 キーパッド
128 プッシュツートークボタン
300 メモリ構造
305 レベル1キャッシュ
310 キャッシュ/メモリ
320a データバッファ0
320b データバッファ1
320c データバッファN
322a 時間的検出器フィールド
322b 時間的検出器フィールド
322n 時間的検出器フィールド
324a スタックフラグフィールド
324b スタックフラグフィールド
324n スタックフラグフィールド

Claims (13)

  1. 高時間的参照局所性を有するメモリ内容にアクセスする方法であって、
    データバッファに内容を記憶するステップと、
    スタックポインタを含むレジスタが、前記データバッファに対するロードとストアのための基本レジスタとして使用されると決定するステップと、
    前記データバッファの前記内容が高時間的参照局所性を有することを示すフラグを前記データバッファに設定するステップと、
    前記データバッファの前記内容が高時間的参照局所性を有すると前記フラグが示すとき、前記内容を対象とする動作ごとに、キャッシュの代わりに前記データバッファにアクセスするステップと
    を含む方法。
  2. 前記データバッファにおけるカウンタを初期化するステップと、
    前記データバッファが所定の数のクロックサイクル内でアクセスされた場合、前記カウンタを増分するステップと、
    前記データバッファが前記所定の数のクロックサイクル内でアクセスされない場合、前記カウンタを減分するステップと、
    前記カウンタが閾値より大きい場合、前記データバッファの前記内容が高時間的参照局所性を有すると決定するステップと
    さらに含む、請求項1に記載の方法。
  3. 前記カウンタが前記閾値より大きい場合、前記データバッファの割当て解除を防止するステップと、
    前記カウンタが前記閾値を下回る場合、前記キャッシュに前記内容を記憶し前記データバッファを割当て解除するステップと
    をさらに含む、請求項2に記載の方法。
  4. 前記データバッファの前記内容が高時間的参照局所性を有することを前記フラグが示す場合、前記データバッファの割当て解除を防止するステップをさらに含む、請求項1に記載の方法。
  5. 前記スタックポインタが変化すると、前記高時間的参照局所性を示すフラグを除去するステップをさらに含む、請求項1に記載の方法。
  6. 前記フラグが除去されると、前記キャッシュに前記内容を記憶し前記データバッファを割当て解除するステップをさらに含む、請求項5に記載の方法。
  7. 高時間的参照局所性を有するメモリ内容にアクセスするための装置であって、
    データバッファに内容を記憶する手段と、
    スタックポインタを含むレジスタが、前記データバッファに対するロードとストアのための基本レジスタとして使用されると決定する手段と、
    前記データバッファの前記内容が高時間的参照局所性を有することを示すフラグを前記データバッファに設定する手段と、
    前記データバッファの前記内容が高時間的参照局所性を有すると前記フラグが示すとき、前記内容を対象とする動作ごとに、キャッシュの代わりに前記データバッファにアクセスする手段
    を備える装置。
  8. 前記データバッファにおけるカウンタを初期化する手段と、
    前記データバッファが所定の数のクロックサイクル内でアクセスされた場合、前記カウンタを増分する手段と、
    前記データバッファが前記所定の数のクロックサイクル内でアクセスされない場合、前記カウンタを減分する手段と、
    前記カウンタが閾値より大きい場合、前記データバッファの前記内容が高時間的参照局所性を有すると決定する手段
    さらに備える、請求項7に記載の装置。
  9. 前記カウンタが前記閾値より大きい場合、前記データバッファの割当て解除を防止する手段と、
    前記カウンタが前記閾値を下回る場合、前記キャッシュに前記内容を記憶し前記データバッファを割当て解除する手段
    をさらに備える、請求項8に記載の装置。
  10. 前記データバッファが高時間的参照局所性を有することを前記フラグが示す場合、前記データバッファの割当て解除を防止する手段をさらに備える、請求項7に記載の装置。
  11. 前記スタックポインタが変化すると、前記高時間的参照局所性を示すフラグを除去する手段をさらに備える、請求項7に記載の装置。
  12. 前記フラグが除去されると、前記キャッシュに前記内容を記憶し前記データバッファを割当て解除する手段をさらに備える、請求項11に記載の装置。
  13. 請求項1乃至6の何れか1項に記載の方法を実施するための命令を含む、高時間的参照局所性を有するメモリ内容にアクセスするためのコンピュータ可読記憶媒体。
JP2014553535A 2012-01-23 2013-01-23 高時間的参照局所性のデータフィルバッファの排除防止 Expired - Fee Related JP6038955B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261589577P 2012-01-23 2012-01-23
US61/589,577 2012-01-23
US13/451,010 US10114750B2 (en) 2012-01-23 2012-04-19 Preventing the displacement of high temporal locality of reference data fill buffers
US13/451,010 2012-04-19
PCT/US2013/022775 WO2013112607A1 (en) 2012-01-23 2013-01-23 Preventing the displacement of high temporal locality of reference data fill buffers

Publications (3)

Publication Number Publication Date
JP2015508192A JP2015508192A (ja) 2015-03-16
JP2015508192A5 JP2015508192A5 (ja) 2016-02-18
JP6038955B2 true JP6038955B2 (ja) 2016-12-07

Family

ID=48798186

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014553535A Expired - Fee Related JP6038955B2 (ja) 2012-01-23 2013-01-23 高時間的参照局所性のデータフィルバッファの排除防止

Country Status (6)

Country Link
US (1) US10114750B2 (ja)
EP (1) EP2807566A1 (ja)
JP (1) JP6038955B2 (ja)
KR (1) KR20140116943A (ja)
CN (1) CN104067244B (ja)
WO (1) WO2013112607A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9507725B2 (en) * 2012-12-28 2016-11-29 Intel Corporation Store forwarding for data caches
US9946646B2 (en) * 2016-09-06 2018-04-17 Advanced Micro Devices, Inc. Systems and method for delayed cache utilization

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0457403B1 (en) 1990-05-18 1998-01-21 Koninklijke Philips Electronics N.V. Multilevel instruction cache and method for using said cache
EP0496439B1 (en) 1991-01-15 1998-01-21 Koninklijke Philips Electronics N.V. Computer system with multi-buffer data cache and method therefor
US6192449B1 (en) 1996-04-12 2001-02-20 Motorola, Inc. Apparatus and method for optimizing performance of a cache memory in a data processing system
JP2976909B2 (ja) 1996-12-25 1999-11-10 日本電気株式会社 キャッシュ・データの掃き出し制御方法
JPH1145180A (ja) 1997-07-25 1999-02-16 Nec Corp キャッシュ制御方式
DE19961499A1 (de) * 1999-12-20 2001-07-05 Ericsson Telefon Ab L M Caching von Objekten in Platten-gestützten Datenbanken
JP3498673B2 (ja) 2000-04-05 2004-02-16 日本電気株式会社 記憶装置
US20030110357A1 (en) 2001-11-14 2003-06-12 Nguyen Phillip V. Weight based disk cache replacement method
US7278136B2 (en) * 2002-07-09 2007-10-02 University Of Massachusetts Reducing processor energy consumption using compile-time information
US7451271B2 (en) 2004-04-05 2008-11-11 Marvell International Ltd. Physically-tagged cache with virtually-tagged fill buffers
JP2006185335A (ja) 2004-12-28 2006-07-13 Toshiba Corp 情報処理装置及びこの情報処理装置の制御方法
KR101257848B1 (ko) * 2005-07-13 2013-04-24 삼성전자주식회사 복합 메모리를 구비하는 데이터 저장 시스템 및 그 동작방법
DE102006017768A1 (de) * 2006-04-15 2007-10-18 Infineon Technologies Ag Integrierter Speicherbaustein sowie Verfahren zum Betrieb eines integrierten Speicherbausteins
US7757034B1 (en) * 2006-06-29 2010-07-13 Parallels Software International, Inc. Expansion of virtualized physical memory of virtual machine
KR101128234B1 (ko) 2006-08-23 2012-03-23 엘지전자 주식회사 메모리 접근 제어 장치 및 방법
JP5137002B2 (ja) 2007-01-25 2013-02-06 株式会社メガチップス メモリコントローラ
US8726248B2 (en) 2008-06-12 2014-05-13 Oracle America, Inc. Method and apparatus for enregistering memory locations
US8271732B2 (en) 2008-12-04 2012-09-18 Intel Corporation System and method to reduce power consumption by partially disabling cache memory
US8452946B2 (en) 2009-12-17 2013-05-28 Intel Corporation Methods and apparatuses for efficient load processing using buffers
US8402232B2 (en) * 2009-12-23 2013-03-19 Oracle America, Inc. Memory utilization tracking
US9015441B2 (en) * 2010-04-30 2015-04-21 Microsoft Technology Licensing, Llc Memory usage scanning
US20120017039A1 (en) * 2010-07-16 2012-01-19 Plx Technology, Inc. Caching using virtual memory
US8386717B1 (en) * 2010-09-08 2013-02-26 Symantec Corporation Method and apparatus to free up cache memory space with a pseudo least recently used scheme
US8595463B2 (en) * 2010-09-15 2013-11-26 International Business Machines Corporation Memory architecture with policy based data storage
US8990538B2 (en) * 2010-11-05 2015-03-24 Microsoft Corporation Managing memory with limited write cycles in heterogeneous memory systems
CN102073596B (zh) 2011-01-14 2012-07-25 东南大学 针对指令的可重构片上统一存储器管理方法
US8683243B2 (en) * 2011-03-11 2014-03-25 Intel Corporation Dynamic core selection for heterogeneous multi-core systems

Also Published As

Publication number Publication date
EP2807566A1 (en) 2014-12-03
US20130191559A1 (en) 2013-07-25
JP2015508192A (ja) 2015-03-16
WO2013112607A1 (en) 2013-08-01
KR20140116943A (ko) 2014-10-06
CN104067244A (zh) 2014-09-24
US10114750B2 (en) 2018-10-30
CN104067244B (zh) 2017-10-31

Similar Documents

Publication Publication Date Title
US10268600B2 (en) System, apparatus and method for prefetch-aware replacement in a cache memory hierarchy of a processor
KR101361928B1 (ko) 스레드 이송 시의 캐시 프리필링
US10169240B2 (en) Reducing memory access bandwidth based on prediction of memory request size
JP5615361B2 (ja) スレッドシフト:コアへのスレッド割振り
US9015422B2 (en) Access map-pattern match based prefetch unit for a processor
JP5894120B2 (ja) ゼロサイクルロード
CN106598184B (zh) 在处理器中执行跨域热控制
KR101025354B1 (ko) 가상 트랜잭션 메모리를 위한 글로벌 오버플로우 방법
JP5621048B2 (ja) フラッシュ指標を動的に調整可能な結合書き込みバッファ
US10275158B2 (en) Apparatus and method for improving operation speed of application
US9477478B2 (en) Multi level indirect predictor using confidence counter and program counter address filter scheme
CN100422940C (zh) 在数据处理系统中仲裁线程访问共享资源的系统和方法
US7805582B2 (en) Method of managing memory in multiprocessor system on chip
US10331567B1 (en) Prefetch circuit with global quality factor to reduce aggressiveness in low power modes
US10402334B1 (en) Prefetch circuit for a processor with pointer optimization
US10514920B2 (en) Dynamically updating hardware prefetch trait to exclusive or shared at program detection
US20160342514A1 (en) Method for managing a last level cache and apparatus utilizing the same
JP6038955B2 (ja) 高時間的参照局所性のデータフィルバッファの排除防止
KR102351200B1 (ko) 메모리 요청 정보에 기반하여 캐시 메모리의 클럭 속도/전압을 설정하는 장치 및 방법
US9146876B2 (en) Caching method and caching system using dual disks
CN111352757A (zh) 检测未初始化存储器读取的设备、系统和方法
US10877886B2 (en) Storing cache lines in dedicated cache of an idle core
US10642621B2 (en) System, apparatus and method for controlling allocations into a branch prediction circuit of a processor
US11907138B2 (en) Multimedia compressed frame aware cache replacement policy

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151224

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151224

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161102

R150 Certificate of patent or registration of utility model

Ref document number: 6038955

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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