IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ザイリンクス インコーポレイテッドの特許一覧

特許7308215複数のインターフェース通信プロトコルに適合するプログラマブルNoC
<>
  • 特許-複数のインターフェース通信プロトコルに適合するプログラマブルNoC 図1
  • 特許-複数のインターフェース通信プロトコルに適合するプログラマブルNoC 図2
  • 特許-複数のインターフェース通信プロトコルに適合するプログラマブルNoC 図3
  • 特許-複数のインターフェース通信プロトコルに適合するプログラマブルNoC 図4
  • 特許-複数のインターフェース通信プロトコルに適合するプログラマブルNoC 図5
  • 特許-複数のインターフェース通信プロトコルに適合するプログラマブルNoC 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-05
(45)【発行日】2023-07-13
(54)【発明の名称】複数のインターフェース通信プロトコルに適合するプログラマブルNoC
(51)【国際特許分類】
   H04L 61/10 20220101AFI20230706BHJP
   H04L 69/08 20220101ALI20230706BHJP
【FI】
H04L61/10
H04L69/08
【請求項の数】 15
(21)【出願番号】P 2020544292
(86)(22)【出願日】2019-02-05
(65)【公表番号】
(43)【公表日】2021-06-17
(86)【国際出願番号】 US2019016608
(87)【国際公開番号】W WO2019164665
(87)【国際公開日】2019-08-29
【審査請求日】2022-01-12
(31)【優先権主張番号】15/904,211
(32)【優先日】2018-02-23
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】591025439
【氏名又は名称】ザイリンクス インコーポレイテッド
【氏名又は名称原語表記】XILINX INCORPORATED
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】スワーブリック, イアン エー.
【審査官】宮島 郁美
(56)【参考文献】
【文献】特開2007-110706(JP,A)
【文献】米国特許出願公開第2007/0115939(US,A1)
【文献】韓国登録特許第10-0675850(KR,B1)
【文献】特開2015-115832(JP,A)
【文献】米国特許出願公開第2015/0172424(US,A1)
【文献】特表2006-501694(JP,A)
【文献】米国特許出願公開第2007/0067487(US,A1)
【文献】中国特許出願公開第1736073(CN,A)
【文献】特開平11-289286(JP,A)
【文献】米国特許第06418147(US,B1)
【文献】特開平07-245636(JP,A)
【文献】米国特許出願公開第2006/0153177(US,A1)
【文献】米国特許出願公開第2017/0242813(US,A1)
【文献】特表2019-507926(JP,A)
【文献】中国特許出願公開第108701113(CN,A)
【文献】米国特許出願公開第2015/0188847(US,A1)
【文献】米国特許出願公開第2015/0103822(US,A1)
【文献】米国特許出願公開第2003/0208566(US,A1)
【文献】韓国公開特許第10-2012-0054142(KR,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L12/00-13/18,41/00-49/9057,61/00-65/80,69/00-69/40
(57)【特許請求の範囲】
【請求項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のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の例は、一般に、プログラマブルネットワークオンチップ(NoC)に関し、特に、異なる通信プロトコルをサポートするようにNoC中のインターフェース要素を再構成することに関する。
【背景技術】
【0002】
システムオンチップ(SoC)(たとえば、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブル論理デバイス(PLD)、または特定用途向け集積回路(ASIC))は、SoC中の論理ブロック、たとえば、プログラマブル論理ブロック、プロセッサ、メモリなどの間でデータパケットをルーティングするためのネットワークオンチップ(NoC)として知られているパケットネットワーク構造を含むことができる。NoCはプログラマブル論理から形成され得るが、これは、他の特徴または回路(たとえば、より多くのプロセッサ、メモリ、またはユーザのための利用可能なプログラマブル論理)のために使用され得る、SoC上の多くのエリアを必要とする。(たとえば、非プログラマブル回路を使用して)NoCの全部または一部を強化することはSoC中のNoCのフットプリントを著しく低減し得るが、NoCはその場合フレキシビリティを失う。すなわち、NoC中の強化された構成要素は、異なる通信プロトコルをサポートするように再構成されることができない。
【発明の概要】
【0003】
集積回路中のNoCを構成するための技法について説明する。1つの例は、NoCと、第1のハードウェア論理ブロックと、第2のハードウェア論理ブロックとを含むSoCである。NoCは、第1のハードウェア論理ブロックに接続された進入(ingress)論理ブロックと、第2のハードウェア論理ブロックに接続された退出(egress)論理ブロックと、進入論理ブロックを退出論理ブロックに接続する複数の相互接続された交換機とを含む。その上、進入論理ブロックは、第1のインターフェース通信プロトコルに適合する受信されたデータを第1のパケットに変換するように構成された第1のエンコーダと、第2のインターフェース通信プロトコルに適合する受信されたデータを第2のパケットに変換するように構成された第2のエンコーダとを含む。さらに、退出論理ブロックは、第1のパケットを第1のインターフェース通信プロトコルに適合するデータに変換するように構成された第1のデコーダと、第2のパケットを第2のインターフェース通信プロトコルに適合するデータに変換するように構成された第2のデコーダとを含む。
【0004】
いくつかの実施形態では、進入論理ブロックは、NoCが動作可能であるとき、第1および第2のエンコーダのうちの1つをアクティブ化し、他のエンコーダを非アクティブ化するように構成され得、退出論理ブロックは、NoCが動作可能であるとき、第1のデコーダおよび第2のデコーダのうちの1つをアクティブ化し、他のデコーダを非アクティブ化するように構成され得る。
【0005】
いくつかの実施形態では、第1のエンコーダが進入論理ブロック中でアクティブであるとき、第1のデコーダは退出論理ブロック中でアクティブであり得第2のデコーダは非アクティブであり得、第2のエンコーダが進入論理ブロック中でアクティブであるとき、第2のデコーダは退出論理ブロック中でアクティブであり得第1のデコーダは非アクティブであり得る。
【0006】
いくつかの実施形態では、進入論理ブロック中の第1のエンコーダおよび第2のエンコーダ、ならびに退出論理ブロック中の第1のデコーダおよび第2のデコーダは、強化回路を含み得る。
【0007】
いくつかの実施形態では、進入論理ブロックは、(i)第1のハードウェア論理ブロックから進入論理ブロックにデータを転送するために使用されるインターフェースにおけるデータ幅と、(ii)インターフェースによってデータが送信される周波数とを調整するように構成され得る。
【0008】
いくつかの実施形態では、第1のパケットおよび第2のパケットは、両方とも、複数の交換機によって第1のパケットおよび第2のパケットをルーティングするために使用されるNoCパケットプロトコルに適合し得る。
【0009】
いくつかの実施形態では、第1のインターフェース通信プロトコルは、メモリマップされた通信プロトコルであり得、第2のインターフェース通信プロトコルはストリーミングプロトコルであり得る。
【0010】
いくつかの実施形態では、第1のハードウェア論理ブロックおよび第2のハードウェア論理ブロックは、ユーザによって再構成され得るプログラマブル論理ブロックであり得る。第1のエンコーダおよび第2のエンコーダ、ならびに第1のデコーダおよび第2のデコーダは、プログラマブル論理ブロックに関連するプログラマブル論理ファブリックから独立してアクティブ化および非アクティブ化され得る。
【0011】
いくつかの実施形態では、SoCはフィールドプログラマブルゲートアレイ(FPGA)を含み得る。
【0012】
いくつかの実施形態では、第1のハードウェア論理ブロックおよび第2のハードウェア論理ブロックは、非プログラマブルである強化論理ブロックであり得る。
【0013】
本明細書で説明する1つの例は、NoC中の進入論理ブロック中の第1のエンコーダがアクティブであり、NoC中の退出論理ブロック中の第1のデコーダがアクティブである場合に、第1の通信プロトコルを使用してSoC中の第1の論理ブロックと第2の論理ブロックとの間の通信を与えるようにプログラマブルNoCを構成することを含む方法である。第2の通信プロトコルを使用して第1の論理ブロックと第2の論理ブロックとの間の通信を与えるようにNoCを再構成することを決定すると、本方法は、進入論理ブロック中の第2のエンコーダをアクティブ化し、第1のエンコーダを非アクティブ化すること、ならびに退出論理ブロック中の第2のデコーダをアクティブ化し、第1のデコーダを非アクティブ化することを含む。
【0014】
いくつかの実施形態では、本方法は、進入論理ブロックにおいて第1の論理ブロックから第1のデータを受信することをさらに含み得る。第1のデータは第1のインターフェース通信プロトコルに適合し得る。本方法は、第1のエンコーダを使用して第1のデータを第1のパケットに変換することと、NoC中の複数の交換機を使用して第1のパケットを退出論理ブロックにルーティングすることと、第1のデコーダを使用して第1のパケットを第1のインターフェース通信プロトコルに適合する第2のデータに変換することと、第2のデータを第2の論理ブロックに転送することとをさらに含み得る。
【0015】
いくつかの実施形態では、本方法は、NoCを再構成した後に、進入論理ブロックにおいて第1の論理ブロックから第3のデータを受信することであって、第1のデータが第2のインターフェース通信プロトコルに適合し得る、第3のデータを受信することと、第2のエンコーダを使用して第3のデータを第2のパケットに変換することと、複数の交換機を使用して第2のパケットを退出論理ブロックにルーティングすることと、第2のデコーダを使用して第2のパケットを第2のインターフェース通信プロトコルに適合する第4のデータに変換することと、第4のデータを第2の論理ブロックに転送することとをさらに含み得る。
【0016】
いくつかの実施形態では、本方法は、第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を通るそれぞれの通信経路を有し得る。
【0017】
いくつかの実施形態では、本方法は、第1の論理ブロックから進入論理ブロックにデータを転送するために使用されるインターフェースのデータ幅を調整することと、インターフェースによってデータが送信される周波数を調整することとをさらに含み得る。
【0018】
いくつかの実施形態では、第1のパケットおよび第2のパケットは、両方とも、複数の交換機を通して第1のパケットおよび第2のパケットをルーティングするために使用されるNoCパケットプロトコルに適合し得る。
【0019】
いくつかの実施形態では、第1のインターフェース通信プロトコルは、メモリマップされた通信プロトコルであり得、第2のインターフェース通信プロトコルはストリーミングプロトコルであり得る。
【0020】
いくつかの実施形態では、本方法は、第1の論理ブロックおよび第2の論理ブロック中のプログラマブル論理を再プログラムすることをさらに含み得る。第1の論理ブロックおよび第2の論理ブロックならびにNoCはFPGA内に含まれ得る。
【0021】
本明細書で説明する1つの例は、第1のハードウェア論理ブロックと、第2のハードウェア論理ブロックと、NoCとを含む集積回路である。NoCは、第1のハードウェア論理ブロックに接続された進入論理ブロックを含む。その上、進入論理ブロックは第1のエンコーダと第2のエンコーダとを含み、NoCが動作可能であるとき、進入論理ブロックは、第1のエンコーダおよび第2のエンコーダのうちの1つをアクティブ化し、他のエンコーダを非アクティブ化するように構成される。NoCはまた、第2のハードウェア論理ブロックに接続された退出論理ブロックを含む。退出論理ブロックは第1のデコーダと第2のデコーダとを含み、NoCが動作可能であるとき、退出論理ブロックは、第1のデコーダおよび第2のデコーダのうちの1つをアクティブ化し、他のデコーダを非アクティブ化するように構成される。
【0022】
いくつかの実施形態では、第1のエンコーダは、第1のインターフェース通信プロトコルに適合する受信されたデータを第1のパケットに変換するように構成され得、第2のエンコーダは、第2のインターフェース通信プロトコルに適合する受信されたデータを第2のパケットに変換するように構成され得る。第1のデコーダは、第1のパケットを第1のインターフェース通信プロトコルに適合するデータに変換するように構成され得、第2のデコーダは、第2のパケットを第2のインターフェース通信プロトコルに適合するデータに変換するように構成され得る。
【0023】
上記の特徴が詳細に理解され得るように、上記で手短に要約された、より詳細な説明は、例示的な実装形態を参照することによって得られ得、例示的な実装形態のうちのいくつかは添付の図面に示されている。しかしながら、添付の図面は、一般的な例示的な実装形態のみを示しており、したがってそれの範囲を限定するものと考えられるべきでないことに留意されたい。
【図面の簡単な説明】
【0024】
図1】一例による、プログラマブルNoCを含んでいるSoCのブロック図である。
図2】一例による、プログラマブルNoCを再構成するためのフローチャートである。
図3】一例による、プログラマブルNoCを再構成するためのフローチャートである。
図4】一例による、プログラマブルNoCを含んでいるSoCのブロック図である。
図5】一例による、プログラマブルNoCを含んでいるSoCの例示的なレイアウトである。
図6】一例による、プログラマブルNoCを動作させるためのフローチャートである。
【発明を実施するための形態】
【0025】
理解を促すために、可能な場合、図に共通である同一の要素を指定するために同一の参照番号が使用される。一例の要素は他の例に有益に組み込まれ得ることが企図される。
【0026】
以下で、図を参照しながら様々な特徴について説明する。図は、一定の縮尺で描かれていることもあり、描かれていないこともあること、および同様の構造または機能の要素は図全体にわたって同様の参照番号によって表されることに留意されたい。図は特徴の説明を促すものにすぎないことに留意されたい。図は、説明の網羅的な記述として、または特許請求の範囲の限定として意図されていない。さらに、示されている例は、示されているすべての態様または利点を有する必要はない。特定の例に関して説明される態様または利点は、必ずしもその例に限定されるとは限らず、そのように示されていない場合でも、またはそのように明示的に説明されていない場合でも、任意の他の例において実施され得る。
【0027】
本明細書の実施形態は、異なる通信プロトコルをサポートするようにブート時間または動作中のいずれかにおいて再構成され得るプログラマブルNoCを含むSoCについて説明する。一実施形態では、NoCは、SoC(たとえば、プロセッサ、メモリ、プログラマブル論理ブロックなど)中のハードウェア要素がNoCを使用してデータを送信および受信することを可能にする(本明細書で進入論理ブロックおよび退出論理ブロックと呼ぶ)インターフェース要素を含む。SoCが最初に電源投入されたとき、進入論理ブロックおよび退出論理ブロックは、SoC中のハードウェア要素とインターフェースするための特定の通信プロトコルをサポートするように構成され得る。しかしながら、後で、ユーザは、異なる通信プロトコルをサポートするために進入論理ブロックおよび退出論理ブロックを再構成することを望み得る。たとえば、最初にSoCをブートアップするとき、プログラマブル論理ブロックは、メモリマップされた通信プロトコルを使用してデータを送信および受信し得るが、後で、ストリーミング通信プロトコルを使用してデータを送信および受信するように再プログラムされる。応答して、SoCは、進入論理ブロックおよび退出論理ブロックが、プログラマブル論理ブロックによって使用されるストリーミング通信プロトコルをサポートするように、NoCを再構成し得る。このようにして、プログラマブルNoCは、(SoCをリブートすることによって、またはオンザフライで)複数の通信プロトコルをサポートするように再構成され得る。
【0028】
一実施形態では、プログラマブルNoCを形成するためにプログラマブル論理を使用するのではなく、NoCを形成する構成要素の一部または全部が強化される、すなわち、非プログラマブル回路から形成される。たとえば、進入論理ブロックおよび退出論理ブロックは、複数の通信プロトコルをサポートすることができる非プログラマブル回路から形成され得る。一実施形態では、進入論理ブロックは、複数の通信プロトコルをサポートするための複数のエンコーダを含むことができる。たとえば、各進入論理ブロックは、メモリマップされた通信プロトコルをサポートするための第1のエンコーダと、ストリーミング通信プロトコルをサポートするための第2のエンコーダとを含むことができる。同様に、各退出論理ブロックは、メモリマップされた通信プロトコルをサポートするための第1のデコーダと、ストリーミング通信プロトコルをサポートするための第2のデコーダとを含むことができる。NoCはまた、進入論理ブロックと退出論理ブロックとの間でパケットを転送するためにNoCパケットプロトコル(NPP)を使用する(同じく強化回路から形成され得る)マルチプロトコルパケット転送ネットワークを含むことができる。進入論理ブロックおよび退出論理ブロックが第1の通信プロトコルまたは第2の通信プロトコルを使用するかどうかにかかわらず、転送ネットワークは、NoCによってパケットをSoC中の適切な宛先にルーティングすることができる。したがって、本明細書の実施形態は、プログラマブル論理を使用して実装されたNoCを使用することのフレキシビリティを与えるが、NoCの一部または全部を形成する強化回路を使用することに起因する面積削減を伴う。
【0029】
図1は、一例による、プログラマブルNoC105を含んでいるSoC100のブロック図である。NoC105に加えて、SoC100はまた、データを送信および受信するためにNoC105を使用する論理ブロック110Aおよび110Bを含む。別の言い方をすると、論理ブロック110は、通信するためにNoC105に依拠する。論理ブロック110は、プログラマブル論理ブロック、プロセッサ、デジタル信号処理ブロック、メモリなど、SoC100中の任意のハードウェア要素であり得る。
【0030】
論理ブロック110間の通信を可能にするために、プログラマブルNoC105は、論理ブロック110に結合された、(NoCマスタユニット(NMU)とも呼ばれる)進入論理ブロック115と、(NoCスレーブユニットまたはNoCサーバントユニット(NSU)とも呼ばれる)退出論理ブロック140とを含む。進入論理ブロック115および退出論理ブロック140はNoC105と論理ブロック110との間のインターフェースとして働く(本明細書では一般に「インターフェース要素」と呼ぶ)。進入論理ブロック115は、論理ブロック110からデータを受信し、データをパケット化し、次いでパケットをマルチプロトコル転送ネットワーク130に転送する。交換機135を使用して、マルチプロトコル転送ネットワーク130は、進入論理ブロック115から受信したパケットを1つまたは複数の宛先退出論理ブロック140にルーティングする。退出論理ブロック140は、受信されたパケットをパケット化解除し、復号されたデータを論理ブロック110に転送する。
【0031】
進入論理ブロック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は各通信プロトコルのためのそれぞれのエンコーダを含むことができる。
【0032】
一実施形態では、エンコーダ120および125は異なる回路を含む。たとえば、AXI4およびAXI4ストリーミング通信プロトコルは、異なるようにデータをフォーマットし、データを送信するための異なる技法を使用する。したがって、エンコーダ120および125は、それぞれのプロトコルから受信されるデータを符号化し、パケット化するための回路を含む。一実施形態では、エンコーダ120および125は、異なる機能をもつ別個のエンコーダである。しかしながら、いくつかの実施形態では、エンコーダ120および125は、共有される機能を有し得、したがって、同じ回路を共有し得る。たとえば、異なるプロトコルが、データをパケット化するときに同じである1つまたは複数の動作を有する場合、エンコーダ120および125は、各エンコーダ120および125が重複する回路を有するのではなく、それらの共通の動作を実行するために使用される回路を共有することができる。
【0033】
一実施形態では、各進入論理ブロック115はエンコーダ120および125のうちの1つのみをアクティブ化する。たとえば、SoC100をブートするとき、制御信号に基づいて、進入論理ブロック115は、論理ブロック110がNoC105にデータを送信するために使用する通信プロトコルのタイプに応答して、エンコーダのうちの1つをアクティブ化し、他のエンコーダを非アクティブ化する。すなわち、論理ブロック110Aがメモリマップされたプロトコルを使用する場合、進入論理ブロック115は、(エンコーダ120が、メモリマップされたプロトコルを使用して受信されたデータを符号化し、パケット化するように構成されていると仮定して)エンコーダ120をアクティブ化し得、ストリーミングデータを符号化し、パケット化し得るエンコーダ125を非アクティブ化し得る。
【0034】
NoC105中の進入論理ブロック115のすべては同じタイプのエンコーダ(たとえば、第1のプロトコル120のためのエンコーダ)をアクティブにさせることができるが、他の例では、異なる進入論理ブロック115は異なるエンコーダをアクティブにさせることができる。たとえば、論理ブロック110Aが論理ブロック110Bにデータを送信する場合、両方の論理ブロック110は同じ通信プロトコル、たとえば、メモリマップされた通信プロトコルを使用し得る。しかしながら、SoC中の2つの異なる論理ブロックはストリーミング通信プロトコルを使用し得る。その場合、それらの論理ブロックに結合された進入論理ブロックは、図1に示された論理ブロック110に結合された進入論理ブロック115とは異なるエンコーダをアクティブにさせる。したがって、NoC105は、異なる通信プロトコルを並行して使用して受信されたデータの転送を促すことができる。すなわち、1つの論理ブロック110は、メモリマップされたプロトコルを使用してNoC105にデータを送信することができ、同時に、別の論理ブロックは、ストリーミングプロトコルを使用してNoC105にデータを送信する。
【0035】
マルチプロトコル転送ネットワーク130は、NoC105が、異なる通信プロトコルを使用して論理ブロックから受信されたデータをルーティングすることを可能にする。一実施形態では、受信したデータをパケット化するとき、進入論理ブロック115は、データをNoCパケットプロトコル(NPP)によって定義されたパケットに変換する。したがって、データを進入論理ブロック115に送るためにどの通信プロトコルが使用されたかにかかわらず、進入論理ブロック115はデータをNPPに変換し、したがって、データは、転送ネットワーク130中の交換機135を使用して転送され得る。別の言い方をすると、進入スイッチ中のエンコーダ120および125は、データを進入論理ブロック115に送信するために論理ブロック110によって使用される固有のフォーマットにかかわらず、データがNoC105を横切ることができるように、受信されたデータを同じネットワークプロトコル、たとえば、NPPに変換する。
【0036】
受信されると、退出論理ブロック140は、パケットをパケット化解除するかまたは復号し、復号されたデータを、ダウンストリーム論理ブロック110に適合する通信プロトコルを使用して転送する。進入論理ブロック115のように、退出論理ブロック140の各々は、第1のプロトコル145のためのデコーダと、第2のプロトコル150のための別個のデコーダとを含む。デコーダ145および150は、復号動作のうちの1つまたは複数が第1の通信プロトコルと第2の通信プロトコルの両方によって共有される場合、別個の回路を含むことができるか、またはいくつかの回路を共有することができる。その上、2つのデコーダが示されているが、各退出論理ブロック140は、プログラマブルNoC105によってサポートされる通信プロトコルの数に応じて、3つ、4つ、またはより多くの数の異なるデコーダを含むことができる。
【0037】
一実施形態では、退出論理ブロック140は、退出論理ブロック140に結合されたダウンストリーム論理ブロック110によって使用される通信プロトコルに応じて、デコーダのうちの1つをアクティブ化し、他のデコーダを非アクティブ化する。たとえば、図1中の進入論理ブロック115および退出論理ブロック140は、論理ブロック110Aおよび110Bによって使用される通信プロトコルに対応するエンコーダ/デコーダをアクティブにさせ得る。すなわち、論理ブロック110Aが、NoC105を使用して論理ブロック110Bにデータを送信すると仮定すると、進入論理ブロック115および退出論理ブロック140は、同じ通信プロトコルに対応するエンコーダおよびデコーダをアクティブ化する。
【0038】
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ブロックと通信するためのそのようなファブリックを含むと仮定して)プログラムされ得ることを意味する。
【0039】
図2は、一例による、プログラマブルNoCを再構成するための方法200のフローチャートである。ブロック205において、NCNは、第1の通信プロトコルを使用してSoC中の第1の論理ブロックと第2の論理ブロックとの間の通信を与えるようにプログラマブルNoCを構成する。たとえば、図1に示されたNCN155は、論理ブロック110がNoC105にデータを送信し、NoC105からデータを受信するために第1の通信プロトコル(たとえば、メモリマップされた通信プロトコルまたはストリーミング通信プロトコル)を使用するとき、論理ブロック110間の通信を可能にするようにNoC105を構成することができる。
【0040】
しばらくした後、ユーザ(または論理ブロック自体)は、NoCにデータを転送し、NoCからデータを転送するために異なる通信プロトコルに切り換えることを希望し得る。たとえば、論理ブロックは、異なる通信プロトコルを使用するように再構成されるプログラマブル論理ブロックであり得る。別の例では、論理ブロックは、2つの異なる通信プロトコル間を切り換えることができるメモリ要素またはプロセッササブシステムであり得る。たとえば、NoCにデータを送信するためにAXI4を使用する代わりに、第1の論理ブロックおよび第2の論理ブロックは、次に、NoCと通信するためにAXI4ストリーミングを使用することを希望する。
【0041】
ブロック210において、NCNは、第2の通信プロトコルを使用してSoC中の第1の論理ブロックと第2の論理ブロックとの間の通信を与えるようにプログラマブルNoCを再構成する。たとえば、NCNは、第2の通信プロトコルを使用してNoCがデータを受信および送信することを可能にするプログラマブルNoCに関連する構成レジスタを更新するために、交換機を使用し得る。このようにして、プログラマブルNoCは、強化インターフェース要素を含むことができ、依然として異なる通信プロトコル間を切り換えるフレキシビリティを有することができる。
【0042】
一実施形態では、NCNは、SoCをリブートした後にプログラマブルNoCを再構成する。すなわち、リブートするとき、NCNは、第2の通信プロトコルをサポートするようにNoCをプログラムする構成レジスタを更新することができる。しかしながら、別の実施形態では、NCNは、SoCをリブートすることなしにプログラマブルNoCを再構成することができる。この例では、再構成が行われるときに、NoCのいくつかの部分が利用不可能であり得るが、SoCは動作可能のままであり得る。たとえば、再構成プロセス中にアクティブ化/非アクティブ化されるエンコーダおよびデコーダを有する進入論理ブロックおよび退出論理ブロックを含んでいるNoCの部分は、プロセスが完了するまで、ネットワークトラフィックを送信するために利用不可能であり得る。このようにして、NCNは、SoCをリブートした後に、またはオンザフライで、すなわち、SoCが動作可能な状態のままである間にNoCを再構成することができる。
【0043】
図3は、一例による、プログラマブルNoCを再構成するための方法300のフローチャートである。一実施形態では、方法300は、プログラマブルNoCが、異なる通信プロトコルを使用してデータを送信および受信するように再構成される、方法200のブロック210をより詳細に記述する。
【0044】
方法300は、NCNがプログラマブルNoCを再構成するための命令を受信するブロック305において開始する。この命令は、論理ブロックがNoCとどのように通信するかを変更することを希望するユーザによって送られ得るか、またはNoCと通信するための異なる通信プロトコルに切り換えることを決定した後に、論理ブロック自体によって送られ得る。
【0045】
ブロック310において、NCNは、命令に対応するNoC中の進入論理ブロックおよび退出論理ブロックを識別する。すなわち、命令は、NoC中のすべてのこれらのブロックではなく、進入論理ブロックおよび退出論理ブロックの部分のみに影響を及ぼし得る。たとえば、SoC中のハードウェア論理ブロックの2つのみが、それらがNoCとどのように通信するかを変更していることがあり、SoC中の残りのハードウェア論理ブロックは、通信するために同じ通信プロトコル(または複数のプロトコル)を使用している。したがって、NCNは、それらの通信プロトコルを変更している論理ブロックに接続された進入論理ブロックおよび退出論理ブロックのみを変更更新し、残りの進入論理ブロックおよび退出論理ブロックは方法300中不変である。たとえば、SoC中の2つのプログラマブル論理ブロックは第2の通信プロトコルに切り換え得、NoCに結合されたプロセッササブシステム、メモリ、および他のプログラマブル論理ブロックは、通信するために同じ(すなわち、前の)通信プロトコルまたは複数のプロトコルを使用する。したがって、NCNは、2つのプログラマブル論理ブロックに接続された進入論理ブロックおよび退出論理ブロックを再構成するが、他の進入論理ブロックおよび退出論理ブロックは不変のままにする。
【0046】
別の実施形態では、NCNは進入論理ブロックおよび退出論理ブロックのグループを再構成することができる。たとえば、第1のグループは最初に第1のインターフェース通信プロトコルを使用し得、第2のグループは第2のインターフェース通信プロトコルを使用する。異なるインターフェース通信プロトコルを使用するにもかかわらず、第1および第2のグループはNoCを通して並行してデータを送信することができる。その上、第1および第2のグループは、1つまたは複数の交換機を共有することができる、NoCを通るそれぞれのデータ経路を有することができる。すなわち、NoCは、2つのグループ中の進入論理ブロック/退出論理ブロック間でデータをルーティングするために同じ交換機(または異なる交換機)を使用することができる。後で、NCNは、進入論理ブロックおよび退出論理ブロックの第1のグループを第2の通信プロトコルを使用するように再構成し、同時に第2のグループを第1の通信プロトコルを使用するように再構成することができる。再構成された後、第1および第2のグループは、この場合も、NoC中でデータを同時に送信し、共通の交換機を有し得る通信経路を使用することができる。
【0047】
ブロック315において、NCNは、識別された進入論理ブロック中で、第1のエンコーダを非アクティブ化し、第2のエンコーダをアクティブ化する。すなわち、NCNは、進入論理ブロックによって使用されるエンコーダを、新しい通信プロトコルに適合するエンコーダに切り換える。そうするために、一実施形態では、NCNは、適切なエンコーダをアクティブ化するように論理ブロックに命令する進入論理ブロックに対応する構成レジスタを更新する。
【0048】
ブロック320において、NCNは、識別された退出論理ブロック中で、第1のデコーダを非アクティブ化し、第2のデコーダをアクティブ化する。別の言い方をすると、NCNは、新しい通信プロトコルに適合するデコーダをアクティブ化する。一実施形態では、NCNは、適切なデコーダをアクティブ化するように論理ブロックに命令する退出論理ブロックに対応する構成レジスタを更新する。
【0049】
ブロック325において、NCNは、識別された進入論理ブロックおよび退出論理ブロックと、進入論理ブロックおよび退出論理ブロックに接続された対応する論理ブロックとの間のインターフェースのためのデータ幅を設定する。すなわち、論理ブロックと通信するためにNoCによって使用される通信プロトコルを変更することに加えて、NCNはまた、NoCと論理ブロックとの間で転送されるデータの幅を変更することができる。たとえば、ユーザはインターフェース要素(すなわち、進入論理ブロックおよび退出論理ブロック)のためのデータ幅を32~512ビットから選択することができる。今度は、NCNは、設定されたデータ幅を使用してデータを受信または送信するように進入論理ブロックおよび退出論理ブロックに命令する。
【0050】
さらに、一実施形態では、NCNは、論理ブロックからデータを受信するか、または論理ブロックにデータを送信するときに、進入論理ブロックおよび退出論理ブロックによって使用される周波数を調整または構成することができる。すなわち、NCNは、進入論理ブロックおよび退出論理ブロックが論理ブロックとともにデータを転送する速度を増加または低減することができる。このようにして、非プログラマブルNoCとは異なり、プログラマブルNoCは、NCNならびに進入論理ブロックおよび退出論理ブロックを使用して、インターフェース通信プロトコル、データ幅、および周波数を変更することができる。進入論理ブロックおよび退出論理ブロックは、面積を節約するために非プログラマブル回路から形成され得る(すなわち、強化される)が、他の実施形態では、進入論理ブロックおよび退出論理ブロックは何らかのプログラマブル論理を含むことができる。すなわち、本明細書の実施形態は、進入論理ブロックおよび退出論理ブロックによって実行される1つまたは複数の動作を変更するための何らかのプログラマブル論理を進入論理ブロックおよび退出論理ブロック(またはNoC中の他の構成要素)中に含み得る。
【0051】
図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に送信することができる。
【0052】
PLブロック405Aは、PLブロック405Bとプロセッサ410とによって送信されるデータを受信するための退出論理ブロック140を含み得る。一実施形態では、ハードウェア論理ブロックは、同じくNoC105に接続されたすべての他のハードウェア論理ブロックと通信することが可能であるが、他の実施形態では、ハードウェア論理ブロックは、NoC105に接続された他のハードウェア論理ブロックのサブ部分のみと通信し得る。たとえば、メモリ415は、PLブロック405Aと通信することが可能であるが、PLブロック405Bと通信することは可能ではないことがある。
【0053】
上記で説明したように、進入論理ブロックおよび退出論理ブロックはすべて、PLブロック405、プロセッサ410、およびメモリ415と通信するために同じ通信プロトコルを使用し得るか、または異なる通信プロトコルを使用することができる。たとえば、PLブロック405Aは、PLブロック405Bと通信するためにメモリマップされたプロトコルを使用し得、プロセッサ410は、メモリ415と通信するためにストリーミングプロトコルを使用する。転送ネットワーク130は、(進入論理ブロックが受信されたデータを同じNPPに変換するので)複数のプロトコルをサポートすることができるので、NoC105は異なるインターフェース通信プロトコルを並行して使用することをサポートする。別の言い方をすると、進入論理ブロック115は、異なるインターフェース通信プロトコルを使用して受信されたデータを同じプロトコル(たとえば、NPP)に適合するパケットに変換し、パケットは、次いで、転送ネットワーク130中の交換機によって退出論理ブロック140にルーティングされる。今度は、退出論理ブロック140がパケットをNPPから、接続された論理ブロックによって使用されるインターフェース通信プロトコルに適合するデータに変換する。
【0054】
一実施形態では、SoC100は、ユーザ設計に従ってPLブロック405を構成するFPGAである。すなわち、この例では、FPGAはプログラマブル論理ブロックと強化論理ブロックの両方を含む。しかしながら、他の実施形態では、SoC100は、強化論理ブロックのみを含むASICであり得る。すなわち、SoC100はPLブロック405を含まないことがある。論理ブロックが非プログラマブルであるとしても、NoC105は、上記で説明したように、依然としてプログラマブルであり得、したがって、強化論理ブロック、たとえば、プロセッサ410およびメモリ415は、異なる通信プロトコル間で切り換えること、インターフェースにおいてデータ幅を変更すること、または周波数を調整することができる。
【0055】
図5は、一例による、プログラマブルNoC105を含んでいるSoC100の例示的なレイアウトを示す。図4におけるように、図5は、PLブロック405、プロセッサ410、メモリ415、進入論理ブロック115および退出論理ブロック140を示す。さらに、図5は、進入論理ブロック115と退出論理ブロック140との間でパケットをルーティングするためにNoC中のマルチプロトコル転送ネットワークによって使用される接続および(「X」が付いたボックスとして標示された)様々な交換機135を示す。
【0056】
SoC100の物理的レイアウトにおけるPLブロック405、プロセッサ410およびメモリ415のロケーションは、これらのハードウェア要素を構成する1つの例にすぎない。さらに、SoC100は、示されているよりも多くのハードウェア要素を含むことができる。例として、SoC100は、SoC100上の異なるロケーションに配設される追加のPLブロック、プロセッサおよびメモリを含み得る。さらに、SoC100は、それぞれの進入論理ブロック115および退出論理ブロック140を使用してNoCに結合されることもあり結合されないこともあるI/Oモジュールおよびメモリコントローラなど、他のハードウェア要素を含むことができる。たとえば、I/OモジュールはSoC100の周囲の周りに配設され得る。
【0057】
一実施形態では、(図5に示されていない)NCNは、NoCに結合されたハードウェア論理ブロックに対応するレジスタをプログラムする。すなわち、NoC中の構成要素(たとえば、進入論理ブロック115および退出論理ブロック140)を構成することに加えて、NCNは、これらの論理ブロックがNoCと通信することを可能にする対応するレジスタを使用して、NoCに接続されたハードウェア論理ブロックを構成することができる。
【0058】
図6は、一例による、プログラマブルNoCを動作させるための方法600のフローチャートである。ブロック605において、進入論理ブロックは、第1のプロトコルまたは第2のプロトコルのうちの1つを使用してデータを受信する。すなわち、NoCは、SoC中の他のハードウェア論理ブロックとインターフェースするために使用され得る複数の異なる通信プロトコルをサポートする。たとえば、論理ブロックは、進入論理ブロックおよび退出論理ブロックにおいて、AXI4またはAXI4ストリーミングを使用してNoCにデータを送信し得、NoCからデータを受信し得る。別の言い方をすると、NoCは、NoCにデータを転送するための、およびNoCからデータを受信するための複数のインターフェース通信プロトコルをサポートする。
【0059】
ブロック610において、進入論理ブロックは、受信されたデータをNPPのためのパケットに変換する。一実施形態では、進入論理ブロック中のアクティブなエンコーダは、受信されたデータをNPPに適合するパケットにパケット化する。したがって、受信されたデータは、次いで、NoCによってルーティングされるパケットを形成するように修正される。
【0060】
アクティブなエンコーダを有することに加えて、進入論理ブロックは、NoCによってサポートされるが、現在、接続された論理ブロックによって進入論理ブロックにデータを転送するために使用されていない別のインターフェース通信プロトコル(または複数のプロトコル)に対応する、非アクティブなエンコーダ(または複数の非アクティブなエンコーダ)を含むことができる。一実施形態では、NoCが動作可能であるとき、進入論理ブロック中のただ1つのエンコーダがアクティブである。
【0061】
ブロック615において、進入論理ブロックは、パケット中の指定されたアドレスのための宛先IDを識別する。パケットのための宛先IDは、NoC中の転送ネットワーク(たとえば、相互接続された交換機)を通してパケットがどのようにルーティングされるかを決定する。別の言い方をすると、NoC中でパケットをルーティングするために使用される交換機は、宛先IDに基づいて選択される。
【0062】
ブロック620において、マルチプロトコル転送ネットワークは、パケットを宛先IDに対応する退出論理ブロックにルーティングする。たとえば、図5に示された相互接続および交換機135を使用して、NoCは、進入論理ブロック115から受信されたパケットを所望の退出論理ブロック140にルーティングすることができる。
【0063】
ブロック625において、退出論理ブロックは、パケットをNPPから第1のプロトコルまたは第2のプロトコルのうちの1つに適合するデータに変換する。一実施形態では、退出論理ブロックは、受信されたパケットをパケット化解除するためにデコーダを使用し、データを第1または第2のプロトコルに適合するフォーマットに変換する。一実施形態では、退出論理ブロックは、データを、接続された論理ブロックからデータを受信するためにブロック605において進入論理ブロックによって使用されたプロトコルと同じプロトコルに変換する。
【0064】
ブロック630において、退出論理ブロックは、変換されたデータを退出論理ブロックに結合された論理ブロックに転送する。このようにして、進入論理ブロックおよび退出論理ブロックは、NoCに接続された論理ブロック間の通信を促進することができる。方法600は、進入論理ブロックおよび退出論理ブロックが第1のプロトコルをサポートするように構成されているか、第2のプロトコルをサポートするように構成されているかにかかわらず、使用され得る。すなわち、NCNは、送信する(またはデータ幅もしくは周波数を変更する)ために進入論理ブロックおよび退出論理ブロックを変更し得るが、方法600は実質的に不変のままである。
【0065】
上記は具体例を対象とするが、他のおよびさらなる例が、それの基本的な範囲から逸脱することなく考案され得、それの範囲は以下の特許請求の範囲によって決定される。
図1
図2
図3
図4
図5
図6