JPWO2013168427A1 - バス制御システム、およびネットワークインタフェース - Google Patents

バス制御システム、およびネットワークインタフェース Download PDF

Info

Publication number
JPWO2013168427A1
JPWO2013168427A1 JP2013549632A JP2013549632A JPWO2013168427A1 JP WO2013168427 A1 JPWO2013168427 A1 JP WO2013168427A1 JP 2013549632 A JP2013549632 A JP 2013549632A JP 2013549632 A JP2013549632 A JP 2013549632A JP WO2013168427 A1 JPWO2013168427 A1 JP WO2013168427A1
Authority
JP
Japan
Prior art keywords
route
flow
path
bus
node
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
JP2013549632A
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.)
Panasonic Intellectual Property Management Co Ltd
Original Assignee
Panasonic Intellectual Property Management Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Intellectual Property Management Co Ltd filed Critical Panasonic Intellectual Property Management Co Ltd
Priority to JP2013549632A priority Critical patent/JPWO2013168427A1/ja
Publication of JPWO2013168427A1 publication Critical patent/JPWO2013168427A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • G06F15/7825Globally asynchronous, locally synchronous, e.g. network on chip
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • H04L12/4625Single bridge functionality, e.g. connection of two networks over a single bridge
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

SoC(System−on−Chip)の通信バスにおいて低いバス動作周波数で広帯域な通信を実現する。バス制御装置は、ネットワーク化されたバスを介して第1ノードと第2ノードとの間でデータを伝送する半導体回路のバス制御システムの、当該第1ノードに直接接続される。バス制御装置は、第1ノードから第2ノードに向かう往路群、および第2ノードから第1ノードに向かう復路群の少なくとも一方の経路群に関して各経路の負荷を検出する経路負荷検出部と、当該経路群の経路負荷が均一化されるように、経路群の中から候補となる経路を抽出する経路候補抽出部と、抽出結果、および予め定められた選択規則に基づいて、データの伝送経路を決定する経路決定部と、当該経路を示す経路情報を格納したヘッダ情報を利用して、第1ノードと第2ノードとの間でデータを伝送するデータ送受信部とを備えている。

Description

本願は、ネットワーク化された通信バスを備える半導体チップにおいて、通信バスの制御を行うための技術に関する。
NoC(Network−on−Chip)は、ネットワーク化された通信バスであり、NoC上で効率的に転送データを分散させる従来の方法として、特許文献1に記載の方法がある。図1は、特許文献1のバスの構成を示す。図1において、送信機能モジュールAの各々は、受信側機能モジュールBにデータを転送するためのR1からR4の4つの経路のうちのいずれかを選択できる。送信機能モジュールAの各々は、受信側機能モジュールBへのデータの転送に先立ち、受信側機能モジュールBから経路R1からR4の4つの経路それぞれの流量を取得し、経路R1からR4の流量が出来るだけ均一になるように自らのデータ転送経路を選択する。送信機能モジュールAの各々が独立にこのような動作を行うことにより、4つの経路R1からR4の間の流量の偏りが最小化され、バスを低い動作周波数で動作させながら広帯域なデータ転送を行うことができる。
特許第4796668号明細書
図2は、一般的なSoCシステムの構成を示す。図2に示すように、一般的なSoCでは、プロセッサとしてのCPU、メディア処理用DSPとしてのエンコードエンジンENC、デコードエンジンDEC、外部とのデータ入出力用ASICであるIO、グラフィック処理用ASIC(図示せず)など多数のイニシエータが往路バス(ライトバス)、復路バス(リードバス)を介して共有メモリと接続される。イニシエータから往路バスを用いてメモリに転送されるデータへの経路の割当は、設計時に決定されたイニシエータ間の優先度関係を反映させた形で行われる必要がある。リアルタイム系の信号処理を行うENC、DEC、IOなどは、レート保証型のイニシエータであり、設計帯域以上のメモリへのデータ転送は行わない。しかしながら、レート非保証のイニシエータであるCPUなどは、例えばユーザの機器操作に基づく多数のタスクの起動や、内部キャッシュのミスヒットなどにより、メモリに対して瞬間的に大量のデータ転送を要求することがある。
レート非保証のイニシエータが存在する場合には、最大要求帯域を事前に定義することはできない。したがって、上述した特許文献1の技術を利用したとしても、より効率的なデータ転送が依然として求められる。
上記課題を解決するために、本発明の一態様は、ネットワーク化されたバスを介して第1ノードと第2ノードとの間でデータを伝送する、半導体回路のバス制御システムにおいて、前記第1ノードに直接接続されるバス制御装置であって、前記バス制御装置は、前記第1ノードから前記第2ノードに向かう2以上の経路を往路群とし、前記第2ノードから前記第1ノードに向かう2以上の経路を復路群としたときにおいて、前記往路群および前記復路群の少なくとも一方の経路群に関して各経路の負荷を検出する経路負荷検出部と、前記少なくとも一方の経路群の経路負荷が均一化されるように、前記経路群の中から候補となる経路を抽出する経路候補抽出部と、予め定められた選択規則を記憶した選択規則記憶部と、前記経路候補抽出部の抽出結果、および前記選択規則記憶部に記憶された選択規則に基づいて、データを伝送する経路を決定する経路決定部と、決定された前記経路を示す経路情報を格納したヘッダ情報を生成するヘッダ構築部と、前記ヘッダ情報に基づいて特定される前記経路を利用して、前記第1ノードと前記第2ノードとの間でデータを伝送するデータ送受信部とを備えたバス制御装置を含む。
上述の一般的かつ特定の態様は、システム、方法およびコンピュータプログラムを用いて実装され、またはシステム、方法およびコンピュータプログラムの組み合わせを用いて実現され得る。
本発明のある実施形態にかかるバス制御装置によれば、より効率的なデータ転送が実現される。
従来のバス構成図である。 一般的なSoCシステムの構成を示す図である。 本発明の一実施形態にかかるSoCシステム400を示す図である。 イニシエータ401から404の要求帯域を示す図である。 フロー割当状況の時間変化を示す図である。 パケットヘッダの構築例を示す図である。 応答パケットのパケットヘッダの構成の例を示す図である。 主としてイニシエータ側のネットワークインタフェース(NI)110の構成の例を示す図である。 NI413のローカルバスの経路選択規則の例を示す図である。 経路A、経路Bの各帯域情報管理部から取得された情報の例を示す図である。 フロー間での到着順序が崩れる経路割当の例を示す図である。 往路、復路の経路割当結果の格納例を示す図である。 フロー関連情報の通知パケットの構成例を示す図である。 本発明の一例である第1の実施形態にかかる、イニシエータ側のNIにおける処理フローを示す図である。 本発明の一例である第2の実施形態にかかるSoCシステムを示す図である。 NI2011、NI2012、NI2013が参照する経路選択規則の例を示す図である。 イニシエータ2001によるフロー200101の割当要求時に、経路A、経路Cの帯域情報管理部から取得された情報の例を示す図である。 イニシエータ2002によるフロー200201の割当要求時に、経路A、経路Cの帯域情報管理部から取得された情報の例を示す図である。 フロー関連情報の通知パケットの構成例を示す図である。 本発明の一例である第3の実施形態にかかるSoCシステムの構成例を示す図である。 各イニシエータが生成するフローの特性を示す図である。 フローの割当状態の例を示す図である。 本発明の一例である第4の実施形態にかかるネットワークの構成例を示す図である。 経路分離の方法例を示す図である。
近年、SoC(System on Chip)が利用される組込機器分野や汎用プロセッサ分野において、半導体チップの高機能化への要求が高まっている。半導体チップの高機能化に伴い、チップ上の通信バスを介して転送されるデータの要求帯域が増加し、通信バスの広帯域化が必要となってきている。通信バスの広帯域化のためには、バスの動作周波数を上げることで、単位時間あたりのデータ転送量を増やすことが考えられる。しかしながら、動作周波数の増加により消費電力の増加、実装面積の増加、レイアウト実装の複雑化の課題が生じる。動作周波数を上げずに通信バスの広帯域化を行う為には、低速な通信経路を並列的に用いて、転送データ負荷を並列バス上で効率的に分散することが有効である。
リアルタイム系のレート保証型のイニシエータに対する経路選択は、要求帯域が経路間で均一となるように行うのが望ましい。一方、レート非保証型のイニシエータに対する経路選択は、要求帯域の均一性を重視せず異なる経路に割り当てることが望ましい。その理由は、レート保証系とレート非保証系の干渉及びレート非保証系の相互干渉を排除するためである。このように往路でのバスの経路を割り当てる場合には、イニシエータ毎の転送データの特性も加味した上で行う必要がある。
一方、復路を用いてメモリコントローラから各イニシエータに返信されるデータは、往路でイニシエータ間の優先度に応じた調停が既に行われ、調停順序に基づいてメモリから読み出されたものである。よって、単純に経路間の返信の帯域が均一となるように復路の経路を割り当てれば良い。また各イニシエータの要求帯域の設計が往路での要求帯域(ライトの帯域)と復路での要求帯域(リードの帯域)に分離して設計される場合もあり、往路と復路それぞれの要求帯域に基づいて、経路選択を行うことでバス帯域を充分に利用可能となる。
ここでさらに留意すべき事項が2つある。
第1の留意事項は、システムの大規模化に対するスケーラビリティである。図2において、ENC1がバスイニシエータとして動作し、メモリEへのデータの書き込みと読み出しを行う場合、ENC1はメモリEへのデータの転送に先立ち、経路R1からR4の往路での流量を取得し、最適な経路を選択した上で、メモリEに対してデータの転送を行う。選択された経路はENC1側に記憶され、以降のメモリEへのデータ転送は該経路が用いられる。ENC1から転送データを受理したメモリコントローラCは、メモリEへのアクセス処理を行い、結果のデータをENC1に返信する。メモリコントローラCは、データ返信に先立ち、経路R1からR4の復路での流量を取得し、最適な経路を選択した上で、ENC1に対してデータの転送を行う。選択された経路はメモリコントローラCに記憶され、以降のENC1へのデータ転送は該経路が用いられる。
一般的なSoCの構成では、多数のイニシエータがメモリを共用する構成であるため、メモリコントローラCが管理すべき復路の情報は、イニシエータの増加に従い増大し、メモリコントローラのリソースの増加と処理負荷の増加をもたらす。また更に復路の経路選択には、各復路の流量を取得するための制御情報交換の遅延が生じるため、メモリEへのアクセスレイテンシの増加や、その間メモリEから読み出されたデータを一時的に蓄積するためのバッファも必要となり、メモリコントローラのリソースの増加と処理遅延の増加をもたらす。よって、イニシエータの増加に対し、共用メモリ側のメモリコントローラのスケーラビリティを確保できるような構成が必要とされている。
第2の留意事項は、SoCの品種展開時などにイニシエータの個数などの変更があった場合、イニシエータへの復路の情報を管理するメモリコントローラへも設計変更が波及し、設計工数と検証工数を増大させることである。そのような設計工数および検証工数の増大の抑制もまた必要とされている。
本願発明者らは、スケーラビリティおよび設計変更の容易さを向上させつつ、往路と復路、レート保証系とレート非保証系などの転送データの特性を考慮した経路割当を行う技術を開発した。
たとえば本願発明のある実施形態によるバス制御装置は、ネットワーク化されたバスを介して第1ノードと第2ノードとの間でデータを伝送する、半導体回路のバス制御システムにおいて、第1ノードに直接接続される。バス制御装置は、第1ノードから第2ノードに向かう2以上の経路を往路群とし、第2ノードから第1ノードに向かう2以上の経路を復路群としたときにおいて、往路群および復路群の少なくとも一方の経路群に関して各経路の負荷を検出する経路負荷検出部と、少なくとも一方の経路群の経路負荷が均一化されるように、経路群の中から候補となる経路を抽出する経路候補抽出部と、予め定められた選択規則を記憶した選択規則記憶部と、経路候補抽出部の抽出結果、および選択規則記憶部に記憶された選択規則に基づいて、データを伝送する経路を決定する経路決定部と、決定された経路を示す経路情報を格納したヘッダ情報を生成するヘッダ構築部と、ヘッダ情報に基づいて特定される経路を利用して、第1ノードと第2ノードとの間でデータを伝送するデータ送受信部とを備えている。
上述のバス制御装置を用いたバス制御システムでは、往路または復路の少なくとも一方の経路においてバス動作周波数の低減が可能になり、消費電力削減、実装面積削減、レイアウトが容易となる。また往路、復路のデータ転送経路を第1ノード(イニシエータ)側で管理できるため、システムの大規模化と品種展開時の設計、検証工数の削減に対応可能となる。また複数のメモリを有するシステムにおいて、メモリの使用率も向上させることができる。
上記課題を解決するために、本発明の一態様は、ネットワーク化されたバスを介して第1ノードと第2ノードとの間でデータを伝送する、半導体回路のバス制御システムにおいて、前記第1ノードに直接接続されるバス制御装置であって、前記バス制御装置は、前記第1ノードから前記第2ノードに向かう2以上の経路を往路群とし、前記第2ノードから前記第1ノードに向かう2以上の経路を復路群としたときにおいて、前記往路群および前記復路群の少なくとも一方の経路群に関して各経路の負荷を検出する経路負荷検出部と、前記少なくとも一方の経路群の経路負荷が均一化されるように、前記経路群の中から候補となる経路を抽出する経路候補抽出部と、予め定められた選択規則を記憶した選択規則記憶部と、前記経路候補抽出部の抽出結果、および前記選択規則記憶部に記憶された選択規則に基づいて、データを伝送する経路を決定する経路決定部と、決定された前記経路を示す経路情報を格納したヘッダ情報を生成するヘッダ構築部と、前記ヘッダ情報に基づいて特定される前記経路を利用して、前記第1ノードと前記第2ノードとの間でデータを伝送するデータ送受信部とを備えたバス制御装置を含む。
例示的なある実施形態において、前記経路負荷検出部は、前記往路群および前記復路群の少なくとも一方の経路群に割り当てられているバスの利用帯域を、前記経路負荷として検出する。
例示的なある実施形態において、前記少なくとも一方の経路群は前記往路群であり、前記経路候補抽出部は前記往路群の経路のうち、前記経路負荷が最も小さくなる経路を、前記候補となる経路として抽出する。
例示的なある実施形態において、前記少なくとも一方の経路群は前記復路群であり、前記経路候補抽出部は前記復路群の経路のうち、前記経路負荷が最も小さくなる経路を、前記候補となる経路として抽出する。
例示的なある実施形態において、前記選択規則記憶部は、経路に関する制限が無い選択規則、特定の経路を利用する選択規則、データ伝送単位であるフローが複数存在する場合におけるフローの順序を示す選択規則、およびレート非保証型のフローであることを示す選択規則の少なくとも1つを記憶する。
例示的なある実施形態において、前記選択規則記憶部は、データ伝送単位であるフローが複数存在する場合におけるフローの順序を示す選択規則を記憶しており、新たなフローとの間で順序性を有する他のフローの経路が既に決定されており、かつ、フローの順序性を示す前記選択規則が新たなフローに適用される場合において、前記経路候補抽出部は、前記他のフローの経路と同一の経路を、前記候補となる経路として抽出する。
例示的なある実施形態において、前記選択規則記憶部は、レート非保証型のフローであることを示す選択規則を記憶しており、レート非保証型のフローの経路が既に決定されており、かつ、レート非保証型のフローであることを示す前記選択規則が新たなフローに適用される場合において、前記経路候補抽出部は、既存の前記レート非保証型のフローの経路とは異なる経路を、前記候補となる経路として抽出する。
例示的なある実施形態において、前記選択規則記憶部が、特定の経路を利用する選択規則を記憶しており、かつ、前記特定の経路を利用する選択規則が新たなフローに適用される場合において、前記経路決定部は、前記経路候補抽出部の抽出結果に拘わらず、前記選択規則によって特定される経路を、前記データを伝送する経路として決定する。
例示的なある実施形態において、レート非保証型のフローの経路が既に決定されており、前記選択規則記憶部がレート非保証型のフローであることを示す選択規則を記憶しており、かつ、前記レート非保証型のフローであることを示す選択規則が新たなフローに適用される場合において、前記経路候補抽出部は、既存の前記レート非保証型のフローの経路とは異なる経路を、前記候補となる経路として抽出する。
例示的なある実施形態において、前記選択規則記憶部は、さらに前記第1ノードのフローの優先度を示す優先度情報を保持しており、前記経路候補抽出部は、前記優先度情報に基づいて、優先度がより低いフローが割り当てられた経路を、前記候補となる経路として抽出する。
例示的なある実施形態において、前記データ送受信部は、パケット方式で前記データを送受信し、前記ヘッダ構築部は、パケットのヘッダに前記ヘッダ情報を格納する。
本発明のある例示的な実施形態にかかるバス制御システムは、少なくとも1つの第1ノードと、少なくとも1つの第2ノ―ドと、前記少なくとも1つの第1ノードに直接接続された、上述したいずれかの例示的な実施形態にかかるバス制御装置と、前記バス制御装置および前記少なくとも1つの第2ノ―ドとの間に複数の経路を形成するネットワーク化されたバスと、を備え、前記バスを介して前記少なくとも1つの第1ノードと前記少なくとも1つの第2ノードとの間でデータを伝送する。
ある例示的な実施形態において、前記バス制御システムは、複数のメモリの各々に割り当てられたデータのフローを交換するマイグレータをさらに備え、前記複数のメモリは、前記少なくとも1つの第2ノードであり、前記少なくとも1つの第1ノードから前記複数のメモリとの間には複数の経路が設けられており、前記マイグレータは、前記複数の経路に割り当てられているバスの利用帯域と、各メモリ上で利用される容量とに基づいて、複数のメモリの各々に割り当てられたデータのフローを交換する。
例示的なある実施形態において、前記バス制御システム中の前記複数の経路は空間的に分離された複数のバスとして構成される。
例示的なある実施形態において、前記バス制御システム中の前記複数の経路はバス上の単一の信号線によって構成される。
例示的なある実施形態において、前記バス制御システム中の前記複数の経路はバス上の単一の信号線を時分割多重することによって構成される。
例示的なある実施形態において、前記バス制御システム中のネットワーク化された前記バスは、前記複数の経路が設けられたローカルバスと、システムバスとを備えており、前記バス制御システムは、前記ローカルバスと前記システムバスとを接続するバスブリッジをさらに備えている。
本発明のある実施形態にかかるネットワークインタフェースは、上述のいずれかに記載のバス制御システムにおいて用いられる。前記ネットワークインタフェースは、帯域情報を管理する帯域情報管理部であって、前記帯域情報は、対応する経路に現在割り当てられている、データ伝送単位であるフローの帯域に関する情報である、帯域情報管理部と、前記第1ノードから前記第2ノードへのデータ、および前記第2ノードから前記第1ノードへのデータを送受信するデータ送受信部とを備えている。
例示的なある実施形態において、前記帯域情報管理部は、前記バス制御システムに包含される前記バス制御装置の経路負荷検出部からの要求に応答して、前記データ送受信部を介して前記帯域情報を出力する。
例示的なある実施形態において、前記ネットワークインタフェースは、前記ヘッダ情報に格納された前記復路を示す経路情報に基づいて、前記復路を特定する情報を生成し、宛先を特定する情報とともにパケットのヘッダに格納する復路ヘッダ構築部をさらに備えている。
以下、添付の図面を参照しながら、本発明のある実施形態によるバス制御装置および通信システムを説明する。以下の実施形態の説明では、バス制御装置は、ネットワークインタフェースであるとして説明する。また、データを相互に伝送する複数のノードは、イニシエータおよびメモリであるとして説明する。
(実施形態1)
図3は、本実施形態にかかるSoCシステム400を示す。イニシエータ401−404の各々は、ローカルバス470およびシステムバス480を介して共用メモリ461との間でデータの転送を行う。SoCシステムを構成するNoCバスでは、ローカルバス470およびシステムバス480上でのデータの転送は、パケット単位で行われる。データの転送を実現するための接続関係は以下のとおりである。
まず、イニシエータ401から404は、ネットワークインタフェースNI(Network Interface)411から414を介してローカルバス470に接続される。メモリ461はメモリコントローラ451およびNI441を介してシステムバス480に接続される。各NIは、パケット化や脱パケット化の処理を行ってデータを転送する。
ローカルバス470とシステムバス480はバスブリッジ431を介して相互に接続されている。バスブリッジ431は、ローカルバス側に2つの入出力インタフェースを持ち、それぞれ経路AとBに接続される。
ローカルバス470は、ルータ421から424によってネットワーク化され、いずれのイニシエータからもメモリ461とのデータ転送において、経路Aと経路Bが選択可能な構成となっている。バスブリッジ431には、経路AおよびBの各々に対応してインタフェース部120aおよび120bを有している。インタフェース部120aおよび120bの構成は後に図8に関連して説明する。
ローカルバス470において、実線の矢印は各イニシエータからバスブリッジ431にデータを転送するための往路バス471を表し、点線の矢印はバスブリッジ431から各イニシエータにデータを返信するための復路バス472を表す。
システムバス480は、バスブリッジ431からメモリ461にデータを転送するための往路バス481と、メモリ461からバスブリッジ431にデータを返信するための復路バス482から構成される。
本実施形態では、システムバス481、482は各32ビット幅、200MHzのバスであり、接続可能なバンド幅は、800MB/sである。またローカルバス471、472は各32ビット幅、100MHzのバスであり、接続可能なバンド幅は、経路Aで400MB/s、経路Bで400MB/sであり、2つの経路の合計で800MB/sである。
ローカルバス470では、100MHzの低動作周波数の2つの経路AとBを均等に用いることで、システムバス480と比較して半分のバス動作周波数で動作可能な構成となっている。この構成は、後述するように、単純にバス幅を2倍にして転送速度を半分に落とすことのみを意味しているのではない。複数の経路でデータを伝送可能とすることで、経路毎に独立してフローを伝送できることを意図している。複数の経路を設けることにより、バス幅が実質的に拡大し、配線および当該配線上を伝送されるデータが局所的に集中することを抑制可能となる。
図4は、イニシエータ401から404の要求帯域を示す。要求帯域の単位は1秒間に転送可能なメガバイト数で表している。この値は瞬間的な計測値ではなく、イニシエータ毎の要求帯域の設計値または、機器のユースケース毎に定められるような比較的長い時間に渡る要求帯域を示している。
上述した構成のSoCシステム400を用いて、メモリアクセス動作の概要を説明する。
本実施形態では、イニシエータ401、402、403、404の順に、それぞれ時刻tc=1000、2000、3000、4000にメモリ461へのアクセスを開始するものとする。時刻tcはシステム起動時を起点とし、バス動作周波数を基準としたサイクル数で時刻を表した値とする。
tc=0のシステム起動時点では未だどのイニシエータもメモリ461へのアクセスを行っていないため、いずれの経路にも帯域が割り当てられていない状態である。
図5は、フロー割当状況の時間変化を示す。図5の第3列に示されるように、tc=0においては要求帯域は全て0である。
tc=1000において、イニシエータ401がメモリ461へのアクセスを開始する際、NI411はバスブリッジ431から、経路Aの往路、復路と経路Bの往路、復路の割当帯域を取得する。この時点ではいずれも割当が行われていない。そのため、往路では経路Aに対して300MB/s、復路では経路Aに対して100MB/sの帯域の割当要求をバスブリッジ431に対して行う。図5の第4列には、イニシエータ401の帯域が割り当てられた後の各径路の帯域が示されている。
次に、tc=2000において、イニシエータ402がメモリ461へのアクセスを開始する。このとき、NI412はバスブリッジ431から、経路Aの往路、復路と経路Bの往路、復路の割当帯域を取得する。この時点では図5の第4列に示すような割当状態となっている。そこで、2つの経路間で割当帯域を均一化すべく、NI412はバスブリッジ431に対し、往路では経路Bに対して200MB/s、復路では経路Bに対して300MB/sの帯域の割当要求を行う。図5の第5列は、イニシエータ402の帯域がさらに割り当てられた後の各径路の帯域が示されている。
次に、tc=3000において、イニシエータ403がメモリ461へのアクセスを開始する。このとき、NI413はバスブリッジ431から、経路Aの往路、復路と経路Bの往路、復路の割当帯域を取得する。この時点では図5の第5列に示すような割当状態となっている。そこで、2つの経路間で割当帯域を均一化すべく、NI413はバスブリッジ431に対し、往路では経路Bに対して200MB/s、復路では経路Aに対して300MB/sの帯域の割当要求を行う。図5の第6列は、イニシエータ403の帯域がさらに割り当てられた後の各径路の帯域が示されている。
最後に、tc=4000において、イニシエータ404がメモリ461へのアクセスを開始する。このとき、NI414はバスブリッジ431から、経路Aの往路、復路と経路Bの往路、復路の割当帯域を取得する。この時点では図5の第6列に示すような割当状態となっている。そこで、2つの経路間で割当帯域を均一化すべく、NI414はバスブリッジ431に対し、往路では経路Aに対して100MB/s、復路では経路Bに対して100MB/sの帯域の割当要求を行う。図5の第7列は、イニシエータ404の帯域がさらに割り当てられた後の各径路の帯域が示されている。
tc=4000以降は、図5の第7列に示した割当状態により、経路Aと経路B間で転送データ量が往路、復路ともに均一に分散された状態となる。各イニシエータに対して行われた往路及び復路の経路割当結果は、各イニシエータに接続されたNIによって記憶され、イニシエータから受理した転送データのパケット化を行う際に、パケットのヘッダに往路及び復路の経路情報を格納する。
図6はイニシエータ側のNIで生成されるパケットヘッダの構成例である(後述)。ローカルバスのルータ421から424は、往路ではパケットヘッダの第2フィールドを宛先としてパケット転送を行い、システムバスのルータ(図示せず)は第1フィールドを宛先としてパケット転送を行う。メモリ側のNI441に到着したパケットは脱パケット化されると同時に、復路への返信パケットに付与するパケットヘッダを往路パケットヘッダの格納情報から生成する。
図7は復路パケットヘッダの例である。メモリ461から読み出した転送データは、図7に示されるパケットヘッダを用いてパケット化され、システムバス復路482を用いて転送される。システムバス復路482からパケットを受理したバスブリッジ431は、パケットヘッダの第2フィールドを参照し、ローカルバスの復路の経路を決定し、ローカルバス復路472に返信パケットを送出する。返信パケットは、パケットヘッダの第1フィールドを宛先として転送され、イニシエータ側NIまで届けられ、脱パケット化された後にイニシエータに渡されることでメモリアクセスが完了する。
図8は、イニシエータ側のネットワークインタフェース(NI)110の構成の例を示す。このNI110は、イニシエータに直接接続されるインタフェースであり、図3に示すNI411から414に対応する。以下、NI110の例として図3のNI413を挙げて説明する。
NI110は、選択規則記憶部111と、経路負荷検出部112と、経路決定部115と、ヘッダ構築部116と、データ送受信部117と、経路候補抽出部118とを備えている。以下、NI110の各構成要素およびその動作を詳細に説明する。
なお、本実施形態では、第1ノードであるイニシエータから第2ノードであるメモリまでの往路、および、メモリからイニシエータまでの復路の両方に関して、負荷分散を行う例を説明する。しかしながら、往路または復路のいずれかのみに関して負荷分散を行ってもよい。すなわち本実施形態は、往路および復路の少なくとも一方に関して負荷分散を行うことを想定している。これは、本実施形態の説明を援用する他の実施形態に関しても同様である。
(選択規則記憶部111)
選択規則記憶部111は、イニシエータと各メモリとの間の経路を選択するために利用される選択規則を格納する。
図9は、NI413に関するローカルバスの経路選択規則の例を示す。第1列にはNI413に与えられたシステム上で一意のID(本実施形態では数字列)が示されており、第2列にはイニシエータ401からのフローを区別するための番号が示されている。第1列のIDの数字列と第2列のフロー番号とを合わせると、システムで一意なフローを区別するための識別子であるフローIDが得られる。本実施形態においては、フローIDは、たとえば「41301」、「41302」などと表される。
ここで「フロー」とは、設計時あるいは動作時におけるメモリへのアクセスの要求帯域の単位を表す。例えばイニシエータ403がコーデックエンジンであり、エンコード処理タスクに往路200MB/s、復路300MB/sの要求設計帯域が与えられ、デコード処理タスクに往路100MB/s、復路100MB/sの要求設計帯域が与えられているとする。この場合のこれら2つのタスクが、イニシエータの2つのフローに対応する。
第3列および第4列はそれぞれローカルバスでの往路と復路での経路を割り当てる際の選択規則を表す。フローIDが41301のフローに適用される選択規則を例に挙げて説明すると、このフローには往路、復路とも制限無の規則が適用されており、経路の制限も設けられていない。これは、経路間のデータ転送量が均一となるように、経路A、経路Bのいずれの経路の割当も可能であることを示す。
他の例として、フロー41302のフローに適用される選択規則は、往路、復路とも経路Bに固定され経路Aは選択されないことを示す。これは、例えばシステム上に平均要求帯域は設計されているが、最大要求帯域はバスの物理帯域を上限とするようなレート非保証系のイニシエータが他にも存在する場合に有効である。複数のイニシエータが同一の経路を選択することで、最大要求帯域が相互に干渉し、イニシエータのパフォーマンスが瞬間的に急低下する可能性がある。フローの経路を固定する規則を設けることにより、そのようなパフォーマンスの低下を回避することができる。そのような状況では、一方のレート非保証系のイニシエータは往路、復路とも経路Aに固定する選択規則とし、他方のレート非保証系のイニシエータは往路、復路とも経路Bに固定する選択規則としてもよい。
またシステム上に、メモリへのアクセス・レイテンシが非常に短いイニシエータが存在する場合、割当帯域が制限された特定の優遇経路を設け、該経路に該イニシエータの経路割当を固定する場合の選択規則として利用してもよい。
フローIDが41303と41304のフローに適用される選択規則では、これら2つのフローに属するメモリからの応答パケットに対して、イニシエータ403への到着順序が守られる必要があることを示す。選択規則記憶部111へのフローの登録は、初期化処理としてシステム起動前や、システム動作の切換前に行われてもよいし、各フローの開始時点でイニシエータによって行われてもよい。
(経路負荷検出部112)
経路負荷検出部112は、経路選択候補となる各経路上の帯域情報管理部101に帯域情報を要求し、データ送受信部122を介して帯域情報管理部101から送信された、現在の経路毎の帯域割当状況を取得する。帯域割当状況の取得は、イニシエータからのフローの送信開始要求を受信したタイミングで行われる。
図10は経路A、経路Bの各帯域情報管理部から取得された情報の例を示す。図10は、NI413のエンコード処理タスクのフローに関し、経路Bの往路、復路には、それぞれ200MB/s、300MB/sの帯域が既に割り当てられている状態であることを示している。帯域情報管理部101からの帯域上の取得は、バス上での制御パケットの交換によって行ってもよいし、専用の制御信号のハンドシェイクによって行ってもよい。バス上での制御パケットの交換によって行う場合は、NI413から各経路上の帯域情報管理部に対して、制御パケットをユニキャストパケットとして送信してもよいし、ブロードキャストパケットとして送信してもよい。また往路の帯域情報を取得する制御パケットと復路の帯域情報を取得する制御パケットを同一の制御パケットとして処理してもよいし、別個の制御パケットとして処理してもよい。
(経路候補抽出部118)
経路候補抽出部118は、往路群および復路群のうちの少なくとも一方の経路群の経路負荷が均一化されるように、経路群の中から候補となる経路を抽出する。候補となる経路の抽出には、経路負荷検出部112によって取得された種々の経路の負荷の情報が利用される。
なお、本願明細書では、「経路群の経路負荷が均一化されるように」という文言は、以下の意味で用いられる。すなわちこの文言は、経路群の少なくとも1つに既に帯域が割り当てられている状況において、新たに帯域を割り当てようとするときに、経路群全体で負荷の差が小さくなるように、という意味で用いられる。経路群全体で負荷の差が小さくなるように帯域の割り当てが行われていればよい。経路群の負荷の差が存在しないことが最も好ましいが、実際には負荷の差は存在し得る。そのような負荷の差の存在は許容される。なお、「フローの帯域を均一化する」などにおける「均一化」という意味も同様に、経路群全体で負荷の差が小さくなるように、という意味で用いられ、負荷の差が完全になくなることを必要としないことに留意されたい。
経路候補抽出部118は、往路候補抽出部113および復路候補抽出部114を有する。往路に関しては、往路候補抽出部113が候補となる経路を抽出する。復路に関しては、復路候補抽出部114が候補となる経路を抽出する。
(往路候補抽出部113)
往路候補抽出部113は、経路負荷検出部112によって、帯域情報管理部101から取得された、経路i毎の往路割当済帯域の値Uと、割当対象のフローjの往路要求帯域uとから、経路iにフローjの割当を行った場合の経路iの往路割当帯域の値Eijを算出する。数1内のfwdは往路を示す添字である。
Figure 2013168427
ここで、図10は、往路割当済帯域(U)の値の例を示す。
全ての選択候補経路に対して、Eijの算出を行い、各経路の中でEijの値が最も小さくなる経路Rをフローjへの往路割当経路の候補として選択する。
Figure 2013168427
(復路候補抽出部114)
復路候補抽出部114は、経路負荷検出部112によって、帯域情報管理部101から取得された、経路i毎の復路割当済帯域の値Uと、割当対象のフローjの復路要求帯域uとから、経路iにフローjの割当を行った場合の経路iの復路割当帯域の値Eijを算出する。数1内のbackは復路を示す添字である。
Figure 2013168427
図10はまた、復路割当済帯域(U)の値の例を示す。
全ての選択候補経路に対して、Eijの算出を行い、各経路の中でEijの値が最も小さくなる経路Rをフローjへの往路割当経路の候補として選択する。
Figure 2013168427
(経路決定部115)
経路決定部115は、イニシエータ413からのフロー開始要求を検出し、フローIDを検索キーとして選択規則記憶部111を検索し、該フローに関する経路選択規則を抽出する。フローIDが41301のフロー(図9)に対する処理の例を説明すると、経路決定部115は、経路負荷検出112に対して帯域情報の取得を行わせ、往路候補抽出部113と復路候補抽出部114の結果を得る。該フローの往路選択規則は、制限無となっているため、往路間の割当帯域の均一性が最も高くなる往路候補抽出部113の出力経路を往路の割当経路として決定する。また復路選択規則も、制限無となっているため、復路間の割当帯域の均一性が最も高くなる復路候補抽出部114の出力経路を復路の割当経路として決定する。該フローには、往路、復路とも選択規則に制限が無いため、それぞれ独立に割当帯域が最も均一となる経路が選択される。またフローIDが41302のフロー(図9)に対する処理の例を説明すると、往路、復路のいずれも割当経路が固定された選択規則となっているため、帯域情報を取得する必要はなく、往路、復路ともに指定された経路を割当経路として決定する。
またフローIDが41303と41304のフロー(図9)に関しては、往路での選択規則に制限は無いが、復路の選択規則はフロー間での応答パケットの到着順序が崩れない条件の下で経路選択を行うべきことを示している。これはアクセスに順序性を有する単一のフローを、送信帯域を確保するために2つの経路を用いて並列的に送信する場合などに該当する。
なお、本実施形態のNoCでは、送信元と送信先がそれぞれ決まると、そのデータを中継するルータも一意に定まる構成であることを想定している。したがって、本実施形態では、パケットの送信順序を決定すれば順序を維持できる。なお、上述した「送信先」とは、最終的な送信宛先であるメモリではなく、バスブリッジの経路インタフェースを意味することに留意されたい。
図11は、フロー間での到着順序が崩れる経路割当の例を示す。フロー41303に属する応答パケット41303aと、フロー41304に属する応答パケット41304aは、メモリ1101からバスブリッジ1102にアクセス順序に従って到着する。もしフロー41303に対してローカルバスの復路で経路Aが、フロー41304に対してローカルバスの復路で経路Bが割り当てられた状態であり、経路Aよりも経路Bのほうが転送が速かった場合には、イニシエータ1103に到着する順序は、41304c、41303cのようにアクセス順序とは逆になるため、該フローの選択規則により該割当状態を禁止する。具体的には、フロー41303に対する割当が、フロー41304に対する割当前に発生した場合には、フロー41303に対する割当は、フロー41301と同様に、往路、復路に対して独立に経路が選択される。しかる後にフロー41304に対する割当が発生した際には、往路に対してはフロー41301の往路と同様に各経路の往路割当済帯域に基づいて往路を決定するが、復路の割当については、各経路の復路割当済帯域に基づくことなく、先行して割り当てられた関連フロー41303の復路を、フロー41304への割当先の復路として決定する。経路A、経路B間のデータ転送のタイミングの差によるイニシエータへの到着順序の逆転が防止できる。選択規則に従って決定された各フローの往路、復路の経路割当結果は、経路決定部115によって記憶され、各フローに属するメモリアクセスが行われる際に、ヘッダ構築部116によって参照され、パケットヘッダの生成に利用される。
図12は往路、復路の経路割当結果の格納例を示す。経路決定部115は、該フローに対する往路、復路の割当が完了すると、該割当経路上の帯域情報管理部101に対して、割当を行ったフローに関する情報であるフロー関連情報を通知する。フロー関連情報には、少なくとも該フローの要求帯域に関する情報が含まれる。
図13はフロー関連情報の通知パケットの構成例を示す。該パケットは、メモリアクセスの要求パケットではないため、第1列目のフィールドのメモリ側NIのIDはNULLが格納される。第2列目のフィールドには、往路の割当結果である経路のID、第3列目のフィールドには、送信元であるイニシエータ側NIのID、第4列目のフィールドには、復路の割当結果である経路のIDが格納される。また第5列目のフィールドには、往路に対して割り当てられた要求帯域を示す値が、第6列目のフィールドには、復路に対して割り当てられた要求帯域を示す値が格納され、これらの要求帯域に関する情報が、該パケットにより、帯域情報管理部101に伝達されることにより、各経路上の帯域情報管理部101は、経路上に割り当てられた全てのフローの要求帯域を管理することが可能となる。
経路決定部115は、メモリ・アクセスが完了すると、往路および復路の解放通知を出力する。この通知に基づいて、帯域情報管理部101は、往路および復路の経路を解放し、往路割当済帯域および復路割当済帯域の各値を更新する。
(ヘッダ構築部116)
ヘッダ構築部116は、経路決定部115に記憶されたフロー毎の往路、復路の経路割当結果を参照することで、メモリに対して送信するメモリアクセスの要求パケットのパケットヘッダを構築する。
図6は、パケットヘッダの構築例を示す。
パケットフィールドの第1列には、アクセスする宛先メモリのIDを示す値が格納される。宛先メモリのIDは、イニシエータ403からNI413に対してメモリアクセス要求を出力する度に受信してもよいし、アクセス先のメモリアドレスから宛先メモリのIDに変換するための変換テーブルをNI413に保持し、それを参照することで解決してもよい。
パケットフィールドの第2列には、往路割当結果を示す値が格納される。図12は、経路割当結果の例を示す。ヘッダ構築部116は、フローIDに基づいて図12に示した経路割当結果の記憶領域を検索することで、往路割当結果を示す値を抽出し、パケットフィールドの第2列に格納する。
パケットフィールドの第3列には、イニシエータ403を示すIDが格納される。イニシエータ403のIDは、NI403の初期化時にイニシエータ403からNI403に対してレジスタ等を用いて設定してもよい。またシステムで一意なNI403のIDとしてNI403内に事前に記憶していてもよい。パケットフィールドの第4列には、フローIDに基づいて図12に示した経路割当結果の記憶領域を検索することで抽出した復路割当結果を示す値が格納される。またこれら以外のシステムで必要とされる情報もヘッダ内にフィールドを設けて格納してもよい。
(データ送受信部117)
イニシエータ403から、メモリへのライトまたはリードのアクセス要求を受理したデータ送受信部117は、該アクセスのフローIDを特定し、ヘッダ構築部116に通知することで、メモリに送信するためのアクセス要求パケットのパケットヘッダを獲得する。またイニシエータ403からライトデータを受理した場合には、パケットヘッダと共に初段のルータ422に対して要求パケットの送信を行う。またルータ422から応答パケットを受信した場合は、応答パケットからパケットヘッダを除去し、リードデータを受理した場合には、イニシエータ403に対して送信する。イニシエータ403とのデータの送受信については、イニシエータが対応するバスプロトコルへの変換処理も必要に応じて行う。
ここで図8および図3を参照する。
図8のメモリ側インタフェース部120は、図3のNI441の構成の例である。また図8に示すように、メモリが複数存在する場合にはメモリ側インタフェース部120も複数設けられる。つまり、経路が異なれば、経路ごとにインタフェース部が設けられる。
同様の理由で、メモリ側インタフェース部120と同等の構成を有するインタフェース部120が、各経路AおよびBについてインタフェース部120aおよび120b(図3)として設けられる。以下では、図8のインタフェース部120が、図3のNI441に対応するとして説明するが、インタフェース部120aおよび120b(図3)の構成も同等であることに留意されたい。
メモリ側インタフェース部120は、帯域情報管理部101と、復路ヘッダ構築部121と、データ送受信部122とを備えている。以下、メモリ側インタフェース部120の構成要素およびその動作を詳細に説明する。
(復路ヘッダ構築部121)
復路ヘッダ構築部121は、イニシエータ側のNI411からNI414より受信したメモリアクセスの要求パケットのパケットヘッダに基づいて、メモリアクセス結果を格納する応答パケットのパケットヘッダを構築する。ローカルバス内の応答パケットの割当経路は、イニシエータ側のNI411からNI414内で管理されるため、応答パケットがとるべき復路の経路に関する情報は、要求パケットのパケットヘッダ内に格納されてメモリ側のNI441に通知される。
図7は、応答パケットのパケットヘッダの構成の例を示す。応答パケットの第1列目のフィールドは、応答パケットの最終的な宛先となるイニシエータ側のNIのIDが、図6に示す要求パケットのパケットヘッダの第3列目のフィールドから複製され格納される。応答パケットの第2列目のフィールドは、ローカルバスの復路を示すIDであり、要求パケットの第4列目のフィールドから複製され格納される。応答パケットの第3列目のフィールドは、応答パケットの送信元であるメモリ側のNI441のIDであり、要求パケットの第1列目のフィールドと同一の値が格納される。応答パケットの第4列目のフィールドは、ローカルバス往路のIDであり、要求パケットの第2フィールドから複製され格納される。なお、復路においてはローカルバス往路の情報は特に必要はないため、ローカルバス往路のIDを設けなくてもよい。
(データ送受信部122)
データ送受信部122は、システムバス往路481を介して、要求パケットを受信する。データ送受信部122は、要求パケットからパケットヘッダを分離し、ライトデータまたはリード要求を、メモリコントローラ451に送信する。またデータ送受信部122は、要求パケットヘッダから分離したパケットヘッダを復路ヘッダ構築部121に通知する。また、メモリコントローラ451から、メモリ461へのライトまたはリードのアクセス応答を受理した場合は、復路ヘッダ構築部121から応答パケットのパケットヘッダを獲得し、該アクセス応答に含めて応答パケットを生成し、システムバス復路482を介してイニシエータに対して送信する。メモリコントローラ451とのデータの送受信については、メモリコントローラ451が対応するバスプロトコルへの変換処理も必要に応じて行う。
(帯域情報管理部101)
帯域情報管理部101は、本実施形態では、バスブリッジ431のローカルバス側インタフェース上に存在する構成をとっているが、各経路の帯域情報が管理できる場所であれば、経路上のどこにあってもよい。経路i上の帯域情報管理部101は、経路iに対して現在割り当てられているフローの割当済帯域Uを管理し、経路決定部115から受理した割当結果の通知に基づいてUを更新する。システム起動時などの未だフローが何も割り当てられていない状態において、割当済帯域Uは数5、数6に従い初期化される。式中のfwdは往路を表し、backは復路を表す添字である。
Figure 2013168427

Figure 2013168427
図13は、フローjの割当処理完了に伴い、経路決定部115から受理する割当結果の通知のパケットの例を示す。パケットの第2列目に格納された往路のIDが、帯域情報管理部101が管理する経路iに対応するIDであれば、パケットの第5列目のフィールドに格納された該フローjの往路割当帯域の値ujを用いて、数7に従って割当済帯域Uの値を更新する。
Figure 2013168427
パケットの第4列目に格納された復路のIDが、帯域情報管理部101が管理する経路iに対応するIDであれば、パケットの第6列目のフィールドに格納された該フローjの復路割当帯域の値ujを用いて、数8に従って割当済帯域Uの値を更新する。
Figure 2013168427
また一方、経路iに割当済であるフローjが、イニシエータの状態変化などにより消滅した場合には、経路決定部115から受理する割当済帯域の解放通知などに基づき、割当済帯域Uを数9、数10に従い更新する。
Figure 2013168427

Figure 2013168427
経路iへのフローの割当、解放に伴って常に割当済帯域Uを更新することにより、経路iの往路、復路に割り当てられている要求帯域を帯域情報管理部101で管理することが可能となる。帯域情報管理部101は、経路負荷検出部112からの要求に従い、割当済帯域Uの値を通知する。
図14は、本実施形態のイニシエータ側のNIにおける処理フローを示す。まずステップS1401において、経路決定部115はイニシエータからのフロー開始要求を検出する。ステップS1402において、経路決定部115は、選択規則記憶部111から、選択規則を読み出す。
ステップS1403において、往路候補抽出部113は、経路毎の割当済帯域(往路)を取得する。具体的には、往路候補抽出部113は、経路負荷検出部112によって帯域情報管理部101から取得された、経路i毎の往路割当済帯域の値Uと、割当対象のフローjの往路要求帯域uとから、経路iにフローjの割当を行った場合の経路iの往路割当帯域の値Eij(数1)を算出する。
ステップS1404において、復路候補抽出部114は、経路毎の割当済帯域(復路)を取得する。具体的には、復路候補抽出部114は、経路負荷検出部112によって、帯域情報管理部101から取得された、経路i毎の復路割当済帯域の値Uと、割当対象のフローjの復路要求帯域uとから、経路iにフローjの割当を行った場合の経路iの復路割当帯域の値Eijを算出する。
ステップS1405において、経路決定部115は、往路候補抽出部113と復路候補抽出部114の結果を得て選択規則記憶部111を検索し、選択規則に従った経路(往路、復路)を決定する。
ステップS1406において、経路決定部115は、割当経路上のメモリ側インタフェース部120の帯域情報管理部101に、経路(往路、復路)の決定結果を通知する。
ステップS1407においてメモリ・アクセスが開始され、ステップS1408においてメモリ・アクセスが終了する。
そしてステップS1409において、経路決定部115は経路(往路、復路)の解放通知を出力する。この結果、帯域情報管理部101は、往路および復路の経路を解放し、往路割当済帯域および復路割当済帯域の各値を更新する。
本実施形態では、イニシエータのデータ転送先はシステムメモリとして説明したが、ローカルメモリやグラフィックメモリなどでもよいし、入出力ポートやバッファ、デバイスであってもよいし、イニシエータ間の直接通信であってもよい。例えばイニシエータ401からイニシエータ404へ、メモリ461を介さず、ローカルバス内で直接通信する場合には、パケットの宛先としてイニシエータ側のNI414のIDを指定すればよい。その場合、NI411から送信された要求パケットは、バスブリッジ431でループバックされ、NI414に送られる。またNI414から送られた応答パケットは、バスブリッジ431でループバックされ、NI411に返される。直接通信のためのフローの割当も、メモリ・アクセスのフローに対する経路割当の処理と同様に行えばよい。かかる構成によればバスの利用帯域を往路、復路毎に最適に制御することが可能となり、低いバス動作周波数の並列構成のバスを用いて、広帯域なデータ転送を行うことができる。
(実施形態2)
実施形態1においては、各イニシエータが発生させるフローjの最大要求帯域ujが定義可能な場合の例を説明した。フロー毎の最大要求帯域は、SoCの帯域設計の方法により粒度は異なるものの、メモリアクセス性能の保証の必要性から、レート保証型のイニシエータについては設計時に定義される設計パラメータと考えてよい。
しかし実際のSoCシステムの構成時には、プロセッサやメモリアクセス性能を問わないレート非保証型のイニシエータも存在する。レート非保証型のイニシエータでは、平均要求帯域は定義可能な場合もある。しかしながら、例えばユーザの機器操作に基づく多数のタスクの起動や、内部キャッシュのミスヒットなどにより、メモリに対して瞬間的に大量のデータ転送を要求することがある。このときの最大要求帯域の上限はバスの物理帯域となる。
このようなレート非保証型の広帯域なメモリアクセスが、メモリアクセス性能の保証が必要なリアルタイム系のイニシエータのメモリアクセスと相互に干渉するのを防ぐため、本実施形態においては、バスの帯域を時分割多重したり、またはルータでのパケット転送時における優先度制御を行う。
図15は、本実施形態におけるSoCシステムを示す。
イニシエータ2001−2003はいずれもレート非保証系のイニシエータである。リアルタイム系のイニシエータの記載は省略するが、帯域の時分割多重やパケット優先度制御が行われているのであれば、システム上に存在していても良い。
レート非保証系のイニシエータ2001−2003はバスを介して共用メモリ2051、2052との間でデータの転送を行う。イニシエータ2001−2003は、ネットワーク・インタフェースであるNI2011、2012、2013を介してルータ2021−2023にそれぞれ接続される。メモリ2051、2052は、メモリコントローラ2041、2042、ネットワーク・インタフェースであるNI2031、2032を介してルータ2024、2025に接続される。ルータ2021−2025は、各隣接間で接続されたバスを形成する。
イニシエータ2001、2002、2003はメモリ2051、2052のいずれにもアクセスが可能である。例えばイニシエータ2001からメモリ2051へアクセスを行う際には、イニシエータ2001は、イニシエータ2001から実線で示したバスを通ってルータ2024の経路A側のインタフェースを経由しメモリ2051に至る経路Aと、点線で示したバスを通ってルータ2024の経路B側のインタフェースを経由しメモリ2051に至る経路Bの2つの経路を選択可能である。イニシエータ2001からメモリ2052へのアクセスについても同様に、経路C、経路Dの2つの経路を選択可能である。またイニシエータ2002、2003についても同様に、メモリ2051、2052へのアクセスにおいて、それぞれ2つの経路を選択可能である。
図16は、NI2011、NI2012、NI2013が参照する経路選択規則の例を示す。フロー200101、200201、200301は、いずれもレート非保証型のフローである。フロー200101と200201は同じ優先度を持つ。フロー200301の優先度はフロー200101、200201の優先度より低い。この優先度の情報は、選択規則記憶部によって選択規則と共に保持されている。
図15に実線及び点線で示したバスは、それぞれ往路と復路から構成されるが、実施形態1と同様であるため図15には図示していない。本実施形態では、バスの物理帯域は、往路、復路とも、各32ビット幅、200MHzのバスであり、接続可能なバンド幅は、800MB/sである。該構成のSoCシステムを用いて、レート非保証系のイニシエータにおける経路割当の詳細な方法を、実施形態1と同様の部分については省略し、異なる部分についてのみ行う。
イニシエータ2003は、イニシエータ2001に先立ち、メモリ2052へのアクセスを行うためのレート非保証系のフロー200301の割当要求を開始する。この時点では他のレート非保証系のフロー200101、200201は未だ割当が行われていないため、たとえば、他のレート保証型のフローの割当状況、メモリ2052に至る経路C、経路D間のホップ数の差を加味して、経路Cが割り当てられる。次にイニシエータ2001から、メモリ2051にアクセスするためのレート非保証系のフロー200101の割当要求が出されると、NI2011は、選択可能な各経路上の帯域情報管理部からレート非保証系のフローの割当状況を取得し、経路Bではなく、経路Aを選択する。これにより、イニシエータ2003が行うレート非保証系のメモリアクセスと点線の経路上で干渉することを防ぎ、フロー200101、フロー200301の双方とも、物理帯域を上限とするメモリへのアクセスが可能となる。またその後、イニシエータ2002から、メモリ2052にアクセスするためのレート非保証型のフロー200201の割当要求が出されると、NI2012は、選択可能な各経路上の帯域情報管理部からレート非保証系のフローの割当状況を取得し、経路Aにレート非保証系の高優先度のフロー200101が割当済であり、経路Bにレート非保証系の低優先度のフロー200301が割当済であることを検出する。フロー200201の優先度は、フロー200101と同様で高いため、NI2012は、高優先度のフロー間での干渉を防ぐため、フロー200201を経路Bに割り当てる。
図8のイニシエータ側ネットワーク・インタフェース(NI)110は、図15のNI2011、NI2012、NI2013の構成の例である。実施形態1のNI110と同じ機能を有する構成要素の説明は省略し、機能が異なる構成要素を詳細に説明する。
(選択規則記憶部111)
いずれのフローもレート非保証型であり、最大要求帯域が定義できないため、選択規則記憶部111が格納する選択規則にはレート非保証であることを示す情報が格納される。またレート非保証型のフロー間に優先度関係が存在する場合は、優先度を示す情報も格納される。
(経路負荷検出部112)
経路負荷検出部112は、経路選択候補となる各経路上の帯域情報管理部101から、現在の経路毎のレート非保証型のフローの割当状況を取得する。
図17は、イニシエータ2001によるフロー200101の割当要求時に、経路A、経路Cの帯域情報管理部から取得された情報の例を示す。経路Aにはレート非保証型のフローは割り当てられていないため、往路、復路とも0の状態である。一方、経路Cには既にイニシエータ2003のレート非保証型のフローが1本割り当てられているため、往路、復路とも1の状態である。
また図18は、イニシエータ2002によるフロー200201の割当要求時に、経路A、経路Cの帯域情報管理部から取得された情報の例を示す。経路Aには既にイニシエータ2001のレート非保証型のフローが1本割り当てられているため、往路、復路とも1の状態である。経路Cには既にイニシエータ2003のレート非保証型のフローが1本割り当てられているため、往路、復路とも1の状態である。
割当状況を表す値については、本実施形態では、該経路に割り当てられたレート非保証型のフローの本数としているが、割当が為されているかどうかを示すバイナリ値としてもよいし、レート非保証型のフローに平均要求帯域が定義できる場合には、平均要求帯域で重み付けをした値としてもよい。
(経路候補抽出部118)
経路候補抽出部118は、往路候補抽出部113および復路候補抽出部114の少なくとも一方を動作させ、往路および復路の少なくとも一方の経路群の経路負荷が均一化されるように、経路群の中から候補となる経路を抽出する。具体的には、次に説明するように、往路候補抽出部113および復路候補抽出部114を動作させる。
(往路候補抽出部113)
往路候補抽出部113は、経路負荷検出部112によって、帯域情報管理部101から取得された、経路i毎の往路のレート非保証型の割当状況に基づいて、先ずレート非保証型のフロー割当が為されていない経路を選択する。そして、そのような経路が存在しない場合には、往路候補抽出部113は、割当対象のフローの優先度よりも低い優先度のフローのみが割り当てられている経路を選択する。そのような経路も存在しない場合には、往路候補抽出部113は、割当対象のフローの優先度と同等かそれ以上の優先度のフローの割当数が最小の経路iを該フローへの往路割当経路の候補として選択する。
(復路候補抽出部114)
復路候補抽出部114は、経路負荷検出部112によって、帯域情報管理部101から取得された、経路i毎の往路のレート非保証型の割当状況に基づいて、先ずレート非保証型のフロー割当が為されていない経路を選択する。そして、そのような経路が存在しない場合には、復路候補抽出部114は、割当対象のフローの優先度よりも低い優先度のフローのみが割り当てられている経路を選択する。そのような経路も存在しない場合には、復路候補抽出部114は、割当対象のフローの優先度と同等かそれ以上の優先度のフローの割当数が最小の経路iを該フローへの往路割当経路の候補として選択する。
(経路決定部115)
経路決定部115は、イニシエータ2001からのレート非保証型のフローの開始要求を検出し、フローIDを検索キーとして選択規則記憶部111を検索し、該フローに関する経路選択規則を抽出する。フローIDが200101のフローに対する処理の例としては、経路負荷検出部112に対してレート非保証系の割当状況の取得を行わせ、往路候補抽出部113と復路候補抽出部114の結果を得る。該フローの往路選択規則としては、レート非保証型となっているため、往路間の割当フロー数の均一性が最も高くなる往路候補抽出部113の出力経路を往路の割当経路として決定する。また復路選択規則としても、レート非保証型となっているため、復路間の割当フロー数の均一性が最も高くなる復路候補抽出部114の出力経路を復路の割当経路として決定する。経路決定部115は、該レート非保証系フローに対する往路、復路の割当が完了すると、該割当経路上の帯域情報管理部101に対して、割当を行ったフローに関する情報であるフロー関連情報を通知する。フロー関連情報には、少なくとも該フローがレート非保証系のフローであることを示す情報が含まれる。
図19は、フロー関連情報の通知パケットの構成例を示す。該パケットは、メモリアクセスの要求パケットではないため、第1列目のフィールドのメモリ側NIのIDはNULLが格納される。第2列目のフィールドには、往路の割当結果である経路のID、第3列目のフィールドには、送信元であるイニシエータ側NIのID、第4列目のフィールドには、復路の割当結果である経路のIDが格納される。また第5列目のフィールドには、往路に対して新たに1本のレート非保証型のフローが割り当てられたことを示す1が、第6列目のフィールドには、往路に割り当てられたフローの優先度が、第7列目のフィールドには、復路に対して新たに1本のレート非保証型のフローが割り当てられたことを示す1が、第8列目のフィールドには、復路に割り当てられたフローの優先度が格納され、通知用パケットとして、帯域情報管理部101に伝達されることにより、各経路上の帯域情報管理部101は、経路上でのレート非保証型のフローの割当状況を管理することが可能となる。
(帯域情報管理部101)
帯域情報管理部101は、本実施形態では、ルータ2024の経路A側のインタフェース部と、ルータ2025の経路C側のインタフェース部に位置する構成をとっているが、各経路の帯域情報が管理できる場所であれば、経路上のどこにあってもよい。経路i上の帯域情報管理部101は、経路iに対して現在割り当てられているレート非保証型のフローの割当状態Aをフローの優先度毎に管理し、経路決定部115から受理した割当結果の通知に基づいてAを更新する。システム起動時などの未だフローが何も割り当てられていない状態において、レート非保証型フローの割当本数などを示すAは数11、数12に従い初期化される。式中のfwdは往路を表し、backは復路を表す添字である。
Figure 2013168427

Figure 2013168427
図19は、フローjの割当処理完了に伴い、経路決定部115から受理する割当結果の通知のパケットの例を示す。パケットの第2列目に格納された往路のIDが、帯域情報管理部101が管理する経路iに対応するIDであれば、パケットの第5列目のフィールドに格納された該フローjの往路割当状況の値ajを用いて、数13に従ってレート非保証系の割当状況Aの値を更新する。
Figure 2013168427
パケットの第4列目に格納された復路のIDが、帯域情報管理部101が管理する経路iに対応するIDであれば、パケットの第6列目のフィールドに格納された該フローjの復路割当状況の値ajを用いて、数14に従ってレート非保証系の割当状況Aの値を更新する。
Figure 2013168427
また一方、経路iに割当済であるレート非保証型フローjが、イニシエータの状態変化などにより消滅した場合には、経路決定部115から受理するレート非保証系の割当状況の解放通知などに基づき、割当済帯域Aを数15、数16に従い更新する。
Figure 2013168427

Figure 2013168427
経路iへのレート非保証型のフローの割当、解放に伴って常に優先度毎の割当状況Aを更新することにより、経路iの往路、復路に割り当てられているレート非保証型のフローの割当状況を帯域情報管理部101で管理することが可能となる。帯域情報管理部101は、経路負荷検出部112からの要求に従い、レート非保証型のフローの優先度毎の割当状況Aの値を通知する。
上述の構成によればシステム上にバスの物理帯域上限までのメモリアクセスを行うレート非保証系のイニシエータが複数存在する状況下でも、バスの利用帯域を往路、復路毎に最適に制御することが可能となり、低いバス動作周波数の並列構成のバスを用いて、広帯域なデータ転送を行うことができる。また往路もしくは復路のいずれか一方だけで、フローの割当処理を行っても良い。
(実施形態3)
イニシエータからメモリへのアクセスに注目すると、同等の要求帯域を有する複数のフローがあった場合でも、各フローがメモリ上で使用する容量には差があるのが一般的である。そのため、メモリへ至る経路のフローの帯域を均一化するだけではなく、該フローが占有するメモリ領域の容量についても考慮する必要がある。
図20は、本実施形態におけるSoCシステムの構成例を示す。メモリ2051およびメモリ2052は、マイグレータ2061により接続されている。実施形態2に関連して説明したSoCシステムの構成要素と同じ機能を有する構成要素の説明は省略する。
また図21は、各イニシエータが生成するフローの特性を示す。イニシエータ2001、イニシエータ2002は、いずれも要求帯域が定義可能なリアルタイム系のイニシエータである。
本実施形態では、帯域情報管理部101は、マイグレータ2061の経路A、経路Bのインタフェース上にあり、それぞれメモリ2051、メモリ2052に割り当てられたフローの割当済帯域情報と割当済容量を管理する。各フローは、図21に示された開始時刻になると、フローの割当要求を出して利用するメモリの割当を行う。
実施形態1と同様に各フローのメモリへの割当処理が時間順に行われる。
図22は、フローの割当状態の例を示す。時刻tc=4000cycleにおいて、最後のフロー200202へのメモリの割当が完了した時点では、往路、復路とも、メモリ2051には200MB/sの帯域が割り当てられ、メモリ2052には200MB/sの帯域が割り当てられている。すなわち、メモリ間での割当済帯域が均一となった状態となる。
一方、各メモリでの割当済容量を比較すると、メモリ2051では200MBの領域が使用され、メモリ2052では800MBの領域が使用される状態となる。これでは、800MBの物理容量を有する2つのメモリで構成したシステムにおいては、メモリ2051の利用可能容量のうちの600MBが未使用となってしまう。
マイグレータ2061は、割当済容量を比較することによってメモリの利用可能容量が不均衡の状態にあることを検出し、フローの割当状態の更新を行う。具体的には、要求帯域が同等であるフロー200101とフロー200102を選択し、フロー200101をメモリ2051からメモリ2052へ移動させ、フロー200102をメモリ2052からメモリ2051へ移動させることで、メモリ2051の利用容量を500MBとし、メモリ2052の利用容量を500MBとする。これにより、メモリ2051、メモリ2052間で、割当済帯域、割当済容量が共に最適となる。
図20のNI2011、NI2012の構成は、図8のイニシエータ側ネットワーク・インタフェース(NI)110と同じである。メモリ間で交換するためのフローを決定するため、帯域情報管理部101は、フローID毎に該フローの要求帯域と要求容量の両方を管理し、それらの情報に基づいて、メモリ間の割当済帯域と割当済容量が共に最適となるように交換対象のフローを選択する。交換が完了すると、マイグレータ2061は、関係するイニシエータ側のNIに対して変更通知を送信し、変更通知を受信したイニシエータ側のNIは、経路割当結果を更新する。
(実施形態4)
実施形態2では、図15においてイニシエータからメモリに至る選択経路は空間的に分離された構成として示したが、本発明はこの構成に限らない。
図23は、本実施形態にかかるネットワークの構成例を示す。イニシエータ2001、2002、2003は、NI2011、2012、2013を介してルータ2021に接続され、ルータ2021はルータ2022と広帯域リンク2081で接続される。広帯域リンク2081はバス幅の拡張により広帯域化されていても良いし、データ転送のための動作周波数を高くすることにより広帯域化されていても良い。バス幅の拡張により広帯域化する場合は、リンク2081のバス幅を、イニシエータとルータ2021間を結ぶリンクのバス幅の2倍にしても良い。リンク2081の信号線のうちの半分は経路Aに、残りの半分は経路Bに割り当てられ、ルータ2022上に経路Aと経路Bの帯域情報を管理する2つの帯域情報管理部101を有する。
またリンク2081のデータ転送のための動作周波数を高くすることにより広帯域化する場合は、ルータ2021、2022は、半分に分周された動作周波数をバスクロックとして使用し、クロックの立ち上がりで経路Aを、立ち下がりで経路Bを認識しても良い。たとえば図24(a)〜(d)は、経路分離の方法例を示す。リンク2081は、各イニシエータの出力リンクの帯域の2倍のデータ転送能力を有する(図24(a))。そこで、図24(b)に示すようにリンク2081のバスクロックを2分周し、2分周したクロックの立ち上がりおよび立ち下がりのタイミングで、経路AおよびBのデータ転送を行えばよい。たとえば図24(c)は、2分周したクロックの立ち上がりのタイミングで経路Aのデータ転送を行う例を示し、図24(d)は、2分周したクロックの立ち下がりのタイミングで経路Bのデータ転送を行う例を示す。このように構成することにより、実施形態1と同様の経路分散効果が得られる。
本発明は、組込機器向けのSoCにおけるオンチップバスや、汎用プロセッサ、DSP上のローカルバスにおける、データ転送経路の制御技術を備えたネットワークバス制御装置、制御方法、制御プログラムに利用可能である。
110 イニシエータ側ネットワーク・インタフェース(NI)
111 選択規則記憶部
112 経路負荷検出部
113 往路候補抽出部
114 復路候補抽出部
115 経路決定部
116 ヘッダ構築部
117 データ送受信部
118 経路候補抽出部
120 メモリ側ネットワーク・インタフェース(NI)
121 復路ヘッダ構築部
122 データ送受信部
101 帯域情報管理部
400 SoCシステム
401−404 イニシエータ
411−414 イニシエータ側ネットワーク・インタフェース(NI)
421−424 ルータ
431 バスブリッジ
441 メモリ側ネットワーク・インタフェース(NI)
451 メモリコントローラ
461 メモリ
470 ローカルバス
471 往路ローカルバス
472 復路ローカルバス
480 システムバス
481 往路システムバス
482 復路システムバス
1101 メモリ
1102 バスブリッジ
1103 イニシエータ
2001−2003 イニシエータ
2011−2013 イニシエータ側ネットワーク・インタフェース(NI)
2021−2025 ルータ
2031−2032 メモリ側ネットワーク・インタフェース(NI)
2041−2042 メモリコントローラ
2051−2052 メモリ
2061 マイグレータ
2081 広帯域リンク

Claims (20)

  1. ネットワーク化されたバスを介して第1ノードと第2ノードとの間でデータを伝送する、半導体回路のバス制御システムにおいて、前記第1ノードに直接接続されるバス制御装置であって、
    前記第1ノードから前記第2ノードに向かう2以上の経路を往路群とし、前記第2ノードから前記第1ノードに向かう2以上の経路を復路群としたときにおいて、前記往路群および前記復路群の少なくとも一方の経路群に関して各経路の負荷を検出する経路負荷検出部と、
    前記少なくとも一方の経路群の経路負荷が均一化されるように、前記経路群の中から候補となる経路を抽出する経路候補抽出部と、
    予め定められた選択規則を記憶した選択規則記憶部と、
    前記経路候補抽出部の抽出結果、および前記選択規則記憶部に記憶された選択規則に基づいて、データを伝送する経路を決定する経路決定部と、
    決定された前記経路を示す経路情報を格納したヘッダ情報を生成するヘッダ構築部と、
    前記ヘッダ情報に基づいて特定される前記経路を利用して、前記第1ノードと前記第2ノードとの間でデータを伝送するデータ送受信部と
    を備えた、バス制御装置。
  2. 前記経路負荷検出部は、前記往路群および前記復路群の少なくとも一方の経路群に割り当てられているバスの利用帯域を、前記経路負荷として検出する、請求項1に記載のバス制御装置。
  3. 前記少なくとも一方の経路群は前記往路群であり、
    前記経路候補抽出部は前記往路群の経路のうち、前記経路負荷が最も小さくなる経路を、前記候補となる経路として抽出する、請求項1に記載のバス制御装置。
  4. 前記少なくとも一方の経路群は前記復路群であり、
    前記経路候補抽出部は前記復路群の経路のうち、前記経路負荷が最も小さくなる経路を、前記候補となる経路として抽出する、請求項1に記載のバス制御装置。
  5. 前記選択規則記憶部は、経路に関する制限が無い選択規則、特定の経路を利用する選択規則、データ伝送単位であるフローが複数存在する場合におけるフローの順序を示す選択規則、およびレート非保証型のフローであることを示す選択規則の少なくとも1つを記憶する、請求項1に記載のバス制御装置。
  6. 前記選択規則記憶部は、データ伝送単位であるフローが複数存在する場合におけるフローの順序を示す選択規則を記憶しており、
    新たなフローとの間で順序性を有する他のフローの経路が既に決定されており、かつ、フローの順序性を示す前記選択規則が新たなフローに適用される場合において、前記経路候補抽出部は、前記他のフローの経路と同一の経路を、前記候補となる経路として抽出する、請求項1に記載のバス制御装置。
  7. 前記選択規則記憶部は、レート非保証型のフローであることを示す選択規則を記憶しており、
    レート非保証型のフローの経路が既に決定されており、かつ、レート非保証型のフローであることを示す前記選択規則が新たなフローに適用される場合において、
    前記経路候補抽出部は、既存の前記レート非保証型のフローの経路とは異なる経路を、前記候補となる経路として抽出する、請求項1に記載のバス制御装置。
  8. 前記選択規則記憶部が、特定の経路を利用する選択規則を記憶しており、かつ、前記特定の経路を利用する選択規則が新たなフローに適用される場合において、
    前記経路決定部は、前記経路候補抽出部の抽出結果に拘わらず、前記選択規則によって特定される経路を、前記データを伝送する経路として決定する、請求項5に記載のバス制御装置。
  9. レート非保証型のフローの経路が既に決定されており、
    前記選択規則記憶部がレート非保証型のフローであることを示す選択規則を記憶しており、かつ、前記レート非保証型のフローであることを示す選択規則が新たなフローに適用される場合において、
    前記経路候補抽出部は、既存の前記レート非保証型のフローの経路とは異なる経路を、前記候補となる経路として抽出する、請求項5に記載のバス制御装置。
  10. 前記選択規則記憶部は、さらに前記第1ノードのフローの優先度を示す優先度情報を保持しており、
    前記経路候補抽出部は、前記優先度情報に基づいて、優先度がより低いフローが割り当てられた経路を、前記候補となる経路として抽出する、請求項5に記載のバス制御装置。
  11. 前記データ送受信部は、パケット方式で前記データを送受信し、
    前記ヘッダ構築部は、パケットのヘッダに前記ヘッダ情報を格納する、請求項1に記載のバス制御装置。
  12. 少なくとも1つの第1ノードと、
    少なくとも1つの第2ノ―ドと、
    前記少なくとも1つの第1ノードに直接接続された、請求項1から11のいずれかに記載のバス制御装置と、
    前記バス制御装置および前記少なくとも1つの第2ノ―ドとの間に複数の経路を形成するネットワーク化されたバスと、
    を備え、前記バスを介して前記少なくとも1つの第1ノードと前記少なくとも1つの第2ノードとの間でデータを伝送する、バス制御システム。
  13. 複数のメモリの各々に割り当てられたデータのフローを交換するマイグレータをさらに備え、
    前記複数のメモリは、前記少なくとも1つの第2ノードであり、
    前記少なくとも1つの第1ノードから前記複数のメモリとの間には複数の経路が設けられており、
    前記マイグレータは、前記複数の経路に割り当てられているバスの利用帯域と、各メモリ上で利用される容量とに基づいて、複数のメモリの各々に割り当てられたデータのフローを交換する、請求項12に記載のバス制御システム。
  14. 前記複数の経路は空間的に分離された複数のバスとして構成される、請求項12に記載のバス制御システム。
  15. 前記複数の経路はバス上の単一の信号線によって構成される、請求項12に記載のバス制御システム。
  16. 前記複数の経路はバス上の単一の信号線を時分割多重することによって構成される、請求項15に記載のバス制御システム。
  17. ネットワーク化された前記バスは、前記複数の経路が設けられたローカルバスと、システムバスとを備えており、
    前記ローカルバスと前記システムバスとを接続するバスブリッジをさらに備えた、請求項12に記載のバス制御システム。
  18. 請求項12から17のいずれかに記載のバス制御システムにおいて用いられるネットワークインタフェースであって、
    前記ネットワークインタフェースは、
    帯域情報を管理する帯域情報管理部であって、前記帯域情報は、対応する経路に現在割り当てられている、データ伝送単位であるフローの帯域に関する情報である、帯域情報管理部と、
    前記第1ノードから前記第2ノードへのデータ、および前記第2ノードから前記第1ノードへのデータを送受信するデータ送受信部と
    を備えている、ネットワークインタフェース。
  19. 前記帯域情報管理部は、前記バス制御システムに包含される前記バス制御装置の経路負荷検出部からの要求に応答して、前記データ送受信部を介して前記帯域情報を出力する、請求項18に記載のネットワークインタフェース。
  20. 前記ヘッダ情報に格納された前記復路を示す経路情報に基づいて、前記復路を特定する情報を生成し、宛先を特定する情報とともにパケットのヘッダに格納する復路ヘッダ構築部をさらに備えた、請求項18に記載のネットワークインタフェース。
JP2013549632A 2012-05-11 2013-05-09 バス制御システム、およびネットワークインタフェース Pending JPWO2013168427A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013549632A JPWO2013168427A1 (ja) 2012-05-11 2013-05-09 バス制御システム、およびネットワークインタフェース

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012109835 2012-05-11
JP2012109835 2012-05-11
JP2013549632A JPWO2013168427A1 (ja) 2012-05-11 2013-05-09 バス制御システム、およびネットワークインタフェース

Publications (1)

Publication Number Publication Date
JPWO2013168427A1 true JPWO2013168427A1 (ja) 2016-01-07

Family

ID=49550490

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013549632A Pending JPWO2013168427A1 (ja) 2012-05-11 2013-05-09 バス制御システム、およびネットワークインタフェース

Country Status (4)

Country Link
US (1) US9678905B2 (ja)
JP (1) JPWO2013168427A1 (ja)
CN (1) CN103635894A (ja)
WO (1) WO2013168427A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022049599A (ja) * 2020-09-16 2022-03-29 キオクシア株式会社 通信システム、デバイス及び通信方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204876A (ja) * 1991-10-01 1993-08-13 Hitachi Ltd 階層型ネットワークおよび階層型ネットワークを用いたマルチプロセッサシステム
JP2000244559A (ja) * 1999-02-24 2000-09-08 Atr Adaptive Communications Res Lab ルーチング方法、ルータ装置及びルーチングプログラムを記録した記録媒体
JP2001197118A (ja) * 2000-01-11 2001-07-19 Nec Corp データグラム中継装置及びその方法
JP2002518958A (ja) * 1998-06-19 2002-06-25 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 移動体通信システムの通信状態の動的適合方法及び装置
JP2005303828A (ja) * 2004-04-14 2005-10-27 Ntt Docomo Inc 無線ブリッジ、無線通信システム、およびパケット転送経路へのリソース割当制御方法
WO2011004566A1 (ja) * 2009-07-07 2011-01-13 パナソニック株式会社 バス制御装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5471580A (en) * 1991-10-01 1995-11-28 Hitachi, Ltd. Hierarchical network having lower and upper layer networks where gate nodes are selectively chosen in the lower and upper layer networks to form a recursive layer
JP3721784B2 (ja) 1998-05-27 2005-11-30 富士電機機器制御株式会社 ネットワークシステム、送信装置、中継装置、および、記録媒体
US6594238B1 (en) * 1998-06-19 2003-07-15 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for dynamically adapting a connection state in a mobile communications system
US6510135B1 (en) * 1998-12-18 2003-01-21 Nortel Networks Limited Flow-level demultiplexing within routers
JP2000196677A (ja) 1998-12-28 2000-07-14 Fujitsu Ltd ネットワ―クシステムに用いられる中継装置
US7412588B2 (en) 2003-07-25 2008-08-12 International Business Machines Corporation Network processor system on chip with bridge coupling protocol converting multiprocessor macro core local bus to peripheral interfaces coupled system bus
US7353362B2 (en) * 2003-07-25 2008-04-01 International Business Machines Corporation Multiprocessor subsystem in SoC with bridge between processor clusters interconnetion and SoC system bus
WO2011089899A1 (ja) 2010-01-25 2011-07-28 パナソニック株式会社 半導体システム、中継器およびチップ回路
JP2011193258A (ja) 2010-03-15 2011-09-29 Renesas Electronics Corp 半導体集積回路装置、経路決定回路及び経路決定方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05204876A (ja) * 1991-10-01 1993-08-13 Hitachi Ltd 階層型ネットワークおよび階層型ネットワークを用いたマルチプロセッサシステム
JP2002518958A (ja) * 1998-06-19 2002-06-25 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 移動体通信システムの通信状態の動的適合方法及び装置
JP2000244559A (ja) * 1999-02-24 2000-09-08 Atr Adaptive Communications Res Lab ルーチング方法、ルータ装置及びルーチングプログラムを記録した記録媒体
JP2001197118A (ja) * 2000-01-11 2001-07-19 Nec Corp データグラム中継装置及びその方法
JP2005303828A (ja) * 2004-04-14 2005-10-27 Ntt Docomo Inc 無線ブリッジ、無線通信システム、およびパケット転送経路へのリソース割当制御方法
WO2011004566A1 (ja) * 2009-07-07 2011-01-13 パナソニック株式会社 バス制御装置

Also Published As

Publication number Publication date
US9678905B2 (en) 2017-06-13
WO2013168427A1 (ja) 2013-11-14
CN103635894A (zh) 2014-03-12
US20140129750A1 (en) 2014-05-08

Similar Documents

Publication Publication Date Title
US9009648B2 (en) Automatic deadlock detection and avoidance in a system interconnect by capturing internal dependencies of IP cores using high level specification
US7643477B2 (en) Buffering data packets according to multiple flow control schemes
CN106063206A (zh) 基于优先级和带宽分配的通信量类别仲裁
US10757031B2 (en) Technologies for aligning network flows to processing resources
JP5793690B2 (ja) インタフェース装置、およびメモリバスシステム
WO2012029215A1 (ja) 中継装置
WO2016065643A1 (zh) 一种网卡配置方法及资源管理中心
JP5853211B2 (ja) バスインタフェース装置、中継装置、およびそれらを備えたバスシステム
JP2009502080A (ja) 電子装置及び通信リソース割り当て方法
US20100020818A1 (en) Sharing buffer space in link aggregation configurations
US10305825B2 (en) Bus control device, relay device, and bus system
CN114553760B (zh) 路径权重分配方法以及装置
JP2006157285A (ja) サーバ装置
WO2013168427A1 (ja) バス制御装置、バス制御システム、およびネットワークインタフェース
US9413654B2 (en) System, relay device, method, and medium
Xu et al. A mathematical model and dynamic programming based scheme for service function chain placement in NFV
CN113316212B (zh) 一种基站前传数据流的传输方法及装置
TW201630385A (zh) 具有由多個封包處理引擎共用的本地查閱資料表的可重新配置的互連元件
EP2939382B1 (en) Distributed data processing system
JP5891494B2 (ja) 通信システム、通信方法
CN116132352A (zh) 数据传输方法、装置及计算机系统
CN117880076A (zh) 用于在片上网络(noc)与外部接口之间传送配置、管理、调试信息和异步事件的系统和方法

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20141028