JP6191833B2 - 通信装置、通信装置を有するルータ、バスシステム、およびバスシステムを有する半導体回路の回路基板 - Google Patents

通信装置、通信装置を有するルータ、バスシステム、およびバスシステムを有する半導体回路の回路基板 Download PDF

Info

Publication number
JP6191833B2
JP6191833B2 JP2014549785A JP2014549785A JP6191833B2 JP 6191833 B2 JP6191833 B2 JP 6191833B2 JP 2014549785 A JP2014549785 A JP 2014549785A JP 2014549785 A JP2014549785 A JP 2014549785A JP 6191833 B2 JP6191833 B2 JP 6191833B2
Authority
JP
Japan
Prior art keywords
packet
bus
error
data
communication device
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
JP2014549785A
Other languages
English (en)
Other versions
JPWO2014083780A1 (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
Publication of JPWO2014083780A1 publication Critical patent/JPWO2014083780A1/ja
Application granted granted Critical
Publication of JP6191833B2 publication Critical patent/JP6191833B2/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0086Unequal error protection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0094Bus

Description

本開示は、バスを備えた半導体システムにおける通信装置、方法、およびプログラムに関する。
図1(a)は、集中型のバス制御の例を示す。集中型のバス制御を行う従来の集積回路では、主に複数のバスマスタとメモリとの間は1つのバスによって接続され、アービターによって各バスマスタからメモリへのアクセスが調停される。しかし、集積回路の高機能化、マルチコア化により、回路の規模が増大し、トラヒックも複雑に変動しながらバスを流れており、集中型のバス制御による集積回路の設計が困難になってきている。
その一方で、近年、並列計算機での接続技術や、ATM(Asynchronous Transfer Mode)網などのネットワーク制御の技術を取り入れた分散型のバスを有する半導体集積回路の開発が進んでいる。図1(b)は、分散型のバス制御の例を示す。分散型のバスを有する半導体集積回路は、複数のルータが複数のバスで接続されて構成されている。近年、図1(b)に示すような分散型のバスを用いることにより、大規模化した集積回路内のトラヒックを、複数のバスに分散して伝送するネットワークオンチップ(Network on Chip;NoC)の取り組みがある。
半導体のバスのトラヒックは、年々増加している。そのため、バス伝送性能を維持するためには、上述のNoCを用いたとしても、トラヒックの増加にあわせてバス動作周波数を高めていくか、バス幅を大きくする必要がある。
さらに、これと関連して、半導体の低電圧化による影響、およびシステムの大規模化に起因する長配線化の影響も生じている。
図2(a)〜(c)は、映像チップの大規模化の一例を示している。図2の(a)は高解像度(HD)映像用のチップ、(b)はいわゆる4K2K映像用のチップ、(c)はいわゆる8K4K映像用のチップの大きさを示している。取り扱うデータ量が大きくなるほどチップが大きくなる傾向にある。
非特許文献1は、半導体の低電圧化、およびシステムの長配線化の影響、そしてそれにより生じるバスでの伝送誤りの発生を指摘している(非特許文献1)。
エラー検出・再送機能を備えた低消費電力オンチップルータの設計、情報処理学会研究報告、2011.1
NoCのバスの伝送性能を維持するためは、必要な箇所、必要なタイミングで誤り訂正を行い、伝送誤りが生じたまま伝送されることを防ぐことが求められている。また、面積や処理オーバヘッドを削減し、既存NoCに対して、誤り耐性機能を簡単に強化することが求められている。
本願の、限定的ではない例示的なある実施形態は、実装面積や処理オーバヘッドを削減して簡単に誤り耐性機能を強化する技術を提供する。
上記課題を解決するために、本発明の一態様は、送信ノードおよび受信ノードを有し、パケット交換方式でデータを伝送するバスを備えた半導体回路のバスシステムに用いられる通信装置であって、バスを介してパケットを受信する受信端子と、バスシステムの動作環境に関する条件と誤り耐性方式とが対応付けられた規則、および経路長に関する情報を記憶する記憶部と、前記バスシステムの動作環境に関する条件、および前記規則を利用して前記誤り耐性方式を決定し、決定した誤り耐性方式にしたがって、受信した前記データに対応する誤り耐性情報を生成する誤り処理部と、前記誤り耐性情報および前記データを含む少なくとも1つのパケットを前記バスに送信する送信端子とを備え、前記バスシステムの動作環境に関する条件は、前記データの送信先である他の通信装置に至るまでの前記バスの経路長が予め定められた値よりも長い伝送経路に対して、誤り耐性を付与する条件である、通信装置を含む。
上述の一般的かつ特定の態様は、システム、方法およびコンピュータプログラムを用いて実装され、またはシステム、方法およびコンピュータプログラムの組み合わせを用いて実現され得る。
本開示の例示的なある実施形態によれば、ネットワークオンチップにおけるネットワーク接続や、システムオンチップ(System On Chip;SoC)間のネットワーク接続などに対して、実装面積や処理オーバヘッドを削減して簡単に誤り耐性機能を強化することが可能となる。
(a)は集中型のバス制御の例を示す図であり、(b)は分散型のバス制御の例を示す図である。 (a)〜(c)は、映像チップの大規模化の一例を示す図である。 (a)〜(c)は、ネットワーク化されたHD、4K2K、8K4Kの各チップの模式図である。 誤り耐性付与技術を用いた例を示す図である。 本開示の実施形態にかかるバスシステム700の構成の模式図である。 図5に示すバスシステム700を、複数のSoCを有するバスシステム(回路基板)700aに適用した例を示す図である。 本実施形態によるローカルバス500aおよび500bを構成するバスシステムの例を示す図である。 パケット600の伝送フォーマットの一例と、パケット600を複数のフリットに分割した例とを示す図である。 ルータ550の構成を示す図である。 ルータ550の動作手順を示すフローチャートである。 高信頼通信装置701の構成を示す図である。 記憶装置803が保持する規則の例を示す図である。 高信頼通信装置の概略的な動作手順を示すフローチャートである。 伝送誤りが発生しなかった場合のシーケンス例を示す図である。 伝送誤りが発生した場合のシーケンス例を示す図である。 高信頼通信装置の詳細な内部動作を示すフローチャートである。 誤り情報をデータと分離して伝送する方法に関する複数の例を説明する図である。 リングバスを用いた場合に誤り耐性を適用する例を示す図である。 高信頼通信装置の機能を組み込んだルータ650の構成を示す図である。 回路基板上のSoC間の通信に誤り耐性を適用する例を示す図である。
上述したように、非特許文献1は一般のバスでの伝送誤りの発生を指摘している。本願発明者らは、実装の観点からさらに問題点を検討した。
たとえば、4K2K映像用チップを作製するために、4つのHD映像用チップを利用する方法が考えられる。同様に、8K4K映像用のチップを作製するために、4つの4K2K映像用チップ、または16個のHD映像用チップを利用する方法が考えられる。さらには、HD、4K2K、8K4Kの各チップを既存の画像処理回路を複数組み合わせて作製する方法が考えられる。いずれの目的も、既存のチップを有効活用し、開発コストを抑えることにある。これらのチップはネットワーク化されたバスで相互に接続される。
バスには、大別して、データを送信する送信ノード、データの伝送を中継するルータ、およびデータを受信する受信ノードが存在する。図3(a)〜(c)は、ネットワーク化されたHD、4K2K、8K4Kの各チップを模式的に示している。図3(a)〜(c)は、ネットワーク化されたバスによって接続された送信/受信ノード、およびルータ等が模式的に示されている。
上述した各構成では、複数のチップがバスで相互に接続されることになる。すると、チップ間の通信時にも伝送誤りが発生する可能性がある。
図4は、誤り耐性付与技術を用いた例を示す。図には、たとえば送信ノードに相当するマスタ、受信ノードに相当するスレーブ、およびそれらをルータで相互接続するモデルが示されている。
誤り耐性を付与する伝送路として、2つのルータを接続する伝送路401、および3以上のルータが多段接続された伝送路402の2通りが考えられる。
非特許文献1は、ヘッダとペイロードを区別して異なる誤り耐性を付与する方法を提案している。しかしながら、この方法によれば、各ルータが誤り耐性処理を行わなければならない。各ルータは、パケット構造を解析し、データに付与された誤り耐性情報を読み出して誤り訂正を行うことが必要である。
図の例では、1つのパケットにヘッダ403、ペイロード404、および誤り訂正符号405が含まれている。このように、NoCシステムの各ネットワーク要素が誤り耐性機能のための処理を行うことを前提とすると、誤り耐性の処理に起因して生じる実装面積の増加や処理オーバヘッド、およびNoCの再利用性や汎用性の面で課題が生じる。
そこで本開示は、実装面積や処理オーバヘッドを削減して簡単に誤り耐性機能を強化する技術を提供する。
本開示の一態様の概要は以下のとおりである。
本開示の第1の態様である通信装置は、送信ノードおよび受信ノードを有し、パケット交換方式でデータを伝送するバスを備えた半導体回路のバスシステムに用いられる。前記通信装置は、バスを介してパケットを受信する受信端子と、バスシステムの動作環境に関する条件と誤り耐性方式とが対応付けられた規則、および経路長に関する情報を記憶する記憶部と、前記バスシステムの動作環境に関する条件、および前記規則を利用して前記誤り耐性方式を決定し、決定した誤り耐性方式にしたがって、受信した前記データに対応する誤り耐性情報を生成する誤り処理部と、前記誤り耐性情報および前記データを含む少なくとも1つのパケットを前記バスに送信する送信端子とを備えている。前記バスシステムの動作環境に関する条件は、前記データの送信先である他の通信装置に至るまでの前記バスの経路長が予め定められた値よりも長い伝送経路に対して、誤り耐性を付与する条件である。
ある実施形態において、前記バスシステムの動作環境に関する条件は、前記バスの周波数、前記バスの動作電圧、前記他の通信装置に至るまでの前記バスの経路長、前記他の通信装置から受信したエラー率、の少なくとも1つに関して誤り耐性を付与する条件である。
ある実施形態において、前記誤り処理部は、前記バスシステムに設けられた他の機器から前記バスシステムの動作環境に関する条件を受け取る。
ある実施形態において、前記誤り処理部は、前記データのパケットおよび前記誤り耐性情報のパケットを生成し、前記送信端子は、前記データのパケットおよび前記誤り耐性情報のパケットを独立して送信する。
ある実施形態において、前記誤り処理部は、前記データのパケットおよび前記誤り耐性情報を含む拡張パケットを生成し、前記送信端子は、前記拡張パケットを送信する。
ある実施形態において、前記誤り耐性情報を第1の誤り耐性情報としたとき、前記誤り処理部は、前記バスシステムの動作環境に関する条件に基づいて前記規則を参照して前記誤り耐性方式を決定し、前記第1の誤り耐性情報の伝送中に生じる誤りを訂正するための第2の誤り耐性情報をさらに生成し、前記送信端子は、前記第1の誤り耐性情報、前記第2の誤り耐性情報、および前記データを含む少なくとも1つのパケットを前記バスに送信する。
前記バスは、前記データのパケットを伝送するためのデータバス、および前記パケットの送信先を示すアドレス情報を伝送するためのアドレスバスから構成されており、前記送信端子は、前記データを含む少なくとも1つのパケットを前記データバスに送信し、前記誤り耐性情報を前記アドレスバスに送信する。
ある実施形態において、前記バスシステムの動作環境に関する条件が、前記他の通信装置から受信したエラー率に関して誤り耐性を付与する条件であるとき、前記誤り処理部は、決定した前記誤り耐性方式とは異なる誤り耐性方式にしたがって、受信した前記データに対応する誤り耐性情報を生成する。
ある実施形態において、前記バスには、許容される遅延量が相対的に大きい第1のデータのパケット、および許容される遅延量が相対的に小さい第2のデータのパケットが伝送され、前記バスには、前記他の通信装置に至る第1の伝送経路、および前記第1の伝送経路よりも経路長が短い第2の伝送経路が存在しており、前記バスシステムの動作環境に関する条件が、前記他の通信装置に至るまでの前記バスの経路長に関して誤り耐性を付与する条件であるとき、前記誤り処理部は、前記第1のデータのパケットに対応する誤り耐性情報を生成し、前記送信端子は、前記誤り耐性情報および前記データを含む少なくとも1つのパケットを前記第1の伝送経路に送信する。
本開示の第2の態様である通信装置は、送信ノードおよび受信ノードを有し、パケット交換方式でデータを伝送する半導体回路のバスシステムに用いられる。前記通信装置は、データおよび誤り耐性情報を含む少なくとも1つのパケットを受信する受信端子と、前記誤り耐性情報を利用して前記データのパケットに誤り訂正処理を行う誤り処理部と、前記誤り訂正処理が行われたデータのパケットを受信ノードに送信する送信端子とを備えている。
本開示の一態様であるルータは、前記バスシステムに用いられて前記パケットを中継するルータであって、上述の第1の通信装置を有するル―タである。
本開示の一態様である半導体回路のバスシステムは、データを含むパケットを送信する送信ノードと、前記パケットを受信する上述の第1の通信装置であって、前記データおよび前記誤り耐性情報を含む少なくとも1つのパケットを前記バスに送信する第1の通信装置と、前記第1の通信装置が送信した前記少なくとも1つのパケットを受信する、上述の第2の通信装置であって、前記誤り訂正処理が行われた前記データのパケットを送信する第2の通信装置と、前記第2の通信装置が送信した前記データのパケットを受信する受信ノードを備えている。
ある実施形態において、前記バスシステムは、前記パケットを中継するルータをさらに備えている。
ある実施形態において、前記送信ノード、および前記第1の通信装置は第1の半導体チップ回路上に設けられており、前記第2の通信装置、および前記受信ノードは、前記第1の半導体チップとは異なる第2の半導体チップ回路上に設けられており、前記第1の半導体チップ回路と前記第2の半導体チップ回路とが、バスによって接続されている。
本開示の一態様である回路基板は、上述のバスシステムを有する半導体回路の回路基板である。
本開示の第1の態様である通信装置は、送信ノードおよび受信ノードを有し、パケット交換方式でデータを伝送するバスを備えた半導体回路のバスシステムに用いられる。前記通信装置は、バスを介してパケットを受信する受信端子と、バスシステムの動作環境に関する条件と誤り耐性方式とが対応付けられた規則を記憶する記憶部と、前記バスシステムの動作環境に関する条件、および前記規則を利用して前記誤り耐性方式を決定し、決定した誤り耐性方式にしたがって、受信した前記データに対応する誤り耐性情報を生成する誤り処理部と、前記誤り耐性情報および前記データを含む少なくとも1つのパケットを前記バスに送信する送信端子とを備えている。
ある実施形態において、前記バスシステムの動作環境に関する条件は、前記バスの周波数、前記バスの動作電圧、前記誤り耐性情報を受信する他の通信装置に至るまでの前記バスの経路長、前記誤り耐性情報を受信する他の通信装置から受信したエラー率の少なくとも1つである。
ある実施形態において、前記誤り処理部は、前記バスシステムに設けられた他の機器から前記バスシステムの動作環境に関する条件を受け取る。
ある実施形態において、前記誤り処理部は、前記データのパケットおよび前記誤り耐性情報のパケットを生成し、前記送信端子は、前記データのパケットおよび前記誤り耐性情報のパケットを独立して送信する。
ある実施形態において、前記誤り処理部は、前記データのパケットおよび前記誤り耐性情報を含む拡張パケットを生成し、前記送信端子は、前記拡張パケットを送信する。
ある実施形態において、前記誤り耐性情報を第1の誤り耐性情報としたとき、前記誤り処理部は、前記バスシステムの動作環境に関する条件に基づいて前記規則を参照して前記誤り耐性方式を決定し、前記第1の誤り耐性情報の伝送中に生じる誤りを訂正するための第2の誤り耐性情報をさらに生成し、前記送信端子は、前記第1の誤り耐性情報、前記第2の誤り耐性情報、および前記データを含む少なくとも1つのパケットを前記バスに送信する。
ある実施形態において、前記バスは、前記データのパケットを伝送するためのデータバス、および前記パケットの送信先を示すアドレス情報を伝送するためのアドレスバスから構成されており、前記送信端子は、前記データを含む少なくとも1つのパケットを前記データバスに送信し、前記誤り耐性情報を前記アドレスバスに送信する。
ある実施形態において、前記バスシステムの動作環境に関する条件が、前記誤り耐性情報を受信する他の通信装置から受信したエラー率であるとき、前記誤り処理部は、決定した前記誤り耐性方式とは異なる誤り耐性方式にしたがって、受信した前記データに対応する誤り耐性情報を生成する。
ある実施形態において、前記バスには、許容される遅延量が相対的に大きい第1のデータのパケット、および許容される遅延量が相対的に小さい第2のデータのパケットが伝送され、前記バスには、前記他の通信装置に至る第1の伝送経路、および前記第1の伝送経路よりも経路長が短い第2の伝送経路が存在しており、前記バスシステムの動作環境に関する条件が、前記他の通信装置に至るまでの前記バスの経路長であるとき、前記誤り処理部は、前記第1のデータのパケットに対応する誤り耐性情報を生成し、前記送信端子は、前記誤り耐性情報および前記データを含む少なくとも1つのパケットを前記第1の伝送経路に送信する。
本開示の第2の態様である通信装置は、送信ノードおよび受信ノードを有し、パケット交換方式でデータを伝送する半導体回路のバスシステムに用いられる。前記通信装置は、データおよび誤り耐性情報を含む少なくとも1つのパケットを受信する受信端子と、前記誤り耐性情報を利用して前記データのパケットに誤り訂正処理を行う誤り処理部と、前記誤り訂正処理が行われたデータのパケットを受信ノードに送信する送信部とを備えている。
本開示の一態様であるルータは、前記バスシステムに用いられて前記パケットを中継するルータであって、上述の第1の通信装置を有するル―タである。
本開示の一態様である半導体回路のバスシステムは、データを含むパケットを送信する送信ノードと、前記パケットを受信する上述の第1の通信装置であって、前記データおよび前記誤り耐性情報を含む少なくとも1つのパケットを前記バスに送信する第1の通信装置と、前記第1の通信装置が送信した前記少なくとも1つのパケットを受信する、上述の第2の通信装置であって、前記誤り訂正処理が行われた前記データのパケットを送信する第2の通信装置と、前記第2の通信装置が送信した前記データのパケットを受信する受信ノードとを備えている。
ある実施形態において、前記バスシステムは、前記パケットを中継するルータをさらに備えている。
ある実施形態において、前記送信ノード、および前記第1の通信装置は第1の半導体チップ回路上に設けられており、前記第2の通信装置、および前記受信ノードは、前記第1の半導体チップとは異なる第2の半導体チップ回路上に設けられており、前記第1の半導体チップ回路と前記第2の半導体チップ回路とが、バスによって接続されている。
本開示の一態様である回路基板は、上述のバスシステムを有する半導体回路の回路基板である。
以下、添付の図面を参照しながら、本開示による高信頼通信装置および高信頼通信方法の実施形態を説明する。ここで「高信頼」とは、本開示に基づく処理により、伝送されるデータに欠損がなく、バス伝送を安心して利用できることを意味する。しかしながら、以下の説明では、高信頼通信装置および高信頼通信方法を、単に通信装置および通信方法と呼ぶ。なお、本実施形態においては、「ネットワークオンチップ」または「NoC」という用語は、システムオンチップ(SoC)内のバスだけではなく、SoC間を接続するバスをも含むとする。
<1.バスシステムの構成>
図5は、本実施形態にかかるバスシステム700の構成を模式的に示す。バスシステム700は、システムバス10と、システムバス10の両端に対で設けられた2つの通信装置701aおよび701bとを備えている。「システムバス」とは、たとえば、複数のローカルバスを相互に接続し、各ローカルバスから共用メモリにアクセスできるようにするための基幹となるバスである。
例示的な本実施形態では、通信装置701aは、通信装置701bに宛てて、データのパケット600と誤り耐性情報のパケット610とをシステムバス10に送信する。
通信装置701aは、データのパケット600および誤り耐性情報のパケット610を、それぞれ独立したパケットとして伝送する。受信側の通信装置701bはパケット610内の誤り耐性情報が、どのデータのパケット600に適用されるかを特定する必要がある。そのため、送信側の通信装置701aの誤り耐性パケット処理部805は、両方のパケットに同じパケットIDを付与する。これにより、受信側の通信装置701bは、それぞれのパケットが対応関係にあることを特定することが可能になる。なお、各パケットにどのような種類のデータが格納されているかは、ヘッダのデータ種別フィールドに記述される。詳細は後述する。
なお、送信元および送信先が一致するため、データパケット600、および誤り耐性情報のパケット610を1つのパケットに含めてもよい。そのようなパケットは、たとえば拡張パケット620として図5に記載されている。データパケット600、および誤り耐性情報のパケット610は、互いに識別可能に拡張パケット620に格納される。
ルータ703aは、システムバス10とローカルバス11との間に設けられ、システムバス10とローカルバス11とを相互に接続する。ローカルバス11は、たとえば映像やペリフェラルといった機能毎に構成される周辺バスである。
通信装置701aは、隣接するルータ703aから、バス動作周波数やバスの電圧の情報を取得して伝送誤り耐性を付与する。ルータ703aは、ユースケースやバスの伝送負荷に応じて、DVFS(Dynamic Voltage and Frequency)ユニット704aおよび704bを利用して動的にバス動作周波数やバスの電圧を変化させ、それによって、バスの省電力化を図る。DVFSユニット704aおよび704bは、バスの動作電圧および/またはバスの動作周波数の情報を、それぞれ通信装置701aおよび701bに送る。通信装置701aおよび701bは、バスの動作電圧および/またはバスの動作周波数に応じて誤り耐性を付与するかどうかを判断することができる。
なお、後述するように、誤り耐性を適用するかどうかを、電圧やバス動作周波数で動的に決める必要は無い。ルータの中継段数や、SoC内部の通信であるか、SoC間の通信であるか等の他の条件に応じて誤り耐性の適用を設計時に固定的に決定してもよい。本開示においては、誤り耐性を付与するかどうかを決定するために利用される条件を「バスシステムの動作環境に関する条件」と呼ぶ。
高信頼通信装置701aおよび701bは、データと誤り耐性の情報を、それぞれ独立したパケットにして伝送するため、受信側の通信装置(図5の高信頼通信装置701b)で誤り耐性のパケット610のみを簡単に廃棄できる。
本実施形態にかかる通信装置701aおよび701bを利用することにより、既存のルータを用いることができる。つまり、既存のリソースを利用することができ、低コスト化を図ることが可能である。また、通信装置を、ルータ等から独立した装置として設けることで、その機能の再利用性や汎用性が高まる。ただし、通信装置の構成をルータに組み込むことも可能である。この例は後に説明する。
図6は、図5に示すバスシステム700を、複数のSoCを有するバスシステム(回路基板)700aに適用した例を示す。回路基板700aは、SoC1、SoC2、およびバス10aによって構築されるバスシステムを有している。2つのSoC1およびSoC2は、バス10aで接続されている。
以下、SoCを具体的に説明する。なお、図5に示す通り、本開示はSoCに限られることなく適用することが可能である。しかしながら、複数のSoCをバスのネットワークによって接続する態様との関係で、SoCの構成を説明する。
<2.SoCの構成>
図6に示されるSoC1およびSoC2は、同等の構成を有している。たとえばSoC1を説明する。SoC1は、通信装置701aと、DVFSユニット704aと、ルータ703aと、ローカルバス500aとを有している。図5に示す構成要素と同じ機能を有する構成要素には同じ参照符号を付している。通信装置701a、DVFSユニット704a、およびルータ703aは、図5に関連して説明したように動作する。データパケット600、および誤り耐性情報のパケット610が転送される点も同じである。
一般に、バス10aを利用して行われるSoC間の通信(回路基板上の通信)はSoC内のバスの通信に比べて、外的な影響を受けやすいため伝送誤りが発生しやすい。そこで、本開示を、バス10aを利用するSoC間の通信に限定して適用してもよい。これにより、従来技術と比較して各SoC内部のルータを全て修正する必要はなくなり、SoCの開発効率の改善を期待できる。
ここで、SoCの構成をより詳しく説明するために、SoC1およびSoC2にそれぞれ含まれるローカルバス500aおよび500bの具体的な構成例を説明する。その説明に続き、通信装置701aおよび701bの構成および動作を詳細に説明する。
本実施形態では、送信ノードとして複数のバスマスタ(BM)と、受信ノードとして複数のメモリとを、複数の2入力2出力のルータをバスで多段に接続したメッシュ網で構成した例を説明する。
図7は、本実施形態によるローカルバス500aおよび500bを構成するバスシステムの例を示す。なお、ローカルバス500aおよび500bは完全に同一である必要はなく、その構成が異なっていてもよい。以下では、ローカルバス500aが図7の構成を有するとして説明する。
ローカルバス500aは、送信ノードとして8個のバスマスタ(BM)101を有し、受信ノードとして8個のメモリ105を有している。これら複数のバスマスタ101および複数のメモリ105は、12個のルータ110を介してバスで多段に接続されている。図7に示されるネットワーク構成は、いわゆるメッシュ網と呼ばれる。
このように、図7に示す伝送システムは、多段接続網(Multistage Interconnection Network:MIN)を構成している。なお、たとえば図示されるルータR7が、図6のルータ703aと接続されることにより、他のSoC(図6の例ではSoC2)との間でデータを伝送することが可能になる。
本実施形態におけるバスマスタ101は、例えばプロセッサやDSPなどの、バスを用いてデータの転送制御を行うことができるデバイスである。メモリ105は、例えばDRAMやSRAM等の半導体メモリである。なお、本開示の実施形態としては、メモリ105を、プロセッサ、DSP、I/Oなど、メモリ以外のノードを接続する形態で構成してもよい。ルータ500は、例えば半導体回路であり、複数のバスマスタ101および複数のメモリ105の間で伝送されるデータを中継する機能を備えている。
バスマスタ101からメモリ105へのデータ伝送は、パケット交換方式により行われる。各バスマスタは、図7(a)に示すように、送信すべきパケットをフリットと呼ばれる最小単位に分割してから隣接のルータに送信する。1つのパケットを分割した複数のフリットのうち、最初に送信されるフリットは、ヘッダフリットと呼ばれる。ヘッダフリットには、パケットの先頭であることを示すフラグ情報や、パケットの送信先のアドレス情報などが記述されている。本実施形態におけるパケットおよびフリットのデータ構造の詳細は後述する。なお、ここでいう「パケット」は、図5や図6で言及したデータパケット600に対応する。
図7に示す多段接続網を構成する各ルータは、2入力2出力のクロスバースイッチを備えている。各ルータは、図7(b)に示すように、クロスバースイッチを切り替えることによって入力と出力の組合せを変更することができる。このため、トラヒックの流れを2つの伝送経路(伝送経路1、2)の間で切り替えることができる。出力先の伝送経路が異なっていれば、ルータは2つのトラヒックを各伝送経路に同時に出力することが可能である。このような多段接続網によれば、各ルータでのスイッチの切り替えによって、全バスマスタと全メモリ間で、必ず1つ以上の伝送経路を構築することができる。
メッシュ網では、複数の送信ノードで伝送路を共有しつつ、必要に応じて、1つの送信ノードが複数の伝送路を使用して、広帯域化を図る通信方式を適用することが可能である。なお、本実施形態においてはメッシュ網を例に挙げて説明するが、これは一例である。集積回路の構成がその他のトポロジー(例えば、バタフライ網)であっても本開示を適用することが可能である。
次に、本実施形態におけるパケットおよびフリットの構造を説明する。なお、本実施形態では、パケットまたはフリットを例として説明しているが、伝送に際してパケット化することは設計事項に過ぎない。パケットまたはフリットを一般化して、単に「データ」と呼んでもよい。
図8は、パケット600の伝送フォーマットの一例と、パケット600を複数のフリットに分割した例とを示している。パケット600は、ヘッダフィールド601、データフィールド602、および制御コードフィールド603を有している。
ヘッダフィールド601には、たとえば、送信先のアドレス、送信元のアドレス、パケットの送信されてからの経過時間を示す情報(経時情報)、パケットの種別を示す情報が記述される。経時情報の記述方法は任意であり、送信されてから経過した時間を判別できる値であればどのような記述方法であっても良い。例えば、送信された時刻が直接記載されてもよいし、送信されてからの経過時刻、また、現在までに通過したルータの数(ホップ数)などが記載されても良い。各ルータはパケット600を中継する度に、ホップ数をインクリメントしてもよいし、予め定められた最大ホップ数を順にデクリメントさせてもよい。
データの種別を示す情報は、そのパケットが、通常のパケット600であるのか、または誤り耐性情報を格納したパケット610であるのかを示す。
例えば、バスマスタが出力するデータが格納されたパケットであれば、バスマスタはパケットに「1」を付与する。誤り耐性の情報であれば、「2」を付与する。このように、パケット単位で、データの種類を区別することで、誤り耐性の処理時に、誤り耐性の情報の追加や廃棄を簡単に行うことが可能となる。詳細については、図14のシーケンス図で説明する。
なお、上述したパケットの種別を示すための値は一例に過ぎない。それぞれの種別を特定できる情報であれば、その具体的な値は任意である。また、バスマスタがパケットを生成するのではなく、バスマスタとルータ110との間にネットワークインタフェースコントローラ(NIC)を設け、NICにパケットを生成させてもよい。
ヘッダフィールド601にはさらに、パケットIDが設けられる。パケットIDは通常、パケットごとに異なる値が付与される。しかしながら、本実施形態においては、あるデータのパケット600と、そのデータに生じた誤りを訂正するための誤り耐性情報を格納したパケット610には、同じパケットIDが付与される。これにより、受信側の通信装置が、データと誤り耐性情報との対応関係を特定することができる。
また、ヘッダフィールド601には、上記以外の情報が記述されていてもよい。ヘッダフィールド601のデータのうち、送信先のアドレスおよび送信元のアドレスに基づいて、パケット600の中継処理と、受信側での受信処理とが行われる。
データフィールド602には、たとえば映像データ、音声データが記述される。制御コードフィールド603には、たとえば、予め定められたパケット600の終了コードが記述される。ルータは、終了コードを検出することによってパケット600の末尾を判別できる。制御コードフィールド603には、終了コード以外の情報が格納されていてもよい。
送信側のバスマスタ101は、パケット600を、フリットと呼ばれる小さなパケット単位に分解して伝送する。1フリットは、バスを使って1サイクルで伝送可能なデータであり、そのサイズはバス幅の大きさによって決定される。
パケット600は、ヘッダフリット604、複数のデータフリット605、およびテイルフリット606に分割される。
パケット600を分割したフリットのうち、最初に送信されるフリットは、ヘッダフリット604と呼ばれる。ヘッダフリット604には、パケットの先頭であることを示すフラグ情報、上述したパケット600のヘッダフィールド601に格納されたフラグ情報や送信先アドレス情報などが含まれる。
ヘッダフリット604に続く各フリット(データフリット605、テイルフリット606)には、送信先を特定するアドレス情報は格納されていない。その理由は、ヘッダフリット604に続く各フリットは、ヘッダフリット604と同じ宛先に送られるためである。ヘッダフリット604によって宛先が決まり、そのトラヒックのフリットを出力するルータの出力バッファが決まると、後に続くフリットは、ヘッダフリット604と同じ出力バッファを利用してヘッダフリット604が示す宛先に伝送される。
テイルフリット606には、そのフリットがパケットを構成する最後のフリットであることを示すフラグ情報(制御コードフィールド603に格納されている終了コード)が付与されている。また、ヘッダフリット604とテイルフリット606以外の複数のフリット605は、主にデータを伝送するフリット(データフリット)であり、パケット600のデータフィールド602に対応する。
受信側のメモリ105は、テイルフリット606に記述されたフラグ情報(終了コード)を検出すると、その終了コードに基づき、伝送された複数のフリットをパケットへ再構築する。
たとえば、1パケットのサイズは128バイト、1フリットのサイズは32ビットまたは64ビットである。ただし、1パケットのサイズおよび1フリットのサイズはアプリケーションによって異なり得るため、上述のサイズは一例に過ぎないことに留意されたい。フリットの長さは、送信先のアドレスと、送信元のアドレスなど、制御データを記述できる長さを基準としてもよい。
後述するように、各ルータは、送られてきたフリットを蓄えるためのバッファを備えている。フリットは、一旦そのバッファに蓄えられた後、スイッチの切り替えによって宛先のメモリへと続くルータ、または宛先のメモリへ送信される。
<2.1.ルータの構成および動作>
図9は、ルータ550の構成を示す。図10は、ルータ550の動作手順を示すフローチャートである。
ルータ550は、複数の入力ポート613および出力ポート615を備えている。前段のルータ(群)551から入力ポート613を経由してフリットを受け取り、出力ポート615を介して、後段のルータ(群)552にフリットを送出する。
ルータ550は、入力バッファ203と、スイッチ204と、ルーティング処理部205と、バッファアロケータ部206と、スイッチアロケータ部207とを有している。以下、図10の各ステップを説明しながら、ルータ550の各構成要素の機能または動作を説明する。
まずルータ550は、入力ポート613において隣接ルータ(群)551からのフリットを受信し、受信したフリットを入力バッファ203に格納する(S301)。ルーティング処理部205はフリットの転送先のノードを決定する(S302)。次に、バッファアロケータ部206は、隣接する後段のルータ(群)552のどの入力バッファにフリットを格納するかを決定する(S303)。スイッチアロケータ部207は、入力バッファ203と転送先のルータの入力バッファ203とを対応付けてスイッチを設定する(S304)。スイッチアロケータ部207がスイッチを接続することにより、出力ポート615を介してフリットが転送先のルータ552のバッファへ送信される(S305)。
なお、図9の隣接ルータ(群)551および552に代えて、それぞれバスマスタおよび/またはメモリが設けられていてもよい。
<2.2.高信頼性伝送装置の構成および動作>
図11は、通信装置701の構成を示す。
通信装置701は、演算回路800と、受信端子801と、記憶装置803と、送信端子806とを備えている。
まず受信端子801は、たとえば隣接するルータなどの外部のネットワーク要素からデータを受け取る。
記憶装置803は、バスシステムの動作環境に関する条件と誤り耐性方式とが対応付けられた規則を記憶する。記憶装置803は、たとえばROM、RAM、ソリッドステートドライブ(SSD)である。また記憶装置803は、着脱可能な記録媒体からデータを読み取ることが可能な構成を有していてもよい。これらを包括して、記憶装置を「記憶部」と呼ぶこともある。
図12は、記憶装置803が保持する規則の例を示す。
この規則は、バス電圧、バス動作周波数、中継段数、接続形態に応じた誤り耐性方式を定義している。本実施形態では、誤り耐性方式として、本実施形態ではCRC、パリティ、および何もしない、の3種類を想定している。なお、CRCはパリティよりも誤り耐性強度が高い。
本願発明者らが図12に示す規則を設定した基準は以下のとおりである。まず、配線の微細化や低電圧化、長配線により伝送誤りは発生しやすくなると考えられるため、誤り耐性を適用する。バス動作周波数については、バス動作周波数が高くなるほど伝送誤りが発生しやすくなるため、誤り耐性を適用する。また、一般に、中継段数が多くなるとバスの配線長が長くなるため伝送誤りが発生しやすい。従って、中継段数の長いバスで伝送されるパケットには誤り耐性を適用する。また、SoC内のバスであるか、SoC間のバスであるかも考慮する。例えば、SoC内のバスは、外乱を受けにくいため伝送誤りが発生しにくい。このため、伝送誤りは発生しないと考えて誤り耐性を適用しない。一方、図6のようなSoC間のバス10aで伝送されるパケットについては、外的な要因を受けやすいため、伝送誤りを適用する。複数の基準によって誤り耐性が加重適用される場合には相対的に高い誤り耐性を付与すればよい。
たとえば図12の例では、バス電圧が低い(3V)場合は、「CRCに加え、パケットを再送する」、という相対的に高い強度の誤り耐性方式を付与している。これは伝送誤りが高くなると考えられるからである。SoC間で伝送される場合にはさらに、外的な要因を受けやすいため、伝送誤りが高くなると考えられる。そのため、本実施形態ではCRCのみならず、パケット不達の場合にはパケットの再送をも行うこととした。
また、バスの電圧が高い(5V)場合で、かつバス動作周波数が低い(150Mhz)場合は、誤り耐性を付与しない。安定動作が見込めるためである。バスの電圧が5Vであっても、バス動作周波数が200Mhzであり、かつ中継段数が多い場合には、誤り耐性を付与するが、相対的に弱い強度の誤り耐性の処理を行う。
以上に示したように、様々な観点から、伝送誤りの強度を決定することができる。なお、より具体的な伝送誤りの強度について、シミュレーションや実機による評価によって決定してもよい。
再び図11を参照する。
演算回路800は、バスシステムの動作環境に関する条件に基づいて、記憶装置803に保持された規則を参照して誤り耐性方式を決定し、決定した誤り耐性方式にしたがって、受信端子801が受信したデータに対応する誤り耐性情報を生成する。
送信端子806は、誤り耐性情報のパケットおよびデータパケットをバスに送信する。
以下、演算回路800の構成および動作をより詳細に説明する。
演算回路800は、誤り耐性決定部802と、誤り耐性情報生成部804と、誤り耐性パケット処理部805とを備えている。なお、以下の説明においては、誤り耐性決定部を「決定部」と呼び、誤り耐性情報生成部を「情報生成部」と呼び、誤り耐性パケット処理部を「パケット処理部」と呼ぶ。
決定部802は、バスシステムの動作環境に関する条件に基づいて誤り耐性方式を決定する。この条件は、上述したように、バスの動作電圧、バスの動作周波数、ルータの中継段数、SoC内部の通信であるかSoC間の通信であるか、などの条件を含んでいる。この条件は、伝送誤りの発生に影響を与える条件であると言うこともできる。
情報生成部804は、決定された誤り耐性方式に基づき、転送するデータに対する誤り耐性情報を生成する。
本願発明者らは、上述の演算回路800は、上述した決定部802、情報生成部804、およびパケット処理部805の各構成要素が実装されたハードウェア(たとえば専用プロセッサ)であることを想定している。しかしながら上述の演算回路800は、汎用的なコンピュータ(プロセッサ)と、上述の各構成要素に対応する処理を実現するコンピュータプログラムコードとの組み合わせによって実現されてもよい。これらを包括する用語として、演算回路を「誤り処理部」と呼んでもよい。
なお、図11は、主として送信側の通信装置701a(図6)に対応した構成を示している。しかしながら、この構成は、受信側の通信装置701b(図6)の構成としても利用することが可能である。その場合、パケット処理部805は、受信端子801によって受信したデータパケット600、および誤り耐性情報のパケット610を、データパケット600と誤り耐性情報のパケット610とに分離し、得られたパケット610内の誤り耐性情報を利用して、データパケット600に誤り耐性処理を行えばよい。そしてパケット処理部805は、誤り耐性処理を行ったデータパケット600を送信端子806およびバスを介して送信すればよい。
図13は、通信装置の概略的な動作手順を示すフローチャートである。
送信側通信装置701a(図6)の情報生成部804は、誤り耐性情報を生成する(S901)。パケット処理部805は、データパケット600、および誤り耐性情報のパケット610をそれぞれ独立したパケットとして送信端子806から送信する(S902)。受信側通信装置701b(図6)は、誤り耐性情報に基づきデータを訂正して、誤り訂正情報を廃棄する(S903)。
図14は、伝送誤りが発生しなかった場合のシーケンス例を示す。ここでは、図6のバスシステムを想定して説明する。
図の例では、SoC1のルータ703aからSoC2のルータ703bへデータを伝送するために、SoC1のルータ703aからSoC2のルータ703bのバッファの予約要求を発行する。予約要求のパケットに対して、SoC1の通信装置701aにおいて誤り耐性情報のパケットを生成する。データパケット600に相当する予約要求パケットと、そのパケットに対応する誤り耐性情報のパケット610とをそれぞれ独立して伝送する。SoC2の通信装置701bは、パケット610の誤り耐性情報に基づいて、予約要求パケットの伝送誤りを検出する。問題がなければ通信装置701bは誤り耐性情報のパケット610を廃棄し、予約要求パケットをSoC2のルータ703bに伝送する。SoC2のルータ703bは予約要求に基づき自己のバッファを予約し、予約に対する応答を、SoC2の通信装置701bへ伝送する。
SoC2の通信装置701bは、データパケット600に相当する応答のパケットと、そのパケットに対応する誤り耐性情報のパケット610とを生成する。応答パケットと対応する誤り耐性情報のパケットをそれぞれ独立して伝送する。SoC1の通信装置701aは、パケット610の誤り耐性情報に基づき、応答パケットの伝送誤りを検出する。問題がなければ、誤り耐性情報のパケット610を廃棄し、応答パケットをSoC1のルータ703aに伝送する。SoC1のルータ703aが、SoC2のルータ703bのバッファを予約後、予約したバッファに対してデータを同様の手順で伝送を行う。
図15は、伝送誤りが発生した場合のシーケンス例を示す。ここでも、バスシステムを想定して説明する。
図の例では、SoC1のルータ703aからSoC2のルータ703bへデータ伝送を行うために、SoC1のルータ703aからSoC2のルータ703bのバッファの予約要求を発行する。予約要求のパケットに対して、SoC1の通信装置701aにおいて誤り耐性情報のパケットを生成する。データパケット600に相当する予約要求パケットと、そのパケットに対応する誤り耐性情報のパケット610とをそれぞれ独立して伝送する。SoC2の通信装置701bは、パケット610の誤り耐性情報に基づいて、予約要求パケットの伝送誤りを検出する。
誤りが検出された場合で、かつ誤り訂正が可能であれば、SoC2の通信装置701bは誤り訂正を行う。訂正ができない場合であれば、送信元であるSoC1の通信装置701aへ予約要求のパケットの再送を要求する。この手順を通して、問題が解消されれば、誤り耐性情報のパケット610は廃棄し、予約要求パケットをSoC2のルータ703bに伝送する。SoC2のルータ703bは予約要求に基づきルータのバッファを予約し、予約に対する応答を、SoC2の通信装置701bへ伝送する。
SoC2の通信装置701bは、データパケット600に相当する応答のパケットと、そのパケットに対応する誤り耐性情報のパケット610とを生成する。応答パケットと対応する誤り耐性情報のパケットをそれぞれ独立して伝送する。SoC1の通信装置701aは、パケット610の誤り耐性情報に基づき、応答パケットの伝送誤りを検出する。問題がなければ、誤り耐性情報のパケット610を廃棄し、応答パケットをSoC1のルータ703aに伝送する。SoC1のルータ703aが、SoC2のルータ703bのバッファを予約後、予約したバッファに対してデータを前記と同様の手順で伝送を行う。
図16は、通信装置の詳細な内部動作を示すフローチャートである。
受信端子801は隣接ルータからデータを受信する(S1001)。決定部802は、隣接ルータまたはDVFSユニット704aから、動作環境に関する条件の情報を取得して、それらの情報を誤り耐性付与規則に対応付けて、誤り耐性方式を決定する(S1002)。情報生成部804は、決定された誤り耐性方式に基づき、受信したデータに対応する誤り耐性情報を生成する(S1003)。パケット処理部805は生成された誤り耐性情報をパケット化して、送信端子806から処理結果(パケット610)として出力する(S1004)。
図17は、誤り情報をデータと分離して伝送する方法に関する複数の例を説明する図である。
図の例では、システムバス12aは、データバスとアドレスバスに分離されている。そして、誤り耐性に関する情報のパケット610はアドレスバスで伝送され、データパケット600はデータバスで伝送される。これにより、誤り耐性情報とデータの分離が容易になる。また、データに対する誤り耐性情報に対して、さらに誤り耐性情報を生成して、2種類の誤り耐性情報を格納したデータ1202を伝送してもよい。これにより、より強固な伝送誤り耐性が可能となる。さらに、受信側の通信装置701bでエラー率を計測して、送信側の通信装置701aで誤り耐性方式を変更する処理1203を行ってもよい。これにより、伝送誤り状態の変化に応じた誤り耐性の強化が可能になる。
<3.応用例>
図18は、リングバスを用いた場合に誤り耐性を適用する例を示す。
図18は、1つのバスマスタから、リングバスを介して、共有メモリにアクセスする例を示している。バスマスタから伝送距離が短い場合は、誤り耐性を行わない伝送経路1301でパケットが伝送される。バスマスタから伝送距離が遠い場合は、誤り耐性をおこなう経路1302でパケットが伝送される。従って、図で示したように、長配線となる経路1302を利用する伝送経路の両端に、上述した通信装置を対で導入する。
一般に、伝送距離が長い伝送経路のトラヒックは、許容遅延時間が長い、優先度の比較的、低いトラヒックが対象となる。このため、許容遅延時間が長いトラヒックに対して誤り耐性を付与することによるオーバヘッドを隠蔽しやすい。
なお、リングバスの経路の経路長は、設計時に決定されている。すなわち、あるルータから他のルータにパケットを送信する際、経路長が長い経路および短い経路は設計時に決定されている。そのため、どこに上述の通信装置を設けるかも設計時に決定しておけばよい。
上述の説明では、通信装置はルータとは別の構成要素であるとして説明した。しかしながら、当該通信装置の機能を組み込んだルータを設けることも可能である。
図19は、通信装置の機能を組み込んだルータ650の構成を示す。図9に示すルータ550との相違点は、通信装置701(図11)の全ての構成要素を、スイッチ204と出力ポート615との間に設けた点である。このルータ650を誤り耐性が必要なバスの両端に対で設け、誤り耐性が特に必要とされないバスの両端には既存のルータ550を対で設ければよい。
図20は、回路基板上のSoC間の通信に誤り耐性を適用する例を示す。図6の例と同様、この例もまた、SoC内のバスで伝送されるパケットには誤り耐性処理が適用されず、SoC間のバスで伝送されるパケットには誤り耐性処理が適用される。
なお、ここで示した各SoCは、プロセッサ単体であったり、プロセッサ、DSP、I/Oなどの複数の構成要素からなる半導体システムであってよい。また、SoCの内部が全てルータで接続された半導体システムである必要はない。例えば、構成要素の一部がクロスバースイッチで構成される半導体システムであってよい。本開示により、従来技術と比較して、各SoCのルータを全て修正する必要はなくなり、SoCの開発効率の改善が期待できる。
本開示にかかる高信頼通信装置は、システムLSI上のデータ伝送に利用できる。
701、701a、701b 通信装置
800 誤り処理部(演算回路、プロセッサ)
801 受信端子
802 誤り耐性決定部
803 記憶部(記憶装置)
804 誤り耐性情報生成部
805 誤り耐性パケット処理部
806 送信端子

Claims (14)

  1. 送信ノードおよび受信ノードを有し、パケット交換方式でデータを伝送するバスを備えた半導体回路のバスシステムに用いられる通信装置であって、
    バスを介してパケットを受信する受信端子と、
    バスシステムの動作環境に関する複数種類の条件と複数種類の誤り耐性方式とがそれぞれ対応付けられた規則、および経路長に関する情報を記憶する記憶部と、
    前記バスシステムの動作環境に関する所与の条件に応じて前記規則を参照し、前記複数種類の誤り耐性方式のうちから1つの誤り耐性方式を決定し、決定した誤り耐性方式にしたがって、受信した前記データに対応する誤り耐性情報を生成する誤り処理部と、
    前記誤り耐性情報および前記データを含む少なくとも1つのパケットを前記バスに送信する送信端子と
    を備え、
    前記バスシステムの動作環境に関する前記複数種類の条件は、前記データの送信先である他の通信装置に至るまでの前記バスの経路長が予め定められた値よりも長い伝送経路に対して、誤り耐性を付与する条件であって、
    前記バスの周波数、
    前記バスの動作電圧、
    前記他の通信装置に至るまでの前記バスの経路長、
    前記他の通信装置から受信したエラー率、
    に関して誤り耐性を付与する条件である、通信装置。
  2. 前記誤り処理部は、前記バスシステムに設けられた他の機器から前記所与の条件を受け取る、請求項1に記載の通信装置。
  3. 前記誤り処理部は、前記データのパケットおよび前記誤り耐性情報のパケットを生成し、
    前記送信端子は、前記データのパケットおよび前記誤り耐性情報のパケットを独立して送信する、請求項1に記載の通信装置。
  4. 前記誤り処理部は、前記データのパケットおよび前記誤り耐性情報を含む拡張パケットを生成し、
    前記送信端子は、前記拡張パケットを送信する、請求項1に記載の通信装置。
  5. 前記誤り耐性情報を第1の誤り耐性情報としたとき、
    前記誤り処理部は、前記バスシステムの動作環境に関する所与の条件に基づいて前記規則を参照して前記誤り耐性方式を決定し、前記第1の誤り耐性情報の伝送中に生じる誤りを訂正するための第2の誤り耐性情報をさらに生成し、
    前記送信端子は、前記第1の誤り耐性情報、前記第2の誤り耐性情報、および前記データを含む少なくとも1つのパケットを前記バスに送信する、請求項1に記載の通信装置。
  6. 前記バスは、前記データのパケットを伝送するためのデータバス、および前記パケットの送信先を示すアドレス情報を伝送するためのアドレスバスから構成されており、
    前記送信端子は、前記データを含む少なくとも1つのパケットを前記データバスに送信し、前記誤り耐性情報を前記アドレスバスに送信する、請求項1に記載の通信装置。
  7. 前記バスシステムの動作環境に関する前記複数種類の条件のうち、前記他の通信装置から受信したエラー率に関して誤り耐性を付与する条件が適用されるとき、前記誤り処理部は、決定した前記誤り耐性方式とは異なる誤り耐性方式にしたがって、受信した前記データに対応する誤り耐性情報を生成する、請求項1に記載の通信装置。
  8. 前記バスには、許容される遅延量が相対的に大きい第1のデータのパケット、および許容される遅延量が相対的に小さい第2のデータのパケットが伝送され、
    前記バスには、前記他の通信装置に至る第1の伝送経路、および前記第1の伝送経路よりも経路長が短い第2の伝送経路が存在しており、
    前記バスシステムの動作環境に関する前記複数種類の条件のうち、前記他の通信装置に至るまでの前記バスの経路長に関して誤り耐性を付与する条件が適用されるとき、
    前記誤り処理部は、前記第1のデータのパケットに対応する誤り耐性情報を生成し、
    前記送信端子は、前記誤り耐性情報および前記データを含む少なくとも1つのパケットを前記第1の伝送経路に送信する、請求項1に記載の通信装置。
  9. 送信ノードおよび受信ノードを有し、パケット交換方式でデータを伝送する半導体回路のバスシステムに用いられる通信装置であって、
    請求項1に記載の通信装置から、前記データおよび前記誤り耐性情報を含む少なくとも1つのパケットを受信する受信端子と、
    前記誤り耐性情報を利用して前記データのパケットに誤り訂正処理を行う誤り処理部と、
    前記誤り訂正処理が行われたデータのパケットを受信ノードに送信する送信端子と
    を備えた、通信装置。
  10. 前記バスシステムに用いられて前記パケットを中継するルータであって、請求項1に記載の通信装置を有するルータ。
  11. データを含むパケットを送信する送信ノードと、
    前記パケットを受信する請求項1に記載の第1の通信装置であって、前記データおよび前記誤り耐性情報を含む少なくとも1つのパケットを前記バスに送信する第1の通信装置と、
    前記第1の通信装置が送信した前記少なくとも1つのパケットを受信する、請求項10に記載の第2の通信装置であって、前記誤り訂正処理が行われた前記データのパケットを送信する第2の通信装置と、
    前記第2の通信装置が送信した前記データのパケットを受信する受信ノードと
    を備えた、半導体回路のバスシステム。
  12. 前記パケットを中継するルータをさらに備えた、請求項12に記載のバスシステム。
  13. 前記送信ノード、および前記第1の通信装置は第1の半導体チップ回路上に設けられており、
    前記第2の通信装置、および前記受信ノードは、前記第1の半導体チップとは異なる第2の半導体チップ回路上に設けられており、
    前記第1の半導体チップ回路と前記第2の半導体チップ回路とが、バスによって接続されている、請求項12に記載のバスシステム。
  14. 請求項12に記載のバスシステムを有する半導体回路の回路基板。
JP2014549785A 2012-11-29 2013-11-06 通信装置、通信装置を有するルータ、バスシステム、およびバスシステムを有する半導体回路の回路基板 Expired - Fee Related JP6191833B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012261013 2012-11-29
JP2012261013 2012-11-29
PCT/JP2013/006547 WO2014083780A1 (ja) 2012-11-29 2013-11-06 通信装置、通信装置を有するルータ、バスシステム、およびバスシステムを有する半導体回路の回路基板

Publications (2)

Publication Number Publication Date
JPWO2014083780A1 JPWO2014083780A1 (ja) 2017-01-05
JP6191833B2 true JP6191833B2 (ja) 2017-09-06

Family

ID=50827443

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014549785A Expired - Fee Related JP6191833B2 (ja) 2012-11-29 2013-11-06 通信装置、通信装置を有するルータ、バスシステム、およびバスシステムを有する半導体回路の回路基板

Country Status (4)

Country Link
US (1) US9798603B2 (ja)
JP (1) JP6191833B2 (ja)
CN (1) CN104919763A (ja)
WO (1) WO2014083780A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016132518A1 (ja) * 2015-02-19 2016-08-25 株式会社PEZY Computing 信号処理装置
WO2016132519A1 (ja) * 2015-02-19 2016-08-25 株式会社PEZY Computing 信号ブリッジ装置
CN110166354B (zh) * 2019-05-24 2021-03-30 合肥工业大学 一种包含片上网络容错路由的数据处理系统
CN112148537B (zh) * 2019-06-28 2023-10-27 深圳市中兴微电子技术有限公司 总线监控装置及方法、存储介质、电子装置
CN110430600B (zh) * 2019-08-09 2022-06-07 合肥工业大学 一种无线片上网络中基于错误避免策略的高效容错方法
US11412075B2 (en) 2020-08-31 2022-08-09 Micron Technology, Inc. Multiple protocol header processing
US11418455B2 (en) 2020-08-31 2022-08-16 Micron Technology, Inc. Transparent packet splitting and recombining
US11360920B2 (en) 2020-08-31 2022-06-14 Micron Technology, Inc. Mapping high-speed, point-to-point interface channels to packet virtual channels
US11296995B2 (en) 2020-08-31 2022-04-05 Micron Technology, Inc. Reduced sized encoding of packet length field
US11539623B2 (en) 2020-08-31 2022-12-27 Micron Technology, Inc. Single field for encoding multiple elements
CN114374433B (zh) * 2022-01-17 2023-09-29 南京大学 面向大气信道qam通信系统的激光器线宽容限确定方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003229815A (ja) * 2002-02-05 2003-08-15 Mitsubishi Electric Corp 波長多重光伝送装置及び送信装置及び受信装置及び波長多重光伝送方法
US20030163762A1 (en) * 2002-02-25 2003-08-28 Lee Chun Liang Fault tolerant transmission device and method for information processing systems
US6948091B2 (en) * 2002-05-02 2005-09-20 Honeywell International Inc. High integrity recovery from multi-bit data failures
JP2004364059A (ja) * 2003-06-05 2004-12-24 Matsushita Electric Ind Co Ltd 通信システム及び通信方法
JP2005025587A (ja) * 2003-07-04 2005-01-27 Matsushita Electric Ind Co Ltd 半導体集積回路および半導体集積回路におけるバースト転送方法
US7409594B2 (en) * 2004-07-06 2008-08-05 Intel Corporation System and method to detect errors and predict potential failures
JP2006129277A (ja) 2004-10-29 2006-05-18 Sharp Corp 通信装置、通信方法、通信プログラム、通信プログラムを記録した記録媒体、および通信システム
JP2007235355A (ja) * 2006-02-28 2007-09-13 Ntt Docomo Inc 移動通信端末及び経路選択方法
KR101622195B1 (ko) 2009-11-05 2016-05-18 삼성전자주식회사 동적 버스 클럭을 제어하기 위한 장치 및 방법
WO2011089899A1 (ja) * 2010-01-25 2011-07-28 パナソニック株式会社 半導体システム、中継器およびチップ回路

Also Published As

Publication number Publication date
US9798603B2 (en) 2017-10-24
CN104919763A (zh) 2015-09-16
JPWO2014083780A1 (ja) 2017-01-05
WO2014083780A1 (ja) 2014-06-05
US20150242261A1 (en) 2015-08-27

Similar Documents

Publication Publication Date Title
JP6191833B2 (ja) 通信装置、通信装置を有するルータ、バスシステム、およびバスシステムを有する半導体回路の回路基板
US20170264533A1 (en) STREAMING BRIDGE DESIGN WITH HOST INTERFACES AND NETWORK ON CHIP (NoC) LAYERS
US9515961B2 (en) Credit flow control scheme in a router with flexible link widths utilizing minimal storage
US8937881B2 (en) Electronic device, system on chip and method for monitoring a data flow
CN103973482A (zh) 具有全局通信事务管理能力的容错片上网络系统及方法
US10104006B2 (en) Bus interface apparatus, router, and bus system including them
US20090323540A1 (en) Electronic device, system on chip and method for monitoring data traffic
WO2018113425A1 (zh) 一种检测时延的方法、装置及系统
JP2008546298A (ja) 電子装置及び通信リソース割り当ての方法
JP5834178B2 (ja) 半導体回路のバスシステム
JP2008510338A (ja) パケット交換制御用の集積回路及び方法
JPWO2014128802A1 (ja) インタフェース装置およびバスシステム
CN104579951A (zh) 片上网络中新颖的故障与拥塞模型下的容错方法
US10104206B2 (en) Network module for sending and/or receiving of data packages from a network arrangement and method
CN116506348A (zh) 通信网络系统、报文转发方法及报文转发装置
US20130346837A1 (en) Communication device
US8325768B2 (en) Interleaving data packets in a packet-based communication system
US20070008975A1 (en) S-flow in a network device
JP4546380B2 (ja) クロスバースイッチ、情報処理装置および転送方法
JP5843397B2 (ja) 通信装置
CN112332956B (zh) 冗余网络中的信息共享方法及装置、计算机存储介质
JP2023554325A (ja) パケット処理方法及び装置
Adamu et al. Review of deterministic routing algorithm for network-on-chip
WO2024021878A1 (zh) 一种发送负载信息的方法、发送报文的方法及装置
Ge et al. A network monitor based dynamic routing scheme for Network on Chip

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170725

R151 Written notification of patent or utility model registration

Ref document number: 6191833

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees