JP2021057884A - ネットワークオンチップにおけるブロードキャストのエミュレート - Google Patents

ネットワークオンチップにおけるブロードキャストのエミュレート Download PDF

Info

Publication number
JP2021057884A
JP2021057884A JP2020125215A JP2020125215A JP2021057884A JP 2021057884 A JP2021057884 A JP 2021057884A JP 2020125215 A JP2020125215 A JP 2020125215A JP 2020125215 A JP2020125215 A JP 2020125215A JP 2021057884 A JP2021057884 A JP 2021057884A
Authority
JP
Japan
Prior art keywords
tier
unit
packet
subset
packets
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.)
Granted
Application number
JP2020125215A
Other languages
English (en)
Other versions
JP7369102B2 (ja
Inventor
ロバートソン・イアン
Robertson Iain
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.)
Ultrasoc Technologies Ltd
Original Assignee
Ultrasoc Technologies 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 Ultrasoc Technologies Ltd filed Critical Ultrasoc Technologies Ltd
Publication of JP2021057884A publication Critical patent/JP2021057884A/ja
Application granted granted Critical
Publication of JP7369102B2 publication Critical patent/JP7369102B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17393Indirect interconnection networks non hierarchical topologies having multistage networks, e.g. broadcasting scattering, gathering, hot spot contention, combining/decombining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1881Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with schedule organisation, e.g. priority, sequence management
    • 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/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7825Globally asynchronous, locally synchronous, e.g. network on chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/806Broadcast or multicast traffic

Abstract

【課題】ネットワークオンチップ(NoC)におけるブロードキャストをエミュレートできる方法を提供する。【解決手段】通信ユニットの集合を有する集積回路チップであって、それぞれのユニットは、1つのユニットによって送信される1つのデータパケットが、ただ1つのユニットだけによって受信可能なプロトコルにしたがって動作する。それぞれのユニットは、複数のティアのうちの1つを有する少なくとも1つのパケットを少なくとも1つの別のユニットに送信し、かつ、ティア毎に、このティアのパケットが送信される宛先ユニットの部分集合が指定される。それぞれユニットは、複数のティアのうちの1つを有するパケットを受信し、受信されたパケットのティアを特定し、受信したパケットのティアとは異なるティアを有するパケットを、異なるティアについて、それぞれ対応する、宛先ユニットの部分集合に順次に送信する。【選択図】なし

Description

本発明は、ネットワークオンチップ(NoC:Network on Chip)内でのデータ伝送に関する。
背景技術
半導体技術における進歩に伴う、より小型の製品に対する市場の需要は、複数のシステムオンチップ(SoC:System on Chip)デバイスの開発に結び付いた。これらのようなデバイスでは、組み込みシステムのマルチコアデバイスが、単一のチップ上に集積されている。組み込みシステムにおけるトラヒックは、内部バスを介して伝達されるため、システムバスに直接にモニタリングツールを接続することはもはや不可能である。(マルチプロセッシングコアの集積およびより高い内部クロック周波数に結び付くこのような技術の開発に起因して)チップ周辺で伝送されるデータの量が増大するのに伴ってアクセスが結果的に減少することにより、産業によって要求されるタイムスケール内でセキュリティ違反、バグ、および安全性に対する懸案について、システムをモニタリングする外部モニタリングツールの能力が低下させられている。さらに、マルチコアデバイスが同じ単一のチップ上に組み込まれる場合、それぞれ個別のコアデバイスの挙動は、このコアデバイスと他のコアデバイスとの相互作用ならびにトリガおよび警報のようなリアルタイムイベントに起因して、単独の場合のその挙動とは異なる。
大規模なSoC設計では、コンポーネント間で送信されるメッセージのための伝送機構としてネットワークオンチップ(NoC:Network on Chip)を使用するのが望ましいことが多い。1つのメッセージをNoC内のすべてのデバイスに同時に送信するのが望ましいことがある。例えば、これらのようなネットワークでは、デバイスが迅速に応答しなければならないセキュリティ違反を示すトリガが分配されることがある。
NoCは一般に、1つのデバイスから別の複数のデバイスへのメッセージのブロードキャストをサポートすることはできない。その代わりにメッセージは、ネットワークにおいてそれぞれのデバイスに順次に送信される。それぞれのモジュールに順次にメッセージを送信するのには極めて長い時間を要することがある。
複数のネットワークコンポーネントに可能な限り迅速にメッセージを分配できるようにするために、NoCにおいてブロードキャストをエミュレートできるようにする方法が必要である。
発明の概要
第1の様相によれば、通信ユニットの集合(set)を有する集積回路チップが提供され、それぞれのユニットは、1つのユニットによって送信されるデータパケットが、ただ1つのユニットだけによって受信可能なプロトコルにしたがって動作するように構成されており、それぞれのユニットは、複数のティア(tier)のうちの1つを有する少なくとも1つのパケットを少なくとも1つの別のユニットに送信するように構成されており、かつティア毎に、上記のティアのパケットが送信される、宛先ユニットの部分集合(subset)が指定されるように構成されており、それぞれのユニットは、複数のティアのうちの1つを有するパケットを受信し、受信されたパケットのティアを特定し、受信されたパケットのティアとは異なるティアを有するパケットを、異なるティアについて、それぞれ対応する、宛先ユニットの部分集合に順次に送信するように構成されている。
それぞれのユニットは、受信されたパケットのティアの上のティアについて、それぞれ対応する、宛先ユニットの部分集合にパケットを順次に送信するように構成可能である。
さらにそれぞれのユニットは、パケットを受信すると、ティア毎に、このユニットによって生成される、このティアのパケットの個数を指定しかつ異なるティアについて、指定された個数のパケットを生成するように構成可能である。
複数のユニットの第1ユニットは、ユニットの第1部分集合に、第1ティアを有するパケットを順次に送信するように構成可能であり、それぞれの、ユニットの第1部分集合は、次いで、それぞれの、ユニットの第2部分集合に、第2ティアを有するパケットを順次に送信するように構成可能であり、ここで第1ティアは第2ティアよりも低い。
それぞれの、ユニットの第1部分集合はさらに、次いで、それぞれの、ユニットの第3部分集合に、第2ティアを有するパケットを順次に送信するように構成可能である。
それぞれの、ユニットの第2部分集合は、ユニットの第1部分集合のうちの1つからパケットを受信すると、次いで、それぞれの、ユニットの第4部分集合に、第3ティアを有するパケットを送信するように構成可能であり、ここで第2ティアは第3ティアよりも低い。
それぞれの通信ユニットは、より高いティアを有するパケットよりも前に、より低いティアを有するパケットを、これらのパケットの対応する、宛先ユニットの部分集合に順次に送信するように構成可能である。
ティアの個数は、4以下であってよい。ティアの個数は、より多くてよい。
複数の通信ユニットは、ネットワークを有していてよく、それぞれのユニットは、このネットワークの外部のエンティティと通信するように構成されていてよい。
それぞれのユニットは、このユニットの対応するエンティティからこのユニットにおいて受信されるメッセージの形式を、エンティティによって使用されるメッセージ形式から、ネットワークによって使用されるメッセージ形式に変換するように構成されていてよい。
複数のユニットのそれぞれは、メッセージインタフェースを有していてよく、パケットを受信すると、それぞれのユニットは、その対応するメッセージインタフェースに、パケットを有するデータの要素を表示するように構成されていてよい。
パケットは、このパケットのティアを指定するデータを有していてよい。
パケットは、ヘッダおよびペイロードを有していてよく、ヘッダは、パケットのティアを指定するデータを有する。
パケットは、トリガを有していてよい。
パケットは、AXIトランザクションを有していてよい。
第2の様相によれば、通信ユニットの集合を有する集積回路チップ上に実装する(implementation)方法が提供され、それぞれのユニットは、1つのユニットによって送信される1つのデータパケットが、ただ1つのユニットだけによって受信可能なプロトコルにしたがって動作するように構成されており、それぞれのユニットは、複数のティアのうちの1つを有する少なくとも1つのパケットを少なくとも1つの別のユニットに送信するように構成されており、かつティア毎に、このティアのパケットが送信される、宛先ユニットの部分集合が指定されるように構成されており、この方法では、複数のティアのうちの1つを有するパケットを受信し、受信されたパケットのティアを特定し、受信されたパケットのティアとは異なるティアを有するパケットを、この異なるティアについて、それぞれ対応する、宛先ユニットの部分集合に順次に送信する。
この方法では、受信されたパケットのティアの上のティアについて、それぞれ対応する、宛先ユニットの部分集合にパケットを順次に送信可能である。
この方法では、より高いティアを有するパケットよりも前に、より低いティアを有するパケットを、このパケットの対応する、宛先ユニットの部分集合に順次に送信可能である。
ティアの個数は、4以下であってよい。ティアの個数は、より多くてよい。
複数の通信ユニットは、ネットワークを有していてよく、またそれぞれのユニットは、このネットワークの外部のエンティティと通信するように構成されていてよい。
それぞれのユニットは、このユニットの対応するエンティティからこのユニットにおいて受信されるメッセージの形式を、エンティティによって使用されるメッセージ形式から、ネットワークによって使用されるメッセージ形式に変換するように構成されていてよい。
パケットは、このパケットのティアを指定するデータを有していてよい。
パケットは、ヘッダおよびペイロードを有していてよく、ヘッダは、パケットのティアを指定するデータを有する。
パケットは、トリガを有していてよい。
パケットは、AXIトランザクションを有していてよい。
以下では、添付の図面を参照して本開示を実施例で説明する。
集積回路チップ上の例示的なモニタリングアーキテクチャの概略図である。 集積回路チップ上の例示的なモニタリングアーキテクチャの概略図である。 ユニットの集合間で、NoCを介して通信するためのアーキテクチャを示す図である。 データパケットの一実施例を示す図である。 集積回路チップ上に実装する方法の一実施例を示す図である。
詳細な説明
以下の開示により、集積回路チップ上でネットワークにおけるブロードキャストをエミュレートするシステムおよび方法を説明する。集積回路チップは、SoCまたはマルチチップモジュール(MCM:multi-chip module)であってよい。
図1および2は、SoCについての例示的なモニタリングアーキテクチャおよびモニタリングアーキテクチャ内のコンポーネントの概略図である。このシステムは、セキュリティ違反、バグおよび安全性に対する懸案のような状況についてモニタリングされることが可能である。これらの図は、機能ブロックで構造を示している。当該技術分野においてよく知られた機能を実行するいつかの機能ブロックはところどころ、これらの図から省略されている。
図1には、SoC100についての例示的なモニタリングアーキテクチャの一般的な構造が示されている。モニタリング回路101は、システム回路102をモニタリングするために配置されている。図2には、この実施例においてコアデバイスであるローカルサブシステムと、通信インタフェースとを有する例示的なシステム回路が示されている。SoCのコアデバイス201、202および203は、モニタリング回路101にそれぞれ接続されている。図2には3つのコアデバイスが示されているが、モニタリングアーキテクチャには任意の個数のコアデバイスを適切に集積可能である。これらのコアデバイスは、オペレーティングシステム、例えばRTOS(real-time operating system)を動作させ、ソフトウェアを動作させることができ、またはデータを格納することができる。例示的なコアデバイスには、DSP(digital signal processor)、ビデオプロセッサ、アプリケーションプロセッサ、CPU、グラフィックスプロセッサ、システムメモリ、バス、システム相互接続部、カスタム回路およびデータエンジンが含まれる。しかしながら図2におけるコアデバイスとして、SoCの任意のコンポーネントが、モニタリングアーキテクチャに組み込まれるのに適している。これらのコアデバイスは、チップ上の任意の他のデバイスのエミュレータまたはシミュレータであってよい。例えば、1つのコアデバイスは、1つのプロセッサをエミュレート可能である。
モニタリング回路は、コアデバイスの動作をモニタリング可能であり、かつ選択的にはコアデバイスの動作も操作可能である。モニタリング回路は、通信インタフェース204に接続されている。通信インタフェース204は、オフチップのエンティティと通信するように構成可能である。例えば、モニタリング回路101は、通信インタフェース204を介してオフチップアナライザと通信可能である。通信インタフェース204はまた、オンチップの他のエンティティと通信するように構成可能である。例えば、モニタリング回路101は、通信インタフェース204を介してオンチップアナライザと通信可能である。図2には1つの通信インタフェースが示されているが、SoC上には任意の個数の通信インタフェースを集積可能である。実装されるこれらの通信インタフェースは、確立される接続のタイプに依存して選択される。例示的な通信インタフェースに含まれるのは、JTAG、パラレルトレース入出力、Auroraベースの高速シリアルインタフェース、ならびにUSB、イーサネット、RS232、PCIeおよびCANのようなシステムインタフェースの再利用である。モニタリング回路101内には、それぞれのコアデバイスに関連付けられている異なるモニタリング回路が設けられていてよい。択一的または付加的には、いくつかのモニタリング回路は、2つ以上のコアデバイスに関連付けられていてよい。択一的または付加的には、1つのコアデバイスは、2つ以上の、モニタリング回路の集合に関連付けられていてよい。一実施例において、図2のコアデバイスはプロセッサであり、このプロセッサは、モニタリング回路101のトレーシング回路によってモニタリングされる。このプロセッサは、例えばCPU、GPUまたはDSPであってよい。
集積回路チップは、複数のモニタリング回路モジュール101を有していてよい。それぞれの、モニタリング回路の集合は、モニタリングされる異なるローカルサブシステムを有していてよい。択一的または付加的には、いくつかのモニタリング回路は、2つ以上のローカルサブシステムに関連付けられていてよい。択一的または付加的には、2つ以上のローカルサブシステムは、1つの、モニタリング回路の集合に関連付けられていてよい。
状況によっては、例えば、セキュリティ違反またはバグが、1つの、モニタリング回路の集合によって検出される場合、別の複数のモニタリング回路モジュールにトリガを分配しなければならないことがある。このようなイベントにおいては、トリガを受信すると、それぞれのモニタリング回路モジュールに関連付けられているローカルサブシステムは、シャットダウンされるか、または安全性またはセキュリティについて修正されることが可能である。この場合、このイベントが、それぞれ別のモニタリング回路モジュールおよびそれに関連付けられているサブシステムに可能な限りに迅速に通信されることが望ましい。
大規模なSoC設計では、デバイス間でのメッセージまたはイベントについての伝送メカニズムとして、NoCを使用するのが好ましいことが多い。SoCによって使用されるプロトコルが異なる場合、SoCメッセージをNoCネイティブプロトコルに、またはSoCメッセージをNoCネイティブプロトコルから変換しなければならないことがある。NoCブリッジユニットにより、SoCメッセージをNoCネイティブプロトコルに、またはSoCメッセージをNoCネイティブプロトコルから変換するメカニズムが提供される。NoCブリッジは、メッセージインタフェースを介してそれぞれのSoCコンポーネントを接続し、またイベントの管理、アドレッシングおよび分配を担うこともできる。
NoCブリッジは、NoCへの接続のためのインタフェースを提供可能である。SoCからのメッセージおよび/またはイベントは、NoCをまたいで、NoCブリッジの他のインスタンスに伝送されるパケットに変換可能であり、これらのパケットはこのインスタンスにおいてSoCメッセージまたはイベントに逆変換される。
別の例示的な一実施形態では、NoCブリッジにより、AXI4ベースのNoCに接続するためのインタフェースが提供される。AXIは、NoCインタフェースプロトコルの一例である。SoCメッセージおよび/またはイベントは、NoCをまたいでNoCブリッジの他のインスタンスに伝送されるAXIトランザクションに変換可能であり、これらのAXIトランザクションはこのインスタンスにおいてSoCメッセージまたはイベントに逆変換される。このブリッジは、択一的には、異なるタイプの相互接続トランザクションの伝送を容易にならしめることが可能である。
以下の説明は、異なるNoCブリッジユニット間でのデータパケットの伝送に関する。AXI形態ブリッジにおけるイベントの分配について、「パケット」についての言及は、「AXIトランザクション」によって置き換え可能である。以下に説明する実施例は、より一般に、1対1通信が許容されるプロトコルを使用する任意のネットワークにも適用可能である。言い換えると、1つのユニットによって送信されるデータパケットが、ただ1つのユニットだけによって受信可能なプロトコルにしたがって通信ユニットが動作する任意のネットワークにおいて適用可能である。
図3の実施例では1つの集積回路が、単一の半導体基板上に形成されている。この集積回路は、16個のブリッジユニット300〜315を有する。それぞれのユニットは、SoC上の対応するモニタリング回路モジュール101およびそのローカルサブシステム316と通信する。
それぞれのユニット300〜315は、適切に構成設定されたパケットにメッセージデータをまとめ、かつリモートインタフェースを介して、意図した宛先にこれらを伝送するプロトコルプロセッサを有していてよい。リンクの反対側の端部において、受信ユニットでは、類似のプロトコル処理エンジンにより、そのリモートインタフェースを介してパケットが受信され、パケットからペイロードまたはトラヒックデータが抽出され、またそのローカルインタフェースを介してそのホストユニットにわたされる。またそれぞれのユニットの処理エンジンは、受信データのエラーのチェック、再伝送の要求、または肯定応答の供給、およびリンクの同期化のような補助的なタスクも処理可能である。
NoC内の通信ユニット300〜315は、ネットワークのプロトコルにしたがい、データパケット交換を介して通信する。図4にはデータパケット400の一実施例が示されている。パケット400には、ヘッダ401およびペイロード402が含まれている。ペイロードには、通信されるデータが含まれている。ペイロードにはメッセージまたはイベントが含まれていてよい。ヘッダには、パケットの意図された宛先を示すアドレスフィールド403が含まれている。パケットデータには、データパケットのティアを示すティア番号も含まれており、このティア番号は、以下でさらに詳しく説明するパケットを分配するために使用される。ヘッダには、データパケットのティアを示すティア識別子フィールド404が含まれていてよい。パケットのティアは、択一的にはパケットのペイロードに示されていてよい。ヘッダには、その他のフィールド405、例えばペイロードの長さ、データの優先レベル、誤り訂正ビットなどを示すフィールドも設けられていてよい。
それぞれのブリッジユニット300〜315により、それがサポートするティア毎に独立して、以下が、すなわち、(i)生成するパケットのあらかじめ定めた個数と、(ii)これらが送信される、宛先ユニットの部分集合と、が指定される。この実施例では、ブリッジユニット300〜315間でパケットを分配するために2ティアアプローチが使用される(tier-0およびtier-1)。(任意のユニットがイベントを開始することができるが)308のような第1ユニットのメッセージインタフェースにおいてメッセージまたはイベントEnumが受信されると、一連のパケットが生成され、このユニットについて設定されたすべての宛先に順次に送信される。ユニット308は、ユニット300、304および312の部分集合へのtier-0パケットと、ユニット309、310および311の部分集合へのtier-1パケットとを生成して送信するように構成されている。これらのtier-0パケットには、それらのペイロードとして{0,Enum}が含まれており、またこれらのtier-1パケットには、それらのペイロードとして{1,Enum}を有する。
ブリッジユニット312は、ユニット308からtier-0パケットを受信する。ユニット312は、tier-0パケットを生成してユニット0、4および8に送信しかつtier-1パケットを生成してユニット13、14および15に送信するようにあらかじめ設定されている。ユニット312により、これがtier-0パケットを受信したことが特定される。これは、パケットデータを読み出すことにより、例えば、パケットのティア番号が指定可能な、パケットのヘッダを読み出すことによって行うことができる。ユニット312は次に、ペイロード{1,Enum}を有する3つのtier-1パケットを生成し、ユニット313、314および315にこれらを順次に送信する。言い換えると、ユニット312は、受信されたパケットのティアの上のティアについて、その設定された、それぞれの、宛先ユニットの部分集合にパケットを生成して順次に送信する。このユニットについて指定されたtier-0ユニットにはパケットは送信されない。というのは、ユニット312によって受信されたパケットはtier-0パケットだからである。言い換えると、受信されたパケットのティアと同じティア(または該当する場合には、受信されるパケットのティアの下にある複数のティア)に対して設定された、ユニットの部分集合にはパケットは送信されない。ユニット312はまた、そのメッセージインタフェース上で、そのローカルなサブシステム316に、番号付けされたイベントEnumも送出する。
ブリッジユニット300および304は、ブリッジユニット312と同様に動作する。ブリッジユニット300は、ブリッジユニット301、302および303にtier-1パケットを送信し、ブリッジユニット304は、ブリッジユニット305、306および307にtier-1パケットを送信する。
ブリッジユニット309、310および311はそれぞれ、ブリッジ308からtier-1パケットを受信する。図3の実施例では、送信するより高いティアパケット(すなわちtier-1よりも高いティアを有するパケット)はない。しかしながらこれらのユニットが、より高いティア上の別のユニットにパケットを送信するように構成されていたとすると、ブリッジユニット309、310および311により、tier-1より上のすべてのティアに、しかもこれらに設定されている宛先ユニットにパケットが送信され、またそれらのメッセージインタフェース上に、番号付けされたイベントが送出されることになる。
同様にユニット313、314および315はそれぞれ、ユニット312によって送信されたtier-1パケットを受信する。それぞれのユニットは、番号付けされたイベントをメッセージインタフェース上に送出する。図3の実施例において、これらのユニット313、314および315は、より高いティアに送信される別のパケットを有しない。しかしながら、例えば、これらのユニットが、tier-2またはtier-3パケットを送信するようにあらかじめ設定されたとすれば、これらのパケットは、tier-1パケットが受信された後、これらのユニットからさらに分配されることになる。
したがって好ましくは、より小さな番号が付されたティアが、最初にサービスされる。というのは、これらのティアは、付加的なパケットをトリガすることができ、これにより、全体な遅延の減少が促進される。
上述のように、それぞれのユニットは、ティア毎に、そのティアのパケットが送信される、宛先ユニットの部分集合を指定するように構成されている。ティアおよびそれらの宛先毎に、生成するパケットの個数を指定するのに使用されるパラメータの一実施例は、図3のユニット308、309、312および313について以下に示されている。
ブリッジ308:
event_tiers_p={0,0,3,3}
ust_event_tiers_ip={0,0,3,3}
ust_event_destinations_ip={{},{},{9,10,11},{0,4,12}}
ブリッジ309:
event_tiers_p={0,0,3,3}
ust_event_tiers_ip={0,0,3,3}
ust_event_destinations_ip={{},{},{8,10,11},{1,5,13}}
ブリッジ312:
event_tiers_p={0,0,3,3}
ust_event_tiers_ip={0,0,3,3}
ust_event_destinations_ip={{},{},{13,14,15},{0,4,8}}
ブリッジ313:
event_tiers_p={0,0,3,3}
ust_event_tiers_ip={0,0,3,3}
ust_event_destinations_ip={{},{},{12,14,15},{1,5,9}}
この実施例では、それぞれのユニットは、event_tiers_pを使用して、それぞれのティアにおいて生成するパケットの最大個数を有するように設定されており、ここでビット[7:0]は、tier-0についてのパケットの最大個数を指定し、ビット[15:8]は、tier-1に対応する等々である。
イベントが送信される宛先は、入力パラメータust_event_destinations_ipを使用して指定される。このバスは、パラメータevent_tiers_pおよびhp_width_pに基づいてサイズが設定される。
それぞれのティアにおいて生成するイベントの実際の個数は、入力ust_event_tiers_ipを使用して変更可能であり、ビット[7:0]は、tier-0などについての実際の個数を指定する。これにより、例えば、サブシステムが一回、合成され、配置され、ルーティングされるタイル型の設計において、NoCブリッジを含むサブシステムの再使用が可能である。
上述の実施例において、以下の制約が満たされることは有益になり得る。
event_tiers_pに対し、ティアについて、設定されるイベントの最大個数が0である場合、好ましくは、より高いすべてのティアも0個のイベントを有するように構成されるべきである。例えば、以下の組み合わせは好ましくない。というのは、この組み合わせにより、tier-2について0個のイベントが指定され、tier-3について対してゼロでない数(4)が指定され、すなわち
event_tiers_p={0x04, 0x00, 0x10, 0x1}
だからである。
同様の制約は、ティア毎に生成するイベントの実際の個数を指定するust_event_tiers_ipに適用可能である。ティア毎に生成するイベントの実際の個数は、設定される最大値以下であるべきである。このことは、バイトで見れば、ust_event_tiers_ipが、event_tiers_p以下であるべきであることを意味する。
イベント宛先ベクトルust_event_destinations_ipは、以下のように構成可能である。すなわち、
ust_event_destinations_ip =
{last-tier-3-destination,…, first-tier-3-destination,
last-tier-2-destination,…, first-tier-2-destination,
last-tier-1-destination,…, first-tier-1-destination,
last-tier-0-destination,…, first-tier-0-destination}
である。
それぞれのユニットは、次のティアに進む前に、与えられた1つのティアについて、「最初の」宛先からはじまり、(このティアについてのイベントの「最大」および「実際」の個数の小さい方によって決まる)「最後」の宛先で終わってよい。
イベント宛先ベクトルにおいて指定される値は、hp_width_p幅であるべきである。
パケットが順次に送信される宛先の順序は、あらかじめ定められていてよい。積算計(integrator)が定められていてよい。それぞれのユニットは、宛先リストにわたって繰り返されてよい。NoCをまたがってより大きな遅延を受けることが知られている宛先は、宛先リストの前の方で指定可能である。パケットが送信される順序は、マルチティアイベントの処理について、考えられ得る最小遅延になるように設定可能である。
図5には、通信ユニットの集合を有する集積回路チップ上に実装する、本発明による方法の一実施例が要約されており、それぞれのユニットは、1つのユニットによって送信される1つのデータパケットが、ただ1つのユニットだけによって受信可能なプロトコルにしたがって動作するように構成されており、それぞれのユニットは、複数のティアのうちの1つを有する少なくとも1つのパケットを少なくとも1つの別のユニットに送信するように構成されており、かつティア毎に、このティアのパケットが送信される、宛先ユニットの部分集合を指定するように構成されている。この方法では、ステップ501において、複数のティアのうちの1つを有するパケットを受信する。ステップ502では、受信されたパケットのティアを特定する。ステップ503では、受信されたパケットのティアとは異なるティアを有するパケットを、この異なるティアについての、それぞれ対応する、宛先ユニットの部分集合に順次に送信する。
したがって本発明のシステムでは、別のユニットの部分集合にメッセージまたはイベントを伝搬するブリッジとして、NoCにおける少なくともいつかのユニットを扱う分散ティア構造が使用される。パケットのティアは、受信ユニットによって特定され、またこのパケットのティアは、これが、付加的なパケットを生成することによってメッセージまたはイベントをルーティングすべきか否か、そうであるならばどのユニットにルーティングするかを識別するために使用される。
好ましくはメッセージまたはイベントは、システムのすべてのユニットに送信すべきであり、このことは、1つのパケットがそれらのそれぞれに送信されるべきであることを意味する。慣用の方法を使用する場合、メッセージインタフェースにおいてイベントを最初に受信したユニットにおいて、すべてのパケットを生成することは、ユニットの個数が少ないのでない限り、重大なシリアル化遅延を招くおそれがある。またNoC内で完全な接続性が要求され、大量の資源を加えることにもなり得る。
したがって本発明の複数のティアを用いたアプローチを使用することにより、はじめにメッセージまたはイベントを受信したユニットは、一時点に1つのメッセージを順次に送信する間に、ブロードキャストをエミュレート可能である。ティアを用いたメッセージの分配により、ネットワークにおけるそれぞれ別のユニットにメッセージを送信するための時間を少なくすることが可能である。
好ましい一実施形態では、4つまでのティアリングのレベルが存在する。しかしながらティアリングのさらなるレベルを実現可能である。
図3に関連して説明した実施例において、それぞれのユニットは、受信されたパケットのティアの上のティアについて、それぞれ対応する、宛先ユニットの部分集合にパケットを順次に送信するように設定されている。しかしながらこれらのユニットは、受信されたパケットのティアとは異なる任意のティアにおける、宛先ユニットの部分集合にパケットを送信可能である。
ユニット間で送信されるデータパケットは、ユニキャストパケットまたはマルチキャスト(例えばイーサネット)パケットであってよい。
上述のシステムおよび方法は、以下の例示的な状況に使用可能である。上記の方法は、「ウェークアップ」メッセージを含み得るパケットをそれぞれのユニットに送信することにより、ローカルサブシステムにおけるデバイスのメモリを起動時に初期化することが望ましい場合に使用可能である。この方法はまた、ローカルサブシステムにおけるユニットまたはデバイスが、セキュリティまたは安全状態のような、それらの現在の状態が何であるかを示すために応答可能なメッセージをこれらのユニットまたはデバイスに分配するのが望ましい場合にも使用可能である。さらにローカルサブシステムにおけるユニットまたはデバイスは、これらが特定のメッセージ、命令の集合またはトリガを含むパケットを受信する場合に特定のメソッドを実行するように設定可能である。このメソッドはまた、ローカルサブシステムにおけるデバイスに、デバイスを設定するために使用されるデータを含むアップストリームメッセージを送信するためにも使用可能である。
図1〜3に示したシステムのそれぞれのコンポーネントは、専用のハードウェアで実現可能である。択一的には、図1〜3に示したシステムのそれぞれのコンポーネントは、ソフトウェアで実現可能である。いくつかのコンポーネントはソフトウェアで実現できるのに対し、別のいくつかのコンポーネントは専用のバードウェアで実現される。
説明したシステムは、コンピューティングベースデバイス内に適切に組み込み可能である。コンピューティングベースデバイスは、電子デバイスであってよい。適切にはコンピューティングベースデバイスは、ここで説明した方法を実現するために、デバイスの動作を制御するコンピュータ実行可能命令を処理する1つ以上のプロセッサを有する。コンピュータ実行可能命令は、メモリのような任意のコンピュータ読み出し可能媒体を使用して提供可能である。ここで説明した方法は、有形記憶媒体上の機械読取り可能な形態のソフトウェアによって実行可能である。ソフトウェアは、ここで説明した方法を実現するためにコンピューティングベースデバイスに供給可能である。
ここで出願人は、本明細書で説明したそれぞれ個別の特徴および2つ以上のこれらの特徴の任意の組み合わせを別個に開示しており、しかも、これらの特徴または特徴の組み合わせがここで開示した任意の課題を解決するか否かにかかわらず、このような特徴または組み合わせが、本明細書に基づき、当業者の広く一般的な知識に照らして全体として実行可能であるという範囲において、また特許請求の範囲を限定することなく開示している。出願人は、本発明の複数の様相が、このような任意の個別の特徴または特徴の組み合わせから構成され得ることを表明する。上記の説明を考慮すれば、本発明の範囲内において種々異なる変形を行い得ることは、当業者には明らかであろう。

Claims (15)

  1. 複数の通信ユニットの集合を有する集積回路チップであって、
    それぞれのユニットは、1つのユニットによって送信されるデータパケットが、ただ1つのユニットだけによって受信可能なプロトコルにしたがって動作するように構成されており、それぞれのユニットは、複数のティアのうちの1つを有する少なくとも1つのパケットを少なくとも1つの別のユニットに送信するように構成されており、かつティア毎に、前記ティアのパケットが送信される、宛先ユニットの部分集合が指定されるように構成されており、それぞれのユニットは、
    複数のティアのうちの1つを有するパケットを受信し、
    受信された前記パケットの前記ティアを特定し、
    受信された前記パケットの前記ティアとは異なるティアを有するパケットを、前記異なるティアについて、それぞれ対応する、宛先ユニットの前記部分集合に順次に送信する、集積回路チップ。
  2. それぞれのユニットが、受信された前記パケットの前記ティアの上の前記ティアについて、それぞれ対応する、宛先ユニットの前記部分集合にパケットを順次に送信するように設定されている、請求項1記載の集積回路チップ。
  3. さらにそれぞれの前記ユニットは、パケットを受信すると、ティア毎に、前記ユニットによって生成される、前記ティアのパケットの個数を指定しかつ異なる前記ティアについて、指定された前記個数のパケットを生成するように構成されている、請求項1または2記載の集積回路チップ。
  4. 複数の前記ユニットの第1ユニットは、ユニットの第1部分集合に、第1ティアを有するパケットを順次に送信するように構成されており、それぞれの、ユニットの前記第1部分集合は、次いで、それぞれの、ユニットの第2部分集合に、第2ティアを有するパケットを順次に送信するように構成されており、前記第1ティアは前記第2ティアよりも低い、請求項1から3までのいずれか1項記載の集積回路チップ。
  5. それぞれの、ユニットの前記第1部分集合はさらに、次いで、それぞれの、ユニットの第3部分集合に、前記第2ティアを有するパケットを順次に送信するように構成されている、請求項4記載の集積回路チップ。
  6. それぞれの、ユニットの前記第2部分集合は、ユニットの前記第1部分集合のうちの1つからパケットを受信すると、次いで、それぞれの、ユニットの第4部分集合に、第3ティアを有するパケットを送信するように構成されており、前記第2ティアは前記第3ティアよりも低い、請求項4または5記載の集積回路チップ。
  7. それぞれの通信ユニットは、より高いティアを有するパケットよりも前に、より低いティアを有するパケットを、当該パケットの対応する、宛先ユニットの部分集合に順次に送信するように構成されている、請求項1から6までのいずれか1項記載の集積回路チップ。
  8. 複数の前記通信ユニットは、ネットワークを有し、それぞれのユニットは、前記ネットワークの外部のエンティティと通信するように構成されている、請求項1から7までのいずれか1項記載の集積回路チップ。
  9. それぞれの前記ユニットは、前記ユニットの対応するエンティティから前記ユニットにおいて受信されるメッセージの形式を、前記エンティティによって使用されるメッセージ形式から、前記ネットワークによって使用されるメッセージ形式に変換するように構成されている、請求項8記載の集積回路チップ。
  10. 複数の前記ユニットのそれぞれは、メッセージインタフェースを有し、パケットを受信すると、それぞれのユニットは、前記ユニットの対応する前記メッセージインタフェースに、前記パケットを有するデータの要素を表示するように構成されている、請求項1から9までのいずれか1項記載の集積回路チップ。
  11. 前記パケットは、トリガまたは前記パケットの前記ティアを指定するデータを有する、請求項1から10までのいずれか1項記載の集積回路チップ。
  12. 通信ユニットの集合を有する集積回路チップ上に実装する方法であって、
    それぞれのユニットは、1つのユニットによって送信される1つのデータパケットが、ただ1つのユニットだけによって受信可能なプロトコルにしたがって動作するように構成されており、それぞれのユニットは、複数のティアのうちの1つを有する少なくとも1つのパケットを少なくとも1つの別のユニットに送信するように構成されており、かつティア毎に、前記ティアのパケットが送信される、宛先ユニットの部分集合を指定するように構成されており、前記方法は、
    複数の前記ティアのうちの1つを有するパケットを受信するステップと、
    受信された前記パケットの前記ティアを特定するステップと、
    受信された前記パケットの前記ティアとは異なるティアを有するパケットを、前記異なるティアについて、それぞれ対応する、宛先ユニットの前記部分集合に順次に送信するステップと、
    を含む、方法。
  13. 前記方法は、受信された前記パケットの前記ティアの上の前記ティアについて、それぞれ対応する、宛先ユニットの前記部分集合にパケットを順次に送信するステップを含む、請求項12記載の方法。
  14. 前記方法は、より高いティアを有するパケットよりも前に、より低いティアを有するパケットを、当該パケットの対応する、宛先ユニットの前記部分集合に順次に送信するステップを含む、請求項12または13記載の方法。
  15. 前記パケットは、トリガまたは前記パケットの前記ティアを指定するデータを有する、請求項12から14までのいずれか1項記載の方法。
JP2020125215A 2019-07-29 2020-07-22 ネットワークオンチップにおけるブロードキャストのエミュレート Active JP7369102B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1910810.9 2019-07-29
GB1910810.9A GB2586029B (en) 2019-07-29 2019-07-29 Emulating broadcast in a network on chip

Publications (2)

Publication Number Publication Date
JP2021057884A true JP2021057884A (ja) 2021-04-08
JP7369102B2 JP7369102B2 (ja) 2023-10-25

Family

ID=67809523

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020125215A Active JP7369102B2 (ja) 2019-07-29 2020-07-22 ネットワークオンチップにおけるブロードキャストのエミュレート

Country Status (5)

Country Link
US (1) US11411759B2 (ja)
EP (1) EP3779714B1 (ja)
JP (1) JP7369102B2 (ja)
CN (1) CN112311701B (ja)
GB (1) GB2586029B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115102896B (zh) * 2022-07-22 2022-11-15 北京象帝先计算技术有限公司 数据广播方法、广播加速器、noc、soc及电子设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010166240A (ja) * 2009-01-14 2010-07-29 Panasonic Corp 端末装置およびパケット送信方法
KR20110024132A (ko) * 2009-09-01 2011-03-09 한국과학기술원 멀티캐스팅 네트워크 온 칩, 그 시스템 및 네트워크 스위치
US20120170488A1 (en) * 2010-12-30 2012-07-05 Stmicroelectronics (Beijing) R&D Co. Ltd. Modified tree-based multicast routing schema
US20140269765A1 (en) * 2013-03-15 2014-09-18 Cognitive Electronics, Inc. Broadcast Network
WO2014141692A1 (ja) * 2013-03-13 2014-09-18 パナソニック株式会社 バス制御装置、中継装置およびバスシステム
JP2015043559A (ja) * 2013-08-24 2015-03-05 ニシラ, インコーポレイテッド エンドポイントにより配布されるマルチキャスト
JP2021013048A (ja) * 2019-07-03 2021-02-04 公立大学法人会津大学 3次元ネットワークオンチップによるスパイキングニューラルネットワーク

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002211453A1 (en) * 2000-10-03 2002-04-15 Attachmate Corporation System and method for communication with host internal area access
US8020163B2 (en) 2003-06-02 2011-09-13 Interuniversitair Microelektronica Centrum (Imec) Heterogeneous multiprocessor network on chip devices, methods and operating systems for control thereof
KR100555753B1 (ko) * 2004-02-06 2006-03-03 삼성전자주식회사 원칩 시스템에서 라우터들간의 라우팅 경로 설정 장치 및방법
ATE421823T1 (de) * 2004-08-12 2009-02-15 Koninkl Philips Electronics Nv Integrierte schaltung und verfahren zur paketvermittlungssteuerung
US7533244B2 (en) * 2006-05-09 2009-05-12 Le Nguyen Tran Network-on-chip dataflow architecture
US8320373B2 (en) * 2007-08-23 2012-11-27 Qualcomm Incorporated Packet-based processing system
CN101252515A (zh) * 2008-03-21 2008-08-27 北京大学深圳研究生院 一种片上网络芯片
WO2009140707A1 (en) * 2008-05-21 2009-11-26 Technische Universität Wien Cross-domain soc architecture for dependable embedded applications
US9118428B2 (en) * 2009-11-04 2015-08-25 At&T Intellectual Property I, L.P. Geographic advertising using a scalable wireless geocast protocol
US8593960B2 (en) * 2010-06-30 2013-11-26 Intel Corporation Providing a bufferless transport method for multi-dimensional mesh topology
KR101220481B1 (ko) * 2011-06-21 2013-01-21 성균관대학교산학협력단 네트워크 온 칩 시스템 및 그 라우팅 방법
US9625971B2 (en) * 2014-01-10 2017-04-18 Taiwan Semiconductor Manufacturing Company, Ltd. System and method of adaptive voltage frequency scaling
CN103970939A (zh) * 2014-04-22 2014-08-06 南京航空航天大学 一种层次化可重构的片上网络建模与仿真系统
US9923730B2 (en) * 2014-12-17 2018-03-20 Intel Corporation System for multicast and reduction communications on a network-on-chip
CN107852379A (zh) * 2015-05-22 2018-03-27 格雷研究有限公司 用于现场可编程门阵列的定向二维路由器和互连网络、以及所述路由器和网络的其他电路和应用
CN105095148B (zh) * 2015-08-14 2018-07-13 浪潮(北京)电子信息产业有限公司 一种混合型三维片上网络
EP3223172A1 (en) * 2016-03-21 2017-09-27 Alcatel Lucent Method and system for parallel query using bitmask multicast
EP3605951A1 (en) * 2016-12-27 2020-02-05 Chicago Mercantile Exchange, Inc. Message processing protocol which mitigates manipulative messaging behavior
US10693815B2 (en) * 2017-03-24 2020-06-23 Oracle International Corporation System and method to use all incoming multicast packets as a basis for GUID to LID cache contents in a high performance computing environment
US20210320820A1 (en) * 2017-09-29 2021-10-14 Fungible, Inc. Fabric control protocol for large-scale multi-stage data center networks

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010166240A (ja) * 2009-01-14 2010-07-29 Panasonic Corp 端末装置およびパケット送信方法
KR20110024132A (ko) * 2009-09-01 2011-03-09 한국과학기술원 멀티캐스팅 네트워크 온 칩, 그 시스템 및 네트워크 스위치
US20120170488A1 (en) * 2010-12-30 2012-07-05 Stmicroelectronics (Beijing) R&D Co. Ltd. Modified tree-based multicast routing schema
WO2014141692A1 (ja) * 2013-03-13 2014-09-18 パナソニック株式会社 バス制御装置、中継装置およびバスシステム
US20140269765A1 (en) * 2013-03-15 2014-09-18 Cognitive Electronics, Inc. Broadcast Network
JP2015043559A (ja) * 2013-08-24 2015-03-05 ニシラ, インコーポレイテッド エンドポイントにより配布されるマルチキャスト
JP2021013048A (ja) * 2019-07-03 2021-02-04 公立大学法人会津大学 3次元ネットワークオンチップによるスパイキングニューラルネットワーク

Also Published As

Publication number Publication date
JP7369102B2 (ja) 2023-10-25
CN112311701A (zh) 2021-02-02
GB201910810D0 (en) 2019-09-11
CN112311701B (zh) 2024-03-19
US11411759B2 (en) 2022-08-09
EP3779714A3 (en) 2021-03-24
EP3779714B1 (en) 2022-05-11
GB2586029A (en) 2021-02-03
GB2586029B (en) 2022-07-27
EP3779714A2 (en) 2021-02-17
US20210036880A1 (en) 2021-02-04

Similar Documents

Publication Publication Date Title
CN103890745B (zh) 集成知识产权(Ip)块到处理器中
CN104168187B (zh) 在边带接口中聚合完成消息
CN102449614B (zh) 用于耦合代理的分组化接口
US9525626B2 (en) Managing sideband routers in On-Die system fabric
CN105357147B (zh) 一种高速高可靠的片上网络适配单元
WO2014103144A1 (ja) インタフェース装置、およびメモリバスシステム
CN104536940A (zh) 发送具有扩展头部的分组
Durante et al. 100 Gbps PCI-express readout for the LHCb upgrade
US20230080588A1 (en) Mqtt protocol simulation method and simulation device
Wu Felix: the new detector interface for the atlas experiment
CN112214445B (zh) RapidIO交换网络数据速率可重配置硬件电路
WO2012012994A1 (zh) 具有统一机框管理架构的设备及其管理控制方法
JP2008510338A (ja) パケット交換制御用の集積回路及び方法
JP2010500807A (ja) 電子装置及び通信制御方法
JP7369102B2 (ja) ネットワークオンチップにおけるブロードキャストのエミュレート
CN105579952B (zh) 利用伪停顿的高速通道上的emi抑制
US9424166B2 (en) Routing debug messages
CN111212061A (zh) 基于afdx的套接字的实现方法
CN102546112B (zh) 一种数据封装方法及装置
KR20050080704A (ko) 프로세서간 데이터 전송 장치 및 방법
Nejad et al. An FPGA bridge preserving traffic quality of service for on-chip network-based systems
Majumder et al. A real-time on-chip network architecture for mixed criticality aerospace systems
EP1552402B1 (en) Integrated circuit and method for sending requests
US11748289B2 (en) Protocol aware bridge circuit for low latency communication among integrated circuits
Nejedlý Simulink External Mode for Rapid Prototyping Platform

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20201109

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20201116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210202

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20210203

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220316

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230605

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231013

R150 Certificate of patent or registration of utility model

Ref document number: 7369102

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150