IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ NECプラットフォームズ株式会社の特許一覧

特開2024-132486通信装置、通信方法、およびプログラム
<>
  • 特開-通信装置、通信方法、およびプログラム 図1
  • 特開-通信装置、通信方法、およびプログラム 図2
  • 特開-通信装置、通信方法、およびプログラム 図3
  • 特開-通信装置、通信方法、およびプログラム 図4
  • 特開-通信装置、通信方法、およびプログラム 図5
  • 特開-通信装置、通信方法、およびプログラム 図6
  • 特開-通信装置、通信方法、およびプログラム 図7
  • 特開-通信装置、通信方法、およびプログラム 図8
  • 特開-通信装置、通信方法、およびプログラム 図9
  • 特開-通信装置、通信方法、およびプログラム 図10
  • 特開-通信装置、通信方法、およびプログラム 図11
  • 特開-通信装置、通信方法、およびプログラム 図12
  • 特開-通信装置、通信方法、およびプログラム 図13
  • 特開-通信装置、通信方法、およびプログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024132486
(43)【公開日】2024-10-01
(54)【発明の名称】通信装置、通信方法、およびプログラム
(51)【国際特許分類】
   H04L 13/16 20060101AFI20240920BHJP
   H04L 47/12 20220101ALI20240920BHJP
