Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7308215B2 - 複数のインターフェース通信プロトコルに適合するプログラマブルNoC - Google Patents
[go: Go Back, main page]

JP7308215B2 - 複数のインターフェース通信プロトコルに適合するプログラマブルNoC - Google Patents

複数のインターフェース通信プロトコルに適合するプログラマブルNoC Download PDF

Info

Publication number
JP7308215B2
JP7308215B2 JP2020544292A JP2020544292A JP7308215B2 JP 7308215 B2 JP7308215 B2 JP 7308215B2 JP 2020544292 A JP2020544292 A JP 2020544292A JP 2020544292 A JP2020544292 A JP 2020544292A JP 7308215 B2 JP7308215 B2 JP 7308215B2
Authority
JP
Japan
Prior art keywords
logic block
block
noc
data
communication protocol
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
JP2020544292A
Other languages
English (en)
Other versions
JP2021515453A (ja
Inventor
イアン エー. スワーブリック,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xilinx Inc
Original Assignee
Xilinx Inc
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 Xilinx Inc filed Critical Xilinx Inc
Publication of JP2021515453A publication Critical patent/JP2021515453A/ja
Application granted granted Critical
Publication of JP7308215B2 publication Critical patent/JP7308215B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/18Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
    • 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 OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/7867Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
    • G06F15/7871Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS
    • G06F15/7882Reconfiguration support, e.g. configuration loading, configuration switching, or hardware OS for self reconfiguration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/60Software-defined switches
    • H04L49/602Multilayer or multiprotocol switching, e.g. IP switching
    • 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/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computing Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

本開示の例は、一般に、プログラマブルネットワークオンチップ(NoC)に関し、特に、異なる通信プロトコルをサポートするようにNoC中のインターフェース要素を再構成することに関する。
システムオンチップ(SoC)(たとえば、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、または特定用途向け集積回路(ASIC))は、SoC中の論理ブロック、たとえば、プログラマブル論理ブロック、プロセッサ、メモリなどの間でデータパケットをルーティングするためのネットワークオンチップ(NoC)として知られているパケットネットワーク構造を含むことができる。NoCはプログラマブル論理から形成され得るが、これは、他の特徴または回路(たとえば、より多くのプロセッサ、メモリ、またはユーザのための利用可能なプログラマブル論理)のために使用され得る、SoC上の多くのエリアを必要とする。(たとえば、非プログラマブル回路を使用して)NoCの全部または一部を強化することはSoC中のNoCのフットプリントを著しく低減し得るが、NoCはその場合フレキシビリティを失う。すなわち、NoC中の強化された構成要素は、異なる通信プロトコルをサポートするように再構成されることができない。
集積回路中のNoCを構成するための技法について説明する。1つの例は、NoCと、第1のハードウェア論理ブロックと、第2のハードウェア論理ブロックとを含むSoCである。NoCは、第1のハードウェア論理ブロックに接続された進入(ingress)論理ブロックと、第2のハードウェア論理ブロックに接続された退出(egress)論理ブロックと、進入論理ブロックを退出論理ブロックに接続する複数の相互接続された交換機とを含む。その上、進入論理ブロックは、第1のインターフェース通信プロトコルに適合する受信されたデータを第1のパケットに変換するように構成された第1のエンコーダと、第2のインターフェース通信プロトコルに適合する受信されたデータを第2のパケットに変換するように構成された第2のエンコーダとを含む。さらに、退出論理ブロックは、第1のパケットを第1のインターフェース通信プロトコルに適合するデータに変換するように構成された第1のデコーダと、第2のパケットを第2のインターフェース通信プロトコルに適合するデータに変換するように構成された第2のデコーダとを含む。
いくつかの実施形態では、進入論理ブロックは、NoCが動作可能であるとき、第1および第2のエンコーダのうちの1つをアクティブ化し、他のエンコーダを非アクティブ化するように構成され得、退出論理ブロックは、NoCが動作可能であるとき、第1のデコーダおよび第2のデコーダのうちの1つをアクティブ化し、他のデコーダを非アクティブ化するように構成され得る。
いくつかの実施形態では、第1のエンコーダが進入論理ブロック中でアクティブであるとき、第1のデコーダは退出論理ブロック中でアクティブであり得第2のデコーダは非アクティブであり得、第2のエンコーダが進入論理ブロック中でアクティブであるとき、第2のデコーダは退出論理ブロック中でアクティブであり得第1のデコーダは非アクティブであり得る。
いくつかの実施形態では、進入論理ブロック中の第1のエンコーダおよび第2のエンコーダ、ならびに退出論理ブロック中の第1のデコーダおよび第2のデコーダは、強化回路を含み得る。
いくつかの実施形態では、進入論理ブロックは、(i)第1のハードウェア論理ブロックから進入論理ブロックにデータを転送するために使用されるインターフェースにおけるデータ幅と、(ii)インターフェースによってデータが送信される周波数とを調整するように構成され得る。
いくつかの実施形態では、第1のパケットおよび第2のパケットは、両方とも、複数の交換機によって第1のパケットおよび第2のパケットをルーティングするために使用されるNoCパケットプロトコルに適合し得る。
いくつかの実施形態では、第1のインターフェース通信プロトコルは、メモリマップされた通信プロトコルであり得、第2のインターフェース通信プロトコルはストリーミングプロトコルであり得る。
いくつかの実施形態では、第1のハードウェア論理ブロックおよび第2のハードウェア論理ブロックは、ユーザによって再構成され得るプログラマブル論理ブロックであり得る。第1のエンコーダおよび第2のエンコーダ、ならびに第1のデコーダおよび第2のデコーダは、プログラマブル論理ブロックに関連するプログラマブル論理ファブリックから独立してアクティブ化および非アクティブ化され得る。
いくつかの実施形態では、SoCはフィールドプログラマブルゲートアレイ(FPGA)を含み得る。
いくつかの実施形態では、第1のハードウェア論理ブロックおよび第2のハードウェア論理ブロックは、非プログラマブルである強化論理ブロックであり得る。
本明細書で説明する1つの例は、NoC中の進入論理ブロック中の第1のエンコーダがアクティブであり、NoC中の退出論理ブロック中の第1のデコーダがアクティブである場合に、第1の通信プロトコルを使用してSoC中の第1の論理ブロックと第2の論理ブロックとの間の通信を与えるようにプログラマブルNoCを構成することを含む方法である。第2の通信プロトコルを使用して第1の論理ブロックと第2の論理ブロックとの間の通信を与えるようにNoCを再構成することを決定すると、本方法は、進入論理ブロック中の第2のエンコーダをアクティブ化し、第1のエンコーダを非アクティブ化すること、ならびに退出論理ブロック中の第2のデコーダをアクティブ化し、第1のデコーダを非アクティブ化することを含む。
いくつかの実施形態では、本方法は、進入論理ブロックにおいて第1の論理ブロックから第1のデータを受信することをさらに含み得る。第1のデータは第1のインターフェース通信プロトコルに適合し得る。本方法は、第1のエンコーダを使用して第1のデータを第1のパケットに変換することと、NoC中の複数の交換機を使用して第1のパケットを退出論理ブロックにルーティングすることと、第1のデコーダを使用して第1のパケットを第1のインターフェース通信プロトコルに適合する第2のデータに変換することと、第2のデータを第2の論理ブロックに転送することとをさらに含み得る。
いくつかの実施形態では、本方法は、NoCを再構成した後に、進入論理ブロックにおいて第1の論理ブロックから第3のデータを受信することであって、第1のデータが第2のインターフェース通信プロトコルに適合し得る、第3のデータを受信することと、第2のエンコーダを使用して第3のデータを第2のパケットに変換することと、複数の交換機を使用して第2のパケットを退出論理ブロックにルーティングすることと、第2のデコーダを使用して第2のパケットを第2のインターフェース通信プロトコルに適合する第4のデータに変換することと、第4のデータを第2の論理ブロックに転送することとをさらに含み得る。
いくつかの実施形態では、本方法は、第2のインターフェース通信プロトコルを使用してSoC中の第3の論理ブロックと第4の論理ブロックとの間の通信を与えるようにNoCを構成することと、第1のインターフェース通信プロトコルを使用して第1の論理ブロックと第2の論理ブロックとの間でデータを送信することと並行して、第2のインターフェース通信プロトコルを使用して第3の論理ブロックと第4の論理ブロックとの間でデータを送信することとをさらに含み得る。本方法はまた、第1のインターフェース通信プロトコルを使用して第3の論理ブロックと第4の論理ブロックとの間の通信を与えるようにNoCを再構成することと、第2のインターフェース通信プロトコルを使用して第1の論理ブロックと第2の論理ブロックとの間でデータを送信することと並行して、第1のインターフェース通信プロトコルを使用して第3の論理ブロックと第4の論理ブロックとの間でデータを送信することとを含み得る。第3の論理ブロックおよび第4の論理ブロック、ならびに第1の論理ブロックおよび第2の論理ブロックは、NoC中の少なくとも1つの交換機を共有する、NoCを通るそれぞれの通信経路を有し得る。
いくつかの実施形態では、本方法は、第1の論理ブロックから進入論理ブロックにデータを転送するために使用されるインターフェースのデータ幅を調整することと、インターフェースによってデータが送信される周波数を調整することとをさらに含み得る。
いくつかの実施形態では、第1のパケットおよび第2のパケットは、両方とも、複数の交換機を通して第1のパケットおよび第2のパケットをルーティングするために使用されるNoCパケットプロトコルに適合し得る。
いくつかの実施形態では、第1のインターフェース通信プロトコルは、メモリマップされた通信プロトコルであり得、第2のインターフェース通信プロトコルはストリーミングプロトコルであり得る。
いくつかの実施形態では、本方法は、第1の論理ブロックおよび第2の論理ブロック中のプログラマブル論理を再プログラムすることをさらに含み得る。第1の論理ブロックおよび第2の論理ブロックならびにNoCはFPGA内に含まれ得る。
本明細書で説明する1つの例は、第1のハードウェア論理ブロックと、第2のハードウェア論理ブロックと、NoCとを含む集積回路である。NoCは、第1のハードウェア論理ブロックに接続された進入論理ブロックを含む。その上、進入論理ブロックは第1のエンコーダと第2のエンコーダとを含み、NoCが動作可能であるとき、進入論理ブロックは、第1のエンコーダおよび第2のエンコーダのうちの1つをアクティブ化し、他のエンコーダを非アクティブ化するように構成される。NoCはまた、第2のハードウェア論理ブロックに接続された退出論理ブロックを含む。退出論理ブロックは第1のデコーダと第2のデコーダとを含み、NoCが動作可能であるとき、退出論理ブロックは、第1のデコーダおよび第2のデコーダのうちの1つをアクティブ化し、他のデコーダを非アクティブ化するように構成される。
いくつかの実施形態では、第1のエンコーダは、第1のインターフェース通信プロトコルに適合する受信されたデータを第1のパケットに変換するように構成され得、第2のエンコーダは、第2のインターフェース通信プロトコルに適合する受信されたデータを第2のパケットに変換するように構成され得る。第1のデコーダは、第1のパケットを第1のインターフェース通信プロトコルに適合するデータに変換するように構成され得、第2のデコーダは、第2のパケットを第2のインターフェース通信プロトコルに適合するデータに変換するように構成され得る。
上記の特徴が詳細に理解され得るように、上記で手短に要約された、より詳細な説明は、例示的な実装形態を参照することによって得られ得、例示的な実装形態のうちのいくつかは添付の図面に示されている。しかしながら、添付の図面は、一般的な例示的な実装形態のみを示しており、したがってそれの範囲を限定するものと考えられるべきでないことに留意されたい。
一例による、プログラマブルNoCを含んでいるSoCのブロック図である。 一例による、プログラマブルNoCを再構成するためのフローチャートである。 一例による、プログラマブルNoCを再構成するためのフローチャートである。 一例による、プログラマブルNoCを含んでいるSoCのブロック図である。 一例による、プログラマブルNoCを含んでいるSoCの例示的なレイアウトである。 一例による、プログラマブルNoCを動作させるためのフローチャートである。
理解を促すために、可能な場合、図に共通である同一の要素を指定するために同一の参照番号が使用される。一例の要素は他の例に有益に組み込まれ得ることが企図される。
以下で、図を参照しながら様々な特徴について説明する。図は、一定の縮尺で描かれていることもあり、描かれていないこともあること、および同様の構造または機能の要素は図全体にわたって同様の参照番号によって表されることに留意されたい。図は特徴の説明を促すものにすぎないことに留意されたい。図は、説明の網羅的な記述として、または特許請求の範囲の限定として意図されていない。さらに、示されている例は、示されているすべての態様または利点を有する必要はない。特定の例に関して説明される態様または利点は、必ずしもその例に限定されるとは限らず、そのように示されていない場合でも、またはそのように明示的に説明されていない場合でも、任意の他の例において実施され得る。
本明細書の実施形態は、異なる通信プロトコルをサポートするようにブート時間または動作中のいずれかにおいて再構成され得るプログラマブルNoCを含むSoCについて説明する。一実施形態では、NoCは、SoC(たとえば、プロセッサ、メモリ、プログラマブル論理ブロックなど)中のハードウェア要素がNoCを使用してデータを送信および受信することを可能にする(本明細書で進入論理ブロックおよび退出論理ブロックと呼ぶ)インターフェース要素を含む。SoCが最初に電源投入されたとき、進入論理ブロックおよび退出論理ブロックは、SoC中のハードウェア要素とインターフェースするための特定の通信プロトコルをサポートするように構成され得る。しかしながら、後で、ユーザは、異なる通信プロトコルをサポートするために進入論理ブロックおよび退出論理ブロックを再構成することを望み得る。たとえば、最初にSoCをブートアップするとき、プログラマブル論理ブロックは、メモリマップされた通信プロトコルを使用してデータを送信および受信し得るが、後で、ストリーミング通信プロトコルを使用してデータを送信および受信するように再プログラムされる。応答して、SoCは、進入論理ブロックおよび退出論理ブロックが、プログラマブル論理ブロックによって使用されるストリーミング通信プロトコルをサポートするように、NoCを再構成し得る。このようにして、プログラマブルNoCは、(SoCをリブートすることによって、またはオンザフライで)複数の通信プロトコルをサポートするように再構成され得る。
一実施形態では、プログラマブルNoCを形成するためにプログラマブル論理を使用するのではなく、NoCを形成する構成要素の一部または全部が強化される、すなわち、非プログラマブル回路から形成される。たとえば、進入論理ブロックおよび退出論理ブロックは、複数の通信プロトコルをサポートすることができる非プログラマブル回路から形成され得る。一実施形態では、進入論理ブロックは、複数の通信プロトコルをサポートするための複数のエンコーダを含むことができる。たとえば、各進入論理ブロックは、メモリマップされた通信プロトコルをサポートするための第1のエンコーダと、ストリーミング通信プロトコルをサポートするための第2のエンコーダとを含むことができる。同様に、各退出論理ブロックは、メモリマップされた通信プロトコルをサポートするための第1のデコーダと、ストリーミング通信プロトコルをサポートするための第2のデコーダとを含むことができる。NoCはまた、進入論理ブロックと退出論理ブロックとの間でパケットを転送するためにNoCパケットプロトコル(NPP)を使用する(同じく強化回路から形成され得る)マルチプロトコルパケット転送ネットワークを含むことができる。進入論理ブロックおよび退出論理ブロックが第1の通信プロトコルまたは第2の通信プロトコルを使用するかどうかにかかわらず、転送ネットワークは、NoCによってパケットをSoC中の適切な宛先にルーティングすることができる。したがって、本明細書の実施形態は、プログラマブル論理を使用して実装されたNoCを使用することのフレキシビリティを与えるが、NoCの一部または全部を形成する強化回路を使用することに起因する面積削減を伴う。
図1は、一例による、プログラマブルNoC105を含んでいるSoC100のブロック図である。NoC105に加えて、SoC100はまた、データを送信および受信するためにNoC105を使用する論理ブロック110Aおよび110Bを含む。別の言い方をすると、論理ブロック110は、通信するためにNoC105に依拠する。論理ブロック110は、プログラマブル論理ブロック、プロセッサ、デジタル信号処理ブロック、メモリなど、SoC100中の任意のハードウェア要素であり得る。
論理ブロック110間の通信を可能にするために、プログラマブルNoC105は、論理ブロック110に結合された、(NoCマスタユニット(NMU)とも呼ばれる)進入論理ブロック115と、(NoCスレーブユニットまたはNoCサーバントユニット(NSU)とも呼ばれる)退出論理ブロック140とを含む。進入論理ブロック115および退出論理ブロック140はNoC105と論理ブロック110との間のインターフェースとして働く(本明細書では一般に「インターフェース要素」と呼ぶ)。進入論理ブロック115は、論理ブロック110からデータを受信し、データをパケット化し、次いでパケットをマルチプロトコル転送ネットワーク130に転送する。交換機135を使用して、マルチプロトコル転送ネットワーク130は、進入論理ブロック115から受信したパケットを1つまたは複数の宛先退出論理ブロック140にルーティングする。退出論理ブロック140は、受信されたパケットをパケット化解除し、復号されたデータを論理ブロック110に転送する。
進入論理ブロック115の各々は、第1の通信プロトコル120のためのエンコーダと、第2の通信プロトコル125のためのエンコーダとを含む。一実施形態では、第1の通信プロトコルおよび第2の通信プロトコルは、論理ブロック110から進入論理ブロック115にデータを送信するために使用される。たとえば、第1のプロトコルはメモリマップされたプロトコルであり得、第2のプロトコルはストリーミングプロトコルである。一実施形態では、第1のプロトコルはアドバンストeXtensibleインターフェース4(AXI4)であり、第2のプロトコルはAXI4ストリーミングである。しかしながら、本明細書の実施形態は、特定のプロトコルに限定されず、本明細書で詳細に述べられていないプロトコルを使用して、論理ブロック110とNoC105との間の通信を促すために使用され得る。その上、図1は、進入論理ブロック115が2つのエンコーダを含むことを示すが、NoC105は、3つ、4つ、5つなど、異なる通信プロトコルをサポートし得、その場合、進入論理ブロック115は各通信プロトコルのためのそれぞれのエンコーダを含むことができる。
一実施形態では、エンコーダ120および125は異なる回路を含む。たとえば、AXI4およびAXI4ストリーミング通信プロトコルは、異なるようにデータをフォーマットし、データを送信するための異なる技法を使用する。したがって、エンコーダ120および125は、それぞれのプロトコルから受信されるデータを符号化し、パケット化するための回路を含む。一実施形態では、エンコーダ120および125は、異なる機能をもつ別個のエンコーダである。しかしながら、いくつかの実施形態では、エンコーダ120および125は、共有される機能を有し得、したがって、同じ回路を共有し得る。たとえば、異なるプロトコルが、データをパケット化するときに同じである1つまたは複数の動作を有する場合、エンコーダ120および125は、各エンコーダ120および125が重複する回路を有するのではなく、それらの共通の動作を実行するために使用される回路を共有することができる。
一実施形態では、各進入論理ブロック115はエンコーダ120および125のうちの1つのみをアクティブ化する。たとえば、SoC100をブートするとき、制御信号に基づいて、進入論理ブロック115は、論理ブロック110がNoC105にデータを送信するために使用する通信プロトコルのタイプに応答して、エンコーダのうちの1つをアクティブ化し、他のエンコーダを非アクティブ化する。すなわち、論理ブロック110Aがメモリマップされたプロトコルを使用する場合、進入論理ブロック115は、(エンコーダ120が、メモリマップされたプロトコルを使用して受信されたデータを符号化し、パケット化するように構成されていると仮定して)エンコーダ120をアクティブ化し得、ストリーミングデータを符号化し、パケット化し得るエンコーダ125を非アクティブ化し得る。
NoC105中の進入論理ブロック115のすべては同じタイプのエンコーダ(たとえば、第1のプロトコル120のためのエンコーダ)をアクティブにさせることができるが、他の例では、異なる進入論理ブロック115は異なるエンコーダをアクティブにさせることができる。たとえば、論理ブロック110Aが論理ブロック110Bにデータを送信する場合、両方の論理ブロック110は同じ通信プロトコル、たとえば、メモリマップされた通信プロトコルを使用し得る。しかしながら、SoC中の2つの異なる論理ブロックはストリーミング通信プロトコルを使用し得る。その場合、それらの論理ブロックに結合された進入論理ブロックは、図1に示された論理ブロック110に結合された進入論理ブロック115とは異なるエンコーダをアクティブにさせる。したがって、NoC105は、異なる通信プロトコルを並行して使用して受信されたデータの転送を促すことができる。すなわち、1つの論理ブロック110は、メモリマップされたプロトコルを使用してNoC105にデータを送信することができ、同時に、別の論理ブロックは、ストリーミングプロトコルを使用してNoC105にデータを送信する。
マルチプロトコル転送ネットワーク130は、NoC105が、異なる通信プロトコルを使用して論理ブロックから受信されたデータをルーティングすることを可能にする。一実施形態では、受信したデータをパケット化するとき、進入論理ブロック115は、データをNoCパケットプロトコル(NPP)によって定義されたパケットに変換する。したがって、データを進入論理ブロック115に送るためにどの通信プロトコルが使用されたかにかかわらず、進入論理ブロック115はデータをNPPに変換し、したがって、データは、転送ネットワーク130中の交換機135を使用して転送され得る。別の言い方をすると、進入スイッチ中のエンコーダ120および125は、データを進入論理ブロック115に送信するために論理ブロック110によって使用される固有のフォーマットにかかわらず、データがNoC105を横切ることができるように、受信されたデータを同じネットワークプロトコル、たとえば、NPPに変換する。
受信されると、退出論理ブロック140は、パケットをパケット化解除するかまたは復号し、復号されたデータを、ダウンストリーム論理ブロック110に適合する通信プロトコルを使用して転送する。進入論理ブロック115のように、退出論理ブロック140の各々は、第1のプロトコル145のためのデコーダと、第2のプロトコル150のための別個のデコーダとを含む。デコーダ145および150は、復号動作のうちの1つまたは複数が第1の通信プロトコルと第2の通信プロトコルの両方によって共有される場合、別個の回路を含むことができるか、またはいくつかの回路を共有することができる。その上、2つのデコーダが示されているが、各退出論理ブロック140は、プログラマブルNoC105によってサポートされる通信プロトコルの数に応じて、3つ、4つ、またはより多くの数の異なるデコーダを含むことができる。
一実施形態では、退出論理ブロック140は、退出論理ブロック140に結合されたダウンストリーム論理ブロック110によって使用される通信プロトコルに応じて、デコーダのうちの1つをアクティブ化し、他のデコーダを非アクティブ化する。たとえば、図1中の進入論理ブロック115および退出論理ブロック140は、論理ブロック110Aおよび110Bによって使用される通信プロトコルに対応するエンコーダ/デコーダをアクティブにさせ得る。すなわち、論理ブロック110Aが、NoC105を使用して論理ブロック110Bにデータを送信すると仮定すると、進入論理ブロック115および退出論理ブロック140は、同じ通信プロトコルに対応するエンコーダおよびデコーダをアクティブ化する。
SoC100は、プログラマブルNoC105を構成するための構成レジスタ160と交換機165とを含むNoC構成ネットワーク(NCN)155を含む。一実施形態では、NoC105とNCN155の両方は、SoC100全体にわたって広がった複雑なパケットプロトコルネットワークである。一実施形態では、NCN155は、NoC105をプログラムするNoC105とは別個のスイッチングネットワークである。すなわち、NCN155は、NoC105がSoC100中のエンドポイント、たとえば、論理ブロック110間の通信を与える様式を変更することができる。そうするために、NCN155は、進入論理ブロック115および退出論理ブロック140ならびにここで説明されていないNoC105中の他の構成要素を構成するための構成情報を記憶する構成レジスタ160に結合することができる複数のポートをそれぞれ含む交換機165を含む。すなわち、ブート中に構成され得、SoC100の動作中に変更され得る、構成レジスタ160中に記憶されるデータは、エンコーダ120および125ならびにデコーダ145および150のどれをアクティブ化すべきか、どれを非アクティブ化すべきかを進入論理ブロック115および退出論理ブロック140に命令する。さらに、NCN155を使用して進入論理ブロック115および退出論理ブロック140をプログラミングすることは、これらのブロック115および140がSoC中の任意のプログラマブル論理(PL)ファブリックをプログラミングすることから独立して(SoCがPLブロックと通信するためのそのようなファブリックを含むと仮定して)プログラムされ得ることを意味する。
図2は、一例による、プログラマブルNoCを再構成するための方法200のフローチャートである。ブロック205において、NCNは、第1の通信プロトコルを使用してSoC中の第1の論理ブロックと第2の論理ブロックとの間の通信を与えるようにプログラマブルNoCを構成する。たとえば、図1に示されたNCN155は、論理ブロック110がNoC105にデータを送信し、NoC105からデータを受信するために第1の通信プロトコル(たとえば、メモリマップされた通信プロトコルまたはストリーミング通信プロトコル)を使用するとき、論理ブロック110間の通信を可能にするようにNoC105を構成することができる。
しばらくした後、ユーザ(または論理ブロック自体)は、NoCにデータを転送し、NoCからデータを転送するために異なる通信プロトコルに切り換えることを希望し得る。たとえば、論理ブロックは、異なる通信プロトコルを使用するように再構成されるプログラマブル論理ブロックであり得る。別の例では、論理ブロックは、2つの異なる通信プロトコル間を切り換えることができるメモリ要素またはプロセッササブシステムであり得る。たとえば、NoCにデータを送信するためにAXI4を使用する代わりに、第1の論理ブロックおよび第2の論理ブロックは、次に、NoCと通信するためにAXI4ストリーミングを使用することを希望する。
ブロック210において、NCNは、第2の通信プロトコルを使用してSoC中の第1の論理ブロックと第2の論理ブロックとの間の通信を与えるようにプログラマブルNoCを再構成する。たとえば、NCNは、第2の通信プロトコルを使用してNoCがデータを受信および送信することを可能にするプログラマブルNoCに関連する構成レジスタを更新するために、交換機を使用し得る。このようにして、プログラマブルNoCは、強化インターフェース要素を含むことができ、依然として異なる通信プロトコル間を切り換えるフレキシビリティを有することができる。
一実施形態では、NCNは、SoCをリブートした後にプログラマブルNoCを再構成する。すなわち、リブートするとき、NCNは、第2の通信プロトコルをサポートするようにNoCをプログラムする構成レジスタを更新することができる。しかしながら、別の実施形態では、NCNは、SoCをリブートすることなしにプログラマブルNoCを再構成することができる。この例では、再構成が行われるときに、NoCのいくつかの部分が利用不可能であり得るが、SoCは動作可能のままであり得る。たとえば、再構成プロセス中にアクティブ化/非アクティブ化されるエンコーダおよびデコーダを有する進入論理ブロックおよび退出論理ブロックを含んでいるNoCの部分は、プロセスが完了するまで、ネットワークトラフィックを送信するために利用不可能であり得る。このようにして、NCNは、SoCをリブートした後に、またはオンザフライで、すなわち、SoCが動作可能な状態のままである間にNoCを再構成することができる。
図3は、一例による、プログラマブルNoCを再構成するための方法300のフローチャートである。一実施形態では、方法300は、プログラマブルNoCが、異なる通信プロトコルを使用してデータを送信および受信するように再構成される、方法200のブロック210をより詳細に記述する。
方法300は、NCNがプログラマブルNoCを再構成するための命令を受信するブロック305において開始する。この命令は、論理ブロックがNoCとどのように通信するかを変更することを希望するユーザによって送られ得るか、またはNoCと通信するための異なる通信プロトコルに切り換えることを決定した後に、論理ブロック自体によって送られ得る。
ブロック310において、NCNは、命令に対応するNoC中の進入論理ブロックおよび退出論理ブロックを識別する。すなわち、命令は、NoC中のすべてのこれらのブロックではなく、進入論理ブロックおよび退出論理ブロックの部分のみに影響を及ぼし得る。たとえば、SoC中のハードウェア論理ブロックの2つのみが、それらがNoCとどのように通信するかを変更していることがあり、SoC中の残りのハードウェア論理ブロックは、通信するために同じ通信プロトコル(または複数のプロトコル)を使用している。したがって、NCNは、それらの通信プロトコルを変更している論理ブロックに接続された進入論理ブロックおよび退出論理ブロックのみを変更更新し、残りの進入論理ブロックおよび退出論理ブロックは方法300中不変である。たとえば、SoC中の2つのプログラマブル論理ブロックは第2の通信プロトコルに切り換え得、NoCに結合されたプロセッササブシステム、メモリ、および他のプログラマブル論理ブロックは、通信するために同じ(すなわち、前の)通信プロトコルまたは複数のプロトコルを使用する。したがって、NCNは、2つのプログラマブル論理ブロックに接続された進入論理ブロックおよび退出論理ブロックを再構成するが、他の進入論理ブロックおよび退出論理ブロックは不変のままにする。
別の実施形態では、NCNは進入論理ブロックおよび退出論理ブロックのグループを再構成することができる。たとえば、第1のグループは最初に第1のインターフェース通信プロトコルを使用し得、第2のグループは第2のインターフェース通信プロトコルを使用する。異なるインターフェース通信プロトコルを使用するにもかかわらず、第1および第2のグループはNoCを通して並行してデータを送信することができる。その上、第1および第2のグループは、1つまたは複数の交換機を共有することができる、NoCを通るそれぞれのデータ経路を有することができる。すなわち、NoCは、2つのグループ中の進入論理ブロック/退出論理ブロック間でデータをルーティングするために同じ交換機(または異なる交換機)を使用することができる。後で、NCNは、進入論理ブロックおよび退出論理ブロックの第1のグループを第2の通信プロトコルを使用するように再構成し、同時に第2のグループを第1の通信プロトコルを使用するように再構成することができる。再構成された後、第1および第2のグループは、この場合も、NoC中でデータを同時に送信し、共通の交換機を有し得る通信経路を使用することができる。
ブロック315において、NCNは、識別された進入論理ブロック中で、第1のエンコーダを非アクティブ化し、第2のエンコーダをアクティブ化する。すなわち、NCNは、進入論理ブロックによって使用されるエンコーダを、新しい通信プロトコルに適合するエンコーダに切り換える。そうするために、一実施形態では、NCNは、適切なエンコーダをアクティブ化するように論理ブロックに命令する進入論理ブロックに対応する構成レジスタを更新する。
ブロック320において、NCNは、識別された退出論理ブロック中で、第1のデコーダを非アクティブ化し、第2のデコーダをアクティブ化する。別の言い方をすると、NCNは、新しい通信プロトコルに適合するデコーダをアクティブ化する。一実施形態では、NCNは、適切なデコーダをアクティブ化するように論理ブロックに命令する退出論理ブロックに対応する構成レジスタを更新する。
ブロック325において、NCNは、識別された進入論理ブロックおよび退出論理ブロックと、進入論理ブロックおよび退出論理ブロックに接続された対応する論理ブロックとの間のインターフェースのためのデータ幅を設定する。すなわち、論理ブロックと通信するためにNoCによって使用される通信プロトコルを変更することに加えて、NCNはまた、NoCと論理ブロックとの間で転送されるデータの幅を変更することができる。たとえば、ユーザはインターフェース要素(すなわち、進入論理ブロックおよび退出論理ブロック)のためのデータ幅を32~512ビットから選択することができる。今度は、NCNは、設定されたデータ幅を使用してデータを受信または送信するように進入論理ブロックおよび退出論理ブロックに命令する。
さらに、一実施形態では、NCNは、論理ブロックからデータを受信するか、または論理ブロックにデータを送信するときに、進入論理ブロックおよび退出論理ブロックによって使用される周波数を調整または構成することができる。すなわち、NCNは、進入論理ブロックおよび退出論理ブロックが論理ブロックとともにデータを転送する速度を増加または低減することができる。このようにして、非プログラマブルNoCとは異なり、プログラマブルNoCは、NCNならびに進入論理ブロックおよび退出論理ブロックを使用して、インターフェース通信プロトコル、データ幅、および周波数を変更することができる。進入論理ブロックおよび退出論理ブロックは、面積を節約するために非プログラマブル回路から形成され得る(すなわち、強化される)が、他の実施形態では、進入論理ブロックおよび退出論理ブロックは何らかのプログラマブル論理を含むことができる。すなわち、本明細書の実施形態は、進入論理ブロックおよび退出論理ブロックによって実行される1つまたは複数の動作を変更するための何らかのプログラマブル論理を進入論理ブロックおよび退出論理ブロック(またはNoC中の他の構成要素)中に含み得る。
図4は、一例による、プログラマブルNoC105を含んでいるSoC100のブロック図である。図示のように、NoC105は、PLブロック405Aと、PLブロック405Bと、プロセッサ410と、メモリ415と相互接続する。すなわち、NoC105は、SoC100中の異なる強化回路要素およびプログラマブル回路要素が通信することを可能にするためにSoC100中で使用され得る。たとえば、PLブロック405Aは、PLブロック405Bと通信するために1つの進入論理ブロック115を使用し得、プロセッサ410と通信するために別の進入論理ブロック115を使用し得る。しかしながら、別の実施形態では、PLブロック405Aは、(エンドポイントが同じ通信プロトコルを使用すると仮定して)PLブロック405Bとプロセッサ410の両方と通信するために同じ進入論理ブロック115を使用し得る。PLブロック405Aは、(メモリマップされたプロトコルを使用する場合)アドレスまたは(ストリーミングプロトコルを使用する場合)宛先IDに基づいてデータがPLブロック405Bとプロセッサ410の両方に宛てられているかどうかを決定することができるPLブロック405Bとプロセッサ410の両方のためのデータをそれぞれの退出論理ブロック140に送信することができる。
PLブロック405Aは、PLブロック405Bとプロセッサ410とによって送信されるデータを受信するための退出論理ブロック140を含み得る。一実施形態では、ハードウェア論理ブロックは、同じくNoC105に接続されたすべての他のハードウェア論理ブロックと通信することが可能であるが、他の実施形態では、ハードウェア論理ブロックは、NoC105に接続された他のハードウェア論理ブロックのサブ部分のみと通信し得る。たとえば、メモリ415は、PLブロック405Aと通信することが可能であるが、PLブロック405Bと通信することは可能ではないことがある。
上記で説明したように、進入論理ブロックおよび退出論理ブロックはすべて、PLブロック405、プロセッサ410、およびメモリ415と通信するために同じ通信プロトコルを使用し得るか、または異なる通信プロトコルを使用することができる。たとえば、PLブロック405Aは、PLブロック405Bと通信するためにメモリマップされたプロトコルを使用し得、プロセッサ410は、メモリ415と通信するためにストリーミングプロトコルを使用する。転送ネットワーク130は、(進入論理ブロックが受信されたデータを同じNPPに変換するので)複数のプロトコルをサポートすることができるので、NoC105は異なるインターフェース通信プロトコルを並行して使用することをサポートする。別の言い方をすると、進入論理ブロック115は、異なるインターフェース通信プロトコルを使用して受信されたデータを同じプロトコル(たとえば、NPP)に適合するパケットに変換し、パケットは、次いで、転送ネットワーク130中の交換機によって退出論理ブロック140にルーティングされる。今度は、退出論理ブロック140がパケットをNPPから、接続された論理ブロックによって使用されるインターフェース通信プロトコルに適合するデータに変換する。
一実施形態では、SoC100は、ユーザ設計に従ってPLブロック405を構成するFPGAである。すなわち、この例では、FPGAはプログラマブル論理ブロックと強化論理ブロックの両方を含む。しかしながら、他の実施形態では、SoC100は、強化論理ブロックのみを含むASICであり得る。すなわち、SoC100はPLブロック405を含まないことがある。論理ブロックが非プログラマブルであるとしても、NoC105は、上記で説明したように、依然としてプログラマブルであり得、したがって、強化論理ブロック、たとえば、プロセッサ410およびメモリ415は、異なる通信プロトコル間で切り換えること、インターフェースにおいてデータ幅を変更すること、または周波数を調整することができる。
図5は、一例による、プログラマブルNoC105を含んでいるSoC100の例示的なレイアウトを示す。図4におけるように、図5は、PLブロック405、プロセッサ410、メモリ415、進入論理ブロック115および退出論理ブロック140を示す。さらに、図5は、進入論理ブロック115と退出論理ブロック140との間でパケットをルーティングするためにNoC中のマルチプロトコル転送ネットワークによって使用される接続および(「X」が付いたボックスとして標示された)様々な交換機135を示す。
SoC100の物理的レイアウトにおけるPLブロック405、プロセッサ410およびメモリ415のロケーションは、これらのハードウェア要素を構成する1つの例にすぎない。さらに、SoC100は、示されているよりも多くのハードウェア要素を含むことができる。例として、SoC100は、SoC100上の異なるロケーションに配設される追加のPLブロック、プロセッサおよびメモリを含み得る。さらに、SoC100は、それぞれの進入論理ブロック115および退出論理ブロック140を使用してNoCに結合されることもあり結合されないこともあるI/Oモジュールおよびメモリコントローラなど、他のハードウェア要素を含むことができる。たとえば、I/OモジュールはSoC100の周囲の周りに配設され得る。
一実施形態では、(図5に示されていない)NCNは、NoCに結合されたハードウェア論理ブロックに対応するレジスタをプログラムする。すなわち、NoC中の構成要素(たとえば、進入論理ブロック115および退出論理ブロック140)を構成することに加えて、NCNは、これらの論理ブロックがNoCと通信することを可能にする対応するレジスタを使用して、NoCに接続されたハードウェア論理ブロックを構成することができる。
図6は、一例による、プログラマブルNoCを動作させるための方法600のフローチャートである。ブロック605において、進入論理ブロックは、第1のプロトコルまたは第2のプロトコルのうちの1つを使用してデータを受信する。すなわち、NoCは、SoC中の他のハードウェア論理ブロックとインターフェースするために使用され得る複数の異なる通信プロトコルをサポートする。たとえば、論理ブロックは、進入論理ブロックおよび退出論理ブロックにおいて、AXI4またはAXI4ストリーミングを使用してNoCにデータを送信し得、NoCからデータを受信し得る。別の言い方をすると、NoCは、NoCにデータを転送するための、およびNoCからデータを受信するための複数のインターフェース通信プロトコルをサポートする。
ブロック610において、進入論理ブロックは、受信されたデータをNPPのためのパケットに変換する。一実施形態では、進入論理ブロック中のアクティブなエンコーダは、受信されたデータをNPPに適合するパケットにパケット化する。したがって、受信されたデータは、次いで、NoCによってルーティングされるパケットを形成するように修正される。
アクティブなエンコーダを有することに加えて、進入論理ブロックは、NoCによってサポートされるが、現在、接続された論理ブロックによって進入論理ブロックにデータを転送するために使用されていない別のインターフェース通信プロトコル(または複数のプロトコル)に対応する、非アクティブなエンコーダ(または複数の非アクティブなエンコーダ)を含むことができる。一実施形態では、NoCが動作可能であるとき、進入論理ブロック中のただ1つのエンコーダがアクティブである。
ブロック615において、進入論理ブロックは、パケット中の指定されたアドレスのための宛先IDを識別する。パケットのための宛先IDは、NoC中の転送ネットワーク(たとえば、相互接続された交換機)を通してパケットがどのようにルーティングされるかを決定する。別の言い方をすると、NoC中でパケットをルーティングするために使用される交換機は、宛先IDに基づいて選択される。
ブロック620において、マルチプロトコル転送ネットワークは、パケットを宛先IDに対応する退出論理ブロックにルーティングする。たとえば、図5に示された相互接続および交換機135を使用して、NoCは、進入論理ブロック115から受信されたパケットを所望の退出論理ブロック140にルーティングすることができる。
ブロック625において、退出論理ブロックは、パケットをNPPから第1のプロトコルまたは第2のプロトコルのうちの1つに適合するデータに変換する。一実施形態では、退出論理ブロックは、受信されたパケットをパケット化解除するためにデコーダを使用し、データを第1または第2のプロトコルに適合するフォーマットに変換する。一実施形態では、退出論理ブロックは、データを、接続された論理ブロックからデータを受信するためにブロック605において進入論理ブロックによって使用されたプロトコルと同じプロトコルに変換する。
ブロック630において、退出論理ブロックは、変換されたデータを退出論理ブロックに結合された論理ブロックに転送する。このようにして、進入論理ブロックおよび退出論理ブロックは、NoCに接続された論理ブロック間の通信を促進することができる。方法600は、進入論理ブロックおよび退出論理ブロックが第1のプロトコルをサポートするように構成されているか、第2のプロトコルをサポートするように構成されているかにかかわらず、使用され得る。すなわち、NCNは、送信する(またはデータ幅もしくは周波数を変更する)ために進入論理ブロックおよび退出論理ブロックを変更し得るが、方法600は実質的に不変のままである。
上記は具体例を対象とするが、他のおよびさらなる例が、それの基本的な範囲から逸脱することなく考案され得、それの範囲は以下の特許請求の範囲によって決定される。

Claims (15)

  1. 第1のハードウェア論理ブロックと、
    第2のハードウェア論理ブロックと、
    ネットワークオンチップ(NoC)と
    を備える、システムオンチップ(SoC)であって、前記ネットワークオンチップ(NoC)が、
    前記第1のハードウェア論理ブロックに接続された進入論理ブロックと、
    前記第2のハードウェア論理ブロックに接続された退出論理ブロックと
    前記進入論理ブロックを前記退出論理ブロックに接続する複数の相互接続された交換機と
    を備え、
    前記進入論理ブロックが、第1のインターフェース通信プロトコルに適合する受信データを第1のパケットに変換するように構成された第1のエンコーダ、および第2のインターフェース通信プロトコルに適合する受信データを第2のパケットに変換するように構成された第2のエンコーダを備え、
    前記退出論理ブロックが、前記第1のパケットを前記第1のインターフェース通信プロトコルに適合するデータに変換するように構成された第1のデコーダ、および前記第2のパケットを前記第2のインターフェース通信プロトコルに適合するデータに変換するように構成された第2のデコーダを備える、システムオンチップ(SoC)。
  2. 前記進入論理ブロックは、前記NoCが動作可能であるとき、前記第1のエンコーダおよび前記第2のエンコーダのうちの1つをアクティブ化し、他のエンコーダを非アクティブ化するように構成され、前記退出論理ブロックは、前記NoCが動作可能であるとき、前記第1のデコーダおよび前記第2のデコーダのうちの1つをアクティブ化し、他のデコーダを非アクティブ化するように構成された、請求項1に記載のSoC。
  3. 前記第1のエンコーダが前記進入論理ブロック中でアクティブであるとき、前記第1のデコーダが前記退出論理ブロック中でアクティブであり前記第2のデコーダが非アクティブであり、前記第2のエンコーダが前記進入論理ブロック中でアクティブであるとき、前記第2のデコーダが前記退出論理ブロック中でアクティブであり前記第1のデコーダが非アクティブである、請求項2に記載のSoC。
  4. 前記進入論理ブロック中の前記第1のエンコーダおよび前記第2のエンコーダ、ならびに前記退出論理ブロック中の前記第1のデコーダおよび前記第2のデコーダが強化回路を備える、請求項1から3のいずれか一項に記載のSoC。
  5. 前記進入論理ブロックが、(i)前記第1のハードウェア論理ブロックから前記進入論理ブロックにデータを転送するために使用されるインターフェースにおけるデータ幅と、(ii)前記インターフェースによってデータが送信される周波数とを調整するように構成された、請求項1から4のいずれか一項に記載のSoC。
  6. 前記第1のパケットおよび前記第2のパケットが、両方とも、前記複数の交換機を通して前記第1のパケットおよび前記第2のパケットをルーティングするために使用されるNoCパケットプロトコルに適合する、請求項1から5のいずれか一項に記載のSoC。
  7. 前記第1のインターフェース通信プロトコルがメモリマップされた通信プロトコルであり、前記第2のインターフェース通信プロトコルがストリーミングプロトコルである、請求項1から6のいずれか一項に記載のSoC。
  8. 前記第1のハードウェア論理ブロックおよび前記第2のハードウェア論理ブロックが、ユーザによって再構成され得るプログラマブル論理ブロックであり、前記第1のエンコーダおよび前記第2のエンコーダ、ならびに前記第1のデコーダおよび前記第2のデコーダが、前記プログラマブル論理ブロックに関連するプログラマブル論理ファブリックから独立してアクティブ化および非アクティブ化され得るか、または
    前記第1のハードウェア論理ブロックおよび前記第2のハードウェア論理ブロックが、非プログラマブルである強化論理ブロックである、請求項1から7のいずれか一項に記載のSoC。
  9. 前記SoCがフィールドプログラマブルゲートアレイ(FPGA)を備える、請求項8に記載のSoC。
  10. 第1のインターフェース通信プロトコルを使用してSoC中の第1の論理ブロックと第2の論理ブロックとの間の通信を与えるようにNoCを構成することであって、前記NoC中の進入論理ブロック中の第1のエンコーダがアクティブであり、前記NoC中の退出論理ブロック中の第1のデコーダがアクティブである、NoCを構成することと、
    第2のインターフェース通信プロトコルを使用して前記第1の論理ブロックと前記第2の論理ブロックとの間の通信を与えるように前記NoCを再構成することを決定すると、
    前記進入論理ブロック中の第2のエンコーダをアクティブ化し、前記第1のエンコーダを非アクティブ化することと、
    前記退出論理ブロック中の第2のデコーダをアクティブ化し、前記第1のデコーダを非アクティブ化することと
    を含む、方法。
  11. 前記進入論理ブロックにおいて前記第1の論理ブロックから第1のデータを受信することであって、前記第1のデータが前記第1のインターフェース通信プロトコルに適合する、第1のデータを受信することと、
    前記第1のエンコーダを使用して前記第1のデータを第1のパケットに変換することと、
    前記NoC中の複数の交換機を使用して前記第1のパケットを前記退出論理ブロックにルーティングすることと、
    前記第1のデコーダを使用して前記第1のパケットを前記第1のインターフェース通信プロトコルに適合する第2のデータに変換することと、
    前記第2のデータを前記第2の論理ブロックに転送することと
    をさらに含む、請求項10に記載の方法。
  12. 前記NoCを再構成した後に、
    前記進入論理ブロックにおいて前記第1の論理ブロックから第3のデータを受信することであって、前記第1のデータが前記第2のインターフェース通信プロトコルに適合する、第3のデータを受信することと、
    前記第2のエンコーダを使用して前記第3のデータを第2のパケットに変換することと、
    前記複数の交換機を使用して前記第2のパケットを前記退出論理ブロックにルーティングすることと、
    前記第2のデコーダを使用して前記第2のパケットを前記第2のインターフェース通信プロトコルに適合する第4のデータに変換することと、
    前記第4のデータを前記第2の論理ブロックに転送することと
    をさらに含む、請求項11に記載の方法。
  13. 前記第2のインターフェース通信プロトコルを使用して前記SoC中の第3の論理ブロックと第4の論理ブロックとの間の通信を与えるように前記NoCを構成することと、
    前記第1のインターフェース通信プロトコルを使用して前記第1の論理ブロックと前記第2の論理ブロックとの間でデータを送信することと並行して、前記第2のインターフェース通信プロトコルを使用して前記第3の論理ブロックと前記第4の論理ブロックとの間でデータを送信することと、
    前記第1のインターフェース通信プロトコルを使用して前記第3の論理ブロックと前記第4の論理ブロックとの間の通信を与えるように前記NoCを再構成することと、
    前記第2のインターフェース通信プロトコルを使用して前記第1の論理ブロックと前記第2の論理ブロックとの間でデータを送信することと並行して、前記第1のインターフェース通信プロトコルを使用して前記第3の論理ブロックと前記第4の論理ブロックとの間でデータを送信することであって、前記第3の論理ブロックおよび前記第4の論理ブロック、ならびに前記第1の論理ブロックおよび前記第2の論理ブロックが、前記NoC中の少なくとも1つの交換機を共有する、前記NoCを通るそれぞれの通信経路を有する、前記第3の論理ブロックと前記第4の論理ブロックとの間でデータを送信することと
    をさらに含む、請求項10から12のいずれか一項に記載の方法。
  14. 前記第1の論理ブロックから前記進入論理ブロックにデータを転送するために使用されるインターフェースのデータ幅を調整することと、
    前記インターフェースによってデータが送信される周波数を調整することと
    をさらに含む、請求項10から13のいずれか一項に記載の方法。
  15. 前記第1の論理ブロックおよび前記第2の論理ブロック中のプログラマブル論理を再プログラムすることをさらに含み、前記第1の論理ブロックおよび前記第2の論理ブロックならびに前記NoCがFPGA内に含まれている、請求項10から14のいずれか一項に記載の方法。
JP2020544292A 2018-02-23 2019-02-05 複数のインターフェース通信プロトコルに適合するプログラマブルNoC Active JP7308215B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/904,211 US10503690B2 (en) 2018-02-23 2018-02-23 Programmable NOC compatible with multiple interface communication protocol
US15/904,211 2018-02-23
PCT/US2019/016608 WO2019164665A1 (en) 2018-02-23 2019-02-05 Programmable noc compatible with multiple interface communication protocols

Publications (2)

Publication Number Publication Date
JP2021515453A JP2021515453A (ja) 2021-06-17
JP7308215B2 true JP7308215B2 (ja) 2023-07-13

Family

ID=65724498

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020544292A Active JP7308215B2 (ja) 2018-02-23 2019-02-05 複数のインターフェース通信プロトコルに適合するプログラマブルNoC

Country Status (6)

Country Link
US (1) US10503690B2 (ja)
EP (1) EP3756318B1 (ja)
JP (1) JP7308215B2 (ja)
KR (1) KR102687432B1 (ja)
CN (1) CN111801916B (ja)
WO (1) WO2019164665A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10790827B2 (en) * 2018-12-27 2020-09-29 Intel Corporation Network-on-chip (NOC) with flexible data width
US10891132B2 (en) 2019-05-23 2021-01-12 Xilinx, Inc. Flow convergence during hardware-software design for heterogeneous and programmable devices
US10891414B2 (en) 2019-05-23 2021-01-12 Xilinx, Inc. Hardware-software design flow for heterogeneous and programmable devices
US11188312B2 (en) 2019-05-23 2021-11-30 Xilinx, Inc. Hardware-software design flow with high-level synthesis for heterogeneous and programmable devices
US11301295B1 (en) 2019-05-23 2022-04-12 Xilinx, Inc. Implementing an application specified as a data flow graph in an array of data processing engines
US11264361B2 (en) 2019-06-05 2022-03-01 Invensas Corporation Network on layer enabled architectures
CN110704368B (zh) * 2019-09-25 2020-11-06 支付宝(杭州)信息技术有限公司 基于fpga的安全智能合约处理器的高效运算方法及装置
CN110442548B (zh) * 2019-10-09 2020-01-24 广东高云半导体科技股份有限公司 片上系统及其接口数据处理方法和装置
US10977018B1 (en) 2019-12-05 2021-04-13 Xilinx, Inc. Development environment for heterogeneous devices
US11714779B2 (en) * 2020-03-25 2023-08-01 Xilinx, Inc. NoC relaxed write order scheme
CN111277612B (zh) * 2020-05-08 2020-08-07 常州楠菲微电子有限公司 一种网络报文处理策略生成方法、系统及介质
US11520717B1 (en) 2021-03-09 2022-12-06 Xilinx, Inc. Memory tiles in data processing engine array
US11336287B1 (en) 2021-03-09 2022-05-17 Xilinx, Inc. Data processing engine array architecture with memory tiles
US11516075B1 (en) * 2021-05-05 2022-11-29 Simmonds Precision Products, Inc. Modular reconfigurable edge computing node
US11488935B1 (en) * 2021-05-07 2022-11-01 Applied Materials, Inc. Scalable network-on-package for connecting chiplet-based designs
JP2024531402A (ja) 2021-08-20 2024-08-29 ザイリンクス インコーポレイテッド データ処理アレイとともに使用するための多数のオーバーレイ
CN114721979A (zh) * 2022-03-31 2022-07-08 中科芯集成电路有限公司 一种面向互连裸芯与axi主设备的转换接口及通信方法
US20230315483A1 (en) * 2022-04-02 2023-10-05 Shih Jun Chong Processor core subsystem with open-standard network-on-chip ports
US11848670B2 (en) 2022-04-15 2023-12-19 Xilinx, Inc. Multiple partitions in a data processing array
US12164451B2 (en) 2022-05-17 2024-12-10 Xilinx, Inc. Data processing array interface having interface tiles with multiple direct memory access circuits
CN114979309B (zh) * 2022-05-18 2023-08-18 中国电子科技集团公司第二十八研究所 一种支持网络化目标数据随遇接入与处理的方法
KR102832005B1 (ko) * 2022-07-18 2025-07-09 주식회사 와이씨 데이터 송수신 경로 제어 장치
US12079158B2 (en) 2022-07-25 2024-09-03 Xilinx, Inc. Reconfigurable neural engine with extensible instruction set architecture
US12019576B2 (en) * 2022-08-02 2024-06-25 Xilinx, Inc. Systems and methods to transport memory mapped traffic amongst integrated circuit devices
US12248786B2 (en) 2022-08-08 2025-03-11 Xilinx, Inc. Instruction set architecture for data processing array control
US12176896B2 (en) 2022-12-07 2024-12-24 Xilinx, Inc. Programmable stream switches and functional safety circuits in integrated circuits
CN117135231B (zh) * 2023-10-26 2023-12-29 上海特高信息技术有限公司 一种基于fpga低延时金融大数据流的解压方法

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030208566A1 (en) 2002-05-03 2003-11-06 Sonics, Inc. Composing on-chip interconnects with configurable interfaces
JP2006501694A (ja) 2001-10-04 2006-01-12 ニューニュー・ネットワークス・イノベーションズ・リミテッド 通信ノード
US20060153177A1 (en) 2002-08-13 2006-07-13 Xyratex Technology Limited Network monitor and method
KR100675850B1 (ko) 2005-10-12 2007-02-02 삼성전자주식회사 AXI 프로토콜을 적용한 NoC 시스템
US20070067487A1 (en) 2001-10-04 2007-03-22 Newnew Networks Innovations Limited Communications node
US20150103822A1 (en) 2013-10-15 2015-04-16 Netspeed Systems Noc interface protocol adaptive to varied host interface protocols
US20150172424A1 (en) 2013-12-12 2015-06-18 Fujitsu Limited Relay apparatus, relay control method, and recording medium having relay control program recorded therein
US20150188847A1 (en) 2013-12-30 2015-07-02 Netspeed Systems STREAMING BRIDGE DESIGN WITH HOST INTERFACES AND NETWORK ON CHIP (NoC) LAYERS
US20170242813A1 (en) 2016-02-23 2017-08-24 Honeywell International Inc. Bus bridge for translating requests between a module bus and an axi bus

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07245636A (ja) * 1994-03-02 1995-09-19 Nissin Electric Co Ltd プロトコルコンバータ
US6418147B1 (en) * 1998-01-21 2002-07-09 Globalstar Lp Multiple vocoder mobile satellite telephone system
US6810037B1 (en) 1999-03-17 2004-10-26 Broadcom Corporation Apparatus and method for sorted table binary search acceleration
AU2001259674A1 (en) * 2000-05-08 2001-11-20 Broadcom Corporation System and method for supporting multiple voice channels
US8692695B2 (en) * 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
US7035255B2 (en) * 2000-11-14 2006-04-25 Broadcom Corporation Linked network switch configuration
JP2004525449A (ja) 2001-02-14 2004-08-19 クリアスピード・テクノロジー・リミテッド 相互接続システム
US6781407B2 (en) 2002-01-09 2004-08-24 Xilinx, Inc. FPGA and embedded circuitry initialization and processing
US7420392B2 (en) 2001-09-28 2008-09-02 Xilinx, Inc. Programmable gate array and embedded circuitry initialization and processing
US20040052528A1 (en) * 2002-05-13 2004-03-18 Ross Halgren Jitter control in optical network
US7149829B2 (en) 2003-04-18 2006-12-12 Sonics, Inc. Various methods and apparatuses for arbitration among blocks of functionality
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
US7653820B1 (en) 2003-10-31 2010-01-26 Xilinx, Inc. System and method for securing using decryption keys during FPGA configuration using a microcontroller
US7185309B1 (en) 2004-01-30 2007-02-27 Xilinx, Inc. Method and apparatus for application-specific programmable memory architecture and interconnection network on a chip
US7328335B1 (en) 2004-10-01 2008-02-05 Xilinx, Inc. Bootable programmable logic device for internal decoding of encoded configuration data
US7689726B1 (en) 2004-10-01 2010-03-30 Xilinx, Inc. Bootable integrated circuit device for readback encoding of configuration data
US7281093B1 (en) 2004-12-21 2007-10-09 Xilinx, Inc. Memory apparatus for a message processing system and method of providing same
US7199608B1 (en) 2005-02-17 2007-04-03 Xilinx, Inc. Programmable logic device and method of configuration
US7380035B1 (en) 2005-03-24 2008-05-27 Xilinx, Inc. Soft injection rate control for buses or network-on-chip with TDMA capability
US7788625B1 (en) 2005-04-14 2010-08-31 Xilinx, Inc. Method and apparatus for precharacterizing systems for use in system level design of integrated circuits
US7301822B1 (en) 2005-05-18 2007-11-27 Xilinx, Inc. Multi-boot configuration of programmable devices
US7454658B1 (en) 2006-02-10 2008-11-18 Xilinx, Inc. In-system signal analysis using a programmable logic device
US7650248B1 (en) 2006-02-10 2010-01-19 Xilinx, Inc. Integrated circuit for in-system signal monitoring
US7831801B1 (en) 2006-08-30 2010-11-09 Xilinx, Inc. Direct memory access-based multi-processor array
US7521961B1 (en) 2007-01-23 2009-04-21 Xilinx, Inc. Method and system for partially reconfigurable switch
US7500060B1 (en) 2007-03-16 2009-03-03 Xilinx, Inc. Hardware stack structure using programmable logic
US9495290B2 (en) 2007-06-25 2016-11-15 Sonics, Inc. Various methods and apparatus to support outstanding requests to multiple targets while maintaining transaction ordering
US7576561B1 (en) 2007-11-13 2009-08-18 Xilinx, Inc. Device and method of configuring a device having programmable logic
US8006021B1 (en) 2008-03-27 2011-08-23 Xilinx, Inc. Processor local bus bridge for an embedded processor block core in an integrated circuit
US8214694B1 (en) 2009-03-12 2012-07-03 Xilinx, Inc. Lightweight probe and data collection within an integrated circuit
US8375132B2 (en) * 2010-03-01 2013-02-12 Cisco Technology, Inc. Schedulable transport for contribution services
KR101197294B1 (ko) * 2010-11-19 2012-11-05 숭실대학교산학협력단 QoS 및 전송 효율 개선을 위한 SoC 기반 시스템 네트워크에서의 인터페이스 장치의 통신방법
US10045089B2 (en) * 2011-08-02 2018-08-07 Apple Inc. Selection of encoder and decoder for a video communications session
US9230112B1 (en) 2013-02-23 2016-01-05 Xilinx, Inc. Secured booting of a field programmable system-on-chip including authentication of a first stage boot loader to mitigate against differential power analysis
US9336010B2 (en) 2013-03-15 2016-05-10 Xilinx, Inc. Multi-boot or fallback boot of a system-on-chip using a file-based boot device
US9165143B1 (en) 2013-03-15 2015-10-20 Xilinx, Inc. Image file generation and loading
US20150201041A1 (en) * 2013-03-18 2015-07-16 Google Inc. Device dependent codec negotiation
US9152794B1 (en) 2013-09-05 2015-10-06 Xilinx, Inc. Secure key handling for authentication of software for a system-on-chip
US9411688B1 (en) 2013-12-11 2016-08-09 Xilinx, Inc. System and method for searching multiple boot devices for boot images
US9652410B1 (en) 2014-05-15 2017-05-16 Xilinx, Inc. Automated modification of configuration settings of an integrated circuit
US9652252B1 (en) 2014-10-29 2017-05-16 Xilinx, Inc. System and method for power based selection of boot images
US9323876B1 (en) 2014-11-24 2016-04-26 Xilinx, Inc. Integrated circuit pre-boot metadata transfer
US9817787B2 (en) * 2015-03-26 2017-11-14 Intel Corporation Method, apparatus and system for encapsulating information in a communication
US9928191B2 (en) * 2015-07-30 2018-03-27 Advanced Micro Devices, Inc. Communication device with selective encoding
US10314065B2 (en) * 2016-04-12 2019-06-04 Qualcomm Incorporated Traffic multiplexing
US10757718B2 (en) * 2017-02-16 2020-08-25 Qualcomm Incorporated Post-puncture indication for mobile broadband and low latency communication multiplexing
US10243882B1 (en) 2017-04-13 2019-03-26 Xilinx, Inc. Network on chip switch interconnect

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070067487A1 (en) 2001-10-04 2007-03-22 Newnew Networks Innovations Limited Communications node
JP2006501694A (ja) 2001-10-04 2006-01-12 ニューニュー・ネットワークス・イノベーションズ・リミテッド 通信ノード
CN1736073A (zh) 2001-10-04 2006-02-15 新新网络创新有限公司 通信节点
US20030208566A1 (en) 2002-05-03 2003-11-06 Sonics, Inc. Composing on-chip interconnects with configurable interfaces
US20060153177A1 (en) 2002-08-13 2006-07-13 Xyratex Technology Limited Network monitor and method
JP2007110706A (ja) 2005-10-12 2007-04-26 Samsung Electronics Co Ltd AXIプロトコルを適用したNoCシステム
KR100675850B1 (ko) 2005-10-12 2007-02-02 삼성전자주식회사 AXI 프로토콜을 적용한 NoC 시스템
US20070115939A1 (en) 2005-10-12 2007-05-24 Samsung Electronics Co., Ltd. Network on chip system employing an advanced extensible interface protocol
US20150103822A1 (en) 2013-10-15 2015-04-16 Netspeed Systems Noc interface protocol adaptive to varied host interface protocols
US20150172424A1 (en) 2013-12-12 2015-06-18 Fujitsu Limited Relay apparatus, relay control method, and recording medium having relay control program recorded therein
JP2015115832A (ja) 2013-12-12 2015-06-22 富士通株式会社 中継装置、中継制御方法、及び、中継制御プログラム
US20150188847A1 (en) 2013-12-30 2015-07-02 Netspeed Systems STREAMING BRIDGE DESIGN WITH HOST INTERFACES AND NETWORK ON CHIP (NoC) LAYERS
US20170242813A1 (en) 2016-02-23 2017-08-24 Honeywell International Inc. Bus bridge for translating requests between a module bus and an axi bus
CN108701113A (zh) 2016-02-23 2018-10-23 霍尼韦尔国际公司 用于在模块总线和axi总线之间转化请求的总线桥
JP2019507926A (ja) 2016-02-23 2019-03-22 ハネウェル・インターナショナル・インコーポレーテッドHoneywell International Inc. モジュールバスとaxiバスの間のリクエストを変換するためのバスブリッジ

Also Published As

Publication number Publication date
KR20200123814A (ko) 2020-10-30
EP3756318A1 (en) 2020-12-30
JP2021515453A (ja) 2021-06-17
CN111801916A (zh) 2020-10-20
WO2019164665A1 (en) 2019-08-29
KR102687432B1 (ko) 2024-07-22
US20190266125A1 (en) 2019-08-29
EP3756318B1 (en) 2023-01-18
CN111801916B (zh) 2022-11-01
US10503690B2 (en) 2019-12-10

Similar Documents

Publication Publication Date Title
JP7308215B2 (ja) 複数のインターフェース通信プロトコルに適合するプログラマブルNoC
Pionteck et al. Applying partial reconfiguration to networks-on-chips
US6745317B1 (en) Three level direct communication connections between neighboring multiple context processing elements
KR101937211B1 (ko) 상호 연결에서 이종 채널 용량
US10397108B2 (en) Service function chaining across multiple subnetworks
US10963421B1 (en) Flexible address mapping for a NoC in an integrated circuit
US8368423B2 (en) Heterogeneous computer architecture based on partial reconfiguration
US20080084893A1 (en) Network-on-chip apparatus, and method for controlling dynamic frequency for the same
WO2016094825A1 (en) Multilayered distributed router architecture
WO2013093733A1 (en) Flexible and scalable data link layer flow control for network fabrics
US12237831B2 (en) Network-on-chip (NOC) with flexible data width
CN104298633A (zh) 经高速串行链路的配置
US20190075158A1 (en) Hybrid io fabric architecture for multinode servers
EP1471697B1 (en) Data switching using soft configuration
KR101077539B1 (ko) 네트워크 온 칩 및 네트워크 온 칩 시스템
US10790906B2 (en) Data center network node
US9658952B2 (en) Technique for controlling memory accesses
JP4588560B2 (ja) テーブル装置及びこれを用いたアドレス検索装置
Devaux et al. R2noc: dynamically reconfigurable routers for flexible networks on chip
JP4564278B2 (ja) ソフト構成を用いたデータ交換
CN120321204A (zh) 基于多核传输的网络架构
HK1210882A1 (en) A matrix of on-chip routers interconnecting a plurality of processing engines and a method of routing using thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230428

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230703

R150 Certificate of patent or registration of utility model

Ref document number: 7308215

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150