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

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

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

特許7401484情報処理装置、情報処理装置の制御方法、及び、情報処理装置の制御プログラム
<>
  • 特許-情報処理装置、情報処理装置の制御方法、及び、情報処理装置の制御プログラム 図1
  • 特許-情報処理装置、情報処理装置の制御方法、及び、情報処理装置の制御プログラム 図2
  • 特許-情報処理装置、情報処理装置の制御方法、及び、情報処理装置の制御プログラム 図3
  • 特許-情報処理装置、情報処理装置の制御方法、及び、情報処理装置の制御プログラム 図4
  • 特許-情報処理装置、情報処理装置の制御方法、及び、情報処理装置の制御プログラム 図5
  • 特許-情報処理装置、情報処理装置の制御方法、及び、情報処理装置の制御プログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-11
(45)【発行日】2023-12-19
(54)【発明の名称】情報処理装置、情報処理装置の制御方法、及び、情報処理装置の制御プログラム
(51)【国際特許分類】
   H04L 43/0876 20220101AFI20231212BHJP
   G06F 9/54 20060101ALI20231212BHJP
【FI】
H04L43/0876
G06F9/54 Z
【請求項の数】 9
(21)【出願番号】P 2021089766
(22)【出願日】2021-05-28
(65)【公開番号】P2022182291
(43)【公開日】2022-12-08
【審査請求日】2022-09-15
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【弁理士】
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】井上 尚信
【審査官】小林 義晴
(56)【参考文献】
【文献】特開2015-103129(JP,A)
【文献】特開2007-109040(JP,A)
【文献】国際公開第2013/114620(WO,A1)
【文献】特開2015-164013(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 12/00-12/66
41/00-101/695
G06F 9/54
(57)【特許請求の範囲】
【請求項1】
複数のOS(Operating System)を実行する情報処理装置であって、個々にOSを実行する第1の実行手段、第2の実行手段、及び、第3の実行手段を備え、
前記第1の実行手段は、前記第2の実行手段及び前記第3の実行手段との間のOS間の通信を制御する第1の内部通信制御手段を備え、
前記第2の実行手段は、前記第1の実行手段との間のOS間の通信を制御する第2の内部通信制御手段を備え、
前記第3の実行手段は、前記第1の実行手段との間のOS間の通信を制御する第3の内部通信制御手段を備え、
前記第1の実行手段は、さらに、
外部の装置との通信を制御する外部通信制御手段と、
前記第2の実行手段と前記第3の実行手段との間の通信、及び、前記第2の実行手段あるいは前記第3の実行手段と前記外部の装置との間の通信に使用する通信経路を確立する通信経路確立手段と、
を備え
前記第2の内部通信制御手段は、
前記情報処理装置の動作環境が所定の条件を満たす場合、前記通信経路確立手段によって確立された前記通信経路を介さずに、前記第2の実行手段が前記第3の実行手段と直接通信するように制御し、
前記情報処理装置の動作環境が所定の条件を満たさない場合、前記通信経路確立手段によって確立された前記通信経路を介して、前記第2の実行手段が前記第3の実行手段と通信するように制御する、
情報処理装置。
【請求項2】
前記所定の条件は、前記第2の実行手段と前記第3の実行手段との間における通信速度の要件が基準以上であることを表す、
請求項に記載の情報処理装置。
【請求項3】
前記所定の条件は、前記第2の実行手段と前記第3の実行手段との間における通信に使用可能な情報処理資源として備える量が、基準以上であることを表す、
請求項または請求項に記載の情報処理装置。
【請求項4】
前記第1の内部通信制御手段、前記第2の内部通信制御手段、前記第3の内部通信制御手段、及び、前記外部通信制御手段は、所定の通信プロトコルを用いた通信を制御する、
請求項1乃至請求項のいずれか一項に記載の情報処理装置。
【請求項5】
前記所定の通信プロトコルは、TCP/IP(Transmission Control Protocol / Internet Protocol)である、
請求項に記載の情報処理装置。
【請求項6】
前記通信経路確立手段は、OSI(Open Systems Interconnection)参照モデルのデータリンク層のスイッチ、及び、ネットワーク層のスイッチを含み、
前記第2の実行手段と前記第3の実行手段との間の通信に使用する前記通信経路を確立する場合は、前記データリンク層のスイッチを使用し、
前記第2の実行手段あるいは前記第3の実行手段と前記外部の装置との間の通信に使用する前記通信経路を確立する場合は、前記ネットワーク層のスイッチを使用する、
請求項1乃至請求項のいずれか一項に記載の情報処理装置。
【請求項7】
前記第1の実行手段、前記第2の実行手段、及び、前記第3の実行手段は、前記情報処理装置に含まれるCPU(Central Processing Unit)、前記情報処理装置に含まれるCPUに含まれるコア、あるいは前記情報処理装置に構築された仮想マシンである、
請求項1乃至請求項6のいずれか一項に記載の情報処理装置。
【請求項8】
個々にOSを実行する第1の実行手段、第2の実行手段、及び、第3の実行手段を備えることによって、複数のOSを実行する情報処理装置によって、
前記第1の実行手段による、前記第2の実行手段及び前記第3の実行手段との間のOS間の通信を制御し、
前記第2の実行手段による、前記第1の実行手段との間のOS間の通信を制御し、
前記第3の実行手段による、前記第1の実行手段との間のOS間の通信を制御し、
前記第1の実行手段による、外部の装置との通信を制御し、
前記第1の実行手段によって、前記第2の実行手段と前記第3の実行手段との間の通信、及び、前記第2の実行手段あるいは前記第3の実行手段と前記外部の装置との間の通信に使用する通信経路を確立する、
方法であって、
前記情報処理装置の動作環境が所定の条件を満たす場合、確立された前記通信経路を介さずに、前記第2の実行手段が前記第3の実行手段と直接通信するように制御し、
前記情報処理装置の動作環境が所定の条件を満たさない場合、確立された前記通信経路を介して、前記第2の実行手段が前記第3の実行手段と通信するように制御する、
情報処理装置の制御方法。
【請求項9】
個々にOSを実行する第1の実行手段、第2の実行手段、及び、第3の実行手段を備えることによって、複数のOSを実行する情報処理装置に、
前記第1の実行手段による、前記第2の実行手段及び前記第3の実行手段との間のOS間の通信を制御する第1の内部通信制御処理と、
前記第2の実行手段による、前記第1の実行手段との間のOS間の通信を制御する第2の内部通信制御処理と、
前記第3の実行手段による、前記第1の実行手段との間のOS間の通信を制御する第3の内部通信制御処理と、
前記第1の実行手段による、外部の装置との通信を制御する外部通信制御処理と、
前記第1の実行手段による、前記第2の実行手段と前記第3の実行手段との間の通信、及び、前記第2の実行手段あるいは前記第3の実行手段と前記外部の装置との間の通信に使用する通信経路を確立する通信経路確立処理と、
を実行させるためのプログラムであって、
前記第2の内部通信制御処理は、
前記情報処理装置の動作環境が所定の条件を満たす場合、前記通信経路確立処理によって確立された前記通信経路を介さずに、前記第2の実行手段が前記第3の実行手段と直接通信するように制御し、
前記情報処理装置の動作環境が所定の条件を満たさない場合、前記通信経路確立処理によって確立された前記通信経路を介して、前記第2の実行手段が前記第3の実行手段と通信するように制御する、
情報処理装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理装置の制御方法、及び、情報処理装置の制御プログラムに関し、特に、当該情報処理装置が複数のOS(Operating System)を実行する場合において、OS間の通信経路を制御する技術に関する。
【背景技術】
【0002】
マイクロコンピュータ(マイコン)等の情報処理装置を動作させるOSには、例えば、ITRON(登録商標)等のリアルタイムOSや、Linux(登録商標)等のリッチOSなどが存在する。リアルタイムOSは、例えばIoT(Internet of Things)におけるエッジ側の機器の制御において求められるリアルタイムな情報処理を行うことを重視したOSである。一方、リッチOSは、リアルタイムOSと比較してリアルタイム性に関しては劣るものの、GUI(Graphical User Interface)等の様々な汎用的な機能を備えたOSである。
【0003】
上述したような特徴の異なる2つのOSを同一の機器に組み込む場合、例えば、当該機器にマイクロコンピュータを2つ搭載し、片方のマイクロコンピュータにリアルタイムOSを組み込み、もう片方のマイクロコンピュータにリッチOSを組み込むことが考えられる。しかしながら、この場合、マイクロコンピュータを2つ搭載することによって機器のコストが高くなる問題がある。このような問題に対応するため、機器に搭載するマイクロコンピュータを1つとし、そのマイクロコンピュータが複数のOSを実行するマルチOS構成を備える場合がある。そして、マルチOS構成を備えるシステムにおいて必要となるOS間の通信を行う技術への期待が高まってきている。
【0004】
このような技術に関連して、特許文献1には、コンピュータシステム上の異なるパーティション中で複数のOSを動作させ、各々が共用メモリを介して相互に通信可能にするようにしたコンピュータシステムが開示されている。このシステムは、各パーティションを構成する複数の処理モジュールとメインメモリとを含む。当該各パーティションは別々のOSの制御の下で動作する。このシステムでは、少なくとも1つの共用メモリウインドウがメインメモリ内に規定され、複数のパーティションが共用メモリウインドウに対する共用アクセス権を有する。このシステムにおける各パーティションは、異なるパーティションにおいて実行されるプログラムコードにより、共用メモリウインドウを介して相互通信可能である。
【0005】
また、特許文献2には、マルチOS環境において、OS間のメッセージ転送を実現する情報処理装置が開示されている。この装置は、物理アドレス空間のメッセージ領域を、メッセージ送信側のOSの論理パーティションアドレス空間のメッセージ領域から、メッセージ受信側のOSの論理パーティションアドレス空間のメッセージ領域へマッピング状態を切り替える処理を実行することによりOS間のメッセージ転送制御を行なう。
【0006】
また、特許文献3には、複数のOSパーティションにネットワーク通信を分配するため の装置が開示されている。この装置は、ネットワークとコンピュータシステムとの間の通信を可能にする物理ポートと、当該物理ポートと関連付けられた論理ポートとを含む。この装置における各論理ポートはOSパーティションの1つと関連付けられ、物理ポートと関連するOSパーティションとの間での通信を可能にする。
【0007】
また、特許文献4には、複数の仮想マシンが動作し、当該複数の仮想マシンと接続されたゲートウェイ装置を備える情報処理装置が開示されている。この装置は、複数の仮想マシン間で送受信されるパケットを識別するための識別情報を取得する。そしてこの装置は、複数の仮想マシン間で送受信されるパケットを、取得した識別情報に基づいて識別し、複数の仮想マシンのうち、送信側仮想マシンから受信側仮想マシンへと折り返す通信制御を行う。
【先行技術文献】
【特許文献】
【0008】
【文献】特開2006-216068号公報
【文献】特開2006-127461号公報
【文献】特表2008-535342号公報
【文献】特開2016-152561号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
マイクロコンピュータ等の情報処理装置が上述したような複数のOSを実行するマルチOS構成を備える場合、実行するOS間における通信、及び、OSと外部の装置における通信が発生する。そして、実行するOSの数の増加とともに、このような通信を行うために必要となる記憶領域(メモリ)等の情報処理資源(ハードウェア資源)も増加する。しかしながら、例えばIoTにおけるエッジ側の機器に搭載されるマイクロコンピュータは、一般的に大容量のメモリ等を搭載することは困難であり、複数のOSに関する上述した通信を、限られた情報処理資源で実現できるようにすることが課題である。上述した特許文献1乃至4が示す技術は、この課題を解決するのに十分であるとは言えない。
【0010】
本発明の主たる目的は、複数のOSを実行する場合において、OS間における通信、及び、OSと外部の装置とにおける通信を、限られた情報処理資源によって実現する情報処理装置等を提供することにある。
【課題を解決するための手段】
【0011】
本発明の一態様に係る情報処理装置は、複数のOSを実行する情報処理装置であって、個々にOSを実行する第1の実行手段、第2の実行手段、及び、第3の実行手段を備え、前記第1の実行手段は、前記第2の実行手段及び前記第3の実行手段との間のOS間の通信を制御する第1の内部通信制御手段を備え、前記第2の実行手段は、前記第1の実行手段との間のOS間の通信を制御する第2の内部通信制御手段を備え、前記第3の実行手段は、前記第1の実行手段との間のOS間の通信を制御する第3の内部通信制御手段を備え、前記第1の実行手段は、さらに、外部の装置との通信を制御する外部通信制御手段と、前記第2の実行手段と前記第3の実行手段との間の通信、及び、前記第2の実行手段あるいは前記第3の実行手段と前記外部の装置との間の通信に使用する通信経路を確立する通信経路確立手段と、を備える。
【0012】
上記目的を達成する他の見地において、本発明の一態様に係る情報処理装置の制御方法は、個々にOSを実行する第1の実行手段、第2の実行手段、及び、第3の実行手段を備えることによって、複数のOSを実行する情報処理装置によって、前記第1の実行手段による、前記第2の実行手段及び前記第3の実行手段との間のOS間の通信を制御し、前記第2の実行手段による、前記第1の実行手段との間のOS間の通信を制御し、前記第3の実行手段による、前記第1の実行手段との間のOS間の通信を制御し、前記第1の実行手段による、外部の装置との通信を制御し、前記第1の実行手段によって、前記第2の実行手段と前記第3の実行手段との間の通信、及び、前記第2の実行手段あるいは前記第3の実行手段と前記外部の装置との間の通信に使用する通信経路を確立する。
【0013】
また、上記目的を達成する更なる見地において、本発明の一態様に係る情報処理装置の制御プログラムは、個々にOSを実行する第1の実行手段、第2の実行手段、及び、第3の実行手段を備えることによって、複数のOSを実行する情報処理装置に、前記第1の実行手段による、前記第2の実行手段及び前記第3の実行手段との間のOS間の通信を制御する第1の内部通信制御処理と、前記第2の実行手段による、前記第1の実行手段との間のOS間の通信を制御する第2の内部通信制御処理と、前記第3の実行手段による、前記第1の実行手段との間のOS間の通信を制御する第3の内部通信制御処理と、前記第1の実行手段による、外部の装置との通信を制御する外部通信制御処理と、前記第1の実行手段による、前記第2の実行手段と前記第3の実行手段との間の通信、及び、前記第2の実行手段あるいは前記第3の実行手段と前記外部の装置との間の通信に使用する通信経路を確立する通信経路確立処理と、を実行させる。
【0014】
更に、本発明は、係る情報処理装置の制御プログラム(コンピュータプログラム)が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
【発明の効果】
【0015】
本発明によれば、複数のOSを実行する場合において、OS間における通信、及び、OSと外部の装置とにおける通信を、限られた情報処理資源によって実現する情報処理装置等が得られる。
【図面の簡単な説明】
【0016】
図1】本発明の第1の実施形態に係るマイクロコンピュータ10の構成を示すブロック図である。
図2】本発明の第1の実施形態に係るマイクロコンピュータ10がCPU12とCPU13との間でOS間の通信を行う動作を示すフローチャートである。
図3】本発明の第1の実施形態に係るマイクロコンピュータ10がCPU12により実行されているOSと外部装置20との間で通信する動作を示すフローチャートである。
図4】本発明の第1の実施形態に係るマイクロコンピュータ10と一般的なマイクロコンピュータとにおいて、実行するOSの数とOS間の通信経路の数との関係を例示するグラフである。
図5】本発明の第2の実施形態に係る情報処理装置30の構成を示すブロック図である。
図6】本発明の各実施形態に係るマイクロコンピュータ10あるいは情報処理装置30を実現可能な情報処理装置900の構成を示すブロック図である。
【発明を実施するための形態】
【0017】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【0018】
<第1の実施形態>
図1は、本発明の第1の実施の形態に係るマイクロコンピュータ10の構成を示すブロック図である。マイクロコンピュータ10は、様々な電子機器に搭載される情報処理装置である。
【0019】
マイクロコンピュータ10は、CPU(Central Processing Unit)11乃至13、及び、通信デバイス14を備える。CPU11、12、及び、13は、順に、第1の実行手段、第2の実行手段、及び、第3の実行手段の一例である。尚、マイクロコンピュータ10が備えるCPUの数は3つに限定されず、4つ以上であってもよい。
【0020】
通信デバイス14は、有線LAN(Local Area Network)あるいは無線LAN等の通信インタフェースを備えるデバイスであり、外部装置20と通信可能に接続されている。
【0021】
CPU11は、OS110を実行し、CPU12は、OS120を実行し、CPU13は、OS130を実行する。OS110、OS120、及び、OS130は、例えば、ITRONやLinux等のOSである。OS110、OS120、及び、OS130は、同じ種別のOSであってもよいし、異なる種別のOSであってもよい。
【0022】
CPU11は、仮想通信ドライバ111、実通信ドライバ112、L2/L3スイッチ113を備える。CPU12は、仮想通信ドライバ121を備える。CPU13は、仮想通信ドライバ131を備える。仮想通信ドライバ111、121、及び、131は、順に、第1の内部通信制御手段、第2の内部通信制御手段、及び、第3の内部通信制御手段の一例である。実通信ドライバ112は、外部通信制御手段の一例である。L2/L3スイッチは、通信経路確立手段の一例である。
【0023】
仮想通信ドライバ111は、OS110を実行するCPU11によって行われる、OS120を実行するCPU12あるいはOS130を実行するCPU13との間におけるOS間の通信を制御する。仮想通信ドライバ121は、OS120を実行するCPU12によって行われる、OS110を実行するCPU11あるいはOS130を実行するCPU13との間におけるOS間の通信を制御する。仮想通信ドライバ131は、OS130を実行するCPU13によって行われる、OS110を実行するCPU11あるいはOS120を実行するCPU12との間におけるOS間の通信を制御する。
【0024】
CPU11、12、及び、13は、互いにOS間の通信を行う際に、所定の通信プロトコルを使用する。本実施形態では、CPU11、12、及び、13は、所定の通信プロトコルとして、TCP/IP(Transmission Control Protocol / Internet Protocol)を使用することとする。即ちこの場合、仮想通信ドライバ111、121、及び、131は、TCP/IPを使用した通信を制御する機能を備える。尚、CPU11、12、及び、13は、所定の通信プロトコルとして、TCP/IPとは異なる通信プロトコルを使用してもよい。
【0025】
実通信ドライバ112は、CPU11が通信デバイス14を介して外部装置20と行う通信を制御する。CPU11、12、及び、13が、通信プロトコルとしてTCP/IPを使用する場合、実通信ドライバ112は、TCP/IPを使用した通信を制御する機能を備える。
【0026】
L2/L3スイッチ113は、CPU11、12、及び、13の間で行われるOS間の通信に使用する通信経路を確立する。L2/L3スイッチ113は、また、CPU11、12、及び、13のいずれかと外部装置20との間で行われる通信に使用する通信経路を確立する。
【0027】
L2/L3スイッチ113は、OSI(Open Systems Interconnection)参照モデルにおけるデータリンク層(第2層)及びネットワーク層(第3層)において通信経路を確立する。L2/L3スイッチ113は、CPU11、12、及び、13の間で行われるOS間の通信に使用する通信経路を確立する場合、データリンク層におけるルーティングを行うことによって、通信経路を確立する。L2/L3スイッチ113は、CPU11、12、及び、13のいずれかと外部装置20との間で行われる通信に使用する通信経路を確立する場合、ネットワーク層におけるブリッジ接続を行うことによって、通信経路を確立する。
【0028】
上述した通り、CPU12及び13は、CPU11が備える実通信ドライバ112及びL2/L3スイッチ113に相当する構成を備えていない。CPU11は、CPU12とCPU13との間で行われるOS間の通信、及び、CPU12あるいはCPU13と外部装置20との間で行われる通信に関して、通信経路を制御するマスターCPUとして動作する。
【0029】
次に、CPU12がCPU13とOS間の通信を行う場合について説明する。
【0030】
CPU12がCPU13とOS間の通信を行う際の通信経路は、マイクロコンピュータ10の動作環境が所定の条件を満たすか否かによって異なる。当該所定の条件は、例えば、CPU12とCPU13との間における通信速度の要件が基準(例えば閾値)以上であることを表す。あるいは、当該所定の条件は、例えば、CPU12がCPU13との間における通信に使用可能な情報処理資源として備える量(例えばメモリ容量)が基準(例えば閾値)以上であることを表す。尚、当該所定の条件を表す情報は、例えば、マイクロコンピュータ10のユーザによる入力操作等によって、マイクロコンピュータ10のメモリ(不図示)等における所定の記憶領域に記憶されていることとする。
【0031】
CPU12における仮想通信ドライバ121は、マイクロコンピュータ10の動作環境が上述した条件を満たす場合、CPU12とCPU13とを直接接続する通信経路を介して、CPU13における仮想通信ドライバ131との通信を行う。即ちこの場合、CPU11は、マスターCPUとして、CPU12とCPU13との間の通信経路を確立することを行わない。
【0032】
CPU12における仮想通信ドライバ121は、マイクロコンピュータ10の動作環境が上述した条件を満たさない場合、CPU11に対して、CPU13との間の通信経路を確立することを依頼する通信を行う。CPU11におけるL2/L3スイッチ113は、CPU12からの上述した依頼に応じて、データリンク層におけるルーティングを行うことによって、CPU12とCPU13との間のOS間の通信に使用する通信経路を確立する。仮想通信ドライバ121は、L2/L3スイッチ113によって確立された通信経路を介して、CPU13における仮想通信ドライバ131との通信を行う。この場合、上述の通り、CPU11は、マスターCPUとして、CPU12とCPU13との間の通信経路を確立する。
【0033】
CPU13がCPU12とOS間の通信を行う場合におけるマイクロコンピュータ10の動作も、上述と同様である。
【0034】
次に、CPU12により実行されているOS120が外部装置20と通信を行う場合について説明する。
【0035】
外部装置20との通信において使用する通信デバイス14はCPU11に接続されているので、CPU12における仮想通信ドライバ121は、CPU11に対して、通信デバイス14を介した外部装置20との間の通信経路を確立することを依頼する通信を行う。CPU11におけるL2/L3スイッチ113は、CPU12からの上述した依頼に応じて、ネットワーク層におけるブリッジ接続を行うことによって、OS120と外部装置20との間の通信に使用する通信経路を確立する。この場合、上述の通り、CPU11は、マスターCPUとして、OS120と外部装置20との間の通信経路を確立する。
【0036】
次に図2及び図3のフローチャートを参照して、本実施形態に係るマイクロコンピュータ10の動作(処理)について詳細に説明する。
【0037】
図2は、マイクロコンピュータ10がCPU12とCPU13との間でOS間の通信を行う動作を示すフローチャートである。
【0038】
仮想通信ドライバ121は、CPU12によるCPU13とのOS間の通信を開始するにあたり、マイクロコンピュータ10の動作環境が、通信速度の要件や通信に使用可能なメモリ容量等に関する所定の条件を満たすか否かを確認する(ステップS101)。マイクロコンピュータ10の動作環境が所定の条件を満たす場合(ステップS102でYes)、仮想通信ドライバ121は、CPU12とCPU13とを直接接続する通信経路を用いて、仮想通信ドライバ131を介して、CPU13とのOS間の通信を行い(ステップS103)、全体の処理は終了する。
【0039】
マイクロコンピュータ10の動作環境が所定の条件を満たない場合(ステップS102でNo)、仮想通信ドライバ121は、CPU11に対して、CPU13との通信を行うための通信経路の確立を依頼する(ステップS104)。L2/L3スイッチ113は、データリンク層におけるルーティングを行うことによって、CPU12とCPU13との通信経路を確立する(ステップS105)。仮想通信ドライバ121は、確立された通信経路を用いて、仮想通信ドライバ111及び仮想通信ドライバ131を介して、CPU13とのOS間の通信を行い(ステップS106)、全体の処理は終了する。
【0040】
図3は、マイクロコンピュータ10がCPU12において実行されているOS120と外部装置20との間で通信を行う動作を示すフローチャートである。
【0041】
仮想通信ドライバ121は、CPU11に対して、外部装置20との通信を行うための通信経路の確立を依頼する(ステップS201)。L2/L3スイッチ113は、ネットワーク層におけるブリッジ接続を行うことによって、OS120と外部装置20との通信経路を確立する(ステップS202)。仮想通信ドライバ121は、確立された通信経路を用いて、仮想通信ドライバ111、実通信ドライバ112、及び、通信デバイス14を介して、外部装置20との通信を行い(ステップS203)、全体の処理は終了する。
【0042】
本実施形態に係るマイクロコンピュータ10は、複数のOSを実行する場合において、OS間における通信、及び、OSと外部装置20とにおける通信を、限られた情報処理資源によって実現することができる。その理由は、マイクロコンピュータ10は、CPU12とCPU13との間のOS通信、及び、OS120あるいはOS130と外部装置20との間の通信に使用する通信経路を、CPU11におけるL2/L3スイッチ113により確立するからである。
【0043】
以下に、本実施形態に係るマイクロコンピュータ10によって実現される効果について、詳細に説明する。
【0044】
マイクロコンピュータ等の情報処理装置が複数のOSを実行するマルチOS構成を備える場合、実行するOS間における通信、及び、OSと外部の装置における通信が発生する。そして、実行するOSの数の増加とともに、このような通信を行うために必要となる記憶領域等の情報処理資源も増加する。しかしながら、例えばIoTにおけるエッジ側の機器に搭載されるマイクロコンピュータは、一般的に大容量のメモリ等を搭載することは困難であり、複数のOSに関する上述した通信を、限られた情報処理資源で実現できるようにすることが課題である。
【0045】
このような課題に対して、本実施形態に係るマイクロコンピュータ10は、OS110を実行するCPU11、OS120を実行するCPU12、及び、OS130を実行するCPU13を備える。CPU11は、仮想通信ドライバ111、実通信ドライバ112、及び、L2/L3スイッチ113を備える。CPU12は、仮想通信ドライバ121を備える。CPU13は、仮想通信ドライバ131を備える。そして、上述した構成を備えるマイクロコンピュータ10は、例えば図1乃至図3を参照して上述した通り動作する。即ち、仮想通信ドライバ111は、CPU12及びCPU13との間のOS間の通信を制御する。仮想通信ドライバ121は、CPU11との間のOS間の通信を制御する。仮想通信ドライバ131は、CPU11との間のOS間の通信を制御する。実通信ドライバ112は、外部装置20との通信を制御する。そして、L2/L3スイッチ113は、CPU12とCPU13との間の通信、及び、CPU12あるいはCPU13と外部装置20との間の通信に使用する通信経路を確立する。
【0046】
図4は、本実施形態に係るマイクロコンピュータ10と一般的なマイクロコンピュータとにおいて、実行するOSの数とOS間の通信経路の数との関係を例示するグラフである。図4のグラフにおいて、実線は、本実施形態に係るマイクロコンピュータ10に関する当該関係を表し、点線は、一般的なマイクロコンピュータに関する当該関係を表す。但し、図4のグラフにおける本実施形態に係るマイクロコンピュータ10に関する当該関係は、マイクロコンピュータ10の動作環境が、上述した通信速度の要件や通信に使用可能なメモリ容量等に関する所定の条件を満たさない場合における関係を表す。
【0047】
一般的なマイクロコンピュータでは、実行する全てのOS間において、1対1に通信経路を設定するので、実行するOSの数を表すn(nは2以上の任意の整数)に対して、OS間の通信経路の数は、図4に例示する通り、(1/2)xnx(n-1)となる。ただし、「x」は乗算を表す演算子である。
【0048】
これに対して、本実施形態に係るマイクロコンピュータ10では、CPU11が他のCPUに関するOS間の通信の通信経路を制御するマスターCPUとして動作するので、CPU11とその他のCPUとの間において、1対1に通信経路を設定すればよい。従って、マイクロコンピュータ10における通信経路の数は、図4に例示する通り、n-1となる。
【0049】
図4に例示する通り、実行するOSの数が大きくなればなるほど、マイクロコンピュータ10におけるOS間の通信経路の数は、一般的なマイクロコンピュータにおけるOS間の通信経路の数と比較して、大きく削減される。通常、OS間の通信を行うにあたり、通信経路ごとに、通信するデータ等を格納するメモリ等の情報処理資源を確保する必要があるので、通信経路の数が小さいほど、OS間の通信のために確保する情報処理資源の量も少なくて済む。したがって、マイクロコンピュータ10は、複数のOSを実行する場合において、OS間における通信を、限られた情報処理資源によって実現することができる。
【0050】
また、本実施形態に係るマイクロコンピュータ10では、CPU12及び13は通信デバイス14とは接続されておらず、OS120あるいはOS130が外部装置20と通信を行う際に、CPU11をマスターCPUとする通信経路の制御を行う。これにより、マイクロコンピュータ10は、OSと外部装置20とにおける通信を、限られた情報処理資源によって実現することができる。
【0051】
また、本実施形態に係るマイクロコンピュータ10は、マイクロコンピュータ10の動作環境が通信速度の要件や通信に使用可能なメモリ容量等に関する所定の条件を満たす場合、CPU11のL2/L3スイッチ113によって確立された通信経路を介さずに、CPU12がCPU13と直接通信するように制御する。そして、マイクロコンピュータ10は、当該動作環境が所定の条件を満たさない場合、L2/L3スイッチ113によって確立された通信経路を介して、CPU12がCPU13と通信するように制御する。例えば、CPU12がCPU13と直接通信する場合、CPU12がL2/L3スイッチ113によって確立された通信経路を介してCPU13と通信する場合と比較して、その通信速度は速くなる。これにより、マイクロコンピュータ10は、所望の動作環境に応じて、OS間の通信経路を好適に構築することができる。
【0052】
また、本実施形態に係るマイクロコンピュータ10は、OS間の通信の通信プロトコルとして、例えばTCP/IPのような既存の通信プロトコルを使用する。したがって、マイクロコンピュータ10は、OS間の通信を利用するアプリケーションに関して、汎用的なソケット通信のプログラミングを用いた通信プログラムの作成を可能にする。これにより、マイクロコンピュータ10は、既存のソフトウェア資産の流用によるソフトウェアの作成の効率化を実現することができる。
【0053】
尚、マイクロコンピュータ10におけるOSを実行する単位に関して、1つのCPUが1つのOSを実行することに限定されない。マイクロコンピュータ10において、例えば、1つのCPUが複数のOSを実行してもよいし、CPUに含まれる個々のコアが1以上のOSを実行してもよい。あるいは、マイクロコンピュータ10に構築された複数の仮想マシンの個々がOSを実行するようにしてもよい。
<第2の実施形態>
図5は、本発明の第2の実施形態に係る情報処理装置30の構成を示すブロック図である。
【0054】
本実施形態に係る情報処理装置30は、複数のOSを実行する情報処理装置であって、OS310を実行する第1の実行部31、OS320を実行する第2の実行部32、及び、OS330を実行する第3の実行部33を備えている。第1の実行部31、第2の実行部32、及び、第3の実行部33は、順に、第1の実行手段、第2の実行手段、及び、第3の実行手段の一例である。第1の実行部31、第2の実行部32、及び、第3の実行部33は、例えば、第1の実施形態に係るCPU11、CPU12、及び、CPU13と同様に動作する。OS310、OS320、及び、OS330は、例えば、第1の実施形態に係るOS110、OS120、及び、OS130と同様なOSである。
【0055】
第1の実行部31は、第1の内部通信制御部311、外部通信制御部312、及び、通信経路確立部313を備える。第1の内部通信制御部311、外部通信制御部312、及び、通信経路確立部313は、順に、第1の内部通信制御手段、外部通信制御手段、及び、通信経路確立手段の一例である。
【0056】
第1の内部通信制御部311は、第2の実行部32及び第3の実行部33との間のOS間の通信を制御する。第1の内部通信制御部311は、例えば、第1の実施形態に係る仮想通信ドライバ111と同様に動作する。
【0057】
第2の実行部32は、第2の内部通信制御部321を備える。第3の実行部33は、第3の内部通信制御部331を備える。第2の内部通信制御部321、及び、第3の内部通信制御部331は、順に、第2の内部通信制御手段、及び、第3の内部通信制御手段の一例である。
【0058】
第2の内部通信制御部321は、第1の実行部31との間のOS間の通信を制御する。第3の内部通信制御部331は、第1の実行部31との間のOS間の通信を制御する。第2の内部通信制御部321、及び、第3の内部通信制御部331は、例えば、第1の実施形態に係る仮想通信ドライバ121、及び、仮想通信ドライバ131と同様に動作する。
【0059】
外部通信制御部312は、外部の装置40との通信を制御する。外部通信制御部312は、例えば、第1の実施形態に係る実通信ドライバ112と同様に動作する。
【0060】
通信経路確立部313は、第2の実行部32と第3の実行部33との間の通信、及び、第2の実行部32あるいは第3の実行部33と外部の装置40との間の通信に使用する通信経路を確立する。通信経路確立部313は、例えば、第1の実施形態に係るL2/L3スイッチ113と同様に動作する。
【0061】
本実施形態に係る情報処理装置30は、複数のOSを実行する場合において、OS間における通信、及び、OSと外部の装置40とにおける通信を、限られた情報処理資源によって実現することができる。その理由は、情報処理装置30は、第2の実行部32と第3の実行部33との間のOS通信、及び、OS320あるいはOS330と外部の装置40との間の通信に使用する通信経路を、第1の実行部31における通信経路確立部313により確立するからである。
【0062】
<ハードウェア構成例>
上述した各実施形態において図1、及び、図5に示したマイクロコンピュータあるいは情報処理装置における各部は、専用のHW(HardWare)(電子回路)によって実現することができる。また、図1、及び、図5において、少なくとも、下記構成は、プロセッサによって実行される命令を含むソフトウェアプログラムの機能(処理)単位(ソフトウェアモジュール)と捉えることができる。
・仮想通信ドライバ111、121、131、
・実通信ドライバ112、
・L2/L3スイッチ113、
・第1の内部通信制御部311、
・外部通信制御部312、
・通信経路確立部313、
・第2の内部通信制御部321、
・第3の内部通信制御部331。
【0063】
但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図6を参照して説明する。
【0064】
図6は、本発明の各実施形態に係るマイクロコンピュータあるいは情報処理装置を実現可能な情報処理装置900(コンピュータ)の構成を例示的に説明する図である。即ち、図6は、図1、及び、図5に示したマイクロコンピュータあるいは情報処理装置を実現可能なコンピュータ(情報処理装置)の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【0065】
図6に示した情報処理装置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。
【0066】
即ち、上記構成要素を備える情報処理装置900は、これらの構成がバス906を介して接続された一般的なコンピュータである。情報処理装置900は、CPU901を複数備える場合もあれば、マルチコアにより構成されたCPU901を備える場合もある。
【0067】
そして、上述した実施形態は、図6に示した情報処理装置900に対して、次の機能を実現可能なコンピュータプログラムを供給してもよい。例えば、その機能とは、その実施形態の説明において参照したブロック構成図(図1及び図5)における上述した構成、或いはフローチャート(図2及び図3)の機能である。上述した実施形態に係るサーバあるいは情報処理装置の機能は、その後、そのコンピュータプログラムを、当該ハードウェアのCPU901に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性のメモリ(RAM903)、または、ROM902やハードディスク904等の不揮発性の記憶デバイスに格納すれば良い。
【0068】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、CD-ROM等の各種記録媒体907を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本実施形態に係る情報処理装置に供給されるコンピュータプログラムは、そのプログラムを構成するコード或いは、そのコードが格納された記録媒体907によって構成されると捉えることができる。
【0069】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【0070】
10 マイクロコンピュータ
11 CPU
110 OS
111 仮想通信ドライバ
112 実通信ドライバ
113 L2/L3スイッチ
12 CPU
120 OS
121 仮想通信ドライバ
13 CPU
130 OS
131 仮想通信ドライバ
14 通信デバイス
20 外部装置
30 情報処理装置
31 第1の実行部
310 OS
311 第1の内部通信制御部
312 外部通信制御部
313 通信経路確立部
32 第2の実行部
320 OS
321 第2の内部通信制御部
33 第3の実行部
330 OS
331 第3の内部通信制御部
40 外部の装置
900 情報処理装置
901 CPU
902 ROM
903 RAM
904 ハードディスク(記憶装置)
905 通信インタフェース
906 バス
907 記録媒体
908 リーダライタ
909 入出力インタフェース
図1
図2
図3
図4
図5
図6