(57)【特許請求の範囲】
【請求項１】
１以上のモジュールがシステムバスを介して相互に接続されて構成される情報処理装置において、
１以上の前記モジュールのそれぞれは、
前記システムバスとは異なるローカルインタフェースに準拠した、所定の機能を実行する機能デバイスと、
前記ローカルインタフェースに準拠したローカルバスを介して前記機能デバイスと接続され、前記システムバスを介して別のモジュールに接続されるインタフェースデバイスと
を備え、
前記ローカルバスは、前記機能デバイスのCPU（Central Processing Unit）と接続されることを前提に設計されたバスであってメッセージが伝送されるメッセージバスと、前記機能デバイスのハードウエアと接続されることを前提に設計されたバスであってデータが伝送されるデータバスとを含み、
前記インタフェースデバイスは、
前記メッセージバスと接続され、前記ローカルインタフェースに準拠した第１の形態の前記メッセージが、前記メッセージバスを介して前記機能デバイスのCPUから提供された場合には、前記第１の形態の前記メッセージを保持するメッセージ保持手段と、
前記データバスと接続され、前記第１の形態の前記データが、前記データバスを介して前記機能デバイスのハードウエアから提供された場合には、前記第１の形態の前記データを保持するデータ保持手段と、
前記システムバスと接続され、保持された前記第１の形態の前記メッセージまたは前記データの形態を、前記第１の形態から、前記システムバスのインタフェースに準拠した第２の形態に変換して、前記システムバスを介して、前記メッセージを前記機能デバイスのCPUと前記別のモジュールとの間でやり取りさせることで特定された前記別のモジュールに、前記機能デバイスのハードウエアからの前記第１の形態の前記データを変換して得られる前記第２の形態の前記データを提供する変換手段と
を有しており、
前記変換手段は、前記第２の形態の前記メッセージまたは前記データが、前記システムバスを介して前記別のモジュールから提供された場合には、その前記メッセージまたは前記データの形態を、前記第２の形態から前記第１の形態に変換して、前記メッセージ保持手段または前記データ保持手段に提供し、
前記メッセージ保持手段は、前記変換手段から前記第１の形態の前記メッセージが提供された場合には、前記第１の形態の前記メッセージを、前記メッセージバスを介して前記機能デバイスのCPUに提供し、
前記データ保持手段は、前記変換手段から、前記メッセージを前記機能デバイスのCPUと前記別のモジュールとの間でやり取りさせることで特定された前記別のモジュールからの前記第２の形態の前記データを変換して得られる前記第１の形態の前記データが提供された場合には、前記第１の形態の前記データを、前記データバスを介して前記機能デバイスのハードウエアに提供する
情報処理装置。
【請求項２】
１以上のモジュールがシステムバスを介して相互に接続されて構成される情報処理装置の情報処理方法において、
１以上の前記モジュールのそれぞれは、
前記システムバスとは異なるローカルインタフェースに準拠した、所定の機能を実行する機能デバイスと、
前記ローカルインタフェースに準拠したローカルバスを介して前記機能デバイスと接続され、前記システムバスを介して別のモジュールに接続されるインタフェースデバイスと
を備え、
前記ローカルバスは、前記機能デバイスのCPU（Central Processing Unit）と接続されることを前提に設計されたバスであってメッセージが伝送されるメッセージバスと、前記機能デバイスのハードウエアと接続されることを前提に設計されたバスであってデータが伝送されるデータバスとを含み、
前記インタフェースデバイスは、
前記ローカルインタフェースに準拠した第１の形態の前記メッセージが、前記メッセージバスを介して前記機能デバイスのCPUから提供された場合には、前記第１の形態の前記メッセージを保持し、
前記第１の形態の前記データが、前記データバスを介して前記機能デバイスのハードウエアから提供された場合には、前記第１の形態の前記データを保持し、
保持された前記第１の形態の前記メッセージまたは前記データの形態を、前記第１の形態から、前記システムバスのインタフェースに準拠した第２の形態に変換して、前記システムバスを介して、前記メッセージを前記機能デバイスのCPUと前記別のモジュールとの間でやり取りさせることで特定された前記別のモジュールに、前記機能デバイスのハードウエアからの前記第１の形態の前記データを変換して得られる前記第２の形態の前記データを提供し、
前記第２の形態の前記メッセージまたは前記データが、前記システムバスを介して前記別のモジュールから提供された場合には、その前記メッセージまたは前記データの形態を、前記第２の形態から前記第１の形態に変換して提供し、
前記第１の形態の前記メッセージが提供された場合には、前記第１の形態の前記メッセージを、前記メッセージバスを介して前記機能デバイスのCPUに提供し、
前記メッセージを前記機能デバイスのCPUと前記別のモジュールとの間でやり取りさせることで特定された前記別のモジュールからの前記第２の形態の前記データを変換して得られる前記第１の形態の前記データが提供された場合には、前記第１の形態の前記データを、前記データバスを介して前記機能デバイスのハードウエアに提供する
ステップを含む情報処理方法。
【請求項３】
システムバスとは異なるローカルインタフェースに準拠した、所定の機能を実行する機能デバイスと、前記機能デバイスのCPU（Central Processing Unit）と接続されることを前提に設計されたバスであって前記ローカルインタフェースに準拠したメッセージが伝送されるメッセージバスと前記機能デバイスのハードウエアと接続されることを前提に設計されたバスであってデータが伝送されるデータバスとを含むローカルバスを介して前記機能デバイスと接続され、前記システムバスを介して別のモジュールに接続されるインタフェースデバイスとを有する１以上のモジュールが、前記システムバスを介して相互に接続されて構成される情報処理装置のうちの、１以上の前記モジュールのそれぞれの前記インタフェースデバイスを制御するコンピュータに実行させるプログラムであって、
前記ローカルインタフェースに準拠した第１の形態の前記メッセージが、前記メッセージバスを介して前記機能デバイスのCPUから提供された場合には、前記第１の形態の前記メッセージを保持し、
前記第１の形態の前記データが、前記データバスを介して前記機能デバイスのハードウエアから提供された場合には、前記第１の形態の前記データを保持し、
保持された前記第１の形態の前記メッセージまたは前記データの形態を、前記第１の形態から、前記システムバスのインタフェースに準拠した第２の形態に変換して、前記システムバスを介して、前記メッセージを前記機能デバイスのCPUと前記別のモジュールとの間でやり取りさせることで特定された前記別のモジュールに、前記機能デバイスのハードウエアからの前記第１の形態の前記データを変換して得られる前記第２の形態の前記データを提供し、
前記第２の形態の前記メッセージまたは前記データが、前記システムバスを介して前記別のモジュールから提供された場合には、その前記メッセージまたは前記データの形態を、前記第２の形態から前記第１の形態に変換して提供し、
前記第１の形態の前記メッセージが提供された場合には、前記第１の形態の前記メッセージを、前記メッセージバスを介して前記機能デバイスのCPUに提供し、
前記メッセージを前記機能デバイスのCPUと前記別のモジュールとの間でやり取りさせることで特定された前記別のモジュールからの前記第２の形態の前記データを変換して得られる前記第１の形態の前記データが提供された場合には、前記第１の形態の前記データを、前記データバスを介して前記機能デバイスのハードウエアに提供する
ステップを含むプログラム。
【請求項４】
システムバスと、前記システムバスとは異なるローカルインタフェースに準拠した、所定の機能を実行する機能デバイスのCPU（Central Processing Unit）と接続されることを前提に設計されたバスであってメッセージが伝送されるメッセージバスと前記機能デバイスのハードウエアと接続されることを前提に設計されたバスであってデータが伝送されるデータバスとを含むローカルバスとに接続される情報処理装置であって、
前記メッセージバスと接続され、前記ローカルインタフェースに準拠した第１の形態の前記メッセージが、前記メッセージバスを介して前記機能デバイスのCPUから提供された場合には、前記第１の形態の前記メッセージを保持するメッセージ保持手段と、
前記データバスと接続され、前記第１の形態の前記データが、前記データバスを介して前記機能デバイスのハードウエアから提供された場合には、前記第１の形態の前記データを保持するデータ保持手段と、
前記システムバスと接続され、保持された前記第１の形態の前記メッセージまたは前記データの形態を、前記第１の形態から、前記システムバスのインタフェースに準拠した第２の形態に変換して、前記システムバスを介して、前記メッセージを前記機能デバイスのCPUと前記別のモジュールとの間でやり取りさせることで特定された前記別のモジュールに、前記機能デバイスのハードウエアからの前記第１の形態の前記データを変換して得られる前記第２の形態の前記データを提供する変換手段と
を備え、
前記変換手段は、前記第２の形態の前記メッセージまたは前記データが、前記システムバスを介して前記別のモジュールから提供された場合には、その前記メッセージまたは前記データの形態を、前記第２の形態から前記第１の形態に変換して、前記メッセージ保持手段または前記データ保持手段に提供し、
前記メッセージ保持手段は、前記変換手段から前記第１の形態の前記メッセージが提供された場合には、前記第１の形態の前記メッセージを、前記メッセージバスを介して前記機能デバイスのCPUに提供し、
前記データ保持手段は、前記変換手段から、前記メッセージを前記機能デバイスのCPUと前記別のモジュールとの間でやり取りさせることで特定された前記別のモジュールからの前記第２の形態の前記データを変換して得られる前記第１の形態の前記データが提供された場合には、前記第１の形態の前記データを、前記データバスを介して前記機能デバイスのハードウエアに提供する
情報処理装置。
【請求項５】
前記システムバスは、PCI（Peripheral Component Interconnect）Expressであり、
前記第２の形態は、TLP（Transaction Layer Packet）である
請求項４に記載の情報処理装置。
【請求項６】
システムバスと、前記システムバスとは異なるローカルインタフェースに準拠した、所定の機能を実行する機能デバイスのCPU（Central Processing Unit）と接続されることを前提に設計されたバスであってメッセージが伝送されるメッセージバスと前記機能デバイスのハードウエアと接続されることを前提に設計されたバスであってデータが伝送されるデータバスとを含むローカルバスとに接続される情報処理装置の情報処理方法であって、
前記ローカルインタフェースに準拠した第１の形態の前記メッセージが、前記メッセージバスを介して前記機能デバイスのCPUから提供された場合には、前記第１の形態の前記メッセージを保持し、
前記第１の形態の前記データが、前記データバスを介して前記機能デバイスのハードウエアから提供された場合には、前記第１の形態の前記データを保持し、
保持された前記第１の形態の前記メッセージまたは前記データの形態を、前記第１の形態から、前記システムバスのインタフェースに準拠した第２の形態に変換して、前記システムバスを介して、前記メッセージを前記機能デバイスのCPUと前記別のモジュールとの間でやり取りさせることで特定された前記別のモジュールに、前記機能デバイスのハードウエアからの前記第１の形態の前記データを変換して得られる前記第２の形態の前記データを提供し、
前記第２の形態の前記メッセージまたは前記データが、前記システムバスを介して前記別のモジュールから提供された場合には、その前記メッセージまたは前記データの形態を、前記第２の形態から前記第１の形態に変換して提供し、
前記第１の形態の前記メッセージが提供された場合には、前記第１の形態の前記メッセージを、前記メッセージバスを介して前記機能デバイスのCPUに提供し、
前記メッセージを前記機能デバイスのCPUと前記別のモジュールとの間でやり取りさせることで特定された前記別のモジュールからの前記第２の形態の前記データを変換して得られる前記第１の形態の前記データが提供された場合には、前記第１の形態の前記データを、前記データバスを介して前記機能デバイスのハードウエアに提供する
ステップを含む情報処理方法。
【請求項７】
システムバスと、前記システムバスとは異なるローカルインタフェースに準拠した、所定の機能を実行する機能デバイスのCPU（Central Processing Unit）と接続されることを前提に設計されたバスであってメッセージが伝送されるメッセージバスと前記機能デバイスのハードウエアと接続されることを前提に設計されたバスであってデータが伝送されるデータバスとを含むローカルバスとの間での情報伝送を制御するコンピュータに実行させるプログラムであって、
前記ローカルインタフェースに準拠した第１の形態の前記メッセージが、前記メッセージバスを介して前記機能デバイスのCPUから提供された場合には、前記第１の形態の前記メッセージを保持し、
前記第１の形態の前記データが、前記データバスを介して前記機能デバイスのハードウエアから提供された場合には、前記第１の形態の前記データを保持し、
保持された前記第１の形態の前記メッセージまたは前記データの形態を、前記第１の形態から、前記システムバスのインタフェースに準拠した第２の形態に変換して、前記システムバスを介して、前記メッセージを前記機能デバイスのCPUと前記別のモジュールとの間でやり取りさせることで特定された前記別のモジュールに、前記機能デバイスのハードウエアからの前記第１の形態の前記データを変換して得られる前記第２の形態の前記データを提供し、
前記第２の形態の前記メッセージまたは前記データが、前記システムバスを介して前記別のモジュールから提供された場合には、その前記メッセージまたは前記データの形態を、前記第２の形態から前記第１の形態に変換して提供し、
前記第１の形態の前記メッセージが提供された場合には、前記第１の形態の前記メッセージを、前記メッセージバスを介して前記機能デバイスのCPUに提供し、
前記メッセージを前記機能デバイスのCPUと前記別のモジュールとの間でやり取りさせることで特定された前記別のモジュールからの前記第２の形態の前記データを変換して得られる前記第１の形態の前記データが提供された場合には、前記第１の形態の前記データを、前記データバスを介して前記機能デバイスのハードウエアに提供する
ステップを含むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および方法、並びにプログラムに関し、特に、モジュールにおける汎用バスの依存度合いを低減させることを可能にする情報処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
近年、PCI（Peripheral Component Interconnect）（商標）、PCI Express(商標)等、様々な汎用バスが提案され、それらのバスインターフェースに準拠して設計されたモジュールも各種容易に手に入るようになっている。そのため、これらの汎用バスをバックボーンにして、サードパーティから購入したモジュールと、独自開発したモジュールとを組み合わせるという手法によって構成される情報処理装置（例えば特許文献１）が商品化される例も非常に増えてきた。
【０００３】
このような手法で商品を設計した場合、設計者等は、新規モジュールの開発にリソースを集中できるため、効率よく商品化が行えるという利点がある。
【特許文献１】特開2003-274326号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、この場合、独自開発モジュールインターフェースも汎用バスに準拠することになるが、汎用バスは技術変遷が激しく、そのトレンドが短期間に変化するという問題がある。また、サードパーティモジュールは汎用バスのトレンドに合わせて開発されるため、独自開発モジュールも、そのトレンドに合わせていちいちインタフェース部分を作り直さなければならないという問題がある。
【０００５】
即ち、従来のモジュールは、汎用バスの依存度合いが強いため、汎用バスのトレンドが変化した場合に改造や新規設計をしなければならない部分が非常に多くなっているという問題がある。
【０００６】
本発明は、このような状況に鑑みてなされたものであり、モジュールにおける汎用バスの依存度合いを低減させることを可能にするものである。
【課題を解決するための手段】
【０００７】
本発明の一側面の第１の情報処理装置は、１以上のモジュールがシステムバスを介して相互に接続されて構成される情報処理装置において、１以上の前記モジュールのそれぞれは、前記システムバスとは異なるローカルインタフェースに準拠した、所定の機能を実行する機能デバイスと、前記ローカルインタフェースに準拠したローカルバスを介して前記機能デバイスと接続され、前記システムバスを介して別のモジュールに接続されるインタフェースデバイスとを備え、前記ローカルバスは、前記機能デバイスのCPU（Central Processing Unit）と接続されることを前提に設計されたバスであってメッセージが伝送されるメッセージバスと、前記機能デバイスのハードウエアと接続されることを前提に設計されたバスであってデータが伝送されるデータバスとを含み、前記インタフェースデバイスは、前記メッセージバスと接続され、前記ローカルインタフェースに準拠した第１の形態の前記メッセージが、前記メッセージバスを介して前記機能デバイスのCPUから提供された場合には、前記第１の形態の前記メッセージを保持するメッセージ保持手段と、前記データバスと接続され、前記第１の形態の前記データが、前記データバスを介して前記機能デバイスのハードウエアから提供された場合には、前記第１の形態の前記データを保持するデータ保持手段と、前記システムバスと接続され、保持された前記第１の形態の前記メッセージまたは前記データの形態を、前記第１の形態から、前記システムバスのインタフェースに準拠した第２の形態に変換して、前記システムバスを介して、前記メッセージを前記機能デバイスのCPUと前記別のモジュールとの間でやり取りさせることで特定された前記別のモジュールに、前記機能デバイスのハードウエアからの前記第１の形態の前記データを変換して得られる前記第２の形態の前記データを提供する変換手段とを有しており、前記変換手段は、前記第２の形態の前記メッセージまたは前記データが、前記システムバスを介して前記別のモジュールから提供された場合には、その前記メッセージまたは前記データの形態を、前記第２の形態から前記第１の形態に変換して、前記メッセージ保持手段または前記データ保持手段に提供し、前記メッセージ保持手段は、前記変換手段から前記第１の形態の前記メッセージが提供された場合には、前記第１の形態の前記メッセージを、前記メッセージバスを介して前記機能デバイスのCPUに提供し、前記データ保持手段は、前記変換手段から、前記メッセージを前記機能デバイスのCPUと前記別のモジュールとの間でやり取りさせることで特定された前記別のモジュールからの前記第２の形態の前記データを変換して得られる前記第１の形態の前記データが提供された場合には、前記第１の形態の前記データを、前記データバスを介して前記機能デバイスのハードウエアに提供する。
【０００８】
本発明の一側面の第１の情報処理方法と第１のプログラムとのそれぞれは、上述した本発明の一側面の第１の情報処理装置に対応する情報処理方法と情報処理装置とのそれぞれである。
【０００９】
本発明の一側面の第１の情報処理装置および方法並びにプログラムにおいては、１以上のモジュールがシステムバスを介して相互に接続されて構成される情報処理装置が対象となる。詳細には、１以上の前記モジュールのそれぞれは、前記システムバスとは異なるローカルインタフェースに準拠した、所定の機能を実行する機能デバイスと、前記機能デバイスのCPU（Central Processing Unit）と接続されることを前提に設計されたバスであって前記ローカルインタフェースに準拠したメッセージが伝送されるメッセージバスと前記機能デバイスのハードウエアと接続されることを前提に設計されたバスであってデータが伝送されるデータバスとを含むローカルバスを介して前記機能デバイスと接続され、前記システムバスを介して別のモジュールに接続されるインタフェースデバイスとを備えるが、かかるインタフェースデバイスが対象となる。即ち、前記インタフェースデバイスにおいて、前記ローカルインタフェースに準拠した第１の形態の前記メッセージが、前記メッセージバスを介して前記機能デバイスのCPUから提供された場合には、前記第１の形態の前記メッセージが保持され、前記第１の形態の前記データが、前記データバスを介して前記機能デバイスのハードウエアから提供された場合には、前記第１の形態の前記データが保持され、保持された前記第１の形態の前記メッセージまたは前記データの形態が、前記第１の形態から、前記システムバスのインタフェースに準拠した第２の形態に変換され、前記システムバスを介して、前記メッセージが、前記機能デバイスのCPUと前記別のモジュールとの間でやり取りさせることで特定された前記別のモジュールに、前記機能デバイスのハードウエアからの前記第１の形態の前記データを変換して得られる前記第２の形態の前記データが提供され、前記第２の形態の前記メッセージまたは前記データが、前記システムバスを介して前記別のモジュールから提供された場合には、その前記メッセージまたは前記データの形態が、前記第２の形態から前記第１の形態に変換されて提供され、前記第１の形態の前記メッセージが提供された場合には、前記第１の形態の前記メッセージが、前記メッセージバスを介して前記機能デバイスのCPUに提供され、前記メッセージを前記機能デバイスのCPUと前記別のモジュールとの間でやり取りさせることで特定された前記別のモジュールからの前記第２の形態の前記データを変換して得られる前記第１の形態の前記データが提供された場合には、前記第１の形態の前記データが、前記データバスを介して前記機能デバイスのハードウエアに提供される。
【００１０】
本発明の一側面の第２の情報処理装置は、システムバスと、前記システムバスとは異なるローカルインタフェースに準拠した、所定の機能を実行する機能デバイスのCPU（Central Processing Unit）と接続されることを前提に設計されたバスであってメッセージが伝送されるメッセージバスと前記機能デバイスのハードウエアと接続されることを前提に設計されたバスであってデータが伝送されるデータバスとを含むローカルバスとに接続される情報処理装置であって、前記メッセージバスと接続され、前記ローカルインタフェースに準拠した第１の形態の前記メッセージが、前記メッセージバスを介して前記機能デバイスのCPUから提供された場合には、前記第１の形態の前記メッセージを保持するメッセージ保持手段と、前記データバスと接続され、前記第１の形態の前記データが、前記データバスを介して前記機能デバイスのハードウエアから提供された場合には、前記第１の形態の前記データを保持するデータ保持手段と、前記システムバスと接続され、保持された前記第１の形態の前記メッセージまたは前記データの形態を、前記第１の形態から、前記システムバスのインタフェースに準拠した第２の形態に変換して、前記システムバスを介して、前記メッセージを前記機能デバイスのCPUと前記別のモジュールとの間でやり取りさせることで特定された前記別のモジュールに、前記機能デバイスのハードウエアからの前記第１の形態の前記データを変換して得られる前記第２の形態の前記データを提供する変換手段とを備え、前記変換手段は、前記第２の形態の前記メッセージまたは前記データが、前記システムバスを介して前記別のモジュールから提供された場合には、その前記メッセージまたは前記データの形態を、前記第２の形態から前記第１の形態に変換して、前記メッセージ保持手段または前記データ保持手段に提供し、前記メッセージ保持手段は、前記変換手段から前記第１の形態の前記メッセージが提供された場合には、前記第１の形態の前記メッセージを、前記メッセージバスを介して前記機能デバイスのCPUに提供し、前記データ保持手段は、前記変換手段から、前記メッセージを前記機能デバイスのCPUと前記別のモジュールとの間でやり取りさせることで特定された前記別のモジュールからの前記第２の形態の前記データを変換して得られる前記第１の形態の前記データが提供された場合には、前記第１の形態の前記データを、前記データバスを介して前記機能デバイスのハードウエアに提供する。
【００１３】
前記システムバスは、PCI（Peripheral Component Interconnect）Expressであり、前記第２の形態は、TLP（Transaction Layer Packet）である。
【００１４】
本発明の一側面の第２の情報処理方法と第２のプログラムとのそれぞれは、上述した本発明の一側面の第２の情報処理装置に対応する情報処理方法と情報処理装置とのそれぞれである。
【００１５】
本発明の一側面の第２の情報処理装置および方法並びにプログラムにおいては、システムバスと、前記システムバスとは異なるローカルインタフェースに準拠した、所定の機能を実行する機能デバイスのCPU（Central Processing Unit）と接続されることを前提に設計されたバスであってメッセージが伝送されるメッセージバスと前記機能デバイスのハードウエアと接続されることを前提に設計されたバスであってデータが伝送されるデータバスとを含むローカルバスとの間での情報伝送が次のようにしてなされる。即ち、前記ローカルインタフェースに準拠した第１の形態の前記メッセージが、前記メッセージバスを介して前記機能デバイスのCPUから提供された場合には、前記第１の形態の前記メッセージが保持され、前記第１の形態の前記データが、前記データバスを介して前記機能デバイスのハードウエアから提供された場合には、前記第１の形態の前記データが保持され、保持された前記第１の形態の前記メッセージまたは前記データの形態が、前記第１の形態から、前記システムバスのインタフェースに準拠した第２の形態に変換され、前記システムバスを介して、前記メッセージを前記機能デバイスのCPUと前記別のモジュールとの間でやり取りさせることで特定された前記別のモジュールに、前記機能デバイスのハードウエアからの前記第１の形態の前記データを変換して得られる前記第２の形態の前記データが提供され、前記第２の形態の前記メッセージまたは前記データが、前記システムバスを介して前記別のモジュールから提供された場合には、その前記メッセージまたは前記データの形態が、前記第２の形態から前記第１の形態に変換されて提供され、前記第１の形態の前記メッセージが提供された場合には、前記第１の形態の前記メッセージが、前記メッセージバスを介して前記機能デバイスのCPUに提供され、前記メッセージを前記機能デバイスのCPUと前記別のモジュールとの間でやり取りさせることで特定された前記別のモジュールからの前記第２の形態の前記データを変換して得られる前記第１の形態の前記データが提供された場合には、前記第１の形態の前記データが、前記データバスを介して前記機能デバイスのハードウエアに提供される。
【発明の効果】
【００１６】
以上のごとく、本発明によれば、１以上のモジュールをシステムバスを介して相互に接続する、といった手法が可能になる。特に、かかる手法において、モジュールにおけるシステムバスの依存度合いを低減させることが可能になる。
【発明を実施するための最良の形態】
【００２５】
以下、図面を参照して、本発明の実施の形態について説明する。
【００２６】
図１は、本発明を適用した情報処理装置の構成例を示している。
【００２７】
図１の例では、コントローラ１１、および、モジュール１２−１乃至１２−３といった４つのモジュールが汎用システムバス４１を介して相互に接続されることで、情報処理装置１が構成されている。
【００２８】
ここに、モジュールとは、製品（本実施の形態では、情報処理装置１）の基本構造を設計する上での要素技術の単位をいう。この場合、何れの技術レベルまでを要素技術とするのかについては、設計者等の任意の判断でよい。即ち、設計者等は、製品の基本構造を設計する上で、その製品に搭載すべき各機能を独自に決定し、その各機能を１以上の要素技術に独自の判断で分類すればよい。そして、設計者等は、所定の要素技術に対応するモジュールについては、その要素技術に分類された機能を少なくとも有するように、設計製作等すればよい。
【００２９】
例えば図１の例では、各モジュールは次のように構成（設計製作）されている。
【００３０】
即ち、モジュール１２−１は、ネットワークデバイスモジュール（Network device Module：以下、NETMと記述する）として構成されている。ネットワークモジュールとは、ネットワーク機能を担当するモジュール、即ち、本実施の形態ではLAN-SW２（図３）を介して別の情報処理装置（図示せず）と通信を行うための各種機能を有するモジュールをいう。
【００３１】
モジュール１２−２は、AVデバイスモジュール（Audio and Visual device Module：以下、AVMと記述する）として構成されている。AVMとは、AVの記録や再生を担当するモジュール、即ち、AV信号に対するエンコード処理や、エンコード済みのAV信号に対するデコード処理といったAV信号に対する各種処理を実行する機能を有するモジュールをいう。
【００３２】
モジュール１２−３は、ストレージデバイスモジュール（Storage Device Module：以下、SDMと記述する）として構成されている。SDMとは、HDD（Hard Disk Drive）, Optical Disk, Tape等のストレージデバイスの制御を担当するモジュール、即ち、ストレージデバイスに対するデータの読み書き等の機能を有するモジュールをいう。
【００３３】
また、コントローラ１１も、この情報処理装置１全体の動作を制御する機能を担当するモジュールの一形態である。
【００３４】
なお、図１の例では、４つのモジュールから情報処理装置１が構成されているが、当然ながら、情報処理装置１に搭載されるモジュールの個数は図１の例に限定されず任意でよい。
【００３５】
汎用システムバス４１は、例えば本実施の形態ではPCI Expressとして構成される。勿論、PCI等の別の汎用バスを、汎用システムバス４１として採用することもできる。ただし、この場合、後述するように、各モジュールには、その別の汎用バスに対応したインタフェースデバイスが設けられることになる。
【００３６】
以下、これらの４つのモジュール、即ち、コントローラ１１、NETM１２−１、AVM１２−２、および、SDM１２−３の詳細について説明していく。
【００３７】
コントローラ１１は、機能デバイス５１−１１とインタフェースデバイス５２−１１とが、メッセージバス４２−１１とデータバス４３−１１とを介して相互に接続されて構成されている。
【００３８】
モジュール１２−１乃至１２−３のそれぞれも、基本的にコントローラ１１と同様の構成となっている。即ち、モジュール１２−１は、機能デバイス５１−２１とインタフェースデバイス５２−２１とが、メッセージバス４２−２１とデータバス４３−２１とを介して相互に接続されて構成されている。モジュール１２−２は、機能デバイス５１−２２とインタフェースデバイス５２−２２とが、メッセージバス４２−２２とデータバス４３−２２とを介して相互に接続されて構成されている。モジュール１２−３は、機能デバイス５１−２３とインタフェースデバイス５２−２３とが、メッセージバス４２−２３とデータバス４３−２３とを介して相互に接続されて構成されている。
【００３９】
なお、以下、機能デバイス５１−１１，５１−２１，５１−２２，５１−２３を個々に区別する必要がない場合、それらをまとめて機能デバイス５１と称する。同様に、インタフェースデバイス５２−１１，５２−２１，５２−２２，５２−２３を個々に区別する必要がない場合、それらをまとめてインタフェースデバイス５２と称する。また、この呼称にあわせて、メッセージバス４２−１１，４２−２１，４２−２２，４２−２３をまとめて、メッセージバス４２と称する。同様に、データバス４３−１１，４３−２１，４３−２２，４３−２３をまとめて、データバス４３と称する。
【００４０】
即ち、本実施の形態では、機能デバイス５１とインタフェースデバイス５２とが、メッセージバス４２とデータバス４３とを介して相互に接続されることで、１つのモジュールが構成される。
【００４１】
この場合、機能デバイス５１とインタフェースデバイス５２とのインタフェースは何れも、メッセージバス４２とデータバス４３とを有するローカルインタフェースが採用されている。換言すると、メッセージバス４２とデータバス４３とは、かかるローカルインタフェースに準拠したローカルバスである。
【００４２】
このため、機能デバイス５１は何れも、かかるローカルインタフェースに準拠しておれば足り、PCI Expressを意識することなく構成することができる。
【００４３】
ここに、メッセージバス４２とは、例えば、32bit SRAM/SSRAM compatible(Target)として構成され、CPUと接続されることを前提に設計されたバスである。従って、本実施の形態では、各機能デバイス５１の各CPU間でやり取りされるメッセージ（後述する図５参照）が、メッセージバス４２により伝送される。
【００４４】
一方、データバス４３とは、例えば、64bit DMA(Master/Target)として構成され、ハードウエアと接続されることを前提に設計されたバスである。従って、本実施の形態では、各機能デバイス５１の各CPU間でやり取りされるメッセージにより諸設定が行われると、各機能デバイス５１の各ハードウエア間で授受されるデータ（例えばAVデータ等）が、データバス４３により伝送される。
【００４５】
換言すると、メッセージバス４２は、あたかも各機能デバイスの各CPUをDPRAMで接続しているように動作し、データバス４３は、あたかも各機能デバイスの各ハードウエアをDMAによる直結を行っているように動作する。
【００４６】
このようなローカルインタフェースに準拠した機能デバイス５１は、例えば次のように構成することができる。
【００４７】
例えば、コントローラ１１の機能デバイス５１−１１は、図２のように構成することができる。
【００４８】
図２の例の機能デバイス５１−１１において、CPU（Central Processing Unit）７１は、ROM（Read Only Memory）７２に記録されているプログラム、または記憶部７８からRAM（Random Access Memory）７３にロードされたプログラムに従って各種の処理を実行する。RAM７３にはまた、CPU７１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【００４９】
CPU７１、ROM７２、およびRAM７３は、バス７４を介して相互に接続されている。このバス７４にはまた、入出力インタフェース７５も接続されている。
【００５０】
入出力インタフェース７５には、キーボード、マウスなどよりなる入力部７６、ディスプレイなどよりなる出力部７７、および、ハードディスクなどより構成される記憶部７８が接続されている。
【００５１】
入出力インタフェース７５にはまた、メッセージバス４２−１１とデータバス４３−１１とを介してインタフェースデバイス５２−１１が接続されている。即ち、入出力インタフェース７５は、上述したローカルインタフェースに準拠している。
【００５２】
なお、インタフェースデバイス５２−１１の詳細については、図４を参照して後述する。
【００５３】
また例えば、本実施の形態では、モジュール１２−１はNETMとして構成されているので、機能デバイス５１−２１は、図３のように構成することができる。
【００５４】
図３の例の機能デバイス５１−２１は、汎用システムバス４１からインタフェースデバイス５２−２１を介して供給される情報（データやメッセージ）を、ＬＡＮ−ＳＷ２を介して、それに接続されている別の情報処理装置（図示せず）に送信したり、別の情報処理装置から送信されてくる情報を受信し、インタフェースデバイス５２−２１を介して汎用システムバス４１に供給したりする。また、機能デバイス５１−２１は、例えば、TCP/IP（Transmission Control Protocol/Internet Protocol）などのプロトコルスタックの処理（プロトコルスタックに関する所定の処理）を行う。
【００５５】
かかる機能デバイス５１−２１は、CPU８１、ROM８２、RAM８３、記録部８５、および送受信処理部８６を含むようにして構成される。CPU８１、ROM８２、RAM８３、記録部８５、および送受信処理部８６のそれぞれは、バス８４を介して相互に接続されている。
【００５６】
CPU８１は、ROM８２に記憶されているプログラム、または記録部８５からRAM８３にロードされたプログラムにしたがって各種の処理を実行する。RAM８３にはまた、CPU８１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【００５７】
送受信処理部８６は、CPU８１の制御の基に、例えば、LAN-SW２を介して、図示せぬ別の情報処理装置に情報を送信したり、図示せぬ別の情報処理装置から送信されてくる情報を受信したりするための所定の処理を行う。
【００５８】
バス８４にはまた、メッセージバス４２−２１とデータバス４３−２１とを介してインタフェースデバイス５２−２１が接続されている。即ち、バス８４は、上述したローカルインタフェースに準拠している。
【００５９】
このように、機能デバイス５１−２１は、インタフェースデバイス５２−２１と通信を行うためのローカルインタフェースに準拠し、かつ、モジュール１２−１をNETMとして機能させるために必要なハードウエア構成を有している。
【００６０】
同様に、図１のモジュール１２−２の機能デバイス５１−２２も、図示はしないが、インタフェースデバイス５２−２２と通信を行うためのローカルインタフェースに準拠し、かつ、モジュール１２−２をAVMとして機能させるために必要なハードウエア構成を有している。また、モジュール１２−３の機能デバイス５１−２３も、図示はしないが、インタフェースデバイス５２−２３と通信を行うためのローカルインタフェースに準拠し、かつ、モジュール１２−３をSDMとして機能させるために必要なハードウエア構成を有している。
【００６１】
このように、何れのモジュールにおいても、機能デバイス５１は、ローカルインタフェース（メッセージバス４２とデータバス４３とを有するローカルインタフェース）に準拠して設計されている。従って、汎用システムバス４１がPCI Express以外の他の方式に変更されても、各モジュールが共通に使用しているインタフェースデバイス５２のみを変更すれば足りる。即ち、各機能デバイス５１は一切変更する必要はない。
【００６２】
図４は、汎用システムバス４１がPCI Expressである場合のインタフェースデバイス５２の構成例を示している。
【００６３】
図４の例では、インタフェースデバイス５２は、PCI Express変換部９１とスタック吸収部９２とから構成されている。
【００６４】
PCI Express変換部９１には、汎用システムバス４１としてのPCI Expressと、スタック吸収部９２とが接続されている。即ち、所定のモジュールのPCI Express変換部９１は、PCI Express（汎用システムバス４１）を介して、別のモジュールのPCI Express変換部９１と接続されている。
【００６５】
スタック吸収部９２は、メッセージバスターゲット部１０１とデータバスDMA部１０２とから構成されている。
【００６６】
メッセージバスターゲット部１０１には、上述したPCI Express変換部９１が接続される他、メッセージバス４２と割り込み線４４とを介して、自身のモジュールの機能デバイス５１（そのうちのCPU）が接続される。なお、割り込み線４４については後述する。
【００６７】
一方、データバスDMA部１０２には、上述したPCI Express変換部９１が接続される他、データバス４３を介して、自身のモジュールの機能デバイス５１（そのうちのハードウエア）が接続される。
【００６８】
かかる構成例のインタフェースデバイス５２の動作例について説明する。
【００６９】
例えば、自身のモジュールの機能デバイス５１からのメッセージは、メッセージバス４２に準拠した形態として、メッセージバス４２を介してメッセージバスターゲット部１０１に書き込まれる。
【００７０】
例えば、メッセージバス４２に準拠した形態のメッセージとしては、図５の構造を有する形態とすることができる。
【００７１】
図５の例では、メッセージは、先頭の１６バイトのヘッダ領域（図中Fixed Size(16byte)と記述されている右方の領域）と、可変サイズのデータが記述されるデータ領域（図中Variable Sizeと記述されている右方の領域、即ち、DATA AREAと記述されている領域）とから構成される。
【００７２】
ヘッダ領域は、先頭から順に、Version , BUS SEL , DATA ID , DATA OFFSET , DATA SIZE ，SRC ID , DST ID , MSG NO , MSG TYPE , MODULE ID , MSG IDという領域が配置されて構成される。
【００７３】
Versionには、メッセージプロトコルバージョンが記述される。具体的には例えば、下位４ビットには、Majorバージョンが記述され、上位４ビットには、Minorバージョンが記述される。
【００７４】
BUS SELには、メッセージへのデータ格納状態が記述される。具体的には例えば、先頭ビットに「１」が記述されている場合、そのことは、データ付であることを意味し、また例えば、最後尾ビットに「１」が記述されている場合、そのことは、データの続きがあることを意味する。
【００７５】
DATA IDには、データのIDが記述される。具体的には例えば、NETM１２−１（図１）の場合には、Socket Descriptor番号が記述される。
【００７６】
DATA OFFSETには、データの先頭オフセット、即ち、メッセージの先頭からデータの先頭までのオフセット(Byte)が記述される。
【００７７】
DATA SIZEには、データのサイズ(Byte)が記述される。
【００７８】
SRC IDには、メッセージ送信元ID、即ち、メッセージ送信元のモジュールに付加されたID（初期化時に付加されたID）が記述される。
【００７９】
DST IDには、メッセージ送信先ID、即ち、メッセージ送信先のモジュールに付加されたID（初期化時に付加されたID）が記述される。
【００８０】
MSG NOには、同一モジュールに複数のメッセージを発行したときに識別するための番号が記述される。
【００８１】
MSG TYPEには、メッセージ種別が記述される。具体的には例えば、00が記述されていた場合には、そのメッセージは「Command」であることを意味する。01が記述されていた場合には、「Command Response」であることを意味する。02が記述されていた場合には「Data Request」であることを意味する。03が記述されていた場合には、「Data Report」であることを意味する。04が記述されていた場合には、「Error/Warning Report」であることを意味する。05が記述されていた場合には、「Event Report」であることを意味する。06が記述されていた場合には、「Log Request」であることを意味する。「07」が記述されていた場合には、「Log Report」であることを意味する。
【００８２】
MODULE IDには、次のMSG IDの帰属を示すモジュールIDが記述される。具体的には例えば、共通コマンドの場合は1が記述され、その他の場合は各々のIDがモジュールIDとして記述される。
【００８３】
MSG IDには、このメッセージのID（メッセージID）が記述される。MSG IDとMODULE IDとの組み合わせでユニークなIDとなる。
【００８４】
このような図５の形態で図４のメッセージバスターゲット部１０１に書き込まれるメッセージは、PCI Express変換部９１に提供される。すると、PCI Express変換部９１は、そのメッセージのデータ形態を、図５の形態から、PCI Expressに準拠した形態（汎用システムバス４１で伝送可能な形態）に変換し、PCI Expressとしての汎用システムバス４１を介して、送信相手のモジュール（そのインタフェースデバイス５２）に送信する。
【００８５】
なお、PCI Expressに準拠した形態とは、例えばTLP（Transaction Layer Packet）である。
【００８６】
一方、自身のモジュールの機能デバイス５１からのデータは、データバス４３に準拠した形態として、データバス４３を介してデータバスDMA部１０２に書き込まれる。データバスDMA部１０２に書き込まれたデータは、PCI Express変換部９１に提供される。すると、PCI Express変換部９１は、そのデータの形態を、データバス４３に準拠した形態から、PCI Expressに準拠した形態、例えばTLPの形態に変換し、PCI Expressとしての汎用システムバス４１を介して、送信相手のモジュール（そのインタフェースデバイス５２）に送信する。
【００８７】
このようにして、送信相手のモジュール側のインタフェースデバイス５２においては、データまたはメッセージが、PCI Expressに準拠した形態のデータ（例えばTLP）として、PCI Expressとしての汎用システムバス４１を介してPCI Express変換部９１で受信されることになる。
【００８８】
そこで、PCI Express変換部９１は、そのTLPがメッセージであるのか或いはデータであるのかを、そのTLPのアドレスに基づいて判定する。
【００８９】
PCI Express変換部９１は、データであると判定した場合、そのTLPを、データバス４３に準拠した形態のデータに変換し、データバスDMA部１０２に提供する。すると、データバスDMA部１０２は、そのデータを、データバス４３を介して、自身のモジュール（ここでいう送信相手のモジュール）の機能デバイス５１に提供する。
【００９０】
これに対して、PCI Express変換部９１は、メッセージであると判定した場合、そのTLPを、メッセージバス４２に準拠した形態のメッセージ、例えば図５の構造のメッセージに変換し、メッセージバスターゲット部１０１に提供する。すると、メッセージバスターゲット部１０１は、そのメッセージを、メッセージバス４２を介して、自身のモジュール（ここでいう送信相手のモジュール）の機能デバイス５１に提供する。
【００９１】
なお、メッセージバス４４にはターゲット機能しかないため、メッセージバスターゲット部１０１は、メッセージ出力時には、割り込み線４４による割り込み信号をアサートすることで、自身のモジュールの機能デバイス５１からメッセージバス４４を介してリードしてもらう。
【００９２】
また、所定のモジュールのインタフェースデバイス５２から、別のモジュールのインタフェースデバイス５２へのデータの転送は、PCI Express（汎用システムバス４１）を介して行われることになる。
【００９３】
この場合、そのデータ転送は、図６に示されるように、PCIアドレス空間におけるメモリコピーとして定義される。即ち、図６は、PCIアドレス空間の例を示している。また、NETM Address Spaceと記述された空間は、NETM１２−１のアドレス空間を示しており、AVM Address Spaceと記述された空間は、AVM１２−２のアドレス空間を示しており、SDM Address Spaceと記述された空間は、SDM１２−３のアドレス空間を示している。即ち、図６の例では、NETM１２−１のメモリ空間１１２のデータが、AVM１２−２のメモリ空間１２１にコピーされており、また、NETM１２−１のメモリ空間１１１のデータが、SDM１２−３のメモリ空間１３１にコピーされている。
【００９４】
また、そのデータ転送は、メッセージバス４２を介して行われたメッセージのうちの、送信/受信リクエスト（send/recv等）の引数に記述されたアドレスに対して実行される。
【００９５】
また、このような、PCI Expressのインタフェースでは、複数データ転送がサポートされている。
【００９６】
このような動作を行うインタフェースデバイス５２を介して相互に接続される各機能デバイス５１の視点に立つと、各機能デバイス５１は、次のような動作を行うことになる。
【００９７】
即ち、各機能デバイス５１のCPUは、メッセージをやり取りすることで、通信相手の機能デバイス５１を確定する。この場合、上述したように、各機能デバイス５１のCPUは、各メッセージバス４２により、あたかもDPRAMで接続されている状態と等価な状態となる。従って、各機能デバイス５１の視点に立つと、メッセージは、メッセージバス４２に準拠した形態、即ち例えば図５の構造を有する形態でやり取りされることになる。この場合、図５のヘッダ領域の記述内容により、通信相手の特定が可能になる。
【００９８】
このようにして、通信相手が特定されると、各機能デバイス５１のハードウエアは、通信相手の機能デバイス５１のハードウエアと、データの送受信を行う。この場合、上述したように、各機能デバイス５１のハードウエアは、各データバス４３により、あたかもDMAによる直結がなされている状態と等価な状態となる。従って、各機能デバイス５１の視点に立つと、データは、データバス４３に準拠した形態で、各ハードウエア間で直接やり取りされることになる。
【００９９】
なお、データバス４３に準拠した形態として、例えば、図７に示されるように、アドレスフェーズとデータフェーズとを有する形態を採用することで、メッセージバス４２によるメッセージのやり取りがなくとも、かかる図７の形態のデータのデータバス４３を介するやり取りだけで、通信相手を特定することが可能になる。
【０１００】
以上説明したように、本発明が適用されるモジュール（例えば図１のコントローラ１１およびモジュール１２−１乃至１２−３）は、汎用バスの依存度合いが従来よりも低減したモジュールとなっている。即ち、本発明が適用されるモジュールは機能デバイス５１とインタフェースデバイス５２とから構成されるが、そのうち、インタフェースデバイス５２のみが汎用バス（汎用システムバス４１）に依存し、機能デバイス５１は汎用バス（汎用システムバス４１）に依存しない。
【０１０１】
従って、例えば、上述した内容の繰り返しとなるが、汎用バスのトレンドが変換して、図１の情報処理装置１の汎用システムバス４１として採用すべきバスが変化したとしても、インタフェースデバイス５２を変更（交換や改造）するだけで、変化後のバスに対応できるようになる。即ち、機能デバイス５１は全く変更（交換や改造）する必要がない、という効果を奏することが可能になる。
【０１０２】
また、ローカルバス対応の機能デバイス５１自体は、様々な汎用インタフェースに対応することができるため共通モジュールとなるため、商品設計効率が上がる、という効果を奏することが可能になる。
【０１０３】
さらに、その際、汎用システムバス４１を介さずに、２以上の機能デバイス５１を直接接続するという手法で、情報処理装置を構成することもできる、という効果を奏することも可能になる。
【０１０４】
さらにまた、モジュールの汎用性があがり、IPとして運用することが可能になる、という効果を奏することも可能になる。
【０１０５】
ところで、上述した一連の処理（或いはそのうちの一部分の処理）は、ハードウエアにより実行させることもできるが、ソフトウエアにより実行させることもできる。
【０１０６】
一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、ネットワークや記録媒体からインストールされる。
【０１０７】
このようなプログラムを含む記録媒体は、図２や図３に示されるように、装置本体とは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フロッピディスクを含む）、光ディスク（CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む）、光磁気ディスク（ＭＤ（Mini-Disk）を含む）、もしくは半導体メモリなどよりなるパッケージメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されている図２のROM７２，図３のROM８２，または図４のインタフェースデバイス５２に設けられる図示せぬROMや、図２の記憶部７８，図３の記録部８５に含まれるハードディスクなどで構成される。
【０１０８】
また、かかるパッケージメディアに記録されているプログラムは、図１のSDM１２−３等により読み出され、必要に応じて図２の記憶部７８，図３の記録部８５等にインストールされる。
【０１０９】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、その順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１１０】
また、上述したように、本明細書において、システムとは、複数の処理装置や処理部により構成される装置全体を表すものである。
【図面の簡単な説明】
【０１１１】
【図１】本発明が適用される情報処理装置のハードウエア構成例を示すブロック図である。
【図２】図１の情報処理装置のコントローラにおける機能デバイスのハードウエア構成の詳細例を示すブロック図である。
【図３】図１の情報処理装置のNETMにおける機能デバイスのハードウエア構成の詳細例を示すブロック図である。
【図４】図１の情報処理装置のインタフェースデバイスのハードウエア構成の詳細例を示すブロック図である。
【図５】図４等のメッセージバスで伝送されるメッセージの構造例を示す図である。
【図６】図１の情報処理装置の各モジュール間のシステムバスを介するデータ転送の概念を説明する図である。
【図７】図４等のデータバスで伝送されるデータの構造例を示す図である。
【符号の説明】
【０１１２】
１  情報処理装置，  １１  コントローラ，  １２  モジュール，  ４１  汎用システムバス，  ４２  ローカルバスとしてのメッセージバス，  ４３  ローカルバスとしてのデータバス，  ５１  機能デバイス，  ５２  インタフェースデバイス，  ９１  PCI Express変換部，  ９２  スタック吸収部，  １０１  メッセージバスターゲット部，  １０２  データバスDMA部
【図１】
0004747896.tif 000002
【図２】
0004747896.tif 000003
【図３】
0004747896.tif 000004
【図４】
0004747896.tif 000005
【図５】
0004747896.tif 000006
【図６】
0004747896.tif 000007
【図７】
0004747896.tif 000008