JP6331787B2 - データ送受信システム、データ送信装置およびデータ送受信システムの制御方法 - Google Patents

データ送受信システム、データ送信装置およびデータ送受信システムの制御方法 Download PDF

Info

Publication number
JP6331787B2
JP6331787B2 JP2014140683A JP2014140683A JP6331787B2 JP 6331787 B2 JP6331787 B2 JP 6331787B2 JP 2014140683 A JP2014140683 A JP 2014140683A JP 2014140683 A JP2014140683 A JP 2014140683A JP 6331787 B2 JP6331787 B2 JP 6331787B2
Authority
JP
Japan
Prior art keywords
data
arbitration
unit
information
units
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.)
Active
Application number
JP2014140683A
Other languages
English (en)
Other versions
JP2016018382A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014140683A priority Critical patent/JP6331787B2/ja
Publication of JP2016018382A publication Critical patent/JP2016018382A/ja
Application granted granted Critical
Publication of JP6331787B2 publication Critical patent/JP6331787B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、データ送受信システム、データ送信装置およびデータ送受信システムの制御方法に関する。
データを送信する送信装置とデータを受信する受信装置を有するシステムにおいて、受信装置の受信バッファに格納されたデータ量に応じて、送信装置がデータの送信を許可または停止する手法が提案されている(例えば、特許文献1、2、3参照)。この種のシステムでは、データの送信を許可する受信バッファのデータ量は、データの送信を停止する受信バッファのデータ量より少なく設定される(例えば、特許文献4参照)。
さらに、パケットを送受信する複数のプロセッサが、複数のスイッチを介して相互に接続される場合、競合するパケットは、スイッチ内に設けられる調停回路により順次に選択される(例えば、特許文献5参照)。
国際公開第2008/50394号 特開2004−235728号公報 特開2007−67634号公報 特開2002−225354号公報 特開2012−43363号公報
送信装置内の複数のデータ生成部が生成するデータが、複数の調停部により順次に選択されるシステムでは、各調停部は、受信装置の受信バッファに格納されたデータ量が所定の閾値以上の場合、各データ生成部からのデータの調停を抑止する。そして、各調停部は、受信バッファに格納されたデータ量が所定の閾値未満になったとき、各データ生成部からのデータの調停を再開する。調停の抑止と再開が繰り返される場合、データ生成部のいずれかが生成するデータが、調停部により選択されない状態が続くおそれがある。
本件開示のデータ送受信システム、データ送信装置およびデータ送受信システムの制御方法は、複数のデータ生成部が生成するデータのいずれかが、調停部により選択されない状態が続くことを回避することを目的とする。
一つの観点によれば、データを送信するデータ送信装置と、データ送信装置から送信されるデータを受信するデータ受信装置とを有するデータ送受信システムにおいて、データ受信装置は、データ送信装置から受信したデータを保持するバッファ部と、バッファ部が保持するデータの保持量の減少を示す減少情報をデータ送信装置に送信するバッファ管理部を有し、データ送信装置は、データをそれぞれ生成する複数のデータ生成部と、前記複数のデータ生成部の各々に対応して設けられ、対応するデータ生成部からのデータまたは他のデータ生成部からのデータとのいずれかを選択し、抑止情報を受信している期間中は前記対応するデータ生成部からのデータの選択を抑止する、直列に接続された複数の調停部と、前記減少情報に基づき、前記バッファ部が、前記複数の調停部のいずれかにより選択される前記複数のデータ生成部のいずれかからの新たなデータを保持する余裕がないことを判定した場合に前記抑止情報を出力し、前記複数の調停部により選択される前記複数のデータ生成部からの複数のデータを保持可能な状態になったことを判定した場合、前記抑止情報の出力を停止する調停管理部を有し、前記データ送信装置は、前記複数の調停部のうち、最終段の調停部が調停により選択したデータを前記データ受信装置に送信する。
別の観点によれば、データを保持するバッファ部を有するデータ受信装置にデータを送信し、バッファ部が保持するデータの保持量の減少を示す減少情報をデータ受信装置から受信するデータ送信装置は、データをそれぞれ生成する複数のデータ生成部と、前記複数のデータ生成部の各々に対応して設けられ、対応するデータ生成部からのデータまたは他のデータ生成部からのデータとのいずれかを選択し、抑止情報を受信している期間中は前記対応するデータ生成部からのデータの選択を抑止する、直列に接続された複数の調停部と、前記減少情報に基づき、前記バッファ部が、前記複数の調停部のいずれかにより選択される前記複数のデータ生成部のいずれかからの新たなデータを保持する余裕がないことを判定した場合に前記抑止情報を出力し、前記複数の調停部により選択される前記複数のデータ生成部からの複数のデータを保持可能な状態になったことを判定した場合、前記抑止情報の出力を停止する調停管理部を有し、前記データ送信装置は、前記複数の調停部のうち、最終段の調停部が調停により選択したデータを前記データ受信装置に送信する。
さらなる別の観点によれば、データを送信するデータ送信装置と、データ送信装置から送信されるデータを保持するバッファ部を含むデータ受信装置とを有するデータ送受信システムの制御方法は、データ受信装置が有するバッファ管理部が、バッファ部が保持するデータの保持量の減少を示す減少情報をデータ送信装置に送信し、データ送信装置が有する複数のデータ生成部が、データをそれぞれ生成し、前記データ送信装置が有する、直列に接続された複数の調停部が、前記複数のデータ生成部の各々に対応して設けられ、対応するデータ生成部からのデータまたは他のデータ生成部からのデータとのいずれかを選択し、抑止情報を受信している期間中は前記対応するデータ生成部からのデータの選択を抑止し、前記データ送信装置が有する調停管理部が、前記減少情報に基づき、前記バッファ部が、前記複数の調停部のいずれかにより選択される前記複数のデータ生成部のいずれかからの新たなデータを保持する余裕がないことを判定した場合に前記抑止情報を出力し、前記複数の調停部により選択される前記複数のデータ生成部からの複数のデータを保持可能な状態になったことを判定した場合、前記抑止情報の出力を停止し、前記データ送信装置が、前記複数の調停部のうち、最終段の調停部が調停により選択したデータを前記データ受信装置に送信する。
本件開示のデータ送受信システム、データ送信装置およびデータ送受信システムの制御方法は、複数のデータ生成部が生成するデータのいずれかが、調停部により選択されない状態が続くことを回避することができる。
データ送受信システム、データ送信装置およびデータ送受信システムの制御方法の一実施形態を示す図である。 データ送受信システム、データ送信装置およびデータ送受信システムの制御方法の別の実施形態を示す図である。 図2に示す送信制御部と受信制御部との動作の例を示す図である。 図2に示す送信制御部と受信制御部との動作の別の例を示す図である。 図2に示すクレジット制御部の動作の例を示す図である。 図2に示す送信制御部がパケットを送信する例を示す図である。 図6に示す動作の続きの例を示す図である。 図7に示す動作の続きの例を示す図である。 他のデータ送受信システムにおけるクレジット制御部の動作の例を示す図である。 図9に示すクレジット制御部を有する送信制御部がパケットを送信する例を示す図である。 図10に示す動作の続きの例を示す図である。
以下、図面を用いて実施形態を説明する。
図1は、データ送受信システム、データ送信装置およびデータ送受信システムの制御方法の一実施形態を示す。図1に示すデータ送受信システムSYS0は、データDTを送信するデータ送信装置TRSと、データ送信装置TRSから送信されるデータDTを受信するデータ受信装置RSVとを有する。
データ受信装置RSVは、データ送信装置TRSから受信したデータDTを保持するバッファ部BUFを有する。バッファ部BUFは、データ生成部DGEN1、DGEN2がそれぞれ生成するデータを保持する。また、データ受信装置RSVは、バッファ部BUFが保持するデータDTの保持量の減少を示す減少情報DECをデータ送信装置TRSに送信するバッファ管理部RCNTを有する。
データ送信装置TRSは、データ生成部DGEN1、DGEN2、調停部ARBおよび調停管理部ARBCNTを有する。各データ生成部DGEN1、DGEN2は、データDT1、DT2をそれぞれ生成し、生成したデータDT1、DT2を調停部ARBに出力する。
調停部ARBは、抑止情報STOPを受信していない期間中、データ生成部DGEN1、DGEN2からのデータDT1、DT2またはデータ生成部DGEN0からのデータDT0のいずれかを選択し、選択したデータDTをデータ受信装置RSVに出力する。調停部ARBは、抑止情報STOPを受信している期間、データ生成部DGEN1、DGEN2からのデータDT1、DT2の選択を抑止し、データ生成部DGEN0からのデータDT0を選択し、選択したデータDTをデータ受信装置RSVに出力する。なお、図1では、データ生成部DGEN0は、データ送信装置TRSの外部に設けられるが、データ送信装置TRSの内部に設けられてもよい。
調停管理部ARBCNTは、減少情報DECに基づき、バッファ部BUFが新たなデータDTを保持する余裕がない状態から、調停部ARBにより選択されるデータ生成部DGEN1、DGEN2からの複数のデータを保持可能な状態になったことを判定する。そして、調停管理部ARBCNTは、データ生成部DGEN1、DGEN2からの複数のデータDT1、DT2を保持可能な状態になった場合、抑止情報STOPの出力を停止する。抑止情報STOPの出力の停止により、調停部ARBは、データ生成部DGEN1、DGEN2からのデータDT1、DT2とデータ生成部DGEN0からのデータDT0とを調停する動作を再開する。
バッファ部BUFが複数のデータDT1、DT2を保持可能な状態になったことに基づいて、抑止情報STOPの出力を解除することで、データDT1、DT2のいずれかが調停部ARBにより選択されない状態が続くことを抑止することができる。これに対して、バッファ部BUFが1つのデータDT1(またはDT2)を保持可能な状態になったことに基づいて、抑止情報STOPの出力を解除する場合、以下の問題が発生する。すなわち、調停部ARBがデータ生成部DGEN1からのデータDT1を順次に選択し、抑止情報STOPの出力と出力の停止とが繰り返される場合、データDT2が選択されない状態が続くおそれがある。これにより、データ生成部DGEN2が生成するデータがデータ受信装置RSVに送信されない、いわゆるライブロック状態が発生する。
図2は、データ送受信システム、データ送信装置およびデータ送受信システムの制御方法の別の実施形態を示す。図2に示すデータ送受信システムSYSは、複数のCPU(CPU0、CPU1;Central Processing Unit)を有する。CPU0、CPU1は、互いに同一または同様の構成を有し、クレジット制御部CRCNTは、減少情報DEC3に基づき、パケットPKTを送信する機能と、パケットPKTを受信する機能を有する。なお、CPU0、CPU1は、互いに異なる構成を有してもよい。パケットPKTは、CPU0、CPU1間で送受信されるデータの一例である。各CPUが他の複数のCPUとの間でパケットPKTを送受信する場合、各CPUは、CPU間をつなぐネットワークであるインタコネクトを介して互いに接続されてもよい。CPU0は、データを送信するデータ送信装置の一例であり、CPU1は、データ送信装置から送信されるデータを受信するデータ受信装置の一例である。
図2では、説明を分かりやすくするために、パケットPKTを送信する主要な要素がCPU0に記載され、パケットPKTを受信する主要な要素がCPU1に記載される。パケットPKTの伝送は、CPU1からCPU0へも可能であり、CPU1は、図2に示すCPU0の要素を有し、CPU0は、図2に示すCPU1の要素を有する。
図2では、CPU0とCPU1とが、パケットPKTの伝送線とリリース情報RLSの伝送線とで直接接続されているが、CPU0、CPU1が共通の基板に搭載される場合、CPU0とCPU1とは、基板上の配線を介して互いに接続される。また、CPU0、CPU1が、互いに異なる基板に搭載される場合、CPU0とCPU1とは、基板上の配線および基板間を接続するケーブル等を介して互いに接続される。
CPU0は、複数の仮想チャネルVC(VC0、VC1、VC2、VC3)と、各仮想チャネルVCに対応する送信制御部TCNT(TCNT0、TCNT1、TCNT2、TCNT3)を有する。複数の仮想チャネルVCは、要求パケットおよび応答パケットなど、パケットPKTの種別に対応して設けられてもよく、CPU0が有する機能ブロックに対応して設けられてもよい。仮想チャネルVCの数は、2以上であればよく、4つに限定されない。
仮想チャネルVC0−VC3は、互いに同一または同様の構成を有するため、図2では、仮想チャネルVC3の構成が示され、仮想チャネルVC0−VC2の構成は省略される。同様に、送信制御部TCNT0−TCNT3は、互いに同一または同様の構成を有するため、図2では、送信制御部TCNT3の構成が示され、送信制御部TCNT0−TCNT2の構成は省略される。以下で説明する仮想チャネルVC3と送信制御部TCNT3とによる動作は、仮想チャネルVC0と送信制御部TCNT0、仮想チャネルVC1と送信制御部TCNT1、仮想チャネルVC2と送信制御部TCNT2とによっても実現される。そして、仮想チャネルVC0と送信制御部TCNT0、仮想チャネルVC1と送信制御部TCNT1、仮想チャネルVC2と送信制御部TCNT2とは、以下で説明する仮想チャネルVC3と送信制御部TCNT3による効果と、同様の効果を得ることができる。
CPU1は、CPU0からのパケットPKTを受信し、受信したパケットPKTを処理する受信制御部RCNTを有する。受信制御部RCNTは、仮想チャネルVC0、VC1、VC2、VC3のそれぞれに対応するバッファ部BUF0、BUF1、BUF2、BUF3を含む受信バッファBUFを有する。なお、受信バッファBUFは、受信制御部RCNTの外部に配置されてもよい。
受信制御部RCNTは、CPU0から受信したパケットPKTを、仮想チャネルVC毎にバッファ部BUF0−BUF3に格納する。図2に示す例では、バッファ部BUF0−BUF3の記憶容量は、矩形の大きさで示されており、互いに異なる。しかし、バッファ部BUF0−BUF3の記憶容量は、互いに同じでもよい。各バッファBUF0−BUF3が保持するパケットPKTの容量は、クレジットとも称され、CPU0は、各バッファBUF0−BUF3が保持するパケットPKTのクレジット量が、上限値を超えないように、パケットPKTをCPU1に送信する。
仮想チャネルVC0から出力されたパケットPKTは、バッファ部BUF0に保持され、仮想チャネルVC1から出力されたパケットPKTは、バッファ部BUF1に保持される。仮想チャネルVC2から出力されたパケットPKTは、バッファ部BUF2に保持され、仮想チャネルVC3から出力されたパケットPKTは、バッファ部BUF3に保持される。各バッファ部BUF0−BUF3は、FIFO(First-In First-Out)バッファでもよく、他のバッファでもよい。パケットPKTを保持している容量であるバッファBUFの保持量は、CPU0からのパケットPKTの受信により増加する。また、各バッファ部BUF0−BUF3の保持量は、各バッファ部BUF0−BUF3の出力に接続された回路へのパケットPKTの転送により減少する。
受信制御部RCNTは、各バッファ部BUF0−BUF3に格納したパケットPKTを後段の回路に転送した後、転送したパケットPKTを各バッファ部BUF0−BUF3から削除する。なお、バッファ部BUF0−BUF3からのパケットPKTの削除は、バッファ部BUFに接続された回路により実行されてもよい。受信制御部RCNTは、削除したパケットPKTのサイズ(削除したクレジット量)を示すリリース情報RLSをCPU0に送信する。リリース情報RLSは、バッファ部BUF0−BUF3毎に削除したパケットPKTのサイズを示す減少情報DEC(DEC0、DEC1、DEC2、DEC3)を含む。受信制御部RCNTは、バッファ部BUF0−BUF3から削除されるパケットPKTのサイズを示す減少情報DECをCPU0に送信するバッファ管理部の一例である。
減少情報DEC0は、仮想チャネルVC0に対応するバッファ部BUF0に保持されたパケットPKTの減少量を示し、減少情報DEC1は、仮想チャネルVC1に対応するバッファ部BUF1に保持されたパケットPKTの減少量を示す。減少情報DEC2は、仮想チャネルVC2に対応するバッファ部BUF2に保持されたパケットPKTの減少量を示し、減少情報DEC3は、仮想チャネルVC3に対応するバッファ部BUF3に保持されたパケットPKTの減少量を示す。
CPU0において、仮想チャネルVC3は、CPU1に送信するパケットPKTを生成し、生成したパケットPKTを調停部ARBに出力する複数のパケット送信部PT(PT1、PT2、PT3、PT4、PT5、PT6、PT7、PT8、PT9)を有する。パケット送信部PTは、パケットPKTを生成するデータ生成部の一例である。送信制御部TCNT3は、複数の調停部ARB(ARB1、ARB2、ARB3)、各調停部ARBの出力に接続されるフリップフロップFF(FF1、FF2、FF3)およびクレジット制御部CRCNTを有する。仮想チャネルVC3が有するパケット送信部PTの数は、調停部ARB毎に1以上あればよく、9個に限定されない。
送信制御部TCNT0−TCNT3に配置される調停部ARBは、フリップフロップFFを介して直列に接続される。送信制御部TCNT0の調停部ARBは、仮想チャネルVC0から出力されるパケットPKTを調停し、調停により選択したパケットPKTを送信制御部TCNT1に出力する。送信制御部TCNT1の調停部ARBは、仮想チャネルVC1から出力されるパケットPKTと、送信制御部TCNT0から出力されるパケットPKTとを調停し、調停により選択したパケットPKTを送信制御部TCNT2に出力する。
送信制御部TCNT2の調停部ARBは、仮想チャネルVC2から出力されるパケットPKTと、送信制御部TCNT1から出力されるパケットPKTとを調停し、調停により選択したパケットPKTを送信制御部TCNT3に出力する。送信制御部TCNT3の調停部ARB(ARB1−ARB3)は、仮想チャネルVC3から出力されるパケットPKTと、送信制御部TCNT2から出力されるパケットPKTとを調停し、調停により選択したパケットPKTをCPU1に送信する。
このように、仮想チャネルVC0−VC3が生成したパケットPKTは、各送信制御部TCNT0−TCNT3の調停部ARBにより順次に調停され、最終段である調停部ARB3が選択したパケットPKTが、伝送路を介してCPU1に送信される。これにより、1つの伝送路を用いて複数の仮想チャネルVC0−VC3が生成するパケットPKTをCPU0に送信することができる。換言すれば、複数の仮想チャネルVC0−VC3をCPU0内に搭載することができる。
送信制御部TCNT3において、各調停部ARB1−ARB3は、クレジット制御部CRCNTからビジー情報BUSYを受けている期間、仮想チャネルVC3からのパケットPKTの選択を抑止する。すなわち、各調停部ARB1−ARB3は、ビジー情報BUSYを受けている期間、仮想チャネルVC3からのパケットPKTを調停に参加させず、送信制御部TCNT0−TCNT2からのパケットPKTを選択する。調停動作の抑止により、バッファ部BUF3の保持量がオーバーフローすることを抑止することができる。また、調停動作の抑止により、図6−図8に示すように、パケット送信部PT1−PT9が生成するパケットPKTのいずれかが、調停部ARB1−ARB3により選択されない状態が続くことを回避することができる。ビジー情報BUSYは、各調停部ARB1−ARB3による仮想チャネルVC3からのパケットPKTの選択を抑止する抑止情報の一例である。
各調停部ARB1−ARB3は、クレジット制御部CRCNTからビジー情報BUSYを受けていない期間、仮想チャネルVC3からのパケットPKTと、送信制御部TCNT0−TCNT2からのパケットPKTとを調停する調停動作を実行する。クレジット制御部CRCNTは、ビジー情報BUSYを1ビットのビジー信号として各調停部ARB1−ARB3に出力してもよい。この場合、各調停部ARB1−ARB3は、ビジー信号が第1の論理の場合に調停動作を実行し、ビジー信号が第1の論理と反対の第2の論理の場合に仮想チャネルVC3からのパケットPKTの選択を抑止する。
調停部ARB1は、ビジー情報BUSYを受けていない場合、パケット送信部PT1、PT2、PT3からのパケットPKTと、前段の調停部ARB(送信制御部TCNT2の最終段の調停部ARB)で選択されたパケットPKTとを調停する。そして、調停部ARB1は、調停により選択したパケットPKTに含まれるヘッダ部をフリップフロップFF1に出力する。また、調停部ARB1は、調停により選択したパケットPKTがパケット送信部PT1、PT2、PT3からのパケットPKTである場合、パケットPKTのサイズ(クレジット)を示す増加情報INC1をクレジット制御部CRCNTに出力する。調停部ARB1は、ビジー情報BUSYを受けている間、パケット送信部PT1、PT2、PT3からのパケットPKTの調停動作を停止する。
パケットPKTは、ヘッダ部、データ部およびエンド部を含む。調停部ARB1は、フリップフロップFF1が保持したパケットPKTを次段以降の調停部ARB2、ARB3が選択した場合、ヘッダ部に続くデータ部およびエンド部をフリップフロップFF1に順次に出力する。
調停部ARB2は、ビジー情報BUSYを受けていない場合、パケット送信部PT4、PT5、PT6からのパケットPKTと、前段の調停部ARB1で選択されたパケットPKTとを調停する。調停部ARB2は、調停により選択したパケットPKTがパケット送信部PT4、PT5、PT6からのパケットPKTである場合、パケットPKTのサイズ(クレジット)を示す増加情報INC2をクレジット制御部CRCNTに出力する。調停部ARB2は、ビジー情報BUSYを受けている間、パケット送信部PT4、PT5、PT6からのパケットPKTの調停動作を停止する。調停部ARB2のその他の機能は、調停部ARB1と同様である。
調停部ARB3は、ビジー情報BUSYを受けていない場合、パケット送信部PT7、PT8、PT9からのパケットPKTと、前段の調停部ARB2で選択されたパケットPKTとを調停する。調停部ARB3での調停により選択されたパケットPKTは、フリップフロップFF3を介してCPU1に送信される。調停部ARB2は、調停により選択したパケットPKTがパケット送信部PT7、PT8、PT9からのパケットPKTである場合、パケットPKTのサイズ(クレジット)を示す増加情報INC3をクレジット制御部CRCNTに出力する。調停部ARB3は、ビジー情報BUSYを受けている間、パケット送信部PT7、PT8、PT9からのパケットPKTの調停動作を停止する。調停部ARB3のその他の機能は、調停部ARB0と同様である。
クレジット制御部CRCNTは、バッファ部BUF3が保持するパケットPKTの保持量を示すカウンタCOUNTを有する。カウンタCOUNTのカウンタ値は、増加情報INC1−INC3に基づいて、増加情報INC1−INC3が示すパケットPKTのサイズ分増加し、減少情報DEC3に基づいて、減少情報DEC3が示すパケットPKTのサイズ分減少する。図2において、カウンタCOUNT内の網掛けの領域は、カウンタ値を視覚的に表している。図2のカウンタCOUNTは、バッファ部BUF3に保持されたパケットPKTの保持量が、バッファ部BUF3の記憶容量の70%であることを示している。なお、クレジット制御部CRCNTは、カウンタCOUNTの代わりに、バッファ部BUF3が保持しているパケットPKTの保持量が格納されるレジスタを有してよい。
クレジット制御部CRCNTは、バッファ部BUFに新たなデータを保持する余裕がない場合、ビジー情報BUSYを出力する調停管理部の一例である。また、クレジット制御部CRCNTは、調停部ARB1−ARB3により選択されるパケット送信部PT1−PT9からの複数のパケットPKTを保持可能な状態になった場合、ビジー情報BUSYの出力を停止する調停管理部の一例である。カウンタCOUNTおよびレジスタは、バッファ部BUF3が保持するパケットPKTの保持量を示す保持量情報を記憶する保持量記憶部の一例である。カウンタCOUNTのカウンタ値およびレジスタに設定される値は、バッファ部BUF3が保持するデータの保持量を示す保持量情報の一例である。
クレジット制御部CRCNTは、カウンタCOUNTのカウンタ値が上限値(図3に示すCMAX)になった場合、ビジー情報BUSYを出力する。すなわち、クレジット制御部CRCNTは、バッファ部BUF3が新たなパケットPKTを保持する余裕がないことをカウンタ値が示す場合、ビジー情報BUSYを出力する。
一方、クレジット制御部CRCNTは、式(1)を満足する場合、ビジー情報BUSYの出力を停止する。すなわち、クレジット制御部CRCNTは、調停部ARB1−ARB3のそれぞれが選択する3つのパケットPKTをバッファ部BUF3が保持可能なことをカウンタ値が示す場合、ビジー情報BUSYの出力を停止する。
CV≦CMAX−(PMAX×n) …… (1)
式(1)において、符号CVは、カウンタCOUNTのカウンタ値を示し、符号CMAXは、カウンタCOUNTの上限値(バッファ部BUF3が保持可能な最大のクレジット量)を示す。符号PMAXは、パケットPKTの最大長を示し、符号nは、調停部ARB1−ARB3の数(図2では、n=3)を示す。カウンタCOUNTの上限値CMAXは、ビジー情報BUSYの出力を決定する第1の閾値の一例である。なお、パケットPKTの最大長は、図6等で説明するように、パケットPKTの転送サイクルを示す。
式(1)に示すように、クレジット制御部CRCNTは、カウンタCOUNTのカウンタ値CVが、上限値CMAXからパケットPKTの最大長PMAXと調停部ARBの数との積を減じた値以下になった場合、ビジー情報BUSYの出力を停止する。このように、ビジー情報BUSYが出力されるカウンタ値と、ビジー情報BUSYの出力が停止されるカウンタ値とは、互いに異なり、カウンタ値の差は、調停部ARBの数とパケット長に応じて決まる。
図3は、図2に示す送信制御部TCNT3と受信制御部RCNTとの動作の例を示す。カウンタCOUNTの網掛けの領域は、増加情報INC1、INC2、INC3および減少情報DEC3に基づいて増減するカウンタ値を視覚的に示す。バッファ部BUF3の網掛けの領域は、送信制御部TCNT3から受信したパケットPKTが保持されていることを視覚的に示す。図3において、ビジー情報BUSYを示す破線は、クレジット制御部CRCNTがビジー情報BUSYを出力せず、調停部ARB1−ARB3がパケット送信部PT1−PT9からのパケットPKTの調停動作を実行可能な期間を示す。ビジー情報BUSYを示す白抜きの矢印は、クレジット制御部CRCNTがビジー情報BUSYを出力し、調停部ARB1−ARB3がパケット送信部PT1−PT9からのパケットPKTの調停動作を停止する期間を示す。
図3は、CPU0からCPU1に送信されるパケットPKTのサイズ(すなわち、パケット長)が互いに等しい場合の動作を示す。バッファ部BUF3は、サイズが互いに等しいパケットPKTを5つまで保持可能であるとし、カウンタCOUNTは、バッファ部BUF3が保持可能なパケットPKTの総量に対応する値をカウント可能であるとする。なお、パケットPKTのサイズが可変である場合の例は、図4に示される。
まず、バッファ部BUF3にパケットPKTが2つ保持された状態で、調停部ARB1は、パケット送信部PT1−PT3のいずれかから出力されたパケットPKTのヘッダ部を調停により選択する。調停部ARB1は、増加情報INC1をクレジット制御部CRCNTに出力し、選択したヘッダ部をフリップフロップFF1に保持させる(図3(a))。カウンタCOUNTのカウンタ値は、増加情報INC1に基づいて、パケットPKTのサイズ分増加される(図3(b))。
この後、調停部ARB1が選択したパケットPKTは、調停部ARB2、ARB3により順次に調停され、CPU1の受信制御部RCNTに送信される(図3(c))。受信制御部RCNTは、受信したパケットPKTを、仮想チャネルVC3に対応するバッファ部BUF3に保持する(図3(d))。このように、カウンタCOUNTのカウンタ値は、バッファ部BUF3に保持されるパケットPKTの保持量が増加する前に、増加情報INC1(または、INC2、INC3)に基づいて増加する。
次に、調停部ARB2は、パケット送信部PT4−PT6のいずれかから出力されたパケットPKTのヘッダ部を調停により選択し、増加情報INC2をクレジット制御部CRCNTに出力する(図3(e))。調停部ARB2が選択したヘッダ部は、フリップフロップFF2に保持される。カウンタCOUNTのカウンタ値は、増加情報INC2に基づいて、パケットPKTのサイズ分増加される(図3(f))。
調停部ARB2が選択したパケットPKTは、調停部ARB3により調停され、CPU1の受信制御部RCNTに送信される(図3(g))。受信制御部RCNTは、受信したパケットPKTを、仮想チャネルVC3に対応するバッファ部BUF3に保持する(図3(h))。
この後、バッファ部BUF3に保持されたパケットPKTは、受信制御部RCNTによるパケットPKTの受信処理を実行するために他の回路に転送され、転送されたパケットPKTは、バッファ部BUF3から削除される(図3(i))。受信制御部RCNTは、バッファ部BUF3に保持するパケットPKTの保持量が減少したことに基づき、減少したパケットPKTの量を示す減少情報DEC3を含むリリース情報RLSをCPU0に送信する(図3(j))。
クレジット制御部CRCNTは、減少情報DEC3に基づき、バッファ部BUF3から削除されたパケットPKTのサイズ分、カウンタCOUNTのカウンタ値を減少させる(図3(k))。このように、カウンタCOUNTは、減少情報DEC3に基づいて、バッファ部BUF3の保持量の減少に追従してカウンタ値を減少する。
この後、上述と同様に、調停部ARB2、ARB3のそれぞれは、仮想チャネルVC3からのパケットPKTを順次に調停により選択し、増加情報INC2、INC3をクレジット制御部CRCNTに順次に出力する(図3(l)、(m))。カウンタCOUNTのカウンタ値は、増加情報INC2、INC3に基づいて順次に増加する(図3(n)、(o))。増加情報INC3に基づくカウンタCOUNTのカウントアップにより、カウンタ値は上限値CMAXになる。
カウンタCOUNTの上限値CMAXは、仮想チャネルVC3からのパケットPKTを受信制御部RCNTが受信することにより、バッファ部BUF3が満杯になることを示す。換言すれば、カウンタCOUNTの上限値CMAXは、調停部ARB1−ARB3のいずれかが、仮想チャネルVC3からのパケットPKTをさらに選択し、CPU1に送信する場合、バッファ部BUF3がオーバーフローすることを示す。このため、クレジット制御部CRCNTは、ビジー情報BUSYを出力し、調停部ARB1−ARB3による仮想チャネルVC3からのパケットPKTの調停を抑止する(図3(p))。
ビジー情報BUSYの出力期間、調停部ARB1−ARB3による仮想チャネルVC3からのパケットPKTの調停が抑止されるため、パケットPKTは、CPU0からバッファ部BUF3に送信されない。ビジー情報BUSYは、バッファ部BUF3が満杯になる前に出力される。これにより、調停部ARB1−ARB3が調停動作を続けることを、バッファ部BUF3が満杯になる前に予め抑止することができ、バッファ部BUF3がオーバーフローすることを抑止することができる。
一方、CPU1の受信制御部RCNTは、CPU0から順次に受信した仮想チャネルVC3からのパケットPKTをバッファ部BUF3に順次に保持する(図3(q)、(r))。そして、バッファ部BUF3は、満杯状態になる。この後、受信制御部RCNTは、バッファ部BUF3からのパケットPKTの削除に基づき、減少情報DEC3を含むリリース情報RLSをCPU0に順次に送信する(図3(s)、(t)、(u))。
クレジット制御部CRCNTは、減少情報DEC3に基づき、カウンタCOUNTのカウンタ値を順次に減少させる(図3(v)、(w)、(x))。この際、クレジット制御部CRCNTは、式(1)を満足しない間、ビジー情報BUSYの出力状態を維持する。クレジット制御部CRCNTは、バッファ部BUF3の空き容量が増加し、調停部ARB1−ARB3の数に対応する3つのパケットPKTをバッファ部BUF3が保持可能になったときに、ビジー情報BUSYの出力を停止する(図3(y))。
バッファ部BUF3の空き容量が、3つのパケットPKTを保持可能な容量まで増加し、式(1)を満足した場合、調停部ARB1−ARB3は、仮想チャネルVC3からのパケットPKTをそれぞれ調停により選択可能である。これにより、調停部ARB1−ARB3が動作しているにも拘わらず、調停部ARB1−ARB3のいずれかが仮想チャネルVCからのパケットPKTを選択しない、いわゆるライブロック状態になることを抑止することができる。ライブロック状態に陥る動作は、図10および図11で説明される。
図4は、図2に示す送信制御部TCNT3と受信制御部RCNTとの動作の別の例を示す。図3と同一または同様の動作については、同じ符号を付し、詳細な説明は省略する。図4は、送信制御部TCNT3から受信制御部RCNTに送信されるパケットPKTのサイズ(パケット長)が可変である例を示す。カウンタCOUNTおよびバッファ部BUF3において、斜線で示す枠は、最大長のパケットPKTを視覚的に示す。
増加情報INC3が出力されるまでの動作は、バッファ部BUF3に保持されるパケットPKTの数およびパケット長が異なることを除き、図3と同様である。カウンタCOUNTのカウンタ値は、増加情報INC3に基づき増加する(図4(a))。クレジット制御部CRCNTは、カウンタCOUNTのカウンタ値が上限値CMAXからパケットPKTの最大長に対応する値を引いた値V1を超えた場合、ビジー情報BUSYを出力する(図4(b))。これは、カウンタ値が値V1を超えた状態で、調停部ARB1−ARB3が仮想チャネルVC3から最大サイズのパケットPKTを新たに選択した場合、バッファ部BUF3がオーバーフローするためである。
この後、クレジット制御部CRCNTは、バッファ部BUF3の空き容量が増加し、カウンタCOUNTのカウンタ値が式(1)を満足した場合、ビジー情報BUSYの出力を停止する(図4(c))。すなわち、バッファ部BUF3が、調停部ARB1−ARB3の個数分の最大長のパケットPKTを保持可能になったときに、ビジー情報BUSYの出力は停止される。
図5は、図2に示すクレジット制御部CRCNTの動作の例を示す。図5に示す動作は、ハードウェアにより実行されてもよく、ソフトウェアにより実行されてもよい。
まず、ステップS10において、クレジット制御部CRCNTは、増加情報INC(INC1−INC3のいずれか)を受信したかを判定する。増加情報INC(INC1−INC3のいずれか)を受信した場合、動作はステップS12に移行され、増加情報INC(INC1−INC3のいずれか)を受信しない場合、動作はステップS20に移行される。すなわち、調停部ARB1−ARB3のいずれかが、調停動作により、仮想チャネルVC3から出力されたパケットPKTを選択した場合、動作はステップS12に移行される。調停部ARB1−ARB3のいずれかが、調停動作により、仮想チャネルVC0以外から出力されたパケットPKTを選択した場合、または調停動作を実行しない場合、動作はステップS20に移行される。
ステップS12において、クレジット制御部CRCNTは、増加情報INCに基づいて、カウンタCOUNTのカウンタ値CVを増加させる。カウンタ値CVの増加量は、調停部ARB1−ARB3のいずれかが調停動作により選択したパケットPKTのパケット長に対応する。
次に、ステップS14において、クレジット制御部CRCNTは、カウンタ値CVが上限値CMAXになった場合、動作をステップS16に移行し、カウンタCOUNTのカウンタ値CVが上限値CMAX未満の場合、動作をステップS10に戻す。なお、図4で説明したように、パケットPKTのサイズが可変である場合、ステップS14は、”CV=CMAX”の代わりに、”CV>V1”を判定とする。
ステップS16において、クレジット制御部CRCNTは、バッファ部BUF3がオーバーフローすることを抑止するため、ビジー情報BUSYを調停部ARB1−ARB3に出力する。ステップS16の後、動作は、ステップS10に戻る。
一方、ステップS20において、クレジット制御部CRCNTは、減少情報DEC3を受信した場合、動作をステップS22に移行し、減少情報DEC3を受信しない場合、動作をステップS10に戻す。ステップS22において、クレジット制御部CRCNTは、カウンタCOUNTのカウンタ値CVを減少する。カウンタ値CVの減少量は、CPU1の受信制御部RCNTの受信処理により、バッファ部BUF3から削除されたパケットPKTのパケット長に対応する。
次に、ステップS24において、クレジット制御部CRCNTは、カウンタCOUNTのカウンタ値CVが、式(1)を満足するかを判定する。カウンタ値CVが、式(1)を満足する場合、調停部ARB1−ARB3は、ライブロックすることなく仮想チャネルVC3からのパケットPKTを選択できる。このため、クレジット制御部CRCNTは、ステップS26において、ビジー情報BUSYの出力を停止し、動作をステップS10に戻す。ビジー情報BUSYの出力の停止により、各調停部ARB1−ARB3は、仮想チャネルVC0から出力されるパケットPKTの調停を再開する。
一方、カウンタ値CVが式(1)を満足しない場合、調停部ARB1−ARB3のいずれかがライブロックする可能性があるため、クレジット制御部CRCNTは、ビジー情報BUSYの出力を解除することなく、動作をステップS10に戻す。
図6は、図2に示す送信制御部TCNT3がパケットPKTを送信する例を示す。図6に示す例では、各パケットPKTは、ヘッダ部、データ部、エンド部を含み、転送および送信に3サイクル掛かるとする。すなわち、パケットPKTのパケット長は、図3に示すように固定である。なお、図4に示すように、パケットPKTのパケット長が可変である場合、送信するデータ量に応じてデータ部の数(サイクル数)が増減される。ヘッダ部は、先頭に”H”を付けた数字で示され、データ部は、先頭に”D”を付けた数字で示され、エンド部は、先頭に”E”を付けた数字で示される。なお、各パケットPKTのパケット長は、”3”に限定されない。
各パケットPKTのヘッダ部H、データ部Dおよびエンド部Eに続く数字は、パケットPKTを識別する番号を示す。すなわち、後に続く数字が互いに同じヘッダ部H、データ部Dおよびエンド部Eは、1つのパケットPKTを示す。ヘッダH0、データ部D0およびエンド部E0は、パケットPKT0とも称され、ヘッダH10、データ部D10およびエンド部E10は、パケットPKT10とも称される。
送信制御部TCNT3に示すカウンタCOUNTの上側と下側は、各状態になる直前のカウンタ値と、各状態になった後のカウンタ値とをそれぞれ示す。カウンタCOUNTに示す”BUSY”は、クレジット制御部CRCNTがビジー情報BUSYを出力中であることを示す。
まず、状態(a)では、送信制御部TCNT2の最終段のフリップフロップFF0がパケットPKT0のヘッダ部H0を保持し、フリップフロップFF2がパケット送信部PT6からのパケットPKT6のヘッダ部H6を保持している。パケット送信部PT4、PT5、PT6は、ヘッダ部H4、H5とヘッダ部H6に続くデータ部D6を調停部ARB2に出力している。
カウンタCOUNTのカウント値は、パケット送信部PT6からのパケットPKT6のヘッダ部H6を調停部ARB2が選択したことに基づいて増加し、上限値CMAXになる。これにより、クレジット制御部CRCNTからビジー情報BUSYが出力され、各調停部ARB1−ARB3は、仮想チャネルVC3からのパケットPKTの調停動作を停止する。状態(a)の次のサイクルで、調停部ARB1は、パケットPKT0(H0)を調停により選択し、フリップフロップFF1に保持する。
状態(a)から3サイクル後の状態(b)では、パケットPKT0のヘッダH0、データ部D0およびエンド部E0が、フリップフロップFF3、FF2、FF1にそれぞれ保持される。ビジー情報BUSYが出力されているため、各調停部ARB1、ARB2、ARB3は、仮想チャネルVC3からのパケットPKTの調停動作の停止を継続する。フリップフロップFF0は、パケットPKT10のヘッダ部H10を保持する。状態(b)の次のサイクルで、調停部ARB1は、パケットPKT10(H10)を調停により選択し、フリップフロップFF1に保持する。
状態(b)から3サイクル後の状態(c)では、パケットPKT10のヘッダH10、データ部D10およびエンド部E10が、フリップフロップFF3、FF2、FF1にそれぞれ保持される。クレジット制御部CRCNTは、CPU1からのリリース情報RLS(減少情報DEC3)に基づいて、カウンタCOUNTのカウンタ値を1パケット分減少させる。カウンタCOUNTのカウンタ値は、式(1)を満足しないため、クレジット制御部CRCNTは、ビジー情報BUSYの出力状態を維持する。このため、各調停部ARB1、ARB2、ARB3は、仮想チャネルVC3からのパケットPKTの調停動作の停止を継続する。状態(c)の次のサイクルで、調停部ARB1は、パケットPKT20(H20)を調停により選択し、フリップフロップFF1に保持する。
状態(c)から3サイクル後の状態(d)では、パケットPKT20のヘッダH20、データ部D20およびエンド部E20が、フリップフロップFF3、FF2、FF1にそれぞれ保持される。クレジット制御部CRCNTは、CPU1からのリリース情報RLS(減少情報DEC3)に基づいて、カウンタCOUNTのカウンタ値を1パケット分減少させる。カウンタCOUNTのカウンタ値は、式(1)を満足しないため、クレジット制御部CRCNTは、ビジー情報BUSYの出力状態を維持する。このため、各調停部ARB1、ARB2、ARB3は、仮想チャネルVC3からのパケットPKTの調停動作の停止を継続する。状態(d)の次のサイクルで、調停部ARB1は、パケットPKT40(H40)を調停により選択し、フリップフロップFF1に保持する。
図7は、図6に示す動作の続きの例を示す。状態(d)から4サイクル後の状態(e)では、パケットPKT30のデータ部D30およびエンド部E30が、フリップフロップFF3、FF2にそれぞれ保持される。また、状態(d)の後、状態(e)になる前に、CPU1からリリース情報RLS(減少情報DEC3)が出力される。クレジット制御部CRCNTは、減少情報DEC3に基づいて、カウンタCOUNTのカウンタ値を1パケット分減少させる。カウンタCOUNTのカウンタ値は、式(1)を満足するため、クレジット制御部CRCNTは、ビジー情報BUSYの出力を停止する。
状態(e)の1サイクル前、フリップフロップFF3、FF2、FF1は、パケットPKT30のヘッダ部H30、データ部D30およびエンド部E30をそれぞれ保持している。各調停部ARB1−ARB3は、誤動作を抑止するために、パケットPKT30の転送中に調停動作を停止する。このため、状態(e)において、パケットPKT30を転送中の調停部ARB2、ARB3は、パケット送信部PT4−PT9からのパケットPKTを調停しない。
一方、パケットPKT30のエンド部E30の転送を完了した調停部ARB1は、パケット送信部PT1−PT3からのパケットPKT1、PKT2、PKT3を調停可能である。そして、調停部ARB1は、パケット送信部PT1が出力するパケットPKT1のヘッダ部H1を調停により選択し、フリップフロップFF1に保持する。調停部ARB1は、パケットPKT1の選択に基づき増加情報INC1を出力し、カウンタCOUNTのカウンタ値は、1パケット分増加する。
状態(e)から1サイクル後の状態(f)では、調停部ARB2は、パケットPKTの転送が途切れたため、パケット送信部PT5からのパケットPKT5(H5)を調停により選択し、フリップフロップFF2に保持する。これにより、カウンタCOUNTのカウンタ値は、1パケット分増加する。調停部ARB2が、パケットPKT5(H5)を選択したため、フリップフロップFF1は、ヘッダ部H1を保持し続ける。
状態(f)から1サイクル後の状態(g)では、調停部ARB3は、パケットPKTの転送が途切れたため、パケット送信部PT9からのパケットPKT9(H9)を調停により選択し、フリップフロップFF3に保持する。これにより、カウンタCOUNTのカウンタ値は、1パケット分増加し、上限値CMAXになり、クレジット制御部CRCNTからビジー情報BUSYが出力される。各調停部ARB1−ARB3は、ビジー情報BUSYの出力に基づき、仮想チャネルVC3からのパケットPKTの調停動作を停止する。調停部ARB3が、パケットPKT9(H9)を調停により選択したため、フリップフロップFF1、FF2は、ヘッダ部H1、H5をそれぞれ保持し続ける。フリップフロップFF0は、パケットPKT40のヘッダ部H40を保持する。
状態(g)から2サイクル後の状態(h)では、フリップフロップFF3は、パケットPKT9のエンド部E9を保持する。フリップフロップFF1、FF2の状態は、状態(g)と同じである。
図8は、図7に示す動作の続きの例を示す。状態(h)から状態(i)までの3サイクルの間に、パケットPKT5(H5、D5、E5)がフリップフロップFF3に転送され、パケットPKT1(H1)がフリップフロップFF2に転送される。状態(i)では、CPU1のバッファ部BUF3に保持されたパケットPKTが削除されないため、ビジー情報BUSYの出力は維持される。
状態(i)から3サイクル後の状態(j)になる前、調停部ARB1は、パケットPKTの転送が途切れ、ビジー情報BUSYが出力中のため、送信制御部TCNT2からのパケットPKT40(H40)を調停により選択する。そして、状態(j)において、フリップフロップFF2、FF1は、パケットPKT40のヘッダ部H40およびデータ部D40を保持する。
状態(j)から3サイクル後の状態(k)では、クレジット制御部CRCNTは、減少情報DEC3に基づいて、カウンタCOUNTのカウンタ値を1パケット分減少させる。カウンタCOUNTのカウンタ値は、式(1)を満足しないため、クレジット制御部CRCNTは、ビジー情報BUSYの出力状態を維持する。このため、各調停部ARB1、ARB2、ARB3は、仮想チャネルVC3からのパケットPKTの調停動作の停止を継続する。状態(k)の次のサイクルで、調停部ARB1は、パケットPKT50(H50)を調停により選択し、フリップフロップFF1に保持する。
状態(k)から3サイクル後の状態(l)では、クレジット制御部CRCNTは、減少情報DEC3に基づいて、カウンタCOUNTのカウンタ値を1パケット分減少させる。カウンタCOUNTのカウンタ値は、式(1)を満足しないため、クレジット制御部CRCNTは、ビジー情報BUSYの出力状態を維持する。このため、各調停部ARB1、ARB2、ARB3は、仮想チャネルVC3からのパケットPKTの調停動作の停止を継続する。
なお、図6から図8では、パケット長が”3”のパケットPKTを送信する例について説明したが、図4に示したように、パケット長は可変でもよい。パケット長が可変の場合、カウンタCOUNTのカウンタ値は、図4に示すように変化する。
図9は、他のデータ送受信システムにおけるクレジット制御部の動作の例を示す。図4と同一または同様の動作については、同じ符号を付し、詳細な説明は省略する。他のデータ送受信システムは、ビジー情報BUSYの出力制御が異なることを除き、図2に示すデータ送受信システムSYSと同様である。
図9に示す動作は、図4のステップS24の代わりにステップS25を実行する。その他の動作は、図4と同様である。ステップS25では、クレジット制御部CRCNTは、カウンタCOUNTのカウンタ値CVが、上限値CMAXより小さいかを判定する。カウンタ値CVが上限値CMAXより小さい場合、クレジット制御部CRCNTは、ステップS26において、ビジー情報BUSYの出力を停止する。カウンタ値CVが上限値CMAX以上の場合、ビジー情報BUSYの出力を解除することなく、動作をステップS10に戻す。
図10は、図9に示すクレジット制御部を有する送信制御部がパケットPKTを送信する例を示す。図10の表記は、図6の表記と同様である。状態(a)、(b)は、図6に示す状態(a)、(b)と同じである。
状態(b)から1サイクル後の状態(c)では、クレジット制御部CRCNTは、CPU1からのリリース情報RLS(減少情報DEC3)に基づいて、カウンタCOUNTのカウンタ値を1パケット分減少させる。カウンタCOUNTのカウンタ値は、図9に示すステップS25の条件(CV<CMAX)を満足するため、クレジット制御部CRCNTは、ビジー情報BUSYの出力を停止する。
調停部ARB1は、パケットPKTの転送が途切れ、ビジー情報BUSYの出力が停止したため、パケット送信部PT3からのパケットPKT3(H3)を調停により選択し、フリップフロップFF1に保持する。これにより、カウンタCOUNTのカウンタ値は、1パケット分増加し、カウンタ値は上限値CMAXになり、ビジー情報BUSYが再び出力される。
状態(c)から2サイクル後の状態(d)では、パケットPKT3のヘッダH3、データ部D3およびエンド部E3が、フリップフロップFF3、FF2、FF1にそれぞれ保持される。ビジー情報BUSYが出力されているため、各調停部ARB1、ARB2、ARB3は、仮想チャネルVC3からのパケットPKTの調停動作の停止を継続する。
図11は、図10に示す動作の続きの例を示す。図10に示す状態(d)から1サイクル後の状態(e)では、調停部ARB1は、パケットPKT10(H10)を調停により選択し、フリップフロップFF1に保持する。
状態(e)から2サイクル後の状態(f)では、クレジット制御部CRCNTは、減少情報DEC3に基づいて、カウンタCOUNTのカウンタ値を1パケット分減少させる。カウンタCOUNTのカウンタ値は、図9に示すステップS25の条件(CV<CMAX)を満足するため、クレジット制御部CRCNTは、ビジー情報BUSYの出力を停止する。
調停部ARB2は、パケットPKTの転送が途切れ、ビジー情報BUSYの出力が停止しているため、パケット送信部PT4からのパケットPKT4(H4)を調停により選択し、フリップフロップFF2に保持する。これにより、カウンタCOUNTのカウンタ値は、1パケット分増加し、ビジー情報BUSYが再び出力される。調停部ARB1は、送信制御部TCNT2からのパケットPKT20(H20)を調停により選択し、フリップフロップFF1にヘッダ部H20を保持する。
状態(f)から2サイクル後の状態(g)では、フリップフロップFF3、FF2、FF1は、パケットPKT4のエンド部E4およびパケットPKT20のヘッダ部H20、データ部D20をそれぞれ保持する。クレジット制御部CRCNTは、ビジー情報BUSYの出力状態を維持するため、各調停部ARB1、ARB2、ARB3は、仮想チャネルVC3からのパケットPKTの調停動作の停止を継続する。
状態(g)から4サイクル後の状態(h)では、クレジット制御部CRCNTは、減少情報DEC3に基づいて、カウンタCOUNTのカウンタ値を1パケット分減少させる。カウンタCOUNTのカウンタ値は、図9に示すステップS25の条件(CV<CMAX)を満足するため、クレジット制御部CRCNTは、ビジー情報BUSYの出力を停止する。
調停部ARB1は、パケットPKTの転送が途切れ、ビジー情報BUSYの出力が停止しているため、パケット送信部PT2からのパケットPKT2(H2)を調停により選択し、フリップフロップFF1に保持する。これにより、カウンタCOUNTのカウンタ値は、1パケット分増加し、ビジー情報BUSYが再び出力される。
この後、状態(f)、(g)、(h)と同様の状態が繰り返される場合、調停部ARB3は、ビジー情報BUSYの出力の停止中に、パケットPKTの転送が途切れないため、パケット送信部PT7−PT9からのパケットPKTを調停に参加させられない。この結果、正常に動作している送信制御部TCNT3において、調停部ARB3がパケット送信部PT7−PT9からのパケットPKTを選択しない状態が続くライブロック状態に陥る。
以上、図2から図11に示した実施形態では、クレジット制御部CRCNTは、調停部ARB1−ARB3のそれぞれが選択するパケットPKTをバッファ部BUF3が保持可能なことをカウンタ値に基づいて判定した場合にビジー情報BUSYの出力を停止する。すなわち、カウンタCOUNTのカウンタ値が式(1)を満足しない間、調停部ARB1−ARB3による調停動作は抑止される。これにより、ビジー情報BUSYの出力が停止された場合に、各調停部ARB1−ARB3は、仮想チャネルVC3からのパケットを調停により選択することが可能になる。この結果、調停部ARB1−ARB3のいずれかが、仮想チャネルVC3からのパケットを選択しない状態が続くことを回避することができる。
CPU0が複数の仮想チャネルVCを有し、仮想チャネルVCにそれぞれ対応する調停部ARBが直列に接続される場合にも、調停部ARBのいずれかが、対応する仮想チャネルVCからのパケットを選択しない状態が続くことを回避することができる。各調停部ARB1−ARB3が、パケットPKTの選択に基づいて、増加情報INC1−INC3を出力することで、パケットPKTがバッファ部BUF3に保持される前に、カウンタCOUNTのカウンタ値を増加させることができる。これにより、バッファ部BUF3に保持されるパケットPKTの保持容量が上限に達する前に、ビジー情報BUSYを出力することができる。この結果、調停部ARB1−ARB3が調停動作を続けることを、バッファ部BUF3が満杯になる前に予め抑止することができ、バッファ部BUF3がオーバーフローすることを抑止することができる。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。
ARB、ARB1−ARB3…調停部;ARBCNT…調停管理部;BUF…受信バッファ;BUSY…ビジー情報;BUF0−BUF3…バッファ部;COUNT…カウンタ;CRCNT…クレジット制御部;DEC、DEC0−DEC3…減少情報;DGEN0−DGEN2…データ生成部;FF1−FF3…フリップフロップ;INC1−INC3…増加情報;PKT…パケット;PT1−PT9…パケット送信部;RCNT…データ管理部、受信制御部;RLS…リリース情報;RSV…データ受信装置;STOP…抑止情報;SYS0、SYS…データ送受信システム;TCNT0−TCNT3…送信制御部;TRS…データ送信装置;VC0−VC3…仮想チャネル

Claims (8)

  1. データを送信するデータ送信装置と、前記データ送信装置から送信されるデータを受信するデータ受信装置とを有するデータ送受信システムにおいて、
    前記データ受信装置は、
    前記データ送信装置から受信したデータを保持するバッファ部と、
    前記バッファ部が保持するデータの保持量の減少を示す減少情報を前記データ送信装置に送信するバッファ管理部を有し、
    前記データ送信装置は、
    データをそれぞれ生成する複数のデータ生成部と、
    前記複数のデータ生成部の各々に対応して設けられ、対応するデータ生成部からのデータまたは他のデータ生成部からのデータとのいずれかを選択し、抑止情報を受信している期間中は前記対応するデータ生成部からのデータの選択を抑止する、直列に接続された複数の調停部と、
    前記減少情報に基づき、前記バッファ部が、前記複数の調停部のいずれかにより選択される前記複数のデータ生成部のいずれかからの新たなデータを保持する余裕がないことを判定した場合に前記抑止情報を出力し、前記複数の調停部により選択される前記複数のデータ生成部からの複数のデータを保持可能な状態になったことを判定した場合、前記抑止情報の出力を停止する調停管理部を有し、
    前記データ送信装置は、前記複数の調停部のうち、最終段の調停部が調停により選択したデータを前記データ受信装置に送信することを特徴とするデータ送受信システム。
  2. 前記データ送信装置は、
    前記バッファ部が保持するデータの保持量を示す保持量情報を記憶する保持量記憶部を有し、
    前記調停管理部は、前記保持量記憶部が記憶する保持量情報を前記減少情報に基づいて減少させ、前記複数の調停部の各々が前記複数のデータ生成部のいずれかからのデータを選択したことに基づいて前記保持量記憶部が記憶する保持量情報を増加させ、前記バッファ部が新たなデータを保持する余裕がないことを前記保持量情報に基づいて判定した場合に前記抑止情報を出力し、前記複数の調停部の各々が選択する前記複数のデータ生成部からの複数のデータを前記バッファ部が保持可能なことを前記保持量情報に基づいて判定した場合に前記抑止情報の出力を停止することを特徴とする請求項1記載のデータ送受信システム。
  3. 前記複数の調停部の各々は、前記複数のデータ生成部から受けるデータを選択した場合、選択したデータのサイズを示す増加情報を出力し、
    前記調停管理部は、前記増加情報に基づいて前記保持量記憶部が記憶する保持量情報を増加させることを特徴とする請求項2記載のデータ送受信システム。
  4. 前記調停管理部は、前記バッファ部が保持するデータの保持量が第1の閾値以上の場合に前記抑止情報を出力し、前記保持量が前記第1の閾値からデータのサイズと前記複数の調停部の数との積により表される値を減じた値以下になった場合に前記抑止情報の出力を停止することを特徴とする請求項記載のデータ送受信システム。
  5. 前記データ送信装置は、前記複数のデータ生成部を含む第1チャネルと、前記他のデータ生成部を含む第2チャネルとを含み、
    前記第2チャネルは、前記他のデータ生成部が生成するデータを調停する調停部を有し、
    前記第1チャネルの調停部と前記第2チャネルの調停部とは、直列に接続されることを
    特徴とする請求項1ないし請求項のいずれか1記載のデータ送受信システム。
  6. 前記複数のデータ生成部が生成するデータは、ヘッダ部とデータ部とを含み、複数のサイクルで伝送されるパケットであり、
    前記複数の調停部の各々は、パケットのヘッダ部を調停することでパケットを選択することを特徴とする請求項1ないし請求項のいずれか1項記載のデータ送受信システム。
  7. データを保持するバッファ部を有するデータ受信装置にデータを送信し、前記バッファ部が保持するデータの保持量の減少を示す減少情報を前記データ受信装置から受信するデータ送信装置において、
    データをそれぞれ生成する複数のデータ生成部と、
    前記複数のデータ生成部の各々に対応して設けられ、対応するデータ生成部からのデータまたは他のデータ生成部からのデータとのいずれかを選択し、抑止情報を受信している期間中は前記対応するデータ生成部からのデータの選択を抑止する、直列に接続された複数の調停部と、
    前記減少情報に基づき、前記バッファ部が、前記複数の調停部のいずれかにより選択される前記複数のデータ生成部のいずれかからの新たなデータを保持する余裕がないことを判定した場合に前記抑止情報を出力し、前記複数の調停部により選択される前記複数のデータ生成部からの複数のデータを保持可能な状態になったことを判定した場合、前記抑止情報の出力を停止する調停管理部を有し、
    前記データ送信装置は、前記複数の調停部のうち、最終段の調停部が調停により選択したデータを前記データ受信装置に送信することを特徴とするデータ送信装置。
  8. データを送信するデータ送信装置と、前記データ送信装置から送信されるデータを保持するバッファ部を含むデータ受信装置とを有するデータ送受信システムの制御方法において、
    前記データ受信装置が有するバッファ管理部が、前記バッファ部が保持するデータの保持量の減少を示す減少情報を前記データ送信装置に送信し、
    前記データ送信装置が有する複数のデータ生成部が、データをそれぞれ生成し、
    前記データ送信装置が有する、直列に接続された複数の調停部が、前記複数のデータ生成部の各々に対応して設けられ、対応するデータ生成部からのデータまたは他のデータ生成部からのデータとのいずれかを選択し、抑止情報を受信している期間中は前記対応するデータ生成部からのデータの選択を抑止し、
    前記データ送信装置が有する調停管理部が、前記減少情報に基づき、前記バッファ部が、前記複数の調停部のいずれかにより選択される前記複数のデータ生成部のいずれかからの新たなデータを保持する余裕がないことを判定した場合に前記抑止情報を出力し、前記複数の調停部により選択される前記複数のデータ生成部からの複数のデータを保持可能な状態になったことを判定した場合、前記抑止情報の出力を停止し、
    前記データ送信装置が、前記複数の調停部のうち、最終段の調停部が調停により選択したデータを前記データ受信装置に送信することを特徴とするデータ送受信システムの制御方法。
JP2014140683A 2014-07-08 2014-07-08 データ送受信システム、データ送信装置およびデータ送受信システムの制御方法 Active JP6331787B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014140683A JP6331787B2 (ja) 2014-07-08 2014-07-08 データ送受信システム、データ送信装置およびデータ送受信システムの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014140683A JP6331787B2 (ja) 2014-07-08 2014-07-08 データ送受信システム、データ送信装置およびデータ送受信システムの制御方法

Publications (2)

Publication Number Publication Date
JP2016018382A JP2016018382A (ja) 2016-02-01
JP6331787B2 true JP6331787B2 (ja) 2018-05-30

Family

ID=55233563

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014140683A Active JP6331787B2 (ja) 2014-07-08 2014-07-08 データ送受信システム、データ送信装置およびデータ送受信システムの制御方法

Country Status (1)

Country Link
JP (1) JP6331787B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107885671B (zh) * 2016-09-30 2021-09-14 华为技术有限公司 一种非易失性内存的持久化方法和计算设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07210505A (ja) * 1994-01-26 1995-08-11 Meidensha Corp バス調停方式
JPH11191076A (ja) * 1997-12-26 1999-07-13 Fujitsu Ltd 情報処理装置
CN101535970B (zh) * 2006-10-24 2011-05-04 富士通株式会社 数据包发送接收系统、数据包发送接收方法以及数据包发送接收程序
JP2012186539A (ja) * 2011-03-03 2012-09-27 Renesas Electronics Corp ルータ装置、ルータ装置の制御方法
JP5349515B2 (ja) * 2011-03-14 2013-11-20 株式会社東芝 バッファ管理装置、バッファ管理方法及び記憶装置

Also Published As

Publication number Publication date
JP2016018382A (ja) 2016-02-01

Similar Documents

Publication Publication Date Title
US7360002B2 (en) Method of arbitrating access to a data bus
JP2006319914A (ja) 呼処理制御装置、呼処理制御装置の制御方法
US5371893A (en) Look-ahead priority arbitration system and method
JP2007181085A (ja) 帯域管理装置
US5694121A (en) Latency reduction and routing arbitration for network message routers
KR100905802B1 (ko) 컴퓨터 시스템의 입력/출력 노드에서 태깅 및 중재 매카니즘
US20100329250A1 (en) Simple fairness protocols for daisy chain interconnects
US6681274B2 (en) Virtual channel buffer bypass for an I/O node of a computer system
JP6331787B2 (ja) データ送受信システム、データ送信装置およびデータ送受信システムの制御方法
US6807599B2 (en) Computer system I/O node for connection serially in a chain to a host
JP5304888B2 (ja) 調停方法、調停回路、及び調停回路を備えた装置
US20110069717A1 (en) Data transfer device, information processing apparatus, and control method
Cena et al. Achieving round-robin access in controller area networks
JP6402576B2 (ja) 通信装置、情報処理装置、情報処理システム及び通信装置の制御方法
US9442761B2 (en) Sequence controller
US6820151B2 (en) Starvation avoidance mechanism for an I/O node of a computer system
US6839784B1 (en) Control unit of an I/O node for a computer system including a plurality of scheduler units each including a plurality of buffers each corresponding to a respective virtual channel
KR100358180B1 (ko) 다단접속형 셀 버스 조정장치 및 방법
US11734206B2 (en) Information processing device
EP1417803A2 (en) Distribution of status information from several virtual output queues over a plurality of switch cards of a packet switching device
JP5949312B2 (ja) 並列計算機システム、データ転送装置及び並列計算機システムの制御方法
JP2005173859A (ja) メモリアクセス制御回路
WO2021101717A1 (en) Forward progress mechanisms for a communications network having multiple nodes
JP5478342B2 (ja) 情報処理装置
KR100382144B1 (ko) 입출력버퍼형 스위치의 셀 시지연 보상방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170406

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20170803

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20170803

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170804

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180130

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20180214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20180219

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180316

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180416

R150 Certificate of patent or registration of utility model

Ref document number: 6331787

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150