JP7328742B2 - スヌープ要求への対応 - Google Patents

スヌープ要求への対応 Download PDF

Info

Publication number
JP7328742B2
JP7328742B2 JP2018014913A JP2018014913A JP7328742B2 JP 7328742 B2 JP7328742 B2 JP 7328742B2 JP 2018014913 A JP2018014913 A JP 2018014913A JP 2018014913 A JP2018014913 A JP 2018014913A JP 7328742 B2 JP7328742 B2 JP 7328742B2
Authority
JP
Japan
Prior art keywords
data
node
requested data
snoop request
data processing
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
JP2018014913A
Other languages
English (en)
Other versions
JP2018152054A (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 JP2018152054A publication Critical patent/JP2018152054A/ja
Application granted granted Critical
Publication of JP7328742B2 publication Critical patent/JP7328742B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • G06F12/0833Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
    • 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
    • G06F12/0831Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • 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
    • G06F12/0817Cache consistency protocols using directory methods
    • G06F12/0822Copy directories
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1615Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using a concurrent pipeline structrure
    • 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
    • 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
    • G06F2212/621Coherency control relating to peripheral accessing, e.g. from DMA or I/O device

Landscapes

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

Description

本開示は、データ処理に関し、特に、キャッシュに関するものである。
マルチプロセッサシステムでは、それぞれがそれ自身のキャッシュを有するノード又はプロセッサが多数存在する場合がある。これらのノードは、一つ又は複数の共有キャッシュや共有メモリに接続されていてもよい。従って、このような共有キャッシュや共有メモリの一つ、もしくは、上記プロセッサのうちの一つのローカルキャッシュには、特定のデータ値を格納することができる。そのため、あるノードがデータ値にアクセスしたい場合、そのデータを別のノードから取得しなければならないこともある。これは、リクエスタがいわゆるホームノードに要求を送信することにより行われ、これによりシステム全体のデータのコヒーレンシが保たれる。その後、ホームノードは、例えば、メインシステムメモリからデータにアクセスする前に、そのデータがシステム内でコヒーレントに保持されるよう、ノードを「再同期」させる。この処理は、異なるノードが同じデータ値を要求した場合に、いずれ繰り返し行わなければならないこともある。しかしながら、メインシステムメモリへのアクセスは時間のかかる作業となり得る。
第1構成例から見ると、要求されたデータに関してソースノードから送られたスヌープ要求を受信する受信回路と、送信回路と、少なくとも一つのデータ値をキャッシュするキャッシュ回路とを具備するデータ処理装置が提供される。上記スヌープ要求は、その要求されたデータをソースノードに返送するかどうかの指示を含み、上記少なくとも一つのデータ値がその要求されたデータを含む場合、上記送信回路は、上記指示に応じて、その要求されたデータを有するソースノードに応答を送信する。
第2構成例から見ると、要求されたデータに関するデータ要求を受信する受信回路と、少なくとも一つの他のノードに少なくとも一つのスヌープ要求を送信する送信回路とを具備するデータ処理装置が提供される。各スヌープ要求は、その他のノードが上記要求されたデータを有することに応じて、その要求されたデータをデータ処理装置に転送し戻すべきかどうかを示す指示を含む。
第3構成例から見ると、少なくとも一つのデータ値をキャッシュする工程と、要求されたデータに関してソースノードから送られたスヌープ要求を受信する工程と、スヌープ要求に対する応答を送信する工程とを具備するデータ処理方法が提供される。上記スヌープ要求は、要求されたデータを上記ソースノードに返送するかどうかの指示を含み、少なくとも一つのデータ値が上記要求されたデータを含む場合、上記送信回路は、上記指示に応じて、その要求されたデータを有するソースノードに応答を送信する。
第4構成例から見ると、要求されたデータに関するデータ要求を受信する工程と、少なくとも一つの他のノードに少なくとも一つのスヌープ要求を送信する工程とを具備するデータ処理方法が提供される。各スヌープ要求は、その他のノードが上記要求されたデータを有することに応じて、その要求されたデータを転送し戻すべきかどうかを示す指示を含む。
本発明について、添付の図面に示すその実施例を参照しながら、ほんの一例としてさらに説明する。
一実施例に係るデータ処理装置を備えたシステムを示す図である。 一実施例に係るソースノード、システムキャッシュを有するホームノード、4つのリクエスタノードを示す図である。 一実施例に係るリクエスタノードとソースノードとの間におけるメッセージのやり取りを概略的に示す図である。 一実施例に係る図2に示すようなシステム内で時間をかけてやり取りされる一連のメッセージを示す図である。 一実施例に係る図2に示すようなシステム内で時間をかけてやり取りされる一連のメッセージを示す図である。 一実施例に係るデータ処理方法を示す図である。
添付の図面を参照した実施例の考察に先立って、実施例を以下に説明する。
一構成例によれば、要求されたデータに関してソースノードから送られたスヌープ要求を受信する受信回路と、送信回路と、少なくとも一つのデータ値をキャッシュするキャッシュ回路とを具備するデータ処理装置が提供される。上記スヌープ要求は、その要求されたデータを上記ソースノードに返送するかどうかの指示を含み、上記少なくとも一つのデータ値がその要求されたデータを含む場合、上記送信回路は、上記指示に応じて、その要求されたデータを有する上記ソースノードに応答を送信する。
ソースノードは、システム全体のコヒーレンシを保つシステム内のホームノードであってもよく、ホームノードのプロキシであってもよい。例えば、多数のチップを有する相互接続システムでは、各チップにソースノードが存在し、ホームノードはその中の一つのチップに存在してもよい。そのため、コヒーレンシ機能の一部は、ノードがホームノードと通信を行う必要なく実施されることがあり、ノードが異なるチップにあると、時間がかかる場合がある。その代わりに、ローカルソースノードを用いて、コヒーレンシをある程度保つことができる。そのような実施例では、ソースノードによって、スヌープ要求が生成される。このスヌープ要求で参照されているデータを有する可能性のある応答ノードがそのスヌープ要求を受信する。このスヌープ要求は、その要求されたデータをソースノードに返送するか否かの指示を含む。これは、コヒーレンシを維持するために行う他のコヒーレンシ維持処理に加えて行われてもよい。この指示は、具体的には、データをソースノードに返送しない(例えば、デフォルトではデータをソースノードに返送する設定の場合)ことを指示するものであってもよく、もしくは、データをソースノードに返送する(例えば、デフォルトではデータをソースノードに返送しない設定の場合)ことを指示するものであってもよい。いずれの場合も、上記指示(及び任意のデフォルト動作)に基づいて、要求されたデータを含むスヌープ要求への応答がソースノードに送信される。このように、ソースノードは、メインメモリにデータを書き戻し、その後メモリから読み出す必要なく、データのコピーを取得することができる。
いくつかの実施例では、上記要求されたデータは、そのデータが共有されていることを示すキャッシュ状態で上記キャッシュ回路に保存される。共有キャッシュ状態は、そのデータが複数のノードでアクセス可能である(かつローカルに保存されている)が、このノードは、そのローカルに保存されたデータを修正する許可を有していないことを示す。
いくつかの実施例では、上記少なくとも一つのデータ値は、要求されたデータを含み、上記送信回路は、上記ホームノードでその要求されたデータに対する要求を行った要求ノードに対して、この要求されたデータを含んださらなる応答を送信する。従って、そのソースノードに送られた応答は、データ処理装置によって発行された唯一の応答ではなくてもよい。具体的には、データは、転送ノードに直接転送し、そして再び(スヌープ要求に与えられた指示に応じて)ソースノードに転送し戻してもよい。このように、そのデータへのアクセスを今後より迅速に行えるよう、かつ、その要求ノードへの送信を迅速に行ってアクセスを行えるよう、ソースノードへのデータ送信を迅速に行うことができる。
いくつかの実施例では、上記要求されたデータをソースノードに返送するかどうかの指示は、上記スヌープ要求の一つのタイプとして暗号化されている。このタイプのスヌープ要求は、それ自体がデータをソースノードに返送するべきか否かを示すものであってもよい。また、他のいくつかの実施例では、上記要求されたデータをソースノードに返送するかどうかの指示は、上記スヌープ要求の一つのビットとして暗号化されている。従って、このスヌープ要求自体は、ソースへのデータの返送が行われる可能性があるか否かを示すフィールド(シングルビットフィールドなど)を有していてもよい。
いくつかの実施例では、上記送信回路は、上記条件に基づいて、上記応答を送信する。つまり、ノードがスヌープ要求メッセージに要求されたデータを有している際、そのスヌープ要求のデフォルト動作及び指示が、要求されたデータ値をソースノードに返送するべきであることを示す場合、追加条件は、その要求されたデータ値をソースノードに返送するか否かを決定する。
そのような追加条件としては、数多くの例が挙げられる。一方、いくつかの実施例では、データ処理装置は、返送許可モードから返送禁止モードにそのデータ処理装置を切り替えるモード切替回路を備えている。上記追加条件は、このデータ処理装置が返送許可モードにあることである。このモード切替回路は、ソースへの返送指示に対して応答するのに積極的であり、よって、適切な場合に、要求されたデータをソースノードに返送する状態と、ソースへの返送指示に対して応答するのに消極的であり、よって、適切な場合であっても、要求されたデータをソースノードに返送しない状態とにノードを切替え可能とする。
いくつかの実施例では、上記データ処理装置が返送禁止モードにあり、上記少なくとも一つのデータ値が上記要求されたデータを含み、その要求されたデータを上記ソースノードに返送すべきであることを上記指示が示している場合、上記送信回路は、要求されたデータがない場合は、ソースノードに別の応答を送信する。これにより、データ処理装置は、返送禁止モードにあるために、要求データを含む応答が送信できなかったとしても、別の応答(例えば、要求されたデータを含まない応答)を送信することができる。いくつかの実施例では、この別の応答は、データ処理装置の現在の状態(データ処理装置が返送禁止モードにあること)を含む。
いくつかの実施例では、上記データ処理装置は、返送許可モードと返送禁止モードとに切り替わる場合、データ処理装置の現在のモードを含む通知を上記送信回路から上記ソースノードに送信させるよう構成されている。ノードが要求されたデータをソースノードに返送すべきであることを示すソースへの返送指示をどのスヌープ要求に(すなわち、どのノードに)含むべきかを判断するために、ソースノードは上記通知を利用することができる。
いくつかの実施例では、上記スヌープ要求は、無効化スヌープ要求である。スヌープ要求は、要求ノードが行った元のアクセス要求が、要求されたデータ値を他のキャッシュにおいて無効にする必要があるというような無効化(非無効化とは対照的に)を要求するものである。これは、例えば、要求ノードが固有にデータを必要とする場合が考えられる。また、要求ノードがデータの修正を望む場合にも起こり得る。これらの場合のいずれにおいても、コヒーレンシは、他のノードがそれらのバージョンのデータを無効化することが必要となりうる。無効化スヌープ要求は、発行されると、要求されたデータのすべてのコピーを無効にするよう、そのデータがローカルにキャッシュされている可能性のあるすべてのノードに送られる。しかしながら、ソースノードがその要求されたデータのコピーを望む場合、そのデータを各ノードからソースノードに返送させることで、かなりの処理能力を使い果たしてしまう可能性がある。そのため、一つのノードにソースノードへのデータ返送を指示することができれば、処理能力をあまり使い果たさずに、無効化とデータ返送を行うことができる。いくつかの実施例では、スヌープ要求は、非無効化要求である。これらの場合、データをソースノードに返送すべきであることを示す指示を含む、要求されたデータを有する可能性のあるノードのうちの一つのノードに、一つのスヌープ要求を送ればよい。当然のことながら、データ処理装置は、無効化スヌープ要求と非無効化スヌープ要求との両方に対応するよう構成することができる。
他の構成例によれば、要求されたデータに関するデータ要求を受信する受信回路と、少なくとも一つの他のノードに少なくとも一つのスヌープ要求を送信する送信回路とを具備するデータ処理装置が提供される。各スヌープ要求は、その他のノードが上記要求されたデータを有することに応じて、その要求されたデータをデータ処理装置に転送し戻すべきかどうかを示す指示を含む。
上記によれば、スヌープ要求メッセージに指示を含むことにより、要求されたデータが受信ノードに保持されている場合に、そのデータを再びソースノードに与えるべきかどうかを受信ノードに示すことが可能となる。上述したように、この指示は、デフォルト動作と組み合わせることができる。つまり、デフォルト動作は、データをソースノードに返送する動作である場合もあり、指示はその反対を示すものであってもよい。また、デフォルト動作は、データをソースノードに返送しない動作である場合もあり、指示はデータをソースノードに返送すべきであることを示すものであってもよい。
いくつかの実施例では、データ処理装置は、上記少なくとも一つの他のノードのどのノードが、上記スヌープ要求及び上記要求されたデータを有していることに応じて、その要求されたデータを転送可能であるかのリストを保存する参加回路を備えている。上記少なくとも一つの他のノードのうちの一つが上記要求されたデータを転送可能であるかどうかに関する通知を上記受信回路が受信した場合、上記リストは更新される。また、上記送信回路は、上記参加回路からの結果に基づき、上記指示が要求されたデータをデータ処理装置に転送し戻すべきであることを示す場合、スヌープ要求の送信を禁止するよう構成されている。このように、ソースノードは、要求されたデータをソースノードに転送し戻すのに積極的であるノードと、そうでないノードとを把握することができる。そして、データ処理装置は、上記指示が要求されたデータをデータ処理装置に転送し戻すべきであることを示す場合、上記参加回路からの結果に基づき、スヌープ要求の送信を禁止することができる。例えば、ノードがソースノードにデータを返送できない(又は返送しない)ことを示した場合、送信回路は、そのデータはソースノードに返送すべきであることを示すノードへのスヌープ要求の送信を禁止してもよい。これにより、データ処理装置が必然的に拒絶されることになる不要な要求をしないようにすることができる。
いくつかの実施例では、上記受信回路が、上記要求されたデータを含まないスヌープ要求への応答を受信した場合、上記送信回路は、その要求されたデータにアクセスするためのメモリアクセス要求をメインメモリに送信する。それにより、ソースノードにデータを返送する準備ができていないノードを把握するのではなく、そのデータを、メインメモリや、場合によっては他のノードなど、他の場所から取得することにより拒絶に対処することができる。
いくつかの実施例では、上記データ処理装置は、上記少なくとも一つの他のノードの各ノードについて、少なくとも一つのヒューリスティックを保存し、その少なくとも一つのヒューリスティックに基づき、上記少なくとも一つの他のノードから選択されたノードを提供するヒューリスティック回路を備えている。上記送信回路は、この選択されたノードに上記スヌープ要求を送信するよう構成されている。使用可能なヒューリスティックとしては、数多くの例が挙げられるが、いくつかの実施例では、ヒューリスティックは、レイテンシを示すものである。従って、複数の他のノードのうちの一つからデータの読み出しを行う場合、最短のレイテンシが示されているノードに(データをソースノードに返送すべきであることを示す)スヌープ要求を送信することができる。その結果、より長いレイテンシを有するノードに対して、データをソースノードに返送すべきであることを示す要求が行われた場合と比較して、データ取得がより迅速に行われる。
いくつかの実施例では、上記データ処理装置は、少なくとも一つのデータ値をキャッシュするキャッシュ回路を備えている。上記受信回路が、上記要求されたデータを含むスヌープ要求への応答を受信した場合、その要求されたデータは上記キャッシュに保存される。このように返送されたデータ値をキャッシュに保存することにより、システム内の他のノードからデータを取得するのにスヌープ要求の発行が必要な場合(もしくは、メインシステムメモリからデータを取得する必要がある場合)と比較して、今後行われるそのデータへの要求をソースノードによってより迅速に返送することができる。その結果、そのデータへのその後の要求に関するレイテンシを改善することができる。このようなキャッシュとしては、数多くの例が挙げられるが、いくつかの実施例では、このキャッシュはシステムキャッシュである。システムキャッシュは、メモリ階層において、メインシステムメモリの前の最後のキャッシュレベルであってもよい。従って、システムは、システム内のすべてのノードによって共有可能であり、メインシステムメモリからそのデータにアクセスする場合と比べて、データへの迅速なアクセスが可能となる。
次に、図面を参照しながら、具体的な実施例について説明する。
図1は、データ処理システム100を示す。このデータ処理システム100には、ホームノード110、第1要求ノード120、第2要求ノード130が含まれる。第1要求ノード120と第2要求ノード130は、相互接続内のマスターノードであってもよい。図1に示す実施例では、第1要求ノード120を要求ノード、第2要求ノード130を応答ノードと呼ぶ。このデータ処理システム100の各ノード110、120、130は、キャッシュを備えている。各キャッシュは、3つのカラムを有して示されている。第1カラムはデータ値のアドレスを示し、第2カラムはそのデータ値自体を示し、第3カラムはそのデータ値に関連付けられたキャッシュ状態を示す。このキャッシュ状態は、本実施例では、特定のエントリが無効であり、上書き可能であることを示す「I」、特定のエントリが共有されダーティである(すなわち、特定のエントリが他のノードに共有されているが、ローカルに修正されるようそのノードに「所有」される)ことを示す「SD」、エントリがシステムの他のノードに共有され、修正不可能となるよう「共有」されることを示す「SC」、エントリがノードに固有に所有され、修正が行われないよう「排他的」であることを示す「UC」のいずれかであればよい。図1の実施例に示すように、ノード120、130の一方又は両方は、他方がアクセスできないデータ地にアクセス可能であってもよい。例えば、要求ノード120は、応答ノード130が保持するデータ値0x0094にアクセスできない。同様に、応答ノード130は、要求ノード120が保持するデータ値0x0090にアクセスできない。このため、要求ノード120は、データ値0x0094へのアクセスを求める場合、そのデータ値へのアクセスを得るため、データ処理システム100全体のコヒーレンシを維持するホームノード110に要求を送信する必要がある。これは、一つ又は複数のスヌープ要求を分配することにより行われる。
図1には図示していないが、データ処理システム100は、ホームノード110を介して接続されたメインシステムメモリをさらに備えていてもよい。ホームノード110からの要求に応じて、このメインシステムメモリからのデータの読み出しを行うことができる。しかしながら、メインシステムメモリへのアクセスは、通常、キャッシュの一つへのアクセスよりも遅いため、この処理には時間がかかる場合がある。
図2は、一実施例に係るデータ処理システム100を概略的に示す。4つの要求ノード120、130、140、150がソースノード160に接続され、このソースノード160がホームノード110に接続されている。ソースノードは、スヌープ要求が生じるノードである。従って、ソースノードは、ホームノード110のプロキシとして機能することができる、もしくは、そのホームノード110自体であってもよい。一般的に、ソースノード160をチップに設けて、ホームノード110を異なるチップに設けてもよい。これにより、速度が遅く、処理能力を制限し得るチップ間通信の量を低減することができる。
ホームノード110は、システムキャッシュ170にも接続されている。このシステムキャッシュは、システム100内の共有キャッシュとしての機能を果たし、例えば、メインシステムメモリから読み出されたデータに対して、今後より迅速なデータアクセスが行えるようキャッシュ処理を行うことができる。
図3は、応答ノード130として機能する要求ノードとソースノード160とがメッセージをやり取りする構造の例を概略的に示す。この例では、他の要求ノード120が、アドレス0x0090のデータへのアクセスをソースノード160に要求した場合を想定する。これにより、ソースノード160は、スヌープ要求を生成し、このスヌープ要求が要求ノード130に送られる。この例では、ソースノード160は、送信を行う回路である送信回路180と、他のノードからの送信を受信する回路である受信回路190と、他のノードのモードを追跡する回路(以下に説明する)である参加回路195と、データをローカルにキャッシュする回路であるキャッシュ回路200と、例えば、統計データ及び/又は履歴データに基づき、ヒューリスティック分析を行う回路であるヒューリスティック回路210とを備えている。要求/応答ノード130は、他のノードからの送信を受信する受信回路220と、送信を行う回路である送信回路230と、データをローカルにキャッシュする回路であるキャッシュ回路240と、この要求/応答ノード130の動作モードを切り替える回路であるモード切替回路250とを備えている。
前述したように、この例では、他の要求ノード120(この図では図示せず)が、現時点で応答ノード130に保持されているアドレス0x0090のデータへのアクセスを要求した場合を想定している。このデータ要求をソースノード160に送信すると、ソースノードはスヌープ要求メッセージを生成する。このスヌープ要求メッセージは、システム内のコヒーレンシの援助を目的とするものである。例えば、要求ノード120が、アドレス0x0090のデータに対する書き込みアクセスを要求している場合、スヌープ要求は、他のノード(応答ノード130など)が以前にそのデータに対する書き込みアクセスを要求した状況に対処することになる。2つのノードが両方そのデータへの書き込みアクセスを持つことは、そのデータの異なる値が異なるノードに保存されることになるため、不可能である。同様に、他のノード(応答ノード130など)がそのデータに対する読み出しアクセスを要求した場合、このデータは、要求ノード160で受信と更新が行われると、他のノード(応答ノード130など)で保持されたそのコピーが古くなるため、そのデータの無効化を行わなければならない。
本例では、スヌープ要求は、ソースノード160の送信回路180によって送信され、応答ノード130の受信回路220によって受信される。スヌープ要求メッセージには、応答ノード130で保持されたデータ値がその応答ノードに転送し戻されるべきか否かを示す特別な識別子(RtnToSrc)が含まれる。この識別子は、この例では、単一ビットの形態を取るが、他の実施例では、スヌープ要求メッセージのタイプの一部を形成してもよい。この場合、応答ノードのデフォルト動作と連動した指示(すなわち、提供されたデータで対応しない指示)により、スヌープ要求に応じてデータ提供が行われる。この応答メッセージには、要求されたデータ値が応答ノード130のキャッシュ240に保持された状態(すなわち、値5)で含まれている。この応答メッセージは、応答ノード130の送信回路230によって送信され、ソースノード160の受信回路190によって受信される。
図3に示す実施例では、応答ノード130は、モード切替回路250をさらに備えている。このモード切替回路は、ノードが、(要求されたとしても)RtnToSrc指示を履行しない第1の非返送モードと、RtnToSrc指示を履行する第2の返送モードとに切り替わることを可能にする。つまり、いずれの場合も、ノードは、スヌープ要求に応答することができる。しかしながら、応答ノード130のモードは、その要求にかかわらず、要求されたデータのソースノード160への返送を許可又は禁止することができる。動作モードの変更は、ソースノード160に通知することができ、ソースノード160は、RtnToSrc指示に応答する/しないノードを把握できるよう、その参加回路195内の情報を追跡する。このように、ソースノード160は、要求されたデータをソースノードに返送しないノードへデータを返送する要求の送信を回避することができる。
また、図3に示す実施例では、ソースノード160は、ヒューリスティック回路210を備えている。ソースノード160は、このヒューリスティック回路210により、ヒューリスティックデータを保持する。このデータは、例えば、他のノードに関する統計データや履歴データであってもよい。このデータは、例えば、RtnToSrc指示を発行するのに適切なノードを選択するために、ソースノードが行う学習処理の一部として用いてもよい。場合によっては、例えば、たった一つのノードが、スヌープ要求に応じて、要求されたデータの返送を行えばよい。従って、ソースノード160は、どのノードが最も迅速に応答する可能性が高いか、例えば、どれが一番レイテンシが短いかを、ヒューリスティックデータを用いて判断してもよい。
図4は、一実施例において行われる一連のメッセージのやり取りを示す。最初に、要求ノード120は、特定のデータ項目に対する固有のアクセスを要求するReadUniqueメッセージをソースノード160に発行する。その結果、ソースノード160は、ネットワーク内の他のノードに保持されたデータのコピーを無効にする。これは、要求されたデータのローカルにキャッシュされたコピーを有する可能性のあるノードにSnpUniqueメッセージ(無効化スヌープ要求の一例)を送信することで行われる。上記ノードのうちの一つのノード150だけ、RtnToSrc指示が1に設定され、ノードが要求されたデータを返送することを示している。他のノードは、要求されたデータを返送しないことを示す、RtnToSrc指示が0に設定されたメッセージを受信する。このように、ソースノード160は、メインシステムメモリを参照することなく、かつ、返送するデータの複数のコピーを必要とせずに、データのコピーを取得することができる。ソースノード160は、ヒューリスティックデータを有する場合、要求されたデータのコピーを返送する、レイテンシが最短のノードを求めるのにこのデータを用いてもよい。これにより、データをより迅速に要求ノード120に返送することができる。この場合、要求ノード150は、SnpRespDataメッセージにより要求されたデータを返送し、これが再びソースノード160に送り返される。各要求ノードでは、キャッシュ状態がSC(共有かつクリーン)からI(無効)に変更され、キャッシュラインにこれ以上依存すべきではないこと、並びに、キャッシュラインが上書き可能であることが示される。
ソースノード160は、応答ノード150からデータを受信すると、そのデータを要求ノード120に返送してもよく、及び/又は、システムキャッシュ170などのキャッシュ及び/又はメインシステムメモリに再びそのデータを保存してもよい。これにより、データを要求ノード120に迅速に(すなわち、メインメモリからのデータアクセスに遅延を生じさせずに)提供することができ、他のノードによって追加要求がなされた場合に、より迅速にアクセスできるようにキャッシュ170に保存することができる。
本説明では、応答ノードが、要求ノードに要求されたデータを有することを想定した。そうでない場合は、応答ノードが要求されたデータを提供できないことは明らかである。状況に応じて、このことに関する通知をソースノード160に送り返してもよいし、何ら応答を行わなくてもよい。例えば、ノードが、データの返送が許されていない非返送モードである場合、要求されたデータを有していないことを示さなくてもよい。
要求された場合(データの返送が行われないという結論をソースノード160が出すように、応答を受信するのに時間がかかり過ぎる場合)に、ノードがデータをソースノード160に返送しない場合、ソースノード160は、別の要求ノードから、又は、メインシステムメモリや、システムキャッシュ170などの共有キャッシュからデータを求めてもよい。これを行うかどうかの判断は、成功の予想とさまざまなオプションのそれぞれにかかる時間との比較に左右される。この場合も同様に、入手可能な場合は、ヒューリスティックデータにより判定を行うことができる。
図5は、一実施例において行われる一連のメッセージのやり取りを示す。この例では、要求ノード120は、データへの共有アクセスしか要求しない。従って、対応するReadSharedメッセージがソースノード160に送信されると、ソースノード160は、非無効化スヌープであるSnpSharedFwdを送信することができる。これは、要求ノード120がデータへの読み出しアクセスを有する唯一のノードであることを要求していない場合、他のノードでデータの無効化を行う必要がない。その代わりに、データを返送すべきであることを示すよう設定されたRtnToSrc指示を有するスヌープ要求を発行することにより、データのコピーを取得するだけで十分である。この場合も同様に、例えば、レイテンシを最小限に抑えるために、ヒューリスティックデータを用いて上記ノードからクエリーを行うノードを選択してもよい。応答ノード130は、このスヌープ要求を受信すると、SnpRespDataメッセージにより、要求されたデータをソースノード160に返送する。
なお、本実施例では、応答ノード130は、CompDataメッセージにおいて生じる要求されたデータをさらに要求ノード120に返送するよう指示される。そして、要求ノード120は、要求されたデータが受信されたことを示し、よってソースノード160が要求ノード120への要求されたデータの2度目の転送を行わなくてもよいことを示す指示(CompAck)によりソースノード160に応答することができる。
図6は、一実施例に係るデータ処理方法を示すフローチャート260である。この方法は、例えば、ソースノード160によって具現化されてもよい。この処理は、ステップ270で、要求ノード120が特定のデータに対する要求を受信することで開始する。ステップ280では、ソースノード160によりスヌープ要求が生成される。ステップ290では、データ値をソースノードに返送すべきであることを示すよう設定された指示(RtnToSrc)を有する一つのノードにスヌープ要求が送信される。このスヌープ要求の性質(無効化又は非無効化)は、ステップ270で受信したデータ要求に基づいて適宜設定される。ステップ300では、無効化スヌープ要求を発行すべきか否かを判断する。そうである場合は、ステップ310で、他のノードのキャッシュからのデータ値を無効にするため、要求されたデータのコピーを保存している可能性がある他のノードに同様のスヌープ要求を送信する。これらのメッセージでは、RtnToSrc指示は、ノードが要求されたデータのコピーを返送しないよう設定されている。これは、要求されたデータのコピーが一つしか必要ではない場合に、ソースノードがそのコピーを大量に受信するのを防止するのに寄与する。これが行われると、もしくは、ステップ300で、スヌープ要求が非無効化である場合、ステップ320で、返送されたデータが処理される。例えば、要求されたデータは、メモリや、システムキャッシュなどのキャッシュに保存することができる。また、要求されたデータは、適宜、要求ノードへ転送することもできる。
このように、要求されたデータを、メインシステムメモリに頼らずに取得することが可能であることが分かる。さらに、読み出されたデータは、その後の要求に対してより迅速に応答できるようキャッシュに保存することができる。
本出願において、「するよう構成された」という表現は、装置の要素が規定の動作を実行可能な構成を有することを意味するのに用いられる。これに関連して、「構成」とは、ハードウェアやソフトウェアを相互に接続する配置や方法を指す。例えば、装置は、規定の動作を行うための専用のハードウェアを有していてもよいし、プロセッサや他の処理装置は、その機能を実行するようプログラムされていてもよい。「するよう構成された」は、規定の動作を行うために、装置の要素に対して何らかの変更を加える必要があることを意味するものではない。
以上、本発明の例示的な実施例について、添付の図面を参照しながら詳細に説明したが、本発明はこれらの具体的な実施例に限定されるものではなく、当業者なら、添付の特許請求の範囲に記載の本発明の精神と範囲から逸脱することなく、さまざまな変更、追加、修正を加えることができることを理解されたい。例えば、本発明の範囲から逸脱することなく、従属請求項の特徴と独立請求項の特徴とをさまざまに組み合わせることができる。
100・・・データ処理システム
110・・・ホームノード
120、130、140、150・・・ノード
160・・・ソースノード
170・・・システムキャッシュ
180、230・・・送信回路
190、220・・・受信回路
195・・・参加回路
200、240・・・キャッシュ回路
250・・・モード切替回路

Claims (19)

  1. 要求されたデータに関してソースノードにより送られた所与の処理を示すスヌープ要求を受信する受信回路と、
    送信回路と、
    少なくとも一つのデータ値をキャッシュするキャッシュ回路と、を具備し、
    前記スヌープ要求は、前記要求されたデータをソースノードに返送するかどうかの指示を含み、
    前記少なくとも一つのデータ値が前記要求されたデータを含む場合、前記送信回路は、前記指示に応じて、前記ソースノードに当該要求されたデータを有する応答を送信するよう適合されているものであって、前記指示が前記要求されたデータを前記ソースノードに返送しないとの指示である場合には、前記要求されたデータを前記ソースノードに送信しないように適合されている、データ処理装置であって、
    当該データ処理装置は、スヌープ要求の受信に応答して、前記キャッシュ回路内の前記要求されたデータに対して前記所与の処理を実行するよう適合され、
    前記指示は、前記所与の処理から独立している、データ処理装置。
  2. 前記要求されたデータは、当該要求されたデータが共有されていることを示すキャッシュ状態で前記キャッシュ回路に保存される、請求項1に記載のデータ処理装置。
  3. 前記少なくとも一つのデータ値は、前記要求されたデータを含み、前記送信回路は、ホームノードで前記要求されたデータに対する要求を行った要求ノードに対して、前記要求されたデータを含んださらなる応答を送信するよう適合されている、請求項1又は2に記載のデータ処理装置。
  4. 前記要求されたデータを前記ソースノードに返送するかどうかの指示は、前記スヌープ要求の一つのタイプとして暗号化されている、請求項1~3のいずれか一項に記載のデータ処理装置。
  5. 前記要求されたデータを前記ソースノードに返送するかどうかの指示は、前記スヌープ要求の一つのビットで符号化されている、請求項1~3のいずれか一項に記載のデータ処理装置。
  6. 前記送信回路は、追加条件に応じて、前記応答を送信するよう適合されている、請求項1~5のいずれか一項に記載のデータ処理装置。
  7. 返送許可モードから返送禁止モードに前記データ処理装置を切り替えるモード切替回路を具備し、
    前記追加条件は、前記データ処理装置が返送許可モードにあることである、請求項6に記載のデータ処理装置。
  8. 前記データ処理装置が返送禁止モードにあり、前記少なくとも一つのデータ値が前記要求されたデータを含み、当該要求されたデータを前記ソースノードに返送すべきであることを前記指示が示している場合、前記送信回路は、前記ソースノードに前記要求されたデータがない別の応答を送信するよう適合されている、請求項7に記載のデータ処理装置。
  9. 前記返送許可モードと前記返送禁止モードとに切り替わる場合、前記データ処理装置の現在のモードを含む通知を前記送信回路から前記ソースノードに送信させるよう適合されている、請求項7に記載のデータ処理装置。
  10. 前記スヌープ要求は、無効化スヌープ要求である、請求項1~9のいずれか一項に記載のデータ処理装置。
  11. 要求されたデータに関するデータ要求を受信する受信回路と、
    少なくとも一つの他のノードに所与の処理を示す少なくとも一つのスヌープ要求を送信する送信回路と、を具備するデータ処理装置であって、
    各スヌープ要求は、前記要求されたデータを有する前記スヌープ要求のターゲットに応じて、前記要求されたデータを前記データ処理装置に転送し戻すべきかどうかを示す指示を含み、
    前記少なくとも一つの他のノードは、前記スヌープ要求の受信に応答して、前記要求されたデータに対して前記所与の処理を実行するよう適合されているものであって、前記指示が前記要求されたデータを前記データ処理装置に転送し戻すべきでないとの指示である場合には、前記要求されたデータを前記データ処理装置に送信しないように適合され
    前記指示は、前記所与の処理から独立している、データ処理装置。
  12. 前記少なくとも一つの他のノードのどのノードが、前記スヌープ要求及び前記要求されたデータを有していることに応じて、前記要求されたデータを転送可能であるかのリストを保存する参加回路を具備し、
    前記少なくとも一つの他のノードのうちの一つが前記要求されたデータを転送可能であるかどうかに関する通知を前記受信回路が受信した場合、前記リストが更新され、
    前記送信回路は、前記参加回路からの結果に基づき、前記指示が要求されたデータを前記データ処理装置に転送し戻すべきであることを示すところの前記スヌープ要求の送信を禁止するよう適合されている、請求項11に記載のデータ処理装置。
  13. 前記受信回路が、前記要求されたデータを含まない前記スヌープ要求への応答を受信した場合、前記送信回路は、前記要求されたデータにアクセスするためのメモリアクセス要求をメインメモリに送信するよう適合されている、請求項11又は12に記載のデータ処理装置。
  14. 前記少なくとも一つの他のノードの各ノードについて、少なくとも一つのヒューリスティックを保存し、当該少なくとも一つのヒューリスティックに基づき、前記少なくとも一つの他のノードから選択されたノードを提供するヒューリスティック回路を具備し、
    前記送信回路は、前記選択されたノードに前記スヌープ要求を送信するよう適合されている、請求項11~13のいずれか一項に記載のデータ処理装置。
  15. 前記ヒューリスティックは、レイテンシを示すものである、請求項14に記載のデータ処理装置。
  16. 前記少なくとも一つのデータ値をキャッシュするキャッシュ回路をさらに具備し、
    前記受信回路が、前記要求されたデータを含む前記スヌープ要求への応答を受信した場合、前記要求されたデータは前記キャッシュ回路に保存される、
    ことを特徴とする請求項11~15のいずれか一項に記載のデータ処理装置。
  17. 前記キャッシュ回路はシステムキャッシュである、請求項16に記載のデータ処理装置。
  18. 少なくとも一つのデータ値をキャッシュ回路によってキャッシュする工程と、
    要求ノードからの要求されたデータに関してソースノードにより送られた所与の処理を示すスヌープ要求を受信回路によって受信する工程と、
    前記スヌープ要求に対する応答を送信回路によって送信する工程と、を具備し、
    前記スヌープ要求は、前記要求されたデータを前記ソースノードに返送するかどうかの指示を含み、
    前記少なくとも一つのデータ値が前記要求されたデータを含む場合、前記送信回路は、前記指示に応じて、前記要求されたデータを、前記ソースノードに送信するものであて、前記指示が前記要求されたデータを前記ソースノードに返送しないとの指示である場合には、前記送信回路は、前記要求されたデータを前記ソースノードに送信せず
    前記スヌープ要求は前記要求されたデータに対して前記所与の処理を引き起こし、
    前記指示は、前記所与の処理から独立している、データ処理方法。
  19. 要求されたデータに関するデータ要求を受信回路によって受信する工程と、
    少なくとも一つの他のノードに所与の処理を示す少なくとも一つのスヌープ要求を送信回路によって送信する工程と、を具備し、
    各スヌープ要求は、前記少なくとも一つの他のノードが前記要求されたデータを有することに応じて、前記要求されたデータを転送し戻すべきかどうかを示す指示を含み、
    前記スヌープ要求は、前記少なくとも一つの他のノードのキャッシュにある前記要求されたデータに対して前記所与の処理を前記少なくとも一つの他のノードに引き起こすものであって、前記指示が前記要求されたデータを転送し戻さないとの指示である場合には、前記少なくとも一つの他のノードは、前記要求されたデータを転送し戻さず
    前記指示は、前記所与の処理から独立している、データ処理方法。
JP2018014913A 2017-02-08 2018-01-31 スヌープ要求への対応 Active JP7328742B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/427,410 US10579526B2 (en) 2017-02-08 2017-02-08 Responding to snoop requests
US15/427,410 2017-02-08

Publications (2)

Publication Number Publication Date
JP2018152054A JP2018152054A (ja) 2018-09-27
JP7328742B2 true JP7328742B2 (ja) 2023-08-17

Family

ID=61283483

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018014913A Active JP7328742B2 (ja) 2017-02-08 2018-01-31 スヌープ要求への対応

Country Status (5)

Country Link
US (1) US10579526B2 (ja)
JP (1) JP7328742B2 (ja)
CN (1) CN108491351B (ja)
GB (1) GB2566564B (ja)
TW (1) TWI762565B (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174557A1 (en) 2006-01-26 2007-07-26 Nec Corporation Multiprocessor system and its operational method
JP2009169877A (ja) 2008-01-21 2009-07-30 Hitachi Ltd スヌープフィルタ内蔵アドレスデコーダ
WO2012035605A1 (ja) 2010-09-13 2012-03-22 富士通株式会社 情報処理装置および情報処理装置の制御方法
US20140095807A1 (en) 2012-09-28 2014-04-03 Qualcomm Technologies, Inc. Adaptive tuning of snoops
US20140281059A1 (en) 2013-03-18 2014-09-18 Fujitsu Limited Arithmetic processing apparatus and control method of arithmetic processing apparatus

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6490661B1 (en) 1998-12-21 2002-12-03 Advanced Micro Devices, Inc. Maintaining cache coherency during a memory read operation in a multiprocessing computer system
US6772298B2 (en) 2000-12-20 2004-08-03 Intel Corporation Method and apparatus for invalidating a cache line without data return in a multi-node architecture
US7886112B2 (en) * 2006-05-24 2011-02-08 Sony Computer Entertainment Inc. Methods and apparatus for providing simultaneous software/hardware cache fill
US7555597B2 (en) * 2006-09-08 2009-06-30 Intel Corporation Direct cache access in multiple core processors
US8375227B2 (en) * 2009-02-02 2013-02-12 Microsoft Corporation Abstracting programmatic representation of data storage systems
US8868847B2 (en) * 2009-03-11 2014-10-21 Apple Inc. Multi-core processor snoop filtering
US8934462B2 (en) * 2009-10-07 2015-01-13 Qualcomm Incorporated Methods and systems for exploitation of well-connected nodes in peer-to-peer wireless networks
US9009417B2 (en) * 2010-08-27 2015-04-14 Hitachi, Ltd. Storage control apparatus and operating mode control method of storage control apparatus
US9235519B2 (en) * 2012-07-30 2016-01-12 Futurewei Technologies, Inc. Method for peer to peer cache forwarding
US9218286B2 (en) * 2012-09-27 2015-12-22 Apple Inc. System cache with partial write valid states
GB2539382B (en) * 2015-06-01 2017-05-24 Advanced Risc Mach Ltd Cache coherency
GB2539641B (en) * 2015-06-11 2019-04-03 Advanced Risc Mach Ltd Coherency between a data processing device and interconnect

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070174557A1 (en) 2006-01-26 2007-07-26 Nec Corporation Multiprocessor system and its operational method
JP2007199999A (ja) 2006-01-26 2007-08-09 Nec Computertechno Ltd マルチプロセッサシステム及びその動作方法
JP2009169877A (ja) 2008-01-21 2009-07-30 Hitachi Ltd スヌープフィルタ内蔵アドレスデコーダ
WO2012035605A1 (ja) 2010-09-13 2012-03-22 富士通株式会社 情報処理装置および情報処理装置の制御方法
US20130159636A1 (en) 2010-09-13 2013-06-20 Fujitsu Limited Information processing apparatus and control method of information processing apparatus
US20140095807A1 (en) 2012-09-28 2014-04-03 Qualcomm Technologies, Inc. Adaptive tuning of snoops
US20140281059A1 (en) 2013-03-18 2014-09-18 Fujitsu Limited Arithmetic processing apparatus and control method of arithmetic processing apparatus
JP2014182488A (ja) 2013-03-18 2014-09-29 Fujitsu Ltd 演算処理装置、及び演算処理装置の制御方法

Also Published As

Publication number Publication date
US20180225210A1 (en) 2018-08-09
US10579526B2 (en) 2020-03-03
TW201830254A (zh) 2018-08-16
TWI762565B (zh) 2022-05-01
GB2566564A (en) 2019-03-20
GB201800880D0 (en) 2018-03-07
JP2018152054A (ja) 2018-09-27
CN108491351A (zh) 2018-09-04
GB2566564B (en) 2020-12-02
CN108491351B (zh) 2024-03-22

Similar Documents

Publication Publication Date Title
US9235519B2 (en) Method for peer to peer cache forwarding
JP4928812B2 (ja) タグ付きキャッシュ状態に基づいて下位レベル・キャッシュへの参照なしに相互接続ファブリック上にリクエストを送出するためのデータ処理システム、キャッシュ・システム、および方法
US7032078B2 (en) Shared memory multiprocessing system employing mixed broadcast snooping and directory based coherency protocols
US7386680B2 (en) Apparatus and method of controlling data sharing on a shared memory computer system
US7389388B2 (en) Data processing system and method for efficient communication utilizing an in coherency state
US8140770B2 (en) Data processing system and method for predictively selecting a scope of broadcast of an operation
TWI463318B (zh) 快取一致性處理系統、快取記憶體,及其方法
TWI393005B (zh) 用於在具有多重一致性定義域之資料處理系統中處置清空操作之資料處理系統、快取系統以及方法
US6654858B1 (en) Method for reducing directory writes and latency in a high performance, directory-based, coherency protocol
US20150058570A1 (en) Method of constructing share-f state in local domain of multi-level cache coherency domain system
US8806147B2 (en) System and method for creating ordering points
JP2013058225A (ja) マルチプロセッサ・システムにおけるキャッシュ・コヒーレンスにおいて用いるフォワード状態
JP2008097598A (ja) 共用のグローバル・コヒーレンシ状態を支援するプロセッサ、データ処理システム、および方法
US7222220B2 (en) Multiprocessing system employing address switches to control mixed broadcast snooping and directory based coherency protocols transparent to active devices
JP5004571B2 (ja) 同報通信範囲を示す無効な整合状態を正確に形成するためのデータ処理システム、キャッシュ・システム、および方法
US7454578B2 (en) Data processing system and method for predictively selecting a scope of broadcast of an operation utilizing a location of a memory
JP7277075B2 (ja) スヌープリクエストに対する応答の転送
JP7328742B2 (ja) スヌープ要求への対応
US20050154863A1 (en) Multi-processor system utilizing speculative source requests
JP2001101148A (ja) 分散共有メモリ型並列計算機
KR20110070772A (ko) 분산 메모리를 가지는 다중 프로세서 시스템을 위한 네트워크 부하 감소 방법 및 노드의 구조

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210122

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221004

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230104

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20230306

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230403

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230804

R150 Certificate of patent or registration of utility model

Ref document number: 7328742

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150