JP5129151B2 - マルチユーザ・ディスプレイ・プロキシ・サーバ - Google Patents

マルチユーザ・ディスプレイ・プロキシ・サーバ Download PDF

Info

Publication number
JP5129151B2
JP5129151B2 JP2008543288A JP2008543288A JP5129151B2 JP 5129151 B2 JP5129151 B2 JP 5129151B2 JP 2008543288 A JP2008543288 A JP 2008543288A JP 2008543288 A JP2008543288 A JP 2008543288A JP 5129151 B2 JP5129151 B2 JP 5129151B2
Authority
JP
Japan
Prior art keywords
display
graphics
virtual
subframe
blade
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
JP2008543288A
Other languages
English (en)
Other versions
JP2009517772A (ja
Inventor
マーグリス,ニール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009517772A publication Critical patent/JP2009517772A/ja
Application granted granted Critical
Publication of JP5129151B2 publication Critical patent/JP5129151B2/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
    • 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
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto

Description

本発明は、一般的には、マルチユーザ・ホスト・コンピュータ・システムに関し、更に特定すれば、リモート・ユーザのために端末サービスをサポートするプロキシ・サーバの利用に関する。
効率的なマルチユーザ・ホスト・コンピュータ・システムを開発することは、現在のシステム設計者及び製造業者にとって重要な目的である。
従来のコンピュータ・システムは、出力を直接一人のユーザに表示するために、ローカル・ディスプレイ・デバイスを利用することができる。ローカル・ディスプレイ・デバイスは、通例、コンピュータ・システムに近接して位置付けられる。これは、ディスプレイ・デバイスをコンピュータ・システムの出力に電気的に結合する種々の物理的接続によって強いられる制約のためである。コンピュータ・システムによっては、第2ディスプレイ・デバイスをサポートすることができる場合もあるが、物理的接続のために同様の近接制約がある。
リモート・ユーザ(遠隔地のユーザ)の場合、しかるべき目視場所及びホスト・システムに対するネットワーク接続を選択するという更に別の柔軟性も必要となる。例えば、会社環境では、業務上、ホスト・コンピュータの全てを、物理的な安全性並びに空調及び電力バックアップ・システムのような環境管理双方を有する安全な中央「コンピュータ・ルーム」に保有しておきたい場合がある。しかしながら、ユーザは、「コンピュータ・ルーム」の外部に位置する彼らの事務所及び机からホスト・コンピュータ・システムを利用する必要がある。
今日の典型的な事務所環境では、パーソナル・コンピュータと、物理的にユーザの所在地に位置する、増々少なくなる機能のクライアントとを含む。これらのパーソナル・コンピュータ及び少機能クライアントは、格納、ファイル提供、ファイル共有、ネットワーク管理、及び種々の管理運営サービスのために集中システムを有するネットワーク上で動作する。当初、システムは、コンピュータ・システムと関連のあるディスク・ストレージの全てを集中させ、一方、ユーザは彼らのローカル・デスクトップ上でアプリケーションをラン(実行)させていた。最近になって、セキュリティの便益、運用コスト削減、及び集中制御に対する一般的な要望を認識し、パーソナル・コンピュータ及び薄いクライアントは、サーバ上でアプリケーションをランさせるサーバ基本計算(SBC:Server Based Computing)ソリューションにおけるリモート端末(RT)として動作することが可能となっている。
SBC環境におけるRTのための従前からの手法は、ホスト・システムが、Microsoft社のRemote Display Protocol(RDP)のような、ある形式のサーバ対クライアント通信交換を用いるためにあった。RDPはそれ自体のビデオ・ドライバをサーバ上で用い、RDPプロトコルを用いてレンダリング情報をネットワーク・パケットに組み立て、これらをネットワークを通じてクライアントに送る。クライアントは、レンダリング・データを受信し、パケットを解釈して、対応するMicrosoft Win32 Graphics Device Interface (GDI)APIコールを得る。クライアント・キーボード及びマウス・コマンドをサーバに再送出し、ローカル・オーディオ及びローカル・クライアント・ドライブを管理するための支援も含まれる。
ホスト・システムとクライアントとの間における通信を強化するために、他のシステムはRTの性能を向上させるためにホスト・コンピュータの主CPUを用いている。これは、少機能のクライアント及びリモート・クライアントとしての従前からのPC双方に対して行われている。このような手法は、一度に一人のユーザのみをサポートするホスト・システムには有効であった。しかしながら、マルチユーザ・システムでは、ホストにおいて主CPUを用いて任意の一人のユーザに対して性能を向上させる手法には、大きな限界がある。主メモリ及びCPUサイクルのような、一人のユーザの最適化のために用いられる計算資源は、追加のユーザの作業負荷を支援する能力を低下させる虞れがある。
1台のホスト・コンピュータから多数のユーザを効率的に支援することができれば、コストを低減することができる。典型的な事務所環境では、各々が彼らのコンピュータを同時にそして同様に用いることは殆どなく、いずれか一人のユーザが彼らのコンピュータの計算資源全てを用いることも殆どない。したがって、例えば、100の事務所を有する会社であっても、一度に60人のユーザをサポートするシステムがあればよい。しかしながら、このようなシステムは、10人のユーザをサポートするように設計することもでき、十分な計算スループットを与えて、彼らが各々彼ら自身のホスト・コンピュータを有するような外観を与えることができる。分散型の事務所環境では、集中マルチユーザ・システムを、様々な帯域幅のリンクを通じて接続し、それぞれの時間帯の異なる作業時間中に世界の異なる地区における場所でRTをサポートすることができる。
サーバ・ベースの計算は、RTサービスをユーザの端末においてサポートするだけのサーバ上でユーザのアプリケーションが実行され、多数のユーザに対して計算資源の割り当て効率を高める別の方法である。SBCによって、ホスト・システムは、メモリやCPUサイクルのような共有資源を、マルチユーザ動作環境において動的に割り当てることが可能になる。SBCシステムは、マルチユーザ・オペレーティング・システムの技法、仮想マシーン(VM)、負荷均衡及びその他の手段を用いて、異なるユーザに異なるレベルの性能及び資源へのアクセスを、多数の判断基準に基づいて付与することができる。SBC資源を割り当てるために、異なる優先方式を用いることができる。SBCは、データ・セキュリティを高め、編成、災難回復力強化及び業務継続に対するサポートを集中し、組織全体におけるデータ記憶要件を低減することができる。
ブレード(blade)・ベースのシステムは、スケーラブル・マルチユーザ・ホスト・システムに合った効果的なアーキテクチャを実現する。ブレード計算機能の区分、I/O機能、バックプレーン・アーキテクチャ、及び切換は、全て、ブレードに基づくサーバの設計では重要である。各ブレードは、完全なコンピュータの機能を構築することができ、あるいはブレード・サーバはブレード間で重要な機能を共有することができる。多数のプロセッサ・コアを含むことによってCPUが増々その性能を向上させていくにしたがって、一人のユーザを1つのブレードに制限することは、経済的な意味を減少させる。ブレード・システムにおける各ブレードを離れて監視する必要がある場合もある。ブレード・システムの多機能性のために、ブレードのラックは、異なる作業負荷に最も良く合うように構成しなければならない。
図1は、1〜8まで(102、104、106、108、110、112、114及び116)番号を付したブレード、並びにスイッチ120及び122、スイッチの各々を通過するパスを含む、代表的な従来技術のマルチブレード・システム・レベル・アーキテクチャ100を示す。また、スイッチは、それらの間及びリンク124へのパスも含むことができ、リンク124によって、更に、ブレードのラックを別のブレードのラック又は他の何らかのサブシステムに拡大することができる。図1のブレードの数を変更することもでき、各ブレードは、プロセッサ・ブレード、I/Oブレード、切換ブレード、又はこれら3つの何らかの組み合わせとすることもできる。I/Oブレードは、ブレード4 108及びパス180、並びにブレード8 116及びパス190によって例示するように、それら自体の外部インターフェースを含むことができる。外部インターフェースの例には、ファイバ・チャネル及びiSCSIのような非ネットワーク・インターフェース、又はイーサネット及び10Gイーサネットのようなネットワーク・インターフェースを含むことができる。
スイッチ1 120及びスイッチ2 122のスイッチ・マトリクスの例は、各スイッチから各ブレードへの接続140及び142を示す。スイッチ毎の物理的又は論理的トランスポートの形式は同一でも異なってもよい。パス144は、スイッチ120及び122を一緒に接続又はブリッジすることができる。スイッチ及び接続の組み合わせをスイッチ・ファブリック150と呼び、各ブレード上に分散すること、バックプレーンの一部とすること、切換ブレード上に実現することができ、あるいはこれら3つの組み合わせを伴うこともできる。切換ファブリックのパスは、単一方向、双方向、又は組み合わせでもよい。各ブレードは、いずれの数のスイッチにでも接続することができ、ブレード機能の一部として、異なるスイッチに対するブリッジ機能を含むことができる。更に進んだシステムでは、フル・メッシュ・トポロジ(full mesh topology)ファブリックを含むことができ、冗長性を有することができる。
スイッチ・ファブリック150に用いられる接続の例には、Peripheral Component Interconnect(PCI)Express、10G Attachment Unit Interface (XAUI:10G取り付けユニット・インターフェース)、Infiniband、RapidIO、StarFabric、Advanced Switching Interconnect (ASI:高度交換相互接続)、Gigabit Ethernet(ギガビット・イーサネット)、Fiber Channel(ファイバ・チャネル)、並びにその他の電気又は光相互接続の1つ以上のチャネルが含まれる。場合によっては、各ブレードの機能チップが直接ファブリック・インターフェース130を含むこともある。別の場合には、ブレードがファブリック・インターフェース・チップ又はブリッジ・チップを含み、これらがインターフェース処理を実行することも可能である。各ブレードにおけるファブリック及びブリッジ・チップは、システム・スイッチの1つ以上に接続することができ、スイッチ間における追加のブリッジ機能を一体化することができる。
しかしながら、ブレード・ベースのマルチユーザ・ホスト・コンピュータが、組織が有する可能性がある種々のサーバ・ソフトウェア及びウェブに基づくアプリケーション並びに種々のRTデバイスに対して豊富なアプリケーション性能を効果的に管理、制御、及び配給するためには、複雑さを高めなければならないこともある。ブレード・ベースのマルチユーザ・ホスト・サーバが、並外れた計算及び表示性能を有し、多数のリモート・ユーザを一層効率的にサポートすることを可能にする解決策が求められている。
本発明は、対話式グラフィクス及びビデオが可能な1つ以上のリモート端末(RT)を含み、アプリケーションを全体的に管理し、サーバに基づく計算を実行するブレード・ベースのマルチユーザ・コンピュータ・システムの効率的なアーキテクチャを提供する。各RTは、それ自体のキーボード、マウス、及びディスプレイを有し、更に他の周辺デバイスを有することもできる。RTは、個々のユーザに、サーバ上で利用可能なアプリケーションへのアクセス、及び豊富なグラフィカル・ユーザ・インターフェースを設ける。マルチユーザ・コンピュータ・システムは、マルチユーザ・オペレーティング・システムをランさせることができ、単一ユーザ・オペレーティング・システムの仮想化インスタンシエーション(virtualized instantiation)をランさせることができ、多数のユーザのためにウェブ・サーバ・エンジンをランさせることができ、プロキシ・サーバをランさせることができ、あるいはその何らかの組み合わせをランさせることができる。
第1の好適な実施形態では、プロセッサ・ブレードが、RTからのリモート管理及び制御を可能にするベースボード管理コントローラ(BMC)を含む。センサ及びステータス情報を提供することに加えて、BMCは、キーボード、ビデオ及びマウス(KVM)能力を含むので、システム・アドミニストレータは、あたかも彼がローカルにブレードに接続されているかのように、プロセッサ・ブレードに遠隔地からアクセスすることができる。BMC及びKVM機能は、CPU及びボードの基本動作に追加の実行時変更を行うことなく、「帯域外」動作をサポートするので、実行時の診断を最も効率的に行うことができる。リモートKVMの表示に関する機構は、グラフィクス・プロセッサ及び表示データ・エンコーダがサポートする。これらは、選択的更新、及び必要であれば、種々の形態の表示データ圧縮を利用する。表示データ・エンコーダ機能をTSA424に統合してもよく、又は専用データ・エンコーダ752とし、GPU−TSAに組み合わせてもよい。
第2の好適な実施形態では、端末サービス・ブレード(TSB)がソフトウェア、グラフィクス・プロセッサ、及びデータ・エンコードの組み合わせを利用して、RT毎に仮想表示環境を創造することによって、多数のRTをサポートする。RTとの通信のための最も馴染み深い方法では、カプセル化したグラフィクス・コマンドを送ること、又はエンコードしたサブフレーム・データを送ることを含む。RTを管理するソフトウェアは、主ホスト・プロセッサ・ブレード上、TSBのCPU、端末サービス・アクセレレータ(TSA)上、RT上、又はその組み合わせの上でランすることができる。RT毎に選択的更新を、ソフトウェアで、あるいはマルチユーザ・グラフィクス・プロセッサ・ユニット(MU−GPU)又は組み合わせたTSA−GPUにおけるハードウェアの補助によって調整することができる。グラフィクス・プロセッサは、提案したVESA Digital Packet Video Link(DPVL)規格、又はサブフレームのヘッダ、ステータス・ビット及び署名の何らかの組み合わせを用いた改良方法に従うことができる。他の改善策では、PCIエクスプレス又はその他のバスを、DVIの代わりに、出力データのために用い、追加のデータ・エンコードをグラフィクス・プロセッサ内部又はグラフィクス・プロセッサに取り付けたエンコーダによって行い、ソフトウェアは1つ以上のグラフィクス・プロセッサをマルチユーザ・サポートのために利用する。
TSBは、クライアント終了を含む多様なレベルのプロキシ応対(proxy serving)を行うことができ、プロセッサ・ブレード上でランするRDPホストがTSB上で走るプロセスを唯一の既知のクライアントであることを考慮するように、完全に多数のRDPクライアントを列挙するためである限り動作することができる。この方法では、TSBはホスト・プロセッサが認識しない、完全に独立したインターフェースをRTに対して作成することができる。TSBとRTとの間におけるこの主のインターフェースは、分割プロキシの形態とするとよい。分割プロキシとして、TSB及びRTは、私的チャネルを通じて通信し、このチャネル上では、RDP又はウェブ・ブラウザ・プロトコルのような、より一般的なプロトコルを用いて可能なよりも、更に効率的に通信することができる。
更に効率を高めるためには、プロセッサ・ブレードは、追跡(トラッキング)ソフトウェアをランさせることができる。追跡ソフトウェアは、TSAと組み合わせて、ビデオ再生のような機能を傍受(intercept)することができる。ホストCPUにビデオ・デコードをローカルに実行させ、RTに伝送するためにビットマップを供給させる代わりに、TSAは、CPUによるデコードの前に、ビデオ・データ・ストリームを傍受することができ、ネイティブなビデオ・ストリーム、あるいはトランスコード又はレート変更したバージョンのような、修正バージョンを、目標のRTに伝達することができる。RTへの通信には、標準的なRDPチャネルに加えて、その他の私的チャネルを採用することができるが、その場合でもRDPプロトコルの中で管理する。
各実施形態において、グラフィクス動作及び選択的更新プロセスの後、データをエンコードし、カプセル化して、ネットワーク・レディ(network ready)更新パケットとする。ネットワークI/Oブレード、ネットワーク・プロセッサ、又は更に単純なネットワーク・コントローラと共に動作するCPUが、有線及び/又は無線(ワイヤレス)ネットワークを通じて、グラフィクス・パケットをRTに送信する。KVMの構成によっては、BMCがネットワーク処理を実行し、更新パケット動作によってプロセッサ・ブレードCPUを中断させないようにする場合もある。別の構成では、CPUは保護的区分のために「仮想技術」を利用し、ユーザ・タスクを含むオペレーティング・システムの動作及びMBCの帯域外管理タスクの双方を実行する。BMCは、システムにおける別のネットワーク・コントローラ又はネットワーク物理レイヤ(PHY)と通信することができる。各RTシステムは、その表示を意図するグラフィクス・パケットをデコードし、フレーム更新を管理し、表示画面に必要な処理を実行する。ネットワーク送信中に失われたパケットを隠蔽する等の他の機構は、リモート・ディスプレイ・システムによって管理する。新しいフレーム更新がない場合、リモート・ディスプレイ・コントローラは、直前のフレームからのデータによって、表示画面をリフレッシュする。
種々のネットワーク・システムはネットワーク情報を種々の有線及びワイヤレス・ネットワーク接続からTSBにフィードバックすることができる。TSBは、RT更新を生成する種々の処理ステップに影響を及ぼすためにネットワーク情報を用い、ネットワーク・フィードバックに基づいて、異なるRTに合わせてフレーム・レート及びデータ・エンコードを様々に変更することができる。加えて、ノイズが多い送信チャネルを有するネットワークを含むシステムでは、エンコード・ステップをフォワード・エラー・コレクション(前進誤り補正)保護と組み合わせて、送信チャネルの特性に合わせて送信データを用意することができる。これらのステップの組み合わせは、RTの各々について、低いレイテンシで最適なフレーム・レートを維持する。TSA及びTSA−GPUは、別個のサブシステムとして実施することができ、あるいはネットワーク・プロセッサ、セキュリティ・プロセッサ、XMLアクセレレータ、iSCSIプロセッサ、又はこれらのあらゆる組み合わせというような、その他のオフロード及び加速処理と組み合わせることもできる。
したがって、少なくとも以上の理由により、本発明はシステムの相互動作性及び機能性を容易に得るために、種々の異質なコンポーネントを利用する柔軟性の高いブレードに基づくマルチユーザ・コンピュータ・システムを効果的に実現する。言い換えると、本発明は、強化したブレード・ベースのマルチユーザ・サーバを実現する。
本発明は、リモート端末に対するサポートを備えた、ブレードに基づく(ブレード・ベースの)マルチユーザ・コンピュータ・システムの改良に関する。開示する実施形態はブレード・ベースのマルチユーザ・コンピュータ・システムに関するが、同じ原理及び特徴は、他の形式の単一及びマルチユーザ・システム、並びに他の形式のリモート端末にも同様に応用することができる。
ブレード・ベースのマルチユーザ・コンピュータ・システム100は、「ホスト100」とも呼ばれ、リモート端末における多数のユーザをサポートするように設計されている。リモート端末については、以下で図3を参照して説明する。各RTは、ホスト100を時間共有することができ、ホスト100はあたかもそれら自体のローカル・コンピュータとして機能し、ローカル・コンピュータ上で達成することができる同じ種類のユーザ操作で、あらゆる種類のグラフィクス、テキスト、及びビデオ・コンテンツを完全にサポートすることができる。パス180及び190は、ネットワーク接続を用いた場合に、図2のパス290及び図4のパス490に対応し、図3のネットワーク・パス390に接続することができる。RT接続に加えて、ホスト100は、リンク124を通じて、WAN、記憶サブシステム、他のホスト、あるいはGigE、10G Ethernet、iSCSI、Fiber Channel(FC)、Fiber Channel IP(FCIP)あるいはその他の電気又は光接続の形態をなることができる種々の他のデータ中心接続部に接続することができる。ホスト100は、種々のマルチユーザ・オペレーティング・システム(OS)をサポートすることができ、また単一ユーザOSを仮想化するソフトウェアを、プロセッサ・ブレードの1つ以上において展開することができる。Citrix又はWindows Serverのようなオペレーティング・システムは、マルチユーザOSとして設計されている。Windows XPは、具体的には同時に多数のユーザ用には設計されていないが、VMWARE又はXenSource、あるいはマルチユーザOSのように素早く見えるようにユーザ切換を実行するその他の手段のような、任意の下位レベル仮想化ソフトウェアの補助によって、このような構成において用いることができる。異なる管理制御によって、RT及びプログラムを統計的に又は動的にプロセッサ間で移動させることが可能になる。負荷均衡は、OSによって、プロセッサ毎に実行することができ、あるいはシステムが多数のプロセッサに跨って負荷均衡を実行することもできる。また、ホスト100は、ある種のウェブ・サーバをランさせ、ウェブ・ベースのインターフェースを通じて多数のユーザをサポートすることができる。ホスト100は、種々のRTに対してプロキシ・サーバのように機能し、アプリケーション・サーバ又はウェブ・サーバと通信することができる。
図2は、ブレード・ベースのマルチユーザ・サーバ・システム100のブレード102〜116の1つとしての役割を果たすことができる、プロセッサ・ブレード200の一実施形態のブロック図である。各ブレード200は、それ自体ホスト・コンピュータであってもよく、あるいは、多数のブレードを一緒にラックに収容して、能力の高いホスト・コンピュータを作成することもできる。ホストが有するプロセッサ・ブレード、I/O処理及びCPUが多い程、多くのユーザを同時にサポートすることができる。プロセッサ・ブレード200の基本的コンポーネントは、好ましくは、マルチCPUコンプレックス202、バス・ブリッジ・コントローラ204、PCIエクスプレスのような主システム・バス206、ローカルI/O208、主RAM234、スイッチ、バックプレーン及びその他のブレードに接続するファブリック・インターフェース(FI)130、並びにオプションでベースボード管理制御(BMC)サブシステム800を含む。
スイッチ・ファブリック150のトランスポート及び物理層インターフェースの形式に応じて、ファブリック・インターフェース(FI)130は、重要な処理を含む場合がある。例えば、ファブリック・インターフェース130は、10Gイーサネット・プロセッサ(図示せず)を含む場合があり、このプロセッサは、ローカルに発生したパケットのため及びASIファブリック・インターフェースのために必要なパケット・レベルのフィルタリング及び処理の双方を全て実行する。このようなファブリック・インターフェース・プロセッサは、外部RAM230を必要とすることもあり、十分な内部ストレージを有する場合もある。ネットワーク物理層インターフェース(PHY)をFIプロセッサと一体化してもよく、あるいは外部PHYコンポーネントを利用してもよい。ローカルI/O208及びローカルI/O接続290は、この同じFIプロセッサによって制御することができる。加えて、ブリッジ・コントローラ204を通じてシステム・バス206とインターフェースする代わりに、ファブリック・インターフェース130が直接システム・バス206に取り付けられてもよい。
システムの一例では、スイッチ1 120及び関連するパス140は、PCIエクスプレス・パケットのトンネリング(tunneling)を許容するASIバス・プロトコルを利用する。スイッチ2 122及び関連するパス142は、XAUI型バスとするとよく、記憶及びネットワーク構築に対して一層最適化することができ、10Gイーサネット・プロトコルを利用することもできる。このシステムは、主に、異なるプロセッサ・ブレード間の通信にはASIバスを利用し、ネットワーキング及び記憶ブレードとの通信にはXAUIバスを利用することができる。各ブレードは、1つのインターフェース、双方のインターフェースを含むことができ、双方のインターフェースも、2系統のバス間においてトラフィック転送をブリッジ(橋架)する能力を含む。
図2のマルチCPUコンプレックス202は、1つ以上のプロセッサ・チップを含むことができ、各々は、多数の同時スレッドを実行することができる1つ以上のコア(図示せず)を有する。各レベルにおいて、各CPUコアは、専用キャッシュ・メモリを含み、あるレベルにおいて、多数のCPUがキャッシュ・メモリを共有することができる。マルチCPUコンプレックス202は、RAM234を独立して制御及びアクセスすることができ、あるいはRAM234へのアクセスを実行するためにブリッジ・コントローラ204を利用することもできる。他の構成では、マルチCPUコンプレックス202が直接、主システム・バス206にインターフェースする(図示せず)ことができる。
ローカルI/O208は、種々のI/Oインターフェース及び制御を、外部インターフェース290のため及びパス210を通じてプロセッサ・ブレード200の内部に位置するリソースのために、含むことができる。記憶及びネットワーク構築等の主要なI/O機能は、各プロセッサ・ブレード200上に含めてもよいし、スイッチ・ファブリック150を通じてあるいは他の専用I/Oブレードをサポートしてもよい。スイッチ・ファブリックの物理及び論理接続に対する選択に応じて、インターフェース140及び142を直接ブリッジ・コントローラ204に一体化してもよいし、ファブリック・インターフェース130をチップとして用いてもよい。
各プロセッサ・ブレード200は、事実上「コンピュータ・システム」であると考えられるので、システムを観察し管理するやり方を備えることは非常に望ましい。ホスト100が特殊なコンピュータ室の中に位置する場合があるので、リモート端末(RT)300からシステムを観察及び管理できるようにすることが望ましい。RTは、特別に設計された少機能のクライアントとすることができ、あるいは、管理機能のためには、一般に、管理ソフトウェアをランさせるコンピュータである。あるいは、RTはブラウザ型ソフトウェアを含み、管理機能を実行することもできる。プロセッサ・ブレード200は、ブラウザ・ベースの管理のためにユーザ・インターフェースを設けるウェブ・サーバを含むこともできる。
プロセッサ・ブレード200の管理運営を行っているがリモート・ユーザからの作業負荷の下ではない場合、マルチCPUコンプレックス202の主CPUは、RTと通信するために使用可能である。しかしながら、種々の環境状態を監視するため、そしてプロセッサ・ブレード200がリモート・ユーザからの作業負荷を実行している間、これを観察及び管理するためには、図8において詳細を示すベースボード管理制御(BMC)サブシステム800を含むことが望ましい。
BMC800における別個のCPUの代替又は付属として、202における主CPUは仮想化技術を用いて、管理機能をオペレーティング・システム及びユーザ機能から隔離することができる。マルチコアCPU202においては、特定のコアをこのような管理機能に専用とすることができるが、適正に設計されたCPUは、Intel Vanderpool VT技術のようなハードウェアを含み、タスク又はスレッドが走っているコアがどれであるかには無関係に、これらを互いから隔離することを可能にする。したがって、1つのCPUコアが同時に帯域外管理機能をサポートするための保護仮想管理マシーン・モードをランさせ、更に種々のオペレーティング・システム及びユーザ・タスクをサポートするためにオペレーティング・システムの仮想マシーン・モードをランさせることができる。
CPUコアの異なる仮想マシーンは、各々、BMC800の異なる態様と共に動作することができる。好適な実施形態では、KVM212を有するBMCは、TSA−GPU700のMU−GPU412のようなローカル・グラフィクス・プロセッサを含み、仮想マシーン・モードでランしている標準的オペレーティング・システムのために表示処理を実行する。リモートKVM動作については、リモート・アドミニストレータがプロセッサ・ブレード200の帯域外管理を観察又は実行したい場合がある。帯域外リモート管理運営を実行する際に補助するために、ホストCPU202の保護仮想管理マシーン・モードを用いることができる。リモートKVM管理運営は、同じローカル・グラフィクス・プロセッサ・ディスプレイに、帯域外ネットワーク・インターフェースからアクセスすることを含むこともある。このようなグラフィクス・プロセッサ・ディスプレイへのアクセスは、図7に詳細を示すTSA−GPU700の更に進んだ特徴を利用することができる。別の実施形態では、ホストCPU上の保護仮想管理マシーン・モードを用いる代わりに、KVM212を有するMBC内部にある別個のCPU808を、帯域外リモート管理運営を管理するために用いる。
図3は、本発明の一実施形態によるリモート端末300のブロック図であり、好ましくは、表示画面310、ローカルRAM312、及びリモート端末システム・コントローラ(RTSC)314を含むが、これらに限定されるものではない。RTSC314は、キーボード、マウス、及びI/O制御サブシステム316を含む。I/O制御サブシステム316は、マウス318、キーボード320、及びオーディオを再生するスピーカ又は種々のデバイスをサポートすることができるユニバーサル・シリアル・バス(USB)接続部のような、その他の雑多のデバイスに対応する接続部を有する。バイオメトリックス又はセキュリティ・カードを含む安全確保手段によるユーザ認証をサポートするためのその他の一体又は周辺接続部も、含むことができる。接続部は、PS/2様式のキーボード又はマウス接続部のような単一目的専用とすることも、あるいはUSBのように汎用性を高めることもできる。別の実施形態では、I/Oはゲーム・コントローラ、ローカル・ワイヤレス接続部、IR接続部を含むことができ、あるいは接続部を全く含まないことも可能である。また、リモート端末システム300は、DVDドライブのようなその他の周辺デバイスも含むことができる。
本発明の実施形態の中には、リモート端末システム300において外部入力を全く必要としない場合もある。このようなシステムの一例は、小売店又は電子ビルボードであり、異なる表示が異なる場所で利用可能であり、種々の情報及び娯楽情報を示すことができる。各ディスプレイは独立して動作することができ、種々の要因に基づいて更新することができる。また、同様の安全確保システムが、銀行における情報キオスクや現金自動預け払い機(ATM)のような、タッチ・スクリーン入力を受け入れる数個のディスプレイを含むこともできる。カジノ用ゲームマシーンのような、その他の安全確保システムも、この種のRTに基づくことができる。
図1のホスト100は、各ブレードからのネットワーキング・インターフェース(例えば、180、190)を含むことができ、あるいは共有ネットワーク・コントローラを含むこともできる。いずれの場合でも、ネットワーク接続がホスト100からRT300の入力390まで確立される。ネットワーク・コントローラ336は、ネットワーク・パス390上で安全確保プロトコルをサポートする。ネットワーク・パス390は、有線又は無線とすることができ、ネットワーク上を移動するデータは、鍵(キー)交換によって暗号化することができる。共通ネットワークの一例に、ある種のイーサネット、好ましくは、ギガビット・イーサネットをランさせるCAT5ワイヤリングのようなイーサネットがあり、I/O制御パスは、標準的なトランスポート制御プロトコル及びインターネット・プロトコル(TCP/IP)又はUDP送信と組み合わせた軽量ハンドシェーキングの何らかの形態のような、イーサネットをサポートするプロトコルを用いることができる。リアル・タイム・ストリーミング・プロトコル(RTSP)及びリアル・タイム転送プロトコル(RTP)のような業界の成果を、リアル・タイム制御プロトコル(RTCP)と共に用いてパケットの転送をブリッジすることができ、更に再送信プロトコルを追加することによって、一層強化することができる。layer 3 DiffServ Code Points (DSCP)、Digital Living Network Alliance(DLNA)の一部としてのWMMプロトコル、Microsoft Qwave、uPnP、QoS、及び802.1Pのような、サービス品質(QoS)成果を用いることに関するその他の最新成果も、既存のネットワーク規格を用いる強化方法である。
I/Oデバイスをサポートするためのパケットに加えて、ネットワークは表示に必要な、カプセル化及びエンコードした表示コマンド及びデータも搬送する。CPU324は、ネットワーク・コントローラ336、2D描画エンジン332、3D描画エンジン334、データ・デコーダ326、ビデオ・デコーダ328、及びディスプレイ・コントローラ330と調整して、表示画面310上にローカルにレンダリング及び表示される可能性があるあらゆる形式の仮想データ表現をサポートする。RTが表示処理ブロックの任意特定の組み合わせも含む必要はない。特別に少機能のRTであれば、表示処理を行うCPUを有するディスプレイ・コントローラ330だけしか含まないこともあるが、少なくとも1種類のデコーダ又は描画エンジンを有する可能性の方が高い。
種々の処理エレメントが、フレーム全体を表すパケット、又は表示データの種々のサブフレームを表すパケットをデコードすることができる。好適な一実施形態では、パケットは、ディスプレイの固定位置に対応するエンコード表示データの種々のスライスを含む。CPU324は、パケットを受信し、パケットのヘッダ情報を読み取ることによって、パケットが意図する表示のしかるべき場所を決定する。データ・デコーダ326のようなしかるべき資源を用いて、データのスライスをデコードし、デコードしたデータを、表示メモリの中のしかるべき位置に転送する。データ・デコーダ326は、デコードしたデータを直接表示メモリ位置に生成するように設定することができ、あるいはデータを別のエリアにデコードし、2D描画エンジン332、CPU324、又はその他の手段によって、意図する位置に転送することもできる。
最初に、ローカル・フラッシュ・メモリ(図示せず)からブートし、追加の情報をホスト100によってネットワーク190/390を通じて提供することにより、RT300を初期化することができる。RTの初期化シーケンスの間、RTSC314と表示画面310との間の接続は、Display Data Channel(DDC:表示データ・チャネル)インターフェース、Extended Display Identification Data (EDID:拡張表示識別データ)、及び表示モニタの能力を特定するその他の拡張子のような規格を利用して、逆方向又は双方向モードで用いることができる。キーボード、マウス、及びI/Oコントローラ316を通じたUSB接続も、表示画面310への接続において用いることができる。次いで、利用可能な解像度及び制御のような情報をCPU324によって処理する。システム300は、ホスト100と通信することができるuPnPのようなプロトコル又はその他の発見メカニズムを実装することができる。その初期化通信の間、CPU324は、表示モニタ情報を含むRT情報をホスト100に提供することができるので、各RTをホスト側でインスタンス化することができる。
初期表示画面は、フラッシュ・メモリ又はホスト100のいずれからのものでもよい。第1フレーム全体の表示データに続いて、ホスト・コンピュータ200は、表示更新ネットワーク・ストリームの一部として、ネットワーク390を通じて、部分的なフレーム情報だけを送ればよい。表示の画素が直前のフレームから全く変化しない場合、ディスプレイ・コントローラ330は、ローカルRAMストレージ312からの直前のフレーム内容によって表示画面310をリフレッシュすることができる。表示画面310が、DVIのようなケーブルによって接続されている場合、HDCPがDRMを有するコンテンツを再生するための要件となることもある。加えて、RTSC314は、種々の暗号鍵が決してチップの外部には露出されない、高度に安全な処理環境を提供するように設計することもできる。更に安全を確保した実施形態においては、解読したコンテンツ・データがチップ外部に出ていくことは決してない。このような安全を確保したシステムを達成するために、RTSC314は、ホスト100及び表示画面310によって行う鍵交換とは独立して、ローカル暗号方法を利用するとよい。
表示の更新は、ネットワーク・ストリームを通じて送られ、カプセル化2D描画コマンド、3D描画コマンド、エンコード表示データ、又はエンコード・ビデオ・データで構成することができる。ネットワーク・コントローラ326は、ネットワーク表示ストリームを受信し、CPU324は、暗号化ヘッダから、機能ユニット332、334、326及び328の内どれが、そのパケットに必要とされるか判断する。機能ユニットは、画像データをデコードし、RAM312のしかるべきエリアを新しい画像で更新するために必要な処理ステップを実行する。次のリフレッシュ・サイクルの間、ディスプレイ・コントローラ330はこの更新フレームを表示画面310に用いる。
ディスプレイ・コントローラ330は、現在の画像フレームの表現をRAM312からディスプレイ310に転送する。通常、画像は、表示の準備ができたフォーマットでRAM312に格納されているが、RAMのコストが問題となる場合、画像又は画像の一部をエンコードしたフォーマットで格納することもできる。外部RAM312を、リモート端末のシステム・コントローラ314内部にある大型バッファによって置き換えてもよい。また、ディスプレイ・コントローラ330はRAM312に格納されている2つ以上の表示面を組み合わせて出力画像を合成し、画面310に表示することもできる。異なる配合動作を、合成と共に実行することもできる。
CPU324は、TSB400(図4、以下で論ずる)と通信して、RTに対する表示動作全体を最良に設定し管理する。初期設定には、RTSC314においてサポートされている機能の種類、表示画面310の仕様、データをバッファ及びキャッシュするために利用可能なRAM312の両、3D描画エンジン332がサポートするコマンド集合、3D描画エンジン334がサポートするコマンド集合、データ・デコーダ326がサポートするフォーマット、ビデオ・デコーダ328がサポートするフォーマット、及びディスプレイ・コントローラ330の能力を列挙することを含むことができる。実行時におけるその他の管理最適化には、RAM312において表示ビットマップを管理及びキャッシュし、これらをリセットしなくてもよいようにすることが含まれる。
RT300の構成は、以前からの(more conventional)CPUに基づくプラットフォーム上で走る基本データ・デコード・アーキテクチャ又はソフトウェアを含むことができ、インターネット・ブラウザ・アーキテクチャに基づくこともできる。インターネット・ブラウザ・アーキテクチャの一部として、機能ユニットを直接コールする特殊なブラウザによって、機能ユニットを利用する「プラグ・イン」又はドライバを含むブラウザによって機能ユニットを用いることもでき、あるいは標準的なブラウザが、どの要求をローカルに達成することができるかを判断し、ホスト・システム上でウェブ・アプリケーションとの通信を要求する仲介物として作用するローカル・エージェントを用いてもよい。「非同期Javaスクリプト言語及びXML「(AJAX)、及び「非同期フラッシュ及び拡張可能マークアップ言語」(AFLAX)は、このようなエージェントに基づく技法であり、XHTML、Javaスクリプト及び「XMLHttpRequest」を通じて操作する文書オブジェクト・モデルを利用して、ウェブ・サーバと非同期でデータを交換し、クライアントにおけるユーザ・インターフェースを改善することができる。AJAXを用いると、クライアント側におけるデータ・デコードにRT300の機能ブロックを用いる場合、選択的要求を実行することができる。
インターネット・ブラウザ・ベースのRT300からのエージェントに基づく選択的要求は、ホスト・プロセッサ・ブレード200及び端末サービス・ブレード400によってサポートし、システム全体を更に最適化することができる。追加の通信プロトコル処理も、AJAXエージェントによって実行することもできる。AJAX動作の別の例には、セキュリティ鍵の管理及びDNS参照を含むことができる。RT上におけるAJAXに基づくエージェントは、ホスト・プロセッサ・ブレード200又はTSB400を、アプリケーション・サーバ又はウェブ・サーバに対するプロキシとして利用することができる。AJAXに基づくエージェントは、特殊な通信メカニズムを含み、分割プロキシとして動作することができ、ホスト・プロセッサ・ブレード200又はTSB400がプロキシの他の部分を設ける。
図4は、ブレード・ベースのマルチユーザ・コンピュータ・システム100の端末サービス・ブレード(TSB)400の第2の好適な実施形態を示すが、TSB400は、代わりに、別個のコンピュータ又は器具として具体化し、ネットワーキングによってホスト・プロセッサに取り付けることもできる。器具としては、TSB400は、DVI又はサーバの表示出力へのその他のケーブルのような、別のネットワーク接続を含むことができ、ローカル・ディスプレイ・デバイスに対するサポートを保存するために、ローカルDVI出力を含むことができる。このようなTSB400からのDVI出力は、サーバからの通過モード(pass-through mode)とすることができ、あるいはDVIケーブル上のデータが単純な通過動作には適していないときには、デコード・ステップを通り抜けることもできる。TSB400は、ホスト・プロセッサからは独立して動作し、多数のRTのプロキシ・サーバとして振る舞うことができる。
TSB400は、CPUサブシステム402、メモリ434、ブリッジ・コントローラ404、RAM432を有するローカルI/O428、並びに端末サービス・アクセレレータ及びマルチユーザ・グラフィクス・プロセッサ・ユニット・サブシステム(TSA−GPU)700を構成するコンポーネントを含む。ブリッジ・コントローラ404は、直接スイッチ・ファブリックとインターフェースすることができ、あるいはスイッチ・ファブリック140及び142への接続のためにファブリック・インターフェース130を含むこともできる。TSA−GPU700の内部にある主要な機能ユニットには、マルチユーザGPU(MU−GPU)412及び端末サービス・アクセレレータ(TSA)424があり、これらは連動するRAM418及び430を有し、ディスプレイ・インターフェース220を経由する接続部222を含むことができる。構成の中には、TSA−GPUが共有RAMを有し、更に、図7を参照して以下で説明するように一体化してもよい。
単一のTSBは、多数のプロセッサ・ブレードに対してグラフィクス動作を実行する。プロセッサ・ブレード200の各々は、1つ以上のCPUを有し、各CPUは1つ以上のプロセッサ・コアを有し、任意数の仮想マシーンをCPU及びプロセッサ・コアの混合体上で走ることができる。マルチユーザ又はマルチプロセッサ・オペレーティング・システムの中には、TSB400に対する要求を調整しながら管理し実行することができる場合もある。例えば、Microsoft Remote Desktop Protocol(RDP)又はCitrix ICA系システムの場合、表示コマンドは既に仮想化されており、プロセッサ・ブレード200は直接グラフィクス・サブシステムにアクセスしようとはしない。他のマルチユーザ又はマルチプロセッサ・オペレーティング・システムは、グラフィクス・サブシステムへのアクセスを直列化するように調整された手段を含むことができ、オペレーティング・システムを組み合わせたTSB400によって、調整されたアクセスを適正にマップして、1つのTSA700が1つ以上のマルチユーザ・オペレーティング・システムに対して多数の表示をサポートすることができるようにしている。
しかしながら、仮想マシーン・モードでは、異なる仮想マシーン同士が互いを知らない場合もあり、各仮想マシーンが、専用のグラフィクス・サブシステムに完全にアクセスできると仮定すればよい。このような場合、TSB400は、多数の仮想マシーンからの非同期コマンド及び要求を順番に満たし、その結果得られるRTに対すある表示を適正にサポートするために、仮想抽象レイヤを作成する必要がある。TSB400は、プロセッサ・ブレード200の異なる仮想マシーン上でランする個別のオペレーティング・システムに対してグラフィクス・ドライバを記述することができる。次いで、TSB400は、異なるオペレーティング・システムからのドライバ・コールを調整し、マルチディスプレイTSA700の動作を調整する。あるいは、各オペレーティング・システムが標準的なグラフィクス・ドライバを利用すれば、TSB400は事実上ドライバ・コールを傍受することが必要となる。次いで、傍受したドライバ・コールを管理し、コヒーレント・マルチディスプレイ・モードでTSA700を動作させ、仮想マシーン毎に表示をしかるべく管理する。
システムによっては、TSB400の機能の1つは、プロセッサ・ブレード200をRTの各々に対する管理の一部から肩代わりし(offload)、各RTの表示過程(display experience)が改善するように、肩代わりした処理の一部を加速することである。肩代わり及び加速サポートの形式には、グラフィクス動作をリモート・グラフィクス・コマンドにカプセル化すること、どのグラフィクス・コマンドが最も適しているか判断するためにどの能力及びビットマップを各RTにキャッシュするか判断する際に補助すること、RTに転送するために必要となるビットマップのエンコード及びカプセル化、並びにマルチメディア・ビットストリームを最良に管理することが含まれる。あるいは、ブラウザ及びエージェントに基づくRTがホスト100に対して一層具体的な要求を開始して、グラフィクス・データの更新を規定し、送信の前にグラフィクス・データをTSB400によってエンコードすることもできる。好適な一実施形態では、ホスト・システム100はウェブ・サーバであり、この場合、プロセッサ・ブレード200はサーバ機能のデータベース及び「バック・エンド」動作を実行し、TSB400は、メディア・コプロセッサとして動作して、ウェブ・サーバ機能に対する表示エレメントを管理する。
eXtensible Markup Language(XML:拡張可能マークアップ言語)トラフィック、Simple Object Access Protocol(SOAP:単純オブジェクト・アクセス・プロトコル)、HTTPトラフィック、Java Virtual Machine(JVM)、及びインターネット系通信と関連する他のトラフィックの検査及びカプセル化のような追加機能もサポートすることができる。プロセッサ・ブレード200は、TSB400と共に、所望の任意のアンチスパム、アンチ・ビールス、コンテンツ・フィルタリング、アクセス規制施行、又はその他のパケット・フィルタリングに基づくアルゴリズムを実行している間でも、RTに完全なインターネットへのリモート・アクセスを効果的に実行させることができる。このような追加機能は、特に、ウェブ・コンテンツ・アクセスのためのプロキシとしてホストを用いてRTインターネット閲覧をサポートする際には有用なことがある。システムには何らかの冗長性があるが、この方法は、ホスト・システムとWANとの間で利用される一般的なネットワーク・セキュリティ・アプリアンス(装置)よりも特定したユーザ制御を設けることができる。DNS参照を設けることによって、設定及び管理する必要があるTCP/IP接続の数の減少が可能となる場合がある。また、TSB400は、SSLのようなセキュリティのための肩代わりも提供ことができる。加えて、TSB400は、安全を確保したクライアントに対して、証明書ベースの暗号アルゴリズムを設けることもできる。
TSB400上の特殊プロキシ・サーバが、インターネット・ベースのトラフィックに対して他の強化を用いることもでき、これには、RTディスプレイ・デバイスに応じて、インターネット・ベースのコンテンツを再フォーマット又は記録すること、及びRT内部における実行機能を含むことができる。例えば、RTデバイスがセルラ・フォン又はパーソナル・ディジタル・アシスタント(PDA)であり、画面解像度が限られている場合、TSB400は、高解像度のコンテンツにフィルタをかけてそれよりも低い解像度の画像に落として、高速化し一層適した画像にすることができる。TSB400は、その他の更にインテリジェントなコンテンツ・フィルタリング及びウェブ・ページ解釈アルゴリズムをランさせて、バナー広告及びその他の外部情報の除去というような機能を実行し、中核情報をセルラ・フォンに送るようにすることができる。TSB400は、ウェブ・ブラウザ全体を走らせることができ、RTは能力が低いウェブ・ブラウザ又はマイクロ・ブラウザを走らせる。TSB400のプロキシ機能は、進んだウェブ・フォーマットを、RTのブラウザが理解できるウェブ・フォーマットに変換することができる。
Active-X制御、Macromedia Flash、又はその他のラン・タイム・プログラムを利用するウェブ・コンテンツのような、他の種類のウェブ・コンテンツは、電話機又はPDAのようなデバイスと互換性がない場合もある。TSB400は、仲介プロキシ・サーバとして作用し、表示データpost-Active-X制御を、待機中のPDAに転送することができる。アプリケーション層の正規表現(RegEx)コンテンツ処理も実行することができる。再フォーマット及び再符号化も、クライアントのセキュリティを高めるために実行することができる。XML及びSOAPはハイジャッキング(hijacking)及びその他の形態のウィルスを受け渡しする恐れがあるが、TSB400はXML及びSOAPを安全なディスプレイ・フォーマットに記録することができるので、RTクライアントにはこのような危険性が及ぶことはない。
別の実施形態では、ホスト100又は更に具体的にはTSB400は、RTが読むことができないはずのファイルを見るための、より一般的なマルチフォーマット・ネットワーク・ファイル・プロキシ・サーバとして用いられる。例えば、RTは、種々の表示フォーマットに合ったビューアを含むことができるが、Adobe PDFファイル又はMicrosoft Word文書を開いて見る能力を含むことはできない。RT上のビューアは、種々のHTML及びその他のウェブ指向の文書をサポートするブラウザとするとよい。ホスト100は、Adobe PDFファイル及びMicrosoft Word文書の双方を開いて見ることができるとよい。次いで、ホスト100は、TSB400の機能性を用いて、PDFファイル又はWord文書からのグラフィカル出力を、RT上で見ることができる互換性のある表示フォーマットに変換することができる。RTは、多くの種類のデータ・ファイルへのネットワーク・リンクを有することができ、マルチフォーマット・プロキシ・ビューアを利用することによって、RT自体では見るためにデコードすることができない多くの種類のファイルを見ることが可能になる。この種のマルチフォーマット・プロキシ・ビューイングは、ネットワーク・ファイル共有機能と、又はメール・サーバと組み合わせることができる。例えば、マルチフォーマット・プロキシ・ビューアがファイル添付書類を、セル・フォンRTが見ることができるフォーマットに変換すると、種々の添付ファイルを有する電子メールを受信することが可能になる。見ることができる添付ファイルは、電子メール・メッセージに含ませることができ、あるいは添付書類の目視可能なバージョンへのリンクを電子メールに含ませることもできる。
マルチメディア・ビットストリームは、ビデオ・ストリームを含むことができる。ビデオ・ストリームは既に圧縮フォーマット化されており、図2のプロセッサ・ブレード200又は図4のTSB400によって受信されている。中には、マルチメディア・ビットストリームが既に対象のTR400と互換性のあるフォーマットになっている場合もある。このような場合、プロセッサ・ブレード200上で走るソフトウェア追跡層がビットストリームをTSB400に送出し、TSB400はこのビットストリームを、RTへの送信に適したパケット・フォーマットにカプセル化する。カプセル化は、ビデオ表示ウィンドウの原点のような、ヘッダ情報を追加すること、又はトランスポート・ストリームを異なるパケット・サイズのプログラム・ストリームに変換することのような、パケット編成を修正することを含む場合がある。
別の場合では、マルチメディア・ビットストリームは、目標RTによって容易に処理されるフォーマットになっておらず、あるいはネットワーク接続に適したフォーマットになっていない。このような場合、TSB400は、トランスコーディング・プロキシ・サーバとして動作し、マルチメディア・ビットストリームをデコードし、再度エンコードし、トランスコードし、又はレートを変更するという一層複雑なステップを実行する。例えば、着信マルチメディア・ビットストリームが、エンコードしたHDTV MPEG−2ストリームである場合がある。RTにおけるウィンドウ・サイズは、小さな320×230ウィンドウに合わせて設定されている場合、ネットワーク帯域幅を保存し、TSB400にマルチメディア・ビットストリームをトランスコード及びレート変更させて、所望の表示ウィンドウ・サイズを表す、低いビットレートにすることには意味があると考えられる。同様に、着信ビデオのフォーマットが、RTによってデコードすることができない場合、TSB400はビデオを互換性のあるフォーマットにトランスコードすることができる。フォーマットに互換性があっても、ディジタル権利管理(DRM)又は暗号化方式のような、その他の非互換性が存在する場合もある。TSB400は、1つのDRM又は暗号化方式を、目標RTに適合する方式に変換することもできる。
例えば、コンテンツ所有者が、Apple社のiTunesが用いるような企業固有の鍵交換に基づくDRM方式を用いる場合がある。TSB400は、プロセッサ・ブレード200又はローカルCPU402のいずれかでランするiTunesビデオ・プレーヤの出力を検査して、解読したコンテンツを取り込むことができる。出力がDVIビデオ・バスからである場合、デコードした出力を更にHDCPにおいて暗号化する。HDCPの場合、TSB400はDHCP保護コンテンツをデコードするためには適正な鍵を有する必要があり、解読を実行するために、ディスプレイ・デバイスとして作用する場合もある。コンテンツ所有者の制御権利を保存するために、TSB400は、次に、コンテンツを再度暗号化して、リモート・クライアントの再生デバイスが理解できるプロトコルにする。これは、ディジタル送信コンテンツ保護(DPCT)又はMicrosoft社の現行のフォーマットのような、市販のプロトコルに基づけばよく、あるいは企業固有のプロトコルを用いてもよい。一旦再暗号化したならば、新たに保護されたデータ・ストリームをネットワークを通じて、適正な解読及び表示能力を有する受信側のデバイスに送信することができる。
Microsoft社のRemote Desktop Protocol(RDP)の現行バージョンの一部では、圧縮ビデオ・ストリームに対する処理効率が低下している。RDPでは、ホスト・システムの内部にあるドライバがビットストリームを検出し、デバイス独立ビットマップ(DIB)にデコードする。次いで、DIBをRDP転送コマンドに変換し、DIBフォーマット・データをネットワークを介してRTに転送するが、信頼性は低い。殆どの場合、1組のDIBデータのフレームのみが表示のためにRTに達する。つまり、デコードを行うホストCPU、及びデコードしたデータを効率の低いフォーマットでネットワークを通じて送ることは、非効率である。他のRDPベースのグラフィックス動作も同様にDIBを利用している。
ウェブサイトからのグラフィックス・ビットマップのような、従来からのグラフィクス・ビットマップも、ホスト100からRT300に転送する必要がある。TSB400は、DIBのような従来のグラフィクス・ビットマップに対して種々のレベルのエンコードを実行することができる。グラフィクス・ビットマップのエンコードは、損失がない場合も損失がある場合もあるが、元のグラフィクス品質の目視区別可能な表現を提供することを目標とする。TSB400のための簡素化したソフトウェア・インターフェースでは、単にRDP APIを通じてホストCPUとインターフェースすることだけを含む場合があり、一方、それよりも意欲的な実施態様では、TSB400が基礎のDirectX ドライバ・フレームワークにアクセスすることを可能にする。エンコードしたDIBの転送、及び特殊な圧縮ビデオ・ドメインの転送は、標準的なRDP実施態様の一部ではない。したがって、これらの転送は、既存のRDP転送フォーマットと抱き合わせ、ある種の私的RDP拡張として動作するか、又はRDPフレームワークの外側で動作すればよい。
ホスト・オペレーティング・システム及びRDPのバージョンの中には、RDPプロトコルに対する追加のセキュリティ要件を満たす必要がある場合もある。RDPクライアントは、ホストと鍵を交換し、暗号化パケットを利用しなければならない場合もある。TSB400はRDPクライアント・パケットを傍受しているので、TSB400は、ホスト・プロセッサと通信するために、しかるべき加速及びオフロードを、鍵交換及び解読のために含むとよい。加えて、システムのセキュリティを維持するために、TSB400及びネットワーク・インターフェースは、RTとの全ての通信がしかるべく暗号化されていることを確認する。
別の実施形態では、TSB400は、ウェブ・サーバ移行エンジンとして、ウェブ・サーバの一部として又は多数のウェブ・サーバに対する集合点として動作し、ブラウザ及びエージェントに基づくRTをサポートすることができる。ウェブ・サーバの加速は、JAVA、データ・エンコード、データ・トランスコード、及びその他の機能のために実行することができる。更に別の好適な実施形態では、RTは一層インテリジェントなエージェントに基づくブラウザをランさせることができ、このブラウザは、AJAXのような多数のプロトコルに対するサポートを含む。AJAXまたは同様の手法を用いるブラウザは、ユーザ動作の間ブラウザ内部の情報を維持し、管理することができ、新しい情報が必要となったときだけ、ウェブ・サーバと接触すればよい。サーバが完全なフレームを受け渡す代わりに、AJAXが情報の要求を更に特定して行わせ、ウェブ・サーバがその新しい情報だけを提供し、次いでこれを既に格納されている情報と共に用いて、新しいフレームをローカルに発生する。この永続性(persistence)は、情報をプリフェッチすることによって、要求を小さくそして効率を高くすることを求めることによって、そして、セキュリティを管理することによって、ユーザ・インターフェースを改善するために用いることができる。AJAXが発生する要求は、TSB400によって管理することができ、この場合、TSB400によってセキュリティを維持し、データを効率的にエンコードすることができ、クライアント側ではAJAX及びRT300の機能ブロックを用いてデータをデコードすることができる。
設計が優れたAJAXウェブ・アプリケーションは、クライアント又はプロキシのオブジェクトをキャッシュし完全なフレームを送る必要性を軽減する能力を利用する。ここでも、任意のフレーム・データの最初の要求をエンコードするためにTSB400を用いることができる。選択的更新に合わせて設計されていないウェブ・アプリケーションに対して、TSB400を、このようなウェブ・アプリケーションとAJAXに基づくブラウザとの間でプロキシとして用いることができる。ホスト100は、ウェブ・サーバでなくてもよく、インターネット・サービス・プロバイダ(ISP)又は存在点(POP:Point of Presence)に配置されたサーバであってもよい。プロキシのように、ホスト100又はTSB400は、RT300と調整を行い、クライアントが先導する要求に基づいて、選択的更新を実行することができる。ウェブ・アプリケーションが完全なフレームの更新を要求しても、TSB400のプロキシは、新しいフレーム及び古いフレームを処理し比較して、クライアントにエンコードした更新情報を提供することができる。これによって、選択的更新に合わせて具体的に設計されていないウェブ・アプリケーションにとっても、帯域幅の縮小、及びRT300のユーザ・インターフェースの改良が可能となる。
TSB400は、数個の無関係の動作に対して一般的な移行タスクも解決するプログラム可能な解決策によって実施することができる。サーバは、ネットワーク、格納、セキュリティ、及びその他のタスクをオフロードすることから便益を得ることができる。オフロード・プロセッサは、統計的又は動的に種々の肩代わりタスクの均衡を取り、任意の作業負荷についても全体的なシステム・スループットを加速するように設計することができる。例えば、サーバは、日中少機能のクライアントのためにサーバ・ベースの計算を実行しており、夜間は大きなデータベース動作をランさせている場合もある。日中、肩代わりエンジンは、TSAのために記述された動作をランさせる。夜間では、肩代わりエンジンは、ディスク記憶システムから大きなデータベースにアクセスするために、iSCSI加速をランさせる。種々の作業負荷を追跡する内部又はシステム全体の管理手順によって、柔軟性を管理することができる。肩代わりタスク間の切換の粒度は、非常に小さくすることができる。肩代わりエンジンは、非常に速いコンテクスト切換を実行するように設計することができるので、1回のセッションの間に、ネットワーク、端末サービス、格納、セキュリティ、及び同じセッションについてのその他の肩代わりタスクを実行することもできる。
異なる肩代わりタスクのために動的処理をサポートするために、TSB400はプログラム可能かつコンフィギュレーション(環境設定)可能な処理ブロックを用いる。これらの処理ブロックは、作業負荷が変化するに連れて素早くタスクが切り換えられ、再コンフィギュレーションすることができる。処理ブロックの各々には、種々のメモリ・ブロックを含めることができ、それよりも大きなメモリ434を含めることもできる。CPU402は、総合的にプログラム可能なプロセッサであり、それ自体のキャッシュ・メモリを含み、肩代わりについてのハウスキーピング及び管理を実行することができ、更に高いレベルのプロトコル及びインターフェースの処理も実行することができる。ブリッジ・コントローラ404は、ネットワーク・プロセッサを統合し、TSB400のスイッチ・ファブリック・インターフェース130の機能を管理することができ、更に同時通信の多数のパイプを管理することができる。コンテンツ・アドレス・メモリ(CAM)のような特殊な内部メモリ、及び従前のメモリもブリッジ・コントローラ404の中に含めてもよい。
ブリッジ・コントローラ404及びTSA−GPU700の処理ユニットは、専用ハードウェア・ブロックと関連のあるスループットで異なる処理を実行するように容易に再コンフィギュレーションされるように設計されたコンフィギュレーション変更可能なデータ・プロセッサ(CDP)として実施することができる。専用ハードウェアの代わりにCPUを利用することによって、同じハードウェアによって異なる肩代わりタスクを実行することが可能になる。コンフィギュレーション変更可能なデータ・パス、動的命令集合、非常に長い命令語(VLIW)、単一命令多重データ(SIMD)、多重命令多重データ(MIMD)、ディジタル信号処理(DSP)及びその他の形態のコンフィギュレーション変更可能な計算のような、CDPを設計する先行技術の方法を組み合わせると、非常に高い性能の計算を実行することができる。また、CDPは、暗号及び鍵に関する機能のために追加の専用ハードウェアを用いて、又は用いずに、セキュリティ・プロセッサとして機能することもできる。
端末サービス加速及びプロキシ・サーバ動作のために、CDPは、タイル及び矩形のデータ・エンコード、ビデオ又はデータに対する種々の形態のトランスコード及びレート変更、タイル署名の発生及び比較、並びにTSA−GPU700に関して以下で説明するその他のタスクを実行するように、構成することができる。記憶の加速のためには、CDPはiSCCI、ファイバ・チャネル(FC)、ファイバ・チャネル・インターネット・プロトコル(FCIP)、及びインターネット・プロトコルに関するタスクの異なる態様に合わせて構成することができる。接続部490は、FC及びその他の記憶プロトコルに接続するように構成することができる。インターネット・コンテンツの加速のためには、CDPは、XMLトラフィック、SOAP、HTTPトラフィック、JVM、及びインターネット系通信と関連のあるその他のトラフィックを処理するように構成することができる。他のウェブ・サーバ加速には、DNS参照を肩代わりすること、TCP/IP接続を処理すること、並びに従前のウェブ・クライアント及びAJAX様式のエージェント・ベースのブラウザ双方のために、データ・エンコード及びトランスコードを実行することを含む。
TSA−GPU700は、TSB400のグラフィクスに関する肩代わり及び加速機能を実行する。マルチユーザ・グラフィクス・プロセッサ・ユニット(MU−GPU)412は、パケットを通じた選択的表示更新のサポートを含み、好適な実施形態を通じて提案したVESA Digital Packet Video Link(DPVL)規格の一部又は全てに準拠することができ、強化機能を含む。TSA424は、システム・バス406を通じてMU−GPU412からのパケット表示更新をサポートするか、好ましくは入力パス414及び416をサポートする。これらの入力は、シリアル・ディジタル・ビデオ出力SVD01及びSDV02、又は異なるバス幅、シグナリング・プロトコル、及び周波数を有する汎用ポートとすればよい。その例には、ディジタル・ビデオ出力(DVO)、ディジタル・ビジュアル・インターフェース(DVI)高品位マルチメディア・インターフェース(HDMI)ディスプレイ・ポート、あるいは、その他の低電圧差動シグナリング(LVD)、遷移最小化差動シグナリング(TMDS)、PCIエクスプレス、又はその他の方式が含まれる。表示出力パスは、高いリフレッシュ・レートで多数のフレームを出力するのに十分な速度で走ることができればよく、フレームは、1つよりも多いRTに対応する選択的更新矩形とすることができる。TSA424は、ローカルI/O 又はネットワーク・コントローラに、専用リンク426を通じて、種システム・バス4406を経由して接続することができ、あるいはシステム・オン・チップ(SOC)実施態様によって一層密接に一体化することができる。第2システム・バス408も、追加帯域幅のために、そしてブリッジ・コントローラ404及びその多数のスイッチ・ファブリックに対するインターフェースを直接サポートし易くするために、含んでもよい。
従前のグラフィクス処理を実行することに加えて、MU−GPU412は、表示に基づく選択的更新を生成し、表示の内変化した部分を示す。選択的更新は、矩形又はタイルの形態をなすことができ、ビデオ出力パス414又は416を通じて、又は主システム・バス406を通じてのいずれかで出力される。矩形更新は、ウィンドウの原点、サイズ、及びフォーマットを示すパケット・ヘッダを含む。原点は、どのRTが宛先であるかを示すために用いることができる。タイルも用いることができ、ヘッダがタイルを記述する情報が少なくて済むように、1つ以上の固定サイズに標準化することができる。矩形又はタイルをRTにおいて倍率調整すべきか、そしてどのようにして倍率調整するかというような、他の情報もヘッダに含むこともできる。選択的更新の他の形態には、BitBlt、エリア・フィル(Area Fill)及びパターン・フィル(Pattern Fill)に対するサポートを含み、大きなブロックのデータを送る代わりに、RTにおいて実行する動作のコマンド・パラメータと共に、最少量のデータを送る。他のヘッダは、ビデオ・ストリーム、ゲンロック、倍率調整ビデオ・ストリーム、ガンマ・テーブル、フレーム・バッファ制御の形態で更新をサポートする。他の強化した複雑なコマンドも、RTに対する選択的更新の様式に入れることができる。提案したDPVL仕様は、選択的更新について可能な一実施態様を、それらのヘッダと共に詳細に示す。
1つのMU−GPU412は、多数のRTに対する表示データを各々が収容する種々の表示面にRAM418を編成することにより、RT300の全てに対してシステムによって事実上仮想化することができる。MU−GPU412の2D、3D及びビデオ・グラフィクス・プロセッサ(図示せず)を利用して高いグラフィクス及びビデオ性能を達成することが好ましい。グラフィクス処理ユニットは、2Dグラフィクス、3Dグラフィクス、ビデオ・エンコード、ビデオ・デコード、スケーリング、ビデオ処理、及びその他の高度画素処理を含むことができる。また、MU−GPU412のディスプレイ・コントローラは、ビデオ及びグラフィクス・データの配合及びキーイング(keying)、並びに画面リフレッシュ動作全体というような機能も実行することができる。主及び副表示面に用いられるRAM418に加えて、種々の3D及びビデオ動作をサポートするのみ十分な、画面外メモリ(off-screen memory)がある。選択的更新を管理するDPVL方法の代わりに、RAM418の内部に選択的更新バッファ・メモリ(S−バッファ)404があってもよい。一実施形態では、S−バッファ404は、ステータス・ビット、署名、又はステータス・ビット及び署名双方を格納する。これらは仮想表示毎に各タイルに対応する。他の実施形態では、S−バッファ404はヘッダと共に又はヘッダのないタイル自体、ステータス・ビット及び署名情報を格納し、この場合、タイルは選択的更新に合わせて出力されるように配列されている。
グラフィクス・エンジン及びディスプレイ・コントローラは、通例、RTディスプレイ毎に主面に対応する完全な表示画像を合成する。RAM418は、RTの全てについての表示フレームのアレイを効果的に収容する。例えば、16K×16K画素の仮想ディスプレイとして、表示メモリを構成することができる。このような応用例では、1K×1Kの256台のRTディスプレイを16K×16Kアレイにマッピングすることができる。同様に、各RTが256×128ディスプレイを有するセルラ・フォンである場合、8192個の仮想ディスプレイを16K×16Kの表示エリアにマッピングすることができる。追加の画面外メモリ及びスクラッチ・メモリ(scratch memory)も含まれる可能性も高い。この用途には多数の独立したRTを伴うので、MU−GPU412は異なるセキュリティ機構を追加して、異なる表示エリアの安全性を確保し、一人のユーザが他のユーザのフレーム・バッファへのアクセスをえることを防止するとよい。本システムは、好ましくは、ハードウェア・ロックを含み、セキュリティ及び信頼性双方の懸念に対して、表示メモリの保護部分に対する不正アクセスを防止する。
図5は、図4のメモリ418の構成例を示し、仮想表示空間が横3200画素及び縦4800画素に設定されている。メモリ418は、8つの1600×1200表示エリアに分割されており、520、522、524、526、528、530、532、及び534で示されている。典型的な高品質表示モードは、画素毎に24ビットのビット深さに合わせて構成されるが、多くの場合、RAM418において編成されている、ビット当たり32ビットの構成を利用し、グラフィクス及びビデオ・プロセッサがディスプレイにアクセスするときに、位置合わせがし易くし、更に余分な8ビットを潜在的に他の目的で用いることができるようにする。タイル状メモリの図は、性質上概念的であり、MU−GPU412から見た場合である。実際のRAMアドレシングは、メモリ・ページ・サイズ及びその他の考慮点にも関係する。
図5において、表示エリア528は更に、表示更新矩形550を含んでいる。1600×1200表示の破線540は、地区(precinct)と呼ばれる、256×256画素の更に粗いブロックの境界に対応する。表示ウィンドウ550から明白なように、表示ウィンドウの境界の位置合わせは、必ずしも地区の境界と合っていない。ユーザは表示画面上にウィンドウのサイズ及び位置を任意に決めるので、これは典型的な状況である。フレーム全体を更新する必要がない遠隔画面更新をサポートするためには、表示ウィンドウ550の影響を受ける地区の各々を更新する必要がある。更に、表示ウィンドウ550内におけるデータ形式及び周囲の表示画素は完全に異なる形式であり、相関がない場合もある。したがって、地区に基づくエンコード・アルゴリズムは、損失を伴う場合、地区の縁及び表示ウィンドウ550の境界いずれにも、視覚的アーチファクトが伴わないことを確保する必要がある。実施のエンコード・プロセスは、8×8又は16×16のような、地区よりも小さいブロック単位で行うことができる。したがって、好適な実施形態は決定論的エンコード・アルゴリズムを用い、周囲の画素には関係なく画素の1集合に対して同じ結果が得られ、ウィンドウの任意の位置合わせによってアーチファクトが生ずることはない。
エンコード方式に対するブロック境界も、タイルに関する考慮点の1つである。例えば、ブロック境界が8画素の倍数でなければならないエンコード方式がある。ソース・ファイルが8画素の倍数でない場合、周囲のデータで埋め合わせする必要がある。別の場合には、ブロックの境界を、特定のユーザが配置した矩形すなわちタイルではなく、画面に向けてブロック境界を方位付けることが好ましいことが多い。ユーザが80×80画素のウィンドウを操作する場合、水平及び垂直方向の各々において最低10個の8×8ブロックを用いるように配置することが理論上可能であっても(合計100ブロック)、各方向に11ブロック(121ブロック)に及ぶ可能性の方が高い。したがって、矩形更新及び矩形の任意の続行中の円弧度は、88×88画素(121ブロック)をエンコードすることになり、周囲の画素の一部が埋め合わせ(padding)のために必要となる。
また、異なるサイズのディスプレイを有するRTもサポートすることができる。一例では、MU−GPU412は任意サイズのディスプレイをサポートすることができる。別の例では、それよりも小さいディスプレイをサブ・ウィンドウとしてサポートする、又はそれよりも大きなディスプレイを1つの表示エリアよりも広いオーバーレイ・ウィンドウとしてサポートする方が簡単な場合もある。矩形536によって線引きされているように、1920×1080ウィンドウの場合、532及び534エリア双方を用いる必要がある。これはエリアを無駄にするが、ディスプレイ毎にカスタム・サイズを作成するよりも、実施が簡単である。MU−GPU412の選択的矩形更新メカニズムのために、画面の関連するエリアだけが常に送信される。DVPLは動的にCRTC制御レジスタを制御して選択的更新を管理するが、S−バッファのような、これよりも柔軟性のあるその他のメカニズムを実施することもでき、プロセッサの介入が少なくて済み、システムの効率も向上する。
また、更に柔軟性の高いシステムでは、矩形を、タイルのように一層規則的サイズとしたエンティティに分解することもできる。任意の矩形サイズを有するヘッダ情報の効率と、柔軟性の低いタイル・サイズを用いるが画面データが多く単純化する潜在性のあるヘッダとの間には、ヘッダ情報の効率にトレードオフがある。好適な一実施形態では、タイルをブロック・サイズの任意倍数に動的に設定することができ、ブロック・サイズは、データ・エンコード・アルゴリズムに対して最小のエンティティとなっている。ブロックは、ソース画像又は画面の固定ブロック位置のいずれに対して方位付けることもできる。タイルのサイズは、ヘッダ情報に含まれる。
530で示すようなメモリのエリアを、選択的更新を管理するためのS−バッファに指定することができる。一実施形態では、S−バッファは、表示フレーム520、522、524及び526のタイルに対応するステータス・ビットを含み、ステータス・ビットは、タイルが選択的更新を必要とするか否かを示す。S−バッファ404は、タイル毎に署名も格納することができ、この場合、選択的更新の必要性を判断する際に用いられる。別の実施形態では、選択的更新が必要なフレーム520、522、524及び526からのタイルを、メモリ・エリア530にコピーし、選択的更新出力に合わせて整列させる。整列したタイルは、種々のヘッダ、ステータス、及び署名情報を含むことができる。
図6Aは、図5の表示マップ536を更に詳細にした図を示す。これは、1920×1080の高品位テレビジョン(HDTV)の解像度を有し、1080Pと呼ぶ。図6Aにおいて、固定サイズの矩形614が、画面位置の境界によって方位付けられている。各矩形は、横160画素、縦120画素である。行毎に12個の矩形(12×160=1920)、そして列毎に9個の矩形(9×120=1080)がある。システムは、これらの矩形を選択的更新の基準を形成するタイルとして用いることができる。図6Bにおける別のシステムでは、更に、矩形を80×40画素を含むタイルに分割し、システムはこれらの小さくしたタイルを選択的更新の基準として選択することもできる。更に柔軟性が高いシステムでは、6つのタイル620から成る大きな矩形614、及びタイル自体の双方を利用することができ、ヘッダ情報を用いて、任意の時点でどちらの種類が出力されているのかを正確に叙述することができる。
双方の場合において、エンコード・アルゴリズムの基準を形成するブロックは、タイル又は矩形の中に納まる。8×8ブロックを仮定すると、各タイルは、10×5のブロック構成を有し、各矩形は20×15のブロック構成を有する。大きい方の矩形及び小さい方の双方の矩形を利用するシステムでは、選択的更新の必要性を判断する際に、各々に異なるメカニズムを用いることができる。好適な一実施形態では、大きい矩形にはステータス・ビットを関連付け、これらが変化したか否かを示すことができ、小さい方のタイルは、このような判断を行うために署名を利用することができる。ステータス・ビット及び署名は、以下で説明するが、S−バッファによって管理することができる。
MU−GPU412は、タイルの選択的エンコードを直接的に実行する処理を統合することができ、あるいは選択的更新プロセス及びTSA424への出力を用いて各タイルをチェックすることもでき、その場合、タイルはしかるべきヘッダを含むことになる。ヘッダは、TSA424によって処理され、ヘッダ内部にあるフィールドに基づいて、TSA424は、どのRTそして表示画面のどこにタイルが意図されているのか把握する。該当する場合、TSA424は、タイルを圧縮フォーマットにエンコードし、いずれの必要なヘッダ情報も調節し、更にネットワーク処理を行うためにタイル及びヘッダを供給する。
MU−GPU412及びTSA424は、選択的更新プロセスを別々に区分することもできる。場合によっては、MU−GPU412は、完全な管理を行うことができ、更新を必要とするタイルだけをTSA424に送る。別の場合、TSA424は、更にスライスのフィルタリングも実行し、どのスライスが本当に更新を必要としているのか判断しなければならない。MU−GPU412内部において、選択的更新メカニズムは、ハードワイヤにすることも可能であり、CPUの介入を必要とすることも可能であり、ハードウェアは、描画エンジン及び選択的更新リフレッシュ・エンジンの双方に跨って実施することもできる。また、タイルのエンコードは、MU−GPU412又はTSA424のいずれで実行してもよい。また、MU−GPU412は、ディジタル・ビデオ・バスを通じて、RTに対するグラフィクス描画コマンドをTSA424に出力することもでき、あるいはソフトウェア・ドライバがコマンドを直接TSA424に供給することもできる。
選択的タイル更新のために、第1の実施形態では、S−バッファを用いる場合、MU−GPU412がタイル毎にステータス・ビットを管理する描画エンジンと、タイル毎に選択的表示更新を管理する際にステータス・ビットを監視する選択的更新リフレッシュ・エンジンとを有する。3Dグラフィクスで用いられるZ−バッファと同様に、S−バッファは、別個のデータ・メモリ・プレーンとして実現することができる。Z−バッファの場合と同様、強化MU−GPU412のハードウェア描画動作がS−バッファのステータス・ビットを更新し、追加コマンドは不要である。次いで、選択的更新ハードウェアがステータス・ビットを用いて、どのタイルがRTにおいて更新する必要があるか判断する。ディスプレイ・コントローラのリフレッシュ・サイクルと同様に、選択的更新ハードウェアは周期的にS−バッファを詳しく調べて、ステータス・ビットを読み出す。ステータス・ビットの状態に基づいて、選択的更新ハードウェアは、更新する必要のないタイルをやり過ごすか、又は選択的更新のためにタイルを読み取り、このタイルをヘッダ情報と共に出力し、それに応じてステータス・ビットを更新する。効率が低くてもよい実施態様では、MU−GPU412は従前の古いグラフィクス描画動作を用いてS−バッファを発生することができる。
特定のS−バッファ・ハードウェアを必要としない別の好適な実施形態では、MU−GPU412は、更新が必要なタイルを連結し、選択的更新バッファを管理することができる。選択的更新バッファは、別個のメモリ・エリアに組み入れてもよい。MU−GPU412が動作を実行しタイルが変化する毎に、そのタイルを選択的更新バッファにコピーする。各タイルの先頭に、ヘッダ情報を格納することができ、タイル同士を一緒に詰め込むことができる。ディスプレイ・コントローラは、選択的更新バッファを用い、標準的なディスプレイ・コントローラの出力動作を用いて、それをリフレッシュ・ポートに出力するように設定されている。MU−GPU412は、1つ以上のバッファをリング・バッファ、又は連結したタイルのリンク・バッファ・リストとして管理し、連続出力をSDVO出力に供給し、TSA424はそれをタイル・リストとして扱う。MU−GPU412がリストにおける配置の優先順位を調停するためには、種々の方式を用いることができる。この方法は、多数のRTをサポートするには特定のハードウェアが少なく、特殊な選択的更新ハードウェアを殆ど又は全く有していないMU−GPU412を利用するためには、最も効率的であると言える。
別の好適な実施形態では、TSA424がMU−GPU412と共に動作して、RT300においてどのタイルが更新を必要としているか判断する。MU−GPU412がタイル毎にステータス・ビットを管理する能力は、難しすぎる場合があり、タイルを大きなタイル又は仮想RTディスプレイ全体に集合化し、ステータス・ビットに対する粒度を制限することもできる。大きなタイルをそれよりも小さなタイルの更新に縮小することは、タイル毎の署名追跡に基づいて行うことができる。署名は、タイルが最初に処理されるときに発生され、後続の署名と突き合わせてチェックする。署名は、TSA424によって発生し処理することができ、TSA424は、着信データから、又はMU−GPU412の選択的更新ハードウェアと共に動作する。TSA424がタイル毎に署名チェックを行う場合、各RT400に対するネットワーク帯域幅を保存することができる。MU−GPU412が署名チェックを行う場合、ビデオ・パスを通じてTSA424までの帯域幅も保存する。MU−GPU412はタイルに対応する署名のメモリ・プレーンを発生し管理することができ、ステータス・ビットは、署名プレーン又は別個のプレーンの一部とすることができる。あるいは、ステータス・ビット及び署名ビットをRAMキャッシュにおいて管理し、MUGPU412によってリンク・リストと共に管理してもよい。
ホスト400上におけるグラフィクス動作によって発生するグラフィクス・コマンドの種類、及びRT300の能力に応じて、コマンドをカプセル化してRTにおける実行のために送ることができ、あるいはMU−GPU412によってローカルにコマンドを実行することもできる。多くの場合、コマンドはRTにおける実行のために送られるが、仮想表示のローカル・コピーを保持するために、コマンドはMU−GPU412によってもローカルに実行される。理想的には、冗長なローカル・グラフィクス・コマンドの結果変化した任意のタイルをステータス・ビットによって取り除き、不要なタイル更新パケットがRTに送られるのを防止する。エンコードしたタイルの代わりにコマンドを送るには、帯域幅は少なくてよいが、常にこれが可能とは限らない。選択的更新バッファを手動で管理するシステムでは、RTに送られているコマンドも考慮する。RTにおいて実行するコマンドによって更新されるタイルは、MU−GPU412によって選択的更新バッファに入れないことが理想的である。
プロキシ・サーバ又は端末サービス・アクセレレータの仮想表示メモリは、RTのディスプレイに変化が反映される前に更新することができる。これらは同じディスプレイと相関があるが、MU−GPU412及びTSA424によって管理されるタイルの位置及びサブフレームは、ユーザ・インターフェースの動作とは独立して位置付けられる。ユーザ・インターフェースの動作の結果、1つのタイルの中又は多数のタイルに跨って表示の変化が生ずる場合がある。ユーザ・インターフェースの変更は、ユーザの動作、AJAXエージェント、ブラウザ、又はプロキシ・サーバから開始する場合があり、その結果、仮想表示メモリに変更が生ずる可能性がある。タイルにおける更新、又は仮想表示メモリのサブフレーム更新は、RTにおいて反映され、MU−GPU412及びTSA424によって管理される。
別の例では、RTを目的とするグラフィクス・コマンドをTSA424によって処理し、エンコード・データ転送及び修正グラフィクス・コマンドに分解する。例えば、ホスト・システムが画面外メモリから又はパターンから画面上メモリにBitBlt動作を実行したい場合がある。これは、MU−GPU412サブシステムにおいて容易に実行することができる。しかしながら、RTにおいて、BitBltに必要なソース・データがキャッシュされていない。したがって、グラフィクス・コマンドを送ることができるようにするには、最初に、ソース・データ又はパターンをエンコードし、カプセル化し、RTに送り、次いで修正グラフィクス・コマンドをカプセル化しRTに送る必要がある。この手順は、TSA424によって肩代わりすることができる。DirectXドライバがMU−GPU412を通じてコマンドをつぎ込み、ついでMU−GPU412がこれらをTSA424に出力することは可能であるが、DirectXドライバがこれらを直接TSA424に伝達することの方が効率的なことも多い。
図7は、マルチユーザGPU(MU−GPU)412を端末サービス・アクセレレータ(TSA)424と共に集積回路(TSA−GPU−IC)システム・オン・チップ(SOC)710に組み合わせた好適な実施形態を示す。組み合わせたTSA−GPU−IC710は、RAM736をオンチップ又は外部に、サブシステム700の一部として含むことができる。TSA−GPU700は、1つ以上のシステム・バス・インターフェース406及び408を含むことができ、これらは同様でも異なっていてもよい。TAS−GPU700は、2Dエンジン720、3Dグラフィクス処理ユニット(GPU)722、PCIエクスプレス等の種々のシステム・バスに合わせたシステム・バス・インターフェース732、及びビデオ又はその他のローカルI/Oのためのインターフェースを含むことができるローカルI/O410の制御を含む。加えて、SOC710は、ビデオ圧縮部724及びビデオ伸張部726のハードウェアの組み合わせ、あるいは、これら及びその他のビデオ関係機能を組み合わせた形態のプログラマブル・ビデオ・プロセッサ764も含むことができる。また、追加のプロセッサ756も含むことができる。
また、選択的更新を実行するディスプレイ・コントローラ(SUC)を有するマルチユーザ選択的更新、及び、要求されたサブフレーム又はタイルを圧縮するデータ・エンコーダ752も含まれる。SUC750は、ローカル・ディスプレイに対する出力222及び758を含むが、リモート・マルチユーザは、システム・インターフェース732、あるいは潜在的にネットワーク・コントローラへの直接接続部426によってサポートされる。システム・バス760は、種々の処理ユニット並びにシステム・インターフェース732及びメモリ・インターフェース734間における接続を例示する。システム・バス760は、種々の形態のクロスバー切換、調停転送を含むことができ、性能強化のためにユニット間に直接パスを有することもできる。
図4のマルチチップTSA−GPU700では、MU−GPU412は、SDVOパス414及び416を通じてTSA424に接続されており、MU−GPU及びTSAは各々、それら自体のRAMを有している。逆に、図7では、TSA−GPU−IC710は、SDVOパスの代わりに、共有RAM736を用いる。RSM736を用いることによって、転送のためにSDVOパスを用いる必要性、そしてSDVO帯域幅の問題を解消する。加えて、メモリを共有することにより、SUC750はフレーム情報を直接メモリから読み取ることが可能となり、これによってMU−GPU412によるメモリ読み取りが不要となる。
機能ユニットの各々に直接S−バッファ・サポートを含むというように、TSA−GPU700のSOC710に、いくつかの追加の最適化を含んでもよい。また、図5に示したような固定サイズのディスプレイによってマルチユーザ・フレーム・サポートを実施する代わりに、TSA−GPU700を、対応するリモート端末における解像度及び色の深み(color depth)が一致する多数のディスプレイに対するサポートをマッピングするように設計することもできる。メモリにおける表示を対応するリモート・ディスプレイ・システムとより直接的に照合することにより、メモリ使用の効率向上を達成することができる。
S−バッファのサポートは、ハードウェアで又は追跡ソフトウェア・レイヤと合わせて用いると、変化が生じ選択的更新ストリームの発生を必要とする表示フレームに対するエンコードの選択において補助することができる。S−バッファのサポートは、ヘッダ、ステータス・ビット、署名、又はこれら3つの組み合わせを利用することができ、そして固定サイズのタイル又は可変サイズのタイルに基づくこともできる。SUC750はS−バッファのサポートを利用して、選択的更新を必要とする表示のサブフレームを決定することができる。ヘッダ情報は、選択的更新の下流処理に有用であると考えられる。
異なるシステムが、ヘッダのサイズ縮小、又は選択的更新転送の回数減少に最適化することができる。例えば、好適な実施形態では、64ビットのヘッダを含む、タイルに基づく選択的更新システムを利用することができる。ヘッダの16ビットは、64Kの可能なRTの内のどれが選択的更新の意図した受信先か指定するために、用いることができる。他の1対のビットは、限られた数の固定サイズのタイルの内どれが選択的更新に含まれるかを示すために、用いることができる。更に、ビットの別のセグメントは、選択的更新が対応するディスプレイ上の場所を示すタイル番号を指定する。選択的更新エンコード・データは、ヘッダに追従する。優先順位、誤りチェック、及びその他の追跡情報についての追加ビットも含むことができる。
別の好適な実施形態では、SUC750はタイルを用いなくてもよいが、選択的更新パケットに必要な記述は多くなる。例えば、タイル位置を指定するために数値を与える代わりに、システムは選択的更新矩形の開始位置を指定するためにX及びYオフセットを要求してもよい。この場合、選択的更新矩形は、水平及び垂直方向双方に対して画素又はブロックの数で記述されることになる。このようなシステムのヘッダ情報は大きくなる場合があるが、リモート端末に対して更新を行うための固有の転送(unique transfer)の回数は少なくて済む。
RTの能力及びホスト100とRTとの間におけるネットワーク特性に応じて、TSB400は、選択的更新を送る代わりに、一部のグラフィクス・コマンドを直接RTに送ることを選択してもよい。これらのグラフィクス・コマンドは、TSBのCPUサブシステム402又はプロセッサ756によって管理することができる。また、これらのプロセッサは、DirectX及びRDPコマンド双方に対してコマンド解釈を行うことを含む、プロキシ・サーバ又はその他の端末サービス機能も管理することができる。インタープリタとしては、プロセッサ756又はCPUサブシステム402は、ホスト・システム上でランするソフトウェア・ドライバを肩代わりさせて、2Dグラフィクス・コマンド、3Dグラフィクス・コマンド、ビデオ・ストリーム、及びその他のウィンドウ作成機能を管理する。インタープリタの機能をデータ・エンコーダ752と組み合わせて、RT管理の計算集約的な態様の多くを実行することができ、更に、ホスト・システムから種々のRTに送られるコマンド、データ、及びビデオ・ストリームを最適化することもできる。プロキシ・サーバは、TSB400とRTとの間で分割することもできる。
例えば、種々のパターンBitBlt、ソースから画面宛先BitBlt、及び他のビットマップ転送を強化することができる。ソース・データ、ソース・パターン、又はソース・ビットマップを必要とするグラフィック・コマンドは、ソースをより効率的なフォーマットに、データ・エンコーダ752によってエンコードすることができる。エンコードされたソース・データ、ソース・パターン、又はソース・ビットマップは、修正されたグラフィック・コマンドと共にRT300に転送される。宛先のRTは、エンコードされたソースを受信し、それをデコードし、次いで、修正されたグラフィック・コマンドを受信したときに、意図した動作を実行する。エンコード・データ及び修正コマンドの転送は、RDP転送、又はRDP状の転送のいずれかでよく、これらはTSA−GPU700及びRT300がサポートする。
TSB400におけるビデオ・ストリームに対して、DirectXインタープリタ・ソフトウェアは、ビデオ・ストリーム処理を傍受し肩代わりし、最適なストリームを目標RTに供給することができる。肩代わりにおける最初のステップは、プロセッサ・ブレード200がマルチCPUコンプレックス202上でビデオ・デコードを実行していないことを確かめることである。ホスト・ベースのデコードには幾つかのマイナス面があり、その内最も重要な2つは、最初に、実際のデコードを行うのに多数のCPUサイクルを要することである。第2に、ホストにおいてビデオ・フレームをデコードしておくことは、目標RTにおいて表示するフレームを得る最良のやり方では必ずしもないということである。代わりに、DirectXインタープリタ・ソフトウェアはDirectXコールを傍受し、Microsoft Windows(登録商標)の中には、圧縮形態のままである間にビデオ・ストリームに対するアクセスを得るためには、DirectShowの使用を伴うバージョンもある。DirectXインタープリタは、RDPが通常の動作を続けるためには、模造フレームによってRDPソフトウェア・インターフェースを騙さなければならない場合もある。
一方、TSB400は、RTがデコードすることができるビデオ・ストリーム・フォーマットはどれか、ホスト・システムからRTまでのネットワーク・スループットが通常はどれくらいか、そしてビデオ・ストリームで意図する解像度及び表示特性は何か把握している。この情報を用いて、TSB400は、着信ビデオ・ストリームを処理しネットワーク、RT及び表示出力要件に対して理想的なストリームを生成するように、TSA−GPUを設定する。これには、一方のエンコード・フォーマットから他方にトランスコードすること、一方のビットレートから他方にレート変更すること、フレーム・レートを変更すること、表示フォーマットを変更すること、解像度又はこれらのいずれかの組み合わせを変更することを伴う場合もある。次いで、TSB400は、処理したビットストリームをカプセル化し、ネットワーク処理のためにそれを然るべき接続部に送る。
プロキシ・サーバ又はシステム100上でランするRDPサーバ・ソフトウェアをプロセッサ・ブレード200とTSB400との間で区分するには、いくつかのやり方がある。ここでは、2つの実施形態について詳細に検討する。第1の実施形態は「終了及び再生」(terminate and regenerate)であり、第2の実施形態は「肩代わり及び強化」である。これらの実施形態の変形も可能であり、各実施形態の態様を利用することができる。
「終了及び再生」の場合、TSB400上でRDPクライアントをランさせる。プロセッサ・ブレード200上で走っているRDPサーバに関する限り、RDP動作はTSB400によって終了させられる。この場合、TSB400は、TSA−GPU700を利用して仮想表示空間を作成し、1つの大きな表示マップを作成することによって多数の仮想RTをサポートし、この大きな表示空間の内部において、各ユーザをオフセットするか、又は各仮想表示を、それ自体のマッピングによって、別個の表示として見る。RDPクライアント・ソフトウェアは、安全を確保したクライアント通信を要求するRDPホストのために、プロセッサ・ブレード200とTSB400との間で鍵交換及びセキュリティ処理を利用しなければならない場合もある。RDPクライアントがRDPホストからコマンドを受信すると、クライアントは、TSA−GPU700を利用して、表示フレームをディスプレイ・サブシステムに引き渡す。次いで、「終了及び再生」により、TSB400はTSB400とRTとの間の通信のために望む手段及びプロトコルであればいずれでも用いることができる。
「終了及び再生」動作の好適な実施形態では、TSB400は、多数のRDPクライアントとして構成され、その各々がRTに対応する。プロセッサ・ブレード200は、スイッチ・ファブリックを用いて、「仮想」RDPクライアントと通信する。次いで、TSB400は、仮想ネットワーク計算(VNC)を用いて、RTに対してサーバとして作用する。RTとホスト100との間の通信は全て、TSB400が管理する。RTからのVNCキーボード及びマウス・コマンドは、TSB400によって、プロセッサ・ブレード200に対するRDPコマンドに変換される。すると、VNCを用いるいずれの種類のクライアントでも、主プロセッサ・ブレード200が非VNCサーバを走らせているホスト100と効果的に通信することができるようになる。「終了及び再生」動作の第2の好適な実施形態では、TSB400は、インターネット・サーバとして作用し、ブラウザを走らせているRTと通信する。異なるプラットフォーム上の異なるブラウザは通常異なる能力を有するので、TSB400は、異なるTHHP、XML、Java、及びブラウザに基づくクライアントと通信するためのその他のメタデータ・プロトコルをサポートするとよい。
ウェブ・サービスのために、「終了及び再生」機能は、TSB400上で動作するプロキシ・サーバが実行する。プロセッサ・ブレード200は、ウェブ・サーバをランさせることができ、あるいは別の場所に位置するウェブ・サーバに対する接続を管理することができる。あるいは、TSB400はウェブ・サーバと直接通信することもできる。プロキシ・サーバとしては、TSB400はウェブ動作の全てを終了させる。TSB400は、上流側のウェブ・サーバに継続的に要求を行うAJAXエージェントのような、エージェントを含むことができる。次いで、TSB400は直接RTクライアントと通信する。TSB400は、RTがサポートするプロトコルであれば任意のものを用いることができ、RT通信を完全に別個なプロトコルにすることもでき、あるいは同様のウェブに基づくプロトコルを再利用することもできる。
サーバ・ベースの計算の第2の実施形態では、「オフロード及び強化」がクライアント通信におけるプロセッサ・ブレード200の関与を一層維持する。プロセッサ・ブレード200上の追跡ソフトウェア・レイヤは、なおもDirectXビデオ、グラフィクス、及びデータ・ストリームをTSB400に再送出し、TSB400がDirectXコールの機能を完成させる。機能をオフロードさせることによって、マルチCPUコンプレックス202をマルチユーザ・システムの他のユーザも利用できるようにする。表示環境及び最適な処理を可能にするネットワーキング帯域幅を把握することによって、TSB400によって更に多くの処理を完成させることができる。
また、グラフィクス・コマンドをローカルに実行し、かつRTに転送して送るときに、TSA−GPU700によってS−バッファを管理するために、TSB400上のインタープリタ・ソフトウェアを用いることができる。TSA−GPU700がグラフィクス・コマンドをローカルに実行する理由は、フレーム・バッファの現行のコピーを今後の使用のために管理することができるようにするためである。グラフィクス・コマンドがRTにおいて実行されているので、ホスト上でローカル・グラフィクス・コマンドの結果として変化するタイルは、選択的更新ハードウェアにエンコードしたタイルを遅らせる必要はない。これを防止するために、RDP追跡ソフトウェアは、どのタイルがグラフィクス・コマンドによって影響を受けるか計算する必要がある。これらのタイルに対応するS−バッファにおけるステータス・ビットを管理すれば、タイルに基づく選択的更新を実行しないようにすることができる。
また、追跡及びインタープリタ・ソフトウェアは、変化し表示更新ストリームの発生を必要とする表示フレームの選択をエンコードする際に、補助するために用いることができる。尚、エンコードは、リモート・ディスプレイ・システム300が表示を再生するために必要なデータを減少させるために行われることは上記した通りである。追跡ソフトウェア・レイヤは、フレーム又はタイル内にあるデータの形式を識別し、最適な種類のエンコードを実行できるようにするのに役立つ。一部のRTは、グラフィクス・コマンドを実行するための十分なグラフィクス処理能力を有しておらず、TSA−GPU700が処理したエンコード・データが送られることもある。
例えば、追跡ソフトウェア層が、タイルの表面がリアル・タイム・ビデオであることを識別した場合、ビデオには一層効果的であり、スムーズな空間遷移及び時間的局在性 (temporal locality)を有するエンコード方式を、これらのタイルに用いることができる。追跡ソフトウェア層が、タイルの表面が殆どテキストであることを識別した場合、鋭い縁及びテキストの広い白色空間に一層効果的なエンコード方式を用いることができる。どの形式のデータがどの領域にあるか識別することは、複雑な問題である。しかしながら、追跡ソフトウェア層のこの実施形態では、ホスト・ディスプレイ・システム及びこの識別において補助するホスト・オペレーティング・システムのグラフィクス・ドライバ・アーキテクチャにインターフェースを組み込むことを可能にする。例えば、Microsoft Windows(登録商標)では、ある種のDirectShowコマンドを利用する表面はビデオ・データである可能性が高く、一方、通常テキストと関連のある、色拡張ビット・ブロック転送(ビット・ブリッツ(Bit Blits))を用いる表面はテキストである可能性が高い。各オペレーティング・システム及びグラフィクス・ドライバ・アーキテクチャは、それ自体の特性指標を有する。他の実施態様が並行して多数の形式のデータ・エンコードを実行し、次いでエンコーダのフィードバックに基づいて最良の結果を出したエンコード方式を用いることを選択することができる。
また、この「オフロード及び強化」の第2の実施形態は、ウェブ・ベースのサービスに合わせたプロキシ・サーバ・アーキテクチャと共に利用することもできる。このような実施形態では、TSB400は、ウェブ・サーバと直接通信することができ、あるいはRTとウェブ・サーバとの間の通信を調整する分割プロキシとして機能することもできる。TSB400及びRT上でランするエージェントは、種々のウェブ・サーバに継続して要求を行うこともある。TSB400は、ウェブ・サーバ情報を、実際にRTが表示のために必要とするまで、キャッシュすることができる。前述のように、TSB400は、種々のグラフィクス及びビデオ・コマンド並びにデータを記録し、又はフォーマットし直して、RTへの通信チャネルにより良く適応させるだけでなく、RT内部で利用可能な機能及び性能とより良く合わせることができる。種々のコンテンツ管理及びコンテンツ・フォーマット動作は、プロキシ又は分割プロキシ・サーバとして動作するTSB400によって実行することができる。
種々のデータ形式に対して、ある種のエンコード方式は特定の形式のデータにはより有用であり、一部のエンコード方式はデータ依存性が低い。例えば、RLEはテキストには非常に良いが、ビデオには劣っており、DCT・ベースの方式はビデオには非常に良いが、テキストには劣っており、ウェーブレット変換ベースの方式は、ビデオ及びテキスト双方にとって満足することができる。このシステムでは、無損失のエンコード又は損失があるエンコードのいずれの種類でも用いることができるが、ウェーブレット変換エンコードは、無損失又は損失型のいずれでも可能であり、特に、周囲のタイルに対する懸念なく各タイルをエンコードすることができる決定論的算術的コーダを用いたプログレッシブ(前進)・ウェーブレット変換は、この用途には特に適している。JPEG2000ウェーブレット・エンコーダの派生物は、リアル・タイムでの実行を改善するために特別な処理を行っており、可能な実施態様の1つである。
図8は、図2のBMC800を更に詳細にした図である。BMC800は、CPU808を含む。CPU808は、単純なマイクロコントローラでよく、あるいはキャッシュを備えて一層強力なCPUでもよい。また、BMC800はセキュリティ・プロセッサ804、ネットワーク・プロセッサ及びMACコントローラ即ち「ネットワーク・インターフェース制御」(NIC)806、RAM218、インターフェース制御部810、並びにある形態のTSA−GPU700も含む。
CPU808は、「帯域外」(OOB)を処理することができるオンボード・プロセッサである。これは、動的なソフトウェアや介入が主CPUから要求されないことを意味する。理想的なBMC800は、追加の配線(cabling)を全く必要とせず、プロセッサ・ブレード200の完全なリモート管理運営を可能にする。場合によっては、BMC800は、多数のブレードの管理を行うために、中心に据えてもよい。ここに示すBMC800は、キーボード、ビデオ、及びマウス(KVM)機能のサポートを含む。システムによっては、CPU808を、主システムCPU上でランする仮想マシーンによって、更に強化するとよい。完全にOOBではないが、仮想マシーンは、他のシステム機能と干渉しないように設計する。
BMC800との通信は、セキュリティのために、セキュリティ・プロセッサ804を用いて暗号化し、ローカル・ネットワーク・インターフェース214を利用することができ、又はバス206を通じて、あるいはしかるべき図2のファブリック接続部140又は142を経由してパケットを転送することもできる。ネットワーク・インターフェースは、図示のように、NIC806と共に部分的に含めることもでき、NIC806は、MAC部と、任意の場所にある残りの物理インターフェース(PHY)とを含む。インターフェース814は、外部PHY(図示せず)にインターフェースするときには、メディア独立インターフェース(MII)又は縮小版MII(RMII)のような規格に準拠することができる。外部Phyは、専用デバイスとすることも、別のネットワーキング・サブシステムの一部とすることもできる。
BMC800についての表示の態様は、単純から複雑なものまで変化に富む場合があり、1つ以上のローカル又はリモート・ユーザをサポートすることができる。単純なシステムは基本的なグラフィクス・コントローラ及びソフトウェアを利用して表示をエンコードすることができるが、好適な実施形態はグラフィクス加速、選択的更新及び更新のエンコードの精巧な組み合わせを利用し、リモート・ユーザが最大の性能仮想提示(performance virtual presence)を有するようにしている。したがって、BMC800は、表示をサポートするためのTSA−GPU700の使用を示す。同時ユーザの数に応じて、この種のBMC800の用途に合わせたTSA−GPU700の性能は、TSB400における程高くなくてもよいが、潜在能力は同様であるとよい。
リモート・アクセスのためにサポートする仮想提示機構のレベルを高めることに加えて、オンボード・プロセッサは、温度、電圧、音響、センサ、LEDを管理するというような、種々のプラットフォーム自動化のための異なるセンサにインターフェースすることもできる。警報の中間レベル・リモート監視も監視し管理する。外部管理システムと通信するために、BMC800はウェブ・サーバを含むことができ、Intelligent Platform Management Interface(IPMI:インテリジェント・プラットフォーム管理インターフェース)及びActive Server Management Interface(ASMI:アクティブ・サーバ管理インターフェース)のようなリモート管理を標準化するための種々の業界の成果に従うことができる。同時多数ユーザ、及びDVDドライブのような仮想I/Oデバイスに対するサポートも含ませることができる。また、BMC800には、インターフェース制御部810も示されており、インターフェース制御部810は、直接オンボード・センサに、パス802を通じてオンボード・センサと通信する外部インターフェース・チップ850に、又はパス214を通じて別のローカルI/Oコントローラにインターフェースすることができる。図8に示すようなシステム・バス206を利用する代わりに、インターフェース制御部810はBMC800を、システム管理バスのような、別のバスにインターフェースすることもできる。
図9は、本発明の一実施形態にしたがって端末サービス加速及びプロキシ・サーバ手順を実行する方法ステップのフローチャートである。明確化のために、ビデオを含むデータの表示を参照して、この手順を論ずることにする。しかしながら、オーディオ、キーボード、マウス、及びその他のデータに関する手順も同様に、本発明と共に用いることができる。最初に、ステップ910において、マルチユーザ・コンピュータ100及びリモート端末システム300は、種々の手順にしたがって、種々のサブシステムが各RTをイネーブルするために、ホスト側及び端末側を初期化し設定する。ステップ912において、アプリケーションが、更新表示データを、表示コマンド、表示データ更新、又はビデオ・データ・ストリームの形態で供給する。アプリケーション更新は、アプリケーション自体、クライアントにおけるユーザの行為、又はアプリケーションにおける他の何らかのエージェント、プロキシ・サーバ、あるいはクライアントから開始することができる。アプリケーションの要求は、ホストCPU上で走る追跡ソフトウェア・レイヤによって傍受することができ、あるいはコマンドは、TSB400上で走っているプロキシ・サーバ又は端末サービス・アクセレレータによって傍受することもできる。ステップ912において、BMC800のために、追跡ソフトウェア・レイヤを含ませず、BMC800はホストCPUとは独立して動作する。
グラフィクス動作が2D描画を含む場合、ステップ924において、2D描画エンジンMU−GPU412が動作を処理し、しかるべき仮想表示をRAM430内に生成することが好ましい。同様に、ステップ926において、3D描画をMU−GPU412によって実行して、しかるべき仮想表示をRAM内に生成する。ステップ928において、TSB400は、ビデオ又はグラフィクス・コマンドをしかるべきRTに転送することを決定することができる。ステップ950までのフローは、バイパス・ステップ928による影響を受けずに済む。ステップ940において、MU−GPU412は各仮想表示を合成して、表示に適したフレームを形成する。この合成は、CPUサブシステム202、2Dエンジン、3Dエンジン、及びGPU412内部にある任意のビデオ処理エレメントによる動作の任意の組み合わせで実行することができる。合成ステップの一部として、S−バッファの管理をグラフィクス処理ハードウェアに含むMU−GPU412のために、描画エンジンは、それぞれのタイル毎にS−バッファを更新する。
リターン・パス944によって示されるように、TSB400は、必要に応じて、同じRT又は異なるRTのために次のフレームを処理することができる。好適な一実施形態では、TSB400は、アプリケーション・サーバに関する限り、クライアントは最後まで完了した描画動作を有するように、完全なクライアント・スタックをランさせることができる。同様に、TSB400は、ウェブ・サーバに関するウェブ・クライアント動作を完成するために、プロキシ・サーバ又は分割プロキシ・サーバとして作用することもできる。TSB400は、多数のユーザを列挙するためにクライアント・プロトコルをランさせることができる。一旦TSB400が、クライアント側動作が完了したサーバに通信したなら、TSB400はその時点で意図するコマンド又は表示データを目標のRTに中継するためにいずれのメカニズムでも用いることができる。先に述べたように、TSB400は既存のコマンドを再度送ること、修正したコマンドの様式を変更すること、又は表示更新をRTに反映する別のメカニズムを用いることができる。
コマンド傍受の一部として、TSB400はローカル仮想表示メモリにおいて意図したRT表示画面を完全に合成することができる。一旦合成動作を行ったならば、ステップ946において、タイル及び関連するS−バッファ・ステータス・ビット、並びに該当する場合には署名ビットを管理する。ステップ946では、S−バッファ・ステータス・ビットに影響を及ぼす可能性があるビデオ及びグラフィクス迂回ステップ928によって処理されたいずれのグラフィクス及びビデオ動作をも考慮する。例えば、描画動作がステップ924において実行され、ステップ928を通じてリモート端末に迂回された場合、描画動作による影響を受けるタイルに対して選択的更新を行う必要なない。何故なら、この動作はRTにおいて行われるからである。
MU−GPU412内部で又はTSA424との組み合わせで行われる、タイルに対するステータス・ビット及び署名の処理がステップ946において行われた場合、ステップ950では、ファイルの選択的更新を行うことができる。タイルは、固定又は可変サイズにすることができる。タイルと共に含まれるヘッダ情報は、フォーマット、及び意図するRT宛先を示す。ステップ954において、TSA424は、ステップ950から受けたタイルの必要なエンコードを実行する。このエンコードは、決定論的方式として、タイル内部にあるデータの方位及び周囲のタイルを、エンコード・ステップにおいて考慮する必要をなくすことが好ましい。また、ステップ954において、ステップ928に続くビデオ・データ及びグラフィックス・コマンドを処理する。ビデオ・データのレートを変更することができるが、この場合、ビットレート又はフレームレートを変更し、周波数又は空間のいずれかのドメインにおいてスケーリングし、必要な場合、異なるエンコード規格にトランスコードする。リターン・パス968を通じたネットワーク・フィードバックは、RT情報と共に、エンコードのステップ954を判断するのに役立つことができる。
また、ステップ954では、グラフィクス・データのエンコードを伴う可能性がある、追加の処理を必要とするいずれのグラフィクス動作をも実行する。ステップ958において、TSA424又はCPU402は、以前のステップにおいて処理したグラフィクス・コマンド、データ転送、又はビデオ転送の更なるカプセル化を実行する。また、このステップにおいて、帯域幅及びレイテンシのようなネットワーク特性、並びに特定のパケット・サイズ及び送信の問題に関して、ネットワーク・フィードバックを考慮する。ステップ962において、カプセル化したパケットを、しかるべきネットワーク・コントローラによって処理し、パケットをネットワークに沿ってしかるべきRT300に転送する。
ステップ962におけるネットワーク・プロセスでは、システム制御からの情報を用いる。この情報は、どのリモート・ディスプレイがどのフレーム更新ストリームを要求しているか、フレーム更新ストリーム毎にどの種類のネットワーク送信プロトコルを用いるのか、そして各フレーム更新ストリームの各部分について、優先度及び再指向特性はどのようになっているかに関する情報を含むことができる。ネットワーク・プロセス・ステップ962は、ローカルI/O428及びローカル・ネットワーク接続部490を利用して、TSAに対してローカルに管理することもできる。あるいは、ブレードに基づくシステムでは、ネットワーク・レディ・パケット(network ready packet)を、システム・ファブリック・バス140又は142の一方を通じて転送し、ネットワーク接続部を含むプロセッサ・ブレード200によって、又は別のプロセッサ・ブレード上に位置するネットワーク・プロセッサによって処理することもできる。種々のネットワークには、ギガビット・イーサネット、10/100イーサネット、電力線イーサネット、同軸ケーブルを用いたイーサネット、電話線を用いたイーサネット、あるいは802.11a、b、g、n、sのようなワイヤレス・イーサネット規格、及び今後の派生物を含むことができる。その他のイーサネット以外の接続も可能であり、USB、1394a、1394b、1394c、あるいは超広帯域(UWB)又はWiMAXのようなその他のワイヤレス・プロトコルを含むことができる。
図10は、本発明の一実施形態にしたがってネットワーク受信及び表示手順を実行する方法におけるステップのフローチャートである。明確化のために、ビデオを含む表示データを参照して、この手順を論ずることにする。しかしながら、オーディオ及びその他のデータに関する手順も、等しく本発明と共に用いることを想定している。RT300は、機能的動作を実行するために単純な制御プログラムをランさせるように構成することができ、ドライバ又はアプリケーションをランさせるオペレーティング・システムに基づくプロセッサとすることができ、あるいはJAVA処理又は高度AJAX処理を含むより多くのエージェントを含んでも含まなくてもよい何らかの種類のクライアント上でランするブラウザとすることもできる。加えて、RT300は、表示の更新が生ずる結果となるユーザの行為又はエージェントの動作に基づいて要求を開始することもできる。
図10の実施形態では、最初に、ステップ1012において、リモート端末300がパス390を通じて、ホスト・コンピュータ200からネットワーク送信を受信することが好ましい。次いで、ステップ1014において、ネットワーク・コントローラ336はネットワーク処理手順を行ってネットワーク・プロトコルを実行し、有線又は無線で送信された送信データを受信することが好ましい。
ステップ1020において、CPU324は到来する送信データを解釈して、送信が意図するのはどの機能ユニットか判断する。着信した送信が2Dグラフィクス・コマンドである場合、CPU324は2D描画エンジン332を通じて動作を初期化し、3Dコマンドの場合、3D描画エンジン334を初期化し、ビデオ・データ・ストリームの場合、ビデオ・デコーダ328を初期化し、データのエンコードしたタイルである場合、データ・デコーダ326を初期化する。描画コマンドの中には、描画エンジン及びデータ・デコーダ326双方を利用する場合もある。場合によっては、着信した送信データを格納しておき、必要なときに用いることができるようにする。種々の形態のAJAX及びエージェント処理が最終的に必要となることもならないこともあるデータについて、思惑的な要求を行うことがある。
色々な数のコマンド及びデータ転送が行われ、種々の機能ユニットが動作し、好ましくはデータ情報を操作して、しかるべき表示可能なフォーマットにする。ステップ1030において、機能的ユニットの各々からの操作後のデータを、フレーム・マネージャ330によって組み立てて、RAM312の中に更新表示フレームを生成することができる。更新表示フレームは、以前のフレームからの表示フレーム・データ、操作及びデコードした新しいフレーム・データ、並びに新しいフレーム・データの送信中に発生した表示データの誤りを隠蔽するために必要なあらゆる処理を含むことができる。
最後に、ステップ1040において、ディスプレイ・コントローラ330は、最後に完成した表示フレーム・データを、リモート端末システム300のユーザが見るために、リモート端末表示画面310に供給する。表示のリフレッシュは、フリッカを回避するために、リモート端末コントローラ314とディスプレイ310との間において毎秒60〜72回行われる非同期動作である。ステップ1030において新しい表示フレームを生成することは殆ど行われないのが通例であるが、必要なときには、毎秒30フレーム以上で行うとよい。スクリーン・セーバ即ちパワー・ダウン・モードがない場合、ディスプレイ・プロセッサは、表示リフレッシュのプロセスにおいて、フィードバック・パス1050で示すように、最後に完成した表示フレームを用いて、リモート表示画面310を更新し続ける。
したがって、本発明は、ユーザが多種多様なアプリケーションにおいて効果的に利用することができるリモート端末をサポートする、マルチユーザ・サーバに基づくコンピュータ・システムを実施する。例えば、ある会社(business)が1つの場所において多数の棚にコンピュータ・システムを展開し、遠隔地にいるユーザに非常に単純で低コストのリモート端末システム300を彼らのデスクトップ上に提供する。異なる遠隔地は、LAN、WAN、又はその他の接続を通じてサポートすることができる。RTは、デスクトップ・パーソナル・コンピュータ又はノートブック・パーソナル・コンピュータとすればよく、別のシステムでは、セル・フォン、パーソナル・ディジタル・アシスタントのような特殊デバイス(specialty device)であっても、携帯用ビデオ・プレーヤ、ゲーム機、又はリモート制御システムのようなその他の消費者向け製品と組み合わせてもよい。ユーザは、マルチユーザ・システム100のホスト・コンピュータを柔軟に利用して、ホスト・システムがローカル・ユーザに提供することができるのと同じレベルのソフトウェア互換性及び同様のレベルの性能を達成することができる。したがって、本発明は、種々の異質なコンポーネントを利用してシステム相互動作性及び機能性の最適化を促進する、柔軟性のあるマルチユーザ・システムを効果的に実施する。
以上、好適な実施形態を参照しながら、本発明について説明した。この開示を参考にすれば、他の実施形態も当業者には明白であろう。例えば、本発明は、前述の好適な実施形態において説明した構成以外の構成を用いても容易に実施することができる。加えて、本発明は、好適な実施形態として先に説明したシステム以外のシステムと共にでも効果的に用いることができる。したがって、好適な実施形態に対するこれら及びその他の変形は、本発明の範囲に該当することを意図しており、本発明は、添付した特許請求の範囲によってのみ限定されるものである。
多数のブレード及び切換ファブリックを含む、従来技術のブレード・ベースのマルチユーザ・コンピュータ・システムのブロック図である。 本発明の第1実施形態による、リモート・キーボード、ビデオ及びマウス(KVM)サポートを備えた、マルチCPUコンプレックス及びベースボード管理制御部(BMC)を有するマルチCPUプロセッサ・ブレードのブロック図である。 図1のブレード・ベースのマルチユーザ・コンピュータ・システムとネットワークを通じて接続されているRTを示す図である。 本発明の第2の実施形態による端末サービス・ブレード(TSB)のブロック図である。 8つのディスプレイ・エリアに編成されたメモリを表す図であり、その1つはディスプレイ・ウィンドウを含み、その2つは1つの大きなRTディスプレイをサポートするために用いられる。 図5のディスプレイ・マップ536の更に詳細な図を示す。 タイルに再分割した図6Aの矩形を示す図である。 図4の一体化グラフィクス・プロセッサ・ユニット(TSA-GPU 700)を有するシステム・オン・チップ(SOC)端末サービス・アクセレレータの一例の詳細を示すブロック図である。 グラフィクス・サブシステム及びその他の大域外処理を含む、KVMを備えたベースボード管理コントローラのブロック図である。 本発明の一実施形態にしたがって、端末サービス及びディスプレイ・プロキシ・サーバ動作を実行する方法のフローチャートである。 本発明の一実施形態にしたがって、リモート端末のためのネットワーク受信及び表示手順を実行する方法のフローチャートである。

Claims (12)

  1. 多数のリモート端末のウェブ・コンテンツ・アクセスをサポートすることができるプロキシ機能を実行するディスプレイ・プロキシ・サーバ・システムであって
    前記多数のリモート端末のための表示フレームを格納することができる表示メモリを有するグラフィクス・プロセッサ・サブシステムを備え、
    前記グラフィクス・プロセッサ・サブシステムは、
    1つ以上のリモート端末における表示フレームに対応する表示フレームを生成する動作であって、前記表示フレームがサブフレームを有し、それぞれの該サブフレームのサイズは、該サブフレームをエンコードするために選択されたアルゴリズムの最小画素ブロックサイズの倍数として、前記ディスプレイ・プロキシ・サーバ・システムによりラン・タイム期間に動的に構成可能であり、該アルゴリズムは前記サブフレーム内のコンテンツの特性に基づいてラン・タイム期間に選択される動作と、
    前記表示フレームの修正されたサブフレームを追跡し、この追跡に基づいて前記表示メモリからの選択的更新を実行する動作であって、前記追跡が、前記修正されたサブフレームに対応する署名を生成し、前記修正されたサブフレームに対して署名チェックを実行し、サブフレームが選択的更新を要求することを示すステータス・ビットを更新し、前記修正されたサブフレームに含まれるデータの形式を決定し、該形式に基づいてエンコード・アルゴリズムを選択することを含む動作と、
    1つ以上のホストCPUが走らせる1つ以上の仮想マシーン上で動作するオペレーティング・システムに対応するグラフィックス・ドライバを含む仮想抽象レイヤを介して前記仮想マシーンからのコマンドと要求とに応答する動作と
    を行うように構成され、
    前記ディスプレイ・プロキシ・サーバ・システムは、グラフィックス動作を要求するよう構成された前記1つ以上の仮想マシーンを走らせている前記1つ以上のホストCPUと通信し、仮想マシーン・グラフィックス要求を管理し、前記仮想マシーン・グラフィックス要求を用いて、グラフィックス動作を要求した仮想マシーンに対する仮想表示を生成し、前記リモート端末に対応するネットワークを介して前記仮想表示のエンコードされた更新を送信し、前記選択的更新のみが前記リモート端末に対応するネットワーク・サブシステムを通じて転送されるように、前記表示メモリからの選択的更新を管理する
    ことを特徴とするディスプレイ・プロキシ・サーバ・システム。
  2. 請求項1記載のシステムにおいて、前記ディスプレイ・プロキシ・サーバ・システムはブレード・システムに実装され、1つ以上のホストCPUとシステム・バックプレーン上で接続されることを特徴とするシステム。
  3. 請求項1記載のシステムにおいて、前記ディスプレイ・プロキシ・サーバ・システムは、アプリケーションを走らせるホストCPUと通信し、前記アプリケーションがあたかもクライアントであるかのように前記アプリケーションに応答し、前記リモート端末に対して選択的表示更新を実行するよう構成されていることを特徴とするシステム。
  4. 請求項記載1のシステムにおいて、前記ディスプレイ・プロキシ・サーバ・システムは、ウェブ・アクセスを実行するときに、前記多数のリモート端末にDNS参照機構を提供するよう構成されていることを特徴とするシステム。
  5. 1つ以上のリモート端末のウェブ・コンテンツ・アクセスをサポートすることができるプロキシ機構を実行するよう構成された表示管理システムであって
    前記システムは、グラフィクス・プロセッサ・サブシステムを備えており、
    前記グラフィクス・プロセッサ・サブシステムは、
    表示フレーム・データを発生するために、ホストCPUの要求時に表示メモリにおいてグラフィクス・プロセッサ動作を実行する動作と、
    表示フレームの修正されたサブフレームを追跡し、この追跡に基づいて選択的更新を行い、前記修正されたサブフレームに対応する署名を生成し、前記修正されたサブフレームに対して署名チェックを実行し、サブフレームが選択的更新を要求することを示すステータス・ビットを更新し、前記修正されたサブフレームに含まれるデータの形式を決定し、該形式に基づいてエンコード・アルゴリズムを選択する動作であって、前記サブフレームに対するサイズは、該サブフレームをエンコードするために選択されたアルゴリズムの最小画素ブロックサイズの倍数として、前記ディスプレイ管理システムによりラン・タイム期間に動的に構成可能であり、該アルゴリズムは前記サブフレーム内のコンテンツの特性に基づいてラン・タイム期間に選択される動作と、
    前記選択的更新を、表示ウィンドウと周囲の画素との位置合わせによるアーチファクトが最小になるようにエンコードする動作と、
    前記選択的更新のみがネットワーク・サブシステムを通じて前記リモート端末の対応するものに転送されるように、前記表示メモリからの選択的更新を管理する動作と
    を行うように構成され、
    前記表示管理システムは、更に、グラフィックス動作を要求する1つ以上の仮想マシーンを走らせている1つ以上のホストCPUと通信し、仮想マシーン・グラフィックス要求を管理し、前記仮想マシーン・グラフィックス要求を用いて、グラフィックス動作を要求した仮想マシーンに対する仮想表示を生成し、対応する前記リモート端末にネットワークを介して前記仮想表示のエンコードされた更新を送信するように構成されている
    ことを特徴とする表示管理システム。
  6. 請求項記載のシステムにおいて、前記選択的更新は、前記表示メモリのサイズにしたがって規定されたタイル・サイズのサブフレームに基づくことを特徴とするシステム。
  7. 請求項記載のシステムにおいて、前記表示管理システムは、選択的更新を管理するためにバッファを用いることを特徴とするシステム。
  8. 多数のリモート端末のウェブ・コンテンツ・アクセスをサポートすることができるプロキシ機能を実行するよう構成された、ブレードに基づくマルチユーザ・システムであって
    前記システムは、バックプレーンに接続されている1つ以上のプロセッサ・ブレードと、リモート端末に対する表示フレームを格納することのできる表示メモリを有するグラフィクス・プロセッサ・サブシステムを含む1つ以上の端末サービス・アクセレレータ・ブレードと、肩代わりサブシステムとを備えており、
    前記グラフィクス・プロセッサ・サブシステムは、
    リモート端末における表示フレームに対応する表示フレームを生成する動作であって、前記表示フレームがサブフレームを有し、それぞれの該サブフレームのサイズは、該サブフレームをエンコードするために選択されたアルゴリズムの最小画素ブロックサイズの倍数として、前記グラフィックス及びディスプレイ・サブシステムによりラン・タイム期間に動的に構成可能である動作と、
    修正されたサブフレームを追跡し、この追跡に基づいて前記表示メモリからの選択的更新を実行する動作であって、前記追跡が、前記修正されたサブフレームに対応する署名を生成し、前記修正されたサブフレームに対して署名チェックを実行し、サブフレームが選択的更新を要求することを示すステータス・ビットを更新することを含む動作と、
    前記修正サブフレームに含まれるデータの形式を識別して、該形式に対する特徴に基づいてエンコード技術を決定する動作と、
    1つ以上の仮想マシーン上で動作するオペレーティング・システムに対応するグラフィックス・ドライバを含む仮想抽象レイヤを介して前記1つ以上の仮想マシーンからのコマンドと要求とに応答する動作と
    を行うように構成され、
    前記肩代わりサブシステムは、
    前記1つ以上のプロセッサ・ブレードがグラフィックス・コマンド又はビデオ・データを処理する前に、且つ、前記グラフィックス・コマンド又は前記ビデオ・データが前記プロセッサ・ブレードにより処理されないように前記リモート端末へ前記グラフィックス・コマンド又は前記ビデオ・データを送る前に、前記グラフィックス・コマンド又は前記ビデオ・データを傍受する動作と、
    ネットワーク状態と表示特性と前記リモート端末のビデオ・デコード能力とに基づいて、傍受された前記グラフィックス・コマンド又は前記ビデオ・データを処理する動作であって、1つのエンコードされたフォーマットから他のエンコードされたフォーマットへのコード変換と、1つのビット・レートから他のビット・レートへの変更と、フレーム・レートの変更と、表示フォーマットの変換と、解像度の変更とのうちの少なくとも1つを含む動作と、
    前記プロセッサ・ブレードを前記1つ以上の端末サービス・アクセレレータ・ブレードに接続する動作と、
    を行うように構成され、
    更に、前記マルチユーザ・システムは、
    前記選択的更新のみがネットワーク・サブシステムを通じて前記リモート端末の対応するものに転送されるように、前記表示メモリからの選択的更新を管理する動作と、
    グラフィックス動作を要求する1つ以上の仮想マシーンを走らせている1つ以上のホストCPUと通信し、仮想マシーン・グラフィックス要求を管理し、前記仮想マシーン・グラフィックス要求を用いて、グラフィックス動作を要求した仮想マシーンに対して仮想表示を生成する動作と、
    対応する前記リモート端末にネットワークを介して前記仮想表示のエンコードされた更新を送信する動作と
    を行うように構成されている
    ことを特徴とするマルチユーザ・システム。
  9. 請求項8記載のシステムにおいて、前記1つ以上の端末サービス・アクセレレータ・ブレードが、アプリケーション・ソフトウェアを実行するホストCPUと通信するよう構成され、
    前記ホストCPUは、前記グラフィクス及びディスプレイ・サブシステムを仮想化するマルチユーザ・リモート・クライアント・プロトコルを利用し、仮想グラフィクス機能を前記リモート・ユーザ・クライアントとして実行し、前記選択的表示更新を、前記仮想ディスプレイ・サブシステムから前記リモート端末に対して実行するよう構成されている
    ことを特徴とするシステム。
  10. 請求項8記載のシステムにおいて、前記端末サービス・アクセレレータ・ブレードは、1つ以上の仮想マシーンを実行する1つ以上のCPUと通信するよう構成され、
    前記仮想マシーンの各々は、前記端末サービス・ブレードがあたかも各仮想マシーン専用のそれぞれのグラフィクス・コントローラを含むかのように、グラフィクス動作を要求する
    ことを特徴とするシステム。
  11. 請求項8記載のシステムにおいて、前記プロセッサ・ブレードはウェブ・サーバとして動作することを特徴とするシステム。
  12. 請求項記載のシステムにおいて、前記ブレードに基づくマルチユーザ・システムは、多数のウェブ・サーバにアクセスする多数のリモート端末にインターネット・サービス管理機能を提供することを特徴とするシステム。
JP2008543288A 2005-11-30 2006-10-26 マルチユーザ・ディスプレイ・プロキシ・サーバ Expired - Fee Related JP5129151B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/289,983 US8112513B2 (en) 2005-11-30 2005-11-30 Multi-user display proxy server
US11/289,983 2005-11-30
PCT/US2006/041684 WO2007064426A2 (en) 2005-11-30 2006-10-26 Multi-user display proxy server

Publications (2)

Publication Number Publication Date
JP2009517772A JP2009517772A (ja) 2009-04-30
JP5129151B2 true JP5129151B2 (ja) 2013-01-23

Family

ID=38088826

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008543288A Expired - Fee Related JP5129151B2 (ja) 2005-11-30 2006-10-26 マルチユーザ・ディスプレイ・プロキシ・サーバ

Country Status (6)

Country Link
US (2) US8112513B2 (ja)
EP (1) EP1955187B1 (ja)
JP (1) JP5129151B2 (ja)
KR (1) KR20080084993A (ja)
CN (1) CN101553795B (ja)
WO (1) WO2007064426A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI662810B (zh) * 2018-08-01 2019-06-11 技嘉科技股份有限公司 伺服器管理系統及伺服器管理方法

Families Citing this family (198)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8468575B2 (en) 2002-12-10 2013-06-18 Ol2, Inc. System for recursive recombination of streaming interactive video
US9032465B2 (en) 2002-12-10 2015-05-12 Ol2, Inc. Method for multicasting views of real-time streaming interactive video
US20100166056A1 (en) * 2002-12-10 2010-07-01 Steve Perlman System and method for encoding video using a selected tile and tile rotation pattern
US8661496B2 (en) 2002-12-10 2014-02-25 Ol2, Inc. System for combining a plurality of views of real-time streaming interactive video
US8832772B2 (en) 2002-12-10 2014-09-09 Ol2, Inc. System for combining recorded application state with application streaming interactive video output
US8387099B2 (en) 2002-12-10 2013-02-26 Ol2, Inc. System for acceleration of web page delivery
US8495678B2 (en) 2002-12-10 2013-07-23 Ol2, Inc. System for reporting recorded video preceding system failures
US9003461B2 (en) 2002-12-10 2015-04-07 Ol2, Inc. Streaming interactive video integrated with recorded video segments
US8549574B2 (en) 2002-12-10 2013-10-01 Ol2, Inc. Method of combining linear content and interactive content compressed together as streaming interactive video
US8893207B2 (en) 2002-12-10 2014-11-18 Ol2, Inc. System and method for compressing streaming interactive video
US8840475B2 (en) 2002-12-10 2014-09-23 Ol2, Inc. Method for user session transitioning among streaming interactive video servers
US8949922B2 (en) * 2002-12-10 2015-02-03 Ol2, Inc. System for collaborative conferencing using streaming interactive video
US20090118019A1 (en) 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
US9108107B2 (en) 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
US20090292992A1 (en) * 2004-04-08 2009-11-26 Micro-Star International Co., Ltd computer system and a switching method for the same
US7747086B1 (en) 2005-07-28 2010-06-29 Teradici Corporation Methods and apparatus for encoding a shared drawing memory
EP1871075B1 (en) 2004-12-24 2015-03-04 IZUTSU, Masahiro Mobile information communication apparatus, connection unit for mobile information communication apparatus, and external input/output unit for mobile information communication apparatus
US8453148B1 (en) 2005-04-06 2013-05-28 Teradici Corporation Method and system for image sequence transfer scheduling and restricting the image sequence generation
US8341624B1 (en) * 2006-09-28 2012-12-25 Teradici Corporation Scheduling a virtual machine resource based on quality prediction of encoded transmission of images generated by the virtual machine
US20070094426A1 (en) * 2005-10-24 2007-04-26 Aten International Co., Ltd. KVM switch supporting IPMI communications with computing devices
JP4663497B2 (ja) * 2005-12-01 2011-04-06 株式会社日立製作所 情報処理システムおよび情報処理装置の割当管理方法
US20070168872A1 (en) * 2006-01-19 2007-07-19 Raytheon Company Multi-monitor, multi-JVM java GUI infrastructure with layout via XML
KR100812332B1 (ko) * 2006-05-18 2008-03-10 삼성전자주식회사 컨텐츠 관리 장치 및 그 방법
JP5111797B2 (ja) * 2006-06-29 2013-01-09 株式会社東芝 情報処理装置及び情報処理方法
US8819242B2 (en) * 2006-08-31 2014-08-26 Cisco Technology, Inc. Method and system to transfer data utilizing cut-through sockets
US7647590B2 (en) * 2006-08-31 2010-01-12 International Business Machines Corporation Parallel computing system using coordinator and master nodes for load balancing and distributing work
US8799539B2 (en) * 2006-10-18 2014-08-05 Dell Products L.P. Chipset agnostic apparatus and method for serial communication bus port disablement
US9092250B1 (en) 2006-10-27 2015-07-28 Hewlett-Packard Development Company, L.P. Selecting one of plural layouts of virtual machines on physical machines
US8296760B2 (en) * 2006-10-27 2012-10-23 Hewlett-Packard Development Company, L.P. Migrating a virtual machine from a first physical machine in response to receiving a command to lower a power mode of the first physical machine
US8185893B2 (en) * 2006-10-27 2012-05-22 Hewlett-Packard Development Company, L.P. Starting up at least one virtual machine in a physical machine by a load balancer
US8732699B1 (en) 2006-10-27 2014-05-20 Hewlett-Packard Development Company, L.P. Migrating virtual machines between physical machines in a define group
US8706968B2 (en) 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
US8019940B2 (en) 2006-12-06 2011-09-13 Fusion-Io, Inc. Apparatus, system, and method for a front-end, distributed raid
US8443134B2 (en) 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
US8559646B2 (en) * 2006-12-14 2013-10-15 William G. Gardner Spatial audio teleconferencing
US8000474B1 (en) 2006-12-15 2011-08-16 Quiro Holdings, Inc. Client-side protection of broadcast or multicast content for non-real-time playback
US7957603B2 (en) * 2006-12-29 2011-06-07 Intel Corporation Digital image decoder with integrated concurrent image prescaler
JP5079342B2 (ja) * 2007-01-22 2012-11-21 ルネサスエレクトロニクス株式会社 マルチプロセッサ装置
FR2913164B1 (fr) * 2007-02-27 2009-04-17 Sagem Comm Procede de diffusion de sequences de donnees audio et video par un serveur
US8135947B1 (en) 2007-03-21 2012-03-13 Qurio Holdings, Inc. Interconnect device to enable compliance with rights management restrictions
US9191605B1 (en) * 2007-03-26 2015-11-17 Qurio Holdings, Inc. Remote monitoring of media content that is associated with rights management restrictions
US9350701B2 (en) * 2007-03-29 2016-05-24 Bomgar Corporation Method and apparatus for extending remote network visibility of the push functionality
US20080256186A1 (en) * 2007-04-12 2008-10-16 Hartmann Thomas W Collaboration system
CN101291426B (zh) * 2007-04-18 2010-08-25 联想(北京)有限公司 第三方实时监控远程控制过程的方法和系统
EP2325724A3 (en) 2007-05-11 2011-11-09 Raritan Americas, Inc. Local port browser interface
US8712597B2 (en) * 2007-06-11 2014-04-29 Hewlett-Packard Development Company, L.P. Method of optimizing air mover performance characteristics to minimize temperature variations in a computing system enclosure
US20080309584A1 (en) * 2007-06-12 2008-12-18 Aten International Co., Ltd. Video extender devices capable of providing edid of a display to a computer
US7895442B1 (en) 2007-06-18 2011-02-22 Qurio Holdings, Inc. Interconnect device to enable compliance with rights management restrictions
JP4946667B2 (ja) * 2007-07-02 2012-06-06 カシオ計算機株式会社 サーバ装置およびプログラム
JP5244362B2 (ja) * 2007-10-09 2013-07-24 株式会社アキブシステムズ 高速ネットワークシステム及び関連装置
US8341626B1 (en) 2007-11-30 2012-12-25 Hewlett-Packard Development Company, L. P. Migration of a virtual machine in response to regional environment effects
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US7836226B2 (en) 2007-12-06 2010-11-16 Fusion-Io, Inc. Apparatus, system, and method for coordinating storage requests in a multi-processor/multi-thread environment
US20090172395A1 (en) * 2007-12-31 2009-07-02 International Business Machines Corporation System and Method for Service Virtualization Using a MQ Proxy Network
US7937452B2 (en) 2008-02-19 2011-05-03 Microsoft Corporation Framework for rendering plug-ins in remote access services
US8681811B2 (en) * 2008-02-27 2014-03-25 Ncomputing Inc. System and method for obtaining cross compatibility with a plurality of thin-client platforms
US8266637B2 (en) 2008-03-03 2012-09-11 Microsoft Corporation Privacy modes in a remote desktop environment
US8255536B2 (en) * 2008-03-21 2012-08-28 Microsoft Corporation Bandwidth and latency controller
US8281377B1 (en) * 2008-04-15 2012-10-02 Desktone, Inc. Remote access manager for virtual computing services
US8839339B2 (en) * 2008-04-15 2014-09-16 International Business Machines Corporation Blade center KVM distribution
JP2009259111A (ja) * 2008-04-18 2009-11-05 Hitachi Ltd ネットワーク装置、コンテンツ配信方法及びプログラム
US20090278871A1 (en) * 2008-05-09 2009-11-12 International Business Machines Corporation Controlling Display Resolution Of A Computer Display
US20100011012A1 (en) * 2008-07-09 2010-01-14 Rawson Andrew R Selective Compression Based on Data Type and Client Capability
CN101631112B (zh) * 2008-07-18 2013-11-06 华为技术有限公司 一种软件卸载方法及终端
JP4827950B2 (ja) * 2008-07-31 2011-11-30 富士通株式会社 サーバ装置
US7979565B2 (en) * 2008-08-27 2011-07-12 International Business Machines Corporation System and method to provide a network service
US8549093B2 (en) * 2008-09-23 2013-10-01 Strategic Technology Partners, LLC Updating a user session in a mach-derived system environment
US8073990B1 (en) 2008-09-23 2011-12-06 Teradici Corporation System and method for transferring updates from virtual frame buffers
US8755515B1 (en) 2008-09-29 2014-06-17 Wai Wu Parallel signal processing system and method
US20100106871A1 (en) * 2008-10-10 2010-04-29 Daniel David A Native I/O system architecture virtualization solutions for blade servers
US9639963B2 (en) * 2008-12-08 2017-05-02 Microsoft Technology Licensing, Llc Command remoting techniques
US8892789B2 (en) * 2008-12-19 2014-11-18 Netapp, Inc. Accelerating internet small computer system interface (iSCSI) proxy input/output (I/O)
US8462681B2 (en) * 2009-01-15 2013-06-11 The Trustees Of Stevens Institute Of Technology Method and apparatus for adaptive transmission of sensor data with latency controls
US8224885B1 (en) 2009-01-26 2012-07-17 Teradici Corporation Method and system for remote computing session management
US9071843B2 (en) * 2009-02-26 2015-06-30 Microsoft Technology Licensing, Llc RDP bitmap hash acceleration using SIMD instructions
US8307103B2 (en) * 2009-03-09 2012-11-06 Microsoft Corporation Tear-free remote desktop protocol (RDP) display
US8473958B2 (en) * 2009-05-31 2013-06-25 Red Hat Israel, Ltd. Adjusting client display devices based on settings included in a notification from remote virtual machine host prior to connection establishment
US9507618B2 (en) * 2009-05-31 2016-11-29 Red Hat Israel, Ltd. Virtual machine system supporting a large number of displays
EP2476055B1 (en) 2009-09-08 2020-01-22 SanDisk Technologies LLC Apparatus, system, and method for caching data on a solid-state storage device
US9767070B2 (en) * 2009-11-06 2017-09-19 Hewlett Packard Enterprise Development Lp Storage system with a memory blade that generates a computational result for a storage device
ES2361692B1 (es) * 2009-12-09 2012-08-30 Universidad De Huelva Procedimiento para visualizar a través de un ordenador imágenes con tamaño fijo predeterminado.
US8984167B1 (en) * 2009-12-10 2015-03-17 Nvidia Corporation Real-time frame streaming from remote graphics processing unit
US20110154214A1 (en) * 2009-12-18 2011-06-23 Microsoft Corporation Offloading Content Retrieval And Decoding In Pluggable Content-Handling Systems
US9117297B2 (en) * 2010-02-17 2015-08-25 St-Ericsson Sa Reduced on-chip memory graphics data processing
ES2390298B1 (es) * 2010-04-16 2013-11-11 Telefónica, S.A. Procedimiento de transmisión de contenido visual.
CN102253918B (zh) * 2010-05-05 2014-04-23 英业达股份有限公司 计算机系统
KR101690232B1 (ko) 2010-05-28 2016-12-27 엘지전자 주식회사 전자 기기 및 전자 기기의 제어 방법
US8892723B2 (en) * 2010-06-16 2014-11-18 Netapp, Inc. Method and apparatus for enabling communication between iSCSI devices and SAS devices
CN101888378B (zh) * 2010-06-23 2013-07-03 福建星网锐捷通讯股份有限公司 基于电话网、广电网和互联网的多屏幕融合系统及其方法
GB2481613A (en) * 2010-06-30 2012-01-04 Skype Ltd Updating regions of shared images using a server that records image status
GB2481612A (en) 2010-06-30 2012-01-04 Skype Ltd Updating image regions in a shared image system
US8410994B1 (en) 2010-08-23 2013-04-02 Matrox Graphics Inc. System and method for remote graphics display
CN102402412B (zh) * 2010-09-19 2014-12-31 联想(北京)有限公司 显示功能处理模块,服务器和显示处理方法
US8724696B2 (en) * 2010-09-23 2014-05-13 Vmware, Inc. System and method for transmitting video and user interface elements
US8607158B2 (en) * 2010-12-09 2013-12-10 International Business Machines Corporation Content presentation in remote monitoring sessions for information technology systems
US9245047B2 (en) * 2010-12-10 2016-01-26 Wyse Technology L.L.C. Methods and systems for facilitating a remote desktop session utilizing a remote desktop client common interface
US8806360B2 (en) 2010-12-22 2014-08-12 International Business Machines Corporation Computing resource management in information technology systems
KR20120072134A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 가상 데스크톱 가속 장치 및 방법
CN102097080B (zh) * 2010-12-27 2015-06-17 华为技术有限公司 显示驱动处理方法、装置和系统
US8966184B2 (en) 2011-01-31 2015-02-24 Intelligent Intellectual Property Holdings 2, LLC. Apparatus, system, and method for managing eviction of data
US10108386B2 (en) * 2011-02-04 2018-10-23 Qualcomm Incorporated Content provisioning for wireless back channel
US9201677B2 (en) 2011-05-23 2015-12-01 Intelligent Intellectual Property Holdings 2 Llc Managing data input/output operations
US8874823B2 (en) 2011-02-15 2014-10-28 Intellectual Property Holdings 2 Llc Systems and methods for managing data input/output operations
US9003104B2 (en) 2011-02-15 2015-04-07 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a file-level cache
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
KR20120099931A (ko) 2011-03-02 2012-09-12 삼성전자주식회사 브라우징 방법, 디바이스, 및 컴퓨터로 읽을 수 있는 저장 매체
TW201239614A (en) * 2011-03-28 2012-10-01 Wistron Corp Automated test system and automated test method
KR101844021B1 (ko) * 2011-04-06 2018-03-30 삼성전자주식회사 메시지 전송 방법 및 장치와 컴퓨터로 읽을 수 있는 저장 매체
US8884963B2 (en) * 2011-05-04 2014-11-11 Qualcomm Incorporated Low resolution buffer based pixel culling
US9553776B2 (en) * 2011-05-16 2017-01-24 Avocent Huntsville, Llc System and method for accessing operating system and hypervisors via a service processor of a server
US9389826B2 (en) * 2011-06-07 2016-07-12 Clearcube Technology, Inc. Zero client device with integrated network authentication capability
US9167020B2 (en) * 2011-06-10 2015-10-20 Microsoft Technology Licensing, Llc Web-browser based desktop and application remoting solution
US8800051B2 (en) * 2011-06-29 2014-08-05 Nvidia Corporation System and method for private information communication from a browser to a driver
TWI437426B (zh) 2011-07-08 2014-05-11 Quanta Comp Inc 伺服器機櫃系統
EP2737398A4 (en) 2011-07-29 2015-01-07 Hewlett Packard Development Co MIGRATION OF VIRTUAL MACHINES
CN102984189B (zh) * 2011-09-07 2017-04-19 华为技术有限公司 一种无线网络及其实现方法、终端
US9324299B2 (en) * 2011-09-09 2016-04-26 Microsoft Technology Licensing, Llc. Atlasing and virtual surfaces
US20130117744A1 (en) * 2011-11-03 2013-05-09 Ocz Technology Group, Inc. Methods and apparatus for providing hypervisor-level acceleration and virtualization services
JP5862259B2 (ja) * 2011-12-09 2016-02-16 ブラザー工業株式会社 表示制御装置、および、コンピュータプログラム
KR101467430B1 (ko) * 2011-12-12 2014-12-01 주식회사 케이티 클라우드 컴퓨팅 기반 어플리케이션 제공 방법 및 시스템
EP2791890A4 (en) * 2011-12-13 2015-08-05 Intel Corp DETERMINING THE GOOD PRESENTATION OF MULTIMEDIA CONTENT
US9235414B2 (en) * 2011-12-19 2016-01-12 Intel Corporation SIMD integer multiply-accumulate instruction for multi-precision arithmetic
EP2798804A4 (en) * 2011-12-26 2015-09-23 Intel Corp COMMUNICATION BETWEEN COPROCESSORS WITH DIRECT CONNECTION SYNCHRONIZATION
US10102117B2 (en) 2012-01-12 2018-10-16 Sandisk Technologies Llc Systems and methods for cache and storage device coordination
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US9251052B2 (en) 2012-01-12 2016-02-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
US9829715B2 (en) 2012-01-23 2017-11-28 Nvidia Corporation Eyewear device for transmitting signal and communication method thereof
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US10359972B2 (en) 2012-08-31 2019-07-23 Sandisk Technologies Llc Systems, methods, and interfaces for adaptive persistence
US9116812B2 (en) 2012-01-27 2015-08-25 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for a de-duplication cache
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
US9467305B2 (en) 2012-03-07 2016-10-11 Vmware, Inc. Multitenant access to multiple desktops on host machine partitions in a service provider network
CN102664873A (zh) * 2012-03-28 2012-09-12 山东超越数控电子有限公司 一种带bmc的国产龙芯cpu服务器的kvm-over-ip实现方法
CN104380275B (zh) * 2012-04-23 2017-10-13 阿弗梅德网络公司 用于http伪流的基于积分控制器的定步
US10339056B2 (en) 2012-07-03 2019-07-02 Sandisk Technologies Llc Systems, methods and apparatus for cache transfers
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
JP5968132B2 (ja) * 2012-07-11 2016-08-10 キヤノン株式会社 画像処理装置、画像処理方法ならびにプログラム
CN103684670A (zh) * 2012-09-18 2014-03-26 北京中电华大电子设计有限责任公司 一种uwb mac层数据缓存控制器的设计方法
US9355613B2 (en) 2012-10-09 2016-05-31 Mediatek Inc. Data processing apparatus for transmitting/receiving compression-related indication information via display interface and related data processing method
KR101429884B1 (ko) * 2012-11-01 2014-09-23 주식회사 윈스 고속 네트워크 대용량 트래픽 처리를 위한 분산처리 해싱방법 및 분산처리해싱시스템
GB2523208B (en) * 2012-12-11 2020-09-09 Intel Corp Context sensing for computing devices
CN103139609B (zh) * 2013-02-01 2016-07-06 深圳市深信服电子科技有限公司 对远程应用视频播放进行优化的方法和装置
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US8887060B2 (en) * 2013-03-15 2014-11-11 American Megatrends, Inc. System and method of web-based keyboard, video and mouse (KVM) redirection and application of the same
US10110647B2 (en) * 2013-03-28 2018-10-23 Qualcomm Incorporated Method and apparatus for altering bandwidth consumption
GB2515053A (en) * 2013-06-12 2014-12-17 Acano Uk Ltd Collaboration Server
US8682999B1 (en) 2013-09-05 2014-03-25 NCS Technologies, Inc. Systems and methods providing a mobile zero client
US9471357B2 (en) * 2013-09-13 2016-10-18 American Megatrends, Inc. Monitoring virtual machine interface and local graphical user interface on a thin client and alternating therebetween
US8943373B1 (en) 2013-09-25 2015-01-27 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Keyboard, video and mouse switch identifying and displaying nodes experiencing a problem
US9772876B2 (en) * 2014-01-06 2017-09-26 International Business Machines Corporation Executing an all-to-allv operation on a parallel computer that includes a plurality of compute nodes
US9483997B2 (en) 2014-03-10 2016-11-01 Sony Corporation Proximity detection of candidate companion display device in same room as primary display using infrared signaling
JP6454353B2 (ja) * 2014-03-31 2019-01-16 メガチップス テクノロジー アメリカ コーポレーション コンバータ
US9696414B2 (en) 2014-05-15 2017-07-04 Sony Corporation Proximity detection of candidate companion display device in same room as primary display using sonic signaling
US10070291B2 (en) 2014-05-19 2018-09-04 Sony Corporation Proximity detection of candidate companion display device in same room as primary display using low energy bluetooth
US10437432B2 (en) * 2014-06-27 2019-10-08 Vmware, Inc. Integration of user interface technologies
CN104202195B (zh) * 2014-09-10 2018-05-04 华为技术有限公司 服务器统一通信的方法、基板管理控制器和服务器
US9332226B2 (en) * 2014-09-15 2016-05-03 Tata Communications (America) Inc. Video session manager and method for enabling a video communication session across geographically disparate domains
US10002058B1 (en) * 2014-11-26 2018-06-19 Intuit Inc. Method and system for providing disaster recovery services using elastic virtual computing resources
US10074203B2 (en) * 2014-12-23 2018-09-11 Synaptics Incorporated Overlay for display self refresh
CN105786421B (zh) * 2014-12-25 2020-11-03 中兴通讯股份有限公司 一种服务器显示方法及装置
US9479265B2 (en) * 2015-02-16 2016-10-25 American Megatrends, Inc. System and method for high speed and efficient virtual desktop insfrastructure using photonics
US9870192B2 (en) * 2015-02-19 2018-01-16 Citrix Systems, Inc. Systems and methods for providing adapted multi-monitor topology support in a virtualization environment
US10268590B2 (en) * 2015-02-23 2019-04-23 Netflix, Inc. Efficient computer-implemented techniques for managing graphics memory
US9661007B2 (en) * 2015-03-18 2017-05-23 Intel Corporation Network interface devices with remote storage control
CN106161496B (zh) * 2015-03-25 2019-07-23 阿里巴巴集团控股有限公司 终端的远程协助方法及装置、系统
US10397233B2 (en) 2015-04-20 2019-08-27 Bomgar Corporation Method and apparatus for credential handling
US10229262B2 (en) 2015-04-20 2019-03-12 Bomgar Corporation Systems, methods, and apparatuses for credential handling
US10110691B2 (en) * 2015-06-12 2018-10-23 Dell Products L.P. Systems and methods for enabling virtual keyboard-video-mouse for external graphics controllers
US11250217B1 (en) 2015-07-14 2022-02-15 Soundhound, Inc. Conditional responses to application commands in a client-server system
US9973769B2 (en) * 2015-08-12 2018-05-15 Time Warner Cable Enterprises Llc Methods and apparatus of encoding real time media content
US10541930B2 (en) * 2015-08-28 2020-01-21 Softnas Operating Inc. Automated data flows using flow-based data processor blocks
US10083054B2 (en) * 2015-12-28 2018-09-25 Amazon Technologies, Inc. Application-based computing resource management
CN106936616B (zh) 2015-12-31 2020-01-03 伊姆西公司 备份通信方法和装置
US9934062B2 (en) * 2016-03-30 2018-04-03 Intel Corporation Technologies for dynamically allocating hardware acceleration units to process data packets
GB2552574A (en) * 2016-05-06 2018-01-31 Idera Inc Systems and methods for dynamic masking of data
US10616184B2 (en) * 2016-06-30 2020-04-07 Intel Corporation Wireless display streaming of protected content
US10320895B2 (en) * 2016-11-15 2019-06-11 Microsoft Technology Licensing, Llc Live migration of load balanced virtual machines via traffic bypass
US10210842B2 (en) * 2017-02-07 2019-02-19 American Megatrends, Inc. Techniques of displaying host data on a monitor connected to a service processor during pre-boot initialization stage
US11075897B2 (en) 2017-10-20 2021-07-27 Vertiv It Systems, Inc. System and method for communicating with a service processor
US10979744B2 (en) 2017-11-03 2021-04-13 Nvidia Corporation Method and system for low latency high frame rate streaming
US10999304B2 (en) 2018-04-11 2021-05-04 Palo Alto Networks (Israel Analytics) Ltd. Bind shell attack detection
CN108846476A (zh) * 2018-07-13 2018-11-20 电子科技大学 一种基于卷积神经网络的智能终端安全等级分类方法
CN109120595A (zh) * 2018-07-18 2019-01-01 郑州云海信息技术有限公司 一种实现kvm功能的usb设备通信方法与装置
CN109408451B (zh) 2018-11-05 2022-06-14 英业达科技有限公司 一种图形处理器系统
TWI698833B (zh) * 2018-12-05 2020-07-11 英業達股份有限公司 圖形處理器系統
US11184378B2 (en) 2019-01-30 2021-11-23 Palo Alto Networks (Israel Analytics) Ltd. Scanner probe detection
US11184377B2 (en) 2019-01-30 2021-11-23 Palo Alto Networks (Israel Analytics) Ltd. Malicious port scan detection using source profiles
US11184376B2 (en) * 2019-01-30 2021-11-23 Palo Alto Networks (Israel Analytics) Ltd. Port scan detection using destination profiles
IL265789A (en) 2019-04-01 2020-10-28 Fibernet Ltd Device for secure video streaming
JP2020177074A (ja) * 2019-04-16 2020-10-29 株式会社デンソー 車両用装置、車両用装置の制御方法
IL266118B2 (en) 2019-04-17 2023-08-01 Fibernet Ltd Device for secure streaming of audio
CN111796755B (zh) * 2020-07-03 2022-02-11 深圳市创新胜为科技有限公司 一种kvm控制系统及kvm显示切换控制方法
CN112532693A (zh) * 2020-11-10 2021-03-19 杭州神甲科技有限公司 具有网络保护能力的数据防泄漏方法、装置及存储介质
CN113709493B (zh) * 2021-07-23 2024-02-09 山东云海国创云计算装备产业创新中心有限公司 一种kvm系统的视频流数据加密装置、方法及设备
US11809289B2 (en) * 2021-10-15 2023-11-07 Dell Products L.P. High-availability (HA) management networks for high performance computing platforms
US11799880B2 (en) 2022-01-10 2023-10-24 Palo Alto Networks (Israel Analytics) Ltd. Network adaptive alert prioritization system

Family Cites Families (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5153886A (en) * 1990-01-31 1992-10-06 Hewlett Packard Company Visual display signal processing system and method
US5455911A (en) * 1993-04-05 1995-10-03 Allen-Bradley Company, Inc. Communications protocol for use in transferring data over a serial bus
DE69323196T2 (de) * 1993-09-14 1999-09-09 Ibm Rechnersystem und Verfahren zur Ausführung von mehreren Aufgaben
JPH0795552A (ja) * 1993-09-20 1995-04-07 Fujitsu Ltd テレビ会議ネットワーク管理システム
US5624265A (en) 1994-07-01 1997-04-29 Tv Interactive Data Corporation Printed publication remote contol for accessing interactive media
US5602589A (en) 1994-08-19 1997-02-11 Xerox Corporation Video image compression using weighted wavelet hierarchical vector quantization
US5828421A (en) 1994-10-11 1998-10-27 Hitachi America, Ltd. Implementation efficient digital picture-in-picture decoding methods and apparatus
GB2295936B (en) 1994-12-05 1997-02-05 Microsoft Corp Progressive image transmission using discrete wavelet transforms
DE69634219D1 (de) * 1995-03-21 2005-03-03 Sun Microsystems Inc Videoeinzelbildkennungserfassung
US5708961A (en) 1995-05-01 1998-01-13 Bell Atlantic Network Services, Inc. Wireless on-premises video distribution using digital multiplexing
US6437803B1 (en) 1998-05-29 2002-08-20 Citrix Systems, Inc. System and method for combining local and remote windows into a single desktop environment
US6075906A (en) 1995-12-13 2000-06-13 Silicon Graphics Inc. System and method for the scaling of image streams that use motion vectors
US5977933A (en) 1996-01-11 1999-11-02 S3, Incorporated Dual image computer display controller
US5675382A (en) * 1996-04-08 1997-10-07 Connectix Corporation Spatial compression and decompression for video
US5850482A (en) 1996-04-17 1998-12-15 Mcdonnell Douglas Corporation Error resilient method and apparatus for entropy coding
US6108104A (en) * 1996-09-16 2000-08-22 Eastman Kodak Company Image handling method and system
US5852437A (en) 1996-09-24 1998-12-22 Ast Research, Inc. Wireless device for displaying integrated computer and television user interfaces
US6141447A (en) 1996-11-21 2000-10-31 C-Cube Microsystems, Inc. Compressed video transcoder
US5909518A (en) 1996-11-27 1999-06-01 Teralogic, Inc. System and method for performing wavelet-like and inverse wavelet-like transformations of digital data
US6031940A (en) 1996-11-27 2000-02-29 Teralogic, Inc. System and method for efficiently encoding video frame sequences
US6222885B1 (en) 1997-07-23 2001-04-24 Microsoft Corporation Video codec semiconductor chip
US6304895B1 (en) 1997-08-22 2001-10-16 Apex Inc. Method and system for intelligently controlling a remotely located computer
US6275619B1 (en) 1997-08-29 2001-08-14 Teralogic, Inc. System and method for performing wavelet and inverse wavelet transformations of digital data using semi-orthogonal wavelets
US6768775B1 (en) 1997-12-01 2004-07-27 Samsung Electronics Co., Ltd. Video CODEC method in error resilient mode and apparatus therefor
US6097441A (en) 1997-12-31 2000-08-01 Eremote, Inc. System for dual-display interaction with integrated television and internet content
US6104334A (en) 1997-12-31 2000-08-15 Eremote, Inc. Portable internet-enabled controller and information browser for consumer devices
US6340994B1 (en) 1998-08-12 2002-01-22 Pixonics, Llc System and method for using temporal gamma and reverse super-resolution to process images for use in digital display systems
US6456340B1 (en) 1998-08-12 2002-09-24 Pixonics, Llc Apparatus and method for performing image transforms in a digital display system
US6754266B2 (en) 1998-10-09 2004-06-22 Microsoft Corporation Method and apparatus for use in transmitting video information over a communication network
US6323854B1 (en) * 1998-10-31 2001-11-27 Duke University Multi-tile video display system with distributed CRTC
US6409602B1 (en) 1998-11-06 2002-06-25 New Millenium Gaming Limited Slim terminal gaming system
US6853385B1 (en) 1999-11-09 2005-02-08 Broadcom Corporation Video, audio and graphics decode, composite and display system
EP1365385B1 (en) 1998-11-09 2012-06-13 Broadcom Corporation Graphics display system with processing of graphics layers, alpha blending and composition with video data
US6806885B1 (en) * 1999-03-01 2004-10-19 Micron Technology, Inc. Remote monitor controller
US6850649B1 (en) 1999-03-26 2005-02-01 Microsoft Corporation Image encoding using reordering and blocking of wavelet coefficients combined with adaptive encoding
US6256019B1 (en) 1999-03-30 2001-07-03 Eremote, Inc. Methods of using a controller for controlling multi-user access to the functionality of consumer devices
US6792615B1 (en) * 1999-05-19 2004-09-14 New Horizons Telecasting, Inc. Encapsulated, streaming media automation and distribution system
US6263503B1 (en) 1999-05-26 2001-07-17 Neal Margulis Method for effectively implementing a wireless television system
US6628716B1 (en) 1999-06-29 2003-09-30 Intel Corporation Hardware efficient wavelet-based video compression scheme
TW444506B (en) 1999-09-16 2001-07-01 Ind Tech Res Inst Real-time video transmission method on wireless communication networks
US6611530B1 (en) 1999-09-21 2003-08-26 Hewlett-Packard Development Company, L.P. Video communication using multiple streams
US6834123B2 (en) 2001-05-29 2004-12-21 Intel Corporation Method and apparatus for coding of wavelet transformed coefficients
KR100677070B1 (ko) 1999-10-02 2007-02-01 삼성전자주식회사 무선 멀티미디어 통신에서의 비디오 비트스트림 데이터의 오류 제어방법 및 이를 위한 기록 매체
US9668011B2 (en) 2001-02-05 2017-05-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Single chip set-top box system
JP3735498B2 (ja) 1999-11-09 2006-01-18 株式会社東芝 情報記録媒体、情報記録装置、情報記録方法
US6664969B1 (en) * 1999-11-12 2003-12-16 Hewlett-Packard Development Company, L.P. Operating system independent method and apparatus for graphical remote access
US6898583B1 (en) 2000-01-24 2005-05-24 Sony Corporation Method and apparatus of creating application-specific, non-uniform wavelet transforms
US6798838B1 (en) 2000-03-02 2004-09-28 Koninklijke Philips Electronics N.V. System and method for improving video transmission over a wireless network
US6771828B1 (en) 2000-03-03 2004-08-03 Microsoft Corporation System and method for progessively transform coding digital data
US6549674B1 (en) 2000-10-12 2003-04-15 Picsurf, Inc. Image compression based on tiled wavelet-like transform using edge and non-edge filters
US6774912B1 (en) 2000-03-16 2004-08-10 Matrox Graphics Inc. Multiple display device display controller with video overlay and full screen video outputs
US6510177B1 (en) 2000-03-24 2003-01-21 Microsoft Corporation System and method for layered video coding enhancement
US6816194B2 (en) 2000-07-11 2004-11-09 Microsoft Corporation Systems and methods with error resilience in enhancement layer bitstream of scalable video coding
US6704024B2 (en) 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
GB2366439A (en) * 2000-09-05 2002-03-06 Sharp Kk Driving arrangements for active matrix LCDs
US6842777B1 (en) 2000-10-03 2005-01-11 Raja Singh Tuli Methods and apparatuses for simultaneous access by multiple remote devices
US7146305B2 (en) * 2000-10-24 2006-12-05 Vcis, Inc. Analytical virtual machine
US6785700B2 (en) 2000-12-13 2004-08-31 Amphion Semiconductor Limited Implementation of wavelet functions in hardware
US6826242B2 (en) 2001-01-16 2004-11-30 Broadcom Corporation Method for whitening colored noise in a communication system
US6868083B2 (en) 2001-02-16 2005-03-15 Hewlett-Packard Development Company, L.P. Method and system for packet communication employing path diversity
US6850571B2 (en) 2001-04-23 2005-02-01 Webtv Networks, Inc. Systems and methods for MPEG subsample decoding
JP3632637B2 (ja) 2001-08-09 2005-03-23 セイコーエプソン株式会社 電気光学装置、その駆動方法、電気光学装置の駆動回路および電子機器
US7107578B1 (en) * 2001-09-24 2006-09-12 Oracle International Corporation Techniques for debugging computer programs involving multiple programming languages
GB2381692B (en) 2001-10-31 2004-09-08 Alphamosaic Ltd Video-telephony system
US20040083334A1 (en) * 2002-10-28 2004-04-29 Sandisk Corporation Method and apparatus for managing the integrity of data in non-volatile memory system
US6931458B2 (en) * 2003-04-03 2005-08-16 Dell Products, L.P. Apparatus and method for refreshing a terminal display in a multiple information handling system environment
US7293165B1 (en) * 2003-04-03 2007-11-06 Advanced Micro Devices, Inc. BMC-hosted boot ROM interface
US20050204015A1 (en) 2004-03-11 2005-09-15 Steinhart Jonathan E. Method and apparatus for generation and transmission of computer graphics data
GB2415335B (en) * 2004-06-15 2007-09-26 Toshiba Res Europ Ltd Wireless terminal dynamically programmable proxies
US7694298B2 (en) * 2004-12-10 2010-04-06 Intel Corporation Method and apparatus for providing virtual server blades
EP1844612B1 (en) * 2005-02-04 2017-05-10 Barco NV Method and device for image and video transmission over low-bandwidth and high-latency transmission channels
KR20070117660A (ko) * 2005-03-10 2007-12-12 콸콤 인코포레이티드 컨텐트 적응적 멀티미디어 처리
US7698706B2 (en) * 2005-05-20 2010-04-13 International Business Machines Corporation Methods and apparatus for implementing an integrated user interface for managing multiple virtual machines operative in a computing system
US8364623B1 (en) * 2005-06-29 2013-01-29 Symantec Operating Corporation Computer systems management using mind map techniques
US20070033496A1 (en) * 2005-07-14 2007-02-08 Hitachi, Ltd. System and method for adjusting BER/PER to increase network stream-based transmission rates
US7437225B1 (en) * 2005-07-29 2008-10-14 Rockwell Collins, Inc. Flight management system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI662810B (zh) * 2018-08-01 2019-06-11 技嘉科技股份有限公司 伺服器管理系統及伺服器管理方法

Also Published As

Publication number Publication date
US20120173755A1 (en) 2012-07-05
KR20080084993A (ko) 2008-09-22
CN101553795B (zh) 2013-10-02
WO2007064426A2 (en) 2007-06-07
US8112513B2 (en) 2012-02-07
EP1955187A2 (en) 2008-08-13
CN101553795A (zh) 2009-10-07
WO2007064426A3 (en) 2009-06-04
JP2009517772A (ja) 2009-04-30
US20070124474A1 (en) 2007-05-31
EP1955187A4 (en) 2013-10-02
EP1955187B1 (en) 2019-07-24

Similar Documents

Publication Publication Date Title
JP5129151B2 (ja) マルチユーザ・ディスプレイ・プロキシ・サーバ
JP5060489B2 (ja) マルチユーザ端末サービス促進装置
US8200796B1 (en) Graphics display system for multiple remote terminals
US8638336B2 (en) Methods and systems for remoting three dimensional graphical data
US7916956B1 (en) Methods and apparatus for encoding a shared drawing memory
US9197697B2 (en) Cloud computing system and method
US20140285502A1 (en) Gpu and encoding apparatus for virtual machine environments
US20140074911A1 (en) Method and apparatus for managing multi-session
US20130254417A1 (en) System method device for streaming video
AlDuaij et al. Heterogeneous multi-mobile computing
CN115190345B (zh) 用于显示媒体的协调控制方法、客户端设备及存储介质
US10476927B2 (en) System and method for display stream compression for remote desktop protocols
US8984540B2 (en) Multi-user computer system
CN103618968B (zh) 一种面向云环境下的网络电视播放方法及系统
Tamm et al. Plugin free remote visualization in the browser
US11784887B1 (en) Bandwidth throttling
TWI598817B (zh) 多用戶電腦系統
Brown et al. OpenGL Vizserver 3.1–Application transparent remote interactive visualization and collaboration

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20090831

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091020

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120217

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120327

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120725

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120903

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

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121101

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5129151

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20151109

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees