次に、本発明を実施する実施形態について図面を参照しながら詳細に説明する。
<第1の実施形態>
本発明の第1の実施形態に係る通信処理装置101が有する構成について、図1を参照しながら詳細に説明する。図1は、本発明の第1の実施形態に係る通信処理装置101が有する構成を示すブロック図である。
第1の実施形態に係る通信処理装置101は、中継部102と、通信部103とを有する。
情報処理装置112は、通信処理装置101を有する。さらに、情報処理装置112は、通信路111を介して、情報処理装置110、及び、情報処理装置113と通信することができる。また、情報処理システム114は、情報処理装置110と、情報処理装置112と、情報処理装置113と、通信路111とを含む。
情報処理システム114において、情報処理装置112は、情報処理装置110及び情報処理装置113と、通信路111を介して信号等を送受信することができる。一方、情報処理システム114において、情報処理装置113は、通信路111を介して、情報処理装置112と通信することができる。すなわち、図1に示す例において、情報処理装置113は、情報処理装置112を経由しなければ、情報処理装置110と通信することができない。すなわち、図1に示す例において、情報処理装置113は、直接、情報処理装置110と通信することができない。
たとえば、通信路111は、通信ネットワークであってもよいし、信号等を送受信する配線(バス)等であってもよい。
説明の便宜上、情報処理装置110は、通信路111を介して、情報処理装置112(または、情報処理装置113)に、通信処理等を実行するリクエストを送信するとする。情報処理装置112(または、情報処理装置113)は、該リクエストを受信するのに応じて、通信処理を開始することができる。図1に示す例において、情報処理システム114は、3台の情報処理装置を有するが、必ずしも3台でなくともよい。また、ある情報処理装置が、通信路111を介して、直接、通信することができることを、「隣接している」と表す。図1に示す例において、情報処理装置112は、情報処理装置110及び情報処理装置113に隣接している。一方、情報処理装置113は、情報処理装置112に隣接しているが、情報処理装置110には隣接していない。
まず、情報処理装置112が、自装置宛てのリクエストを受信しない場合における処理について説明する。
中継部102は、通信路111を介して、隣接している情報処理装置(たとえば、情報処理装置110、以降、「第1情報処理装置」と表す)から、転送対象である転送データと、通信路111が使用されているか否かを表す通信路情報とを受信する。次に、中継部102は、受信した転送データと、受信した通信路情報とを、隣接している情報処理装置(たとえば、情報処理装置113、以降、「第2情報処理装置」と表す)に送信する。
たとえば、通信路情報が表す値は、通信路111が使用されている場合に1であり、通信路111が使用されていない場合に0である。
次に、図2を参照しながら、情報処理装置112が、自装置宛てのリクエストを受信した場合における処理について詳細に説明する。図2は、第1の実施形態に係る通信処理装置101における処理の流れを示すフローチャートである。
情報処理装置110は、情報処理装置112が通信処理を実行することを要求するリクエストを、情報処理装置112に送信する。
通信部103は、該リクエストを受信し、受信したリクエストが自装置宛てであるか否かを判定する(ステップS101)。
通信部103は、受信したリクエストが自装置宛てであると判定する場合に(ステップS101にてYES)、通信路111に関する通信路情報を読み取る(ステップS102)。
通信部103は、読み取った通信路情報に基づいて、通信路111が使用されているか否かを判定する(ステップS103)。たとえば、通信部103は、通信路情報が1である場合に、通信路111が使用されていると判定する。また、たとえば、通信部103は、通信路情報が0である場合に、通信路111が使用されていないと判定する。
次に、通信部103は、通信路111が使用されていない場合に(ステップS103にてNO)、通信路111を介して、受信したリクエストに応じた通信処理を開始する。たとえば、受信したリクエストが、情報処理装置112が記憶する10個の送信データを送信するリクエストであれば、通信部103は、該送信データを隣接している情報処理装置(たとえば、情報処理装置113)に送信する(ステップS104)。尚、この場合に、通信部103は、必ずしも、隣接している情報処理装置のすべてに、送信データを送信しなくてもよく、隣接している情報処理装置のうち、少なくとも1つの情報処理装置に送信すればよい。
さらに、通信部103は、通信路111が使用されていることを表す通信路情報を作成し、通信路111を介して、作成した通信路情報を、隣接している情報処理装置(たとえば、情報処理装置113)に送信する。隣接している情報処理装置が複数である場合に、通信部103は、隣接している各情報処理装置に、作成した通信路情報を送信する(ステップS105)。
その後、通信部103は、リクエストに応じた通信処理が完了(終了)するのに応じて、通信路が使用されていないことを表す通信路情報を作成する。通信部103は、通信路111を介して、作成した通信路情報を、隣接している情報処理装置(たとえば、情報処理装置113)に送信する。
一方、ステップS101にてNOの場合には、中継部102が、上述したような処理を実行する。
また、ステップS103にてYESの場合に、通信部103は、ステップS104及びステップS105における処理を実行しない。この場合に、通信路情報は、通信路111が使用されている状態を表す。したがって、通信部103は、通信路111を介して通信処理を開始することができない。さらに、通信部103は、通信路情報に基づき、通信路111が使用されなくなるまで待ってもよい。通信部103は、通信路111が使用されていなくなった場合に、ステップS104及びステップS105における処理を実行する。
次に、第1の実施形態に係る通信処理装置101に関する効果について説明する。
通信処理装置101によれば、短期間に通信処理を完了することができる。
この理由は、実際に通信路が使用されているか否かを表す通信路情報に基づき、通信処理が制御されるからである。
通信部103は、マスタ等の情報処理装置から、送信対象である送信データを送信するリクエストを受信した場合に、通信路情報に基づいて、通信路が使用されているか否かを判定する。すなわち、通信処理装置101は、特許文献1乃至特許文献4に開示されるような通信処理装置が実行するような予測したタイミングではなく、実際に通信路が使用されているか否かに基づいて、通信処理を実行する。したがって、通信処理が実行されるタイミングが正確であるので、本実施形態に係る通信処理装置101によれば、短期間に通信処理を完了することができる。
また、特許文献1乃至特許文献4に開示される情報処理システムは、通信路を使用するか否かを通信先に確認した後に送信するリクエスト−アクノーレッジ(REQ−ACK)方式を採用する。
一方、通信処理装置101は、通信路が使用されていることを表す通信路情報を、通信路を使用するのに応じて送信する。このため、各情報処理装置は、該通信路情報に基づき、通信路が使用されているか否かを判定することができる。この結果、本実施形態に係る通信処理装置101によれば、通信先に確認する必要がないので、通信処理時間を短縮することができる。
尚、図3に示すように、各情報処理装置が、通信路111を介してリング状に通信接続されている場合であっても、上述した通信処理装置101と同様な作用により、同様の効果を享受することができる。このことについて、以下に説明する。図3は、第1の実施形態に係る通信処理装置121が有する構成を示すブロック図である。
通信処理装置121は、中継部102と、通信部123とを有する
情報処理装置124は、通信処理装置121を有する。さらに、情報処理装置112は、通信路125を介して、情報処理装置110、及び、情報処理装置113と通信することができる。また、情報処理システム127は、情報処理装置110と、情報処理装置124と、情報処理装置113と、通信路125とを含む。
上述した通信路情報は、図3に示す例において、以下の2つの通信路情報を含む。すなわち、
・通信路125に関して、情報処理装置110から受信した(情報処理装置113に送信する)通信路情報(以降、「第1通信路情報」と表す)、
・通信路125に関して、情報処理装置113から受信した(情報処理装置110に送信する)通信路情報(以降、「第2通信路情報」と表す)。
情報処理装置124が自装置宛てのリクエストを受信しない場合における処理は、情報処理装置112が自装置宛てのリクエストを受信しない場合における処理と同様である。たとえば、中継部102は、通信路125を介して、情報処理装置110から、転送データと、第1通信路情報とを受信する。中継部102は、たとえば、受信した転送データと、受信した第1通信路情報とを、情報処理装置113に送信する。上述した処理と同様に、情報処理装置124は、第2通信路情報を送受信する。
情報処理装置124が自装置宛てのリクエストを受信する場合における処理に関しても、図3に例示す処理と同様である。
通信部123は、該リクエストを受信し、受信したリクエストが自装置宛てであるか否かを判定する。
通信部123は、受信したリクエストが自装置宛てであると判定する場合に、通信路125に関する第1通信路情報と、通信路125に関する第2通信路情報とを読み取る。
通信部123は、読み取った第1通信路情報と、読み取った第2通信路情報とに基づいて、通信路125が使用されているか否かを判定する。
通信部123は、第1通信路情報及び第2通信路情報において、いずれも、通信路125が使用されていないと判定する場合に、通信路125を介して、受信したリクエストに応じた通信処理を開始する。
たとえば、通信部123は、通信路125が使用されていることを表す第1通信路情報を作成し、作成した第1通信路情報を情報処理装置113に送信する。また、通信部123は、通信路125が使用されていることを表す第2通信路情報を作成し、作成した第2通信路情報を情報処理装置110に送信する。
その後、通信部123は、通信路125を介した通信処理が完了するのに応じて、通信路125が使用されていないことを表す第1通信路情報を作成し、作成した第1通信路情報を、通信路125を介して情報処理装置113に送信する。同様に、通信部123は、通信路125を介した通信処理が完了するのに応じて、通信路125が使用されていないことを表す第2通信路情報を作成し、作成した第2通信路情報を、情報処理装置110に送信する。
通信部123は、第1通信路情報及び第2通信路情報のいずれかにおいて、通信路125が使用されていることを表す場合に、通信路125を介して、受信したリクエストに応じた通信処理を実行しない。
尚、上述した処理において、通信処理装置121は、第1通信路情報を記憶可能な第1通信路情報記憶部(不図示)と、第2通信路情報を記憶可能な第2通信路情報記憶部(不図示)とを有してもよい。この場合に、中継部102は、受信した第1通信路情報を第1通信路情報記憶部に格納し、受信した第2通信路情報を第2通信路情報記憶部に格納する。
また、通信部123は、第1通信路情報記憶部から第1通信路情報を読み取り、第2通信路情報記憶部から第2通信路情報を読み取る。通信部123は、読み取った第1通信路情報と、読み取った第2通信路情報とに基づいて、通信路125が使用されているか否かを判定する。また、通信部123は、リクエストに応じた通信処理を実行する場合に、作成した第1通信路情報を第1通信路情報記憶部に格納し、作成した第2通信路情報を第2通信路情報記憶部に格納する。
<第2の実施形態>
次に、上述した第1の実施形態を基本とする本発明の第2の実施形態について説明する。
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図4と図5とを参照しながら、第2の実施形態に係る通信処理装置131が有する構成と、通信処理装置131が行う処理とについて説明する。図4は、本発明の第2の実施形態に係る通信処理装置131が有する構成を示すブロック図である。図5は、第2の実施形態に係る通信処理装置131における処理の流れを示すフローチャートである。
第2の実施形態に係る通信処理装置131は、中継部102と、通信部133とを有する。
情報処理装置134は、通信処理装置131を有する。さらに、情報処理装置134は、通信路135(または、通信路136)を介して、情報処理装置110、及び、情報処理装置113と通信することができる。情報処理システム137は、情報処理装置110と、情報処理装置134と、情報処理装置113と、通信路135と、通信路136とを含む。すなわち、本実施形態において、情報処理システム137は、複数の通信路を有する。
情報処理装置134が、自装置宛てのリクエストを受信しない場合における処理は、第1の実施形態に示した処理と同様である。
情報処理装置134が、自装置宛てのリクエストを受信した場合における処理について説明する。
通信部133は、受信したリクエストが自装置宛てであると判定する場合に(ステップS101にてYES)、通信路135に関する通信路情報、及び、通信路136に関する通信路情報を読み取る(ステップS202)。
通信部133は、読み取った2つの通信路情報に基づき、通信路135、または、通信路136のうち、使用されていない通信路を選ぶ(ステップS203)。通信部133は、選んだ通信路を介して、受信したリクエストに応じた通信処理を開始する(ステップS204)。さらに、通信部133は、選んだ通信路が使用されていることを表す通信路情報を作成し、作成した通信路情報を、隣接している情報処理装置(たとえば、情報処理装置113)に送信する(ステップS205)。
その後、通信部133は、リクエストに応じた通信処理が完了(終了)するのに応じて、選んだ通信路が使用されていないことを表す通信路情報を作成し、作成した通信路情報を、隣接している情報処理装置(たとえば、情報処理装置113)に送信する。
尚、いずれの通信路も使用されていない場合に、通信部133は、少なくとも一方の通信路を選ぶ。また、いずれの通信路も使用されている場合に、通信部133は、第1の実施形態と同様に、リクエストに応じた通信処理を開始しない。または、通信部133は、いずれかの通信路が使用されなくなるのを待つ。
次に、第2の実施形態に係る通信処理装置131に関する効果について説明する。
本実施形態に係る通信処理装置131によれば、短期間に通信処理を完了することができる。さらに、本実施形態に係る通信処理装置131によれば、通信ネットワークが複数の通信路を有する場合であっても、さらに短期間に通信処理を完了することができる。
この理由は、理由1及び理由2である。すなわち、
(理由1)第2の実施形態に係る通信処理装置131が有する構成は、第1の実施形態に係る通信処理装置101が有する構成を含むからである、
(理由2)通信部133が、複数の通信路の中から、使用されていない通信路を選び、選んだ通信路を介して送信データを送信するからである。
尚、通信路135、及び、通信路136は、それぞれ、特定の方向のみにデータ(情報)を送信可能な単方向バスであってもよい。この場合に、通信路135、及び、通信路136は、相互に、逆または略逆の方向に通信接続することが可能であってもよい。
<第3の実施形態>
次に、上述した第2(または第1)の実施形態を基本とする本発明の第3の実施形態について説明する。
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第2の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。
図6と図7とを参照しながら、第3の実施形態に係る通信処理装置141が有する構成と、通信処理装置141が行う処理とについて説明する。図6は、本発明の第3の実施形態に係る通信処理装置141が有する構成を示すブロック図である。図7は、第3の実施形態に係る通信処理装置141における処理の流れを示すフローチャートである。
第3の実施形態に係る通信処理装置141は、中継部102と、通信部133と、計測部144とを有する。通信処理装置141は、さらに、通信路情報記憶部145を有してもよい。
情報処理装置146は、通信処理装置141を有する。さらに、情報処理装置146は、通信路135(または、通信路136)を介して、情報処理装置110、及び、情報処理装置113と通信することができる。情報処理システム147は、情報処理装置110と、情報処理装置146と、情報処理装置113と、通信路135と、通信路136とを含む。すなわち、本実施形態において、情報処理システム147は、複数の通信路を有する。
情報処理装置146が、自装置宛てのリクエストを受信しない場合における処理は、第1の実施形態に示した処理と同様である。
情報処理装置146が、自装置宛てのリクエストを受信した場合における処理について説明する。
通信部133は、図5に示すステップS101、ステップS202、及び、ステップS203における処理を実行する。
次に、計測部144は、受信したリクエストに基づいて、通信部133が送信対象である送信データに関するデータ量を求める(ステップS301)。たとえば、情報処理装置146が5個の要素を送信する通信処理である場合に、計測部144が計測する要素数は5である。
通信部133は、受信したリクエストに基づいて、隣接している情報処理装置に送信データの一部を送信する。計測部144は、求めたデータ量から、通信部133が送信したデータ量を引き算することにより、以降の処理において送信対象であるデータ量を求める(ステップS301)。たとえば、送信したデータが、1つの要素である場合に、計測部144は、送信対象であるデータ量として、5から1を引く処理により4を求める。
次に、計測部144は、求めたデータ量が基準を満たすか否かに基づき、選んだ通信路に関する通信路情報を作成する(ステップS302)。たとえば、計測部144は、送信対象であるデータ量が、3未満である場合に、選んだ通信路が使用されていないことを表す通信路情報を作成し、3以上である場合に、選んだ通信路が使用されていることを表す通信路情報を作成する。あるいは、計測部144は、たとえば、送信対象であるデータ量が、1未満である場合に、選んだ通信路が使用されていないことを表す通信路情報を作成し、1以上である場合に、選んだ通信路が使用されていることを表す通信路情報を作成する。
尚、計測部144は、第1通信路情報、及び、第2通信路情報に関して異なる基準に基づいて、通信路情報を作成してもよい。たとえば、計測部144は、求めたデータ量が第1基準を満たすか否かに基づいて第1通信路情報を作成し、求めたデータ量が第2基準を満たすか否かに基づいて第2通信路情報を作成してもよい。
また、計測部144は、作成した第1通信路情報、及び、作成した第2通信路情報を通信路情報記憶部145に格納してもよい。
次に、通信部133は、計測部144が作成した通信路情報(すなわち、第1通信路情報、及び、第2通信路情報)を隣接している情報処理装置に送信する(ステップS303)。
尚、計測部144は、受信したリクエストに基づいて、上述した基準を算出してもよい。たとえば、計測部144は、受信したリクエストから、送信対象であるデータ量と、送信先となる情報処理装置とを特定し、特定したデータ量と、情報処理装置146から送信先までに要する通信時間とに基づいて、基準を算出してもよい。すなわち、計測部144は、受信したリクエストから算出する通信処理に要する期間に基づいて、基準を算出してもよい。
次に、第3の実施形態に係る通信処理装置141に関する効果について説明する。
本実施形態に係る通信処理装置141によれば、短期間に通信処理を完了することができる。さらに、本実施形態に係る通信処理装置141によれば、さらに、短期間に通信処理を完了することができる。
この理由は、理由1及び理由2である。すなわち、
(理由1)第3の実施形態に係る通信処理装置141が有する構成は、第2の実施形態に係る通信処理装置131が有する構成を含むからである、
(理由2)計測部144が、データ量に基づいて、通信処理に要する期間を算出し、該期間に基づいて、通信路情報を算出するからである。
したがって、計測部144は、より正確に通信処理に要する期間を算出するので、通信路が使用されていない期間を短くすることができる。
<第4の実施形態>
次に、上述した本発明の各実施形態を基本とする本発明の第4の実施形態について説明する。
本実施形態において、情報処理システムは、主に通信を制御するマスタである情報処理装置と、該マスタから受信した命令(指示)に基づき通信処理を実行するスレーブである情報処理装置とを含む。また、マスタ及びスレーブは、本発明の各実施形態に示した通信処理装置を含む。
図8及び図9を参照しながら、第4の実施形態に係る情報処理システム401が有する構成について説明する。図8は、本発明の第4の実施形態に係る情報処理システム401が有する構成を示すブロック図である。図9は、通信路が有する構成の一例を示すブロック図である。
情報処理システム401は、マスタ402と、複数のスレーブ(たとえば、スレーブA乃至スレーブH)と、通信路(すなわち、複数のバス)とを含む。マスタ402とスレーブとの間、及び、複数のスレーブ間においては、1つの方向のみに通信可能な単方向バス(以降、「バス」と表す)を介して通信接続可能である。
図8に示す例において、情報処理システム401は、通信可能なリング状に接続された通信路を有する。該通信路は、1つの方向のみに通信可能なバスと、該方向とは反対方向または略反対方向のみにバスとを含む。すなわち、図8に示す例において、通信路は、バス405と、バス404とを含む。
以降、説明の便宜上、スレーブXと、スレーブYとが、バスZを介して隣接している場合に、そのバスZの接続構成を、バスZ−XYと表すとする。たとえば、図9に示す具体例において、スレーブXとスレーブYとを通信接続するバス403を、バス403−XYと表すとする。同様に、たとえば、スレーブYとスレーブZとを通信接続するバス403の接続構成を、バス403−YZと表す。すなわち、バス403は、バス403−XYと、バス403−YZとを含む通信接続を表すとする。また、スレーブXと、マスタとが、バスZを介して隣接している場合に、そのバスZの接続構成を、バスZ−MXと表すとする。
バス403−XYは、たとえば、スレーブ418(スレーブX)からスレーブ419(スレーブY)に、通信処理に関するリクエストを送信可能なバスを表す。
バス404−YXは、たとえば、リクエストに応じて、スレーブ419(スレーブY)からスレーブ418(スレーブX)に、通信処理に関する送信データを送信可能なバスである。バス416−XYは、たとえば、スレーブ418(スレーブX)からスレーブ419(スレーブY)に、バス404に関する通信路情報(バス情報)を送信可能なバスを表す。バス415−YXは、たとえば、スレーブ419(スレーブY)からスレーブ418(スレーブX)に、バス404に関するバス情報を送信可能なバスを表す。
バス405−XYは、たとえば、リクエストに応じて、スレーブ418からスレーブ419に、通信処理に関する送信データを送信可能なバスを表す。バス413−XYは、たとえば、スレーブ418からスレーブ419に、バス405に関する通信路情報(バス情報)を送信可能なバスを表す。バス412−YXは、たとえば、スレーブ419からスレーブ418に、バス405に関するバス情報を送信可能なバスを表す。
尚、上述した例において、スレーブ418とスレーブ419との間におけるバスを例に説明したが、スレーブ419とスレーブ420との間においても同様の構成を有する。また、通信ネットワークは、上述したバス等の通信路を含む。
説明の便宜上、通信路情報(バス情報)を、バスを介して送信するとするが、必ずしも、専用のバスを介して送信する必要はない。すなわち、バス情報は、たとえば、あるスレーブから、異なるスレーブに送信可能であれば、送信する態様は上述した例に限定されない。
説明の便宜上、情報処理システム401は、スレーブA乃至スレーブHなる8台のスレーブを含むとする。尚、スレーブの台数は、図8に例示した8台に限定されず、他の台数であってもよい。
図8及び図9を参照すると、マスタ402は、通信処理に関するリクエストを、バス403−MAを介してスレーブAに送信する。スレーブAは、バス403−MAを介して該リクエストを受信し、受信したリクエストを、バス403−ABを介してスレーブBに送信する。スレーブBは、バス403−ABを介して該リクエストを受信し、受信したリクエストを、バス403−BCを介してスレーブCに送信する。以降、同様に、マスタ402が送信したリクエストは、バス403(すなわち、バス403−CD、バス403−DE等)を介して、たとえば、スレーブHまで送信される。
また、マスタ402は、バス403−MAを介して、複数のリクエストを、順次、スレーブAに送信することができる。たとえば、マスタは、バス403−MAを介して、先発のリクエストをスレーブAに送信する。次に、スレーブAは、バス403−MAを介して、先発のリクエストを受信し、受信した先発のリクエストを、バス403−ABを介してスレーブBに送信する。その後、マスタ402は、バス403−MAを介して、後発のリクエストをスレーブAに送信することができる。同様に、送信先のスレーブが、送信元のスレーブ(または、マスタ)が送信したリクエストを受信した場合に、送信元のスレーブ(または、マスタ)は、該リクエストと異なるリクエストを送信することができる。すなわち、この場合に、マスタ402とスレーブHとの間におけるバス(バス403−MA、バス403−AB、バス403−BC等)には、複数のリクエストが存在する。
次に、マスタ402が、バス403−MAを介して、後述のリクエスト1乃至リクエスト3を送信する場合の例を用いながら、図8に示すリング状のバス構成を有する情報処理システム401が行う処理について説明する。すなわち、この例において、マスタ402が送信するリクエストは、リクエスト1乃至リクエスト3であるとする。すなわち、
(リクエスト1)スレーブCは、自装置が有する9個の要素からなるデータをマスタに送信する、
(リクエスト2)スレーブDは、自装置が有する2個の要素からなるデータをマスタに送信する、
(リクエスト3)スレーブEは、自装置が有する8個の要素からなるデータをマスタに送信する。
図10A乃至図10Hは、第4の実施形態に係る情報処理システム401における処理の流れを示すタイミングチャートである。
説明の便宜上、図10A、図10G、及び、図10Hに示す例において、各信号は、該リクエストに付した番号を用いて表示するとする。
また、説明の便宜上、マスタ402、及び、スレーブA乃至スレーブHは、情報処理システム401のシステムクロックに応動して、データ及びリクエスト等を送信するとする。
図10A乃至図10Hに関して、いずれも、横方向は時刻を表し、矢印の方向に時刻が進むことを表す。また、図10Aに関して、縦方向は、各情報処理装置の名称(第1列)、及び、複数の情報処理装置間において送受信されるデータ(信号、または、信号を伝送する装置)の名称(第2列)を表す。図10B乃至図10Fに関して、縦方向は、情報処理装置名と、該情報処理装置に含まれる機器名が列挙されている。また、図10G及び図10Hに関して、縦方向は、情報処理装置名と、該情報処理装置に接続されている通信路名とが列挙されている。また、図10A、及び、図10C乃至図10Hに関しては、矢印の方向の順に該データ(信号)が進むことを表す。
たとえば、図10AにおけるL1行は、情報処理装置の名称としてマスタ、及び、信号の名称としてリクエストが記載されている。したがって、L1行は、マスタが送受信するリクエストに関する処理であることを表すので、時刻1にて、マスタ(L1行)は、リクエスト1を処理する。たとえば、L1行において、時刻1には、1(時刻1にて示された列の値)が記載されている。L1行及びL2行を参照することにより、これは、マスタ402が、時刻1にて、スレーブAにリクエスト1を送信することを表す。さらに、たとえば、L1行の時刻2には、2(時刻2にて示された列の値)が記載されている。L1行及びL2行を参照することにより、これは、マスタ402が、時刻1にて、スレーブAにリクエスト2を送信することを表す。すなわち、時刻2にて、スレーブAのリクエストが1なので、これは、マスタからリクエスト1が伝搬したことを表す。同様に、リクエスト1は、時刻3にて、スレーブBまで到達する。図10Aにおける○を付した数字は、リクエストが受信されたことを表すので、時刻4にてリクエスト1は、スレーブCにて受信される。
たとえば、図10AにおけるL2行は、情報処理装置の名称としてスレーブA、及び、信号の名称としてリクエストが記載されている。したがって、L2行は、スレーブAが送受信するリクエストに関する処理であることを表す。たとえば、L2行において、時刻2には、1(時刻2にて示された列の値)が記載されている。L1行乃至L3行を参照することにより、これは、スレーブAが、時刻2にて、マスタ402が送信したリクエスト1を受信し、スレーブBに受信したリクエスト1を送信することを表す。さらに、たとえば、L2行において、時刻3には、2(時刻3にて示された列の値)が記載されている。L1行乃至L3行を参照することにより、これは、スレーブAが、時刻3にて、マスタ402が送信したリクエスト2を受信し、スレーブBに受信したリクエスト2を送信することを表す。
たとえば、図10BにおけるL12行は、情報処理装置の名称としてスレーブC、及び、スレーブCが有する計測部が記載されている。L12行は、スレーブCが有する計測部における処理にて計測する値を表す。また、たとえば、L12行の時刻4に、9が記載されている。これは、スレーブCが有する計測部が、時刻4にて、9という数値を計測することを表す。また、L13行の時刻6に、2が記載されている。これは、スレーブDが有する計測部が、時刻6にて、2という数値を計測することを表す。
まず、マスタ402は、時刻1にて、バス403−MAを介して、リクエスト1をスレーブA(図10AにおけるL2行)に送信する(図10AにおけるL1行の時刻1)。スレーブAは、時刻2にて、バス403−MAを介してリクエスト1を受信し、バス403−ABを介して、リクエスト1をスレーブB(図10AにおけるL3行)に送信する(図10AにおけるL2行の時刻2)。スレーブBは、時刻3にて、バス403−ABを介してリクエスト1を受信し、バス403−BCを介して、リクエスト1をスレーブC(図10AにおけるL4行)に送信する(図10AにおけるL3行の時刻3)。スレーブCは、時刻4にて、バス403−BCを介してリクエスト1を受信する(図10AにおけるL4行の時刻4)。この例では、マスタ402が送信したリクエストは、経由するバスの本数に応じた期間を経て、送信先であるスレーブに到達する。
次に、スレーブCは、バス403−BCを介してリクエスト1を受信するのに応じて、バス404に関して、バス415−DCを介して受信したバス情報(通信路情報)を記憶しているバス情報記憶部(「バス情報1F」と表す)から値を読み取る。スレーブCは、読み取った値に基づき、バス404が使用されているか否かを判定する。さらに、スレーブCは、バス404に関して、バス416−BCを介して受信したバス情報を記憶しているバス情報記憶部(「バス情報1B」と表す)から値を読み取る。スレーブCは、読み取った値に基づき、バス404が使用されているか否かを判定する。スレーブCは、いずれのバス情報においても、バス404が使用されていないことを表す場合に、バス404を介して、リクエスト1に応じた通信処理を開始する(図10Gにおける第L55行おける時刻4)。スレーブCは、いずれかのバス情報において、バス404が使用されていることを表す場合に、バス404を介して、リクエスト1に応じた通信処理を開始しない。この例の場合に、2つのバス情報は、いずれも、時刻4にて、バス404が使用されていないことを表すので、スレーブCは、時刻4にて、バス404−CBを介して1つの要素をスレーブBに送信する(図10GにおけるL55行の時刻4)。
一方、スレーブCにおける計測部(図10BにおけるL12行)は、ある時刻において、スレーブCが送信する対象である送信データの要素数を計測する。該計測部は、時刻4にて、リクエスト1に応じて9個なる要素数を計測する(図10BにおけるL12行の時刻4)。以降、計測部は、スレーブCが、バス404−CBを介して1つの要素をスレーブBに送信するのに応じて、該要素数を1つ減じる(図10BにおけるL12行の時刻5乃至12)。したがって、リクエスト1が9個の要素を含むデータに関するリクエストであるので、計測部は、時刻13にて、0個なる要素数を計測する(図10BにおけるL12行の時刻13)。
スレーブCは、該要素数に基づき、バス404に関する通信路情報を作成する。たとえば、スレーブCは、通信処理を開始した後に、該要素数が3以上である場合に、該バス404が使用されていることを表す通信路情報を作成する。また、スレーブCは、通信処理を開始した後に、該要素数が3未満である場合に、バス404が使用されていないことを表す通信路情報を作成する。たとえば、通信路情報の値が1の場合には、該バス404が使用されていることを表し、通信路情報の値が0の場合には、バス404が使用されていないことを表す。
上述した例の場合に、スレーブCは、時刻4にて通信処理を開始していないので、バス404が使用されていないことを表す第1通信路情報を作成する(図10CにおけるL20行の時刻4)。スレーブCは、時刻5にて通信処理を実行し、さらに、該要素数が3以上であるので、バス404が使用されていることを表す第1通信路情報を作成する(図10CにおけるL20行の時刻5)。スレーブCは、時刻10にて、該要素数が3以上(図10BにおけるL12行の時刻10)であるので、バス404が使用されていることを表す第1通信路情報を作成する(図10CにおけるL20行の時刻10)。また、スレーブCは、時刻11にて、該要素数が3未満(図10BにおけるL12行の時刻11)であるので、バス404が使用されていないことを表す第1通信路情報を作成する(図10CにおけるL20行の時刻11)。
スレーブCは、作成した第1通信路情報をバス情報1Bに格納し、さらに、作成した第1通信路情報を、バス416−CDを介してスレーブDに送信する(図10CにおけるL20行の時刻4)。スレーブDは、バス416−CDを介して該第1通信路情報を受信し、受信した第1通信路情報をバス情報1Bに格納し、さらに、受信した第1通信路情報を、バス416−DEを介してスレーブEに送信する(図10CにおけるL21行の時刻5)。
この例において、通信路情報は、通信処理を開始した後に1に設定されるので、時刻4にて0である。通信路情報は、通信処理を開始しているので、時刻5にてスレーブDに伝搬した場合に1に設定される(図10CにおけるL21行の時刻5)。
以降、同様に、スレーブEは、バス416−DEを介して第1通信路情報を受信し、受信した第1通信路情報をバス情報1Bに格納し、受信した第1通信路情報を、バス416−EFを介して送信先のスレーブFに送信する(図10CにおけるL22行の時刻6)。すなわち、スレーブCがバス416−CDを介して送信した第1通信路情報、バス416を介して、スレーブD、スレーブE、スレーブF、スレーブG、及び、スレーブHに順次伝搬する。すなわち、該バス情報は、単方向バスを介して、スレーブD乃至スレーブHにブロードキャスト(放送)される。
さらに、スレーブCは、計測部が計測した要素数に基づき、バス415を介して送信する第2通信路情報を作成する(図10DにおけるL31行)。たとえば、スレーブCは、通信処理を開始した後に、該要素数が1以上である場合に、バス404が使用されていることを表す第2通信路情報を作成する。また、スレーブCは、通信処理を開始した後に、該要素数が1未満である場合に、バス404が使用されていないことを表す第2通信路情報を作成する(図10DにおけるL31行)。
上述した例の場合に、スレーブCは、時刻4にて通信処理を開始していないので、バス404が使用されていないことを表す第2通信路情報を作成する(図10DにおけるL31行の時刻4)。スレーブCは、時刻5にて通信処理を実行し、さらに、該要素数が1以上であるので、バス404が使用されていることを表す第2通信路情報を作成する(図10DにおけるL31行の時刻5)。スレーブCは、時刻12にて、該要素数が1以上であるので、バス404が使用されていることを表す第2通信路情報を作成する(図10DにおけるL31行の時刻4乃至12)。また、スレーブCは、時刻13にて、該要素数が1未満であるので、バス404が使用されていないことを表す第2通信路情報を作成する(図10DにおけるL31行の時刻13)。
スレーブCは、作成した第2通信路情報を、バス415−CBを介してスレーブBに送信する(図10DにおけるL31行の時刻4乃至12)。スレーブBは、バス415−CBを介して該第2通信路情報を受信し、受信した第2通信路情報を、バス415−BAを介してスレーブAに送信する(図10DにおけるL32行の時刻5乃至13)。スレーブAは、バス415−BAを介して、該第2通信路情報を受信する(図10DにおけるL33行の時刻6乃至14)。すなわち、スレーブCがバス415−CBを介して送信した第2通信路情報は、バス415を介して、スレーブB、及び、スレーブAに順次伝搬する。すなわち、該バス情報は、バス415を介して、スレーブB及びスレーブAにブロードキャストされる。
一方、マスタ402は、時刻2にて、バス403−MAを介してリクエスト2をスレーブAに送信する(図10AにおけるL1行の時刻2)。スレーブAは、時刻3にて、バス403−MAを介してリクエスト2を受信し、リクエスト2を、バス403−ABを介してスレーブBに送信する(図10AにおけるL2行の時刻3)。以降、リクエスト1と同様に、スレーブDは、時刻6にて、バス403−CDを介してリクエスト2を受信する(図10AにおけるL5行の時刻6)。
次に、スレーブDは、バス403−CDを介してリクエスト2を受信するのに応じて、バス404に関するバス情報1Bを参照し、バス404が使用されているか否かを判定する。さらに、スレーブDは、バス404に関するバス情報1Fを参照し、バス404が使用されているか否かを判定する。上述した例の場合に、時刻6にてバス404が使用されていることを通信路情報が表すので(図10CにおけるL21行の時刻6)、スレーブDは、バス404が使用されていると判定する。
この場合に、スレーブDは、バス405に関して、バス412−EDから受信したバス情報(通信路情報)を記憶しているバス情報記憶部(「バス情報2B」と表す)を参照し、バス405が使用されているか否かを判定する。同様に、スレーブDは、バス405に関して、バス413−CDから受信したバス情報(通信路情報)を記憶しているバス情報記憶部(「バス情報2F」と表す)を参照し、バス405が使用されているか否かを判定する。上述した例の場合に、いずれのバス情報も、バス405が使用されていないことを表すので(図10EにおけるL37行の時刻6、図10FにおけるL46行の時刻6)、スレーブDは、バス405が使用されていないと判定する。したがって、スレーブDは、バス405を介して、リクエスト2に応じた通信処理を開始する(図10HにおけるL62行の時刻6)。
以降、上述した処理と同様に、スレーブDは、バス情報を送信する処理、及び、要素を送信する処理等を実行する。
マスタ402は、時刻3にて、バス403−MAを介してリクエスト3をスレーブAに送信する(図10AにおけるL1行の時刻3)。スレーブAは、時刻4にて、バス403−MAを介してリクエスト3を受信し、リクエスト3を、バス403−ABを介してスレーブBに送信する(図10AにおけるL2行の時刻4)。以降、リクエスト1と同様に、スレーブEは、時刻8にて、バス403を介してリクエスト3を受信する(図10AにおけるL6行の時刻8)。
スレーブEは、リクエスト3を受信するのに応じて、バス404に関するバス情報1Bを参照し、バス404が使用されているか否かを判定する(図10CにおけるL22行の時刻8)。さらに、スレーブEは、バス405に関するバス情報1Fを参照し、バス404が使用されているか否かを判定する(図10DにおけるL29行の時刻8)。上述した例の場合に、バス情報1Bが記憶する値は、バス404が使用されていることを表すので、スレーブEは、バス404が使用されていると判定する。さらに、スレーブEは、バス情報2B、及び、バス情報2Fにおける値に基づき、上述した判定を実行する(図10EにおけるL38行の時刻8、図10FにおけるL45行の時刻8)。
上述した例の場合に、バス情報1Bにおけるバス情報は、バス404が使用されていることを表す(図10CにおけるL22行の時刻8)。また、バス情報2Fにおけるバス情報は、バス405が使用されていることを表す(図10EにおけるL38行の時刻8)。バス404、及び、バス405がいずれも使用されているので、スレーブEは、時刻8にて、リクエスト3に応じた通信処理を保留する。スレーブEは、通信処理を保留している期間に、バス情報1B、バス情報1F、バス情報2B、及び、バス情報2Fにおけるバス情報を読み取る処理を繰り返すことにより、バス404またはバス405が使用されなくなるのを待ってもよい。
時刻9にて、バス405に関するバス情報2Fは、バス405が使用されていないことを表す(図10EにおけるL38行の時刻9)。また、時刻9にて、バス405に関するバス情報2Bは、バス405が使用されていないことを表す(図10FにおけるL45行の時刻9)。したがって、バス405に関するバス情報2F及びバス情報2Bは、いずれも、バス405が使用されていないことを表す。したがって、スレーブEは、時刻9にて、バス405が使用されていないと判定するので、バス405を介してリクエスト3に応じた通信処理を開始する(図10HにおけるL63行の時刻9)。
次に、第4の実施形態に係る情報処理システムに関する効果について説明する。
本実施形態に係る情報処理システム401によれば、短期間に通信処理を完了することができる。
図11、図12A乃至図12Dを参照しながら、本実施形態に係る情報処理システム401が、一般的な情報処理システム431と比べて短期間に通信を完了する理由について説明する。図11は、一般的な情報処理システム431が有する構成を示すブロック図である。図12A乃至図12Dは、一般的な情報処理システム431における処理の流れを示すタイミングチャートである。説明の便宜上、図12A乃至図12Dに例示する信号は、リクエストに付された番号を用いて表すとする。
尚、図12A及び図12Bは、図10Aと同様の図である。図12C及び図12Dは、図10G及び図10Hと同様の図である。このため、図12A乃至図12Dに関する詳細な説明を省略する。
情報処理システム431は、マスタ432と、複数のスレーブと、通信路(すなわち、複数のバス)とを含む。マスタ432とスレーブとの間、及び、複数のスレーブ間においては、上述したバスを介して通信接続可能である。
図11に示す例において、情報処理システム431は、通信可能なリング状に接続された通信路を有する。また、通信路は、1つの方向のみに通信可能なバスと、該方向とは反対方向または略反対方向のみに通信可能なバスとを含む。
説明の便宜上、情報処理システムは、スレーブA乃至スレーブHなる8台のスレーブを含むとする。また、マスタ432は、上述したリクエスト1乃至リクエスト3を送信するとする。
まず、マスタ432は、時刻1にて、バス433−MAを介して、リクエスト1をスレーブAに送信する(図12AにおけるR1行の時刻1)。各スレーブが上述した処理を実行することにより、スレーブCは、時刻4にて、バス433−BCを介して、スレーブBからリクエスト1を受信する(図12AにおけるR4行の時刻4)。
スレーブCは、バス433−BCを介してリクエスト1を受信するのに応じて、バス435−CBを介して9個の要素からなるデータの送信処理を開始する。すなわち、スレーブCは、時刻4にて、バス435−CBを介して1個目の要素をスレーブBに送信する(図12CにおけるR24行の時刻4)。スレーブBは、時刻5にて、バス435−CBを介して該要素を受信し、受信した該要素を、バス435−BAを介してスレーブAに送信する(図12CにおけるR25行の時刻5)。スレーブAは、時刻6にて、バス435−BAを介して該要素を受信し、受信した該要素を、バス435−AMを介してマスタ432に送信する(図12CにおけるR26行の時刻6)。以降同様に、スレーブA乃至スレーブCは、9個目の要素を送信する時刻12まで、同様の処理を繰り返す(図12CにおけるR24行の時刻4乃至12)。
一方、マスタ432は、スレーブCが通信処理を終了する時刻、及び、マスタ432からバス433を介してスレーブDにリクエストが到達する期間に基づいて、バス433−MAを介してリクエスト2を送信する。この例において、スレーブCが送信処理を終了する時刻は時刻12(図12CにおけるR24行の時刻12)であり、マスタ432からバス433を介してスレーブDにリクエストが到達するのに要する期間は4である。この場合に、スレーブCは、時刻13以降にバス435−CBを介して、リクエスト2に関する通信処理を完了することができる。
スレーブDからバス435−DCを介してスレーブCにデータが到達するのに要する期間は1であるので、スレーブDは、バス435−DCを介して、時刻12(=13−1)にてリクエスト2に応じた通信処理を開始することができる。したがって、マスタ432は、時刻8(=12−4)に、バス433−MAを介してリクエスト2を送信する(図12AにおけるR1行の時刻8)。すなわち、マスタ432は、バス435を介する通信処理が実行されなくなる時刻を予測することにより、バス433−MAを介してリクエスト2を送信する(図12AにおけるR1行の時刻8)。
スレーブDは、時刻12に、バス433−CDを介してリクエスト2を受信するのに応じて、バス435−DCを介して、リクエスト2に応じた通信処理を開始する(図12CにおけるR24行の時刻12)。
次に、マスタ432は、時刻9に、バス435を介して、リクエスト3に応じた通信処理が実行可能であるか否かを予測する。時刻9に、リクエスト2に応じた通信処理がバス435を介して実行されている(図12CにおけるR24行の時刻9)ので、マスタ432は、バス435を介して、リクエスト3に応じた通信処理が、時刻9にて実行することができないと判定する。この場合に、マスタ432は、バス436を介して、リクエスト3に応じた通信処理が実行可能であるか否かを予測する。時刻9にてバス436を介して通信処理が実行されていない(図12Dにおける時刻9)ので、マスタ432は、時刻9に、バス434−MHを介してリクエスト3をスレーブHに送信する(図12BにおけるR10行の時刻9)。
以降、各スレーブが、バス434を介してリクエスト3を送信する処理を実行する(図12BにおけるR11行の時刻10、R12行の時刻11、R13行の時刻12、及び、R14行の時刻13)。その後、スレーブEは、時刻13に、バス434−FEを介してリクエスト3を受信し、バス436−EFを介して、リクエスト3に応じた通信処理を開始する(図12DにおけるR32行の時刻13)。この結果、リクエスト3に応じた通信処理は、時刻23に完了する(図12DにおけるR35行の時刻23)。
上述したように、マスタ432は、バスを介した通信処理が実行されなくなる時刻を予測し、予測した時刻に基づいてリクエストを送信することにより、情報処理システム431において実行される通信処理を制御する。マスタ432が予測する時刻が必ずしも正しいとは限らないので、マスタ432は、情報処理システム431において実行される通信処理を効率よく制御するとは限らない。
一方、上述したように、本実施形態に係る情報処理システム401は、通信路が使用されているか否かを表す通信路情報に基づき通信を制御する結果、時刻20に通信処理を完了する。したがって、本実施形態に係る情報処理システム401によれば、短期間に通信処理を完了することができる。
尚、上述した本発明の各実施形態において、通信路は、バスであるとして説明した。しかし、通信路は、たとえば、情報処理装置を1対1に通信接続可能な通信線であってもよい。すなわち、通信路は、ポイントツーポイント状に接続される通信線であってもよい。
以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。