JP2022531601A - マルチコア・プロセッサの複数のデータ要求の実行 - Google Patents

マルチコア・プロセッサの複数のデータ要求の実行 Download PDF

Info

Publication number
JP2022531601A
JP2022531601A JP2021565851A JP2021565851A JP2022531601A JP 2022531601 A JP2022531601 A JP 2022531601A JP 2021565851 A JP2021565851 A JP 2021565851A JP 2021565851 A JP2021565851 A JP 2021565851A JP 2022531601 A JP2022531601 A JP 2022531601A
Authority
JP
Japan
Prior art keywords
core
request
state
data item
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.)
Pending
Application number
JP2021565851A
Other languages
English (en)
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2022531601A publication Critical patent/JP2022531601A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/526Mutual exclusion algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3027Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses
    • 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/0811Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
    • 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/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • 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/0857Overlapped cache accessing, e.g. pipeline by multiple requestors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • 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/1008Correctness of operation, e.g. memory ordering
    • 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/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本開示は複数のプロセッサ・コアを含むコンピュータ・システムに対する方法に関し、ここではプロセッサ・コアのうちの第1のコアによってアトミック・プリミティブを排他的に実行するために第1のコアにキャッシュされたデータ項目が割り当てられる。この方法は、第1のコアによるアトミック・プリミティブの実行が完了していないときに、キャッシュ・コントローラにおいて第2のコアからデータ項目にアクセスするための要求を受信することを含む。第2のコアの要求を受信する前に複数のプロセッサ・コアのうちの第3のコアからデータ項目の第2の要求を受信したと判定したことに応答して、第2のコアに拒否メッセージが戻されてもよい。【選択図】図2A

Description

