CN101553795B - 多用户显示代理服务器 - Google Patents

多用户显示代理服务器 Download PDF

Info

Publication number
CN101553795B
CN101553795B CN2006800446321A CN200680044632A CN101553795B CN 101553795 B CN101553795 B CN 101553795B CN 2006800446321 A CN2006800446321 A CN 2006800446321A CN 200680044632 A CN200680044632 A CN 200680044632A CN 101553795 B CN101553795 B CN 101553795B
Authority
CN
China
Prior art keywords
display
blade
proxy server
frame
subframe
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
CN2006800446321A
Other languages
English (en)
Other versions
CN101553795A (zh
Inventor
N·玛古利斯
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 Technology Licensing LLC
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 CN101553795A publication Critical patent/CN101553795A/zh
Application granted granted Critical
Publication of CN101553795B publication Critical patent/CN101553795B/zh
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

Abstract

多用户主机系统包括与终端服务刀片组合的处理器刀片,以提供加速和代理服务器功能来支持各种远程终端。对于每个远程终端,终端服务刀片和代理服务器功能可改进视频和图形性能。这使得该多用户主机系统能更有效地支持多个用户。终端服务刀片可包括管理每个远程终端的虚拟显示且提供子帧数据的选择性更新的图形处理器。在适当时,子帧数据被编码并经由网络传输到远程终端。终端服务处理器还为预期远程终端及它们相应的网络连接卸载和优化视频数据流。处理器刀片可包括利用先进特征来支持KVM管理的基板管理控制器。

Description

多用户显示代理服务器
发明背景
技术领域
本发明一般涉及多用户主机系统,尤其涉及使用代理服务器支持用于远程客户机的终端服务。
背景技术的讨论
开发有效的多用户主机系统是当代系统设计师和制造商的重要目标。
常规的计算机系统可使用本地显示设备来向一个用户直接显示输出。因为由各种使显示设备与计算机系统的输出电耦合的物理连接所强加的限制,本地显示设备通常靠近计算机系统放置。一些计算机系统可以支持具有由该物理连接引起的相似接近限制的第二显示设备。
远程用户需要有选择适当的查看位置和与主系统的网络连接的附加灵活性。例如,在公司环境中,企业可能希望将所有的主机保存在既有物理安全性又有诸如空调和电源备用系统的环境管理的安全的中央“计算机机房”。然而,对于用户而言,从他们的办公室和从位于“计算机机房”之外的桌面使用主机系统是有必要的。
今天通常的办公室环境包括物理地位于用户位置处的个人计算机和日益增多的瘦客户机。这些个人计算机和瘦客户机在具有用于存储、文件服务、文件共享、网络管理和各种管理服务的集中式系统的网络上操作。起初,当用户在他们的本地桌面上运行应用程序时,系统将所有的与计算机系统相关联的磁盘存储器集于中心。近来,认识到安全性的益处、降低的操作成本、以及集中控制的普遍需求,个人计算机和瘦客户机可在基于服务器计算(SBC)方案中作为远程终端(RT)允许,这些SBC解决方案在服务器上运行应用程序。
针对SBC环境中RT的传统方法是主系统使用某种形式的服务器到客户机通信交换,诸如微软的远程显示协议(RDP)。RDP在服务器上使用它自己的视频驱动程序,且使用RDP协议将绘制信息构建成网络分组且经由网络将它们发送到客户机。客户机接收绘制数据且将这些分组转换成相应的微软Win32图形设备接口(GDI)API调用。对将客户机键盘和鼠标命令重定向到服务器以及管理本地音频和本地客户机驱动程序的支持也被包括在内。
为了增强主系统与客户机之间的通信,其它系统已经使用主系统的主CPU从而为RT改进性能。这已经针对瘦客户机和作为远程客户机的传统PC进行。这种方法对一次只支持一个用户的主系统有效。然而,对多用户系统,在主系统上使用主CPU来为任一用户改进性能的方法具有相当大的局限性。用于针对一个用户作最优化的诸如主存储器和CPU周期的计算资源可减少支持额外用户的工作负荷的能力。
从单个主机有效地支持多个用户可以降低成本。在通常的办公室环境中,每个人同时且同样地使用他们的计算机是很少的,任何一个用户使用他们计算机的所有计算资源也是很少的。因此例如,有一百个办公室的公司可能只需要在任一时刻支持六十个用户的系统。即使如此,这种系统也可被设计成支持所有的百位用户,从而给他们足够的计算吞吐量以显现出他们每个都有他们自己的主机。在分布式办公室环境中,集中式多用户系统可经由各种带宽链路连接以支持在各时区的不同工作时间期间在世界不同部分位置上的RT。
基于服务器计算是另一种更有效地为多个用户分配计算资源的方法,其中用户的应用程序在该服务器上运行且只有RT服务在该用户终端上得到支持。SBC使主系统能在多用户操作环境中动态地分配诸如存储器和CPU周期的共享资源。SBC系统可以采用多用户操作系统、虚拟机(VM)、负载均衡的技术及其它手段来基于多个标准准许不同用户访问不同级别的性能和资源。可使用不同优先级方案分配SBC资源。SBC可实现更高的数据安全性,集中对机构的支持,增强的灾难恢复及业务持续,且减少跨组织的数据存储需求。web服务器是可以为包括基于浏览器的客户机在内的各种客户机提供多用户平台的一类SBC。
基于刀片的服务器为可缩放多用户主系统实现一有效的体系结构。刀片计算功能、输入/输出(I/O)功能、底板体系结构以及交换的划分在基于刀片服务器的设计中都是重要的。每个刀片可以构成一完整计算机的功能或者刀片服务器可以跨刀片分享重要功能。随着CPU不断通过包括多处理器核来增加它们的性能,将单个用户限制于单个刀片产生了降低的经济意义。刀片服务器系统中的每个刀片可能需要被远程监视。随着刀片系统的多功能本质,一刀片机架可能需要被配置成最佳地匹配不同工作负荷。
图1示出典型的现有技术多刀片系统级体系结构100,其包括标记为1到8(102、104、106、108、110、112、114和116)的刀片和交换机120和112以及通过每个交换机的路径。交换机还可以包括它们之间以及到链路124的路径,该链路124可以进一步将一刀片机架扩展到另一刀片机架或一些其它子系统。图1的刀片在数量上可有变化且每个刀片可以是处理器刀片、I/O刀片、交换刀片或该三种的某组合。I/O刀片可以包括它们自己的外部接口,如由刀片4108路径180和由刀片8116路径190所示。外部接口的示例可以包括诸如光纤信道的非网络接口和诸如以太网和10G以太网的iSCSI或网络接口。
交换机1 120和交换机2 122的示例交换矩阵示出从每个交换机到每个刀片的连接140和142。每个交换机的物理或逻辑传输的类型可以是相同的或不同的。路径144可以将交换机120和122连接或桥接到一起。交换机和连接的组合被称为交换结构150,该交换结构150可以分布在每个刀片上、是底底板的一部分、在交换刀片上实现或可以涉及该三个的组合。该交换结构的路径可以是单向的、双向的或它们的组合。每个刀片可以与任何数目的交换机连接,且可以包括作为该刀片功能一部分的针对不同交换机的桥接功能。更先进的系统可包括全网型拓扑结构且可以具有冗余。
一些用于该交换结构150的连接的示例包括快速外围组件互连(PCI)、10G附连单元接口(XAUI)、无限带宽、高速IO、星型结构、先进交换互连(ASI)、千兆比特以太网、光纤信道以及其它电互连和光互连中的一个或多个信道。在一些情况下,每个刀片的功能芯片可以直接包括结构接口130。在其它情况下该刀片可以包括执行接口连接的结构接口芯片或桥接芯片。每个刀片内的结构和桥接芯片可以与系统交换机中的一个或多个连接,且可以在这些交换机之间集成附加的桥接功能。
然而,基于刀片的多用户主机可能需要增加的复杂度,以对各种服务器软件和基于网络的应用程序及组织可以具有的各种RT设备有效地管理、控制和递送丰富的应用程序性能。需要可使基于刀片的多用户主服务器用杰出的计算和显示性能更有效地支持许多远程用户的解决方案。
概要
本发明提供一种用于基于刀片多用户计算机系统的有效的体系结构,包括一个或多个能够交互式图形和视频处理的远程终端(RT),该有效的体系结构通常管理应用程序并执行基于服务器计算。每个RT具有其自己的键盘、鼠标和显示器,以及可能其它外部设备。这些RT为个体用户提供对服务器上可用的应用程序以及丰富图形用户接口的访问。该多用户计算机系统可以运行多用户操作系统,可以运行单用户操作系统的虚拟化示例,可以运行针对多个用户的web服务器引擎,可以运行代理服务器或可以运行其某种组合。
在第一较佳实施方式中,处理器刀片包括允许来自RT的远程管理和控制的基板管理控制器(BMC)。除了提供传感和状态信息之外,BMC包括键盘、视频和鼠标(KVM)能力,从而系统管理者可以像他本地连接到该刀片一样地远程访问该处理器刀片。BMC和KVM起支持“带外”操作的作用,而不对该CPU和板的基本操作作附加的运行时间变化,从而可最有效地执行运行时间问题的诊断。该远程KVM的显示相关特征由利用选择性更新和需要时利用各种形式的显示数据压缩的图形处理器和显示数据编码器支持。该显示数据编码器功能可以被集成到TSA 424内或作为用于组合GPU-TSA的专用数据编码器752。
在第二较佳实施方式中,终端服务刀片(TSB)利用软件、图形处理器和数据编码的组合来通过针对每个RT创建虚拟显示环境支持多个RT。与该RT通信的最常见方法包括发送经封装的图形命令或发送经编码的子帧数据。管理RT的软件可以在该主要的主处理器刀片即该TSB的CPU上、在终端服务加速器(TSA)上、在RT上或在其组合上运行。对每个RT的选择性更新可用软件或在多用户图形处理器单元(MU-GPU)或组合TSA-GPU内硬件的协助下进行协调。该图形处理器可以遵循提出的VESA数字分组视频链路(DPVL)标准或使用报头、状态比特和签名用于子帧的经改进方法。其它增强中,高速PCI或另一总线代替DVI用于输出数据,附加的数据编码在该图形处理器内或用附连到该图形处理器的编码器执行,且该软件为多用户支持使用一个或多个图形处理器。
该TSB可以执行包括客户机端接的变化级别的代理服务,且甚至可以完全仿真多个RDP客户机,从而在该处理器刀片上运行的RDP主机将在该TSB上运行的进程视为唯一已知的客户机。在此方法中,该TSB可以创建与主处理器未察觉到的RT的完全独立接口。该TSB和RT之间的此类接口可具有分离代理(split proxy)的形式。作为分离代理,该TSB和RT经由专用信道通信,在该专用信道上它们能比使用诸如RDP或网络浏览器协议的更标准协议更为有效地通信。
为了附加的效率,该处理器刀片可以运行跟踪软件,该跟踪软件可以与TSA组合以截取诸如视频回放的功能。该TSA可以在由CPU解码前截取视频数据流并可将该本地视频流或诸如经译码或经转换版本的修正版本传送到目标RT,而不是使该主CPU本地地执行视频解码并提供传输到RT的位图。除标准的RDP信道之外,向RT的传送可采用其它专用信道,同时仍然在RDP协议内受管理。
在每个实施方式中,在图形处理和选择性更新过程之后,该数据被编码且然后被封装成网络待更新分组。网络I/O刀片、网络处理器、或连同较简单的网络控制器一起工作的CPU,经由有线和/或无线网络将该图形分组传输到RT。在某些KVM配置中,BMC将执行网络处理使得处理器刀片CPU不受该更新分组操作干扰。在另一配置中,CPU利用“虚拟技术”来保护性地分割和执行包括用户任务的操作系统功能以及BMC的带外管理任务。该BMC可以与该系统中的另一网络控制器或网络物理层(PHY)通信。每个RT系统对预期作显示的图形分组进行解码,管理帧更新并执行针对该显示屏幕的必要处理。其它特征,诸如在网络传输中丢失的掩蔽分组,由该远程显示系统管理。当没有新的帧更新时,该远程显示控制器用来自先前帧的数据刷新显示屏。
各种网络系统可反馈来自各种连接到TSB的有线和无线网络的网络信息。该TSB使用网路信息来影响产生RT更新的各种处理步骤,并且基于该网络反馈可以改变针对不同RT的帧速率和数据编码。此外,针对包括具有噪音传输信道的网络的系统,编码步骤可与前向纠错保护相组合,以准备传输信道特征的传输数据。这些步骤的组合为每一个RT保持具有低等待时间的最佳帧速率。TSA和TSA-GPU可被实现为分离的子系统或者可与其它卸载和加速处理组合,这些卸载和加速处理诸如网络处理器、安全性处理器、XML加速器、iSCSI处理器或这些的任何组合。
因此,至少出于上述原因,本发明有效地实现了利用各种不同组件来便于系统的互操作性和功能性的灵活的基于刀片的多用户计算机系统。本发明因而有效地实现了增强的基于刀片的多用户服务器。
附图简述
图1是包括多个刀片和交换结构的现有技术基于刀片多用户计算机系统的框图;
图2是根据本发明第一实施方式的多CPU处理器刀片的框图,该多CPU处理器刀片具有多CPU复合体和带远程键盘、视频和鼠标(KVM)支持的基板管理控制(BMC);
图3示出经由网络与图1的基于刀片的多用户计算机系统连接的RT;
图4是根据本发明第二实施方式的终端服务刀片(TSB)的框图;
图5表示被组织到八个显示区的存储器,该八个显示区之一包括显示窗口且其中的两个用于支持一个大的RT显示;
图6A示出图5显示图536的更详细视图;
图6B示出细分为小块的图6A的矩形;
图7是示出图4的具有集成图形处理器单元的示例性片上系统(SOC)终端服务加速器(TSA-GPU 700)的细节的框图;
图8是包括图形子系统和其它带外处理的带KVM的基板管理控制器的框图;
图9是根据本发明的一个实施方式的用于执行终端服务和显示代理服务器操作的方法步骤的流程图;以及
图10是根据本发明的一个实施方式的用于执行针对远程终端的网路接收和显示过程的方法步骤的流程图。
较佳实施方式的详细描述
本发明涉及对基于刀片的多用户计算机系统的改进,该计算机系统带对远程模块的支持。虽然所描述的实施方式涉及基于刀片的多用户计算机系统,但是相同的原理和特征同样可应用于其它类型的单用户和多用户系统以及其它类型的远程终端。
如下参照图3所述,基于刀片的多用户计算机系统100,也称为“主机100”,被设计成支持在远程终端上的多个用户。每个RT能够时间共享该主机100,好像该主机100是它们自己的本地计算机且在具有能在本地计算机上实现的同类用户体验的情况下具有对所有类型的图形、文本和视频内容的完全支持。当使用网络连接时,路径180和190与可连接到图3网络路径390的图2路径290和图4路径490相对应。除了RT连接之外,主机100可以通过链路124连接到WAN、存储子系统、其它主机或各种其它数据中心连接,这些数据中心连接可采取千兆比特以太网(GigE)、10G以太网、iSCSI、光纤信道(FC)、光纤信道IP(FCIP)或另一电连接或光连接。主机100可以支持各种多用户操作系统(OS)或对可用于处理器刀片中的一个或更多个的单用户OS进行虚拟化的软件。诸如Citrix或Windows服务器的操作系统被设计成多用户OS。Windows XP,虽然不是为同时的多个用户具体设计的,但在诸如VMWARE或XenSource的低级虚拟化软件或另一手段的帮助下可在这种配置中用于如此快地执行用户交换从而显现为多用户OS。不同管理控制可使RT和程序静态地或动态地从处理器移到处理器。负载均衡可针对每个处理器由该OS执行或者该系统可跨多个处理器执行负载均衡。主机100还可运行一类web服务器并通过基于网络的接口支持多个用户。该主机100可用作针对各个RT的代理服务器,并与应用程序服务器或web服务器通信。
图2是可用作基于刀片多用户处理器系统100的刀片102-116中的一个的处理器刀片200的一个实施方式的框图。每个刀片200本身可以主机,或者多个刀片可被一起置于机架上以创建能力更强的主机。主机具有的处理器刀片、I/O处理和CPU越多,就可同时支持越多的用户。处理器刀片200的基本组件优选地包括,但不限于,多CPU复合体202、总线桥接控制器204、诸如高速PCI的主系统总线206、本地I/O 208、主RAM 234、连接到交换机、底板和其它刀片的结构接口(FI)130、以及可任选的基板管理控制(BMC)子系统800。
取决于交换结构150的传输和物理层接口的类型,结构接口(FI)130可以包括重要处理。例如,该结构接口130可包括既针对本地生成分组又针对ASI结构接口执行所有必要的分组层过滤和处理的10G以太网处理器(未示出)。这种结构接口处理器可能需要外部RAM 230或者可能具有充足的内存。网络物理层接口(PHY)可与FI处理器结合或可利用外部PHY组件。本地I/O 208和本地I/O连接290可由此同一FI处理器控制。此外,该结构接口130可直接与系统总线206附连,而不是通过桥接控制器204与系统总线206通过接口连接。
在一个示例系统中,交换机1 120和关联路径140利用可允许快速PCI分组隧穿的ASI总线协议。交换机2 122和关联路径142可以是XAUI类总线,且可针对存储和联网更为优化并且可使用10G以太网协议。该系统可主要将ASI总线用于不同处理器刀片之间的通信,而将XAUI总线用于与联网和存储刀片的通信。每个刀片可包括一个接口,两接口还包括在两个总线之间桥接话务传输的能力。
图2的多CPU复合体202可包括一个或更多个处理器芯片,每个处理器芯片具有一个或更多个CPU核(未示出),每个CPU核可执行多个同时线程。在每一层,每个CPU核都可包括任一专用高速缓存,而在某些层多CPU核可以共享高速缓存。该多CPU复合体202可独立地控制和访问RAM 234,或者它可利用桥接控制器204来执行对RAM 234的访问。在一些其它配置中,该多CPU复合体202可直接与主系统总线206通过接口连接(未示出)。
本地I/O 208可包括各种I/O接口,并控制外部接口290和位于处理器刀片200内资源的通路210。诸如存储和联网的主I/O功能可被包括在每个处理器刀片200上,或者其它专用I/O刀片可经由交换结构150得到支持。取决于对交换结构的物理或逻辑连接的选择,接口140和142可直接结合桥接控制器204或者可能需要结构接口130芯片。
因为每个处理器刀片200有效地可以是“计算机系统”,所以具有观察和管理该系统的方法是非常合乎需要的。因为主机100可位于一具体的计算机机房内,所以使该系统能从远程终端(RT)300观察和管理常常是合乎需要的。RT可以是具体设计的瘦客户机,或者对于管理功能更通常是计算机运行管理软件。此外,RT可包括用于执行这些管理功能的基于浏览器的软件。处理器刀片200可包括提供用于基于浏览器的管理的用户接口的web服务器。
当处理器刀片200正在被管理且不处于来自远程用户的工作负荷下,多CPU复合体202的主CPU经常用于与RT通信。然而为了监视各种环境状况且当处理器刀片200在执行来自远程用户的工作负荷时对其进行观察和管理,将如图8详细说明的基板管理控制(BMC)子系统800包括在内是合乎需要的。
作为BMC 800中的独立CPU的替代或附件,202中的主CPU可使用虚拟化技术来将管理功能从操作系统和用户功能中隔离。尽管在多核CPU202中一具体核可专用于这种管理功能,但适当设计的CPU可包括诸如该英特尔范德普尔(Intel Vanderpool)VT技术的硬件,以使任务或线程互相隔离而与它们在哪个核上运行无关。这样,单个CPU核可以同时既运行用于支持带外管理功能的受保护的虚拟管理机模式,又运行操作系统虚拟机模式以支持各种操作系统和用户任务。
CPU核的不同虚拟机各自可以连同BMC 800的不同方面进行操作。在一较佳实施方式中,带KVM 212的BMC包括诸如TSA-GPU 700的MU-GPU 412的本地图形处理器,该处理器对在虚拟机模式下运行的标准操作系统执行显示处理。对于远程KVM操作,远程管理员可能想要观察或执行处理器刀片200的带外管理。主CPU 202的受保护的虚拟管理机模式可用于协助执行带外远程管理。该远程KVM管理可包括从带外网络接口访问相同的本地图形处理器显示。这种对图形处理器显示的访问可利用在图7中详细描述的TSA-GPU 700的更先进特征。在另一实施方式中,带KVM的BMC 212内的独立CPU 808用于管理带外远程管理,而不是用于在主CPU上使用受保护的虚拟管理器模式。
图3是远程终端300的框图,根据本发明的一种实施方式,该远程终端300优选地包括,但不限于,显示屏310、本地RAM 312、以及远程终端系统控制器(RTSC)314。该RTSC 314包括键盘、鼠标及I/O控制子系统316,该I/O控制子系统316具有对鼠标318、键盘320及其它各种设备322的相应连接,其它各种设备322诸如是用于再现音频的扬声器或可支持各种设备的通用串行总线(USB)连接。还可包括其它集成或外围连接,用于通过包括生物鉴定或安全卡的安全手段支持用户认证。这些连接可专用于单一用途,诸如PS/2类键盘或鼠标连接,或用于诸如USB的更普通用途。在其它实施方式中,该I/O可包括游戏控制器、本地无线连接、IR连接或根本没有连接。远程终端系统300还可包括诸如DVD驱动器的其它外围设备。
本发明的一些实施方式不需要远程终端系统300上的任何外部输入。这种系统的一个示例是不同显示器在不同位置可用且可以示出各种信息性和娱乐性信息的零售店或电子告示牌。每个显示器可独立地操作且可以基于各种因素更新。类似的安全系统还可包括一些接受触摸屏幕输入的显示器,例如信息亭或银行里的自动出纳机(ATM)。其它安全系统,例如娱乐场的游戏机,也可基于这类RT。
图1的主机100可包括来自每个刀片的网络接口(例如,180、190)或者共享的网络控制器可被包括在内。在任一情况下,建立从主机100到RT 300的输入390的网络连接。网络控制器336支持在可以是有线或无线的网络路径390上的安全协议,且经由该网络的数据传输可通过密钥交换加密。公用网络示例是以太网,诸如运行某些类型以太网,优选为千兆比特以太网的CAT 5布线,其中I/O控制路径可与UDP传输相组合地使用以太网支持协议,诸如标准的传输控制协议和因特网协议(TCP/IP)或某种形式的轻量信号交换。诸如实时流协议(RTSP)和实时传输协议(RTP)与实时控制协议(RTCP)一起的工业成果可用于增强分组传输且可通过添加重发协议进一步增强。其它围绕使用服务质量(QoS)成果的较新成果,诸如层3差分服务代码点(DSCP)、作为数字生活网络联盟(DLNA)的一部分的WMM协议、微软Qwave、uPnP、QoS及802.1P也是使用现有网络标准的增强方法。
除了用于支持I/O设备的分组,该网络携带经封装和编码的显示命令和显示所需的数据。CPU 324与网络控制器336、2D绘图引擎332、3D绘图引擎334、数据解码器326、视频解码器328及显示控制器330协调以支持可在显示屏310上本地地绘制和显示的所有类型的视觉数据表示。没有要求RT包括显示处理块的任何特别组合。额外的瘦RT可小到只包括显示控制器330,其中CPU进行显示处理,尽管具有至少一类解码器或绘图引擎是更为可能的。
各种处理元件可对表示整个帧的分组或表示显示数据的各个子帧的分组进行解码。在一较佳实施方式中,分组包括与显示的固定位置相对应的经编码显示数据的各个数据片。CPU 324可接收这些分组并通过读取分组的报头信息来确定分组预期的显示的适当位置。诸如数据解码器326的适当资源用于对数据片进行解码并将经解码数据传输到显示存储器内的适当位置。数据解码器326可被设立成将产生直接进入显示存储器位置的解码数据,或者该数据可被解码到另一区域且通过2D绘图引擎332、CPU 324或通过另一手段传输到期望位置。
RT 300首先可通过将由该主机100经由网络190/390提供的额外信息引导到本地闪存(未示出)之外来初始化。在针对RT的初始化序列期间,RTSC 314与显示屏310之间的连接可以反向或双向模式使用,从而利用诸如显示数据信道(DDC)接口、扩展显示标识数据(EDID)及其它扩展的标准来标识显示监视器的性能。通过键盘、鼠标和I/O控制器316的USB连接还可以用于与显示屏310的连接。然后诸如可用分辨率和控制的信息由CPU 324处理。系统300可实现诸如uPnP的协议或能与主机100通信的其它发现机制。在初始化通信期间,CPU 324可将包括显示监视器信息的RT信息提供给主机100,从而每个RT可在主机一侧被例示。
初始显示屏可来自闪存或来自主机100。在显示数据的第一全帧之后,该主机200只需经由网络390发送部分帧信息作为显示更新网络流的一部分。如果与先前帧相比没有显示像素变化,则显示控制器330可用来自本地RAM存储器312的先前帧内容刷新显示屏310。RTSC 314的输出可使用诸如HDCP的协议加密。如果显示屏310由诸如带有DVI的电缆连接,HDCP可以是用于回放具有DRM的内容的要求。此外,RTSC 314可被设计成提供各种加密密钥永远不暴露于芯片之外的高度安全的处理环境。在一更安全实现中,被解密的内容数据不会在该芯片的外部呈现为明码。为了实现这种安全系统,RTSC 314可以使用与用主机100和显示屏310执行的密钥交换无关的本地密码术方法。
显示更新通过网络流发送,且可由经封装的2D绘图命令、3D绘图命令、编码显示数据或编码视频数据组成。网络控制器326接收网络显示流且CPU 324根据封装报头确定对该分组而言需要功能单元332、334、326和328中的哪一个。功能单元执行必要处理步骤来绘画或解码图像数据且用新图像更新RAM 312的适当区域。在下一刷新周期期间,显示控制器330将该更新帧用于显示屏310。
显示控制器330将来自RAM 312的电流图像帧的表示传输到显示器310。通常,该图像将以准备好显示的格式存储于RAM 312中,但是如果RAM成本是个问题,则该图像或该图像的各个部分可以编码格式存储。外部RAM 312可由远程终端系统控制器314内的大缓冲器代替。显示控制器330还能将储存于RAM 312内的两个或更多个显示表面组合来合成一输出图像以供屏幕310显示图像。不同混合操作可与该合成一起执行。
CPU 324与TSB 400(图4,以下讨论)通信以最佳地设立和管理针对RT的全部显示操作。初始设立可包括枚举RTSC 314中受支持的功能的类型、显示屏310的详细说明、可用于缓冲和高速缓存数据的RAM 312的量、由2D绘图引擎332支持的命令集、由3D绘图引擎334支持的命令集、由数据解码器326支持的格式、由视频解码器328支持的格式以及显示控制器330的性能。其它运行时的管理优化包括管理和高速缓存RAM 31中的显示位图以使得它们不需要被重新发送。
RT 300的配置可包括基本数据解码体系结构或在更常用的基于CPU的平台上运行的软件,且可基于因特网浏览器体系结构。作为因特网浏览器体系结构的一部分,这些功能单元可由直接调用功能单元的特定浏览器、包括使用功能单元的“插件”或驱动器的浏览器使用,或者更标准的浏览器可使用担当中介的本地代理来确定哪些请求可本地完成,而哪些需要与主系统上的网络应用程序通信。“异步Java脚本语言和XML”(AJAX)及其它派生物,诸如“异步闪存和可扩展标记语言”(AFLAX)是这种基于代理的技术,且可以使用XHTML、通过Java脚本和“XMLHttpRequest”操作的文件目标模型的组合与该web服务器异步交换数据以改进在客户机上的用户接口。AJAX可用来执行选择性的请求,其中客户机一侧的数据解码使用RT 300的功能块。
来自基于RT 300的因特网浏览器的基于代理的选择性请求可以由主处理器刀片200和终端服务刀片400支持以进一步优化整个系统。附加的通信协议处理可以由AJAX代理执行。其它示例AJAX操作可以包括安全密钥和DNS查找的管理。在该RT上的基于AJAX的代理可将主处理器刀片200或TSB 400用作为应用服务器或web服务器的代理。基于AJAX的代理可以包括特殊通信机制,且作为分离代理与提供该代理的其它部分的主处理器刀片200或TSB 400一起操作。
图4示出用于基于刀片的多用户计算机系统100的终端服务刀片(TSB)的第二较佳实施方式,虽然TSB 400另外可体现为通过网络附连到主处理器的独立计算机或设备。作为设备,TSB 400可包括到服务器的显示输出的其它非网络连接,诸如DVI或其它电缆,且可包括本地DVI输出以保持对本地输出设备的支持。这种来自TSB 400的DVI输出可以是来自服务器的通过模式,或者当该DVI上的数据不适于简单通过操作时可以进行一解码步骤。TSB 400可以独立于主处理器操作以作为多用户RT的代理服务器行。
TSB 400包括CPU子系统402、存储器434、桥接控制器404、带RAM432的本地I/O 428以及组成终端服务加速器和多用户图形处理器单元子系统(TSA-GPU)700的组件。桥接控制器404可以与交换结构通过接口直接相连,或者可包括用于与交换结构140和142连接的结构接口130。该TSA-GPU 700内的主要功能单元是多用户GPU(MU-GPU)412和终端服务加速器(TSA)424,这些主要功能单元具有关联RAM 418和430且可包括经由显示接口220的连接222。在某些配置中,TSA-GPU具有共享RAM且可照图7如下所述地被进一步集成。
单个TSB可以对各自具有一个或更多个CPU的多处理器刀片200执行图形处理,CPU各自具有一个或更多个处理器核,且任何数目的虚拟机在CPU和处理器核的混合上运行。在一些多用户或多处理器操作系统中,对TSB 400的请求可以协调方式管理或执行。例如,在基于微软远程桌面协议(RDP)或Citrix ICA的系统的情况下,这些显示命令已被初始化且处理器刀片200不会尝试直接访问图形子系统。其它多用户或多处理器操作系统可包括串行化对图形子系统的访问的协调装置,并且与该操作系统组合的TSB 400可使该协调访问被适当映射以使单个TSA 700可支持针对一个或更多个多用户操作系统的多个显示。
然而,在虚拟机模式中,不同虚拟机可能不知道彼此,且每个虚拟机可假定它具有对专用图形子系统的完全访问权。在这种情况下,TSB 400需要创建一虚拟抽象层来以有序方式满足来自多个虚拟机的异步命令和请求,并适当地支持对RT的结果显示。TSB 400可编写可在处理器刀片200的不同虚拟机上运行的不同操作系统的图形驱动器。然后TSB 400将来自不同操作系统的驱动器调用协调成经协调的多显示TSA 700操作。或者,每个操作系统将利用标准图形驱动器且TSB 400需要有效地截取驱动器调用。然后所截取的驱动器调用被管理以在相干多用户模式中操作TSA 700并适当地管理针对每个虚拟机的显示。
在某些系统中,TSB 400的功能之一是将该处理器刀片200从针对每个RT的部分管理中卸载,并加速部分卸载处理以使每个RT具有经改进的显示经验。卸载和加速支持的类型包括:将图形处理封装为远程图形命令,帮助确定在每个RT上高速缓存什么性能和位图以确定哪些图形命令是最适合的,将需要传输到RT的比特图编码并封装,以及最佳地管理多媒体比特流。或者,在传输前,浏览器和基于RT的代理可发起对主机100的更多具体请求,以提供对可由TSB 400编码的图形数据的更新。在一种较佳实施方式中,主系统100是web服务器,其中处理器刀片200执行web服务器功能的数据库和“后端”操作,而TSB 400作为管理用于web服务器功能的显示元件的媒体协处理器进行操作。
也可支持附加功能,诸如可扩展标记语言(XML)话务、简单对象访问协议(SOAP)、HTTP话务、Java虚拟机(JVM)以及其它与基于因特网通信相关联的话务的检查和封装。当执行任何想要的防兜售信息、防病毒、内容过滤、访问限制实施或其它基于分组过滤的算法时,处理器刀片200与TSB 400一起可使RT有效地执行对整个因特网的远程访问。这种附加功能可对支持将主机用作web内容访问的代理的RT因特网浏览特别有用。虽然可能在系统中有一些冗余,此方法可比在主系统与WAN之间使用的更普通的网络安全装置提供更多的特定用户控制。TSB 400可提供诸如DNS查找的其它卸载功能。提供DNS查找可使需要设立和管理的TCP/IP连接的数量下降。TSB 400还可提供针对诸如SSL的安全性的卸载。此外,TSB 400可提供对安全客户机的基于证书的密码算法支持。
TSB 400上的具体代理服务器可将其它增强用于基于因特网的话务,这些增强可包括取决于RT显示设备和该RT内的执行性能对基于因特网的内容重定格式或重新编码。例如,如果RT设备是具有有限屏幕分辨率的蜂窝式电话或个人数字化助理(PDA),则TSB 400为了更快和更适当的显示可将高分辨率内容过滤降低为低分辨率图像。该TSB 400可以运行其它更智能的内容过滤和网页解释算法,以执行类似除去标题广告和其它外来信息的功能以使核心信息可被发送到蜂窝式电话。TSB 400可运行完全web浏览器且RT运行能力较差的web浏览器或微浏览器。TSB 400的代理功能可将先进web格式转化为可被RT的浏览器理解的web格式。
其它类型的web内容,诸如那些利用Active-X控件、多媒体闪存或其它运行时程序的web内容,可与诸如电话或PDA的设备不兼容。TSB 400可以担当中间的代理服务器,且将在Active-X控件之后的显示数据传输到等待的PDA中。也可以执行应用层正则表达式(RegEx)内容处理。还可以执行重定格式和重新编码以增加客户机的安全性。尽管XML和SOAP可受到黑客或其它格式的病毒传播,TSB 400可以将XML和SOAP重新编码成安全的显示格式,以使RT客户机不会受到这种危险。
在另一实施方式中,主机100尤其是TSB 400被用作更普通的多格式网络文件代理服务器使得RT能查看它们以其它方式无法读取的文件。例如,RT可以包括用于各种显示格式的查看程序,但可能不包括打开和查看Adobe PDF文件或微软Word文件的能力。RT上的查看程序可以是支持各种HTML和其它面向web格式的浏览器。主机100可能能够打开和查看Adobe PDF文件和微软Word文件。然后该主机100可使用TSB 400的功能将来自PDF文件或Word文件的图形输出转化成用于在RT上查看的兼容显示格式。该RT可具有到许多类型的数据文件的网络链路,并通过使用多格式代理查看程序具有查看许多类型的文件的能力,这些类型的文件用其它方式不能被解码以供在该RT本身上查看。此类型的多格式代理查看可与网络文件共享功能组合或与邮件服务器组合。例如,如果该多格式代理查看程序将文件附件转换为蜂窝式电话RT可查看的格式,那么它可能能够接收带有各种附件的电子邮件。这些可查看附件可与邮件消息一起被包括在内或到附件的可查看版本的链路可被包括在该邮件消息中。
多媒体比特流可包括已经处于压缩格式、且在图2处理器刀片200或图4TSB 400上接收的视频流。在某些配置中,该多媒体比特流将已经是与该预期RT 300兼容的格式。在这种情况下,在处理器刀片200上运行的软件跟踪层将指引该比特流进入TSB 400,该TSB 400将把该比特流封装为适当的分组格式以供传输到RT。封装可包括添加报头信息,例如视频显示窗口的来源,或修改分组构成,诸如将传输流转换为具有不同分组大小的程序流。
在一些其它情况下,该多媒体比特流将不是目标RT容易处理的格式或不是适于该网络连接的格式。在这种情况下,TSB 400作为转码代理服务器操作,并执行更复杂的对该多媒体比特流的解码和再编码、转码或译码的步骤。例如,该导入多媒体比特流可以是经编码的HDTV MPEG-2流。如果在RT上窗口尺寸被设为小的320×240窗口,则节约网络带宽并使TSB400将视频转码和转换为表示期望显示窗口尺寸的较低比特率可以是有意义的。类似地,如果该导入视频是RT不能解码的格式,则TSB 400可将该视频转码为兼容格式。即使该格式是兼容的,其它诸如数字权限管理(DRM)或加密方案的不兼容性可能会存在。TSB 400还可以从一个DRM或加密方案转换为适于目标RT的方案。
例如,内容拥有者可使用基于专用密钥交换的DRM方案,例如由Apple的iTunes所使用的一个。TSB 400可检查在处理器刀片200或本地CPU 402上运行的iTunes视频播放器的输出,并捕捉经解密的内容。如果经解码的输出来自DVI视频总线,则该输出仍然可在HDCP中加密。在HDCP的情况下,TSB 400需要具有适当的密钥来解码HDCP保护内容并且可担当显示设备以便于执行该解密。为了保留该内容拥有者的控制权,TSB 400然后将把该内容重新加密为可被远程客户机回放设备所理解的协议。这可基于商用协议,诸如数字传输内容保护(DTCP)或微软的当前格式或者可使用一专用协议。一旦被重新加密,该新的受保护数据流可经由网络传输到具有适当的解密和显示能力的接收设备。
微软远程桌面协议(RDP)的一些当前版本提供对经压缩的视频比特流的不那么有效的处理。有了RDP,该主系统内的驱动器检测比特流且将该比特流解码为设备无关位图(DIB)。然后该DIB被转换为RDP传输命令,且该DIB格式数据经由网络被不可靠地传输到RT。在多数情况下,只有几个DIB数据帧将它传到RT用于显示。因此,在该主CPU中执行解码以及经由网络以较低效率格式发送经解码数据中存在低效率。其它基于RDP的图形处理也使用DIB。
常规的图形位图,例如那些来自网站的位图,也需要从主机100传输到RT 300。TSB 400可对常规的诸如DIB的图形位图执行各种级别的编码。图形位图的编码关于提供原始图形质量的视觉上不可区分的表示的目的可以是无损的或是有损的。TSB 400的简化软件接口可仅仅包括通过RDP API与该主CPU连接,然而一种更为激进的实现是允许TSB 400访问下层的DirectX驱动器框架。该经编码的DIB传输和具体的经压缩视频域传输不是标准RDP实现的一部分。因此这些传输可被借道为现存RDP传输格式,作为某类专用RDP扩展操作或在该RDP框架之外操作。
该主操作系统和RDP的某些版本需要满足针对该RDP协议的附加安全性需求。该RDP客户机可被要求与主机交换密钥以便于使用加密分组。因为TSB 400正在截取RDP客户机分组,所以TSB 400可以包括供密钥交换的适当加速和卸载以及供与主处理器通信的解密。此外,为了维持该系统的安全性,TSB 400和网络接口将确保与RT的所有通信都被适当加密。
在另一实施方式中,TSB 400可作为web服务器卸载引擎操作并支持浏览器和基于代理的RT,该web服务器卸载引擎作为web服务器的一部分或作为多个web服务器的集结点。web服务器加速可为JAVA、数据编码、数据转码及其它功能执行。在一更佳实施方式中,RT可运行包括对诸如AJAX的多个协议的支持的更为智能的基于代理的浏览器。使用AJAX或类似方法的浏览器在用户操作期间能够维持和管理该浏览器内的信息,且仅当需要新信息时才必须与web服务器接触。代替服务器传递整个帧,AJAX使更具体的信息请求能执行,并且web服务器只提供该新信息,该新信息然后与先前存储的信息一起用于本地地生成新帧。此连续性可通过预取信息、请求更小的更有效的请求以及管理安全性用于改进该用户接口。由AJAX生成的请求可由TSB 400管理,其中安全性可被维持,数据被TSB400有效编码,并且数据使用AJAX和RT 300的功能块在客户机一侧解码。
精心设计的AJAXweb应用程序将使用客户机或代理高速缓存对象且减轻发送整个帧的需要的能力,其中TSB 400仍然可用于对任何帧数据的第一请求进行编码。对于未针对选择性更新设计的web应用程序,TSB 400可用作在这种web应用程序和基于AJAX的浏览器之间的代理。主机100可以不是web服务器,并且可以是位于因特网服务供应商(ISP)或入网点(POP)上的服务器。作为代理,该主机100或TSB 400可与RT300协调以执行基于客户机驱动器请求的选择性更新。即使该web应用程序请求全部帧更新,TSB 400代理可处理新帧和旧帧并将两者进行比较,并向客户机提供经编码的更新信息。甚至对于并不是为选择性更新具体设计的web应用程序,这也可允许针对RT 300的带宽减少和经改进用户接口。
TSB 400可通过可编程方案实现,该可编程方案也可解决若干无关操作的普通卸载任务。服务器可从卸载网络、存储器、安全性及其它任务中受益。卸载处理器可被设计成静态或动态地平衡各个卸载任务并针对任何给定工作负荷加速整体系统吞吐量。例如,该服务器可以在白天对瘦客户机执行基于服务器的计算而在晚上运行大的数据库操作。在白天,该卸载引擎将运行对TSA描述的操作。在晚上该卸载引擎将运行iSCSI加速,以从磁盘存储器系统访问大的数据库。该灵活性可由跟踪各种工作负荷的板上或系统范围的管理程序管理。用于卸载任务之间切换的粒度可以是极小的。该卸载引擎可被设计成执行非常快的环境切换,从而在单个会话内它可对该同一会话执行网络、终端服务、存储、安全性或其它卸载任务。
为支持针对不同卸载任务的动态处理,TSB 400使用可编程和可配置的、且在工作负荷变化时可被快速地任务切换和重新配置的处理块。各种存储器块将被包含于各个处理块中,并且大存储器434也可被包括在内。该CPU 402是包括其自身的高速缓存的通常可编程的处理器,并且可以为该卸载执行内务处理和管理以及执行某些高级协议和接口处理。桥接控制器404可集成网络处理器并管理TSB 400的交换结构接口130功能,且可管理同时通信的多个管道。诸如内容地址存储器(CAM)以及传统存储器的特定内存也可被包括在桥接控制器404之内。
桥接控制器404和TSA-GPU 700的处理单元可被实现为可配置数据处理器(CDP),这些可配置数据处理器(CDP)被设计成容易重新配置以对通常与专用硬件块相关联的吞吐量执行不同处理。通过使用CDP而不是专用硬件,不同卸载任务可由同一硬件执行。用于设计CDP的现有技术方法,诸如可重新配置的数据路径、动态指令集、超长指令字(VLIW)、单指令多数据(SIMD)、多指令多数据(MIMD)、数字信号处理(DSP)以及其它形式的可重新配置计算可被组合以执行极高性能计算。CDP还可用作针对密码及密钥相关功能的带有或不带附加的专用硬件块的安全性处理器。
针对终端服务加速和代理服务器操作,CDP可被配置成执行针对小块和矩形的数据编码,各种形式的对视频或数据的转码或转换、小块签名的生成和比较、以及其它关于TSA-GPU 700的如下描述的任务。对于存储加速,CDP可对iSCSI、光纤信道(FC)、光纤信号因特网协议(FCIP)以及因特网协议相关任务的不同方面进行配置。连接490可被配置成与FC或另一存储协议连接。对于因特网内容加速,CDP可被配置成处理XML话务、SOAP、HTTP话务、JVM以及与基于因特网通信相关联的其它话务。其它web服务器加速可包括卸载DNS查找和处理TCP/IP连接,以及为传统的web客户机和基于AJAX类代理的浏览器执行数据编码和转码。
TSA-GPU 700执行TSB 400的图形相关卸载和加速功能。多用户图形处理单元(MU-GPU)412包括通过分组对选择性显示更新的支持且可遵守部分或全部所提出的VESA数字分组视频链路(DPVL)标准,尽管一较佳实施方式包括增强性能。TSA 424支持通过系统总线406来自MU-GPU 412的分组显示更新,或优选地支持输入路径414和416,输入路径414和416可以是串行的数字视频输出SDV01和SDV02或具有不同总线宽度、信令协议和频率的一般化端口。示例包括数字视频输出(DVO)、数字视觉接口(DVI)、高清晰度多媒体接口(HDMI)、显示端口或其它低压差分信令(LVDS)、转换最小化差分信令(TMDS)、快速PCI或另一方案。显示输出路径可全速运行以在高刷新速率下输出多个视频帧,其中这些帧可以是对应于一个以上目标RT的选择性更新矩形。TSA 424可经由专用链路426、通过主系统总线4406或通过片上系统(SOC)实现更紧密地结合,与本地I/O或网络控制器连接。第二系统总线408还可针对附加带宽而被包括在内,并且更直接地支持桥接控制器404及其与多个交换结构的接口连接。
除执行传统图形处理之外,MU-GPU 412产生基于显示的选择性更新,这些基于显示的选择性更新指示显示的哪一部分已经改变。选择性更新可以采取经由视频输出路径414或416或经由主要系统总线406输出的矩形或小块的格式。矩形更新包括指示窗口的起源、尺寸和格式的分组报头。起源可用于指示哪个RT是目的地。小块也可被使用并且可被标准化为一个或更多个的固定尺寸,以使该报头可需要更少的信息来描述该小块。其它信息,例如矩形或小块在RT上是否和如何按比例缩放,也可被包括于该报头内。其它形式的选择性更新包括对位块传送、区域填充和图形填充的支持,其中针对要在RT上执行的操作,最小数据量与命令参数一起发送,而不是发送大的数据块。其它报头支持视频流、同步锁相、缩放视频流、伽玛表和帧缓冲器控制的形式的更新。其它增强的和复杂的命令也可以选择性更新的形式置入RT。所提出的DPVL规范详述针对选择性更新连同它们的报头一起的一种可能实现。
一个MU-GPU 412可由用于所有RT 300的系统通过将RAM 418组织进各自包含多个RT的显示数据的各个显示表面被有效地虚拟化。MU-GPU412的2D、3D和视频图形处理器(未示出)被优选地用来实现较高的图形和视频性能。图形处理单元可以包括2D图形、3D图形、视频编码、视频解码、缩放、视频处理及其它先进的像素处理。MU-GPU 412的显示控制器还可以执行诸如视频和图形数据的混合和键控的功能,以及整屏刷新操作。除了用于主次显示表面的RAM 418,还有充足的用以支持各种3D和视频操作的屏外存储器。作为管理选择性更新的DPVL方法的另一选择,RAM 418内可以有选择性更新的缓冲存储器(S缓冲器)404。在一个实施方式中,S缓冲器404存储状态位、签名或对应于每个虚拟显示的每个小块的状态位和签名。在另一实施方式中,S缓冲器404存储带或不带标题、状态位和签名信息的小块本身,其中该小块被安排为选择性更新而输出。
图形引擎和显示控制器通常将合成与每个RT显示器的主表面相对应的完整显示图像。RAM 418将有效地包含用于所有RT的显示帧的阵列。例如,为了该显示,存储器可被配置为16K×16K像素的虚拟显示。在这种示例应用中,1K×1K的256RT显示可被映射为16K×16K阵列。类似地,如果每个RT都是具有256K×128K显示器的蜂窝式电话,则8192个虚拟显示可被映射到16K×16K显示区。附加的屏外和暂时存储器也可类似地被包含在内。因为本申请涉及多个独立的RT,所以MU-GPU 412可添加不同的安全性特征以使不同显示区域安全并防止一个用户获得对另一用户的帧缓冲器的访问权。出于安全性和可靠性考虑,系统将优选地包括硬件锁,该硬件锁防止对显示存储器的受保护部分的未获授权访问。
图5示出图4存储器418的一示例配置,其中虚拟显示空间被设为水平方向为3200像素而垂直方向为4800像素。存储器418被分为八个标示为520、522、524、526、528、530、532和534的1600×1200显示区。典型的高质量显示模式被配置为每像素24比特的比特深度,尽管配置常常为了更容易对准和额外八个比特在显示器被图形和视频处理器访问时针对其它用途的潜在使用,可使用如在RAM 418中组织的每像素32比特。该分块存储器的例示作为来自MU-GPU 412的视图在本质上是概念性的。实际的RAM寻址还将涉及存储器页面尺寸和其它因素。
图5在显示区528进一步示出显示更新矩形550。1600×1200显示的虚线540对应于称作为分区(precinct)的256×256像素的更粗糙的块界。如从显示窗口550显而易见,显示窗口边界的对准并不必与分区边界对直。通常的情况是用户将任意地确定显示屏窗口的尺寸并将其定位。为了支持不要求更新整个帧的远程屏幕更新,受显示窗口550影响的每个分区需要被更新。此外,显示窗口550内的数据类型和周围的显示像素可以是完全不同的类型并且没有关联。同样地,基于分区的编码算法如果是有损的,则需要确保没有与分区的边缘或显示窗口550的边界相关联的视觉伪像。实际编码过程可在比分区小的块上,例如8×8或16×16上进行。因此,一较佳实施方式使用确定性编码算法,其中对一组像素生成相同的结果而不管其周围像素如何,并且没有伪像将因该窗口的任意对准而产生。
用于该编码方案的块界也是关于小块的考虑因素。例如,编码方案可以要求块界是8个像素的倍数。如果该源小块不是8像素的倍数,则它将需要用周围数据填补。在另一情况下,较佳地常常是使该块界定向到屏幕,而不是特殊的用户设置的矩形或小块。如果用户操纵80×80像素的窗口,则即使它在理论上可被放置成在水平方向和垂直方向上各自使用最少的10个8×8块(总共一百个块),更可能的也是在每个方向上跨十一个块(121块)。该矩形更新和该矩形的任何顺序编码将因此在部分周围像素需要被填补的地方编码88×88像素(121块)。
也可支持带有不同尺寸显示器的RT。在一个示例中,MU-GPU 412可以支持任意数目的任意尺寸显示器。在另一示例中,支持小显示器作为子窗口或支持大显示器作为跨越一个以上显示区的重叠窗口可能更容易些。如矩形536所勾勒的,1920×1080窗口需要使用532和534个区域。尽管这样会浪费区域,但可能比创建每个显示器的定制尺寸简单些。由于MU-GPU 412的选择性矩形更新机制,只有该屏幕的相关区域将被传输。当DVPL动态地控制CRTC控制寄存器以管理选择性更新时,可实现其它需要更少处理器干预和改进系统效率的更灵活的机制,例如S缓冲器。
更灵活的系统还可将矩形分成更多的常规尺寸实体,诸如小块。具有任意矩形尺寸的报头信息的效率与使用较不灵活小块尺寸但更多屏幕数据的可能更简单的报头之间有折衷。在一较佳实施方式中,小块可被动态地设置成块尺寸的任意倍,其中块尺寸是该数据编码算法的最小实体。这些块可被定向为源图像或屏幕的固定块位置。块的尺寸将被包括于报头信息内。
诸如530的存储区可被指定为用于管理选择性更新的S缓冲器404。在一实施方式中,S缓冲器包括与显示帧520、522、524和526的小块相对应的状态位,其中状态位指示小块是否需要选择性更新。该S缓冲器404还可存储每个小块的签名,该签名然后用来确定对选择性更新的需要。在另一实施方式中,来自帧520、522、524和526的需要选择性更新的小块被复制到存储区530,且排队以供选择性更新输出。这些排队小块可包括各个报头、状态和签名信息。
图6A示出具有称为1080P的高清晰度电视(HDTV)分辨率1920×1080的图5显示图536的更详细视图。在图6A中,固定尺寸矩形614用屏幕位置边界定向。每个矩形是160像素宽和120像素高。每行有12个矩形(12×160=1920)而每列有9个矩形(9×120=1080)。系统可将这些矩形用作为构成选择性更新的基础的小块。在图6B中,另一系统进一步将矩形614分成包含80×40像素的小块620,且系统可选择这些小的小块作为选择性更新的基础。更灵活的系统可以利用由六个小块620组成的较大矩形614和小块本身,并且使用报头信息来描绘在任何给定时间输出哪种类型。
在这两种情况下,构成编码算法的基础的块装入小块或矩形内。假设8×8块,则每个小块具有10×5块的配置而每个矩形具有20×15块的配置。既使用较大矩形又使用较小三角形的系统可使用不同机制来各自确定选择性更新要求。在一较佳实施方式中,较大矩形可具有指示它们是否已经改变的相关联状态位,并且较小小块可将签名用于做这种决定。状态位和签名可如下所述用S缓冲器进行管理。
MU-GPU 412可结合该处理来直接执行小块的选择性编码,或者每个小块可以使用选择性更新过程检验并输出到TSA 424,且将包括适当的报头。该报头将由TSA 424处理,并且基于报头内的字段,TSA 424将知道该小块预期哪个RT以及在该显示屏上的哪处。在适合时,TSA 424将把该小块编码为被压缩的格式,调节任何所需报头信息且提供小块和报头以供进一步网络处理。
MU-GPU 412和TSA 424可以不同地划分该选择性更新过程。在一些情况下,MU-GPU 412可执行完整的管理且将只发送需要更新到TSA 424的小块。在其它情况下,TSA 424需要执行数据片的进一步滤波以确定哪些数据片真正需要更新。在MU-GPU 412内,选择性更新机制可以是硬接线的或需要CPU干预,且硬件可跨绘图引擎和选择性更新刷新引擎实现。小块的编码也可在MU-GPU 412或在TSA 424中执行。MU-GPU 412还可以将RT的图形绘图命令经由数字化视频总线输出到TSA 424,或者软件驱动器可以直接将命令提供到TSA 424。
针对该选择性小块更新,在第一实施方式中,S缓冲器用于MU-GPU412具有绘图引擎和选择性更新刷新引擎的地方,绘图引擎管理每个小块的状态位,选择性更新刷新引擎在状态位管理针对每个小块的选择性显示更新时监视该状态位。类似于用在3D图形中的Z缓冲器,S缓冲器可被实现为数据的分离存储器板。与Z缓冲器一样,经增强的MU-GPU 412的硬件绘图操作可以在没有附加命令的情况下将S缓冲器状态位更新。状态位然后由选择性更新硬件用来确定需要在RT上更新哪个小块。类似于显示控制器的刷新周期,该选择性更新硬件可周期性地遍历S缓冲器并读取状态位。基于状态位的状态,选择性更新硬件将忽略不需要被更新的小块,或者它将读取用于选择性更新的小块,将该小块与报头信息一起输出且相应地更新状态位。在效率较低的实现中,MU-GPU 412可使用更多的传统图形绘图操作来生成S缓冲器。
在另一不需要特定S缓冲器硬件的较佳实施方式中,MU-GPU 412可管理需要更新的级联小块的选择性更新缓冲器。该选择性更新缓冲器可以在独立的存储区中构成。每次MU-GPU 412执行改变小块的操作时,它将随后把该小块复制到选择性更新缓冲器中。报头信息可被存储在每个小块的起始处且小块可被打包在一起。显示控制器被设立成使用选择性更新缓冲器,并且使用标准显示控制器输出操作经由刷新端口将其输出。MU-GPU412可管理作为级联小块的环形缓冲器或链接缓冲器列表的一个或更多个缓冲器,并且提供基于TSA 424视作小块列表的SDVO输出的连续输出。各种方案可用于MU-GPU 412以仲裁列表中的放置优先权。此方法对于使用MU-GPU 412而言可能是最有效的,该MU-GPU 412具有较少的支持多个RT的特定硬件,且具有很少的或没有特殊的选择性更新硬件。
在另一较佳实施方式中,TSA 424与MU-GPU 412一起操作以判定在RT 300上哪个小块可能需要更新。MU-GPU 412在每个小块基础上管理状态位的能力可能太困难,且可将小块聚合为大的小块或全虚拟的RT显示,并且只具有针对状态位的有限粒度。将大的小块减小为小的小块更新可基于每个小块的跟踪签名执行。该签名通常在第一次处理小块时生成且根据后续签名校验。签名可由TSA 424根据导入数据操作或与MU-GPU 412的选择性更新硬件一起操作来生成和处理。如果TSA 424对每个小块执行签名校验,则可节约到每个RT 300的网络带宽。如果MU-GPU 412执行签名校验,则节约经由视频路径到TSA 424的带宽。MU-GPU 412能生成和管理对应于小块的签名的存储板,其中状态位可以是签名板或隔离板的一部分。此外,状态位和签名位可在RAM高速缓存中得到管理且由MU-GPU 412用链表管理。
取决于由主机400上的图形操作生成的图形命令的类型和RT 300的性能,命令可被封装并发送用于在RT上执行,或者命令可由MU-GPU 412在本地执行。在许多情况下,尽管命令被发送用于在RT上执行,但该命令也由MU-GPU 412在本地执行以保持虚拟显示的本地拷贝。理想地,任何作为冗余本地图形命令的结果而改变的小块将用状态位滤出,以防止不必要的小块更新分组被发送到RT。通常需要较少的带宽来发送命令而不是经编码的小块,但这并不总是可能的。手动地管理选择性更新缓冲器的系统也会考虑正在被发送到RT的命令。将由在RT上执行的命令更新的小块理想地将不被MU-GPU 412放入选择性更新缓冲器。
代理服务器或终端服务加速器的虚拟显示存储器可在变化反映到RT显示上之前更新。虽然它们与同一显示器相关,但由MU-GPU 412和TSA424管理的小块与子帧的位置独立于用户界面操作进行定位。用户界面操作可导致小块内的或跨多个小块的显示变化。用户界面变化可由用户操作、AJAX代理、浏览器或代理服务器发起并且导致对虚拟显示存储器的更新。小块中的更新或虚拟显示存储器的经更新子帧将在RT上反映且由MU-GPU 412和TSA 424管理。
在另一示例中,RT预期的图形命令由TSA 424处理且被分成经编码的数据传输和经修改的图形命令。例如,主系统可能想要执行来自屏外存储器或来自图形到屏上存储器(pattern to on-screen memory)的BitBlt操作。这可在MU-GPU 412子系统上容易地执行。然而,在RT上为该BitBlt请求的源数据不被高速缓存。因此为了能够发送该图命令,可能首先必需对源数据或图形进行编码、封装并发送到RT,然后将经修改的图形命令封装并发送到RT。此过程可由TSA 424卸载。尽管DirectX驱动器可通过MU-GPU 412灌进命令,该MU-GPU 412然后将命令输出到TSA 424,但是对于DirectX驱动器而言,将命令直接传输到TSA 424常常是更有效的。
图7示出一较佳实施方式,其中将多用户GPU(MU-GPU)412与终端服务加速器(TSA)424组合成为集成电路(TSA-GPU-IC)片上系统(SOC)710。该经组合的TSA-GPU-IC 710可包括在芯片上的或在芯片外作为子系统700的一部分的RAM 736。TSA-GPU 700可包括一个或更多个可能相似或不同的系统总线接口406和407。该TSA-GPU 700包括2D引擎720、3D图形处理单元(GPU)722、用于像快速PCI的各种系统总线的系统总线接口732和可包括针对视频的接口的本地I/O 410和其它本地I/O的控件。此外,SOC 710可以包括视频压缩机724和视频解压机726硬件的某组合,或者某种形式的将那些及其它视频相关功能相组合的可编程视频处理器764。附加处理器756也可被包括在内。
还被包括在内的是执行选择性更新的带显示控制器的多用户选择性更新(SUC)750以及对所需的子帧或小块进行压缩的数据编码器752。SUC750可包括针对本地显示的输出222和758,虽然远程多用户通过系统接口732或可能的与网络控制器的直接连接426也得到支持。系统总线760例示了在各个处理单元以及系统接口732和存储器接口734之间的连接。该系统总线760可包括各种形式的纵横交换、经仲裁传输,并且为了增强性能还可具有从一个单元到另一个的直接路径。
在图4的多芯片TSA-GPU 400中,MU-GPU 412经由SDVO路径414和416连接到TSA 424,且MU-GPU和TSA各自具有它们自己的RAM。相反在图7中,TSA-GPU-IC 710使用共享的RAM 736而不是SDVO路径。使用RAM 736消除了使用SDVO路径来传输的需要且因而消除了SDVO带宽问题。此外,通过分享存储器,SUC 750能够直接从存储器读取帧信息,从而消除通过MU-GPU 412对存储器的读取。
若干附加的最优化可被包括在TSA-GPU 700的SOC 710内,诸如直接包括各个功能单元中的S缓冲器支持。此外,TSA-GPU 700可被设计成映射对多个显示的支持,而不是用如图5示出的固定尺寸显示器来实现多用户帧支持,该多个显示被匹配到它们对应远程终端中的分辨率和色深度。将存储器内的显示更直接地与对应的远程显示系统匹配可为存储器使用实现更高的效率。
S缓冲器支持可用于硬件或与跟踪软件层一起协助针对显示帧的编码选择,这些显示帧已经改变并需要生成选择性更新流。S缓冲器支持可使用报头、状态位、签名或这三者的组合,并且可基于固定尺寸小块或可变尺寸小块。该SUC 750可利用S缓冲器支持来确定该显示的哪个子帧需要选择性更新。该报头信息对选择性更新的下游处理可能是有用的。
不同系统可针对减小尺寸的报头或减少数目的选择性更新传输进行优化。例如,一较佳实施方式可利用包括一64位报头的基于小块的选择性更新系统。该报头的16位位可用于指示64K可能RT的哪一个是该选择性更新的预期接收者。另两位可用于指示有限数目的固定尺寸小块的哪一个被包括在该选择性更新中。这些位的另一段然后指定哪个小块编号将指示显示器上与该选择性更新对应的位置。然后报头之后是该选择性更新编码数据。用于指定优先权、误差校验和其它跟踪信息的附加位也可被包括在内。
在另一较佳实施方式中,SUC 750可不使用小块并且要求更大种类来用于该选择性更新分组。例如,系统可以要求X和Y偏移量来指定选择性更新矩形的起始位置,而不是提供数字来指定小块位置。然后选择性更新矩形用水平方向和垂直方向的像素或块的数目进行描述。虽然针对这种系统的报头信息可以更大,但执行对远程终端的更新的独特传输的数目可较少。
取决于RT的性能和主机100与RT之间的网络特性,TSB 400可选择将某些图形命令直接发送到RT而不是发送选择性更新。这些图形命令可由TSB CPU子系统402或由处理器756管理。这些处理器还可管理代理服务器或其它终端服务功能,包括对DirectX和RDP命令执行命令解释。作为解释器,处理器756或CPU子系统402对在主机系统上运行的软件驱动器进行卸载,以管理2D图形命令、3D图形命令、视频流和其它窗口功能。解释器功能可与数据编码器752组合,以执行许多管理RT的计算密集方面,并且还可最优化从主机系统发送到各RT的命令、数据和视频流。代理服务器可在TSB 400和RT之间拆分。
例如,各种图形BitBlt、源到屏幕目的地的BitBlt及其它位图传输可得到增强。需要源数据、源图形或源位图的图形命令可通过数据编码器752将这些源编码成更有效的格式。经编码的源数据、源图形或源位图与经修改的图形命令一起被传输到RT 300。目标RT将接收经编码源,将其解码,然后在接收经修改图形命令之后执行预期的操作。经编码数据和经修改命令的传输可以用RDP传输或用TSA-GPU 700和RT 300所支持的类似RDP的传输。
针对TSB 400中的视频流,DirectX解释器可截取和卸载视频流处理并向目标RT提供最佳流。卸载中的第一步是确定处理器刀片200不对多CPU复合体执行视频解码。基于主机的解码具有几个不利方面,最重要的两个方面是,第一,它占用了相当数量的CPU周期来执行实际的解码。第二,主机上具有经解码的视频帧并非必然是获得在目标RT上显示的帧的最佳方法。代替地,DirectX解释器软件截取DirectX调用,在微软Windows
Figure S2006800446321D00291
的某些版本中DirectX调用可能需要使用DirectShow以获得对该视频流的访问权,尽管其仍然处于被压缩形式。为了使RDP继续正常操作,该DirectX解释器可能需要用模拟帧来欺骗RDP软件接口。
同时,TSB 400知道RT能够解码哪种视频流格式、从主机系统到RT名义上是哪种网络吞吐量,以及哪种分辨率和显示特征是该视频流想要的。有了此信息,TSB 400设立TSA-GPU来处理导入视频流,从而为了网络、RT和显示输出需要而产生理想流。这可能需要将一种编码格式代码转换为另一种,将一个比特率转换为另一个、改变帧速率、改变显示格式、改变分辨率或这些的某种组合。然后TSB 400封装经处理的位流且将它发送到合适的连接以供网络处理。
有几种将代理服务器或运行在系统100上的RDP服务器软件在处理器刀片200和TSB400之间划分的方法。两种实施方式在此被详细考虑,第一种是“终止和再生”而第二种是“卸载和增强”。可使用各个实施方式的各个方面的各个实施方式的变体也是可能的。
在“终止和再生”情况下,RDP客户机在TSB 400上运行。只要涉及在处理器刀片200上运行的RDP服务器,RDP操作就被TSB 400终止。在此情况下,TSB 400利用TSA-GPU 700来创建虚拟显示空间,从而通过创建单个大的显示图来支持多个虚拟RT,在该单个大的显示图内每个用户是偏置的或其中每个虚拟显示被视为具有其自己映射的独立显示。RDP客户机软件可能需要对要求安全客户机通信的RDP主机使用处理器刀片200与TSB 400之间的密钥交换和安全性处理。当RDP客户机接收来自RDP主机的命令时,该客户机利用TSA-GPU 700将显示帧呈现显示子系统。使用“终止和再生”,TSB 400随后能够将它想要的任何方法和任何协议用于TSB400和RT之间的通信。
在“终止和再生“操作的较佳实施方式中,TSB 400被配置为各自与RT对应的多个RDP客户机。处理器刀片200使用交换结构来与“虚拟”RDP客户机通信。然后TSB 400担当使用虚拟网络计算(VNC)的到RT的服务器。RT与主机100之间的所有通信由TSB 400管理。来自RT的VNC键盘和鼠标命令由TSB 400译码为到处理器刀片200的RDP命令。然后使用VNC的任一类客户机能够有效地与主机100通信,在该主机100中主处理器刀片200运行非VNC服务器。在“终止和再生”操作的第二较佳实施方式中,TSB 400担当因特网服务器并与RT运行浏览器通信。因为不同平台上的不同浏览器可具有不同性能,所以TSB 400可支持不同HTTP、XML、Java及其它用于与基于浏览器的客户机通信的元数据协议。
对于网络服务,“终止和再生”功能由在TSB 400上运行的代理服务器执行。处理器刀片200可运行web服务器或者可管理与位于其它地方的web服务器的连接。或者,TSB 400可以直接与web服务器通信。作为代理服务器,TSB 400将终止所有的网络操作。TSB 400可包括代理,诸如连续向上游web服务器作出请求的AJAX代理。然后TSB 400直接与RT客户机通信。TSB 400可使用RT所支持的任何协议并且可选择为RT通信安排完全独立的协议或可选择重新使用类似的基于web的协议。
对于基于服务器计算的第二实施方式,“卸载和增强”保持处理器刀片200在客户机通信中的更多参与。处理器刀片200上的跟踪软件层仍然将DirectX视频、图形和数据流重定向到TSB 400,该TSB 400完成DirectX调用的功能。卸载该功能使得多CPU复合体202对该多用户系统的其它用户可用。进一步处理可由TSB 400用对显示环境和允许最优化处理的网络带宽的理解完成。
当图形命令被本地执行并转发到RT以供执行时,TSB 400上的解释器软件还可以用于与TSA-GPU 700一起管理S缓冲器。TSA-GPU 700本地执行该图形命令的原因是使帧缓冲器的当前拷贝可被管理以供未来使用。因为图形命令正在RT上执行,所以作为本地图形命令结果在主机上变化的小块不需要使选择性更新硬件发送经编码的小块。为了防止这个,RDP跟踪软件需要计算哪些小块受图形命令影响。S缓冲器中与这些小块对应的位状态位可被管理以使基于小块的选择性更新不被执行。
跟踪和解释器软件还可用于辅助针对显示帧的编码选择,这些显示帧已经改变并且需要生成显示更新流。回想执行编码是为了减少远程显示系统300再生显示所需的数据。跟踪软件层可以帮助识别在帧内或小块内的数据类型以允许执行最优化类型的编码。某些RT可能不具有充足的图形处理能力来执行图形命令,并且可能被发送由TSA-GPU 700处理的经编码数据。
例如,如果跟踪软件层识别到小块的表面是实时视频,则可对那些小块使用对视频更有效的编码方案,该编码方案具有平滑的空间转变和时间局部性。如果跟踪软件层识别到小块的表面主要是文本,则可使用对文本的清晰边缘和充足空白更有效的编码方案。识别哪类数据在哪个区域是一个复杂的问题。然而,跟踪软件层的实施方式允许接口进入主显示系统的图形驱动器和协助此识别的主操作系统体系结构。例如,在微软Windows
Figure S2006800446321D00321
中,使用特定DirectShow命令的表面可能是视频数据,而使用通常与文本相关联的色彩扩展位块传输(Bit Blits)的表面可能是文本。每个操作系统和图形驱动器体系结构将具有其自己的特征指示器。其它实现可并行地执行多种类型的数据编码,然后选择使用基于编码器反馈产生最佳结果的编码方案。
此“卸载和增强”的第二实施方式还可与代理服务器体系结构一起用于基于web的服务。在这种实施方式中,TSB 400可以直接与web服务器通信,或者可用作协调RT与web服务器之间的通信的分离服务器。在TSB400上运行的代理和RT可对各个web服务器作出持续请求。TSB 400可高速缓存web服务器信息直到它真正被RT需要用于显示。如上所述,TSB 400可对各种图形和视频命令以及数据重新编码或重新格式化以更好地适合到RT的信道,以及更好地匹配RT内可用的功能和性能。各种内容管理和内容格式操作可由作为代理或分离代理服务器操作的TSB 400来执行。
对于各种数据类型,一些类型的编码方案对具体类型的数据尤其有用,且一些编码方案与数据不太相关。例如,RLE对文本特别好而对视频特别差,基于DCT的方案对视频非常好而对文本非常差,且基于子波变换的方案可以既对视频又对文本好。尽管任何类型的无损或有损编码可用于此系统中,也可以是无损或有损类型的子波变换编码,特别是使用决定性算术编码器的渐进子波变换尤其非常适于此应用,该决定性算术编码器可对每个小块进行编码而不用顾及周围小块。为更好的实时执行而调节处理的JPEG 2000子波编码器的派生物是一种可能的实现。
图8是来自图2的BMC 800的更详细视图。该BMC 800包括CPU 808,它可能是简单的微控制器或者可能是带高速缓存器的更强大的CPU。该BMC 800还包括安全性处理器804、网络处理器和MAC控制器或“网络接口控制”(NIC)806、RAM 218、接口控件810和某种形式的TSA-GPU 700。
该CPU 808是可“带外”(OOB)操作的板上处理器,该“带外”意味着主CPU不需要动态的软件或干预。理想的BMC 800不需要任何附加的电缆连接且允许处理器刀片200的完全远程管理。在某些情况下,BMC800可被形成为中心以执行对多个刀片的管理。此处示出的BMC 800包括对键盘、视频和鼠标(KVM)功能的支持。在某些系统中,CPU 808可以由在主系统CPU上运行的虚拟机进一步增强。虽然不是完全地OOB,虚拟机可被设计以不干预其它系统功能。
与BMC 800的通信可以为了安全性而使用安全性处理器804加密,且可利用本地网络接口214或可通过总线206和经由适当的图2结构连接140或142传输分组。该网络接口可如图所示部分地包括NIC 806,该NIC 806包括MAC部分和位于任何地方的剩余物理接口(PHY)。当与外部PHY(未示出)通过接口相连时,接口814可以遵循诸如介质独立接口(MII)或减少的MII(RMII)的标准。该外部PHY可以是专用设备或另一网络子系统的一部分。
BMC 800的显示方面可从简单到复杂地变化,且可以支持一个或更多本地或远程用户。当简单系统能利用基本图形控制器和软件来对显示进行编码时,该较佳实施方式利用图形加速器、选择性更新和对更新的编码的复杂组合以使远程用户具有全性能虚拟存在。这样,BMC 800示出TSA-GPU 700的针对显示支持的用途。取决于同时用户的数量,针对此类BMC 800应用的TSA-GPU 700的性能可能不需要与TSB 400中一样高,尽管这些性能可以是相似的。
除了支持远程访问的高级虚拟存在特征之外,该板上处理器可为了各种平台自调系统程序控制通过接口与不同传感器连接,这些平台自调系统程序控制诸如管理温度、电压、声音、传感器和发光二极管(LED)。警报的中层远程监视也被监视和管理。为了与外部管理系统通信,BMC 800可包括web服务器且可遵照各种行业成果以使诸如智能平台管理接口(IPMI)和活动服务器管理接口(ASMI)的远程管理标准化。对同时的多个用户和诸如DVD驱动器的虚拟I/O设备的支持也可被包括在内。也在BMC 800中示出的是接口控件810,其可直接与板上传感器、外部接口芯片850通过接口相连,外部接口芯片850经由路径802与板上传感器通信、或经由路径214与另一本地I/O控制器通信。接口控件810可将BMC 800通过接口连接到诸如系统管理总线的另一总线,而不使用如在图8中示出的系统总线206。
图9是根据本发明的一个实施方式的用于执行终端服务加速和代理服务器过程的方法步骤的流程图。为了清楚起见,参考包括视频的显示数据对过程进行讨论。然而,与音频、键盘、鼠标和其它数据有关的过程是为了结合本发明使用而被等同构想的。最初,在步骤910,多用户计算机100和远程终端系统300遵循各个过程来初始化和设立主机一侧和终端一侧以便于各种子系统启用每个RT。在步骤912,该应用程序以显示命令、显示数据更新或视频数据流的形式提供经更新的显示数据。应用程序更新可从应用程序本身、客户机上的用户动作、或应用程序、代理服务器或客户机的一些其它代理发起。应用请求可通过在主CPU上运行的跟踪软件层截取,或者命令可由在TSB 400上运行的代理服务器或终端服务加速器截取。对于步骤912中的BMC 800,没有跟踪软件层被包括在内且BMC 800独立于主CPU操作。
如果图形操作包括2D绘图,则在步骤924中,2D绘图引擎MU-GPU412优选地将操作处理成RAM 430中的适当虚拟显示。类似地,在步骤926,3D绘图由MU-GPU 412执行为RAM中的适当虚拟显示。在步骤928,TSB400可确定视频或图形命令将被转发到适当的RT。直到步骤940的流程可以不受支路步骤928影响。在步骤940,MU-GPU 412将每个虚拟显示合成到适于显示的帧中。此合成可用通过该CPU子系统202、2D引擎、3D引擎和GPU 412内的任一视频处理元件的操作的任何组合执行。作为该合成步骤的一部分,对于图形操作硬件中包括S缓冲器管理的MU-GPU 412,该绘图引擎为相应小块更新S缓冲器。
如用返回路径944所示,TSB 400可按需为同一RT或不同RT处理下一帧。在一较佳实施方式中,TSB 400可运行整个客户机堆栈,从而只要涉及应用程序服务器,该客户机就完全完成绘图操作。类似地,TSB 400可以担当代理服务器或分离代理服务器以完成与webweb服务器相关的web客户机操作。TSB 400可运行客户机协议以仿真多个用户。一旦TSB 400已与服务器通信,则客户机侧操作就完成了,TSB 400现在可使用任何机制来将预期的命令或显示数据中继到目标RT。如之前所述地,TSB 400可重新发送现有命令,重新制定经修改的命令或者使用一不同机制将该显示更新反映到RT。
作为截取命令的一部分,TSB 400可在本地虚拟显示存储器中完全合成预期的RT显示屏。一旦合成操作被执行,步骤946就在适当时管理小块和相关联的S缓冲器状态位和签名位。步骤946考虑任何通过可影响该S缓冲器状态位的视频和图形支路步骤928处理的图形和视频操作。例如,如果绘图操作既在步骤924中执行又通过步骤928绕到远程终端,则不需要对受该绘图操作影响的小块执行选择性更新,因为操作将发生在RT上。
有了在可发生在MU-GPU 412或与TSA 424的组合内的步骤946中处理的小块的状态位和签名,步骤950可执行小块的选择性更新。小块可具有固定的或变化的尺寸。与小块一块被包括在内的报头信息将指示格式以及预期RT目标。在步骤954,TSA 424对从步骤950接收的小块进行必要的编码。此编码优选地是一确定性方案,其中在该编码步骤中不需要考虑小块内数据的定向以及周围小块。同样在步骤954中,处理步骤928之后的视频数据和图形命令。视频数据可在比特率或帧速率被改变、在频域或空间域内按比例缩放、以及在需要时转码成不同的编码标准时被转换。经由返回路径968的网络反馈与RT信息一起都可以帮助确定编码步骤954。
步骤954还执行任何需要附加处理的图形操作,该图形处理可能需要图形数据编码。在步骤958,TSA 424或者CPU 402对在先前步骤中处理的图形命令、数据传输或视频传输执行进一步的封装。网络反馈也在此步骤中相关于诸如带宽和等待时间以及具体分组尺寸和传输问题的网络特征进行考虑。在步骤962,经封装的分组通过适当的网络控制器进行处理且分组沿该网络被发送到适当的RT 300。
网络处理步骤962使用来自系统控件的信息。此信息可包括关于哪个远程显示器需要哪些帧更新流、哪种类型的网络传输协议被用于各个帧更新流,以及用于各个帧更新流的各个部分的是什么优先权和重试特征的信息。网络处理步骤962可利用本地I/O 428和本地网络连接490被本地管理到TSA。或者,在基于刀片的系统中,该网络就绪分组可经由系统结构总线140或142中的一个传输,以供通过包括网络连接的处理器刀片200或位于另一处理器刀片上的网络处理器处理。各个网络可包括千兆比特以太网、10/100以太网、输电线以太网、基于同轴电缆的以太网、基于电话线的以太网、或诸如802.11a、b、g、n、s的无线以太网标准和进一步的派生物。其它非以太网连接也是可能的且可包括USB、1394a、1394b、1394c或诸如超宽带(UWB)或WiMAX的其它无线协议。
图10是根据本发明的一个实施方式用于执行网络接收和显示过程的方法步骤的流程图。为了清楚起见,该过程参考包括视频的显示数据进行讨论。然而,与音频和其它数据相关的过程是为了与本发明有关的用途而等同构想的。RT 300可被配置成运行简单的控制程序以执行功能操作,可以是运行驱动器或应用程序的基于操作系统的处理器系统,或者可以是在某类客户机上运行的浏览器,该某类客户机可以或可以不包括JAVA处理或更多包括先进AJAX处理的代理。此外,RT 300可基于导致显示更新的用户动作或代理操作发起请求。
在图10的实施方式中,最初,在步骤1012,远程终端300优选地经由路径390从主机200中接收网络传输。然后,在步骤1014,网络控制器336优选地执行网络处理过程来执行网络协议以在无论传输是有线的或是无线的情况下接收所传输数据。
在步骤1020,CPU 324解释导入传输以确定该传输预期给哪个功能单元。如果该导入传输是2D图形命令,则CPU 324将通过2D绘图引擎332初始化操作;如果是3D命令,则通过3D绘图引擎334;如果是视频数据流,则通过视频解码器328;以及如果是经编码的数据小块,则通过数据解码器326。一些绘图命令可以利用绘图引擎和数据解码器326。在某些情况下,导入的传输数据可被存储以供需要时使用。各种形式的AJAX和代理处理可对数据作出随机请求,该数据最终可以或可以不需要。
可变数量的命令和数据传输可以进行,且各个功能单元操作数据信息,且优选地将其处理为适当地可显示格式。在步骤1030,来自各个功能单元的经处理数据通过帧管理器330集合且可产生更新的显示帧以存入RAM 312。该经更新的显示帧可包括来自先前帧的显示帧数据、经处理和解码的新帧数据、以及隐藏在该新帧数据传输期间发生的显示数据错误所需的任何处理。
最后,在步骤1040,显示控制器330将最近完成的显示帧数据提供给远程终端显示屏310以供远程终端系统300的用户查看。显示刷新是在远程终端控制器314和显示310之间的通常是每秒60到72次操作以避免闪变的异步操作。步骤1030中产生新的显示帧通常发生得少得多,尽管必要时可以每秒30帧或更多地发生。在缺乏屏幕保护程序或功率下降模式的情况下,该显示处理器在显示刷新过程中将继续用最近完成的显示帧对远程显示屏310进行更新,如由反馈路径1050所指示的。
本发明因此实现基于多用户服务器的计算机系统,该系统支持远程终端从而用户可以有效地使用各种应用程序。例如,公司可以在一个位置使用多个机架的计算机系统,且向处于在远程位置的用户提供在他们桌面上的非常简单和低成本的终端系统300。不同的远程位置可以基于LAN、WAN或通过其它连接进行支持。该RT可以是桌面个人计算机或笔记本个人计算机,或者在另一系统中可以是诸如手机、个人数字助理的专业设备或是与诸如便携式视频播放器、游戏机或远程控制系统的其它消费产品的组合。用户可以灵活地利用多用户系统100的主机以实现与主系统能够提供给本地用户的同一级别的软件兼容性和相似级别的性能。因此,本发明有效地执行灵活的多用户系统,该系统使用各种不同组件来便于最佳系统的互操作性和功能性。
本发明参考一优选的实施方式在以上进行了说明。其它实施方式对本领域的技术人员在查看本公开后是显而易见的。例如,本发明可以使用除了在上述优选实施方式中描述的之外的配置来容易地实现。此外,本发明可有效地结合不同于在上述较佳实施方式中所描述的系统来有效地使用。因此,对较佳实施方式的这些及其它变体旨在由本发明涵盖,本发明只受所附权利要求限制。

Claims (20)

1.一种能够支持多个远程终端的显示代理服务器系统,包括:
图形和显示子系统,具有:
可存储多个终端的显示帧的显示存储器;
用于生成显示帧的一个或更多个绘图引擎,所述显示帧各自可与远程终端上的显示帧相对应,所述显示帧包括子帧,其中所述子帧可被动态设置成块尺寸的任意倍,其中所述块尺寸是数据编码算法的最小实体;以及
用于跟踪显示帧的经修改子帧、以及用于基于此跟踪执行来自所述显示存储器的选择性更新的装置,其中所述跟踪包括生成对应于所述经修改子帧的签名以及对所述经修改子帧执行签名校验;
用于将所述显示代理服务器系统连接到一个或更多个主CPU的装置;以及
用于管理来自所述显示存储器的选择性更新从而只有所述选择性更新通过网络子系统被传输到所述远程终端的相应之一的装置。
2.如权利要求1所述的系统,其特征在于,所述远程终端运行因特网浏览器,且通过所述显示代理服务器系统请求web更新,所述显示代理服务器系统执行一代理功能以请求和接收来自web服务器的web更新,将所述web更新转换为经编码的部分帧更新,且将所述经编码的部分帧更新提供给所述因特网浏览器。
3.如权利要求1所述的系统,其特征在于,所述远程终端运行因特网浏览器,并对所述显示代理服务器系统执行基于内容的帧请求,并且所述显示代理服务器系统使用已被高速缓存在所述显示代理服务器系统中的数据来合成、编码和供应基于帧的哪些部分已改变的部分帧更新。
4.如权利要求1所述的系统,其特征在于,所述显示代理服务器系统在刀片系统中实现,且所述用于与一个或更多个主CPU连接的装置被设置在所述刀片系统的底板上。
5.如权利要求1所述的系统,其特征在于,所述显示代理服务器系统被实现为一装置,并通过网络连接和显示输出路径附连到web服务器系统。
6.如权利要求1所述的系统,其特征在于,所述显示代理服务器系统与运行应用程序的CPU通信,对所述应用程序作出响应,并执行对所述远程终端的选择性更新。
7.如权利要求1所述的系统,其特征在于,所述显示代理服务器系统在当执行web访问时,向所述多个远程终端提供DNS查找功能。
8.如权利要求1所述的系统,其特征在于,所述显示代理服务器系统与运行一个或更多个虚拟机的一个或更多个主CPU通信,所述虚拟机各自请求图形操作,且其中所述显示代理服务器系统本地地管理多个虚拟机图形请求。
9.如权利要求8所述的系统,其特征在于,所述显示代理服务器系统利用本地管理的所述虚拟机图形请求来产生作出请求的所述虚拟机的虚拟显示,然后将所述虚拟显示的经编码更新经由网络传输到所述远程终端的相应之一。
10.一种能够支持一个或更多个远程终端的基板管理控制系统,包括:
图形控制和显示子系统,具有:
用于在主CPU的请求下在显示存储器中执行图形处理器操作以生成显示帧数据的装置;
用于跟踪显示帧的经修改子帧并基于此跟踪执行选择性更新的装置,其中所述跟踪包括生成对应于所述经修改子帧的签名以及对所述经修改子帧执行签名校验;
用于编码所述选择性更新以使得没有伪像将会因当前显示窗口的任意对准而产生的装置;以及
用于管理来自所述显示存储器的所述选择性更新从而只有所述选择性更新将通过网络子系统传输到所述远程终端的相应之一的装置。
11.如权利要求10所述的系统,其特征在于,所述选择性更新基于具有固定小块尺寸的子帧。
12.如权利要求10所述的系统,其特征在于,所述图形控制和显示子系统使用S缓冲器来管理选择性更新。
13.如权利要求10所述的系统,其特征在于,所述基板管理控制系统在操作系统虚拟机模式下与所述主CPU通信,以执行所述图形处理操作的操作系统功能。
14.如权利要求13所述的系统,其特征在于,所述系统与在受保护的管理虚拟机模式下运行的主CPU通信,所述受保护的管理虚拟机模式与所述操作系统虚拟机模式隔离,且其中所述管理虚拟机模式管理所述远程终端的部分更新功能。
15.一种能够支持多个远程终端的基于刀片的多用户系统,包括:
与底板连接的一个或更多个处理器刀片;
包括图形和显示子系统的一个或更多个终端服务加速器刀片,具有:
能存储多个终端的显示帧的显示存储器;
用于生成显示帧的一个或更多个绘图引擎,所述显示帧可各自与远程终端上的显示帧相对应,所述显示帧包括子帧,其中所述子帧可被动态设置成块尺寸的任意倍,其中所述块尺寸是数据编码算法的最小实体;以及
用于跟踪显示帧的经修改子帧以及基于此跟踪执行来自所述显示存储器的选择性更新的装置,其中所述跟踪包括生成对应于所述经修改子帧的签名以及对所述经修改子帧执行签名校验;
用于将所述处理器刀片连接到一个或更多个终端服务加速器刀片的装置;以及
用于管理来自所述显示存储器的选择性更新从而只有选择性更新通过网络子系统传输到所述远程终端的相应之一的装置。
16.如权利要求15所述的系统,其特征在于,所述一个或更多个终端服务加速器刀片与主CPU通信,所述主CPU运行应用程序软件且利用将所述图形和显示子系统虚拟化的多用户远程客户机协议;
执行作为远程用户客户机的虚拟图形功能;以及然后
将选择性更新从所述图形和显示子系统发送到所述远程终端。
17.如权利要求15所述的系统,其特征在于,所述终端服务加速器刀片与运行一个或更多个虚拟机的一个或更多个CPU通信,所述虚拟机各自请求图形操作。
18.如权利要求15所述的系统,其特征在于,所述终端服务加速器刀片利用所述图形和显示子系统来本地管理来自多个独立虚拟机模式CPU的虚拟机图形请求,以产生虚拟机的虚拟显示、然后将所述虚拟显示的经编码更新经由网络传输到远程终端,并且所述多个独立的虚拟机模式CPU互相没有察觉到对方。
19.如权利要求15所述的系统,其特征在于,所述处理器刀片作为web服务器操作。
20.如权利要求15所述的系统,其特征在于,所述基于刀片的多用户系统向访问多个web服务器的多个远程终端提供因特网服务管理功能web服务器。
CN2006800446321A 2005-11-30 2006-10-26 多用户显示代理服务器 Expired - Fee Related CN101553795B (zh)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
CN101553795A CN101553795A (zh) 2009-10-07
CN101553795B true CN101553795B (zh) 2013-10-02

Family

ID=38088826

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800446321A Expired - Fee Related CN101553795B (zh) 2005-11-30 2006-10-26 多用户显示代理服务器

Country Status (6)

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

Families Citing this family (199)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9003461B2 (en) 2002-12-10 2015-04-07 Ol2, Inc. Streaming interactive video integrated with recorded video segments
US8893207B2 (en) 2002-12-10 2014-11-18 Ol2, Inc. System and method for compressing streaming interactive video
US8495678B2 (en) 2002-12-10 2013-07-23 Ol2, Inc. System for reporting recorded video preceding system failures
US20100166056A1 (en) * 2002-12-10 2010-07-01 Steve Perlman System and method for encoding video using a selected tile and tile rotation pattern
US9108107B2 (en) 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
US8387099B2 (en) 2002-12-10 2013-02-26 Ol2, Inc. System for acceleration of web page delivery
US8549574B2 (en) 2002-12-10 2013-10-01 Ol2, Inc. Method of combining linear content and interactive content compressed together as streaming interactive video
US8661496B2 (en) 2002-12-10 2014-02-25 Ol2, Inc. System for combining a plurality of views of real-time streaming interactive video
US8949922B2 (en) * 2002-12-10 2015-02-03 Ol2, Inc. System for collaborative conferencing using streaming interactive video
US8468575B2 (en) 2002-12-10 2013-06-18 Ol2, Inc. System for recursive recombination of 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
US8840475B2 (en) 2002-12-10 2014-09-23 Ol2, Inc. Method for user session transitioning among streaming interactive video servers
US20090118019A1 (en) 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
US9032465B2 (en) 2002-12-10 2015-05-12 Ol2, Inc. Method for multicasting views of real-time 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
WO2006068003A1 (ja) * 2004-12-24 2006-06-29 Masahiro Izutsu 携帯情報通信装置、携帯情報通信装置用接続ユニット及び携帯情報通信装置用外部入出力ユニット
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 株式会社東芝 情報処理装置及び情報処理方法
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
US8819242B2 (en) * 2006-08-31 2014-08-26 Cisco Technology, Inc. Method and system to transfer data utilizing cut-through sockets
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
US8732699B1 (en) 2006-10-27 2014-05-20 Hewlett-Packard Development Company, L.P. Migrating virtual machines between physical machines in a define group
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
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US8443134B2 (en) 2006-12-06 2013-05-14 Fusion-Io, Inc. Apparatus, system, and method for graceful cache device degradation
US8489817B2 (en) 2007-12-06 2013-07-16 Fusion-Io, Inc. Apparatus, system, and method for caching data
WO2008070191A2 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a reconfigurable baseboard management controller
US8706968B2 (en) 2007-12-06 2014-04-22 Fusion-Io, Inc. Apparatus, system, and method for redundant write caching
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 联想(北京)有限公司 第三方实时监控远程控制过程的方法和系统
US8136042B2 (en) * 2007-05-11 2012-03-13 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
WO2011031796A2 (en) 2009-09-08 2011-03-17 Fusion-Io, Inc. 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 华为技术有限公司 显示驱动处理方法、装置和系统
WO2012106362A2 (en) 2011-01-31 2012-08-09 Fusion-Io, Inc. 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
WO2012158765A2 (en) * 2011-05-16 2012-11-22 Avocent System and method for accessing operating system and hypervisors via a service processor of a server
US9405499B2 (en) * 2011-06-07 2016-08-02 Clearcube Technology, Inc. Zero client device with integrated wireless 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 伺服器機櫃系統
WO2013019185A1 (en) 2011-07-29 2013-02-07 Hewlett-Packard Development Company, L.P. Migrating 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 주식회사 케이티 클라우드 컴퓨팅 기반 어플리케이션 제공 방법 및 시스템
CN104246816A (zh) * 2011-12-13 2014-12-24 英特尔公司 确定多媒体内容的恰当呈现
CN107368286B (zh) * 2011-12-19 2020-11-06 英特尔公司 用于多精度算术的simd整数乘法累加指令
US9443279B2 (en) * 2011-12-26 2016-09-13 Intel Corporation Direct link synchronization communication between co-processors
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
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实现方法
KR101931407B1 (ko) 2012-04-23 2018-12-20 어펌드 네트웍스, 인크. 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 キヤノン株式会社 画像処理装置、画像処理方法ならびにプログラム
US10346095B2 (en) 2012-08-31 2019-07-09 Sandisk Technologies, Llc Systems, methods, and interfaces for adaptive cache persistence
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 주식회사 윈스 고속 네트워크 대용량 트래픽 처리를 위한 분산처리 해싱방법 및 분산처리해싱시스템
BR112014016107A8 (pt) * 2012-12-11 2017-07-04 Intel Corp método para detecção de contexto, dispositivo de computação e mídia legível por máquina
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
WO2015153561A1 (en) * 2014-03-31 2015-10-08 Megachips Technology America Corporation Dp hdcp version converter
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
US10685139B2 (en) * 2016-05-06 2020-06-16 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设备通信方法与装置
TWI662810B (zh) * 2018-08-01 2019-06-11 技嘉科技股份有限公司 伺服器管理系統及伺服器管理方法
CN109408451B (zh) 2018-11-05 2022-06-14 英业达科技有限公司 一种图形处理器系统
TWI698833B (zh) * 2018-12-05 2020-07-11 英業達股份有限公司 圖形處理器系統
US11184376B2 (en) * 2019-01-30 2021-11-23 Palo Alto Networks (Israel Analytics) Ltd. Port scan detection using destination profiles
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
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

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6323854B1 (en) * 1998-10-31 2001-11-27 Duke University Multi-tile video display system with distributed CRTC
US6704024B2 (en) * 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
US6806885B1 (en) * 1999-03-01 2004-10-19 Micron Technology, Inc. Remote monitor controller

Family Cites Families (73)

* 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
US6031940A (en) 1996-11-27 2000-02-29 Teralogic, Inc. System and method for efficiently encoding video frame sequences
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
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
US6104334A (en) 1997-12-31 2000-08-15 Eremote, Inc. Portable internet-enabled controller and information browser for consumer devices
US6097441A (en) 1997-12-31 2000-08-01 Eremote, Inc. System for dual-display interaction with integrated television and internet content
US6456340B1 (en) 1998-08-12 2002-09-24 Pixonics, Llc Apparatus and method for performing image transforms in a digital display system
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
US6754266B2 (en) 1998-10-09 2004-06-22 Microsoft Corporation Method and apparatus for use in transmitting video information over a communication network
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
EP1145218B1 (en) 1998-11-09 2004-05-19 Broadcom Corporation Display system for blending graphics and video data
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
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
US7293165B1 (en) * 2003-04-03 2007-11-06 Advanced Micro Devices, Inc. BMC-hosted boot ROM interface
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
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
US20070183493A1 (en) * 2005-02-04 2007-08-09 Tom Kimpe Method and device for image and video transmission over low-bandwidth and high-latency transmission channels
EP1867173A2 (en) * 2005-03-10 2007-12-19 QUALCOMM Incorporated Content adaptive multimedia processing
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6323854B1 (en) * 1998-10-31 2001-11-27 Duke University Multi-tile video display system with distributed CRTC
US6806885B1 (en) * 1999-03-01 2004-10-19 Micron Technology, Inc. Remote monitor controller
US6704024B2 (en) * 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations

Also Published As

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

Similar Documents

Publication Publication Date Title
CN101553795B (zh) 多用户显示代理服务器
US7899864B2 (en) Multi-user terminal services accelerator
US8200796B1 (en) Graphics display system for multiple remote terminals
US7916956B1 (en) Methods and apparatus for encoding a shared drawing memory
US8638336B2 (en) Methods and systems for remoting three dimensional graphical data
CN1856819B (zh) 通过分布式应用程序的图形数据的网络传输的系统和方法
US9197697B2 (en) Cloud computing system and method
CN108388460B (zh) 基于图形集群的远程实时渲染平台构建方法
US20120050301A1 (en) Architecture For Rendering Graphics On Output Devices Over Diverse Connections
US20140285502A1 (en) Gpu and encoding apparatus for virtual machine environments
US20110283002A1 (en) Selectively Communicating Data Of A Peripheral Device To Plural Sending Computers
CN108762934B (zh) 远程图形传输系统、方法及云服务器
CN115373618B (zh) 一种多屏显示方法、装置、车机及存储介质
CN103618968B (zh) 一种面向云环境下的网络电视播放方法及系统
US7286140B2 (en) Hardware acceleration of display data clipping
US7002599B2 (en) Method and apparatus for hardware acceleration of clipping and graphical fill in display systems
CN114064182A (zh) 一种低成本桌面虚拟化系统及运行方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT CORPORATION

Free format text: FORMER OWNER: DIGITAL DISPLAY INNOVATIONS LL

Effective date: 20120904

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20120904

Address after: Washington State

Applicant after: Microsoft Corp.

Address before: American California

Applicant before: Digital Display Innovations Ll

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150508

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150508

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20131002

Termination date: 20191026

CF01 Termination of patent right due to non-payment of annual fee