【FI】
H04L13/16
H04L47/12
【審査請求】有
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023043261
(22)【出願日】2023-03-17
(71)【出願人】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【弁理士】
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】森本 智純
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA01
5K030LC01
(57)【要約】      (修正有)
【課題】シリアル通信を行う通信装置から回線側へのデータの通信速度の低下を抑制することのできる通信装置、方法及びプログラムを提供する。
【解決手段】通信装置1は、高速シリアル通信の送信部10、制御部20、制御用バッファ部30、高速シリアル通信の受信部40及び回線出力部50を備える。送信部10は、制御部20にデータAを送信し、制御用バッファ部30においてオーバーフローが発生する前に、制御部20から受信するフロー制御信号によりデータAの送信を一時的に停止する。制御部20は、送信部10からデータAを受信し、受信したデータAをデータBとして制御用バッファ部30へ送信し、受信部40からタイミング信号を受信し、受信したタイミング信号に基づいて、制御部20から受信部40にデータCを送信するタイミングを制御する。
【選択図】図1
【特許請求の範囲】
【請求項1】
制御用バッファがオーバーフローする前に、フロー制御により回線側へ送信するデータを制御する第1処理手段、
を備える通信装置。
【請求項2】
前記データの送信タイミングを示すタイミング信号に基づいて、前記制御用バッファにおけるデータを、高速シリアル通信を行う受信部に送信する第2処理手段、
を備える請求項1に記載の通信装置。
【請求項3】
送信バッファの内部の状態に基づいて、前記データを送信可能なタイミングと前記データを送信不可能なタイミングとを示す前記タイミング信号を生成する第3処理手段、
を備える請求項2に記載の通信装置。
【請求項4】
回線クロックおよび高速シリアルクロックの少なくとも一方に基づいて、前記タイミング信号を生成する第4処理手段、
を備える請求項2または請求項3に記載の通信装置。
【請求項5】
制御用バッファがオーバーフローする前に、フロー制御により回線側へ送信するデータを制御すること、
を含む通信方法。
【請求項6】
制御用バッファがオーバーフローする前に、フロー制御により回線側へ送信するデータを制御すること、
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、通信装置、通信方法、およびプログラムに関する。
【背景技術】
【0002】
さまざまな分野で通信装置による通信が行われている。特許文献1には、関連する技術として、通信速度が可変である通信ポートを装備したターミナルアダプタに関する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003-249954号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、通信装置に使用されるXFIインターフェースなどの高速シリアル通信において、回線側の通信速度を低速に変更した場合、XFIインターフェースにより接続されているデバイス間での通信速度が、回線における通信速度よりも低くなってしまうことがある。その結果、通信装置から回線側へのデータの通信速度が低下する可能性がある。そのため、シリアル通信を行う通信装置から回線側へのデータの通信速度の低下を抑制することのできる技術が求められている。
【0005】
本開示の各態様は、上記の課題を解決することのできる通信装置、通信方法、およびプログラムを提供することを目的の1つとしている。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本開示の一態様によれば、通信装置は、制御用バッファがオーバーフローする前に、フロー制御により回線側へ送信するデータを制御する第1処理手段、を備える。
【0007】
上記目的を達成するために、本開示の別の態様によれば、通信方法は、制御用バッファがオーバーフローする前に、フロー制御により回線側へ送信するデータを制御すること、を含む。
【0008】
上記目的を達成するために、本開示の別の態様によれば、プログラムは、制御用バッファがオーバーフローする前に、フロー制御により回線側へ送信するデータを制御すること、をコンピュータに実行させる。
【発明の効果】
【0009】
本開示の各態様によれば、通信装置において、シリアル通信を行う通信装置から回線側へのデータの通信速度の低下を抑制することができる。
【図面の簡単な説明】
【0010】
図1】本開示の一実施形態による通信装置の構成の一例を示す図である。
図2】本開示の一実施形態による制御部の構成の一例を示す図である。
図3】本開示の一実施形態による送信部の構成の一例を示す図である。
図4】本開示の一実施形態による通信装置における信号の一例を示す図である。
図5】本開示の一実施形態による通信装置の処理フローの第1の例を示す図である。
図6】本開示の一実施形態による通信装置の処理フローの第2の例を示す図である。
図7】本開示の一実施形態による通信装置の処理フローの第3の例を示す図である。
図8】本開示の一実施形態による通信装置の処理フローの第4の例を示す図である。
図9】本開示の別の実施形態による通信装置が備える制御部の構成の一例を示す図である。
図10】本開示の別の実施形態による通信装置が備える受信部の構成の一例を示す図である。
図11】本開示の別の実施形態による送信部および制御部の構成の一例を示す図である。
図12】本開示の実施形態による通信装置の最小構成を示す図である。
図13】本開示の実施形態による最小構成の通信装置の処理フローの一例を示す図である。
図14】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら実施形態について詳しく説明する。
<実施形態>
本開示の一実施形態による通信装置1は、回線クロックや高速シリアルクロックから送信タイミングを生成する機能、送信バッファの状態を考慮して送信タイミングを適正化する機能、生成された送信タイミングに基づいて制御用バッファ上のデータを高速シリアルへ送信する機能、および、制御用バッファがオーバーフローする前にフロー制御によりデータを制御する機能を有する。
【0012】
図1は、本開示の一実施形態による通信装置1の構成の一例を示す図である。通信装置1は、図1に示すように、高速シリアル通信の送信部10(以下、送信部10と記載)、制御部20(第1処理手段の一例、第2処理手段の一例、)、制御用バッファ部30、高速シリアル通信の受信部40(以下、受信部40と記載)、および回線出力部50を備える。
【0013】
送信部10は、制御部20にデータAを送信する。また、送信部10は、制御用バッファ部30においてオーバーフロー(すなわち、データの桁あふれ)が発生する前に、制御部20から受信する後述するフロー制御信号によりデータAの送信を一時的に停止する。
【0014】
制御部20は、送信部10からデータAを受信する。制御部20は、受信したデータAをデータBとして制御用バッファ部30へ送信する。なお、データAとデータBのペイロード部分は全て同じデータである。データAとデータBの違いは、ヘッダ等である。これは、各ブロックでの制御のため、ヘッダ等が付加されるケースを想定して名前を使い分けている。そして、制御部20は、制御用バッファ部30からデータBを受信する。制御部20は、受信したデータBをデータCとして受信部40に送信する。なお、データBとデータCのペイロード部分は全て同じデータである。データBとデータCの違いは、ヘッダ等である。これは、各ブロックでの制御のため、ヘッダ等が付加されるケースを想定して名前を使い分けている。
【0015】
また、制御部20は、受信部40からタイミング信号を受信する。タイミング信号の詳細については、後述する。制御部20は、受信したタイミング信号に基づいて、制御部20から受信部40にデータCを送信するタイミングを制御する。
【0016】
また、制御部20は、制御用バッファ部30の内部の状態を示すバッファ状態信号を制御用バッファ部30から受信する。制御部20は、バッファ状態信号により示される制御用バッファ部30の内部の状態が所定の状態(例えば、制御用バッファ部30内部のバッファが所定のしきい値を超えている状態)となっていると判定した場合、オーバーフローしそうであると判定し、送信部10にフロー制御信号を送信する。
【0017】
ここで、制御部20の具体的な構成について説明する。図2は、本開示の一実施形態による制御部20の構成の一例を示す図である。制御部20は、図2に示すように、高速シリアル受信部201、制御用バッファ送受信部202、高速シリアル送信部203、フロー制御送信部204、および送信タイミング受信部205を備える。
【0018】
高速シリアル受信部201は、送信部10からデータAを受信する。高速シリアル受信部201は、受信したデータAを制御用バッファ送受信部202へ送信する。
【0019】
制御用バッファ送受信部202は、高速シリアル受信部201からデータAを受信する。制御用バッファ送受信部202は、受信したデータAをデータBとして制御用バッファ部30との間で送受信する。また、制御用バッファ送受信部202は、データBを高速シリアル送信部203へ送信する。
【0020】
また、制御用バッファ送受信部202は、送信タイミング受信部205からタイミング信号を受信する。そして、制御用バッファ送受信部202は、タイミング信号に基づいて、データBを送信するタイミングを制御する。この制御により、後述する高速シリアル送信部203がデータBをデータCとして受信部40へ送信するタイミングを制御することができる。
【0021】
高速シリアル送信部203は、制御用バッファ送受信部202からデータBを受信する。高速シリアル送信部203は、受信したデータBをデータCとして受信部40へ送信する。
【0022】
フロー制御送信部204は、制御用バッファ部30からバッファ状態信号を受信する。フロー制御送信部204は、受信したバッファ状態信号をフロー制御信号として送信部10へ送信する。フロー制御送信部204は、バッファ状態信号に基づいてバッファ状態を監視し、オーバーフローが発生する前にフロー制御信号を使用して送信部10に通知する。なお、バッファ状態信号は、バッファの詰まり具合を示す信号である。また、フロー制御信号は、フロー制御送信部204でその状態を基にフロー制御を行うかどうかを判断した結果を示す信号である。
【0023】
送信タイミング受信部205は、受信部40からタイミング信号を受信する。送信タイミング受信部205は、受信したタイミング信号を制御用バッファ送受信部202および高速シリアル送信部203に送信する。以上が制御部20の具体的な構成である。
【0024】
制御用バッファ部30は、制御部20との間でデータBを送受信する。そして、制御用バッファ部30は、一時的に、データBをバッファリングする。また、制御用バッファ部30は、制御用バッファ部30内部のバッファ内にどの程度の量のデータBが滞留しているのかを示すバッファ状態信号を制御部20に送信することにより、制御用バッファ部30内部のバッファ内に滞留しているデータBの量を制御部20に通知する。
【0025】
受信部40は、制御部20からデータCを受信する。そして、受信部40は、データCを受信すると、回線出力部50にデータDを送信する。受信部40としては、EthernetのPHY、すなわち、OSI階層モデルにおける最下層の物理層(physical layer)を想定している。そのため、データDのペイロード部分は、データCのペイロード部分と同一であるが、データDには、データ回線上の制御信号が付加されている。
【0026】
また、受信部40は、タイミング信号を生成する。受信部40は、生成したタイミング信号を制御部20へ送信する。
【0027】
ここで、受信部40の具体的な構成について説明する。図3は、本開示の一実施形態による受信部40の構成の一例を示す図である。受信部40は、図3に示すように、高速シリアル受信部401、送信バッファ部402、回線データ送信部403、高速シリアルクロック抽出部404、回線速度設定部405、送信タイミング送信部406、送信タイミング生成部407(第3処理手段の一例、第4処理手段の一例)、および回線クロック生成部408を備える。
【0028】
高速シリアル受信部401は、高速シリアル送信部203からデータCを受信する。高速シリアル受信部401は、受信したデータCを送信バッファ部402および高速シリアルクロック抽出部404へ送信する。
【0029】
送信バッファ部402は、高速シリアル受信部401からデータCを受信する。送信バッファ部402は、受信したデータCを一旦バッファリングする。そして、送信バッファ部402は、バッファリングしたデータCを回線データ送信部403へ送信する。
【0030】
また、送信バッファ部402は、送信バッファ部402の内部のバッファの状態を示す状態信号を送信タイミング生成部407へ送信する。
【0031】
回線データ送信部403は、回線クロック生成部408から回線クロックを受信する。回線クロックは、回線データ送信部403からデータDを出力するタイミングを生成するために使用されるクロック信号である。
【0032】
また、回線データ送信部403は、送信バッファ部402からデータCを受信する。そして、回線データ送信部403は、データCを受信すると、回線クロックのタイミングに応じて、回線出力部50にデータDを送信する。
【0033】
高速シリアルクロック抽出部404は、高速シリアル受信部401からデータCを受信する。高速シリアルクロック抽出部404は、受信したデータCから高速シリアルクロックを抽出する。高速シリアルクロック抽出部404は、抽出した高速シリアルクロックを送信タイミング生成部407へ送信する。
【0034】
回線速度設定部405は、回線速度の情報を回線速度設定部405自身に設定する。回線速度の情報は、回線速度をいくつ(例えば、10M、100M、1Gなど)に設定するかという情報である。回線速度設定部405は、設定した回線速度の情報を回線クロック生成部408へ送信する。
【0035】
送信タイミング送信部406は、送信タイミング生成部407からタイミング信号を受信する。送信タイミング送信部406は、受信したタイミング信号を制御部20へ送信する。
【0036】
送信タイミング生成部407は、送信バッファ部402から状態信号を受信する。また、送信タイミング生成部407は、高速シリアルクロック抽出部404から高速シリアルクロックを受信する。また、送信タイミング生成部407は、回線クロック生成部408から回線クロックを受信する。そして、送信タイミング生成部407は、受信した状態信号、高速シリアルクロック、および回線クロックに基づいて、タイミング信号を生成する。送信タイミング生成部407によるこの生成の詳細については、後述する。送信タイミング生成部407は、生成したタイミング信号を送信タイミング送信部406へ送信する。
【0037】
回線クロック生成部408は、回線速度設定部405から回線速度の情報を受信する。そして、回線クロック生成部408は、回線速度の情報を受信すると、外部から基準クロックを受信し、その基準クロック逓倍することにより回線クロックを生成する。回線クロック生成部408は、生成した回線クロックを回線データ送信部403および送信タイミング生成部407へ送信する。以上が受信部40の具体的な構成である。
【0038】
回線出力部50は、受信部40からデータDを受信する。回線出力部50は、受信したデータDを通信回線へ出力する。
【0039】
図4は、本開示の一実施形態による通信装置1における信号の一例を示す図である。図5は、本開示の一実施形態による通信装置1の処理フローの第1の例を示す図である。図6は、本開示の一実施形態による通信装置1の処理フローの第2の例を示す図である。まず、通信装置1が行う処理として、送信タイミング生成部407が行うタイミング信号を生成する処理について、図4および図5を参照して説明する。図4に示す信号は、イメージ図であり、遅延などを考慮した厳密な信号ではない。また、図4は、送信ビット数が2ビットであり、回線クロックが高速シリアルクロックの10分の1の速度(波長が10倍)である場合の信号の例である。なお、高速シリアルクロック抽出部404は、データCから抽出した高速シリアルクロックを送信タイミング生成部407へ送信しているものとする。また、回線クロック生成部408は、回線速度設定部405から受信した回線速度を回線データ送信部403および送信タイミング生成部407へ送信しているものとする。
【0040】
受信部40は、タイミング信号を以下のように生成する。送信タイミング生成部407は、送信ビット数を決定する(ステップS1)。この送信ビット数は、予め送信タイミング生成部407に固定値として設定されるものであってよい。また、この送信ビット数は、後述するように、動的に変化するものであってもよい。
【0041】
送信タイミング生成部407は、回線クロック生成部408から受信する回線クロックを送信ビット数ごとに分断する(ステップS2)。そして、送信タイミング生成部407は、高速シリアルクロック抽出部404から受信する高速シリアルクロック上に、分断した回線クロックのビット数と同じビット数を割り当てる(ステップS3)。
【0042】
送信タイミング生成部407は、分断した回線クロックのビット数と同じビット数を割り当てた高速シリアルクロックの部分を、データを送信可能な期間とし、その期間においてデータを送信可能にする信号を生成する(ステップS4)。また、送信タイミング生成部407は、分断した次の回線クロックに対応するビット数が割り当てられるまでの高速シリアルクロック上の部分を、データを送信不可能な期間とし、その期間においてデータを送信不可能にする信号を生成する(ステップS5)。ステップS4およびステップS5の処理により生成される信号が適正化されたタイミングを示すタイミング信号である。
【0043】
次に、通信装置1が行う処理として、制御用バッファ送受信部202がデータCを送信する処理について、図6を参照して説明する。なお、図6に示す処理は、図5に示した処理に続けて行われる処理である。
【0044】
制御部20は、データCを以下のように受信部40に送信する。制御用バッファ送受信部202は、送信タイミング受信部205からタイミング信号を受信する。制御用バッファ送受信部202は、受信したタイミング信号に基づいて、制御用バッファ部30から送信に必要な分のデータBを引き取る(ステップS11)。例えば、制御用バッファ送受信部202は、送信タイミング受信部205から受信したタイミング信号から必要なデータ送信量が分かる。制御用バッファ送受信部202は、そのデータを都度制御用バッファ部30から能動的に得ればよい。その後、制御用バッファ送受信部202は、タイミング信号に合わせてデータBを高速シリアル送信部203へ送信する。例えば、制御用バッファ送受信部202は、図4における「送信可」の部分に送信データ(すなわちデータB)を入れる。そして、制御用バッファ送受信部202は、その送信データを高速シリアル送信部203へ送信する。
【0045】
高速シリアル送信部203は、制御用バッファ送受信部202からデータBを受信する。高速シリアル送信部203は、送信可能なタイミングのみに予め決められたプリアンブルデータを受信部40に送信する(ステップS12)。制御用バッファ送受信部202および高速シリアル送信部203は、バッファを備えている。高速シリアル送信部203は、そのバッファを用いて、データBを受信したタイミングを送信可能なタイミングとすればよい。そして、高速シリアル送信部203は、受信したデータBをデータCとして受信部40に送信する(ステップS13)。なお、ここでのプリアンブルデータは一般的なものである。すなわち、通信線には必ずしも常に有効データが流れているわけではなく、有効データが存在しない間は空データが流れている。有効データの直前にプリアンブルデータを流すことにより有効または空の判別が可能となる。
【0046】
高速シリアル受信部401は、高速シリアル送信部203からプリアンブルデータを受信する。そして、高速シリアル受信部401は、高速シリアル送信部203からデータCを受信する。高速シリアル受信部401は、プリアンブルデータの受信により、送信可能なタイミングを知ることができる。その結果(つまり、送信部20がステップS11からステップS13までの処理を行うことにより)、高速シリアル受信部401は、データCが送信可能なタイミングに送信されたデータであるか否かを判定することができる。
【0047】
図7は、本開示の一実施形態による通信装置1の処理フローの第3の例を示す図である。ここで、送信ビット数が動的に変化する例として、通信装置1が送信バッファの状態に応じて送信ビット数を決定する処理について、図7を参照して説明する。
【0048】
送信バッファ部402は、送信バッファ部402の内部の状態を常に監視する。具体的には、送信バッファ部402は、内部のバッファに蓄積されているデータ量が予め設定された第1しきい値以上であるか否かを判定する(ステップS21)。送信バッファ部402は、データ量が第1しきい値以上であると判定した場合(ステップS21においてYES)、送信ビット数を所定のビット数だけ減らす(ステップS22)。そして、送信バッファ部402は、ステップS21の処理に戻す。また、送信バッファ部402は、データ量が第1しきい値未満であると判定した場合(ステップS21においてNO)、データ量が第1しきい値よりも小さな値を有する第2しきい値以上であるか否かを判定する(ステップS23)。
【0049】
送信バッファ部402は、データ量が第2しきい値以上であると判定した場合(ステップS23においてYES)、ステップS21の処理に戻す。また、送信バッファ部402は、データ量が第2しきい値未満であると判定した場合(ステップS23においてNO)、送信ビット数を所定のビット数だけ増やす(ステップS24)。そして、送信バッファ部402は、ステップS23の処理に戻す。このステップS24の処理における所定のビット数は、ステップS22の処理における所定のビット数と同一であっても、異なっていてもよい。
【0050】
上述のステップS21からステップS24までの処理により、送信バッファ部402の内部のバッファに蓄積されているデータ量は、第1しきい値未満であり、第2しきい値以上である適切なデータ量の範囲内に調整される。その結果、制御用バッファ部30におけるオーバーフローを抑制することができ、データDの送信レートを安定的かつ低遅延にすることができる。なお、送信バッファ部402の内部のバッファに蓄積されているデータ量は、バッファの入出力レート差とバッファへ一度に入力されるデータ量とによって決定される。バッファの入出力レート差とは、送信バッファ部402の内部のバッファに入力するレートとそのバッファから出力するレートの差のことである。バッファに入力するレートがバッファから出力するレートよりも大きい場合、オーバーフローしてしまう。ただし、本開示の一実施形態では、図4から図6を用いて説明した通信装置1が行う処理により、バッファの入出力レート差はほぼなくなる。そのため、上記ステップS21からステップS24の処理では、バッファへ一度に入力される量を抑制している。
【0051】
図8は、本開示の一実施形態による通信装置1の処理フローの第4の例を示す図である。次に、制御用バッファがオーバーフローする前にデータAの送信を制御する制御用バッファ部30が行う処理について、図8を参照して説明する。
【0052】
制御用バッファ部30は、制御用バッファ部30の内部の状態を常に監視する。具体的には、制御用バッファ部30は、内部のバッファに蓄積されているデータ量が予め設定された第3しきい値以上であるか否かを判定する(ステップS31)。制御用バッファ部30は、データ量が第3しきい値以上であると判定した場合(ステップS31においてYES)、送信部10にフロー制御信号を送信する(ステップS32)。
【0053】
送信部10は、制御用バッファ部30からフロー制御信号を受信する。送信部10は、受信したフロー制御信号に応じて、データAの送信レートを低下させたり、一時的にデータAの送信を停止させる(ステップS33)。なお、通信装置1としてレート低下と停止についての明確な定義はない。ここでは、送信部10は、フロー制御信号が有効になっている間、データAの送信を停止する。フロー制御信号が頻繁に切り替われば、送信部10による送信の停止は、一時的なものとなる。そのため、使用者から見ると送信レートが低下しているように見える。また、フロー制御信号が暫く有効になっていれば、使用者から見ると送信の停止が継続しているように見える。そして、送信部10は、ステップS31の処理に戻す。
【0054】
また、制御用バッファ部30は、データ量が第3しきい値未満であると判定した場合(ステップS31においてNO)、送信部10へのフロー制御信号の送信を停止する(ステップS34)。
【0055】
送信部10は、制御用バッファ部30からフロー制御信号を受信しない場合、データAの送信レートを所定のレート(元のレート)としたり、データAの送信を開始させる(ステップS35)。そして、送信部10は、ステップS31の処理に戻す。
【0056】
上述のステップS31からステップS35までの処理により、制御用バッファ部30の内部のバッファに蓄積されているデータ量は、第3しきい値以上の場合にフロー制御により調整され、第3しきい値未満である場合に所定のレート(元のレート)に調整される。その結果、制御用バッファ部30におけるオーバーフローを抑制することができ、データDの送信レートを安定的かつ低遅延にすることができる。
【0057】
以上、本開示の一実施形態による通信装置1について説明した。通信装置1において、制御部20(第1処理手段の一例)は、バッファ状態信号により示される制御用バッファ部30の内部の状態が所定の状態(例えば、制御用バッファ部30内部のバッファ(制御用バッファの一例)が所定のしきい値を超えている状態)となっていると判定した場合、オーバーフローしそう(オーバーフローする前の一例)であると判定し、送信部10にフロー制御信号を送信する(フロー制御の一例)。つまり、制御部20は、制御用バッファがオーバーフローする前に、フロー制御により回線側へ送信するデータを制御する。この通信装置1により、シリアル通信を行う通信装置から回線側へのデータの通信速度の低下を抑制することができる。
【0058】
なお、本開示の別の実施形態による通信装置1が備える制御部20および受信部40は、図2に示した制御部20および図3に示した受信部40に限定されない。図9は、本開示の別の実施形態による通信装置1が備える制御部20の構成の一例を示す図である。図10は、本開示の別の実施形態による通信装置1が備える受信部40の構成の一例を示す図である。
【0059】
本開示の別の実施形態において、制御部20は、図9に示すように、高速シリアル受信部201、制御用バッファ送受信部202、高速シリアル送信部203、フロー制御送信部204、高速シリアルクロック抽出部206、および送信タイミング生成部207を備える。受信部40は、図10に示すように、高速シリアル受信部401、送信バッファ部402、回線データ送信部403、回線速度設定部405、および回線クロック生成部408を備える。つまり、本開示の別の実施形態による通信装置1では、本開示の一実施形態による受信部40における高速シリアルクロック抽出部404、送信タイミング送信部406、および送信タイミング生成部407が行う処理を、制御部20が備える高速シリアルクロック抽出部206および送信タイミング生成部207に実行させるものであってもよい。なお、この場合、送信バッファ部402の状態を通知する機能を削除するか、または回線クロック以外の送信バッファ部402から送信タイミング生成部207への信号線を追加して状態信号を送信タイミング生成部207に通知する必要がある。この本開示の別の実施形態による通信装置1により、本開示の一実施形態による通信装置1と同様に、シリアル通信を行う通信装置から回線側へのデータの通信速度の低下を抑制することが可能となる。
【0060】
なお、本開示の別の実施形態による通信装置1の構成は、図1に示した本開示の一実施形態による通信装置1の構成と異なるものであってもよい。図11は、本開示の別の実施形態による送信部10および制御部20の構成の一例を示す図である。送信部10は、図11に示すように、高速シリアル制御部/送信部101を備える。制御部20は、図11に示すように、高速シリアル受信部201、制御用バッファ送受信部202、高速シリアル送信部203、および送信タイミング受信部205を備える。本開示の別の実施形態による通信装置1では、受信部40から制御部20へ送信されるタイミング信号を、送信部10にも送信することにより、制御部20内で行われる処理と同様の処理を高速シリアル制御部/送信部101において実現する。
【0061】
制御部20は、データCを以下のように受信部40に送信する。制御用バッファ送受信部202は、送信タイミング受信部205からタイミング信号を受信する。制御用バッファ送受信部202は、受信したタイミング信号に基づいて、高速シリアル制御部/送信部101の内部のバッファから送信に必要な分のデータBを引き取る。例えば、制御用バッファ送受信部202は、送信タイミング受信部205から受信したタイミング信号から必要なデータ送信量が分かる。制御用バッファ送受信部202は、そのデータを都度制御用バッファ部30から能動的に得ればよい。その後、制御用バッファ送受信部202は、タイミング信号に合わせてデータBを高速シリアル送信部203へ送信する。例えば、制御用バッファ送受信部202は、図4における「送信可」の部分に送信データ(すなわちデータB)を入れる。そして、制御用バッファ送受信部202は、その送信データを高速シリアル受信部201へ送信する。
【0062】
この本開示の別の実施形態による通信装置1により、本開示の一実施形態による通信装置1と同様に、シリアル通信を行う通信装置から回線側へのデータの通信速度の低下を抑制することが可能となる。
【0063】
図12は、本開示の実施形態による通信装置1の最小構成を示す図である。通信装置1は、第1処理手段100を備える。第1処理手段100は、制御用バッファがオーバーフローする前に、フロー制御により回線側へ送信するデータを制御する。第1処理手段100は、例えば、図1に例示されている制御部20が有する機能を用いて実現することができる。
【0064】
図13は、本開示の実施形態による最小構成の通信装置1の処理フローの一例を示す図である。次に、本開示の実施形態による最小構成の通信装置1の処理について図13を参照して説明する。
【0065】
通信装置1において、第1処理手段100は、制御用バッファがオーバーフローする前に、フロー制御により回線側へ送信するデータを制御する(ステップS101)。
【0066】
以上、本開示の実施形態による最小構成の通信装置1について説明した。この通信装置1により、シリアル通信を行う通信装置から回線側へのデータの通信速度の低下を抑制することができる。
【0067】
なお、本開示の実施形態における処理は、適切な処理が行われる範囲において、処理の順番が入れ替わってもよい。
【0068】
本開示の実施形態について説明したが、上述の通信装置1、送信部10、制御部20、制御用バッファ部30、受信部40、回線出力部50、その他の制御装置は内部に、コンピュータシステムを有していてもよい。そして、上述した処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。コンピュータの具体例を以下に示す。
【0069】
図14は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。コンピュータ5は、図14に示すように、CPU6、メインメモリ7、ストレージ8、インターフェース9を備える。例えば、上述の通信装置1、送信部10、制御部20、制御用バッファ部30、受信部40、回線出力部50、その他の制御装置のそれぞれは、コンピュータ5に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ8に記憶されている。CPU6は、プログラムをストレージ8から読み出してメインメモリ7に展開し、当該プログラムに従って上記処理を実行する。また、CPU6は、プログラムに従って、上述した各記憶部に対応する記憶領域をメインメモリ7に確保する。
【0070】
ストレージ8の例としては、HDD(Hard Disk Drive)、SSD(Solid State Drive)、磁気ディスク、光磁気ディスク、CD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)、半導体メモリ等が挙げられる。ストレージ8は、コンピュータ5のバスに直接接続された内部メディアであってもよいし、インターフェース9または通信回線を介してコンピュータ5に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ5に配信される場合、配信を受けたコンピュータ5が当該プログラムをメインメモリ7に展開し、上記処理を実行してもよい。少なくとも1つの実施形態において、ストレージ8は、一時的でない有形の記憶媒体である。
【0071】
また、上記プログラムは、前述した機能の一部を実現してもよい。さらに、上記プログラムは、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるファイル、いわゆる差分ファイル(差分プログラム)であってもよい。
【0072】
本開示のいくつかの実施形態を説明したが、これらの実施形態は、例であり、開示の範囲を限定しない。これらの実施形態は、開示の要旨を逸脱しない範囲で、種々の追加、省略、置き換え、変更を行ってよい。
【0073】
なお、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0074】
(付記1)
制御用バッファがオーバーフローする前に、フロー制御により回線側へ送信するデータを制御する第1処理手段、
を備える通信装置。
【0075】
(付記2)
前記データの送信タイミングを示すタイミング信号に基づいて、前記制御用バッファにおけるデータを、高速シリアル通信を行う受信部に送信する第2処理手段、
を備える付記1に記載の通信装置。
【0076】
(付記3)
送信バッファの内部の状態に基づいて、前記データを送信可能なタイミングと前記データを送信不可能なタイミングとを示す前記タイミング信号を生成する第3処理手段、
を備える付記2に記載の通信装置。
【0077】
(付記4)
回線クロックおよび高速シリアルクロックの少なくとも一方に基づいて、前記タイミング信号を生成する第4処理手段、
を備える付記2または付記3に記載の通信装置。
【0078】
(付記5)
制御用バッファがオーバーフローする前に、フロー制御により回線側へ送信するデータを制御すること、
を含む通信方法。
【0079】
(付記6)
制御用バッファがオーバーフローする前に、フロー制御により回線側へ送信するデータを制御すること、
をコンピュータに実行させるプログラム。
【符号の説明】
【0080】
1・・・通信装置
5・・・コンピュータ
6・・・CPU
7・・・メインメモリ
8・・・ストレージ
9・・・インターフェース
10・・・送信部
20・・・制御部
30・・・制御用バッファ部
40・・・受信部
50・・・回線出力部
101・・・高速シリアル制御部/送信部
201、401・・・高速シリアル受信部
202・・・制御用バッファ送受信部
203・・・高速シリアル送信部
204・・・フロー制御送信部
205・・・送信タイミング受信部
206・・・高速シリアルクロック抽出部
207、407・・・送信タイミング生成部
402・・・送信バッファ部
403・・・回線データ送信部
404・・・高速シリアルクロック抽出部
405・・・回線速度設定部
406・・・送信タイミング送信部
408・・・回線クロック生成部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14