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

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

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

特許7518249バス使用権調停システム、バス使用権調停方法、及び、バス使用権調停プログラム
<>
  • 特許-バス使用権調停システム、バス使用権調停方法、及び、バス使用権調停プログラム 図1
  • 特許-バス使用権調停システム、バス使用権調停方法、及び、バス使用権調停プログラム 図2
  • 特許-バス使用権調停システム、バス使用権調停方法、及び、バス使用権調停プログラム 図3
  • 特許-バス使用権調停システム、バス使用権調停方法、及び、バス使用権調停プログラム 図4
  • 特許-バス使用権調停システム、バス使用権調停方法、及び、バス使用権調停プログラム 図5
  • 特許-バス使用権調停システム、バス使用権調停方法、及び、バス使用権調停プログラム 図6
  • 特許-バス使用権調停システム、バス使用権調停方法、及び、バス使用権調停プログラム 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-07-08
(45)【発行日】2024-07-17
(54)【発明の名称】バス使用権調停システム、バス使用権調停方法、及び、バス使用権調停プログラム
(51)【国際特許分類】
   G06F 13/362 20060101AFI20240709BHJP
   G06F 13/36 20060101ALI20240709BHJP
   G06F 13/42 20060101ALI20240709BHJP
【FI】
G06F13/362 510E
G06F13/36 520Z
G06F13/42 310
【請求項の数】 10
(21)【出願番号】P 2023111999
(22)【出願日】2023-07-07
【審査請求日】2023-07-07
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【弁理士】
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】久富 大輝
【審査官】豊田 真弓
(56)【参考文献】
【文献】特開2021-105753(JP,A)
【文献】特開2006-221611(JP,A)
【文献】特開2005-056034(JP,A)
【文献】国際公開第2017/056917(WO,A1)
【文献】米国特許出願公開第2020/0089632(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/362
G06F 13/36
G06F 13/42
(57)【特許請求の範囲】
【請求項1】
シリアルバスを介して接続された複数のデバイスの個々に関する通信優先度を取得する取得手段と、
前記デバイスの個々に対して前記通信優先度に応じたアドレスを設定する設定手段と、
前記デバイスの個々に関する、前記アドレスと、前記シリアルバスの使用優先度を表す調停制御情報とによって示される優先順位が最も高い前記デバイスに、前記シリアルバスのバス使用権を付与する付与手段と、
バス使用権を付与された実績がある前記デバイスよりも、バス使用権を付与された実績がない前記デバイスの方が、前記使用優先度が高くなるように、前記調停制御情報を更新する更新手段と、
を備えるバス使用権調停システム。
【請求項2】
個々の前記デバイスに関する、前記アドレス、前記調停制御情報、及び、前記通信優先度を表す情報の少なくともいずれかを、表示装置に出力する出力手段をさらに備える、
請求項1に記載のバス使用権調停システム。
【請求項3】
前記更新手段による前記使用優先度を高める度合いを指示する指示情報を受け付ける受付手段をさらに備え、
前記更新手段は、前記指示情報が表す前記使用優先度を高める度合いで、前記調停制御情報を更新する、
請求項1または請求項2に記載のバス使用権調停システム。
【請求項4】
前記取得手段は、割り込み要求の有無を表す前記通信優先度を取得する、
請求項1または請求項2に記載のバス使用権調停システム。
【請求項5】
前記設定手段は、前記アドレスを表す複数のビットにおける所定の上位側のビットを、前記通信優先度に応じた値に設定する、
請求項1または請求項2に記載のバス使用権調停システム。
【請求項6】
前記設定手段は、前記上位側のビットが所定の値を示す場合、前記アドレスを表す複数のビットにおける前記上位側のビットを除くビットを、オープンドレイン方式からプッシュプル方式に切り替える、
請求項5に記載のバス使用権調停システム。
【請求項7】
前記上位側のビットは1ビットである、
請求項5に記載のバス使用権調停システム。
【請求項8】
前記シリアルバスは、I2C(Inter Integrated Circuits)あるいはI3C(Improved Inter Integrated Circuits)であり、
前記調停制御情報は1ビットである、
請求項1または請求項2に記載のバス使用権調停システム。
【請求項9】
情報処理装置によって、
シリアルバスを介して接続された複数のデバイスの個々に関する通信優先度を取得し、
前記デバイスの個々に対して前記通信優先度に応じたアドレスを設定し、
前記デバイスの個々に関する、前記アドレスと、前記シリアルバスの使用優先度を表す調停制御情報とによって示される優先順位が最も高い前記デバイスに、前記シリアルバスのバス使用権を付与し、
バス使用権を付与された実績がある前記デバイスよりも、バス使用権を付与された実績がない前記デバイスの方が、前記使用優先度が高くなるように、前記調停制御情報を更新する、
バス使用権調停方法。
【請求項10】
シリアルバスを介して接続された複数のデバイスの個々に関する通信優先度を取得する取得処理と、
前記デバイスの個々に対して前記通信優先度に応じたアドレスを設定する設定処理と、
前記デバイスの個々に関する、前記アドレスと、前記シリアルバスの使用優先度を表す調停制御情報とによって示される優先順位が最も高い前記デバイスに、前記シリアルバスのバス使用権を付与する付与処理と、
バス使用権を付与された実績がある前記デバイスよりも、バス使用権を付与された実績がない前記デバイスの方が、前記使用優先度が高くなるように、前記調停制御情報を更新する更新処理と、
をコンピュータに実行させるためのバス使用権調停プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バス使用権調停システム、バス使用権調停方法、及び、バス使用権調停プログラムに関する。
【背景技術】
【0002】
様々なコンピュータシステムにおいて、例えば、I2C(Inter Integrated Circuits:登録商標)あるいはその後継規格であるI3C(Improved Inter Integrated Circuits:登録商標)のようなシリアルバスに複数のデバイスが接続されている。このようなシリアルバスでは、バスのコントローラとバスに接続された複数のデバイスとの間において通信を行う際に、バスの使用権を制御するための調停を行う必要がある。
【0003】
例えば、I2C及びI3Cは、SDA(Serial Data)ライン及びSCL(Serial Clock)ラインを用いて動作する。I2C及びI3Cにおける上述した調停において、通信を行うコントローラ及びデバイスは、1ビット毎にSDAの信号レベルが、自分が送信した信号レベルと一致しているか否かを判定する。そして、自分が「1」を送信しているのにもかかわらずSDAの信号レベルが「0」であることを検出したデバイスは、調停に負けたことを認識し、SDAに対する出力をオフにする。コントローラ及びデバイスは、前述の処理を繰り返すことによって、最後まで残ったデバイスが調停に勝ったことになり、バスの使用権を獲得することができる。調停に負けたデバイスは、次のスタートコンディション(コントローラ側からの通信開始の合図)の開始時に、再度バス使用権の要求を行う。
【0004】
バス使用権に関する要求の優先度は、シリアルバスの使用に関して各デバイスに付与されたアドレスの値に依存する。そして、値の小さなアドレスを付与されたデバイスほど、バスの使用権に関する優先順位は高くなる。したがって、例えば、値が大きいアドレスを付与されたデバイスと値が小さいアドレスが付与されたデバイスとの間におけるバス使用権に関する調停が続いた場合、値が大きいアドレスが付与されたデバイスがバス使用権を獲得できるまでに時間を要するという問題がある。
【0005】
上述した問題を解決するための技術に関連して、特許文献1には、他のデバイスとデータラインを介してI2Cバス通信を行うI2Cバス通信用デバイスが開示されている。このデバイスは、スレーブアドレスと、当該スレーブアドレスより1ビット上位のビットである調停ビットと、の値を少なくとも記憶し、他のデバイスとのI2Cバス通信を制御する。このデバイスは、記憶した調停ビットの値とデータラインの信号レベルとが一致するか否かを判定する第1の判定を行う。このデバイスは、続いて、記憶した前記スレーブアドレスの値とデータラインの信号レベルとが一致するか否かを判定する第2の判定を行う。そしてこのデバイスは、他のデバイスに含まれるマスタデバイスとの調停における勝敗を、第1の判定の結果または第2の判定の結果に応じて判定し、判定結果が勝ちの場合、データラインの使用権を獲得する。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2021-105753号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述したように、複数のデバイスが接続されているシリアルバスの使用権に関する上述した調停において、例えば割り込み処理などを含む要求機能からシリアルバスの使用権を要求するデバイスに対しては、当該使用権を優先的に与える必要性が高い。一方、そのような要求機能に関連せずにシリアルバスの使用権を要求するデバイスに対しては、当該使用権を優先的に与える必要性は低い。そして、複数のデバイスが接続されているシリアルバスを有するシステムにおいては、個々のデバイスに関して、バスを使用する優先順位をふまえた上で、あるデバイスが長時間にわたってバスの使用権を獲得できないことが発生しないように調停を行うことが求められる。即ち、シリアルバスを介して接続された複数のデバイスに関する通信処理が適切な順番で実行されるように、シリアルバスを制御することが課題である。上述した特許文献1は、このような課題を解決するのに十分であるとは言えない。
【0008】
本発明の主たる目的は、シリアルバスを介して接続された複数のデバイスに関する通信処理が適切な順番で実行されるように、シリアルバスを制御することである。
【課題を解決するための手段】
【0009】
本発明の一態様に係るバス使用権調停システムは、シリアルバスを介して接続された複数のデバイスの個々に関する通信優先度を取得する取得手段と、前記デバイスの個々に対して前記通信優先度に応じたアドレスを設定する設定手段と、前記デバイスの個々に関する、前記アドレスと、前記シリアルバスの使用優先度を表す調停制御情報とによって示される優先順位が最も高い前記デバイスに、前記シリアルバスのバス使用権を付与する付与手段と、バス使用権を付与された実績がある前記デバイスよりも、バス使用権を付与された実績がない前記デバイスの方が、前記使用優先度が高くなるように、前記調停制御情報を更新する更新手段と、を備える。
【0010】
上記目的を達成する他の見地において、本発明の一態様に係るバス使用権調停方法は、情報処理装置によって、シリアルバスを介して接続された複数のデバイスの個々に関する通信優先度を取得し、前記デバイスの個々に対して前記通信優先度に応じたアドレスを設定し、前記デバイスの個々に関する、前記アドレスと、前記シリアルバスの使用優先度を表す調停制御情報とによって示される優先順位が最も高い前記デバイスに、前記シリアルバスのバス使用権を付与し、バス使用権を付与された実績がある前記デバイスよりも、バス使用権を付与された実績がない前記デバイスの方が、前記使用優先度が高くなるように、前記調停制御情報を更新する。
【0011】
また、上記目的を達成する更なる見地において、本発明の一態様に係るバス使用権調停プログラムは、シリアルバスを介して接続された複数のデバイスの個々に関する通信優先度を取得する取得処理と、前記デバイスの個々に対して前記通信優先度に応じたアドレスを設定する設定処理と、前記デバイスの個々に関する、前記アドレスと、前記シリアルバスの使用優先度を表す調停制御情報とによって示される優先順位が最も高い前記デバイスに、前記シリアルバスのバス使用権を付与する付与処理と、バス使用権を付与された実績がある前記デバイスよりも、バス使用権を付与された実績がない前記デバイスの方が、前記使用優先度が高くなるように、前記調停制御情報を更新する更新処理と、をコンピュータに実行させる。
【0012】
更に、本発明は、係るバス使用権調停プログラム(コンピュータプログラム)が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
【発明の効果】
【0013】
本発明は、シリアルバスを介して接続された複数のデバイスに関する通信処理が適切な順番で実行されるように、シリアルバスを制御することができる。
【図面の簡単な説明】
【0014】
図1】本開示に係るバス使用権調停システム1の構成を示すブロック図である。
図2】本開示に係るデバイス制御情報172の構成を例示する図である。
図3】本開示に係るバス使用権調停システム1が、デバイス20に関するI3Cの使用権を調停する具体例を例示する図である。
図4】本開示に係るバス使用権調停システム1の動作を示すフローチャートである。
図5】本開示に係るバス使用権調停システム40の構成を示すブロック図である。
図6】本開示に係るバス使用権調停システム40の動作を示すフローチャートである。
図7】本開示に係るバス使用権調停システムを実現可能な情報処理装置900の構成を示すブロック図である。
【発明を実施するための形態】
【0015】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【0016】
<第1の実施形態>
図1は、本開示に係るバス使用権調停システム1の構成を示すブロック図である。バス使用権調停システム1は、シリアルバスであるI3Cに接続されたバス使用権調停装置10(コントローラ)及び複数のデバイス20-1乃至20-3を備え、バス使用権調停装置10とデバイス20-1乃至20-3の個々との間の通信において、デバイス20-1乃至20-3との間に関するバス使用権の調停を行うシステムである。尚、本実施形態では、デバイス20-1乃至20-3の何れかを、あるいはそれらをまとめてデバイス20と称する場合がある。バス使用権調停装置10は、I3Cに対する制御を行うコントローラとして、サーバ等の情報処理装置に実装されている。
【0017】
I3Cは、クロックに関するバスであるSCLとデータに関するバスであるSDAを含み、デバイス20-1乃至20-3はSCL及びSDAと接続されている。尚、図1に例示するバス使用権調停システム1において、I3Cに接続されるデバイス20の個数は3個に限定されず、その個数は3個以外でもよい。
【0018】
尚、SCLは、I2Cを使用するシステムでは、オープンドレイン方式による接続であったが、I3Cを使用するシステムでは通信処理の高速化のためにプッシュプル方式による接続に変更されている。また、I3Cシステムでは、SDLは必要に応じてオープンドレインとプッシュプルとの切り替えが可能となっており、バス使用権の調停の際は、オープンドレインが使用される。
【0019】
また、オープンドレインはLow駆動であるので、デバイス20による信号が駆動していない場合、SDL(信号線)はプルアップ抵抗によって自動的に1の状態となる。よって、デバイス20が信号線に1の値を送信したい場合は駆動を行わず、デバイス20が0の値を送信したい場合にはLow駆動を行う。これにより、例えば、デバイス20のうち1つが1の値を、他の1つが0の値を送信したい場合、SDLはLow駆動を行ったデバイス20によって0の状態になるので、0の値を送信するデバイス20が、バスの使用権を得ることが出来る。
【0020】
管理端末30は、バス使用権調停装置10の利用者が使用する、例えばパーソナルコンピュータ、タブレット端末、スマートフォン等の情報処理装置であり、表示装置の一例である。管理端末30は、利用者による入力操作を受け付け、利用者によって入力された情報をバス使用権調停装置10が実装された情報処理装置に対して入力する。管理端末30は、表示画面300を備え、当該情報処理装置から出力された情報を表示画面300に表示する。
【0021】
バス使用権調停装置10は、取得部11、設定部12、付与部13、更新部14、出力部15、受付部16、記憶部17を備える。取得部11、設定部12、付与部13、更新部14、出力部15、受付部16は、順に、取得手段、設定手段、付与手段、更新手段、出力手段、受付手段の一例である。尚、上述した構成要素によって実現される機能の少なくとも一部は、デバイス20が備えるようにしてもよい。
【0022】
記憶部17は、例えば、図7を参照して後述するRAM(Random Access Memory)903あるいはハードディスク904のような記憶デバイスである。記憶部17の少なくとも一部は、デバイス20、あるいは、バス使用権調停装置10と通信可能な1以上の外部の装置に備えられてもよい。記憶部17は、通信優先度171、デバイス20の個々に関するデバイス制御情報172、指示情報173を記憶している。記憶部17に記憶されたこれらの情報については後述する。
【0023】
取得部11は、デバイス20の個々に関するI3Cを介した通信の通信優先度171を、例えばバス使用権調停装置10が実装された情報処理装置から取得し、取得した通信優先度171を記憶部17に格納する。通信優先度171は、デバイス20の個々とバス使用権調停装置10との間の通信に関する優先度を表す情報であり、例えば、割り込み要求の有無を表してもよい。通信優先度171は、この場合、バス使用権調停装置10が実装された情報処理装置の動作中において発生した割り込み処理などを含む要求機能により発生した通信の場合は高く設定され、当該要求機能により発生した通信でない場合は低く設定される。
【0024】
図2は、本開示に係るバス使用権調停装置10が、スタートコンディションの後にI3Cに送信し、デバイス20の個々に関するバス使用権の調停に使用するデバイス制御情報172の構成(バイトフォーマット)を示す。
【0025】
一般的なI3Cバス通信システムでは、通常、デバイス制御情報172の上位側の7ビットをデバイスアドレスとして使用する。しかしながら、本開示に係るデバイス制御情報172は、図2に例示するように、デバイスアドレス(ビットA6乃至A0)のうちのMSB(Most Significant Bit)ビットA6をI3Cの使用優先度を表す調停制御ビットとして含み、調停制御ビットA6より下位のビットA5乃至A0を、デバイス20のデバイスアドレスとして含む。また、デバイス制御情報172は、LSB(Least Significant Bit)を、デバイス20に対するアクセス命令がリード命令であるのかあるいはライト命令であるのかを示すR/W決定ビットとして含む。
【0026】
設定部12は、デバイス20の個々に関して、取得部11により取得された通信優先度171に応じたデバイスアドレスを、図2に例示するデバイス制御情報172のビットA5乃至A0に設定する。
【0027】
付与部13は、デバイス20の個々に関するデバイス制御情報172によって示される、デバイスアドレスA5乃至A0と調停制御ビットA6とによって示される優先順位が最も高いデバイスに20に、I3Cのバス使用権を付与する。
【0028】
更新部14は、バス使用権を付与された(即ち調停に勝った)実績があるデバイス20よりも、バス使用権を付与された実績がないデバイス20の方が、I3Cの使用優先度が高くなるように、デバイス制御情報172の調停制御ビットA6を更新する。
【0029】
図3は、本開示に係るバス使用権調停システム1が、デバイス20に関するI3Cの使用権を調停する具体例を例示する図である。図3は、バス使用権調停システム1が、デバイス20に関するI3Cのバス使用権の調停を進めるのに伴って推移するデバイス制御情報172に含まれる調停制御ビットA6及びデバイスアドレスA5乃至A0の値を表す。
【0030】
図3に示す例では、設定部12は、取得部11により取得された通信優先度171に基づいて、デバイス20-1乃至20-3に関するデバイスアドレスA5乃至A0を、それぞれ、「00XXXX」、「10XXXX」、「11XXXX」に設定する。尚、「X」は「0」あるいは「1」の任意の値を表す。設定部12は、通信優先度171が高いデバイス20ほど、デバイスアドレスA5乃至A0の値を小さく設定する。したがって、図3に示す例の場合、バスの使用権に関する優先順位は、デバイス20-1、デバイス20-2、デバイス20-3の順となっている。
【0031】
更新部14は、デバイス20に関するI3Cの使用権の調停が開始されるのにあたり、デバイス制御情報172の調停制御ビットA6に、初期値である「1」を設定する。
【0032】
付与部13は、デバイス制御情報172のA6乃至A1の値が最小であるデバイス20を特定する。
【0033】
図3に例示する1回目の調停では、全てのデバイス20に関して調停制御ビットA6の値が「1」であるので、付与部13は、デバイス20に関するデバイスアドレスA5乃至A0を比較する。そして付与部13は、デバイスアドレスの上位側のビットA5及びA4が最も小さい「00」であるデバイス20-1を、調停に勝ったデバイス20として特定し、デバイス20-1にI3Cのバス使用権を付与する。これにより、I3Cのバス使用権が付与されたデバイス20-1とバス使用権調停装置10との間の通信が行われる。更新部14は、1回目の調停に勝ったデバイス20-1に関する調停制御ビットA6の値は、「1」のまま更新せず、1回目の調停に負けたデバイス20-2及び20-3に関する調停制御ビットA6の値を、「1」から「0」に更新する。
【0034】
図3に例示する2回目の調停では、デバイス20-1に関する調停制御ビットA6の値が「1」であり、デバイス20-2及び20-3に関する調停制御ビットA6の値が「0」であることから、付与部13は、まず、デバイス20-1を、調停に負けたデバイス20として特定する。付与部13は、次に、デバイス20-2及び20-3に関するデバイスアドレスA5乃至A0を比較し、デバイスアドレスの上位側のビットA5及びA4がより小さな値であるデバイス20-2を、調停に勝ったデバイス20として特定し、デバイス20-2にI3Cのバス使用権を付与する。これにより、I3Cのバス使用権が付与されたデバイス20-2とバス使用権調停装置10との間の通信が行われる。更新部14は、2回目の調停に勝ったデバイス20-2に関する調停制御ビットA6の値を、「0」から「1」に更新し、デバイス20-1及び20-3に関する調停制御ビットA6の値を、それぞれ、「1」、「0」のまま維持する。
【0035】
図3に例示する3回目の調停では、デバイス20-1及び20-2に関する調停制御ビットA6の値が「1」であり、デバイス20-3に関する調停制御ビットA6の値が「0」であることから、付与部13は、デバイス20-3を、調停に勝ったデバイス20として特定し、デバイス20-3にI3Cのバス使用権を付与する。これにより、I3Cのバス使用権が付与されたデバイス20-3とバス使用権調停装置10との間の通信が行われる。更新部14は、3回目の調停に勝ったデバイス20-3に関する調停制御ビットA6の値を、「0」から「1」に更新し、デバイス20-1及び20-2に関する調停制御ビットA6の値を、「1」のまま維持する。
【0036】
図3に例示する3回目の調停が終了した時点で、デバイス20の個々に関するデバイス制御情報172の値は、1回目の調停が行われる前の値に戻っている。したがって、付与部13及び更新部14は、4回目の調停を1回目の調停と同様に行い、以降、上述した1回目から3回目の調停に関する動作を繰り返し実行する。
【0037】
出力部15は、例えば、個々のデバイス20に関する、デバイス制御情報172によって表される調停制御ビットA6及びデバイスアドレスA5乃至A0、及び、通信優先度171の少なくともいずれかの値を、管理端末30の表示画面300に表示する。これにより、バス使用権調停システム1は、バス使用権調停システム1の動作の解析に必要な情報を、バス使用権調停システム1の利用者に提供することができる。
【0038】
受付部16は、例えば、管理端末30に対する利用者による入力操作を介して入力された、更新部14よるI3Cの使用優先度を高める度合い(即ち、更新部14よる調停制御ビットA6を更新する度合い)を指示する指示情報173を、管理端末30から受け付ける。そして、更新部14は、受付部16によって受け付けられた指示情報173が表す使用優先度を高める度合いで、調停制御ビットA6を更新してもよい。
【0039】
より具体的には、例えば、更新部14は、通常は1回調停に勝つと、調停に勝ったデバイス20に関する調停制御ビットA6の値を「0」から「1」に更新するところを、指示情報173による指示に基づいて、デバイス20-1のみ、2回調停に勝った時に初めて調停制御ビットの値を「0」から「1」に更新するようにしてもよい。この場合、付与部13は、デバイス20-2及び20-3が1回のバス使用権を得る間に、デバイス20-1に対して2回のバス使用権を付与することになる。これにより、バス使用権調停システム1は、ある特定のデバイス20のI3Cの使用頻度が、他のデバイス20より高くなるように制御することができる。
【0040】
次に図4のフローチャートを参照して、本開示に係るバス使用権調停システム1の動作(処理)について詳細に説明する。
【0041】
取得部11は、デバイス20の個々に関する通信優先度171を、例えば、バス使用権調停装置10が実装された情報処理装置から取得する(ステップS101)。設定部12は、デバイス20の個々に対して通信優先度171に応じたデバイスアドレスを、デバイス制御情報172のA5乃至A0に設定する(ステップS102)。更新部14は、デバイス20の個々に関するデバイス制御情報172の調停制御ビットA6に初期値である「1」を設定する(ステップS103)。
【0042】
付与部13は、通信を未実行であるデバイス20のうち、デバイス制御情報172のA6乃至A1の値が最小であるデバイス20を特定する(ステップS104)。付与部13は、特定した調停に勝ったデバイス20に対して、I3Cのバス使用権を付与し、I3Cのバス使用権が付与されたデバイス20-1とバス使用権調停装置10との間の通信が行われる(ステップS105)。
【0043】
更新部14は、調停に勝ったデバイス20に関するデバイス制御情報172の調停制御ビットを「1」に設定し、通信を未実行である調停に負けたデバイス20に関するデバイス制御情報172の調停制御ビットを「0」に設定する(ステップS106)。通信を未実行であるデバイス20が存在する場合(ステップS107でYes)、処理はステップS104へ戻る。通信を未実行であるデバイス20が存在しない場合(ステップS107でNo)、全体の処理は終了する。
【0044】
本開示に係るバス使用権調停システム1は、シリアルバスを介して接続された複数のデバイスに関する通信処理が適切な順番で実行されるように、シリアルバスを制御することができる。その理由は、バス使用権調停システム1は、デバイス20の個々に関して取得した通信優先度171に応じたデバイスアドレスを設定し、そのデバイスアドレスと調停制御ビットとによって示される優先順位が最も高いデバイス20にバス使用権を付与し、バス使用権を付与された実績があるデバイス20よりも付与された実績がないデバイス20の方が、バスの使用優先度が高くなるように、調停制御ビットを更新するからである。
【0045】
以下に、本開示に係るバス使用権調停システム1によって実現される効果について、詳細に説明する。
【0046】
複数のデバイスが接続されているシリアルバスの使用権に関する調停において、例えば割り込み処理などを含む要求機能からシリアルバスの使用権を要求するデバイスに対しては、当該使用権を優先的に与える必要性が高い。一方、そのような要求機能に関連せずにシリアルバスの使用権を要求するデバイスに対しては、当該使用権を優先的に与える必要性は低い。そして、複数のデバイスが接続されているシリアルバスを有するシステムにおいては、個々のデバイスに関して、バスを使用する優先順位をふまえた上で、あるデバイスが長時間にわたってバスの使用権を獲得できないことが発生しないように調停を行うことが求められる。即ち、シリアルバスを介して接続された複数のデバイスに関する通信処理が適切な順番で実行されるように、シリアルバスを制御することが課題である。
【0047】
このような課題に対して、本開示に係るバス使用権調停システム1は、I3Cを介して接続された複数のデバイス20の個々に関する通信優先度171を取得する。バス使用権調停システム1は、デバイス20の個々に対して通信優先度171に応じたデバイスアドレスを設定する。バス使用権調停システム1は、デバイス20の個々に関する、デバイスアドレスと、I3Cの使用優先度を表す調停制御ビットとによって示される優先順位が最も高いデバイス20に、I3Cのバス使用権を付与する。そしてバス使用権調停システム1は、バス使用権を付与された実績があるデバイス20よりも、バス使用権を付与された実績がないデバイス20の方が、I3Cの使用優先度が高くなるように、調停制御ビットを更新する。即ち、バス使用権調停システム1は、通信優先度171をふまえてデバイス20の個々のデバイスアドレスを設定するとともに、デバイス20に関して調停に負ける度に、そのデバイス20のバスの使用優先度が上がるように制御する。これにより、バス使用権調停システム1は、シリアルバスを介して接続された複数のデバイスに関する通信処理が適切な順番で実行されるように、シリアルバスを制御することができる。
【0048】
また、本開示に係るバス使用権調停システム1は、個々のデバイス20に関する、デバイス制御情報172によって表されるデバイスアドレス及び調停制御ビット、及び、通信優先度171を表す情報の少なくともいずれかを、管理端末30の表示画面300に出力する。これにより、バス使用権調停システム1は、バス使用権調停システム1の動作の解析に必要な情報を、バス使用権調停システム1の利用者に提供するので、利用者によるバス使用権調停システム1の動作の解析作業を支援することができる。
【0049】
また、本開示に係るバス使用権調停システム1は、更新部14によるI3Cの使用優先度を高める度合いを指示する指示情報173を受け付け、指示情報173が表す当該使用優先度を高める度合いで、デバイス制御情報172の調停制御ビットを更新する。これにより、バス使用権調停システム1は、利用者の所望に応じて、各デバイス20がI3Cのバス使用権の調停に勝つ割合を柔軟に調整できるので、各デバイス20へのアクセス頻度等を調整することができる。
【0050】
また、本開示に係るバス使用権調停システム1は、例えば、割り込み要求の有無を表す通信優先度171を取得する。これにより、バス使用権調停システム1は、割り込み要求により発生したデバイス20との通信が優先的に処理されるように、シリアルバスを制御することができる。
【0051】
また、本開示に係るバス使用権調停システム1の設定部12は、デバイス制御情報172におけるデバイスアドレスを表す複数のビットにおける所定の上位側のビットを、通信優先度171に応じた値に設定する。そして、設定部12は、当該上位側のビットが所定の値を示す場合、デバイスアドレスを表す複数のビットにおける当該上位側のビットを除くビットを、オープンドレイン方式からプッシュプル方式に切り替える機能を備えてもよい。より具体的には、バス使用権調停システム1において、例えば、通信優先度171が割り込み要求の有無を表す場合において、設定部12は、割り込み要求が有る場合はデバイス制御情報172におけるビットA5に「0」を設定し、割り込み要求が無い場合はビットA5に「1」を設定する。そして、設定部12は、デバイス制御情報172におけるビットA5が「1」である割り込み要求が無い場合、A4乃至A0の下位側のビットをオープンドレイン方式からプッシュプル方式に切り替えることによって、I3Cにおける通信速度を向上させることができる。
【0052】
尚、I3Cでは、デバイス制御情報172におけるビットA6を使用した調停の最適化機能がI2Cから追加されている。当該最適化機能では、I3Cのコントローラは、各デバイスに03H(00000011)から7BH(1111011)のいずれかの動的アドレスを割り当てる際に、通信の優先度が高いデバイスに関してビットA6が「0」であるアドレスを割り当て、通信の優先度が低いデバイスに関してビットA6が「1」であるアドレスを割り当てる。そして、I3Cのコントローラは、ビットA6のみによってバス使用権の調停を制御する。本開示に係るバス使用権調停システム1は、このような調停の最適化機能も合わせて実装可能である。
【0053】
また、上述した本開示に係るバス使用権調停システム1の構成は、I3CあるいはI2Cとは異なるシリアルバスを備えるシステムに適用してもよい。
【0054】
<第2の実施形態>
図5は、本開示に係るバス使用権調停システム40の構成を示すブロック図である。
【0055】
本開示に係るバス使用権調停システム40は、取得部41、設定部42、付与部43、更新部44を備えている。取得部41、設定部42、付与部43、更新部44は、順に、取得手段、設定手段、付与手段、更新手段の一例である。
【0056】
取得部41は、シリアルバス400を介して接続された複数のデバイス50の個々に関する通信優先度410を取得する。シリアルバス400は、例えば、バス使用権調停システム1に係るI3Cと同様なバスである。デバイス50は、例えば、バス使用権調停システム1に係るデバイス20と同様なデバイスである。通信優先度410は、例えば、バス使用権調停システム1に係る通信優先度171と同様な情報である。取得部41は、例えば、バス使用権調停システム1に係る取得部11と同様に動作する。
【0057】
設定部42は、デバイス50の個々に対して通信優先度410に応じたアドレス420を設定する。アドレス420は、例えば、バス使用権調停システム1に係るデバイス制御情報172によって示されるデバイスアドレスと同様なアドレスである。設定部42は、例えば、設定部12と同様に動作する。
【0058】
付与部43は、デバイス50の個々に関する、アドレス420と、シリアルバス400の使用優先度を表す調停制御情報440とによって示される優先順位が最も高いデバイス50に、シリアルバス400のバス使用権430を付与する。調停制御情報440は、例えば、バス使用権調停システム1に係るデバイス制御情報172に含まれる調停制御ビットA6と同様な情報である。バス使用権320は、例えば、バス使用権調停システム1に係る付与部13によって与えられるバス使用権と同様な情報である。付与部43は、例えば、バス使用権調停システム1に係る付与部13と同様に動作する。
【0059】
更新部44は、バス使用権430を付与された実績があるデバイス50よりも、バス使用権430を付与された実績がないデバイス50の方が、当該使用優先度が高くなるように、調停制御情報440を更新する。更新部44は、例えば、バス使用権調停システム1に係る更新部14と同様に動作する。
【0060】
次に図6のフローチャートを参照して、本開示に係るバス使用権調停システム40の動作(処理)について詳細に説明する。
【0061】
取得部41は、複数のデバイス50の個々に関する通信優先度410を取得する(ステップS201)。設定部42は、デバイス50の個々に対して通信優先度410に応じたアドレス420を設定する(ステップS202)。付与部43は、デバイス50の個々に関する、アドレス420と、調停制御情報440とによって示される優先順位が最も高いデバイス50に、バス使用権430を付与する(ステップS203)。更新部44は、バス使用権430を付与された実績があるデバイス50よりも、バス使用権430を付与された実績がないデバイス50の方が、使用優先度が高くなるように、調停制御情報440を更新し(ステップS204)、全体の処理は終了する。
【0062】
本開示に係るバス使用権調停システム40は、シリアルバスを介して接続された複数のデバイスに関する通信処理が適切な順番で実行されるように、シリアルバスを制御することができる。その理由は、バス使用権調停システム40は、デバイス50の個々に関して取得した通信優先度410に応じたアドレス420を設定し、そのアドレス420と調停制御情報440とによって示される優先順位が最も高いデバイス50にバス使用権430を付与し、バス使用権430を付与された実績があるデバイス50よりも付与された実績がないデバイス50の方が、シリアルバス400の使用優先度が高くなるように、調停制御情報440を更新するからである。
【0063】
<ハードウェア構成例>
上述した各実施形態において図1、及び、図5に示したバス使用権調停システムにおける各部は、専用のHW(HardWare)(電子回路)によって実現することができる。また、図1、及び、図5において、少なくとも、下記構成は、プロセッサによって実行される命令を含むソフトウェアプログラムの機能(処理)単位(ソフトウェアモジュール)と捉えることができる。
・取得部11及び41、
・設定部12及び42、
・付与部13及び43、
・更新部14及び44、
・出力部15、
・受付部16、
・記憶部17における記憶制御機能。
【0064】
但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図7を参照して説明する。
【0065】
図7は、本開示に係るバス使用権調停システムを実現可能な情報処理装置900(コンピュータ)の構成を例示的に説明する図である。即ち、図7は、図1及び図5に示したバス使用権調停システムを実現可能なコンピュータ(情報処理装置)の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。但し、上述したバス使用権調停装置における各部は、複数の情報処理装置900に分散して設けられてもよいし、その少なくとも一部の機能がクラウドコンピューティングの環境を構成するサーバ等に設けられてもよい。
【0066】
図7に示した情報処理装置900は、構成要素として下記を備えている。
・CPU(Central_Processing_Unit)901、
・ROM(Read_Only_Memory)902、
・RAM(Random_Access_Memory)903、
・ハードディスク(記憶装置)904、
・通信インタフェース905、
・バス906(通信線)、
・CD-ROM(Compact_Disc_Read_Only_Memory)等の記録媒体907に格納されたデータを読み書き可能なリーダライタ908、
・モニターやスピーカ、キーボード等の入出力インタフェース909。
【0067】
即ち、上記構成要素を備える情報処理装置900は、これらの構成がバス906を介して接続された一般的なコンピュータである。情報処理装置900は、CPU901を複数備える場合もあれば、マルチコアにより構成されたCPU901を備える場合もある。情報処理装置900は、また、上述した構成の一部を備えない場合もある。
【0068】
そして、上述した実施形態を例に説明した本発明は、図7に示した情報処理装置900に対して、次の機能を実現可能なコンピュータプログラムを供給する。その機能とは、その実施形態の説明において参照したブロック構成図(図1及び図5)における上述した構成、或いはフローチャート(図4及び図6)の機能である。本発明は、その後、そのコンピュータプログラムを、当該ハードウェアのCPU901に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性のメモリ(RAM903)、または、ROM902やハードディスク904等の不揮発性の記憶デバイスに格納すれば良い。
【0069】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、CD-ROM等の各種記録媒体907を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体907によって構成されると捉えることができる。
【0070】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【0071】
尚、上述した各実施形態の一部又は全部は、以下の付記のようにも記載されうる。しかしながら、上述した各実施形態により例示的に説明した本発明は、以下には限られない。
【0072】
(付記1)
シリアルバスを介して接続された複数のデバイスの個々に関する通信優先度を取得する取得手段と、
前記デバイスの個々に対して前記通信優先度に応じたアドレスを設定する設定手段と、
前記デバイスの個々に関する、前記アドレスと、前記シリアルバスの使用優先度を表す調停制御情報とによって示される優先順位が最も高い前記デバイスに、前記シリアルバスのバス使用権を付与する付与手段と、
バス使用権を付与された実績がある前記デバイスよりも、バス使用権を付与された実績がない前記デバイスの方が、前記使用優先度が高くなるように、前記調停制御情報を更新する更新手段と、
を備えるバス使用権調停システム。
【0073】
(付記2)
個々の前記デバイスに関する、前記アドレス、前記調停制御情報、及び、前記通信優先度を表す情報の少なくともいずれかを、表示装置に出力する出力手段をさらに備える、
付記1に記載のバス使用権調停システム。
【0074】
(付記3)
前記更新手段による前記使用優先度を高める度合いを指示する指示情報を受け付ける受付手段をさらに備え、
前記更新手段は、前記指示情報が表す前記使用優先度を高める度合いで、前記調停制御情報を更新する、
付記1または付記2に記載のバス使用権調停システム。
【0075】
(付記4)
前記取得手段は、割り込み要求の有無を表す前記通信優先度を取得する、
付記1または付記2に記載のバス使用権調停システム。
【0076】
(付記5)
前記設定手段は、前記アドレスを表す複数のビットにおける所定の上位側のビットを、前記通信優先度に応じた値に設定する、
付記1または付記2に記載のバス使用権調停システム。
【0077】
(付記6)
前記設定手段は、前記上位側のビットが所定の値を示す場合、前記アドレスを表す複数のビットにおける前記上位側のビットを除くビットを、オープンドレイン方式からプッシュプル方式に切り替える、
付記5に記載のバス使用権調停システム。
【0078】
(付記7)
前記上位側のビットは1ビットである、
付記5に記載のバス使用権調停システム。
【0079】
(付記8)
前記シリアルバスは、I2C(Inter Integrated Circuits)あるいはI3C(Improved Inter Integrated Circuits)であり、
前記調停制御情報は1ビットである、
付記1または付記2に記載のバス使用権調停システム。
【0080】
(付記9)
情報処理装置によって、
シリアルバスを介して接続された複数のデバイスの個々に関する通信優先度を取得し、
前記デバイスの個々に対して前記通信優先度に応じたアドレスを設定し、
前記デバイスの個々に関する、前記アドレスと、前記シリアルバスの使用優先度を表す調停制御情報とによって示される優先順位が最も高い前記デバイスに、前記シリアルバスのバス使用権を付与し、
バス使用権を付与された実績がある前記デバイスよりも、バス使用権を付与された実績がない前記デバイスの方が、前記使用優先度が高くなるように、前記調停制御情報を更新する、
バス使用権調停方法。
【0081】
(付記10)
個々の前記デバイスに関する、前記アドレス、前記調停制御情報、及び、前記通信優先度を表す情報の少なくともいずれかを、表示装置に出力する、
付記9に記載のバス使用権調停方法。
【0082】
(付記11)
前記使用優先度を高める度合いを指示する指示情報を受け付け、
前記指示情報が表す前記使用優先度を高める度合いで、前記調停制御情報を更新する、
付記9または付記10に記載のバス使用権調停方法。
【0083】
(付記12)
割り込み要求の有無を表す前記通信優先度を取得する、
付記9または付記10に記載のバス使用権調停方法。
【0084】
(付記13)
前記アドレスを表す複数のビットにおける所定の上位側のビットを、前記通信優先度に応じた値に設定する、
付記9または付記10に記載のバス使用権調停方法。
【0085】
(付記14)
前記上位側のビットが所定の値を示す場合、前記アドレスを表す複数のビットにおける前記上位側のビットを除くビットを、オープンドレイン方式からプッシュプル方式に切り替える、
付記13に記載のバス使用権調停方法。
【0086】
(付記15)
前記上位側のビットは1ビットである、
付記13に記載のバス使用権調停方法。
【0087】
(付記16)
前記シリアルバスは、I2C(Inter Integrated Circuits)あるいはI3C(Improved Inter Integrated Circuits)であり、
前記調停制御情報は1ビットである、
付記9または付記10に記載のバス使用権調停方法。
【0088】
(付記17)
シリアルバスを介して接続された複数のデバイスの個々に関する通信優先度を取得する取得処理と、
前記デバイスの個々に対して前記通信優先度に応じたアドレスを設定する設定処理と、
前記デバイスの個々に関する、前記アドレスと、前記シリアルバスの使用優先度を表す調停制御情報とによって示される優先順位が最も高い前記デバイスに、前記シリアルバスのバス使用権を付与する付与処理と、
バス使用権を付与された実績がある前記デバイスよりも、バス使用権を付与された実績がない前記デバイスの方が、前記使用優先度が高くなるように、前記調停制御情報を更新する更新処理と、
をコンピュータに実行させるためのバス使用権調停プログラム。
【0089】
(付記18)
個々の前記デバイスに関する、前記アドレス、前記調停制御情報、及び、前記通信優先度を表す情報の少なくともいずれかを、表示装置に出力する出力処理をさらに前記コンピュータに実行させる、
付記17に記載のバス使用権調停プログラム。
【0090】
(付記19)
前記更新処理による前記使用優先度を高める度合いを指示する指示情報を受け付ける受付処理をさらに前記コンピュータに実行させ、
前記更新処理は、前記指示情報が表す前記使用優先度を高める度合いで、前記調停制御情報を更新する、
付記17または付記18に記載のバス使用権調停プログラム。
【0091】
(付記20)
前記取得処理は、割り込み要求の有無を表す前記通信優先度を取得する、
付記17または付記18に記載のバス使用権調停プログラム。
【0092】
(付記21)
前記設定処理は、前記アドレスを表す複数のビットにおける所定の上位側のビットを、前記通信優先度に応じた値に設定する、
付記17または付記18に記載のバス使用権調停プログラム。
【0093】
(付記22)
前記設定処理は、前記上位側のビットが所定の値を示す場合、前記アドレスを表す複数のビットにおける前記上位側のビットを除くビットを、オープンドレイン方式からプッシュプル方式に切り替える、
付記21に記載のバス使用権調停プログラム。
【0094】
(付記23)
前記上位側のビットは1ビットである、
付記21に記載のバス使用権調停プログラム。
【0095】
(付記24)
前記シリアルバスは、I2C(Inter Integrated Circuits)あるいはI3C(Improved Inter Integrated Circuits)であり、
前記調停制御情報は1ビットである、
付記17または付記18に記載のバス使用権調停プログラム。
【符号の説明】
【0096】
1 バス使用権調停システム
10 バス使用権調停装置
11 取得部
12 設定部
13 付与部
14 更新部
15 出力部
16 受付部
17 記憶部
171 通信優先度
172 デバイス制御情報
173 指示情報
20 デバイス
30 管理端末
300 表示画面
40 バス使用権調停システム
400 シリアルバス
41 取得部
410 通信優先度
42 設定部
420 アドレス
43 付与部
430 バス使用権
44 更新部
440 調停制御情報
50 デバイス
900 情報処理装置
901 CPU
902 ROM
903 RAM
904 ハードディスク(記憶装置)
905 通信インタフェース
906 バス
907 記録媒体
908 リーダライタ
909 入出力インタフェース
【要約】
【課題】シリアルバスを介して接続された複数のデバイスに関する通信処理が適切な順番で実行されるように、シリアルバスを制御する。
【解決手段】バス使用権調停システム40は、シリアルバス400を介して接続された複数のデバイス50の個々に関する通信優先度410を取得する取得部41と、デバイス50の個々に対して通信優先度410に応じたアドレス420を設定する設定部42と、デバイス50の個々に関する、アドレス420と、シリアルバス400の使用優先度を表す調停制御情報440とによって示される優先順位が最も高いデバイス50に、シリアルバス400のバス使用権430を付与する付与部43と、バス使用権430を付与された実績があるデバイス50よりも、バス使用権430を付与された実績がないデバイス50の方が、使用優先度が高くなるように、調停制御情報440を更新する更新部44と、を備える。
【選択図】 図5
図1
図2
図3
図4
図5
図6
図7