JP4907964B2 - 補助ディスプレイの拡張可能なアーキテクチャ - Google Patents

補助ディスプレイの拡張可能なアーキテクチャ Download PDF

Info

Publication number
JP4907964B2
JP4907964B2 JP2005338651A JP2005338651A JP4907964B2 JP 4907964 B2 JP4907964 B2 JP 4907964B2 JP 2005338651 A JP2005338651 A JP 2005338651A JP 2005338651 A JP2005338651 A JP 2005338651A JP 4907964 B2 JP4907964 B2 JP 4907964B2
Authority
JP
Japan
Prior art keywords
hardware
auxiliary
display
firmware
customized
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.)
Expired - Fee Related
Application number
JP2005338651A
Other languages
English (en)
Other versions
JP2006209738A (ja
Inventor
ジェイ.フラー アンドリュー
ジェイ.ポリビー ダニエル
ピー.ローテン マシュー
エス.バーンスタイン マイケル
エイチ.ウィン ロジャー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006209738A publication Critical patent/JP2006209738A/ja
Application granted granted Critical
Publication of JP4907964B2 publication Critical patent/JP4907964B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Digital Computer Display Output (AREA)
  • Stored Programmes (AREA)

Description

本発明は、一般にコンピュータシステムに関し、より詳細にはメインコンピュータシステムに接続する補助コンピューティングデバイスに関する。
特許文献1および特許文献2は、一般にある補助コンピューティング機能を提供する補助処理および補助メカニズムを有するコンピュータシステムの概念を対象としている。例えば、ラップトップコンピュータの蓋または側面上の小型LCDは、例えばラップトップコンピュータの蓋が閉じられており、そして/またはメインコンピュータの電源が切られているときなど、たとえメインコンピュータディスプレイを簡単に見ることができないときでさえ、ミーティングの場所や時間など有用な情報をその所有者に提供することができる。ボタンなどの制御を提供して、ユーザが補助デバイスとインタラクトできるように、カレンダデータ中のアポイントをスクロールしたり、電子メールメッセージを読んだり、指示を読んだりなど、様々なタイプのデータを閲覧することができるようになる。
モバイルホストコンピュータに組み込まれた補助LCDスクリーンといくぶん同様に、モバイル電話、音楽再生デバイス、ポケットサイズのパーソナルコンピュータ、携帯情報端末などは、そのディスプレイおよび/または他の機能がメインコンピュータによって活用できるようにデバイスがプログラムされている限り、物理的および/または無線(例えば、ブルートゥースまたは赤外線)リンクを介して接続されるときに、メインコンピュータに対する補助デバイスとしての機能を果たすことができる。一般に、コンピュータシステムと事実上任意の方法でインターフェースすることができるI/O機能を有するどのようなデバイスも、潜在的に補助コンピューティングデバイスとしての機能を果たすことができる。
米国特許出願第10/429930号明細書 米国特許出願第10/429932号明細書
しかし、コンピュータシステムのための補助ディスプレイとしての機能を果たすことができる多くの様々なデバイスがある。この結果、このようなデバイスを内部的に構成する多くの方法がある。これは、デバイス製造業者(ときに、独立系ハードウェアベンダ、すなわちIHVと呼ばれる)にとっての困難をもたらす。というのは、ユーザは、ユーザのデバイスが補助ディスプレイとしての機能を果たすことを望むことになるが、製造業者は、デバイスにその所望の機能を行わせることができるようにする必要があるからである。このように、このデバイスが、そもそもオーディオプレーヤ、GPS(global positioning system)レシーバ、電話、デジタルピクチャフレーム(digital picture frame)などであろうと、このデバイスは、異なるように設計される必要があることになる。これまで、システム中のハードウェアをカスタマイズし、なおこのデバイスをフル機能の補助ディスプレイとしても使用することができるようにする唯一の方法は、製造業者が非常に多くのコードを書いて、補助ディスプレイ機能を含んだ他の既存のファームウェアと共にこれらのハードウェアを統合することであった。必要とされることは、適切なときにフル機能の補助ディスプレイとしてデバイスを機能させるコンピューティングアーキテクチャであり、製造業者が所望の機能を追加でき、またそのデバイスを刷新し、他の製造業者のデバイスから差別化できるようにさらに拡張可能であることである。
簡潔に述べれば、本発明は、デバイス製造業者のそれぞれが彼らの特定のニーズに応じて要望に応じて独立に拡張することができる様々なレイヤのコードを含む補助ディスプレイについてのコンピューティングアーキテクチャを提供する。このアーキテクチャと共に、本発明は、デバイス製造業者がかなり低減された(例えば、あるとしても最小限の)量のファームウェア変更しか必要としない方法でハードウェアコンポーネントをカスタマイズすることができるようにする。カスタマイゼーションの例には、モバイル通信用の無線、SPOT無線、ブルートゥース無線および/もしくはGPSレシーバなどの無線レシーバまたは無線トランシーバの統合が含まれる。また他のハードウェアは、温度センサ、オーディオデコーダ(例えば、デジタル信号処理用)、追加のストレージ、および/またはインジケータなど他のハードウェアをデバイスに含む。
これらのハードウェアコンポーネント上の低いレベルにおいては、HAL(hardware abstraction layer)により、ハードウェアに独立した方法でより高いレベルのコードを書き込むことができるようになる。HALは、必要に応じて拡張してカスタマイズされたハードウェアをサポートすることができる。HALは、ハードウェアの違いを抽象するので、デバイス製造業者は、あらゆるクラスのデバイスごとにドライバをあまりカスタマイズする必要なく、多くのタイプのデバイスにわたりより高いレベルで稼働するドライバを再利用することができる。
これらドライバ上において、他のデバイスソフトウェアには、.NET共通言語ランタイム環境の比較的小規模の実装を備えるTinyCLRなどの共通言語ランタイムが含まれる。共通言語ランタイム上で稼働するマネージドコードは、このプラットフォームのHAL(ハードウェアアブストラクションレイヤ)、例えばARM7チップに基づくプラットフォームのHALによって可能になる共通言語ランタイムが稼働するどのようなプラットフォーム上でも稼働することになる。ファームウェアの大部分は、マネージドコードで書かれるので、ファームウェアが稼働するハードウェアのタイプにも依存しない。デバイスファームウェアの大部分を制御し、アーキテクチャにHALおよびCLRを含めることにより、デバイス製造業者は、どのような変更もなく既存のソフトウェアを再利用することができ、これは、補助ディスプレイとしての機能を果たす様々なタイプのデバイス間で高品質の一貫した体験を提供するために重要である。
アーキテクチャをレイヤに分けることにより、デバイス製造業者は、アーキテクチャ中の適切なレイヤ(または複数のレイヤ)の中でコードを拡張する必要があるだけである。例えば、この変更が新しいCPUである場合、HALを適合させる必要がある。しかし、この変更が、HALが存在するCPUを変更せずにハードウェアの1つを追加することである場合、おそらくこのハードウェアおよび他の対応するソフトウェアが、このデバイス上で稼働し、ハードウェアを制御するための適切なドライバが必要とされるだけである。例えば、高速メディアバッファリングを伴うものなど性能上の理由などのためにマネージドコードで書くことができないある種のアプリケーションについては、CやC++などのネイティブコードで書くことができ、本質的にCLRを拡張することができる。
補助ディスプレイプラットフォームに追加機能を追加することに関心のあるデバイス製造業者(ハードウェア製造業者)は、ハードウェアを追加し、それによって既存のデバイスファームウェアおよび他の任意のコードを必要に応じて拡張する。この既存の(例えば、別のベンダによって提供された)補助ディスプレイファームウェアに対する影響は、最小限である。
さらに、プラットフォームは、メインコンピュータシステム上で提供されるクライアント補助デバイスAPIセットの観点から変更されたハードウェアに合わせて調整するように必要に応じて拡張可能である。この目的を達成するために、デバイス製造業者によって提供されるデバイスソフトウェアとメインコンピュータシステムの間で通信するために、クライアントAPIを使用した簡単で拡張可能なメカニズムが提供される。これにより、このデバイス製造業者には、このプラットフォームを使用して特別なハードウェアを必要とする特定の機能のエンドツーエンドの実装を提供する機能が与えられる。このAPI拡張性により、これらデバイス製造業者および独立系ソフトウェアベンダは、専用のAPIを必要とすることなく、デバイス上のカスタマイズされたハードウェアとインタラクトすることができるメインコンピュータシステム上のクライアントアプリケーションを開発できるようになる。
より詳細には、拡張性モデルでは、メインコンピュータシステム上で稼働するクライアントアプリケーションがデバイスにデータを送信することができるようになる前に「エンドポイント」が指定される必要がある。デバイス製造業者に専用のファームウェアを提供させて、デバイス上のエンドポイントを公示することにより、メインコンピュータシステム上のソフトウェアは、特別なハードウェア機能を有するデバイスを識別し、エンドポイントに対して直接に通信チャネルをオープンすることができる。クライアントAPIは、クライアントアプリケーションとデバイスの間でトランスポートされるデータのタイプが関連しないように設計される。このように、エンドツーエンドプラットフォームは、デバイス製造業者の側であまり努力することなくハードウェア拡張性を提供する。
他の利点については、図面と共に以下の詳細な説明から明らかになろう。
(例示の動作環境)
図1は本発明を組み込むことができるメインパーソナルコンピュータシステムの形態におけるコンピューティングデバイス120を表すブロック図である。当業者は、図1に示すパーソナルコンピュータシステム120が単に例示的であることを意図しているにすぎず、また本発明がハンドヘルドデバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラマブルな民生用電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、ヘッドレスサーバなどを含む他のコンピュータシステム構成と共に実施することができることを理解するであろう。本発明は、タスクが通信ネットワークを介してリンクされるリモート処理デバイスによって実行される分散化されたコンピューティング環境中で実施することもできる。分散コンピューティング環境においては、プログラムモジュールは、ローカルメモリストレージデバイス中にもリモートメモリストレージデバイス中にも配置することができる。
パーソナルコンピュータシステム120には、処理装置121、システムメモリ122、およびこのシステムメモリを含む様々なシステムコンポーネントを処理装置121に結合するシステムバス123が含まれる。システムバス123は、メモリバスまたはメモリコントローラ、ペリフェラルバス、および様々なバスアーキテクチャのうちのいずれかを使用したローカルバスを含む、いくつかのタイプのバス構造のうちのいずれであってもよい。システムメモリは、ROM(read−only memory)124およびRAM(random access memory)125を含む。起動中などパーソナルコンピュータ120内のエレメント間で情報を転送する助けを行う基本ルーチンが入ったBIOS(basic input/output system)126は、ROM124に格納される。パーソナルコンピュータ120は、図示していないハードディスクとの間での読取りおよび書き込みを行うハードディスクドライブ127、リムーバブル磁気ディスク129との間で読取りおよび書き込みを行う磁気ディスクドライブ128、およびCD−ROMや他の光媒体などのリムーバブルな光ディスク131との間で読取りおよび書き込みを行う光ディスクドライブ130をさらに含むことができる。ハードディスクドライブ127、磁気ディスクドライブ128、および光ディスクドライブ130は、それぞれハードディスクドライブインターフェース132、磁気ディスクドライブインターフェース133、および光ドライブインターフェース134によってシステムバス123に接続される。これらドライブおよび関連するコンピュータ読取り可能媒体は、パーソナルコンピュータ120のコンピュータ読取り可能命令、データ構造、プログラムモジュールおよび他のデータの不揮発性ストレージを提供する。本明細書中で説明している例示のコンピュータシステムは、ハードディスク、リムーバブル磁気ディスク129およびリムーバブル光ディスク131を使用しているが、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ(Bernoulli cartridge)、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)など、コンピュータによってアクセス可能なデータを格納することができる他のタイプのコンピュータ読取り可能媒体も、この例示のコンピュータシステム中で使用することができることが当業者によって理解されるべきである。
オペレーティングシステム(Windows(登録商標)XPなど)135、1つまたは複数のアプリケーションプログラム(Microsoft(登録商標)Outlookなど)136、他のプログラムモジュール137およびプログラムデータ138を含め、いくつかのプログラムモジュールは、ハードディスク、磁気ディスク129、光ディスク131、ROM124またはRAM125に格納することができる。ユーザは、キーボード140やポインティングデバイス142などの入力デバイスを介してパーソナルコンピュータ120にコマンドおよび情報を入力することができる。他の入力デバイス(図示せず)は、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどが含まれ得る。これらおよび他の入力デバイスは、システムバスに結合されるシリアルポートインターフェース146を介して処理装置121に接続されることが多い、パラレルポート、ゲームポート、USB(universal serial bus)など他のインターフェースによって接続することもできる。モニタ147または他のタイプのディスプレイデバイスもまた、ビデオアダプタ148などのインターフェースを介してシステムバス123に接続される。モニタ147に加えて、パーソナルコンピュータは、通常、スピーカやプリンタなど他のペリフェラル出力デバイス(図示せず)を含む。補助ディスプレイ/デバイス200は、追加の出力デバイスであり、例えば、補助ディスプレイインターフェース155を介してシステムバス123に接続することができる。
補助ディスプレイはまた、シリアルインターフェースを介して、あるいはパラレルポート、ゲームポート、赤外線もしくは無線接続、ユニバーサルシリアルバス(USB)、または他のペリフェラルデバイス接続など他のインターフェースによってメインコンピューティングデバイス120に接続することもできる。図1における入力デバイス201は、補助ディスプレイ200とインターフェースし、そして/または補助ディスプレイ200を制御する1つまたは複数のアクチュエータを提供することができ、例えば、シリアルインターフェースとすることができる入力デバイスインターフェース156を介して、あるいはパラレルポート、ゲームポート、赤外線もしくは無線接続、ユニバーサルシリアルバス(USB)、または他のペリフェラルデバイス接続など、他のインターフェースによってシステムバス123に接続することができる。
パーソナルコンピュータ120は、リモートコンピュータ149など1つまたは複数のリモートコンピュータに対する論理接続を使用してネットワーク化された環境で動作することができる。リモートコンピュータ149は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイスまたは他の共通ネットワークノードとすることができ、通常、パーソナルコンピュータ120に関連して上で説明したエレメントの多くまたはすべてを含むが、メモリストレージデバイス150だけを図1に示している。図1に示す論理接続は、LAN(local area network)151およびWAN(wide area network)152を含む。このようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいて、一般的なものである。
LANネットワーキング環境中で使用されるときには、パーソナルコンピュータ120は、ネットワークインターフェースまたはアダプタ153を介してローカルネットワーク151に接続される。WANネットワーキング環境中で使用されるときには、パーソナルコンピュータ120は、通常、インターネットなどのワイドエリアネットワーク152を介して通信を確立するためのモデム154または他の手段を含む。モデム154は、内蔵または外付けとすることができるが、シリアルポートインターフェース146を介してシステムバス123に接続される。ネットワーク環境においては、パーソナルコンピュータ120に関連して示したプログラムモジュール、またはその一部分は、リモートメモリストレージデバイスに格納することもできる。図示したこれらのネットワーク接続は、例示的なものであり、コンピュータ間で通信リンクを確立する他の手段を使用することもできることが理解されよう。
補助デバイスが本発明に従って機能するためには、コンピュータシステムは必ずしも完全に動作している必要はないことに留意されたい。実際には、コンピュータシステムが、スリープ状態または休止状態モード(hybernate mode)にあるとき、および/またはユーザがまだログオンしていないか、そうでなければセキュリティメカニズムを介してシステムからロックアウトされるときなど、コンピュータが少なくとも初期設定の範囲またはユーザが設定する範囲までパワーダウンされるときにも、補助デバイスは、機能することができる。
補助ディスプレイ/デバイス200は、メインディスプレイを補完することができ、メインディスプレイがシャットダウンされるか、そうでなければ動作していない(例えば、非接続)ときに、代理のディスプレイとしての機能を果たして、ユーザに何らかの情報を提供することができる。例えば、メインディスプレイがオフであり、そして/または簡単に見ることができない(例えば、ラップトップの蓋が閉じられている)ときにユーザが閲覧することができる、モバイルコンピュータに接続された補助ディスプレイデバイスにミーティングに対する部屋番号および/または指示があれば助けになるであろうように、メインディスプレイの起動の仕方などの情報があれば、助けになる可能性がある。この補助デバイスは、オーディオおよび/またはビデオを再生し、イメージを表示し、カレンダ情報を表示し、電子メールを表示することなどができる。
これらパワーダウンモード(powered−down mode)における通信を可能にし、制御するために、不揮発性メモリに格納されたファームウェアがあることもあり、このファームウェアにより、何らかの電力が利用可能である限り、2次プロセッサによってロードされ、動作されるときに、この補助ディスプレイを他の補助コンポーネントと一緒に使用することが可能になる。本明細書中で使用しているように、用語「ファームウェア」および「デバイスハードウェア」は、本質的に等価であり、一般にこの補助メモリ、その中のコード、および/またはファームウェアが稼働する補助プロセッサを表すものと考えることができることに留意されたい。
図2A〜2Eは、補助ディスプレイスクリーン200a〜200eの配置についてのコンピューティングデバイス上の、またはコンピューティングデバイスに関連付けられた例示の位置をそれぞれ示している。図2Aおよび2Bに示すように、補助ディスプレイスクリーン200aは、スタンドアロン(陸上通信線またはモバイル)電話202の前面、裏面、または他の表面に配置することができ(この電話は、ブルートゥース技術を介してなど何らかの方法でリンクされていれば、物理的に結合されている必要はない)、そして/または他の補助ディスプレイスクリーン200bは、モバイルコンピュータ204またはタブレットコンピューティングデバイス(図示せず)の端部または蓋の上に配置することができる。補助ディスプレイスクリーン200cの別の場所(図2C)は、コンピュータに取り付けられた電話上、またはモニタ206やキーボード(図示せず)など、コンピュータに取り付けられたペリフェラルデバイス上にあってもよい。図2Dおよび2Eは、コンピュータに接続されたスタンドアロンコンソール208、または(マザーボードのハウジングなど)何らかの他のハウジング210のフロントパネル上の補助ディスプレイスクリーン200dおよび200eの追加の位置をそれぞれ示している。補助ディスプレイスクリーンは、コンピュータに対する無線または他の接続を有する腕時計、リモートコントロールデバイス、リモート壁掛けユニットなど、ディスプレイ機能を有する任意のコンピューティングデバイスまたは他のデバイスの任意の表面上にも配置することができることを当業者は理解するであろう。実際に、補助ディスプレイは、接続がLANまたはWANを介して、あるいはインターネットを介してさえ可能になるので、メインコンピュータシステムに物理的に近くである必要はない。
図2A〜2Eから明らかなように、補助ディスプレイは、1つまたは複数のLED、2行の英数字のディスプレイ、モノクロディスプレイ、カラーディスプレイなど任意数の既知のタイプのディスプレイの形態とすることができる。本発明は、他のコンピューティングデバイスまたは通信デバイスのディスプレイを補助ディスプレイ200として使用することができることを当業者は理解するであろう。これらの他のコンピューティングデバイスまたは通信デバイスは、汎用コンピュータ、セル電話、およびページャやPDA(personal digital assistant)などのハンドヘルドデバイスを含んでいる。さらに、本発明は、ユーザがログインする前を含めて、コンピューティングデバイス120のオンスクリーン表示(例えば、スクリーンセーバーやグラフィックユーザインターフェースのコンポーネントなど)のエリア内に補助ディスプレイ200として実装された仮想補助ディスプレイを使用することができる。補助ディスプレイ200は、前述の形態のどのような組み合わせも含むことができ、また1つまたは複数のLEDなどのインジケータと物理的または論理的に組み合わせ、そして/または仮想補助ディスプレイと共に使用することができる。
補助デバイスは、スクリーンなしでも、またはそのスクリーンの電源が切られているときでさえも、機能を提供することができる。例えば、補助デバイスは、オーディオを再生し、データを収集し(例えば、メインコンピュータシステムに後でダウンロードする場合)、計算を実行することなどができる。また、ディスプレイは、フルスクリーンではなくて、1つまたは複数のLEDなどを備えることもできる。このように、多くの利点および長所が、補助ディスプレイスクリーンを有することから生じ、そのため補助デバイスが、本明細書中では補助ディスプレイと呼ばれることもあるが、ディスプレイは必須ではない。一般に、本明細書中で称している補助ディスプレイは、どのような視覚的表現、聴覚的表現、および/または触覚的表現をも含め、感知することができる基本的にどのようなものから構成することもできる。補助ディスプレイデバイスとしての機能を果たすことができるデバイスのタイプの例には、別個のコンピュータシステム、ラップトップの蓋の上のディスプレイ、モバイル電話、ポケットサイズのパーソナルコンピュータ、デジタルイメージベースのピクチャフレーム、台所のディスプレイ、テレビジョン、メディアプレーヤ、アラーム時計を含む時計、腕時計などが含まれる。他のタイプのデバイスには、民生用エレクトロニクスデバイス(冷蔵庫、ホームシアターレシーバ、DVDプレーヤなど)、壁掛けディスプレイ、自動車、輸送または他の乗り物ユニット(例えば、補助ディスプレイとして車/列車/飛行機にすでにあるディスプレイを使用して)、メインコンピュータシステムのキーボードまたは他の入力デバイス、PDA(非セルラ電話PDAを含む)などのメインディスプレイ内に埋め込まれ、またはメインディスプレイを使用した補助デバイスが含まれる。
(補助ディスプレイの拡張アーキテクチャ)
図面のうちの図3を参照すると、アプリケーションプログラム302および他のプログラム(例えば、オペレーティングシステムコンポーネント)を備えるクライアントに対して補助ディスプレイAPIセット304を介して補助デバイス300および/または301を公開する例示の実装が示されている。APIセット304は、クライアントアプリケーション306(プログラムの1コンポーネントまたは可能性としてプログラムそれ自体)をシステムに登録すること、コンテンツをこれらの付属デバイスに送信すること、通知を付属デバイスに送信すること、付属デバイスからイベントを受信することを含め、様々なファンクションのAPIを提供する。イベントは、ナビゲーションイベント、コンテンツ要求イベント、コンテンツ変更イベントなどを含むことができる。
APIレイヤ304は、ポータブルデバイスAPIセット310に書き込まれ、このAPIセットは、ユーザモードドライバフレームワーク312を介してデバイスのドライバプロセスと通信する。ポータブルデバイスAPIセット310は、補助ディスプレイをポータブルデバイスのカテゴリにマップし、デバイスの機能の列挙を可能にする。これは、ユーザモードドライバ内でカプセル化されるが、クライアントアプリケーション306に公開されない。図3に示す他の(オプションの)コンポーネントは、この補助ディスプレイ上で通知を提供することができる通知クライアント316を含む。例えば、カレンダプログラムなどのアプリケーションプログラムが稼働していないときでさえ、このプログラムに対応するスケジュールされた通知を提供することが望ましいこともあり、この通知クライアント316は、このようなシナリオを可能にする。
ハードウェア製造業者の観点に目を向けると、一般に各補助デバイスベンダは、対応する補助デバイスドライバ324を提供するが、このデバイスドライバは、補助ディスプレイプラットフォームのプロバイダによって提供することもできる。ある種のタイプの補助デバイスは、これらが、とりわけAPIセット304を介して受信することができるどの情報とも一般に互換性のある、ある種のファームウェアを用いて構成されるので、「拡張された」デバイスと考えられる。したがって、このようなデバイスについて汎用のドライバを提供することができるが、以下で説明するように、このドライバは拡張することができ、そして/または他のドライバを追加することができる。
いずれにしても、このユーザモードドライバフレームワークは、デバイスドライバ(例えば、324および325)を補助ディスプレイプラットフォームに結合するためのDDI(device driver interface)を提供する。次いで、これらのドライバは、このAPI−受信情報に対応するデータを補助ディスプレイデバイスへの通信のための適切なハードウェアインターフェース(トランスポート)に転送する(また戻す)。例えば、図3において、デバイスドライバ324は、デバイス300に(例えば、ブルートゥース、Wi−FI、AM/FM赤外線などの)無線通信のためにリモートスタックおよびドライバ327に(以前に定義されたプロトコルを介して)データを転送するものとして示されているのに対して、デバイスドライバ325は、USB−ベースのハードウェア328にデータを転送するものとして示されているが、TCP/IP−ベースのトランスポートなどのネットワークトランスポートを含む他のタイプのトランスポートも可能である。ユーザモードドライバは、接続タイプに関係なくすべての拡張ディスプレイについて機能することができるが、デバイスごとの接続タイプごとに1つのドライバを使用することがより直截的でありそうであることに留意されたい。さらに、図3に示すように、複数のデバイスをコンピュータに結合して、同時に補助デバイスとしての機能を果たすこともできることに留意されたい。ユーザは、どのクライアントアプリケーションのデータがどのデバイスに表示されるかについて、(例えば、システムデータプロバイダ308のコントロールパネルなどを介して)設定することができる。システムデータプロバイダ308はまた、時間データ、無線信号強度データ、および/またはバッテリレベルデータなどのシステム情報を補助ディスプレイに供給する。
図3にも示すように、「拡張」ディスプレイ301は、本明細書中で補助ディスプレイプラットフォームと呼ばれる特定のファームウェアスタックを実行するディスプレイである。例えば、1つの本実装形態においては、このようなファームウェアスタックは、TinyCLRコンポーネントを含み、TinyCLRオブジェクトシリアル化をサポートする。
図3に示すこの例示の実装形態においては、キャッシュされたコンテンツをナビゲートし、表示するために、デバイスアプリケーション369およびシェルプログラム370は、TinyCLRフレームワーク374およびTinyCLRランタイムコンポーネント376上で実行され、これにより、データがインタープリットされ、ナビゲートされ、表示される。TinyCLRランタイムコンポーネント376は、図4を参照して以下で説明するように、少なくとも1つのドライバ377およびTinyHALの上に示されている。
一般に、シェルプログラム370は、補助ディスプレイデバイスのホームページ、非クライアントエリア、メニュー、および一般的なルックアンドフィールを提供する。この提供されるデータは、それぞれがTinyCLRフォームオブジェクトによってルートされるTinyCLRビューオブジェクトの可視ツリーである、スクリーンの有向グラフの形態とすることができ、または有向グラフに変更することができる。このシェルレイヤは、このファームウェアのより低いレイヤからボタンイベントを受け取り、これらをインタープリットし、適切な場合にデータ中でナビゲートする。シェルプログラム370はまた、前述のように補助ディスプレイプラットフォームを介してメインコンピュータシステムからの通知要求を受け入れ、メインコンピュータシステムに対して要求を発行して、キャッシングマネージャ372から、コンテンツが必要とされる(例えば、不足している)ことを知ったときに、新しいコンテンツを提供する。シェルプログラム370はまた、メインコンピュータシステムが接続されていないときに生じることがある時刻指定された通知を表示する。レンダリングエンジン370は、アプリケーションが、このアプリケーションのデータをレンダリングすることができるカスタムコードを提供できるように拡張可能とすることができることに留意されたい。
オフラインキャッシングマネージャ372は、TinyCLR376の上に書かれたアセンブリを備えており、これは、デバイスに格納されたデータアイテムのキャッシュを管理する。このコンポーネントはまた、いくつかのメモリ管理を行い、システムアプリケーションプログラムが、このデバイスが記憶することができるよりも多くのデータを提供できるという事実に対処している。ファームウェアがデータキャッシュを変更する場合、このコンポーネントは、この情報を追跡し、システム上でアプリケーションプログラムに対してイベントをポストして、メインコンピュータシステムがオンラインである場合には直ちに、オンラインでない場合にはマシンがオンラインに復帰するときに知らせる。キャッシュマネージャは、インターフェースを介してドライバ360に公開することができる。
本発明の一態様によれば、(図4に一般的に示すように)様々なレイヤは、分かれており、それぞれがデバイス製造業者によって必要に応じて別個に拡張されて、拡張されたハードウェアをサポートすることができる。図4の大半は、図3のファームウェアスタックに一般に対応していることに留意されたい。このアーキテクチャをレイヤに分けることにより、デバイス製造業者には、拡張されたハードウェアのために必要に応じてアーキテクチャにおける適切なレイヤ(または複数のレイヤ)のコードを拡張する必要があるだけである。
より詳細には、ディスプレイパネルおよびコントローラ490、補助プロセッサ491、ならびにメモリ492に加えて、拡張ハードウェア493が、デバイスをカスタマイズするためにデバイス製造業者により追加される。カスタマイゼーションの例には、以下の1つまたは複数のもののこのデバイスへの統合が含まれる。これらは、SPOT無線、ブルートゥース無線、GPSレシーバ、温度センサ、オーディオデコーダ、オーディオエンコーダ、追加ストレージ、指紋リーダなどのバイオメトリクスセンサ、加速度計、RFIDタグ/リーダ、存在検出、ストレージアレイ/システム管理に対するインターフェース(例えば、システム情報を提供することができるSMbusなどのシステムバスへのアクセス、またはストレージの大規模アレイへのアクセス)、バッテリ(例えば、メインコンピュータシステムと共用されるものでなくて、このデバイス自体の電源)、赤外線トランシーバ、RFトランスミッタ(例えば、RFリモートコントロール)、マイクロフォン、および/またはインジケータなど他のハードウェアなどである。理解されるように、製造業者は、この補助デバイスファームウェアスタックに対するかなり低減された(例えば、あるとしても最小限の)量の変更しか必要としないように、これらのハードウェアコンポーネントをカスタマイズすることができる。
これらハードウェアコンポーネントの上で、HAL(例えば、ハードウェアアブストラクションレイヤ)により、より高レベルのコードをハードウェアに独立な仕方で書くことができるようになる。本明細書中で使用しているように、コードスタックについて言及するときの用語「高レベル(high−level)」、「低レベル(low−level)」、「上(above)」、「下(below)」などは、他のコンピューティングシナリオにおいて使用されるこれらの用語と同様であり、一般に、ソフトウェアコンポーネントが、より高いコンポーネントに対してより低いソフトウェアコンポーネントほど、このより低いコンポーネントは、ハードウェアにより近い。図4に示すように、ベースHALは、必要に応じてHAL拡張コード480によって拡張されて、カスタマイズされたハードウェアをサポートすることができる。例えば、未使用の汎用目的のI/Oポートなどは、既存のHAL479を介してデバイスを動作させる場合に利用可能にすることもできるので、HALを拡張することが常に必要であるとは限らないことに留意されたい。そうでない場合には、ポートは、拡張されたHALを介して管理することができる。
HAL上には、拡張されたハードウェアのために追加されたカスタムドライバ4773を含む、ドライバ4771〜4773がある。図4は、1つのドライバ4773と1つの拡張ハードウェアブロック493しか示していないが、より多くのドライバおよび/またはハードウェアが追加されることもあることに留意されたい。さらに、別のドライバを追加する代わりに、既存のドライバコードを変更して望ましい追加機能を実行することも等価であることに留意されたい。一般に知られているように、HAL479は、ハードウェアの違いを抽象するので、デバイス製造業者は、デバイスのあらゆる異なるクラスについてドライバ4773をカスタマイズする必要なく、多くのタイプの物理デバイス間で稼働するカスタムドライバ4773(または変更されたドライバ)を再利用することができる。
ドライバの上において、他のデバイスソフトウェアは、TinyCLR376などのCLR(common language runtime)を含み、これは、.NET共通言語ランタイム環境の比較的小規模の実装を備える。共通言語ランタイム上で稼働するマネージドコードは、共通言語ランタイムが稼働するどのようなプラットフォーム上でも稼働することになり、これは、このプラットフォームのHAL(ハードウェアアブストラクションレイヤ)、例えばARM7チップに基づいたプラットフォームのHALによって可能にされる。ファームウェアの大部分は、マネージドコードで書かれるので、ファームウェアも、それが稼働するハードウェアのタイプから独立している。デバイスファームウェアの大部分を制御し、このアーキテクチャにHALおよびCLRを含むことにより、デバイス製造業者は、どのような変更もなく既存のソフトウェアを再利用することができ、このことは、補助ディスプレイとしての機能を果たす様々なタイプのデバイス間で、高品質の一貫した体験を提供するために重要である。
アプリケーションプログラム402は、拡張ハードウェア493と共に動作するカスタムアプリケーションとすることができる。しかし、図4にユーザ体験拡張によって示されるように、すでに書かれたアプリケーションプログラムを拡張することによってこのユーザ体験を拡張することも可能である。例として、拡張ハードウェアが、通知の受け取りにより点灯する簡単なインジケータを備えるものと考える。通知を受け取るプログラム402は、通知が受け取られたときにインジケータを点灯し、通知が取り下げられたときにインジケータを消灯するように拡張することができる。
性能上の理由のためになど、マネージドコードで書くことができないある種のアプリケーションは、CやC++などのネイティブコードで書くことができ、図4にCLR拡張476で示すように、CLRを基本的に拡張することができる。CLRは、リード、ライト、オープン、クローズ、I/O制御など、フレームワーク拡張474による使用のためのAPIを提供することができるが、これは、ある種のアプリケーションには、十分ではないこともある。例えば、高速媒体バッファリングは、アプリケーションプログラムレベルのバッファからCLRを介して、より低レベルのデジタル信号処理バッファにコピーされる場合に十分高速に実現できないことがある。このようなコピーによる費用を回避するために、CLR拡張476中のネイティブコードが、単一セットのバッファを埋めることができる。
補助シェルプログラム370はまた、メインコンピュータシステム上でAPIを使用し、デバイスにコードをダウンロードすることによって拡張することができる。そのようにするための典型的な理由は、カスタマイズされた機能に対して、アイコン、要約テキスト、コンテキストに応じたテキスト、メニューアイテムなどの参照を追加することである。例えば、オーディオプレーヤとしても構成される補助ディスプレイデバイスにより、他のデータを記録し、ゲームを楽しみ、アポイントカレンダを維持することもできるようになる。シェル拡張470を介してアイコンおよびメニューアイテムを追加して、それにより、これらの異なるアプリケーションプログラムを簡単に実行することができるようになる。フレームワークライブラリ374もまた、対応する拡張474を介して拡張することができる。
図5に示すように、補助ディスプレイスクリーンに十分な余裕がある場合の一実装においては、補助ディスプレイデバイスのスクリーン506の領域504は、デバイス製造業者が会社ロゴなど何らかの情報を示すためにリザーブされることに留意されたい。この領域は、拡張ハードウェアに対応する情報を示す場合に使用することができ、例えば、GPSレシーバは、この領域に何らかのGPSデータ、または選択されるとGPSデータをメインスクリーンに速やかに呼び出すことができるアイコンを表示することができる。
図3に戻ると、このプラットフォームは、さらにメインコンピュータシステムのクライアント補助ディスプレイAPIセット304および/または310上で拡張可能である。この目的を達成するために、クライアントAPIを使用して簡単で拡張可能なメカニズムが、このデバイス製造業者によって提供されるデバイスソフトウェアとメインコンピュータシステムの間で通信する場合に提供される。これにより、デバイス製造業者には、このプラットフォームを使用して特別なハードウェアを必要とする特定の機能のエンドツーエンドの実装を提供する能力が提供される。API拡張性により、デバイス製造業者および独立系ソフトウェアベンダは、専用化されたAPIを必要とすることなく、このデバイス上のカスタマイズされたハードウェアとインタラクトすることができる、メインコンピュータシステム上のクライアントアプリケーション306および他のプログラム302を開発することができるようになる。
より詳細には、拡張性モデルでは、クライアントアプリケーション302がデバイスにデータを送ることができるようになる前に「エンドポイント」を指定する必要がある。デバイス製造業者に、補助デバイスファームウェア中のコードを拡張してデバイス上のエンドポイントを公示させることにより、メインコンピュータシステム上のソフトウェアは、特別なハードウェア機能を有するデバイスを識別し、このエンドポイントに対して直接に通信チャネルをオープンすることができる。クライアントAPIは、クライアントアプリケーションとデバイスの間でトランスポートされるデータのタイプが、関連していない、例えば、テキスト、バイナリデータ、媒体、オブジェクトなどを通信できるように設計される。このようにして、このエンドツーエンドプラットフォームは、デバイス製造業者の側においてあまり多くの努力をしなくても、ハードウェア拡張性を実現している。
機能拡張されたデバイスでは、基本的にエンドポイント間でデータパイプを確立し、シリアル化されたオブジェクトなどに通す必要があるだけである。これを実現するための一方法は、.NETリモーティングと呼ばれる技術を使用する方法であり、これにより、メインコンピュータシステム上のコードは、補助デバイス上のクラスに対するメソッドコールを行うことができるようになる。このように、例えば、メインコンピュータシステム上のアプリケーションは、GPS機能を用いて構成された補助デバイスにコールして、メインコンピュータシステム上でGPS情報を取得することができる。
前述のように、コンテンツは、機能拡張されたデバイス上のキャッシュにダウンロードすることができ、次いでこのデバイスそれ自体が、必要に応じてコンテンツを処理することになる。これにより、切り離された使用が可能になり、また一般に1つのアプリケーションが一度に実行されて補助ディスプレイ上のキャッシュされたコンテンツにアクセスし、システム上で稼動している複数のアプリケーションにコンテンツを提供させることも可能になることに留意されたい。
以上から理解することができるように、本発明は、必要に応じて拡張して、追加のハードウェアをサポートすることができるレイヤを有する補助ディスプレイプラットフォームを提供する。同時に、補助ディスプレイプラットフォームにより、ハードウェアデバイスの製造業者は、これらのデバイスをフル機能の補助ディスプレイとして使用し、さらに、このファームウェアに対してたとえあるとしてもほとんど変更なしに拡張可能にすることができ、その結果、製造業者は、所望の機能を簡単に追加すると共に、自身のデバイスに改良を加え、他の製造業者のデバイスと差別化できるようになる。このように、本発明は、現代のコンピューティングにおいて必要とされる非常に多くの利点および長所を提供する。
本発明は、様々な変更形態および代替構造の余地があるが、本発明のある種の例示した実施形態について、図面中に示し、上記に詳細に説明した。しかし、本発明を開示した1つまたは複数の特定の形態に限定する意図はなく、反対に、本発明の趣旨および範囲に含まれるすべての変更形態、代替構成、および均等物を網羅するものであることを理解されたい。
本発明を組み込むことができる、従来のパーソナルコンピュータシステムの形態の汎用コンピューティングデバイスを示すブロック図である。 様々なデバイス上にこの補助ディスプレイを配置するための位置を一般的に例示する図である。 様々なデバイス上にこの補助ディスプレイを配置するための位置を一般的に例示する図である。 様々なデバイス上にこの補助ディスプレイを配置するための位置を一般的に例示する図である。 様々なデバイス上にこの補助ディスプレイを配置するための位置を一般的に例示する図である。 様々なデバイス上にこの補助ディスプレイを配置するための位置を一般的に例示する図である。 本発明の一態様による、メインコンピュータシステム上のアプリケーションプログラムが任意の補助ディスプレイデバイスのファームウェアとデータを交換することができる例示的な実装形態を一般的に示すブロック図である。 本発明の一態様に従って構成される例示的なレイヤ化されたアーキテクチャを一般的に示すブロック図である。 本発明の一態様に従って、デバイス製造業者がどのようにスクリーンをカスタマイズすることができるかを示すディスプレイスクリーンを有するハードウェアディスプレイを例示的に表す図である。
符号の説明
120 コンピューティングデバイス
121 主処理装置
122 システムメモリ
123 システムバス
124 ROM
125 RAM
126 BIOS
127 ハードディスクドライブ
128 磁気ディスクドライブ
129 磁気ディスク
130 光ディスクドライブ
131 光ディスク
132 ハードディスクドライブインターフェース
133 磁気ディスクドライブインターフェース
134 光ドライブインターフェース
135 オペレーティングシステム
136 アプリケーションプログラム
136’ アプリケーションプログラム
137 他のプログラムモジュール
138 プログラムデータ
140 キーボード
142 マウス
146 シリアルポートインターフェース
147 モニタ
148 ビデオアダプタ
149 リモートコンピュータ
151 ローカルエリアネットワーク
152 ワイドエリアネットワーク
153 ネットワークインターフェース
154 モデム
155 補助ディスプレイインターフェース
156 入力デバイスインターフェース
200 補助ディスプレイ
201 入力デバイス
202 電話
204 モバイルコンピュータ
206 モニタ
208 コンソール
210 ハウジング
300 リモート補助ディスプレイ
301 補助ディスプレイハードウェア
302 補助認識アプリケーション
304 補助ディスプレイAPI
306 クライアントアプリケーション
308 システムデータプロバイダ
310 ポータブルデバイスAPI
312 ユーザモードドライバフレームワーク
316 通知クライアント
324 基本ディスプレイデバイスドライバ
325 拡張ディスプレイデバイスドライバ
327 リモートスタックおよびドライバ
328 ホストハードウェア
369 デバイスアプリケーション
370 シェルプログラム
372 オフラインキャッシングマネージャ
374 TinyCLRフレームワーク
376 TinyCLRランタイムコンポーネント
377 TinyCLR USBドライバ
380 USBクライアントチップセット
402 アプリケーション
403 ユーザ体験拡張
470 シェル拡張
474 フレームワークライブラリ拡張
476 CLR拡張
477 ドライバ
479 HAL
480 HAL拡張
490 ディスプレイパネルおよびコントローラ
491 補助プロセッサ
492 メモリ/ストレージ
493 拡張ハードウェア
504 領域
506 スクリーン

