JP5153637B2 - 仮想クライアント・コンピューティング環境内でのコマンドのハードウェア処理 - Google Patents

仮想クライアント・コンピューティング環境内でのコマンドのハードウェア処理 Download PDF

Info

Publication number
JP5153637B2
JP5153637B2 JP2008535027A JP2008535027A JP5153637B2 JP 5153637 B2 JP5153637 B2 JP 5153637B2 JP 2008535027 A JP2008535027 A JP 2008535027A JP 2008535027 A JP2008535027 A JP 2008535027A JP 5153637 B2 JP5153637 B2 JP 5153637B2
Authority
JP
Japan
Prior art keywords
queue
graphics
thread
related command
client computing
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
JP2008535027A
Other languages
English (en)
Other versions
JP2009512921A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=37499476&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP5153637(B2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2009512921A publication Critical patent/JP2009512921A/ja
Application granted granted Critical
Publication of JP5153637B2 publication Critical patent/JP5153637B2/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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Digital Computer Display Output (AREA)
  • User Interface Of Digital Computer (AREA)
  • Image Processing (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、一般にはMicrosoft(R)Windows(登録商標)Terminal Services環境などの仮想クライアント・コンピューティング環境に関し、より具体的には、そのような環境内でのグラフィックス・ハードウェアによるグラフィックス関連コマンドの処理など、そのような環境内でのコマンドのハードウェア処理に関する(MicrosoftおよびWindows(登録商標)は、米国、他国、またはその両方におけるMicrosoft Corporation社の商標である)。
組織は、通常、数十人、数百人、または数千人のコンピュータ・ユーザを有する。従来、各コンピュータ・ユーザは、そのユーザ自身のクライアント・コンピューティング・デバイスを有した。すべてのコンピュータ・ユーザのクライアント・コンピューティング・デバイスは、通常、ネットワークを介して互いに接続され、このネットワークは、広い範囲でデバイスの管理を容易にする。しかし、一部の保守が、通常、クライアント・コンピューティング・デバイス自体の側で必要であり、これは、管理者および他の情報テクノロジ(IT)担当者が、各クライアント・コンピューティング・デバイスを周期的に訪問しなければならないことを意味し、これは、時間がかかり、コストが高い。さらに、各コンピュータ・ユーザに別々のコンピューティング・デバイスを提供すること自体が、コストのかかる努力である。
したがって、最近になって、多くの組織は、そのコンピューティング・リソースをターミナル・サービスタイプの環境に移植しており、ターミナル・サービスタイプの環境を、本明細書では仮想クライアント・コンピューティング環境とも称する。これらのタイプの環境では、中央サーバ・コンピューティング・デバイスが、多数のコンピュータ・ユーザをホスティングし、各ユーザには、サーバ・コンピューティング・デバイス上のオペレーティング・システム内で動作する別々のセッションが割り当てられる。各コンピュータ・ユーザは、それでも、クライアント・コンピューティング・デバイスを有するが、そのようなクライアント・コンピューティング・デバイスは、主にダム端末として働く。ユーザは、クライアント・コンピューティング・デバイスで入力を供給し、クライアント・コンピューティング・デバイスは、ユーザに出力を供給するが、そうでない場合には、すべてのアプリケーション・プログラム処理が、サーバ・コンピューティング・デバイスで実行される。そのような仮想クライアント・コンピューティング環境の例には、Microsoft Windows(登録商標)Terminal Services環境と、米国フロリダ州フォート・ローダーデールのCitrix Systems社から入手できる仮想クライアント・コンピューティング環境とが含まれる。
仮想クライアント・コンピューティング環境は、少なくとも2つの理由から有利である。第1に、コンピューティング・ユーザのクライアント・コンピューティング・デバイスは、入出力機能だけを実行するので、非常に洗練されたものである必要がない。その結果、ユーザあたりのコストが、実質的に低下する。最新の高価なプロセッサおよび他のハードウェア構成要素を有するのではなく、たとえば、クライアント・コンピューティング・デバイスは、より安価でより低速なプロセッサならびに他のより安価なハードウェア構成要素を有することができる。全体的な性能は、劣化しない。というのは、主なアプリケーション・プログラム処理が、クライアント・コンピューティング・デバイスではなくサーバ・コンピューティング・デバイスで実行されるからである。
第2に、そのような複数ユーザ・システムでの保守は、実質的に、クライアント・コンピューティング・デバイスではなくサーバ・コンピューティング・デバイス自体で実行される。たとえば、メモリ、処理能力、ハード・ディスク・ドライブ・ストレージなどのアップグレードは、クライアント・コンピューティング・デバイスではなくサーバ・コンピューティング・デバイスのこれらのリソースを増やすことによって実現される。その結果、IT担当者がこうむる保守コストが減らされる。というのは、IT担当者が、多数の定期的保守作業を実行するために各クライアント・コンピューティング・デバイスを訪れる必要がなくなるからである。
仮想クライアント・コンピューティング環境を使用することの欠点の1つが、グラフィックス処理の分野である。洗練されたグラフィックス処理は、通常、ソフトウェアだけではなく、少なくとも部分的に専用グラフィックス・ハードウェアによって実行される。グラフィックス関連コマンドは、OpenGLなどの標準規格に従って標準化されている。コンピューティング・デバイスで動作するアプリケーション・プログラムは、そのようなグラフィックス関連コマンドを、そのコンピューティング・デバイスで動作するオペレーティング・システムに供給する。オペレーティング・システムは、これらのコマンドをコンピューティング・デバイスのグラフィックス・ハードウェアに伝え、このグラフィックス・ハードウェアは、そのコンピューティング・デバイスのディスプレイ・デバイスでのレンダリングのためまたはアプリケーション・プログラムに戻って報告するために、それらのコマンドを処理する。専用グラフィックス・ハードウェアにグラフィックス関連コマンドを処理させることによって、そのようなグラフィックス関連コマンドが、ソフトウェアで、すなわち、専門のハードウェアによって支援されずに、他の任意のソフトウェアと同様に、コンピューティング・デバイスのプロセッサによって処理される場合より、通常、数桁高速のグラフィックス処理がもたらされる。
しかし、仮想クライアント・コンピューティング環境は、グラフィックス関連コマンドを処理するために専用グラフィックス・ハードウェアを活用するのに十分な位置にない。グラフィックス・ハードウェアが、クライアント・コンピューティング・デバイス自体に配置されている場合には、サーバ・コンピューティング・デバイス上の仮想クライアント・コンピューティング環境内で動作するクライアント・アプリケーション・プログラムは、そのグラフィックス・ハードウェア使用することができない。これは、クライアント・アプリケーション・プログラムが、サーバ・コンピューティング・デバイス上で提供されるオペレーティング・システムの境界の中で動作し、したがって、グラフィックス関連コマンドを処理するためのクライアント・コンピューティング・デバイス自体のグラフィックス・ハードウェアへのアクセスを有しないからである。さらに、そのようなアクセスが可能である場合であっても、クライアント・コンピューティング・デバイスに高価なグラフィックス・ハードウェアを追加することは、そもそも、クライアント・コンピューティング・デバイスに主にダム端末として働かせることによってコストを節約する、仮想クライアント・コンピューティング環境を有する目的を没却する。
さらに、グラフィックス・ハードウェアが、サーバ・コンピューティング・デバイスに配置される場合に、通常、そのグラフィックス・ハードウェアを、サーバ・コンピューティング・デバイス上の仮想クライアント・コンピューティング環境内で動作するクライアント・アプリケーション・プログラムによって使用することはできない。たとえば、Microsoft Windows(登録商標)環境では、グラフィックス・ハードウェアは、サーバ・コンピューティング・デバイスで動作するサーバ・アプリケーション・プログラムによってのみ直接にアクセスすることができ、サーバ・コンピューティング・デバイス上の仮想クライアント・コンピューティング環境内で動作するクライアント・アプリケーション・プログラムによって直接にアクセスすることはできない。
この問題に対するLinux(R)環境での解決策は、米国ニューヨーク州アーモンクのInternational Business Machines,Inc.,社から入手可能なDeep Computing Visualization(DCV)製品に見出される(Linuxは、米国、他国、またはその両方におけるLinus Torvaldsの登録商標である)。DCVは、一般に、サーバ・コンピューティング・デバイス上の仮想クライアント・コンピューティング環境内で動作するクライアント・アプリケーション・プログラムの出力が、サーバ・コンピューティング・デバイスではなくクライアント・コンピューティング・デバイスで表示される場合であっても、サーバ・コンピューティング・デバイスのグラフィックス・ハードウェアをそのクライアント・アプリケーション・プログラムによって活用することを可能にする。DCVは、さまざまなプロセス間通信(IPC)機構を使用し、その結果、クライアント・アプリケーション・プログラムが、グラフィックス関連コマンドをサーバ・コンピューティング・デバイスのグラフィックス・ハードウェアに渡せるようにし、その後、このグラフィックス関連コマンドに対する応答が、プログラム自体に戻って渡されるか、クライアント・コンピューティング・デバイスで表示される。
しかし、DCVが、Microsoft Windows(登録商標)環境でのグラフィックス関連コマンド処理において最適より低い性能をもたらすことがわかっている。クライアント・コンピューティング・デバイスの利益のためにサーバ・コンピューティング・デバイスのグラフィックス・ハードウェアにアクセスすることの眼目が、グラフィックスの性能を高めることである限り、DCVの、最適より低い性能は、DCVがこの問題に対する適当な解決策ではないことを意味する。
本発明は、グラフィックス・ハードウェアによるグラフィックス関連コマンドの処理など、仮想クライアント・コンピューティング環境内でのコマンドのハードウェア処理に関する。
第1の態様によれば、グラフィックス・ハードウェアと、第1キューおよび第2キューと、仮想クライアント・コンピューティング環境と、サーバ・コンピューティング環境とを含むサーバ・コンピューティング・デバイスが提供される。グラフィックス・ハードウェアは、グラフィックス関連コマンドをグラフィックス関連コマンド応答の形に処理する。仮想クライアント・コンピューティング環境は、サーバ・コンピューティング・デバイスに通信可能に結合されたリモート・クライアント・コンピューティング・デバイスと相互作用する。仮想クライアント・コンピューティング環境は、グラフィックス関連コマンドを発行する符号化アプリケーションを含む。符号化アプリケーションは、グラフィックス関連コマンドを受け取り、グラフィックス関連コマンドを第1キューに置く第1スレッドを含む。符号化アプリケーションは、グラフィックス関連コマンド応答を第2キューから受け取り、グラフィックス関連コマンド応答をリモート・クライアント・コンピューティング・デバイスのディスプレイ・デバイスに通信する第2スレッドをも含む。サーバ・コンピューティング環境は、仮想クライアント・コンピューティング環境を管理し、復号アプリケーションを含む。復号アプリケーションは、グラフィックス関連コマンドを第1キューから受け取り、グラフィックス関連コマンドを処理のためにグラフィックス・ハードウェアに通信し、グラフィックス・ハードウェアからグラフィックス関連コマンド応答を受け取り、グラフィックス関連コマンド応答を第2キューに置く第3スレッドを含む。
好ましくは、Microsoft Windows(登録商標)ベースのサーバ・コンピューティング・デバイス上の仮想クライアント・コンピューティング環境内で動作するクライアント・アプリケーション・プログラムが、クライアント・コンピューティング・デバイスの利益のためにそのようなサーバ・コンピューティング・デバイスのグラフィックス・ハードウェアを活用することを可能にする機能がもたらされる。そのような活用は、好ましくは、グラフィックス・ハードウェアがクライアント・コンピューティング・デバイス自体にインストールされ、クライアント・アプリケーション・プログラムによってアクセス可能であるかのような性能とほぼ等しい性能をもたらす。
第2の態様によれば、ハードウェアと、仮想クライアント・コンピューティング環境と、サーバ・コンピューティング環境とを含むサーバ・コンピューティング・デバイスが提供される。ハードウェアは、ソフトウェアだけで達成できるよりすばやく特定のコマンドを応答の形に処理する。仮想クライアント・コンピューティング環境は、サーバ・コンピューティング・デバイスに通信可能に結合されたリモート・クライアント・コンピューティング・デバイスと相互作用し、特定のコマンドを発行し、第1スレッドと第2スレッドとを含む。サーバ・コンピューティング環境は、仮想クライアント・コンピューティング環境を管理し、第3スレッドを含む。第1スレッドは、仮想クライアント・コンピューティング環境内で発行された特定のコマンドを受け取り、それらのコマンドを第1キューに置く。第2スレッドは、応答を第2キューから受け取り、それらの応答をリモート・クライアント・コンピューティング・デバイスの対応するハードウェアに通信する。第3スレッドは、特定のコマンドを第1キューから受け取り、それらのコマンドを処理のためにハードウェアに通信し、ハードウェアから応答を受け取り、それらの応答を第2キューに置く。
第3の態様によれば、サーバ・コンピューティング・デバイスの仮想クライアント・コンピューティング環境内で動作する符号化アプリケーションによって発行される時に、グラフィックス関連コマンドをサーバ・コンピューティング・デバイスの仮想クライアント・コンピューティング環境の第1スレッドによって受け取ることを含む方法が提供される。仮想クライアント・コンピューティング環境は、サーバ・コンピューティング・デバイスに通信可能に結合されたリモート・クライアント・コンピューティング・デバイスと相互作用する。サーバ・コンピューティング環境は、仮想クライアント・コンピューティング環境を管理する。第1スレッドは、グラフィックス関連コマンドを第1キューに置く。サーバ・コンピューティング環境の第3スレッドは、グラフィックス関連コマンドを第1キューから受け取る。第3スレッドは、グラフィックス関連コマンドを、グラフィックス関連コマンド応答の形に処理するためにサーバ・コンピューティング・デバイスのグラフィックス・ハードウェアに通信する。第3スレッドは、グラフィックス関連コマンド応答をグラフィックス・ハードウェアから受け取り、これを第2キューに置く。仮想クライアント・コンピューティング環境の第2スレッドは、グラフィックス関連コマンド応答を第2キューから受け取り、これをリモート・クライアント・コンピューティング・デバイスのディスプレイ・デバイスに通信する。
第4の態様によれば、コンピュータ可読媒体と、媒体内の第1、第2、および第3の手段とを含む製造品が提供される。媒体は、記録可能データ記憶媒体、変調された搬送波信号、または別のタイプのコンピュータ可読媒体とすることができる。第1手段は、仮想クライアント・コンピューティング環境内で発行されたコマンドを受け取り、コマンドを第1キューに置く。第2手段は、第2キューから応答を受け取り、これらの応答を仮想クライアント・コンピューティング環境に関連するリモート・クライアント・コンピューティング・デバイスの対応するハードウェアに通信する。第3手段は、第1キューからコマンドを受け取り、これらのコマンドを応答への処理のためにハードウェアに通信し、ハードウェアから応答を受け取り、これらの応答を第2キューに置く。
本発明の実施形態は、従来技術に優る利益をもたらす。上で説明したDeep Computing Visualization(DCV)従来技術に似て、本発明の実施形態は、リモート・クライアント・コンピューティング・デバイスのディスプレイ・デバイスに情報を表示するためのサーバ・コンピューティング・デバイス上で動作するクライアント・アプリケーション・プログラムによる使用のためにサーバ・コンピューティング・デバイスのグラフィックス・ハードウェアを活用する。しかし、本発明の実施形態に固有のアーキテクチャは、DCVおよび他の従来技術に優る大きい性能の利益をもたらす。たとえば、上で説明したスレッドおよびキューの特定の利用は、本発明の実施形態に、DCVおよび他の従来技術に優る大きい性能の向上を与える。
本発明の他の利益、態様、および実施形態は、次の詳細な説明を読み、添付図面を参照することによって明白になる。
本発明の実施形態を、これから、図面を参照して、例としてのみ説明する。
本発明の例示的実施形態の次の詳細な説明では、本明細書の一部を形成する添付図面を参照するが、添付図面には、例として、本発明を実践できる特定の例示的実施形態が示されている。これらの実施形態は、当業者が本発明を実践できるようにするのに十分に詳細に説明される。本発明の趣旨または範囲から逸脱せずに、他の実施形態を利用することができ、論理的変更、機械的変更、および他の変更を行うことができる。したがって、次の詳細な説明は、限定的な意味で解釈されてはおらず、本発明の範囲は、添付の特許請求の範囲のみによって定義される。
図1に、本発明の実施形態による、仮想クライアント・コンピューティング環境を達成するコンピュータ・アーキテクチャ100を示す。仮想クライアント・コンピューティング環境は、Microsoft Windows(登録商標)Terminal Services環境、米国フロリダ州フォート・ローダーデールのCitrix Systems社が提供する仮想クライアント・コンピューティング環境、または別のタイプのターミナル・サービスもしくは仮想クライアント・コンピューティング環境とすることができる。コンピュータ・アーキテクチャ100は、サーバ・コンピューティング・デバイス102およびリモート・クライアント・コンピューティング・デバイス104を含む。
サーバ・コンピューティング・デバイス102は、主にソフトウェア・アプリケーションである仮想クライアント・コンピューティング環境108およびサーバ・コンピューティング環境110と、プロセッサ114、グラフィックス・ハードウェア116、および例示の都合上図1には図示されていないがサーバ・コンピューティング・デバイスに一般的に見られる他のタイプのハードウェアとを含む。仮想クライアント・コンピューティング環境108は、リモート・クライアント・コンピューティング・デバイス104に対応する。リモート・クライアント・コンピューティング・デバイス104のユーザに関する入力および出力のすべてまたは実質的にすべてが、リモート・クライアント・コンピューティング・デバイス104で実行される。しかし、そのような出力を提供するためのそのような入力の処理のすべてまたは実質的にすべてが、仮想クライアント・コンピューティング環境108内で達成される。したがって、仮想クライアント・コンピューティング環境108は、リモート・クライアント・コンピューティング・デバイス104と相互作用すると言われ、リモート・クライアント・コンピューティング・デバイス104は、ネットワークまたは他の機構を介してサーバ・コンピューティング・デバイス102に通信可能に結合される。1つだけの仮想クライアント・コンピューティング環境および1つだけのリモート・クライアント・コンピューティング・デバイス104が図1に示されているが、実際には、通常、複数のそのようなコンピューティング環境および複数のそのようなクライアント・コンピューティング・デバイスがある。
仮想クライアント・コンピューティング環境108は、オペレーティング・システム内の1セッションとして動作する。したがって、クライアント・アプリケーション112などのクライアント・アプリケーション・プログラムは、リモート・クライアント・コンピューティング・デバイス104のコンピュータ・ユーザ用の仮想クライアント・コンピューティング環境108内で動作する。仮想クライアント・コンピューティング環境108は、一実施形態で、サーバ・コンピューティング・デバイス102のそれ自体のパーティション内で動作することができる。サーバ・コンピューティング環境110は、すべての仮想クライアント・コンピューティング環境に関する管理する環境であり、したがって、仮想クライアント・コンピューティング環境108を管理する。たとえば、サーバ・コンピューティング環境110は、仮想クライアント・コンピューティング環境内で動作するクライアント・アプリケーション・プログラムなど、仮想クライアント・コンピューティング環境の実行および管理を管理する責任を負うものとすることができ、また、そのような仮想クライアント・コンピューティング環境のインスタンス化および削除の責任を負うものとすることができる。サーバ・コンピューティング環境110は、一実施形態で、サーバ・コンピューティング・デバイス102のそれ自体のパーティション内で動作することができる。
したがって、ユーザは、クライアント・アプリケーション112がリモート・クライアント・コンピューティング・デバイス104にインストールされたオペレーティング・システム上で動作しているかのように、リモート・クライアント・コンピューティング・デバイス104と対話する。しかし、実際には、オペレーティング・システムは、サーバ・コンピューティング・デバイス102にインストールされている。ユーザからの入力は、プロセッサ114およびグラフィックス・ハードウェア116などのサーバ・コンピューティング・デバイス102のハードウェア・リソースを使用する、クライアント・アプリケーション112および仮想クライアント・コンピューティング環境108内の他のアプリケーションによる処理のために、リモート・クライアント・コンピューティング・デバイス104から仮想クライアント・コンピューティング環境108に伝えられる。次に、ユーザへの出力が、クライアント・アプリケーション112または仮想クライアント・コンピューティング環境108内の他のアプリケーションからリモート・クライアント・コンピューティング・デバイス104に伝えられ、リモート・クライアント・コンピューティング・デバイス104で、たとえばリモート・クライアント・コンピューティング・デバイス104のディスプレイ・デバイス106に、その出力を表示することができる。
したがって、リモート・クライアント・コンピューティング・デバイス104は、ダム端末として働く。クライアント・コンピューティング・デバイス104は、ユーザから入力を受け取り、ユーザに出力を表示するが、入力および出力自体は、サーバ・コンピューティング・デバイス102で、仮想クライアント・コンピューティング環境108内で処理される。したがって、たとえば、処理能力のアップグレードが必要な場合に、サーバ・コンピューティング・デバイス102のハードウェアだけをアップグレードする必要があり、リモート・クライアント・コンピューティング・デバイス104のハードウェアをアップグレードする必要はない。通常、ターミナル・サービスおよび他のタイプの仮想クライアント・コンピューティング環境に帰することのできる他の利益も、図1のコンピュータ・アーキテクチャ100によって実現される。したがって、仮想クライアント・コンピューティング環境108は、コンピュータ・ユーザ自身のリモート・クライアント・コンピューティング・デバイス104に配置されるのではなく、通常はそのコンピュータ・ユーザによって物理的にアクセス可能ではないサーバ・コンピューティング・デバイス102に配置されるという点で、仮想環境である。
図2に、本発明の実施形態による、仮想クライアント・コンピューティング環境内で動作するクライアント・アプリケーション・プログラムによる高性能グラフィックス処理を達成するサーバ・コンピューティング・デバイス102のアーキテクチャをより詳細に示す。仮想クライアント・コンピューティング環境108は、ソフトウェアである符号化アプリケーション202を含む。サーバ・コンピューティング環境110は、やはりソフトウェアである復号アプリケーション204を含む。サーバ・コンピューティング・デバイス102は、仮想クライアント・コンピューティング環境108とサーバ・コンピューティング環境110との間で共用される第1キュー210および第2キュー212をも含む。第1キュー210および第2キュー212は、本発明の一実施形態で、従来のMicrosoft Windows(登録商標)アプリケーション・プログラミング・インターフェース(API)によって作成することができる。符号化アプリケーション202は、第1スレッド206および第2スレッド208を含み、復号アプリケーション204は、第3スレッド214を含む。スレッドは、より大きいプロセスまたはプログラムの一部である。したがって、第1スレッド206および第2スレッド208は、符号化アプリケーション202の一部であり、第3スレッド214は、復号アプリケーション204の一部である。符号化アプリケーション202および復号アプリケーション204は、第1キュー210および第2キュー212を共用する。
図2のアーキテクチャは、次のように動作する。第1スレッド206は、符号化アプリケーション202内からグラフィックス関連コマンドを受け取る。このグラフィックス関連コマンドは、プロセッサ114によって実行されるものなど、実質的にまたは完全にソフトウェア内であるものと比較して、グラフィックス・ハードウェア116によってよりすばやくグラフィックス関連コマンド応答の形に処理されるコマンドとすることができる。すなわち、グラフィックス関連コマンドは、最大の性能の利益をもたらすためにグラフィックス・ハードウェアによって処理される。グラフィックス関連コマンドは、OpenGLグラフィックス関連コマンドまたは他のタイプのグラフィックス関連コマンドとすることができる。
符号化アプリケーション202の第1スレッド206は、矢印218によって示されるように、グラフィックス関連コマンドを第1キュー210に置く。グラフィックス関連コマンドを第1キュー210に置くことが、第1キュー210を空でなくするすなわち、第1スレッド206がグラフィックス関連コマンドを第1キュー210に置く前に第1キュー210が空であった場合には、第1スレッド206は、復号アプリケーション204の第3スレッド214をも覚醒させる。第3スレッド214は、矢印220によって示されるように、第1キュー210からグラフィックス関連コマンドを受け取る、すなわち消費する。
第3スレッド214は、矢印222によって示されるように、グラフィックス関連コマンドをグラフィックス・ハードウェア116に通信し、グラフィックス・ハードウェア116は、そのコマンドをグラフィックス関連コマンド応答の形に処理する。グラフィックス・ハードウェア116は、プロセッサ114によるなど、応答へのコマンドの通常のソフトウェア処理が通常達成できるよりすばやく、グラフィックス関連コマンドをグラフィックス関連コマンド応答の形に処理する。第3スレッド214は、やはり矢印222によって示されるように、グラフィックス・ハードウェア116からグラフィックス関連コマンド応答を受け取る。
復号アプリケーション204の第3スレッド214は、矢印224によって示されるように、グラフィックス関連コマンド応答を第2キュー212に置く。グラフィックス関連コマンド応答を第2キュー212に置くことが、第2キュー212を空でなくするすなわち、第3スレッド214がグラフィックス関連コマンド応答を第2キュー212に置く前に第2キュー212が空であった場合に、第3スレッド214は、符号化アプリケーション202の第2スレッド208をも覚醒させる。第2スレッド208は、矢印226によって示されるように、第2キュー212からグラフィックス関連コマンド応答を受け取る、すなわち消費する。第2スレッド208は、矢印228によって示されるように、グラフィックス関連コマンド応答をリモート・クライアント・コンピューティング・デバイス104のディスプレイ・デバイス106に通信する。たとえば、この応答が、ディスプレイ・デバイス106に表示されるビットマップである場合に、第2スレッド208は、その応答をディスプレイ・デバイス106に通信する。
この形で、図2に示された本発明の実施形態は、ディスプレイ・デバイス106がグラフィックス・ハードウェア116に直接に接続されていない場合であっても、リモート・クライアント・コンピューティング・デバイス104のディスプレイ・デバイス106による最終的な表示のためのグラフィックス・ハードウェア116による機能強化されたグラフィックス関連コマンド処理を提供する。説明したDeep Computing Visualization(DCV)従来技術と比較して、図2の実施形態は、説明したように、3つのスレッドすなわち第1スレッド206、第2スレッド208、および第3スレッド214ならびに2つのキューすなわち第1キュー210および第2キュー212を使用する。この3つのスレッドすなわち第1スレッド206、第2スレッド208、および第3スレッド214およびこの2つのキューすなわち第1キュー210および第2キュー212の利用は、図2の実施形態に、DCV従来技術ならびに他の従来技術に優る性能の利益を与える。
複数の特殊な状況と特定の態様およびより一般的な態様とを、これから、図2のサーバ・コンピューティング・デバイス102のアーキテクチャの動作に関して説明する。第1に、第1キュー210が、完全に満杯であり、第1スレッド206が第1キュー210により多くのグラフィックス関連コマンドを置くことができない場合がある。そのような場合には、第1スレッド206は、第1キュー210がもはや完全に満杯ではなくなり、その結果、第1スレッド206がより多くのグラフィックス関連コマンドを第1キュー210に置くことがもう一度可能になるまで、ブロックするか待機する。第1キュー210は、第3スレッド214が第1キュー210からグラフィックス関連コマンドを受け取るか消費する時に、満杯ではなくなる。第3スレッド214が、第1キュー210からコマンドを受け取るか消費し、これが、第1キュー210を満杯から非満杯に遷移させる時に、一実施形態で、これが、第1スレッド206を覚醒させて、第1スレッド206に、それが再び第1キュー210にコマンドを置くことができることを示す。本発明の一実施形態で達成されるスレッドの覚醒は、従来のスレッド間Microsoft Windows(登録商標)イベントを送ることによって達成することができる。
第2に、同様に、第2キュー212が完全に満杯であり、第3スレッド214が、第2キュー212により多くのグラフィックス関連コマンド応答を置くことができない場合がある。そのような状況で、第3スレッド214は、第2キュー212がもはや完全に満杯ではなくなり、その結果、第3スレッド214が第2キュー212により多くのグラフィックス関連コマンド応答をもう一度置くことができるようになるまでブロックするか待機する。第2キュー212は、第2スレッド208が第2キュー212からグラフィックス関連コマンド応答を受け取るか消費する時に満杯ではなくなる。第2スレッド208が、第2キュー212から応答を受け取るか消費し、これによって第2キュー212を満杯から非満杯に遷移させる時に、一実施形態で、第2スレッド208は、第3スレッド214を覚醒させて、第3スレッド214がもう一度第2キュー212に応答を置くことができることを第3スレッド214に示す。
第3に、図2の実施形態では、第2キュー212で供給されるグラフィックス関連コマンド応答を第1キュー210で供給されるグラフィックス関連コマンドに関連付けるための備えがないことに留意されたい。これは、グラフィックス関連コマンド、特にOpenGLグラフィックス関連コマンドなどが、2つのカテゴリすなわち非同期式コマンドおよび同期式コマンドに分類される場合があるからである。前者は、グラフィックス関連コマンドを生成する符号化アプリケーション202が応答を必要としないコマンドである。そのようなコマンドには、特にOpenGLグラフィックス関連コマンドの大多数である、voidを返すコマンド、ならびに符号化アプリケーション202に関連するグラフィックス・ハードウェア・フレーム・バッファの内容を返す、OpenGL SwapBuffersコマンドの特殊事例を含めることができる。このフレーム・バッファは、ディスプレイ・デバイス106に送られるが、符号化アプリケーション202は、これが発生したことを通知される必要がない。したがって、第2スレッド208は、SwapBuffersコマンドに対する応答を第2キュー212から非同期に消費する。
したがって、グラフィックス関連コマンドの大部分が、通常は非同期式コマンドなので、第2キュー212で供給されるグラフィックス関連コマンド応答を第1キュー210で供給されるグラフィックス関連コマンドに関連付ける必要はない。グラフィックス関連コマンド応答を、グラフィックス関連コマンドと独立に処理することができ、後者を前者と同期化する必要はない。言い換えると、符号化アプリケーション202の第1スレッド206および第2スレッド208は、グラフィックス関連コマンドの大多数について、少なくとも実施的に独立に動作する。第1スレッド206は、グラフィックス関連コマンドを受け取る時に、それらを第1キュー210に置き、第2スレッド208は、第2キュー212からグラフィックス関連コマンド応答を受け取る時に、それらをディスプレイ・デバイス106に伝える。したがって、前者のアクティビティは、後者のアクティビティから分離されている。
しかし、一部のグラフィックス関連コマンドは、実際に同期式である。同期式コマンドとは、そのコマンドを生成した符号化アプリケーション202が、戻り値を必要とするコマンドである。同期式グラフィックス関連コマンドは、比較的低い頻度で発生する。したがって、そのようなコマンドに出会う時には、次の機構が使用される。第1スレッド206が、同期式グラフィックス関連コマンドを第1キュー210に置く時に、第1スレッド206は、ブロックし、このコマンドに対する応答が第2キュー212に到着するのを待つ。第2スレッド208は、当業者が了解できるとおり、第2キュー212から同期式コマンド応答を受け取るか消費する時に、矢印230によって示されるように、Microsoft Windows(登録商標)メッセージング・イベントを使用することによるなど、第1スレッド206にシグナリングするか、他の形で第1スレッド206に通知する。第1スレッド206は、これに対応して覚醒し、第2キュー212から結果(第2スレッド208によって供給できる)を読み取り、その結果を符号化アプリケーション202内に返す。この処理または機構を、第1スレッド206と第2スレッド208との間のランデブーと称する。
第4に、第2スレッド208が、次のように符号化アプリケーション202の第1スレッド206に加えて必要であることに留意されたい。第1スレッド206は、同期式コマンドの結果が入手可能になるまでブロックする場合であっても、第2キュー212内で供給される応答をも処理するのではなく、第2スレッド208が、第2キュー212内で供給される応答を処理する。というのは、SwapBuffersコマンドなどの非同期式コマンドも応答を返すことができるからである。第1スレッド206は、非同期式コマンドを第1キュー210にキューイングした直後に、符号化アプリケーション202にプロセッサ制御を返し、符号化アプリケーション202が、プロセッサ制御に、非同期式コマンドに対する応答を処理するために第1スレッド206をもう一度実行させる保証はない。その結果、第2スレッド208が、非同期式コマンドによって生成される応答をタイムリーな形で処理できるようにするために設けられる。
第5に、一般に、各仮想クライアント・コンピューティング環境内の符号化アプリケーションごとに、本発明の一実施形態で第1スレッド206および第2スレッド208というスレッドの対があることに留意されたい。符号化アプリケーション202は、OpenGLグラフィックス関連コマンドなどのグラフィックス関連コマンドを作成するという点でエンコーダである。復号アプリケーション204は、ビットマップまたはグラフィックス・レンダリング状態などの応答を作るためにこれらのコマンドをレンダリングするという点でデコーダである。
特に、OpenGLグラフィックス関連コマンドの大多数が非同期式なので、符号化アプリケーションは、コマンドを作成したならば、符号化アプリケーションの処理を継続するためにそのコマンドの完了を待つ必要がない。符号化アプリケーション202は、復号アプリケーション204による後の処理のために、単純にコマンドを第1キュー210内にキューイングすることができる。同様に、上で説明したように、復号アプリケーション204は、グラフィックス関連コマンドをグラフィックス関連コマンド応答の形に非同期に処理し、符号化アプリケーション202による後の処理のために第2キュー212内にその応答をキューイングすることができる。
図3に、本発明の実施形態に従って、第1キュー210または第2キュー212として使用できる代表的なキュー302を示す。キュー302を、作成スレッド310および消費スレッド312に関して説明する。キュー302が、第1キュー210として使用される場合には、第1スレッド206が作成スレッド310であり、第3スレッド214が消費スレッド312である。キュー302が、第2キュー212として使用される場合には、第3スレッド214が作成スレッド310であり、第2スレッド208が消費スレッド312である。
キュー302は、集合的にキュー・エントリ304と称する、複数のキュー・エントリ304A、304B、304C、…、304Nを有する。キュー・エントリ304のそれぞれは、キュー302が第1キュー210を実施する場合にはグラフィックス関連コマンドを格納することができ、キュー302が第2キュー212を実施する場合にはグラフィックス関連コマンド応答を格納することができる。キュー302に関連する2つのポインタすなわち、ヘッド・ポインタ306およびテール・ポインタ308がある。ヘッド・ポインタ306は、通常、コマンドまたはコマンド応答を置くことができる、空である次のキュー・エントリをポイントし、テール・ポインタ308は、通常、消費される次のコマンドまたはコマンド応答を含むキュー・エントリをポイントする。
しかし、テール・ポインタ308は、キュー302が完全に空の場合には空のキュー・エントリをポイントする。そのような状況では、テール・ポインタ308は、ヘッド・ポインタ306と同一の空のキュー・エントリをポイントし、その結果、テール・ポインタ308が空のキュー・エントリをポイントし、ヘッド・ポインタ306とテール・ポインタ308との両方が同一の空のキュー・エントリをポイントする時には、キューが完全に空であることがわかるようになる。したがって、最初の開始時には、キュー302が空であり、ヘッド・ポインタ306とテール・ポインタ308との両方が、最初のキュー・エントリ304Aをポイントする。さらに、ヘッド・ポインタ306は、キュー302が完全に満杯の場合に、占められているキュー・エントリをポイントすることに留意されたい。そのような状況では、ヘッド・ポインタ306は、テール・ポインタ308がポイントするのと同一の占められているキュー・エントリをポイントし、その結果、ヘッド・ポインタ306が占められているキュー・エントリをポイントし、ヘッド・ポインタ306とテール・ポインタ308との両方が同一の占められているキュー・エントリをポイントする時には、キューが完全に満杯であることがわかるようになる。
作成スレッド310は、コマンドまたは応答をキュー・エントリに置かなければならない時に、そのコマンドまたは応答をヘッド・ポインタ306によってポイントされるキュー・エントリに置き、ヘッド・ポインタ306を、本発明の一実施形態では右(あるいは、別の実施形態では左)に1キュー・エントリだけ進める。ヘッド・ポインタ306が、既に最後のキュー・エントリ304Nをポイントしている場合には、ヘッド・ポインタ306は、最初のキュー・エントリ304Aをポイントするようにロール・オーバーする。作成スレッド310が、ヘッド・ポインタ306によってポイントされるキュー・エントリが空である場合に限って、そのキュー・エントリにコマンドまたは応答を置くことに留意されたい。
しかし、作成スレッド310は、次のキュー・エントリが満杯である場合であっても、コマンドまたは応答をキュー302に置いた後に、ヘッド・ポインタ306を右側(あるいは、もう1つの実施形態では左側)の次のキュー・エントリに必ず進める。これは、コマンドおよび応答が、先入れ先出し(FIFO)の形で置かれ、消費されるからである。右側(あるいは、もう1つの実施形態では左側)の次のキュー・エントリが満杯であってもヘッド・ポインタ306をこのキュー・エントリに進めることが達成されるのは、満杯または占められている場合の、この、次のキュー・エントリが、消費スレッド312によって消費される次のキュー・エントリであり、このキュー・エントリが、次に空になるエントリであるからである。すなわち、この、次のキュー・エントリは、そのような場合にテール・ポインタ308によってポイントされることが保証されている。
消費スレッド312は、キュー・エントリ内のコマンドまたは応答を受け取るか消費しなければならない時に、テール・ポインタ308によってポイントされるコマンドまたは応答を受け取るか消費し、テール・ポインタ308を、本発明の一実施形態では右側(あるいは、もう1つの実施形態では左側)に1キュー・エントリだけ進める。テール・ポインタ308が、既に最後のキュー・エントリ304Nをポイントしている場合には、テール・ポインタ308は、最初のキュー・エントリ304Aをポイントするようにロール・オーバーする。消費スレッド312が、テール・ポインタ308によってポイントされるキュー・エントリが占められている場合に限って、そのキュー・エントリからコマンドまたは応答を受け取るか消費することに留意されたい。
しかし、消費スレッド312は、次のキュー・エントリが空である場合であっても、コマンドまたは応答をキュー302から受け取るか消費した後に、テール・ポインタ308を右側(あるいは、もう1つの実施形態では左側)の次のキュー・エントリに必ず進める。前と同様に、これは、コマンドおよび応答が、FIFOの形で置かれ、消費されるからである。右側(あるいは、もう1つの実施形態では左側)の次のキュー・エントリが空であってもテール・ポインタ308をこのキュー・エントリに進めることが達成されるのは、空である場合の、この、次のキュー・エントリが、別のコマンドまたは応答が作成スレッド310によって置かれる次のキュー・エントリであり、このキュー・エントリが、占められるか満杯になるからである。すなわち、この、次のキュー・エントリは、そのような場合にヘッド・ポインタ306によってポイントされることが保証されている。
本発明のもう1つの実施形態では、キュー302は、ヘッド・ポインタ306およびテール・ポインタ308が同一のキュー・エントリをポイントする時に空であると考えられ、キュー302は、ヘッド・ポインタ306を増分することによって、ヘッド・ポインタ306がテール・ポインタ308と等しくなるかこれを超える時に満杯であると考えられる。したがって、スレッドは、本発明のこの実施形態では、ヘッド・ポインタ306を増分することによって、ヘッド・ポインタ306がテール・ポインタ308と等しくなる場合には、ヘッド・ポインタ306を増分しない。本発明を実施するためには、前の段落で説明した実施形態、この段落で説明した実施形態、または本発明の別の実施形態のいずれかを実施することができる。
キュー302のヘッド・ポインタ306およびテール・ポインタ308を進めることが、望ましくは同期化され、当業者によって了解されるように、これをMicrosoft Windows(登録商標)API InterlockedCompareExchangePointer()の使用によって達成できることに留意されたい。作成スレッド310は、満杯のキューにエントリを追加することを許可されず、消費スレッド312は、エントリを空のキューから消費することを許可されない。この理由から、ヘッド・ポインタ306およびテール・ポインタ308を進めることまたはその移動を同期化することが望ましい。
図4に、本発明の実施形態による、キュー302のキュー・エントリ304のいずれかとして使用できる代表的なキュー・エントリ402を示す。キュー・エントリ402は、集合的にバイト404と称する複数のバイト404A、404B、404C、…、404Mからなる。一実施形態で、最初の2つのバイト404Aおよび404Bは、グラフィックス関連コマンドまたはグラフィックス関連コマンド応答のオペコード406を示すのに使用される。たとえば、OpenGLコマンドおよびOpenGL応答は、長さ2バイトの割り当てられたunsigned short整数であるオペコードによって識別される。残りのバイト404Cから404Mまでは、グラフィックス関連コマンドおよびコマンド応答のパラメータ408を表すのに使用され、このパラメータ408は、問題のコマンドまたは応答に依存して、個数およびフォーマットにおいて変化する。たとえば、OpenGLコマンドglVertex3fvは、それぞれが型GLfloatである3つのパラメータを使用する。
一実施形態で、キュー・エントリ402は、それが保持するグラフィックス関連コマンドまたはコマンド応答のタイプに関わりなく固定サイズを有し、一部のバイト404が所与のコマンドまたは応答についてキュー・エントリ402によって使用されない場合が生じるようになっている。言い換えると、一部のグラフィックス関連コマンドおよびコマンド応答が、他のコマンドまたはコマンド応答より長い場合がある。したがって、この実施形態のキュー・エントリ402は、最長のグラフィックス関連コマンドまたはコマンド応答を保持するサイズにされ、その結果、キュー・エントリ402が、必要に応じて任意のグラフィックス関連コマンドまたはコマンド応答を保持できることが保証されるようになっている。
図5、6、7、および8に、それぞれ、本発明のさまざまな実施形態による、仮想クライアント・コンピューティング環境内で高性能グラフィックス関連コマンド処理を達成する方法500、520、540、および560を示す。方法500、520、540、および560は、一緒に、そのような高性能グラフィックス関連コマンド処理を達成する単一の方法を形成する。しかし、方法500、520、540、および560を、実質的に互いと同時に、互いと相対的に独立に実行することができる。方法500、520、540、および560が実行されるかどうかは、それぞれ、第1キュー210に置かれるコマンドがあるかどうか、第1キュー210に消費されるコマンドがあるかどうか、第2キュー212に置かれる応答があるかどうか、および第2キュー212に消費される応答があるかどうかに、大いに依存する。
まず図5を参照すると、方法500は、仮想クライアント・コンピューティング環境108内で、その中で動作する符号化アプリケーション202などによって発行されるものとすることができるグラフィックス関連コマンドが第1スレッド206によって受け取られる時(502)に実行される。第1スレッド206は、そのグラフィックス関連コマンドを第1キュー210に置くことを試みる(504)。第1キュー210のヘッド・ポインタによってポイントされるキュー・エントリが満杯である場合(506)には、第1スレッド206は、第3スレッド214によって覚醒されるまでブロックする(508)。ある点で、このキュー・エントリが、空であるか空になり、第1スレッド206が、ヘッド・ポインタによってポイントされるキュー・エントリにコマンドを置く(510)。その後、第1スレッド206は、ヘッド・ポインタを第1キュー210内の次のキュー・エントリに進める(512)。
部分510でのヘッド・ポインタによってポイントされるキュー・エントリへのコマンドの配置が、第1キュー210を空でなくする(514)(すなわち、第1キュー210が、前には空であったが今はもはや空ではない)場合に、第1スレッド206は、第3スレッド214がこのコマンドを消費するようにするために、第3スレッド214を覚醒させる(516)こともできる。その後、方法500は、終了するが(518)、第1キュー210への配置のために第1スレッド206によってグラフィックス関連コマンドが受け取られるたびに繰り返される。すなわち、方法500は、第1スレッド206が、グラフィックス関連コマンドを発行するために符号化アプリケーションによって進入されるたびに繰り返される。
次に図6を参照すると、方法520は、グラフィックス関連コマンドが第1キュー210から第3スレッド214によって受け取られなければならない時に実行される。方法520を、第3スレッド214が第1キュー210からグラフィックス関連コマンドを受け取ることを試みる(522)時に実行されることに関連して開始されるものとして説明する。したがって、第1キュー210のテール・ポインタによってポイントされるキュー・エントリが空である場合(524)には、第3スレッド214は、現在は第1キュー210に消費されるべきコマンドがあることを示すために第1スレッド206によって覚醒されるまで、ブロックする(526)。実際には、その後、方法520が、部分526で開始される。というのは、当初に、第1キュー210にコマンドがある状態になるまで、方法520が覚醒されないからである。しかし、方法520は、図6では、例示の一貫性および図5の方法500との対応のために、部分522で第1キュー210からのグラフィックス関連コマンドの受取を試みることによって開始されるものとして示されている。
したがって、最終的に、第3スレッド214は、テール・ポインタによってポイントされるキュー・エントリのコマンドを受け取る(528)。コマンドを受け取ることによって、そのコマンドがキュー・エントリから消費され、このキュー・エントリは、その後、空になる。第3スレッド214は、テール・ポインタを第1キュー210内の次のキュー・エントリに進める(530)。さらに、テール・ポインタによってポイントされるキュー・エントリのコマンドの受取が、第1キュー210を満杯でなくする(532)(すなわち、第1キュー210が前には満杯であったが今はもはや満杯でない)場合には、第3スレッド214は、第1スレッド206を覚醒させ(534)、この第1スレッド206は、図5の方法500の部分508でブロックしていた可能性がある。第3スレッド214は、最終的に、処理のためにグラフィックス関連コマンドをグラフィックス・ハードウェア116に通信する(536)。その後、第3スレッド214は、方法520を522で開始して繰り返す。すなわち、第3スレッド214は、ある点で、第1キュー210内のすべてのコマンドを受け取り、部分526でブロックするようになる可能性がある。
次に、図7を参照すると、方法540は、グラフィックス関連コマンド応答が第3スレッド214によってグラフィックス・ハードウェア116から受け取られる時(542)に実行される。方法540は、図6の方法520と同時に第3スレッド214によって実行される。したがって、第3スレッド214が、方法520の部分526でブロックすることは、第3スレッド214が方法520に関してブロックするのであって、図7の方法540に関してブロックするのではないことを意味する。同様に、第3スレッド214が方法540の部分548でブロックすることは、第3スレッド214が方法540に関してブロックするのであって、図6の方法520に関してブロックするのではないことを意味する。
第3スレッド214は、グラフィックス関連コマンド応答を第2キュー212に置くことを試みる(544)。第2キュー212のヘッド・ポインタによってポイントされるキュー・エントリが満杯である場合(546)には、第3スレッド214は、第2スレッド208によって覚醒されるまでブロックする(548)。ある点で、このキュー・エントリが、空であるか空になり、第3スレッド214が、ヘッド・ポインタによってポイントされるキュー・エントリに応答を置く(550)。その後、第3スレッド214は、ヘッド・ポインタを第2キュー212内の次のキュー・エントリに進める(552)。
部分550でのヘッド・ポインタによってポイントされるキュー・エントリへの応答の配置が、第2キュー212を空でなくする(554)(すなわち、第2キュー212が、前には空であったが今はもはや空ではない)場合に、第3スレッド214は、第2スレッド208がこの応答を消費するようにするために、第2スレッド208を覚醒させる(556)こともできる。その後、方法540は、終了するが(558)、第2キュー212への配置のために第3スレッド214によってグラフィックス関連コマンド応答が受け取られるたびに繰り返される。すなわち、方法540は、第3スレッド214が、グラフィックス・ハードウェア116から応答を受け取るたびに繰り返される。
最後に図8を参照すると、方法560は、グラフィックス関連コマンド応答が第2キュー212から第2スレッド208によって受け取られなければならない時に実行される。方法560を、第2スレッド208が第2キュー212からグラフィックス関連コマンド応答を受け取ることを試みる(562)時に実行されることに関連して開始されるものとして説明する。したがって、第2キュー212のテール・ポインタによってポイントされるキュー・エントリが空である場合(564)には、第2スレッド208は、現在は第2キュー212に消費されるべき応答があることを示すために第3スレッド214によって覚醒されるまで、ブロックする(566)。実際には、その後、方法560が、部分566で開始される。というのは、当初に、第2キュー212にコマンドがある状態になるまで、方法560が覚醒されないからである。しかし、方法560は、図8では、例示の一貫性および図7の方法540との対応のために、部分562で第2キュー212からのグラフィックス関連コマンド応答の受取を試みることによって開始されるものとして示されている。
したがって、最終的に、第2スレッド208は、テール・ポインタによってポイントされるキュー・エントリの応答を受け取る(568)。応答を受け取ることによって、その応答がキュー・エントリから消費され、このキュー・エントリは、その後、空になる。第2スレッド208は、テール・ポインタを第2キュー212内の次のキュー・エントリに進める(570)。さらに、テール・ポインタによってポイントされるキュー・エントリの応答の受取が、第2キュー212を満杯でなくする(572)(すなわち、第2キュー212が前には満杯であったが今はもはや満杯でない)場合には、第2スレッド208は、第3スレッド214を覚醒させ(574)、この第3スレッド214は、図7の方法540の部分548でブロックしていた可能性がある。第2スレッド208は、最終的に、グラフィックス関連コマンド応答をリモート・クライアント・コンピューティング・デバイス104のディスプレイ・デバイス106に通信する(576)。その後、第2スレッド208は、方法560を562で開始して繰り返す。すなわち、第2スレッド208は、ある点で、第2キュー212内のすべての応答を受け取り、部分566でブロックするようになる可能性がある。
特定の実施形態を本明細書で図示し、説明したが、同一の目的を達成するように計算された任意の配置を、図示の特定の実施形態と置換できることを当業者が了解するであろうことに留意されたい。したがって、本願は、本発明の実施形態のすべての適応または変形を含むことが意図されている。たとえば、本発明の実施形態を、実質的に、グラフィックス関連コマンドをグラフィックス関連コマンド応答の形に処理するグラフィックス関連ハードウェアに関して本明細書で説明した。しかし、本発明の他の実施形態は、他のタイプのコマンドを他のタイプのコマンド応答の形に処理する他のタイプのハードウェアに適用可能である。したがって、本発明が特許請求の範囲およびその同等物のみによって限定されることが、明らかに意図されている。
本発明の実施形態による、仮想クライアント・コンピューティング環境を実施するコンピュータ・アーキテクチャを示す図である。 本発明の実施形態による、仮想クライアント・コンピューティング環境内で高性能グラフィックス関連コマンド処理を達成するサーバ・コンピューティング・デバイスのアーキテクチャを示す図である。 本発明の実施形態による、図2のコンピュータ・アーキテクチャ内で使用できるキューを示す図である。 本発明の実施形態による、図3のキュー内で使用できるキュー・エントリを示す図である。 本発明の実施形態による、仮想クライアント・コンピューティング環境内で高性能グラフィックス関連コマンド処理を達成する方法を示す流れ図である。 本発明の実施形態による、仮想クライアント・コンピューティング環境内で高性能グラフィックス関連コマンド処理を達成する方法を示す流れ図である。 本発明の実施形態による、仮想クライアント・コンピューティング環境内で高性能グラフィックス関連コマンド処理を達成する方法を示す流れ図である。 本発明の実施形態による、仮想クライアント・コンピューティング環境内で高性能グラフィックス関連コマンド処理を達成する方法を示す流れ図である。
符号の説明
100 コンピュータ・アーキテクチャ
102 サーバ・コンピューティング・デバイス
104 リモート・クライアント・コンピューティング・デバイス
106 ディスプレイ・デバイス
108 仮想クライアント・コンピューティング環境
110 サーバ・コンピューティング環境
112 クライアント・アプリケーション
114 プロセッサ
116 グラフィックス・ハードウェア
202 符号化アプリケーション
204 復号アプリケーション
206 第1スレッド
208 第2スレッド
210 第1キュー
212 第2キュー
214 第3スレッド
218 矢印
220 矢印
222 矢印
224 矢印
226 矢印
228 矢印
230 矢印
302 キュー
304 キュー・エントリ
304A キュー・エントリ
304B キュー・エントリ
304C キュー・エントリ
304N キュー・エントリ
306 ヘッド・ポインタ
308 テール・ポインタ
310 作成スレッド
312 消費スレッド
402 キュー・エントリ
404 バイト
404A バイト
404B バイト
404C バイト
404N バイト
406 オペコード
408 パラメータ
500 方法
502 グラフィックス関連コマンドを第1スレッドによって受け取るステップ
504 第1スレッドによってグラフィックス関連コマンドを第1キューに置くステップ
506 ヘッド・ポインタによってポイントされるキュー・エントリが満杯かどうかを判定するステップ
508 覚醒されるまでブロックするステップ
510 ヘッド・ポインタによってポイントされるキュー・エントリにコマンドを置くステップ
512 ヘッド・ポインタを次のキュー・エントリに進めるステップ
514 ヘッド・ポインタによってポイントされるキュー・エントリへのコマンドの配置が、キューを空でなくするかどうかを判定するステップ
516 第3スレッドを覚醒させるステップ
520 方法
522 第3スレッドによって第1キューからグラフィックス関連コマンドを受け取るステップ
524 テール・ポインタによってポイントされるキュー・エントリが空かどうかを判定するステップ
526 覚醒されるまでブロックするステップ
528 テール・ポインタによってポイントされるキュー・エントリのコマンドを受け取るステップ
530 テール・ポインタを次のキュー・エントリに進めるステップ
532 テール・ポインタによってポイントされるキュー・エントリのコマンドの受取が、キューを満杯でなくするかどうかを判定するステップ
534 第1スレッドを覚醒させるステップ
536 グラフィックス関連コマンドを第3スレッドによってグラフィックス・ハードウェアに通信するステップ
540 方法
542 グラフィックス関連コマンド応答を第3スレッドによってグラフィックス・ハードウェアから受け取るステップ
544 グラフィックス関連コマンド応答を第3スレッドによって第2キューに置くステップ
546 ヘッド・ポインタによってポイントされるキュー・エントリが満杯かどうかを判定するステップ
548 覚醒されるまでブロックするステップ
550 ヘッド・ポインタによってポイントされるキュー・エントリに応答を置くステップ
552 ヘッド・ポインタを次のキュー・エントリに進めるステップ
554 ヘッド・ポインタによってポイントされるキュー・エントリへの応答の配置が、キューを空でなくするかどうかを判定するステップ
556 第2スレッドを覚醒させるステップ
560 方法
562 第2スレッドによって第2キューからグラフィックス関連コマンド応答を受け取るステップ
564 テール・ポインタによってポイントされるキュー・エントリが空かどうかを判定するステップ
566 覚醒されるまでブロックするステップ
568 テール・ポインタによってポイントされるキュー・エントリの応答を受け取るステップ
570 テール・ポインタを次のキュー・エントリに進めるステップ
572 テール・ポインタによってポイントされるキュー・エントリの応答の受取が、キューを満杯でなくするかどうかを判定するステップ
574 第3スレッドを覚醒させるステップ
576 グラフィックス関連コマンド応答を第2スレッドによってディスプレイ・デバイスに通信するステップ

Claims (13)

  1. サーバ・コンピューティング・デバイスであって、
    グラフィックス関連コマンドをグラフィックス関連コマンド応答の形に処理するグラフィックス・ハードウェアと、
    第1キューと、
    第2キューと、
    前記サーバ・コンピューティング・デバイスに通信可能に結合された、ダム端末として働くリモート・クライアント・コンピューティング・デバイスと相互作用する仮想クライアント・コンピューティング環境と、
    前記仮想クライアント・コンピューティング環境を管理するサーバ・コンピューティング環境と
    を備え、
    前記仮想クライアント・コンピューティング環境は、
    前記グラフィックス関連コマンドを発行する符号化アプリケーションであって、
    前記グラフィックス関連コマンドを受け取り、前記グラフィックス関連コマンドを前記第1キューに置く第1スレッドと、
    前記グラフィックス関連コマンド応答を前記第2キューから受け取り、前記グラフィックス関連コマンド応答を前記リモート・クライアント・コンピューティング・デバイスのディスプレイ・デバイスに通信する第2スレッドと
    を含む符号化アプリケーション
    を含み、
    前記サーバ・コンピューティング環境は、
    前記グラフィックス関連コマンドを前記第1キューから受け取り、前記グラフィックス関連コマンドを処理のために前記グラフィックス・ハードウェアと通信し、前記グラフィックス・ハードウェアから前記グラフィックス関連コマンド応答を受け取り、前記グラフィックス関連コマンド応答を前記第2キューに置く第3スレッドを含む復号アプリケーション
    を含み、
    前記第1キューは、複数のキュー・エントリを含み、前記第1スレッドは、ヘッド・ポインタによってポイントされるキュー・エントリに前記グラフィックス関連コマンドの1つを置き、その結果、前記ヘッド・ポインタが、次の使用可能なキュー・エントリに移動されるようになっており、前記第3スレッドは、テール・ポインタによってポイントされるキュー・エントリの前記グラフィックス関連コマンドの1つを受け取り、その結果、前記テール・ポインタが、前記グラフィックス関連コマンドの1つを含む次のキュー・エントリに移動されるように構成され、
    前記第2キューは、複数のキュー・エントリを含み、前記第3スレッドは、ヘッド・ポインタによってポイントされるキュー・エントリに前記グラフィックス関連コマンド応答の1つを置き、その結果、前記ヘッド・ポインタが、次の使用可能なキュー・エントリに移動されるようになっており、前記第2スレッドは、テール・ポインタによってポイントされるキュー・エントリの前記グラフィックス関連コマンド応答の1つを受け取り、その結果、前記テール・ポインタが、前記グラフィックス関連コマンド応答の1つを含む次のキュー・エントリに移動されるように構成される、
    サーバ・コンピューティング・デバイス。
  2. 前記グラフィックス関連コマンドは、同期式グラフィックス関連コマンドを含み、前記第1スレッドは、前記同期式グラフィックス関連コマンドを前記第1キューに置き、前記第2スレッドが前記同期式グラフィックス関連コマンドに関連するグラフィックス関連コマンド応答を前記第2キューから受け取るまで前記第1キューにさらなるグラフィックス関連コマンドを置くのを待つ、請求項1に記載のサーバ・コンピューティング・デバイス。
  3. サーバ・コンピューティング・デバイスであって、
    ソフトウェアだけで達成できるよりすばやく特定のコマンドを応答の形に処理するハードウェアと、
    前記サーバ・コンピューティング・デバイスに通信可能に結合された、ダム端末として働くリモート・クライアント・コンピューティング・デバイスと相互作用し、前記特定のコマンドを発行する仮想クライアント・コンピューティング環境と、
    前記仮想クライアント・コンピューティング環境を管理するサーバ・コンピューティング環境と
    を備え、
    前記仮想クライアント・コンピューティング環境は、
    前記仮想クライアント・コンピューティング環境内で発行された前記特定のコマンドを受け取り、前記特定のコマンドを第1キューに置く第1スレッドと、
    前記応答を第2キューから受け取り、前記応答を前記リモート・クライアント・コンピューティング・デバイスの対応するハードウェアに通信する第2スレッドと
    を含み、
    前記サーバ・コンピューティング環境は、
    前記特定のコマンドを前記第1キューから受け取り、前記特定のコマンドを処理のために前記ハードウェアに通信し、前記ハードウェアから前記応答を受け取り、前記応答を前記第2キューに置く第3スレッドを含み、
    前記第1キューは、複数のキュー・エントリを含み、前記第1スレッドは、ヘッド・ポインタによってポイントされるキュー・エントリに前記特定のコマンドの1つを置き、その結果、前記ヘッド・ポインタが、次の使用可能なキュー・エントリに移動されるようになっており、前記第3スレッドは、テール・ポインタによってポイントされるキュー・エントリの前記特定のコマンドの1つを受け取り、その結果、前記テール・ポインタが、前記特定のコマンドの1つを含む次のキュー・エントリに移動されるように構成され、
    前記第2キューは、複数のキュー・エントリを含み、前記第3スレッドは、ヘッド・ポインタによってポイントされるキュー・エントリに前記応答の1つを置き、その結果、前記ヘッド・ポインタが、次の使用可能なキュー・エントリに移動されるようになっており、前記第2スレッドは、テール・ポインタによってポイントされるキュー・エントリの前記応答の1つを受け取り、その結果、前記テール・ポインタが、前記応答の1つを含む次のキュー・エントリに移動されるように構成される、
    サーバ・コンピューティング・デバイス
  4. 前記仮想クライアント・コンピューティング環境は、前記第1スレッドおよび前記第2スレッドを含む符号化アプリケーションを含む、請求項3に記載のサーバ・コンピューティング・デバイス。
  5. 前記サーバ・コンピューティング環境は、前記第3スレッドを含む復号アプリケーションを含む、請求項3または4に記載のサーバ・コンピューティング・デバイス。
  6. 前記ハードウェアは、グラフィックス・ハードウェアであり、前記特定のコマンドは、グラフィックス関連コマンドである、請求項3ないし5のいずれかに記載のサーバ・コンピューティング・デバイス。
  7. 仮想クライアント・コンピューティング環境及びサーバ・コンピューティング環境を備えるサーバ・コンピューティング・デバイスにおいて実行される方法であり、
    前記仮想クライアント・コンピューティング環境は、前記サーバ・コンピューティング・デバイスに通信可能に結合された、ダム端末として働くリモート・クライアント・コンピューティング・デバイスと相互作用し、前記サーバ・コンピューティング環境は、前記仮想クライアント・コンピューティング環境を管理し、
    前記方法は、
    前記仮想クライアント・コンピューティング環境内で動作する符号化アプリケーションによって発行される時に、グラフィックス関連コマンドを前記サーバ・コンピューティング・デバイスの仮想クライアント・コンピューティング環境の第1スレッドによって受け取ること、
    前記グラフィックス関連コマンドを前記第1スレッドによって第1キューに置くこと、
    前記グラフィックス関連コマンドを前記サーバ・コンピューティング環境の第3スレッドによって前記第1キューから受け取ること、
    前記グラフィックス関連コマンドを、グラフィックス関連コマンド応答の形に処理するために前記第3スレッドによって前記サーバ・コンピューティング・デバイスのグラフィックス・ハードウェアに通信すること、
    前記グラフィックス関連コマンド応答を前記第3スレッドによって前記グラフィックス・ハードウェアから受け取ること、
    前記グラフィックス関連コマンド応答を前記第3スレッドによって第2キューに置くこと、
    前記グラフィックス関連コマンド応答を前記仮想クライアント・コンピューティング環境の第2スレッドによって前記第2キューから受け取ること、および、
    前記グラフィックス関連コマンド応答を前記第2スレッドによって前記リモート・クライアント・コンピューティング・デバイスのディスプレイ・デバイスに通信すること
    を含み、
    前記第1キューは、複数のキュー・エントリを含み、前記第1スレッドは、ヘッド・ポインタによってポイントされるキュー・エントリに前記グラフィックス関連コマンドの1つを置き、その結果、前記ヘッド・ポインタが、次の使用可能なキュー・エントリに移動されるようになっており、前記第3スレッドは、テール・ポインタによってポイントされるキュー・エントリの前記グラフィックス関連コマンドの1つを受け取り、その結果、前記テール・ポインタが、前記グラフィックス関連コマンドの1つを含む次のキュー・エントリに移動されるように構成され、
    前記第2キューは、複数のキュー・エントリを含み、前記第3スレッドは、ヘッド・ポインタによってポイントされるキュー・エントリに前記グラフィックス関連コマンド応答の1つを置き、その結果、前記ヘッド・ポインタが、次の使用可能なキュー・エントリに移動されるようになっており、前記第2スレッドは、テール・ポインタによってポイントされるキュー・エントリの前記グラフィックス関連コマンド応答の1つを受け取り、その結果、前記テール・ポインタが、前記グラフィックス関連コマンド応答の1つを含む次のキュー・エントリに移動されるように構成される、
    方法
  8. 前記グラフィックス関連コマンドを前記第1スレッドによって前記第1キューに置くことは、前記第1スレッドによって、
    ヘッド・ポインタによってポイントされる前記第1キューのキュー・エントリに前記グラフィックス関連コマンドを置くこと、
    前記キュー・エントリに前記グラフィックス関連コマンドを置くことが、前記第1キューを空でなくする場合に、前記第3スレッドを覚醒させること、
    前記ヘッド・ポインタを次のキュー・エントリに進めること、および、
    前記第1キューが完全に満杯である場合に、前記第1キューのもう1つのキュー・エントリが空になるまでブロックすること
    を含む、請求項7に記載の方法
  9. 前記グラフィックス関連コマンドを前記第3スレッドによって前記第1キューから受け取ることは、前記第3スレッドによって、
    前記グラフィックス関連コマンドをテール・ポインタによってポイントされる前記第1キューのキュー・エントリから受け取ること、
    前記キュー・エントリからの前記グラフィックス関連コマンドの受取が、前記第1キューを満杯でなくする場合に、前記第1スレッドを覚醒させること、
    前記テール・ポインタを次のキュー・エントリに進めること、および、
    前記第1キューが完全に空である場合に、前記第1キューのもう1つのキュー・エントリが空でなくなるまでブロックすること
    を含む、請求項7または8に記載の方法
  10. 前記グラフィックス関連コマンド応答を前記第3スレッドによって前記第2キューに置くことは、前記第3スレッドによって、
    前記グラフィックス関連コマンド応答をヘッド・ポインタによってポイントされる前記第2キューのキュー・エントリに置くこと、
    前記キュー・エントリに前記グラフィックス関連コマンド応答を置くことが、前記第2キューを空でなくする場合に、前記第2スレッドを覚醒させること、
    前記ヘッド・ポインタを次のキュー・エントリに進めること、および、
    前記第2キューが完全に満杯である場合に、前記第2キューのもう1つのキュー・エントリが空になるまでブロックすること
    を含む、請求項7ないし9のいずれかに記載の方法
  11. 前記グラフィックス関連コマンド応答を前記第2スレッドによって前記第2キューから受け取ることは、前記第2スレッドによって、
    前記グラフィックス関連コマンド応答をテール・ポインタによってポイントされる前記第2キューのキュー・エントリから受け取ること、
    前記キュー・エントリからの前記グラフィックス関連コマンド応答の受取が、前記第2キューを満杯でなくする場合に、前記第3スレッドを覚醒させること、
    前記テール・ポインタを次のキュー・エントリに進めること、および、
    前記第2キューが完全に空である場合に、前記第2キューのもう1つのキュー・エントリが空でなくなるまでブロックすること
    を含む、請求項7ないし10のいずれかに記載の方法。
  12. 前記グラフィックス関連コマンドを前記第1スレッドによって前記第1キューに置いた後に、
    前記第1スレッドによって、前記グラフィックス関連コマンドが同期式グラフィックス関連コマンドであることを判定すること、
    それに応答して、前記第1スレッドが前記第1キューにさらなるグラフィックス関連コマンドを置かなくなるように、前記第1スレッドがブロックすること、
    前記グラフィックス関連コマンド応答を前記第2スレッドによって前記第2キューから受け取った後に、
    前記第2スレッドによって、前記グラフィックス関連コマンド応答が同期式グラフィックス関連コマンド応答であることを判定すること、および、
    それに応答して、前記第1スレッドが前記第1キューにさらなるグラフィックス関連コマンドを置くことをもう一度開始できるようにするために、前記第2スレッドが前記第1スレッドを覚醒させること
    をさらに含む、請求項7ないし11のいずれかに記載の方法。
  13. プログラムがコンピュータ上で動作する時に当該コンピュータに請求項7ないし12のいずれかに記載の方法を実行させるコンピュータ・プログラム
JP2008535027A 2005-10-15 2006-10-12 仮想クライアント・コンピューティング環境内でのコマンドのハードウェア処理 Expired - Fee Related JP5153637B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/250,866 2005-10-15
US11/250,866 US8266232B2 (en) 2005-10-15 2005-10-15 Hardware processing of commands within virtual client computing environment
PCT/EP2006/067319 WO2007045591A1 (en) 2005-10-15 2006-10-12 Hardware processing of commands within virtual client computing environment

Publications (2)

Publication Number Publication Date
JP2009512921A JP2009512921A (ja) 2009-03-26
JP5153637B2 true JP5153637B2 (ja) 2013-02-27

Family

ID=37499476

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008535027A Expired - Fee Related JP5153637B2 (ja) 2005-10-15 2006-10-12 仮想クライアント・コンピューティング環境内でのコマンドのハードウェア処理

Country Status (9)

Country Link
US (1) US8266232B2 (ja)
EP (1) EP1934734A1 (ja)
JP (1) JP5153637B2 (ja)
KR (1) KR101013049B1 (ja)
CN (1) CN101288050A (ja)
BR (1) BRPI0617372A2 (ja)
CA (1) CA2625051C (ja)
TW (1) TWI403956B (ja)
WO (1) WO2007045591A1 (ja)

Families Citing this family (353)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8745173B1 (en) 2011-12-30 2014-06-03 hopTo Inc. Client computing system for and method of receiving cross-platform remote access to 3D graphics applications
US20070084897A1 (en) 2003-05-20 2007-04-19 Shelton Frederick E Iv Articulating surgical stapling instrument incorporating a two-piece e-beam firing mechanism
US9060770B2 (en) 2003-05-20 2015-06-23 Ethicon Endo-Surgery, Inc. Robotically-driven surgical instrument with E-beam driver
US8215531B2 (en) 2004-07-28 2012-07-10 Ethicon Endo-Surgery, Inc. Surgical stapling instrument having a medical substance dispenser
US11890012B2 (en) 2004-07-28 2024-02-06 Cilag Gmbh International Staple cartridge comprising cartridge body and attached support
US9237891B2 (en) 2005-08-31 2016-01-19 Ethicon Endo-Surgery, Inc. Robotically-controlled surgical stapling devices that produce formed staples having different lengths
US8991676B2 (en) 2007-03-15 2015-03-31 Ethicon Endo-Surgery, Inc. Surgical staple having a slidable crown
US11484312B2 (en) 2005-08-31 2022-11-01 Cilag Gmbh International Staple cartridge comprising a staple driver arrangement
US7669746B2 (en) 2005-08-31 2010-03-02 Ethicon Endo-Surgery, Inc. Staple cartridges for forming staples having differing formed staple heights
US11246590B2 (en) 2005-08-31 2022-02-15 Cilag Gmbh International Staple cartridge including staple drivers having different unfired heights
US10159482B2 (en) 2005-08-31 2018-12-25 Ethicon Llc Fastener cartridge assembly comprising a fixed anvil and different staple heights
US7934630B2 (en) 2005-08-31 2011-05-03 Ethicon Endo-Surgery, Inc. Staple cartridges for forming staples having differing formed staple heights
TWI348652B (en) * 2005-10-17 2011-09-11 Via Tech Inc Driver assisted asynchronous command processing
US20070106317A1 (en) 2005-11-09 2007-05-10 Shelton Frederick E Iv Hydraulically and electrically actuated articulation joints for surgical instruments
US7753904B2 (en) 2006-01-31 2010-07-13 Ethicon Endo-Surgery, Inc. Endoscopic surgical instrument with a handle that can articulate with respect to the shaft
US7845537B2 (en) 2006-01-31 2010-12-07 Ethicon Endo-Surgery, Inc. Surgical instrument having recording capabilities
US20120292367A1 (en) 2006-01-31 2012-11-22 Ethicon Endo-Surgery, Inc. Robotically-controlled end effector
US20110024477A1 (en) 2009-02-06 2011-02-03 Hall Steven G Driven Surgical Stapler Improvements
US11278279B2 (en) 2006-01-31 2022-03-22 Cilag Gmbh International Surgical instrument assembly
US8820603B2 (en) 2006-01-31 2014-09-02 Ethicon Endo-Surgery, Inc. Accessing data stored in a memory of a surgical instrument
US8186555B2 (en) 2006-01-31 2012-05-29 Ethicon Endo-Surgery, Inc. Motor-driven surgical cutting and fastening instrument with mechanical closure system
US20110295295A1 (en) 2006-01-31 2011-12-01 Ethicon Endo-Surgery, Inc. Robotically-controlled surgical instrument having recording capabilities
US11793518B2 (en) 2006-01-31 2023-10-24 Cilag Gmbh International Powered surgical instruments with firing system lockout arrangements
US8708213B2 (en) 2006-01-31 2014-04-29 Ethicon Endo-Surgery, Inc. Surgical instrument having a feedback system
US11224427B2 (en) 2006-01-31 2022-01-18 Cilag Gmbh International Surgical stapling system including a console and retraction assembly
US8992422B2 (en) 2006-03-23 2015-03-31 Ethicon Endo-Surgery, Inc. Robotically-controlled endoscopic accessory channel
US8322455B2 (en) 2006-06-27 2012-12-04 Ethicon Endo-Surgery, Inc. Manually driven surgical cutting and fastening instrument
US10568652B2 (en) 2006-09-29 2020-02-25 Ethicon Llc Surgical staples having attached drivers of different heights and stapling instruments for deploying the same
US11980366B2 (en) 2006-10-03 2024-05-14 Cilag Gmbh International Surgical instrument
US8684253B2 (en) 2007-01-10 2014-04-01 Ethicon Endo-Surgery, Inc. Surgical instrument with wireless communication between a control unit of a robotic system and remote sensor
US11291441B2 (en) 2007-01-10 2022-04-05 Cilag Gmbh International Surgical instrument with wireless communication between control unit and remote sensor
US8652120B2 (en) 2007-01-10 2014-02-18 Ethicon Endo-Surgery, Inc. Surgical instrument with wireless communication between control unit and sensor transponders
US11039836B2 (en) 2007-01-11 2021-06-22 Cilag Gmbh International Staple cartridge for use with a surgical stapling instrument
US8540128B2 (en) 2007-01-11 2013-09-24 Ethicon Endo-Surgery, Inc. Surgical stapling device with a curved end effector
US11564682B2 (en) 2007-06-04 2023-01-31 Cilag Gmbh International Surgical stapler device
US8931682B2 (en) 2007-06-04 2015-01-13 Ethicon Endo-Surgery, Inc. Robotically-controlled shaft based rotary drive systems for surgical instruments
US7753245B2 (en) 2007-06-22 2010-07-13 Ethicon Endo-Surgery, Inc. Surgical stapling instruments
US11849941B2 (en) 2007-06-29 2023-12-26 Cilag Gmbh International Staple cartridge having staple cavities extending at a transverse angle relative to a longitudinal cartridge axis
EP2315124B1 (en) * 2008-01-27 2020-08-05 Citrix Systems, Inc. Methods and systems for remoting three dimensional graphics
US7866527B2 (en) 2008-02-14 2011-01-11 Ethicon Endo-Surgery, Inc. Surgical stapling apparatus with interlockable firing system
RU2493788C2 (ru) 2008-02-14 2013-09-27 Этикон Эндо-Серджери, Инк. Хирургический режущий и крепежный инструмент, имеющий радиочастотные электроды
US8636736B2 (en) 2008-02-14 2014-01-28 Ethicon Endo-Surgery, Inc. Motorized surgical cutting and fastening instrument
US11986183B2 (en) 2008-02-14 2024-05-21 Cilag Gmbh International Surgical cutting and fastening instrument comprising a plurality of sensors to measure an electrical parameter
US9179912B2 (en) 2008-02-14 2015-11-10 Ethicon Endo-Surgery, Inc. Robotically-controlled motorized surgical cutting and fastening instrument
US7819298B2 (en) 2008-02-14 2010-10-26 Ethicon Endo-Surgery, Inc. Surgical stapling apparatus with control features operable with one hand
US8573465B2 (en) 2008-02-14 2013-11-05 Ethicon Endo-Surgery, Inc. Robotically-controlled surgical end effector system with rotary actuated closure systems
US10390823B2 (en) 2008-02-15 2019-08-27 Ethicon Llc End effector comprising an adjunct
US8210411B2 (en) 2008-09-23 2012-07-03 Ethicon Endo-Surgery, Inc. Motor-driven surgical cutting instrument
US9005230B2 (en) 2008-09-23 2015-04-14 Ethicon Endo-Surgery, Inc. Motorized surgical instrument
US9386983B2 (en) 2008-09-23 2016-07-12 Ethicon Endo-Surgery, Llc Robotically-controlled motorized surgical instrument
US11648005B2 (en) 2008-09-23 2023-05-16 Cilag Gmbh International Robotically-controlled motorized surgical instrument with an end effector
US8608045B2 (en) 2008-10-10 2013-12-17 Ethicon Endo-Sugery, Inc. Powered surgical cutting and stapling apparatus with manually retractable firing system
US8517239B2 (en) 2009-02-05 2013-08-27 Ethicon Endo-Surgery, Inc. Surgical stapling instrument comprising a magnetic element driver
JP2012517287A (ja) 2009-02-06 2012-08-02 エシコン・エンド−サージェリィ・インコーポレイテッド 被駆動式手術用ステープラの改良
US8851354B2 (en) 2009-12-24 2014-10-07 Ethicon Endo-Surgery, Inc. Surgical cutting instrument that analyzes tissue thickness
US8783543B2 (en) 2010-07-30 2014-07-22 Ethicon Endo-Surgery, Inc. Tissue acquisition arrangements and methods for surgical stapling devices
US11298125B2 (en) 2010-09-30 2022-04-12 Cilag Gmbh International Tissue stapler having a thickness compensator
US9320523B2 (en) 2012-03-28 2016-04-26 Ethicon Endo-Surgery, Llc Tissue thickness compensator comprising tissue ingrowth features
US9629814B2 (en) 2010-09-30 2017-04-25 Ethicon Endo-Surgery, Llc Tissue thickness compensator configured to redistribute compressive forces
US9211120B2 (en) 2011-04-29 2015-12-15 Ethicon Endo-Surgery, Inc. Tissue thickness compensator comprising a plurality of medicaments
US9282962B2 (en) 2010-09-30 2016-03-15 Ethicon Endo-Surgery, Llc Adhesive film laminate
US11812965B2 (en) 2010-09-30 2023-11-14 Cilag Gmbh International Layer of material for a surgical end effector
US9168038B2 (en) 2010-09-30 2015-10-27 Ethicon Endo-Surgery, Inc. Staple cartridge comprising a tissue thickness compensator
US10945731B2 (en) 2010-09-30 2021-03-16 Ethicon Llc Tissue thickness compensator comprising controlled release and expansion
US11849952B2 (en) 2010-09-30 2023-12-26 Cilag Gmbh International Staple cartridge comprising staples positioned within a compressible portion thereof
US8695866B2 (en) 2010-10-01 2014-04-15 Ethicon Endo-Surgery, Inc. Surgical instrument having a power control circuit
US8786619B2 (en) * 2011-02-25 2014-07-22 Adobe Systems Incorporated Parallelized definition and display of content in a scripting environment
US9330430B2 (en) * 2011-03-21 2016-05-03 Apple Inc. Fast queries in a multithreaded queue of a graphics system
CA2834649C (en) 2011-04-29 2021-02-16 Ethicon Endo-Surgery, Inc. Staple cartridge comprising staples positioned within a compressible portion thereof
US20120291034A1 (en) * 2011-05-14 2012-11-15 International Business Machines Corporation Techniques for executing threads in a computing environment
US9072535B2 (en) 2011-05-27 2015-07-07 Ethicon Endo-Surgery, Inc. Surgical stapling instruments with rotatable staple deployment arrangements
US11207064B2 (en) 2011-05-27 2021-12-28 Cilag Gmbh International Automated end effector component reloading system for use with a robotic system
US8689237B2 (en) * 2011-09-22 2014-04-01 Oracle International Corporation Multi-lane concurrent bag for facilitating inter-thread communication
US8838749B1 (en) 2011-12-30 2014-09-16 hopTo Inc. Cloud based client computing system for and method of receiving cross-platform remote access to 3D graphics applications
US8769052B1 (en) 2011-12-30 2014-07-01 hopTo Inc. Cloud-based server computing system for and method of providing cross-platform remote access to 3D graphics applications
US8766990B1 (en) 2011-12-30 2014-07-01 hopTo Inc. Server computing system for and method of providing cross-platform remote access to 3D graphics applications
US9609020B2 (en) * 2012-01-06 2017-03-28 Optio Labs, Inc. Systems and methods to enforce security policies on the loading, linking, and execution of native code by mobile applications running inside of virtual machines
US9712530B2 (en) 2012-01-06 2017-07-18 Optio Labs, Inc. Systems and methods for enforcing security in mobile computing
US9787681B2 (en) 2012-01-06 2017-10-10 Optio Labs, Inc. Systems and methods for enforcing access control policies on privileged accesses for mobile devices
KR101335711B1 (ko) 2012-01-20 2013-12-04 연세대학교 산학협력단 서버, 연산 처리 방법 및 연산 처리 시스템
BR112014024098B1 (pt) 2012-03-28 2021-05-25 Ethicon Endo-Surgery, Inc. cartucho de grampos
MX358135B (es) 2012-03-28 2018-08-06 Ethicon Endo Surgery Inc Compensador de grosor de tejido que comprende una pluralidad de capas.
JP6224070B2 (ja) 2012-03-28 2017-11-01 エシコン・エンド−サージェリィ・インコーポレイテッドEthicon Endo−Surgery,Inc. 組織厚さコンペンセータを含む保持具アセンブリ
US9101358B2 (en) 2012-06-15 2015-08-11 Ethicon Endo-Surgery, Inc. Articulatable surgical instrument comprising a firing drive
US20140001231A1 (en) 2012-06-28 2014-01-02 Ethicon Endo-Surgery, Inc. Firing system lockout arrangements for surgical instruments
US9289256B2 (en) 2012-06-28 2016-03-22 Ethicon Endo-Surgery, Llc Surgical end effectors having angled tissue-contacting surfaces
JP6290201B2 (ja) 2012-06-28 2018-03-07 エシコン・エンド−サージェリィ・インコーポレイテッドEthicon Endo−Surgery,Inc. 空クリップカートリッジ用のロックアウト
US9282974B2 (en) 2012-06-28 2016-03-15 Ethicon Endo-Surgery, Llc Empty clip cartridge lockout
US11202631B2 (en) 2012-06-28 2021-12-21 Cilag Gmbh International Stapling assembly comprising a firing lockout
BR112014032776B1 (pt) 2012-06-28 2021-09-08 Ethicon Endo-Surgery, Inc Sistema de instrumento cirúrgico e kit cirúrgico para uso com um sistema de instrumento cirúrgico
US9364230B2 (en) 2012-06-28 2016-06-14 Ethicon Endo-Surgery, Llc Surgical stapling instruments with rotary joint assemblies
US9773107B2 (en) 2013-01-07 2017-09-26 Optio Labs, Inc. Systems and methods for enforcing security in mobile computing
TWI479422B (zh) * 2013-01-25 2015-04-01 Wistron Corp 電腦系統及其繪圖處理方法
MX368026B (es) 2013-03-01 2019-09-12 Ethicon Endo Surgery Inc Instrumento quirúrgico articulable con vías conductoras para la comunicación de la señal.
BR112015021082B1 (pt) 2013-03-01 2022-05-10 Ethicon Endo-Surgery, Inc Instrumento cirúrgico
US9578445B2 (en) 2013-03-13 2017-02-21 Optio Labs, Inc. Systems and methods to synchronize data to a mobile device based on a device usage context
US20140263541A1 (en) 2013-03-14 2014-09-18 Ethicon Endo-Surgery, Inc. Articulatable surgical instrument comprising an articulation lock
US9629629B2 (en) 2013-03-14 2017-04-25 Ethicon Endo-Surgey, LLC Control systems for surgical instruments
BR112015026109B1 (pt) 2013-04-16 2022-02-22 Ethicon Endo-Surgery, Inc Instrumento cirúrgico
US9826976B2 (en) 2013-04-16 2017-11-28 Ethicon Llc Motor driven surgical instruments with lockable dual drive shafts
BR112016003329B1 (pt) 2013-08-23 2021-12-21 Ethicon Endo-Surgery, Llc Instrumento cirúrgico
US9445813B2 (en) 2013-08-23 2016-09-20 Ethicon Endo-Surgery, Llc Closure indicator systems for surgical instruments
US9344733B2 (en) 2013-12-27 2016-05-17 Samsung Electronics Co., Ltd. Feature-based cloud computing architecture for physics engine
US9280845B2 (en) * 2013-12-27 2016-03-08 Qualcomm Incorporated Optimized multi-pass rendering on tiled base architectures
US9962161B2 (en) 2014-02-12 2018-05-08 Ethicon Llc Deliverable surgical instrument
US20150272557A1 (en) 2014-03-26 2015-10-01 Ethicon Endo-Surgery, Inc. Modular surgical instrument system
BR112016021943B1 (pt) 2014-03-26 2022-06-14 Ethicon Endo-Surgery, Llc Instrumento cirúrgico para uso por um operador em um procedimento cirúrgico
US9826977B2 (en) 2014-03-26 2017-11-28 Ethicon Llc Sterilization verification circuit
JP6532889B2 (ja) 2014-04-16 2019-06-19 エシコン エルエルシーEthicon LLC 締結具カートリッジ組立体及びステープル保持具カバー配置構成
US20150297222A1 (en) 2014-04-16 2015-10-22 Ethicon Endo-Surgery, Inc. Fastener cartridges including extensions having different configurations
CN106456176B (zh) 2014-04-16 2019-06-28 伊西康内外科有限责任公司 包括具有不同构型的延伸部的紧固件仓
US10561422B2 (en) 2014-04-16 2020-02-18 Ethicon Llc Fastener cartridge comprising deployable tissue engaging members
JP6612256B2 (ja) 2014-04-16 2019-11-27 エシコン エルエルシー 不均一な締結具を備える締結具カートリッジ
US9737301B2 (en) 2014-09-05 2017-08-22 Ethicon Llc Monitoring device degradation based on component evaluation
US11311294B2 (en) 2014-09-05 2022-04-26 Cilag Gmbh International Powered medical device including measurement of closure state of jaws
BR112017004361B1 (pt) 2014-09-05 2023-04-11 Ethicon Llc Sistema eletrônico para um instrumento cirúrgico
US10105142B2 (en) 2014-09-18 2018-10-23 Ethicon Llc Surgical stapler with plurality of cutting elements
US11523821B2 (en) 2014-09-26 2022-12-13 Cilag Gmbh International Method for creating a flexible staple line
BR112017005981B1 (pt) 2014-09-26 2022-09-06 Ethicon, Llc Material de escora para uso com um cartucho de grampos cirúrgicos e cartucho de grampos cirúrgicos para uso com um instrumento cirúrgico
US9924944B2 (en) 2014-10-16 2018-03-27 Ethicon Llc Staple cartridge comprising an adjunct material
US10517594B2 (en) 2014-10-29 2019-12-31 Ethicon Llc Cartridge assemblies for surgical staplers
US11141153B2 (en) 2014-10-29 2021-10-12 Cilag Gmbh International Staple cartridges comprising driver arrangements
US9844376B2 (en) 2014-11-06 2017-12-19 Ethicon Llc Staple cartridge comprising a releasable adjunct material
US10736636B2 (en) 2014-12-10 2020-08-11 Ethicon Llc Articulatable surgical instrument system
US9987000B2 (en) 2014-12-18 2018-06-05 Ethicon Llc Surgical instrument assembly comprising a flexible articulation system
US9844375B2 (en) 2014-12-18 2017-12-19 Ethicon Llc Drive arrangements for articulatable surgical instruments
MX2017008108A (es) 2014-12-18 2018-03-06 Ethicon Llc Instrumento quirurgico con un yunque que puede moverse de manera selectiva sobre un eje discreto no movil con relacion a un cartucho de grapas.
US10085748B2 (en) 2014-12-18 2018-10-02 Ethicon Llc Locking arrangements for detachable shaft assemblies with articulatable surgical end effectors
US9844374B2 (en) 2014-12-18 2017-12-19 Ethicon Llc Surgical instrument systems comprising an articulatable end effector and means for adjusting the firing stroke of a firing member
US9968355B2 (en) 2014-12-18 2018-05-15 Ethicon Llc Surgical instruments with articulatable end effectors and improved firing beam support arrangements
US11154301B2 (en) 2015-02-27 2021-10-26 Cilag Gmbh International Modular stapling assembly
US10052044B2 (en) 2015-03-06 2018-08-21 Ethicon Llc Time dependent evaluation of sensor data to determine stability, creep, and viscoelastic elements of measures
JP2020121162A (ja) 2015-03-06 2020-08-13 エシコン エルエルシーEthicon LLC 測定の安定性要素、クリープ要素、及び粘弾性要素を決定するためのセンサデータの時間依存性評価
US10245033B2 (en) 2015-03-06 2019-04-02 Ethicon Llc Surgical instrument comprising a lockable battery housing
US10441279B2 (en) 2015-03-06 2019-10-15 Ethicon Llc Multiple level thresholds to modify operation of powered surgical instruments
US9993248B2 (en) 2015-03-06 2018-06-12 Ethicon Endo-Surgery, Llc Smart sensors with local signal processing
US10433844B2 (en) 2015-03-31 2019-10-08 Ethicon Llc Surgical instrument with selectively disengageable threaded drive systems
US10617418B2 (en) 2015-08-17 2020-04-14 Ethicon Llc Implantable layers for a surgical instrument
US10105139B2 (en) 2015-09-23 2018-10-23 Ethicon Llc Surgical stapler having downstream current-based motor control
US10238386B2 (en) 2015-09-23 2019-03-26 Ethicon Llc Surgical stapler having motor control based on an electrical parameter related to a motor current
US10299878B2 (en) 2015-09-25 2019-05-28 Ethicon Llc Implantable adjunct systems for determining adjunct skew
US10524788B2 (en) 2015-09-30 2020-01-07 Ethicon Llc Compressible adjunct with attachment regions
US10736633B2 (en) 2015-09-30 2020-08-11 Ethicon Llc Compressible adjunct with looping members
US11890015B2 (en) 2015-09-30 2024-02-06 Cilag Gmbh International Compressible adjunct with crossing spacer fibers
US10980539B2 (en) 2015-09-30 2021-04-20 Ethicon Llc Implantable adjunct comprising bonded layers
US10265068B2 (en) 2015-12-30 2019-04-23 Ethicon Llc Surgical instruments with separable motors and motor control circuits
US10292704B2 (en) 2015-12-30 2019-05-21 Ethicon Llc Mechanisms for compensating for battery pack failure in powered surgical instruments
US10368865B2 (en) 2015-12-30 2019-08-06 Ethicon Llc Mechanisms for compensating for drivetrain failure in powered surgical instruments
US11213293B2 (en) 2016-02-09 2022-01-04 Cilag Gmbh International Articulatable surgical instruments with single articulation link arrangements
CN108882932B (zh) 2016-02-09 2021-07-23 伊西康有限责任公司 具有非对称关节运动构造的外科器械
US10448948B2 (en) 2016-02-12 2019-10-22 Ethicon Llc Mechanisms for compensating for drivetrain failure in powered surgical instruments
US11224426B2 (en) 2016-02-12 2022-01-18 Cilag Gmbh International Mechanisms for compensating for drivetrain failure in powered surgical instruments
US10456137B2 (en) 2016-04-15 2019-10-29 Ethicon Llc Staple formation detection mechanisms
US10828028B2 (en) 2016-04-15 2020-11-10 Ethicon Llc Surgical instrument with multiple program responses during a firing motion
US10426467B2 (en) 2016-04-15 2019-10-01 Ethicon Llc Surgical instrument with detection sensors
US11179150B2 (en) 2016-04-15 2021-11-23 Cilag Gmbh International Systems and methods for controlling a surgical stapling and cutting instrument
US10335145B2 (en) 2016-04-15 2019-07-02 Ethicon Llc Modular surgical instrument with configurable operating mode
US10492783B2 (en) 2016-04-15 2019-12-03 Ethicon, Llc Surgical instrument with improved stop/start control during a firing motion
US10357247B2 (en) 2016-04-15 2019-07-23 Ethicon Llc Surgical instrument with multiple program responses during a firing motion
US11607239B2 (en) 2016-04-15 2023-03-21 Cilag Gmbh International Systems and methods for controlling a surgical stapling and cutting instrument
US10433840B2 (en) 2016-04-18 2019-10-08 Ethicon Llc Surgical instrument comprising a replaceable cartridge jaw
US11317917B2 (en) 2016-04-18 2022-05-03 Cilag Gmbh International Surgical stapling system comprising a lockable firing assembly
US20170296173A1 (en) 2016-04-18 2017-10-19 Ethicon Endo-Surgery, Llc Method for operating a surgical instrument
US10127340B2 (en) 2016-09-30 2018-11-13 Taiwan Semiconductor Manufacturing Company, Ltd. Standard cell layout, semiconductor device having engineering change order (ECO) cells and method
US10973516B2 (en) 2016-12-21 2021-04-13 Ethicon Llc Surgical end effectors and adaptable firing members therefor
US20180168625A1 (en) 2016-12-21 2018-06-21 Ethicon Endo-Surgery, Llc Surgical stapling instruments with smart staple cartridges
US10667811B2 (en) 2016-12-21 2020-06-02 Ethicon Llc Surgical stapling instruments and staple-forming anvils
US10779823B2 (en) 2016-12-21 2020-09-22 Ethicon Llc Firing member pin angle
US11191540B2 (en) 2016-12-21 2021-12-07 Cilag Gmbh International Protective cover arrangements for a joint interface between a movable jaw and actuator shaft of a surgical instrument
MX2019007311A (es) 2016-12-21 2019-11-18 Ethicon Llc Sistemas de engrapado quirurgico.
US10736629B2 (en) 2016-12-21 2020-08-11 Ethicon Llc Surgical tool assemblies with clutching arrangements for shifting between closure systems with closure stroke reduction features and articulation and firing systems
CN110099619B (zh) 2016-12-21 2022-07-15 爱惜康有限责任公司 用于外科端部执行器和可替换工具组件的闭锁装置
US11419606B2 (en) 2016-12-21 2022-08-23 Cilag Gmbh International Shaft assembly comprising a clutch configured to adapt the output of a rotary firing member to two different systems
US10448950B2 (en) 2016-12-21 2019-10-22 Ethicon Llc Surgical staplers with independently actuatable closing and firing systems
US10537325B2 (en) 2016-12-21 2020-01-21 Ethicon Llc Staple forming pocket arrangement to accommodate different types of staples
US10835245B2 (en) 2016-12-21 2020-11-17 Ethicon Llc Method for attaching a shaft assembly to a surgical instrument and, alternatively, to a surgical robot
US11134942B2 (en) 2016-12-21 2021-10-05 Cilag Gmbh International Surgical stapling instruments and staple-forming anvils
US20180168615A1 (en) 2016-12-21 2018-06-21 Ethicon Endo-Surgery, Llc Method of deforming staples from two different types of staple cartridges with the same surgical stapling instrument
JP7010956B2 (ja) 2016-12-21 2022-01-26 エシコン エルエルシー 組織をステープル留めする方法
US10682138B2 (en) 2016-12-21 2020-06-16 Ethicon Llc Bilaterally asymmetric staple forming pocket pairs
CN106970580B (zh) * 2017-04-21 2021-02-26 北京航天发射技术研究所 一种发射车状态的监控方法
US10980537B2 (en) 2017-06-20 2021-04-20 Ethicon Llc Closed loop feedback control of motor velocity of a surgical stapling and cutting instrument based on measured time over a specified number of shaft rotations
US10881399B2 (en) 2017-06-20 2021-01-05 Ethicon Llc Techniques for adaptive control of motor velocity of a surgical stapling and cutting instrument
US11517325B2 (en) 2017-06-20 2022-12-06 Cilag Gmbh International Closed loop feedback control of motor velocity of a surgical stapling and cutting instrument based on measured displacement distance traveled over a specified time interval
US10779820B2 (en) 2017-06-20 2020-09-22 Ethicon Llc Systems and methods for controlling motor speed according to user input for a surgical instrument
US10307170B2 (en) 2017-06-20 2019-06-04 Ethicon Llc Method for closed loop control of motor velocity of a surgical stapling and cutting instrument
US11090046B2 (en) 2017-06-20 2021-08-17 Cilag Gmbh International Systems and methods for controlling displacement member motion of a surgical stapling and cutting instrument
US11653914B2 (en) 2017-06-20 2023-05-23 Cilag Gmbh International Systems and methods for controlling motor velocity of a surgical stapling and cutting instrument according to articulation angle of end effector
US11071554B2 (en) 2017-06-20 2021-07-27 Cilag Gmbh International Closed loop feedback control of motor velocity of a surgical stapling and cutting instrument based on magnitude of velocity error measurements
US11382638B2 (en) 2017-06-20 2022-07-12 Cilag Gmbh International Closed loop feedback control of motor velocity of a surgical stapling and cutting instrument based on measured time over a specified displacement distance
US11324503B2 (en) 2017-06-27 2022-05-10 Cilag Gmbh International Surgical firing member arrangements
US10993716B2 (en) 2017-06-27 2021-05-04 Ethicon Llc Surgical anvil arrangements
US11266405B2 (en) 2017-06-27 2022-03-08 Cilag Gmbh International Surgical anvil manufacturing methods
US10631859B2 (en) 2017-06-27 2020-04-28 Ethicon Llc Articulation systems for surgical instruments
US11259805B2 (en) 2017-06-28 2022-03-01 Cilag Gmbh International Surgical instrument comprising firing member supports
EP4070740A1 (en) 2017-06-28 2022-10-12 Cilag GmbH International Surgical instrument comprising selectively actuatable rotatable couplers
USD906355S1 (en) 2017-06-28 2020-12-29 Ethicon Llc Display screen or portion thereof with a graphical user interface for a surgical instrument
US11564686B2 (en) 2017-06-28 2023-01-31 Cilag Gmbh International Surgical shaft assemblies with flexible interfaces
US20190000459A1 (en) 2017-06-28 2019-01-03 Ethicon Llc Surgical instruments with jaws constrained to pivot about an axis upon contact with a closure member that is parked in close proximity to the pivot axis
US10765427B2 (en) 2017-06-28 2020-09-08 Ethicon Llc Method for articulating a surgical instrument
US11678880B2 (en) 2017-06-28 2023-06-20 Cilag Gmbh International Surgical instrument comprising a shaft including a housing arrangement
US11246592B2 (en) 2017-06-28 2022-02-15 Cilag Gmbh International Surgical instrument comprising an articulation system lockable to a frame
US10903685B2 (en) 2017-06-28 2021-01-26 Ethicon Llc Surgical shaft assemblies with slip ring assemblies forming capacitive channels
US10932772B2 (en) 2017-06-29 2021-03-02 Ethicon Llc Methods for closed loop velocity control for robotic surgical instrument
US11304695B2 (en) 2017-08-03 2022-04-19 Cilag Gmbh International Surgical system shaft interconnection
US11974742B2 (en) 2017-08-03 2024-05-07 Cilag Gmbh International Surgical system comprising an articulation bailout
US11944300B2 (en) 2017-08-03 2024-04-02 Cilag Gmbh International Method for operating a surgical system bailout
US11471155B2 (en) 2017-08-03 2022-10-18 Cilag Gmbh International Surgical system bailout
USD907647S1 (en) 2017-09-29 2021-01-12 Ethicon Llc Display screen or portion thereof with animated graphical user interface
US11399829B2 (en) 2017-09-29 2022-08-02 Cilag Gmbh International Systems and methods of initiating a power shutdown mode for a surgical instrument
USD907648S1 (en) 2017-09-29 2021-01-12 Ethicon Llc Display screen or portion thereof with animated graphical user interface
US11134944B2 (en) 2017-10-30 2021-10-05 Cilag Gmbh International Surgical stapler knife motion controls
US11090075B2 (en) 2017-10-30 2021-08-17 Cilag Gmbh International Articulation features for surgical end effector
US10842490B2 (en) 2017-10-31 2020-11-24 Ethicon Llc Cartridge body design with force reduction based on firing completion
US10966718B2 (en) 2017-12-15 2021-04-06 Ethicon Llc Dynamic clamping assemblies with improved wear characteristics for use in connection with electromechanical surgical instruments
US10828033B2 (en) 2017-12-15 2020-11-10 Ethicon Llc Handheld electromechanical surgical instruments with improved motor control arrangements for positioning components of an adapter coupled thereto
US10779826B2 (en) 2017-12-15 2020-09-22 Ethicon Llc Methods of operating surgical end effectors
US11033267B2 (en) 2017-12-15 2021-06-15 Ethicon Llc Systems and methods of controlling a clamping member firing rate of a surgical instrument
US11071543B2 (en) 2017-12-15 2021-07-27 Cilag Gmbh International Surgical end effectors with clamping assemblies configured to increase jaw aperture ranges
US11197670B2 (en) 2017-12-15 2021-12-14 Cilag Gmbh International Surgical end effectors with pivotal jaws configured to touch at their respective distal ends when fully closed
US10869666B2 (en) 2017-12-15 2020-12-22 Ethicon Llc Adapters with control systems for controlling multiple motors of an electromechanical surgical instrument
USD910847S1 (en) 2017-12-19 2021-02-16 Ethicon Llc Surgical instrument assembly
US10835330B2 (en) 2017-12-19 2020-11-17 Ethicon Llc Method for determining the position of a rotatable jaw of a surgical instrument attachment assembly
US11020112B2 (en) 2017-12-19 2021-06-01 Ethicon Llc Surgical tools configured for interchangeable use with different controller interfaces
US11311290B2 (en) 2017-12-21 2022-04-26 Cilag Gmbh International Surgical instrument comprising an end effector dampener
US20190192148A1 (en) 2017-12-21 2019-06-27 Ethicon Llc Stapling instrument comprising a tissue drive
US11076853B2 (en) 2017-12-21 2021-08-03 Cilag Gmbh International Systems and methods of displaying a knife position during transection for a surgical instrument
US11129680B2 (en) 2017-12-21 2021-09-28 Cilag Gmbh International Surgical instrument comprising a projector
US10642668B2 (en) * 2018-04-18 2020-05-05 Open Text GXS ULC Producer-side prioritization of message processing
US11055128B2 (en) 2018-07-30 2021-07-06 Open Text GXS ULC System and method for request isolation
USD914878S1 (en) 2018-08-20 2021-03-30 Ethicon Llc Surgical instrument anvil
US11083458B2 (en) 2018-08-20 2021-08-10 Cilag Gmbh International Powered surgical instruments with clutching arrangements to convert linear drive motions to rotary drive motions
US11324501B2 (en) 2018-08-20 2022-05-10 Cilag Gmbh International Surgical stapling devices with improved closure members
US11291440B2 (en) 2018-08-20 2022-04-05 Cilag Gmbh International Method for operating a powered articulatable surgical instrument
US11039834B2 (en) 2018-08-20 2021-06-22 Cilag Gmbh International Surgical stapler anvils with staple directing protrusions and tissue stability features
US11207065B2 (en) 2018-08-20 2021-12-28 Cilag Gmbh International Method for fabricating surgical stapler anvils
US10856870B2 (en) 2018-08-20 2020-12-08 Ethicon Llc Switching arrangements for motor powered articulatable surgical instruments
US10912559B2 (en) 2018-08-20 2021-02-09 Ethicon Llc Reinforced deformable anvil tip for surgical stapler anvil
US11253256B2 (en) 2018-08-20 2022-02-22 Cilag Gmbh International Articulatable motor powered surgical instruments with dedicated articulation motor arrangements
US11045192B2 (en) 2018-08-20 2021-06-29 Cilag Gmbh International Fabricating techniques for surgical stapler anvils
US11147551B2 (en) 2019-03-25 2021-10-19 Cilag Gmbh International Firing drive arrangements for surgical systems
US11147553B2 (en) 2019-03-25 2021-10-19 Cilag Gmbh International Firing drive arrangements for surgical systems
US11172929B2 (en) 2019-03-25 2021-11-16 Cilag Gmbh International Articulation drive arrangements for surgical systems
US11696761B2 (en) 2019-03-25 2023-07-11 Cilag Gmbh International Firing drive arrangements for surgical systems
US11432816B2 (en) 2019-04-30 2022-09-06 Cilag Gmbh International Articulation pin for a surgical instrument
US11253254B2 (en) 2019-04-30 2022-02-22 Cilag Gmbh International Shaft rotation actuator on a surgical instrument
US11426251B2 (en) 2019-04-30 2022-08-30 Cilag Gmbh International Articulation directional lights on a surgical instrument
US11471157B2 (en) 2019-04-30 2022-10-18 Cilag Gmbh International Articulation control mapping for a surgical instrument
US11903581B2 (en) 2019-04-30 2024-02-20 Cilag Gmbh International Methods for stapling tissue using a surgical instrument
US11452528B2 (en) 2019-04-30 2022-09-27 Cilag Gmbh International Articulation actuators for a surgical instrument
US11648009B2 (en) 2019-04-30 2023-05-16 Cilag Gmbh International Rotatable jaw tip for a surgical instrument
US11638587B2 (en) 2019-06-28 2023-05-02 Cilag Gmbh International RFID identification systems for surgical instruments
US11399837B2 (en) 2019-06-28 2022-08-02 Cilag Gmbh International Mechanisms for motor control adjustments of a motorized surgical instrument
US11291451B2 (en) 2019-06-28 2022-04-05 Cilag Gmbh International Surgical instrument with battery compatibility verification functionality
US11464601B2 (en) 2019-06-28 2022-10-11 Cilag Gmbh International Surgical instrument comprising an RFID system for tracking a movable component
US11350938B2 (en) 2019-06-28 2022-06-07 Cilag Gmbh International Surgical instrument comprising an aligned rfid sensor
US11051807B2 (en) 2019-06-28 2021-07-06 Cilag Gmbh International Packaging assembly including a particulate trap
US11259803B2 (en) 2019-06-28 2022-03-01 Cilag Gmbh International Surgical stapling system having an information encryption protocol
US11298127B2 (en) 2019-06-28 2022-04-12 Cilag GmbH Interational Surgical stapling system having a lockout mechanism for an incompatible cartridge
US11376098B2 (en) 2019-06-28 2022-07-05 Cilag Gmbh International Surgical instrument system comprising an RFID system
US11426167B2 (en) 2019-06-28 2022-08-30 Cilag Gmbh International Mechanisms for proper anvil attachment surgical stapling head assembly
US11497492B2 (en) 2019-06-28 2022-11-15 Cilag Gmbh International Surgical instrument including an articulation lock
US11224497B2 (en) 2019-06-28 2022-01-18 Cilag Gmbh International Surgical systems with multiple RFID tags
US11478241B2 (en) 2019-06-28 2022-10-25 Cilag Gmbh International Staple cartridge including projections
US11553971B2 (en) 2019-06-28 2023-01-17 Cilag Gmbh International Surgical RFID assemblies for display and communication
US11660163B2 (en) 2019-06-28 2023-05-30 Cilag Gmbh International Surgical system with RFID tags for updating motor assembly parameters
US11246678B2 (en) 2019-06-28 2022-02-15 Cilag Gmbh International Surgical stapling system having a frangible RFID tag
US11523822B2 (en) 2019-06-28 2022-12-13 Cilag Gmbh International Battery pack including a circuit interrupter
US11298132B2 (en) 2019-06-28 2022-04-12 Cilag GmbH Inlernational Staple cartridge including a honeycomb extension
US11627959B2 (en) 2019-06-28 2023-04-18 Cilag Gmbh International Surgical instruments including manual and powered system lockouts
US11771419B2 (en) 2019-06-28 2023-10-03 Cilag Gmbh International Packaging for a replaceable component of a surgical stapling system
US11219455B2 (en) 2019-06-28 2022-01-11 Cilag Gmbh International Surgical instrument including a lockout key
US11684434B2 (en) 2019-06-28 2023-06-27 Cilag Gmbh International Surgical RFID assemblies for instrument operational setting control
US11291447B2 (en) 2019-12-19 2022-04-05 Cilag Gmbh International Stapling instrument comprising independent jaw closing and staple firing systems
US11911032B2 (en) 2019-12-19 2024-02-27 Cilag Gmbh International Staple cartridge comprising a seating cam
US11576672B2 (en) 2019-12-19 2023-02-14 Cilag Gmbh International Surgical instrument comprising a closure system including a closure member and an opening member driven by a drive screw
US11559304B2 (en) 2019-12-19 2023-01-24 Cilag Gmbh International Surgical instrument comprising a rapid closure mechanism
US11464512B2 (en) 2019-12-19 2022-10-11 Cilag Gmbh International Staple cartridge comprising a curved deck surface
US11844520B2 (en) 2019-12-19 2023-12-19 Cilag Gmbh International Staple cartridge comprising driver retention members
US11701111B2 (en) 2019-12-19 2023-07-18 Cilag Gmbh International Method for operating a surgical stapling instrument
US11446029B2 (en) 2019-12-19 2022-09-20 Cilag Gmbh International Staple cartridge comprising projections extending from a curved deck surface
US11504122B2 (en) 2019-12-19 2022-11-22 Cilag Gmbh International Surgical instrument comprising a nested firing member
US11529139B2 (en) 2019-12-19 2022-12-20 Cilag Gmbh International Motor driven surgical instrument
US11607219B2 (en) 2019-12-19 2023-03-21 Cilag Gmbh International Staple cartridge comprising a detachable tissue cutting knife
US11529137B2 (en) 2019-12-19 2022-12-20 Cilag Gmbh International Staple cartridge comprising driver retention members
US11931033B2 (en) 2019-12-19 2024-03-19 Cilag Gmbh International Staple cartridge comprising a latch lockout
US11234698B2 (en) 2019-12-19 2022-02-01 Cilag Gmbh International Stapling system comprising a clamp lockout and a firing lockout
US11304696B2 (en) 2019-12-19 2022-04-19 Cilag Gmbh International Surgical instrument comprising a powered articulation system
USD966512S1 (en) 2020-06-02 2022-10-11 Cilag Gmbh International Staple cartridge
USD975851S1 (en) 2020-06-02 2023-01-17 Cilag Gmbh International Staple cartridge
USD967421S1 (en) 2020-06-02 2022-10-18 Cilag Gmbh International Staple cartridge
USD976401S1 (en) 2020-06-02 2023-01-24 Cilag Gmbh International Staple cartridge
USD975850S1 (en) 2020-06-02 2023-01-17 Cilag Gmbh International Staple cartridge
USD975278S1 (en) 2020-06-02 2023-01-10 Cilag Gmbh International Staple cartridge
USD974560S1 (en) 2020-06-02 2023-01-03 Cilag Gmbh International Staple cartridge
US11871925B2 (en) 2020-07-28 2024-01-16 Cilag Gmbh International Surgical instruments with dual spherical articulation joint arrangements
US11534259B2 (en) 2020-10-29 2022-12-27 Cilag Gmbh International Surgical instrument comprising an articulation indicator
US11844518B2 (en) 2020-10-29 2023-12-19 Cilag Gmbh International Method for operating a surgical instrument
US11896217B2 (en) 2020-10-29 2024-02-13 Cilag Gmbh International Surgical instrument comprising an articulation lock
US11452526B2 (en) 2020-10-29 2022-09-27 Cilag Gmbh International Surgical instrument comprising a staged voltage regulation start-up system
US11717289B2 (en) 2020-10-29 2023-08-08 Cilag Gmbh International Surgical instrument comprising an indicator which indicates that an articulation drive is actuatable
US11779330B2 (en) 2020-10-29 2023-10-10 Cilag Gmbh International Surgical instrument comprising a jaw alignment system
US11931025B2 (en) 2020-10-29 2024-03-19 Cilag Gmbh International Surgical instrument comprising a releasable closure drive lock
USD980425S1 (en) 2020-10-29 2023-03-07 Cilag Gmbh International Surgical instrument assembly
USD1013170S1 (en) 2020-10-29 2024-01-30 Cilag Gmbh International Surgical instrument assembly
US11617577B2 (en) 2020-10-29 2023-04-04 Cilag Gmbh International Surgical instrument comprising a sensor configured to sense whether an articulation drive of the surgical instrument is actuatable
US11517390B2 (en) 2020-10-29 2022-12-06 Cilag Gmbh International Surgical instrument comprising a limited travel switch
US11627960B2 (en) 2020-12-02 2023-04-18 Cilag Gmbh International Powered surgical instruments with smart reload with separately attachable exteriorly mounted wiring connections
US11653920B2 (en) 2020-12-02 2023-05-23 Cilag Gmbh International Powered surgical instruments with communication interfaces through sterile barrier
US11678882B2 (en) 2020-12-02 2023-06-20 Cilag Gmbh International Surgical instruments with interactive features to remedy incidental sled movements
US11944296B2 (en) 2020-12-02 2024-04-02 Cilag Gmbh International Powered surgical instruments with external connectors
US11849943B2 (en) 2020-12-02 2023-12-26 Cilag Gmbh International Surgical instrument with cartridge release mechanisms
US11890010B2 (en) 2020-12-02 2024-02-06 Cllag GmbH International Dual-sided reinforced reload for surgical instruments
US11737751B2 (en) 2020-12-02 2023-08-29 Cilag Gmbh International Devices and methods of managing energy dissipated within sterile barriers of surgical instrument housings
US11653915B2 (en) 2020-12-02 2023-05-23 Cilag Gmbh International Surgical instruments with sled location detection and adjustment features
US11744581B2 (en) 2020-12-02 2023-09-05 Cilag Gmbh International Powered surgical instruments with multi-phase tissue treatment
US11749877B2 (en) 2021-02-26 2023-09-05 Cilag Gmbh International Stapling instrument comprising a signal antenna
US11950777B2 (en) 2021-02-26 2024-04-09 Cilag Gmbh International Staple cartridge comprising an information access control system
US11950779B2 (en) 2021-02-26 2024-04-09 Cilag Gmbh International Method of powering and communicating with a staple cartridge
US11751869B2 (en) 2021-02-26 2023-09-12 Cilag Gmbh International Monitoring of multiple sensors over time to detect moving characteristics of tissue
US11793514B2 (en) 2021-02-26 2023-10-24 Cilag Gmbh International Staple cartridge comprising sensor array which may be embedded in cartridge body
US11701113B2 (en) 2021-02-26 2023-07-18 Cilag Gmbh International Stapling instrument comprising a separate power antenna and a data transfer antenna
US11744583B2 (en) 2021-02-26 2023-09-05 Cilag Gmbh International Distal communication array to tune frequency of RF systems
US11723657B2 (en) 2021-02-26 2023-08-15 Cilag Gmbh International Adjustable communication based on available bandwidth and power capacity
US11812964B2 (en) 2021-02-26 2023-11-14 Cilag Gmbh International Staple cartridge comprising a power management circuit
US11980362B2 (en) 2021-02-26 2024-05-14 Cilag Gmbh International Surgical instrument system comprising a power transfer coil
US11730473B2 (en) 2021-02-26 2023-08-22 Cilag Gmbh International Monitoring of manufacturing life-cycle
US11696757B2 (en) 2021-02-26 2023-07-11 Cilag Gmbh International Monitoring of internal systems to detect and track cartridge motion status
US11925349B2 (en) 2021-02-26 2024-03-12 Cilag Gmbh International Adjustment to transfer parameters to improve available power
US11826042B2 (en) 2021-03-22 2023-11-28 Cilag Gmbh International Surgical instrument comprising a firing drive including a selectable leverage mechanism
US11717291B2 (en) 2021-03-22 2023-08-08 Cilag Gmbh International Staple cartridge comprising staples configured to apply different tissue compression
US11826012B2 (en) 2021-03-22 2023-11-28 Cilag Gmbh International Stapling instrument comprising a pulsed motor-driven firing rack
US11737749B2 (en) 2021-03-22 2023-08-29 Cilag Gmbh International Surgical stapling instrument comprising a retraction system
US11759202B2 (en) 2021-03-22 2023-09-19 Cilag Gmbh International Staple cartridge comprising an implantable layer
US11723658B2 (en) 2021-03-22 2023-08-15 Cilag Gmbh International Staple cartridge comprising a firing lockout
US11806011B2 (en) 2021-03-22 2023-11-07 Cilag Gmbh International Stapling instrument comprising tissue compression systems
US11786239B2 (en) 2021-03-24 2023-10-17 Cilag Gmbh International Surgical instrument articulation joint arrangements comprising multiple moving linkage features
US11849944B2 (en) 2021-03-24 2023-12-26 Cilag Gmbh International Drivers for fastener cartridge assemblies having rotary drive screws
US11744603B2 (en) 2021-03-24 2023-09-05 Cilag Gmbh International Multi-axis pivot joints for surgical instruments and methods for manufacturing same
US11849945B2 (en) 2021-03-24 2023-12-26 Cilag Gmbh International Rotary-driven surgical stapling assembly comprising eccentrically driven firing member
US11857183B2 (en) 2021-03-24 2024-01-02 Cilag Gmbh International Stapling assembly components having metal substrates and plastic bodies
US11896219B2 (en) 2021-03-24 2024-02-13 Cilag Gmbh International Mating features between drivers and underside of a cartridge deck
US11896218B2 (en) 2021-03-24 2024-02-13 Cilag Gmbh International Method of using a powered stapling device
US11944336B2 (en) 2021-03-24 2024-04-02 Cilag Gmbh International Joint arrangements for multi-planar alignment and support of operational drive shafts in articulatable surgical instruments
US11793516B2 (en) 2021-03-24 2023-10-24 Cilag Gmbh International Surgical staple cartridge comprising longitudinal support beam
US11903582B2 (en) 2021-03-24 2024-02-20 Cilag Gmbh International Leveraging surfaces for cartridge installation
US11786243B2 (en) 2021-03-24 2023-10-17 Cilag Gmbh International Firing members having flexible portions for adapting to a load during a surgical firing stroke
US11832816B2 (en) 2021-03-24 2023-12-05 Cilag Gmbh International Surgical stapling assembly comprising nonplanar staples and planar staples
US20220378425A1 (en) 2021-05-28 2022-12-01 Cilag Gmbh International Stapling instrument comprising a control system that controls a firing stroke length
US11980363B2 (en) 2021-10-18 2024-05-14 Cilag Gmbh International Row-to-row staple array variations
US11877745B2 (en) 2021-10-18 2024-01-23 Cilag Gmbh International Surgical stapling assembly having longitudinally-repeating staple leg clusters
US11957337B2 (en) 2021-10-18 2024-04-16 Cilag Gmbh International Surgical stapling assembly with offset ramped drive surfaces
US11937816B2 (en) 2021-10-28 2024-03-26 Cilag Gmbh International Electrical lead arrangements for surgical instruments

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5838334A (en) * 1994-11-16 1998-11-17 Dye; Thomas A. Memory and graphics controller which performs pointer-based display list video refresh operations
US6728959B1 (en) * 1995-08-08 2004-04-27 Novell, Inc. Method and apparatus for strong affinity multiprocessor scheduling
US5754839A (en) * 1995-08-28 1998-05-19 Motorola, Inc. Apparatus and method for implementing watchpoints and breakpoints in a data processing system
US6343309B1 (en) * 1996-09-30 2002-01-29 International Business Machines Corporaton Method and apparatus for parallelizing a graphics pipeline
US5881269A (en) * 1996-09-30 1999-03-09 International Business Machines Corporation Simulation of multiple local area network clients on a single workstation
US5818469A (en) * 1997-04-10 1998-10-06 International Business Machines Corporation Graphics interface processing methodology in symmetric multiprocessing or distributed network environments
US6038619A (en) * 1997-05-29 2000-03-14 International Business Machines Corporation Disk drive initiated data transfers responsive to sequential or near sequential read or write requests
US6118452A (en) * 1997-08-05 2000-09-12 Hewlett-Packard Company Fragment visibility pretest system and methodology for improved performance of a graphics system
US6553426B2 (en) * 1997-10-06 2003-04-22 Sun Microsystems, Inc. Method apparatus for implementing multiple return sites
US6049390A (en) * 1997-11-05 2000-04-11 Barco Graphics Nv Compressed merging of raster images for high speed digital printing
US6091422A (en) * 1998-04-03 2000-07-18 Avid Technology, Inc. System for editing complex visual data providing a continuously updated rendering
US6112267A (en) * 1998-05-28 2000-08-29 Digital Equipment Corporation Hierarchical ring buffers for buffering data between processor and I/O device permitting data writes by processor and data reads by I/O device simultaneously directed at different buffers at different levels
US6088044A (en) * 1998-05-29 2000-07-11 International Business Machines Corporation Method for parallelizing software graphics geometry pipeline rendering
US6243770B1 (en) * 1998-07-21 2001-06-05 Micron Technology, Inc. Method for determining status of multiple interlocking FIFO buffer structures based on the position of at least one pointer of each of the multiple FIFO buffers
JP3224782B2 (ja) * 1998-08-03 2001-11-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 処理分担動的変更方法及びコンピュータ
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
US6332161B1 (en) * 1998-09-25 2001-12-18 Charles Schwab & Co., Inc. Customer web log-in architecture
US6753878B1 (en) * 1999-03-08 2004-06-22 Hewlett-Packard Development Company, L.P. Parallel pipelined merge engines
US6581102B1 (en) * 1999-05-27 2003-06-17 International Business Machines Corporation System and method for integrating arbitrary isochronous processing algorithms in general media processing systems
US6674805B1 (en) * 2000-05-02 2004-01-06 Ati Technologies, Inc. System for controlling a clock signal for synchronizing a counter to a received value and method thereof
US7196710B1 (en) * 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US6630936B1 (en) 2000-09-28 2003-10-07 Intel Corporation Mechanism and method for enabling two graphics controllers to each execute a portion of a single block transform (BLT) in parallel
US6986061B1 (en) * 2000-11-20 2006-01-10 International Business Machines Corporation Integrated system for network layer security and fine-grained identity-based access control
US6909836B2 (en) * 2001-02-07 2005-06-21 Autodesk Canada Inc. Multi-rate real-time players
US7230917B1 (en) * 2001-02-22 2007-06-12 Cisco Technology, Inc. Apparatus and technique for conveying per-channel flow control information to a forwarding engine of an intermediate network node
US7064766B2 (en) * 2001-10-18 2006-06-20 Microsoft Corporation Intelligent caching data structure for immediate mode graphics
KR100422252B1 (ko) * 2001-12-20 2004-03-11 삼성전자주식회사 씬 클라이언트 네트워크 시스템과 그 네트워크 시스템의데이터 전송 방법
JP2005506595A (ja) 2002-01-08 2005-03-03 スプロキット テクノロジーズ,インク. プラットフォーム独立の分散ユーザインタフェースのシステムアーキテクチャ
US6853380B2 (en) * 2002-03-04 2005-02-08 Hewlett-Packard Development Company, L.P. Graphical display system and method
US20040260921A1 (en) * 2002-07-18 2004-12-23 Treadwell William S. Cryptographic method, system and engine for enciphered message transmission
US7321369B2 (en) * 2002-08-30 2008-01-22 Intel Corporation Method and apparatus for synchronizing processing of multiple asynchronous client queues on a graphics controller device
US7272820B2 (en) * 2002-12-12 2007-09-18 Extrapoles Pty Limited Graphical development of fully executable transactional workflow applications with adaptive high-performance capacity
US7219127B2 (en) * 2003-03-13 2007-05-15 Oracle International Corporation Control unit operations in a real-time collaboration server
US7308448B1 (en) * 2003-03-21 2007-12-11 Sun Microsystems, Inc Method and apparatus for implementing a lock-free skip list that supports concurrent accesses
US7088374B2 (en) * 2003-03-27 2006-08-08 Microsoft Corporation System and method for managing visual structure, timing, and animation in a graphics processing system
US8274518B2 (en) * 2004-12-30 2012-09-25 Microsoft Corporation Systems and methods for virtualizing graphics subsystems
US7716683B2 (en) * 2004-12-30 2010-05-11 Graphics Properties Holdings, Inc. Distributed graphics processing apparatus and method
US20060150071A1 (en) * 2005-01-05 2006-07-06 Microsoft Corporation Software-based video rendering
US7716249B2 (en) * 2005-09-16 2010-05-11 Microsoft Corporation Transaction and task scheduler
US20070120865A1 (en) * 2005-11-29 2007-05-31 Ng Kam L Applying rendering context in a multi-threaded environment

Also Published As

Publication number Publication date
EP1934734A1 (en) 2008-06-25
US8266232B2 (en) 2012-09-11
WO2007045591A1 (en) 2007-04-26
BRPI0617372A2 (pt) 2012-01-03
CN101288050A (zh) 2008-10-15
TW200802099A (en) 2008-01-01
CA2625051C (en) 2014-05-13
KR101013049B1 (ko) 2011-02-14
US20070088792A1 (en) 2007-04-19
JP2009512921A (ja) 2009-03-26
CA2625051A1 (en) 2007-04-26
KR20080059562A (ko) 2008-06-30
TWI403956B (zh) 2013-08-01

Similar Documents

Publication Publication Date Title
JP5153637B2 (ja) 仮想クライアント・コンピューティング環境内でのコマンドのハードウェア処理
US6954933B2 (en) Method and apparatus for providing and integrating high-performance message queues in a user interface environment
US9146884B2 (en) Push pull adaptive capture
CN102890643B (zh) 基于应用效果即时反馈的显卡虚拟化下的资源调度系统
US9928124B2 (en) Reverting tightly coupled threads in an over-scheduled system
KR101087361B1 (ko) 그래픽 프로세싱 시스템내의 통합 컴포지션 엔진을 위한시스템 및 방법
US5799188A (en) System and method for managing variable weight thread contexts in a multithreaded computer system
US8132191B2 (en) Method and apparatus for adapting and hosting legacy user interface controls
EP1708079A1 (en) System for efficient remote projection of rich interactive user interfaces
US7876328B2 (en) Managing multiple contexts in a decentralized graphics processing unit
JP2013504127A (ja) Gpuワークのハードウエアベースでのスケジューリング
JP2000330806A (ja) 計算機システム
EP0490595A2 (en) Method for operating time critical processes in a window system environment
US20110298787A1 (en) Layer composition, rendering, and animation using multiple execution threads
CN107391274A (zh) 离线消息的处理方法及装置
WO2023044876A1 (zh) 一种多线程渲染方法、装置、电子设备及存储介质
JP2001282560A (ja) 仮想計算機制御方法及びその実施装置並びにその処理プログラムを記録した記録媒体
KR102407781B1 (ko) 플립 큐 관리에 기초한 그래픽스 컨텍스트 스케줄링
US20220382587A1 (en) Data processing systems
CN104620563B (zh) 一种用于减少计算设备的网络使用的方法和系统
JP3547011B6 (ja) ウィンドウシステム環境において時間的に厳しいプロセスを実行する方法および装置
CN115454548A (zh) 显示小程序页面的方法、装置、设备、介质及程序产品
CN117290052A (zh) 一种通用图形处理器虚拟化方法及系统
CN117075971A (zh) 休眠方法及其相关设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090722

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111114

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120404

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120703

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: 20121113

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121204

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

Free format text: PAYMENT UNTIL: 20151214

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5153637

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees