JP5834178B2 - 半導体回路のバスシステム - Google Patents

半導体回路のバスシステム Download PDF

Info

Publication number
JP5834178B2
JP5834178B2 JP2014527396A JP2014527396A JP5834178B2 JP 5834178 B2 JP5834178 B2 JP 5834178B2 JP 2014527396 A JP2014527396 A JP 2014527396A JP 2014527396 A JP2014527396 A JP 2014527396A JP 5834178 B2 JP5834178 B2 JP 5834178B2
Authority
JP
Japan
Prior art keywords
bus
transmission
router
data
transmission path
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.)
Expired - Fee Related
Application number
JP2014527396A
Other languages
English (en)
Other versions
JPWO2014073188A1 (ja
Inventor
山口 孝雄
孝雄 山口
篤 吉田
篤 吉田
石井 友規
友規 石井
覚 得津
覚 得津
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2014527396A priority Critical patent/JP5834178B2/ja
Application granted granted Critical
Publication of JP5834178B2 publication Critical patent/JP5834178B2/ja
Publication of JPWO2014073188A1 publication Critical patent/JPWO2014073188A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • 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/40Bus networks
    • H04L12/4013Management of data rate on the bus
    • 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/40Bus networks
    • H04L12/403Bus networks with centralised control, e.g. polling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/13Flow control; Congestion control in a LAN segment, e.g. ring or bus
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Description

本開示は、半導体回路のバスシステムに関する。
図1(a)は、集中型のバス制御の例を示す。集中型のバス制御を行う従来の集積回路では、主に複数のバスマスタとメモリとの間は1つのバスによって接続され、アービターによって各バスマスタからメモリへのアクセスが調停される。しかし、集積回路の高機能化、マルチコア化により、回路の規模が増大し、トラヒックも複雑に変動しながらバスを流れており、集中型のバス制御による集積回路の設計が困難になってきている。
その一方で、近年、並列計算機での接続技術や、ATM(Asynchronous Transfer Mode)網などのネットワーク制御の技術を取り入れた分散型のバスを有する半導体集積回路の開発が進んでいる。図1(b)は、分散型のバス制御の例を示す。分散型のバスを有する半導体集積回路は、複数のルータが複数のバスで接続されて構成されている。近年、図1(b)に示すような分散型のバスを用いることにより、大規模化した集積回路内のトラヒックを、複数のバスに分散して伝送するネットワークオンチップ(Network on Chip)の取り組みがある。
分散型のバス制御を行うNoC上でも、バスのトラヒックは増加する傾向にあり、バスの伝送性能の向上が求められている。バスの伝送性能を維持するためには、トラヒックの増加にあわせて、伝送路を並列化して高速化する方法が考えられる。
特許文献1は、イーサネット(登録商標)規格のネットワーク(通信網)において複数の通信端末が伝送路を共有しながら通信を行う、一般的な通信システムを開示する。特許文献1は、伝送路を並列化して高速化する方法として、必要に応じて、1つの送信端末が複数の伝送路を使用して広帯域化を図る通信方式を提案している。
図2は、特許文献1に記載された通信システムの構成を示している。この通信システムでは、伝送路よりも左側に記載された送信端末と、伝送路よりも右側に記載された受信端末とが、複数の伝送路を用いてより高速な通信を行う。
従来技術では、伝送路毎の通信品質を往復伝搬遅延時間(RTT)として計測する。RTTが大きい場合は、伝送路は混雑していると判断し、送信レートを下げる。逆に、RTTが小さい場合は、伝送路は空いていると判断し、送信レートを上げる。従って、従来技術では伝送路が混雑して破綻するまで伝送を行い、輻輳制御を行うため、予め想定した伝送品質を維持してデータを伝送するのは難しい(特許文献1、非特許文献1)。
イーサネット(登録商標)回線を用いるような一般のネットワークでは、ルータのバッファでのパケットの溢れなどの破綻が生じた場合には、ルータが自動的にパケットを廃棄する。一方、NoCでは、一般のネットワークと異なり、ルータはパケットを廃棄しない。その理由は、NoCでは、ネットワークに接続されるバスマスタ等が予め想定され、ネットワーク上を流れるトラヒックデータのデータ量を見込むことができるため、パケットを廃棄しなくてもよいよう、NoCを設計できるからである。
したがって、一般のネットワークに適用されてきた技術を、NoCにそのまま適用することはできない。バスの伝送性能を維持するために、これまでの技術を用いて伝送路を並列化して高速化することは困難である。
特開2009−49742号公報
マルチパス環境における高速高信頼トランスポートプロトコルの性能評価、電子情報通信学会信学技法、2005.2
NoCにおいても、バスの伝送性能を維持するために、データの伝送効率をより高めることが求められている。
本願の、限定的ではない例示的なある実施形態は、たとえば、集積回路上の複数のノードがバスで接続され、分散型のバス制御が行われるNoCにおいて、効率的なパケット伝送を実現する技術を提供する。
上記課題を解決するために、本発明の一態様は、第1伝送レートを有する第1バス、および前記第1伝送レートよりも速い第2伝送レートを有する第2バスと、データを送信する第1ノードと、前記第1ノードを前記第1バスに接続するバスインタフェースと、前記第1バスおよび前記第2バスを接続するルータと、前記第2バスに接続され、前記データを受信する第2ノードとを備えた半導体回路のバスシステムであって、前記第1バスは、前記バスインタフェースから前記ルータへ至る伝送経路を複数有する分散型バスであり、前記バスインタフェースは、前記第1ノードから受け取ったデータを、前記第1バスの各伝送経路に転送する転送処理部と、前記ルータから通知された、各伝送経路の送信量に関する情報に基づいて、前記第1バスの各伝送経路を流れるデータの流量を制御する第1制御部とを備え、前記ルータは、所定の基準に従って前記第1バスの各伝送経路に送信可能なデータ送信量を割り当て、各伝送経路の送信量に関する前記情報を前記バスインタフェースに通知する割当部と、前記第1バスの各伝送経路を流れる前記データを受け取って前記第2バスに転送するルータ処理部と、前記第2バスに流れる前記データの流量を制御する第2制御部とを備えた、半導体回路のバスシステムを含む。
上述の一般的かつ特定の態様は、システム、方法およびコンピュータプログラムを用いて実装され、またはシステム、方法およびコンピュータプログラムの組み合わせを用いて実現され得る。
本発明の一態様にかかる半導体回路のバスシステムによれば、半導体システムのデータ伝送において、伝送速度が異なるバスを相互接続していても、バスの混雑を回避し、バス動作周波数を抑制したバスの広帯域化が可能になる。
(a)は集中型のバス制御の例を示す図であり、(b)は分散型のバス制御の例を示す図である。 従来の文献に記載された通信システムの構成を示す図である。 例示的な実施形態による伝送システムの構成例を示す図である。 パケット600の伝送フォーマットの一例と、パケット600を複数のフリットに分割した例とを示す図である。 例示的な実施形態によるルータ600の構成を示す図である。 ルータ600の動作手順を示すフローチャートである。 ローカルバスとシステムバスとの関係を具体的に示す図である。 システムバス10に接続されているローカルバスの構成を示す図である。 システムバス上のメモリとルータにおいてトラヒックの干渉が生じている例を模式的に示す図である。 例示的な実施形態による半導体回路のバスシステム100の構成を示す図である。 往路での並列伝送時におけるNIC803の動作手順を示すフローチャートである。 往路での並列伝送時におけるNIC803とルータGW807との動作シーケンスを示す図である。 ローカルバスの伝送経路1〜3を模式的に示す図である。 図13に示す伝送経路1〜3の各伝送量の割当規則を示す図である。 往路での並列伝送時における、ルータGWの処理手順を示すフローチャートである。 往路での並列伝送時におけるNICとルータGWとの動作シーケンスを示す図である。 復路における伝送帯域のギャップに対応するための処理の手順を示す図である。 3つの伝送経路4〜6を用いてデータを伝送する態様を示す図である。 システムバスとローカルバスで生じる伝送帯域のギャップに対応する処理の手順を示すフローチャートである。 プロセッサと伝送経路との対応付けを示す図である。 3つのバスマスタであるプロセッサから伝送されるトラヒックと保証レートとを示す図である。 クラスに応じた調停順位を示す図である。 往路における保証レートを超えた伝送処理の手順を示すフローチャートである。 データが、主経路と、空き帯域のある伝送経路とを用いて伝送される様子を示す図である。 (i)は主経路の帯域の割当状況を示す図であり、(ii)は空き帯域が存在する、主経路以外の伝送経路の帯域の割当状況を示す図である。 複数のSoCを相互接続する場合に適用する場合の例を示す図である。
本願発明者らは、上述した従来の技術の問題を検討した。
集積回路上の複数のノードがバスで接続され、分散型のバス制御が行われるNoCのバスの伝送性能を維持するためには、トラヒックの増加にあわせて、バス動作周波数を高めていくか、バス幅を大きくする必要がある。しかしながら、バス動作周波数を高めると消費電力が高くなり、バス幅を大きくすると配線の混雑を引き起こしやすくなる。
これらの課題を解決するためのアプローチとして、機能ブロック(たとえば、映像、音声、ペリフェラルの各ブロック)に応じて、バス幅やバス動作周波数を変更する構成が採用されている。例えば、機能ブロック単位で構成されるローカルバスと、機能ブロック間を相互接続するシステムバスとを有する半導体バスシステムが構築されている。システムバスを設けることにより、機能ブロック間やバスマスタ間でメモリ上のデータを共有することが可能となる。このような構成において、ローカルバスのバス動作周波数はシステムバスのバス動作周波数よりも低く設定される。つまり、ローカルバスの伝送速度が相対的に低くなり、システムバスの動作速度が相対的に高くなる。これにより、NoCのバス伝送性能の維持を図っている。
しかしながら、このような半導体バスシステムでは、ローカルバスとシステムバスとが接続されるノードにおいて、伝送帯域のギャップに起因してデータ処理の停滞が生じやすい。また、システムバスではローカルバス間のトラヒック干渉が生じやすく、伝送可能なトラヒック量が時々刻々と変化する。以上の原因で、ローカルバスとシステムバスを接続するルータや、ローカルバス、システムバスにおいて、混雑が発生しやすくなる。よって、伝送性能が異なるバスを介してトラヒックを伝送する際には、伝送性能(スループットや遅延)を維持することが困難である。
そこで本開示は、複数の送信ノードで伝送路を共有しつつ、伝送速度が異なるバスが相互接続されたネットワークモデルに対して、予め想定した伝送品質を維持しながら、複数の伝送路を活用したバスの広帯域化を実現する技術を提供する。
本発明の一態様の概要は以下のとおりである。
本発明の一態様であるバスシステムは、第1伝送レートを有する第1バス、および前記第1伝送レートよりも速い第2伝送レートを有する第2バスと、データを送信する第1ノードと、前記第1ノードを前記第1バスに接続するバスインタフェースと、前記第1バスおよび前記第2バスを接続するルータと、前記第2バスに接続され、前記データを受信する第2ノードとを備えた半導体回路のバスシステムであって、前記第1バスは、前記バスインタフェースから前記ルータへ至る伝送経路を複数有する分散型バスであり、前記ルータは、所定の基準に従って前記第1バスの各伝送経路に送信可能なデータ送信量を割り当て、各伝送経路の送信量に関する前記情報を前記バスインタフェースに通知する割当部と、前記第1バスの各伝送経路を流れる前記データを受け取って前記第2バスに転送するルータ処理部と、前記第2バスに流れる前記データの流量を制御する第2制御部とを備え、前記バスインタフェースは、前記第1ノードから受け取ったデータを、前記第1バスの各伝送経路に転送する転送処理部と、前記ルータから通知された、各伝送経路の送信量に関する情報に基づいて、前記第1バスの各伝送経路を流れるデータの流量を制御する第1制御部とを備えている。
例示的なある実施形態において、前記第2制御部は、前記第1バスの各伝送経路のスループット、および前記第2バスのスループットを利用して、前記第2バスに流れる前記データの流量を制御する。
例示的なある実施形態において、前記バスインタフェースの転送処理部は、前記第1ノードから受け取ったデータを、パケット化して前記第1バスの各伝送経路に転送し、前記所定の基準として、前記第1バスの各伝送経路の送信可能なパケット数の上限値の情報が予め定められており、前記ルータの割当部は、前記上限値の情報に従って、前記各伝送経路に送信可能なデータ送信量を割り当てる。
例示的なある実施形態において、前記バスインタフェースの転送処理部は、前記第1ノードから受け取ったデータを、パケット化して前記第1バスの各伝送経路に転送し、前記ルータの割当部は、前記所定の基準として、前記第1バスの各伝送経路のスループットに従って、前記各伝送経路に送信可能なデータ送信量を割り当てる。
例示的なある実施形態において、前記バスインタフェースの転送処理部は、前記第1ノードから受け取ったデータを、パケット化して前記第1バスの各伝送経路に転送し、前記ルータの割当部は、前記パケット数の上限値の情報に加えて、さらに前記第1バスの各伝送経路のスループットの情報を前記所定の基準として用いて、前記各伝送経路に送信可能なデータ送信量を割り当てる。
例示的なある実施形態において、前記ルータの割当部は、前記第1バスの全ての伝送経路のスループットに対する各伝送経路のスループットの割合に従って、前記各伝送経路に送信可能なデータ送信量を割り当てる。
例示的なある実施形態において、前記第2ノードは、前記第1ノードにデータを送信することが可能であり、前記ルータ処理部は、前記第2ノードから受け取ったデータを、前記第1バスを介して前記第1ノードに転送する。
例示的なある実施形態において、前記ルータ処理部は、前記第2ノードから受け取ったデータを、前記第1バスの複数の伝送経路を介して前記第1ノードに転送する。
本発明の他の一態様であるバスシステムは、第1伝送レートを有する第1バス、および前記第1伝送レートよりも速い第2伝送レートを有する第2バスと、各々がデータを送信する複数の第1ノードと、前記複数の第1ノードの各々を前記第1バスに接続する複数のバスインタフェースと、前記第1バスおよび前記第2バスを接続するルータと、前記第2バスに接続され、前記データを受信する、少なくとも1つの第2ノードとを備えた半導体回路のバスシステムであって、前記第1バスは、前記バスインタフェースから前記ルータへ至る伝送経路を複数有する分散型バスであり、前記ルータは、所定の基準に従って前記第1バスの各伝送経路に送信可能なデータ送信量を割り当て、各伝送経路の送信量に関する前記情報を前記バスインタフェースに通知する割当部と、前記第1バスの各伝送経路を流れる前記データを受け取って前記第2バスに転送するルータ処理部と、前記第2バスに流れる前記データの流量を制御する第2制御部であって、前記複数の第1ノードから受け取った複数のデータを、第1ノード毎に保証すべき伝送レートを確保できるよう集約して、前記第2ノードに伝送する、第2制御部とを備え、各バスインタフェースは、接続された第1ノードから受け取ったデータを、前記第1バスの各伝送経路に転送する転送処理部と、保証されるべき伝送レートに基づいて制限された伝送帯域、および、前記ルータから通知された、各伝送経路の送信量に関する情報に基づいて、前記第1バスの各伝送経路を流れるデータの流量を制御する第1制御部とを備えている。
例示的なある実施形態において、保証されるべき伝送レートに基づいて制限された前記伝送帯域は、前記ルータ、または前記ルータとは異なるルータによって制限された伝送帯域である。
本発明のさらに他の一態様であるバスシステムは、第1伝送レートを有する第1バス、前記第1伝送レートよりも遅い第2伝送レートを有する第2バス、および前記第2バスよりも速い第3バスと、データを送信する第1ノードと、前記第1ノードを前記第1バスに接続するバスインタフェースと、前記第1バスおよび前記第2バスを接続する第1ルータと、前記第2バスおよび前記第3バスを接続する第2ルータと、前記第3バスに接続され、前記データを受信する第2ノードとを備えた半導体回路のバスシステムであって、前記第1バスは、前記バスインタフェースから前記ルータへ至る伝送経路を複数有する分散型バスであり、前記第1ルータは、所定の基準に従って前記第1バスの各伝送経路に送信可能なデータ送信量を割り当て、各伝送経路の送信量に関する前記情報を前記バスインタフェースに通知する割当部と、前記第1バスの各伝送経路を流れる前記データを受け取って前記第2バスに転送するルータ処理部と、前記第2バスに流れる前記データの流量を制御する第2制御部とを備え、前記第2ルータは、前記第2バスの各伝送経路を流れる前記データを受け取って前記第3バスに転送するルータ処理部と、前記第3バスに流れる前記データの流量を制御する第2制御部とを備え、前記バスインタフェースは、前記第1ノードから受け取ったデータを、前記第1バスの各伝送経路に転送する転送処理部と、前記第1ルータから通知された、各伝送経路の送信量に関する情報に基づいて、前記第1バスの各伝送経路を流れるデータの流量を制御する第1制御部とを備え、ている。
以下、添付の図面を参照しながら、本開示による伝送装置および伝送方法の実施形態を説明する。
なお、以下の説明では、「バスマスタ」は、たとえばプロセッサや画像処理などの演算処理を行うノードである。バスマスタはトラヒックを送信する役割を有しているため、「送信ノード」と呼ぶことがある。また、「スレーブ」は、たとえばメモリ(メモリコントローラも含む)やI/Oである。スレーブはトラヒックを受信する役割を有しているため、「受信ノード」または「宛先ノード」と呼ぶことがある。本実施形態では、スレーブはメモリであるとして説明する。
<1.システム構成>
図3は、本実施形態による伝送システムの構成例を示す。図示されるシステムは、送信ノードとして8個のバスマスタ(BM)101を有し、受信ノードとして8個のメモリ105を有している。これら複数のバスマスタ101および複数のメモリ105は、12個のルータ600を介してバスで多段に接続されている。図3に示されるネットワーク構成は、いわゆるメッシュ網と呼ばれる。
このように、図3に示す伝送システムは、多段接続網(Multistage Interconnection Network:MIN)を構成している。
本実施形態におけるバスマスタ101は、例えばプロセッサやDSPなどの、バスを用いてデータの転送制御を行うことができるデバイスである。メモリ105は、例えばDRAMやSRAM等の半導体メモリである。なお、本開示の実施形態としては、メモリ105を、プロセッサ、DSP、I/Oなど、メモリ以外のノードを接続する形態で構成してもよい。ルータ600は、例えば半導体回路であり、複数のバスマスタ101および複数のメモリ105の間で伝送されるデータを中継する機能を備えている。
バスマスタ101からメモリ105へのデータ伝送は、パケット交換方式により行われる。各バスマスタは、図3(a)に示すように、送信すべきパケットをフリットと呼ばれる最小単位に分割してから隣接のルータに送信する。1つのパケットを分割した複数のフリットのうち、最初に送信されるフリットは、ヘッダフリットと呼ばれる。ヘッダフリットには、パケットの先頭であることを示すフラグ情報や、パケットの送信先のアドレス情報などが記述されている。本実施形態におけるパケットおよびフリットのデータ構造の詳細は後述する。
図3に示す多段接続網を構成する各ルータは、2入力2出力のクロスバスイッチを備えている。各ルータは、図3(b)に示すように、クロスバスイッチを切り替えることによって入力と出力の組合せを変更することができる。このため、トラヒックの流れを2つの伝送経路(伝送経路1、2)の間で切り替えることができる。出力先の伝送経路が異なっていれば、ルータは2つのトラヒックを各伝送経路に同時に出力することが可能である。このような多段接続網によれば、各ルータでのスイッチの切り替えによって、全バスマスタと全メモリ間で、必ず1つ以上の伝送経路を構築することができる。
メッシュ網では、複数の送信ノードで伝送路を共有しつつ、必要に応じて、1つの送信ノードが複数の伝送路を使用して、広帯域化を図る通信方式を適用することが可能である。なお、本実施形態においてはメッシュ網を例に挙げて説明するが、これは一例である。集積回路の構成がその他のトポロジー(例えば、バタフライ網)であっても本開示を適用することが可能である。
<2.パケット、フリットの構成>
次に、本実施形態におけるパケットおよびフリットの構造を説明する。なお、本実施形態では、パケットまたはフリットを例として説明しているが、伝送に際してパケット化することは設計事項に過ぎない。パケットまたはフリットを一般化して、単に「データ」と呼んでもよい。
図4は、パケット600の伝送フォーマットの一例と、パケット600を複数のフリットに分割した例とを示している。パケット600は、ヘッダフィールド601、データフィールド602、および制御コードフィールド603を有している。
ヘッダフィールド601には、たとえば、送信先のアドレス、送信元のアドレス、パケットの送信されてからの経過時間を示す情報(経時情報)が記述される。経時情報の記述方法は任意であり、送信されてから経過した時間を判別できる値であればどのような記述方法であっても良い。例えば、送信された時刻が直接記載されてもよいし、送信されてからの経過時刻、また、現在までに通過したルータの数(ホップ数)などが記載されても良い。各ルータはパケット600を中継する度に、ホップ数をインクリメントしてもよいし、予め定められた最大ホップ数を順にデクリメントさせてもよい。
ヘッダフィールド601には、上記以外の情報が記述されていてもよい。ヘッダフィールド601のデータのうち、送信先のアドレスおよび送信元のアドレスに基づいて、パケット600の中継処理と、受信側での受信処理とが行われる。
データフィールド602には、例えば、映像データや音声データなどが記述される。制御コードフィールド603には、例えば、予め定められたパケット600の終了コードが記述される。ルータは、終了コードを検出することによってパケット600の末尾を判別できる。制御コードフィールド603には、終了コード以外の情報が格納されていてもよい。
送信側のバスマスタ101は、前述のように、パケット600を、フリットと呼ばれる小さなパケット単位に分解して伝送する。1フリットのサイズは、バスを使って1サイクルで伝送可能なサイズであり、バス幅に応じて決定される。パケット600は、ヘッダフリット604、複数のデータフリット605、およびテイルフリット606に分割される。
ヘッダフリット604には、上記のヘッダフィールド601に格納されたフラグ情報や送信先アドレス情報などが含まれる。
ヘッダフリット604に続く各フリット(データフリット605、テイルフリット606)には、送信先を特定するアドレス情報は格納されていない。その理由は、ヘッダフリット604に続く各フリットは、ヘッダフリット604と同じ宛先に送られるためである。ヘッダフリット604によって宛先が決まり、そのトラヒックのフリットを出力する出力バッファ606が決まると、後に続くフリットは、ヘッダフリット604と同じ出力バッファ606を利用してヘッダフリット604が示す宛先に伝送される。
テイルフリット606には、そのフリットがパケットを構成する最後のフリットであることを示すフラグ情報(制御コードフィールド603に格納されている終了コード)が付与されている。また、ヘッダフリット604とテイルフリット606以外の複数のフリット605は、主にデータを伝送するフリット(データフリット)であり、パケット600のデータフィールド602に対応する。
受信側のメモリ105は、テイルフリット606に記述されたフラグ情報(終了コード)を検出すると、その終了コードに基づき、伝送された複数のフリットをパケットへ再構築する。
1パケットのサイズは、例えば128バイトであり、1フリットのサイズは、例えば32ビットまたは64ビットに設定される。ただし、1パケットのサイズおよび1フリットのサイズはアプリケーションによって異なり得るため、上記のサイズは一例に過ぎない。1フリットの長さは、送信先のアドレスや送信元のアドレスなどの制御データを記述できる長さを基準としてもよい。
後述するように、各ルータは、送られてきたフリットを蓄えるためのバッファを備えている。フリットは、一旦そのバッファに蓄えられた後、スイッチの切り替えによって宛先のメモリへと続くルータ、または宛先のメモリへ送信される。
<3.ルータの構成および動作>
<3.1.ルータの概略構成>
図5は、ルータ600の構成を示す。図6は、ルータ600の動作手順を示すフローチャートである。
ルータ600は、複数の入力ポート613および出力ポート615を備えている。前段のルータ(群)600aから入力ポート613を経由してフリットを受け取り、出力ポート615を介して、後段のルータ(群)600bにフリットを送出する。
ルータ600は、入力バッファ203と、スイッチ204と、ルーティング処理部205と、バッファアロケータ部206と、スイッチアロケータ部207とを有している。以下、図6の各ステップを説明しながら、ルータ600の各構成要素の機能または動作を説明する。
まずルータ600は、入力ポート613において隣接ルータ(群)600aからのフリットを受信し、受信したフリットを入力バッファ203に格納する(S301)。ルーティング処理部205はフリットの転送先のノードを決定する(S302)。次に、バッファアロケータ部206は、隣接する後段のルータ(群)600bのどの入力バッファにフリットを格納するかを決定する(S303)。スイッチアロケータ部207は、入力バッファ203と転送先のルータのバッファ203とを対応付けてスイッチを設定する(S304)。スイッチアロケータ部207がスイッチを接続することにより、出力ポート615を介してフリットが転送先のルータ202のバッファへ送信される(S305)。
なお、図5の隣接ルータ(群)600aおよび600bに代えて、それぞれバスマスタおよび/またはメモリが設けられていてもよい。
図7および図8は、ローカルバスとシステムバスとの関係を具体的に示している。
図7に例示されるように、半導体バスシステムは、複数のローカルバス(ローカルバス1〜3)を備えている。そして基幹となるシステムバス10が、それらローカルバスを相互に接続している。換言すると、1つのシステムバス10が、ローカルバス1〜3を集約している。
図7はまた、システムバス10においてトラヒックの干渉が生じている例を模式的に示している。システムバス10がローカルバス1〜3を集約しているため、システムバス10では、各ローカルバスからメモリへ向かうトラヒックが干渉することがある。図7に示される二種類の破線は、それぞれトラヒックを表している。共通のメモリへアクセスするトラヒック同士がシステムバス10上で干渉するため、システムバス10では、伝送可能なトラヒック量は時間的に変動する。
図8は、システムバス10に接続されているローカルバスの構成を示している。図3に関連して説明したように、ローカルバスは、3つのバスマスタ(BM1〜BM3)がバスを共有できるよう、メッシュ型で構成されている。バスインタフェース(I/F)とも呼ばれるNIC(Network Interface Controller)は、バスマスタとルータとを接続するために設けられており、バスマスタから出力されるデータをパケット化してルータに送信し、ルータから受け取ったパケットを脱パケット化し、得られたデータをバスマスタに送信する。
また、NICは並列的にデータを伝送するかどうかの判断と、伝送経路の伝送量を制御する。図8には、空き経路を活用したトラヒックの伝送例が模式的に示されている。図7の例では、バスマスタBM2から出力されたデータのトラヒックが3つの伝送経路で並列的に伝送されている。図8に示される三本の破線の各々は、別個のトラヒックを表している。なお、バスマスタBM2とNICとの間の伝送経路は3つのトラヒックを同時に伝送できる帯域が確保されているとする。
ローカルバスは、ルータGWを介してシステムバス10と接続されている。ルータGWは、システムバスの伝送速度とローカルバスの伝送速度との違いを吸収するために、比較的大きい容量のバッファを備えている。ルータGWは速度変換ルータとも呼ばれることがある。
各バスマスタには、主経路が予め定義されている。主経路とは、バスマスタが、システムバスとローカルバスとを相互に接続するルータGW(ゲートウェイ)までトラヒックを送信する際に、主として利用する伝送経路である。図8に示されるように、バスマスタBM1に関してはバスマスタBM1からルータGWまでの最短経路が主経路として定義されている。図の例では、全てのバスマスタの主経路は最短経路で定義されている。主経路は設計者が自由に設定することが可能である。
並列伝送に使用する伝送経路の数や、ローカルバスやシステムバスでのトラヒック干渉などにより、伝送できるトラヒック量は時間的に変動する。特定のバスマスタがあまりに大量のトラヒックを送信すると、他のバスマスタが伝送できるトラヒック量が大幅に減少し、必要な処理ができなくなる。そこで、バスマスタ毎の伝送可能なデータ量(伝送量)が定義されている。すなわち、各バスマスタには予め「パケットの最大送信数」が定義されている。バスマスタは、パケットの最大送信数を上限とする数のパケットをネットワーク上に送信することができる。パケットの最大送信数が定義されることにより、1回の送信処理によって連続して送信可能なパケット数を制限することができる。
パケットを送信したバスマスタは、送信したパケットに対する応答パケットをスレーブ(宛先のノード)から受信した場合には、受信した応答パケットの分だけパケットをさらに送信することができる。従って、伝送路上にはそのバスマスタから送信されたパケットが、最大でも当該最大送信数分しか伝送されないことになる。これにより、バスの伝送性能(スループットや遅延)を維持、保証することが可能となり、あるバスマスタが想定以上のパケットを送信することによるバスの混雑を回避することが可能となる。
主経路以外の経路も利用してパケットを伝送するかどうかの判断や伝送量の判断に関しては、ルータGWが、各伝送経路からの伝送要求や伝送量に基づき一括して行えばよい。または、そのような判断を各NICが分散的に行ってもよい。そのときは、バスマスタに接続された各NIC間で、各伝送経路からの伝送要求や、伝送量に関する情報を交換すればよい。本実施形態においては、後に図13および図14を参照しながら、ルータGWが一括して判断を行う例を説明する。
図9は、システムバス上のメモリとルータにおいてトラヒックの干渉が生じている例を模式的に示す。図9は、図7に示すトラヒックの干渉がルータに関しても、メモリに関しても発生している様子を示す。トラヒックの干渉は、各ロ―カルバスから伝送されてきたトラヒック(破線)が交わっていること、または共通するメモリに送られていることによって示されている。
上述のとおり、システムバスのルータやメモリで伝送できるトラヒック量は時間的に変動する。そこで、伝送されるトラヒック(データ)の重要度の決定が行われる。ローカルバス3に存在するバスマスタは、処理優先度、データ種別、締切時刻などにより、伝送されるデータの重要度を決定する。この重要度に応じて、伝送を中継するルータやメモリにおける処理の優先順位が決定される。ルータおよびメモリで処理すべきトラヒック量に応じて処理時間が変化する。この結果、伝送できるトラヒック量は時間的に変動する。この状況はローカルバス上においても同様に発生し得る。たとえば、ローカルバス内にあるメモリやルータにより、ローカルバスで伝送できるトラヒック量は時間的に変動する。
図10は、本実施形態による半導体回路のバスシステム100の構成を示す。バスシステム100は、バスマスタと、NIC803と、アクセスルータと、ルータGW807と、スレーブとを有している。アクセスルータと、ルータGW807との間には、ローカルバスが設けられている。
NIC803は、バスマスタをローカルバスに接続するために設けられている。NIC803は、転送処理部801と送信流量制御部802とを有する。
転送処理部801は、バスマスタからのデータをパケット化し、スレーブからのパケットを脱パケット化する。
送信流量制御部802は、伝送経路の伝送量を制御する。この制御は、ローカルバス内で並列的にデータを伝送する際にも行われる(図8)。
いま、NIC803に接続されるルータを「アクセスルータ」と定義し、ローカルバスとシステムバスとを接続するルータを「ゲートウェイ」(GW)と定義する。以下では「ルータGW」と記述する。
ルータGWはパケットの転送機能を備えたルータ処理部804と、システムバスへのパケットの送信量を制御する送信流量制御部805と、ローカルバスの各伝送経路の伝送量を決定する受信量割当部806とを有する。上述した機能以外の機能に関しては、以下で詳細に説明する。なお、ルータ処理部804は、図5で示したルータの構成(203〜207)に対応する。また、本実施形態では、ルータGWを除いては、アクセスルータも含めたルータは図5に示す一般的な構成を備えるとする。
図の例では、バスマスタからルータGWを結ぶバスをローカルバスとし、ルータGWからスレーブを結ぶバスをシステムバスとしている。一般的に、システムバスはローカルバスよりもバス動作周波数を高く設定する。
ここでは、説明を単純化するためにシステムバスは1本のみで記しているが、ローカルバスと同様に、システムバスが複数本存在して、同一のスレーブに伝送される形態であってもよい。つまり、M対N型のトポロジーでバスを構築してもよい。例えば、システムバスにある複数の伝送経路の最大送信数の算出方法をローカルバスの最大送信数の算出方法と同様にすれば実現は可能である。
さらに、図10では1つのスレーブが示されているが、複数のスレーブが設けられていてもよい。各スレーブに複数本のシステムバスが接続されていてもよい。たとえばスレーブであるメモリが複数存在してもよい。
なお、図10では、ルータGW807とスレーブとがシステムバスによって直結されているように記載されている。しかしながら、スレーブもまたNICを介してシステムバスに接続され得る。このとき、メモリコントローラがスレーブに対応する。メモリコントローラはNICを介してシステムバスに接続されている。メモリへのアクセスはメモリコントローラを介して行われる。
図11は、往路での並列伝送時におけるNIC803の動作手順を示すフローチャートである。図12は、往路での並列伝送時におけるNIC803とルータGW807との動作シーケンスを示す。
いま、ユースケース(例えば、実行されるアプリケーションの種類)が切り替わるタイミングに注目する。このタイミングで、たとえば異なるバスマスタが新たにデータの送信を開始する。新たに動作するバスマスタに接続されたNIC803の送信流量制御部802は、ルータGW807の受信量割当部806に対して各伝送経路に関するパケットの最大送信数を要求する(S901)。この動作により、各伝送経路において最大に送信できるパケット数を規定する。本実施形態では、この規定値はユースケース毎に予め設計段階で決められているとする。
ルータGW807において、ルータ処理部804がパケットの最大送信数の要求を受け取ると、受信量割当部806は、ユースケースに応じた各バスマスタに対応した伝送経路毎の最大送信数を、自らが管理するテーブルから読み込む(S902)。管理している情報の例としては、図13および図14を例として挙げることができる。詳細は図13および図14を参照しながら説明する。
受信量割当部806は、各バスマスタに対応した伝送経路毎の通信量に関する情報、より具体的には最大送信数を特定する情報を、ルータ処理部804を介してNIC803の送信流量制御部802へ送信する(S903)。これによりNIC803は、伝送経路毎の最大送信数を特定することができる。NIC803の送信流量制御部802は、ルータGW807から通知された伝送経路毎の最大送信数の情報にしたがって、伝送経路の伝送量を制御する。
上述の動作の後にNIC803はバスマスタにデータの送信を許可する。その結果、バスマスタはデータ送信を開始する。以上の手順により、ユースケースに適したパケット送信数で各バスマスタはトラヒック伝送できるようになり、ローカルバス、システムバス、ルータGW807などでの混雑を抑制することが可能となる。なお、システムバスには複数のルータGWが接続され得る。
図13は、ローカルバスの伝送経路1〜3を模式的に示し、図14は当該伝送経路1〜3の各伝送量の割当規則を示す。
ルータGW807の受信量割当部806で管理する最大送信数の例に関して説明する。図13および図14の例は、各バスマスタの最短経路が、各バスマスタが優先的に利用する主経路(例:バスマスタBM1の主経路は経路1)として設定されている。ユースケース毎に、ルータGW807では各バスマスタの伝送経路毎に最大送信数が割り当てられている。
例えば、BM1に関しては、5個のパケットが経路1へのパケットの最大送信数として割り当てられている。BM2に関しては、3、5、4個のパケットがそれぞれ経路1、2、3へのパケットの最大送信数として割り当てられている。一方、BM3に関しては、いずれの経路にもパケットの最大送信数は割り当てられていない。なお、ゲートウェイで集中的に最大送信数を管理する方法を説明したが、各バスマスタが備えるNICで分散的に管理をしてもよい。
図15は、往路での並列伝送時における、ルータGWの処理手順を示すフローチャートである。より具体的には、図15に示すフローチャートは、ルータGWの受信量割当部806によって実行される。また図16は、往路での並列伝送時におけるNICとルータGWとの動作シーケンスを示す。
1つのバスマスタから特定のスレーブ(たとえばメモリ)へ、ローカルバスの複数の伝送経路を用いてパケットを伝送する場合(往路)に、ローカルバスにおける伝送経路毎の伝送量の制御方法を説明する。
ルータGW807の受信量割当部806は、ルータGW807からスレーブへの伝送部分であるシステムバスでのスループット(単位時間当たりの送信パケット数)を計測する(S1201)。なお、スループットの計測は、ルータGW807で行ってもよいし、受信側であるスレーブで行ってもよい。また、実装を簡略化するためにスループットの値の計測は行わずに、システムバスで設計時に規定する最大送信数を、スループットとして固定値で与えてもよい。図16に示した動作シーケンスでは、システムバスへ転送している単位時間当たりのパケット数を「TS」で表している。
次に、受信量割当部806は、ローカルバスの各伝送経路でのスループットの計測を行う(S1202)。ローカルバスのスループットの計測についても、バスマスタ側のNICで行ってもよいし、受信側であるゲートウェイで行ってもよい。図16では、ルータGW807の受信量割当部806において、ローカルバスの各伝送経路のスループットTH1〜TH3を計測している。
受信量割当部806は、システムバスでのスループットとローカルバスの伝送経路毎のスループットとに基づいて、ローカルバスの各伝送経路で転送可能なパケット数を算出する。具体的には、受信量割当部806は、システムバスでのスループットに対してローカルバスの各伝送経路でのスループットの比率を掛けて、ローカルバスの各伝送経路でのパケットの最大送信数を求める(S1203)。例えば、図16の例では、ローカルバスの1つの伝送経路でのパケットの最大送信数PL1を求める。図16のステップS1203に示されるように、PL1=TH1*TS/(TH1+TH2+TH3)で求めることができる。
受信量割当部806は、各伝送経路で伝送されるパケット数がローカルバスの各伝送経路で転送処理できる最大送信数以下に制限されるよう、バスマスタからルータGW807に伝送されたパケットに応答して、バスマスタに応答パケットを送信する応答処理を行う(S1204)。この応答処理により、バスマスタからの過剰なパケットの伝送を抑制できる。
以上の手順により、ローカルバスの各伝送経路の最大送信数を固定的に、設計時に決めておくよりは、動的に決定することで、ローカルバスやシステムバスでのトラヒック変動に強くなる。これにより、ゲートウェイでの混雑の回避や、ローカルバスやシステムバスでの伝送効率(スループットとレイテンシ)を高めることが可能となる。なお、システムバスとローカルバスのスループットの計測は、独立かつ、定期的に行ってもよい。
図17および図18は、復路に対するシステムバスとローカルバスで生じる伝送帯域のギャップに対応する処理を示す。
いま、システムバスの伝送速度は相対的に大きく、ローカルバスの伝送速度は相対的に小さいという条件が与えられたとする。この条件では、システムバスとローカルバスとの間で伝送帯域のギャップが発生する。具体的には、この条件ではシステムバスからローカルにデータを伝送する復路において伝送帯域は狭くなるため、ローカルバスの入口で混雑が発生する。この混雑は、特定の伝送経路のみを用いてデータが伝送されることに起因している。
そこで、ローカルバスにおいて複数の伝送経路を用いてデータを伝送することで、ローカルバスのバス動作周波数を上げずに、ローカルバスの伝送速度をシステムバスの伝送速度まで高めることができる。以下では、復路において、伝送帯域のギャップをなくす目的で、復路の伝送路を複数用いる場合を説明する。
図17は、復路における伝送帯域のギャップに対応するための処理の手順を示す。図18は、3つの伝送経路4〜6を用いてデータを伝送する態様を示す。本来1本であった伝送経路を3本に分けるため、この処理を本明細書では分割処理とも呼ぶことがある。
ユースケースの変化時点に、各バスマスタに接続されたNIC803の送信流量制御部802は、ゲートウェイGW807の受信量割当部806に対して、復路に関しては並列伝送を行うか否かの問い合わせを行う(S1301)。この問い合わせは、並列伝送の実施の有無と、並列伝送を行う場合において使用する伝送経路に関している。
復路にて並列伝送を行うかどうかは、設計時にバスマスタが要求する伝送品質から決定しておく。また、復路において並列伝送を行う場合には、バスマスタ間でのトラヒック干渉が生じないように並列伝送に用いる伝送経路を決定しておく。なお、ゲートウェイGW807で集中的に並列伝送を管理する方法を説明したが、各バスマスタが備えるNICで分散的に管理をしてもよい。
図18の例では、復路においてバスマスタBM2のみが並列伝送を行い、他のバスマスタはデータ伝送を行わないとする。すると、バスマスタBM2が伝送経路を3つ利用して並列伝送を行うことが可能である。
復路での伝送時には、並列伝送を行うバスマスタに対しては、ゲートウェイGW807の送信流量制御部805は設計時に予め決めた伝送経路数にデータを分割して伝送を行う(S1302)。図18の例では3つの伝送経路4〜6で並列伝送を行うため、データを3分割している。実装を簡略化するために、ゲートウェイGW807はシステムバスから受信したパケットを、対象となる伝送経路に対してラウンドロビンで均等になるように振り分けて伝送してもよい。
なお、図18に示す経路番号は、図13および図14に示す経路番号と異なっている。これは、往路と復路とが独立して伝送経路を決定できることを意味している。往路に伝送経路1で送信されたトラヒック、またはそのトラヒックに起因して発生した別のトラヒックが、復路でも同じ伝送経路1で伝送されるとは限られないことを意味している。
バスマスタBM2側のNIC803の送信流量制御部802は、分割されたデータを統合してバスマスタBM2に渡す(S1303)。図18の例では、復路での伝送経路の数である3つ分のトラヒックがNICで統合されて、バスマスタBM2へ伝送されている。NIC803の送信流量制御部802は、各伝送経路への振分け前のパケットの順序とNIC803で統合した後のパケットの順序が一致するようにパケットの順序制御をNICの送信流量制御部802で行う。例えば、送信流量制御部802は、分割した順に番号を割り当てて管理する。
以上の手順により、復路において、ローカルバスとシステムバス間の伝送帯域のギャップの課題に対して、同一のローカルバス内のバスマスタ間でのトラヒック干渉を抑えながら、ローカルバス内での伝送を高速化することが可能となり、伝送帯域のギャップも抑えることができる。
図19は、システムバスとローカルバスで生じる伝送帯域のギャップに対応する処理の手順を示すフローチャートである。図19は、プロセッサのデータを伝送する処理を示している。図20は、プロセッサと伝送経路との対応付けを示す図である。
ローカルバスの各伝送経路と、プロセッサとの対応付けを行いやすくするために、バスマスタから発行されたメモリのリード要求に対して、NIC803の送信流量制御部802は、送信元であるバスマスタを区別できる情報をパケットに付与する(S1401)。図20の例では、各バスマスタBMには、予めそのバスマスタBMに割り当てられた主経路が割り当てられている。これにより、伝送経路が独立され、トラヒック干渉を防ぐことが可能になる。
各バスマスタからのトラヒックを、ゲートウェイGW807のルータ処理部804は保証レートの観点から集約し、送信流量制御部805は、システムバスで要求される伝送品質で、ゲートウェイGW807からデータを伝送する(S1402)。ゲートウェイGW807では、各バスマスタからの伝送量が保証レート(プロセッサが必要とするスループット)を確保できるように、送信流量制御805が帯域制御を行う。実現方法として、例えば、固定レートで伝送レートを制御する方法でよい。ローカルバスで予め帯域制御を行うことで、システムバスでは、保証レートが高い1つの送信ノードからトラヒックが伝送されているように扱えるため、システムバスでのルータの性能保証のための実装が簡略化できる。
たとえば図21は、3つのバスマスタであるプロセッサから伝送されるトラヒックと保証レートとを示す。
図21に示すように、複数のバスマスタであるプロセッサからトラヒックが伝送される場合、各バスマスタにとって保証されるべき保証レートを超えてトラヒックが伝送される場合がある。この場合、全てのバスマスタの保証レートを保証するために、ローカルバスからシステムバスにデータを受け渡すルータGWの直前に配置されたルータ(ルータR1、R2、R3)は、各バスマスタから出力されるトラヒックに割り当てる帯域を制限する。図の例では、バスマスタBM1に対してはB1の伝送帯域が割り当てられ、バスマスタBM2に対してはB2の伝送帯域が割り当てられ、バスマスタBM3に対してはB3の伝送帯域が割り当てられる。帯域制限は、ルータGWによって設定された最大送信数に基づく帯域制限に加えて課される。なお、帯域制限に関しては、前述したようにルータGWにて一括で行ってもよい。
そして、各プロセッサから送信されたトラヒックは、プロセッサクラスの1つのトラヒックとして集約されて、受信ノードに伝送される。図21に示されるように、このトラヒックの伝送帯域は、B1+B2+B3である。
なお、トラヒックには伝送の優先度に相当する「クラス」が設定され得る。たとえば、遅延の条件が最も厳しい「低遅延クラス」、その次に遅延の条件が厳しい「プロセッサクラス」、そして、上記2つのクラスよりも遅延の条件が緩やかな「グラフィックスクラス」である。たとえば図21のルータGWには、各クラスのデータを保持するためのバッファが別個設けられている。これらのバッファは、たとえば送信流量制御部805に設けられる。
図21においては、各バスマスタに付随したNICが示されていないが、これは単に記載を省略しているに過ぎない。帯域制限されることにより、各NICからのパケットの出力は制限される。また、図21においては、各バスマスタからルータGWに至るローカルバスは特に分散型バスとして明示されていない。しかしながら、これは便宜的な記載である。バスマスタから、たとえば帯域を制限するルータRn(n:整数)までの伝送経路は分散型バスであってもよい。
図の例では、要求品質の違いでルータのバッファを用意すればよい。要求品質に応じて、3つのクラス(「低遅延」、「プロセッサ」、「グラフィックス」)が用意されている。ルータは、「低遅延」、「プロセッサ」、「グラフィックス」の順に優先的にデータを送信する。
なお、保証レートを超えたトラヒックは、全てのバスマスタの保証レート分のトラヒックを伝送していない期間でトラヒックを伝送する。これにより、システムバス側のルータはプロセッサの数(バスマスタの数)だけ、ルータのバッファを備える必要はなくなるため、ルータの実装を簡略化することが可能となる。
図22は、クラスに応じた調停順位を示す。保証レート以下の範囲内においては、上述の規則に従い、「低遅延」、「プロセッサ」、「グラフィックス」の調停順位にしたがってデータが伝送される(調停順位(1)〜(3))。そして保証レートを超過した場合には、予め定められた上限(閾値)未満までであれば、「プロセッサ」、「グラフィックス」の順でデータが伝送される(調停順位(4)、(5))。予め定められた上限(閾値)以上であれば、さらに空き帯域がある場合にデータが伝送される(調停順位(6))。この調停順位に従えば、プロセッサクラスのデータに関しては、調停順位に相違が生じるものの、保証レートには上限がないと言える。上記の説明では、プロセッサクラスには保証レートの上限がないとしたが、同様にグラフィックスクラスに対しても、この調停方法を適用してもよい。
再び図19を参照する。
メモリコントローラがリード要求を解釈し、要求に対応するデータをメモリから読み出し、往路のシステムバスと往路のローカルバスを介してバスマスタへデータを送信する(S1403)。
ルータGW807の送信流量制御部805は、システムバスを介してメモリから伝送されてきたデータを、ローカルバスの伝送経路に振り分けて、そのデータのリード要求を発行したバスマスタ(プロセッサ)へ伝送する(S1404)。
メモリからバスマスタに伝送する復路の伝送では、メモリから伝送されるトラヒックは中継するルータでブロックされることなく、伝送する必要がある。このため、本実施形態では、復路の伝送経路は、往路の伝送経路の逆を辿るよう設定される。これは、たとえばゲートウェイ807の送信流量制御部805が、各バスマスタからの要求をそれぞれ識別可能な情報(たとえばパケットID)を保持しておき、そのパケットIDとローカルバスの経路とを対応付けて情報を保持しておくことにより、実現される。リード要求に応答して読み出され、メモリから送信されたデータにも同じパケットIDが付加されることにより、ゲートウェイ807の送信流量制御部805は復路のデータを、往路と同じ経路で、そのデータのリード要求を発行したバスマスタに伝送することができる。復路の伝送はプロセッサ毎に独立して行われる。これにより、復路でのトラヒック干渉を抑制することができる(図20)。
本実施形態では、具体例としてプロセッサを対象に説明したが、グラフィックスや他の同様な特性を備えたバスマスタであっても同様に実現することができる。他の図の例の説明に関しても、用途はプロセッサに限定されない。また、伝送経路は、図で示したように直線的な経路を取る必要は無い。予め経路を静的に決定する方法や動的に経路を決定する方法を用いて任意の伝送経路で実現してもよい。同様に、他の図の例の説明に関しても、任意の伝送経路で実現してもよい。上述の例では、読み込み処理を例にして示したが、書き込みの場合も同様に実現することができる。
図23は、往路における保証レートを超えた伝送処理の手順を示す。
保証レートを超えた伝送とは、例えば、保証レート以内のパケット伝送は主経路のみを使い、保証レートを超えたパケット伝送は、迂回路も用いて伝送することを示す。保証レートとは、バスマスタの必要最小限の伝送帯域を表し、保証レートを超えて伝送することで、バスマスタでの処理を円滑にし、パケット伝送の効率(スループットや遅延)もより一層高めることができる。
バスマスタ側のNIC803は、ゲートウェイ807に保証レートを超えた伝送の要求を発行する(S1501)。
ゲートウェイ807の受信量割当部806は、バスマスタからゲートウェイ807までの各伝送経路の伝送量を計測する(S1502)。
受信量割当部806は、計測した伝送量に基づいて空き帯域を明らかにし、空き帯域に応じて主経路以外にも使用できる伝送経路を抽出する(S1503)。例えば受信量割当部806は、50%の空き帯域があれば主経路以外にも伝送できる経路であると認定する。但し、主経路は50%の空き帯域がなくても伝送できるとする。
ゲートウェイ807の受信量割当部806は、使用するローカルバスの伝送経路(主経路と空き帯域のある伝送経路)を決定し、ルータ処理部804を介して対象となるNICに通知する(S1504)。
バスマスタ側のNIC803の送信流量制御部802は、決定された伝送経路に基づき各伝送経路で伝送できる伝送レートの上限を設定する(S1505)。
送信流量制御部802は、主経路には保証レート内のトラヒックを伝送し、他の空き帯域のある伝送路には保証レートを超えたトラヒックを伝送する(S1506)。
図24は、データが、主経路と、空き帯域のある伝送経路とを用いて伝送される様子を示す。伝送対象は、バスマスタBM1から伝送される、プロセッサクラスの要求である。データの一部は、保証レートB1で主経路で伝送される。データの残りの一部は、保証レートB1では伝送しきれずに残されたデータであり、空き帯域が存在する他の経路で伝送される。
図25の(i)は主経路の帯域の割当状況を示し、図25の(ii)は、空き帯域が存在する、主経路以外の伝送経路の帯域の割当状況を示す。図25の(i)に示されるように、主経路で伝送する保証レート内のトラヒックに対しては、予め設計時に伝送帯域が確保される。一方、図25の(ii)に示されるように、主経路以外の伝送経路は、主経路として伝送されている/伝送される可能性のある伝送帯域(設計時に確保されている帯域)と、主経路ではないが伝送している伝送量の両方を、伝送経路が伝送できる最大の帯域から減算して空き帯域を求める。なお、保証レートを超えたトラヒックに対しては、各バスマスタが各伝送経路の帯域を予約/解放の手続きをゲートウェイとバスマスタ間で行う方法で実現してもよい。これにより、空き帯域の計測処理は不要になり、ハード実装は簡略化できる。
主経路で伝送する保証レート内のトラヒックは高優先度で、主経路以外で伝送される保証レートを超えたトラヒックは、同じ伝送路で伝送される保証レート内のトラヒックよりも低優先度で、バスマスタからゲートウェイまでを中継するルータにおいて、転送処理されるとする。従って、保証レートを超えたトラヒックは、保証レート内のトラヒックよりも低い優先度で処理されてもよい。このようなトラヒックは、例えば、プロセッサを対象としたアプリケーションで、高優先度に対応付けられたメディア処理のアプリケーションは保証レート内の伝送に対応付け、低優先度に対応付けられたWebやメイルのアプリケーションは保証レートを超えた伝送に対応付ける。このようにプロセッサの処理ではアプリケーションにより要求性能が大きく異なる。
以上の構成により、ローカルバスのバス動作周波数を低く抑えながら、バスの混雑を回避しながら、システムバスと同様な高速なトラヒック伝送を実現することができる。
本開示は、チップ内のバス配線だけではなく、チップ間のバス配線に対しても適用が可能である。図26は、複数のSoCを相互接続する場合に適用する場合の例を示す。SoC間をつなぐ配線は、プリント基板上に実装されるため、チップ内で配線される場合に比べて、高速にデータを伝送することが難しい。このため、SoC間をつなぐ配線部分Zに対して伝送経路の並列化を図ることで、バス動作周波数を大きく上げずにバス伝送の高速化が可能となる。
また、図26のように、速度差がある3つ以上のバス(SoC1内のバス、SoC2内のバス、SoC1とSoC2とを接続するバス)で構成される場合でも適用してもよい。
なお図26においても、NICは記載されていないが、単に記載を省略したに過ぎない。各SoCは、図10に示すバスマスタからルータGWに相当する構成を有している。そして各SoCのルータGW同士が、SoC間を接続するバスを介して接続されている。
本開示にかかる半導体回路のバスシステムは、システムLSI上のデータ伝送に利用可能である。
100 半導体回路のバスシステム
801 転送処理部
802 送信流量制御部
803 ネットワークインタフェースコントローラ(NIC)
804 ルータ処理部
805 送信流量制御部
806 受信料割当部
807 ルータGW

Claims (11)

  1. 第1伝送レートを有する第1バス、および前記第1伝送レートよりも速い第2伝送レートを有する第2バスと、
    データを送信する第1ノードと、
    前記第1ノードを前記第1バスに接続するバスインタフェースと、
    前記第1バスおよび前記第2バスを接続するルータと、
    前記第2バスに接続され、前記データを受信する第2ノードと
    を備えた半導体回路のバスシステムであって、
    前記第1バスは、前記バスインタフェースから前記ルータへ至る伝送経路を複数有する分散型バスであり、
    前記ルータは、
    所定の基準に従って前記第1バスの各伝送経路に送信可能なデータ送信量を割り当て、各伝送経路の送信量に関する前記情報を前記バスインタフェースに通知する割当部と、
    前記第1バスの各伝送経路を流れる前記データを受け取って前記第2バスに転送するルータ処理部と、
    前記第2バスに流れる前記データの流量を制御する第2制御部と
    を備え、
    前記バスインタフェースは、
    前記第1ノードから受け取った前記データを、前記第1バスの各伝送経路に転送する転送処理部と、
    前記ルータから通知された、各伝送経路の送信量に関する情報に基づいて、前記第1バスの各伝送経路を流れるデータの流量を制御する第1制御部と
    を備えた、半導体回路のバスシステム。
  2. 前記第2制御部は、前記第1バスの各伝送経路のスループット、および前記第2バスのスループットを利用して、前記第2バスに流れる前記データの流量を制御する、請求項1に記載のバスシステム。
  3. 前記バスインタフェースの転送処理部は、前記第1ノードから受け取ったデータを、パケット化して前記第1バスの各伝送経路に転送し、
    前記所定の基準として、前記第1バスの各伝送経路の送信可能なパケット数の上限値の情報が予め定められており、
    前記ルータの割当部は、前記上限値の情報に従って、前記各伝送経路に送信可能なデータ送信量を割り当てる、請求項1または2に記載のバスシステム。
  4. 前記バスインタフェースの転送処理部は、前記第1ノードから受け取ったデータを、パケット化して前記第1バスの各伝送経路に転送し、
    前記ルータの割当部は、前記所定の基準として、前記第1バスの各伝送経路のスループットに従って、前記各伝送経路に送信可能なデータ送信量を割り当てる、請求項1または2に記載のバスシステム。
  5. 前記バスインタフェースの転送処理部は、前記第1ノードから受け取ったデータを、パケット化して前記第1バスの各伝送経路に転送し、
    前記ルータの割当部は、前記パケット数の上限値の情報に加えて、さらに前記第1バスの各伝送経路のスループットの情報を前記所定の基準として用いて、前記各伝送経路に送信可能なデータ送信量を割り当てる、請求項3に記載のバスシステム。
  6. 前記ルータの割当部は、前記第1バスの全ての伝送経路のスループットに対する各伝送経路のスループットの割合に従って、前記各伝送経路に送信可能なデータ送信量を割り当てる、請求項4または5に記載のバスシステム。
  7. 前記第2ノードは、前記第1ノードにデータを送信することが可能であり、
    前記ルータ処理部は、前記第2ノードから受け取ったデータを、前記第1バスを介して前記第1ノードに転送する、請求項1に記載のバスシステム。
  8. 前記ルータ処理部は、前記第2ノードから受け取ったデータを、前記第1バスの複数の伝送経路を介して前記第1ノードに転送する、請求項7に記載のバスシステム。
  9. 第1伝送レートを有する第1バス、および前記第1伝送レートよりも速い第2伝送レートを有する第2バスと、
    各々がデータを送信する複数の第1ノードと、
    前記複数の第1ノードの各々を前記第1バスに接続する複数のバスインタフェースと、
    前記第1バスおよび前記第2バスを接続するルータと、
    前記第2バスに接続され、前記データを受信する、少なくとも1つの第2ノードと
    を備えた半導体回路のバスシステムであって、
    前記第1バスは、前記バスインタフェースから前記ルータへ至る伝送経路を複数有する分散型バスであり、
    前記ルータは、
    所定の基準に従って前記第1バスの各伝送経路に送信可能なデータ送信量を割り当て、各伝送経路の送信量に関する前記情報を前記バスインタフェースに通知する割当部と、
    前記第1バスの各伝送経路を流れる前記データを受け取って前記第2バスに転送するルータ処理部と、
    前記第2バスに流れる前記データの流量を制御する第2制御部であって、前記複数の第1ノードから受け取った複数のデータを、第1ノード毎に保証すべき伝送レートを確保できるよう集約して、前記第2ノードに伝送する、第2制御部と
    を備え、
    各バスインタフェースは、
    接続された第1ノードから受け取ったデータを、前記第1バスの各伝送経路に転送する転送処理部と、
    保証されるべき伝送レートに基づいて制限された伝送帯域、および、前記ルータから通知された、各伝送経路の送信量に関する情報に基づいて、前記第1バスの各伝送経路を流れるデータの流量を制御する第1制御部と
    を備えた、半導体回路のバスシステム。
  10. 保証されるべき伝送レートに基づいて制限された前記伝送帯域は、前記ルータ、または前記ルータとは異なるルータによって制限された伝送帯域である、請求項9に記載のバスシステム。
  11. 第1伝送レートを有する第1バス、前記第1伝送レートよりも遅い第2伝送レートを有する第2バス、および前記第2バスよりも速い第3バスと、
    データを送信する第1ノードと、
    前記第1ノードを前記第1バスに接続するバスインタフェースと、
    前記第1バスおよび前記第2バスを接続する第1ルータと、
    前記第2バスおよび前記第3バスを接続する第2ルータと、
    前記第3バスに接続され、前記データを受信する第2ノードと
    を備えた半導体回路のバスシステムであって、
    前記第1バスは、前記バスインタフェースから前記ルータへ至る伝送経路を複数有する分散型バスであり、
    前記第1ルータは、
    所定の基準に従って前記第1バスの各伝送経路に送信可能なデータ送信量を割り当て、各伝送経路の送信量に関する前記情報を前記バスインタフェースに通知する割当部と、
    前記第1バスの各伝送経路を流れる前記データを受け取って前記第2バスに転送するルータ処理部と、
    前記第2バスに流れる前記データの流量を制御する第2制御部と
    を備え、
    前記第2ルータは、
    前記第2バスの各伝送経路を流れる前記データを受け取って前記第3バスに転送するルータ処理部と、
    前記第3バスに流れる前記データの流量を制御する第2制御部と
    を備え、
    前記バスインタフェースは、
    前記第1ノードから受け取ったデータを、前記第1バスの各伝送経路に転送する転送処理部と、
    前記第1ルータから通知された、各伝送経路の送信量に関する情報に基づいて、前記第1バスの各伝送経路を流れるデータの流量を制御する第1制御部と
    を備えた、半導体回路のバスシステム。
JP2014527396A 2012-11-08 2013-10-31 半導体回路のバスシステム Expired - Fee Related JP5834178B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014527396A JP5834178B2 (ja) 2012-11-08 2013-10-31 半導体回路のバスシステム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2012246474 2012-11-08
JP2012246474 2012-11-08
PCT/JP2013/006457 WO2014073188A1 (ja) 2012-11-08 2013-10-31 半導体回路のバスシステム
JP2014527396A JP5834178B2 (ja) 2012-11-08 2013-10-31 半導体回路のバスシステム

Publications (2)

Publication Number Publication Date
JP5834178B2 true JP5834178B2 (ja) 2015-12-16
JPWO2014073188A1 JPWO2014073188A1 (ja) 2016-09-08

Family

ID=50684314

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014527396A Expired - Fee Related JP5834178B2 (ja) 2012-11-08 2013-10-31 半導体回路のバスシステム

Country Status (3)

Country Link
US (1) US9436642B2 (ja)
JP (1) JP5834178B2 (ja)
WO (1) WO2014073188A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105684506B (zh) * 2014-05-22 2019-04-05 华为技术有限公司 片上网络NoC的流量控制方法及装置
WO2016088371A1 (ja) * 2014-12-05 2016-06-09 日本電気株式会社 管理ノード、端末、通信システム、通信方法、および、プログラム記録媒体
CN109996307B (zh) * 2017-12-29 2021-06-01 华为技术有限公司 一种数据路由方法以及终端
KR102061274B1 (ko) * 2018-08-08 2019-12-31 재단법인대구경북과학기술원 버스네트워크시스템
US11789883B2 (en) * 2018-08-14 2023-10-17 Intel Corporation Inter-die communication of programmable logic devices
US20200234396A1 (en) * 2019-01-22 2020-07-23 Black Sesame International Holding Limited Heterogeneous computation and hierarchical memory image sensing pipeline
US11216397B2 (en) * 2019-12-23 2022-01-04 Intel Corporation Translation circuitry for an interconnection in an active interposer of a semiconductor package

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009118489A (ja) * 2007-11-08 2009-05-28 Samsung Electronics Co Ltd 中継方式を利用する無線通信システムにおける応答チャンネル伝送装置及び方法
WO2011004566A1 (ja) * 2009-07-07 2011-01-13 パナソニック株式会社 バス制御装置
WO2012132263A1 (ja) * 2011-03-28 2012-10-04 パナソニック株式会社 中継器、中継器の制御方法、およびプログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5276893A (en) * 1989-02-08 1994-01-04 Yvon Savaria Parallel microprocessor architecture
US5377189A (en) * 1989-06-02 1994-12-27 British Telecommunications Public Limited Company Hybrid data communications systems
US5263139A (en) * 1992-05-19 1993-11-16 Sun Microsystems, Inc. Multiple bus architecture for flexible communication among processor modules and memory subsystems and specialized subsystems
FR2732534B1 (fr) * 1995-03-27 1997-06-06 Met Commutateur atm utilisant une commutation synchrone par groupes de lignes
WO1996041274A1 (en) * 1995-06-07 1996-12-19 Advanced Micro Devices, Inc. Dynamically reconfigurable data bus
KR100197407B1 (ko) * 1995-12-28 1999-06-15 유기범 전전자 교환기에 있어서 프로세서들간 통신버스구조
US5796964A (en) * 1996-01-16 1998-08-18 International Business Machines Method for modifying an existing computer bus to enhance system performance
US6041380A (en) * 1998-01-21 2000-03-21 Micron Electronics, Inc. Method for increasing the number of devices capable of being operably connected to a host bus
US6405273B1 (en) * 1998-11-13 2002-06-11 Infineon Technologies North America Corp. Data processing device with memory coupling unit
US6618777B1 (en) * 1999-01-21 2003-09-09 Analog Devices, Inc. Method and apparatus for communicating between multiple functional units in a computer environment
US6574687B1 (en) * 1999-12-29 2003-06-03 Emc Corporation Fibre channel data storage system
US6769046B2 (en) * 2000-02-14 2004-07-27 Palmchip Corporation System-resource router
US6662260B1 (en) * 2000-03-28 2003-12-09 Analog Devices, Inc. Electronic circuits with dynamic bus partitioning
US7085875B1 (en) * 2000-04-06 2006-08-01 Avaya Communication Israel Ltd. Modular switch with dynamic bus
US7526570B2 (en) * 2005-03-31 2009-04-28 Intel Corporation Advanced switching optimal unicast and multicast communication paths based on SLS transport protocol
JP4930275B2 (ja) 2007-08-21 2012-05-16 日本電気株式会社 通信システム、通信方法、送信機、受信機、レート計算方法およびプログラム
US8160447B2 (en) * 2007-10-17 2012-04-17 Hitachi, Ltd. Communication system using passive optical network and passive optical network

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009118489A (ja) * 2007-11-08 2009-05-28 Samsung Electronics Co Ltd 中継方式を利用する無線通信システムにおける応答チャンネル伝送装置及び方法
WO2011004566A1 (ja) * 2009-07-07 2011-01-13 パナソニック株式会社 バス制御装置
WO2012132263A1 (ja) * 2011-03-28 2012-10-04 パナソニック株式会社 中継器、中継器の制御方法、およびプログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6014054901; 吉田篤、他2名: '分散型バスにおける伝送負荷均一化方式の提案' 情報処理学会研究報告 Vol.2011-ARC-196 No.7, 20110720, pp.1-8, 情報処理学会 *

Also Published As

Publication number Publication date
JPWO2014073188A1 (ja) 2016-09-08
WO2014073188A1 (ja) 2014-05-15
US20140365703A1 (en) 2014-12-11
US9436642B2 (en) 2016-09-06

Similar Documents

Publication Publication Date Title
JP5834178B2 (ja) 半導体回路のバスシステム
JP5335892B2 (ja) パケット交換オンチップ相互接続ネットワークの高速仮想チャネル
JP5603481B2 (ja) 中継装置
JP5895202B2 (ja) 中継器、中継器の制御方法、およびコンピュータプログラム
JP5036920B1 (ja) 中継装置、中継装置の制御方法、およびプログラム
US7042891B2 (en) Dynamic selection of lowest latency path in a network switch
US9007920B2 (en) QoS in heterogeneous NoC by assigning weights to NoC node channels and using weighted arbitration at NoC nodes
WO2012029215A1 (ja) 中継装置
US7643477B2 (en) Buffering data packets according to multiple flow control schemes
US20020118692A1 (en) Ensuring proper packet ordering in a cut-through and early-forwarding network switch
US20140092740A1 (en) Adaptive packet deflection to achieve fair, low-cost, and/or energy-efficient quality of service in network on chip devices
WO2012132263A1 (ja) 中継器、中継器の制御方法、およびプログラム
JP5400109B2 (ja) 中継器
US20140068132A1 (en) Automatic construction of deadlock free interconnects
US10749811B2 (en) Interface virtualization and fast path for Network on Chip
US10387355B2 (en) NoC interconnect with linearly-tunable QoS guarantees for real-time isolation
JPWO2013073172A1 (ja) 中継装置、中継装置の制御方法、およびコンピュータプログラム
JP4833518B2 (ja) 高速交換環境でマルチキャストするシステム、方法及び論理
US20110317691A1 (en) Interprocessor communication system and communication method, network switch, and parallel calculation system
US10715437B2 (en) Deadline driven packet prioritization for IP networks
US20190258573A1 (en) Bandwidth weighting mechanism based network-on-chip (noc) configuration
US10289598B2 (en) Non-blocking network
KR101508573B1 (ko) 네트워크 온 칩 및 그 대역폭 할당 방법
WO2022147762A1 (zh) 一种数据包排序方法及装置
JP5987915B2 (ja) 通信用中継装置、通信用中継システム、通信用中継方法、及び通信用中継プログラム

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150113

R151 Written notification of patent or utility model registration

Ref document number: 5834178

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees