JPWO2011148925A1 - 半導体装置とネットワークルーティング方法とシステム - Google Patents

半導体装置とネットワークルーティング方法とシステム Download PDF

Info

Publication number
JPWO2011148925A1
JPWO2011148925A1 JP2012517269A JP2012517269A JPWO2011148925A1 JP WO2011148925 A1 JPWO2011148925 A1 JP WO2011148925A1 JP 2012517269 A JP2012517269 A JP 2012517269A JP 2012517269 A JP2012517269 A JP 2012517269A JP WO2011148925 A1 JPWO2011148925 A1 JP WO2011148925A1
Authority
JP
Japan
Prior art keywords
routing
information
reference table
network
routing information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012517269A
Other languages
English (en)
Inventor
淳 鳥居
淳 鳥居
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2011148925A1 publication Critical patent/JPWO2011148925A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本発明は、ネットワークインタフェースのルーティング参照表をルーティングの動的な変更等に柔軟に対応可能とし構成を簡易化可能としコストを低減する装置と方法、システムを提供する。情報処理ユニット、記憶ユニット、インタフェースユニットのうちの少なくとも一つのユニットを複数備え、交信チャネルとルータから構成されるオンチップネットワークと前記ユニットはネットワークインタフェースを介して接続される半導体装置であって、前記ネットワークインタフェースは、前記オンチップネットワークの所望経路上に存在する各ルータにおいてどの交信チャネルへ出力するかを、ルータ個々に指定した一又は複数の出力情報から構成されるルーティング情報を保持するルーティング参照表を備え、前記ルーティング参照表は、前記ルーティング参照表の属するネットワークインタフェースが送信する可能性があるネットワーク交信のルーティング情報のうちの一部を保持し、ルーティング時、該ルーティングに必要なルーティング情報が前記ルーティング参照表に保持されているか否かを判定する半導体装置が提供される。

Description

(関連出願についての記載)
本発明は、日本国特許出願:特願2010−118084号(2010年5月24日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、半導体装置に関し、特に、例えば複数のIP(Intellectual Property)コアを集積したLSI(Large Scale Integration)集積回路であるSystem on a Chip(SoCとも略記される)等においてIPコア間のデータ交信用ネットワークオンチップ(Network on a Chip: NoCとも略記される)等に適用して好適な装置構成及び方法とシステムに関する。
従来、複数のIP(Intellectual Property)コアを集積したLSI集積回路であるSystem on a Chip(SoC)等において、IPコア間の接続にはバスが用いられている。例えば、ARM社が提唱するAMBAは、このようなバスの業界標準となっている。AMBAは、コア数の増加、チップの複雑化に対応し、AHB(Advanced High−performance Bus)、マルチレイヤAHB、AXI(Advanced eXtensible Interface)というように進化してきた。
しかしながら、上記のようなバス構成では、配線長が長くなり、その結果、周波数の向上への対応が難しくなっている。また、同一チップ内の複数IPコアからのアクセス競合に対する調停を集中的に行う必要がある。そのため、同一チップ内に搭載されるIPコアの数の変動に対して、バスを作り直す必要が生じる、等といった問題が生じている。
これらの問題に対処すべく、バスを階層的に接続することによって、ローカリティを持たせて対処する方法が、高性能なSoCでは、積極的に行われてきた。
<NoC>
上記とは別に、データをパケット化して送ることにより、通信のローカリティを有効に活用しつつ、調停を各ルータに分散させることによってスケーラビリティを確保可能なNoC(Network on Chip)は、米国Stanford大学のDally, W.J.等による非特許文献1で提案されており、近年積極的に研究されてきた。
実際のチップにNoCを採用した例として、例えばTILERA社のTILE64、Intel社の80コアチップや48コアチップ、CEA−LetiのFAUSTチップ、MAGALIチップ等があげられる。
<NoCの一例:4x4メッシュ構造>
これらは、基本的に、図8に示すようなルータ(Router)302と、通信チャネル305によってネットワークを構成している。ネットワークノードをなすIPコア303はネットワークインタフェース(NI)304により通信チャネル305を介して各々に対応するルータ(Router)302に接続し、ネットワークと交信する。ネットワークインタフェース304とルータ302間は、パケット単位にデータの転送が行われる。ルータ以降のネットワーク上でのデータ転送は、パケットを複数のフリットという単位に分割して行われる。
より詳細には、ルータ302は、図9に示すように、複数のフリットから構成されたパケットをこれらのネットワークに流すことによって交信を実現する。パケットは、受信先IP位置情報323、フリット長324、制御情報325、アクセスアドレス326、アクセス属性327(パケットヘッダー)と、データ328(ペイロード)からなり、図9の例では、先頭フリットであるフリット0からフリットnまでのn+1個のフリットに分割される。各フリットは、サイドバンド信号(フリットの属性情報)322とパケットボディ信号(制御情報/ペイロード)321からなる。
各ルータ302は、受け取ったパケットを、ネットワークを介して送信先(宛先)のネットワークインタフェース(NI)304に送るために、適切な出力ポートに送出する。その際、
(A)ルータ302内で送信先のアドレスやIDを見た上で、予め定められた所定の規則に基づき、次のホップに向けた送出先を決定する分散ルーティング方式と、
(B)データの送信元のネットワークインタフェースにおいて、送信先までのルーティングを全て決定してしまい、ルーティング情報をパケットに含めソースルーティング方式
が存在する。
<ソースルーティング方式>
このうち(B)のソースルーティング方式では、各ルータ302における出力チャネル情報を、送信側のネットワークインタフェースにおいて、あらかじめパケットに埋め込むことにより、各ルータでは、この情報を抽出するだけで、ルーティングを完了することができる。このため、ルータの簡単化を図ることができる。
例えば、Intel社の80−Tile 1.28TFLOPS Network−on−Chipでは、このソースルーティング方式を採用している(非特許文献2)。
図10は、この関連技術のチップにおけるパケットの先頭フリット(フリット0)を示している。図10に示すように、このチップでは、出力側ネットワークインタフェースで、ルータ毎に出力先を示したDID(Destination IDs)341を10ホップ分生成し(DID0〜DID10)、パケット内に定義している。なお、CH(Chained Header)342はリンク先のヘッダーへのポインタである。
ルータ302は、DIDに従って出力ポートを決定する。従って、各ルータ302は、DIDの値を抽出するだけでルーティングが可能である。このように、ソースルーティング方式は、各ルータ302の構造を簡単化することができる。
しかしながら、ソースルーティング方式では、送信側のネットワークインタフェース304でルーティング計算を行う必要が生じる。
ネットワークインタフェース304におけるルーティング計算としては、
・行き先に応じた参照表(Look−up Table)を引く、
・行き先番号から、ハードウェアもしくはソフトウェアによってルーティングを計算する、
等の適用が考えられる。
<参照表>
このうち、参照表を引いてルーティング計算する手法は、例えば非特許文献3に記載されているように、ネットワークインタフェース304内で参照表(ルーティング参照表)を引いて、それに従ったルーティングを各ルータ302が行うことによって、パケットをルーティング、転送する。
これらの処理イメージを、図11に示す。図11において、送信側のIPコア、ここではCPU361が、受信先のIPコアであるメモリ368に対して更新(データの書き込み等)を行う場合には、要求をネットワークインタフェース362に伝え、ネットワークインタフェース362は、自身が持つ参照表363によって、パケットの受信先のアドレスをルーティング情報に変換し、該ルーティング情報を、当該パケットのヘッダーに書き込む。
ルータ364、365は、それぞれ、パケット・ヘッダーに書き込まれたルーティング情報に基づき、出力ポートを決定し、パケットを、受信先のネットワークインタフェース366に届ける。
受信先のネットワークインタフェース366において、受信したパケットをデコードした上、受信先のメモリ368にデータを渡すことで更新(データの書き込み)が成立する。
<参照表の実装例>
非特許文献3では、参照表の実装方法として、図12に示すように、
(a)ハードワイヤード型、
(b)レジスタベースの再構成可能型
(c)RAMベースの再構成可能型、
(d)選択ハードワイヤード型
を挙げている。
ハードワイヤード型は、n個のルーティング情報の中から1つを選択するマルチプレクサ(Mux nx1)と、PEアドレスを入力しマルチプレクサに対して選択信号を与えるアドレスエンコーダを備える。レジスタベースの完全再構成可能型(Fully Configurable−Register Based)は、SCAN ENでSCAN INのSCANが制御されるScan Register列と、n個の中から1つを選択するマルチプレクサ(Mux nx1)と、PEアドレスを入力しマルチプレクサの選択信号を与えるアドレスエンコーダを備える。RAMベースの完全再構成可能型(Fully Configurable−RAM Based)は、SCAN ENでSCAN INのSCANが制御されるScan Registerと、Scan Registerの出力をデータ入力端子DINに受けるRAMと、PEアドレスを入力しRAMのアクセスアドレスを与えるアドレスエンコーダを備える。部分再構成型(Partially Configurable)は、(a)のハードワイヤード回路の複数個のルーティング情報の1つをScan Registerの出力で選択するセレクタix1を備え、セレクタix1の出力がマルチプレクサに供給される。
非特許文献3では、ルーティング情報を混雑度などに応じて、動的に変更できる再構成可能型のハードウェア及び面積コストを論じており、あらかじめ複数のルーティング情報から一つを選択する、(d)の選択ハードワイヤード型が、面積コスト、ハードウェア・コストが低く、かつ目的としている動的ルーティング変更に対応可能と結論づけている。
非特許文献3による参照表は、図13に示すように、ルーティング情報テーブル381すべてのパケット受信先アドレス382に対するルーティング情報383を保持している。図13に示す例では、ルーティング情報テーブル381は、送信先として考えられるエントリを全て保持している。Wは現在のノードに対して西に1ホップ分離れた位置のルータ、Sは現在のノードに対して南に1ホップ離れた位置のルータ、IPは現在のルータに接続するIPコアを指示している。
ソースルーティング方式では、図10に示したように、ルーティング情報をフリット内にすべて書き込む必要があるため、ルータ数が増加した場合に、フリットのサイズが大きくなったり、あるいは、すべてのIPコアと交信することができなくなる、という問題が生じる。
<先願発明>
本願の発明者は、先願(特願2009−125580号、国際公開第2010/137572号)において、上記問題に対応する技術を提案している。
図14は、先願(特願2009−125580号、国際公開第2010/137572号)で提案した構成例を示すブロック図である。図14に示す例では、メインルータ403は、ネットワークインタフェース402と同様にルーティング計算能力を備えたものであり、遠方への交信はネットワークインタフェース402が、パケット受信先方向のメインルータ403までのルーティングを行い、パケット転送を行う。この構成によれば、ネットワーク上のほとんどのルータは、ルーティング計算機能を持たないサブルータ404となり、コストを削減することができる。
<特許文献1>
特許文献1には、通信ノード装置の各回線インタフェースに設けたルーティングテーブル(キャッシュメモリ)のメモリ容量有効活用と、ルーティング情報の検索ヒット率向上を図る通信ノード装置が提案されている。この特許文献1には、各回線インタフェースボードは、サブ・ルーティングテーブル(キャッシュメモリ)を備えており、入力回線から受信した可変長パケットのヘッダに含まれる宛先アドレスに基づいて、受信パケットを送出すべき出力回線番号を特定する通信ノード装置(ルート管理装置)が開示されている。
<特許文献2>
また、ネットワークオンチップ(NOC)の構成として、特許文献2には、集積プロセッサ(IP)ブロック、ルーター、メモリ通信コントローラおよびネットワーク・インターフェイス・コントローラを含むネットワークオンチップ(NOC)であって、各々の前記IPブロックが、前記メモリ通信コントローラおよび前記ネットワーク・インターフェイス・コントローラを介して、前記ルーターに結合され、各々の前記メモリ通信コントローラが、前記IPブロックおよびメモリ間の通信を制御し、各々の前記ネットワーク・インターフェイス・コントローラが、前記ルーターを介してIPブロック間通信を制御する、ネットワークオンチップ(NOC)が開示されている。
特開2001−045061号公報 特開2009−110512号公報 国際公開第2010/137572号公報
"Route packets, not wires: on-chip interconnection networks", Dally W.J., Towles B., Design Automation Conference, 2001. page: 684- 689 "An 80-Tile 1.28TFLOPS Network-on-Chip in 65nm CMOS", Sriram Vangal, Jason Howard, Gregory Ruhl, Saurabh Dighe, Howard Wilson, James Tschanz, David Finan, Priya Iyer, Arvind Singh, Tiju Jacob, Shailendra Jain, Sriram Venkataraman, Yatin Hoskote, Nitin Borkar IEEE International Solid State Circuit Conference 2007, pp98-99 "Synthesis of Low-Overhead Configurable Source Routing Tables for Network Interfaces", Igor Loi, Federico Angiolini, and Luca Benini, Design, Automation & Test in Europe 2009, pp262-267
以下に関連技術の分析を与える。
先に述べたように、非特許文献3では、図12(d)に示した選択ハードワイヤード型が、面積及びハードウェア・コスト上有利である旨が結論されている。
しかしながら、複数のルーティング候補から1つのルーティング候補を選択できるとしても、ハードウェア設計時に、それらのルーティングを洗い出して定義する必要が生じる。そして、これらの定義から外れたルーティングは、選択することができない。
また、各々のIPコア303に接続したネットワークインタフェース(NI)304が、それぞれの位置情報に基づいた固有のルーティング情報を持つ必要が生じるため、論理の単純コピーによる設計は不可能となり、検証のコストが増大する。
これに対して、図12(b)レジスタベースの再構成可能型、図12(c)RAMベースの再構成可能型は、ルーティング情報をチップ製造後に決定することが可能であり、さらに、動的に書き換え可能である。このため、これらの構成によれば、図12(d)の選択ハードワイヤード型で生じた上記問題点を回避することはできる。
しかしながら、図12(b)のレジスタベースの再構成可能型、及び、図12(c)のRAMベースの再構成可能型では、
・書き換え可能領域が増加することで参照表のエントリ数が増加した場合や、
・ネットワークオンチップの規模の増大によるホップ数の増加により、
必要な1エントリあたりのサイズが増大すると、そのまま、ハードウェア・コストの増大に繋がる、という問題が生じる。
したがって、本発明の目的は、ネットワークインタフェースのルーティング参照表をルーティングの動的な変更等に対して柔軟に対応可能とし、構成を簡易化可能とし、コストを低減する半導体装置、方法、システムを提供することにある。
本発明によれば、情報処理ユニット、記憶ユニット、インタフェースユニットのうちの少なくとも一つのユニットを複数備え、交信チャネルとルータから構成されるオンチップネットワークと前記ユニットはネットワークインタフェースを介して接続される半導体装置において、前記ネットワークインタフェースは、前記オンチップネットワークの所望経路上に存在する各ルータにおいてどの交信チャネルへ出力するかを、ルータ個々に指定した一又は複数の出力情報から構成されるルーティング情報を保持するルーティング参照表を備え、前記ルーティング参照表は、前記ルーティング参照表の属するネットワークインタフェースが送信する可能性があるネットワーク交信のルーティング情報のうちの一部を保持し、ルーティング時、該ルーティングに必要なルーティング情報が前記ルーティング参照表に保持されているか否かを判定する、半導体装置(方法、システム)が提供される。
本発明によれば、ネットワークインタフェースのルーティング参照表を、ルーティングの動的な変更等に柔軟対応しつつ、構成を簡易化可能とし、トータルのチップコストを低減することができる。
本発明を適用したオンチップネットワークのネットワークインタフェースを示したブロック図である。 本発明を適用したネットワークインタフェース中のルーティング参照表を示したブロック図である。 本発明を適用したネットワークパケットの先頭フリットの構成を示す図である。 本発明の実施の形態を説明する参照テーブルの内容を示す図である。 本発明を適用したネットワークパケットの先頭フリットの構成を示す図である。 本発明の実施の形態を説明する参照テーブルの内容を示す図である。 本発明の実施の形態に基づき電源スイッチを具備したルーティング参照表を示すブロック図である。 関連技術のネットワークオンチップを採用したSoCのブロック図である。 関連技術のネットワークオンチップにおけるパケットのフォーマット図である。 関連技術のルート情報を示したパケットのフォーマット図である。 関連技術のルーティング参照表を用いたソースルーティング方式によるパケット伝送概略図である。 非特許文献3で示されているルーティング参照表の構成例を示す図である。 ルーティング参照表のイメージ図である。 先願(特願2009−125580号、国際公開第2010/137572号)で提案したオンチップネットワークを用いたマルチコアSoCの全体ブロック図である。
以下、本発明の好ましい態様(Modes)について説明する。本発明の好ましい態様の1つにおいては、ルーティング参照表をプロセッサのキャッシュメモリやTLB(Translation Look−aside Buffer)と同様に、仮想化した構造とすることを提案する。オンチップネットワークを用いたマルチコア、メニーコア上のIPコア間の交信の組み合わせは、例えば、ごく限られた時間内では、限定された数個から数十個の組み合わせに限定できるアプリケーションも多い。そのような特性の中で、ネットワークインタフェースで保持するルーティング参照表が、チップ上の高価なメモリやレジスタを用いて、そのすべての組み合わせのデータを保持しておくことの必要性は低いと云える。
キャッシュメモリは、プロセッサで直近に使ったデータを保持しておき、次の利用に備えるものである。また、TLBは、メモリの変換情報で直近に使った変換規則を保持しておき、次の利用に備えるものである。
本発明の好ましい態様の1つにおいては、ネットワークインタフェース内のルーティング参照表においても、同様にして、直近に使ったルーティング情報を保持しておくことで、ほとんどの後続パケットの転送は、ルーティング参照表が現在保持しているルーティング情報を参照することによって、ルーティングを決定することができるものと思料される。
本発明の好ましい態様の1つにおいては、ソースルーティング方式を採用するネットワークオンチップにおける、ネットワークインタフェースのルーティング参照表を、ルーティングの動的な変更に対応しつつ、ハードウェア量、消費電力を削減可能とし、トータルのチップコストを低減することが可能である。
<第1−3の態様>
本発明の第1−3の態様では、本発明の基本原理について規定している。すなわち、本発明の第1の態様(Mode)では、ルーティング参照表は、前記ルーティング参照表の属するネットワークインタフェースが送信する可能性があるネットワーク交信のルーティング情報のうちの一部を保持し、ルーティング時に、前記ルーティング参照表に、該ルーティングに必要なルーティング情報が保持されているか否かを判定する機構を備えている。
本発明の第2の態様においては、ルーティング参照表には、ルーティング情報と、それを引くためのタグ情報を、RAM構造もしくはレジスタ構造等として内容を書き換えられる構造を有する。
本発明の第3の態様においては、前記ネットワークインタフェースは、前記ルーティング参照表に必要なルーティング情報の有無を判定し、前記ルーティング参照表が、必要なルーティング情報を保持していると判断した場合に、前記ルーティング参照表が保持している前記ルーティング情報をネットワークパケットのフリットに付与してパケットを送出する。ルーティング情報の参照表に、必要な情報が格納されている場合には、ヒット(Hit)となり、格納されていない場合には、ミス(Miss)となる。Hitの際には、ルーティング参照表に格納されているルーティング情報を、パケット内のルーティング・フリットに取り込み、ネットワークに、当該パケットを送出する。Miss時の動作については、後の態様において規定される。
<第4−6の態様>
本発明の第4−6の態様においては、それぞれルーティング参照表の参照方法について提案する。各々、受信側のID番号、受信側のアドレス、さらにアドレスにマスクビットを備え、任意ビット範囲でのアドレスビットマッチングを行う提案をする。より詳細には、本発明の第4の態様において、ネットワークインタフェースは、前記ルーティング参照表において必要なルーティング情報が保持されているか否かの判定を、前記タグ情報に格納されているネットワークパケット受信先の識別番号と、現在送ろうとしているパケットの受信先識別番号との一致、不一致を調べることによって行う。
本発明の第5の態様においては、前記ネットワークインタフェースは、前記ルーティング参照表に必要なルーティング情報が保持されているか否かの判定を、前記タグ情報に格納されているネットワークパケット受信先のアドレス情報と、現在送ろうとしているパケットの受信先アドレスとの一致、不一致を調べることによって行う。
本発明の第6の態様では、前記ネットワークインタフェースは、前記ルーティング情報と、前記ルーティング参照表上のアドレスとの一致、不一致を調べる論理に、アドレスビットの特定ビットを無視するためのマスクビットを、各ルーティング情報のタグ情報として付加し、マスクビットでマスクされたビット以外のアドレスの一致、不一致によってルーティング情報の有無の判定を行う。
<第7の態様>
本発明の第7の態様では、Missが発生したときにルーティング参照表を書き換える動作を提案する。前記ネットワークインタフェースは、前記ルーティング情報が、前記ルーティング参照表上で不一致の際には、前記ルーティング参照表に、新たに要求のあったルーティング情報を登録して一致状態とした上で、前記ルーティング情報を、ネットワークパケットのフリット内の所定の位置にコピーして、ネットワークパケットを送出する。具体的な書き換え方法は、本発明の第8−13の態様で規定する。
<第8の態様>
本発明の第8の態様では、規定されたIPに割り込みをかける。割り込み処理ハンドラは、Missを起こした受信側までのルートを計算もしくは規定のメモリ空間などからロードして、ルーティング参照表に新たに書き込む処理を行うことも可能である。あるいは、他のIPなどにルーティング参照表を更新するための割り込み要求などをかけることも可能である。これらは、それぞれのソフトウェア実装方針に依存するため、最大限の自由度を確保することができるが、ソフトウェアが処理に介在することから、一定の遅延が発生する。
<第9−12の態様>
本発明の第9−12の態様では、ハードウェアによって、ルーティング参照表を書き換える手法を提案する。ハードウェアの参照方法としては、規定されたメモリ領域からルーティング情報をロードする、一定の論理に基づいたハードウェアによってルーティング計算を行う、ルーティング情報を得るための要求を他のIPに向けて行い、その応答によってルーティング情報を得る方法等が挙げられる。これらによって得られた情報により、必要に応じてルーティング参照表の必要なエントリを更新した上で、パケットを送信する。
本発明の第9の態様では、前記ネットワークインタフェースは、前記ルーティング参照表上で不一致となった場合には、規定されたメモリから、一致するためのルーティング情報を読み出し、当該情報をルーティング参照表に登録する。
本発明の第10の態様では、前記ネットワークインタフェースは、前記ルーティング情報がルーティング参照表上で不一致となった場合には、受信先情報から一致するためのルーティング情報を計算し、その結果をルーティング参照表に登録する。
本発明の第11の態様では、前記ネットワークインタフェースは、前記ルーティング情報が前記ルーティング参照表上で不一致となった場合には、予め定められたパケットを生成して、当該パケットを前記情報処理ユニットに送出し、不一致となった状況を、ネットワークの他の地点に接続された情報処理ユニットに通知する。
本発明の第12の態様では、前記ネットワークインタフェースは、前記ルーティング参照表の書き換えの要求を行うネットワークの制御パケットを定義し、ネットワークインタフェースが上記制御パケットを受領した際には、パケットの内容に従ってルーティング情報を登録する。
<第13の態様>
本発明の第13の態様では、Missを生じさせた受信先を持ったパケットを、受信先を変更して送出する。これは、先願(特願2009−125580号、国際公開第2010/137572号)で示したルーティング方法を併用することにより、メインルータにおいて、再度ルーティングを行い、最終的に受信先にパケットを送信することを想定している。これにより、Missを生じさせた送信側のルーティング参照表は書き換える必要が、少なくとも、Missの発生時点ではなくなる。
<第14の態様>
本発明の第14の態様は、これまでのMiss時の処理動作を複数用意しておき、動的もしくは、静的に、処理動作を、選択可能とするものである。すなわち、前記ネットワークインタフェースは、前記ルーティング情報が前記ルーティング参照表上で不一致の際、複数の処理動作が可能な機構を備え、予め指定したいずれか1つ又は複数の処理を行う。
<第15、16の態様>
本発明の第15、16の態様では、低電力化や低コスト化のためルーティング参照表の一部エントリを工夫することを提案する。第15の態様では、前記ネットワークインタフェースは、前記ルーティング参照表の各々のエントリに対して、有効なエントリ数を変更する。第16の態様では、前記ネットワークインタフェースは、前記ルーティング参照表において、ルーティング情報との一致、不一致を判定する論理回路を無効化し、前記ネットワークパケットの送出を予め定められた一意のルーティングに基づいて動作させる。第15、16の態様では、一部エントリの電力供給を遮断したりして無効化することによって、消費電力を削減する。1エントリまで絞った上で、すべてのデータの送出先を決定することも可能で、この場合には、すべてのパケットを同一受信先に送ることになるものの、ルーティング参照表のHit/Miss判定論理で消費する電力を含めて省電力化が可能である。
<第17の態様>
本発明の第17の態様では、外部要因によって、ルーティング情報を無効化したり更新したりする動作を提案する。これは、ルーティング情報無効化メッセージや更新メッセージが到着した際に、自らのルーティング参照表が当該ルーティング情報を保持しているか否かを、タグ情報を検索することによって判定し、Hitした場合には、無効化や更新など、ハードウェアによって暗黙的にルーティング参照表を書き換えるものである。これによって、不具合、混雑、電源切断などの生じたルートパスを回避する機能を実現することができる。以下、例示的な実施形態(exemplary embodiment)に即して説明する。
<一実施形態>
図1は、本発明の一実施形態の構成を示す図である。図1には、ネットワークインタフェースの内部構造がブロック図にて示されている。図2は、本発明の一実施形態におけるルーティング参照表の詳細を示したブロック図である。なお、本発明の一実施形態において、ネットワークオンチップを利用したマルチコアチップの全体ブロック図は、図8のレベルでは同等であり、図8のネットワークインタフェース304中にルーティング参照表が含まれているものである。すなわち、図1のネットワークインタフェース1は、図8のネットワークインタフェース304に本発明を適用したものである。したがって、以下の説明では、ネットワークオンチップに関連して図8も適宜参照される。
<ネットワークインタフェース>
図1を参照すると、ネットワークインタフェース1において、IPコアからのバス信号2は、バスインタフェース3に接続され、制御信号21、アドレス信号22、データ信号23にデコード、分離される。制御信号21、アドレス信号22は、制御FIFO(First In First Out)4に、データ信号23はデータFIFO5に格納される。
制御FIFO4からは、受信側のIPを特定する識別子(主に、アドレス信号)をルーティング参照表7に、その他のアクセス制御情報を、情報生成ユニット(Information Genarator)8に送る。
ルーティング参照表(Routing LUT)7は、ソースルーティングに基づくルーティング情報をパケット生成ユニット(Packet Composer)9に送る。
情報生成ユニット(Information Generator)8は、制御信号情報をパケット生成ユニット9に送る。
データFIFO5は、データの内容をパケット生成ユニット9に送る。
パケット生成ユニット9は、パケット信号25をルータ(図8の302)に向けて送出する。
一方、ルータ(図8の302)は、パケットを受領可能か否かの情報をバックプレッシャー信号(Back Pressure)24で、ネットワークインタフェース1に送っている。
ネットワークインタフェース1において、パケット制御シーケンサ(Packet Control Sequenser)6は、これらの情報から、全体の制御を司る。ネットワークインタフェース1は、ルータ(図8の302)からのパケット26も受領する。
受領したパケット26は、パケット分解ユニット(Packet Decomposer)10でデータ信号と制御信号に分離される。制御信号は、パケット解読ユニット(Packet Decoder)11でデコードされた上、制御FIFO12に格納され、データ信号は、直接、データFIFO13に格納される。
制御FIFO12からは、制御信号27とアドレス信号28、データFIFO13からはデータ信号29が送出され、バスインタフェース(Bus I/F)3でバス信号を構成し、IPコア(図8の303)に向けてバス2でデータを送出する。
<ルーティング参照表>
図2を参照すると、本発明の一実施形態において、ルーティング参照表41は、ルーティング情報テーブル42、アドレステーブル43、マスクテーブル44、有効ビット(Valid bit)45、照合論理46、Hit/Miss判定論理47、Miss時動作規定テーブル48、ルーティング情報有効化論理49を備えている。
パケット受信先アドレス51に相当するルーティング情報が、ルーティング情報テーブル42で保持されているか否かを、適切なアドレステーブル43、マスクテーブル44、有効ビット45を照合論理46が参照し、Hit/Miss判定論理47によって判定する。
Hitの際には、有効化信号52を有効化し、ルーティング情報53を送出する。
一方、Missの際には、Miss時動作規定テーブル48に登録された動作に基づきMiss時動作指示信号54を出力する。
以下、本発明の第1から第5の態様を詳細に説明するために、動作例を、ステップを追って説明する。以下の説明において想定するNoCを利用したSoCは、図8に示された16個のIPコアから構成されるSoCとし、表1に示したアドレス(ヘキサデシマル表示)がそれぞれのIP位置に均等に割り付けられるものとする。また、ルーティング情報は表2に従って、各ホップ毎に、3ビット(バイナリ表示)でエンコーディングされるものとする。
(表1)アドレスとIPの位置(ID番号)対応表
Figure 2011148925
(表2)ルーティング情報のエンコーディング表
Figure 2011148925
本実施例によれば、NoCは、図8に示すように、4x4のメッシュ構造とされる。この場合、最短ルートのルーティングを行うとすれば、ルータホップ数(経由するルータ数)は7となる。
<フリット>
したがって、図3に示すようなルーティング情報を、先頭フリット(フリット0)に書き込むものとする。パケットボティ信号において、ホップ数のフィールドは、7エントリとしている。特に制限されないが、図3に示すフリットにおいて、サイドバンド信号の属性61(フリット属性信号フィールド)は、先頭フリット(フリット0)を示している。また、パケットボディ信号は、受信先IP位置情報62(11ビット)とルーティング情報63から構成される。ホップ数は各3ビットであり、7ホップ分を収容するため、ルーティング情報63として、第0ビット(LSB)から20ビット(3x7ビット)が割当てられている。
ルータ302は、hop0に位置するルーティング情報63を読み取り、パケットの出力先を決定すると共に、次のルータのルーティングに備え、図3のルーティング情報63を1エントリ分、右シフトする。すなわち、hop1の情報はhop0に、hop2の情報はhop1にという処理(右シフト)を行うことにより、次段のルータ302も、同様に、hop0に位置するルーティング情報63を読み取ることによって、ルーティングを行うことができる。
<ルーティング参照表41>
特に制限されないが、以下では、ルーティング参照表41が一例として3エントリから構成されるものとする。図8において、A1に位置するネットワークインタフェースのルーティング参照表41が、A2、D3、D4へのルーティング情報を保持しているものとすると、ルーティング参照表41は、図4に示す内容となる。
<ルーティング参照表41:Hit動作>
ここで、図8のA1のIPコア303が、図8のA2に位置するIPコアにメッセージを送信する場合、アドレスの上位4ビットは0x1となる。これはエントリ0に該当するルーティング情報42に相当する。
従って、ルーティング参照表41は、Hitであると、Hit/Miss判定論理47は判断し、エントリ0のルーティング内容”IP、S”がルーティング情報53として出力され、最終的に、パケット生成ユニット9(図1)により、図5に示す、先頭フリット(フリット0)が生成される。サイドバンドの属性信号61は100で先頭フリットを示し、パケットボディ信号のルーティング情報63(LSBから20ビット)は、ルーティング参照表41のエントリ0のルーティング情報42の内容”IP,S”が0ビット(LSB)から5ビットに格納される。
Hit/Miss判定論理47は、マスクテーブル44のマスク値により比較するビット位置を決定することができるため、1エントリでアドレスをマッチする範囲を調整することができる。
<ルーティング参照表41:Miss>
一方、図8のA1のIPコア303が、図8のB3に位置するIPコアにメッセージを送信する場合、B3に位置するIPへのアクセスが行われ、これは、表1によれば、アドレスの上位4ビットは0x6となる。このエントリは、図4に示すルーティング参照表41には、該当するエントリが存在しない。これは、本発明の最も基本的な特徴の1つであり、すべての送信先に対するルーティング情報をルーティング参照表を保持せず、エントリが存在しない場合には、Missの処理を行う。
このMiss判定は、Hit時と同様に、Hit/Miss判定論理47によって行われる。ここでは、Missと判定される。
Missと判定された結果、図2のMiss時動作規定テーブル48の参照が行われる。Miss時動作規定テーブル48は、Missを起こした際に、ネットワークインタフェース1がどのような動作を行うかを規定する情報を保持するテーブル論理である。
Miss時動作規定テーブル論理48は、必要に応じて、ハードウェアに追加することも可能である。あるいは、Miss時の動作を、常時、固定的とする場合には、書き換え可能なテーブルとする必要はない。以下、Miss時に採りうる動作について説明する。
まず、本発明の第8の態様として提案した構成では、図8において、当該ネットワークインタフェース304から、IPコア303に対して、ルーティング参照表41を更新するための割り込みを要求する。
IPコア303は、基本的に、対応するネットワークインタフェース304に接続されたものとなるが、他のIPコア303に割り込みをかけることを何等否定するものではない。
割り込みをかけられた側の他のIPコア303(図8)においては、割り込み処理ハンドラ(プログラム)によって、ルーティング参照表41(図2、図4)のミス要因を特定する。ここで、割り込み処理ハンドラは、アクセスの上位4ビットが0x6であることを、割り込み要因レジスタ等を読み出すことによって特定できる。
このため、次に、割り込み処理ハンドラでは、A1からB3(図8)へのルーティング情報を求める。これは、単純な次元順ルーティングであれば、プログラムによって計算でも求めることが可能である。あるいは、メモリ等(ネットワークインタフェース304に実装される)にあらかじめ格納したデータをロードするようにしてもよい。ここでは、図8のA1からB3へのルーティングは、
S→S→E→IP
である(A1→A2→A3とY方向に+2、X方向に+1ホップ)。
B3へのルーティング情報を求めた割り込み処理ハンドラは、図4のルーティング参照表41において、例えばエントリ2の置き換えを決定し、ルーティング参照表41は、図6に示す内容に更新される。テーブルのエントリ書き換え規則は、本発明では、特に規定しないが、キャッシュメモリやTLBなどの類似の機構が採っている手法(置換アルゴリズム)(例えばLRU(Least Recently Used))を採用することが可能である。
割り込み処理ハンドラによるルーティング参照表41の更新は、ソフトウェアによる処理のため自由度が高い。従って、ネットワークの混雑情報や故障情報などをソフトウェアが収集することによって、受信先のIPが同じでも複数のルーティング候補が考えられる場合には、より柔軟なルーティング情報をルーティング参照表41に書き込むことが可能である。
また、何らかの追加ハードウェアによってネットワークの形状が拡張された際にも対応が容易である。一方で、ソフトウェアに割り込みをかけることにより、処理時間のオーバヘッドが大きくなる。そこで、ハードウェアによって、Miss時の処理を行う方法を提案しているのが、本発明の第9乃至第12の態様である。
第9の態様では、Missが生じた際に、あらかじめ設定している安価なメモリデバイスにハードウェアによってアクセスを行い、ルーティング情報をロードし、ルーティング参照表41を書き換える。この場合、当該安価なメモリデバイスはネットワークインタフェース1から直接アクセスできる必要がある。
ルーティング参照表41のエントリ数を増加させる方が効率的な可能性も生じるが、メモリデバイスにはデータを圧縮して格納すれば、メモリ収納効率を向上させることも可能である。
本発明の第10の態様では、メモリデバイスからロードする替わりに、ルーティングをハードウェアによって計算することによって、ルーティング情報を生成して、ルーティング参照表41を書き換えるものである。
図8に示した例では、ネットワークの形状やメモリ空間のアロケーションが規則的であるため、比較的簡単な論理で計算することが可能である。例えば、先のB3への計算論理であるが、A1からは、X方向に+1、Y方向に+2ホップ進んだところに、受信先があるということが、表1のようなアドレスと、IPの位置(ID番号)対応表からわかる。E方向1回とS方向2回をルーティングとして組み合わせればよいことがわかる。
あとは、NS方向とEW方向のどちらを優先するかあらかじめ決められた論理もしくは動的なネットワーク状況を鑑みた上で決定する。
例えば、
S→S→E→IPや
E→S→S→IP
などのルーティングが計算される。
<Miss時のその他の態様例>
一方で、本発明の第11、12の態様では、Miss時に、他のIPコアにルーティング計算を依頼したり、他のIPコアが保持するルーティング情報をロードしたりする際の処理を提案するものである。
本発明の第9、10の態様では、主に、Missを生じたネットワークインタフェース1内で、ハードウェアがルーティング計算を処理したが、このような能力を持ったハードウェア論理をチップ中の1ないし数個に集約することも可能である。本発明の第9、10の態様では、このハードウェア論理と各ネットワークインタフェース1との間は、専用の制御信号などで接続することを想定している。
一方、このような専用信号を用いることは、チップのコストアップ、設計複雑度の上昇を招くことになる。そこで、本発明の第11、12の態様では、この問題に対処するため、通常のネットワークオンチップ上で、ルーティング情報を得るための特別なパケットを転送することを提案する。
まず、Missが発生した際には、あらかじめ規定されているもしくはレジスタなどで指定されているIPに向けて、
ルーティング情報Missの発生と、
送信元、受信先のIP位置
を記録した特別なルーティング情報要求パケットを生成して、Missを生じたパケットよりも前に送信する。
当該ルーティング情報要求パケットを受領したIPは、パケットを解釈することにより、必要なルーティング情報を計算もしくはロードし、要求に従ったルーティング情報を、ルーティング情報回答パケットとして、要求されたIPへ送信する。
当該ルーティング情報回答パケットを受領したネットワークインタフェース1は、特別なパケットであることを、パケット解読ユニット11(図1)が把握し、受領したルーティング情報を直接ルーティング参照表7中のルーティング情報42(図2)に書き込む。この動作の後に、前記Missしたパケットの送信を行う。
これらの特別なルーティング情報要求パケット、ルーティング情報回答パケットに関わる処理はハードウェアによって実行されることを前提にしているが、割り込み処理ハンドラのようなソフトウェアによって生成することも可能である。これは本発明の第8の態様に含まれる。
本発明においては、他のIPにルーティング情報を要求し、その回答を待って、Miss状態を解消させた上で本来の交信パケットが送信されることになるが、一方で、先願(特願2009−125580号、国際公開第2010/137572号)発明を併用することも可能である。本発明の第13の態様がこれに該当する。
第13の態様によれば、Missが生じたときには、本来の受信先とは異なり、あらかじめ規定されたルーティング情報を持ったIPコア、もしくはそのルータを受信先として、Missしたパケットを送信する。
受領したIPコア、もしくはそのルータは、本来の受信先までのルーティングを再度行い、先頭フリット(フリット0)に記入し直すことによって、当該Missしたパケットを本来の受信先に再送する。
これにより、ルーティング情報42を書き直すことなく、Missしたパケットも転送することが可能になる。これは、ごく稀に発生する通信によって、参照テーブルのルーティング情報42中の高頻度参照ルーティング情報が追い出されることを防ぐ意味もある。 もちろん、本発明の第1−12の態様においても、正しいルーティング情報を得た後に、Missを生じさせたパケットの先頭フリット(フリット0)のみに、ルーティング情報を記入し、ルーティング情報42を書き直さないとする手法を選択することも可能である。
以上、第1〜第13の態様によるMiss時の処理方法は、それぞれ単独にSoC上のネットワークインタフェース上に実装することも可能であるが、複数の動作をシステム的にサポートするようにし、現在のMiss時動作をMiss時動作規定テーブル48に設定しておくことにより、より柔軟にシステム状況に応じたNoCの制御が可能になる。
<低電力化、低コスト化対応の態様例>
さらに、第15−16の態様では、低電力化や低コスト化のため、ルーティング参照表41のエントリ数や論理を制御することを提案する。
本実施例では、電源スイッチでは、図7に示すように、電源スイッチを設けて、省電力化を図るように適用している。図7は、本発明の第15−16の態様におけるルーティング参照表のブロック図である。
図7を参照すると、ルーティング参照表81は、図2のルーティング参照表41とほぼ同等であるが、電源スイッチ82、83、84によって、各々制御される個別電源領域85、86、87が存在する。
個別電源領域85、86、87は、電源スイッチ82、83、84のOn/Off制御により、不要なときには、電源を遮断し、主に、リーク電流を削減することができる。
まず、ルーティング情報テーブル42のエントリ数が、現在の当該IPコアにおける交信パターンに対して過剰である時には、電源スイッチ82や83を切り、個別電源領域85、86に対する電源供給を遮断する。
こうすることで、ルーティング参照表81のルーティング情報テーブル42の数(エントリ数)が削減されるが、交信パターンが特定のIPコアに対してのみに限られる場合には有効である。この場合、電源を遮断したルーティング情報テーブル42のエントリに対応する有効ビット(Valid bit)45は、無効にする必要がある。
さらに、ルーティング情報テーブル42の電源遮断により、有効なルーティング情報が1エントリしかなくなった場合、かつ当該IPコアの交信先が1つのIPコアに限定される場合には、Hit/Miss判定論理47やMiss時動作規定テーブル48が含まれる個別電源領域87を、電源スイッチ84をOffにして遮断することも可能である。
この場合、アドレス比較、有効性比較等は行わず、すべての送信パケットが同一のIPコアに向けてルーティングされる。これにより、アドレス比較、有効性比較に用いられる電力を含めて省電力化が可能である。
本発明の第17の態様は、ルーティング情報テーブル42の特定のエントリを外部から無効化するものである。本発明の第17の態様は、本発明の第12の態様の動作と似ているが、第12の態様では、ルーティング情報回答パケットにより、ルーティング情報テーブル42に新たなルーティング情報を登録するものであったが、障害や混雑など他の要因から、既存のルーティング情報を更新したり、無効化したりする必要が生じる可能性もある。
そこで、本発明の第17の態様では、これらに対処すべく、特別なルーティング情報更新パケット、ルーティング情報無効化パケットという特殊なパケットを定義、用意する。
これらのパケット(ルーティング情報更新パケット、特殊パケット等)を、ネットワークインタフェース1(図1)が受信した場合には、特別なパケットであることを、パケット解読ユニット11(図1)が把握し、受領したルーティング情報を、直接、ルーティング参照表41中のルーティング情報42を更新したり、無効化したりする。これにより、NoC全体の制御を一つないし数個のIPコアからのメッセージパケット送信によって行うことが可能となり、より機動性に富んだ制御が可能になる。
なお、上記の特許文献、非特許文献、先願(特願2009−125580号、国際公開第2010/137572号)の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
特に制限されるものではないが、上記した本発明の実施形態は、以下のように付記される。
(付記1)
情報処理ユニット、記憶ユニット、インタフェースユニットのうちの少なくとも一つのユニットを複数備え、ネットワークインタフェース、交信チャネル、ルータから構成されるネットワークにて前記ユニット間を接続し、前記ユニット間での情報交信を、該情報を搭載したパケットを前記ネットワークを介して送受することで行うオンチップネットワークの前記ネットワークインタフェースが、ルーティング情報を保持するルーティング参照表を備え、
前記ルーティング参照表は、前記ルーティング参照表の属するネットワークインタフェースが送信する可能性があるネットワーク交信のルーティング情報のうちの一部を保持し、
ルーティング時に、前記ルーティング参照表に、該ルーティングに必要なルーティング情報が保持されているか否かを判定する、ことを特徴とするネットワークルーティング方法。
(付記2)
前記ルーティング参照表は、書き換え可能なデバイスを備え、
ルーティング情報を検索するためのタグ情報を具備する、ことを特徴とする付記1記載のネットワークルーティング方法。
(付記3)
前記ルーティング参照表に必要なルーティング情報の有無を判定し、前記ルーティング参照表に必要なルーティング情報が保持されていると判断した場合に、
前記ルーティング参照表が保持している前記ルーティング情報を、ネットワークパケットのフリットに付与してパケットを送出する、ことを特徴とする付記1又は2記載のネットワークルーティング方法。
(付記4)
前記タグ情報に格納されているネットワークパケット受信先の識別番号と、現在送ろうとしているパケットの受信先識別番号との一致、不一致を調べることによって、前記ルーティング参照表において必要なルーティング情報が保持されているか否かの判定を行う、ことを特徴とする付記1又は2記載のネットワークルーティング方法。
(付記5)
前記タグ情報に格納されているネットワークパケット受信先のアドレス情報と、現在送ろうとしているパケットの受信先アドレスとの一致、不一致を調べることによって、前記ルーティング参照表に必要なルーティング情報が保持されているか否かの判定を行う、ことを特徴とする付記2記載のネットワークルーティング方法。
(付記6)
前記ルーティング情報と、前記ルーティング参照表に登録されているルーティング情報のアドレスとの一致、不一致を調べる論理に、アドレスビットの予め定められた特定ビットを無視するためのマスクビットを、各ルーティング情報のタグ情報として付加し、
前記マスクビットでマスクされたビット以外のアドレスの一致、不一致によってルーティング情報の有無の判定を行う、ことを特徴とする付記5記載のネットワークルーティング方法。
(付記7)
前記ルーティング参照表に必要なルーティング情報の有無を判定した結果、必要なルーティング情報が前記ルーティング参照表に保持されていない場合、
前記ルーティング参照表に、新たに要求のあったルーティング情報を登録し、必要なルーティング情報と前記ルーティング参照表のルーティング情報を一致した状態とした上で、前記ルーティング情報を、ネットワークパケットのフリットに付与してパケットを送出する、ことを特徴とする付記1乃至6のいずれか一に記載のネットワークルーティング方法。
(付記8)
前記ルーティング参照表に必要なルーティング情報の有無を判定した結果、必要なルーティング情報が前記ルーティング参照表に保持されていない場合、
他の情報処理ユニットに対して割り込みをかける、ことを特徴とする付記1乃至7のいずれか一に記載のネットワークルーティング方法。
(付記9)
前記ルーティング参照表に必要なルーティング情報の有無を判定した結果、必要なルーティング情報が前記ルーティング参照表に保持されていない場合、
予め規定されたメモリから対応するルーティング情報を読み出し、該読み出したルーティング情報を前記ルーティング参照表に登録する、ことを特徴とする付記1乃至8のいずれか一に記載のネットワークルーティング方法。
(付記10)
前記ルーティング参照表に必要なルーティング情報の有無を判定した結果、必要なルーティング情報が前記ルーティング参照表に保持されていない場合、
受信先情報からルーティング情報を計算し、該計算したルーティング情報を前記ルーティング参照表に登録する、ことを特徴とする付記1乃至8のいずれか一に記載のネットワークルーティング方法。
(付記11)
前記ルーティング情報が前記ルーティング参照表上で不一致となった場合には、予め定められたパケットを生成して、当該パケットを前記情報処理ユニットに送出し、
不一致となった状況を、ネットワークの他の地点に接続された情報処理ユニットに通知することを特徴とする付記1乃至8のいずれか一に記載のネットワークルーティング方法。
(付記12)
前記ルーティング参照表の書き換えの要求を行うネットワークの制御パケットを定義し、ネットワークインタフェースが上記制御パケットを受領した際には、パケットの内容に従ってルーティング情報を登録する、ことを特徴とする付記1乃至11のいずれか一に記載のネットワークルーティング方法。
(付記13)
前記ルーティング情報が前記ルーティング参照表上で不一致の際には、予め規定されたネットワークの他の地点に接続された情報処理ユニットに、当該パケットを送信する、ことを特徴とする付記1乃至12のいずれか一に記載のネットワークルーティング方法。
(付記14)
前記ルーティング情報がルーティング参照表上で不一致の際の動作は、複数の動作が可能な機構を備え、予め指定したいずれか1つ又は数個の処理を行う、ことを特徴とする付記1乃至13のいずれか一に記載のネットワークルーティング方法。
(付記15)
前記ルーティング参照表の各々のエントリに対して、有効なエントリ数を変更する、ことを特徴とする付記1乃至14のいずれか一に記載のネットワークルーティング方法。
(付記16)
前記ルーティング参照表において、ルーティング情報との一致、不一致を判定する論理回路を無効化し、すべてのネットワークパケットの送出を予め定められた一意のルーティングに基づいて動作させる、ことを特徴とする付記1乃至15のいずれか一に記載のネットワークルーティング方法。
(付記17)
前記ネットワークインタフェースは、前記ルーティング参照表の無効化は又は更新の要求を行うネットワークの制御パケットを作成し、
前記ネットワークインタフェースが前記制御パケットを受領した際には、前記制御パケットの内容に従って、前記ルーティング参照表のルーティング情報を又は更新する、ことを特徴とする付記1乃至16のいずれか一に記載のネットワークルーティング方法。
(付記18)
情報処理ユニット、記憶ユニット、インタフェースユニットのうちの少なくとも一つのユニットを複数備え、交信チャネルとルータから構成されるオンチップネットワークと前記ユニットはネットワークインタフェースを介して接続される半導体装置において、
前記ネットワークインタフェースは、前記オンチップネットワークの所望経路上に存在する各ルータにおいてどの交信チャネルへ出力するかを、ルータ個々に指定した一又は複数の出力情報から構成されるルーティング情報を保持するルーティング参照表を備え、
前記ルーティング参照表は、前記ルーティング参照表の属するネットワークインタフェースが送信する可能性があるネットワーク交信のルーティング情報のうちの一部を保持し、ルーティング時、該ルーティングに必要なルーティング情報が前記ルーティング参照表に保持されているか否かを判定する、ことを特徴とする半導体装置。
(付記19)
前記ルーティング参照表は、書き換え可能なデバイスを備え、
ルーティング情報を検索するためのタグ情報を具備する、ことを特徴とする付記18記載の半導体装置。
(付記20)
前記ネットワークインタフェースは、前記ルーティング参照表に必要なルーティング情報の有無を判定し、前記ルーティング参照表に必要なルーティング情報が保持されていると判断した場合に、
前記ルーティング参照表が保持している前記ルーティング情報を、ネットワークパケットのフリットに付与してパケットを送出する、ことを特徴とする付記18又は19記載の半導体装置。
(付記21)
前記ネットワークインタフェースは、前記タグ情報に格納されているネットワークパケット受信先の識別番号と、現在送ろうとしているパケットの受信先識別番号との一致、不一致を調べることによって、前記ルーティング参照表において必要なルーティング情報が保持されているか否かの判定を行う、ことを特徴とする付記19記載の半導体装置。
(付記22)
前記ネットワークインタフェースは、前記タグ情報に格納されているネットワークパケット受信先のアドレス情報と、現在送ろうとしているパケットの受信先アドレスとの一致、不一致を調べることによって、前記ルーティング参照表に必要なルーティング情報が保持されているか否かの判定を行う、ことを特徴とする付記19記載の半導体装置。
(付記23)
前記ネットワークインタフェースにおいて、前記ルーティング情報と、前記ルーティング参照表に登録されているルーティング情報のアドレスとの一致、不一致を調べる論理に、アドレスビットの予め定められた特定ビットを無視するためのマスクビットが、各ルーティング情報のタグ情報として付加されており、
前記マスクビットでマスクされたビット以外のアドレスの一致、不一致によってルーティング情報の有無の判定を行う、ことを特徴とする付記22記載の半導体装置。
(付記24)
前記ネットワークインタフェースは、前記ルーティング参照表に必要なルーティング情報の有無を判定した結果、必要なルーティング情報が前記ルーティング参照表に保持されていない場合、前記ルーティング参照表に、新たに要求のあったルーティング情報を登録し、必要なルーティング情報と前記ルーティング参照表のルーティング情報を一致した状態とした上で、前記ルーティング情報を、ネットワークパケットのフリットに付与してパケットを送出する、ことを特徴とする付記18乃至23のいずれか一に記載の半導体装置。
(付記25)
前記ネットワークインタフェースは、前記ルーティング参照表に必要なルーティング情報の有無を判定した結果、必要なルーティング情報が前記ルーティング参照表に保持されていない場合、他の情報処理ユニットに対して割り込みをかける、ことを特徴とする付記18乃至24のいずれか一に記載の半導体装置。
(付記26)
前記ネットワークインタフェースは、前記ルーティング参照表に必要なルーティング情報の有無を判定した結果、必要なルーティング情報が前記ルーティング参照表に保持されていない場合、予め規定されたメモリから対応するルーティング情報を読み出し、該読み出したルーティング情報を前記ルーティング参照表に登録する、ことを特徴とする付記18乃至25のいずれか一に記載の半導体装置。
(付記27)
前記ネットワークインタフェースは、前記ルーティング参照表に必要なルーティング情報の有無を判定した結果、必要なルーティング情報が前記ルーティング参照表に保持されていない場合、受信先情報からルーティング情報を計算し、該計算したルーティング情報を前記ルーティング参照表に登録する、
前記ネットワークインタフェースは、前記ルーティング情報がルーティング参照表上で不一致となった場合には、受信先情報から一致するためのルーティング情報を計算し、その結果をルーティング参照表に登録する、ことを特徴とする付記18乃至25のいずれか一に記載の半導体装置。
(付記28)
前記ネットワークインタフェースは、前記ルーティング情報が前記ルーティング参照表上で不一致となった場合には、予め定められたパケットを生成して、当該パケットを前記情報処理ユニットに送出し、
不一致となった状況を、ネットワークの他の地点に接続された情報処理ユニットに通知することを特徴とする付記18乃至25のいずれか一に記載の半導体装置。
(付記29)
前記ネットワークインタフェースは、前記ルーティング参照表の書き換えの要求を行うネットワークの制御パケットを定義し、ネットワークインタフェースが上記制御パケットを受領した際には、パケットの内容に従ってルーティング情報を登録する、ことを特徴とする付記18乃至28のいずれか一に記載の半導体装置。
(付記30)
前記ネットワークインタフェースは、前記ルーティング情報が前記ルーティング参照表上で不一致の際には、予め規定されたネットワークの他の地点に接続された情報処理ユニットに、当該パケットを送信する、ことを特徴とする付記18乃至29のいずれか一に記載の半導体装置。
(付記31)
前記ネットワークインタフェースは、前記ルーティング情報がルーティング参照表上で不一致の際の動作は、複数の動作が可能な機構を備え、予め指定したいずれか1つ又は数個の処理を行う、ことを特徴とする付記18乃至30のいずれか一に記載の半導体装置。
(付記32)
前記ネットワークインタフェースは、前記ルーティング参照表の各々のエントリに対して、有効なエントリ数を変更する、ことを特徴とする付記18乃至31のいずれか一に記載の半導体装置。
(付記33)
前記ネットワークインタフェースは、前記ルーティング参照表において、ルーティング情報との一致、不一致を判定する論理回路を無効化し、前記ネットワークパケットの送出を予め定められた一意のルーティングに基づいて動作させる、ことを特徴とする付記18乃至32のいずれか一に記載の半導体装置。
(付記34)
前記ネットワークインタフェースは、前記ルーティング参照表の無効化は又は更新の要求を行うネットワークの制御パケットを作成し、
前記ネットワークインタフェースが前記制御パケットを受領した際には、前記制御パケットの内容に従って、前記ルーティング参照表のルーティング情報を又は更新する、ことを特徴とする付記18乃至33のいずれか一に記載の半導体装置。
1 ネットワークインタフェース
2 バス(IPコアとネットワークインタフェースを結ぶバス)
3 バスインタフェース
4 制御FIFO
5 データFIFO
6 パケット制御シーケンサ
7 ルーティング参照表
8 情報生成ユニット
9 パケット生成ユニット
10 パケット分解ユニット
11 パケット解読ユニット
12 制御FIFO
13 データFIFO
21 制御信号
22 アドレス信号
23 データ信号
24 バックプレッシャー信号
25 パケット
26 パケット
27 制御信号
28 アドレス信号
29 データ信号
41 ルーティング参照表
42 ルーティング情報テーブル
43 アドレステーブル
44 マスクテーブル
45 有効ビット
46 照合論理
47 Hit/Miss判定論理
48 Miss時動作規定テーブル
49 ルーティング情報有効化論理
51 パケット受信先アドレス
52 有効化信号
53 ルーティング情報
54 Miss時動作指示信号
61 フリット属性信号フィールド
62 受信先IP位置情報などフィールド
63 ルーティング情報フィールド
81 ルーティング参照表
82、83、84 電源スイッチ
85、86、87 個別電源領域
301 マルチコアSoC(System on a Chip)
302 ルータ
303 IPコア
304 ネットワークインタフェース
305 通信チャネル
321 パケットボディ信号
322 サイドバンド信号(フリット属性情報)
323 受信先(ターゲット)IP位置情報
324 フリット長
325 制御情報
326 アクセスアドレス
327 アクセス属性
328 データ
341 DID(Destination IDs)
342 Chained Header
361 CPU
362 ネットワークインタフェース
363 参照表
364、365 ルータ
366 ネットワークインタフェース
367 参照表
368 メモリ
381 ルーティング情報テーブル
382 パケット受信先アドレス
383 ルーティング情報
402 ネットワークインタフェース
403 メインルータ
404 サブルータ

Claims (10)

  1. 情報処理ユニット、記憶ユニット、インタフェースユニットのうちの少なくとも一つのユニットを複数備え、交信チャネルとルータから構成されるオンチップネットワークと前記ユニットはネットワークインタフェースを介して接続される半導体装置であって、
    前記ネットワークインタフェースは、前記オンチップネットワークの所望経路上に存在する各ルータにおいてどの交信チャネルへ出力するかを、ルータ個々に指定した一又は複数の出力情報から構成されるルーティング情報を保持するルーティング参照表を備え、
    前記ルーティング参照表は、前記ルーティング参照表の属するネットワークインタフェースが送信する可能性があるネットワーク交信のルーティング情報のうちの一部を保持し、
    ルーティング時、該ルーティングに必要なルーティング情報が前記ルーティング参照表に保持されているか否かを判定する、ことを特徴とする半導体装置。
  2. 前記ルーティング参照表は、書き換え可能なデバイスを備え、
    前記ルーティング情報を検索するためのタグ情報を具備する、ことを特徴とする請求項1記載の半導体装置。
  3. 前記ネットワークインタフェースは、前記ルーティング参照表に必要なルーティング情報の有無を判定し、前記ルーティング参照表に必要なルーティング情報が保持されていると判断した場合に、
    前記ルーティング参照表が保持している前記ルーティング情報を、ネットワークパケットのフリットに付与してパケットを送出する、ことを特徴とする請求項1又は2記載の半導体装置。
  4. 前記ネットワークインタフェースは、前記ルーティング参照表に必要なルーティング情報の有無を判定した結果、必要なルーティング情報が前記ルーティング参照表に保持されていない場合、
    前記ルーティング参照表に、新たに要求のあったルーティング情報を登録し、必要なルーティング情報と前記ルーティング参照表のルーティング情報を一致した状態とした上で、前記ルーティング情報を、ネットワークパケットのフリットに付与してパケットを送出する、ことを特徴とする請求項1乃至3のいずれか一に記載の半導体装置。
  5. 前記ネットワークインタフェースは、前記ルーティング参照表に必要なルーティング情報の有無を判定した結果、必要なルーティング情報が前記ルーティング参照表に保持されていない場合、
    他の情報処理ユニットに対して割り込みをかける、ことを特徴とする請求項1乃至4のいずれか一に記載の半導体装置。
  6. 前記ネットワークインタフェースは、前記ルーティング参照表に必要なルーティング情報の有無を判定した結果、必要なルーティング情報が前記ルーティング参照表に保持されていない場合、
    受信先情報からルーティング情報を計算し、該計算したルーティング情報を前記ルーティング参照表に登録する、ことを特徴とする請求項1乃至5のいずれか一に記載の半導体装置。
  7. 前記ネットワークインタフェースは、前記ルーティング情報が前記ルーティング参照表上で不一致となった場合には、予め定められたパケットを生成して、当該パケットを前記情報処理ユニットに送出し、
    不一致となった状況を、ネットワークの他の地点に接続された情報処理ユニットに通知する、ことを特徴とする請求項1乃至5のいずれか一に記載の半導体装置。
  8. 前記ネットワークインタフェースは、前記ルーティング参照表の書き換えの要求を行うネットワークの制御パケットを定義し、ネットワークインタフェースが上記制御パケットを受領した際には、パケットの内容に従ってルーティング情報を登録する、ことを特徴とする請求項1乃至7のいずれか一に記載の半導体装置。
  9. 情報処理ユニット、記憶ユニット、インタフェースユニットのうちの少なくとも一つのユニットを複数備え、交信チャネルとルータから構成されるオンチップネットワークと前記ユニットはネットワークインタフェースを介して接続されるシステムのネットワークルーティング方法であって、
    前記ネットワークインタフェースは、前記オンチップネットワークの所望経路上に存在する各ルータにおいてどの交信チャネルへ出力するかを、ルータ個々に指定した一又は複数の出力情報から構成されるルーティング情報を保持するルーティング参照表を備え、
    前記ルーティング参照表は、前記ルーティング参照表の属するネットワークインタフェースが送信する可能性があるネットワーク交信のルーティング情報のうちの一部を保持し、ルーティング時、該ルーティングに必要なルーティング情報が前記ルーティング参照表に保持されているか否かを判定する、ことを特徴とするネットワークルーティング方法。
  10. 情報処理ユニット、記憶ユニット、インタフェースユニットのうちの少なくとも一つのユニットを複数備え、交信チャネルとルータから構成されるオンチップネットワークと前記ユニットはネットワークインタフェースを介して接続されるネットワークシステムであって、
    前記ネットワークインタフェースは、前記オンチップネットワークの所望経路上に存在する各ルータにおいてどの交信チャネルへ出力するかを、ルータ個々に指定した一又は複数の出力情報から構成されるルーティング情報を保持するルーティング参照表を備え、
    前記ルーティング参照表は、前記ルーティング参照表の属するネットワークインタフェースが送信する可能性があるネットワーク交信のルーティング情報のうちの一部を保持し、
    ルーティング時、該ルーティングに必要なルーティング情報が前記ルーティング参照表に保持されているか否かを判定する、ことを特徴とするネットワークシステム。
JP2012517269A 2010-05-24 2011-05-24 半導体装置とネットワークルーティング方法とシステム Pending JPWO2011148925A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010118084 2010-05-24
JP2010118084 2010-05-24
PCT/JP2011/061831 WO2011148925A1 (ja) 2010-05-24 2011-05-24 半導体装置とネットワークルーティング方法とシステム

Publications (1)

Publication Number Publication Date
JPWO2011148925A1 true JPWO2011148925A1 (ja) 2013-07-25

Family

ID=45003915

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012517269A Pending JPWO2011148925A1 (ja) 2010-05-24 2011-05-24 半導体装置とネットワークルーティング方法とシステム

Country Status (2)

Country Link
JP (1) JPWO2011148925A1 (ja)
WO (1) WO2011148925A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014052261A1 (en) * 2012-09-25 2014-04-03 Arteris SAS Network on a chip socket protocol
JP5943115B1 (ja) 2015-03-27 2016-06-29 日本電気株式会社 集積回路、半導体装置、カード及びデータ転送方法
GB2586278B (en) * 2019-08-16 2022-11-23 Siemens Ind Software Inc Addressing mechanism for a system on chip
JP7491180B2 (ja) 2020-10-20 2024-05-28 株式会社オートネットワーク技術研究所 車載装置、車載通信システムおよび通信制御方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06197111A (ja) * 1992-10-26 1994-07-15 Hitachi Ltd インタネットワーク装置
JPH06261078A (ja) * 1993-03-03 1994-09-16 Hitachi Ltd テーブル検索方法及びルータ装置
JPH07273787A (ja) * 1994-03-30 1995-10-20 Sumitomo Electric Ind Ltd ルーティング情報管理方式
JP2001045061A (ja) * 1999-08-02 2001-02-16 Hitachi Ltd 通信ノード装置
JP2003078555A (ja) * 2001-09-04 2003-03-14 Nec Corp 適応的ネットワーク負荷分散方式およびパケット交換装置
JP2004023450A (ja) * 2002-06-17 2004-01-22 Nec Corp ルータ装置
JP2009110512A (ja) * 2007-10-29 2009-05-21 Internatl Business Mach Corp <Ibm> ネットワークオンチップ、およびネットワークオンチップで以ってデータを処理する方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004193720A (ja) * 2002-12-09 2004-07-08 Yaskawa Electric Corp 中継装置
JP2004221807A (ja) * 2003-01-14 2004-08-05 Hitachi Ltd 分散ルーティングテーブル管理方式およびルータ
KR101408108B1 (ko) * 2009-09-14 2014-06-17 닛본 덴끼 가부시끼가이샤 통신 시스템, 노드, 제어 장치, 및 제어 방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06197111A (ja) * 1992-10-26 1994-07-15 Hitachi Ltd インタネットワーク装置
JPH06261078A (ja) * 1993-03-03 1994-09-16 Hitachi Ltd テーブル検索方法及びルータ装置
JPH07273787A (ja) * 1994-03-30 1995-10-20 Sumitomo Electric Ind Ltd ルーティング情報管理方式
JP2001045061A (ja) * 1999-08-02 2001-02-16 Hitachi Ltd 通信ノード装置
JP2003078555A (ja) * 2001-09-04 2003-03-14 Nec Corp 適応的ネットワーク負荷分散方式およびパケット交換装置
JP2004023450A (ja) * 2002-06-17 2004-01-22 Nec Corp ルータ装置
JP2009110512A (ja) * 2007-10-29 2009-05-21 Internatl Business Mach Corp <Ibm> ネットワークオンチップ、およびネットワークオンチップで以ってデータを処理する方法

Also Published As

Publication number Publication date
WO2011148925A1 (ja) 2011-12-01

Similar Documents

Publication Publication Date Title
US20210112003A1 (en) Network interface for data transport in heterogeneous computing environments
US9294403B2 (en) Mechanism to control resource utilization with adaptive routing
US8473667B2 (en) Network on chip that maintains cache coherency with invalidation messages
US8843706B2 (en) Memory management among levels of cache in a memory hierarchy
US8010750B2 (en) Network on chip that maintains cache coherency with invalidate commands
US7636832B2 (en) I/O translation lookaside buffer performance
JP6434168B2 (ja) スイッチへのアドレスキャッシュ
US7917703B2 (en) Network on chip that maintains cache coherency with invalidate commands
US8214845B2 (en) Context switching in a network on chip by thread saving and restoring pointers to memory arrays containing valid message data
US8250254B2 (en) Offloading input/output (I/O) virtualization operations to a processor
EP2608044B1 (en) Information processing apparatus and memory access method
US20090182944A1 (en) Processing Unit Incorporating L1 Cache Bypass
US8904045B2 (en) Opportunistic improvement of MMIO request handling based on target reporting of space requirements
US9977750B2 (en) Coherent memory interleaving with uniform latency
US9164907B2 (en) Information processing apparatus, parallel computer system, and control method for selectively caching data
US20130259053A1 (en) Switch, information processing apparatus, and communication control method
JP2016004461A (ja) 情報処理装置、入出力制御装置および情報処理装置の制御方法
JPWO2011148925A1 (ja) 半導体装置とネットワークルーティング方法とシステム
US20190196990A1 (en) Relative data width indication for read responses routed by an interconnect
WO2005088912A1 (en) Integrated circuit and method for packet switching control
JP2004260532A (ja) ネットワークプロセッサ
US20150188797A1 (en) Adaptive admission control for on die interconnect
US11880327B1 (en) Non-coherent and coherent connections in a multi-chip system
JP2012113604A (ja) 計算機システム、方法、及びi/oスイッチ
JP2009054000A (ja) マルチプロセッサシステム及びキャッシュ管理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140403

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150106

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150508