(57)【要約】 【課題】  同一のコンピュータプラットフォームに属すマルチウィンドウシステムによって作成されたウィンドウを同時に表示する表示システムを提供する。【解決手段】  ディスプレイデバイスを有し、対応するウィンドウシステムを有するマスターコンピュータデバイス、対応するウィンドウシステムを有する少なくとも１つのスレーブコンピュータデバイス、マスターコンピュータデバイスと少なくとも１つのスリーブコンピュータデバイスに接続された共有メモリ、マスターコンピュータデバイスと少なくとも１つのスレーブコンピュータデバイスのウィンドウシステムによって同時に作成されたマルチウィンドウを受ける入力手段、及びマスターコンピュータデバイスのディスプレイデバイスにマルチウィンドウを表示する出力手段を含むマルチウィンドウを同時に表示する表示システム。【選択図】  図２
2011107667.tif 000002
【特許請求の範囲】
【請求項１】
複数のウィンドウを同時に表示する表示システムであって、
ディスプレイデバイスと、前記ディスプレイデバイスにウィンドウを表示するウィンドウシステムを有するマスターコンピュータデバイス、
ディスプレイデバイスにウィンドウを表示するウィンドウシステムを有する少なくとも１つのスレーブコンピュータデバイス、    
前記マスターコンピュータデバイスと前記少なくとも１つのスリーブコンピュータデバイスに各々接続される共有メモリ、
前記マスターコンピュータデバイスと前記少なくとも１つのスレーブコンピュータデバイスの前記ウィンドウシステムによって作成された複数のウィンドウに係るウィンドウデータを受ける入力手段、及び
前記マスターコンピュータデバイスの前記ディスプレイデバイスに前記複数のウィンドウを表示する出力手段を含み、
前記マスターコンピュータデバイスと前記少なくとも１つのスレーブコンピュータデバイスは、同時に前記共有メモリからウィンドウデータを読み込み、または前記共有メモリにウィンドウデータを書き込む表示システム。
【請求項２】
前記共有メモリは、前記ウィンドウデータを書き込む、または読み込むのに必要な最大時間と同じ時間の読み込み前または書き込み動作前の遅れを受けても、複数のウィンドウのウィンドウデータの同時読み込みと書き込みが、書き込みと書き込み、または読み込みと書き込みが競合なく行えることを特徴とする請求項１に記載の表示システム。
【請求項３】
前記共有メモリは、複数のメモリモジュールを更に含み、それぞれ対応するコントローラを有する請求項１に記載の表示システム。
【請求項４】
前記共有メモリは、一組の管理システムと一緒にリンクされたメモリモジュールであり、次のメモリモジュールを書き込むか、または読み込むかを判断する請求項３に記載の表示システム。
【請求項５】
前記共有メモリは、前記ウィンドウのデータを含む前記メモリモジュールのメモリアドレスに既定のウィンドウをマップするウィンドウロケーションシステムと更に関連付けられる請求項３に記載の表示システム。
【請求項６】
各メモリモジュールのサイズは、前記ウィンドウシステムに用いられたウィンドウの最大データサイズによって決定される請求項３に記載の表示システム。
【請求項７】
前記マスターコンピュータデバイスの処理ユニットタイプは、前記少なくとも１つのスレーブコンピュータデバイスの処理ユニットタイプと異なる請求項１に記載の表示システム。
【請求項８】
前記マスターコンピュータデバイスの前記ウィンドウシステムのタイプは、前記少なくとも１つのスレーブコンピュータデバイスの前記ウィンドウシステムのタイプと異なる請求項１に記載の表示システム。
【請求項９】
前記マスターコンピュータデバイスと前記少なくとも１つのスレーブコンピュータデバイスは、同一のコンピュータプラットフォームに属す同種または異種のコンピュータデバイスである請求項１に記載の表示方法。
【請求項１０】
表示システム内のマスターコンピュータデバイスと少なくとも１つのスレーブコンピュータデバイスによって作成された複数のウィンドウを、同時に表示する表示方法であって、
前記表示システムは、ディスプレイデバイスとウィンドウシステムを有する前記マスターコンピュータデバイス、ウィンドウシステムを有する前記少なくとも１つのスレーブコンピュータデバイスと、前記マスターコンピュータデバイスと前記少なくとも１つのスリーブコンピュータデバイスによってアクセス可能な共有メモリを含み、
前記方法は、
前記共有メモリに前記少なくとも１つのスリーブコンピュータデバイスの前記ウィンドウデータを保存するステップ、
前記マスターコンピュータデバイスによって前記共有メモリから前記少なくとも１つのスリーブコンピュータデバイスの前記ウィンドウデータを得るステップ、及び
前記得られたウィンドウデータを合成して合成ウィンドウデータを作成し、前記合成ウィンドウデータが前記マスターコンピュータデバイスによって前記ディスプレイデバイスに表示されるステップを含む表示方法。
【請求項１１】
前記共有メモリは、前記ウィンドウデータを書き込む、または読み込むのに必要な最大時間と同じ時間の読み込み前または書き込み動作前の遅れを受けても、複数のウィンドウのウィンドウデータの同時読み込みと書き込みが、書き込みと書き込み、または読み込みと書き込みが競合なく行えることを特徴とする請求項１０に記載の表示方法。
【請求項１２】
前記共有メモリは、複数のメモリモジュールを更に含み、それぞれ対応するメモリコントローラを有し、
前記共有メモリに前記少なくとも１つのスリーブコンピュータデバイスの前記ウィンドウデータを保存するステップは、
前記少なくとも１つのスリーブコンピュータデバイスの各ウィンドウを前記メモリモジュールの中の対応するメモリモジュールにマッピングするステップ、及び
前記ウィンドウデータが更新された時、前記少なくとも１つのスリーブコンピュータデバイスの前記ウィンドウのデータを前記対応するメモリモジュールに保存するステップを更に含む請求項１０に記載の表示方法。
【請求項１３】
前記共有メモリは、一組の管理システムと一緒にリンクされたメモリモジュールであり、次のメモリモジュールを書き込むか、または読み込むかを判断する請求項１２に記載の表示方法。
【請求項１４】
前記共有メモリは、前記ウィンドウのデータを含む前記メモリモジュールのメモリアドレスに既定のウィンドウをマップするウィンドウロケーションシステムと更に関連付けられ、
前記マスターコンピュータデバイスによって前記共有メモリから前記スリーブシステムの前記ウィンドウデータを得るステップは、
前記共有メモリに保存された前記少なくとも１つのスリーブコンピュータデバイスの全てのウィンドウデータを見つけるステップ、及び
前記ウィンドウロケーションシステムによって示された前記対応するメモリモジュールからそれぞれ位置するウィンドウデータを読み込むステップを更に含む請求項１２に記載の表示方法。
【請求項１５】
現在のメモリモジュールが前記少なくとも１つのスリーブコンピュータデバイスによって書き込まれている時、現在のメモリモジュールの読み込みをスキップし、もう１つのメモリモジュールを読み込むステップ、及び
前記スキップされたメモリモジュール以外の全ての前記メモリモジュールが読み込まれてスキップされた後、前記スキップされたメモリモジュールが有効かどうかチェックするステップを含み、
前記マスターコンピュータデバイスは、前記スキップされたメモリモジュール以外の全ての前記メモリモジュールが読み込まれてスキップされた後、前記スキップされたメモリモジュールがまだ書き込まれている場合、更に待機する請求項１０に記載の表示方法。
【請求項１６】
前記各メモリモジュールのサイズは、前記ウィンドウシステムに用いられるウィンドウの最大のデータサイズによって決定される請求項１０に記載の表示方法。
【請求項１７】
前記マスターコンピュータデバイスの処理ユニットデバイスは、少なくとも１つのスレーブコンピュータデバイスの処理ユニットデバイスと異なる請求項１０に記載の表示方法。
【請求項１８】
前記マスターコンピュータデバイスの前記ウィンドウシステムのタイプは、少なくとも１つのスレーブコンピュータデバイスのタイプと異なる請求項１０に記載の表示方法。
【請求項１９】
前記マスターコンピュータデバイスと前記少なくとも１つのスレーブコンピュータデバイスは、同一のデスクトップまたはラップトップのプラットフォームに属す同種または異種である請求項１０に記載の表示方法。
【請求項２０】
表示システムに複数のウィンドウを同時に表示する表示方法は、ディスプレイデバイスと対応するウィンドウシステムを有するマスターコンピュータデバイス、対応するウィンドウシステムと共有メモリを有する少なくとも１つのスレーブコンピュータデバイスを含み、
前記マスターコンピュータデバイスによって、前記少なくとも１つのスレーブコンピュータデバイスのアプリケーションを起動する起動信号を受信するステップ、
前記アプリケーションを実行して、前記アプリケーションの前記ウィンドウデータを作成し、前記アプリケーションの前記ウィンドウデータが前記少なくとも１つのスレーブコンピュータデバイスの前記ウィンドウシステムによって前記共有メモリに書き込まれるステップ、及び
前記共有メモリから前記アプリケーションの前記ウィンドウデータを得て、現在のウィンドウデータと前記得られたウィンドウデータのための構成を実行し、合成ウィンドウデータを作成し、前記合成ウィンドウデータが前記マスターコンピュータデバイスの前記ウィンドウシステムによって前記ディスプレイデバイスに表示されるステップを含む表示方法。
【請求項２１】
前記少なくとも１つのスレーブコンピュータデバイスのアプリケーションを起動する前記起動信号は、前記マスターコンピュータデバイスのデスクトップのアプリケーションに対応する既定のクリック可能リンクを押すことによって発生される請求項２０に記載の表示方法。
【請求項２２】
前記共有メモリは、複数のメモリモジュールを更に含み、それぞれ対応するコントローラを有し、前記方法は、
前記少なくとも１つのスレーブコンピュータデバイスで実行している前記アプリケーションの前記ウィンドウデータが更新された時、前記アプリケーションの前記ウィンドウのデータを対応するメモリモジュールに保存するステップを更に含む請求項２０に記載の表示方法。
【請求項２３】
前記共有メモリは、前記ウィンドウのデータをそれぞれ書き込む、または読み込むのに必要な最大時間と同じほどの長さの読み込みまたは書き込み動作前の遅れを受けても書き込みと書き込み、または読み込みと書き込みの競合なく、複数のウィンドウのウィンドウデータの同時読み込みと書き込みを更にサポートする請求項２０に記載の表示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同一のコンピュータプラットフォーム（デスクトップまたはラップトップのプラットフォーム、コンピュータシステムあるいはコンピュータネットワークシステムを示す）に属する複数のコンピュータデバイスのウィンドウシステム（各コンピュータのマルチウィンドウシステムを含む）によって作成された複数のウィンドウ（ウィンドウデータ）を、これらのコンピュータデバイスの中の１つのディスプレイデバイスで同時に表示することのできる表示システム（ディスプレイシステム）と表示方法（ディスプレイ方法）に関する。
【背景技術】
【０００２】
現在、コンピュータデバイス上に複数のウィンドウを同時に表示することは一般的である。ユーザーは、ウィンドウから情報を削除したり、１つのウィンドウから他のウィンドウにデータを移したり、いつでもどのウィンドウ上でも通常の操作、作業をすることができる。ユーザーの要求により、異なるコンピュータデバイスで実行している異なるウィンドウシステムからの複数のウィンドウを、ユーザーに便利がいいように、１つのコンピュータデバイスのディスプレイデバイスに表示することが求められることがある。
【０００３】
一般的には、複数のコンピュータデバイスからのウィンドウデータは、１つのコンピュータデバイスのディスプレイデバイスに表示することは可能である。例えば、ヴァーチャルネットワークコンピューティング（ＶＮＣ）システムにおいて、ネットワーク化された複数のコンピュータデバイスで作成されたウィンドウは、これらのデバイスの中の１つのディスプレイデバイスに表示することができる。
【０００４】
しかし、ＶＮＣは、各コンピュータデバイス及びこれらのデバイスを接続しているネットワークにおいて事前に定義されたネットワークプロトコルを用いる必要である。複数のコンピュータデバイスのウィンドウシステムによって作成されたウィンドウの表示には、ＶＮＣが共有のシステムバス上で動作するものではなくネットワーク化されたデバイス上で動作するものであることから、ＶＮＣを用いることができない。
【０００５】
複数のデバイスで構成されるデスクトップまたはラップトップのプラットフォーム（コンピュータプラットフォーム）は、いくつかの重要な利点を有する。例えば、ｘ８６ベースとＡＲＭベースのコンピュータデバイスの両方で構成されているプラットフォームは、通常ＡＲＭ ＣＰＵを用いて電力消費を減少することができると同時に、ｘ８６ ＣＰＵを用いてｘ８６アプリケーションを実行することができる。注意するのは、これらのコンピュータデバイスは、それぞれのウィンドウシステムを有するということである。本発明以前に、デスクトップまたはラップトップのプラットフォームの複数のコンピュータデバイスの複数のウィンドウシステムによって作成されたウィンドウを同時に表示できる表示システムはなかった。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
よって本発明の目的は、コンピュータプラットフォーム（デスクトップまたはラップトップのプラットフォーム）に属す複数のコンピュータデバイスの各ウィンドウシステム（マルチウィンドウシステムに限らないが通常マルチウィンドウシステムの場合が多いと考えられるのでマルチウィンドウシステムと称する場合もある。）によって作成された複数のウィンドウを同時に表示する表示システムと表示方法を提供することにある。
【課題を解決するための手段】
【０００７】
本発明に係るマルチウィンドウシステムによって作成された複数のウィンドウを同時に表示する表示システムは、ここに記述されるように、ディスプレイデバイスを有するマスターコンピュータデバイス、少なくとも１つのスレーブコンピュータデバイス、共有メモリ、入力手段と、出力手段を含む。マスターコンピュータデバイスと少なくとも１つのスレーブコンピュータデバイスは、各々ウィンドウシステムを有する。共有メモリは、マスターコンピュータデバイスとスリーブコンピュータデバイスに接続される。入力手段は、マスターコンピュータデバイスと少なくとも１つのスレーブコンピュータデバイスのウィンドウシステムによって同時に作成された複数のウィンドウ（ウィンドウデータ）を受ける。出力手段は、マスターコンピュータデバイスのディスプレイデバイスに複数のウィンドウ（マルチウィンドウ）を表示する。マスターコンピュータデバイスと少なくとも１つのスレーブコンピュータデバイスは、共有メモリに保存されたウィンドウデータを読み込み、また、書き込む。        
【０００８】
好適な形態としては、マスターコンピュータデバイスのウィンドウシステムと、マスターコンピュータデバイスのディスプレイデバイスの少なくとも１つのスレーブコンピュータデバイスのウィンドウシステムによって作成されたウィンドウを同時に表示する表示方法が提供され、ディスプレイシステムは、ディスプレイデバイスを有するマスターコンピュータデバイス、少なくとも１つのスレーブコンピュータデバイスと、マスターコンピュータデバイスと少なくとも１つのスリーブコンピュータデバイスによってアクセス可能な共有メモリを含む。前記方法は、少なくとも１つのスリーブコンピュータデバイスのウィンドウデータを共有メモリに保存するステップ、マスターコンピュータデバイスによって共有メモリからスリーブコンピュータデバイスのウィンドウデータを得るステップと、全ての得られたウィンドウデータを統合して合成（ｃｏｍｐｏｓｉｔｅ）ウィンドウデータを作成し、合成ウィンドウデータがマスターコンピュータデバイスによってディスプレイデバイス１４０に表示されるステップを含む。
【０００９】
他の実施形態としては、ディスプレイシステムにウィンドウを同時に表示する表示方法は、ディスプレイデバイスと対応するウィンドウシステムを有するマスターコンピュータデバイス、対応するウィンドウシステムと共有メモリを有する少なくとも１つのスレーブコンピュータデバイスを含む。前記方法は、下記のステップを含む。まず、少なくとも１つのスレーブコンピュータデバイスのアプリケーションを起動する起動信号は、マスターコンピュータデバイスによって受信される。その後、アプリケーションは、少なくとも１つのスレーブコンピュータデバイスに実行され、アプリケーションのウィンドウデータを作成し、アプリケーションのウィンドウデータが少なくとも１つのスレーブコンピュータデバイスのウィンドウシステムによって共有メモリに書き込まれる。次に、アプリケーションのウィンドウデータは、共有メモリからマスターコンピュータデバイスによって得られ、現在のウィンドウデータと得られたウィンドウデータのための構成がマスターコンピュータデバイスによって実行されて合成ウィンドウデータを作成し、続いてマスターコンピュータデバイスのウィンドウシステムによってディスプレイデバイスに合成ウィンドウデータを表示する。
【００１０】
本発明に係る表示システム及び表示方法は、有形的表現媒体に組み込まれたプログラムコードの形をとることができる。プログラムコードが機械によってロードされて実行された時、前記機械は、上述のシステム及び方法等を実施する装置となる。
【発明の効果】
【００１１】
本発明の表示システムと表示方法に基づいて、共有メモリのウィンドウデータにアクセスすることで、同一のプラットフォームの複数のコンピュータデバイスによって同時に作成された複数のウィンドウ（マルチウィンドウ）を、ＣＰＵ資源などの追加のハードウェア資源を用いることなく、表示システムの単一ディスプレイデバイスに迅速に表示することができ、ウィンドウが更新または作成された時には常に効果的で即時のウィンドウ表示を提供することができる。また、ユーザーは、異なるオペレーティングシステムを用いることの影響を受けることなく、異なるコンピュータデバイス間のアプリケーション及び／またはウィンドウの操作または選択を、１つのシステムの単一に表示されたデスクトップにおいて行うことができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の一実施形態のディスプレイシステムの構成を示す図である。
【図２】図２は、図１に示すディスプレイシステムの共有メモリの一実施形態を示す図である。
【図３】図３は、図１に示すディスプレイシステムのウィンドウロケーションシステムによって用いられるルックアップテーブルの一実施形態を示す図である。
【図４】図４は、図１に示すディスプレイシステムにおけるユーザーインターフェースの一実施形態を示す図である。
【図５】図５は、図１に示すディスプレイシステムにおいて、マスターコンピュータデバイスからスレーブコンピュータデバイスで実行するアプリケーションを起動した場合の表示方法の一実施形態を示すフローチャートである。
【図６】図６は、図１に示すディスプレイシステムにおいて、マスターコンピュータデバイスと少なくとも１つのスレーブコンピュータデバイスによって同時に作成された複数のウィンドウを表示する表示方法の一実施形態を示すフローチャートである。
【図７】図７は、図１に示すディスプレイデバイスにおいて、マスターコンピュータデバイスが共有メモリをアクセスする方法の一実施形態を示すフローチャートである。
【図８】図８は、図１に示すディスプレイシステムのウィンドウ合成の処理の一実施形態を説明するための概略図である。
【発明を実施するための形態】
【００１３】
本発明の目的、特徴、長所が一層明確に理解されるよう、以下に本発明の一実施形態を例示し、図面を参照しながら詳細に説明する。
【００１４】
図１は、本発明の一実施形態のディスプレイシステム１００の構成を示す図である。
ディスプレイシステム１００は、２つ以上（少なくとも２つ）のコンピュータデバイス１１０、１２０、共有メモリ１３０、ディスプレイデバイス（表示装置）１４０、スイッチングユニット１５０、入力手段１６０及び出力手段１７０を含む。各コンピュータデバイスは、当該コンピュータデバイスの動作を制御して演算する処理ユニット（プロセッシングユニット）、当該コンピュータデバイスにおいて用いられるウィンドウシステム、及び、ウィンドウシステムを実行するオペレーティングシステム（ＯＳ）を更に含む。コンピュータデバイスは、ウィンドウデータの表示を管理するウィンドウマネージャーを更に含むことができる。
【００１５】
例えば、図１に示すように、第１コンピュータデバイス１１０は、コンピュータデバイス１１０の動作の制御及び演算を行う処理ユニット１１２、コンピュータデバイス１１０に用いられるウィンドウシステム１１４、及び、ウィンドウシステム１１４を実行するオペレーティングシステム（ＯＳ）１１６を含む。第２コンピュータデバイス１２０は、処理ユニット１２２、コンピュータデバイス１２０に用いられるウィンドウシステム１２４、及び、ウィンドウシステム１２４を実行するオペレーティングシステム（ＯＳ）１２６を含む。
【００１６】
１つの実施形態として、コンピュータデバイス１１０、１２０は、例えばｘ８６シリーズＣＰＵ（中央制御装置）という処理ユニットタイプとＭｉｃｒｏｓｏｆｔウィンドウズベース（“Ｍｉｃｒｏｓｏｆｔ”及び“ウィンドウズ”は米国マイクロソフトコーポレーションの登録商標）のウィンドウオペレーティングシステムというような、同一の処理ユニットタイプの処理ユニットと、同一のＯＳで実行するウィンドウシステムを有することができる。
他の実施形態として、ディスプレイシステム１００は、同一のプラットフォーム上に複数の異種のコンピュータデバイスを含むことができる。例えば、コンピュータデバイス１１０と１２０は、異なる処理ユニットタイプの処理ユニットと、異なるＯＳで実行する異なるウィンドウシステムを有することができる。例えば、コンピュータデバイス１１０の処理ユニット１１２のタイプは、ｘ８６シリーズＣＰＵであり、コンピュータデバイス１２０の処理ユニット１２２のタイプは、ＡＲＭプロセッサであることができる。また、コンピュータデバイス１１０のウィンドウシステム１１４のタイプは、Ｍｉｃｒｏｓｏｆｔウィンドウズベース（“Ｍｉｃｒｏｓｏｆｔ”及び“ウィンドウズ”は米国マイクロソフトコーポレーションの登録商標）のウィンドウシステムであることができ、コンピュータデバイス１２０のウィンドウシステム１２４のタイプは、Ｌｉｎｕｘベース（“Ｌｉｎｕｘ”は米国トルヴアルドズ・リヌス氏の登録商標） のウィンドウシステムであることができる。
【００１７】
共有メモリ１３０は、コンピュータデバイス１１０と１２０によってアクセス可能に、コンピュータデバイス１１０と１２０に接続される。コンピュータデバイス１１０と１２０は、接続インターフェースを介して共有メモリ１３０に接続される。接続インターフェースは、例えばＰＣＩ−Ｅバスデバイスなど、どのタイプのバスデバイスであってもよい。
【００１８】
ディスプレイデバイス１４０（例えばＬＣＤディスプレイ）のディスプレイを制御するコンピュータデバイスは、マスターコンピュータデバイスと呼ばれ、少なくとも１つの他のコンピュータデバイスは、スレーブコンピュータデバイスと呼ばれる。この実施形態では、例えば、第１コンピュータデバイス１１０がディスプレイデバイス１４０のディスプレイを直接制御するということでマスターコンピュータデバイスと呼ばれ、第２コンピュータデバイス１２０はスレーブコンピュータデバイスと呼ばれる。
【００１９】
注意するのは、第２コンピュータデバイス１２０は、ディスプレイデバイス１４０のディスプレイを直接制御することができるため、他の実施形態ではマスターコンピュータデバイスと呼ばれる場合があり、その場合は第１コンピュータデバイス１１０がスレーブコンピュータデバイスと呼ばれることとなる。スレーブコンピュータデバイス１２０は、ウィンドウデータを共有メモリ１３０に書き込むことができ、マスターコンピュータデバイス１１０は、ウィンドウデータを共有メモリ１３０から同時に読み込むことができる。
【００２０】
スイッチングユニット１５０は、コンピュータデバイス１１０と１２０の間に接続され、どのコンピュータデバイスがマスターコンピュータデバイスとなるかを選択するマスター選択（具体的には、マスター選択信号）に基づいて、ディスプレイデバイス１４０に、第１コンピュータデバイス１１０または第２コンピュータデバイス１２０の画面を選択的に表示する。例えば、仮にコンピュータデバイス１１０がマスターコンピュータデバイスとなるということを示すマスター選択がスイッチングユニット１５０が受けた場合は、コンピュータデバイス１１０の画面がディスプレイデバイス１４０に表示される。
【００２１】
入力手段１６０は、マスターコンピュータデバイス１１０と少なくとも１つのスレーブマスターコンピュータデバイス１２０とに接続され、マスターコンピュータデバイス１１０と少なくとも１つのスレーブマスターコンピュータデバイス１２０のウィンドウシステムで同時に作成されたマルチウィンドウ（複数のウィンドウに係るウィンドウデータ）を受ける。
出力手段１７０は、ディスプレイデバイス１４０でマルチウィンドウを作成して表示するのに用いられる。
入力手段１６０と出力手段１７０とは、ハードウェア、ソフトウェア、またはその組み合わせによって実行されることができ、従来より周知の技術であるため詳細な説明はここでは省略する。
【００２２】
なお、これら入力手段１６０と出力手段１７０とスイッチングユニット１５０との関係に関して、スイッチングユニット１５０は、ディスプレイデバイス１４０に表示する画面を第１コンピュータデバイス１１０または第２コンピュータデバイス１２０から選択する処理について、論理的にその表示を制御するもの、換言すれば主に制御を行うための手段であり、入力手段１６０と出力手段１７０は、実際のウィンドウデータが入出力される手段に相当する。
なお、第１コンピュータデバイス１１０及び第２コンピュータデバイス１２０を含めて、ディスプレイシステム１００の各構成部の間の制御信号及びデータの伝送ルート、伝送路の接続形態等は複雑なものである。従って、図１においては、これらの各構成部を接続する線は簡略的に記載し、また、一部は省略して記載してあるが、何ら、本明細書の記載と異なるものではない。
【００２３】
共有メモリ１３０は、同一または異なるメモリサイズのメモリモジュールに分割されることができる。よって、共有メモリ１３０は、複数のメモリモジュールを更に含むことができ、それぞれ対応するメモリコントローラを有する。各メモリモジュールは、それ自身のメモリコントローラによって別々にアクセスされることができ、共有メモリが複数のメモリコントローラによってメモリモジュールでデータの同時読み込みと書き込みをサポートすることができるようになる。
【００２４】
注意するのは、共有メモリ１３０は、どのタイプのアクセス可能なメモリ構造であってもよい。
一実施形態として、共有メモリは、一組の管理システムに一緒にリンクされたメモリモジュールであることができ、次のメモリモジュールを書き込むか、または読み込むかを判断する。例えば、共有メモリ１３０は、リンクされたデータファイルを処理する管理システムを有して、次に書き込むメモリモジュールを判断するリングバッファメモリであることができるが、これを限定するものではない。
【００２５】
各メモリモジュールのサイズは、例えば、ウィンドウシステム１１４と１２４に用いられた最大のウィンドウサイズに基づいて決定されることができる。例えば、ウィンドウシステム１１４と１２４に用いられる最大のウィンドウサイズが３２ビットのカラー深度の１０２４×７６８の解像度である場合、各メモリモジュールのサイズは、１０２４×７６８×３２ビット＝３Ｍバイトと定義されることができる。各メモリモジュールのサイズを、全てのウィンドウシステムをサポート可能な最大のウィンドウサイズにすると決定した場合には、各ウィンドウシステムの各ウィンドウデータは、いずれか１つのメモリモジュールに書き込まれ、また、いずれか１つのメモリモジュールから読み込まれることが可能となる。
【００２６】
図２は、本発明の共有メモリ２００の実施形態を示している。図２に示される実施形態では、共有メモリ２００は、同一サイズのいくつかのメモリモジュールに分割される。これらのメモリモジュールの３つは、マスターコンピュータデバイス１１０のデスクトップ２１０に示された３つのウィンドウＡ、Ｂ及びＣ（各ウィンドウに１つのモジュール）のウィンドウデータを含む。
【００２７】
図２に示すデスクトップ２１０は、コンピュータデバイス１２０のウィンドウシステム１２４で作成されたマスターコンピュータデバイス１１０のデスクトップ画面を表している。デスクトップ２１０上の３つのウィンドウＡ、Ｂ及びＣのうちの最大ウィンドウサイズが、前述したような３２ビットのカラー深度で１０２４×７６８の解像度のウィンドウの時、各メモリモジュールのサイズは、３Ｍバイトと定義される。よって、ウィンドウＡ、Ｂ及びＣのウィンドウデータは、ウィンドウＢとＣのウィンドウデータのサイズがメモリモジュールのサイズより小さくても、メモリモジュール２０１、２０３と、２０５内にそれぞれ書き込まれる。
【００２８】
少なくとも１つのスレーブコンピュータデバイス１２０は、デスクトップ２１０の各ウィンドウのウィンドウデータを作成し、共有メモリ１３０にそれらを書き込む。マスターコンピュータデバイス１１０は、共有メモリ１３０からウィンドウのウィンドウデータを読み込む。
【００２９】
共有メモリ１３０は、既定のウィンドウのウィンドウデータを含むメモリモジュールのうちの１つに既定のウィンドウをマップするウィンドウロケーションシステム１８０と更に関連付けられることができる。また、ウィンドウロケーションシステム１８０は、共有メモリ１３０のアクセス制御を行うことができる。
【００３０】
ウィンドウロケーションシステム１８０は、複数のコンピュータデバイス（例えば、マスターコンピュータデバイス及びスレーブコンピュータデバイス）によって読み込み／書き込みできるキャッシュメモリを含むことができる。ウィンドウロケーションシステム１８０は、例えば、各モジュールの記録された状態でルックアップテーブルを更に有することができる。例えば、メモリモジュールが有効か、そうでないかに関わらず、その対応するメモリアドレスと情報の内容は、メモリモジュールに保存される。ルックアップテーブルがキャッシュメモリに保存されることができることから、ウィンドウロケーションシステム１８０は、データが共有メモリ１３０から読み込まれる、または共有メモリ１３０に書き込まれることになっている時、ルックアップテーブルを用いて既定のウィンドウのメモリアドレスを得て、既定のウィンドウを既定のウィンドウのウィンドウデータを含むメモリモジュールの１つにマップすることができる。
【００３１】
図３（Ａ）は、本発明のウィンドウロケーションシステム１８０によって用いられるルックアップテーブル３００の一実施形態を示している。
共有メモリ１３０のモジュールサイズは事前に決定されるため、各モジュールのメモリアドレスもわかり、計算もできる。よって、ルックアップテーブル３００は、共有メモリの各ウィンドウとその対応する場所（即ち、メモリアドレス）のマッピング関係を記録するのに用いることができる。
【００３２】
図３（Ａ）に示されるように、ルックアップテーブル３００は、記録されたいくつかのアイテムを有し、各アイテムは、少なくとも“モジュール番号（モジュールＮｏ．）”フィールド、“メモリアドレス”フィールド、“有効フラグ”フィールドと、“ウィンドウ番号（ウィンドウＮｏ．）”フィールドを含む。
“モジュール番号”フィールドは、モジュールの番号を表しており、“メモリアドレス”フィールドは、モジュールのための共通メモリ１３０のメモリアドレスを表している。
“有効フラグ”フィールドは、モジュールが有効か、または用いられているかどうかを示す有効フラグであり、“Ｙｅｓ”は、モジュールが有効であると表しており、“Ｎｏ”は、モジュールが用いられていてデータを保存するのに用いられることができないことを表している。
“ウィンドウ番号”フィールドは、その中に保存されたウィンドウデータの内容を表している。例えば、図３（Ａ）の始めのアイテムについては、システム１のウィンドウＡがメモリアドレス０×０１００でメモリモジュール１に記録されていることを表している。
【００３３】
新しいウィンドウが作成される場合、ウィンドウロケーションシステム１８０は、テーブル３００で“Ｙｅｓ”に設定された有効フラグを有する有効なモジュールを見つけ、テーブル３００の位置するメモリモジュールの内容を更新することができる。その後、新しく作成されたウィンドウのウィンドウデータは、位置するメモリモジュール内に保存される。例えば、マスターまたはスレーブコンピュータデバイスによって作成された３つのウィンドウＡ、Ｂ及びＣが現在テーブル３００に記録中だとすると、ウィンドウＡ、Ｂ及びＣのウィンドウデータはモジュール１、２及び４にそれぞれ保存されていることとなる。
【００３４】
この状態から、新しいウィンドウ“ウィンドウＤ”が少なくとも１つのスレーブコンピュータデバイスに作成される場合、共通メモリ１３０の有効なモジュールは、ウィンドウロケーションシステム１８０によって位置付けされ、その中にウィンドウＤのウィンドウデータを保存する。図３（Ａ）に示されるように、モジュール３は、有効なモジュールであるとして表されており、よって、図３（Ｂ）に示されるようにウィンドウＤのウィンドウデータがモジュール３に保存され、有効フラグが“Ｎｏ”に変えられる。よって、少なくとも１つのスレーブコンピュータデバイス１２０は、続いてウィンドウＤの更新されたウィンドウデータをモジュール３に書き込むことができ、マスターコンピュータデバイス１１０はそこからウィンドウデータを読み込み、ウィンドウＤの最新のウィンドウデータを得ることができる。
【００３５】
本発明のディスプレイデバイス１００は、マスターコンピュータデバイスとスレーブコンピュータデバイスの両方の特定アプリケーションを起動するユーザーインターフェースを更に提供する。
【００３６】
図４は、本発明に係るユーザーインターフェースの一実施形態としての、いくつかのクリック可能なリンク（例えばアイコン、ボタン）を有するデスクトップ４００を示す図である。図４に示すように、デスクトップ４００は、マスターコンピュータデバイス１００のデスクトップを表しており、デスクトップ４００は、同時に表示される２つのディスプレイウィンドウ４１０及び４２０とアイコン４３０〜４７０を含んでいる。この実施形態では、アイコン４３０〜４５０は、マスターコンピュータデバイス１１０で実行される特定のアプリケーションを実行するアイコンとして事前に定義されたものであり、アイコン４６０〜４７０は、少なくとも１つのスレーブコンピュータデバイス１２０で実行される特定のアプリケーションを起動するアイコンとして事前に定義されたものである。
【００３７】
アイコン４６０がユーザーによってクリックされる、または押されると、アイコン４６０によって示された少なくとも１つのスレーブコンピュータデバイス１２０のアプリケーションを起動する起動信号が、マスターコンピュータデバイス１１０で作成される。
次に起動信号は、接続インターフェースによって、少なくとも１つのスレーブコンピュータデバイス１２０に送信される。
少なくとも１つのスレーブコンピュータデバイス１２０は、起動信号を受けた後、アプリケーションを起動し、対応するウィンドウを作成する。少なくとも１つのスレーブコンピュータデバイス１２０は、結果として生じるウィンドウデータをマスターコンピュータデバイス１１０がウィンドウデータを読み込むことができる共有メモリ１３０の中に入れる。
続いてマスターコンピュータデバイス１１０のウィンドウシステム１１４は、デスクトップにウィンドウを構成することができる。
【００３８】
図５は、本発明のマスターコンピュータデバイスによって少なくとも１つのスレーブコンピュータデバイスを実行するアプリケーションを起動する表示方法の実施形態を示すフローチャートである。
マスターコンピュータデバイスとスレーブコンピュータデバイスは、各々、対応するウィンドウシステムを含む。この実施形態では、マスターコンピュータデバイスとスレーブコンピュータデバイスは、同一のデスクトップまたはラップトップのプラットフォームに属する同種または異種アーキテクチャのコンピュータデバイスである。
【００３９】
ユーザーが、少なくとも１つのスレーブコンピュータデバイス１２０のアプリケーションを起動するために図４に示されたコンピュータデバイス１１０のデスクトップ４００のボタン４７０を押すことにより、起動信号が発生される。これにより、この起動信号を受けたマスターコンピュータデバイス１１０（即ち、第１コンピュータデバイス）は、少なくとも１つのスレーブコンピュータデバイス１２０（即ち、第２コンピュータデバイス）のアプリケーションを起動する動作を行う（ステップＳ５１０）。
【００４０】
マスターコンピュータデバイス１００は、その起動信号を、接続インターフェースを介して、少なくとも１つのスレーブコンピュータデバイスに伝送する。起動信号を受けた後、少なくとも１つのスレーブコンピュータデバイス１２０のウィンドウシステム１２４は、起動信号に対応したアプリケーションを実行し、アプリケーションのウィンドウデータを作成して、そのアプリケーションのウィンドウデータを共有メモリ１３０に書き込む（ステップＳ５２０）。
【００４１】
その後、マスターコンピュータデバイス１１０のウィンドウシステム１１４は、共有メモリ１３０からアプリケーションのウィンドウデータを得て、現在のウィンドウデータと得られたウィンドウデータの合成を実行し、合成ウィンドウデータを作成し、ディスプレイデバイス１４０に合成ウィンドウデータを表示する（ステップＳ５３０）。
【００４２】
図６は、本発明に係るディスプレイシステム（例えば、図１に示されたディスプレイシステム１００）のマスターコンピュータデバイスと少なくとも１つのスレーブコンピュータデバイスによって同時に作成されたマルチウィンドウを表示する表示方法のもう１つの実施形態のフローチャートである。
まず、ステップＳ６１０では、少なくとも１つのスレーブコンピュータデバイス１２０は、少なくとも１つのスレーブコンピュータデバイス１２０で実行中の全てのウィンドウのウィンドウデータを共有メモリ１３０に保存する。
【００４３】
その後、ステップＳ６２０では、マスターコンピュータデバイス１１０は、少なくとも１つのスレーブコンピュータデバイス１２０のウィンドウデータを共有メモリ１３０から得る。マスターコンピュータデバイス１１０は、本発明のウィンドウロケーションシステムとルックアップテーブルを用いて少なくとも１つのスレーブコンピュータデバイス１２０のウィンドウデータを共有メモリ１３０から得る。
【００４４】
少なくとも１つのスレーブコンピュータデバイス１２０の全てのウィンドウデータが得られた後、ステップＳ６３０では、マスターコンピュータデバイス１１０のウィンドウシステム１１４は、全ての得られたウィンドウデータを合成して合成ウィンドウデータを作成し、合成ウィンドウデータをディスプレイデバイス１４０のデスクトップに表示する。
【００４５】
図８は、本発明に係るウィンドウ合成動作の具体例を示す概略図である。
図８に示すように、ウィンドウＣとウィンドウＤは、マスターコンピュータデバイス１１０のデスクトップ８１０に表されており、ウィンドウＡとウィンドウＢは、ウィンドウＡがウィンドウＢの下方に表示されている状態で、スレーブコンピュータデバイス１２０のデスクトップ８２０に表されている。
スレーブコンピュータデバイス１２０のウィンドウシステム１２４は、スレーブコンピュータデバイス１２０で現在起動されているウィンドウの位置とｚインデックスを保持する。ｚインデックスは、例えば１つのウィンドウがもう一つのウィンドウの下方に表示されるか、あるいは上方に表示されるかというような、起動されたウィンドウ間の層関係を表すものである。スレーブコンピュータデバイス１２０のウィンドウシステム１２４は、ウィンドウの位置とｚインデックスに関するインデックス情報もまた、共有メモリに書き込む。
【００４６】
従って、ウィンドウＡとウィンドウＢの位置とｚインデックスを得ることで、マスターコンピュータデバイス１１０のウィンドウシステム１１４は、得られたウィンドウデータの位置と層関係を保持する。即ち、インデックス情報を用いて、ウィンドウＡは再びウィンドウＢの下方に表示される。これに加えて、マスターコンピュータデバイス１１０のウィンドウシステム１１４は、ウィンドウＣとウィンドウＤのために、得られたウィンドウデータ及びそれ自身（マスターコンピュータデバイス１１０自身）のウィンドウデータの位置を変更（再配置）し、マスターコンピュータデバイス１１０のデスクトップ８１０に合成ウィンドウデータを作成する（図８の右側に示すように）。よって、ディスプレイデバイス１４０のデスクトップは、マスターコンピュータデバイス１１０において現在実行中のウィンドウデータを表示するだけでなく、少なくとも１つのスレーブコンピュータデバイス１２０において実行中の起動されたアプリケーションの全てにより生成されたウィンドウデータも表示する。
【００４７】
共有メモリ１３０は、マスターコンピュータデバイス１１０と少なくとも１つのスレーブコンピュータデバイス１２０の両方によって同時にアクセスされることができ、少なくとも１つのスレーブコンピュータデバイス１２０によって書き込まれているメモリモジュールが同時にマスターコンピュータデバイス１１０で読み込まれることができ、よって、メモリモジュールの読み込まれたウィンドウデータが不正確である可能性がある。この問題を避けるために、共有メモリにアクセスする同期方法が更に提供される。
【００４８】
図７は、本発明のマスターコンピュータデバイスの共有メモリをアクセスする方法の実施形態を示すフローチャートである。
ステップＳ７１０で、マスターコンピュータデバイス１１０は、共有メモリ１３０からデータを読み込み、ステップＳ７２０で、ウィンドウロケーションシステム１８０を用いて共有メモリ１３０のウィンドウを見つける。ステップＳ７３０で、読み込まれるモジュールが書き込まれているかどうか判断する。
【００４９】
読み込まれるモジュールが書き込まれていたと判断された場合（ステップＳ７３０でＹｅｓの場合）は、ステップＳ７４０で、その読み込まれるモジュールのウィンドウデータの読み込みはスキップされ、読み込まれていない次のウィンドウのモジュールが読み込まれ、ステップＳ７３０が再度実行される。
読み込まれるモジュールが書き込まれていないと判断された場合（ステップＳ７３０でＮｏの場合）は、ステップＳ７５０で、モジュールのウィンドウデータが読み込まれ、ステップＳ７６０で、全てのウィンドウデータが読み込まれたかどうかが判断される。
全てのウィンドウデータが読み込まれていないと判断された場合（ステップＳ７６０でＮｏの場合）は、いくつかのメモリモジュールは以前にスキップされており再度チェックす必要があることを意味する。従って、ステップＳ７３０〜Ｓ７４０に戻り、スキップされたウィンドウのモジュールが有効かどうかチェックする。
【００５０】
スキップされたウィンドウのモジュールが有効の場合、ステップＳ７５０が更に実行され、モジュールのウィンドウデータが読み込まれる。
全てのウィンドウのウィンドウデータが読み込まれたと判断された場合（ステップＳ７６０でＮｏの場合）、即ちスキップされたウィンドウが示されていない時は、ステップＳ７７０で、マスターコンピュータデバイス１１０のウィンドウシステム１１４が全ての得られたウィンドウデータを合成して合成ウィンドウデータを作成し、合成ウィンドウデータをディスプレイデバイス１４０のデスクトップに表示して、プロセスを終了する。
【００５１】
スキップされたウィンドウ以外の全てのウィンドウのウィンドウデータが読み込まれ、スキップされたウィンドウがまだ書き込まれている時、マスターコンピュータデバイス１１０は、書き込み処理が完了するまで待機する。よって、共有メモリ１３０にデータを書き込むために待機する最大の待機時間は、共有メモリ１３０に全てのスクリーンウィンドウを書き込む時間以上の長さにはならない。よって、共有メモリ１３０は、読み込みまたは書き込み動作前に、ウィンドウデータの書き込みまたは読み込みにそれぞれ必要な最大時間と同じほどの長さの遅れを受けた場合においても、書き込みと書き込みあるいは読み込みと書き込みの競合なく、複数のウィンドウのウィンドウデータの同時読み込みと書き込みをサポートすることができる。
【００５２】
なお、本実施形態においては、説明のために、スレーブコンピュータデバイスとして１つのスレーブコンピュータデバイス（即ちコンピュータデバイス１２０）だけを有するディスプレイシステム１００を示したが、本発明はこれを限定されるものではない。言い換えれば、本発明においては、１つ以上のスレーブシステムを、ディスプレイシステム１００に具備させることができ、また共有メモリ１３０に接続することができ、各スレーブシステムがそれらの自身のウィンドウデータを共有メモリ１３０に書き込むことができる。また、マスターコンピュータデバイス１１０は、上述のディスプレイ方法を適用して、マスターコンピュータデバイス１１０と全ての他のスレーブコンピュータデバイスによって作成された複数のウィンドウをディスプレイシステム１００のディスプレイデバイス１４０に同時に表示することができる。
【００５３】
要約すると、本発明に係る表示システム（ディスプレイシステム）と表示方法（ディスプレイ方法）に基づいて、共有メモリのウィンドウデータにアクセスすることで、同一のプラットフォームの複数のコンピュータデバイスによって同時に作成された複数のウィンドウ（マルチウィンドウ）を、ＣＰＵ資源などの追加のハードウェア資源を用いることなく、ディスプレイシステムの単一ディスプレイデバイスに迅速に表示することができ、ウィンドウが更新または作成された時には常に効果的で即時のウィンドウ表示を提供することができる。また、ユーザーは、異なるオペレーティングシステムを用いることの影響を受けることなく、異なるコンピュータデバイス間のアプリケーション及び／またはウィンドウの操作または選択を、１つのシステムの単一に表示されたデスクトップにおいて行うことができる。
【００５４】
本発明に係る表示システムと表示方法、またはその特定の態様または部分は、例えばフレキシブルディスク、ＣＤ−ＲＯＭ 、ハードディスク、または他の機械読み取り可能な記憶媒体などの有形的表現媒体に組み込まれたプログラムコードの形をとることができる。プログラムコードは、例えばコンピュータなどの機械によってロードされて実行された時、その機械は、それによって前記方法等を実施する装置となる。
【００５５】
また、本発明に係る表示システムと表示方法、またはその特定の態様または部分は、光ファイバーを通して、またはその他の伝送形態を通して、例えば電気配線またはケーブルなどのいくつかの伝送媒体を介して伝送されたプログラムコードの形で組み込まれることもできる。例えばコンピュータなどの機械にプログラムコードが受信されてロードされ、実行された時、その機械は、上述の方法等を実施する装置となる。また、汎用プロセッサにおいて実施された時、プログラムコードは、プロセッサと組み合わせられ、特定用途向けロジック回路に類似して動作する固有の装置を提供するものとなる。
【００５６】
以上、本発明の好適な実施形態を例示したが、これは本発明を限定するものではない。本発明は、本発明の思想及び範囲を逸脱しない限りにおいて、当業者であれば行い得る少々の変更や修飾を付加することが可能であり、そのような形態のものも本発明の範囲内である。
【符号の説明】
【００５７】
１００  ディスプレイシステム
１１０  第１コンピュータデバイス
１２０  第２コンピュータデバイス
１１２、１２２  処理ユニット
１１６、１２６  オペレーティングシステム（ＯＳ）
１１４、１２４  ウィンドウシステム
１３０  共有メモリ
１４０  ディスプレイデバイス（表示装置）
１５０  スイッチングユニット
１６０  入力手段
１７０  出力手段
１８０  ウィンドウロケーションシステム
２００  共有メモリ
２０１、２０３と、２０５  メモリモジュール
２１０  デスクトップ
３００  ルックアップテーブル
４００  デスクトップ  
４１０、４２０  ディスプレイウィンドウ
４３０〜４７０  アイコン
８１０、８２０  デスクトップ
【図１】
2011107667.tif 000003
【図２】
2011107667.tif 000004
【図３】
2011107667.tif 000005
【図４】
2011107667.tif 000006
【図５】
2011107667.tif 000007
【図６】
2011107667.tif 000008
【図７】
2011107667.tif 000009
【図８】
2011107667.tif 000010