CN101351785B - 多用户终端服务加速器 - Google Patents

多用户终端服务加速器 Download PDF

Info

Publication number
CN101351785B
CN101351785B CN2006800502317A CN200680050231A CN101351785B CN 101351785 B CN101351785 B CN 101351785B CN 2006800502317 A CN2006800502317 A CN 2006800502317A CN 200680050231 A CN200680050231 A CN 200680050231A CN 101351785 B CN101351785 B CN 101351785B
Authority
CN
China
Prior art keywords
display
subsystem
network
video
data
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
CN2006800502317A
Other languages
English (en)
Other versions
CN101351785A (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 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 CN101351785A publication Critical patent/CN101351785A/zh
Application granted granted Critical
Publication of CN101351785B publication Critical patent/CN101351785B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • 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
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1431Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using a single graphics controller
    • 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
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • G06F3/1462Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay with means for detecting differences between the image stored in the host and the images displayed on the remote displays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/16Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2320/00Control of display operating conditions
    • G09G2320/02Improving the quality of display appearance
    • G09G2320/0252Improving the response speed
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects
    • G09G2370/025LAN communication management
    • 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/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)

Abstract

一种多用户主计算机系统包括处理应用程序的主计算机和用于多个远程终端的桌面环境。该主计算机包括终端服务卸载处理器以补充主机CPU的处理。对每个远程终端,该终端服务卸载处理器可以改进视频和图形性能,并且允许多用户主计算机系统更有效率地支持多个用户。该主计算机可以包括图形处理器,该图形处理器管理每一远程终端的虚拟显示并且提供子帧数据的选择性更新。适当时,子帧数据被编码并且通过网络发送到远程终端。视频数据流也由终端服务卸载处理器进行优化,并且为目标远程终端及其相应网络连接而进行优化。该终端服务卸载处理器可以在可编程硬件中实现,并且可以是单独的子系统,或者还可以用于执行其它卸载任务。

Description

多用户终端服务加速器
发明背景
技术领域
本发明一般涉及一种多用户主计算机系统,更具体地,涉及用于远程客户机的有效的终端服务支持。
背景技术的讨论
开发高效的多用户主计算机系统是当代系统设计员和制造商的一个重要目标。
传统的计算机系统可利用本地显示设备来直接向用户显示输出。因将显示设备电耦合到计算机系统输出端的各种物理连接所施加的限制,该本地显示设备通常被安置在计算机系统附近。一些计算机系统可以支持具有相似的因物理连接引起的邻近性限制的第二显示设备。
远程用户需要对适当观看位置和与主机系统的网络连接进行选择的附加的灵活性。例如,在企业环境下,企业可能希望将所有的主计算机放入“计算机机房”中,该“计算机机房”是一个具有诸如空调与电源后备系统等物理安全与环境管理的安全的中央位置。然而,用户在位于“计算机机房”外的办公室和办公桌上利用主机系统是必要的。
现今典型的办公环境包括个人计算机和物理上位于用户位置处的越来越多的瘦客户机。这些个人计算机和瘦客户机在具有用于存储、文件服务、文件共享、网络管理以及各种管理性服务的集中式系统的网络上运行。最初,系统将所有与计算机系统相关联的盘存储集中,而用户能够在他们的本地台式机上运行应用程序。最近,认识到安全利益、运行成本的降低以及对集中控制的一般要求,个人计算机和瘦客户机可以作为基于服务器的计算(SBC)解决方案中的远程终端(RT)来运行,该解决方案在服务器上运行应用程序。
用于SBC环境的RT的传统方法是主机系统使用诸如微软的远程显示协议(RDP)等某种形式的服务器-客户机通信交换。RDP在服务器使用其自己的视频驱动程序,并使用RDP协议来将呈现信息构造成网络分组并通过网络将它们发送到客户机。客户机接收到呈现数据并将这些分组解释成相应的MicrosoftWin32图形设备接口(GDI)API调用。对将客户机键盘和鼠标命令重定向到服务器以及管理本地音频和本地客户机驱动器的支持也被包括在内。
为了增强主机系统和客户机之间的通信,其它系统已使用主机系统的主CPU来改进RT的性能。已经对瘦客户机和作为远程客户机的传统PC这样做了。这种方法对于一次仅支持一位用户的主机系统是有效的。然而,对于多用户系统,使用主机的主CPU来为任何一位用户改进性能的方法有着显著的局限性。用于对于一位用户的优化的诸如主存储器和CPU周期之类的计算资源可能降低支持对于其它用户的工作负荷的能力。
从单个主机有效地支持多个用户可以降低成本。在典型的办公室环境中,很少会每个人同时使用他们的计算机,并且类似地,很少会有任一用户使用他们计算机上的所有计算资源。因此,举例来说,拥有100个办公室的公司可能在任一时刻仅仅需要能支持60个用户的系统。即使如上所说,这种系统可以被设计成支持所有100个用户,只要给他们提供足够的计算吞吐量以使看起来像是他们每个人都有自己的主计算机。
随着主计算机通过包括多个CPU和拥有多个处理器核的CPU而不断增强它们的性能,一人一机的局限有着越来越少的经济意义。尽管某些RT可以通过局域网(LAN)本地连接到多用户主机系统,但其它RT将通过广域网(WAN)连接到主机系统,在该广域网中这些RT具有与主机系统的较低性能的网络连接。
在RT位于世界的不同部分的分布式办公环境中,集中式多用户系统可以根据各自的时区在不同的工作时间支持世界的不同部分。
其中用于用户的应用程序在仅有在用户终端上支持的RT服务的服务器上运行的基于服务器的计算是为多个用户更有效地分配计算资源的另一方法。SBC允许主机系统向具有最高优先级的用户动态分配诸如存储器和CPU周期等共享资源。SBC系统可以采用虚拟机(VM)、负载平衡和其它手段的技术,来基于多项准则对不同用户授予对不同层级的性能和资源的访问。可使用不同的优先级方案来分配SBC资源。SBC可用作达到更高的数据安全性、集中对一个组织的支持、增强的灾难恢复和业务连续性以及降低整个组织的数据存储要求的手段。
然而,为使多用户主机为组织所可能具有的各种RT设备有效地管理、控制和提供丰富的应用程序性能,可能需要增加复杂性。需要一种使多用户主机系统能够以突出的计算和显示性能来更有效地支持众多远程用户的解决方案。
发明概述
本发明提供了一种用于多用户计算机系统内的主机或服务器系统的高效体系结构,该多用户计算机系统包括有交互图形和视频能力的一个或多个远程终端。该主机系统一般管理应用程序并且执行基于服务器的计算。每个RT具有其自己的键盘、鼠标和显示器以及其它可能的外围设备。RT向个人用户提供对服务器上的应用程序的访问以及丰富的图形用户界面。
在第一优选实施方式中,该主机系统包括被称作终端服务加速器(TSA)的辅助处理器,该终端服务加速器为每个RT卸载管理远程图形协议的计算任务。TSA允许多用户主计算机经济地缩放以自适应地支持可通过各种不同带宽解决方案来联网的众多不同的RT。TSA可以包括可配置处理器、数字信号处理器(DSP)或硬件块形式的处理元件,以便从主机最好地执行卸载,并且进一步做支持多种终端的改进的工作。卸载可以包括将图形命令封装成网络分组,对不同的数据块进行编码以便可以更高效地使用通信信道,以及跟踪每个RT的高速缓存的数据。在主机系统中可能有用于支持本地终端的本地图形处理器,但它不是RT的支持系统的一部分。TSA可以处理本地图形以提供远程KVM管理能力。
在第二优选实施方式中,主计算机利用软件、图形处理器和数据编码的组合,以便通过为每个RT创建虚拟显示环境,使得仅仅需要向其传达最小量的命令或数据,来支持多个RT。用于与RT通信的最常见的方法包括发送已封装的图形命令或者发送已编码的子帧数据。管理RT的软件可以在主机CPU上或者如第一实施方式中那样在TSA上,或者在两者的组合上运行。对每个RT的选择性更新可以用软件或者借助图形处理器中的硬件来协调。图形处理器可以遵循所建议的VESA数字分组视频链路(DPVL)标准或者对子帧使用状态位或签名的改进方法。在其它增强中,使用PCI express或者另一总线来代替DVI用于输出数据,在图形处理器内或者用附连到图形处理器的编码器来执行额外的数据编码,以及软件使用单个虚拟图形处理器来用于多用户支持。
每一实施方式可以通过与TSA一起使用跟踪软件截取诸如视频回放等功能,来从主机CPU上进一步卸载。代替使主机CPU本地执行视频解码并提供位图以便传输到RT,TSA可以在CPU解码视频流前将其截取,并可以将本机视频流或诸如译码或转码(transrate)过的版本等修正版本传送到到目标RT。与RT的通信可以使用除标准RDP信道外的但仍在RDP协议内管理的其它专用信道来进行。
在每一实施方式的主机系统中,在数据被封装或编码之后,网络处理器或者结合较简单的网络控制器工作的CPU通过有线和/或无线网络向RT发送图形分组。每一RT系统解码准备供其显示的该图形分组、管理帧更新以及为显示屏执行必要的处理。诸如屏蔽网络传送中丢失的分组等其它特征由远程显示系统来管理。当没有新的帧更新时,远程显示控制器用来自先前帧的数据来刷新显示屏。
该系统可以从与主机系统CPU、TSA和数据编码系统的各种有线和无线网络连接反馈网络信息。主机系统使用该网络信息来影响产生RT更新的各种处理步骤,并且基于该网络反馈,可以为不同的RT改变帧率和数据编码。另外,对于包括有噪声的传输信道作为部分网络的系统,编码步骤可以与前向纠错保护相结合,以便准备适于传输信道特性的发送数据。这些步骤的组合为每一RT维持了具有低等待时间的最优帧速率。TSA可被实现为单独的子系统或者与诸如网络处理器、安全处理器、XML加速器、iSCSI处理器或以上这些的任何组合等其它卸载和加速处理相结合。
因此,至少鉴于以上原因,本发明有效地实现了利用各种不同类组件来促进系统互操作性和功能性的灵活的多用户RT系统。本发明因此高效地实现了增强的多用户RT系统。
附图简述
图1是包括一个或多个主计算机、网络和多个远程终端的多用户计算机系统的框图;
图2是根据本发明的一个实施方式的具有终端服务加速器的多用户RT系统主计算机的框图;
图3示出了与图2的主计算机协作的RT;
图4是根据本发明的第二实施方式的具有带图形处理器单元的终端服务加速器的多用户RT系统主计算机的框图;
图5示出了被组织成八个显示区域的存储器,其中一个显示区域包括显示窗口,而两个显示区域用于支持一个大的显示器;
图6A示出了图5的显示映象536的更详细视图;
图6B示出了细分为平铺块的图6A的矩形;
图7是示出了图2的一个示例性终端服务加速器224或图4424的细节的框图;
图8是用于加速终端服务、连网及其它任务的卸载子系统的框图;
图9是根据本发明的一个实施方式的用于执行终端服务加速的方法中的各步骤的流程图;以及
图10是根据本发明的一个实施方式的用于执行远程终端的网络接收和显示过程的方法中的各步骤的流程图。
优选实施方式的详细描述
本发明涉及多用户远程终端(RT)计算机系统的改进。尽管所述实施方式涉及多用户RT计算机系统,相同的原理和特征可以同样适用于其它类型的单用户系统和其它类型的瘦客户机。
参照图1,本发明提供了多用户计算机系统100的高效体系结构。被称作“主机120”的基于多用户服务器的计算机120为多个各自利用某种形式远程终端的多个用户处理应用程序。包括本地终端110主要用于单用户或管理任务,并且主机120产生显示更新网络流通过有线网络290发往RT 300、302以及304等等的每一个,或者通过无线网络290发往显示器306。RT的用户能够分时共享主计算机120,如同这是他们自己的本地计算机一样,并且以在本地计算机上可获得的相同类型的用户体验而获得对所有类型的图形、文本和视频内容的完全支持。附加连接292可以是连接到WAN、存储子系统、其它主机或各种其它数据中心连接,它可以采用千兆以太网、10G以太网、iSCSI、光纤信道(FC)、光纤信道IP(FCIP)或者另一电学或光学连接的形式。连接242可以将其它数据或视频源连接到主机系统120。
在整个文件中,“主机”可以是指可用多种方法配置成支持基于多用户服务器的计算的主机120、主机200或主机400。多主机120可以群集在一起以形成可动态共享的计算资源。在每一主机120中,多计算机主机200可以采用通过底板连接的机架中刀片的形式或者另一多处理器配置而组装在一起。虚拟化单用户操作系统(OS)的各种多用户操作系统或软件可以部署在一个或多个处理器刀片或主板上。诸如Citrix或Windows Server的操作系统被设计成多用户OS。尽管不是特别地为多用户而设计,Windows XP可以通过诸如VMWARE或Xen Source的较低层虚拟化软件或者如同多用户OS一样快地执行用户切换的其它手段的帮助而用于这样的配置中。不同的管理控制可以使得RT和程序静态或动态地在处理器间移动。负载平衡可由操作系统对每个处理器执行,或者该系统可以在多个处理器间执行负载平衡。
图2是服务器系统的一个刀片200的框图,在该服务器系统中每一刀片自身可以是主计算机120或者可将多个刀片装在机架上以创建能力更强的主计算机120。根据本发明的一个实施方式,单个刀片(主板)系统200或多个刀片200可用于多用户系统100。主机系统120具有的刀片和CPU越多,能够同时支持的用户越多。主计算机200的基本元件最好包括,但不限于CPU子系统202、总线桥控制器204、诸如PCI快速的主系统总线206、本地I/O 208、主RAM 210和图形和显示控制器212及其可能的自带存储器218。图形和显示控制器212可以有允许本地连接222连到本地终端110的接口220。程序源和多媒体位流可以通过网络接口209之一或经由带有I/O路径246的程序源240之一进入主计算机200。网络控制器228也处理显示更新流,并且通过一个或多个网络连接290向各个RT 300-306等等提供网络通信。这些网络连接可以是有线或无线的。
在其它配置中,一个以上的CPU子系统202可以共享诸如图形与视频显示控制器212和终端服务加速器224之类的设备中的一个或多个。其它系统可以分割,其中网络控制器228可由多主机系统200共享。系统总线206可以连接到底板总线以在系统中的多个刀片之间进行连接。路径226可以共享底板总线206,或者可以具有额外的系统间总线。系统中可以包括一个以上的网络控制器228,其中一个用于通往多个远程终端的连接290,另一个网络控制器(未示出)执行到其它刀片、其它服务器系统或诸如存储系统的其它数据中心设备的基础设施网络连接。每一个CPU子系统202可以包括多个处理器核心,其中每个核心可以同时执行一个以上的线程。
主计算机200最好包括连接到主系统总线206的终端服务加速器(TSA)224,并且可以具有到网络控制器228的输出路径226。TSA 224可以包括专用RAM 230,或者可以共享主系统RAM 210、图形和显示控制器RAM 218、或网络控制器RAM232。主RAM 210可以如RAM 234处所示地与CPU子系统202更紧密地相关联。另外,当主机系统200可以共享主RAM 210时,与图形和显示控制器212相关联的RAM 218可能就不必要了。
TSA 224的功能是卸载主CPU 202对每个RT的一些管理,并且加速一些已卸载的处理,使每个RT都具有经改进的显示支持。卸载与加速支持的类型包括将图形操作封装到远程图形命令中、协助确定将哪些能力和位图高速缓存在每一RT处以确定哪些图形命令最为合适、编码并封装需要传送到RT的位图以及最佳地管理多媒体位流。
还可以支持诸如检查和封装可扩展标记语言(XML)通信量、简单对象访问协议(SOAP)、HTTP通信量、Java虚拟机(JVM)以及与基于因特网的通信相关联的其它通信量的附加功能。主机系统连同TSA 224一起可以使RT在执行任何所需的反垃圾邮件、反病毒、内容过滤、访问限制执行或基于其它分组过滤的算法的同时,有效地执行对整个因特网的远程访问。在主机是因特网访问的代理的情况下,这种附加功能可能对于支持RT因特网浏览会特别有用。尽管系统中可能有一些冗余,但这种方法可以提供比在主机系统和WAN之间利用的因特网安全设备更具体的用户控制。
RT上的特殊浏览器可以使用基于因特网的通信量的其它增强手段,其中可能包括在RT显示设备及RT内的执行能力的基础上对基于因特网的内容进行重新格式化或重新编码。例如,如果RT设备是屏幕分辨率有限的蜂窝电话或者个人数字助理(PDA),TSA 224可以将高分辨率内容过滤成低分辨率图像用于更快更适当地显示。TSA 224可以运行其它更智能的web页面解释算法,以便执行诸如移除横幅广告及其它无关信息的功能,使核心信息可被发送到蜂窝电话。诸如那些利用Active-X控件、Macromedia Flash或者其它运行时间程序的其它类型的web内容可能与诸如电话或PDA的设备并不兼容。TSA 224可作为媒介并在Active-X控件之后将显示数据传送给等待着的PDA。也可以执行应用层正则表达式(RegEx)内容处理。也可以执行重新编码以提高客户机的安全性。尽管可XML和SOAP可能遭到劫持和其它形式的病毒通行,TSA 224可以将XML和SOAP重新编码成安全的显示格式,使RT客户机不会遭受这种风险。
多媒体位流可以包括已为压缩格式的视频流,该视频流存储在主机系统200本地或者经由系统网络接口290或程序源接口246之一来接收。在一些配置中,多媒体位流已经是与目标RT兼容的格式。在这种情况下,TSA 224将位流封装成适当的分组格式以向RT传输。封装可以包括添加报头信息,诸如视频显示窗口的原点,或者修改分组组织,诸如将传输流转换成具有不同分组大小的程序流。
在很多情况下,多媒体位流将不会采用容易被目标RT处理的格式,或者不采用适于网络连接的格式。在这种情况下,TSA 224执行对多媒体位流解码与重新编码、译码或变码流的更复杂的步骤。例如,传入多媒体位流可以是编码的HDTVMPEG-2流。如果RT处的窗口尺寸设置为320×240的小窗口,节省网络带宽并使TSA 224将视频译码和变码流成表示所需显示窗口大小的低比特率是有意义的。类似地,如果传入视频采用RT不能解码的格式,则TSA 224可以将视频译码成可兼容的格式。即使格式可兼容,也可能存在诸如数字版权管理(DRM)加密方案的其它不兼容。TSA 224也可以从一个DRM或加密方案转换到适于目标RT的方案。
微软的远程桌面协议(RDP)为压缩视频位流提供了明显低效的处理。利用RDP,主机系统内的驱动器检测位流并将其解码成独立于设备的位图(DIB)。随后将DIB转换成RDP传输命令,并且尝试通过网络将DIB格式数据传输到RT。在大多数情况下,只有几个DIB数据帧到达RT而用于显示。因此,主机CPU执行解码以及通过网络以低效率格式发送已解码数据的效率都不高。其它基于RDP的图形操作同样使用DIB。
传统的图形位图,诸如来自网站的那些,也需要从主机系统200传输到RT。TSA 224可以对诸如DIB的传统图形位图执行各种级别的编码。对图形位图的编码可以是无损耗或者有损耗的,其目标是提供原始图形质量的视觉上不可分辨的表示。TSA 224的简化软件接口可以仅仅包括通过RDP API与主CPU的进行接口,而更积极的实现可以使得TSA 224能够访问底层DriectX驱动程序框架。已编码的DIB传输和特定压缩视频域传输不是标准RDP实现的一部分。因此,这些传输可以被背负到现有RDP传输格式中,作为某些类型的专有RDP扩展来运行或者在RDP框架外运行。
某些版本的主机操作系统和RDP需要满足RDP协议的额外安全要求。可能需要RDP客户机与主机交换密钥以使用加密的分组。因为TSA 224截取RDP客户机分组,TSA 224可以包括对密钥交换与解密的适当加速与卸载以与主机处理器通信。另外,为了维护系统安全,TSA 224和网络控制器228将确保与RT的所有通信都被适当地加密。
图3是根据本发明一个实施方式的远程终端(RT)300的框图,该远程终端较佳地包括但不限于,显示屏310、本地RAM 312和远程终端系统控制器314。远程终端系统控制器314包括键盘、鼠标和I/O控制子系统316,该I/O控制子系统具有用于鼠标318、键盘320和诸如用于再现音频的扬声器的其它各种各样设备322的对应连接或具有可以支持各种设备的通用串行总线(USB)连接。也可以包括用于通过安全手段(包括生物统计或安全卡)支持用户验证的其它集成或外围连接。这些连接可被指定为诸如PS/2型键盘或鼠标连接的单一用途,或者诸如USB的通用用途。在其它实施方式中,I/O可以包括游戏控制器、本地无线连接、IR连接或根本没有连接。远程终端系统300也可以包括诸如DVD驱动器的其它外围设备。
本发明的一些实施方式在远程终端系统300处不需要任何输入。这种系统的一个例子是零售商店或电子广告牌,其中不同的显示器可用在不同的地点,并且可以显示各种资讯和娱乐信息。每个显示器可以独立运作并且可以基于各种因素更新。类似的安全系统还可以包括诸如信息亭或银行里的自动取款机(ATM)的某些接受触摸屏输入的显示器。诸如娱乐游戏机的其它安全系统也可以基于此类远程终端。
网络控制器336支持网络路径290上的安全协议,在该网络路径上,所支持的网络可以是有线或者无线的,并且通过网络传送的数据可以经由密钥交换而加密。用于每个远程显示系统300的所支持网络需要由图2的网络控制器228直接或通过某类网桥予以支持。普通网络的示例是以太网,诸如运行某类以太网的CAT 5线路,较佳的千兆以太网,其中I/O控制路径可以使用诸如标准传输控制协议和因特网协议(TCP/IP)的以太网支持协议或与UDP传输相结合的某种形式的轻量握手。诸如实时数据流协议(RTSP)和连同实时控制协议(RTCP)一起的实时传输协议(RTP)的产业成果可用于加强数据分组传输,并且可通过增加中继转发协议得到进一步加强。诸如层3差分服务代码点(DSCP)、作为数字生活网络联盟(DLNA)一部分的WMM协议、微软的Qwave(高质量音视频体验)、uPnP(通用即插即用)、QoS(服务质量)和802.1p协议的围绕使用服务质量(QoS)成果的其它新近成果也是使用现有网络标准的改进方法。
除了用于支持I/O设备的数据分组之外,网络还承载已封装、已编码的显示命令以及显示所需的数据。CPU 324与网络控制器336、2D绘图引擎332、3D绘图引擎334、数据解码器326、视频解码器328和显示控制器330相协作,以支持可能在主机计算机上呈现的所有类型的可视数据表示,并且将他们在显示屏310上本地显示。对RT包括显示处理块的任何特定组合没有要求。虽然更有可能具有至少一类解码器或绘图引擎,但是极瘦的RT可能仅仅包括带有进行显示处理的CPU的显示控制器330。
RT可以首先通过从带有由主计算机200通过网络提供的附加信息的本地闪存(未示出)引导而被初始化。在RT初始化的过程中,RT系统控制器314和显示屏310之间的连接可用于反向或双向模式,这可采用诸如显示数据信道(DDC)接口、扩展显示标识数据(EDID)及其它扩展的标准来标识显示监视器的能力。经由键盘、鼠标和I/O控制器316的USB连接也可以用于与显示屏310的连接。诸如可用的分辨率和控制的信息随后由CPU 324处理。系统300可以实现诸如uPnP的协议或能与主机200通信的另一发现机制。在初始化通信的过程中,CPU 324可以向主机200提供包括显示监视器信息的RT信息,以便每个RT可以在主机一侧例示。
初始显示屏可以来自闪存或者主计算机200。在显示数据的第一个完整帧之后,主计算机200只需要通过网络290发送部分帧信息以作为显示更新网络流的一部分。如果显示器的像素并不从前一帧发生变化,则显示控制器330可以用来自本地RAM存储器312的前一帧内容来刷新显示屏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也可能会将存储在RAM312中的两个或更多显示面相结合以便合成用于显示的输出图像。可以将不同的混合操作连同合成操作一起执行。
CPU 324与TSA 224相通信以便最好地设立和管理RT的总体显示操作。初始设立可以包括列举RT系统控制器314所支持的功能类型、显示屏310的规格、RAM312可用于缓冲和高速缓存数据的量、由2D绘图引擎332所支持的指令集、由3D绘图引擎334所支持的指令集、由数据解码器326所支持的格式、由视频解码器328所支持的格式以及显示控制器330的能力。在运行时期间的其它管理优化包括在RAM 312中管理和高速缓存显示位图,从而无需重发它们。
图4示出了对主机系统200进行数处改变的多用户主机系统400的第二优选实施方式。首先,用更强大的图形处理单元(GPU-P)412来代替图形与视频显示控制器212,该图形处理单元包括经由分组而对选择性显示更新的支持,并且可以遵循某些或者全部所提出的VESA(视频电子标准协会)的数字分组视频链接(DPVL)标准。其次,用TSA-G 424来代替TSA 224,TSA-G 424被改进成经由系统总线206更直接地支持来自GPU-P 412的分组显示更新,或者较佳地支持可以是串行数字视频输出SDVO1与SDVO2的输入路径414和416或具有不同总线带宽、信令协议和频率的一般端口。示例包括:数字视频输出(DVO)、数字可视接口(DVI)、高清多媒体接口(HDMI)、显示端口或其它的低电压差分信令(LVDS)、最小跳变差分信令(TMDS)以及PCI Express(快速)或另一方案。显示输出路径可以在足以在高刷新率下输出多帧视频的速度下运行,其中帧可以是与一个以上目标RT相对应的选择性更新矩形。类似于TSA 224,TSA-G 424可以经由主系统总线206通过专用链路426连接到网络控制器228,或者经由系统级芯片(SOC)实现而更紧密地集成。
除了执行传统图形处理之外,GPU-P 412生成指示哪一部分显示被改变的选择性更新。选择性更新可以采用通过视频输出路径414或416或者通过主系统总线206的输出的矩形或拼接片的形式。矩形更新包括分组报头以指示窗口的原点、尺寸和格式。原点可以用来指示哪一RT是目的地。也可以使用拼接片,并且可以将其标准化为一个或多个固定的大小,这样报头可能需要更少的信息来描述拼接片。诸如在RT处是否以及如何缩放矩形或拼接片的其它信息也可以包括在报头中。其它形式的选择性更新包括对BitBlt、Area Fill(区域填充)以及Pattern Fill(模式填充)的支持,其中并不发送大块数据,而是将最小量的数据连同用于在RT上执行的操作的命令参数一起发送。其它报头支持视频流、同步锁相、缩放视频流、伽马表(Gamma Table)和帧缓冲控制(Frame Buffer Control)形式的更新。建议DPVL规范详述了对连同其报头一起的选择性更新的一个可能实现。
通过将RAM 418组织成各自包含用于多个RT的显示数据的各种表面,可将一个GPU-P 412有效地虚拟化成由系统对所有RT 300使用。GPU-P 412的2D、3D以及视频图形处理器(未示出)较佳地用于实现高图形和视频性能。图形处理单元可以包括2D图形、3D图形、视频编码、视频解码、缩放、视频处理以及其它先进像素处理。GPU-P 412的显示控制器也可以执行诸如混合和键控视频和图形数据的功能,以及总体屏幕刷新操作。除了用于主和辅显示表面的RAM 418外,还有足够的屏外存储器来支持各种3D和视频操作。作为管理选择性更新的DPVL方法的替换,在RAM 418内可以有选择性更新缓冲存储器(S-缓冲器)404。在一个实施方式中S-缓冲器404存储与用于各个虚拟显示的每个拼接片相对应的状态位、签名或者状态位与签名两者。在另一实施方式中,S-缓冲器404存储带有或不带有报头的拼接片自身、状态位和签名信息,其中拼接片被安排成输出用于选择性更新。
图形引擎和显示控制器通常会合成与每个RT显示器主表面对应的完整显示图像。RAM 418将会有效地包含所有RT的显示帧阵列。DPVL允许高达64K×64K的虚拟显示,其中主要应用于多监视器支持。在这一应用中,RT显示可被映射到64K×64K阵列中。因为这一应用涉及多个独立RT,GPU-P 412可以添加不同的安全特征以保护不同的显示区域,并且防止用户能够访问另一用户的帧缓冲器。出于安全性和可靠性考虑,系统较佳地包括防止对显示存储器受保护部分的未授权访问的硬件加锁。
图5示出了图4存储器418的示例配置,其中虚拟显示空间被设置为水平3200像素和垂直4800像素。存储器418被划分成8个1600×1200的显示区域,分别标记为520、522、524、526、528、530、532和534。典型的高质量显示模式可配置成每像素24位的位深度,尽管该配置往往使用每像素32位,如同在RAM 418中所组织的那样,以便在由图形和视频处理器访问显示器时更容易将额外8位安排和用于其它目的。就GPU-P 412而言,对拼接存储器的说明在本质上是概念性的。实际的RAM寻址还会涉及到存储器页面大小以及其它因素。
图5在显示区域528进一步示出了显示更新矩形550。1600×1200显示的虚线540对应于被称为分区的256×256像素的更粗糙的块边界。从显示窗口550显而易见,显示窗口界线的安排并不一定与分区界线对齐。这是典型的情形,因为用户会在显示屏上对窗口随意调整大小和定位。为了支持不需要更新整个帧的远程屏幕更新,受显示窗口550所影响的每个分区需要被更新。而且,显示窗口550内的数据类型和周边显示像素可能是完全不同的类型并且不相关。这样,基于编码算法的分区如果有损耗,则需要确保不存在与分区的边缘或者与显示窗口550的边界相关联的视觉伪像。实际的编码过程可以在诸如8×8或16×16的比分区小的块上发生。因此,优选的实施方式使用确定性的编码算法,其中不管周边像素如何,对于一组像素仍可以得到相同的结果,并且对窗口的任意安排不会产生伪像。
编码方案的块边界对拼接片而言也是一种考虑因素。例如,编码方案可能需要8像素倍数的块边界。如果源拼接片不是8像素的倍数,那就需要用周边数据来填补。在另一种情况下,往往更优选地将块边界定向到屏幕而非特定的用户放置矩形或拼接片。如果用户操作80×80像素的窗口,即使理论上可以将它置为在水平和垂直方向都使用10个8×8块的最小值(总共100块),更有可能的是它在每个方向上的跨度为11个块(121块)。矩形更新以及矩形的任何进行编码将因此对88×88像素(121块)进行编码,其中需要填补某些周边像素。尽管DVPL规范并不将矩形编码当作选择性更新方案的一部分,在DVPL中可能有其它的粒度限制,这将导致使用DVPL CRTC输出机制的模8像素的合适大小的矩形边界。
也可以支持带有不同大小显示的RT。在一个示例中,GPU-P 412可以支持任意数量任意大小的显示。在另一示例中,可以比较简单地支持作为子窗口的较小显示或者作为跨越一个以上显示区域的覆盖窗口的较大显示。如矩形536所刻划,1920×1080的窗口将需要同时使用532和534两个区域。尽管这样浪费面积,但是比为每一显示创建定制大小更简单地实现。因为GPU-P 412的选择性矩形更新机制,仅仅屏幕的相关区域被地传送。当DVPL动态控制CRTC控制寄存器以管理选择性更新时,诸如S-缓冲器的其它更灵活的机制可被实现为需要更少的处理器干预。
更灵活的系统还可以将DVPL矩形的概念拆分为诸如拼接片的更多的规则大小的实体。在具有任意矩形大小的报头信息的效率和使用较不灵活拼接片大小但更多屏幕数据的潜在更简单的报头之间存在折衷。在一个优选的实施方式中,拼接片可被动态设置为块大小的任意倍数,其中块大小是用于数据编码算法的最小实体。块可以被定向到源图像或者被定向到屏幕的固定块位置。拼接片的大小会包括在报头信息中。
诸如530的存储器区域可被指定为S-缓冲器404以管理选择性更新。在一个实施方式中,S-缓冲器包括相应于显示帧520、522、524和526的拼接片的状态位,其中状态位指示拼接片是否需要选择性更新。S-缓冲器404还可以为每个拼接片存储签名,该签名随后用于确定对选择性更新的需要。在另一实施方式中,来自帧520、522、524和526的需要选择性更新的拼接片被复制到存储器区域530并排队用于选择性更新输出。已排队的拼接片可以包括各种报头、状态和签名信息。
图6A示出了图5显示映射536的更详细的视图,该显示映射具有1920×1080的称作1080P的高清电视(HDTV)分辨率。在图6A中固定大小的矩形614根据屏幕位置边界而定向。每个矩形都横向160像素纵向120像素。每行有12个矩形(12×160=1920),每列有9个矩形(9×120=1080)。系统可以将这些矩形用作构成选择性更新基础的拼接片。在图6B中另一系统进一步将矩形614分为含有80×40像素的拼接片620,并且系统可以选择这些更小的拼接片作为选择性更新的基础。更灵活的系统可以利用由6个拼接片620组成的较大矩形614和这些拼接片自身,并且使用报头信息来描绘在任一给定时刻输出哪一类型。
在这两种情况下,构成编码算法基础的块容纳在拼接片或矩形内。假定8×8块,每个拼接片具有10×5配置的块,每个矩形具有20×15配置的块。利用较大矩形和较小三角形两者的系统在确定选择性更新要求时可以对于这两者使用不同的机制。在一个优选的实施方式中,较大矩形可以具有指示它们是否已变化的关联状态位,并且较小的拼接片可以利用签名来做出这一判定。这些状态位和签名可以如下面所描述地用S-缓冲器来管理。
GPU-P 412可以集成该处理以直接执行对拼接片的选择性编码,或者每个拼接片可以使用选择性更新过程来检查并输出到TSA-G 424而且将会包括适当的报头。该报头将由TSA-G 424处理,并且基于报头内的字段,TSA-G 424将会知晓这些拼接片所针对的RT以及显示屏上的位置。在适当的情况下,TSA-G 424将会把拼接片编码成压缩格式、调整任何所需的报头信息以及提供拼接片和报头以供进一步网络处理。
GPU-P 412和TSA-G 424可以不同地划分选择性更新过程。在某些情况下,GPU-P 412可以执行完全的管理,并且会仅向TSA-G 424发送需要更新的拼接片。在其它的情况下,需要TSA-G 424执行对片的进一步过滤以便确定哪些片真正需要更新。在GPU-P 412内,选择性更新机制可以被硬件化或者需要CPU干预,可以跨越绘图引擎和选择性更新刷新引擎来实现该硬件。还可以在GPU-P 412或者TSA-G 424中执行对拼接片的编码。GPU-P 412还可以通过数字视频总线向TSA-G424输出RT的图形绘制命令,或者软件驱动器可以直接向TSA-G 424提供这些命令。
对于选择性拼接片更新,在第一实施方式中,使用S-缓冲器,其中GPU-P 412具有管理每个拼接片状态位的绘图引擎和当管理每个拼接片的选择性显示更新时监控这些状态位的选择性更新刷新引擎。如同3D图形中使用的Z-缓冲器一样,S-缓冲器可被实现成单独的数据存储面。如同Z-缓冲器一样,增强的GPU-P 412的硬件绘图操作可以更新S-缓冲器状态位而无需额外命令。选择性更新硬件随后使用这些状态位以确定在RT处哪些拼接片需要更新。与显示控制器的刷新周期类似,选择性更新硬件可以周期性地遍历S-缓冲器并且读取这些状态位。基于状态位的状态,选择性更新硬件或是忽略无需更新的拼接片,或是读取用于选择性更新的拼接片、将该拼接片连同报头信息一起输出并且相应地更新状态位。在一个效率较低的实现中,GPU-P可以使用更传统的图形绘制操作来生成S-缓冲器。
在无需特定S-缓冲器硬件的另一优选实施方式中,GPU-P 412可以管理需要更新的串连拼接片的选择性更新缓冲器。选择性更新缓冲器可以构造在单独的存储区域中。每次GPU-P执行改变拼接片的操作,它会随后将该拼接片复制到选择性更新缓冲器。报头信息可以存储在每个拼接片的起始处,并且这些拼接片可以打包在一起。设置显示控制器以使用选择性更新缓冲器,并且使用标准显示控制器输出操作通过刷新端口将其输出。GPU-P 412可以管理诸如环形缓冲器之类的一个或多个缓冲器或串连拼接片的链接缓冲器列表,并且通过被TSA-G 424视为拼接片列表的SDVO输出来提供连续输出。对于GPU-P,可以使用各种方案来判断列表中布置的优先级。对于利用具有较少的用于支持多个RT的特定硬件和具有很少或没有特定选择性更新硬件的GPU-P,这种方法可能是最有效率的。
在另一优选的实施方式中,TSA-G 424与GPU-P 412一起操作以决定在RT 300处的哪些拼接片需要更新。GPU-P 412在逐拼接片的基础上管理状态位的能力可能非常困难,可以将这些拼接片组合成大的拼接片或者完整虚拟RT显示并且对于状态位仅仅具有有限的颗度。将大拼接片减小为小拼接片更新可以基于跟踪每个拼接片的签名来执行。签名通常在第一次处理拼接片时生成并且对照后续签名来检查。签名可以由根据传入数据或与GPU-P 412的选择性更新硬件相结合来操作的TSA-G 424生成并处理。如果TSA-G 424为每个拼接片执行签名检查,则到每个RT 300的网络带宽可以得到保持。如果GPU-P 412执行签名检查,那么通过视频路径到TSA-G 424的带宽也将得到保持。GPU-P 412可以生成并管理与拼接片对应的签名存储面,其中状态位可以是签名面或单独面的一部分。或者,状态位和签名位可以由GPU-P 412在RAM高速缓存中管理,并且用链接列表来管理。
取决于由主机400上的图形操作生成的图形命令类型和RT 300的能力,该命令可以被封装并发送以在RT处执行,或者该命令可以由GPU-P 412本地执行。在很多情况下,尽管该命令被发送以在RT处执行,但是为了保存虚拟显示的本地副本,该命令也由GPU-P 412本地执行。理想的情况是,用状态位滤除作为冗余的本地图形命令的结果而改变的任何拼接片以防止不必要的拼接片更新分组被发送到RT。发送该命令而非已编码的拼接片通常需要较少的带宽,但是并不可能总是如此。人工管理选择性更新缓冲器的系统也会考虑正向RT发送的命令。将由在RT执行的命令来更新的拼接片在理想情况下不被GPU-P 412放置到选择性更新缓冲器中。
在另一示例中,旨在RT的图形命令由TSA-G 424处理,并且被拆分成已编码数据传送和已修改图形命令。例如,主机系统可能希望执行从屏外存储器或模式到屏上存储器的BitBlt操作。这在GPU-P 412子系统可以容易地被执行。然而,在RT处,为BitBlt请求的源数据没有被高速缓存。因此为了能够发送图形命令,可能有必要首先编码、封装以及发送源数据或模式到RT,然后封装并发送已修改图形命令到RT。这一过程可由TSA-G 424卸载。当DirectX驱动器有可能将命令漏过随后将这些命令输出到TSA-G 424的GPU-P 412时,DirectX驱动器将这些命令直接传递到TSA-G 424往往更加高效。
图7示出了TSA 224或TSA-G 424的一个优选实施方式的子系统700和TSA724的功能块。该子系统与在主机200或主机400上运行的跟踪软件相通信,它包括到主机系统总线206的连接,并且可能包括经由路径226到网络子系统的直接连接。在TSA-G 424的情况下,TSA 724也可能包括经由路径SDVO1 414和SDVO2416的到图形控制器GPU-P 412的直接连接。路径416可以是第二SDVO2 416或者到另一子系统的连接。存储器730包括在子系统中,它可以嵌入TSA 724或外部存储器子系统中。每个功能块还也可以包括它自身的内部存储器。
系统控制器708管理到主机系统和其它子系统的接口,并且对TSA 724执行某些设置和管理。DirectX解释器704卸载在主机系统上运行的DirectX软件驱动器以管理2D图形命令、3D图形命令、视频流以及其它窗口功能。与RDP解释器702以及数据/视频编码器和代码转换器706相组合,TSA 724使主机处理器免于执行管理RT的很多高强度计算方面,并且也可以优化要从主机系统向各个RT发送的命令、数据和视频流。
在系统200中基于主机的GPU 212不用于RT显示支持的情况下,TSA子系统700可以执行多种基于图形的优化。各种模式BitBlt、源到屏目的地BitBlt以及其它位图传输可由RDP解释器702来加强。RDP解释器702可以截取来自主机的调用,经由数据/视频编码器和代码转换器706将源数据、模式或位图编码成更高效的格式,经由系统控制器708传输这些已编码数据、模式或位图,最后向RT 300发出经修改的图形命令。目的地RT接收这些已编码源数据、模式或位图,按需对其进行解码,在接收到已修改图形命令时执行预期操作。对已编码数据和已修改命令的传输可以采用由TSA子系统700和RT 300所支持的RDP传输或者类RDP传输。
对于系统200中的视频流,DirectX解释器704可以截取并卸载视频流处理,并且向目标RT提供最佳流。卸载的第一步是确定主机处理器没有在主机CPU上执行视频解码。基于主机的解码有一些缺点,其中最重要的两个是,第一,它需要大量的CPU周期来执行实际的解码。第二,在主机处解码视频帧并不一定是使帧在目标RT处显示的最好方法。相反,DirectX解释器704截取在某些版本MicrosoftWindows
Figure S2006800502317D00171
中可能需要使用DirectShow的DirectX调用,以便可以在其仍在压缩形式下访问视频流。为了使RDP继续正常的操作,DirectX解释器704可能需要向RDP接口提供模拟帧。
同时,系统控制器708获知RT能够解码何种视频流格式,从主机系统到RT的标称网络吞吐量是多少,以及视频流所针对何种分辨率和显示特性。获知这一信息,系统控制器708设置数据/视频编码器和代码转换器706来处理传入视频流以便为网络、RT和显示输出要求生成理想的流。这可能需要从一种编码格式译码到另一种、从一种比特率转换到另一种、改变帧率、改变显示格式、改变分辨率或者以上的某些组合。RDP解释器702和系统控制器708随后封装已处理的位流,并且通过主系统总线206或者直接连接226发送以进行网络处理。
在系统400的情况下,TSA子系统700可以包括相对于系统200所描述的功能,但是还包括对与GPU-P 412结合操作的额外支持。有若干方法使RDP 702和GPU-P 412交互,并且TSA子系统700的操作将会相应地改变。在这里详细地考虑了两种实施方式,第一种是“终止与再生”,第二种是“卸载与增强”。这些实施方式的变形也是可能的,这些变形可以利用每个实施方式的诸方面。
在“终止与再生”的情况下,RDP客户机在主机系统上运行。只要涉及到主机,RDP操作便终止并且RDP客户机利用GPU-P 412创建虚拟显示。如前所述,GPU-P 412使用虚拟显示空间通过创建单个大型的显示映射来支持多个虚拟RT,其中在该映射内每个用户被偏移,或者其中每个虚拟显示被视为具有自己的映射的单独显示。RDP客户机软件可能需要在需要安全客户机通信的RDP主机的TSA子系统700内利用密钥交换和安全处理。当RDP客户机接收到来自RDP主机的命令时,该客户机利用GPU-P 412将显示帧递送到显示子系统中。GPU-P 412随后生成适当的选择性更新,该选择性更新将通过路径414发送出去。
包括矩形拼接片的选择性更新分组随后被编码、封装并转发以供网络传送。使用“终止与再生”来代替仅仅传送绘图命令到RT 300的主要原因是RT处不支持请求命令。同样起作用的其它更细微的原因是基于带宽、命令的类型或序列、RT的相关性能。
“卸载与增强”可以用重定向DirectX视频和数据流的跟踪软件层进行。DirectX解释器704截取主机DirectX调用。所截取的调用被卸载到完成DirectX调用功能的数据/视频编码器和代码转换器706中。卸载该功能使得主机CPU 202对于多用户系统的其它用户是可用的。编码和译码可以利用允许最佳处理的对显示环境和网络带宽的理解来完成。
当图形命令在本地执行并且转发到RT用于执行时,RDP解释器702也可以用于管理状态位。主机图形执行该命令的原因是,可以管理帧缓冲器的当前副本以备后续使用。因为图形命令在RT处被执行,作为图形命令的结果而在主机上改变的拼接片无需使选择性更新硬件发送已编码的拼接片。为了防止如此,RDP解释器702需要计算哪些拼接片受到图形命令的影响。可以管理S-缓冲器中对应于这些拼接片的状态位,以便不执行基于拼接片的选择性更新。
跟踪软件层也可以用于协助对已改变的显示帧的编码选择,以及用于要求生成显示更新流。执行编码是为了减少远程显示系统300再生由主计算机的图形和显示控制器412生成的显示数据所需要的数据。跟踪软件层可以帮助标识拼接片内的数据类型以便可以执行最佳类型的编码。某些RT可能没有足够的图形处理能力来执行图形命令,但可以向其发送已由GPU-P 412处理过的已编码数据。
例如,如果跟踪软件层标识出拼接片的表面是实时视频,那么具有平稳空间转换和时间局部性的更高效的视频编码方案可以用于这些拼接片。如果跟踪软件层标识出拼接片的表面大部分是文本,那么可以采用对文本的陡沿和充足的空白空间更有效的编码方案。识别哪一类型的数据在哪一区域是一个复杂的问题。然而,跟踪软件层的这一实施方式允许到协助该标识的主机操作系统及主机显示系统的图形驱动器体系结构的接口。例如,在Microsoft Windows
Figure S2006800502317D00181
中,利用某种DirectShow命令的表面可能是视频数据,然而使用通常与文本相关联的颜色扩展位块传输(BitBlits)的表面可能是文本。每种操作系统和图形驱动器体系结构将会具有它自己的特征指示器。其它实现可以执行多种类型的并行数据编码,并且随后基于编码器反馈选择使用产生最佳结果的编码方案。
某些类型的编码方案对特定类型的数据特别有用,而某些编码方案对这类数据较不敏感。例如,RLE对文本相当好而对视频相当差,基于DCT的方案对视频相当好而对文本相当差,基于小波变换的方案对视频和文本都可以表现良好。尽管在该系统中可以使用任何类型的无损耗或有损耗编码,小波变换编码(也可以是无损耗或有损耗类型)尤其是带有可对每个拼接片进行编码而不考虑周边拼接片的确定性算术编码器的渐进小波变换特别适合于这一应用。改进该过程用于更好的实时执行的JPEG2000小波编码器的衍生物是一个可能的实现。
图8是一个优选的实施方式子系统800(图2的820和图4的840)的框图,该子系统用于卸载和加速联网、安全、终端服务、存储以及来自主机处理器的诸如因特网访问的其它任务。卸载子系统800主要通过系统总线206与主机系统200或400通信。连接SDVO1 414和SDVO2 416是任选的,并且为包括用于RT的图形处理的主机系统或者为通过网络提供单个远程键盘、视频和鼠标(KVM)的重定向以便系统管理的较简单图形系统而被纳入。这些连接可以是直接的或者通过接口芯片850。接口控制810管理各种I/O连接。网络接口可以包括到WAN和RT的访问。诸如千兆以太网的高速网络是较佳的,但是并不总是实用的。诸如10/100以太网、电力线以太网、基于同轴电缆的以太网、基于电话线的以太网或者诸如802.11a、b、g、n、s的无线以太网标准之类的低速网络及其未来衍生物和超宽带(UWB)版本也可以得到支持。
为了方便通过使用主网络连接和在主机CPU上运行的软件来在“带内(inband)”远程控制主机,可以实现并使用KVM。或者KVM可以通过使用尽可能少的主系统资源来在“带外(out of band)”操作。当在“带外”使用时,可能出现使用网络接口而非“带内”主网络连接的视频监视。另外,代替在主处理器上运行的用于远程KVM功能的软件,特别的独立底板管理控制器(BMC)也通常被包括在内。BMC可以运行诸如智能平台管理接口(IPMI)的协议。BMC可以提供其自身的网络接口或可以支持到主网络控制器的侧端口连接。
为了支持对不同卸载任务的动态处理,卸载子系统800使用可编程和可配置并且当工作负荷改变时能够快速进行任务切换和重新配置的处理块。各种存储块可包括在每个处理块中,并且较大的存储器830也可以被包括。CPU 808是包括其自己的高速缓冲存储器的普通可编程处理器,并且可以为卸载子系统800执行内务处理和管理以及执行一些较高层协议和接口处理。网络处理器和MAC控制器806管理卸载子系统的网络接口控制(NIC)功能,并且可以管理多个双向通信通道。诸如内容地址存储器(CAM)特定内部存储器以及常规存储器也可以包括在NIC 806内。完整的NIC 806功能可能需要来自安全处理器(SP)804和可配置数据处理器(CDP)802的额外处理。
可配置数据处理器802可被设计成,容易被重新配置以便在通常与专用硬件块相关联的吞吐量下执行不同的处理。通过利用CDP 802而非专用硬件,不同的卸载任务可由同一硬件执行。用于设计诸如可重新配置数据路径、动态指令集、超长指令字(VLIW)、单指令多数据(SIMD)、多指令多数据(MIMD)、数字信令处理(DSP)以及其它形式的可重新配置计算之类的CDP的现有技术方法可以进行组合,以便执行超高性能的计算。安全处理器804可由某种形式的CDP 802、更专用的硬件或者CDP 802与用于加密技术及密钥相关功能的额外专用硬件块的组合来实现。
为了终端服务加速,CDP 802可被配置成,对拼接片和矩形的执行数据编码、对视频或数据执行各种形式的译码或转码、生成和比较拼接片签名以及在TSA 224或424部分描述的其它任务。为了存储加速,CDP 802可被配置成,用于iSCSI、光纤信道(FC)、光纤通道因特网协议(FCIP)以及因特网协议相关任务的不同方面。连接416可被配置成连接到FC而非SDVO2。为了因特网内容加速,CDP可被配置成,处理可扩展标记语言(XML)通信量、简单对象访问协议(SOAP)、HTTP通信量、Java虚拟机(JVM)以及与基于因特网的通信相关联的其它通信量。
为了管理通过SDVO1 214和SDVO2 216路径传入的数据,可以提供特定的缓冲和处理,或者可以将CDP 802配置成执行特定任务,这些任务可能包括将较大的矩形解构成拼接片、处理拼接片(包括签名生成和比较)以及当各种分组与目标RT相关时对它们进行管理。在前的拼接片签名可以存储在子系统800内,使得当接收到新的拼接片时可以对签名进行比较。
GPU可以具有用于包括VGA、DVO、DVI、SDVO、显示端口或者任意数量的较高速或较低速端口的显示输出端口的任意数量的物理和逻辑连接。这样,在GPU显示输出端口和卸载子系统800之间可能需要接口芯片850。来自卸载子系统的连接816可被实现为任意带宽的PCI快速端口。在一个优选的实施方式中,卸载子系统800充当PCI快速根控制器,并且接口控制810管理PCI快速端口。接口芯片可以执行某些缓冲以及某些所需预处理。例如,接口芯片可以缓冲多条显示数据线,并执行数据打包、格式转换、色空间转换、子带分解或者任意数量的其它功能。在一个优选的实施方式中,通过DVO连接416从图形芯片输出的是24位RGB数据。接口芯片850缓冲RGB数据,将它转换成YUV 4:4:4数据,并将这些像素拆分成单独的Y、U和V数据分组。使用接口控制810的卸载子系统800执行PCI快速根控制,并且Y、U和V数据分组通过路径816发送到存储器830的不同区域。
卸载子系统800可以由可编程解决方案来实现,该解决方案还解决若干不相关操作的一般卸载任务。服务器可以受益于对网络、存储、安全以及其它任务的卸载。可以将卸载处理器设计成静态或动态地平衡各种卸载任务,并且对任何给定的工作负荷加快系统的总吞吐量。例如,服务器可能在白天为瘦客户机执行基于服务器的计算,而在晚上运行大型数据库操作。在白天,卸载引擎将运行对TSA描述的操作。在晚上卸载引擎将运行iSCSI加速以从磁盘存储器系统访问大型数据库。这种灵活性可以由跟踪各种工作负荷的板上或片上管理处理器进行管理。在卸载任务之间切换的颗度可以极小。可以将卸载引擎设计成执行极快的上下文转接,使其能够在单一会话中为同一会话执行网络、终端服务、存储、安全以及其它卸载任务。
图9是根据本发明一个实施方式的用于执行终端服务加速过程的方法步骤的流程图。为了清楚起见,参考显示包括视频的数据来讨论该过程。然而,可以预期,涉及音频、键盘、鼠标和其它数据的过程同样适用于本发明。最初,在步骤910中,基于多用户服务器的计算机200或400和远程终端系统300遵循不同过程来初始化和设置各种子系统的主机侧和终端侧以便启动每个RT。在步骤912中,在主机200或主机400上的跟踪软件层与TSA 224或TSA-G 424结合操作来处理各种图形和视频调用,以便确定需要执行哪些操作以及在何处执行。注意主机系统200并不利用常驻主机GPU或虚拟帧缓冲器来执行RT图形操作。
如果图形操作包括2D绘图,那么,在步骤924中,2D绘图引擎GPU-P 412较佳地将这些操作处理成RAM 430中的适当虚拟显示。类似地,在步骤926中由GPU 412对RAM中的适当的虚拟显示执行3D绘图。在步骤928中,TSA 224或TSA-G 424可以确定视频或图形命令将被转发到适当RT。到步骤940的流程可以不受旁路步骤928的影响。在步骤940中,GPU-P 412将每个虚拟显示合成为适于显示的帧。这一合成可以用CPU子系统202、2D引擎、3D引擎以及GPU 412内的任何视频处理元件的操作的任意组合来执行。作为合成步骤的一部分,由于GPU-P 412在图形处理硬件中包含S-缓冲器管理,绘图引擎为相应的拼接片更新S-缓冲器。
如返回路径944所示,GPU-P 412可以根据需要返回处理同一RT或不同RT的下一帧。一旦执行了合成操作,步骤946便管理拼接片和适当位置处相关联的S-缓冲器状态位及签名位。步骤946考虑经过可能影响S-缓冲器状态位的视频和图形旁路步骤928处理的任何图形和视频操作。例如,如果绘图操作在步骤924执行并经由步骤928旁路到远程终端,则不需要对绘图操作在RT处发生时受该操作影响的拼接片执行选择性更新。
随着拼接片的状态位和签名在步骤946中被处理(该过程可以发生在GPU-P412内或者与TSA-G 424相结合),步骤950便可以执行这些拼接片的选择性更新。这些拼接片的大小可以固定或者可变。包括在拼接片内的报头信息将会指示格式以及预期的远程终端目标。在步骤954中,TSA-G 424对从步骤950接收到的拼接片执行必要的编码。该编码较佳地是确定性的方案,其中拼接片以及周边的拼接片内的数据定向不需要在编码步骤中予以考虑。同样在步骤954中,步骤928之后的视频数据和图形命令被处理。视频数据可以在比特率或帧率改变的情况下被转码,在频率域或者空间域缩放以及在必要时被译码成不同的编码标准。经由返回路径968的网络反馈连同RT一起可以帮助确定编码步骤954。
步骤954还执行需要额外处理的任何图形操作,其中可能需要对图形数据进行编码。在步骤958中,TSA-G 424对前一步骤中处理过的图形命令、数据传输或者视频传输执行进一步的封装。这一步骤中还在诸如带宽、等待时间、特定分组大小以及传输问题之类的网络特性方面考虑网络反馈。在步骤962中,已封装的分组经由网络控制器228进行处理,并且该分组沿着网络传送到适当的RT 300。
网络处理步骤962使用来自系统控制的信息。该信息可以包括关于哪一远程显示需要哪些帧更新数据流、何种类型的网络传输协议用于每个帧更新流以及每个帧更新流的每一部分的优先级和重试特性如何的信息。网络处理步骤962利用网络控制器228来管理任意数量的网络连接。各种网络可以包括千兆以太网、10/100以太网、电力线以太网、基于同轴电缆的以太网、基于电话线的以太网或者诸如802.11a、b、g、n、s的无线以太网标准以及未来衍生物。其它非以太网连接也是可能的,并且可以包括USB、1394a、1394b、1394c或者诸如超宽带(UWB)或WiMAX的其它无线协议。
图10是根据本发明一个实施方式的用于执行网络接收和显示过程的方法的步骤流程图。为了清楚起见,参考显示包括视频的数据来讨论该过程。然而,可以预期的是,涉及音频和其它数据的过程同样适用于本发明。
在图10的实施方式中,最初,在步骤1012中,远程终端300较佳地经由路径290从主计算机200接收网络传送。随后,在步骤1014中,网络控制器336较佳地执行网络处理过程来执行网络协议以便接收所发送的数据,无论该传输是有线还是无线的。
在步骤1020中,CPU 324解释传入传输以确定该传输针对哪一功能单元。如果传入传输是2D图形命令,那么CPU 324将会经由2D绘图引擎332初始化操作;如果是3D命令,那么经由3D绘图引擎334;如果是视频数据流,那么经由视频解码器328;以及如果是编码的数据拼接片,那么经由数据解码器326。某些绘图命令可能使用绘图引擎和数据解码器326两者。
数量改变的命令和数据传输可能发生,各种功能单元操作并且较佳地将数据信息操作成适当的可显示格式。在步骤1030中,来自每个功能单元的已操作的数据经由帧管理器330来组合,并且可以产生经更新的显示帧到RAM 312中。经更新的显示帧可以包括来自先前帧的显示帧数据、已操作并且已解码的新帧数据、以及用于隐藏在新帧数据传输过程中发生的显示数据差错所需的任何处理。
最后,在步骤1040中,显示控制器330向远程终端显示屏310提供最近完成的显示帧数据,以供远程终端系统300的用户观看。显示刷新是通常在远程终端控制器314和显示310之间以每秒60到72次运行以避免闪烁的异步操作。在步骤1030中,产生新的显示帧通常是很少经常发生的,尽管必要时可能以每秒30帧或以上发生。在没有屏幕保护程序或断电模式的情况下,在显示刷新过程中如反馈路径1050所指示,显示处理器将会继续用最近完成的显示帧更新远程显示屏310。
本发明因此实现了支持用户可以在各种应用中有效利用的远程终端的基于多用户服务器的计算机系统。例如,企业可能在一个地点部署计算机系统架,而在远程地点用户的桌上向他们提供的简单便宜的远程终端系统300。通过LAN、WAN或者通过另一连接可以支持不同的远程地点。RT可以是台式个人计算机或者笔记本式个人计算机,或者在另一系统中可以是诸如蜂窝电话、个人数字助理的专门设备,或者与诸如便携式视频播放器、游戏机或远程控制系统的其它消费品相结合。用户可以灵活地利用多用户系统100的主计算机来获得主计算机系统所能提供给本地用户的相同级别的软件兼容性和类似级别的性能。因此,本发明有效地实现了利用各种不同组件来促进最优系统协作性和功能性的灵活多用户系统。
以上参考优选的实施方式对本发明进行了说明。根据本公开,其它实施方式对本领域技术人员而言将会是显而易见的。例如,除了在以上优选的实施方式中所描述的那些配置外,很容易使用其它配置实现本发明。另外,,本发明还可以有效地与除了以上作为优选实施方式所描述的以外的其它系统结合使用。因此,本发明仅由所附权利要求书限定,旨在涵盖对优选实施方式的这些或其它变化。

Claims (8)

1.一种能够支持多个远程终端的主计算机系统,包括:
图形和显示子系统,具有:
能够为多个终端存储显示帧的显示存储器;
用于生成显示帧的一个或多个绘图引擎,每个所述显示帧可以对应于远程终端处的显示帧,所述显示帧包括多个子帧,其中每个子帧的大小在运行时间内由所述主计算机系统可配置为在所述图形和显示子系统中执行的相关联的编码算法的最小像素块大小的倍数;以及
跟踪显示帧的经修改的子帧以及基于所述跟踪执行来自所述显示存储器的选择性更新的装置,其中所述跟踪包括生成对应于所述经修改的子帧的签名并为所述经修改的子帧检查签名;
将所述图形和显示子系统连接到所述主计算机系统中的主机CPU的装置;以及
管理来自所述显示存储器的所述选择性更新以便仅仅将所述选择性更新通过网络子系统传送到对应的所述远程终端的装置。
2.如权利要求1所述的系统,其特征在于,所述图形和显示子系统利用显示存储器来管理状态位以跟踪哪些子帧已被修改以及在传送选择性更新输出之前所述选择性更新在何处检查这些状态位。
3.如权利要求1所述的系统,其特征在于,需要选择性更新的所述被跟踪的子帧在经由所述网络子系统被传送之前首先被编码以降低带宽要求。
4.如权利要求1所述的系统,其特征在于,所述图形和显示子系统通过专用连接向编码子系统输出所述选择性更新,所述编码子系统在所述选择性更新被传输到所述网络子系统之前对它们进行编码。
5.如权利要求4所述的系统,其特征在于,除了由所述图形和显示子系统执行的跟踪外,所述编码子系统执行附加的跟踪以确定是否需要将所述选择性更新传送到所述远程终端。
6.如权利要求4所述的系统,其特征在于,所述编码子系统从所述图形和显示子系统或从所述主机CPU接收图形命令,并且处理所述图形命令以便经由所述网络子系统传送到所述对应的远程终端。
7.如权利要求1所述的系统,其特征在于,所述子帧是固定大小的拼接片,并且所述跟踪是对所述固定大小的拼接片执行的。
8.如权利要求7所述的系统,其特征在于,所述图形和显示子系统在所述拼接片上生成签名,并且管理后续拼接片的所述签名,以确定所述拼接片是否要被选择更新并发送到所述编码子系统。
CN2006800502317A 2005-11-01 2006-10-19 多用户终端服务加速器 Expired - Fee Related CN101351785B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/264,269 2005-11-01
US11/264,269 US7899864B2 (en) 2005-11-01 2005-11-01 Multi-user terminal services accelerator
PCT/US2006/040755 WO2007053304A2 (en) 2005-11-01 2006-10-19 Multi-user terminal services accelerator

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN2012101024998A Division CN102662619A (zh) 2005-11-01 2006-10-19 多用户终端服务加速器

Publications (2)

Publication Number Publication Date
CN101351785A CN101351785A (zh) 2009-01-21
CN101351785B true CN101351785B (zh) 2012-06-20

Family

ID=37995679

Family Applications (2)

Application Number Title Priority Date Filing Date
CN2012101024998A Pending CN102662619A (zh) 2005-11-01 2006-10-19 多用户终端服务加速器
CN2006800502317A Expired - Fee Related CN101351785B (zh) 2005-11-01 2006-10-19 多用户终端服务加速器

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN2012101024998A Pending CN102662619A (zh) 2005-11-01 2006-10-19 多用户终端服务加速器

Country Status (6)

Country Link
US (1) US7899864B2 (zh)
EP (1) EP1949333A4 (zh)
JP (1) JP5060489B2 (zh)
KR (1) KR20080070849A (zh)
CN (2) CN102662619A (zh)
WO (1) WO2007053304A2 (zh)

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005089241A2 (en) 2004-03-13 2005-09-29 Cluster Resources, Inc. System and method for providing object triggers
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US7747086B1 (en) 2005-07-28 2010-06-29 Teradici Corporation Methods and apparatus for encoding a shared drawing memory
US8271980B2 (en) 2004-11-08 2012-09-18 Adaptive Computing Enterprises, Inc. System and method of providing system jobs within a compute environment
JP4753880B2 (ja) * 2004-11-25 2011-08-24 パナソニック株式会社 リピータ装置およびその制御方法
US8631130B2 (en) 2005-03-16 2014-01-14 Adaptive Computing Enterprises, Inc. Reserving resources in an on-demand compute environment from a local compute environment
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
US8453148B1 (en) 2005-04-06 2013-05-28 Teradici Corporation Method and system for image sequence transfer scheduling and restricting the image sequence generation
CA2603577A1 (en) 2005-04-07 2006-10-12 Cluster Resources, Inc. On-demand access to compute resources
JP2007096604A (ja) * 2005-09-28 2007-04-12 Toshiba Corp 電子機器及び映像受信装置及びその制御方法
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US8151323B2 (en) 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
KR100812332B1 (ko) * 2006-05-18 2008-03-10 삼성전자주식회사 컨텐츠 관리 장치 및 그 방법
US7983170B2 (en) * 2006-12-19 2011-07-19 Citrix Systems, Inc. In-band quality-of-service signaling to endpoints that enforce traffic policies at traffic sources using policy messages piggybacked onto DiffServ bits
US8155205B2 (en) * 2007-02-28 2012-04-10 Arcsoft, Inc. Dynamic decoder switch
US20080278508A1 (en) * 2007-05-11 2008-11-13 Swen Anderson Architecture and Method for Remote Platform Control Management
JP2009009330A (ja) * 2007-06-27 2009-01-15 Fujitsu Ltd 情報処理装置、情報処理システム及び情報処理装置の制御方法
WO2009039375A2 (en) * 2007-09-20 2009-03-26 C & S Operations, Inc. Computer system
US8433747B2 (en) * 2008-02-01 2013-04-30 Microsoft Corporation Graphics remoting architecture
US7937452B2 (en) 2008-02-19 2011-05-03 Microsoft Corporation Framework for rendering plug-ins in remote access services
US20090328037A1 (en) * 2008-02-27 2009-12-31 Gabriele Sartori 3d graphics acceleration in remote multi-user environment
JP5029443B2 (ja) * 2008-03-17 2012-09-19 富士通株式会社 情報処理装置、情報処理システム、情報処理装置の制御方法及びコンピュータプログラム
US20110047476A1 (en) * 2008-03-24 2011-02-24 Hochmuth Roland M Image-based remote access system
US20090251474A1 (en) * 2008-04-08 2009-10-08 Chou Deanna J Virtual computing and display system and method
US8170123B1 (en) * 2008-04-15 2012-05-01 Desktone, Inc. Media acceleration for virtual computing services
US8887063B2 (en) 2008-05-21 2014-11-11 Smart Technologies Ulc Desktop sharing method and system
TWI386843B (zh) * 2008-07-03 2013-02-21 Wistron Corp 螢幕顯示區分割方法、螢幕顯示區分割系統,及電腦程式產品
US20100013839A1 (en) * 2008-07-21 2010-01-21 Rawson Andrew R Integrated GPU, NIC and Compression Hardware for Hosted Graphics
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
US8572251B2 (en) * 2008-11-26 2013-10-29 Microsoft Corporation Hardware acceleration for remote desktop protocol
US20100169791A1 (en) * 2008-12-31 2010-07-01 Trevor Pering Remote display remote control
KR20100083028A (ko) * 2009-01-12 2010-07-21 삼성전자주식회사 사용자 인터페이스를 갖는 이동식 저장 장치 및 그 사용자 인터페이스 제어 방법
US8224885B1 (en) 2009-01-26 2012-07-17 Teradici Corporation Method and system for remote computing session management
JP5476734B2 (ja) * 2009-02-19 2014-04-23 日本電気株式会社 サーバ、リモート操作システム、伝送方式選択方法、プログラム及び記録媒体
US20100225655A1 (en) * 2009-03-06 2010-09-09 Microsoft Corporation Concurrent Encoding/Decoding of Tiled Data
US20100226441A1 (en) * 2009-03-06 2010-09-09 Microsoft Corporation Frame Capture, Encoding, and Transmission Management
US8638337B2 (en) * 2009-03-16 2014-01-28 Microsoft Corporation Image frame buffer management
US8705879B2 (en) * 2009-04-01 2014-04-22 Microsoft Corporation Image compression acceleration using multiple processors
KR101069020B1 (ko) * 2009-04-22 2011-09-29 엘지전자 주식회사 네트워크 모니터 시스템 및 그의 edid 통신 방법
US8902242B2 (en) 2009-04-23 2014-12-02 Vmware, Inc. Method and system for identifying drawing primitives for selective transmission to a remote display
US8441494B2 (en) * 2009-04-23 2013-05-14 Vmware, Inc. Method and system for copying a framebuffer for transmission to a remote display
CN101908033A (zh) * 2009-06-05 2010-12-08 邓迪 一种多用户远程使用多个主计算机的方法和装置
CN101986382B (zh) * 2009-07-29 2013-05-08 赛丽电子系统(上海)有限公司 用于多屏拼接显示墙的无线网络传输rgb信号处理方法
US9411760B2 (en) * 2009-10-02 2016-08-09 Ncomputing Inc. System and method for a thin-client terminal system with a local screen buffer using a serial bus
US20120268650A1 (en) * 2009-10-02 2012-10-25 Ncomputing Inc. System and method for a thin-client terminal system using a serial bus
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US9075560B2 (en) * 2009-12-10 2015-07-07 Microsoft Technology Licensing, Llc Real-time compression with GPU/CPU
JP5387395B2 (ja) * 2009-12-28 2014-01-15 ソニー株式会社 受信装置、受信方法およびプログラム
US8621627B1 (en) * 2010-02-12 2013-12-31 Chelsio Communications, Inc. Intrusion detection and prevention processing within network interface circuitry
JP2011172182A (ja) * 2010-02-22 2011-09-01 Nec Personal Products Co Ltd 配信サーバ及び配信システム
US20150205489A1 (en) * 2010-05-18 2015-07-23 Google Inc. Browser interface for installed applications
US8803892B2 (en) 2010-06-10 2014-08-12 Otoy, Inc. Allocation of GPU resources across multiple clients
US8539039B2 (en) 2010-06-22 2013-09-17 Splashtop Inc. Remote server environment
GB2481612A (en) 2010-06-30 2012-01-04 Skype Ltd Updating image regions in a shared image system
GB2481613A (en) * 2010-06-30 2012-01-04 Skype Ltd Updating regions of shared images using a server that records image status
CN102375714A (zh) * 2010-08-16 2012-03-14 慧荣科技股份有限公司 计算机系统及相关的影像绘图装置和显示装置
CH703723A1 (de) 2010-09-15 2012-03-15 Ferag Ag Verfahren zur konfiguration einer grafischen benutzerschnittstelle.
US8724696B2 (en) * 2010-09-23 2014-05-13 Vmware, Inc. System and method for transmitting video and user interface elements
US9998749B2 (en) 2010-10-19 2018-06-12 Otoy, Inc. Composite video streaming using stateless compression
US8913509B2 (en) * 2010-10-25 2014-12-16 Verizon Patent And Licensing Inc. Quality of service management in a fixed wireless customer premises network
US8504654B1 (en) * 2010-12-10 2013-08-06 Wyse Technology Inc. Methods and systems for facilitating a remote desktop session utilizing long polling
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
US8589800B2 (en) * 2010-12-10 2013-11-19 Wyse Technology Inc. Methods and systems for accessing and controlling a remote desktop of a remote machine in real time by a web browser at a client device via HTTP API utilizing a transcoding server
KR20120072134A (ko) * 2010-12-23 2012-07-03 한국전자통신연구원 가상 데스크톱 가속 장치 및 방법
US8886699B2 (en) * 2011-01-21 2014-11-11 Cloudium Systems Limited Offloading the processing of signals
TW201239614A (en) * 2011-03-28 2012-10-01 Wistron Corp Automated test system and automated test method
US9130899B1 (en) 2011-04-27 2015-09-08 Cisco Technology, Inc. Integrated user interface for unified communications applications
US10555012B2 (en) 2011-06-27 2020-02-04 Oncam Global, Inc. Method and systems for providing video data streams to multiple users
US10033968B2 (en) * 2011-06-27 2018-07-24 Oncam Global, Inc. Method and systems for providing video data streams to multiple users
US8990292B2 (en) * 2011-07-05 2015-03-24 Cisco Technology, Inc. In-network middlebox compositor for distributed virtualized applications
KR101857791B1 (ko) * 2011-08-30 2018-05-16 삼성전자주식회사 컴퓨팅 시스템, 및 상기 컴퓨팅 시스템을 동작하기 위한 방법
US9712847B2 (en) * 2011-09-20 2017-07-18 Microsoft Technology Licensing, Llc Low-complexity remote presentation session encoder using subsampling in color conversion space
KR101467430B1 (ko) * 2011-12-12 2014-12-01 주식회사 케이티 클라우드 컴퓨팅 기반 어플리케이션 제공 방법 및 시스템
US9294549B2 (en) 2012-02-14 2016-03-22 Citrix Systems, Inc. Client bandwidth emulation in hosted services
US9467305B2 (en) 2012-03-07 2016-10-11 Vmware, Inc. Multitenant access to multiple desktops on host machine partitions in a service provider network
US9055139B1 (en) 2012-03-12 2015-06-09 Cisco Technology, Inc. Display protocol interception in the network for services and network-based multimedia support for VDI
CN102664873A (zh) * 2012-03-28 2012-09-12 山东超越数控电子有限公司 一种带bmc的国产龙芯cpu服务器的kvm-over-ip实现方法
US9495308B2 (en) 2012-05-22 2016-11-15 Xockets, Inc. Offloading of computation for rack level servers and corresponding methods and systems
US9558351B2 (en) 2012-05-22 2017-01-31 Xockets, Inc. Processing structured and unstructured data using offload processors
KR101700821B1 (ko) * 2012-08-21 2017-02-01 한국전자통신연구원 스케일러블 원격화면 전송방법 및 그 장치
US10270709B2 (en) 2015-06-26 2019-04-23 Microsoft Technology Licensing, Llc Allocating acceleration component functionality for supporting services
CN103000160A (zh) * 2012-11-19 2013-03-27 天津三星电子有限公司 一种显示系统
US10097989B2 (en) 2012-12-21 2018-10-09 E*Trade Financial Corporation Dynamic communication
US9992306B2 (en) 2012-12-21 2018-06-05 E*Trade Financial Corporation Dynamic execution
US10311014B2 (en) * 2012-12-28 2019-06-04 Iii Holdings 2, Llc System, method and computer readable medium for offloaded computation of distributed application protocols within a cluster of data processing nodes
US9250954B2 (en) 2013-01-17 2016-02-02 Xockets, Inc. Offload processor modules for connection to system memory, and corresponding methods and systems
US20140204107A1 (en) * 2013-01-22 2014-07-24 Vixs Systems, Inc. Video processor with frame buffer compression and methods for use therewith
US9277218B2 (en) 2013-01-22 2016-03-01 Vixs Systems, Inc. Video processor with lossy and lossless frame buffer compression and methods for use therewith
EP2757794A1 (en) * 2013-01-22 2014-07-23 ViXS Systems Inc. Video processor with frame buffer compression and methods for use therewith
US9407920B2 (en) * 2013-01-22 2016-08-02 Vixs Systems, Inc. Video processor with reduced memory bandwidth and methods for use therewith
CN103347163B (zh) * 2013-06-28 2017-02-08 冠捷显示科技(厦门)有限公司 一种超高清视频图像处理和传送的系统及其方法
CN103294439B (zh) * 2013-06-28 2016-03-02 华为技术有限公司 一种图像更新方法、系统及装置
US9253158B2 (en) 2013-08-23 2016-02-02 Vmware, Inc. Remote access manager for virtual computing services
US9332046B2 (en) 2013-10-17 2016-05-03 Cisco Technology, Inc. Rate-adapted delivery of virtual desktop image elements by an edge server in a computer network environment
CN103763610B (zh) * 2013-12-27 2018-10-30 华为技术有限公司 一种远程桌面的重定向方法及装置
CN104731546B (zh) * 2015-04-01 2018-09-11 宁波Gqy视讯股份有限公司 抓取高分辨率图像在大屏幕上显示的方法及系统
US10198294B2 (en) 2015-04-17 2019-02-05 Microsoft Licensing Technology, LLC Handling tenant requests in a system that uses hardware acceleration components
US10511478B2 (en) 2015-04-17 2019-12-17 Microsoft Technology Licensing, Llc Changing between different roles at acceleration components
US9792154B2 (en) 2015-04-17 2017-10-17 Microsoft Technology Licensing, Llc Data processing system having a hardware acceleration plane and a software plane
US10296392B2 (en) 2015-04-17 2019-05-21 Microsoft Technology Licensing, Llc Implementing a multi-component service using plural hardware acceleration components
US9665163B2 (en) 2015-05-06 2017-05-30 Vmware, Inc. Distributed power management with partial suspend mode for distributed storage systems
US9645636B2 (en) * 2015-05-06 2017-05-09 Vmware, Inc. Centralized power management with partial suspend mode for distributed storage systems
US10216555B2 (en) 2015-06-26 2019-02-26 Microsoft Technology Licensing, Llc Partially reconfiguring acceleration components
US10318224B2 (en) * 2015-08-31 2019-06-11 Apple Inc. Data centric display communications
CN106936616B (zh) 2015-12-31 2020-01-03 伊姆西公司 备份通信方法和装置
JP6899502B2 (ja) 2016-02-10 2021-07-07 メルク、パテント、ゲゼルシャフト、ミット、ベシュレンクテル、ハフツングMerck Patent GmbH 有機エレクトロルミネッセンス発光装置
US10440366B2 (en) * 2016-07-01 2019-10-08 Intel Corporation Method and system of video coding using content based metadata
US11494986B2 (en) * 2017-04-20 2022-11-08 Samsung Electronics Co., Ltd. System and method for two dimensional application usage in three dimensional virtual reality environment
TWI709076B (zh) * 2019-05-31 2020-11-01 技嘉科技股份有限公司 可輸出影像資料的主機板及操作系統
US11768727B2 (en) * 2021-11-23 2023-09-26 International Business Machines Corporation Reducing over-reporting of serviceable events
GB2614072B (en) * 2021-12-21 2024-08-28 Advanced Risc Mach Ltd Data processing systems

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
US6664969B1 (en) * 1999-11-12 2003-12-16 Hewlett-Packard Development Company, L.P. Operating system independent method and apparatus for graphical remote access
US6806885B1 (en) * 1999-03-01 2004-10-19 Micron Technology, Inc. Remote monitor controller

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2270581A (en) * 1992-09-15 1994-03-16 Ibm Computer workstation
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
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
KR19990044988A (ko) * 1997-11-25 1999-06-25 이데이 노부유끼 접속 상황 송신 장치, 접속 상황 표시 데이터 작성 장치 및 접속 상황 표시 방법
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
US20030007666A1 (en) * 1998-04-13 2003-01-09 Stewartson James A. Method and apparatus for relief texture map flipping
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
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
US6927783B1 (en) * 1998-11-09 2005-08-09 Broadcom Corporation Graphics display system with anti-aliased text and graphics feature
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
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
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
US6842777B1 (en) * 2000-10-03 2005-01-11 Raja Singh Tuli Methods and apparatuses for simultaneous access by multiple remote devices
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
KR100442170B1 (ko) * 2001-10-05 2004-07-30 (주)아이디스 원격 제어 관리 시스템
GB2381692B (en) * 2001-10-31 2004-09-08 Alphamosaic Ltd Video-telephony system
US20030200336A1 (en) * 2002-02-15 2003-10-23 Suparna Pal Apparatus and method for the delivery of multiple sources of media content
JP2004259166A (ja) * 2003-02-27 2004-09-16 Sony Corp データ会議システム,送信端末装置,コンピュータプログラム,受信端末装置,および送信端末装置の表示画面データ共有方法
US20040255167A1 (en) * 2003-04-28 2004-12-16 Knight James Michael Method and system for remote network security management
US7454495B2 (en) * 2003-09-18 2008-11-18 Raritan America, Inc. Intelligent modular server management system for selectively operating and locating a plurality of computers
US20050204015A1 (en) 2004-03-11 2005-09-15 Steinhart Jonathan E. Method and apparatus for generation and transmission of computer graphics data

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
US6664969B1 (en) * 1999-11-12 2003-12-16 Hewlett-Packard Development Company, L.P. Operating system independent method and apparatus for graphical remote access

Also Published As

Publication number Publication date
WO2007053304A3 (en) 2008-06-26
WO2007053304A2 (en) 2007-05-10
EP1949333A4 (en) 2009-12-16
KR20080070849A (ko) 2008-07-31
EP1949333A2 (en) 2008-07-30
CN102662619A (zh) 2012-09-12
JP2009514124A (ja) 2009-04-02
JP5060489B2 (ja) 2012-10-31
US7899864B2 (en) 2011-03-01
US20070097130A1 (en) 2007-05-03
CN101351785A (zh) 2009-01-21

Similar Documents

Publication Publication Date Title
CN101351785B (zh) 多用户终端服务加速器
CN101553795B (zh) 多用户显示代理服务器
US8200796B1 (en) Graphics display system for multiple remote terminals
US7730157B2 (en) Methods, media, and systems for displaying information on a thin-client in communication with a network
CN102137151B (zh) 多链路远程协议
CN1856819B (zh) 通过分布式应用程序的图形数据的网络传输的系统和方法
US6710753B2 (en) Multi-screen session mobility between terminal groups
US7747086B1 (en) Methods and apparatus for encoding a shared drawing memory
US20160124760A1 (en) Cloud computing system and method
US10555010B2 (en) Network-enabled graphics processing module
US7667707B1 (en) Computer system for supporting multiple remote displays
US8560753B1 (en) Method and apparatus for remote input/output in a computer system
US5790792A (en) Method and apparatus for transmitting multimedia data from and application logic server to interactive multimedia workstations
DeFanti et al. The OptIPortal, a scalable visualization, storage, and computing interface device for the OptiPuter
CN102007487A (zh) 用于低带宽显示信息传输的系统和方法
Jeong et al. Ultrascale collaborative visualization using a display-rich global cyberinfrastructure
CN102148824B (zh) 用于传送和接收远程呈现图形数据的方法和系统
US20140074911A1 (en) Method and apparatus for managing multi-session
TW201207723A (en) Display data management techniques
CN102097080A (zh) 显示驱动处理方法、装置和系统
US20040017381A1 (en) Method and apparatus for hardware acceleration of clipping and graphical fill in display systems

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: CALISTA TECHNOLOGIES

Effective date: 20100617

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: CALIFORNIA, USA TO: WASHINGTON, USA

TA01 Transfer of patent application right

Effective date of registration: 20100617

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120620

Termination date: 20141019

EXPY Termination of patent right or utility model