(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-09
(45)【発行日】2024-01-17
(54)【発明の名称】通信システム
(51)【国際特許分類】
H04L 69/28 20220101AFI20240110BHJP
【FI】
H04L69/28
(21)【出願番号】P 2022510487
(86)(22)【出願日】2021-03-22
(86)【国際出願番号】 JP2021011731
(87)【国際公開番号】W WO2021193542
(87)【国際公開日】2021-09-30
【審査請求日】2022-09-13
(31)【優先権主張番号】P 2020057408
(32)【優先日】2020-03-27
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100109313
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】四宮 潔
【審査官】大石 博見
(56)【参考文献】
【文献】国際公開第2007/097017(WO,A1)
【文献】特開2016-31547(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 69/28
(57)【特許請求の範囲】
【請求項1】
第1の外部装置と、第2の外部装置と、第1の通信装置と、第2の通信装置と、を含む通信システムであって、
前記第1の通信装置は、コマンド予測手段と、第1の通信処理手段と、を有し、
前記コマンド予測手段は、前記第1の外部装置から入力された第1のコマンドの一部から前記第1のコマンドにおけるアドレス及び指示の内容を予測し、予測した前記アドレス及び前記指示の内容を第2のコマンドとして出力し、
前記第2の通信装置が前記第2のコマンドの送信を待ち合わせる必要の有無を示す第1のフラグ情報を出力し、
前記第1の通信処理手段は、前記第2のコマンド及び前記第1のフラグ情報を前記第2の通信装置に送信し、
前記第2の通信装置は、第2の通信処理手段を有し、
前記第2の通信処理手段は、
前記第2のコマンド及び前記第1のフラグ情報を受信し、
前記第1のフラグ情報が前記第2の通信装置が前記第2のコマンドの送信を待ち合わせる必要が無いことを示す場合に、前記第2のコマンドを前記第2の外部装置に送信する、
通信システム。
【請求項2】
前記第2の通信処理手段は、
前記第1のフラグ情報が前記第2の通信装置が前記第2のコマンドの実行を待ち合わせる必要があることを示す場合に、前記第2のコマンドを前記第2の外部装置に送信することを一時的に中止する、
請求項1
に記載の通信システム。
【請求項3】
前記第1の通信装置は、さらに、
前記第1のコマンドと前記第2のコマンドとを比較し、比較結果を出力する第1の比較手段を備え、
前記第1の通信処理手段は、
前記比較結果を前記第2の通信装置に送信し、
前記第2の通信処理手段は、
前記比較結果に基づき、前記第2のコマンドを前記第2の外部装置に送信するか否かを決定する、
請求項
2に記載の通信システム。
【請求項4】
前記第1の通信処理手段は、前記第1のコマンドの受信が完了した場合、前記第1のコマンドを前記第2の通信装置に送信し、
前記第2の通信装置は、さらに、第2の比較手段を有し、
前記第2の通信処理手段は、前記第1のコマンドを前記第1の通信装置から受信し、
前記第2の比較手段は、前記第1のコマンドと前記第2のコマンドとを比較し、比較結果を出力し、
前記第2の通信処理手段は、前記比較結果に基づき、前記第2のコマンドを前記第2の外部装置に送信するか否かを決定する、
請求項
2に記載の通信システム。
【請求項5】
前記第1の通信処理手段は、
前記比較結果が前記第1のコマンドと前記第2のコマンドとが一致したことを示す場合、前記第1のコマンド又は、前記比較結果が前記第1のコマンドと前記第2のコマンドが一致したことを示す第1のメッセージを前記第2の通信装置に送信し、
前記第2の通信処理手段は、
前記第1のコマンド又は、前記第1のメッセージの受信に応じて、前記第1のコマンド又は前記第2のコマンドを前記第2の外部装置に送信する、
請求項
3に記載の通信システム。
【請求項6】
前記第2の通信処理手段は、
前記比較結果が前記第1のコマンドと前記第2のコマンドが一致したことを示す場合、前記第1のコマンド又は前記第2のコマンドを前記第2の外部装置に送信する、
請求項
4に記載の通信システム。
【請求項7】
前記第1の通信装置は、さらに、第1の比較手段を有し、
前記第1の比較手段は、前記第1のコマンドと前記第2のコマンドを比較し、比較結果を出力し、前記比較結果が前記第1のコマンドと前記第2のコマンドが一致しないことを示す場合、
前記第1のコマンドを、前記第1のコマンドに記載された前記アドレスが示す装置に送信する、
請求項1
に記載の通信システム。
【請求項8】
前記第2の通信装置は、さらに、第2の比較手段を有し、
前記第2の比較手段は、
前記第1のコマンドと前記第2のコマンドを比較し、比較結果を出力し、
前記比較結果が前記第1のコマンドと前記第2のコマンドが一致しないことを示す場合、
前記第2の通信処理手段は、
前記比較結果が前記第1のコマンドと前記第2のコマンドが一致しないことを示す第3のメッセージを前記第1の通信装置に送信し、
前記第1の通信処理手段は、
前記第3のメッセージの受信に応じて、前記第1のコマンドを、前記第1のコマンドに記載された前記アドレスが示す装置に送信する、
請求項1
に記載の通信システム。
【請求項9】
前記第1の通信処理手段は、さらに、第1の比較手段を有し、
前記第1の比較手段は、前記第1のコマンドと前記第2のコマンドを比較し、比較結果を出力し、
前記比較結果が前記第1のコマンドと前記第2のコマンドが一致しないことを示す場合、
前記第2のコマンドへの応答信号を前記第1の外部装置に送信せず、
前記第1のコマンドを、前記第1のコマンドに記載された前記アドレスが示す装置に送信する、
請求項1
に記載の通信システム。
【請求項10】
前記第2の通信装置は、さらに、第2の比較手段を有し、
前記第2の比較手段は、前記第1のコマンドと前記第2のコマンドを比較し、比較結果を出力し、
前記比較結果が前記第1のコマンドと前記第2のコマンドが一致しないことを示す場合、
前記第2の通信処理手段は、前記第2のコマンドへの応答信号を前記第1の外部装置に送信せず、
前記応答信号を前記第1の外部装置に転送しないことを示す第4のメッセージを前記第1の通信装置に送信し、
前記第1の通信処理手段は、
前記第4のメッセージの受信に応じて、前記第1のコマンドを、前記第1のコマンドに記載された前記アドレスが示す装置に送信する、
請求項1
に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、通信システムに関し、特にコマンドの送信に関する。
【背景技術】
【0002】
近年、通信を高速化することを目的として、ネットワークの構築に際し、従来から用いられてきたバス装置からPoint to Point型の高速接続装置を用いることが一般的になりつつある。また、ネットワークの構築方法も、パケット交換網を使用することが一般的になっている。Point to Point型の高速接続装置やパケット交換網により通信は高速化する一方で、パケット内にあるヘッダやフッタ、スイッチによるルーティング機能によって、通信のレイテンシは大きくなってきている。
【0003】
一方で、従来はローカルで行われてきた業務をクラウドサービスに置き換えることが、近年は急速に進んでいる。ローカルで行われてきた業務には、従来のレガシーデバイスが用いられることが多く、ローカルにおける低速バス用として依然として利用され続けている。このようなレガシーデバイスはコストが優先されることが多く、再設計を行い高速接続用インターフェースへ対応する可能性は低い。そこで、レガシーデバイスの再設計を行うことなくパケット交換網に接続し、クラウドとレガシーデバイスをより簡単に接続できる技術は継続的に求められてきた。
【0004】
ところで、レガシーデバイスが接続されている低速バスは、パケット交換網のレイテンシにより更に速度を落とさざるを得ないことがある。例えば、1MHzで動作するバスにおいては1usが1クロックであり、バスは1usで応答を返すことがある。パケット交換網では、レイテンシは確定しないが、1Gbpsで通信が可能な場合は10us程度となる。この場合、バスの応答時間である1usに対してパケット交換網のレイテンシが10倍となるため、パケット交換網のレイテンシに合わせバスのクロックを10usに合わせる必要がある。するとバスの動作クロックは100kHz程度に下がることになり、パケット交換網と比べてもともと低い転送速度を更に低下させる必要があった。
【0005】
レイテンシを短縮するための技術として、カットスルー通信が一般的に知られている(例えば、特許文献1参照)。また、先に送信されたコマンドから、後に続くコマンドを予測する技術が知られている(例えば、特許文献2参照)。加えて、ユーザーによる入力をマルコフ連鎖モデルにより予測し、レイテンシを低下させる技術が知られている(例えば、非特許文献1参照)。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2019-176263号公報
【文献】特開2004-280640号公報
【非特許文献】
【0007】
【文献】Outatime: Using Speculation to Enable Low-Latency Continuous Interaction for Cloud Gaminghttps://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/outatime_techreport2014.pdf
【発明の概要】
【発明が解決しようとする課題】
【0008】
発明者は、ネットワークを介したコマンドの送信方法について検討し、様々な課題を見出した。具体的には、例えば、ネットワークに接続されている第1の装置がコマンドを送信するシステムにおいて、接続されているネットワークのレイテンシが大きい場合、コマンドを送信した装置の応答時間内に、当該コマンドの送信先である第2の装置は、当該コマンドへ応答することができない可能性がある。
【0009】
ここに開示される実施形態が達成しようとする目的の1つは、ネットワークを介した通信のレイテンシを短縮することである。なお、この目的は、ここに開示される複数の実施形態が達成しようとする複数の目的の1つに過ぎないことに留意されるべきである。その他の目的又は課題と新規な特徴は、本明細書の記述又は添付図面から明らかにされる。
【課題を解決するための手段】
【0010】
第1の態様では、通信システムは、第1の外部装置と、第2の外部装置と、第1の通信装置と、第2の通信装置と、を含む。前記第1の通信装置は、コマンド予測部と、第1の通信処理部と、を有する。前記コマンド予測部は、前記第1の外部装置から入力された第1のコマンドの一部から前記第1のコマンドにおけるアドレス及び指示の内容を予測し、予測した前記アドレス及び前記指示の内容を第2のコマンドとして出力し、また、前記第2の通信装置が前記第2のコマンドの送信を待ち合わせる必要の有無を示す第1のフラグ情報を出力するよう構成される。前記第1の通信処理部は、前記第2のコマンド及び前記第1のフラグ情報を前記第2の通信装置に送信するよう構成される。前記第2の通信装置は、第2の通信処理部を有する。前記第2の通信処理部は、前記第2のコマンド及び前記第1のフラグ情報を受信し、前記第1のフラグ情報が前記第2の通信装置が前記第2のコマンドの送信を待ち合わせる必要が無いことを示す場合に、前記第2のコマンドを前記第2の外部装置に送信するよう構成される。
【発明の効果】
【0011】
上述の態様によれば、ネットワークを介した通信のレイテンシを短縮することに寄与する通信システムを提供できる。
【図面の簡単な説明】
【0012】
【
図1】実施形態に係る通信システムの構成例を示す図である。
【
図2】実施形態に係る通信システムの動作の一例を示すフローチャートである。
【
図3】実施形態に係る通信システムの構成例を示す図である。
【
図4】実施形態に係る予測テーブルの構成例を示す図である。
【
図5】実施形態に係る予測テーブルの構成例を示す図である。
【
図6】実施形態に係る通信システムの動作の一例を示すフローチャートである。
【
図7】実施形態に係る通信システムの動作の一例を示すフローチャートである。
【
図8】実施形態に係る通信システムの動作の一例を示すフローチャートである。
【
図9】実施形態に係る通信システムの動作の一例を示すフローチャートである。
【
図10】実施形態に係る通信システムの動作の一例を示すフローチャートである。
【
図11】実施形態に係る通信システムの動作の一例を示すフローチャートである。
【
図12】実施形態に係る通信システムの構成例を示す図である。
【
図13】実施形態に係る通信システムの動作の一例を示すフローチャートである。
【
図14】実施形態に係る通信システムの動作の一例を示すフローチャートである。
【
図15】実施形態に係る通信システムの動作の一例を示すフローチャートである。
【
図16】実施形態に係る通信システムの動作の一例を示すフローチャートである。
【
図17】実施形態に係る通信システムの動作の一例を示すフローチャートである。
【
図18】実施形態に係る通信システムの動作の一例を示すフローチャートである。
【
図19】実施形態に係る通信システムの構成例を示す図である。
【
図20】実施形態に係る通信システムの動作の一例を示すフローチャートである。
【
図21】複数の実施形態に係る外部装置の構成例を示す図である。
【
図22】複数の実施形態に係る通信装置の構成例を示す図である。
【
図23A】実施形態に係る通信システムの別の構成例を示す図である。
【
図23B】実施形態に係る通信システムの別の構成例を示す図である。
【
図23C】実施形態に係る通信システムの別の構成例を示す図である。
【
図23D】実施形態に係る通信システムの別の構成例を示す図である。
【発明を実施するための形態】
【0013】
以下では、具体的な実施形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明を簡略化するため、必要に応じて重複する説明は省略される。
【0014】
以下に示す実施形態は、独立に実施されることもできるし、適宜組み合わせて実施されることもできる。これら複数の実施形態は、互いに異なる新規な特徴を有す。したがって、これら複数の実施形態は、互いに異なる目的又は課題を解決することに寄与し、互いに異なる効果を奏することに寄与する。
【0015】
<第1の実施形態>
図1は、本実施形態に係る通信システム1の構成例を示す。
図1に示された要素の各々はネットワーク機能である。
図1に示される各要素は、例えば、専用ハードウェアとして、専用ハードウェア上で動作するソフトウェアとして、又は汎用ハードウェアで動作するアプリケーション・プラットフォーム上にインスタンス化された仮想化機能として実装されることができる。
【0016】
図1の例では、通信システム1は、外部装置10、通信装置20、通信装置30、及び外部装置40を含む。通信装置20は、通信処理部21、コマンド予測部22を含み、通信装置30は、通信処理部31を含む。
【0017】
外部装置は、例えば、ネットワーク上に存在するコンピュータなどの通信機器や、機器内に存在する各種レジスタなどが挙げられるが、これらには限定されない。通信装置は、ネットワークに直接接続されている機器であり、例えば、ルータ装置やハブ装置、ネットワークインターフェースカード、ネットワーク上に存在するコンピュータなどが挙げられるが、これらには限定されない。
【0018】
また、本実施形態に記載されている各々の外部装置及び通信装置は、パケット交換網を介して接続されていてもよく、通信ケーブル等で直接接続されていてもよい。当然ながら、パケット交換網への接続方法や外部装置及び通信装置の直接接続の方法は、無線通信接続や有線通信接続が挙げられるが、これらには限定されない。
【0019】
通信処理部21は、ネットワークを介して、外部装置10及び通信装置30と接続する。通信処理部21は、外部装置10に対するコマンドを受信し、また外部装置40を含む他の装置へコマンド及び第1のフラグ情報を送信する。
【0020】
通信処理部31は、ネットワークを介して、外部装置40及び通信装置20と接続する。また、通信処理部31は、外部装置40に対するコマンド及び第1のフラグ情報を受信する。加えて、第1のフラグ情報が、外部装置40に対するコマンドの送信を待ち合わせる必要がないことを示す場合には、通信処理部31は、外部装置40へコマンドを送信する。
【0021】
本実施形態におけるコマンドは、装置に対する指示の内容と、指示の内容の送信先を示すアドレスを含む。アドレスの記載形式は、例えば、IPv4(Internet Protocol version 4)やIPv6(Internet Protocol version 6)などが挙げられるが、コマンドを送信する先の通信装置又は外部装置が特定できればよく、これらに限定されない。指示の内容は、例えば、リード(Read)、ライト(Write)などが挙げられるが、これらに限定されない。
【0022】
コマンド予測部22は、外部装置10から入力された第1のコマンドの一部から、第1のコマンドにおける指示の内容及びアドレスを予測し、予測した指示の内容及びアドレスを第2のコマンドとして出力する。
【0023】
本実施形態における第1のコマンドとは、外部装置に対する指示の内容及び外部装置のアドレスを含む、外部装置10から実際に出力されるコマンドである。加えて、本実施形態における第2のコマンドとは、通信装置20が第1のコマンドの一部から予測し、出力するコマンドである。
【0024】
また、コマンド予測部22は、第1のフラグ情報も出力する。
【0025】
第1のフラグ情報は、通信装置30が第2のコマンドを外部装置40に送信することを待ち合わせる必要があるか否か、を示す。より具体的には、通信装置30が第2のコマンドを外部装置40に送信することを待ち合わせる必要がある場合には、第1のフラグ情報に1が付与される。また、第1のフラグ情報に1が付与されない第2のコマンドには、第1のフラグ情報に0が付与される。
【0026】
コマンドに対して第1のフラグ情報に1が付与される例を説明する。例えば、アドレスが機器の電源制御レジスタを指し、当該アドレスに対してライト(Write)を示す指示が含まれるコマンドが送信される場合、当該コマンドを受信し実行する機器の電源が落ちる可能性がある。そのため、このようなコマンドに対しては第1のフラグ情報に1が付与される。
【0027】
また、第1のフラグ情報に1が付与される基準はコマンドに含まれる指示の内容のみに依存しないことに注意が必要である。例えば、機器の状態を記録するレジスタに紐付いているアドレスに対して、リードを示す指示が含まれるコマンドについては、当該レジスタに大きな影響を与えることにはならない。そのため当該コマンドについては第1のフラグ情報に0が付与される。しかし、同じリードを示す指示が含まれていても、アドレスが示す外部装置によっては第1のフラグ情報に1が付与されることがある。例えば、リード&クリア(Clear)レジスタのように、リードの指示を実行した後に内容が消去されるレジスタが存在する。このようなレジスタに対するリードの指示を含む第2のコマンドには、第1のフラグ情報に1が付与される。
【0028】
続いて以下では、本実施形態に係る第2のコマンドの決定、並びに送信方法について、
図2に挙げられる例を用いて説明する。
【0029】
本実施形態では、通信装置20が、外部装置10から入力された第1のコマンド(S101)の一部から第2のコマンドを予測し(S102)、第1のフラグ情報と合わせて通信装置30に送信する(S103)。通信装置30は、第2のコマンドと第1のフラグ情報を受信し(S104)、外部装置30に対する第2のコマンドの送信を待ち合わせる必要がない場合は第2のコマンドを外部装置40に送信する(S105)。
【0030】
<第2の実施形態>
図3は、本実施形態に係る通信システム2の構成例を示す。本実施形態では、通信装置200は、通信処理部210、コマンド予測部220及び比較部240を有する。
【0031】
通信処理部210は、第1の実施形態における通信処理部21と同様に、外部装置10及び通信装置300と接続する。通信処理部210は、外部装置40に対するコマンドを受信し、また通信装置300を含む他の装置へ、コマンドと第1のフラグ情報と比較結果とを送信する。
【0032】
コマンド予測部220は、
図4に例示する予測テーブル230又は、
図5に例示する予測テーブル250を保持する。コマンド予測部220は、第1の実施形態におけるコマンド予測部22と同様にコマンドを予測し、予測したコマンドを第2のコマンドとして出力する。さらに、コマンド予測部220は、第1の実施形態におけるコマンド予測部22と同様に、第1のフラグ情報を出力する。
【0033】
第1のフラグ情報は、通信装置300が第2のコマンドを外部装置40に送信することを待ち合わせる必要があるか否か、を示す。より具体的には、通信装置300が第2のコマンドを外部装置40に送信することを待ち合わせる必要がある場合には、第1のフラグ情報に1が付与される。また、第1のフラグ情報に1が付与されない第2のコマンドには、第1のフラグ情報に0が付与される。
【0034】
言い換えれば、第1のフラグ情報は、第2のコマンドが、外部装置40に大きな影響を与えるか否か、を示す。例えば、送信先が第1の実施形態に示したリード(Read)&クリア(Clear)レジスタであり、第2のコマンドにおいて指示の内容がリードであり、第1のコマンドの予測が誤っている場合(第1のコマンドと第2のコマンドが一致しない場合)、当該レジスタに当該コマンドを送信すると意図しないデータの消去が行われる。このような場合、第2のコマンドは外部装置40に大きな影響を与える可能性があり、第2のコマンドにおける第1のフラグ情報には1が付与される。
【0035】
比較部240は、第1のコマンドと第2のコマンドとを比較し、比較結果を出力する。第1のコマンドとは、第1の実施形態で述べた通り、外部装置に対する指示の内容及び外部装置のアドレスを含む、外部装置10から実際に出力されるコマンドである。第2のコマンドとは、第1の実施形態で述べた通り、通信装置20が第1のコマンドの一部から予測し、出力するコマンドである。比較部240は、第1のコマンドに記載されている指示の内容及び指示の内容の送信先を示すアドレスと、第2のコマンドに記載されている指示の内容及び指示の内容の送信先を示すアドレスとを比較する。加えて、比較部240は、比較結果を出力する。
【0036】
本実施形態における通信装置300は、通信処理部310を有する。通信処理部310は、第1の実施形態における通信処理部31と同様に外部装置40及び通信装置200と接続する。通信処理部310は、外部装置40に対するコマンドと第1のフラグ情報と比較結果とを通信装置200から受信する。第1のフラグ情報が0を示す(第2のコマンドの送信を待ち合わせる必要がない)場合には、通信処理部310は、外部装置40へコマンドを送信する。また、第1のフラグ情報が1を示す(第2のコマンドの送信を待ち合わせる必要がある)場合には、通信処理部310は、比較結果を受信するまでは外部装置40へコマンドを送信することを待ち合わせる。
【0037】
コマンド予測部220が備える予測テーブル230について、
図4を用いて説明する。予測テーブル230は、エントリ番号、第2のコマンドの指示の内容の送信先であるアドレス、第2のコマンドの指示の内容、及び第1のフラグ情報を含む。例えば、予測テーブル230に記載されているアドレスは、アドレスの出現確率により圧縮されていてもよい。圧縮の方式は、例えば、ハフマン・エンコードが挙げられるが、これらに限定されない。なお、予測テーブル230は様々な手段により、必要に応じて更新されても良い。
【0038】
ハフマン・エンコードを用いたアドレスの圧縮と、圧縮されたアドレスにより記述された予測テーブル250を用いた第2のコマンドの予測方法を、
図5を用いて説明する。
【0039】
ハフマン・エンコードは、実施されるコマンドの頻度が高いほど、短いビット列で識別ができるように圧縮する方法の1つである。
図5に例示した予測テーブル250の場合、エントリ番号が小さいコマンドであるほど、外部装置10が送信する確率が高い。そのため、エントリ番号が1のコマンドには、1bit目に0が与えられている。仮に、ある単位時間あたりのコマンド実施率を計算した場合、エントリ番号1から3までの実施確率の合計が98%であったとする。その場合、アドレスの先頭3bitまで受信した時点で出力した第2のコマンドは、98%の確率で第1のコマンドと一致することになる。
【0040】
続いて以下では、本実施形態に係る通信システム2の動作について、
図6~
図11を用いて説明する。
図6~
図8は、通信処理部310が外部装置40に対するコマンドの送信を待ち合わせる必要がない場合(受信した第1のフラグ情報が0を示す場合)の動作を示す。
【0041】
まず、第1のコマンドと第2のコマンドとが一致する場合の動作について、
図6を用いて説明する。
【0042】
まず、外部装置10が、通信装置200に第1のコマンドをアドレス部分から送信する(S201)。通信装置200は、通信処理部210を用いて外部装置10から第1のコマンドの受信を開始する。通信処理部210は、1bit受信するごとに、受信したアドレスを1bitずつコマンド予測部220に転送する(S202)。コマンド予測部220は、予測テーブル230または予測テーブル250を用いて第1のコマンドを予測する(S203)。ここでは、アドレスの先頭数bitからアドレスと指示の内容を予測する。そして、第1のコマンドを予測できた時点で、コマンド予測部220は、予測したコマンドを第2のコマンドとして通信処理部210に出力する(S204)。また、コマンド予測部220は、第1のフラグ情報を通信処理部210に出力する(S204)。例えば、受信したアドレスの先頭3bitでアドレスの送信先と指示の内容が予測できた場合、コマンド予測部220は、予測したコマンドを第2のコマンドとして通信処理部210に出力し、第2のコマンドに対応した第1のフラグ情報も通信処理部210に出力する。通信処理部210は、第2のコマンド及び第1のフラグ情報を通信装置300に送信する(S205)。通信装置300における通信処理部310は、第2のコマンドと第1のフラグ情報とを通信装置200から受信する。通信装置300は、第1のフラグ情報を確認する(S206)。第1のフラグ情報が0を示す(第2のコマンドの送信を待ち合わせる必要がない)場合、通信装置300は、第2のコマンドを外部装置40に送信する(S207)。なお、第1のフラグ情報が1を示す場合(第2のコマンドの送信を待ち合わせる必要がある場合)の動作は後述する。
【0043】
外部装置40は、第2のコマンドを通信装置300から受信し、第2のコマンドに含まれる指示の内容を実行する(S208)。一方、通信装置200における通信処理部210は、第1のコマンドの受信を完了する(S209)と、第1のコマンド及び第2のコマンドを比較部240に転送する。比較部240は、第1のコマンドと第2のコマンドとを比較する(S210)。第1のコマンドと第2のコマンドとが一致する場合(S211)、通信処理部210は第2のコマンドに対する応答信号(ACK)の転送や、第2のコマンドに基づく外部装置10と外部装置40の間で送受信されるデータの転送を行う(S212)。なお、第1のコマンドと第2のコマンドとが一致しない場合の動作は、後述する。
【0044】
これにより、本実施形態に係る通信システム2は、外部装置10が意図しない影響を第2のコマンドにより外部装置40に与えることを防ぎ、外部装置10が送信したコマンドに対する応答のレイテンシを短縮することができる。
【0045】
次に、第1のコマンドと第2のコマンドとが一致しない場合、特にアドレスが一致しない場合の動作について、
図7を用いて説明する。S201~S210の動作は、上述の動作と同一である。通信装置200の比較部240は、第1のコマンドと第2のコマンドとのアドレスが一致しないと判定する(S213)。S207において第2のコマンドは既に外部装置40に送信されているため、通信処理部210はS212と同様の動作を実行する。通信処理部210は、第1のコマンドを、第1のコマンドに記載されたアドレスに対して送信する(S214)。ここで、第1のコマンドに記載されたアドレスが、通信装置300とは異なる通信装置を示す場合について説明する。
図23Aは、実施形態に係る通信システムの別の構成例を示す図である。
図23Aの通信システムは、
図3と同様に、外部装置10、通信装置200、通信装置300、及び外部装置40を含む。さらに、
図23Aの通信システムは、通信装置400、及び外部装置50を含む。通信装置400は、通信処理部410を含む。ここで例えば、第1のコマンドに記載されたアドレスが、通信装置400を示す場合、通信処理部210は、第1のコマンドを通信装置400を介して外部装置50に送信する。外部装置50は第1のコマンドを実行する。なお、
図6及び
図7は第2のコマンドにおける指示の内容がリード又はライト(Write)の場合の例であるが、第2のコマンドは、これらに限定されない。
【0046】
以上の動作によれば、本実施形態に係る通信システム2では、コマンドの予測において誤ったアドレスにコマンドを送信してしまった場合でも、通信装置200はコマンドのキャンセルを行わない。よって、無駄なキャンセルを防ぐことで、通信リソースの浪費を防ぐことができる。
【0047】
次に、第1のコマンドと第2のコマンドとが一致しない場合、特に指示の内容が一致しない場合の動作について、
図8を用いて説明する。S201~S210の動作は上述の動作と同一である。比較部240は、第1のコマンドと第2のコマンドとの指示の内容が一致しないと判定する(S215)。通信処理部210は、第2のコマンドに対するACKの転送や、第2のコマンドに基づく外部装置10と外部装置40の間で送受信されるデータの転送を中止する(S216)。
【0048】
通信処理部210は、第1のコマンドを通信装置300に送信する(S217)。通信装置300は、第1のコマンドを外部装置40に送信する(S217)。外部装置40は、第1のコマンドを実行する(S218)。以上の動作により、通信システム2では、誤ったコマンドが通信装置200の様々なリソースを消費することを防ぐことができる。
【0049】
次に、
図9~
図11を用いて通信処理部310が第2のコマンドの送信を待ち合わせる必要がある場合(第1のフラグ情報が1を示す場合)の動作について説明する。
図9は、通信処理部310が第2のコマンドの送信を待ち合わせる必要があり(第1のフラグ情報が1を示す場合)、かつ、第1のコマンドと第2のコマンドとの比較結果が、第1のコマンドのアドレスと第2のコマンドのアドレスとが一致することを示す場合の動作を示す。S201~S205までの動作は上述の動作と同一である。通信装置300は、第1のフラグ情報が1を示す場合(S219)、受信した第2のコマンドを外部装置40に送信せず、第1のコマンドと第2のコマンドとの比較結果を待つ(S220)。通信装置200におけるS209~211の動作は上述の動作と同一である。通信処理部210は、比較結果を通信装置300に送信する(S221)。第1のコマンドと第2のコマンドとの比較結果が、第1のコマンドと第2のコマンドとが一致することを示すため、通信処理部310は第2のコマンドを外部装置40に送信する(S222)。なお、比較部240が出力する比較結果が、第1のコマンドと第2のコマンドとが異なることを示す場合の動作は後述する。外部装置40は、S208と同様に第2のコマンドを実行する。
【0050】
これにより、本実施形態に係る通信システム2は、外部装置10が意図しない影響を第2のコマンドにより外部装置40に与えることを防ぎ、外部装置10が送信したコマンドに対する応答のレイテンシを短縮することができる。
【0051】
次に、第1のフラグ情報が1を示し、かつ、第1のコマンドと第2のコマンドとの比較結果が、第1のコマンドのアドレスと第2のコマンドのアドレスとが一致しないことを示す場合について、
図10を用いて説明する。第1のフラグ情報が1(第2のコマンドの送信を待ち合わせる必要があること)を示し、かつ、第1のコマンドと第2のコマンドとの比較結果が、第1のコマンドのアドレスと第2のコマンドのアドレスとが一致しないことを示す場合において、通信処理部310が第2のコマンドを外部装置40に送信しないことを示すメッセージを、通信処理部310は通信装置200に送信する(S223)。S223以外の動作は上述の通りである。なお、通信処理部210は、S213において第1のコマンドのアドレスと第2のコマンドのアドレスとが一致しないことを判定したあと、直ちにS214の動作を実行してもよい。この場合、S221、S223の動作は不要となる。このような動作を実行する構成について、説明する。
図23Bは、実施形態に係る通信システムの別の構成例を示す図である。
図23Bの通信システムは、
図6と同様に、外部装置10、通信装置200、通信装置300、及び外部装置40を含む。さらに、
図23Bの通信装置300は、通信処理部310、及びタイマ320を含む。すなわち、通信装置300はタイマ320を備え、タイマ320は、S220の動作を実行した後に任意の時間を設定しカウントダウンを開始する。カウントが0となると、通信装置300は、比較結果の待ち合わせを中止し、第2のコマンドを破棄する。
【0052】
これにより、本実施形態に係る通信システム2では、予測したコマンド(第2のコマンド)が外部装置40に大きな影響を与える場合、外部装置10が意図しない大きな影響を第2のコマンドにより外部装置40に与えることを防ぎ、かつ第1のコマンドを意図した通信装置に送信することができる。
【0053】
次に、第1のフラグ情報が1を示し、かつ、第1のコマンドと第2のコマンドの比較結果が、第1のコマンドにおける指示の内容と第2のコマンドにおける指示の内容とが一致しない場合について、
図11を用いて説明する。
【0054】
図11では、一つ一つの動作はこれまでに説明したものと同一である。上述した動作を
図11のように組み合わせることで、本実施形態に係る通信システム2では、予測したコマンド(第2のコマンド)が外部装置40に大きな影響を与える場合、外部装置10が意図しない大きな影響を第2のコマンドにより外部装置40に与えることを防ぎ、かつ第1のコマンドを通信装置300に送信することができる。
【0055】
<第3の実施形態>
図12は、本実施形態に係る通信システム3の構成例を示す。本実施形態では、通信装置201は、通信処理部211とコマンド予測部220とを有する。
【0056】
通信処理部211は、第1の実施形態における通信処理部21と同様に、外部装置10及び通信装置301と接続する。通信処理部211は、外部装置40に対するコマンドを受信し、また通信装置301を含む他の装置へ、コマンドと第1のフラグ情報とを送信する。
【0057】
コマンド予測部220は、
図4に例示する予測テーブル230又は、
図5に例示する予測テーブル250を保持する。コマンド予測部220は、第2の実施形態におけるコマンド予測部220の動作と同様にコマンドを予測し、予測したコマンドを第2のコマンドとして出力する。また、コマンド予測部220は、第1の実施形態におけるコマンド予測部22と同様に、第1のフラグ情報を出力する。
【0058】
第1のフラグ情報は、通信装置301が第2のコマンドを外部装置40に送信することを待ち合わせる必要があるか否か、を示す。より具体的には、通信装置301が第2のコマンドを外部装置40に送信することを待ち合わせる必要がある場合には、第1のフラグ情報に1が付与される。また、第1のフラグ情報に1が付与されない第2のコマンドには、第1のフラグ情報に0が付与される。言い換えれば、第1のフラグ情報は、第2のコマンドが、外部装置40に大きな影響を与えるか否か、を示す。例えば、送信先が第1の実施形態に示したリード(Read)&クリア(Clear)レジスタであり、第2のコマンドにおいて指示の内容がリードを含む場合、第1のコマンドの予測が誤っている場合(第1のコマンドと第2のコマンドが一致しない場合)、当該レジスタに当該コマンドを送信すると意図しないデータの消去が行われる。このような場合、第2のコマンドは外部装置40に大きな影響を与える可能性があり、第2のコマンドにおける第1のフラグ情報には1が付与される。
【0059】
本実施形態における通信装置301は、通信処理部311と比較部321とを有する。通信処理部311は、第1の実施形態における通信処理部31と同様に、外部装置40及び通信装置201と接続する。通信処理部311は、外部装置40に対するコマンド及び第1のフラグ情報を受信する。加えて、通信処理部311は、第2の実施形態と同様に、第1のフラグ情報に基づいて、第2のコマンドを外部装置に送信するか否かの判断を行う。
【0060】
比較部321は、第2の実施形態における比較部240と同様に、第1のコマンドと、第2のコマンドとを比較し、比較結果を出力する。第1のコマンドとは、第1の実施形態で述べた通り、外部装置に対する指示の内容及び外部装置のアドレスを含む、外部装置10から実際に出力されるコマンドである。第2のコマンドとは、第1の実施形態で述べた通り、通信装置20が第1のコマンドの一部から予測し、出力するコマンドである。
【0061】
続いて以下では、本実施形態に係る通信システム3の動作について、
図13~
図18を用いて説明する。
図13~
図15は、通信装置301が受信した第1のフラグ情報が0を示す(第2のコマンドの送信を待ち合わせる必要がない)場合の動作を示す。
【0062】
まず、第1のコマンドと第2のコマンドとが一致する場合の動作について、
図13を用いて説明する。
【0063】
まず、外部装置10が、通信装置201に第1のコマンドをアドレス部分から送信する(S301)。通信装置201は、通信処理部211を用いて外部装置10から第1のコマンドの受信を開始する。通信処理部211は、1bit受信するごとに、受信したアドレスを1bitずつコマンド予測部220に転送する(S302)。コマンド予測部220は、予測テーブル230または予測テーブル250を用いて第1のコマンドを予測する(S303)。ここでは、アドレスの先頭数bitからアドレスと指示の内容を予測する。そして、第1のコマンドを予測できた時点で、コマンド予測部220は、予測したコマンドを第2のコマンドとして通信処理部211に出力する(S304)。また、コマンド予測部220は、第1のフラグ情報を通信処理部211に出力する(S304)。例えば、受信したアドレスの先頭3bitでアドレスの送信先と指示の内容が予測できた場合、コマンド予測部220は、予測したコマンドを第2のコマンドとして通信処理部211に出力し、第2のコマンドに対応した第1のフラグ情報も通信処理部211に出力する。通信処理部211は、第2のコマンド及び第1のフラグ情報を通信装置301に送信する(S305)。通信装置301における通信処理部311は、第2のコマンドと第1のフラグ情報とを通信装置201から受信する。通信装置301は、第1のフラグ情報を確認する(S306)。第1のフラグ情報が0を示す(第2のコマンドの送信を待ち合わせる必要がない)場合、通信処理部311は、第2のコマンドを外部装置40に送信する(S307)。なお、第1のフラグ情報が1を示す場合(第2のコマンドの送信を待ち合わせる必要がある)の動作は後述する。
【0064】
外部装置40は、第2のコマンドを通信装置301から受信し、第2のコマンドに含まれる指示の内容を実行する(S308)。
【0065】
一方、通信装置201における通信処理部211は、第1のコマンドの受信を完了する(S309)と、第1のコマンド及び第2のコマンドを通信装置301に送信する(S310)。
【0066】
比較部321は、第1のコマンドと第2のコマンドとを比較する(S311)。第1のコマンドと第2のコマンドとが一致する場合(S312)、通信処理部311は、第2のコマンドに対する応答信号(ACK)の転送や、第2のコマンドに基づく外部装置10と外部装置40の間で送受信されるデータの転送を行う(S313)。なお、第1のコマンドと第2のコマンドとが一致しない場合の動作は、後述する。
【0067】
これにより、第2の実施形態と同様に、本実施形態に係る通信システム3は、外部装置10が意図しない影響を第2のコマンドによって外部装置40に与えることを防ぎ、外部装置10が送信したコマンドに対する応答のレイテンシを短縮することができる。
【0068】
次に、第1のコマンドと第2のコマンドとが一致しない場合、特にアドレスが一致しない場合の動作について、
図14を用いて説明する。S301~S310の動作は、上述の動作と同一である。通信装置301の比較部321は、第1のコマンドと第2のコマンドとのアドレスが一致しないと判定する(S314)。S307において第2のコマンドは既に外部装置40に送信されているため、通信処理部311はS313と同様の動作を実行する。通信処理部311は、第1のコマンドを、第1のコマンドに記載されたアドレスに対して送信する(S315)。ここで、第1のコマンドに記載されたアドレスが、通信装置301とは別の通信装置を示す場合について説明する。
図23Cは、実施形態に係る通信システムの別の構成例を示す図である。
図23Cの通信システムは、
図12と同様に、外部装置10、通信装置201、通信装置301、及び外部装置40を含む。さらに、
図23Cの通信システムは、通信装置401、及び外部装置50を含む。通信装置401は、通信処理部411を含む。ここで例えば、第1のコマンドに記載されたアドレスが、通信装置401を示す場合、通信処理部311は、第1のコマンドを通信装置401を介して外部装置50に送信する。外部装置50は第1のコマンドを実行する。なお、
図13及び
図14におけるS313は第2のコマンドにおける指示の内容がリード(Read)又はライト(Write)の場合の例であるが、第2のコマンドは、これらに限定されない。
【0069】
これにより、本実施形態に係る通信システム3では、第2の実施形態と同様に、コマンドの予測において誤ったアドレスにコマンドを送信してしまった場合でも、通信装置301はコマンドのキャンセルを行わない。よって、無駄なキャンセルを防ぐことで、通信リソースの浪費を防ぐことができる。
【0070】
次に、第1のコマンドと第2のコマンドとが一致しない場合、特に指示の内容が一致しない場合の動作について、
図15を用いて説明する。S301~S310の動作は上述の動作と同一である。比較部321は、第1のコマンドと第2のコマンドとの指示の内容が一致しないと判定する(S316)。通信処理部311は、第2のコマンドに対するACKの転送や、第2のコマンドに基づく外部装置10と外部装置40の間で送受信されるデータの転送を中止する(S317)。
【0071】
通信処理部311は、第1のコマンドを外部装置40に送信する(S318)。外部装置40は、第1のコマンドを実行する(S319)。これにより、本実施形態に係る通信システム3では、第2の実施形態と同様に、通信システム3は、誤ったコマンドが通信装置301などの様々なリソースを消費することを防ぐことができる。
【0072】
次に、第1のフラグ情報が1を示す(第2のコマンドの送信を待ち合わせる必要がある)場合の動作について
図16~
図18を用いて説明する。まず、第1のコマンドと第2のコマンドとが一致する場合の動作について、
図16を用いて説明する。
【0073】
S301~S305までの動作は上述の動作と同一である。通信装置301は、第1のフラグ情報が1を示す場合(S320)、受信した第2のコマンドを外部装置40に送信せず、第1のコマンドを待つ(S321)。S309~S312までの動作は上述の動作と同一である。通信装置301は、S312の動作を実行した後、第1のコマンド又は第2のコマンドを外部装置40に送信する(S322)。
【0074】
外部装置40は、第1のコマンド又は第2のコマンドを実行する(S323)。
【0075】
これにより、本実施形態に係る通信システム3は、第2の実施形態と同様に、予測したコマンド(第2のコマンド)が外部装置40に大きな影響を与える場合、意図しない大きな影響を外部装置40に与えることを防ぐことができる。
【0076】
次に、第1のフラグ情報が1を示し、かつ、第1のコマンドと第2のコマンドとの比較結果が、第1のコマンドのアドレスと第2のコマンドのアドレスとが一致しないことを示す場合について、
図17を用いて説明する。第1のフラグ情報が1(第2のコマンドの送信を待ち合わせる必要がある場合)を示し、かつ、第1のコマンドと第2のコマンドとの比較結果が、第1のコマンドのアドレスと第2のコマンドのアドレスが一致しないことを示す場合において、通信処理部311が第2のコマンドを外部装置40に送信しないことを示すメッセージを、通信処理部311は通信装置201に送信する(S324)。通信処理部211は、通信処理部311が第2のコマンドを外部装置40に送信しないことを示すメッセージの受信を契機として、S315の動作を実行する。S324以外の動作は上述の通りである。
【0077】
これにより、本実施形態に係る通信システム3は、第2の実施形態と同様に、予測したコマンド(第2のコマンド)が外部装置40に大きな影響を与える場合、意図しない大きな影響を外部装置40に与えることを防ぎ、かつ第1のコマンドを意図した通信装置に送信することができる。
【0078】
次に、第1のフラグ情報が1を示し、かつ、第1のコマンドと第2のコマンドの比較結果が、第1のコマンドにおける指示の内容と第2のコマンドにおける指示の内容とが一致しない場合について、
図18を用いて説明する。
図18では、S325以外の動作はこれまでに説明したものと同一である。S325では、S324において第2のコマンドを送信しないメッセージを受信した際に、第1のコマンドを通信装置301に送信する。通信装置301は、第1のコマンドを外部装置40に送信する。なお、通信処理部311は、S316の動作を行った後に、第1のコマンドを外部装置40に対して送信してもよい。この場合、S324及びS325の動作は不要となる。S325と上述した動作を
図18のように組み合わせることで、本実施形態に係る通信システム3は、予測したコマンド(第2のコマンド)が外部装置40に大きな影響を与える場合、意図しない大きな影響を外部装置40に与えることを防ぎ、かつ第1のコマンドを外部装置40に送信することができる。
【0079】
<第4の実施形態>
図19は、本実施形態に係る通信システム4の構成例を示す。本実施形態では、通信装置202は、通信処理部212、コマンド予測部220を有する。
【0080】
通信処理部212は、第1の実施形態における通信処理部21と同様に、外部装置10及び通信装置302と接続する。通信処理部212は、外部装置40に対するコマンドを受信し、また通信装置302を含む他の装置へ、コマンドと第1のフラグ情報と、第2のフラグ情報とを送信する。また、通信処理部212は、第2のフラグ情報を出力し、通信装置302を含む他の装置へ第2のフラグ情報を送信する。
【0081】
第2のフラグ情報は、通信装置202が送信する第1のコマンドが、外部装置10が送信した実際のコマンドであることを示す。
【0082】
コマンド予測部220は、
図4に例示する予測テーブル230又は、
図5に例示する予測テーブル250を保持する。コマンド予測部220は、第1の実施形態におけるコマンド予測部22と同様にコマンドを予測し、予測したコマンドを第2のコマンドとして出力する。さらに、コマンド予測部220は、第1の実施形態におけるコマンド予測部22と同様に、第1のフラグ情報を出力する。
【0083】
第1のフラグ情報は、通信装置302が第2のコマンドを外部装置40に送信することを待ち合わせる必要があるか否か、を示す。より具体的には、通信装置302が第2のコマンドを外部装置40に送信することを待ち合わせる必要がある場合には、第1のフラグ情報に1が付与される。また、第1のフラグ情報に1が付与されない第2のコマンドには、第1のフラグ情報に0が付与される。
【0084】
言い換えれば、第1のフラグ情報は、第2のコマンドが、外部装置40に大きな影響を与えるか否か、を示す。例えば、送信先が第1の実施形態に示したリード(Read)&クリア(Clear)レジスタであり、第2のコマンドにおいて指示の内容がリードであり、第1のコマンドの予測が誤っている場合(第1のコマンドと第2のコマンドが一致しない場合)、当該レジスタに当該コマンドを送信すると意図しないデータの消去が行われる。このような場合、第2のコマンドは外部装置40に大きな影響を与える可能性があり、第2のコマンドにおける第1のフラグ情報には1が付与される。
【0085】
第1の実施形態と同様に、第1のフラグ情報に1が付与される条件は、具体的には、第2のコマンドのうち、外部装置が実行する場合に外部装置に対して大きな影響を与えることである。また、第1のフラグ情報に0が付与される条件は、第1のフラグ情報に1が付与されないことである。
【0086】
本実施形態における通信装置302は、通信処理部312を有する。通信処理部312は、第1の実施形態における通信処理部31と同様に外部装置40及び通信装置202と接続する。通信処理部312は、外部装置40に対するコマンドと第1のフラグ情報と比較結果とを通信装置202から受信する。第1のフラグ情報が0を示す(第2のコマンドの送信を待ち合わせる必要がない)場合には、通信処理部312は、外部装置40へコマンドを送信する。また、第1のフラグ情報が1を示す(第2のコマンドの送信を待ち合わせる必要がある)場合には、通信処理部312は、比較結果を受信するまでは外部装置40へコマンドを送信することを待ち合わせる。
【0087】
続いて以下では、本実施形態に係る通信システム4の動作について、
図20を用いて説明する。
図20は、通信処理部312が外部装置40に対するコマンドの送信を待ち合わせる必要がある場合(受信した第1のフラグ情報が1を示す場合)の動作を示す。
【0088】
まず、外部装置10が、通信装置202に第1のコマンドをアドレス部分から送信する(S401)。通信装置202は、通信処理部212を用いて外部装置10から第1のコマンドの受信を開始する。通信処理部212は、1bit受信するごとに、受信したアドレスを1bitずつコマンド予測部220に転送する(S402)。
【0089】
コマンド予測部220は、予測テーブル230または予測テーブル250を用いて第1のコマンドを予測する(S403)。ここでは、アドレスの先頭数bitからアドレスと指示の内容を予測する。そして、第1のコマンドを予測できた時点で、コマンド予測部220は、予測したコマンドを第2のコマンドとして通信処理部212に出力する(S404)。また、コマンド予測部220は、第1のフラグ情報を通信処理部212に出力する(S404)。例えば、受信したアドレスの先頭3bitでアドレスの送信先と指示の内容が予測できた場合、コマンド予測部220は、予測したコマンドを第2のコマンドとして通信処理部212に出力し、第2のコマンドに対応した第1のフラグ情報も通信処理部212に出力する。通信処理部212は、第2のコマンド及び第1のフラグ情報を通信装置302に送信する(S405)。通信装置302は、第1のフラグ情報が1を示す場合(S406)、受信した第2のコマンドを外部装置40に送信せず、第1のコマンドを待つ(S407)。
【0090】
一方、通信装置202における通信処理部212は第1のコマンドの受信を完了する(S408)と、通信装置202は第2のフラグ情報を出力する(S409)。通信処理部212は、第1のコマンド及び第2のフラグ情報を通信装置302に送信する(S410)。通信装置302は、第2のフラグ情報から第1のコマンドは外部装置10が送信した実際のコマンドであると確認すると(S411)、通信処理部312は、第1のコマンドを外部装置40に送信する(S412)。外部装置40は、第1のコマンドを実行する(S413)。
【0091】
これにより、本実施形態に係る通信システム4では、外部装置10が意図しない影響を第2のコマンドにより外部装置40に与えることを防ぎ、外部装置10が送信したコマンドに対する応答のレイテンシを短縮することができる。また、本実施形態に係る通信システム4は第2の実施形態、第3の実施形態で述べたような比較部を持つことなく、上述の効果を奏することができる。
【0092】
続いて以下では、上述の複数の実施形態に係る外部装置及び通信装置の構成例について説明する。
図21は、上述の複数の実施形態に係る外部装置の構成例である。上述の複数の実施形態に係る外部装置は、例えば、ネットワークインターフェース1001と、プロセッサ1002と、メモリ1003とを含む。
【0093】
ネットワークインターフェース1001は、例えば、上述の複数の実施形態に係る外部装置及び通信装置と通信するために使用される。ネットワークインターフェースは、例えば、ネットワークインターフェースカードや、バス装置を含んでもよい。
【0094】
プロセッサ1002は、例えば、マイクロプロセッサ、Micro Processing Unit(MPU)、又はCentral Processing Unit(CPU)を含んでもよい。プロセッサ1002は、複数のプロセッサを含んでもよい。
【0095】
メモリ1003は、揮発性メモリ及び不揮発性メモリによって構成される。メモリ1003は、物理的に独立した複数のメモリデバイスを含んでもよい。揮発性メモリは、例えば、Static Random Access Memory(SRAM)若しくはDynamic RAM(DRAM)又はこれらの任意の組み合わせである。不揮発性メモリは、マスクRead Only Memory(MROM)、Electrically Erasable Programmable ROM(EEPROM)、フラッシュメモリ、若しくはハードディスクドライブ、又はこれらの任意の組合せである。メモリ1003は、プロセッサ1002から離れて配置されたストレージを含んでもよい。この場合、プロセッサ1002は、ネットワークインターフェース1001又は図示されていないI/Oインターフェースを介してメモリ1003にアクセスしてもよい。
【0096】
メモリ1003は、上述の複数の実施形態で説明された外部装置による処理を行うための命令群およびデータを含む1又はそれ以上のソフトウェアモジュール(コンピュータプログラム)1004を格納してもよい。いくつかの実装において、プロセッサ1002は、当該ソフトウェアモジュール1004をメモリ1003から読み出して実行することで、上述の実施形態で説明された外部装置の処理を行うよう構成されてもよい。
【0097】
図22は、上述の複数の実施形態に係る通信装置の構成例である。上述の複数の実施形態に係る外部装置は、例えば、ネットワークインターフェース2001と、プロセッサ2002と、メモリ2003とを含む。
【0098】
ネットワークインターフェース2001は、例えば、上述の複数の実施形態に係る外部装置及び通信装置と通信するために使用される。ネットワークインターフェースは、例えば、ネットワークインターフェースカードや、バス装置を含んでもよい。
【0099】
プロセッサ2002は、例えば、マイクロプロセッサ、Micro Processing Unit(MPU)、又はCentral Processing Unit(CPU)を含んでもよい。プロセッサ2002は、複数のプロセッサを含んでもよい。
【0100】
メモリ2003は、揮発性メモリ及び不揮発性メモリによって構成される。メモリ2003は、物理的に独立した複数のメモリデバイスを含んでもよい。揮発性メモリは、例えば、Static Random Access Memory(SRAM)若しくはDynamic RAM(DRAM)又はこれらの任意の組み合わせである。不揮発性メモリは、マスクRead Only Memory(MROM)、Electrically Erasable Programmable ROM(EEPROM)、フラッシュメモリ、若しくはハードディスクドライブ、又はこれらの任意の組合せである。メモリ2003は、プロセッサ2002から離れて配置されたストレージを含んでもよい。この場合、プロセッサ2002は、ネットワークインターフェース2001又は図示されていないI/Oインターフェースを介してメモリ2003にアクセスしてもよい。
【0101】
メモリ2003は、上述の複数の実施形態で説明された外部装置による処理を行うための命令群およびデータを含む1又はそれ以上のソフトウェアモジュール(コンピュータプログラム)2004を格納してもよい。いくつかの実装において、プロセッサ2002は、当該ソフトウェアモジュール2004をメモリ2003から読み出して実行することで、上述の実施形態で説明された外部装置の処理を行うよう構成されてもよい。上述の実施形態で説明された外部装置の処理とは、例えば、上述の複数の実施形態で説明された通信処理部、コマンド予測部、予測テーブル、及び比較部を含む。
【0102】
なお、上述の複数の実施形態で説明された予測テーブル230又は予測テーブル250には、第2のコマンドごとに割り当てられる第3のフラグ情報を含んでもよい。第3のフラグ情報は、予測テーブル230に記載されている第2のコマンドが有効であるか否かを示す。コマンド予測部220は、第2のコマンドを出力する際に第3のフラグ情報を確認し、第3のフラグ情報が、第2のコマンドが有効である場合のみ、上述の複数の実施形態で説明された通信処理部に出力してもよい。
【0103】
なお、上述の複数の実施形態で説明された外部装置又は通信装置は、管理用インターフェース5を含んでもよい。
図23Dは、管理用インターフェース5を含む構成例であり、実施形態に係る通信システムの別の構成例を示す図である。
図23Dの通信システムでは、
図3の通信システムと同様に、外部装置10、通信装置200、通信装置300、及び外部装置40を含む。また
図23Dの通信装置200では、
図3と同様に、通信処理部210、コマンド予測部220、及び比較部240を含み、通信装置300は通信処理部310を含む。さらに、
図23Aの通信システムは、管理用インターフェース5を含んでいる。管理用インターフェース5は、上述の複数の実施形態で説明された外部装置と上述の複数の実施形態で説明された通信装置とで管理用のコマンドを送受信する。上述の複数の実施形態で説明された通信装置は、管理用のコマンドに従って、予測テーブル230又は予測テーブル250にデータを書き込む。
【0104】
上述した実施形態は本件発明者により得られた技術思想の適用に関する例に過ぎない。すなわち、当該技術思想は、上述した実施形態のみに限定されるものではなく、種々の変更が可能であることは勿論である。
(付記)
例えば、上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
(付記1)
第1の外部装置と、第2の外部装置と、第1の通信装置と、第2の通信装置と、を含む通信システムであって、
前記第1の通信装置は、コマンド予測部と、第1の通信処理部と、を有し、
前記コマンド予測部は、前記第1の外部装置から入力された第1のコマンドの一部から前記第1のコマンドにおけるアドレス及び指示の内容を予測し、予測した前記アドレス及び前記指示の内容を第2のコマンドとして出力し、
前記第2の通信装置が前記第2のコマンドの送信を待ち合わせる必要の有無を示す第1のフラグ情報を出力し、
前記第1の通信処理部は、前記第2のコマンド及び前記第1のフラグ情報を前記第2の通信装置に送信し、
前記第2の通信装置は、第2の通信処理部を有し、
前記第2の通信処理部は、
前記第2のコマンド及び前記第1のフラグ情報を受信し、
前記第1のフラグ情報が前記第2の通信装置が前記第2のコマンドの送信を待ち合わせる必要が無いことを示す場合に、前記第2のコマンドを前記第2の外部装置に送信する、
通信システム。
(付記2)
前記第1のコマンドの一部は前記アドレスを示す数値である、付記1に記載の通信システム。
(付記3)
前記アドレスを示す前記数値は、前記アドレスをハフマン圧縮したものである、付記2に記載の通信システム。
(付記4)
前記第2の通信処理部は、
前記第1のフラグ情報が前記第2の通信装置が前記第2のコマンドの実行を待ち合わせる必要があることを示す場合に、前記第2のコマンドを前記第2の外部装置に送信することを一時的に中止する、
付記1から3に記載の通信システム。
(付記5)
前記第1の通信装置は、さらに、
前記第1のコマンドと前記第2のコマンドとを比較し、比較結果を出力する第1の比較部を備え、
前記第1の通信処理部は、
前記比較結果を前記第2の通信装置に送信し、
前記第2の通信処理部は、
前記比較結果に基づき、前記第2のコマンドを前記第2の外部装置に送信するか否かを決定する、
付記4に記載の通信システム。
(付記6)
前記第1の通信処理部は、前記第1のコマンドの受信が完了した場合、
前記第1のコマンドを前記第2の通信装置に送信し、
前記第2の通信装置は、さらに、第2の比較部を有し、
前記第2の通信処理部は、前記第1のコマンドを前記第1の通信装置から受信し、
前記第2の比較部は、前記第1のコマンドと前記第2のコマンドとを比較し、比較結果を出力し、
前記第2の通信処理部は、前記比較結果に基づき、前記第2のコマンドを前記第2の外部装置に送信するか否かを決定する、
付記4に記載の通信システム。
(付記7)
前記第1の通信処理部は、前記第1のコマンドの受信が完了した場合、
前記第1のコマンドと第2のフラグ情報とを前記第2の通信装置に送信し、
前記第2のフラグ情報は、前記第1のコマンドが前記第1の外部装置から送られた実際のコマンドであることを示し、
前記第2の通信処理部は、前記第1のコマンド及び前記第2のフラグ情報を受信したことに応じて、前記第2の外部装置に前記第1のコマンドまたは前記第2のコマンドを送信する、
付記4に記載の通信システム。
(付記8)
前記第1の通信処理部は、
前記比較結果が前記第1のコマンドと前記第2のコマンドとが一致したことを示す場合、
前記第1のコマンド又は、前記比較結果が前記第1のコマンドと前記第2のコマンドが一致したことを示す第1のメッセージを前記第2の通信装置に送信し、
前記第2の通信処理部は、
前記第1のコマンド又は、前記第1のメッセージの受信に応じて、前記第1のコマンド又は前記第2のコマンドを前記第2の外部装置に送信する、
付記5に記載の通信システム。
(付記9)
前記第2の通信処理部は、
前記比較結果が前記第1のコマンドと前記第2のコマンドが一致したことを示す場合、
前記第1のコマンド又は前記第2のコマンドを前記第2の外部装置に送信する、
付記6に記載の通信システム。
(付記10)
前記第2の通信処理部は、
前記比較結果が前記第1のコマンドと前記第2のコマンドが一致しないことを示す場合、
前記第2のコマンドを前記第2の外部装置に送信しないことを示す第2のメッセージを前記第1の通信装置に送信し、
前記第1の通信処理部は、
前記第2のメッセージの受信に応じて、
前記第1のコマンドを、前記第1のコマンドに記載された前記アドレスが示す装置に送信する、
付記5または6に記載の通信システム。
(付記11)
前記第1の通信処理部は、
前記第1の通信装置は、さらに、第1の比較部を有し、
前記第1の比較部は、前記第1のコマンドと前記第2のコマンドを比較し、比較結果を出力し、前記比較結果が前記第1のコマンドと前記第2のコマンドが一致しないことを示す場合、
前記第1のコマンドを、前記第1のコマンドに記載された前記アドレスが示す装置に送信する、
付記1から3のいずれか1項に記載の通信システム。
(付記12)
前記第2の通信装置は、さらに、第2の比較部を有し、
前記第2の比較部は、前記第2の前記第1のコマンドと前記第2のコマンドを比較し、比較結果を出力し、
前記比較結果が前記第1のコマンドと前記第2のコマンドが一致しないことを示す場合、
前記第2の通信処理部は、
前記比較結果が前記第1のコマンドと前記第2のコマンドが一致しないことを示す第3のメッセージを前記第1の通信装置に送信し、
前記第1の通信処理部は、
前記第3のメッセージの受信に応じて、前記第1のコマンドを、前記第1のコマンドに記載された前記アドレスが示す装置に送信する、
付記1から3のいずれか1項に記載の通信システム。
(付記13)
前記第1の通信処理部は、さらに、第1の比較部を有し、
前記第1の比較部は、前記第1のコマンドと前記第2のコマンドを比較し、比較結果を出力し、
前記比較結果が前記第1のコマンドと前記第2のコマンドが一致しないことを示す場合、
前記第2のコマンドへの応答信号を前記第1の外部装置に送信せず、
前記第1のコマンドを、前記第1のコマンドに記載された前記アドレスが示す装置に送信する、
付記1から3のいずれか1項に記載の通信システム。
(付記14)
前記第2の通信装置は、さらに、第2の比較部を有し、
前記第2の比較部は、前記第1のコマンドと前記第2のコマンドを比較し、比較結果を出力し、
前記比較結果が前記第1のコマンドと前記第2のコマンドが一致しないことを示す場合、
前記第2の通信処理部は、前記第2のコマンドへの応答信号を前記第1の外部装置に送信せず、
前記応答信号を前記第1の外部装置に転送しないことを示す第4のメッセージを前記第1の通信装置に送信し、
前記第1の通信処理部は、
前記第4のメッセージの受信に応じて、前記第1のコマンドを、前記第1のコマンドに記載された前記アドレスが示す装置に送信する、
付記1から3のいずれか1項に記載の通信システム。
【0105】
この出願は、2020年3月27日に出願された日本出願特願2020-057408を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【0106】
1 通信システム
2 通信システム
3 通信システム
4 通信システム
5 管理用インターフェース
10 外部装置
20 通信装置
21 通信処理部
22 コマンド処理部
30 通信装置
31 通信処理部
40 外部装置
50 外部装置
200 通信装置
201 通信装置
202 通信装置
210 通信処理部
211 通信処理部
212 通信処理部
220 コマンド予測部
230 予測テーブル
240 比較部
250 予測テーブル
300 通信装置
301 通信装置
310 通信処理部
311 通信処理部
312 通信処理部
321 比較部
400 通信装置
1001 ネットワークインターフェース
1002 プロセッサ
1003 メモリ
1004 ソフトウェアモジュール
2001 ネットワークインターフェース
2002 プロセッサ
2003 メモリ
2004 ソフトウェアモジュール