(57)【要約】【課題】複数の処理装置１０から入力されたデータからデータを抽出して１つのデータ実行装置２０に出力する入出力制御装置１００は、処理装置毎の多段階の優先度に対応してデータを抽出することが出来なかった。【解決手段】出力選択部１４０は、処理装置毎の多段階の優先度に対応し、データ保持バッファ部１２０に蓄積されているデータが抽出される際の処理装置１０間の抽出頻度の比率が示されている抽出基準情報を記憶し、出力セレクタ部１３０は、抽出基準情報に従って、各処理装置１０からのデータを多段階の優先度に対応し、データ保持バッファ部１２０から抽出する。【選択図】図３
2013037477.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ出力装置から出力されたデータを入力する入力部と、
前記入力部により入力されたデータを蓄積するバッファ部と、
前記バッファ部に蓄積されているデータが前記バッファ部から抽出される際の前記データ出力装置間の抽出頻度の比率が示されている抽出基準情報を記憶する抽出基準情報記憶部と、
前記抽出基準情報に示されている抽出頻度の比率に従って、各データ出力装置からのデータを前記バッファ部から抽出するデータ抽出部と
を備えることを特徴とするデータ抽出装置。
【請求項２】
前記抽出基準情報記憶部は、
優先度の高いデータ出力装置ほど高頻度に前記バッファ部からデータが抽出される抽出頻度の比率が示されている抽出基準情報を記憶していることを特徴とする請求項１記載のデータ抽出装置。
【請求項３】
前記データ抽出部は、
前記抽出基準情報に示されている抽出頻度の比率に従って、抽出の対象となる抽出対象データ出力装置から出力されたデータが前記バッファ部に蓄積されているか否かを判断し、前記抽出対象データ出力装置から出力されたデータが前記バッファ部に蓄積されている場合に、前記抽出対象データ出力装置からのデータを前記バッファ部から抽出することを特徴とする請求項１又は２記載のデータ抽出装置。
【請求項４】
前記入出力制御装置は、さらに、
値をカウントするカウント部を
備え、
前記抽出基準情報記憶部は、
前記カウント部によるカウント値と、データ出力装置とが対応付けられた抽出基準情報を記憶し、
前記データ抽出部は、
前記カウント部によるカウント値に対応したデータ出力装置を抽出対象データ出力装置とすることを特徴とする請求項３記載のデータ抽出装置。
【請求項５】
前記カウント部は、
前記データ抽出部が、前記抽出対象データ出力装置から出力されたデータが前記バッファ部に蓄積されているか否かを判断する度に、値を一つずつ変化させ、変化させた値をカウント値とすることを特徴とする請求項４記載のデータ抽出装置。
【請求項６】
前記カウント部は、
前記データ抽出部が、前記抽出対象データ出力装置から出力されたデータが前記バッファ部に蓄積されているか否かを判断する度に、「０」又は「１」のいずれかを基準値とする複数桁の２進数を一桁ずつシフトさせ、基準値の桁位置をカウント値とすることを特徴とする請求項４記載のデータ抽出装置。
【請求項７】
前記バッファ部は、
複数存在し、前記複数のデータ出力装置のそれぞれに対応付けられていることを特徴とする請求項１〜６いずれか記載のデータ抽出装置。
【請求項８】
前記バッファ部は、
複数存在し、
前記データ抽出部は、
抽出の対象となる抽出対象データ出力装置から出力されたデータが、二つ以上のバッファ部により記憶されている場合に、前記二つ以上のバッファ部により記憶されている二つ以上のデータの内、一番古いデータを抽出することを特徴とする請求項１〜６いずれか記載のデータ抽出装置。
【請求項９】
コンピュータが、複数のデータ出力装置から出力されたデータを入力する入力ステップと、
コンピュータが、前記入力ステップにより入力されたデータを記憶領域に蓄積するバッファ蓄積ステップと、
コンピュータが、前記記憶領域に蓄積されているデータが前記記憶領域から抽出される際の前記データ出力装置間の抽出頻度の比率に従って、各データ出力装置からのデータを前記記憶領域から抽出するデータ抽出ステップと
を備えることを特徴とするデータ抽出方法。
【請求項１０】
複数のデータ出力装置から出力されたデータを入力する入力ステップと、
前記入力ステップにより入力されたデータを記憶領域に蓄積するバッファ蓄積ステップと、
前記記憶領域に蓄積されているデータが前記記憶領域から抽出される際の前記データ出力装置間の抽出頻度の比率に従って、各データ出力装置からのデータを前記記憶領域から抽出するデータ抽出ステップと
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データを抽出するデータ抽出装置およびデータ抽出方法およびプログラムに関する。
【背景技術】
【０００２】
例えば、ＦＡ（Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎ）で利用されるシステムは、複数の処理装置から構成され、各処理装置から出力されるデータを一旦保持し、１つのデータ実行装置に出力する入出力制御装置が必要となる（図２参照）。
この場合、入出力制御装置は、複数の処理装置から同時にデータを受けることがあり、どのデータを出力するか選択する必要がある。選択方法としては従来からＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）と呼ばれる先入れ先出しの方法やＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）と呼ばれる使用頻度に応じて選択する方法など、数多くの方法が実用されている。しかし、いずれの選択方法も時間的な観点からデータを選択している。
【０００３】
ところが、ＦＡ（Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎ）では、時間的な観点から出力するデータを選択するのではなく、処理装置ごとに処理する優先度が異なり、その優先度に従って優先的にデータを出力する機能を求められている。そして、優先度に従って優先的に出力を決定する方法がある（例えば特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−３３４７０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１によれば、処理装置の優先度の設定は高低の２段階であり、この方法は処理装置毎の多段階の優先度や優先比率（各処理装置の優先度に応じた各処理装置からのデータ抽出頻度の比率を「優先比率」と称する）までは対応できない。また、この方法は高い優先度の要求を優先して処理する場合に、一旦バッファに保持していた情報を破棄するという無駄な動作も行っている。また、高い優先度のデータが必ず低い優先度のデータより先行する出力方法であるが、この方法はいつまでも低い優先度のデータが出力されないという問題がある。
【０００６】
この発明は前記のような課題を解決することを主な目的とするもので、例えば、処理装置毎の多段階の優先度や優先比率に対応し、優先度の低いデータも出力されるデータ抽出装置を実現することを主な目的とする。
【課題を解決するための手段】
【０００７】
この発明に係るデータ抽出装置は、
複数のデータ出力装置から出力されたデータを入力する入力部と、
前記入力部により入力されたデータを蓄積するバッファ部と、
前記バッファ部に蓄積されているデータが前記バッファ部から抽出される際の前記データ出力装置間の抽出頻度の比率が示されている抽出基準情報を記憶する抽出基準情報記憶部と、
前記抽出基準情報に示されている抽出頻度の比率に従って、各データ出力装置からのデータを前記バッファ部から抽出するデータ抽出部と
を備えることを特徴とする。
【発明の効果】
【０００８】
この発明に係るデータ抽出装置は、処理装置毎の優先比率を示す抽出基準情報を記憶する。そして、この発明に係るデータ抽出装置は、記憶した抽出基準情報が示す優先比率に従って、処理装置毎の多段階の優先度に対応したデータ抽出を行うことが出来る。更に、この発明に係るデータ抽出装置は、記憶した抽出基準情報が示す優先比率に従って、優先度の高いデータだけではなく、優先度の低いデータも抽出し、出力することが出来る。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１を示す図で、入出力制御装置のハードウェア資源の一例を示す図。
【図２】実施の形態１を示す図で、入出力制御装置の動作の概要を示す図。
【図３】実施の形態１を示す図で、入出力制御装置の構成を示す図。
【図４】実施の形態１を示す図で、処理装置毎のデータ保持バッファ部を有する入出力制御装置の構成を示す図。
【図５】実施の形態１を示す図で、データ抽出の第１の方法に用いられる抽出基準情報の例を示す図。
【図６】実施の形態１を示す図で、データ抽出の第１の方法の動作を示すフローチャート。
【図７】実施の形態１を示す図で、データ抽出の第２の方法に用いられる抽出基準情報の例を示す図。
【図８】実施の形態１を示す図で、データ抽出の第２の方法の動作を示すフローチャート。
【図９】実施の形態２を示す図で、多段シフトバッファから成るデータ保持バッファ部を有する入出力制御装置の構成を示す図。
【発明を実施するための形態】
【００１０】
実施の形態１．
（入出力制御装置（データ抽出装置）の概要）
図１は、実施の形態１における入出力制御装置１００（データ抽出装置）のハードウェア資源の一例を示す図である。
ここで、入出力制御装置は、データ抽出装置に対応する。
図１において、入出力制御装置１００は、プログラムを実行するＣＰＵ９１１（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう）を備えている。ＣＰＵ９１１は、バス９１２を介してＲＯＭ９１３、ＲＡＭ９１４、通信ボード９１５、表示装置９０１、キーボード９０２、マウス９０３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置９２０の代わりに、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
ＲＡＭ９１４は、揮発性メモリの一例である。ＲＯＭ９１３、ＦＤＤ９０４、ＣＤＤ９０５、磁気ディスク装置９２０の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ボード９１５、キーボード９０２、ＦＤＤ９０４などは、入力部、入力装置の一例である。
また、通信ボード９１５、表示装置９０１などは、出力部、出力装置の一例である。
【００１１】
通信ボード９１５は、例えば、データ転送用のバスやＬＡＮ等に接続されている。
磁気ディスク装置９２０には、オペレーティングシステム９２１（ＯＳ）、ウィンドウシステム９２２、プログラム群９２３、ファイル群９２４が記憶されている。プログラム群９２３のプログラムは、ＣＰＵ９１１、オペレーティングシステム９２１、ウィンドウシステム９２２により実行される。
【００１２】
上記プログラム群９２３には、以下に述べる実施の形態の説明において「〜部」として説明する機能を実行するプログラムが記憶されている。プログラムは、ＣＰＵ９１１により読み出され実行される。
ファイル群９２４には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明する情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶されている。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してＣＰＵ９１１によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示などのＣＰＵの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示のＣＰＵの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、ＲＡＭ９１４のメモリ、ＦＤＤ９０４のフレキシブルディスク、ＣＤＤ９０５のコンパクトディスク、磁気ディスク装置９２０の磁気ディスク、その他光ディスク、ミニディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｋ）等の記録媒体や、フリップフロップ回路などの保持回路（図示は省略）に記録される。また、データや信号は、バス９１２や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【００１３】
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「手段」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ＲＯＭ９１３に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、ＤＶＤ等の記録媒体に記憶される。プログラムはＣＰＵ９１１により読み出され、ＣＰＵ９１１により実行される。すなわち、プログラムは、以下に述べる「〜部」としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」の手順や方法をコンピュータに実行させるものである。
なお、入出力制御装置１００の構成は、図１に示される構成に限定されるものではない。
【００１４】
図２は、入出力制御装置１００の動作の概要を示す図である。
前述の通り、例えば、ＦＡ（Ｆａｃｔｏｒｙ  Ａｕｔｏｍａｔｉｏｎ）で利用されるシステムは、複数の処理装置１０から構成される。そして、入出力制御装置１００は、各処理装置１０から出力されるデータを、データ入力経路１１を介して一旦保持し、１つのデータ実行装置２０にデータ出力経路２１を介して出力する。
【００１５】
ここで、処理装置１０は、データ出力装置に対応する。
また、データ入力経路１１とデータ出力経路２１とは、例えば、データ転送用のバスである。また、データ入力経路１１とデータ出力経路２１とは、ローカルエリアネットワーク（ＬＡＮ）であっても良い。
【００１６】
（入出力制御装置１００の構成の概要）
図３は、入出力制御装置１００の構成を示す図である。
入力部１１０は、複数の処理装置１０からデータ入力経路１１を介してデータを入力する。出力セレクタ部１３０は、入力したデータを随時、データ出力経路２１を介してデータ実行装置２０に出力する。
【００１７】
しかし、データ入力経路１１が処理装置１０ごとに独立したバスである場合や、データ出力経路２１の転送速度がデータ入力経路１１の転送速度より遅い場合に、データ保持バッファ部１２０は、各処理装置１０から入力されたデータを一旦記憶する。そして、出力セレクタ部１３０は、データ保持バッファ部１２０が一旦記憶したデータを出力する。
【００１８】
この時、出力選択部１４０は、予め決められた優先比率に従って出力するデータを選択し、選択内容を示す出力選択信号２１０を出力セレクタ部１３０に伝える。そして、既に出力選択信号２１０が示す選択内容に該当するデータが、処理装置１０から出力され、データ保持バッファ部１２０に記憶されていれば、出力セレクタ部１３０は該当するデータを抽出し、出力する。
ここで、出力選択信号２１０が示す選択内容は、データ保持バッファ部１２０に蓄積されているデータがデータ保持バッファ部１２０から抽出される際の処理装置１０間の抽出頻度の比率（抽出頻度の比率については後述で説明）が示されている抽出基準情報（抽出基準情報については後述で説明）に基づいている。そして、抽出基準情報（後述で説明）は、出力選択部１４０（抽出基準情報記憶部）に記憶されている。
【００１９】
ここで、データ保持バッファ部１２０は、バッファ部に対応する。出力セレクタ部１３０は、データ抽出部に対応する。出力選択部１４０は、抽出基準情報記憶部とカウント部とに対応する。
入力部１１０と出力セレクタ部１３０とは、例えば図１に示すＣＰＵ９１１と通信ボード９１５とで実現される。出力選択部１４０は、例えば図１に示すＣＰＵ９１１で実現される。データ保持バッファ部１２０は、例えば図１に示すＲＡＭ９１４や磁気ディスク装置９２０や、フリップフロップ回路などの保持回路（図示は省略）で実現される。
【００２０】
すなわち、入力部１１０は、複数の処理装置１０（データ出力装置）から出力されたデータを入力する。
データ保持バッファ部１２０（バッファ部）は、入力部１１０により入力されたデータを蓄積する。
出力選択部１４０（抽出基準情報記憶部）は、データ保持バッファ部１２０（バッファ部）に蓄積されているデータがデータ保持バッファ部１２０（バッファ部）から抽出される際の処理装置１０（データ出力装置）間の抽出頻度の比率（後述で説明）が示されている抽出基準情報（後述で説明）を記憶する。
出力セレクタ部１３０（データ抽出部）は、抽出基準情報（後述で説明）に示されている抽出頻度の比率（後述で説明）に従って、各処理装置１０（データ出力装置）からのデータをデータ保持バッファ部１２０（バッファ部）から抽出する。
そして、出力セレクタ部１３０（データ抽出部）は、抽出基準情報（後述で説明）に示されている抽出頻度の比率（後述で説明）に従って、抽出の対象となる処理装置１０（抽出対象処理装置、又はデータ出力装置）から出力されたデータがデータ保持バッファ部１２０（バッファ部）に蓄積されているか否かを判断する。そして、出力セレクタ部１３０（データ抽出部）は、処理装置１０（抽出対象処理装置、又はデータ出力装置）から出力されたデータがデータ保持バッファ部１２０（バッファ部）に蓄積されている場合に、処理装置１０（抽出対象処理装置、又はデータ出力装置）からのデータをデータ保持バッファ部１２０から抽出する。
【００２１】
（処理装置１０毎のデータ保持バッファ部１２０を有する入出力制御装置１００の構成及び動作）
図４は、処理装置１０毎のデータ保持バッファ部１２０を有する入出力制御装置１００の構成を示す図である。
処理装置１０ａ〜１０ｄ（図３）から出力されるデータは、そのデータの出力元（発行元）が区別できるようなＩＤ（識別子、Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）が付けられている。
そして、入力部１１０は、そのＩＤに基づき、所定のバッファ別入力経路１１１ａ〜１１１ｄを用いて、ＩＤ毎に異なるデータ保持バッファ部１２０にデータを蓄積する。入力部１１０は、ＩＤ毎にデータの蓄積先を分類するので、処理装置分類回路とも言える。
【００２２】
つまり、データ保持バッファ部１２０ａは、図３に図示する処理装置１０ａから出力されたデータを蓄積する。同様にデータ保持バッファ部１２０ｂは、図３に図示する処理装置１０ｂから出力されたデータを蓄積する。データ保持バッファ部１２０ｃは、図３に図示する処理装置１０ｃから出力されたデータを蓄積する。データ保持バッファ部１２０ｄは、図３に図示する処理装置１０ｄから出力されたデータを蓄積する。
【００２３】
すなわち、データ保持バッファ部１２０（バッファ部）は、複数存在し、複数の処理装置１０（データ出力装置）のそれぞれに対応付けられている。
【００２４】
そして、複数のデータ保持バッファ部１２０は、複数の処理装置１０のそれぞれに対応付けられ、対応付けられた処理装置１０のデータのみを蓄積する為に、データの出力元の処理装置１０を区別するＩＤ情報を必要としない。よって、データ保持バッファ部１２０は、処理装置１０からのデータのみを蓄積し、データに付けられていたＩＤの情報は蓄積しない。
【００２５】
なお、本実施の形態の説明は、処理装置１０とデータ保持バッファ部１２０とバッファ別入力経路１１１とがそれぞれ４つの場合を説明しているが、処理装置１０とデータ保持バッファ部１２０とバッファ別入力経路１１１との数量は限定されるものではない。
【００２６】
データ保持バッファ部１２０に蓄積されたデータは、後述する「データ抽出の第１の方法」もしくは「データ抽出の第２の方法」で抽出される。
【００２７】
（データ抽出の第１の方法）
ここで、データ保持バッファ部１２０からのデータ抽出の第１の方法を説明する。
図５は、データ抽出の第１の方法に用いられる抽出基準情報の例を示す図である。
図６は、データ抽出の第１の方法の動作を示すフローチャートである。
【００２８】
（データ抽出の第１の方法に用いられる抽出基準情報の例）
抽出基準情報（図５）は、データ保持バッファ部１２０（バッファ部）に蓄積されているデータがデータ保持バッファ部１２０（バッファ部）から抽出される際の処理装置１０（データ出力装置）間の抽出頻度の比率を示している。
【００２９】
例えば、処理装置が、図３に示すように処理装置１０ａ〜１０ｄの４台である場合を想定する。そして、処理装置１０ａからの出力データの優先度が一番高いとする。そして、処理装置１０ｂからの出力データの優先度が２番目に高く、処理装置１０ｃと処理装置１０ｄとからの出力データの優先度が３番目だとする。
この場合、例えば、処理装置１０ａの抽出頻度の比率は、データ抽出８回中の４回と設定されたとする。そして、処理装置１０ｂの抽出頻度の比率は、データ抽出８回中の２回と設定されたとする。そして、処理装置１０ｃと処理装置１０ｄとの抽出頻度の比率は、データ抽出８回中のそれぞれ１回と設定されたとする。
【００３０】
この場合、抽出頻度の比率は、図５に示すように「処理装置１０ａ：処理装置１０ｂ：処理装置１０ｃ：処理装置１０ｄ＝４：２：１：１」となる。ここで、抽出頻度の比率は、処理装置の優先比率とも称する。
【００３１】
ここで、出力選択部１４０（図４）は、例えば２進数で「０００〜１１１」の範囲を、値を一つずつ変化させカウントを行う。
すなわち、入出力制御装置１００は、値をカウントする出力選択部１４０（カウント部）を備える。
【００３２】
後述するようにカウント値と抽出対象の処理装置１０とが対応付けされれば良いので、カウント値の値は、「０００〜１１１」の範囲に限られず、またカウント値は一つずつ変化しなくても構わない。
【００３３】
ここで、カウントは、一つずつ増えても良いし、一つずつ減っても良い。
また、カウントは、「０００〜１１１」の範囲を周回する。つまり、カウント「１１１」からカウントが一つ増えると、カウントは、「０００」となる。あるいは、カウント「０００」からカウントが一つ減ると、カウントは、「１１１」となる。
【００３４】
そして、抽出基準情報は、カウント値の２のゼロ乗の桁が「０」の場合（カウント値［０］＝０の場合）は、処理装置１０ａからの出力データを抽出するように設定される。
また、抽出基準情報は、カウント値の２のゼロ乗の桁とカウント値の２の１乗の桁とが「１１」の場合（カウント値［１：０］＝１１の場合）は、処理装置１０ｂからの出力データを抽出するように設定される。抽出基準情報は、カウント値の２のゼロ乗の桁とカウント値の２の１乗の桁とカウント値の２の２乗の桁とが「００１」の場合（カウント値［２：０］＝００１の場合）は、処理装置１０ｃからの出力データを抽出するように設定される。抽出基準情報は、カウント値の２のゼロ乗の桁とカウント値の２の１乗の桁とカウント値の２の２乗の桁とが「１０１」の場合（カウント値［２：０］＝１０１の場合）は、処理装置１０ｄからの出力データを抽出するように設定される。
【００３５】
以上の設定により、「０００〜１１１」の８つのカウントの内、４つが処理装置１０ａに対応付けられ、２つが処理装置１０ｂに対応付けられ、それぞれ１つずつが処理装置１０ｃと処理装置１０ｄとに対応付けられる。
【００３６】
すなわち、出力選択部１４０（抽出基準情報記憶部）は、出力選択部１４０（カウント部）によるカウント値と、処理装置１０（データ出力装置）とが対応付けられた抽出基準情報を記憶する。
そして、出力選択部１４０（抽出基準情報記憶部）は、優先度の高い処理装置１０（データ出力装置）ほど高頻度にデータ保持バッファ部１２０（バッファ部）からデータが抽出される抽出頻度の比率が示されている抽出基準情報を記憶している。
【００３７】
（データ抽出の第１の方法の動作）
データ抽出の第１の方法の動作について、図６を用いて説明する。
抽出基準情報は、図５のように設定されている場合を想定する。
出力選択部１４０（カウント部）は、図６のＳ１１において、カウント値を例えば「１１１」に初期化する。ここで、初期化の値は、「０００〜１１１」の内の任意の値であっても構わない。
【００３８】
そして、出力選択部１４０（カウント部）は、図６のＳ１２において、出力セレクタ部１３０を介してデータ保持バッファ部１２０のいずれかにデータが蓄積（格納）されているか検索する。
あるいは、出力選択部１４０（カウント部）は、データ保持バッファ部１２０のいずれかにデータが蓄積（格納）された場合に、データが蓄積されたことを検出することも可能である。
【００３９】
データ保持バッファ部１２０のいずれにもデータが蓄積（格納）されていない場合（図６のＳ１２で「ＮＯ」）、出力選択部１４０（カウント部）は、Ｓ１２の処理を繰り返す。
【００４０】
そして、データ保持バッファ部１２０のいずれかにデータが蓄積（格納）されている場合（図６のＳ１２で「ＹＥＳ」）、出力選択部１４０（カウント部）は、図６のＳ１３において、カウント値を変化させる。
ここで、出力選択部１４０（カウント部）は、例えば、カウント値を一つ増やし、カウント値を「１１１」から「０００」とした場合を想定して説明を進める。
【００４１】
図６のＳ１４において、出力選択部１４０（カウント部）は、図５の抽出基準情報に示されたカウント値「０００」に対応する処理装置１０ａを選択内容として、出力選択信号２１０を出力セレクタ部１３０に出力する。そして、出力セレクタ部１３０は、処理装置１０ａに対応するデータ保持バッファ部１２０ａにデータが有るか否かを判断する。
【００４２】
データ保持バッファ部１２０ａにデータが無い場合（図６のＳ１４で「ＮＯ」）、出力選択部１４０（カウント部）は、カウント値を一つ増やし（図６のＳ１３）、カウント値を「００１」とする。
そして、出力選択部１４０（カウント部）は、図５の抽出基準情報に示されたカウント値「００１」に対応する処理装置１０ｃを選択内容として、出力選択信号２１０を出力セレクタ部１３０に出力する。出力セレクタ部１３０は、処理装置１０ｃに対応するデータ保持バッファ部１２０ｃにデータが有るか否かを判断する。
以降、データ保持バッファ部１２０にデータが有るまで、Ｓ１３とＳ１４の処理は繰り返される。
【００４３】
例えば、カウント値が「００１」で、データ保持バッファ部１２０ｃにデータが有る場合（図６のＳ１４で「ＹＥＳ」）、図６のＳ１５において、出力セレクタ部１３０は、データ保持バッファ部１２０ｃからデータを抽出する。そして、出力セレクタ部１３０は、抽出したデータをデータ実行装置２０に出力する。
更に、出力セレクタ部１３０は、データ保持バッファ部１２０の有効ビットを無効化する。データ保持バッファ部１２０は、データが蓄積されていることを示すビットである有効ビットを備えている。データがデータ保持バッファ部１２０に蓄積された時に例えば入力部１１０が有効ビットを有効化し（例えば「１」とし）、データが抽出された時に例えば出力セレクタ部１３０が有効ビットを無効化する（例えば「０」とする）。
そして、処理は、図６のＳ１２に戻る。
【００４４】
すなわち、出力セレクタ部１３０（データ抽出部）は、出力選択部１４０（カウント部）によるカウント値に対応した処理装置１０（データ出力装置）を処理装置１０（抽出対象処理装置、又はデータ出力装置）とする。
また、出力選択部１４０（カウント部）は、出力セレクタ部１３０（データ抽出部）が、抽出対象の処理装置１０（抽出対象データ出力装置）から出力されたデータがデータ保持バッファ部１２０（バッファ部）に蓄積されているか否かを判断する度に、値を一つずつ変化させ、変化させた値をカウント値とする。
【００４５】
（データ抽出の第２の方法）
次に、データ保持バッファ部１２０からのデータ抽出の第２の方法を説明する。
図７は、データ抽出の第２の方法に用いられる抽出基準情報の例を示す図である。
図８は、データ抽出の第２の方法の動作を示すフローチャートである。
【００４６】
（データ抽出の第２の方法に用いられる抽出基準情報の例）
図７の抽出基準情報は、図５の抽出基準情報と同様に抽出頻度の比率（処理装置の優先比率）を示している。
【００４７】
例えば、処理装置が、図３に示す処理装置１０ａ〜１０ｄの内、処理装置１０ａ〜１０ｃの３台である場合を想定する。そして、処理装置１０ａからの出力データの優先度が一番高いとする。そして、処理装置１０ｂからの出力データの優先度が２番目に高く、処理装置１０ｃからの出力データの優先度が３番目だとする。
この場合、例えば、処理装置１０ａの抽出頻度の比率は、データ抽出６回中の３回と設定されたとする。そして、処理装置１０ｂの抽出頻度の比率は、データ抽出６回中の２回と設定されたとする。そして、処理装置１０ｃとの抽出頻度の比率は、データ抽出６回中の１回と設定されたとする。
【００４８】
この場合、抽出頻度の比率（処理装置の優先比率）は、図７に示すように「処理装置１０ａ：処理装置１０ｂ：処理装置１０ｃ＝３：２：１」となる。
【００４９】
ここで、出力選択部１４０（図４）は、例えば２進数で「０００００１〜１０００００」の範囲において、「１」となる桁（ビット）を一つずつシフト（移動）させカウントを行う。
例えば、この出力選択部１４０（カウント部）はシフトレジスタで構成される。
【００５０】
後述するようにカウント値と抽出対象の処理装置１０とが対応付けされれば良いので、カウント値の値は、「０００００１〜１０００００」の範囲に限られず、またカウント値は一桁（ビット）ずつシフト（移動）しなくても構わない。
【００５１】
ここで、カウントは、下の桁（ビット）から上の桁（ビット）に向かってシフト（移動）しても良いし（例えば「０００００１」、「００００１０」、「０００１００」の順）、上の桁（ビット）から下の桁（ビット）に向かってシフト（移動）しても良い（例えば「１０００００」、「０１００００」、「００１０００」の順）。
また、カウントは、「０００００１〜１０００００」の範囲を周回する。つまり、カウント「１０００００」からカウントが下の桁（ビット）から上の桁（ビット）に向かって一つ進むと、カウントは、「０００００１」となる。あるいは、カウント「０００００１」からカウントが上の桁（ビット）から下の桁（ビット）に向かって一つ進むと、カウントは、「１０００００」となる。
【００５２】
そして、抽出基準情報は、カウント値の２のゼロ乗の桁が「１」の場合（カウント値［０］＝１の場合）、またはカウント値の２の１乗の桁が「１」の場合（カウント値［１］＝１の場合）、またはカウント値の２の２乗の桁が「１」の場合（カウント値［２］＝１の場合）は、処理装置１０ａからの出力データを抽出するように設定される。
また、抽出基準情報は、カウント値の２の３乗の桁が「１」の場合（カウント値［３］＝１の場合）、またはカウント値の２の４乗の桁が「１」の場合（カウント値［４］＝１の場合）は、処理装置１０ｂからの出力データを抽出するように設定される。抽出基準情報は、カウント値の２の５乗の桁が「１」の場合（カウント値［５］＝１の場合）は、処理装置１０ｃからの出力データを抽出するように設定される。
【００５３】
以上の設定により、「０００００１〜１０００００」の６つのカウントの内、３つが処理装置１０ａに対応付けられ、２つが処理装置１０ｂに対応付けられ、１つが処理装置１０ｃに対応付けられる。
【００５４】
ここで、出力選択部１４０（図４）は、例えば２進数で「１１１１１０〜０１１１１１」の範囲において、「０」となる桁（ビット）を一つずつシフト（移動）させカウントを行うことも可能である。
そして、抽出基準情報は、例えば「１１１１１０」、「１１１１０１」、「１１１０１１」が処理装置１０ａに対応付けられ、「１１０１１１」、「１０１１１１」が処理装置１０ｂに対応付けられ、「０１１１１１」が処理装置１０ｃに対応付けられるように設定可能である。
【００５５】
すなわち、出力選択部１４０（カウント部）は、出力セレクタ部１３０（データ抽出部）が、抽出対象処理装置１０（データ出力装置）から出力されたデータがデータ保持バッファ部１２０（バッファ部）に蓄積されているか否かを判断する度に、「０」又は「１」のいずれかを基準値とする複数桁の２進数を一桁ずつシフトさせ、基準値の桁位置をカウント値とする。
【００５６】
（データ抽出の第２の方法の動作）
データ抽出の第２の方法の動作について、図８を用いて説明する。
抽出基準情報は、図７のように設定されている場合を想定する。
そして、出力選択部１４０（カウント部）は、シフトレジスタにより構成されているとする。
出力選択部１４０（カウント部）は、図８のＳ２１において、シフトレジスタのカウント値を例えば「００００１０」に初期化する。ここで、初期化の値は、「０００００１〜１０００００」の内の任意の値であっても構わない。
【００５７】
そして、出力選択部１４０（カウント部）は、図８のＳ２２において、出力セレクタ部１３０を介してデータ保持バッファ部１２０のいずれかにデータが蓄積（格納）されているか検索する。
あるいは、出力選択部１４０（カウント部）は、データ保持バッファ部１２０のいずれかにデータが蓄積（格納）された場合に、データが蓄積されたことを検出することも可能である。
【００５８】
データ保持バッファ部１２０のいずれにもデータが蓄積（格納）されていない場合（図８のＳ２２で「ＮＯ」）、出力選択部１４０（カウント部）は、Ｓ２２の処理を繰り返す。
【００５９】
そして、データ保持バッファ部１２０のいずれかにデータが蓄積（格納）されている場合（図８のＳ２２で「ＹＥＳ」）、出力選択部１４０（カウント部）は、図８のＳ２３において、シフトレジスタのカウント値を変化（シフト）させる。
ここで、出力選択部１４０（カウント部）は、例えば、シフトレジスタのカウント値を一つシフトし、カウント値を「００００１０」から「０００１００」とした場合を想定して説明を進める。
【００６０】
図８のＳ２４において、出力選択部１４０（カウント部）は、図７の抽出基準情報に示されたカウント値「０００１００」に対応する処理装置１０ａを選択内容として、出力選択信号２１０を出力セレクタ部１３０に出力する。そして、出力セレクタ部１３０は、処理装置１０ａに対応するデータ保持バッファ部１２０ａにデータが有るか否かを判断する。
【００６１】
データ保持バッファ部１２０ａにデータが無い場合（図８のＳ２４で「ＮＯ」）、出力選択部１４０（カウント部）は、シフトレジスタのカウント値を一つシフトし（図８のＳ２３）、カウント値を「００１０００」とする。
そして、出力選択部１４０（カウント部）は、図７の抽出基準情報に示されたカウント値「００１０００」に対応する処理装置１０ｂを選択内容として、出力選択信号２１０を出力セレクタ部１３０に出力する。出力セレクタ部１３０は、処理装置１０ｂに対応するデータ保持バッファ部１２０ｂにデータが有るか否かを判断する。
以降、データ保持バッファ部１２０にデータが有るまで、Ｓ２３とＳ２４の処理は繰り返される。
【００６２】
例えば、カウント値が「００１０００」で、データ保持バッファ部１２０ｂにデータが有る場合（図８のＳ２４で「ＹＥＳ」）、図８のＳ２５において、出力セレクタ部１３０は、データ保持バッファ部１２０ｂからデータを抽出する。そして、出力セレクタ部１３０は、抽出したデータをデータ実行装置２０に出力する。
そして、データ抽出の第１の方法と同様に、出力セレクタ部１３０は、データ保持バッファ部１２０の有効ビットを無効化する。
そして、処理は、図８のＳ２２に戻る。
【００６３】
（実施の形態１の効果）
実施の形態１の入出力制御装置１００は、予め決定された処理装置の優先比率（抽出頻度の比率）に基づいて、各処理装置からのデータを抽出（出力）出来る。しかも、実施の形態１の入出力制御装置１００は、優先度を区別する数や、それらの優先比率に制限が無く、多段階の優先区分のデータ抽出（出力）が可能となる。
【００６４】
また、実施の形態１の入出力制御装置１００は、処理装置１０からのデータを格納するデータ保持バッファ部１２０が、処理装置１０毎に分けられているので、処理装置１０（データの出力元）を区別する情報を各データ保持バッファ部１２０内に保持する必要がない。
【００６５】
更に、実施の形態１の入出力制御装置１００は、一旦データ保持バッファ部１２０に蓄積したデータを破棄することが無く、また、低い優先度のデータも確実に抽出（出力）する。
【００６６】
また、特にデータ抽出の第１の方法を用いた実施の形態１の入出力制御装置１００は、カウント値が「２」のべき乗（「２」の「カウントのビット数」乗）であり、処理装置１０に対応するカウント値を多く設定出来る。よって、データ抽出の第１の方法を用いた実施の形態１の入出力制御装置１００は、多くの処理装置１０を有するシステムに対応し易い。
また、特にデータ抽出の第２の方法を用いた実施の形態１の入出力制御装置１００は、カウント値の内の１桁（ビット）のみで処理装置１０を選択出来るので、優先比率や処理順序を設定し易いという利点がある。
【００６７】
言い換えると、実施の形態１では、複数の入力データを１箇所に出力する装置（入出力制御装置１００）において、出力する優先度の異なるデータを、優先比率に基づいて出力する方法を備えた出力順序制御方法について説明した。
【００６８】
実施の形態２．
（多段シフトバッファから成るデータ保持バッファ部１２０を有する入出力制御装置１００の構成及び動作）
図９は、多段シフトバッファ（後述で説明）から成るデータ保持バッファ部１２０を有する入出力制御装置１００の構成を示す図である。
図９に示される実施の形態２の入出力制御装置１００は、図４に示される実施の形態１の入出力制御装置１００と比べ、データ保持バッファ部１２０の構成とバッファ制御部６００が有る点とが異なる。それ以外は、実施の形態１と同様であり説明を省略する。
ここで、データ保持バッファ部１２０は、図９に示すようにデータ保持バッファ部１２０ａ〜１２０ｄの４つから構成されている多段シフトバッファ（後述で説明）と想定して説明を進めるが、データ保持バッファ部１２０の数は、制限されるものでは無い。
【００６９】
まず、入力部１１０は、例えば図３に示すような処理装置１０ａ〜１０ｄから随時データを入力する。
そして、データ保持バッファ部１２０ａ〜１２０ｄは、データの出力元（処理装置１０）を区別すること無く、データを蓄積する。
【００７０】
ここで、例えば、データ保持バッファ部１２０ｄの有効ビットが無効化されている場合（データ保持バッファ部１２０ｄにデータが蓄積されていない場合）に、データは、データ保持バッファ部１２０ｄに一番優先的に蓄積される。もし、データ保持バッファ部１２０ｄの有効ビットが有効化されている場合（データ保持バッファ部１２０ｄにデータが蓄積されている場合）には、データ保持バッファ部１２０ｃ、データ保持バッファ部１２０ｂ、データ保持バッファ部１２０ａの順で有効ビットが無効化されているものにデータが蓄積される。
【００７１】
そして、それぞれのデータ保持バッファ部１２０は、データと共に、データの出力元（処理装置１０）を識別するＩＤを一緒に記憶する。
【００７２】
データ保持バッファ部１２０に蓄積されたデータは、実施の形態１で説明の「データ抽出の第１の方法」もしくは「データ抽出の第２の方法」で抽出される。「データ抽出の第１の方法」と「データ抽出の第２の方法」とについては、実施の形態と同様で有る為、詳細な説明は省略する。
【００７３】
出力セレクタ部１３０は、出力選択信号２１０が出力選択部１４０から入力されると、まずデータ保持バッファ部１２０ｄに抽出対象のデータが蓄積されているか否かを判断する。データ保持バッファ部１２０ｄに抽出対象のデータが蓄積されていない場合は、出力セレクタ部１３０は、データ保持バッファ部１２０ｃ、データ保持バッファ部１２０ｂ、データ保持バッファ部１２０ａと順番に抽出対象のデータが蓄積されているか否かを判断する。
そして、出力セレクタ部１３０は、抽出対象のデータが蓄積されている場合に、データ保持バッファ部１２０からデータを抽出する。
【００７４】
出力セレクタ部１３０により、データが抽出されて有効ビットが無効化されたデータ保持バッファ部１２０が生じると、バッファ制御部６００は、データ保持バッファ部１２０間でデータを移動する。例えば、データ保持バッファ部１２０ｄが無効化された場合は、バッファ制御部６００は、データ保持バッファ部１２０ｃのデータをデータ保持バッファ部１２０ｄに移動し、データ保持バッファ部１２０ｂのデータをデータ保持バッファ部１２０ｃに、データ保持バッファ部１２０ａのデータをデータ保持バッファ部１２０ｂに移動する。そして、入力部１１０は、処理装置１０から入力された新たなデータをデータ保持バッファ部１２０ａに蓄積する。
【００７５】
つまり、入力部１１０から入力された時刻が古いデータほど、優先的に抽出されるデータ保持バッファ部１２０に蓄積される。そして、同じ処理装置１０からのデータがそれぞれ異なるデータ保持バッファ部１２０に蓄積されている場合は、入力部１１０から入力された時刻が古いデータが出力セレクタ部１３０によって、先に抽出されることになる。
【００７６】
このように複数のデータ保持バッファ部１２０から構成され、データ保持バッファ部１２０間でデータがシフトするバッファを多段シフトバッファと称する。
【００７７】
すなわち、データ保持バッファ部１２０（バッファ部）は、複数存在し、出力セレクタ部１３０（データ抽出部）は、抽出の対象となる抽出対象処理装置１０（データ出力装置）から出力されたデータが、二つ以上のデータ保持バッファ部１２０（バッファ部）により記憶されている場合に、二つ以上のデータ保持バッファ部１２０（バッファ部）により記憶されている二つ以上のデータの内、一番古いデータを抽出する。
【００７８】
以上、データ保持バッファ部１２０ｄからデータ保持バッファ部１２０ａの順で優先的にデータが蓄積される例を説明したが、データ保持バッファ部１２０ａからデータ保持バッファ部１２０ｄの順で優先的にデータが蓄積されても構わない。また、優先的にデータが蓄積される順番が定められていれば、例えば図９に示すデータ保持バッファ部１２０の並び順通りに優先的にデータが蓄積されなくても良い。
【００７９】
（実施の形態２の効果）
実施の形態２の入出力制御装置１００は、実施の形態１と同様に、予め決定された処理装置の優先比率（抽出頻度の比率）に基づいて、各処理装置からのデータを抽出（出力）出来る。しかも、実施の形態２の入出力制御装置１００は、優先度を区別する数や、それらの優先比率に制限が無く、多段階の優先区分のデータ抽出（出力）が可能となる。
【００８０】
また、実施の形態２の入出力制御装置１００は、処理装置１０からのデータを格納するデータ保持バッファ部１２０と、処理装置１０（データの出力元）との対応が無いため、処理装置１０の増加に伴って、データ保持バッファ部１２０の数を増加させる必要がない。
【００８１】
更に、実施の形態２の入出力制御装置１００は、実施の形態１と同様に、一旦データ保持バッファ部１２０に蓄積したデータを破棄することが無く、また、低い優先度のデータも確実に抽出（出力）する。
【００８２】
また、特にデータ抽出の第１の方法を用いた実施の形態２の入出力制御装置１００は、実施の形態１と同様に、カウント値が「２」のべき乗（「２」の「カウントのビット数」乗）であり、処理装置１０に対応するカウント値を多く設定出来る。よって、データ抽出の第１の方法を用いた実施の形態２の入出力制御装置１００は、実施の形態１と同様に、多くの処理装置１０を有するシステムに対応し易い。
また、特にデータ抽出の第２の方法を用いた実施の形態２の入出力制御装置１００は、実施の形態１と同様に、カウント値の内の１桁（ビット）のみで処理装置１０を選択出来るので、優先比率や処理順序を設定し易いという利点がある。
【００８３】
言い換えると、実施の形態２では、入出力制御装置１００において入力箇所の増加に伴い、入力データを保持するバッファ数が増えることなく出力順序制御を実現する方法について説明した。
【００８４】
なお、既に、説明したように、本実施の形態１に示す入出力制御装置１００は、処理装置たるＣＰＵ、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータである。
そして、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【００８５】
１０  処理装置、１１  データ入力経路、２０  データ実行装置、２１  データ出力経路、１００  入出力制御装置、１１０  入力部、１２０  データ保持バッファ部、１３０  出力セレクタ部、１４０  出力選択部、２１０  出力選択信号、６００  バッファ制御部、９０１  表示装置、９０２  キーボード、９０３  マウス、９０４  ＦＤＤ、９０５  コンパクトディスク装置、９１１  ＣＰＵ、９１２  バス、９１３  ＲＯＭ、９１４  ＲＡＭ、９１５  通信ボード、９２０  磁気ディスク装置、９２１  オペレーティングシステム、９２２  ウィンドウシステム、９２３  プログラム群、９２４  ファイル群。
【図１】
2013037477.tif 000003
【図２】
2013037477.tif 000004
【図３】
2013037477.tif 000005
【図４】
2013037477.tif 000006
【図５】
2013037477.tif 000007
【図６】
2013037477.tif 000008
【図７】
2013037477.tif 000009
【図８】
2013037477.tif 000010
【図９】
2013037477.tif 000011