本発明はデジタル・コンピュータ・システムの分野に関し、より具体的には複数のプロセッサ・コアを含むコンピュータ・システムに対する方法に関する。
並行プログラミングにおいて、共有リソースへの同時アクセスは予想外の挙動または誤った挙動をもたらし得るため、共有リソースへのアクセスが行われるプログラムの部分は保護されることがある。この保護されるセクションはアトミック・プリミティブ、クリティカル・セクション、またはクリティカル領域と呼ばれることがある。アトミック・プリミティブは、たとえば複数の同時アクセスの状況において正しく動作しないと考えられるデータ構造などの共有リソースにアクセスしてもよい。しかし、マルチコア・プロセッサにおけるアトミック・プリミティブの使用をより良好に制御することが必要とされている。
さまざまな実施形態は、独立請求項の主題が記載するとおりの複数のプロセッサ・コアを含むコンピュータ・システムに対する方法と、コンピュータ・プログラム製品と、プロセッサ・システムとを提供する。従属請求項には有利な実施形態が記載されている。本発明の実施形態は、もし互いに排他的でなければ互いに自由に組み合わされ得る。
1つの態様において、本開示は複数のプロセッサ・コアを含むコンピュータ・システムに対する方法に関し、ここでは複数のプロセッサ・コアのうちの第1のコアによってアトミック・プリミティブを実行するために第1のコアにデータ項目が排他的に割り当てられる。この方法は、第1のコアによるアトミック・プリミティブの実行が完了していないときに、キャッシュ・コントローラにおいてプロセッサ・コアのうちの第2のコアからデータ項目にアクセスするための要求を受信することと、第2のコアの要求を受信する前に複数のプロセッサ・コアのうちの第3のコアからデータ項目の別の要求を受信したと判定したことに応答して、第2のコアに拒否メッセージを戻すことであって、この第2のコアに対する拒否メッセージはアトミック・プリミティブを別の要求が待っていることをさらに示す、戻すことか、そうでない場合には第1のコアによるデータ項目への排他的アクセスを無効化するために第1のコアに無効化要求を送信することとを含む。この方法はさらに、無効化要求に対する肯定応答を示す応答を第1のコアから受信することと、この第1のコアからの無効化要求に対する肯定応答に応答して、キャッシュ・コントローラが第2のコアに対してデータがアクセスのために利用可能であると応答することとを含む。
例示的実施形態において、この方法はさらに、第3のコアがまだデータ項目を待っているときに、キャッシュ・コントローラによってデータ項目の各々の受信した要求に対して拒否メッセージを戻すことを含む。
例示的実施形態において、この方法はさらに、キャッシュ・コントローラの複数の可能な状態を示すキャッシュ・プロトコルを提供することを含み、この複数の可能な状態の各状態はキャッシュ・コントローラによって行われるべきそれぞれの動作に関連し、この方法は、キャッシュ・コントローラが複数の可能な状態のうちの第1の状態にあるときに要求を受信することと、キャッシュ・コントローラによって第1の状態から複数の可能な状態のうちの第2の状態への切り換えを行うことによって、第2の状態の動作に従ってキャッシュ・コントローラの第2の状態において判定することを行うこととを含む。この方法はさらに、第2の状態から複数の可能な状態のうちの第3の状態への切り換えを行うことによって、第3の状態に関連する動作に従って第3の状態において戻すことを行うことか、または第2の状態から複数の可能な状態のうちの第4の状態への切り換えを行うことによって、第4の状態に関連する動作に従って第4の状態において無効化要求を送信するステップ、受信するステップ、および応答するステップを行うこととを含む。
別の態様において、本開示は、複数のプロセッサ・コアを含むコンピュータ・システムに対する方法をプロセッサまたはプログラマブル回路に行わせるためにプロセッサまたはプログラマブル回路によって実行可能なプログラム命令を集合的に記憶する1つ以上のコンピュータ可読記憶媒体を含むコンピュータ・プログラム製品に関し、ここでは複数のプロセッサ・コアのうちの第1のコアによってアトミック・プリミティブを実行するために第1のコアにデータ項目が排他的に割り当てられ、この方法は、第1のコアによるアトミック・プリミティブの実行が完了していないときに、キャッシュ・コントローラにおいてプロセッサ・コアのうちの第2のコアからデータ項目にアクセスするための要求を受信することと、第2のコアの要求を受信する前に複数のプロセッサ・コアのうちの第3のコアからデータ項目の別の要求を受信したと判定したことに応答して、第2のコアに拒否メッセージを戻すことであって、この第2のコアに対する拒否メッセージはアトミック・プリミティブを別の要求が待っていることをさらに示す、戻すことか、そうでない場合には第1のコアによるデータ項目への排他的アクセスを無効化するために第1のコアに無効化要求を送信することとを含む。この方法はさらに、無効化要求に対する肯定応答を示す応答を第1のコアから受信することと、この第1のコアからの無効化要求に対する肯定応答に応答して、キャッシュ・コントローラが第2のコアに対してデータがアクセスのために利用可能であると応答することとを含む。
別の態様において、本開示は、プロセッサ・システムのキャッシュ・コントローラによって維持される一貫性を有するプロセッサ・システムに関し、このプロセッサ・システムは複数のプロセッサ・コアを含み、ここでは複数のプロセッサ・コアのうちの第1のコアによってアトミック・プリミティブを実行するために第1のコアにデータ項目が排他的に割り当てられる。キャッシュ・コントローラは、第1のコアによるアトミック・プリミティブの実行が完了していないときに、複数のプロセッサ・コアのうちの第2のコアからデータ項目にアクセスするための要求を受信することと、第2のコアの要求を受信する前に複数のプロセッサ・コアのうちの第3のコアからデータ項目の別の要求を受信したと判定したことに応答して、第2のコアに拒否メッセージを戻すことであって、この第2のコアに対する拒否メッセージはアトミック・プリミティブを別の要求が待っていることをさらに示す、戻すことか、そうでない場合には第1のコアによるデータ項目への排他的アクセスを無効化するために第1のコアに無効化要求を送信することと、無効化要求に対する肯定応答を示す応答を第1のコアから受信することと、この第1のコアからの無効化要求に対する肯定応答に応答して、キャッシュ・コントローラが第2のコアに対してデータがアクセスのために利用可能であると応答することとを行うために構成される。
例示的実施形態において、プロセッサ・システムの第3のコアは、予め定められた命令を実行するための論理回路を含み、キャッシュ・コントローラは、論理回路による予め定められた命令の実行に応答して判定するステップを行うように構成される。
以下の実施形態においては、図面を参照して単なる例として本発明をより詳細に説明する。
本開示の実施形態によるマルチプロセッサ・システムの例を示す図である。 本開示の実施形態による複数のプロセッサ・コアのデータ要求を処理するための方法を示す流れ図である。 本開示の実施形態による複数のプロセッサ・コアのデータ要求を処理するための方法を示すブロック図である。 本開示の実施形態による複数のプロセッサ・コアを含むコンピュータ・システムにおけるワークロード分配に対するロックを実現するための方法を示す流れ図である。
本発明のさまざまな実施形態の説明は例示の目的のために提供されるものであり、開示される実施形態に対して網羅的または限定的になることは意図されていない。記載される実施形態の範囲および思想から逸脱することなく、当業者には多くの修正および変更が明らかになるだろう。本明細書において用いられる用語は、実施形態の原理、市場に見出される技術に対する実際の適用または技術的改善点を最もよく説明するか、または他の当業者の理解を可能にするために選択されたものである。
本開示は、所与のプロセッサ・コアがアトミック・プリミティブに入るときに、他のプロセッサ・コアがその所与のプロセッサ・コアがアトミック・プリミティブを完了するまで(例、継続的にロックを要求することによって)待たなくてもよいように防いでもよい。アトミック・プリミティブの実行中に、その他のプロセッサ・コアは他のタスクを行ってもよい。このことは、プロセッサ・リソースの効率的な使用を可能にしてもよい。本明細書において、「コア」および「プロセッサ・コア」という用語は交換可能に用いられる。
アトミック・プリミティブは、ストレージ位置および1つ以上の命令のセットによって定められてもよい。1つ以上の命令のセットは、ストレージ位置にアクセスできてもよい。ストレージ位置は、その位置へのアクセスを制限するロックと関連付けられてもよい。アトミック・プリミティブに入るためには、ロックを取得する必要がある。取得されたとき、ロックを取得したコアによって排他的にアトミック・プリミティブが実行される(すなわち、命令のセットが実行される)。ロックがリリースされるとき、それはこのコアがアトミック・プリミティブを退出したことを示す。
一実施形態によると、第2のコアの要求より前に第3のコアの他の要求を受信したと判定することは、第3のコアがデータ項目を待っていると判定することを含む。このことは、たとえばデータ項目に関連する状態を用いることなどによって行われてもよく、データ項目の状態はそのデータ項目が所与のコアに待たれていることを示してもよい。
一実施形態によると、この方法はさらに、第3のコアがまだデータ項目を待っているときに、キャッシュ・コントローラによってデータ項目の各々のさらなる受信した要求に対して拒否メッセージを戻すことを含む。さらなる要求は、プロセッサ・コアのうちの別のプロセッサ・コアから受信されてもよい。たとえば、第1のコアはロックを有し、第3のコアはそのデータ項目を待っている。第3のコアがまだデータ項目を待っている間は、第2のコアが拒否メッセージを受信することによって拒否されるだけでなく、第2のコア以降のすべてのコアも拒否されるだろう。
一実施形態によると、この方法はさらに、キャッシュ・コントローラの複数の可能な状態を示すキャッシュ・プロトコルを提供することを含み、この複数の状態の各状態はキャッシュ・コントローラによって行われるべきそれぞれの動作に関連し、この方法は、キャッシュ・コントローラが複数の状態のうちの第1の状態にあるときに要求を受信することと、キャッシュ・コントローラによって第1の状態から第2の状態への切り換えを行うことによって、第2の状態の動作に従ってキャッシュ・コントローラの第2の状態において判定することを行うことと、第2の状態から複数の状態のうちの第3の状態への切り換えを行うことによって、第3の状態に関連する動作に従って第3の状態において戻すことを行うことか、または第2の状態から複数の状態のうちの第4の状態への切り換えを行うことによって、第4の状態に関連する動作に従って第4の状態において無効化要求を送信するステップ、受信するステップ、および応答するステップを行うこととを含む。
一実施形態によると、キャッシュ・プロトコルは複数のデータ状態をさらに示す。データ項目のデータ状態は、データ項目の所有状態または一貫性状態を示す。データ項目のデータ状態は、複数のプロセッサ・コアによるデータ項目への一貫したアクセスを可能にする。この方法は、データ項目がアトミック・プリミティブに属し、かつそのデータ項目が別のコアによって要求され待たれていることを示すために、データ項目に複数のデータ状態のうちの所与のデータ状態を割り当てることを含み、第2のコアの要求を受信する前に第3のコアからデータ項目の別の要求を受信したと判定することは、要求されたデータ項目が所与のデータ状態であることをキャッシュ・コントローラによって判定することを含む。たとえば、アトミック・プリミティブにおいて用いられるデータ項目の一貫性状態を示すために、キャッシュ・ライン・メタデータが用いられてもよい。
一実施形態によると、要求の受信は、キャッシュ・コントローラとプロセッサ・コアとを接続するバス・システムをモニタすることを含み、拒否メッセージを戻すことは、拒否メッセージを示すシステム・バス・トランザクションを生成することを含む。
一実施形態によると、この方法はさらに、アトミック・プリミティブが完了したと判定したことに応答して、待機中の第3のコアにデータ項目を戻すことを含む。このことは、第3のプロセッサ・コアが要求を繰り返す必要なしに要求したデータ項目を受信することを可能にしてもよい。拒否応答を受信した第2のプロセッサ・コアは、他のタスクを行ってもよい。このことによって、アトミック・プリミティブを第3のプロセッサに効率的に移行し、第2のコア(および任意のその後のコア要求)が他の作業を行うことを可能にすることによって、コンピュータ・システムのパフォーマンスが増加してもよい。
一実施形態によると、この方法はさらに、アトミック・プリミティブの予め定められた最大実行時間の後に、第2のコアにデータ項目にアクセスするための要求を再提出させることを含む。たとえば、この再提出させることは拒否メッセージの送信後に行われてもよい。このことは、第2のプロセッサ・コアがいかなる付加的なタスクも行うことなく要求の繰り返しのループに入ることを防ぎ得る。
一実施形態によると、第2のコアに拒否メッセージを戻すことはさらに、アトミック・プリミティブの実行中に第2のコアに1つ以上のさらなる命令を実行させることを含み、このさらなる命令はデータ項目を要求するための命令とは異なる。このことによって、第1のコア(または第1のコアおよび任意の待機中のコア)がアトミック・プリミティブの実行を終えるまで第2のコアが待たなければならない場合と比べて、プロセッサ・リソースの効率的な使用が可能になってもよい。
一実施形態によると、アトミック・プリミティブの実行は、第1および第3のコアが共有するデータにアクセスすることを含み、受信される要求は、第2のコアによる共有データへのアクセスを可能にするための要求である。このデータは付加的に第2のコアと共有されてもよい。
一実施形態によると、データ項目はアトミック・プリミティブを実行するために第1のコアによって取得されたロックであり、アトミック・プリミティブの実行が完了していないと判定することは、ロックが利用可能でないと判定することを含む。この実施形態は、既存のシステムにシームレスに統合されてもよい。たとえば、ロックは通常の格納命令を用いてリリースされてもよい。
一実施形態によると、アトミック・プリミティブの実行が完了した後に、データ項目に関連するキャッシュ・ラインがリリースされる。
一実施形態によると、データ項目は第1のコアのキャッシュにキャッシュされる。第1のコアのキャッシュは、データ・キャッシュまたは命令キャッシュであってもよい。
一実施形態によると、データ項目は第1および第2のコアが共有するキャッシュにキャッシュされる。このキャッシュは付加的に第3のコアと共有されてもよい。キャッシュは、データ・キャッシュまたは命令キャッシュであってもよい。
一実施形態によると、この方法はプロセッサ命令を提供することをさらに含み、要求の受信は、第2のコアによるプロセッサ命令の実行の結果としてもたらされ、判定するステップおよび戻すステップは、受信した要求がプロセッサ命令によってトリガされたと判定したことに応答して行われる。第3のコアも、プロセッサ命令を実行することによって要求を送信するように構成されてもよい。
プロセッサ命令は、暫定的排他的ロードおよびテスト(TELT:Tentative Exclusive Load & Test)と名付けられてもよい。TELT命令は、ロードおよびテスト命令と同じやり方でコアによって発行されてもよい。TELT命令は、キャッシュ・ラインを戻してテストを行うこともあるし、拒否応答を得ることもある。拒否応答はキャッシュ・ライン・データを戻さないため、キャッシュ・ライン・データをキャッシュにインストールしない。その代わりに、拒否応答はロードおよびテスト命令が失敗したときと同じやり方で処理される。TELT命令は非ブロッキングである(キャッシュ・ライン状態を変えずに拒否応答を提供する)ため、強固に武装して動作し得るため有益であり得る。別の利点は、TELT命令は要求を行うコアにより迅速に応答を提供し得るため、他のコアが他のタスクを行うことを可能にすることであり得る。別の利点は、TELT命令がロック・オーナーからキャッシュ・ラインを奪わないことである(例、ロック解除の前に排他的フェッチを行う必要がない)。
TELT命令は、たとえばLOAD命令などのRXまたはRXEフォーマットを有してもよい。TELT命令の第2のオペランドによって特定されるデータが利用可能である場合、そのデータはTELT命令の第1のオペランドに配置される。第1のオペランドの内容は、データが利用可能でない場合は特定されない。結果として得られるTELT命令の条件コードは、次のとおりになってもよい。「0」は結果が0であることを示し、「1」は結果が0未満であることを示し、「2」は結果が0より大きいことを示し、「3」はデータが利用可能でないことを示す。典型的なプログラミング・シーケンスにおいては、後に条件コードに依存して結果が処理されることとなる。
TELT命令は、プロセッサ・システムに関連する命令セット・アーキテクチャ(ISA:instruction set architecture)の一部として提供されてもよい。
図1は、本開示の実施形態によるマルチプロセッサ・システム100の例を示している。マルチプロセッサ・システム100は、複数のプロセッサ・コア101A~Nを含む。たとえば複数のプロセッサ・コア101A~Nは、たとえばインターナショナル・ビジネス・マシーンズ(IBM(登録商標):International Business Machines)の中央プロセッサ(CP:central processor)チップなどの同じプロセッサ・チップに存在していてもよい。たとえば複数のプロセッサ・コア101A~Nは、同じチップに存在するキャッシュ106を共有してもよい。マルチプロセッサ・システム100は、メイン・メモリ103をさらに含む。説明を簡単にするために、本明細書にはプロセッサ・コア101Aの構成要素のみを記載している。その他のプロセッサ・コア101B~Nは類似の構造を有してもよい。
プロセッサ・コア101Aは、プロセッサ・コア101に関連するキャッシュ105を含んでもよい。キャッシュ105は、プロセッサのパフォーマンスを改善するためにメモリ・データをバッファするために使用される。キャッシュ105は、使用されると考えられるメモリ・データのキャッシュ・ラインを保持する高速バッファである(例、キャッシュ105はメイン・メモリ103のデータをキャッシュするように構成される)。典型的なキャッシュ・ラインは64、128、または256バイトのメモリ・データである。プロセッサ・コア・キャッシュは、自身が含む各ラインに対するアドレスおよび所有状態を識別するメタデータを維持する。
プロセッサ・コア101Aは、命令実行パイプライン110を含んでもよい。実行パイプライン110は複数のパイプライン・ステージを含んでもよく、各ステージは、命令を完全に実行するために必要とされるマルチステージ・プロセスのうちの特定のステージの動作を行うように製作された論理回路を含む。実行パイプライン110は命令フェッチおよび復号ユニット120と、データ・フェッチ・ユニット121と、実行ユニット123と、書込みユニット124とを含んでもよい。
命令フェッチおよび復号ユニット120は、パイプライン110の命令をフェッチして、フェッチされた命令を復号するように構成される。データ・フェッチ・ユニット121は、レジスタ111A~Nから処理されるべきデータ項目を読出してもよい。実行ユニット123は通常、(例、フェッチおよび復号ユニット120から)復号された命令に関する情報を受信してもよく、かつ命令のオペコードによってオペランドに対する動作を行ってもよい。実行ユニット123は、プロセッサ・コア101AのISAにおいて指定された命令を実行するための論理回路を含んでもよい。実行の結果は、書込みユニット124によってメモリ103、レジスタ111A~N、またはその他のマシン・ハードウェア(たとえば制御レジスタなど)のいずれかに記憶されてもよい。
プロセッサ・コア101Aはさらに、プロセッサ・コア101に関連するレジスタ111A~111Nを含むレジスタ・ファイル107を含んでもよい。レジスタ111A~Nは、たとえば汎用目的レジスタなどであってもよく、その各々はパイプライン110において実行される命令によって処理されるデータ項目を記憶するための特定のビット数を含んでもよい。
プログラムのソース・コードはコンパイルされて、プロセッサ・コア101Aに関連するISAにおいて定められた一連のマシン実行可能命令にされてもよい。プロセッサ・コア101Aが実行可能命令の実行を開始するとき、これらのマシン実行可能命令は順次実行されるようにパイプライン110に配置されてもよい。命令フェッチおよび復号ユニット120は、パイプライン110に配置された命令を読出して、その命令に関連する識別子を識別してもよい。命令識別子は、受信した命令を、プロセッサ・コア101AのISAにおいて指定された命令の回路実装と関連付けてもよい。
ISAの命令は、メモリ103もしくはレジスタ111A~Nまたはその両方に記憶されたデータ項目を処理するために提供されてもよい。たとえば、命令はメモリ103からレジスタ111A~Nにデータ項目を読出してもよい。データ・フェッチ・ユニット121は、レジスタ111A~Nから処理されるべきデータ項目を読出してもよい。実行ユニット123は、プロセッサ・コア101AのISAにおいて指定された命令を実行するための論理回路を含んでもよい。データ・フェッチ・ユニット121によって読出されたデータ項目を処理するための命令の実行後、書込みユニット124はその結果をレジスタ111A~Nに出力して記憶してもよい。
アトミック・プリミティブ128は、プロセッサ・コア101AのISAにおいて定められた1つ以上の命令から構築され得る。プリミティブ128は、たとえばプロセッサ・コアによって実行される読取り命令を含んでもよく、プロセッサ・コア101Aがプリミティブの実行を完了するまでは、その読取り命令によって読取られるメモリ位置に記憶されるデータ項目に対する他のプロセッサ・コア101B~Nのアクセスもしくは変更またはその両方ができないことが保証される。
プロセッサ・コア101A~Nは、メイン・メモリ103に対するプロセッサ・キャッシュ106を共有する。プロセッサ・キャッシュ106は、キャッシュ・コントローラ108によって管理されてもよい。
図2Aは、本開示の実施形態による複数のプロセッサ・コア(例、101A~N)のデータ要求を処理するための方法の流れ図を示している。たとえば、1つの第1のプロセッサ・コア(例、101A)は、アトミック・プリミティブ(例、128)を実行するためのデータ項目に排他的に割り当てられる。たとえば、2つのプロセスがデータ項目の内容を同時に変更することを防ぐために、データ項目はアトミック・プリミティブによって保護されてもよい。一旦アトミック・プリミティブに入ると、アトミック・プリミティブによって保護されたデータに他のコアがアクセスすることが防がれ、1つ以上の命令のセットが実行される(例、その命令のセットは保護されたデータにアクセスできる)。命令のセットが終了すると、アトミック・プリミティブは退出される。アトミック・プリミティブに入ることはロックを取得することによって行われてもよく、アトミック・プリミティブを退出することはロックをリリースすることによって行われてもよい。ロックのリリースは、たとえば命令のセットのうちの格納命令によってトリガされてもよい。命令のセットはアトミック・プリミティブの一部であってもよい。
ステップ201において、キャッシュ・コントローラは、データ項目にアクセスするための要求を第2のコア(例、101Cまたは101N)から受信してもよい。この要求は、たとえばプロセッサ・コアとキャッシュ・コントローラとを接続するバス・システムを介して送信されてもよい。キャッシュ・コントローラはバス・システムをモニタすることによって、第2のプロセッサ・コアの要求を受信してもよい。第2のコアが送信する要求は、第2のコアによるTELT命令の実行によってトリガされてもよい。キャッシュ(例、106)は、たとえばキャッシュ・ラインなどを含んでもよい。
第1のプロセッサ・コアによるアトミック・プリミティブの実行によって、読取り命令によってメモリ位置からデータ・ブロック(すなわち、データ項目)が読出され、キャッシュ・ラインにデータ・ブロックのコピーが記憶されることによって、キャッシュ・ラインが第1のプロセッサ・コアに割り当てられてもよい。次いで第1のプロセッサ・コアは、キャッシュ・ラインが自身に割り当てられている間に少なくとも1つの命令を実行してもよい。その少なくとも1つの命令を実行している間に、ステップ201の要求が受信されてもよい。要求されるデータ項目は、たとえばキャッシュ・ラインのデータであってもよい。
たとえば、ユーザは第2のプロセッサ・コアによって実行され得る命令を含むプログラムを作成してもよい。そのプログラムはTELT命令を含む。TELT命令は、キャッシュ・ラインが利用可能な場合にはキャッシュ・ラインのロードを可能にする。第2のプロセッサ・コアによってTELT命令が実行されると、第2のプロセッサ・コアによって要求が発行されてもよい。要求されるデータが利用可能であるとき、そのデータは第2のプロセッサ・コアに戻されてもよい。第2のプロセッサ・コアにデータを戻すことは、たとえば特定のタイプのデータ(例、読取り専用データまたはその他のタイプのデータ)のみを戻すように制御されてもよい。
たとえばキャッシュ・コントローラは、キャッシュ・コントローラが予め定められたキャッシュ・プロトコルに従って動作することを可能にする論理回路を含んでもよい。キャッシュ・プロトコルはキャッシュ・コントローラの複数の可能な状態を示してもよく、この複数の状態の各状態は、キャッシュ・コントローラによって行われるべきそれぞれの動作に関連する。たとえば、キャッシュ・コントローラが複数の状態のうちの第1の状態であるとき、プロセッサ・コアのうちのあるプロセッサ・コアからデータにアクセスするための何らかの要求があるときは常に、キャッシュ・コントローラはそれがTELT命令によってトリガされた要求であるかどうかをチェックすることとなる。たとえばキャッシュ・コントローラは、ステップ201において第1の状態であってもよい。キャッシュ・プロトコルは、キャッシュ・コントローラが一貫性を管理することを可能にしてもよい。たとえば、キャッシュ・コントローラはメタデータを用いて、キャッシュ・データおよびその一貫性を管理してもよい。たとえば、キャッシュ階層の任意のレベルにおいて、より低いレベルのキャッシュが保持するキャッシュ・ラインのディレクトリを保存することによって、データ・バッキング(キャッシュなし)が施行されてもよい。
たとえば、データ項目にアクセスするための要求は、それがアトミック・プリミティブにおいて使用中のデータに対する要求であることを示すタグ付き要求(例、TELT命令によってトリガされたもの)であってもよく、ここでキャッシュ・コントローラはタグ付き要求を認識するために構成された論理回路を含む。よって、要求を受信してその要求がTELT命令によってトリガされたと判定するとき、キャッシュ・コントローラはキャッシュ・プロトコルによる複数の状態のうちの第2の状態へのジャンプまたは切り換えを行ってもよい。第2の状態において、キャッシュ・コントローラは、要求されたデータ項目を別のプロセッサ・コアが待っているかどうかを判定してもよい(問い合わせステップ203)。たとえば、キャッシュ・コントローラは自身が保持するキャッシュ・ラインに対する状態を維持しており、要求の時点での要求されたデータ項目の状態を提示できる。
第2のコアの要求を受信する前にプロセッサ・コアの第3のコア(例、101B)からデータ項目の別の要求を受信したと判定したこと(問い合わせステップ203)に応答して、ステップ205においてキャッシュ・コントローラは拒否メッセージを生成し、その拒否メッセージを第2のコアに送信してもよい。そうでない場合は、ステップ207~211が行われてもよい。第2のコアの要求より前に第3のコアの他の要求を受信したと判定することは、要求されたデータ項目の状態が第3のコアがそのデータ項目を待っていることを示す状態であると判定することによって行われてもよい。その状態はさらに、第1のプロセッサ・コアがターゲット・データ項目を排他的に有するが、アトミック・プリミティブの実行が完了していないことを示してもよい。問い合わせステップ203を行った後、キャッシュ・コントローラはキャッシュ・プロトコルによる第2の状態から複数の状態のうちの第3の状態への切り換えを行ってもよく、拒否メッセージは第3の状態に関連する動作の実行によって第2のコアに送信される。
ステップ207において、キャッシュ・コントローラは、第1のコア101Aによるデータ項目への排他的アクセスを無効化するために、第1のコアに無効化要求(またはクロス無効化要求)を送信してもよい。たとえば、問い合わせステップ203を行った後、キャッシュ・コントローラはキャッシュ・プロトコルの第2の状態から複数の状態のうちの第4の状態への切り換えを行ってもよい。キャッシュ・コントローラは、キャッシュ・プロトコルによる第4の状態にあるときにはステップ207~211を行うように構成されてもよい。
ステップ209において、キャッシュ・コントローラは、無効化要求に対する肯定応答を示す応答を第1のコアから受信してもよい。たとえば、この応答はバス・システムを介して送信されてもよい。キャッシュ・コントローラは、バス・システムをモニタすることによって応答を受信してもよい。
第1のコアからの無効化要求に対する肯定応答に応答して、キャッシュ・コントローラはステップ211において、データ項目がアクセスのために利用可能であると第2のコアに応答してもよい。キャッシュ・コントローラから第2のコアへの応答は、たとえばバス・システムなどを介して送信されてもよい。
ステップ201~211は、第1のコア101Aによるアトミック・プリミティブの実行が完了していない間に行われてもよい。
図2Bは、本開示の実施形態による複数のプロセッサ・コア(例、101A~N)のデータ要求を処理するための方法を示すブロック図である。プロセッサ・コア101Aは、プロセッサ・コア101Aによってアトミック・プリミティブを実行するためのデータ項目に排他的に割り当てられる。
プロセッサ・コア101Aがアトミック・プリミティブを実行している間に、プロセッサ・コア101Bからキャッシュ・コントローラにデータ項目に対する要求(1)が送信される。キャッシュ・コントローラにおいて受信した要求(1)は受信された唯一の要求であり、すなわち要求(1)の受信時にそのデータ項目を待つ他のプロセッサ・コアは存在しなかったため、プロセッサ・コア101Bからデータ項目の要求を受信したことに応答して、キャッシュ・コントローラはプロセッサ・コア101Aに無効化要求(2)を送信する。無効化要求を受信したことに応答して、プロセッサ・コア101Aはキャッシュ・コントローラに肯定応答(3)を送信する。肯定応答を受信したことに応答して、キャッシュ・コントローラは、要求されたデータがアクセスのために利用可能であることを第3のコア101Bに示す応答(4)を送信してもよい。図2Bは、プロセッサ・コア101Aによってトリガされ得る任意のステップをさらに示している。特に、プロセッサ・コア101Aはデータ項目に再びアクセスする必要があることがあるため、プロセッサ・コア101Aはデータ項目へのアクセスを得るためのフェッチ要求(5)をキャッシュ・コントローラに送信してもよい。示されるとおり、次いでキャッシュ・コントローラはプロセッサ・コア101Bに無効化要求(6)を送信してもよい。次いでプロセッサ・コア101Bは、無効化要求に対する肯定応答(7)を送信してもよい。肯定応答を受信すると、キャッシュ・コントローラはデータがアクセスのために利用可能であるとプロセッサ・コア101Aに応答(8)してもよい。プロセッサ・コア101Aは格納命令(9)を行って、プリミティブの実行が完了したことを示すことによってロックをリリースしてもよい。図2Bはさらに、プロセッサ・コア101Bがデータ項目を待っている間にキャッシュ・コントローラがプロセッサ・コア101Cおよび101Nから受信したデータ項目の要求(AおよびC)を示している。この場合、プロセッサ・コア101Bがデータ項目を待っているため、キャッシュ・コントローラはプロセッサ・コア101Cおよび101Nにそれぞれ拒否メッセージ(BおよびD)を送信してもよい。
図3は、本開示の実施形態による複数のプロセッサ・コアを含むコンピュータ・システムにおけるワークロード分配に対するロックを実現するための方法の流れ図を示している。
ステップ301において、開始プロセッサ・コア101Cは、ターゲット・プロセッサ・コア101Aが実行中のアトミック・プリミティブに関連するロックの利用可能性をテストするためにTELT命令を発行してもよい。このことによって、ステップ303において開始プロセッサ・コア101Cは、キャッシュ・ラインに対する条件付きフェッチ要求をキャッシュ・コントローラ108に送信してもよい。条件付きフェッチ要求を受信したことに応答して、キャッシュ・コントローラ108は、すでに別のコアがそのキャッシュ・ラインを待っているかどうかを判定してもよい(問い合わせステップ305)。
別のコア(例、101B)がそのキャッシュ・ラインを待っていると判定したとき、キャッシュ・コントローラはステップ307において、データが利用可能でないことを示す応答(拒否メッセージ)を開始プロセッサ・コア101Cに送信してもよい。ステップ309において、データが利用可能でないことを示す条件コードが開始プロセッサ・コア101Cにおいて提示されてもよい。
他のコアがキャッシュ・ラインを待っていないと判定されるとき、キャッシュ・コントローラ108はステップ311において、ターゲット・コア101Aに条件付きクロス無効化要求を送信してもよい。問い合わせステップ313において、ターゲット・コアの状態がキャッシュ・ライン移行のために好適かどうかが判定されてもよい。もしそうであれば、ステップ317~321が行われてもよく、そうでない場合はステップ315~321が行われてもよい。
ステップ315において、キャッシュ・コントローラはターゲット・コアがデータ(キャッシュ・ライン)の更新を完了するまで待っていてもよい。
ステップ317において、ターゲット・コア101Aがダーティ・ラインを書戻して肯定クロス無効化応答を送信することによって、ターゲット・プロセッサ・コア101Aは要求されたキャッシュ・ラインの所有権をなくす。ステップ319において、キャッシュ・コントローラ108は、それぞれの開始プロセッサ・コアに条件付きフェッチ要求に対する肯定応答をキャッシュ・ラインとともに送信する。キャッシュ・ラインの所有権は、それぞれの開始プロセッサ・コアに移される。ステップ321において、データが利用可能であることを示す条件コードがそれぞれの開始プロセッサ・コアにおいて提示されてもよい。
別の例においては、複数のプロセッサ・コアを含むコンピュータ・システムにおけるワークロード分配に対するロックを実現するための方法が提供され、それらのプロセッサ・コアはメイン・メモリに対するプロセッサ・キャッシュを共有し、そのプロセッサ・キャッシュはキャッシュ・コントローラによって管理される。この方法は、メイン・メモリ・アドレスに対する暫定的排他的ロードおよびテスト命令に応答して、プロセッサ・コアがキャッシュ・コントローラにメイン・メモリ・アドレスに対する条件付きクロス無効化要求を送信すること、開始プロセッサ・コアからの条件付きクロス無効化要求に応答して、キャッシュ・コントローラが開始プロセッサ・コアによるアクセスのためにプロセッサ・キャッシュを利用可能かどうかを判定し、もしプロセッサ・キャッシュが利用可能でなければ、キャッシュ・コントローラは開始プロセッサ・コアに対してメイン・メモリ・アドレスのデータがアクセスのために利用可能でないと応答し、そうでない場合はキャッシュ・コントローラはメイン・メモリ・アドレスに対するキャッシュ・ラインを現在所有しているターゲット・プロセッサ・コアにクロス無効化要求を送信すること、キャッシュ・コントローラからのクロス無効化要求に応答して、ターゲット・プロセッサ・コアは自身がキャッシュ・ラインを変更した場合にはダーティ・キャッシュ・ラインを書戻し、キャッシュ・ラインに対する所有権をリリースし、肯定クロス無効化応答によってキャッシュ・コントローラに応答すること、ターゲット・プロセッサ・コアからの肯定クロス無効化応答に応答して、キャッシュ・コントローラが開始プロセッサ・コアにターゲット・データがアクセスのために利用可能であると応答することを含む。
以下の番号付きの項目において、さまざまな実施形態が特定される。
1.複数のプロセッサ・コアを含むコンピュータ・システムに対する方法であって、ここでは第1のコアによってアトミック・プリミティブを実行するためにプロセッサ・コアのうちの第1のコアにデータ項目が排他的に割り当てられ、この方法は、第1のコアによるアトミック・プリミティブの実行が完了していないときに、キャッシュ・コントローラにおいてプロセッサ・コアのうちの第2のコアからデータ項目にアクセスするための要求を受信することと、第2のコアの要求を受信する前にプロセッサ・コアのうちの第3のコアからデータ項目の別の要求を受信したと判定したことに応答して、第2のコアに拒否メッセージを戻すことであって、この第2のコアに対する拒否メッセージはアトミック・プリミティブを別の要求が待っていることをさらに示す、戻すことか、そうでない場合には第1のコアによるデータ項目への排他的アクセスを無効化するために第1のコアに無効化要求を送信することと、無効化要求に対する肯定応答を示す応答を第1のコアから受信することと、この第1のコアからの無効化要求に対する肯定応答に応答して、キャッシュ・コントローラが第2のコアに対してデータがアクセスのために利用可能であると応答することとを含む。
2.第2のコアの要求より前に第3のコアの他の要求を受信したと判定することは、第3のコアがデータ項目を待っていると判定することを含む、項目1に記載の方法。
3.第3のコアがまだデータ項目を待っているときに、キャッシュ・コントローラによってデータ項目の各々のさらなる受信した要求に対して拒否メッセージを戻すことをさらに含む、項目1または2に記載の方法。
4.キャッシュ・コントローラの複数の可能な状態を示すキャッシュ・プロトコルを提供することをさらに含み、この複数の状態の各状態はキャッシュ・コントローラによって行われるべきそれぞれの動作に関連し、この方法は、キャッシュ・コントローラが複数の状態のうちの第1の状態にあるときに要求を受信することと、キャッシュ・コントローラによって第1の状態から第2の状態への切り換えを行うことによって、第2の状態の動作に従ってキャッシュ・コントローラの第2の状態において判定することを行うことと、第2の状態から複数の状態のうちの第3の状態への切り換えを行うことによって、第3の状態に関連する動作に従って第3の状態において戻すことを行うことか、または第2の状態から複数の状態のうちの第4の状態への切り換えを行うことによって、第4の状態に関連する動作に従って第4の状態において無効化要求を送信するステップ、受信するステップ、および応答するステップを行うこととを含む、先行する項目のいずれかに記載の方法。
5.キャッシュ・プロトコルは複数のデータ状態をさらに示し、この方法は、データ項目がアトミック・プリミティブに属し、かつそのデータ項目が別のコアによって要求され待たれていることを示すために、データ項目に複数のデータ状態のうちの所与のデータ状態を割り当てることを含み、第2のコアの要求を受信する前に第3のコアからデータ項目の別の要求を受信したと判定することは、要求されたデータ項目が所与のデータ状態であることをキャッシュ・コントローラによって判定することを含む、項目4に記載の方法。
6.要求の受信は、キャッシュ・コントローラとプロセッサ・コアとを接続するバス・システムをモニタすることを含み、拒否メッセージを戻すことは、拒否メッセージを示すシステム・バス・トランザクションを生成することを含む、先行する項目のいずれかに記載の方法。
7.アトミック・プリミティブが完了したと判定したことに応答して、第3のコアにデータ項目を戻すことをさらに含む、先行する項目のいずれかに記載の方法。
8.第2のコアに拒否メッセージを戻すことはさらに、アトミック・プリミティブの実行中に第2のコアに1つ以上のさらなる命令を実行させることを含み、このさらなる命令はデータ項目を要求するための命令とは異なる、先行する項目のいずれかに記載の方法。
9.アトミック・プリミティブの実行は、第1および第2のコアが共有するデータにアクセスすることを含み、受信される要求は、第2のコアによる共有データへのアクセスを可能にするための要求である、先行する項目のいずれかに記載の方法。
10.データ項目はアトミック・プリミティブを実行するために第1のコアによって取得されたロックであり、アトミック・プリミティブの実行が完了していないと判定することは、ロックが利用可能でないと判定することを含む、先行する項目のいずれかに記載の方法。
11.アトミック・プリミティブの実行が完了した後にキャッシュ・ラインがリリースされる、先行する項目のいずれかに記載の方法。
12.データ項目は第1のコアのキャッシュにキャッシュされる、先行する項目のいずれかに記載の方法。
13.データ項目は第1および第3のコアが共有するキャッシュにキャッシュされる、先行する項目1~11のいずれかに記載の方法。
14.プロセッサ命令を提供することをさらに含み、要求の受信は、第2のコアによるプロセッサ命令の実行の結果としてもたらされ、判定するステップおよび戻すステップは、受信した要求がプロセッサ命令によってトリガされたと判定したことに応答して行われる、先行する項目のいずれかに記載の方法。
本明細書においては、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品の流れ図もしくはブロック図またはその両方を参照して、本発明の態様を説明している。流れ図もしくはブロック図またはその両方の各ブロック、および流れ図もしくはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実現され得ることが理解されるだろう。
本発明はシステム、方法、もしくはコンピュータ・プログラム製品、またはその組み合わせであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を行わせるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数の媒体)を含んでもよい。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および記憶できる有形デバイスであり得る。コンピュータ可読記憶媒体は、たとえば電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の好適な組み合わせなどであってもよいが、それに限定されない。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストは以下を含む。ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、リード・オンリ・メモリ(ROM:read-only memory)、消去可能プログラマブル・リード・オンリ・メモリ(erasable programmable read-only memory)(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ(CD-ROM:compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック、フレキシブル・ディスク、機械的にコード化されたデバイス、たとえばパンチ・カードまたは記録された命令を有する溝の中の隆起構造など、および前述の任意の好適な組み合わせ。本明細書において用いられるコンピュータ可読記憶媒体は、たとえば電波もしくはその他の自由に伝播する電磁波、導波路もしくはその他の伝送媒体を通じて伝播する電磁波(例、光ファイバ・ケーブルを通過する光パルス)、またはワイヤを通じて伝送される電気信号など、それ自体が一時的信号のものであると解釈されるべきではない。
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスにダウンロードされ得るか、またはたとえばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくは無線ネットワーク、またはその組み合わせなどのネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードされ得る。ネットワークは銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバ、またはその組み合わせを含んでもよい。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信して、そのコンピュータ可読プログラム命令をそれぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶するために転送する。
本発明の動作を実行するためのコンピュータ可読プログラム命令はアセンブラ命令、命令セット・アーキテクチャ(ISA:instruction-set-architecture)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または1つ以上のプログラミング言語の任意の組み合わせで書かれたソース・コードもしくはオブジェクト・コードであってもよく、このプログラミング言語はオブジェクト指向プログラミング言語、たとえばSmalltalk、またはC++など、および従来の手続き型プログラミング言語、たとえば「C」プログラミング言語または類似のプログラミング言語などを含む。コンピュータ可読プログラム命令は、すべてがユーザのコンピュータで実行されてもよいし、スタンド・アロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータで実行されてもよいし、一部がユーザのコンピュータで、一部がリモート・コンピュータで実行されてもよいし、すべてがリモート・コンピュータまたはサーバで実行されてもよい。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide area network)を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されてもよいし、(たとえば、インターネット・サービス・プロバイダを用いてインターネットを通じて)外部コンピュータへの接続が行われてもよい。いくつかの実施形態において、たとえばプログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル論理アレイ(PLA:programmable logic arrays)などを含む電子回路は、本発明の態様を行うために電子回路をパーソナライズするためのコンピュータ可読プログラム命令の状態情報を使用することによって、コンピュータ可読プログラム命令を実行してもよい。
これらのコンピュータ可読プログラム命令は、汎用目的コンピュータ、特定目的コンピュータ、またはマシンを生成するためのその他のプログラマブル・データ処理装置のプロセッサに提供されることによって、そのコンピュータまたはその他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定される機能/動作を実現するための手段を生じてもよい。これらのコンピュータ可読プログラム命令は、コンピュータ、プログラマブル・データ処理装置、もしくはその他のデバイス、またはその組み合わせに特定の方式で機能するように指示できるコンピュータ可読記憶媒体にも記憶されることによって、命令が記憶されたコンピュータ可読記憶媒体が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定される機能/動作の態様を実現する命令を含む製造物を含んでもよい。
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにもロードされて、コンピュータに実現されるプロセスを生成するためにコンピュータ、他のプログラマブル装置、または他のデバイスにおいて一連の動作ステップを行わせることによって、そのコンピュータ、他のプログラマブル装置、または他のデバイスにおいて実行される命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定される機能/動作を実現してもよい。
図面における流れ図およびブロック図は、本発明のさまざまな実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施のアーキテクチャ、機能、および動作を示すものである。これに関して、流れ図またはブロック図の各ブロックは、指定される論理機能(単数または複数)を実現するための1つ以上の実行可能命令を含むモジュール、セグメント、または命令の一部を表してもよい。いくつかの代替的実施において、ブロック内に示される機能は、図面に示されるものとは異なる順序で起こってもよい。たとえば、連続して示される2つのブロックは、実際には実質的に同時に実行されてもよいし、関与する機能によってはこれらのブロックがときに逆の順序で実行されてもよい。加えて、ブロック図もしくは流れ図またはその両方の各ブロック、およびブロック図もしくは流れ図またはその両方のブロックの組み合わせは、指定された機能または動作を行うか、または特定目的のハードウェアおよびコンピュータ命令の組み合わせを実行する特定目的のハードウェア・ベースのシステムによって実現され得ることが注目されるだろう。

Claims (25)

  1. 複数のプロセッサ・コアを含むコンピュータ・システムに対する方法であって、ここでは前記複数のプロセッサ・コアのうちの第1のコアによってアトミック・プリミティブを実行するために前記第1のコアにデータ項目が排他的に割り当てられ、前記方法は、前記第1のコアによる前記アトミック・プリミティブの前記実行が完了していないときに、
    キャッシュ・コントローラにおいて前記複数のプロセッサ・コアのうちの第2のコアから前記データ項目にアクセスするための要求を受信することと、
    前記第2のコアから前記要求を受信する前に前記複数のプロセッサ・コアのうちの第3のコアから前記データ項目に対する要求を受信したと判定したことに応答して、前記アトミック・プリミティブを別の要求が待っていることを示す拒否メッセージを前記第2のコアに戻すか、そうでない場合には
    前記第1のコアによる前記データ項目への排他的アクセスを無効化するために前記第1のコアに無効化要求を送信することと、
    前記無効化要求に対する肯定応答を示す応答を前記第1のコアから受信することと、
    前記第1のコアからの前記無効化要求に対する前記肯定応答に応答して、前記キャッシュ・コントローラが前記第2のコアに対して前記データがアクセスのために利用可能であると応答することと
    を含む、方法。
  2. 前記第2のコアからの前記要求より前に前記第3のコアからの前記要求を受信したと判定することは、前記第3のコアが前記データ項目を待っていると判定することを含む、請求項1に記載の方法。
  3. 前記第3のコアがまだ前記データ項目を待っているときに、前記キャッシュ・コントローラによって前記データ項目に対する各々のさらなる受信した要求に対して拒否メッセージを戻すことをさらに含む、請求項1に記載の方法。
  4. 前記キャッシュ・コントローラの複数の可能な状態を示すキャッシュ・プロトコルを提供することをさらに含み、前記複数の可能な状態の各状態は、前記キャッシュ・コントローラによって行われるべきそれぞれの動作に関連し、前記方法は、
    前記キャッシュ・コントローラが前記複数の可能な状態のうちの第1の状態にあるときに前記要求を受信することと、
    前記キャッシュ・コントローラによって前記第1の状態から前記複数の可能な状態のうちの第2の状態への切り換えを行うことによって、前記第2の状態の動作に従って前記キャッシュ・コントローラの前記第2の状態において前記判定することを行うことと、
    前記第2の状態から前記複数の可能な状態のうちの第3の状態への切り換えを行うことによって、前記第3の状態に関連する動作に従って前記第3の状態において前記戻すことを行うことか、または前記第2の状態から前記複数の可能な状態のうちの第4の状態への切り換えを行うことによって、前記第4の状態に関連する動作に従って前記第4の状態において前記無効化要求を前記送信するステップ、前記受信するステップ、および前記応答するステップを行うことと
    を含む、請求項1に記載の方法。
  5. 前記キャッシュ・プロトコルは複数のデータ状態をさらに示し、前記方法は、
    前記データ項目が前記アトミック・プリミティブに属し、かつ前記データ項目が別のコアによって要求され待たれていることを示すために、前記データ項目に前記複数のデータ状態のうちの所与のデータ状態を割り当てることを含み、前記第2のコアからの前記要求を受信する前に前記第3のコアから前記データ項目に対する前記要求を受信したと前記判定することは、前記要求されたデータ項目が前記所与のデータ状態であることを前記キャッシュ・コントローラによって判定することを含む、請求項4に記載の方法。
  6. 前記要求の前記受信は、
    前記キャッシュ・コントローラと前記複数のプロセッサ・コアとを接続するバス・システムをモニタすることを含み、前記拒否メッセージを前記戻すことは、前記拒否メッセージを示すシステム・バス・トランザクションを生成することを含む、請求項1に記載の方法。
  7. 前記アトミック・プリミティブが完了したと判定したことに応答して、前記第3のコアに前記データ項目を戻すことをさらに含む、請求項1に記載の方法。
  8. 前記第2のコアに前記拒否メッセージを戻すことはさらに、
    前記アトミック・プリミティブの実行中に前記第2のコアに1つ以上のさらなる命令を実行させることを含み、前記さらなる命令は前記データ項目を要求するための命令とは異なる、請求項1に記載の方法。
  9. 前記アトミック・プリミティブの前記実行は、
    前記第1のコアおよび前記第2のコアに共有されるデータにアクセスすることを含み、前記受信される要求は、前記第2のコアによる前記共有されるデータへのアクセスを可能にするための要求である、請求項1に記載の方法。
  10. 前記データ項目は前記アトミック・プリミティブを実行するために前記第1のコアによって取得されたロックであり、前記アトミック・プリミティブの前記実行が完了していないと判定することは、前記ロックが利用可能でないと判定することを含む、請求項1に記載の方法。
  11. 前記アトミック・プリミティブの前記実行が完了した後にキャッシュ・ラインがリリースされる、請求項1に記載の方法。
  12. 前記データ項目は前記第1のコアのキャッシュにキャッシュされる、請求項1に記載の方法。
  13. 前記データ項目は前記第1のコアおよび前記第3のコアが共有するキャッシュにキャッシュされる、請求項1に記載の方法。
  14. プロセッサ命令を提供することをさらに含み、前記要求の前記受信は、前記第2のコアによる前記プロセッサ命令の実行の結果としてもたらされ、前記判定するステップおよび戻すステップは、前記受信した要求が前記プロセッサ命令によってトリガされたと判定したことに応答して行われる、請求項1に記載の方法。
  15. キャッシュ・コントローラおよび複数のプロセッサ・コアを含むプロセッサ・システムであって、ここでは前記複数のプロセッサ・コアのうちの第1のコアによってアトミック・プリミティブを実行するために前記第1のコアにデータ項目が排他的に割り当てられ、前記キャッシュ・コントローラは、前記第1のコアによる前記アトミック・プリミティブの前記実行が完了していないときに、
    前記複数のプロセッサ・コアのうちの第2のコアから前記データ項目にアクセスするための要求を受信することと、
    前記第2のコアから前記要求を受信する前に前記複数のプロセッサ・コアのうちの第3のコアから前記データ項目に対する要求を受信したと判定したことに応答して、前記アトミック・プリミティブを別の要求が待っていることを示す拒否メッセージを前記第2のコアに戻すか、そうでない場合には
    前記第1のコアによる前記データ項目への排他的アクセスを無効化するために前記第1のコアに無効化要求を送信することと、
    前記無効化要求に対する肯定応答を示す応答を前記第1のコアから受信することと、
    前記第1のコアからの前記無効化要求に対する前記肯定応答に応答して、前記キャッシュ・コントローラが前記第2のコアに対して前記データがアクセスのために利用可能であると応答することと
    を行うために構成される、プロセッサ・システム。
  16. 前記第3のコアは、予め定められた命令を実行するための論理回路を含み、前記キャッシュ・コントローラは、前記論理回路による前記予め定められた命令の前記実行に応答して前記判定するステップを行うように構成される、請求項15に記載のプロセッサ・システム。
  17. 前記第2のコアからの前記要求より前に前記第3のコアからの前記要求を受信したと判定することは、前記第3のコアが前記データ項目を待っていると判定することを含む、請求項15に記載のプロセッサ・システム。
  18. 前記第3のコアがまだ前記データ項目を待っているときに、前記キャッシュ・コントローラによって前記データ項目に対する各々のさらなる受信した要求に対して拒否メッセージを戻すことをさらに含む、請求項15に記載のプロセッサ・システム。
  19. 前記キャッシュ・コントローラの複数の可能な状態を示すキャッシュ・プロトコルを提供することをさらに含み、前記複数の可能な状態の各状態は、前記キャッシュ・コントローラによって行われるべきそれぞれの動作に関連し、方法は、
    前記キャッシュ・コントローラが前記複数の可能な状態のうちの第1の状態にあるときに前記要求を受信することと、
    前記キャッシュ・コントローラによって前記第1の状態から前記複数の可能な状態のうちの第2の状態への切り換えを行うことによって、前記第2の状態の動作に従って前記キャッシュ・コントローラの前記第2の状態において前記判定することを行うことと、
    前記第2の状態から前記複数の可能な状態のうちの第3の状態への切り換えを行うことによって、前記第3の状態に関連する動作に従って前記第3の状態において前記戻すことを行うことか、または前記第2の状態から前記複数の可能な状態のうちの第4の状態への切り換えを行うことによって、前記第4の状態に関連する動作に従って前記第4の状態において前記無効化要求を前記送信するステップ、前記受信するステップ、および前記応答するステップを行うことと
    を含む、請求項15に記載のプロセッサ・システム。
  20. 前記キャッシュ・プロトコルは複数のデータ状態をさらに示し、前記方法は、
    前記データ項目が前記アトミック・プリミティブに属し、かつ前記データ項目が別のコアによって要求され待たれていることを示すために、前記データ項目に前記複数のデータ状態のうちの所与のデータ状態を割り当てることを含み、前記第2のコアからの前記要求を受信する前に前記第3のコアから前記データ項目に対する前記要求を受信したと前記判定することは、前記要求されたデータ項目が前記所与のデータ状態であることを前記キャッシュ・コントローラによって判定することを含む、請求項19に記載のプロセッサ・システム。
  21. 複数のプロセッサ・コアを含むコンピュータ・システムに対する方法をプロセッサまたはプログラマブル回路に行わせるために前記プロセッサまたは前記プログラマブル回路によって実行可能なプログラム命令を集合的に記憶する1つ以上のコンピュータ可読記憶媒体を含むコンピュータ・プログラム製品であって、ここでは前記複数のプロセッサ・コアのうちの第1のコアによってアトミック・プリミティブを実行するために前記第1のコアにデータ項目が排他的に割り当てられ、前記方法は、前記第1のコアによる前記アトミック・プリミティブの前記実行が完了していないときに、
    キャッシュ・コントローラにおいて前記複数のプロセッサ・コアのうちの第2のコアから前記データ項目にアクセスするための要求を受信することと、
    前記第2のコアから前記要求を受信する前に前記複数のプロセッサ・コアのうちの第3のコアから前記データ項目に対する要求を受信したと判定したことに応答して、前記第2のコアに拒否メッセージを戻すことであって、前記第2のコアに対する前記拒否メッセージは前記アトミック・プリミティブを別の要求が待っていることをさらに示す、戻すことか、そうでない場合には
    前記第1のコアによる前記データ項目への排他的アクセスを無効化するために前記第1のコアに無効化要求を送信することと、
    前記無効化要求に対する肯定応答を示す応答を前記第1のコアから受信することと、
    前記第1のコアからの前記無効化要求に対する前記肯定応答に応答して、前記キャッシュ・コントローラが前記第2のコアに対して前記データがアクセスのために利用可能であると応答することと
    を含む、コンピュータ・プログラム製品。
  22. 前記第2のコアからの前記要求より前に前記第3のコアからの前記要求を受信したと判定することは、前記第3のコアが前記データ項目を待っていると判定することを含む、請求項21に記載のコンピュータ・プログラム製品。
  23. 前記第3のコアがまだ前記データ項目を待っているときに、前記キャッシュ・コントローラによって前記データ項目に対する各々のさらなる受信した要求に対して拒否メッセージを戻すことをさらに含む、請求項21に記載のコンピュータ・プログラム製品。
  24. 前記キャッシュ・コントローラの複数の可能な状態を示すキャッシュ・プロトコルを提供することをさらに含み、前記複数の可能な状態の各状態は、前記キャッシュ・コントローラによって行われるべきそれぞれの動作に関連し、前記方法は、
    前記キャッシュ・コントローラが前記複数の可能な状態のうちの第1の状態にあるときに前記要求を受信することと、
    前記キャッシュ・コントローラによって前記第1の状態から前記複数の可能な状態のうちの第2の状態への切り換えを行うことによって、前記第2の状態の動作に従って前記キャッシュ・コントローラの前記第2の状態において前記判定することを行うことと、
    前記第2の状態から前記複数の可能な状態のうちの第3の状態への切り換えを行うことによって、前記第3の状態に関連する動作に従って前記第3の状態において前記戻すことを行うことか、または前記第2の状態から前記複数の可能な状態のうちの第4の状態への切り換えを行うことによって、前記第4の状態に関連する動作に従って前記第4の状態において前記無効化要求を前記送信するステップ、前記受信するステップ、および前記応答するステップを行うことと
    を含む、請求項21に記載のコンピュータ・プログラム製品。
  25. 前記キャッシュ・プロトコルは複数のデータ状態をさらに示し、前記方法は、
    前記データ項目が前記アトミック・プリミティブに属し、かつ前記データ項目が別のコアによって要求され待たれていることを示すために、前記データ項目に前記複数のデータ状態のうちの所与のデータ状態を割り当てることを含み、前記第2のコアからの前記要求を受信する前に前記第3のコアから前記データ項目に対する前記要求を受信したと前記判定することは、前記要求されたデータ項目が前記所与のデータ状態であることを前記キャッシュ・コントローラによって判定することを含む、請求項24に記載のコンピュータ・プログラム製品。
JP2021565851A 2019-05-09 2020-04-02 マルチコア・プロセッサの複数のデータ要求の実行 Pending JP2022531601A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/407,746 US20200356485A1 (en) 2019-05-09 2019-05-09 Executing multiple data requests of multiple-core processors
US16/407,746 2019-05-09
PCT/IB2020/053126 WO2020225615A1 (en) 2019-05-09 2020-04-02 Executing multiple data requests of multiple-core processors

Publications (1)

Publication Number Publication Date
JP2022531601A true JP2022531601A (ja) 2022-07-07

Family

ID=73046032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021565851A Pending JP2022531601A (ja) 2019-05-09 2020-04-02 マルチコア・プロセッサの複数のデータ要求の実行

Country Status (6)

Country Link
US (1) US20200356485A1 (ja)
JP (1) JP2022531601A (ja)
CN (1) CN113767372A (ja)
DE (1) DE112020000843T5 (ja)
GB (1) GB2597884B (ja)
WO (1) WO2020225615A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11750418B2 (en) * 2020-09-07 2023-09-05 Mellanox Technologies, Ltd. Cross network bridging
US11614891B2 (en) * 2020-10-20 2023-03-28 Micron Technology, Inc. Communicating a programmable atomic operator to a memory controller
CN114546927B (zh) * 2020-11-24 2023-08-08 北京灵汐科技有限公司 数据传输方法、核心、计算机可读介质、电子设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02232747A (ja) * 1989-02-03 1990-09-14 Digital Equip Corp <Dec> マルチプロセッサ・システムにおけるメモリ・アクセス動作の同期化・処理
JPH07262089A (ja) * 1994-03-17 1995-10-13 Fujitsu Ltd ロックアクセス制御方法および情報処理装置
JP2001504968A (ja) * 1997-03-24 2001-04-10 イーエムシー コーポレイション エージェント実装ロック機構
WO2008155844A1 (ja) * 2007-06-20 2008-12-24 Fujitsu Limited 情報処理装置およびキャッシュ制御方法
JP2019500705A (ja) * 2015-10-01 2019-01-10 ティダルスケール・インコーポレーテッドTidalscale Incorporated 選択的リソースマイグレーションを用いるネットワーク接続型メモリ

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5682537A (en) * 1995-08-31 1997-10-28 Unisys Corporation Object lock management system with improved local lock management and global deadlock detection in a parallel data processing system
US7325064B2 (en) * 2001-07-17 2008-01-29 International Business Machines Corporation Distributed locking protocol with asynchronous token prefetch and relinquish
US7571270B1 (en) * 2006-11-29 2009-08-04 Consentry Networks, Inc. Monitoring of shared-resource locks in a multi-processor system with locked-resource bits packed into registers to detect starved threads
US7890555B2 (en) * 2007-07-10 2011-02-15 International Business Machines Corporation File system mounting in a clustered file system
CN101685406A (zh) * 2008-09-27 2010-03-31 国际商业机器公司 用于对数据结构的实例进行操作的方法和系统
US8850131B2 (en) * 2010-08-24 2014-09-30 Advanced Micro Devices, Inc. Memory request scheduling based on thread criticality
US9158597B2 (en) * 2011-07-08 2015-10-13 Microsoft Technology Licensing, Llc Controlling access to shared resource by issuing tickets to plurality of execution units
KR20140065477A (ko) * 2011-10-27 2014-05-29 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 원자적 동작을 지원하는 시프트 가능형 메모리
CN102929832B (zh) * 2012-09-24 2015-05-13 杭州中天微系统有限公司 基于非写分配的高速缓存一致性的多核处理器数据传输系统
US20160306754A1 (en) * 2015-04-17 2016-10-20 Kabushiki Kaisha Toshiba Storage system
US9715459B2 (en) * 2015-12-22 2017-07-25 International Business Machines Corporation Translation entry invalidation in a multithreaded data processing system
US11157407B2 (en) * 2016-12-15 2021-10-26 Optimum Semiconductor Technologies Inc. Implementing atomic primitives using cache line locking
US10310811B2 (en) * 2017-03-31 2019-06-04 Hewlett Packard Enterprise Development Lp Transitioning a buffer to be accessed exclusively by a driver layer for writing immediate data stream
CN109684358B (zh) * 2017-10-18 2021-11-09 北京京东尚科信息技术有限公司 数据查询的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02232747A (ja) * 1989-02-03 1990-09-14 Digital Equip Corp <Dec> マルチプロセッサ・システムにおけるメモリ・アクセス動作の同期化・処理
JPH07262089A (ja) * 1994-03-17 1995-10-13 Fujitsu Ltd ロックアクセス制御方法および情報処理装置
JP2001504968A (ja) * 1997-03-24 2001-04-10 イーエムシー コーポレイション エージェント実装ロック機構
WO2008155844A1 (ja) * 2007-06-20 2008-12-24 Fujitsu Limited 情報処理装置およびキャッシュ制御方法
JP2019500705A (ja) * 2015-10-01 2019-01-10 ティダルスケール・インコーポレーテッドTidalscale Incorporated 選択的リソースマイグレーションを用いるネットワーク接続型メモリ

Also Published As

Publication number Publication date
GB2597884A (en) 2022-02-09
CN113767372A (zh) 2021-12-07
GB202116692D0 (en) 2022-01-05
GB2597884B (en) 2022-06-22
US20200356485A1 (en) 2020-11-12
WO2020225615A1 (en) 2020-11-12
DE112020000843T5 (de) 2021-11-11

Similar Documents

Publication Publication Date Title
US11106795B2 (en) Method and apparatus for updating shared data in a multi-core processor environment
JP2022531601A (ja) マルチコア・プロセッサの複数のデータ要求の実行
US8762651B2 (en) Maintaining cache coherence in a multi-node, symmetric multiprocessing computer
US8301717B2 (en) Extended virtual memory system and method in a computer cluster
US9529594B2 (en) Miss buffer for a multi-threaded processor
US11294737B2 (en) Self-managed lock access
TW201101178A (en) Extending cache coherency protocols to support locally buffered data
US20170031814A1 (en) Scheme for determining data object usage in a memory region
RU2730440C1 (ru) Средство для расширения возможностей исключительного удержания кеш-строки в фоновом процессе приватного кеша
CN113918101B (zh) 一种写数据高速缓存的方法、系统、设备和存储介质
CN108733585B (zh) 缓存系统及相关方法
CN111782419B (zh) 一种缓存更新方法、装置、设备及存储介质
US11586462B2 (en) Memory access request for a memory protocol
US11321146B2 (en) Executing an atomic primitive in a multi-core processor system
US10572387B2 (en) Hardware control of CPU hold of a cache line in private cache where cache invalidate bit is reset upon expiration of timer
US8938588B2 (en) Ensuring forward progress of token-required cache operations in a shared cache
CN113760465A (zh) 一种事务执行方法、装置、服务器、设备和存储介质
US6834281B1 (en) Method and apparatus to support multi-node direct access to file system data
US11681567B2 (en) Method and processor system for executing a TELT instruction to access a data item during execution of an atomic primitive
US8639887B2 (en) Dynamically altering a pipeline controller mode based on resource availability
JP2016015135A (ja) キャッシュメモリ管理ディレクトリにおけるエビクションの低減
GB2516092A (en) Method and system for implementing a bit array in a cache line
US8930628B2 (en) Managing in-line store throughput reduction
CN112041817A (zh) 用于管理借助于加速器装置的硬件加速的请求的方法和节点
CN116991760A (zh) 一种缓存器硬件管理装置、方法及电子设备

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20220512

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220922

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230919

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231003

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231227

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20240319