JP2011170560A - データ処理装置及びデータ処理方法 - Google Patents
データ処理装置及びデータ処理方法 Download PDFInfo
- Publication number
- JP2011170560A JP2011170560A JP2010032917A JP2010032917A JP2011170560A JP 2011170560 A JP2011170560 A JP 2011170560A JP 2010032917 A JP2010032917 A JP 2010032917A JP 2010032917 A JP2010032917 A JP 2010032917A JP 2011170560 A JP2011170560 A JP 2011170560A
- Authority
- JP
- Japan
- Prior art keywords
- data
- processing
- identification information
- ring bus
- sub
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
【課題】リング型のデータ処理装置内に処理待ちのデータが停滞することによるデータ処理装置の処理能力の低下を軽減することを目的とする。
【解決手段】メインリング通信手段が、処理識別情報と、処理順序情報と、に応じて、データをメインリングバスに送信するか、サブリングバスに送信するかを切り替えることによって課題を解決する。
【選択図】図9
【解決手段】メインリング通信手段が、処理識別情報と、処理順序情報と、に応じて、データをメインリングバスに送信するか、サブリングバスに送信するかを切り替えることによって課題を解決する。
【選択図】図9
Description
本発明は、データ処理装置及びデータ処理方法に関する。
従来、ハードウェアによって実現されるデータ処理部を並列実行することによって効率よくデータ処理を行う方法として、バス型のパイプライン接続によるデータ処理装置(特許文献1)が提案されている。
この接続方式では、入力端において外部メモリがI/F等から入力されたデータは、接続された順序に基づいて順次処理された後に出力端において外部メモリ等へ出力される。そのため、その処理順序は予めハードウェア実装時に接続された順序によって制限され、順序入れ替えを含む任意の処理順序を実行することはできなかった。
上記課題を解決するために、データ処理部の接続をリング型のパイプラインで接続するデータ処理装置(特許文献2)(以降、リング型データ処理装置と呼ぶ)が提案されている。
リング型データ処理装置においては、データ処理中に別のデータが到来した際、そのデータにストール情報を付加してリングバスへ再出力することで、前段のデータ処理部へストール状態を知らせる。つまり、ストール情報が付加されたデータは、何れかのデータ処理部において処理がされていないデータということになる。前段のデータ処理部は、自身が出力した出力データにストール情報が付加されたデータを受信することで、後段のデータ処理部でストールが発生していることを検知し、自身も処理をストールさせることができる。また、この様にすることで前段のデータ処理部は、更に前段のデータ処理部へストールの発生を知らせることもできる。
しかし、このような仕組みを用いても、個々の処理の処理速度に差がある場合や、画像拡大処理や入力データのリピート処理等のためにデータ処理部が出力するデータ量が増加する場合、リング型データ処理装置内に処理待ちのデータが停滞してしまう問題があった。そして、処理待ちのデータが停滞してしまうため、著しく処理能力が低下してしまう問題もあった。
このような問題を解決するために、複数のデータ処理部でサブリングバスを構成し、ホストプロセッサにより管理されるメインリングバスに接続することで、リングバスを二重化し、処理能力の低下を防止するデータ処理装置(特許文献3)が提案されている。
この接続方式では、入力端において外部メモリがI/F等から入力されたデータは、接続された順序に基づいて順次処理された後に出力端において外部メモリ等へ出力される。そのため、その処理順序は予めハードウェア実装時に接続された順序によって制限され、順序入れ替えを含む任意の処理順序を実行することはできなかった。
上記課題を解決するために、データ処理部の接続をリング型のパイプラインで接続するデータ処理装置(特許文献2)(以降、リング型データ処理装置と呼ぶ)が提案されている。
リング型データ処理装置においては、データ処理中に別のデータが到来した際、そのデータにストール情報を付加してリングバスへ再出力することで、前段のデータ処理部へストール状態を知らせる。つまり、ストール情報が付加されたデータは、何れかのデータ処理部において処理がされていないデータということになる。前段のデータ処理部は、自身が出力した出力データにストール情報が付加されたデータを受信することで、後段のデータ処理部でストールが発生していることを検知し、自身も処理をストールさせることができる。また、この様にすることで前段のデータ処理部は、更に前段のデータ処理部へストールの発生を知らせることもできる。
しかし、このような仕組みを用いても、個々の処理の処理速度に差がある場合や、画像拡大処理や入力データのリピート処理等のためにデータ処理部が出力するデータ量が増加する場合、リング型データ処理装置内に処理待ちのデータが停滞してしまう問題があった。そして、処理待ちのデータが停滞してしまうため、著しく処理能力が低下してしまう問題もあった。
このような問題を解決するために、複数のデータ処理部でサブリングバスを構成し、ホストプロセッサにより管理されるメインリングバスに接続することで、リングバスを二重化し、処理能力の低下を防止するデータ処理装置(特許文献3)が提案されている。
しかし、特許文献3のデータ処理装置では、該当サブリングバスで処理する必要のないデータも必ずサブリングバスに流れてしまう。そのため、サブリングバス数やサブリングバスに接続されるデータ処理部の数が多いと、メインリングバスにデータを戻すまでに必要とする処理サイクル数が増えてしまい、結果としてデータ処理装置の処理能力の低下を防止できない問題があった。
本発明はこのような問題点に鑑みなされたもので、リング型のデータ処理装置内に処理待ちのデータが停滞することによるデータ処理装置の処理能力の低下を軽減することを目的とする。
そこで、本発明は、複数のモジュールがリング状のメインリングバスに接続され、前記複数のモジュールが、データに含まれる処理順序情報で示される順序に基づいてデータ処理を行うデータ処理装置であって、前記複数のモジュールとは別の複数のモジュールがリング状のサブリングバスに接続され、前記サブリングバスが前記メインリングバスに接続されているモジュールを介して前記メインリングバスに接続され、前記メインリングバスに接続されているモジュールは、データ送信を制御するメインリング通信手段と、データを処理する処理手段と、を有し、前記データには、前記データを最後に処理した処理手段を識別する処理識別情報が更に含まれ、前記メインリング通信手段は、前記処理識別情報と、前記処理順序情報と、に応じて、データを前記メインリングバスに送信するか、前記サブリングバスに送信するかを切り替える。
本発明によれば、リング型のデータ処理装置内に処理待ちのデータが停滞することによるデータ処理装置の処理能力の低下を軽減することができる。
以下、本発明の実施形態について図面に基づいて説明する。
<実施形態1>
図1は、データ処理装置100の構成を示す図である。
メインリングバス101は、ホストプロセッサにより管理されるリング型(リング状)のメインリングバスである。
サブリングバス102は、メインリングバス101に接続されるリング型(リング状)のサブリングバスである。
取得部103は、外部記憶装置等から処理すべきデータを取得する。
通信部104は、取得されたデータをメインリングバス101に供給する処理を行う。
処理部105は、供給されたデータに対してしかるべき処理を行う。
メインリング通信部106は、メインリングバス101上から、処理部105で処理すべきデータ、若しくは、サブリングバス102上に送信すべきデータを選別して取り込む等、データ送信を制御する。
一対のメインリング通信部106と処理部105とを併せて一つのモジュール(ノード)ともいう。また、一対のサブリング通信部107と処理部105とを併せて一つのモジュール(ノード)ともいう。
サブリング通信部107は、サブリングバス102上から、処理部105で処理すべきデータを取り込む。
通信部108は、処理済のデータを外部の記憶装置等に出力するため、メインリングバス101上から処理済のデータを選択して取り込む。
出力部109は、通信部108により取り込まれた処理済のデータを外部記憶装置等に出力する。
本実施形態においては、メインリングバス101には、メインリング通信部106が1つ以上接続されており、サブリングバス102には、サブリング通信部107が1つ以上接続されている。
図1は、データ処理装置100の構成を示す図である。
メインリングバス101は、ホストプロセッサにより管理されるリング型(リング状)のメインリングバスである。
サブリングバス102は、メインリングバス101に接続されるリング型(リング状)のサブリングバスである。
取得部103は、外部記憶装置等から処理すべきデータを取得する。
通信部104は、取得されたデータをメインリングバス101に供給する処理を行う。
処理部105は、供給されたデータに対してしかるべき処理を行う。
メインリング通信部106は、メインリングバス101上から、処理部105で処理すべきデータ、若しくは、サブリングバス102上に送信すべきデータを選別して取り込む等、データ送信を制御する。
一対のメインリング通信部106と処理部105とを併せて一つのモジュール(ノード)ともいう。また、一対のサブリング通信部107と処理部105とを併せて一つのモジュール(ノード)ともいう。
サブリング通信部107は、サブリングバス102上から、処理部105で処理すべきデータを取り込む。
通信部108は、処理済のデータを外部の記憶装置等に出力するため、メインリングバス101上から処理済のデータを選択して取り込む。
出力部109は、通信部108により取り込まれた処理済のデータを外部記憶装置等に出力する。
本実施形態においては、メインリングバス101には、メインリング通信部106が1つ以上接続されており、サブリングバス102には、サブリング通信部107が1つ以上接続されている。
次に、図2を用いてメインリングバス101上、若しくはサブリングバス102上を流れるパケット200のフォーマット例を示す。
データID201は、パケット200を識別するIDである。このIDは、メインリングバス101、若しくは、サブリングバス102に流れているパケット200内でユニークに割り振られている。
順序カウンタ202は、データの処理順序を示すカウンタである。リング型データ処理装置においては、連続する未処理データが、メインリングバス101、若しくは、サブリングバス102を複数回、周回することがあり得る。そのため、処理部105がデータ処理可能となったときに最初に受信されるデータが必ずしも最初に処理されるべきデータであるとは限らない。よって、このようなカウンタをパケット200内に持たせることで、入力された順等、正しい処理順序に従って処理を実行する仕組みとなっている。順序カウンタ202は、処理順序情報の一例である。
Validフラグ203は、このパケット200が保持しているデータが処理されるべき有効データであることを示すフラグである。Validフラグ203は、有効データの場合は、ONになり、無効データの場合は、OFFになる。なお、本実施形態では、データにValidフラグが含まれている場合を例に説明を行うが、データにValidフラグが含まれていなくてもよい。この様な構成の場合、以下に示すデータ処理装置100におけるValidフラグを参照する処理等は省略される。
処理ID204は、このデータを最後に処理した処理部105のIDである。メインリング通信部106、若しくは、サブリング通信部107では、予め設定された待ち受けIDと、この処理IDとを比較し、一致した際にデータ処理を行う。処理ID204は、処理識別情報の一例である。
ストールフラグ205は、ストールデータ(処理部105の状態により、処理できないデータ)であるかどうかを示すフラグである。ストールフラグ205は、ストールデータの場合は、ONになり、ストールデータでない場合はOFFになる。ストールフラグ205は、ストールパケット(処理部105の状態により、処理できないパケット)である時にONに設定される。ストールフラグ205は、処理不可識別情報の一例である。
サブリングバスフラグ206は、データが、メインリングバス101、若しくは、サブリングバス102のどちらから流れてきたかを示すフラグである。メインリングバス101から流れてきた場合は、ONになり、サブリングバス102から流れてきた場合は、OFFになる。
Data207は、処理部105が、実際に処理するデータが格納されている領域である。
データID201は、パケット200を識別するIDである。このIDは、メインリングバス101、若しくは、サブリングバス102に流れているパケット200内でユニークに割り振られている。
順序カウンタ202は、データの処理順序を示すカウンタである。リング型データ処理装置においては、連続する未処理データが、メインリングバス101、若しくは、サブリングバス102を複数回、周回することがあり得る。そのため、処理部105がデータ処理可能となったときに最初に受信されるデータが必ずしも最初に処理されるべきデータであるとは限らない。よって、このようなカウンタをパケット200内に持たせることで、入力された順等、正しい処理順序に従って処理を実行する仕組みとなっている。順序カウンタ202は、処理順序情報の一例である。
Validフラグ203は、このパケット200が保持しているデータが処理されるべき有効データであることを示すフラグである。Validフラグ203は、有効データの場合は、ONになり、無効データの場合は、OFFになる。なお、本実施形態では、データにValidフラグが含まれている場合を例に説明を行うが、データにValidフラグが含まれていなくてもよい。この様な構成の場合、以下に示すデータ処理装置100におけるValidフラグを参照する処理等は省略される。
処理ID204は、このデータを最後に処理した処理部105のIDである。メインリング通信部106、若しくは、サブリング通信部107では、予め設定された待ち受けIDと、この処理IDとを比較し、一致した際にデータ処理を行う。処理ID204は、処理識別情報の一例である。
ストールフラグ205は、ストールデータ(処理部105の状態により、処理できないデータ)であるかどうかを示すフラグである。ストールフラグ205は、ストールデータの場合は、ONになり、ストールデータでない場合はOFFになる。ストールフラグ205は、ストールパケット(処理部105の状態により、処理できないパケット)である時にONに設定される。ストールフラグ205は、処理不可識別情報の一例である。
サブリングバスフラグ206は、データが、メインリングバス101、若しくは、サブリングバス102のどちらから流れてきたかを示すフラグである。メインリングバス101から流れてきた場合は、ONになり、サブリングバス102から流れてきた場合は、OFFになる。
Data207は、処理部105が、実際に処理するデータが格納されている領域である。
次に、図3を用いてメインリングバス101と処理部とを繋ぐメインリング通信部106の構成例を示す。
入力データ受信部301は、メインリングバス101上、若しくは、サブリングバス102上を流れるデータを受信する。
識別子情報管理テーブル302は、自ノードが待ち受けているIDとサブリング通信部107が待ち受けているIDとの一覧が登録されているテーブルである。識別子情報管理テーブル302の一例を、図4、図5に示す。識別子情報管理テーブル302は、処理識別情報管理データの一例である。
ストールデータ情報管理テーブル303は、サブリングバス102内で保持できるストールデータ最大数とサブリングバス102内に存在するストールデータのデータID201との一覧が登録されているテーブルである。ストールデータ情報管理テーブル303の一例を、図6に示す。
入力データ識別部304は、受信したデータが、自ノードで処理するデータかどうかを識別し、自ノードで処理するデータの場合は、処理部105へデータを送信する。また、入力データ識別部304は、サブリングバス102からストールデータを受信した場合は、該当データID201を識別子情報管理テーブル302に登録する。
出力データ生成部305は、入力データ識別部304において自ノードで処理しないと判定されたデータや、処理部105から送信されるデータ等から、出力データを生成する。
出力データ識別部306は、出力データをメインリングバス101、若しくは、サブリングバス102のどちらに送信するかを判定する。また、出力データ識別部306は、ストールデータをメインリングバス101に送信する場合、ストールデータ情報管理テーブル303から該当データID201を削除する。
出力データ送信部307は、出力データ識別部306の判定結果に基づき、出力データをメインリングバス101上、若しくはサブリングバス102上に送信する。
入力データ受信部301は、メインリングバス101上、若しくは、サブリングバス102上を流れるデータを受信する。
識別子情報管理テーブル302は、自ノードが待ち受けているIDとサブリング通信部107が待ち受けているIDとの一覧が登録されているテーブルである。識別子情報管理テーブル302の一例を、図4、図5に示す。識別子情報管理テーブル302は、処理識別情報管理データの一例である。
ストールデータ情報管理テーブル303は、サブリングバス102内で保持できるストールデータ最大数とサブリングバス102内に存在するストールデータのデータID201との一覧が登録されているテーブルである。ストールデータ情報管理テーブル303の一例を、図6に示す。
入力データ識別部304は、受信したデータが、自ノードで処理するデータかどうかを識別し、自ノードで処理するデータの場合は、処理部105へデータを送信する。また、入力データ識別部304は、サブリングバス102からストールデータを受信した場合は、該当データID201を識別子情報管理テーブル302に登録する。
出力データ生成部305は、入力データ識別部304において自ノードで処理しないと判定されたデータや、処理部105から送信されるデータ等から、出力データを生成する。
出力データ識別部306は、出力データをメインリングバス101、若しくは、サブリングバス102のどちらに送信するかを判定する。また、出力データ識別部306は、ストールデータをメインリングバス101に送信する場合、ストールデータ情報管理テーブル303から該当データID201を削除する。
出力データ送信部307は、出力データ識別部306の判定結果に基づき、出力データをメインリングバス101上、若しくはサブリングバス102上に送信する。
次に、図7を用いてサブリングバス102と処理部とを繋ぐサブリング通信部107の構成例を示す。
入力データ受信部401は、サブリングバス102上を流れるデータを受信する。
識別子情報管理テーブル402は、自ノードが待ち受けているIDが登録されているテーブルである。識別子情報管理テーブル402の一例を、図8に示す。
入力データ識別部403は、受信したデータが、自ノードで処理するデータかどうかを識別し、自ノードで処理するデータの場合は、処理部105へデータを送信する。
出力データ生成部404は、入力データ識別部403において自ノードで処理しないと判定されたデータや、処理部105から送られるデータ等から、出力データを生成する。
出力データ送信部405は、出力データをサブリングバス102上に送信する。
入力データ受信部401は、サブリングバス102上を流れるデータを受信する。
識別子情報管理テーブル402は、自ノードが待ち受けているIDが登録されているテーブルである。識別子情報管理テーブル402の一例を、図8に示す。
入力データ識別部403は、受信したデータが、自ノードで処理するデータかどうかを識別し、自ノードで処理するデータの場合は、処理部105へデータを送信する。
出力データ生成部404は、入力データ識別部403において自ノードで処理しないと判定されたデータや、処理部105から送られるデータ等から、出力データを生成する。
出力データ送信部405は、出力データをサブリングバス102上に送信する。
次に、図9を用いてメインリング通信部106の処理例を示す。
ステップS1.1で、入力データ受信部301は、メインリングバス101上、若しくはサブリングバス102上を流れるデータを受信する。
ステップS1.2で、入力データ識別部304は、入力パケット200のサブリングバスフラグ206がONかどうかを判定する。入力データ識別部304は、サブリングバスフラグ206がONの場合は、ステップS1.3へ処理を進め、OFFの場合は、ステップS1.6へ処理を進める。サブリングバスフラグ206がONの場合は、データはサブリングバス102から流れてきたことを意味し、OFFの場合は、データはメインリングバス101から流れてきたことを意味する。
ステップS1.3で、入力データ識別部304は、入力パケット200のストールフラグ205がONかどうかを判定する。入力データ識別部304は、ストールフラグ205がONの場合は、ステップS1.4へ処理を進め、OFFの場合はステップS1.5へ処理を進める。ストールフラグ205がONの場合は、処理部105の状態により、処理ができなかったデータであることを意味する。
ステップS1.4で、入力データ識別部304は、該当データID201が、ストールデータ情報管理テーブル303に登録されていない場合は、該当データID201をストールデータ情報管理テーブル303に登録する。
ステップS1.5で、入力データ識別部304は、該当データID201が、ストールデータ情報管理テーブル303に登録されている場合は、ストールデータ情報管理テーブル303から該当データID201を削除する。
ステップS1.1で、入力データ受信部301は、メインリングバス101上、若しくはサブリングバス102上を流れるデータを受信する。
ステップS1.2で、入力データ識別部304は、入力パケット200のサブリングバスフラグ206がONかどうかを判定する。入力データ識別部304は、サブリングバスフラグ206がONの場合は、ステップS1.3へ処理を進め、OFFの場合は、ステップS1.6へ処理を進める。サブリングバスフラグ206がONの場合は、データはサブリングバス102から流れてきたことを意味し、OFFの場合は、データはメインリングバス101から流れてきたことを意味する。
ステップS1.3で、入力データ識別部304は、入力パケット200のストールフラグ205がONかどうかを判定する。入力データ識別部304は、ストールフラグ205がONの場合は、ステップS1.4へ処理を進め、OFFの場合はステップS1.5へ処理を進める。ストールフラグ205がONの場合は、処理部105の状態により、処理ができなかったデータであることを意味する。
ステップS1.4で、入力データ識別部304は、該当データID201が、ストールデータ情報管理テーブル303に登録されていない場合は、該当データID201をストールデータ情報管理テーブル303に登録する。
ステップS1.5で、入力データ識別部304は、該当データID201が、ストールデータ情報管理テーブル303に登録されている場合は、ストールデータ情報管理テーブル303から該当データID201を削除する。
ステップS1.6で、入力データ識別部304は、入力データが自ノードで処理するデータかどうか判定する。判定方法は、下記3つの条件を満たすことである。
1.入力パケット200の処理ID204が識別子情報管理テーブル302に格納されている自ノード待ち受けIDと一致する。
2.入力パケット200のValidフラグがONである。
3.入力パケット200の順序カウンタが次に処理すべきデータを示している。
入力データ識別部304は、上記3つの条件を満たしている場合、ステップS1.7へ処理を進め、何れか1つでも満たしていない場合、ステップS1.13へ処理を進める。
ステップS1.7で、入力データ識別部304は、処理部105がデータ処理可能かどうか判定する。入力データ識別部304は、データ処理可能な場合は、ステップS1.8へ処理を進め、既に他データ処理中等の理由でデータ処理ができない場合は、ステップS1.12へ処理を進める。
ステップS1.8で、入力データ識別部304は、入力データを処理部105へ送信する。
ステップS1.9で、処理部105は、供給された入力データに対してしかるべき処理を行う。
ステップS1.10で、出力データ生成部305は、処理部105が処理したデータを受信する。
ステップS1.11で、出力データ生成部305は、ストールフラグをOFFに設定する。
ステップS1.12で、出力データ生成部305は、ストールフラグをONに設定する。
ステップS1.13で、出力データ生成部305は、サブリングバスフラグ206をOFFにする。
ステップS1.14で、出力データ生成部305は、ステップS1.8〜ステップS1.13の情報に基づき出力パケット200を生成する。
1.入力パケット200の処理ID204が識別子情報管理テーブル302に格納されている自ノード待ち受けIDと一致する。
2.入力パケット200のValidフラグがONである。
3.入力パケット200の順序カウンタが次に処理すべきデータを示している。
入力データ識別部304は、上記3つの条件を満たしている場合、ステップS1.7へ処理を進め、何れか1つでも満たしていない場合、ステップS1.13へ処理を進める。
ステップS1.7で、入力データ識別部304は、処理部105がデータ処理可能かどうか判定する。入力データ識別部304は、データ処理可能な場合は、ステップS1.8へ処理を進め、既に他データ処理中等の理由でデータ処理ができない場合は、ステップS1.12へ処理を進める。
ステップS1.8で、入力データ識別部304は、入力データを処理部105へ送信する。
ステップS1.9で、処理部105は、供給された入力データに対してしかるべき処理を行う。
ステップS1.10で、出力データ生成部305は、処理部105が処理したデータを受信する。
ステップS1.11で、出力データ生成部305は、ストールフラグをOFFに設定する。
ステップS1.12で、出力データ生成部305は、ストールフラグをONに設定する。
ステップS1.13で、出力データ生成部305は、サブリングバスフラグ206をOFFにする。
ステップS1.14で、出力データ生成部305は、ステップS1.8〜ステップS1.13の情報に基づき出力パケット200を生成する。
ステップS1.15で、出力データ識別部306は、出力データが自サブリングバスで処理するデータかどうか判定する。判定方法は、下記3つの条件を満たすことである。
1.出力パケット200の処理ID204が識別子情報管理テーブル302に格納されているサブリングバス待ち受けIDと一致する。
2.出力パケット200のValidフラグがONである。
3.出力パケット200の順序カウンタが次に処理すべきデータを示している。
出力データ識別部306は、上記3つの条件を満たしている場合、ステップS1.16へ処理を進め、何れか1つでも満たしていない場合、ステップS1.21へ処理を進める。
サブリングバスに同一ID(同一機能)を持つサブリング通信部107が接続されている場合、識別子情報管理テーブル302には、例えば、図4の様に、サブリングバス待ち受けIDは自ノード待ち受けIDと同じIDが登録されていることになる。また、サブリングバスに異なるID(異なる機能)を持つサブリング通信部107が接続されている場合、識別子情報管理テーブル302には、例えば、図5の様に、サブリングバス待ち受けIDは様々にIDが登録される。即ち、図5の様に、自ノード待ち受けIDとサブリングバス待ち受けIDが異なるものも存在することになる。
1.出力パケット200の処理ID204が識別子情報管理テーブル302に格納されているサブリングバス待ち受けIDと一致する。
2.出力パケット200のValidフラグがONである。
3.出力パケット200の順序カウンタが次に処理すべきデータを示している。
出力データ識別部306は、上記3つの条件を満たしている場合、ステップS1.16へ処理を進め、何れか1つでも満たしていない場合、ステップS1.21へ処理を進める。
サブリングバスに同一ID(同一機能)を持つサブリング通信部107が接続されている場合、識別子情報管理テーブル302には、例えば、図4の様に、サブリングバス待ち受けIDは自ノード待ち受けIDと同じIDが登録されていることになる。また、サブリングバスに異なるID(異なる機能)を持つサブリング通信部107が接続されている場合、識別子情報管理テーブル302には、例えば、図5の様に、サブリングバス待ち受けIDは様々にIDが登録される。即ち、図5の様に、自ノード待ち受けIDとサブリングバス待ち受けIDが異なるものも存在することになる。
ステップS1.16で、出力データ識別部306は、出力パケット200のストールフラグ205がONどうかを判定する。出力データ識別部306は、ストールフラグ205がONの場合は、ステップS1.17へ処理を進め、OFFの場合はステップS1.18へ処理を進める。
ステップS1.17で、出力データ識別部306は、該当データID201が、ストールデータ情報管理テーブル303に登録されていない場合は、該当データID201を追加する。
ステップS1.18で、出力データ識別部306は、該当データID201が、ストールデータ情報管理テーブル303に登録されている場合は、該当データID201を削除する。
ステップS1.19で、出力データ識別部306は、ストールデータ情報管理テーブル303を参照し、設定数の一例である設定されているストールデータ最大数と格納されているストールデータ数とを比較する。出力データ識別部306は、設定されているストールデータ最大数のほうが大きい場合、ステップS1.20へ処理を進め、小さい場合、ステップS1.21へ処理を進める。
ステップS1.20で、出力データ送信部307は、サブリングバス102にデータを送信する。
ステップS1.21の処理は、ステップS1.18の処理と同様なため説明を省略する。
ステップS1.22で、出力データ送信部307は、メインリングバス101にデータを送信する。
ステップS1.17で、出力データ識別部306は、該当データID201が、ストールデータ情報管理テーブル303に登録されていない場合は、該当データID201を追加する。
ステップS1.18で、出力データ識別部306は、該当データID201が、ストールデータ情報管理テーブル303に登録されている場合は、該当データID201を削除する。
ステップS1.19で、出力データ識別部306は、ストールデータ情報管理テーブル303を参照し、設定数の一例である設定されているストールデータ最大数と格納されているストールデータ数とを比較する。出力データ識別部306は、設定されているストールデータ最大数のほうが大きい場合、ステップS1.20へ処理を進め、小さい場合、ステップS1.21へ処理を進める。
ステップS1.20で、出力データ送信部307は、サブリングバス102にデータを送信する。
ステップS1.21の処理は、ステップS1.18の処理と同様なため説明を省略する。
ステップS1.22で、出力データ送信部307は、メインリングバス101にデータを送信する。
最後に、図10を用いてサブリング通信部107の処理例を示す。
ステップS2.1で、入力データ受信部401は、サブリングバス102上を流れるデータを受信する。
ステップS2.2で、入力データ識別部403は、入力データが自ノードで処理するデータかどうか判定する。判定方法は、下記3つの条件を満たすことである。
1.入力パケット200の処理ID204が識別子情報管理テーブル402に格納されている自ノード待ち受けIDと一致する。
2.入力パケット200のValidフラグがONである。
3.入力パケット200の順序カウンタが次に処理すべきデータを示している。
入力データ識別部403は、上記3つの条件を満たしている場合、ステップS2.3へ処理を進め、何れか1つでも満たしていない場合、ステップS2.9へ処理を進める。
ステップS2.3で、入力データ識別部403は、処理部105がデータ処理可能かどうか判定する。入力データ識別部403は、データ処理可能な場合、ステップS2.4へ処理が進み、既に他データ処理中等の理由でデータ処理ができない場合、ステップS2.8へ処理が進む。
ステップS2.4で、入力データ識別部403は、入力データを処理部105へ送信する。
ステップS2.5で、処理部105は、供給された入力データに対してしかるべき処理を行う。
ステップS2.6で、出力データ生成部404は、処理部105が処理したデータを受信する。
ステップS2.7で、出力データ生成部404は、ストールフラグをOFFに設定する。
ステップS2.8で、出力データ生成部404は、ストールフラグをONに設定する。
ステップS2.9で、出力データ生成部404は、サブリングバスフラグ206をONにする。
ステップS2.10で、出力データ生成部404は、ステップS2.4〜ステップS2.9の情報に基づき出力データを生成する。
ステップS2.11で、出力データ送信部405は、サブリングバス102にデータを送信する。
以上、本実施形態では、本実施形態の機能をハードウェアとしてデータ処理装置100に実装した例を用いて説明を行ったが、本実施形態の機能をソフトウェアとしてデータ処理装置100に実装してもよい。即ち、例えば、各通信部や処理部等がそれぞれCPUやROM及びRAM等の記憶領域を有し、CPUが記憶領域に記憶されているプログラムを実行することによって各通信部や処理部の機能を実現する様にしてもよい。なお、このような構成とした場合、上述した各テーブルは、各通信部等の記憶領域に記憶される。
ステップS2.1で、入力データ受信部401は、サブリングバス102上を流れるデータを受信する。
ステップS2.2で、入力データ識別部403は、入力データが自ノードで処理するデータかどうか判定する。判定方法は、下記3つの条件を満たすことである。
1.入力パケット200の処理ID204が識別子情報管理テーブル402に格納されている自ノード待ち受けIDと一致する。
2.入力パケット200のValidフラグがONである。
3.入力パケット200の順序カウンタが次に処理すべきデータを示している。
入力データ識別部403は、上記3つの条件を満たしている場合、ステップS2.3へ処理を進め、何れか1つでも満たしていない場合、ステップS2.9へ処理を進める。
ステップS2.3で、入力データ識別部403は、処理部105がデータ処理可能かどうか判定する。入力データ識別部403は、データ処理可能な場合、ステップS2.4へ処理が進み、既に他データ処理中等の理由でデータ処理ができない場合、ステップS2.8へ処理が進む。
ステップS2.4で、入力データ識別部403は、入力データを処理部105へ送信する。
ステップS2.5で、処理部105は、供給された入力データに対してしかるべき処理を行う。
ステップS2.6で、出力データ生成部404は、処理部105が処理したデータを受信する。
ステップS2.7で、出力データ生成部404は、ストールフラグをOFFに設定する。
ステップS2.8で、出力データ生成部404は、ストールフラグをONに設定する。
ステップS2.9で、出力データ生成部404は、サブリングバスフラグ206をONにする。
ステップS2.10で、出力データ生成部404は、ステップS2.4〜ステップS2.9の情報に基づき出力データを生成する。
ステップS2.11で、出力データ送信部405は、サブリングバス102にデータを送信する。
以上、本実施形態では、本実施形態の機能をハードウェアとしてデータ処理装置100に実装した例を用いて説明を行ったが、本実施形態の機能をソフトウェアとしてデータ処理装置100に実装してもよい。即ち、例えば、各通信部や処理部等がそれぞれCPUやROM及びRAM等の記憶領域を有し、CPUが記憶領域に記憶されているプログラムを実行することによって各通信部や処理部の機能を実現する様にしてもよい。なお、このような構成とした場合、上述した各テーブルは、各通信部等の記憶領域に記憶される。
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
以上、上述した各実施形態によれば、リング型のデータ処理装置内に処理待ちのデータが停滞することによるデータ処理装置の処理能力の低下を軽減することができる。
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
100 データ処理装置
Claims (6)
- 複数のモジュールがリング状のメインリングバスに接続され、前記複数のモジュールが、データに含まれる処理順序情報で示される順序に基づいてデータ処理を行うデータ処理装置であって、
前記複数のモジュールとは別の複数のモジュールがリング状のサブリングバスに接続され、
前記サブリングバスが前記メインリングバスに接続されているモジュールを介して前記メインリングバスに接続され、
前記メインリングバスに接続されているモジュールは、
データ送信を制御するメインリング通信手段と、
データを処理する処理手段と、
を有し、
前記データには、前記データを最後に処理した処理手段を識別する処理識別情報が更に含まれ、
前記メインリング通信手段は、前記処理識別情報と、前記処理順序情報と、に応じて、データを前記メインリングバスに送信するか、前記サブリングバスに送信するかを切り替えるデータ処理装置。 - 前記メインリング通信手段は、前記処理識別情報が、記憶領域に記憶されている処理識別情報管理データに保持されているサブリングバスの待ち受け処理識別情報と同一で、前記処理順序情報が、次に処理すべきデータを示している場合、データをサブリングバスに送信し、前記処理識別情報が、前記処理識別情報管理データに保持されているサブリングバスの待ち受け処理識別情報と同一でない、又は前記処理順序情報が、次に処理すべきデータを示していない場合、データをメインリングバスに送信する請求項1記載のデータ処理装置。
- 前記データには、データを処理する処理手段において処理ができなかったか否を示す処理不可識別情報が更に含まれ、
前記メインリング通信手段は、前記処理識別情報が、記憶領域に記憶されている処理識別情報管理データに保持されているサブリングバスの待ち受け処理識別情報と同一で、前記処理順序情報が、次に処理すべきデータを示しており、
前記処理不可識別情報が、データを処理する処理手段において処理ができなかったことを示している場合、前記データの識別情報を記憶領域に追加し、
前記処理不可識別情報が、データを処理する処理手段において処理ができたことを示している場合、前記データの識別情報を前記記憶領域から削除し、
前記記憶領域に記憶されているデータの識別情報の数が、設定されている設定数より小さいときは、前記データをメインリングバスに送信し、
前記記憶領域に記憶されているデータの識別情報の数が、設定されている設定数より小さくないときは、前記データをサブリングバスに送信する請求項1記載のデータ処理装置。 - 前記メインリング通信手段は、前記処理識別情報が、前記処理識別情報管理データに保持されている前記メインリング通信手段が含まれるモジュールの待ち受け処理識別情報と同一で、前記処理順序情報が、次に処理すべきデータを示しており、
前記モジュールに含まれる処理手段がデータを処理中の場合は、前記データの前記処理不可識別情報を処理ができなかったことを示す情報に設定し、
前記モジュールに含まれる処理手段がデータを処理中でない場合は、前記データを前記処理手段に送信し、前記処理手段から処理済のデータを受信すると、前記データの前記処理不可識別情報を処理ができたことを示す情報に設定する請求項3記載のデータ処理装置。 - 前記サブリングバスに接続されているモジュールは、
データ送信を制御するサブリング通信手段と、
データを処理する処理手段と、
を有し、
前記サブリング通信手段は、前記処理識別情報が、前記処理識別情報管理データに保持されている前記サブリング通信手段が含まれるモジュールの待ち受け処理識別情報と同一で、前記処理順序情報が、次に処理すべきデータを示しており、
前記モジュールに含まれる処理手段がデータを処理中の場合は、前記データの前記処理不可識別情報を処理ができなかったことを示す情報に設定し、
前記モジュールに含まれる処理手段がデータを処理中でない場合は、前記データを前記処理手段に送信し、前記処理手段から処理済のデータを受信すると、前記データの前記処理不可識別情報を処理ができたことを示す情報に設定し、
前記データをサブリングバスに送信する請求項3又は4記載のデータ処理装置。 - 複数のモジュールがリング状のメインリングバスに接続され、前記複数のモジュールが、データに含まれる処理順序情報で示される順序に基づいてデータ処理を行うデータ処理装置が実行するデータ処理方法であって、
前記複数のモジュールとは別の複数のモジュールがリング状のサブリングバスに接続され、
前記サブリングバスが前記メインリングバスに接続されているモジュールを介して前記メインリングバスに接続され、
前記メインリングバスに接続されているモジュールは、
データ送信を制御するメインリング通信手段と、
データを処理する処理手段と、
を有し、
前記データには、前記データを最後に処理した処理手段を識別する処理識別情報が更に含まれ、
前記メインリング通信手段が、前記処理識別情報と、前記処理順序情報と、に応じて、データを前記メインリングバスに送信するか、前記サブリングバスに送信するかを切り替えるデータ処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010032917A JP2011170560A (ja) | 2010-02-17 | 2010-02-17 | データ処理装置及びデータ処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010032917A JP2011170560A (ja) | 2010-02-17 | 2010-02-17 | データ処理装置及びデータ処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011170560A true JP2011170560A (ja) | 2011-09-01 |
Family
ID=44684634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010032917A Pending JP2011170560A (ja) | 2010-02-17 | 2010-02-17 | データ処理装置及びデータ処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011170560A (ja) |
-
2010
- 2010-02-17 JP JP2010032917A patent/JP2011170560A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5460143B2 (ja) | データ処理装置、データ処理方法およびプログラム | |
JP2013065101A (ja) | 情報処理装置、通信方法およびプログラム | |
US10033546B2 (en) | Method and system for reprogramming | |
JP5538798B2 (ja) | データ処理装置およびデータ処理方法またはプログラム | |
JP5550261B2 (ja) | リングバスを用いたデータ処理装置、データ処理方法およびプログラム | |
JP5406558B2 (ja) | データ処理装置、データ処理方法およびプログラム | |
CN116723249A (zh) | 定制化的epa设备 | |
JP2010200034A (ja) | 情報処理装置及びその制御方法、コンピュータプログラム | |
JP5414506B2 (ja) | データ処理装置、データ処理方法、及びプログラム | |
JP2012243162A (ja) | 情報処理装置、通信方法、及びプログラム | |
JP5460088B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
JP5432587B2 (ja) | データ処理装置、その制御方法およびプログラム | |
JP5341623B2 (ja) | データ処理装置、データ処理方法およびプログラム | |
JP5308418B2 (ja) | プログラマブルロジックコントローラ | |
JP6139857B2 (ja) | データ処理装置、入力制御装置、及び制御方法 | |
JP2011170560A (ja) | データ処理装置及びデータ処理方法 | |
JP2011188623A (ja) | 安全制御システム | |
JP5534711B2 (ja) | 情報処理装置、情報処理方法およびプログラム | |
JPWO2007096987A1 (ja) | エラー制御装置 | |
WO2014061076A1 (ja) | 通信システム及び通信装置 | |
US9229886B2 (en) | Management data transfer between processors | |
US20210325958A1 (en) | Power-saving control apparatus, image processing apparatus, power-saving control method, and recording medium | |
JP2010124138A (ja) | サイクリック伝送システム、及びその伝送方法 | |
JP3691679B2 (ja) | 二重伝送路を有するネットワーク | |
JP6276738B2 (ja) | Can通信ユニット及びcan通信プログラム |