(57)【要約】  アクセスの一時的な集中により応答が遅くなることを防止する並列処理装置などを提供する。  ネットワークに接続される並列処理装置であって、複数のＣＰＵと、前記ネットワークからデータを受信する手段と、前記受信したデータに関連するタスクを前記複数のＣＰＵのうち待ち状態にあるＣＰＵに振り分ける手段と、を備えたことを特徴とする並列処理装置である。
2012133366.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続される並列処理装置であって、
複数のＣＰＵと、
前記ネットワークからデータを受信する手段と、
前記受信したデータに関連するタスクを前記複数のＣＰＵのうち待ち状態にあるＣＰＵに振り分ける手段と、
を備えたことを特徴とする並列処理装置。
【請求項２】
メモリと、
前記メモリのアドレス空間上の領域を、前記タスクを振り分ける度に、前記タスクを振り分けるＣＰＵに対して割り当てる手段と、
を備えたことを特徴とする請求項１に記載の並列処理装置。
【請求項３】
前記複数のＣＰＵと前記メモリとを接続するバスと、
前記メモリに一のＣＰＵが接続されるように前記バスの接続及び切り離しを行う手段と、
を備えたことを特徴とする請求項２に記載の並列処理装置。
【請求項４】
前記メモリ上のデータが書き換えられた場合に、この書き換えられたデータを前記ネットワークに接続された他の並列処理装置に対して送信する手段を備えたことを特徴とする請求項２または請求項３に記載の並列処理装置。
【請求項５】
前記ネットワークを介して駅に設置された改札機に接続されることを特徴とする請求項１〜請求項４のいずれか１項に記載の並列処理装置。
【請求項６】
前記ネットワークを介して株式売買端末に接続されることを特徴とする請求項１〜請求項４のいずれか１項に記載の並列処理装置。
【請求項７】
請求項１〜請求項６のいずれか１項に記載の並列処理装置と複数の端末装置とがネットワークで接続されることを特徴とする並列処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列処理装置及び並列処理システムに関する。
【背景技術】
【０００２】
従来、ランダムに生じる所定の処理をネットワーク上で集中的に処理するシステムとして、乗車媒体には識別情報のみを記憶し、入場処理、出場処理などに必要な情報である乗車情報などは識別情報と関連付けして上位サーバにて一元管理する駅務システムが提案された（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−８５８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来のようなシステムでは、アクセスの一時的な集中によりサーバの応答が遅くなることがあり、いつもの速さで改札機を通過したのにゲートが閉まったり、それほど時間を要しないと思って行った株の売買注文がなかなか処理されなかったりなどして、ユーザの思惑通りに処理が進行しないという問題があった。【０００５】
そこで、本発明は、アクセスの一時的な集中により応答が遅くなることを防止する並列処理装置及び並列処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明によれば、上記課題は、次の手段により解決される。【０００７】
本発明は、ネットワークに接続される並列処理装置であって、複数のＣＰＵと、前記ネットワークからデータを受信する手段と、前記受信したデータに関連するタスクを前記複数のＣＰＵのうち待ち状態にあるＣＰＵに振り分ける手段と、を備えたことを特徴とする並列処理装置である。【０００８】
また、本発明は、メモリと、前記メモリのアドレス空間上の領域を、前記タスクを振り分ける度に、前記タスクを振り分けるＣＰＵに対して割り当てる手段と、を備えたことを特徴とする上記の並列処理装置である。【０００９】
また、本発明は、前記複数のＣＰＵと前記メモリとを接続するバスと、前記メモリに一のＣＰＵが接続されるように前記バスの接続及び切り離しを行う手段と、を備えたことを特徴とする上記の並列処理装置である。【００１０】
また、本発明は、前記メモリ上のデータが書き換えられた場合に、この書き換えられたデータを前記ネットワークに接続された他の並列処理装置に対して送信する手段を備えたことを特徴とする上記の並列処理装置である。【００１１】
また、本発明は、前記ネットワークを介して駅に設置された改札機に接続されることを特徴とする上記の並列処理装置である。【００１２】
また、本発明は、前記ネットワークを介して株式売買端末に接続されることを特徴とする上記の並列処理装置である。【００１３】
また、本発明は、上記の並列処理装置と複数の端末装置とがネットワークで接続されることを特徴とする並列処理システムである。
【発明の効果】
【００１４】
本発明によれば、アクセスの一時的な集中により応答が遅くなることを防止する並列処理装置及び並列処理システムを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態に係る並列処理システムを示す図である。
【図２】本発明の実施形態に係る並列処理装置の構成例を示す図である。
【図３】本発明の実施形態で用いられるテーブルの構成例を示す図である。
【図４】本発明の実施形態に係る並列処理装置の動作例を示す図である。
【図５】本発明の実施例１による処理と比較例１、２の処理とを比較する図であり、（ａ）は、本発明の実施例１に係る処理を示す図であり、（ｂ）は、比較例１に係る処理を示す図であり、（ｃ）は比較例２に係る処理を示す図である。
【発明を実施するための形態】
【００１６】
以下に、添付した図面を参照しつつ、本発明を実施するための形態について説明する。
【００１７】
図１は、本発明の実施形態に係る並列処理システムを示す図である。
【００１８】
図１に示すように、本発明の実施形態に係る並列処理システム１は、複数の並列処理装置１０と、複数の端末装置２０と、がネットワーク３０で接続されたコンピュータシステムである。
【００１９】
本発明の実施形態に係る並列処理システム１では、地理や商圏などに基づいて区分けされたエリア１ａ、１ｂ、１ｃ、１ｄごとに並列処理装置１０と複数の端末装置２０とが配置されている。
【００２０】
各エリアの並列処理装置１０は、ネットワーク３０に接続されたすべての端末装置２０に関してトランザクションを処理することもできるが、本発明の実施形態では、各エリアの並列処理装置１０が、災害時や故障などによる他は、自己のエリアに属する端末装置２０に関するトランザクションを処理するものとする。
【００２１】
［並列処理装置］
図２は、本発明の実施形態に係る並列処理装置の構成例を示す図である。
【００２２】
図２に示すように、本発明の実施形態に係る並列処理装置１０は、複数のＣＰＵ（Ｐ１）〜（Ｐ３）と、制御部１１と、バススイッチ部１２と、メモリ１３と、がバスで接続されたコンピュータである。なお、バスはデータバスやアドレスバスなどで構成されるが、図２では、本発明の理解を容易にするため、これらのバスを適宜簡略化して記載している。
【００２３】
制御部１１は、ネットワーク３０に接続され、ネットワーク３０からデータを受信する。また、制御部１１は、受信したデータに関連するタスクを複数のＣＰＵ（Ｐ１）〜（Ｐ３）のうち待ち状態にあるＣＰＵに振り分ける。また、制御部１１は、メモリ１３のアドレス空間上の領域を、待ち状態にあるＣＰＵにタスクを振り分ける度に、このタスクを振り分けるＣＰＵに対して割り当てる。
【００２４】
複数のＣＰＵ（Ｐ１）〜（Ｐ３）や制御部１１は、バススイッチ部１２を介してメモリ１３にアクセスする。バススイッチ部１２は、複数のＣＰＵ（Ｐ１）〜（Ｐ３）のうちの一のＣＰＵまたは制御部１１がメモリ１３に接続されるようにバスの接続及び切り離しを行う。
【００２５】
バススイッチ部１２は、メモリ１３上のデータを監視しており、これらが書き換えられた場合、書き換えられたデータをネットワーク３０に接続された他のエリアに属する並列処理装置１０に対して送信する。これにより複数の並列処理装置１０間でメモリ１３上のデータが同期され、データの冗長性が確保される。
【００２６】
端末装置２０としては、例えば、駅に設置された改札機や株式売買端末などを用いることができる。
【００２７】
［テーブル］
図３は、本発明の実施形態で用いられるテーブルの構成例を示す図である。
【００２８】
図３に示すように、本発明の実施形態では、制御部１１に記憶されるデータ管理テーブル（ａ）及びＣＰＵ管理テーブル（ｂ）と、バススイッチ部１２に記憶されるアドレス変換管理テーブル（ｃ）と、が用いられる。
【００２９】
（データ管理テーブル）
データ管理テーブルは、「ｕｓｅｒ」フィールドと、「ｔｅｒｍｉｎａｌ」フィールドと、「ａｄｄｒｅｓｓ」フィールドと、「ｄａｔｅ＿ａｎｄ＿ｔｉｍｅ」フィールドと、を有している。
【００３０】
「ｕｓｅｒ」フィールド
「ｕｓｅｒ」フィールドには、ユーザＩＤが記憶される。非接触ＩＤカードのカードＩＤや、株の売買で用いるユーザ名などは、ユーザＩＤの一例である。
【００３１】
「ｔｅｒｍｉｎａｌ」フィールド
「ｔｅｒｍｉｎａｌ」フィールドには、端末装置を識別する端末ＩＤが記憶される。
【００３２】
「ａｄｄｒｅｓｓ」フィールド
「ａｄｄｒｅｓｓ」フィールドには、アドレス空間におけるメモリアドレスの上位ｎビット（本実施形態では８ビット）が記憶される。
【００３３】
「ｄａｔｅ＿ａｎｄ＿ｔｉｍｅ」フィールド
「ｄａｔｅ＿ａｎｄ＿ｔｉｍｅ」フィールドには、日時を示すデータが記憶される。
【００３４】
（ＣＰＵ管理テーブル）
ＣＰＵ管理テーブルは、「ｃｐｕ」フィールドと、「ｕｓｅｒ」フィールドと、を有している。
【００３５】
「ｃｐｕ」フィールド
「ｃｐｕ」フィールドには、ＣＰＵを識別するＣＰＵＩＤが記憶される。
【００３６】
「ｕｓｅｒ」フィールド
「ｕｓｅｒ」フィールドには、ユーザＩＤが記憶される。
【００３７】
（アドレス変換管理テーブル）
アドレス変換管理テーブルは、「ｃｐｕ」フィールドと、「ａｄｄｒｅｓｓ」フィールドと、を有している。
【００３８】
「ｃｐｕ」フィールド
「ｃｐｕ」フィールドには、ＣＰＵを識別するＣＰＵＩＤが記憶される。
【００３９】
「ａｄｄｒｅｓｓ」フィールド
「ａｄｄｒｅｓｓ」フィールドには、アドレス空間におけるメモリアドレスの上位ｎビット（本実施形態では８ビット）が記憶される。
【００４０】
［動作例］
図４は、本発明の実施形態に係る並列処理装置の動作例を示す図である。
【００４１】
（ステップＳ１）
まず、制御部１１が、端末装置２０からユーザＩＤと端末ＩＤとを受信する。なお、端末装置２０は、非接触ＩＣカード（図示せず）からの読み取りやユーザからの入力などによりユーザＩＤを取得する。
【００４２】
（ステップＳ２）
次に、制御部１１が、図３（ａ）のデータ管理テーブルにおける「ｕｓｅｒ」フィールドと「ｔｅｒｍｉｎａｌ」フィールドとに受信したユーザＩＤと端末ＩＤとをそれぞれ記憶する。
【００４３】
（ステップＳ３）
次に、制御部１１が、図３（ｂ）のＣＰＵ管理テーブルにアクセスして「ｕｓｅｒ」フィールドに何も記憶されていないレコードを特定し、この特定したレコードの「ｃｐｕ」フィールドに記憶されているＣＰＵＩＤを取得する。これにより、受信したユーザＩＤに関連するタスクが待ち状態にあるＣＰＵに対して振り分けられる。なお、ここでは、ＣＰＵＩＤとして、ＣＰＵ（Ｐ２）を識別するＰ２が取得されるものとする。
【００４４】
（ステップＳ４）
次に、制御部１１が、受信したユーザＩＤのためにアドレス空間上の領域を確保する。より具体的に説明すると、制御部１１は、確保するアドレス空間におけるメモリアドレスの上位ｎビット（例えば、ＡＡＡＡＡＡＡＡ）を決定し、これを図３（ａ）のデータ管理テーブルにおける「ａｄｄｒｅｓｓ」フィールドに記憶する。これにより、決定した上位ｎビット（例えば、ＡＡＡＡＡＡＡＡ）をメモリアドレスとするアドレス空間上の領域（例えば、ＡＡＡＡＡＡＡＡ００００００００〜ＡＡＡＡＡＡＡＡ１１１１１１１１）が受信したユーザＩＤのために確保される。なお、「Ａ」は０又は１である。
【００４５】
（ステップＳ５）
次に、制御部１１が、バススイッチ部１２を介してメモリ１３にアクセスし、ステップＳ４で決定した上位ｎビット（例えば、ＡＡＡＡＡＡＡＡ）で示されるアドレス空間の所定領域（例えば、先頭領域ＡＡＡＡＡＡＡＡ００００００００）に、ＣＰＵ（Ｐ２）に対する命令を書きこむ。
【００４６】
（ステップＳ６）
次に、制御部１１が、バススイッチ部１２にアクセスし、ＣＰＵＩＤの「Ｐ２」と、ステップＳ４で決定したメモリアドレスの上位ｎビット（例えば、ＡＡＡＡＡＡＡＡ）とを、図３（ｃ）のアドレス変換管理テーブルにおける「ｃｐｕ」フィールドと「ａｄｄｒｅｓｓ」フィールドとにそれぞれ記憶する。これにより、アドレス空間上の領域が、タスクを振り分ける度に、タスクを振り分けるＣＰＵに対して割り当てられる。
【００４７】
（ステップＳ７）
次に、制御部１１が、ＣＰＵ（Ｐ２）に対して、開始命令を出力する。
【００４８】
（ステップＳ８）
次に、ＣＰＵ（Ｐ２）が、バススイッチ部１２を介してメモリ１３にアクセスし、ＣＰＵ（Ｐ２）に割り当てられたアドレス空間の所定領域（例えば、先頭領域ＡＡＡＡＡＡＡＡ００００００００）から命令を読み出す。
【００４９】
より具体的に説明すると、本発明の実施形態では、ＸＸＸＸＸＸＸＸ０００００００００〜ＸＸＸＸＸＸＸＸ１１１１１１１１のアドレス空間がＣＰＵ（Ｐ２）に固定的に割り当てられており、ＣＰＵ（Ｐ２）は、メモリ１３にアクセスするに当たり、バススイッチ部１２に対して、ＸＸＸＸＸＸＸＸ０００００００００〜ＸＸＸＸＸＸＸＸ１１１１１１１１の範囲にあるメモリアドレスを出力する。なお、「Ｘ」は０又は１である。
【００５０】
バススイッチ部１２は、ＣＰＵ（Ｐ２）からのアクセスがあると、メモリ１３に接続されるＣＰＵをＣＰＵ（Ｐ２）に切り替えるが、この際、図３（ｃ）のアドレス変換管理テーブルにおいて、「ｃｐｕ」フィールドに「Ｐ２」が格納されているレコードを特定し、特定したレコードの「ａｄｄｒｅｓｓ」フィールドからメモリアドレスの上位ｎビット（例えば、ＡＡＡＡＡＡＡＡ）アドレスを取得する。
【００５１】
そして、バススイッチ部１２は、ＣＰＵ（Ｐ２）から出力されたＸＸＸＸＸＸＸＸ０００００００００〜ＸＸＸＸＸＸＸＸ１１１１１１１１の範囲にあるメモリアドレスの上位ｎビット（ＸＸＸＸＸＸＸＸ）を図３（ｃ）のアドレス変換管理テーブルから取得したメモリアドレスの上位ｎビット（例えば、ＡＡＡＡＡＡＡＡ）で書き換える。
【００５２】
このようにして、ＣＰＵ（Ｐ２）は、受信したユーザＩＤのために確保されたアドレス空間上の領域（例えば、ＡＡＡＡＡＡＡＡ００００００００〜ＡＡＡＡＡＡＡＡ１１１１１１１１）にアクセス可能となる。
【００５３】
（ステップＳ９）
次に、ＣＰＵ（Ｐ２）が、メモリ１３から読み出した命令に基づく処理を行い、その結果をバススイッチ部１２を介してメモリ１３に書きこむ。
【００５４】
（ステップＳ１０）
次に、バススイッチ部１２が、データが書き込まれたアドレス空間上の領域のメモリアドレス（例えば、ＡＡＡＡＡＡＡＡ００００００００〜ＡＡＡＡＡＡＡＡ１１１１１１１１）を制御部１１に対して出力する。
【００５５】
（ステップＳ１１）
次に、制御部１１が、バススイッチ部１２を介してメモリ１３にアクセスし、出力されたメモリアドレスを有するアドレス空間上の領域（例えば、ＡＡＡＡＡＡＡＡ００００００００〜ＡＡＡＡＡＡＡＡ１１１１１１１１）からデータを読み出す。
【００５６】
（ステップＳ１２）
次に、制御部１１が、データが書きこまれたアドレス空間の上位ｎビット（例えばＡＡＡＡＡＡＡＡ）が記憶されているレコードを図３（ａ）のデータ管理テーブルにおいて特定し、特定したレコードの「ｕｓｅｒ」フィールドに記憶されているユーザＩＤと、ステップＳ１１で読み出したデータとを、他のエリアに属する並列処理装置１０に対して送信する。
【００５７】
これにより、メモリ１３上のデータが書き換えられた場合に、この書き換えられたデータがネットワーク３０に接続された他の並列処理装置１０に対して送信され、複数の並列処理装置１０間でメモリ１３上のデータを同期することが可能となる。
【００５８】
なお、他のエリアに属する並列処理装置１０は、端末装置２０からデータを受信した場合と同様の方法により、受信したユーザＩＤとデータとを自己が備えるメモリ１３に書き込むタスクを複数のＣＰＵのうち待ち状態にあるＣＰＵに対して振り分ける。この場合、他の並列処理装置１０においては、データを送信した並列処理装置１０が端末装置とみなされる。
【００５９】
（ステップＳ１３）
次に、ＣＰＵ（Ｐ２）が、制御部１１に対して、処理完了通知を出力する。
【００６０】
（ステップＳ１４）
次に、制御部１１が、図３（ｂ）のＣＰＵ管理テーブルにアクセスし、「ｃｐｕ」フィールドにＣＰＵＩＤ「Ｐ２」が記憶されているレコードを特定し、この特定したレコードの「ｕｓｅｒ」フィールドに記憶されているユーザＩＤを削除する。
【００６１】
（ステップＳ１５）
次に、制御部１１が、図３（ａ）のデータ管理テーブルにアクセスし、「ｃｐｕ」フィールドにＣＰＵＩＤ「Ｐ２」が記憶されているレコードを特定し、この特定したレコードの「ｔｅｒｍｉｎａｌ」フィールドと「ａｄｄｒｅｓｓ」フィールドとに記憶されている端末ＩＤとメモリアドレスの上位ｎビット（例えば、ＡＡＡＡＡＡＡＡ）とを取得するとともに、特定したレコードの「ｄａｔｅ＿ａｎｄ＿ｔｉｍｅ」フィールドにステップＳ１５を実行している際の日時を示すデータを記憶する。
【００６２】
（ステップＳ１６）
次に、制御部１１が、バススイッチ部１２を介してメモリ１３にアクセスし、ステップＳ１５で取得した上位ｎビット（例えば、ＡＡＡＡＡＡＡＡ）で示されるアドレス空間上の領域からデータを読み出す。
【００６３】
（ステップＳ１７）
次に、制御部１１が、ステップＳ１５で取得した端末ＩＤに基づいて、端末装置２０に対し、ステップＳ１６で読み出したデータを送信する。
【００６４】
制御部１１は、図３（ａ）のデータ管理テーブルの「ｄａｔｅ＿ａｎｄ＿ｔｉｍｅ」フィールドに記憶されているデータを所定の時間間隔で読み出し、読み出したデータが示す日時が読み出しを行った際の日時よりも所定の時間以上前である場合は、当該読み出したデータが記憶されているレコードを削除する。これにより、一定時間が経過しても応答がないユーザＩＤ（タイムアウトしたユーザＩＤ）に関して、アドレス空間が開放される。
【００６５】
なお、上記の説明では、制御部１１により同期に関する処理とタイムアウトに関する処理を行うものとしたが、これらの処理は、制御部１１とは別個の手段により行うこともできる。この場合の別個の手段は、ハードウェア又ソフトウェアにより構成することができる。
【００６６】
なお、上記した実施形態ではバススイッチ部１２を介してメモリ１３にアクセスする形態の一例について説明したが、メモリ１３へのアクセスはキャッシュメモリを介して行うようにしてもよい。
【実施例１】
【００６７】
次に、図５を参照しつつ、本発明の実施例１による処理と比較例１、２の処理とを比較する。【００６８】
図５は、本発明の実施例１による処理と比較例１、２の処理とを比較する図であり、（ａ）は、本発明の実施例１に係る処理を示す図であり、（ｂ）は、比較例１に係る処理を示す図であり、（ｃ）は比較例２に係る処理を示す図である。【００６９】
本発明の実施例１では、１つのトランザクションが４つのタスクにより構成され、各タスクが複数のＣＰＵのうち待ち状態にあるＣＰＵにより処理されるものとする。【００７０】
本発明の実施例１によれば、例えば図５（ａ）に示すように、待ち状態のＣＰＵによって各タスクが順次処理されるため（図５に示す例では、ＣＰＵ（Ｐ１）、ＣＰＵ（Ｐ３）、ＣＰＵ（Ｐ２）、ＣＰＵ（Ｐ１）により順次処理される）、１つのトランザクションがほとんど待たされることなく完了する。【００７１】
［比較例１］
比較例１は、本発明の実施例１と同様に、１つのトランザクションが４つのタスクにより構成されるものとする。ただし、比較例１では、本発明の実施例１とは異なり、１つのＣＰＵ（Ｐ）で複数のトランザクションによりタイムシェアリングされるものとする。【００７２】
比較例１によれば、例えば図５（ｂ）に示すように、１つのＣＰＵ（Ｐ）が複数のトランザクションによってタイムシェアリングされることとなるため、１つのタスクの処理が完了してから次のタスクの処理が開始されるまでにある程度の時間を要してしまい、トランザクションがなかなか完了しない。【００７３】
［比較例２］
比較例２は、本発明の実施例１と同様に、１つのトランザクションが４つのタスクにより構成されるものとする。ただし、比較例２では、本発明の実施例１とは異なり、１つのトランザクションによって１つのＣＰＵ（Ｐ）が専有されるものとする。【００７４】
比較例２によれば、例えば図５（ｃ）に示すように、他のトランザクションに関する全てのタスクが完了するまでＣＰＵに空きが生じないため、トランザクションがなかなか完了しない。【００７５】
以上、本発明の実施形態及び実施例について説明したが、これらの説明は、本発明の一例に関するものであり、本発明は、これらの説明によって何ら限定されるものではない。
【符号の説明】
【００７６】
１    並列処理システム
１ａ、１ｂ、１ｃ、１ｄ    地理や商圏などに基づいて区分けされたエリア
１０    並列処理装置
１１    制御部
１２    バススイッチ部
１３    メモリ
２０    端末装置
３０    ネットワーク
Ｐ１、Ｐ２、Ｐ３    ＣＰＵ
【図１】
2012133366.tif 000003
【図２】
2012133366.tif 000004
【図３】
2012133366.tif 000005
【図４】
2012133366.tif 000006
【図５】
2012133366.tif 000007
【国際調査報告】
2012133366.tif 000008
2012133366.tif 000009