(57)【特許請求の範囲】
【請求項１】
データ処理制御装置の拡張バスに取り付けて使用される機能拡張ボードであって、
自ボードが、データ処理の分割および割り付けを制御するマスターボードと、他ボードにより割り付けられたデータ処理を受け付けるスレーブボートとのどちらに前記データ処理制御装置により選定されたかを判別する判別手段と、
自ボードが前記マスターボードに選定されていると判別される場合に、前記データ処理制御装置の拡張バスに接続された複数の機能拡張ボードのうち当該データ処理制御装置によって検出された特定の一群の機能拡張ボードの中から、当該自ボードが行うデータ処理の一部を分担可能な機能を有する他ボードをスレーブボードとして検出するスレーブボード検出手段と、
自ボードが前記マスターボードに選定されていると判別される場合に、前記データ処理制御装置から指示されたデータ処理を分割し、自ボード、および前記スレーブボードとしての他ボードに割り付けるデータ処理割り付け手段と、
自ボードが前記マスターボードに選定されていると判別される場合には、自ボードに自ら割り付けた一部のデータ処理を実行する一方、自ボードが前記スレーブボードに選定されていると判別される場合には、マスターボードとして選定された他ボードから割り付けられた一部のデータ処理を受け付けて実行するデータ処理実行手段と、を有することを特徴とする機能拡張ボード。
【請求項２】
前記拡張バスは、ＰＣＩバスであり、
前記機能拡張ボードは、前記ＰＣＩバスに取り付けて使用されるＰＣＩ拡張ボードであること、を特徴とする請求項１に記載の機能拡張ボード。
【請求項３】
前記データ処理割り付け手段は、画像処理の対象の画像データを複数の領域に分割して、自ボード、および前記スレーブボードとしての他ボードに割り付けるものであり、
前記データ処理実行手段は、自ボードが前記マスターボードに選定されていると判別される場合には、自ら割り付けた領域の画像データについて画像処理を実行する一方、自ボードが前記スレーブボードに選定されていると判別される場合には、マスターボードとして選定された他ボードから割り付けられた領域の画像データについて画像処理を受け付けて実行する、ことを特徴とする請求項１に記載の機能拡張ボード。
【請求項４】
機能拡張ボードを取り付け可能な拡張バスを有するデータ処理制御装置であって、
前記拡張バスに取り付けられた複数の機能拡張ボードの中から、特定の一群の機能拡張ボードを検出する機能拡張ボード検出手段と、
データ処理の分割、および自ボードと当該自ボードが行うデータ処理の一部を分担可能な機能を有するスレーブボードとしての他ボードとへのデータ処理の割り付けを制御させるためのマスターボードとする一の機能拡張ボードを、前記一群の機能拡張ボードの中から選定するマスターボード選定手段と、
前記マスターボードとして選定された一の機能拡張ボードが、前記スレーブボードとしての他ボードを前記一群の機能拡張ボードの中から検出できるようにさせるために、前記マスターボードとして選定された一の機能拡張ボードに対して、前記一群の機能拡張ボードのアドレスリストを書き込む書き込み手段と、
前記マスターボードとして選定された一の機能拡張ボードに対してデータ処理を命令するマスターボード制御手段と、を有することを特徴とするデータ処理制御装置。
【請求項５】
前記拡張バスは、ＰＣＩバスであり、
前記機能拡張ボードは、前記ＰＣＩバスに取り付けて使用されるＰＣＩ拡張ボードであること、を特徴とする請求項４に記載のデータ処理制御装置。
【請求項６】
前記データ処理は、画像処理であり、
前記マスターボードとして選定された一の機能拡張ボードは、前記画像処理の対象の画像データを複数の領域に分割して、自ボードと前記スレーブボードとして選定された他のボードに割り付けることを特徴とする請求項４に記載のデータ処理制御装置。
【請求項７】
データ処理制御装置の拡張バスに取り付けて使用される機能拡張ボードにおけるデータ処理方法であって、
自ボードが、データ処理の分割および割り付けを制御するマスターボードと、他ボードにより割り付けられたデータ処理を受け付けるスレーブボートとのどちらに前記データ処理制御装置により選定されたかを判別する段階と、
自ボードが前記マスターボードに選定されていると判別される場合に、前記データ処理制御装置の拡張バスに接続された複数の機能拡張ボードのうち当該データ処理制御装置によって検出された特定の一群の機能拡張ボードの中から、当該自ボードが行うデータ処理の一部を分担可能な機能を有する他ボードをスレーブボードとして検出する段階と、
自ボードが前記マスターボードに選定されていると判別される場合に、前記データ処理制御装置から指示されたデータ処理を分割し、自ボード、および前記スレーブボードとしての他ボードに割り付ける段階と、
自ボードが前記マスターボードに選定されていると判別される場合には、自ボードに自ら割り付けた一部のデータ処理を実行する一方、自ボードが前記スレーブボードに選定されていると判別される場合には、マスターボードとして選定された他ボードから割り付けられた一部のデータ処理を受け付けてデータ処理を実行する段階と、を有することを特徴とする機能拡張ボードにおけるデータ処理方法。
【請求項８】
前記拡張バスは、ＰＣＩバスであり、
前記機能拡張ボードは、前記ＰＣＩバスに取り付けて使用されるＰＣＩ拡張ボードであること、を特徴とする請求項７に記載のデータ処理方法。
【請求項９】
前記データ処理を割り付ける段階は、画像処理の対象の画像データを複数の領域に分割して、自ボード、および前記スレーブボードとしての他ボードに割り付けるものであり、
前記データ処理を実行する段階は、自ボードが前記マスターボードに選定されていると判別される場合には、自ら割り付けた領域の画像データについて画像処理を実行する一方、自ボードが前記スレーブボードに選定されていると判別される場合には、マスターボードとして選定された他ボードから割り付けられた領域の画像データについて画像処理を受け付けて実行する、ことを特徴とする請求項７に記載のデータ処理方法。
【請求項１０】
機能拡張ボードを取り付け可能な拡張バスを有するデータ処理制御装置による前記機能拡張ボードの制御方法であって、
前記拡張バスに取り付けられた複数の機能拡張ボードの中から、特定の一群の機能拡張ボードを検出する段階と、
データ処理の分割、および自ボードと当該自ボードが行うデータ処理の一部を分担可能な機能を有するスレーブボードとしての他ボードとへのデータ処理の割り付けを制御させるためのマスターボードとする一の機能拡張ボードを、前記複数の機能拡張ボードの中から選定する段階と、
前記マスターボードとして選定された一の機能拡張ボードが、前記スレーブボードとしての他ボードを前記一群の機能拡張ボードの中から検出できるようにさせるために、前記マスターボードとして選定された一機能拡張ボードに対して前記一群の機能拡張ボードのアドレスリストを書き込む段階と、
前記マスターボードとして選定された一の機能拡張ボードに対して、データ処理を命令する段階と、を有することを特徴とする機能拡張ボードの制御方法。
【請求項１１】
前記拡張バスは、ＰＣＩバスであり、
前記機能拡張ボードは、前記ＰＣＩバスに取り付けて使用されるＰＣＩ拡張ボードであること、を特徴とする請求項１０に記載の機能拡張ボードの制御方法。
【請求項１２】
前記データ処理は、画像処理であり、
前記マスターボードとして選定された一の機能拡張ボードは、前記画像処理の対象の画像データを複数の領域に分割して、自ボードと前記スレーブボードとして選定された他のボードに割り付けることを特徴とする請求項１０に記載の機能拡張ボードの制御方法。
【請求項１３】
データ処理制御装置の拡張バスに取り付けて使用される機能拡張ボードにおけるデータ処理プログラムであって、
自ボードが、データ処理の分割および割り付けを制御するマスターボードと、他ボードにより割り付けられたデータ処理を受け付けるスレーブボートとのどちらに前記データ処理制御装置により選定されたかを判別する手順と、
自ボードが前記マスターボードに選定されていると判別される場合に、前記データ処理制御装置の拡張バスに接続された複数の機能拡張ボードのうち当該データ処理制御装置によって検出された特定の一群の機能拡張ボードの中から、当該自ボードが行うデータ処理の一部を分担可能な機能を有する他ボードをスレーブボードとして検出する手順と、
自ボードが前記マスターボードに選定されていると判別される場合に、前記データ処理制御装置から指示されたデータ処理を分割し、自ボード、および前記スレーブボードとしての他ボードに割り付ける手順と、
自ボードが前記マスターボードに選定されていると判別される場合には、自ボードに自ら割り付けた一部のデータ処理を実行する一方、自ボードが前記スレーブボードに選定されていると判別される場合には、マスターボードとして選定された他ボードから割り付けられた一部のデータ処理を受け付けてデータ処理を実行する手順と、を機能拡張ボードに設けられたプロセッサに実行させることを特徴とするデータ処理プログラム。
【請求項１４】
前記拡張バスは、ＰＣＩバスであり、
前記機能拡張ボードは、前記ＰＣＩバスに取り付けて使用されるＰＣＩ拡張ボードであること、を特徴とする請求項１３に記載のデータ処理プログラム。
【請求項１５】
前記データ処理を割り付ける手順は、画像処理の対象の画像データを複数の領域に分割して、自ボード、および前記スレーブボードとしての他ボードに割り付けるものであり、
前記データ処理を実行する手順は、自ボードが前記マスターボードに選定されていると判別される場合には、自ら割り付けた領域の画像データについて画像処理を実行する一方、自ボードが前記スレーブボードに選定されていると判別される場合には、マスターボードとして選定された他ボードから割り付けられた領域の画像データについて画像処理を受け付けて実行する、ことを特徴とする請求項１３に記載のデータ処理プログラム。
【請求項１６】
機能拡張ボードを取り付け可能な拡張バスを有するデータ処理制御装置による前記機能拡張ボードの制御プログラムであって、
前記拡張バスに取り付けられた複数の機能拡張ボードの中から、特定の一群の機能拡張ボードを検出する手順と、
データ処理の分割、および自ボードと当該自ボードが行うデータ処理の一部を分担可能な機能を有するスレーブボードとしての他ボードとへのデータ処理の割り付けを制御させるためのマスターボードとする一の機能拡張ボードを、前記複数の機能拡張ボードの中から選定する手順と、
前記マスターボードとして選定された一の機能拡張ボードが、前記スレーブボードとしての他ボードを前記一群の機能拡張ボードの中から検出できるようにさせるために、前記マスターボードとして選定された一機能拡張ボードに対して前記一群の機能拡張ボードのアドレスリストを書き込む手順と、
前記マスターボードとして選定された一の機能拡張ボードに対して、データ処理を命令する手順と、を前記データ処理制御装置に実行させることを特徴とする機能拡張ボードの制御プログラム。
【請求項１７】
前記拡張バスは、ＰＣＩバスであり、
前記機能拡張ボードは、前記ＰＣＩバスに取り付けて使用されるＰＣＩ拡張ボードであること、を特徴とする請求項１６に記載の機能拡張ボードの制御プログラム。
【請求項１８】
前記データ処理は、画像処理であり、
前記マスターボードとして選定された一の機能拡張ボードは、前記画像処理の対象の画像データを複数の領域に分割して、自ボードと前記スレーブボードとして選定された他のボードに割り付けることを特徴とする請求項１６に記載の機能拡張ボードの制御プログラム。
【請求項１９】
請求項１３〜１５のいずれか１つに記載のデータ処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２０】
請求項１６〜１８のいずれか１つに記載の機能拡張ボードの制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ処理装置、特にＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）デバイス等のコンピュータ周辺機器、その制御装置および制御方法に関する。
【０００２】
【従来の技術】
パソコン、ワークステーション、産業用コンピュータ等のコンピュータシステムにおいては、ＰＣＩバス等の拡張バスに拡張ボードを挿入して増設することにより機能を拡張することができる。かかる場合、同種の拡張ボードを複数増設する場合であっても増設した拡張ボードごとにドライバをインストールする必要があり、作業が煩雑であるうえ、複数のドライバの追加によりシステムの動作が不安定になるという問題があった。また、かかるシステムでは、アプリケーション側から１つのドライバだけを操作することにより、複数の同種ボードを同時に制御してデータ処理を複数ボードに分担させるということはできなかった。
【０００３】
【発明が解決しようとする課題】
本発明は上記従来技術の有する問題点に鑑みなされたものであり、その目的とするところは、１つのドライバだけで複数の同種機器を同時に制御してデータ処理を複数機器に分担させ得るコンピュータ周辺機器を提供することにある。
【０００４】
【課題を解決するための手段】
本発明の上記目的は、下記の手段によって達成される。
【０００５】
（１）  データ処理制御装置の拡張バスに取り付けて使用される機能拡張ボードであって、自ボードが、データ処理の分割および割り付けを制御するマスターボードと、他ボードにより割り付けられたデータ処理を受け付けるスレーブボートとのどちらに前記データ処理制御装置により選定されたかを判別する判別手段と、自ボードが前記マスターボードに選定されていると判別される場合に、前記データ処理制御装置の拡張バスに接続された複数の機能拡張ボードのうち当該データ処理制御装置によって検出された特定の一群の機能拡張ボードの中から、当該自ボードが行うデータ処理の一部を分担可能な機能を有する他ボードをスレーブボードとして検出するスレーブボード検出手段と、自ボードが前記マスターボードに選定されていると判別される場合に、前記データ処理制御装置から指示されたデータ処理を分割し、自ボード、および前記スレーブボードとしての他ボードに割り付けるデータ処理割り付け手段と、自ボードが前記マスターボードに選定されていると判別される場合には、自ボードに自ら割り付けた一部のデータ処理を実行する一方、自ボードが前記スレーブボードに選定されていると判別される場合には、マスターボードとして選定された他ボードから割り付けられた一部のデータ処理を受け付けて実行するデータ処理実行手段と、を有することを特徴とする機能拡張ボード。
【０００６】
（２）  前記拡張バスは、ＰＣＩバスであり、
前記機能拡張ボードは、前記ＰＣＩバスに取り付けて使用されるＰＣＩ拡張ボードであること、を特徴とする（１）に記載の機能拡張ボード。
（３）  前記データ処理割り付け手段は、画像処理の対象の画像データを複数の領域に分割して、自ボード、および前記スレーブボードとしての他ボードに割り付けるものであり、前記データ処理実行手段は、自ボードが前記マスターボードに選定されていると判別される場合には、自ら割り付けた領域の画像データについて画像処理を実行する一方、自ボードが前記スレーブボードに選定されていると判別される場合には、マスターボードとして選定された他ボードから割り付けられた領域の画像データについて画像処理を受け付けて実行する、ことを特徴とする（１）に記載の機能拡張ボード。
【０００７】
（４）  機能拡張ボードを取り付け可能な拡張バスを有するデータ処理制御装置であって、前記拡張バスに取り付けられた複数の機能拡張ボードの中から、特定の一群の機能拡張ボードを検出する機能拡張ボード検出手段と、データ処理の分割、および自ボードと当該自ボードが行うデータ処理の一部を分担可能な機能を有するスレーブボードとしての他ボードとへのデータ処理の割り付けを制御させるためのマスターボードとする一の機能拡張ボードを、前記一群の機能拡張ボードの中から選定するマスターボード選定手段と、前記マスターボードとして選定された一の機能拡張ボードが、前記スレーブボードとしての他ボードを前記一群の機能拡張ボードの中から検出できるようにさせるために、前記マスターボードとして選定された一の機能拡張ボードに対して、前記一群の機能拡張ボードのアドレスリストを書き込む書き込み手段と、前記マスターボードとして選定された一の機能拡張ボードに対してデータ処理を命令するマスターボード制御手段と、を有することを特徴とするデータ処理制御装置。
【０００８】
（５）  前記拡張バスは、ＰＣＩバスであり、
前記機能拡張ボードは、前記ＰＣＩバスに取り付けて使用されるＰＣＩ拡張ボードであること、を特徴とする（４）に記載のデータ処理制御装置。
（６）  前記データ処理は、画像処理であり、
前記マスターボードとして選定された一の機能拡張ボードは、前記画像処理の対象の画像データを複数の領域に分割して、自ボードと前記スリーブボードとして選定された他のボードに割り付けることを特徴とする（４）に記載のデータ処理制御装置。
【０００９】
（７）  データ処理制御装置の拡張バスに取り付けて使用される機能拡張ボードにおけるデータ処理方法であって、自ボードが、データ処理の分割および割り付けを制御するマスターボードと、他ボードにより割り付けられたデータ処理を受け付けるスレーブボートとのどちらに前記データ処理制御装置により選定されたかを判別する段階と、自ボードが前記マスターボードに選定されていると判別される場合に、前記データ処理制御装置の拡張バスに接続された複数の機能拡張ボードのうち当該データ処理制御装置によって検出された特定の一群の機能拡張ボードの中から、当該自ボードが行うデータ処理の一部を分担可能な機能を有する他ボードをスレーブボードとして検出する段階と、自ボードが前記マスターボードに選定されていると判別される場合に、前記データ処理制御装置から指示されたデータ処理を分割し、自ボード、および前記スレーブボードとしての他ボードに割り付ける段階と、自ボードが前記マスターボードに選定されていると判別される場合には、自ボードに自ら割り付けた一部のデータ処理を実行する一方、自ボードが前記スレーブボードに選定されていると判別される場合には、マスターボードとして選定された他ボードから割り付けられた一部のデータ処理を受け付けてデータ処理を実行する段階と、を有することを特徴とする機能拡張ボードにおけるデータ処理方法。
（８）  前記拡張バスは、ＰＣＩバスであり、
前記機能拡張ボードは、前記ＰＣＩバスに取り付けて使用されるＰＣＩ拡張ボードであること、を特徴とする（７）に記載のデータ処理方法。
（９）  前記データ処理を割り付ける段階は、画像処理の対象の画像データを複数の領域に分割して、自ボード、および前記スレーブボードとしての他ボードに割り付けるものであり、前記データ処理を実行する段階は、自ボードが前記マスターボードに選定されていると判別される場合には、自ら割り付けた領域の画像データについて画像処理を実行する一方、自ボードが前記スレーブボードに選定されていると判別される場合には、マスターボードとして選定された他ボードから割り付けられた領域の画像データについて画像処理を受け付けて実行する、ことを特徴とする（７）に記載のデータ処理方法。
（１０）  機能拡張ボードを取り付け可能な拡張バスを有するデータ処理制御装置による前記機能拡張ボードの制御方法であって、前記拡張バスに取り付けられた複数の機能拡張ボードの中から、特定の一群の機能拡張ボードを検出する段階と、データ処理の分割、および自ボードと当該自ボードが行うデータ処理の一部を分担可能な機能を有するスレーブボードとしての他ボードとへのデータ処理の割り付けを制御させるためのマスターボードとする一の機能拡張ボードを、前記複数の機能拡張ボードの中から選定する段階と、前記マスターボードとして選定された一の機能拡張ボードが、前記スレーブボードとしての他ボードを前記一群の機能拡張ボードの中から検出できるようにさせるために、前記マスターボードとして選定された一機能拡張ボードに対して前記一群の機能拡張ボードのアドレスリストを書き込む段階と、前記マスターボードとして選定された一の機能拡張ボードに対して、データ処理を命令する段階と、を有することを特徴とする機能拡張ボードの制御方法。
（１１）  前記拡張バスは、ＰＣＩバスであり、
前記機能拡張ボードは、前記ＰＣＩバスに取り付けて使用されるＰＣＩ拡張ボードであること、を特徴とする（１０）に記載の機能拡張ボードの制御方法。
（１２）  前記データ処理は、画像処理であり、
前記マスターボードとして選定された一の機能拡張ボードは、前記画像処理の対象の画像データを複数の領域に分割して、自ボードと前記スレーブボードとして選定された他のボードに割り付けることを特徴とする（１０）に記載の機能拡張ボードの制御方法。
（１３）  データ処理制御装置の拡張バスに取り付けて使用される機能拡張ボードにおけるデータ処理プログラムであって、
自ボードが、データ処理の分割および割り付けを制御するマスターボードと、他ボードにより割り付けられたデータ処理を受け付けるスレーブボートとのどちらに前記データ処理制御装置により選定されたかを判別する手順と、
自ボードが前記マスターボードに選定されていると判別される場合に、前記データ処理制御装置の拡張バスに接続された複数の機能拡張ボードのうち当該データ処理制御装置によって検出された特定の一群の機能拡張ボードの中から、当該自ボードが行うデータ処理の一部を分担可能な機能を有する他ボードをスレーブボードとして検出する手順と、
自ボードが前記マスターボードに選定されていると判別される場合に、前記データ処理制御装置から指示されたデータ処理を分割し、自ボード、および前記スレーブボードとしての他ボードに割り付ける手順と、
自ボードが前記マスターボードに選定されていると判別される場合には、自ボードに自ら割り付けた一部のデータ処理を実行する一方、自ボードが前記スレーブボードに選定されていると判別される場合には、マスターボードとして選定された他ボードから割り付けられた一部のデータ処理を受け付けてデータ処理を実行する手順と、を機能拡張ボードに設けられたプロセッサに実行させることを特徴とするデータ処理プログラム。
（１４）  前記拡張バスは、ＰＣＩバスであり、
前記機能拡張ボードは、前記ＰＣＩバスに取り付けて使用されるＰＣＩ拡張ボードであること、を特徴とする（１３）に記載のデータ処理プログラム。
（１５）  前記データ処理を割り付ける手順は、画像処理の対象の画像データを複数の領域に分割して、自ボード、および前記スレーブボードとしての他ボードに割り付けるものであり、
前記データ処理を実行する手順は、自ボードが前記マスターボードに選定されていると判別される場合には、自ら割り付けた領域の画像データについて画像処理を実行する一方、自ボードが前記スレーブボードに選定されていると判別される場合には、マスターボードとして選定された他ボードから割り付けられた領域の画像データについて画像処理を受け付けて実行する、ことを特徴とする（１３）に記載のデータ処理プログラム。
（１６）  機能拡張ボードを取り付け可能な拡張バスを有するデータ処理制御装置による前記機能拡張ボードの制御プログラムであって、前記拡張バスに取り付けられた複数の機能拡張ボードの中から、特定の一群の機能拡張ボードを検出する手順と、データ処理の分割、および自ボードと当該自ボードが行うデータ処理の一部を分担可能な機能を有するスレーブボードとしての他ボードとへのデータ処理の割り付けを制御させるためのマスターボードとする一の機能拡張ボードを、前記複数の機能拡張ボードの中から選定する手順と、前記マスターボードとして選定された一の機能拡張ボードが、前記スレーブボードとしての他ボードを前記一群の機能拡張ボードの中から検出できるようにさせるために、前記マスターボードとして選定された一機能拡張ボードに対して前記一群の機能拡張ボードのアドレスリストを書き込む手順と、前記マスターボードとして選定された一の機能拡張ボードに対して、データ処理を命令する手順と、を前記データ処理制御装置に実行させることを特徴とする機能拡張ボードの制御プログラム。
（１７）  前記拡張バスは、ＰＣＩバスであり、
前記機能拡張ボードは、前記ＰＣＩバスに取り付けて使用されるＰＣＩ拡張ボードであること、を特徴とする（１６）に記載の機能拡張ボードの制御プログラム。
（１８）  前記データ処理は、画像処理であり、
前記マスターボードとして選定された一の機能拡張ボードは、前記画像処理の対象の画像データを複数の領域に分割して、自ボードと前記スレーブボードとして選定された他のボードに割り付けることを特徴とする（１６）に記載の機能拡張ボードの制御プログラム。
（１９）  （１３）〜（１５）のいずれか１つに記載のデータ処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
（２０）  （１６）〜（１８）のいずれか１つに記載の機能拡張ボードの制御プログラムを記録したコンピュータ読み取り可能な記録媒体。
【００１０】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
【００１１】
図１は、本発明の実施形態にかかるコンピュータのマザーボード１の構成を示すブロック図である。図１において、マザーボード１は、ＣＰＵ１１、ＲＯＭ１２、ＲＡＭ１３、ホストバス１４、ＰＣＩバス１５およびホスト−ＰＣＩブリッジ１６を有する。また、マザーボード１のＰＣＩバス１５にはＰＣＩ拡張ボード（以下本実施形態において、単に「拡張ボード」という）２が増設されている。なお、ＰＣＩバスに増設される拡張ボードの台数は、図１に示す例に限定されない。
【００１２】
ＣＰＵ１１は、プログラムにしたがってマザーボード１の制御や各種の演算処理等を行い、ＲＯＭ１２は、各種プログラムやパラメータを格納し、ＲＡＭ１３は、作業領域として一時的にプログラムやデータを記憶する。ホストバス１４とＰＣＩバス１５とはホスト−ＰＣＩブリッジ１６を介して相互に接続されている。ホストバス１４はＣＰＵ１１とＲＯＭ１２またはＲＡＭ１３との間でデータをやり取りするための外部バスであり、ＰＣＩバス１５は拡張ボード２をマザーボード１に接続するための拡張バスである。また、ホスト−ＰＣＩブリッジ１６は、ホストバス１４とＰＣＩバス１５を接続し両者間のデータの受け渡しを制御するものであり、ＰＣＩバス１５を制御するＰＣＩバスコントローラ１６１を有している。
【００１３】
図２は、本実施形態にかかる拡張ボード２の構成を示すブロック図である。図２において、拡張ボード２は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ローカルバス２４およびＰＣＩインタフェース２５を有する。ＣＰＵ２１は、プログラムにしたがって拡張ボード２の制御や各種の演算処理等を行い、ＲＯＭ１２は、各種プログラムやパラメータを格納し、ＲＡＭ１３は、作業領域として一時的にプログラムやデータを記憶する。ローカルバス２４は、ＣＰＵ２１とＲＯＭ２２またはＲＡＭ２３との間でデータをやり取りするためのバスである。ＰＣＩインタフェース２５は、ローカルバス２４とＰＣＩバス１２とを接続するためのインタフェースである。
【００１４】
つぎに、本実施形態における拡張ボード２およびそのドライバの動作の概要について説明する。本実施形態では、アプリケーションが、ＲＧＢ画像データをＣＭＹ画像データに変換する色変換処理を拡張ボード２に実行させる場合について説明する。また、本実施形態においては、マザーボード１のＰＣＩバス１５上に、拡張ボード２としてボードＡ〜Ｅが装着されているものとする。図３は、本実施形態における拡張ボードドライバの動作を示すフローチャートである。なお、拡張ボードドライバは、図３のフローチャートにより示されるアルゴリズムからなる拡張ボードの制御プログラムであり、マザーボード１のＲＯＭ１２または図示しないハードディスクに記憶されており、アプリケーションからの命令によりＣＰＵ１１によって実行されるものである。以下、本実施形態におけるＣＰＵ１１による拡張ボードの制御の手順を、ドライバの動作として説明する。
【００１５】
図３において、ドライバは、アプリケーションからデータ処理の開始命令があるまで待機し（Ｓ１０１のＮＯ）、アプリケーションからデータ処理の開始命令があると（Ｓ１０１のＹＥＳ）、ＰＣＩバス１５上の拡張ボードの検出を行う（Ｓ１０２）。そして、ＰＣＩバス１５上に制御対象となる拡張ボードが複数検出された場合には（Ｓ１０３のＹＥＳおよびＳ１０４のＹＥＳ）、検出された制御対象の拡張ボードのアドレスリストを作成しＲＡＭ１３に保存する（Ｓ１０５）。
【００１６】
拡張ボードの検出は、接続された各拡張ボードのＲＯＭ２２に記憶されたコンフィギュレーションレジスタを読み出すことにより行う。図４は、拡張ボード２のコンフィギュレーションレジスタの構造の一例を示す図である。図４において、コンフィギュレーションレジスタ３には、製造元メーカーを示すベンダＩＤ、デバイスの種類を示すデバイスＩＤ、拡張ボードのＰＣＩバス上のアドレスを示すベースアドレス等が記録されている。ドライバは、コンフィギュレーションレジスタ３からベンダＩＤおよびデバイスＩＤを読み出すことにより、拡張ボードが制御対象のものであるか否かを判別することができる。
【００１７】
図５は、ドライバが作成した制御対象拡張ボードのアドレスリストの一例を示す図である。図５において、アドレスリスト４には、検出されたＰＣＩバス１５上の拡張ボードの台数、およびコンフィギュレーションレジスタ３から取得した制御対象の拡張ボードのデバイスＩＤおよびベースアドレスがそれぞれ記録されている。ここでは、ＰＣＩバス１５上に５つの拡張ボード（ボードＡ〜Ｅ）が検出され、そのうちの４つ（ボードＡ〜Ｄ）が制御対象としてリストアップされている。
【００１８】
つぎに、図３において、ドライバは、ステップＳ１０２で検出された制御対象の拡張ボードの中からマスターボードを選定し（Ｓ１０６）、選定したマスターボードのＲＡＭ２３にステップＳ１０４で作成したアドレスリストを書き込む（Ｓ１０７）。
【００１９】
マスターボードの選定方法としては、ステップＳ１０２で制御対象として最初に検出された拡張ボードをマスターボードとする方法、ステップＳ１０２で検出された制御対象の拡張ボードの中で最新のものをマスターボードとする方法（この場合、通常はデバイスＩＤが一番大きいものが最新であるのでデバイスＩＤを比較して判断する）、一番初めにマザーボードに装着されたものをマスターボードとする方法（この場合、ドライバが拡張ボードの装着履歴を記録する構成とする）等を採ることができる。ここでは、ステップＳ１０２で制御対象として検出されたボードＡ〜Ｄの中から、第１の方法により、ボードＡをマスターボードとして選定したものとする。図６は、拡張ボード２のレジスタの一例を示す図である。ドライバはマスターボードを選定すると、マスターボードに選定した拡張ボード（ボードＡ）のレジスタ５に記録されたマスター／スレーブＩＤ（拡張ボードのマスター／スレーブＩＤはデフォルトではスレーブに設定されている）をマスターに設定する。
【００２０】
ついで、図３において、ドライバはマスターボードにアプリケーションから指示されたデータ処理の初期値を設定し（Ｓ１０８）、マスターボードにデータ処理の開始を命令する（Ｓ１０９）。図７は、拡張ボード２のＲＡＭ２３の初期値設定領域の一例を示す図である。ドライバは、マスターボードであるボードＡのＲＡＭ２３の初期値設定領域６に、アプリケーションから指示された色変換処理について、画像データの幅、長さ、入出力先アドレス等の初期値を書き込む。そして、ボードＡのレジスタ５（図６）に記録されたスタートビットを開始に設定する。
【００２１】
図８は、本実施形態における拡張ボード２のデータ処理の動作を示すフローチャートである。図８のフローチャートにより示されるアルゴリズムは、拡張ボード２のＲＯＭ２２にデータ処理プログラムである制御プログラムとして記憶されており、ＣＰＵ２１によって実行される。
【００２２】
図８において、拡張ボード２は、データ処理の開始命令があるまで待機し（Ｓ２０１のＮＯ）、データ処理の開始命令があると（Ｓ２０１のＹＥＳ）、自己がマスターボードに選定されているか否かを判別し、マスターボードに選定されている場合は（Ｓ２０２のＹＥＳ）、ＰＣＩバス１５上でスレーブボードとして自己のデータ処理を分担可能な同種の拡張ボードを検出する（Ｓ２０３）。
【００２３】
すなわち、ボードＡは、レジスタ５（図６）のスタートビットのオンによる開始命令を検知すると、レジスタ５のマスター／スレーブＩＤにより自己がマスターボードに選定されていることを検知し、ドライバによりＲＡＭ２３に書き込まれたアドレスリスト４（図５）のベースアドレスを参照して、ドライバが検出した他の制御対象の拡張ボードにアクセスし、拡張ボードのレジスタ５（図６）に記録されたソフトＩＤを読み出す。ソフトＩＤは各拡張ボードの機能を識別するためのものであり、マスターボードは各拡張ボードのソフトＩＤを知ることにより、自己が行うデータ処理の一部を分担可能な同種の拡張ボードであるか否かを判別することができる。ボードＡは、ドライバが検出したＰＣＩバス上の制御対象の拡張ボードの台数、ベースアドレスおよび取得したソフトＩＤを記録した、図９に示すようなアドレスリスト７を作成し、ＲＡＭ２３に保存する。
【００２４】
そして、図８において、スレーブボードが検出された場合は（Ｓ２０４のＹＥＳ）、ドライバにより設定されたデータ処理の初期値に基づいて、自己が行うデータ処理を分割し自己および検出したスレーブボードに割り付け（Ｓ２０５）、スレーブボードにデータ処理の初期値を設定するともに、自己のデータ処理の初期値を再設定する（Ｓ２０６）。
【００２５】
図１０は、本実施形態の色変換処理にかかる画像データの一例を示す図であり、図１１は、マスターボードによる前記色変換処理の分割および割り付けの一例を示す図である。ここでは、ボードＡは、ステップＳ２０３においてスレーブボードとしてボードＢおよびボードＣを検出したので、自己に割り付けられているＲＧＢ画像データからＣＭＹ画像データへの色変換処理について、ＲＡＭ２３上の初期値設定領域６（図７）に記録されている色変換処理の初期値を参照して、画像を長さ方向に３等分し、最初の３分の１の色変換処理を自己に、次の３分の１の色変換処理をボードＢに、最後の３分の１の色変換処理をボードＣにそれぞれ割り付けている。なお、ここでの画像サイズの単位はピクセル数であり、ピクセルごとにＲＧＢ（変換後はＣＭＹ）の画像データを有するものとする。面順次の画像データの場合は、バッファの位置を合わせる必要があり、また、フィルタ処理のように近傍の画像データが必要な場合は、入出力する領域にオーバーラップが必要である。そして、ボードＢおよびＣのＲＡＭ２３上の初期値設定領域６に色変換処理の初期値を設定するとともに、自己のＲＡＭ２３上の初期値設定領域６に記録されている色変換処理の初期値を再設定する。
【００２６】
ついで、図８において、スレーブボードにデータ処理の開始を命令するとともに（Ｓ２０７）、自己が分担するデータ処理を実行し（Ｓ２０８）、自己のデータ処理の終了後スレーブボードのデータ処理の終了を待って（Ｓ２０９）、処理結果をステータスに設定する（Ｓ２１０）。
【００２７】
すなわち、ボードＡは、ボードＢおよびＣのレジスタ５（図６）のスタートビットをオンにして色変換処理の開始を命令するとともに、ＲＡＭ２３上の初期値設定領域６（図７）に再設定された色変換処理の初期値に基づいて、自己が分担する色変換処理を実行する。そして、自己の色変換処理の終了後ボードＢおよびボードＣのレジスタ５（図６）のステータスを監視し、ボードＢおよびボードＣのステータスが終了になると自己のレジスタ５のステータスを終了に設定する。なお、自己の色変換処理が正常終了しなかった場合、またはボードＢまたはボードＣのステータスがエラーになっている場合は、自己のレジスタ５のステータスをエラーに設定する。
【００２８】
一方、図８のステップＳ２０４において、ＰＣＩバス１５上にスレーブボードが検出されなかった場合は（Ｓ２０４のＮＯ）、拡張ボード２はドライバにより設定されたデータ処理の初期値に基づいて、全てのデータ処理を実行し（Ｓ２１１）、データ処理の終了後結果をステータスに設定する（Ｓ２１０）。
【００２９】
これに対し、拡張ボード２は、ステップＳ２０１においてデータ処理の開始命令を受けた後、ステップＳ２０２において自己がマスターボードに選定されていない場合は（Ｓ２０２のＮＯ）、スレーブボードとして、マスターボードにより設定されたデータ処理の初期値に基づいて、マスターボードから割り付けられたデータ処理を実行し（Ｓ２１２）、データ処理の終了後結果をステータスに設定する（Ｓ２１０）。すなわち、ボードＢおよびボードＣは、レジスタ５（図６）のスタートビットのオンによる開始命令を検知すると、レジスタ５のマスター／スレーブＩＤにより自己がマスターボードに選定されていないことを検知し、ボードＡによりＲＡＭ２３上の初期値設定領域６（図７）に設定された色変換処理の初期値に従って、分担する色変換処理を実行する。そして、色変換処理の終了後自己のレジスタ５（図６）のステータスを終了に設定する。なお、色変換処理が正常終了しなかった場合は、レジスタ５のステータスをエラーに設定する。
【００３０】
図３において、ドライバは、マスターボードのデータ処理が終了するまで待機し（Ｓ１１０のＮＯ）、マスターボードのデータ処理が終了すると（Ｓ１１０のＹＥＳ）、データ処理の結果をアプリケーションに通知し（Ｓ１１１）、処理の全体を終了する。すなわち、ドライバはボードＡのレジスタ５（図６）のステータスを監視し、ボードＡのステータスが終了またはエラーになると、アプリケーションにデータ処理が終了した旨またはエラーがあった旨の結果を通知する。
【００３１】
一方、ステップＳ１０２においてＰＣＩバス１５上に制御対象となる拡張ボードが１つだけ検出された場合には（Ｓ１０３のＹＥＳおよびＳ１０４のＮＯ）、ドライバは、拡張ボードにアプリケーションから指示されたデータ処理の初期値を設定し（Ｓ１１２）、拡張ボードにデータ処理の開始を命令する（Ｓ１１３）。この場合、拡張ボード２は、図８のフローチャートにおいて、上述のスレーブボードの場合と同様に動作し（Ｓ２０１のＹＥＳおよびＳ２０２のＮＯ）、ドライバにより設定されたデータ処理の初期値に基づいて、ドライバから割り付けられたデータ処理を実行し（Ｓ２１２）、データ処理後結果をステータスに設定する（Ｓ２１０）。図３において、ドライバは、拡張ボードのデータ処理が終了するまで待機し（Ｓ１１４のＮＯ）、拡張ボードのデータ処理が終了すると（Ｓ１１４のＹＥＳ）、データ処理の結果をアプリケーションに通知し（Ｓ１１１）、処理の全体を終了する。
【００３２】
また、ドライバは、ステップＳ１０２においてＰＣＩバス１５上に制御対象となる拡張ボードが検出されなかった場合には（Ｓ１０３のＮＯ）、アプリケーションにその旨の結果を通知する（Ｓ１１１）。
【００３３】
上記実施形態では、拡張ボードドライバが制御対象拡張ボードのアドレスリストを作成するものであったが、マスターボードに選定されたＰＣＩ拡張ボードがこれを作成するものであってもよい。この場合、マスターボードは、他の拡張ボードのコンフィギュレーションレジスタを読み込む必要があるため、これを制御するホスト−ＰＣＩブリッジ１６のＰＣＩバスコントローラ１６１にアクセスする必要がある。したがって、ドライバは、マスターボードに選定した拡張ボードのＲＡＭ２３にＰＣＩバスコントローラ１６１のアドレスを書き込む構成とする。
【００３４】
また、上記実施形態では、各ＰＣＩ拡張ボードのデータ処理の分担は、画像データを分割していずれのボードも色変換処理を行うものであったが、例えばドライバから設定されるデータ処理が色変換、回転およびスケーリングであった場合、画像データの全体に対して各ＰＣＩ拡張ボードがそれぞれの処理を分担して行う構成としてもよい。
【００３５】
上記実施形態では、ＰＣＩ拡張ボードはＲＧＢ画像データをＣＭＹ画像データに変換する色変換処理を行うものであったが、ＰＣＩ拡張ボードが行うデータ処理の種類はこれに限定されるものではなく、静止画像および動画像の各種画像処理、各種音声データ処理、各種データのエンコードまたはデコード処理等種々のデータ処理に適用することができる。
【００３６】
また、上記実施形態では、本発明のデータ処理装置をＰＣＩ拡張ボードを例にして説明したが、本発明はこれに限定されるものではなく、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｘｔｅｎｄｅｄ  Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）、ＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）バス等の各種拡張ボードやＩＥＥＥ１３９４（ＩＥＥＥ１３９４−１９９５  ＨｉｇｈＰｅｒｆｏｒｍａｎｃｅ  Ｓｅｒｉａｌ  Ｂｕｓ）やＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）規格等による各種コンピュータ周辺機器の制御に適用することができる。
【００３７】
本発明によるデータ処理装置およびその制御方法は、上記各手順を実行するための専用のハードウエア回路によっても、また、上記各手順を記述した所定のプログラムをＣＰＵが実行することによっても実現することができる。後者により本発明を実現する場合、データ処理装置を動作させる上記所定のプログラムは、フロッピー（登録商標）ディスクやＣＤ−ＲＯＭ等のコンピュータ読取可能な記録媒体によって提供されてもよいし、インターネット等のネットワークを介してオンラインで提供されてもよい。この場合、コンピュータ読取可能な記録媒体に記録されたプログラムは、通常、ＲＯＭやハードディスク等に転送され記憶される。また、このプログラムは、たとえば、単独のアプリケーションソフトとして提供されてもよいし、データ処理装置の一機能としてその装置のソフトウエアに組み込んでもよい。
【００４５】
【発明の効果】
上述したように、本発明によれば、コンピュータ周辺機器等において、１つのドライバだけで複数の同種の機能拡張ボードを同時に制御してデータ処理を複数機器に分担させて実行させることができるので、データ処理の高速化、低負荷化を達成できるうえ、煩雑なドライバのインストール作業を１回で済ませることができ、複数のドライバの追加によるシステムの動作の不安定化等の問題を解消することができる。
【図面の簡単な説明】
【図１】  本発明の実施形態にかかるコンピュータのマザーボード１の構成を示すブロック図である。
【図２】  本実施形態にかかる拡張ボード２の構成を示すブロック図である。
【図３】  本実施形態における拡張ボードドライバの動作を示すフローチャートである。
【図４】  拡張ボード２のコンフィギュレーションレジスタの構造の一例を示す図である。
【図５】  拡張ボードドライバが作成した制御対象拡張ボードのアドレスリストの一例を示す図である。
【図６】  拡張ボード２のレジスタの一例を示す図である。
【図７】  拡張ボード２のＲＡＭ２３の初期値設定領域の一例を示す図である。
【図８】  本実施形態における拡張ボード２の動作を示すフローチャートである。
【図９】  マスターボードが作成したスレーブボード検出のための拡張ボードのアドレスリストの一例を示す図である。
【図１０】  本実施形態の色変換処理にかかる画像データの一例を示す図である。
【図１１】  マスターボードによる色変換処理の分割および割り付けの一例を示す図である。
【符号の説明】
１…マザーボード、
１１，２１…ＣＰＵ、
１２，２２…ＲＯＭ、
１３，２３…ＲＡＭ、
１４…ホストバス、
１５…ＰＣＩバス、
１６…ホスト−ＰＣＩブリッジ、
１６１…ＰＣＩバスコントローラ、
２…拡張ボード、
２４…ローカルバス、
２５…ＰＣＩインタフェース。
【図１】
0004325140.tif 000002
【図２】
0004325140.tif 000003
【図３】
0004325140.tif 000004
【図４】
0004325140.tif 000005
【図５】
0004325140.tif 000006
【図６】
0004325140.tif 000007
【図７】
0004325140.tif 000008
【図８】
0004325140.tif 000009
【図９】
0004325140.tif 000010
【図１０】
0004325140.tif 000011
【図１１】
0004325140.tif 000012