Claims (20)

  1. メインコンピュータシステムに結合することができる補助デバイスであって、
    より高レベルのソフトウェアからハードウェアの違いを抽象し、必要に応じてカスタマイズされた拡張ハードウェアを、前記拡張ハードウェアの補助ディスプレイとしてサポートするために拡張可能であるハードウェアアブストラクションレイヤと、
    前記拡張ハードウェアのためのカスタムドライバとランタイムとを含むドライバと、
    前記メインコンピュータシステムまたは前記拡張ハードウェアに由来したデータに対応する情報を表示する補助ディスプレイ
    を備えたことを特徴とする補助デバイス
  2. 前記補助デバイスは、モバイル通信デバイスを備えたことを特徴とする請求項1に記載の補助デバイス
  3. 前記補助デバイスは、別個のコンピュータ、モバイル通信デバイス、ボタンアクチュエータを有する2次ディスプレイスクリーン、腕時計、壁掛けディスプレイ、ディスプレイスクリーン、デジタルピクチャフレーム、アラーム時計、テレビジョン、ラジオ、腕時計、メディアプレーヤ、民生用エレクトロニクスデバイスのメインディスプレイ内に埋め込まれるか、またはメインディスプレイを使用したデバイス、自動車、輸送または他の乗り物ユニット、前記メインコンピュータシステムのキーボードまたは他の入力デバイス、ページャ、および携帯情報端末を含む1組のデバイスタイプの中からのデバイスを備えたことを特徴とする請求項1に記載の補助デバイス
  4. 前記ランタイムは、共通言語ランタイムを含み、前記カスタムソフトウェアコードは、マネージドコードを含むことを特徴とする請求項に記載の補助デバイス
  5. 前記拡張ハードウェアをサポートするように拡張可能である補助シェルプログラムをさらに備えたことを特徴とする請求項1に記載の補助デバイス
  6. 前記補助ディスプレイは、カスタマイズ出力を表示するためにリザーブされた領域を含むことを特徴とする請求項1に記載の補助デバイス
  7. 前記拡張ハードウェアは、SPOT無線、ブルートゥース無線、GPSレシーバ、温度センサ、オーディオデコーダ、オーディオエンコーダ、追加ストレージ、バイオメトリクスセンサ、加速度計、RFIDタグ/リーダ、存在検出、ストレージアレイ/システム管理に対するインターフェース、バッテリ、RFトランスミッタ、マイクロフォン、ラジオレシーバ、モバイル電話コンポーネント、無線通信コンポーネント、無線ネットワーキングコンポーネント、およびインジケータを含む1組のコンポーネントのうちの少なくとも1つのハードウェアコンポーネントに対応することを特徴とする請求項1に記載の補助デバイス
  8. コンピューティングデバイスにおいて、
    補助デバイスファームウェアスタックを含むファームウェアを前記コンピューティングデバイスにインストールするステップであって、前記ファームウェアはメインコンピュータシステムに由来したデータに対応する補助情報を前記コンピューティングデバイスのディスプレイ上に表示するコードを含むステップと、
    前記コンピューティングデバイスにカスタマイズされた拡張ハードウェアを追加するステップと、
    前記ファームウェアスタックを拡張して前記カスタマイズされた拡張ハードウェアを、前記拡張ハードウェアの補助ディスプレイとしてサポートするステップ
    を備えることを特徴とする方法。
  9. 前記ファームウェアスタックは、ハードウェアアブストラクションレイヤを含み、前記ファームウェアスタックを拡張して前記カスタマイズされた拡張ハードウェアを、前記拡張ハードウェアの補助ディスプレイとしてサポートするステップは、前記ハードウェアアブストラクションレイヤを拡張することを含むことを特徴とする請求項に記載の方法。
  10. 前記ファームウェアスタックは、ドライバレイヤを含み、前記ファームウェアスタックを拡張して前記カスタマイズされた拡張ハードウェアを、前記拡張ハードウェアの補助ディスプレイとしてサポートするステップは、ドライバコードを拡張することを含むことを特徴とする請求項に記載の方法。
  11. 前記ファームウェアスタックは、ランタイムを含み、前記ファームウェアスタックを拡張して前記カスタマイズされた拡張ハードウェアを、前記拡張ハードウェアの補助ディスプレイとしてサポートするステップは、前記ランタイムを拡張することを含むことを特徴とする請求項に記載の方法。
  12. 前記ファームウェアスタックは、シェルプログラムを含み、前記ファームウェアスタックを拡張して前記カスタマイズされた拡張ハードウェアを、前記拡張ハードウェアの補助ディスプレイとしてサポートするステップは、前記シェルプログラムを拡張することを含むことを特徴とする請求項に記載の方法。
  13. 前記ファームウェアスタックは、フレームワークライブラリを含み、前記ファームウェアを拡張して前記カスタマイズされた拡張ハードウェアを、前記拡張ハードウェアの補助ディスプレイとしてサポートするステップは、前記フレームワークライブラリを拡張することを含むことを特徴とする請求項に記載の方法。
  14. 前記コンピューティングデバイスにカスタマイズされた拡張ハードウェアを追加するステップは、モバイル通信のコンピュータデバイスを構成することを含むことを特徴とする請求項に記載の方法。
  15. 前記カスタマイズされた拡張ハードウェアを追加するステップは、SPOT無線、ブルートゥース無線、GPSレシーバ、温度センサ、オーディオデコーダ、オーディオエンコーダ、追加ストレージ、バイオメトリクスセンサ、加速度計、RFIDタグ/リーダ、存在検出、ストレージアレイ/システム管理に対するインターフェース、バッテリ、RFトランスミッタ、マイクロフォン、ラジオレシーバ、モバイル電話コンポーネント、無線通信コンポーネント、無線ネットワーキングコンポーネント、およびインジケータを含む1組のコンポーネントのうちの少なくとも1つのハードウェアコンポーネントを追加することを含むことを特徴とする請求項に記載の方法。
  16. 前記メインコンピュータシステム上で稼働するプログラムと、前記拡張ハードウェアに対応する前記補助デバイス上で稼働するカスタムソフトウェアコードの間でデータを通信することを特徴とする請求項に記載の方法。
  17. カスタマイズ出力を表示するためにリザーブされる、前記ディスプレイの領域上にカスタム情報を表示するステップをさらに備えることを特徴とする請求項に記載の方法。
  18. コンピュータに、請求項に記載の方法を実行させるコンピュータ実行可能命令を有する1つまたは複数のコンピュータ読取り可能記憶媒体。
  19. 補助デバイスファームウェアスタックを含むファームウェアをコンピューティングデバイスにインストールするステップであって、前記ファームウェアスタックはメインコンピュータシステムに由来したデータに対応する補助情報をコンピューティングデバイスのディスプレイ上に表示するコードを含むステップと、
    前記ファームウェアスタックを拡張して前記コンピューティングデバイスに追加されたカスタマイズされた拡張ハードウェアを、前記拡張ハードウェアの補助ディスプレイとしてサポートするカスタムソフトウェアに対して前記ファームウェアスタックの少なくとも一部分を介して通信パスを確立するステップ
    コンピュータに実行させるコンピュータ実行可能命令を有する少なくとも1つのコンピュータ読取り可能記憶媒体。
  20. 前記ファームウェアスタックを拡張する前記カスタムソフトウェアは、ドライバレイヤに追加されるドライバコードを含むことを特徴とする請求項19に記載のコンピュータ読取り可能記憶媒体。
JP2005338651A 2004-11-23 2005-11-24 補助ディスプレイの拡張可能なアーキテクチャ Expired - Fee Related JP4907964B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/996,634 US7549154B2 (en) 2004-11-23 2004-11-23 Extensible architecture for auxiliary displays
US10/996,634 2004-11-23

Publications (2)

Publication Number Publication Date
JP2006209738A JP2006209738A (ja) 2006-08-10
JP4907964B2 true JP4907964B2 (ja) 2012-04-04

Family

ID=36204306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005338651A Expired - Fee Related JP4907964B2 (ja) 2004-11-23 2005-11-24 補助ディスプレイの拡張可能なアーキテクチャ

Country Status (10)

Country Link
US (1) US7549154B2 (ja)
EP (1) EP1659484A3 (ja)
JP (1) JP4907964B2 (ja)
KR (1) KR101201028B1 (ja)
CN (1) CN1782996B (ja)
AU (1) AU2005232323B2 (ja)
BR (1) BRPI0504860A (ja)
CA (1) CA2527481A1 (ja)
MX (1) MXPA05012648A (ja)
RU (1) RU2406119C2 (ja)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7221331B2 (en) * 2003-05-05 2007-05-22 Microsoft Corporation Method and system for auxiliary display of information for a computing device
US7827232B2 (en) * 2003-05-05 2010-11-02 Microsoft Corporation Record button on a computer system
US20040235520A1 (en) 2003-05-20 2004-11-25 Cadiz Jonathan Jay Enhanced telephony computer user interface allowing user interaction and control of a telephone using a personal computer
US7216221B2 (en) 2003-09-30 2007-05-08 Microsoft Corporation Method and system for unified audio control on a personal computer
US7581034B2 (en) * 2004-11-23 2009-08-25 Microsoft Corporation Sending notifications to auxiliary displays
US7711868B2 (en) * 2004-11-23 2010-05-04 Microsoft Corporation Waking a main computer system to pre-fetch data for an auxiliary computing device
US7784065B2 (en) 2005-02-07 2010-08-24 Microsoft Corporation Interface for consistent program interaction with auxiliary computing devices
EP1851664A4 (en) * 2005-02-08 2008-11-12 Eliezer Kantorowitz AMBIENTOUS SOFTWARE
US20060242590A1 (en) * 2005-04-21 2006-10-26 Microsoft Corporation Simple content format for auxiliary display devices
US20070079030A1 (en) * 2005-09-30 2007-04-05 Intel Corporation Auxiliary display and storage unit
US8972532B2 (en) * 2006-06-30 2015-03-03 Ca, Inc. Providing hardware configuration management for heterogeneous computers
KR20080047811A (ko) * 2006-11-27 2008-05-30 삼성전자주식회사 영상처리장치를 포함하는 디스플레이시스템과,영상처리장치와 연결되는 디스플레이장치 및 그디스플레이방법
US8528825B2 (en) 2007-01-03 2013-09-10 Intelleflex Corporation Long range RFID device as modem and systems implementing same
US8941496B2 (en) * 2007-01-03 2015-01-27 Intelleflex Corporation Long range RFID device for battery monitoring and systems implementing same
TWI329265B (en) * 2007-01-16 2010-08-21 Asustek Comp Inc Portable computer
US8127310B1 (en) * 2007-03-26 2012-02-28 Celio Corporation Method and apparatus for dynamically switching display drivers in mobile device operating system
US8042122B2 (en) * 2007-06-27 2011-10-18 Microsoft Corporation Hybrid resource manager
US20090021486A1 (en) * 2007-07-19 2009-01-22 Apple Inc. Dashboard Surfaces
CN101499113B (zh) * 2008-01-28 2011-03-30 联想(北京)有限公司 安全调度显示的系统、方法及辅助显示装置
US8375402B2 (en) * 2009-03-25 2013-02-12 Honeywell International Inc. Mechanism for interfacing a display screen of another technology with a computing platform
US8019903B2 (en) * 2009-03-27 2011-09-13 Microsoft Corporation Removable accessory for a computing device
US8245243B1 (en) * 2009-07-06 2012-08-14 Xilinx, Inc. Transforming device drivers to improve efficiency
US9268367B2 (en) 2010-10-13 2016-02-23 Microsoft Technology Licensing, Llc Use of low-power display on device
US9015576B2 (en) * 2011-05-16 2015-04-21 Microsoft Technology Licensing, Llc Informed partitioning of data in a markup-based document
US9843665B2 (en) 2011-05-27 2017-12-12 Microsoft Technology Licensing, Llc Display of immersive and desktop shells
JP6058643B2 (ja) 2011-05-27 2017-01-11 トムソン ライセンシングThomson Licensing 複数のスクリーンによるメディア体験を提供する方法、装置およびシステム
US8924885B2 (en) 2011-05-27 2014-12-30 Microsoft Corporation Desktop as immersive application
US10417018B2 (en) 2011-05-27 2019-09-17 Microsoft Technology Licensing, Llc Navigation of immersive and desktop shells
WO2014071367A2 (en) * 2012-11-05 2014-05-08 Rodney Aiglstorfer Systems and methods for providing financial service extensions
KR102109051B1 (ko) * 2013-08-06 2020-05-11 삼성전자주식회사 기능 확장장치, 디스플레이 장치 및 이의 제어 방법
CN105320500B (zh) * 2014-06-11 2018-08-03 先智云端数据股份有限公司 在云端环境中为应用程序编程接口封装功能的方法
US10191738B1 (en) * 2015-07-27 2019-01-29 Invensense, Inc. Systems and methods for interfacing a sensor and a processor
CN105633960A (zh) * 2016-03-09 2016-06-01 东南大学 多适应性黑启动装置
CN109672884B (zh) * 2017-10-13 2022-05-10 斑马智行网络(香港)有限公司 图像硬件编码处理方法和装置
US11153631B2 (en) * 2017-11-10 2021-10-19 Huawei Technologies Co., Ltd. Method and apparatus for playing television program
JP7412235B2 (ja) * 2020-03-17 2024-01-12 本田技研工業株式会社 情報処理装置
CN113868165A (zh) * 2021-09-28 2021-12-31 许昌许继软件技术有限公司 一种基于辅助设备就地模块的通信装置及方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4860342A (en) 1987-04-09 1989-08-22 Danner David L Computer-telephone interface method and apparatus
AU2957895A (en) 1994-07-08 1996-02-09 Algorhythms, Inc. Computer on-screen telephone having a telephone construction kit and method of operation
US5831606A (en) * 1994-12-13 1998-11-03 Microsoft Corporation Shell extensions for an operating system
US5745761A (en) * 1994-12-15 1998-04-28 International Business Machines Corporation Advanced graphics driver architecture with extension capability
JP3459149B2 (ja) 1995-11-06 2003-10-20 シャープ株式会社 電子メール転送システム
EP0777394A1 (en) 1995-12-01 1997-06-04 ALCATEL BELL Naamloze Vennootschap Method and apparatus for electronic mail transmission as short messages towards a mobile radio terminal
WO1997034405A1 (fr) 1996-03-13 1997-09-18 Ntt Mobile Communications Network Inc. Systeme et procede de notification de reception de courrier
US5991822A (en) * 1997-03-17 1999-11-23 International Business Machines Corporation System for modifying functions of static device driver using a registered driver extension extended dynamically by providing an entry point for the driver extension
US6240168B1 (en) 1998-10-29 2001-05-29 Picazo Communications Method and apparatus for controlling a computer to implement telephone functions with a displayed telephone of variable size
MXPA01011902A (es) * 1999-05-21 2002-06-21 Gen Instrument Corp Arquitectura de software para una terminal descodificadora de television que proporciona compatibilidad con entornos de operacion multiple.
GB2353184A (en) 1999-08-13 2001-02-14 Nokia Mobile Phones Ltd Disabling a touch sensitive display screen when a call is established
US6603855B1 (en) 1999-10-21 2003-08-05 Agere Systems Inc. Cordless phone notification of extended off-hook using parallel set detection
US20030023700A1 (en) * 2001-07-27 2003-01-30 Lightsurf Technologies, Inc. System and methodology providing on-board user interface
US6907482B2 (en) * 2001-12-13 2005-06-14 Microsoft Corporation Universal graphic adapter for interfacing with hardware and means for encapsulating and abstracting details of the hardware
CN1647500A (zh) * 2002-04-04 2005-07-27 通用仪表公司 用低级图形驱动器在辅助显示装置上显示图形的方法和设备
US7106472B2 (en) * 2002-10-31 2006-09-12 Hewlett-Packard Development Company, L.P. Print driver for an extended printing device
US7146488B2 (en) * 2003-04-16 2006-12-05 Hewlett-Packard Development Company, L.P. System and method for expanding processor functionality
US7221331B2 (en) * 2003-05-05 2007-05-22 Microsoft Corporation Method and system for auxiliary display of information for a computing device
US7240228B2 (en) * 2003-05-05 2007-07-03 Microsoft Corporation Method and system for standby auxiliary processing of information for a computing device

Also Published As

Publication number Publication date
US20060130072A1 (en) 2006-06-15
EP1659484A3 (en) 2008-12-17
RU2406119C2 (ru) 2010-12-10
US7549154B2 (en) 2009-06-16
AU2005232323A1 (en) 2006-06-08
CN1782996A (zh) 2006-06-07
EP1659484A2 (en) 2006-05-24
MXPA05012648A (es) 2006-05-25
KR101201028B1 (ko) 2012-11-14
CN1782996B (zh) 2010-06-16
AU2005232323B2 (en) 2010-10-21
CA2527481A1 (en) 2006-05-23
BRPI0504860A (pt) 2006-07-11
JP2006209738A (ja) 2006-08-10
KR20060057512A (ko) 2006-05-26
RU2005136309A (ru) 2007-05-27

Similar Documents

Publication Publication Date Title
JP4907964B2 (ja) 補助ディスプレイの拡張可能なアーキテクチャ
JP5323304B2 (ja) コンピュータシステムと補助ディスプレイの間でデータを交換するための方法およびシステム
JP4794205B2 (ja) コンテキスト認識型補助ディスプレイおよびアプリケーション
US7711868B2 (en) Waking a main computer system to pre-fetch data for an auxiliary computing device
US7581034B2 (en) Sending notifications to auxiliary displays
US7660914B2 (en) Auxiliary display system architecture
US20050262302A1 (en) Processing information received at an auxiliary computing device
JP2007048259A (ja) 補助コンピューティングデバイスとの一貫性のあるプログラム対話のためのインターフェース

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110325

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110623

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110628

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110721

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120106

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120112

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4907964

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees