JP7126136B2 - 再構成可能なキャッシュアーキテクチャおよびキャッシュコヒーレンシの方法 - Google Patents

再構成可能なキャッシュアーキテクチャおよびキャッシュコヒーレンシの方法 Download PDF

Info

Publication number
JP7126136B2
JP7126136B2 JP2020529107A JP2020529107A JP7126136B2 JP 7126136 B2 JP7126136 B2 JP 7126136B2 JP 2020529107 A JP2020529107 A JP 2020529107A JP 2020529107 A JP2020529107 A JP 2020529107A JP 7126136 B2 JP7126136 B2 JP 7126136B2
Authority
JP
Japan
Prior art keywords
cache
memory
reconfigurable
bins
memory access
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.)
Active
Application number
JP2020529107A
Other languages
English (en)
Other versions
JP2020530176A (ja
JP2020530176A5 (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.)
Next Silicon Ltd
Original Assignee
Next Silicon Ltd
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 Next Silicon Ltd filed Critical Next Silicon Ltd
Publication of JP2020530176A publication Critical patent/JP2020530176A/ja
Publication of JP2020530176A5 publication Critical patent/JP2020530176A5/ja
Application granted granted Critical
Publication of JP7126136B2 publication Critical patent/JP7126136B2/ja
Active 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/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • 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)
  • Memory System Of A Hierarchy Structure (AREA)

Description

本開示は、全般的には、メモリアーキテクチャに関し、より詳細には、埋め込み型の計算アーキテクチャおよび構成可能な計算アーキテクチャに関する。
(関連出願の相互参照)
本出願は、米国仮特許出願第62/540,854号(出願日:2017年8月3日)の優先権の利益を主張し、この文書の内容は参照により本明細書に組み込まれている。
各プロセッサ用の個別のキャッシュメモリを有する共有メモリ型マルチコアプロセッサにおいては、共有データの多数のコピー(メインメモリ内の1つのコピーと、データのコピーを要求した各プロセッサのローカルキャッシュ内の1つのコピー)を有することが可能である。データのコピーの1つが変更されると、他のコピーもその変更を反映しなければならない。
キャッシュコヒーレンス(Cache coherence)とは、複数のローカルキャッシュを必要とする共有リソースデータの一貫性(uniformity)である。システム内のクライアント(例:プロセッサコア)が共通メモリリソースのローカルキャッシュを維持するときには、一貫性のない(incoherent)データ(例:複数のローカルキャッシュが、1つのアドレス位置の複数の異なる値を有する)という問題が生じうる。
図1には、キャッシュコヒーレンスを実装するための、例としての従来のアーキテクチャ100を示してある。各プロセッサコア110-1~110-M(以下では簡潔さを目的として、個々をプロセッサコア110と称し、いくつかを一括して1つ以上のプロセッサコア110と称する)には、対応するローカルキャッシュ120-1~120-M(以下では簡潔さを目的として、個々をローカルキャッシュ120と称し、いくつかを一括して1つ以上のローカルキャッシュ120と称する)が関連付けられている。すべてのコアプロセッサ110およびそれぞれの対応するローカルキャッシュ120が、共有メモリ130にアクセスする。
メモリ130が複数のプロセッサコア110(およびそれぞれのローカルキャッシュ120)によって共有されているとき、プロセッサコア(例:コア110-1)は、共有メモリ130にアクセスするとき、一般には、データアクセスを加速させる目的で、共有メモリ130からのデータブロックを自身のキャッシュ(例:キャッシュ120-1)にコピーする必要がある。複数のプロセッサコア110が共有メモリ130にアクセスするとき、すべてのこのようなプロセッサコア110のローカルキャッシュ120内に、共有メモリ130内のデータブロックのコピーが存在する。コピーのコヒーレンス(一貫性)を維持するためには、キャッシュコヒーレンスメカニズム(CCM)125がデータの共有を管理する必要がある。
具体的には、共有データブロック、または共有データブロックのコピーに対して書き込み(またはストア)動作を実行するときには、データの非一貫性の問題を回避する目的で、共有データブロックのコピーを格納するプロセッサコア110にライトインバリデート動作(write invalidate operation)が送られる。キャッシュコヒーレンスを維持するため、メカニズム125は、データブロック(またはデータブロック区間(data block interval))のキャッシュステータスを記録する。データブロック(またはデータブロック区間)のキャッシュステータスは、データブロック(またはデータブロック区間)のアクセスタイプおよび共有エンティティ(sharer:シェア)を含むことができる。
従来のアーキテクチャにおいて利用されるキャッシュコヒーレンスメカニズム125は、パイプライン方式で動作する。したがって、処理時間の大部分が、メモリ130の1つの領域から(1つまたは複数の)ローカルキャッシュ120へのデータの移動と、1つのローカルキャッシュ120から別のローカルキャッシュ120へのデータの移動とに消費される。これに加えて、図1に示したキャッシングの従来のアーキテクチャは、本質的に静的であり、したがってある程度の非効率性が生じ、なぜなら静的なパイプライン動作は必ずしもあらゆるユースケースに適合しないためである。
共有メモリリソースの制約は、再構成可能なキャッシュアーキテクチャを使用して解決することもできる。このようなアーキテクチャは、一般に、ハードウェアレベルにおけるキャッシュの動的なパーティショニング(partitioning)をサポートする。再構成可能なキャッシュアーキテクチャは、一般には、コアプロセッサがキャッシュリソースを動的に割り当てることができる一方で、リアルタイムタスクの間で厳密なキャッシュ分離が保証されるように設計されている。
再構成可能なキャッシュアーキテクチャは、アドレッシングの直接的なマッピングを使用することによる電力低減を主として目標としている。しかしながら、このようなアーキテクチャでは、メモリアクセスのレイテンシが改善されない。
したがって、上述した欠陥を克服する処理アーキテクチャを提供することは有利であろう。
以下では、いくつかの例としての実施形態の要約を開示する。この要約は、そのような実施形態を読み手が基本的に理解できるように便宜的に提供されるものであり、本開示の範囲を完全に定義するものではない。この要約は、考えられるあらゆる実施形態の広範な概要ではなく、すべての実施形態の主要または重要な要素を識別することも、いずれかの態様またはすべての態様の範囲を示すことも意図していない。その唯一の目的は、1つまたは複数の実施形態のいくつかのコンセプトを、後から提示するさらに詳細な説明の導入部として簡略的な形で提示することである。本明細書では、本開示の1つの実施形態または複数の実施形態を指す目的で、便宜上、語「いくつかの実施形態」を使用することがある。
本明細書に開示されているいくつかの実施形態は、再構成可能なキャッシュアーキテクチャにおけるキャッシュコヒーレンシの方法を含む。本方法は、メモリアクセス命令を受信するステップであって、メモリアクセス命令が、アクセスするメモリのアドレスを少なくとも含む、ステップと、メモリアクセス命令に基づいて少なくとも1つのアクセスパラメータを求めるステップと、メモリアクセス命令に応じるための対象のキャッシュビン(cache bin)を、少なくとも1つのアクセスパラメータおよびアドレスに部分的に基づいて決定するステップと、を含む。
本明細書に開示されているいくつかの実施形態は、再構成可能なキャッシュアーキテクチャであって、メモリと、メモリに結合されている複数のキャッシュノードであって、各キャッシュノードが複数のキャッシュビンにパーティション化されており、複数のキャッシュビンのうちのいずれかのキャッシュビンへのアクセスがアクセスパラメータに基づいて決定される、複数のキャッシュノードと、を備えている、再構成可能なキャッシュアーキテクチャ、を含む。
本明細書に開示されている主題は、本明細書の最後における請求項に具体的に示され、明確に特許請求されている。本発明の上記およびそれ以外の目的、特徴、および利点は、添付の図面を参照しながら行われる以下の詳細な説明から明らかであろう。
従来のキャッシュコヒーレンスメカニズムを実例で示す概略図である。 一実施形態に係る再構成可能なシステムアーキテクチャの概略図である。 一実施形態に係る再構成可能なキャッシュアーキテクチャの概略図である。 一実施形態に係る再構成可能なキャッシュアーキテクチャの概略図である。 一実施形態に係る再構成可能なキャッシュアーキテクチャの概略図である。 一実施形態に係る再構成可能なキャッシュアーキテクチャに結合されているI/O周辺装置の概略図である。 一実施形態に係る、再構成可能なキャッシュにおけるキャッシュコヒーレンシの方法を示している流れ図である。
本出願の明細書の中で行われている記述は、一般的に、特許請求されるさまざまな実施形態のいずれも必ずしも制限しない。さらに、いくつかの記述は、いくつかの独創的な特徴にあてはまるが、それ以外の特徴にはあてはまらないことがある。一般には、特に明記しない限り、一般性を失うことなく、単数形の要素は複数でもよく、逆も同様である。図面においては、類似する数字は、いくつかの図を通じて類似する部分を指している。
図2は、一実施形態による再構成可能なキャッシュの動作を実例で示す、処理アーキテクチャ200の例としての概略図を示している。
一実施形態においては、処理アーキテクチャ200は、インタフェースまたはバス240を介してメモリ220に結合されている処理回路210を含む。特殊な機能、外部要素へのアクセス、または両方を可能にするため、入力/出力(IO)および周辺装置230もインタフェースまたはバス240に結合されている。I/Oおよび周辺装置230は、周辺機器相互接続(PCI:peripheral component interconnect)バスまたはPCI Express(PCIe)バス、コプロセッサ、ネットワークコントローラなど(図示していない)をインタフェース接続することができる。なお、PCIeバスは、別の周辺装置との接続性を可能にすることを理解されたい。
メモリ220は、複数のキャッシュノード225-1~225-n(以下では簡潔さを目的として、個々をキャッシュノードと称し、いくつかを一括して1つ以上のキャッシュノードと称する)に結合されている。各キャッシュノード225は、処理回路210によって処理されるデータを格納するようにと、処理回路210にデータをロードするように構成されている。キャッシュノード225へのアクセスは、一般に、メモリアクセス命令(ストア(または書き込み(write:ライト))、ロード(または読み取り(read:リード))など)を通じて実行される。各キャッシュノード225は、高速スタティックRAM(SRAM)、ダイナミックRAM(DRAM)などを使用して実施することができる。一実施形態においては、後から詳しく説明するように、各キャッシュノード225を複数のキャッシュビン(図2には示していない)に論理的にパーティション化することができる。
処理回路210は、任意の処理装置または計算装置、例えば、中央処理装置(CPU)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィック処理装置(GPU)、粗粒度再構成可能アーキテクチャ(CGRA)、特定用途向け集積回路(ASIC)、量子コンピュータなど(ただしこれらに限定されない)とすることができる。処理回路210は、一般にはマルチコアプロセッサである。なお、処理アーキテクチャ200は、複数の処理装置210(例:複数のCPU、ハイブリッドCPU(hybrid CPU)など)をさらにサポートできることに留意されたい。
一実施形態においては、処理回路210は、再構成可能な処理アーキテクチャとして実施することができる。このようなアーキテクチャは、論理素子のアレイおよびマルチプレクサ(MUX)として実施することができる。論理素子は、演算論理装置(ALU)、および計算機能を実行するように構成されている機能ユニット(FU)を含むことができる。
処理回路210は、キャッシュ225-1~225-nの間でキャッシュコヒーレンシを維持する構成可能なキャッシュアーキテクチャを提供するためのさまざまなプロセスを実行するように構成されている。したがって、構成可能なキャッシュアーキテクチャは、何らの追加の専用ハードウェアなしに使用可能になる。構成可能なキャッシュを提供する処理回路210は、処理アーキテクチャ200のために設計されているメインプログラムをさらに実行する。例えば、処理回路210は、計算的機械学習プロセスを実行することができ、キャッシュコヒーレンシを維持することができる。
なお、専用のハードウェアを使用することなく、処理アーキテクチャ200によって、低レイテンシのキャッシュアクセスおよび低い電力使用率が確保されることを理解されたい。したがって、本明細書に開示されている再構成可能なキャッシュアーキテクチャを利用して、処理回路210(例:CPU、FPGA、GPU、ASICなど)の動作を加速させることができる。
開示されている実施形態によれば、ノードおよびそのキャッシュビンのいずれかにおけるデータの位置を、少なくとも1つのアクセスパラメータを通じて計算される確定関数を使用して求めることによって、キャッシュコヒーレンシが達成される。アクセスパラメータは、処理回路210によって求められる。アクセスパラメータは、例えば、物理エンティティを表す単一の識別情報(ID)および論理エンティティを表す単一の識別情報(ID)の少なくとも一方を含むことができる。このようなエンティティの例としては、プロセスID、スレッドID、コアID、キャッシュビット、ソース命令点(source instruction point)、メモリポートID、メモリアクセスアドレス、またはこれらの組合せ、が挙げられる。アクセスパラメータのタイプを、アクセスされるメモリのタイプに基づいて割り当てることができる。例えば、共有メモリのビンには、例えば少なくとも1つのキャッシュビットを通じてアクセスすることができ、ローカルメモリのビンには、少なくとも1つのプロセスIDを通じてアクセスすることができる。アクセスパラメータのタイプは、コンパイル時または実行時に判定することができる。
一実施形態においては、処理回路210は、メモリアクセス命令を受信し、アクセスパラメータを求め、アクセスパラメータと、メモリアクセス命令内で指定されるアドレスとに基づいて対象のキャッシュビンを決定するように、構成されている。非限定的な例として、キャッシュノード225のどのキャッシュビンがデータを保持するかを決定するため、確定関数(例:ハッシュ関数)、三値連想メモリ(TCAM:ternary content-addressable memory)の合致規則のセット、これらの組合せなどがアドレスを通じて計算され、アクセスパラメータが呼び出される。
例えば、処理回路210において、I/Oおよび周辺装置230を通じてストア命令が受信されることがある。このような命令は、データブロックと、そのデータブロックを保存するメモリのアドレスとを含むことができる。処理回路210は、命令が例えば特定のプロセスに関連付けられているかを判定するように構成されている。関連付けられている場合、そのプロセスのプロセスIDがアクセスパラメータとして使用される。アドレスおよびプロセスID(アクセスパラメータの役割を果たす)を通じて計算される関数を使用して、データブロックを格納するための対象のキャッシュビンを決定する。なお、スレッドID、コアID、キャッシュビットなどもアクセスパラメータとして使用できることに留意されたい。例えば、受信されたストア命令が特定のスレッドに関連付けられている場合、スレッドIDが使用される。
なお、上に説明したシステムアーキテクチャ200では、簡潔さのため1つの計算装置を描いてあるが、アーキテクチャ200は、複数の計算装置(例:複数のCPU、複数のGPU、これらの組合せなど)を使用して等しく実施できることを理解されたい。
一実施形態においては、処理回路210は、どのキャッシュノード225をパーティション化するべきかを決定するように構成されており、各ノード225をパーティション化するようにさらに構成されている。すなわち処理回路210は、キャッシュノード225をいくつのビンにパーティション化するかと、各パーティションのサイズとを決定するように構成されている。一実施形態においては、パーティショニングを静的とする(例:等しいサイズを有する事前定義された数のビンにパーティション化する)ことができる。別の実施形態においてはパーティション化を動的とすることができ、この場合、割当ては各キャッシュビンの使用率に基づく。この目的のため、実行の各反復の後、各ビンの使用率を測定し、測定された使用率に基づいて、そのビンの割当てを修正するべきかを判定する。なお測定は、プログラムの終了後、または実行中に行うことができることに留意されたい。例えば、使用頻度の高いビンのサイズを増大させることができ、一方で、使用頻度の低いビンのサイズを低減することができる。さらにはビンの数を、測定された使用率に基づいて増やす、または減らすことができる。
特定の実施形態においては、いくつかのキャッシュノード225を静的にパーティション化することができ、一方で、それ以外のキャッシュノード225を動的にパーティション化することができる。なお、最初はキャッシュを静的にパーティション化し、プログラムが実行されるにつれてビンの割当てを動的に修正してもよいことに留意されたい。
一実施形態においては、キャッシュアドレスが複数のキャッシュビンの間でパーティション化される。キャッシュノード225の各キャッシュパーティションに異なる論理エンティティまたは物理エンティティを割り当てることができる。例えば、キャッシュノード225-1を2つのキャッシュビンにパーティション化することができ、一方のキャッシュビンがプログラムの第1のプロセス専用であり、他方のキャッシュビンが第2のプロセス専用である。これに代えて、キャッシュビンを、処理回路210のプロセッサコアに割り当てることができる。キャッシュビンを割り当てることのできるエンティティの別の例としては、スレッドが挙げられる。ビンへのキャッシュノードのパーティション化は、図3にさらに図解してある。
なお、上に挙げたエンティティは説明を目的としているにすぎず、キャッシュビンに割り当てることのできる多数のタイプの論理エンティティおよび物理エンティティすべてを網羅してはいないことを理解されたい。さらには、キャッシュビンはキャッシュノードの任意の部分でよいことを理解されたい。
図3A~図3Cは、一実施形態に係る再構成可能なキャッシュアーキテクチャ300の、例としての概略図を示している。図3A~図3Cに示した例においては、1つのキャッシュノード225-nが、複数のビン310に動的にパーティション化されるものとして示してある。
具体的には、図3Aに示したように、キャッシュノード225-nは、最初に、同程度のサイズを有する4つのキャッシュビン310-1,310-2,310-3,310-4にパーティション化される。実行の最初の反復後、実行中または実行間に、ノード225-nのパーティション化が、同程度のサイズを有する8つのキャッシュビン310-1~310-8を含むように変更される(図3B)。実行がもう一度反復された後、実行中または実行間に、ノード225-nのパーティション化が、複数の異なるサイズを有する8つのビン310-1~310-8を含むように変更される。図3Cに示したように、ビン310-1に割り当てられるメモリは、310-8に割り当てられるメモリとは異なる。
一実施形態によれば、キャッシュアーキテクチャ300を、複数の物理ノードに分散させることができ、この場合、各ノードが1つまたは複数の論理ビンにさらにパーティション化される。各物理ノードの処理回路は、キャッシュノードのすべてまたは一部にアクセスすることができる。
図3A~図3Cに示したように、確定ハッシュ関数225(deterministic hash function)を利用して対象のキャッシュを決定する。関数325は、処理回路210によって計算される。再構成可能なキャッシュアーキテクチャ300は、メモリを細かい粒度で使用することを可能にし、したがってシステムの動作を向上させ、実行時の性能を改善することを理解されたい。
さらには、再構成可能なキャッシュアーキテクチャ300には、単に簡潔さを目的として、1つのキャッシュノード225-nと、4つまたは8つのビン310を描いてあることを理解されたい。一般には、アーキテクチャ300は、任意の数のキャッシュビンにパーティション化することのできる複数のキャッシュノードを含む。
一実施形態においては、メモリキャッシュビン310は、アトミックメモリアクセス命令(atomic memory access command)を実行することができる。このような命令は、1つの動作として、ある位置におけるメモリの値をロードし、条件付で修正し、その後に格納することができる。なお、複数のメモリポートからの複数のアトミックアクセス命令が並列に実行されて、キャッシュビンにおいて順次実行されるときには、これらの命令の結果として、すべてのメモリポートにおいて一貫性が維持されることを理解されたい。
図4は、一実施形態に係る、I/O周辺装置(I/O P)410に結合されている再構成可能なキャッシュアーキテクチャ400の、例としての概略図を示している。この構成においては、入力/出力(IO)および周辺装置410-1~410-k(kは1以上の整数)は、PCIバス、PCI Express(PCIe)、1つまたは複数のコプロセッサ、1つまたは複数のネットワークコントローラなどを含むことができる。
この図に示したように、メモリアクセス命令がI/O周辺装置410によって発行される。処理回路210は、確定ハッシュ関数425を使用して、受信した命令にある程度基づいて対象のキャッシュビンを決定する。
この構成においては、対象のキャッシュビンから受け取るデータまたは制御信号(例:ACK信号)が、受信した命令を発行したI/O周辺装置410にマッピングされる。マッピングはマッピング関数427によって実行され、マッピング関数427は、確定ハッシュ関数として、または三値連想メモリ(TCAM)の合致規則のセットとして、またはこれらの組合せなどとして、実施することができる。なお、メモリアクセスは、メモリ操作を実行する目的で、ローカルキャッシュ120に向けられることに留意されたい。
図5は、一実施形態に係る、再構成可能なキャッシュアーキテクチャにおけるキャッシュコヒーレンシの方法の、例としての流れ図500を示している。再構成可能なキャッシュアーキテクチャは、メモリに結合されている複数のキャッシュノードを含み、各キャッシュノードが複数のキャッシュビンにパーティション化されている。
S510においては、メモリアクセス命令を受信する。上述したように、この命令は、処理アーキテクチャのメモリにデータを格納する(書き込む)命令、または処理アーキテクチャのメモリからデータをロードする(読み取る)命令とすることができる。命令は、例えばI/O周辺装置230などのインタフェースを介して受信することができる。受信される命令は、少なくとも、データが格納される先、またはデータをロードする元の対象のアドレスを含む。ストア命令では、格納されるデータも、受信される命令に含まれる。メモリアドレスは、メインプログラムのコードのコンパイル時に決定されるアドレス境界の範囲内であるべきである。
S520においては、少なくとも1つのアクセスパラメータを求める。アクセスパラメータは、前に述べたように、プロセスID、スレッドID、キャッシュビット、格納ポインタ、プロセスコアIDなどを含むことができる。一実施形態においては、求めるステップは、受信した命令が関連付けられる論理エンティティまたは物理エンティティを求めるステップを含む。物理エンティティの例は、前に詳しく説明してある。
一実施形態においては、受信した命令が、専用プロセスまたは専用スレッド(いずれも論理エンティティとみなす)の一部として実行される場合、プロセスIDまたはスレッドIDがアクセスパラメータとみなされる。別の実施形態においては、受信した命令が、専用の処理コア(物理エンティティとみなす)上で実行される場合、コアIDがアクセスパラメータとみなされる。さらに別の実施形態においては、受信した命令が、共有メモリ(物理エンティティとみなす)にアクセスする命令である場合、キャッシュビットがアクセスパラメータとみなされる。
いくつかの実施形態においては、ロード/ストアの属性を求める。このような属性としては、例えば、特定の値をキャッシュしない、特定の値を常にキャッシュする、特定の値を常にチェックするなどが挙げられる。さらには、割当ての順序付けと、グリッドにおけるアクセスの同期によって、より大きいパイプラインおよびより高いスループットが可能になり、その一方でメカニズムが単純化される。このような属性は、揮発性メモリの場合、およびロッキングメカニズム(locking mechanism)の場合に有利である。
S530においては、アクセスする対象のキャッシュビンを決定する。一実施形態においては、この決定は、アクセスパラメータと、受信した要求に指定されているアドレスを通じて計算される確定関数を使用して実行される。別の実施形態においては、同じインタフェースを使用して決定が行われるように、確定関数がグリッドに関連付けられる。
なお、データは、確定関数によって決定される対象のキャッシュビンに格納される、または対象のキャッシュビンからロードされることに留意されたい。
一実施形態においては、S530は、アクセスされる対象のキャッシュビンに関する統計情報を集めるステップを含む。例えば、ビンの数、同じビンにアクセスする頻度、書き込まれるデータまたは読み取られるデータのサイズ、を求める。これらの集められた統計情報を利用して、ビンのパーティションを動的に変更することができる。
S540においては、さらなるシステムコールが受信されているかをチェックし、受信されている場合、実行はS510に続き、そうでない場合、実行は終了する。
本明細書に開示されている実施形態は、ハードウェア、ファームウェア、ソフトウェア、またはこれらの任意の組合せとして実施することができる。任意の適切なアーキテクチャを備えたマシンに、アプリケーションプログラムをアップロードして実行することができる。マシンは、1つまたは複数の中央処理装置(「CPU」)、メモリ、および入力/出力インタフェースなどのハードウェアを有するコンピュータプラットフォーム上に実施されることが好ましい。
コンピュータプラットフォームは、オペレーティングシステムおよびマイクロ命令コードをさらに含むことができる。本明細書に記載されているさまざまなプロセスおよび関数は、CPU(そのようなコンピュータまたはプロセッサが明示的に示されているか否かを問わない)によって実行することのできるマイクロ命令コードの一部またはアプリケーションプログラムの一部のいずれか、またはこれらの任意の組合せとすることができる。
これに加えて、コンピュータプラットフォームには、追加のデータ記憶装置など、さまざまな他の周辺装置を接続することができる。さらに、非一時的なコンピュータ可読媒体は、一時的な伝搬信号を除く任意のコンピュータ可読媒体である。
本明細書に記載されているすべての例、および条件を表す語(conditional language)は、この技術分野を発展させるために本発明者によって提供される本開示およびコンセプトの原理を読み手が理解できるように支援するための教示目的を意図しており、そのような具体的に記載されている例および条件に限定されないものと解釈されたい。

Claims (13)

  1. 再構成可能なキャッシュアーキテクチャ(300)におけるキャッシュコヒーレンシの方法であって、
    メモリアクセス命令を受信するステップ(S510)であって、前記メモリアクセス命令が、アクセスするメモリ(220)のアドレスを少なくとも含む、ステップと、
    前記メモリアクセス命令に基づいて少なくとも1つのアクセスパラメータを求めるステップ(S520)と、
    前記メモリアクセス命令に応じるための対象のキャッシュビンを、前記少なくとも1つのアクセスパラメータおよび前記アドレスに部分的に基づいて決定するステップ(S530)と、
    を含
    前記再構成可能なキャッシュアーキテクチャは、複数の個別の物理キャッシュノード(225-1…225-n)に分配されており、実質的に独立して動作し、前記メモリに電気的に結合されており、各キャッシュノードは、複数のキャッシュビン(310-1…310-8)にパーティション化でき、前記対象のキャッシュビンは、前記複数のキャッシュビンの1つであり、前記複数のキャッシュノードの少なくとも2つ以内の前記複数のキャッシュビンのパーティショニングは、再構成可能であり、
    前記メモリアクセス命令は、
    処理コア、および前記メモリの共有部分で構成されるグループから選択される、物理エンティティと、
    プロセスとスレッドから構成されるグループから選択される、論理エンティティと
    のいずれか一方の単一の識別情報を含み、
    前記少なくとも1つのアクセスパラメータが、プロセスID、処理コアID、スレッドID、またはキャッシュビット、の少なくとも1つを含み、
    前記少なくとも1つのアクセスパラメータを決定することが、さらに、
    前記メモリアクセス命令が論理エンティティに関連して決定されるように、前記アクセスパラメータを論理エンティティ識別情報として設定し、
    前記メモリアクセス命令が物理エンティティに関連して決定されるように、前記アクセスパラメータを物理エンティティ識別情報として設定する、
    方法。
  2. 前記対象のキャッシュビンが、少なくとも1つのキャッシュノードの少なくとも一部分である、請求項1に記載の方法。
  3. 各キャッシュビンが、前記複数のキャッシュノードのうちのそれぞれのキャッシュノードに含まれている、請求項に記載の方法。
  4. 各キャッシュノードを、前記キャッシュノードのそれぞれの複数のキャッシュビンの使用率に基づいて、少なくとも2つのキャッシュビンに動的にパーティション化するステップ、
    をさらに含む、請求項に記載の方法。
  5. 最初に各キャッシュノードを所定の数のキャッシュビン(310-1、310-2、310-3、310-4)にパーティション化するステップと、
    各キャッシュビンの使用に関する統計情報を集めるステップと、
    前記集められた統計情報に基づいて、各キャッシュノードの前記最初のパーティショニング(310-1…310-8)を再構成するステップと、
    をさらに含む、請求項に記載の方法。
  6. 各キャッシュノードの前記パーティショニングを再構成する前記ステップが、複数の実行の反復の実行の各反復の後に行われる、請求項に記載の方法。
  7. 前記キャッシュビン(310-8)の少なくとも1つに、より多くのキャッシュ記憶域を動的に割り当てるステップ、
    をさらに含む、請求項に記載の方法。
  8. 少なくとも1つのキャッシュ属性を求めるステップであって、前記少なくとも1つのキャッシュ属性が、特定の値をキャッシュしない、特定の値を常にキャッシュする、および特定の値を常にチェックする、の少なくとも1つを含む、ステップ、
    をさらに含む、請求項に記載の方法。
  9. 前記メモリアクセス命令に応じるための前記対象のキャッシュビンを決定する前記ステップが、
    前記少なくとも1つのアクセスパラメータおよび前記アドレスを通じて確定関数を計算するステップ、
    をさらに含む、請求項1に記載の方法。
  10. 前記再構成可能なキャッシュアーキテクチャが、処理回路(210)によるプログラムの実行を加速させるために利用される、請求項1に記載の方法。
  11. 前記処理回路が、
    中央処理装置、フィールドプログラマブルゲートアレイ、グラフィック処理装置、粗粒度再構成可能アーキテクチャ、特定用途向け集積回路、マルチコアプロセッサ、および量子コンピュータ、
    のいずれか1つである、
    請求項10に記載の方法。
  12. 命令を格納している非一時的なコンピュータ可読媒体であって、前記命令が、少なくとも1つの処理回路に実行されたとときに、前記少なくとも1つの処理回路に請求項1に記載の前記方法を実行させる、
    非一時的なコンピュータ可読媒体。
  13. ソフトウェアプログラムを実行するシステムであって、
    処理回路と、
    前記処理回路に接続された再構成可能なキャッシュと、
    を備え、
    前記再構成可能なキャッシュ
    メモリと、
    複数の個別の物理キャッシュノードであって、実質的に独立して動作し、前記メモリに結合されており、各キャッシュノードが複数のキャッシュビンにパーティション化されており、前記複数のキャッシュビンのうちのいずれかのキャッシュビンへのアクセスがアクセスパラメータに基づいて決定される、前記複数のキャッシュノードと、
    含み
    前記複数のキャッシュノードの少なくとも2つ内の前記複数のキャッシュビンのパーティショニングは、再構成可能であり、
    前記処理回路は、再構成可能なキャッシュアーキテクチャ中のキャッシュコヒーレンシにために適合され、
    前記処理回路は、
    メモリアクセス命令を受信し、前記メモリアクセス命令は、アクセスされるメモリの少なくともアドレスを含み、
    前記メモリアクセス命令に基づいて、少なくとも1つのアクセスパラメータを決定し、
    前記少なくとも1つのアクセスパラメータと前記アドレスとの一部に基づいて、前記メモリアクセス命令に応じるための対象キャッシュビンを決定し、
    前記メモリアクセス命令は、
    処理コア、および前記メモリの共有部分で構成されるグループから選択される、物理エンティティと、
    プロセスおよびスレッドから構成されるグループから選択される、論理エンティティと
    のいずれか一方の単一の識別情報を含み、
    前記少なくとも1つのアクセスパラメータが、プロセスID、処理コアID、スレッドID、およびキャッシュビット、の少なくとも1つを含み、
    前記少なくとも1つのアクセスパラメータを決定することが、さらに、
    前記メモリアクセス命令が論理エンティティに関連して決定されるように、前記アクセスパラメータを論理エンティティ識別情報として設定し、
    前記メモリアクセス命令が物理エンティティに関連して決定されるように、前記アクセスパラメータを物理エンティティ識別情報として設定する、
    再構成可能なキャッシュアーキテクチャ。
JP2020529107A 2017-08-03 2018-08-03 再構成可能なキャッシュアーキテクチャおよびキャッシュコヒーレンシの方法 Active JP7126136B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762540854P 2017-08-03 2017-08-03
US62/540,854 2017-08-03
PCT/US2018/045131 WO2019028327A1 (en) 2017-08-03 2018-08-03 RECONFIGURABLE CACHE ARCHITECTURE AND CACHED MEMORY COHERENCE METHODS

Publications (3)

Publication Number Publication Date
JP2020530176A JP2020530176A (ja) 2020-10-15
JP2020530176A5 JP2020530176A5 (ja) 2021-09-09
JP7126136B2 true JP7126136B2 (ja) 2022-08-26

Family

ID=65231030

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020529107A Active JP7126136B2 (ja) 2017-08-03 2018-08-03 再構成可能なキャッシュアーキテクチャおよびキャッシュコヒーレンシの方法

Country Status (8)

Country Link
US (3) US11176041B2 (ja)
EP (2) EP4209914A1 (ja)
JP (1) JP7126136B2 (ja)
KR (1) KR20200049775A (ja)
CN (2) CN111164580B (ja)
ES (1) ES2950681T3 (ja)
SG (1) SG11202000763TA (ja)
WO (1) WO2019028327A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019028327A1 (en) 2017-08-03 2019-02-07 Next Silicon, Ltd. RECONFIGURABLE CACHE ARCHITECTURE AND CACHED MEMORY COHERENCE METHODS
US10402091B1 (en) * 2018-04-30 2019-09-03 EMC IP Holding Company LLC Managing data in log-structured storage systems
US11216377B2 (en) 2019-12-18 2022-01-04 Nxp Usa, Inc. Hardware accelerator automatic detection of software process migration
CN112306500B (zh) * 2020-11-30 2022-06-07 上海交通大学 一种针对粗粒度可重构结构的降低多类访存冲突编译方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016010705A1 (en) 2014-07-17 2016-01-21 Qualcomm Incorporated Method and apparatus for a shared cache with dynamic partitioning
US20160103767A1 (en) 2014-10-09 2016-04-14 Netapp, Inc. Methods and systems for dynamic hashing in caching sub-systems
US20170091111A1 (en) 2015-09-30 2017-03-30 International Business Machines Corporation Configurable cache architecture

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5321806A (en) 1991-08-21 1994-06-14 Digital Equipment Corporation Method and apparatus for transmitting graphics command in a computer graphics system
US5367653A (en) 1991-12-26 1994-11-22 International Business Machines Corporation Reconfigurable multi-way associative cache memory
US6219745B1 (en) * 1998-04-15 2001-04-17 Advanced Micro Devices, Inc. System and method for entering a stream read buffer mode to store non-cacheable or block data
US6370619B1 (en) * 1998-06-22 2002-04-09 Oracle Corporation Managing partitioned cache
US6493800B1 (en) 1999-03-31 2002-12-10 International Business Machines Corporation Method and system for dynamically partitioning a shared cache
US6347346B1 (en) 1999-06-30 2002-02-12 Chameleon Systems, Inc. Local memory unit system with global access for use on reconfigurable chips
US7028299B1 (en) * 2000-06-30 2006-04-11 Intel Corporation Task-based multiprocessing system
US6636946B2 (en) * 2001-03-13 2003-10-21 Micron Technology, Inc. System and method for caching data based on identity of requestor
US6848026B2 (en) * 2001-11-09 2005-01-25 International Business Machines Corporation Caching memory contents into cache partitions based on memory locations
US7043610B2 (en) * 2002-08-19 2006-05-09 Aristos Logic Corporation System and method for maintaining cache coherency without external controller intervention
US7269174B2 (en) 2003-03-28 2007-09-11 Modular Mining Systems, Inc. Dynamic wireless network
US7120651B2 (en) * 2003-08-01 2006-10-10 Oracle International Corporation Maintaining a shared cache that has partitions allocated among multiple nodes and a data-to-partition mapping
US20060236074A1 (en) * 2005-04-14 2006-10-19 Arm Limited Indicating storage locations within caches
US7478210B2 (en) * 2006-06-09 2009-01-13 Intel Corporation Memory reclamation with optimistic concurrency
US8156307B2 (en) 2007-08-20 2012-04-10 Convey Computer Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set
US8176256B2 (en) * 2008-06-12 2012-05-08 Microsoft Corporation Cache regions
JP5294304B2 (ja) 2008-06-18 2013-09-18 日本電気株式会社 再構成可能電子回路装置
US20110099562A1 (en) 2008-07-01 2011-04-28 Morphing Machines Pvt Ltd Method and System on Chip (SoC) for Adapting a Reconfigurable Hardware for an Application at Runtime
US8230176B2 (en) * 2009-06-26 2012-07-24 International Business Machines Corporation Reconfigurable cache
KR101076869B1 (ko) 2010-03-16 2011-10-25 광운대학교 산학협력단 코어스 그레인 재구성 어레이에서의 메모리 중심 통신 장치
US8621151B2 (en) 2010-11-23 2013-12-31 IP Cube Partners (IPC) Co., Ltd. Active memory processor system
US8504778B2 (en) 2010-11-24 2013-08-06 IP Cube Partners (ICP) Co., Ltd. Multi-core active memory processor system
US8589628B2 (en) 2010-11-29 2013-11-19 IP Cube Partners (ICP) Co., Ltd. Hybrid active memory processor system
US20120151232A1 (en) * 2010-12-12 2012-06-14 Fish Iii Russell Hamilton CPU in Memory Cache Architecture
US8856455B2 (en) * 2012-03-28 2014-10-07 International Business Machines Corporation Data cache block deallocate requests
US8874852B2 (en) * 2012-03-28 2014-10-28 International Business Machines Corporation Data cache block deallocate requests in a multi-level cache hierarchy
US8767501B2 (en) 2012-07-17 2014-07-01 International Business Machines Corporation Self-reconfigurable address decoder for associative index extended caches
US9135156B2 (en) * 2012-10-29 2015-09-15 Broadcom Corporation Dynamically configurable memory
WO2015016882A1 (en) * 2013-07-31 2015-02-05 Intel Corporation A method, apparatus and system for performing management component transport protocol (mctp) communications with a universal serial bus (usb) device
US9460012B2 (en) 2014-02-18 2016-10-04 National University Of Singapore Fusible and reconfigurable cache architecture
US9852071B2 (en) * 2014-10-20 2017-12-26 International Business Machines Corporation Granting exclusive cache access using locality cache coherency state
US9727239B2 (en) * 2014-11-13 2017-08-08 Samsung Electronics Co., Ltd. Electronic system with partitioning mechanism and method of operation thereof
US10061511B2 (en) 2015-09-23 2018-08-28 Hanan Potash Computing device with frames/bins structure, mentor layer and plural operand processing
US9734070B2 (en) * 2015-10-23 2017-08-15 Qualcomm Incorporated System and method for a shared cache with adaptive partitioning
WO2019028327A1 (en) 2017-08-03 2019-02-07 Next Silicon, Ltd. RECONFIGURABLE CACHE ARCHITECTURE AND CACHED MEMORY COHERENCE METHODS

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016010705A1 (en) 2014-07-17 2016-01-21 Qualcomm Incorporated Method and apparatus for a shared cache with dynamic partitioning
JP2017527883A (ja) 2014-07-17 2017-09-21 クアルコム,インコーポレイテッド 動的パーティショニングを用いる共有されるキャッシュのための方法および装置
US20160103767A1 (en) 2014-10-09 2016-04-14 Netapp, Inc. Methods and systems for dynamic hashing in caching sub-systems
US20170091111A1 (en) 2015-09-30 2017-03-30 International Business Machines Corporation Configurable cache architecture

Also Published As

Publication number Publication date
US20220100660A1 (en) 2022-03-31
CN117271392A (zh) 2023-12-22
EP3662376A1 (en) 2020-06-10
EP3662376B1 (en) 2023-04-05
JP2020530176A (ja) 2020-10-15
US11176041B2 (en) 2021-11-16
US20190042427A1 (en) 2019-02-07
SG11202000763TA (en) 2020-02-27
WO2019028327A1 (en) 2019-02-07
ES2950681T3 (es) 2023-10-11
CN111164580B (zh) 2023-10-31
EP4209914A1 (en) 2023-07-12
EP3662376A4 (en) 2021-04-07
CN111164580A (zh) 2020-05-15
KR20200049775A (ko) 2020-05-08
US20230376419A1 (en) 2023-11-23
US11720496B2 (en) 2023-08-08

Similar Documents

Publication Publication Date Title
Hsieh et al. Transparent offloading and mapping (TOM) enabling programmer-transparent near-data processing in GPU systems
JP7126136B2 (ja) 再構成可能なキャッシュアーキテクチャおよびキャッシュコヒーレンシの方法
US9229878B2 (en) Memory page offloading in multi-node computer systems
US10037228B2 (en) Efficient memory virtualization in multi-threaded processing units
TWI498819B (zh) 執行成型記憶體存取作業的系統和方法
TW201430566A (zh) 在複數執行緒處理單元中的效率式記憶體虛擬化
US11914903B2 (en) Systems, methods, and devices for accelerators with virtualization and tiered memory
US10031697B2 (en) Random-access disjoint concurrent sparse writes to heterogeneous buffers
US11868306B2 (en) Processing-in-memory concurrent processing system and method
US20230057633A1 (en) Systems, methods, and apparatus for transferring data between interconnected devices
JP2024500779A (ja) アドレスマッピング認識型タスク処理機構
JP2023527770A (ja) メモリにおける推論
US11625279B2 (en) Read-write page replication for multiple compute units
Govindasamy et al. Minimizing Memory Contention in an APNG Encoder using a Grid of Processing Cells
US10620958B1 (en) Crossbar between clients and a cache
US10051087B2 (en) Dynamic cache-efficient event suppression for network function virtualization
US20230409474A1 (en) Apparatus and method with register sharing
Xiao et al. Unified virtual memory support for deep CNN accelerator on SoC FPGA
CN113448880A (zh) 存储装置和存储器中的启用一致多处理的计算

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20200918

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20200918

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210802

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210802

TRDD Decision of grant or rejection written
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220630

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220801

R150 Certificate of patent or registration of utility model

Ref document number: 7126136

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150