(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024018801
(43)【公開日】2024-02-08
(54)【発明の名称】情報処理装置
(51)【国際特許分類】
G06F 3/00 20060101AFI20240201BHJP
G06F 13/38 20060101ALI20240201BHJP
【FI】
G06F3/00 T
G06F13/38 350
G06F3/00 B
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2022122346
(22)【出願日】2022-07-29
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
2.VXWORKS
(71)【出願人】
【識別番号】000006507
【氏名又は名称】横河電機株式会社
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【弁護士】
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100169823
【弁理士】
【氏名又は名称】吉澤 雄郎
(74)【代理人】
【識別番号】230128026
【弁護士】
【氏名又は名称】駒木 寛隆
(72)【発明者】
【氏名】栗原 達也
(72)【発明者】
【氏名】立花 拓也
(57)【要約】
【課題】高い転送速度を実現しながらモジュールの交換が容易な装置を提供する。
【解決手段】情報処理装置(1)は、予め定められた演算を行う演算回路(22)を備えた第1のモジュール(20)と、少なくとも一つの前記第1のモジュール(20)を互いに並列に接続可能な、シリアルバス(51)により互いに直列に接続可能な複数の第2のモジュール(30)と、を備える。
【選択図】
図9
【特許請求の範囲】
【請求項1】
予め定められた演算を行う演算回路を備えた第1のモジュールと、
少なくとも一つの前記第1のモジュールを互いに並列に接続可能な、シリアルバスにより互いに直列に接続可能な複数の第2のモジュールと、
を備える、情報処理装置。
【請求項2】
前記複数の第2のモジュールに接続された前記第1のモジュールの動作を制御する第3のモジュールであって、前記複数の第2のモジュールのうち、他の一つの前記第2のモジュールに接続された前記第2のモジュールに対してシリアルバスにより直列に接続可能な第3のモジュールを更に備える、請求項1に記載の情報処理装置。
【請求項3】
前記複数の第2のモジュールの各々は、他の前記第2のモジュール及び前記第3のモジュールと通信するためのスレーブ通信回路を備え、
前記第3のモジュールは、前記複数の第2のモジュールと通信するためのマスタ通信回路を備え、
前記マスタ通信回路は、シリアルバスにより直列に接続された前記複数の第2のモジュールが備える前記スレーブ通信回路との通信を制御する、
請求項2に記載の情報処理装置。
【請求項4】
前記複数の第2のモジュールは、複数の前記第1のモジュールが互いに干渉せずに挿抜することが可能な構造を有する、請求項1に記載の情報処理装置。
【請求項5】
前記第1のモジュール及び前記第2のモジュールは、活線挿抜が可能である、請求項1に記載の情報処理装置。
【請求項6】
前記複数の第2のモジュールの各々は、当該第2のモジュールに対して前記第1のモジュールが接続された場合に、当該第1のモジュールと前記スレーブ通信回路との間で通信するためのIO用通信回路を更に備える、請求項3に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置に関する。
【背景技術】
【0002】
バスとは、情報処理に関する機器等の複数のモジュールを接続し、モジュール間でデータを転送する伝達経路である。このようなバスの通信方式として、パラレルバス及びシリアルバスが知られている。
【0003】
パラレルバス型では一般的にベースモジュール上にCPU(Central Processing Unit)モジュールとIO(Input/Output)モジュールが実装され、各モジュールはベースモジュール上に配線されたパラレルバスで接続される。CPUモジュールが通信マスタとなり、パラレルバスを介してIOモジュールへリード/ライトアクセスを行う。パラレルバスは双方向のバスである。
【0004】
シリアルバス型では一般的にベースモジュールが不要で、隣り合ったモジュール同士がシリアルバスで接続される。CPUモジュールが通信マスタとなって、IOモジュールへコマンドを送る。自局宛てのコマンドを受け取ったIOモジュールはCPUモジュールへ応答を返す。シリアルバスは片方向のバスで、コマンドと応答は決まった方向へ伝送される。各IOモジュールは他局宛てのコマンドと応答を受け取ったら、それを次のIOモジュールへ渡しながら伝えていく。
【0005】
パラレルバスはマルチドロップ型の回路トポロジであるため、アクセス中はバス全体が占有され、1つのアクセスが終了するまでは次のアクセスを開始することはできない。また、接続台数が増えると信号波形が乱れやすく、転送速度を上げることが難しい。
【0006】
シリアルバスはpoint-to-point型の回路トポロジであるため、接続台数に関係なく安定した信号波形が得られ、転送速度を上げやすい。またパラレルバスと比較すると信号数も少ない。これらの理由により、最近ではシリアルバスが好まれる傾向にある。また、パラレルバスのようにバス全体が占有されることはなく、シリアルバス上で一度に複数のコマンドと応答を送受信することで、パラレルバスよりもバスの使用効率を上げることが可能である。
【0007】
そのため、転送速度の高速化の流れにおいて、パラレルバスからシリアルバスへの移行が進んでいる。例えば、パラレルバスのPCI(Peripheral Component Interconnect)は、シリアルバスのPCI expressに移行した。パラレルバスのATA(Advanced Technology Attachment)は、シリアルバスのSerial ATAに移行した。
【0008】
特許文献1には、複数のモジュールをシリアルバスにより接続した構成に関する技術が記載されている。
【先行技術文献】
【特許文献】
【0009】
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかし、シリアルバスはpoint-to-point型の回路トポロジの構成であるため、マルチドロップ型の回路トポロジであるパラレルバスよりモジュールの交換作業が困難である。
【0011】
そこで、本開示は、高い転送速度を実現しながらモジュールの交換が容易な装置を提供することを目的とする。
【課題を解決するための手段】
【0012】
幾つかの実施形態に係る情報処理装置は、予め定められた演算を行う演算回路を備えた第1のモジュールと、少なくとも一つの前記第1のモジュールを互いに並列に接続可能な、シリアルバスにより互いに直列に接続可能な複数の第2のモジュールと、を備える。
【0013】
このように、情報処理装置においては、少なくとも一つの第1のモジュールが接続可能な複数の第2のモジュールがシリアルバスにより直列に接続されるため、高速なデータ転送が可能である。また、複数の第2のモジュールは、それぞれ別個に少なくとも一つの第1のモジュールを互いに並列に接続可能であるため、第1のモジュールの交換が容易である。したがって、情報処理装置によれば、高い転送速度を実現しながらモジュールの交換が容易である。
【0014】
一実施形態において、前記複数の第2のモジュールに接続された前記第1のモジュールの動作を制御する第3のモジュールであって、前記複数の第2のモジュールのうち、他の一つの前記第2のモジュールに接続された前記第2のモジュールに対してシリアルバスにより直列に接続可能な第3のモジュールを更に備える。したがって、第3のモジュールにより、各第1のモジュール20の動作を制御して、ユーザの所望とする動作を行わせることができる。
【0015】
一実施形態において、前記複数の第2のモジュールの各々は、他の前記第2のモジュール及び前記第3のモジュールと通信するためのスレーブ通信回路を備え、前記第3のモジュールは、前記複数の第2のモジュールと通信するためのマスタ通信回路を備え、前記マスタ通信回路は、シリアルバスにより直列に接続された前記複数の第2のモジュールが備える前記スレーブ通信回路との通信を制御する。このような構成によれば、第3のモジュールのマスタ通信回路の制御により、モジュール間の通信を高速に行うことが可能である。
【0016】
一実施形態において、前記複数の第2のモジュールは、複数の前記第1のモジュールが互いに干渉せずに挿抜することが可能な構造を有する。このような構成によれば、第1のモジュールの交換を更に容易に行うことができる。
【0017】
一実施形態において、前記第1のモジュール及び前記第2のモジュールは、活線挿抜が可能である。このような構成によれば、情報処理装置1を稼働したまま第1のモジュールを交換することが可能であり、第1のモジュールの交換を更に容易に行うことができる。
【0018】
一実施形態において、前記複数の第2のモジュールの各々は、当該第2のモジュールに対して前記第1のモジュールが接続された場合に、当該第1のモジュールと前記スレーブ通信回路との間で通信するためのIO用通信回路を、更に備える。このような構成によれば、第2のモジュールに接続された第1のモジュールは、その第2のモジュールが備えるIO用通信回路及びスレーブ通信回路を介して他の第1のモジュール等と通信することが可能である。
【発明の効果】
【0019】
本開示の一実施形態によれば、高い転送速度を実現しながらモジュールの交換が容易である。
【図面の簡単な説明】
【0020】
【
図1】比較例に係るコントローラの構成を示す図である。
【
図2】比較例に係るコントローラの構成を示す図である。
【
図3】
図1のコントローラにおけるモジュールの挿抜を説明する図である。
【
図4】
図1のコントローラにおけるモジュールの挿抜を説明する図である。
【
図5】
図1のコントローラにおけるモジュールの挿抜を説明する図である。
【
図6】
図2のコントローラにおけるモジュールの挿抜を説明する図である。
【
図7】
図2のコントローラにおけるモジュールの挿抜を説明する図である。
【
図8】
図2のコントローラにおけるモジュールの挿抜を説明する図である。
【
図9】本開示の一実施形態に係るコントローラの構成例を示す図である。
【
図10】
図9のコントローラにおけるモジュールの挿抜を説明する図である。
【
図11】
図9のコントローラにおけるモジュールの挿抜を説明する図である。
【
図12】
図9のコントローラにおけるモジュールの挿抜を説明する図である。
【発明を実施するための形態】
【0021】
<比較例>
図1及び
図2は、比較例に係るコントローラ9(9a,9b)の構成を示す図である。
図1は、複数のモジュール91,92(92a,92b,92c,92d)がパラレルバス94により接続されたコントローラ9aを示す。
図2は、複数のモジュール91,92(92a,92b,92c,92d)がシリアルバス95により接続されたコントローラ9bを示す。
【0022】
図1において、コントローラ9aは、CPU(Central Processing Unit)モジュール91、複数のIOモジュール92(92a,92b,92c,92d)、ベースモジュール93、及びパラレルバス94を備える。
【0023】
CPUモジュール91は、コントローラ9aに含まれる各構成要素を統括して、コントローラ9a全体の動作を制御するモジュールである。CPUモジュール91は、外部I/F(Interface)911、演算回路912、及びマスタ通信回路913を備える。外部I/F911は、外部装置と接続するためのインタフェースである。演算回路912は、外部I/F911及びIOモジュール92との通信に基づき演算処理を行うプロセッサである。マスタ通信回路913は、パラレルバス94を介して、IOモジュール92との通信を行う通信回路である。
【0024】
IOモジュール92(92a,92b,92c,92d)は、それぞれ専用の演算処理を行うモジュールである。IOモジュール92は、外部I/F(Interface)921、演算回路922、及びスレーブ通信回路923を備える。外部I/F921は、外部装置と接続するためのインタフェースである。演算回路922は、外部I/F921、CPUモジュール91、及び他のIOモジュール92との通信に基づき演算処理を行うプロセッサである。スレーブ通信回路923は、パラレルバス94を介して、CPUモジュール91及び他のIOモジュール92との通信を行う通信回路である。
【0025】
ベースモジュール93は、CPUモジュール91及びIOモジュール92(92a,92b,92c,92d)をパラレルバス94に接続するための基板である。
【0026】
パラレルバス94は、CPUモジュール91及びIOモジュール92(92a,92b,92c,92d)を並列に接続するバスである。パラレルバス94は、ベースモジュール93上に配線されている。
【0027】
図2において、コントローラ9bは、CPUモジュール91、複数のIOモジュール92(92a,92b,92c,92d)、及びシリアルバス95を備える。
【0028】
図1のように複数のモジュール91,92(92a,92b,92c,92d)がパラレルバス94により接続された構成においては、あるIOモジュール92を他のIOモジュール92とは独立して挿抜することができる。そのため、パラレルバス94による構成においては、モジュールの交換が容易である。一方、
図2のように複数のモジュール91,92がシリアルバス95により接続された構成においては、あるIOモジュール92を挿抜するには、IOモジュール92間の接続関係を変更する必要がある。そのため、シリアルバス95による構成においては、パラレルバス94による構成よりもモジュールの交換が困難である。
【0029】
このようなモジュールの挿抜の容易さについて、
図3~
図8を参照して説明する。
図3~
図5は、
図1のコントローラ9aにおけるモジュールの挿抜を説明する図である。
図6~
図8は、
図2のコントローラ9bにおけるモジュールの挿抜を説明する図である。
【0030】
図3に示すように、コントローラ9aにおいては、CPUモジュール91及びIOモジュール92(92a,92b,92c,92d)は、ベースモジュール93に正面から取り付けて使用する。CPUモジュール91又はIOモジュール92がベースモジュール93に取り付けられると、マスタ通信回路913又はスレーブ通信回路923はベースモジュール93上に配線されたパラレルバス94と接続され、パラレルバス94に接続された他のモジュールと通信可能となる。
【0031】
図4は、CPUモジュール91及びIOモジュール92(92a,92b,92c,92d)の全てがベースモジュール93に取り付けられた様子を示している。
図5は、CPUモジュール91及びIOモジュール92(92a,92b,92c,92d)が取り付けられたベースモジュール93からIOモジュール92bを取り外す様子を示している。
図5に示すように、IOモジュール92bを交換する場合は、そのIOモジュール92bをベースモジュール93の正面から引き抜くことになる。
【0032】
図3~
図5に示すように、CPUモジュール91及びIOモジュール92の挿抜方向はベースモジュール93に対して垂直であり、これらのモジュールがベースモジュール93に取り付けられると、互いに並列に接続される。コントローラ9aは、あるIOモジュール92の隣接する位置にIOモジュール92が取り付けられていなくても動作することができる。そのため、CPUモジュール91及びIOモジュール92は、それぞれ独立して挿抜することができる。
【0033】
一方、コントローラ9bにおいては、
図6に示すように、CPUモジュール91及びIOモジュール92(92a,92b,92c,92d)は、シリアルバス95により横方向に連結して使用する。CPUモジュール91及びIOモジュール92の各々は側面にコネクタを備え、
図7に示すように、これらを横方向に連結すると、各モジュールの直接の通信相手は隣接するモジュールとなる。
図8のように、IOモジュール92bを交換する場合、IOモジュール92bは、IOモジュール92a,92cから分離させる必要がある。IOモジュール92a,92cからIOモジュール92bを分離させるためにはCPUモジュール91及びIOモジュール92dも同時に移動させる必要がある。このように、複数のモジュールがシリアルバス95により接続された構成においては、交換対象となるモジュールの両側に位置するモジュールを分離した後に、対象のモジュールを交換する必要がある。そのため、モジュールの交換において、横連結構造であるシリアルバス型のコントローラ9bはパラレルバス型のコントローラ9aよりモジュールの交換が困難となる。このことは、各モジュールが一定の空間を占める筐体に収められている場合に特に問題となる。
【0034】
一方で、複数のモジュールをパラレルバス94により接続した構成においては、シリアルバス95により接続した構成と比較してデータの転送速度を上げることが困難である。
【0035】
<実施形態>
以下、本開示の一実施形態について、図面を参照して説明する。各図面中、同一の構成又は機能を有する部分には、同一の符号を付している。本実施形態の説明において、同一の部分については、重複する説明を適宜省略又は簡略化する場合がある。
【0036】
図2のようなシリアルバス型のIOモジュール92は、外部I/F921、演算回路922、及びスレーブ通信回路923を備える。これに対して、本開示に係るコントローラにおいては、これらの構成要素を、ベースモジュールにおけるスレーブ通信回路及びIO用通信回路、並びに、IOモジュールにおける外部I/F、演算回路、及び通信回路に分離させた。換言すると、本開示に係るコントローラにおいては、1つ以上の挿抜可能なIOモジュールを備えたベースモジュールが横方向に直列に接続される。各ベースモジュールに対して、1つ以上のIOモジュールが垂直に配置可能であり、ベースモジュールが1つ以上のIOモジュールと並列に通信可能とする。したがって、本開示に係るコントローラによれば、シリアルバス型の構造をとることにより装置全体で高速な転送速度を維持しながらも、モジュールを設置した後にIOモジュールの交換を容易に行うことが可能である。
【0037】
図9は、本開示の一実施形態に係る情報処理装置としてのコントローラ1の構成例を示す図である。
図9に示すように、コントローラ1は、CPUモジュール10、1つ以上のIOモジュール20(20a,20b,20c,20d)、及び、複数のベースモジュール30(30a,30b)を備える。CPUモジュール10及びベースモジュール30(30a,30b)は互いにシリアルバス51により接続される。
図9では、このような構成の一例として、コントローラ1は、1つのCPUモジュール10、それぞれ最大2つまでIOモジュール20が装着可能な2つのベースモジュール30、及び4つのIOモジュール20を備える。
図9の例では、ベースモジュール30aには、2つのIOモジュール20a,20bが並列に装着されている。ベースモジュール30bには、2つのIOモジュール20c,20dが並列に装着されている。
【0038】
なお、コントローラ1が備えるCPUモジュール10の個数、IOモジュール20の個数、及びベースモジュール30の個数、並びに、ベースモジュール30に装着可能なIOモジュール20の個数はいずれも1つ以上の任意の数としてもよい。また、ベースモジュール30に装着可能なIOモジュール20の個数はベースモジュール30毎に異なってもよい。例えば、ベースモジュール30aには最大1つのIOモジュール20が接続可能であり、ベースモジュール30bには最大3つのIOモジュール20が接続可能であるようにしてもよい。また、コントローラ1は、CPUモジュール10及びIOモジュール20以外の種類のモジュールを備えてもよい。
【0039】
第3のモジュールとしてのCPUモジュール10は、コントローラ1に含まれる各構成要素を統括して、コントローラ1全体の動作を制御するモジュールである。CPUモジュール10は、例えば、Linux、VxWorksを含む任意のリアルタイムOS(Operating System)に基づき動作してもよい。CPUモジュール10は、外部I/F11、演算回路12、及びマスタ通信回路13を備える。
図9のように、本実施形態では、CPUモジュール10は、直列に接続された複数のベースモジュール30のうち、他の一つのベースモジュール(例えば、ベースモジュール30b)に接続されたベースモジュール30aに対してシリアルバス51により直列に接続可能である。
【0040】
外部I/F11は、外部装置と接続するためのインタフェースである。このような外部装置には、PC(Personal Computer)又はタブレット端末、キーボード、ポインティングデバイス、又はディスプレイ等の入出力装置等が含まれてもよい。外部I/F11は、インターネットを含む任意のネットワークを介してこのような外部装置と接続してもよい。
【0041】
演算回路12は、外部I/F11及びIOモジュール20との通信に基づき演算処理を行うプロセッサである。演算回路12は、例えば、汎用のプロセッサ、又は特定の処理に特化した専用のプロセッサであるが、これらに限定されない。また、演算回路12は、演算処理に必要なデータを保持するためのメモリを備えてもよい。
【0042】
マスタ通信回路13は、シリアルバス51を介して、ベースモジュール30(30a,30b)との通信を行う通信回路である。マスタ通信回路13は、シリアルバス51により、各ベースモジュール30と直列に接続される。CPUモジュール10及びベースモジュール30間の通信は、マスタ通信回路13の制御に基づき行われる。
【0043】
第1のモジュールとしてのIOモジュール20(20a,20b,20c,20d)は、それぞれ専用の演算処理を行うモジュールである。IOモジュール20が行う演算処理には、例えば、CAN(Controller Area Network)、Ethernet、Modbusを含む特定のネットワークへの接続、デジタル信号、パルス信号、又はアナログ信号等の入出力、温度調節、温度モニタ、又は断線検出等の温度に関する制御、データ収集、特定の信号のカウンタ、並びに位置決めが含まれてもよい。IOモジュール20は、外部I/F(Interface)21、演算回路22、及び通信回路23を備える。
【0044】
外部I/F21は、外部装置と接続するためのインタフェースである。例えば、温度モニタを行うIOモジュール20の外部I/F21は温度センサと接続し、温度を示す電気信号を受信してもよい。あるいは、カウンタとして動作するIOモジュール20の外部I/F21は、所定の動作検出に応じて特定の信号(例えば、パルス信号)を出力する装置と接続してもよい。
【0045】
演算回路22は、外部I/F21、CPUモジュール10、及び他のIOモジュール20との通信に基づき演算処理を行うプロセッサである。例えば、温度モニタを行うIOモジュール20の演算回路22は、温度センサから受信した電気信号に基づき温度を示す情報を生成し、ベースモジュール30を介してCPUモジュール10へ出力してもよい。また、温度モニタを行うIOモジュール20の演算回路22は、CPUモジュール10からの指示に基づき、サンプリング周期、又は温度の分解能等を含む制御情報を、外部I/F21を介して温度センサへ出力してもよい。あるいは、例えば、カウンタとして動作するIOモジュール20の演算回路22は、外部装置から特定の信号を受信したことに応じて、その受信回数を計数してもよい。また、演算回路22は、演算処理に必要なデータを保持するためのメモリを備えてもよい。
【0046】
通信回路23は、ベースモジュール30を介して、CPUモジュール10及び他のIOモジュール20との通信を行う通信回路である。コントローラ1において、IOモジュール20は、ベースモジュール30に対して挿抜可能である。IOモジュール20がベースモジュール30に対して取り付けられると、通信回路23と、後述のベースモジュール30のIO用通信回路31とが電気的に接続し、IOモジュール20及びベースモジュール30の間の通信が可能となる。例えば、温度モニタを行うIOモジュール20の通信回路23は、モニタした温度を示す情報を、IO用通信回路31を介して、CPUモジュール10へ送信してもよい。あるいは、温度モニタを行うIOモジュール20の通信回路23は、温度センサに対する制御情報を、IO用通信回路31を介して、CPUモジュール10から受信してもよい。
【0047】
第2のモジュールとしてのベースモジュール30(30a,30b)は、CPUモジュール10及びIOモジュール20(20a,20b,20c,20d)を互いに接続するための基板である。ベースモジュール30は、1つ以上のIO用通信回路31、及びスレーブ通信回路32を備える。
図9では、このような構成の一例として、ベースモジュール30(30a,30b)の各々は2つのIO用通信回路31を備え、最大2つまでIOモジュール20が装着可能である。
【0048】
IO用通信回路31は、ベースモジュール30がIOモジュール20と接続して通信するための通信回路である。IO用通信回路31はベースモジュール30におけるIOモジュール20の接続位置毎に設けられてもよい。IOモジュール20がベースモジュール30に対して取り付けられると、IOモジュール20の通信回路23と、IO用通信回路31とが電気的に接続し、IOモジュール20及びベースモジュール30の間の通信が可能となる。換言すると、ベースモジュール30に接続されたIOのモジュール20は、そのベースモジュール30が備えるIO用通信回路31及びスレーブ通信回路32を介して他のIOモジュール20及びCPUモジュール10と通信することが可能である。IOモジュール20の通信回路23及びIO用通信回路31は互いに係合することが可能な形状を有してもよい。
【0049】
スレーブ通信回路32は、シリアルバス51を介してCPUモジュール10及び他のベースモジュール30と通信すると共に、IO用通信回路31を介してIOモジュール20と通信する通信回路である。スレーブ通信回路32は、シリアルバス51により、CPUモジュール10及び他のベースモジュール30と直列に接続される。スレーブ通信回路32は、ベースモジュール30にIOモジュール20が接続していなくても、シリアルバス51を介して、CPUモジュール10及び他のベースモジュール30と通信することが可能である。例えば、ベースモジュール30aには1つもIOモジュール20が接続されておらず、ベースモジュール30bにはIOモジュール20cのみが接続されているとする。このような場合、CPUモジュール10と、IOモジュール20cとは、ベースモジュール30aのスレーブ通信回路32、並びに、ベースモジュール30bのスレーブ通信回路32及びIO用通信回路31を介して互いに通信することができる。
【0050】
CPUモジュール10、IOモジュール20、及びベースモジュール30は、不図示の電源から電力の供給を受けて動作する。ただし、例えば、IOモジュール20は、ベースモジュール30に接続された場合に、通信回路23及びIO用通信回路31を介して、ベースモジュール30から電力の供給を受けてもよい。また、CPUモジュール10及び各ベースモジュール30は、シリアルバス51を介して他の装置から電力の供給を受けて動作してもよい。
【0051】
図9に示すように、CPUモジュール10のマスタ通信回路13、ベースモジュール30aのスレーブ通信回路32、及びベースモジュール30bのスレーブ通信回路32はシリアルバス51により接続される。したがって、CPUモジュール10とIOモジュール20が接続されたベースモジュール30との間で高速に通信を行うことができ、CPUモジュール10及び1つ以上のIOモジュール20により高速な演算処理を行うことが可能である。
【0052】
また、ベースモジュール30毎に、装着されているIOモジュール20が並列に接続される。あるIOモジュール20は他のIOモジュール92とは独立して挿抜することができる。そのため、コントローラ1においては、モジュールの交換が容易である。
【0053】
図10~
図12は、
図9のコントローラ1におけるIOモジュール20の挿抜を説明する図である。
【0054】
図10に示すように、コントローラ1においては、CPUモジュール10及びベースモジュール30(30a,30b)は、シリアルバス51により横方向に連結して使用する。CPUモジュール10及びベースモジュール30の各々は側面にコネクタを備え、
図11に示すように、これらを横方向に連結すると、各モジュールの直接の通信相手は隣接するモジュールとなる。各ベースモジュール30a,30bは、IOモジュール20を挿抜する際に他のIOモジュール20と干渉しないような構造を有する。例えば、IOモジュール20a,20bは、ベースモジュール30aに正面から取り付けて使用する。IOモジュール20c,20dは、ベースモジュール30bに正面から取り付けて使用する。
【0055】
図11のように、CPUモジュール10、IOモジュール20(20a,20b,20c,20d)、及びベースモジュール30(30a,30b)が接続されると、CPUモジュール10及びIOモジュール20による演算を行うことができる。
【0056】
図12は、ベースモジュール30aからIOモジュール20bを取り外す様子を示している。
図12に示すように、IOモジュール20bを交換する場合は、そのIOモジュール20bをベースモジュール30aの正面から引き抜くことになる。このように各ベースモジュール30a,30bは、IOモジュール20を挿抜する際に他のIOモジュール20と干渉しないような構造を有するため、IOモジュール20bは他のIOモジュール20a,20c,20dとは独立して挿抜することができる。したがって、コントローラ1においては、モジュールの交換が容易である。
【0057】
以上のように、コントローラ1は、IOモジュール20と、複数のベースモジュール30とを備える。IOモジュール20は、予め定められた演算を行う演算回路22を備える。複数のベースモジュール30は、少なくとも一つのIOモジュール20を互いに並列に接続可能であり、また、シリアルバス51により他のベースモジュール30と互いに直列に接続可能である。
【0058】
このように、コントローラ1においては、少なくとも一つのIOモジュール20が接続可能な複数のベースモジュール30がシリアルバス51により接続されるため、高速なデータ転送が可能である。また、複数のベースモジュール30は、それぞれ別個に少なくとも一つのIOモジュール20を互いに並列に接続可能であるため、IOモジュール20の交換が容易である。換言すると、互いにシリアルバス51に直列に接続されたモジュール(CPUモジュール10、ベースモジュール30)の脱着は伴わずにIOモジュール20を交換することができるため、これらのモジュールが筐体等に収められている場合であっても、IOモジュール20を容易に交換することができる。よって、コントローラ1によれば、高い転送速度を実現しながらモジュールの交換が容易である。
【0059】
なお、前述のように、
図9~
図12では、説明の簡略化のため、一つのベースモジュール30につき最大2つのIOモジュール20を交換可能な例を説明したが、接続可能なIOモジュール20の数はベースモジュール30毎に任意である。また、
図9~
図12では、1つのCPUモジュール10に2つのベースモジュール30がシリアルバス51により連結しているが、CPUモジュール10に接続されるベースモジュール30の数は任意である。また、複数のベースモジュール30の少なくともいずれかにおいて、本来IOモジュール20が装着される場所をリザーブ用として空けておいてもよい。このような構成によれば、コントローラ1の稼働後に所定の機能が必要となった場合に、IOモジュール20を交換せずに、そのような機能を実現するためのIOモジュール20を追加することが可能である。
【0060】
また、コントローラ1は、複数のベースモジュール30に接続されたIOモジュール20の動作を制御する、複数のベースモジュール30に対してシリアルバス51により接続可能なCPUモジュール10を更に備えてもよい。このような構成によれば、CPUモジュール10により、各IOモジュール20の動作を制御して、ユーザの所望とする動作を行わせることができる。また、CPUモジュール10は、複数のベースモジュール30に対してシリアルバス51により接続されるため、データ転送を高速に行うことが可能である。
【0061】
また、複数のベースモジュール30の各々は、他のベースモジュール30及びCPUモジュール10と通信するためのスレーブ通信回路32を備えてもよい。CPUモジュール10は、複数のベースモジュール30と通信するためのマスタ通信回路13を備えてもよい。マスタ通信回路13は、シリアルバス51により接続された複数のベースモジュール30が備えるスレーブ通信回路32との通信を制御してもよい。このような構成によれば、CPUモジュール10のマスタ通信回路13の制御により、モジュール間の通信を高速に行うことが可能である。
【0062】
なお、マスタ通信回路13が内蔵されるモジュールはCPUモジュール10以外の通信モジュール(例えば、ベースモジュール30a)としてもよい。このような構成によれば、シリアルバス51に接続されたモジュール間の通信を、CPUモジュール10以外のモジュールにより主導させることが可能である。
【0063】
また、複数のベースモジュール30は、複数のIOモジュール20が互いに干渉せずに挿抜することが可能な構造を有してもよい。このような構成によれば、IOモジュール20の交換を更に容易に行うことができる。なお、
図10~
図12の例では、各ベースモジュール30(30a,30b)は平板状の矩形形状を有し、CPUモジュール10及びベースモジュール30は互いに縁部で横方向に接続する構成を備えるが、このような構成に限られない。例えば、ベースモジュール30は箱型、コの字型、又はL字型等の形状を有してもよい。また、CPUモジュール10及びベースモジュール30は、互いに接続することにより、全体として、箱型、コの字型、又はL字型等の形状が構成されるようにしてもよい。したがって、コントローラ1は、用いられる空間に合わせて適切な形状を有することが可能である。
【0064】
また、IOモジュール20及びベースモジュール30は、活線挿抜(ホットスワップ)が可能としてもよい。このような構成によれば、コントローラ1(又はCPUモジュール10)を稼働したままIOモジュール20を交換することが可能であり、IOモジュール20の交換を更に容易に行うことができる。また、このような構成によれば、他の装置から通信によりコントローラ1に接続して、IOモジュール20の交換中にオンラインメンテナンスを行うことが可能となる。
【0065】
本開示の一実施形態に係るコントローラ1は、例えば、配電盤、リアルタイムOS(Operating System)コントローラ、又は、プログラマブルコントローラを含む任意の情報処理装置に適用してもよい。
【0066】
コントローラ1によれば、従来のシリアルバス型横連結の構成と比較し、スレーブ回路の削減が可能となり、それに伴い部品費の削減、及び消費電力の低減の効果が期待できる。換言すると、
図9のように、複数のIOモジュール20の通信を1つのスレーブ通信回路32により実現することで、IOモジュール20毎に対応するスレーブ通信回路32を設けた構成よりも部品点数及び消費電力を低減することができる。
【0067】
本開示の実施形態例について以下に付記する。
[1]
予め定められた演算を行う演算回路を備えた第1のモジュールと、
少なくとも一つの前記第1のモジュールを互いに並列に接続可能な、シリアルバスにより互いに直列に接続可能な複数の第2のモジュールと、
を備える、情報処理装置。
[2]
前記複数の第2のモジュールに接続された前記第1のモジュールの動作を制御する第3のモジュールであって、前記複数の第2のモジュールのうち、他の一つの前記第2のモジュールに接続された前記第2のモジュールに対してシリアルバスにより直列に接続可能な第3のモジュールを更に備える、[1]に記載の情報処理装置。
[3]
前記複数の第2のモジュールの各々は、他の前記第2のモジュール及び前記第3のモジュールと通信するためのスレーブ通信回路を備え、
前記第3のモジュールは、前記複数の第2のモジュールと通信するためのマスタ通信回路を備え、
前記マスタ通信回路は、シリアルバスにより直列に接続された前記複数の第2のモジュールが備える前記スレーブ通信回路との通信を制御する、
[2]に記載の情報処理装置。
[4]
前記複数の第2のモジュールは、複数の前記第1のモジュールが互いに干渉せずに挿抜することが可能な構造を有する、[1]から[3]のいずれか一項に記載の情報処理装置。
[5]
前記第1のモジュール及び前記第2のモジュールは、活線挿抜が可能である、[1]から[4]のいずれか一項に記載の情報処理装置。
[6]
前記複数の第2のモジュールの各々は、当該第2のモジュールに対して前記第1のモジュールが接続された場合に、当該第1のモジュールと前記スレーブ通信回路との間で通信するためのIO用通信回路を更に備える、[3]に記載の情報処理装置。
【0068】
本開示は上述の実施形態に限定されるものではない。本開示の趣旨を逸脱しない範囲での変更が可能である。
【符号の説明】
【0069】
1 コントローラ
10 CPUモジュール
11 外部I/F
12 演算回路
13 マスタ通信回路
20 IOモジュール
21 外部I/F
22 演算回路
23 通信回路
30 ベースモジュール
31 IO用通信回路
32 スレーブ通信回路
51 シリアルバス
9 コントローラ(比較例)
91 CPUモジュール
911 外部I/F
912 演算回路
913 マスタ通信回路
92 IOモジュール
921 外部I/F
922 演算回路
923 スレーブ通信回路
93 ベースモジュール
94 パラレルバス
95 シリアルバス