專利名稱:多用戶終端服務(wù)加速器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及一種多用戶主計(jì)算機(jī)系統(tǒng),更具體地,涉及用于遠(yuǎn)程客戶機(jī)的 有效的終端服務(wù)支持。
背景技術(shù):
的討論
開發(fā)高效的多用戶主計(jì)算機(jī)系統(tǒng)是當(dāng)代系統(tǒng)設(shè)計(jì)員和制造商的一個(gè)重要 目標(biāo)。
傳統(tǒng)的計(jì)算機(jī)系統(tǒng)可利用本地顯示設(shè)備來直接向用戶顯示輸出。因?qū)@示 設(shè)備電耦合到計(jì)算機(jī)系統(tǒng)輸出端的各種物理連接所施加的限制,該本地顯示設(shè) 備通常被安置在計(jì)算機(jī)系統(tǒng)附近。 一些計(jì)算機(jī)系統(tǒng)可以支持具有相似的因物理 連接引起的鄰近性限制的第二顯示設(shè)備。
遠(yuǎn)程用戶需要對(duì)適當(dāng)觀看位置和與主機(jī)系統(tǒng)的網(wǎng)絡(luò)連接進(jìn)行選擇的附加 的靈活性。例如,在企業(yè)環(huán)境下,企業(yè)可能希望將所有的主計(jì)算機(jī)放入"計(jì)算 機(jī)機(jī)房"中,該"計(jì)算機(jī)機(jī)房"是一個(gè)具有諸如空調(diào)與電源后備系統(tǒng)等物理安 全與環(huán)境管理的安全的中央位置。然而,用戶在位于"計(jì)算機(jī)機(jī)房"外的辦公 室和辦公桌上利用主機(jī)系統(tǒng)是必要的。
現(xiàn)今典型的辦公環(huán)境包括個(gè)人計(jì)算機(jī)和物理上位于用戶位置處的越來越 多的瘦客戶機(jī)。這些個(gè)人計(jì)算機(jī)和瘦客戶機(jī)在具有用于存儲(chǔ)、文件服務(wù)、文件 共享、網(wǎng)絡(luò)管理以及各種管理性服務(wù)的集中式系統(tǒng)的網(wǎng)絡(luò)上運(yùn)行。最初,系統(tǒng) 將所有與計(jì)算機(jī)系統(tǒng)相關(guān)聯(lián)的盤存儲(chǔ)集中,而用戶能夠在他們的本地臺(tái)式機(jī)上 運(yùn)行應(yīng)用程序。最近,認(rèn)識(shí)到安全利益、運(yùn)行成本的降低以及對(duì)集中控制的一
般要求,個(gè)人計(jì)算機(jī)和瘦客戶機(jī)可以作為基于服務(wù)器的計(jì)算(SBC)解決方案 中的遠(yuǎn)程終端(RT)來運(yùn)行,該解決方案在服務(wù)器上運(yùn)行應(yīng)用程序。
用于SBC環(huán)境的RT的傳統(tǒng)方法是主機(jī)系統(tǒng)使用諸如微軟的遠(yuǎn)程顯示協(xié)議 (RDP)等某種形式的服務(wù)器一客戶機(jī)通信交換。RDP在服務(wù)器使用其自己的
視頻驅(qū)動(dòng)程序,并使用RDP協(xié)議來將呈現(xiàn)信息構(gòu)造成網(wǎng)絡(luò)分組并通過網(wǎng)絡(luò)將它
們發(fā)送到客戶機(jī)。客戶機(jī)接收到呈現(xiàn)數(shù)據(jù)并將這些分組解釋成相應(yīng)的Microsoft Win32圖形設(shè)備接口 (GDI) API調(diào)用。對(duì)將客戶機(jī)鍵盤和鼠標(biāo)命令重定向到 服務(wù)器以及管理本地音頻和本地客戶機(jī)驅(qū)動(dòng)器的支持也被包括在內(nèi)。
為了增強(qiáng)主機(jī)系統(tǒng)和客戶機(jī)之間的通信,其它系統(tǒng)已使用主機(jī)系統(tǒng)的主 CPU來改進(jìn)RT的性能。已經(jīng)對(duì)痩客戶機(jī)和作為遠(yuǎn)程客戶機(jī)的傳統(tǒng)PC這樣做 了。這種方法對(duì)于一次僅支持一位用戶的主機(jī)系統(tǒng)是有效的。然而,對(duì)于多用 戶系統(tǒng),使用主機(jī)的主CPU來為任何一位用戶改進(jìn)性能的方法有著顯著的局限 性。用于對(duì)于一位用戶的優(yōu)化的諸如主存儲(chǔ)器和CPU周期之類的計(jì)算資源可能 降低支持對(duì)于其它用戶的工作負(fù)荷的能力。
從單個(gè)主機(jī)有效地支持多個(gè)用戶可以降低成本。在典型的辦公室環(huán)境中,
很少會(huì)每個(gè)人同時(shí)使用他們的計(jì)算機(jī),并且類似地,很少會(huì)有任一用戶使用他 們計(jì)算機(jī)上的所有計(jì)算資源。因此,舉例來說,擁有IOO個(gè)辦公室的公司可能 在任一時(shí)刻僅僅需要能支持60個(gè)用戶的系統(tǒng)。即使如上所說,這種系統(tǒng)可以 被設(shè)計(jì)成支持所有100個(gè)用戶,只要給他們提供足夠的計(jì)算吞吐量以使看起來 像是他們每個(gè)人都有自己的主計(jì)算機(jī)。
隨著主計(jì)算機(jī)通過包括多個(gè)CPU和擁有多個(gè)處理器核的CPU而不斷增強(qiáng) 它們的性能, 一人一機(jī)的局限有著越來越少的經(jīng)濟(jì)意義。盡管某些RT可以通 過局域網(wǎng)(LAN)本地連接到多用戶主機(jī)系統(tǒng),但其它RT將通過廣域網(wǎng)(WAN) 連接到主機(jī)系統(tǒng),在該廣域網(wǎng)中這些RT具有與主機(jī)系統(tǒng)的較低性能的網(wǎng)絡(luò)連 接。
在RT位于世界的不同部分的分布式辦公環(huán)境中,集中式多用戶系統(tǒng)可以 根據(jù)各自的時(shí)區(qū)在不同的工作時(shí)間支持世界的不同部分。
其中用于用戶的應(yīng)用程序在僅有在用戶終端上支持的RT服務(wù)的服務(wù)器上 運(yùn)行的基于服務(wù)器的計(jì)算是為多個(gè)用戶更有效地分配計(jì)算資源的另一方法。 SBC允許主機(jī)系統(tǒng)向具有最高優(yōu)先級(jí)的用戶動(dòng)態(tài)分配諸如存儲(chǔ)器和CPU周期 等共享資源。SBC系統(tǒng)可以采用虛擬機(jī)(VM)、負(fù)載平衡和其它手段的技術(shù), 來基于多項(xiàng)準(zhǔn)則對(duì)不同用戶授予對(duì)不同層級(jí)的性能和資源的訪問??墒褂貌煌?的優(yōu)先級(jí)方案來分配SBC資源。SBC可用作達(dá)到更高的數(shù)據(jù)安全性、集中對(duì) 一個(gè)組織的支持、增強(qiáng)的災(zāi)難恢復(fù)和業(yè)務(wù)連續(xù)性以及降低整個(gè)組織的數(shù)據(jù)存儲(chǔ) 要求的手段。
然而,為使多用戶主機(jī)為組織所可能具有的各種RT設(shè)備有效地管理、控 制和提供豐富的應(yīng)用程序性能,可能需要增加復(fù)雜性。需要一種使多用戶主機(jī) 系統(tǒng)能夠以突出的計(jì)算和顯示性能來更有效地支持眾多遠(yuǎn)程用戶的解決方案。
發(fā)明概述
本發(fā)明提供了一種用于多用戶計(jì)算機(jī)系統(tǒng)內(nèi)的主機(jī)或服務(wù)器系統(tǒng)的高效 體系結(jié)構(gòu),該多用戶計(jì)算機(jī)系統(tǒng)包括有交互圖形和視頻能力的一個(gè)或多個(gè)遠(yuǎn)程
終端。該主機(jī)系統(tǒng)一般管理應(yīng)用程序并且執(zhí)行基于服務(wù)器的計(jì)算。每個(gè)RT具 有其自己的鍵盤、鼠標(biāo)和顯示器以及其它可能的外圍設(shè)備。RT向個(gè)人用戶提 供對(duì)服務(wù)器上的應(yīng)用程序的訪問以及豐富的圖形用戶界面。
在第一優(yōu)選實(shí)施方式中,該主機(jī)系統(tǒng)包括被稱作終端服務(wù)加速器(TSA) 的輔助處理器,該終端服務(wù)加速器為每個(gè)RT卸載管理遠(yuǎn)程圖形協(xié)議的計(jì)算任 務(wù)。TSA允許多用戶主計(jì)算機(jī)經(jīng)濟(jì)地縮放以自適應(yīng)地支持可通過各種不同帶寬 解決方案來聯(lián)網(wǎng)的眾多不同的rt。 tsa可以包括可配置處理器、數(shù)字信號(hào)處 理器(DSP)或硬件塊形式的處理元件,以便從主機(jī)最好地執(zhí)行卸載,并且進(jìn) 一步做支持多種終端的改進(jìn)的工作。卸載可以包括將圖形命令封裝成網(wǎng)絡(luò)分 組,對(duì)不同的數(shù)據(jù)塊進(jìn)行編碼以便可以更高效地使用通信信道,以及跟蹤每個(gè) RT的高速緩存的數(shù)據(jù)。在主機(jī)系統(tǒng)中可能有用于支持本地終端的本地圖形處 理器,但它不是RT的支持系統(tǒng)的一部分。TSA可以處理本地圖形以提供遠(yuǎn)程 KVM管理能力。
在第二優(yōu)選實(shí)施方式中,主計(jì)算機(jī)利用軟件、圖形處理器和數(shù)據(jù)編碼的組合, 以便通過為每個(gè)RT創(chuàng)建虛擬顯示環(huán)境,使得僅僅需要向其傳達(dá)最小量的命令或數(shù) 據(jù),來支持多個(gè)RT。用于與RT通信的最常見的方法包括發(fā)送已封裝的圖形命令 或者發(fā)送已編碼的子幀數(shù)據(jù)。管理RT的軟件可以在主機(jī)CPU上或者如第一實(shí)施 方式中那樣在TSA上,或者在兩者的組合上運(yùn)行。對(duì)每個(gè)RT的選擇性更新可 以用軟件或者借助圖形處理器中的硬件來協(xié)調(diào)。圖形處理器可以遵循所建議的 VESA數(shù)字分組視頻鏈路(DPVL)標(biāo)準(zhǔn)或者對(duì)子幀使用狀態(tài)位或簽名的改進(jìn)方法。 在其它增強(qiáng)中,使用PCI express或者另一總線來代替DVI用于輸出數(shù)據(jù),在圖形 處理器內(nèi)或者用附連到圖形處理器的編碼器來執(zhí)行額外的數(shù)據(jù)編碼,以及軟件使用 單個(gè)虛擬圖形處理器來用于多用戶支持。
每一實(shí)施方式可以通過與TSA —起使用跟蹤軟件截取諸如視頻回放等功能,
來從主機(jī)CPU上進(jìn)一步卸載。代替使主機(jī)CPU本地執(zhí)行視頻解碼并提供位圖以便
傳輸?shù)絉T, TSA可以在CPU解碼視頻流前將其截取,并可以將本機(jī)視頻流或 諸如譯碼或轉(zhuǎn)碼(transrate)過的版本等修正版本傳送到到目標(biāo)RT。與RT的 通信可以使用除標(biāo)準(zhǔn)RDP信道外的但仍在RDP協(xié)議內(nèi)管理的其它專用信道來 進(jìn)行。
在每一實(shí)施方式的主機(jī)系統(tǒng)中,在數(shù)據(jù)被封裝或編碼之后,網(wǎng)絡(luò)處理器或 者結(jié)合較簡(jiǎn)單的網(wǎng)絡(luò)控制器工作的CPU通過有線和/或無線網(wǎng)絡(luò)向RT發(fā)送圖 形分組。每一 RT系統(tǒng)解碼準(zhǔn)備供其顯示的該圖形分組、管理幀更新以及為顯 示屏執(zhí)行必要的處理。諸如屏蔽網(wǎng)絡(luò)傳送中丟失的分組等其它特征由遠(yuǎn)程顯示 系統(tǒng)來管理。當(dāng)沒有新的幀更新時(shí),遠(yuǎn)程顯示控制器用來自先前幀的數(shù)據(jù)來刷 新顯示屏。
該系統(tǒng)可以從與主機(jī)系統(tǒng)CPU、 TSA和數(shù)據(jù)編碼系統(tǒng)的各種有線和無線網(wǎng) 絡(luò)連接反饋網(wǎng)絡(luò)信息。主機(jī)系統(tǒng)使用該網(wǎng)絡(luò)信息來影響產(chǎn)生RT更新的各種處 理步驟,并且基于該網(wǎng)絡(luò)反饋,可以為不同的RT改變幀率和數(shù)據(jù)編碼。另外, 對(duì)于包括有噪聲的傳輸信道作為部分網(wǎng)絡(luò)的系統(tǒng),編碼步驟可以與前向糾錯(cuò)保 護(hù)相結(jié)合,以便準(zhǔn)備適于傳輸信道特性的發(fā)送數(shù)據(jù)。這些步驟的組合為每一RT 維持了具有低等待時(shí)間的最優(yōu)幀速率。TSA可被實(shí)現(xiàn)為單獨(dú)的子系統(tǒng)或者與諸 如網(wǎng)絡(luò)處理器、安全處理器、XML加速器、iSCSI處理器或以上這些的任何組 合等其它卸載和加速處理相結(jié)合。
因此,至少鑒于以上原因,本發(fā)明有效地實(shí)現(xiàn)了利用各種不同類組件來促進(jìn) 系統(tǒng)互操作性和功能性的靈活的多用戶RT系統(tǒng)。本發(fā)明因此高效地實(shí)現(xiàn)了增強(qiáng)的 多用戶RT系統(tǒng)。
附圖簡(jiǎn)述
圖1是包括一個(gè)或多個(gè)主計(jì)算機(jī)、網(wǎng)絡(luò)和多個(gè)遠(yuǎn)程終端的多用戶計(jì)算機(jī)系統(tǒng)的 框圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施方式的具有終端服務(wù)加速器的多用戶RT系統(tǒng)主 計(jì)算機(jī)的框圖3示出了與圖2的主計(jì)算機(jī)協(xié)作的RT;
圖4是根據(jù)本發(fā)明的第二實(shí)施方式的具有帶圖形處理器單元的終端服務(wù)加速 器的多用戶RT系統(tǒng)主計(jì)算機(jī)的框圖5示出了被組織成八個(gè)顯示區(qū)域的存儲(chǔ)器,其中一個(gè)顯示區(qū)域包括顯示窗 口,而兩個(gè)顯示區(qū)域用于支持一個(gè)大的顯示器;
圖6A示出了圖5的顯示映象536的更詳細(xì)視圖; 圖6B示出了細(xì)分為平鋪塊的圖6A的矩形;
圖7是示出了圖2的一個(gè)示例性終端服務(wù)加速器224或圖4 424的細(xì)節(jié)的框圖; 圖8是用于加速終端服務(wù)、連網(wǎng)及其它任務(wù)的卸載子系統(tǒng)的框圖; 圖9是根據(jù)本發(fā)明的一個(gè)實(shí)施方式的用于執(zhí)行終端服務(wù)加速的方法中的各步 驟的流程圖;以及
圖10是根據(jù)本發(fā)明的一個(gè)實(shí)施方式的用于執(zhí)行遠(yuǎn)程終端的網(wǎng)絡(luò)接收和顯示過 程的方法中的各步驟的流程圖。
優(yōu)選實(shí)施方式的詳細(xì)描述
本發(fā)明涉及多用戶遠(yuǎn)程終端(RT)計(jì)算機(jī)系統(tǒng)的改進(jìn)。盡管所述實(shí)施方式涉 及多用戶RT計(jì)算機(jī)系統(tǒng),相同的原理和特征可以同樣適用于其它類型的單用戶系 統(tǒng)和其它類型的瘦客戶機(jī)。
參照?qǐng)D1,本發(fā)明提供了多用戶計(jì)算機(jī)系統(tǒng)100的高效體系結(jié)構(gòu)。被稱作"主 機(jī)120"的基于多用戶服務(wù)器的計(jì)算機(jī)120為多個(gè)各自利用某種形式遠(yuǎn)程終端的多 個(gè)用戶處理應(yīng)用程序。包括本地終端110主要用于單用戶或管理任務(wù),并且主機(jī) 120產(chǎn)生顯示更新網(wǎng)絡(luò)流通過有線網(wǎng)絡(luò)290發(fā)往RT 300、 302以及304等等的每一 個(gè),或者通過無線網(wǎng)絡(luò)290發(fā)往顯示器306。RT的用戶能夠分時(shí)共享主計(jì)算機(jī)120, 如同這是他們自己的本地計(jì)算機(jī)一樣,并且以在本地計(jì)算機(jī)上可獲得的相同類型的 用戶體驗(yàn)而獲得對(duì)所有類型的圖形、文本和視頻內(nèi)容的完全支持。附加連接292 可以是連接到WAN、存儲(chǔ)子系統(tǒng)、其它主機(jī)或各種其它數(shù)據(jù)中心連接,它可以采 用千兆以太網(wǎng)、IOG以太網(wǎng)、iSCSI、光纖信道(FC)、光纖信道IP (FCIP)或者 另一電學(xué)或光學(xué)連接的形式。連接242可以將其它數(shù)據(jù)或視頻源連接到主機(jī)系統(tǒng) 120。
在整個(gè)文件中,"主機(jī)"可以是指可用多種方法配置成支持基于多用戶服務(wù)器 的計(jì)算的主機(jī)120、主機(jī)200或主機(jī)400。多主機(jī)120可以群集在一起以形成可動(dòng) 態(tài)共享的計(jì)算資源。在每一主機(jī)120中,多計(jì)算機(jī)主機(jī)200可以采用通過底板連接 的機(jī)架中刀片的形式或者另一多處理器配置而組裝在一起。虛擬化單用戶操作系統(tǒng) (OS)的各種多用戶操作系統(tǒng)或軟件可以部署在一個(gè)或多個(gè)處理器刀片或主板上。
諸如Citrix或Windows Server的操作系統(tǒng)被設(shè)計(jì)成多用戶OS。盡管不是特別地為 多用戶而設(shè)計(jì),Windows XP可以通過諸如VMWARE或Xen Source的較低層虛 擬化軟件或者如同多用戶OS—樣快地執(zhí)行用戶切換的其它手段的幫助而用于這樣 的配置中。不同的管理控制可以使得RT和程序靜態(tài)或動(dòng)態(tài)地在處理器間移動(dòng)。負(fù) 載平衡可由操作系統(tǒng)對(duì)每個(gè)處理器執(zhí)行,或者該系統(tǒng)可以在多個(gè)處理器間執(zhí)行負(fù)載 平衡。
圖2是服務(wù)器系統(tǒng)的一個(gè)刀片200的框圖,在該服務(wù)器系統(tǒng)中每一刀片自身可 以是主計(jì)算機(jī)120或者可將多個(gè)刀片裝在機(jī)架上以創(chuàng)建能力更強(qiáng)的主計(jì)算機(jī)120。 根據(jù)本發(fā)明的一個(gè)實(shí)施方式,單個(gè)刀片(主板)系統(tǒng)200或多個(gè)刀片200可用于多 用戶系統(tǒng)IOO。主機(jī)系統(tǒng)120具有的刀片和CPU越多,能夠同時(shí)支持的用戶越多。 主計(jì)算機(jī)200的基本元件最好包括,但不限于CPU子系統(tǒng)202、總線橋控制器204、 諸如PCI快速的主系統(tǒng)總線206、本地I/O 208、主RAM 210和圖形和顯示控制器 212及其可能的自帶存儲(chǔ)器218。圖形和顯示控制器212可以有允許本地連接222 連到本地終端110的接口 220。程序源和多媒體位流可以通過網(wǎng)絡(luò)接口 209之一或 經(jīng)由帶有I/O路徑246的程序源240之一進(jìn)入主計(jì)算機(jī)200。網(wǎng)絡(luò)控制器228也處 理顯示更新流,并且通過一個(gè)或多個(gè)網(wǎng)絡(luò)連接290向各個(gè)RT 300 — 306等等提供網(wǎng) 絡(luò)通信。這些網(wǎng)絡(luò)連接可以是有線或無線的。
在其它配置中, 一個(gè)以上的CPU子系統(tǒng)202可以共享諸如圖形與視頻顯示控 制器212和終端服務(wù)加速器224之類的設(shè)備中的一個(gè)或多個(gè)。其它系統(tǒng)可以分割, 其中網(wǎng)絡(luò)控制器228可由多主機(jī)系統(tǒng)200共享。系統(tǒng)總線206可以連接到底板總線 以在系統(tǒng)中的多個(gè)刀片之間進(jìn)行連接。路徑226可以共享底板總線206,或者可以 具有額外的系統(tǒng)間總線。系統(tǒng)中可以包括一個(gè)以上的網(wǎng)絡(luò)控制器228,其中一個(gè)用 于通往多個(gè)遠(yuǎn)程終端的連接290,另一個(gè)網(wǎng)絡(luò)控制器(未示出)執(zhí)行到其它刀片、 其它服務(wù)器系統(tǒng)或諸如存儲(chǔ)系統(tǒng)的其它數(shù)據(jù)中心設(shè)備的基礎(chǔ)設(shè)施網(wǎng)絡(luò)連接。每一個(gè) CPU子系統(tǒng)202可以包括多個(gè)處理器核心,其中每個(gè)核心可以同時(shí)執(zhí)行一個(gè)以上 的線程。
主計(jì)算機(jī)200最好包括連接到主系統(tǒng)總線206的終端服務(wù)加速器(TSA) 224, 并且可以具有到網(wǎng)絡(luò)控制器228的輸出路徑226。TSA 224可以包括專用RAM 230, 或者可以共享主系統(tǒng)RAM210、圖形和顯示控制器RAM218、或網(wǎng)絡(luò)控制器RAM 232。主RAM 210可以如RAM 234處所示地與CPU子系統(tǒng)202更緊密地相關(guān)聯(lián)。 另外,當(dāng)主機(jī)系統(tǒng)200可以共享主RAM210時(shí),與圖形和顯示控制器212相關(guān)聯(lián)
的RAM 218可能就不必要了 。
TSA 224的功能是卸載主CPU 202對(duì)每個(gè)RT的一些管理,并且加速一些已卸 載的處理,使每個(gè)RT都具有經(jīng)改進(jìn)的顯示支持。卸載與加速支持的類型包括將圖 形操作封裝到遠(yuǎn)程圖形命令中、協(xié)助確定將哪些能力和位圖高速緩存在每一 RT處 以確定哪些圖形命令最為合適、編碼并封裝需要傳送到RT的位圖以及最佳地管理 多媒體位流。
還可以支持諸如檢査和封裝可擴(kuò)展標(biāo)記語言(XML)通信量、簡(jiǎn)單對(duì)象訪問 協(xié)議(SOAP) 、 HTTP通信量、Java虛擬機(jī)(JVM)以及與基于因特網(wǎng)的通信相 關(guān)聯(lián)的其它通信量的附加功能。主機(jī)系統(tǒng)連同TSA 224 —起可以使RT在執(zhí)行任何 所需的反垃圾郵件、反病毒、內(nèi)容過濾、訪問限制執(zhí)行或基于其它分組過濾的算法 的同時(shí),有效地執(zhí)行對(duì)整個(gè)因特網(wǎng)的遠(yuǎn)程訪問。在主機(jī)是因特網(wǎng)訪問的代理的情況 下,這種附加功能可能對(duì)于支持RT因特網(wǎng)瀏覽會(huì)特別有用。盡管系統(tǒng)中可能有一 些冗余,但這種方法可以提供比在主機(jī)系統(tǒng)和WAN之間利用的因特網(wǎng)安全設(shè)備更 具體的用戶控制。
RT上的特殊瀏覽器可以使用基于因特網(wǎng)的通信量的其它增強(qiáng)手段,其中可能 包括在RT顯示設(shè)備及RT內(nèi)的執(zhí)行能力的基礎(chǔ)上對(duì)基于因特網(wǎng)的內(nèi)容進(jìn)行重新格 式化或重新編碼。例如,如果RT設(shè)備是屏幕分辨率有限的蜂窩電話或者個(gè)人數(shù)字 助理(PDA) , TSA224可以將高分辨率內(nèi)容過濾成低分辨率圖像用于更快更適當(dāng) 地顯示。TSA 224可以運(yùn)行其它更智能的web頁面解釋算法,以便執(zhí)行諸如移除 橫幅廣告及其它無關(guān)信息的功能,使核心信息可被發(fā)送到蜂窩電話。諸如那些利用 Active-X控件、Macromedia Flash或者其它運(yùn)行時(shí)間程序的其它類型的web內(nèi)容可 能與諸如電話或PDA的設(shè)備并不兼容。TSA 224可作為媒介并在Active-X控件之 后將顯示數(shù)據(jù)傳送給等待著的PDA。也可以執(zhí)行應(yīng)用層正則表達(dá)式(RegEx)內(nèi)容 處理。也可以執(zhí)行重新編碼以提高客戶機(jī)的安全性。盡管可XML和SOAP可能遭 到劫持和其它形式的病毒通行,TSA 224可以將XML和SOAP重新編碼成安全的 顯示格式,使RT客戶機(jī)不會(huì)遭受這種風(fēng)險(xiǎn)。
多媒體位流可以包括已為壓縮格式的視頻流,該視頻流存儲(chǔ)在主機(jī)系統(tǒng)200 本地或者經(jīng)由系統(tǒng)網(wǎng)絡(luò)接口 290或程序源接口 246之一來接收。在一些配置中,多 媒體位流已經(jīng)是與目標(biāo)RT兼容的格式。在這種情況下,TSA 224將位流封裝成適 當(dāng)?shù)姆纸M格式以向RT傳輸。封裝可以包括添加報(bào)頭信息,諸如視頻顯示窗口的原 點(diǎn),或者修改分組組織,諸如將傳輸流轉(zhuǎn)換成具有不同分組大小的程序流。
在很多情況下,多媒體位流將不會(huì)采用容易被目標(biāo)RT處理的格式,或者不采
用適于網(wǎng)絡(luò)連接的格式。在這種情況下,TSA224執(zhí)行對(duì)多媒體位流解碼與重新編 碼、譯碼或變碼流的更復(fù)雜的步驟。例如,傳入多媒體位流可以是編碼的HDTV MPEG-2流。如果RT處的窗口尺寸設(shè)置為320x240的小窗口,節(jié)省網(wǎng)絡(luò)帶寬并使 TSA224將視頻譯碼和變碼流成表示所需顯示窗口大小的低比特率是有意義的。類 似地,如果傳入視頻采用RT不能解碼的格式,則TSA224可以將視頻譯碼成可兼 容的格式。即使格式可兼容,也可能存在諸如數(shù)字版權(quán)管理(DRM)加密方案的 其它不兼容。TSA 224也可以從一個(gè)DRM或加密方案轉(zhuǎn)換到適于目標(biāo)RT的方案。
微軟的遠(yuǎn)程桌面協(xié)議(RDP)為壓縮視頻位流提供了明顯低效的處理。利用 RDP,主機(jī)系統(tǒng)內(nèi)的驅(qū)動(dòng)器檢測(cè)位流并將其解碼成獨(dú)立于設(shè)備的位圖(DIB)。隨 后將DIB轉(zhuǎn)換成RDP傳輸命令,并且嘗試通過網(wǎng)絡(luò)將DIB格式數(shù)據(jù)傳輸?shù)絉T。 在大多數(shù)情況下,只有幾個(gè)DIB數(shù)據(jù)幀到達(dá)RT而用于顯示。因此,主機(jī)CPU執(zhí) 行解碼以及通過網(wǎng)絡(luò)以低效率格式發(fā)送已解碼數(shù)據(jù)的效率都不高。其它基于RDP 的圖形操作同樣使用DIB。
傳統(tǒng)的圖形位圖,諸如來自網(wǎng)站的那些,也需要從主機(jī)系統(tǒng)200傳輸?shù)絉T。 TSA 224可以對(duì)諸如DIB的傳統(tǒng)圖形位圖執(zhí)行各種級(jí)別的編碼。對(duì)圖形位圖的編 碼可以是無損耗或者有損耗的,其目標(biāo)是提供原始圖形質(zhì)量的視覺上不可分辨的表 示。TSA 224的簡(jiǎn)化軟件接口可以僅僅包括通過RDP API與主CPU的進(jìn)行接口 , 而更積極的實(shí)現(xiàn)可以使得TSA 224能夠訪問底層DriectX驅(qū)動(dòng)程序框架。已編碼的 DIB傳輸和特定壓縮視頻域傳輸不是標(biāo)準(zhǔn)RDP實(shí)現(xiàn)的一部分。因此,這些傳輸可 以被背負(fù)到現(xiàn)有RDP傳輸格式中,作為某些類型的專有RDP擴(kuò)展來運(yùn)行或者在 RDP框架外運(yùn)行。
某些版本的主機(jī)操作系統(tǒng)和RDP需要滿足RDP協(xié)議的額外安全要求??赡苄?要RDP客戶機(jī)與主機(jī)交換密鑰以使用加密的分組。因?yàn)門SA 224截取RDP客戶機(jī) 分組,TSA 224可以包括對(duì)密鑰交換與解密的適當(dāng)加速與卸載以與主機(jī)處理器通 信。另外,為了維護(hù)系統(tǒng)安全,TSA224和網(wǎng)絡(luò)控制器228將確保與RT的所有通
信都被適當(dāng)?shù)丶用堋?br>
圖3是根據(jù)本發(fā)明一個(gè)實(shí)施方式的遠(yuǎn)程終端(RT) 300的框圖,該遠(yuǎn)程終端較 佳地包括但不限于,顯示屏310、本地RAM312和遠(yuǎn)程終端系統(tǒng)控制器314。遠(yuǎn)程 終端系統(tǒng)控制器314包括鍵盤、鼠標(biāo)和I/0控制子系統(tǒng)316,該I/0控制子系統(tǒng)具 有用于鼠標(biāo)318、鍵盤320和諸如用于再現(xiàn)音頻的揚(yáng)聲器的其它各種各樣設(shè)備322
的對(duì)應(yīng)連接或具有可以支持各種設(shè)備的通用串行總線(USB)連接。也可以包括用 于通過安全手段(包括生物統(tǒng)計(jì)或安全卡)支持用戶驗(yàn)證的其它集成或外圍連接。
這些連接可被指定為諸如PS/2型鍵盤或鼠標(biāo)連接的單一用途,或者諸如USB的通 用用途。在其它實(shí)施方式中,1/0可以包括游戲控制器、本地?zé)o線連接、IR連接或 根本沒有連接。遠(yuǎn)程終端系統(tǒng)300也可以包括諸如DVD驅(qū)動(dòng)器的其它外圍設(shè)備。 本發(fā)明的一些實(shí)施方式在遠(yuǎn)程終端系統(tǒng)300處不需要任何輸入。這種系統(tǒng)的一 個(gè)例子是零售商店或電子廣告牌,其中不同的顯示器可用在不同的地點(diǎn),并且可以 顯示各種資訊和娛樂信息。每個(gè)顯示器可以獨(dú)立運(yùn)作并且可以基于各種因素更新。 類似的安全系統(tǒng)還可以包括諸如信息亭或銀行里的自動(dòng)取款機(jī)(ATM)的某些接 受觸摸屏輸入的顯示器。諸如娛樂游戲機(jī)的其它安全系統(tǒng)也可以基于此類遠(yuǎn)程終 端。
網(wǎng)絡(luò)控制器336支持網(wǎng)絡(luò)路徑2卯上的安全協(xié)議,在該網(wǎng)絡(luò)路徑上,所支持的 網(wǎng)絡(luò)可以是有線或者無線的,并且通過網(wǎng)絡(luò)傳送的數(shù)據(jù)可以經(jīng)由密鑰交換而加密。 用于每個(gè)遠(yuǎn)程顯示系統(tǒng)300的所支持網(wǎng)絡(luò)需要由圖2的網(wǎng)絡(luò)控制器228直接或通過 某類網(wǎng)橋予以支持。普通網(wǎng)絡(luò)的示例是以太網(wǎng),諸如運(yùn)行某類以太網(wǎng)的CAT 5線 路,較佳的千兆以太網(wǎng),其中I/0控制路徑可以使用諸如標(biāo)準(zhǔn)傳輸控制協(xié)議和因特 網(wǎng)協(xié)議(TCP/IP)的以太網(wǎng)支持協(xié)議或與UDP傳輸相結(jié)合的某種形式的輕量握手。 諸如實(shí)時(shí)數(shù)據(jù)流協(xié)議(RTSP)和連同實(shí)時(shí)控制協(xié)議(RTCP) —起的實(shí)時(shí)傳輸協(xié)議 (RTP)的產(chǎn)業(yè)成果可用于加強(qiáng)數(shù)據(jù)分組傳輸,并且可通過增加中繼轉(zhuǎn)發(fā)協(xié)議得到 進(jìn)一步加強(qiáng)。諸如層3差分服務(wù)代碼點(diǎn)(DSCP)、作為數(shù)字生活網(wǎng)絡(luò)聯(lián)盟(DLNA) 一部分的WMM協(xié)議、微軟的Qwave (高質(zhì)量音視頻體驗(yàn))、uPnP (通用即插即 用)、QoS (服務(wù)質(zhì)量)和802.1p協(xié)議的圍繞使用服務(wù)質(zhì)量(QoS)成果的其它新 近成果也是使用現(xiàn)有網(wǎng)絡(luò)標(biāo)準(zhǔn)的改進(jìn)方法。
除了用于支持I/0設(shè)備的數(shù)據(jù)分組之外,網(wǎng)絡(luò)還承載已封裝、已編碼的顯示命 令以及顯示所需的數(shù)據(jù)。CPU 324與網(wǎng)絡(luò)控制器336、 2D繪圖引擎332、 3D繪圖 引擎334、數(shù)據(jù)解碼器326、視頻解碼器328和顯示控制器330相協(xié)作,以支持可 能在主機(jī)計(jì)算機(jī)上呈現(xiàn)的所有類型的可視數(shù)據(jù)表示,并且將他們?cè)陲@示屏310上本 地顯示。對(duì)RT包括顯示處理塊的任何特定組合沒有要求。雖然更有可能具有至少 一類解碼器或繪圖引擎,但是極痩的RT可能僅僅包括帶有進(jìn)行顯示處理的CPU 的顯示控制器330。
RT可以首先通過從帶有由主計(jì)算機(jī)200通過網(wǎng)絡(luò)提供的附加信息的本地閃存(未示出)引導(dǎo)而被初始化。在RT初始化的過程中,RT系統(tǒng)控制器314和顯示 屏310之間的連接可用于反向或雙向模式,這可采用諸如顯示數(shù)據(jù)信道(DDC) 接口、擴(kuò)展顯示標(biāo)識(shí)數(shù)據(jù)(EDID)及其它擴(kuò)展的標(biāo)準(zhǔn)來標(biāo)識(shí)顯示監(jiān)視器的能力。 經(jīng)由鍵盤、鼠標(biāo)和I/O控制器316的USB連接也可以用于與顯示屏310的連接。 諸如可用的分辨率和控制的信息隨后由CPU 324處理。系統(tǒng)300可以實(shí)現(xiàn)諸如uPnP 的協(xié)議或能與主機(jī)200通信的另一發(fā)現(xiàn)機(jī)制。在初始化通信的過程中,CPU 324 可以向主機(jī)200提供包括顯示監(jiān)視器信息的RT信息,以便每個(gè)RT可以在主機(jī)一 側(cè)例示。
初始顯示屏可以來自閃存或者主計(jì)算機(jī)200。在顯示數(shù)據(jù)的第一個(gè)完整幀之 后,主計(jì)算機(jī)200只需要通過網(wǎng)絡(luò)290發(fā)送部分幀信息以作為顯示更新網(wǎng)絡(luò)流的一 部分。如果顯示器的像素并不從前一幀發(fā)生變化,則顯示控制器330可以用來自本 地RAM存儲(chǔ)器312的前一幀內(nèi)容來刷新顯示屏310。
顯示更新經(jīng)由網(wǎng)絡(luò)流發(fā)送,并且可以由已封裝的2D繪圖命令、3D繪圖命令、 已編碼的顯示數(shù)據(jù)或已編碼的視頻數(shù)據(jù)組成。網(wǎng)絡(luò)控制器326接收網(wǎng)絡(luò)顯示流,并 且CPU 324從封裝報(bào)頭中確定功能單元332、 334、 326和328中的哪一個(gè)是該分 組所需要的。功能單元執(zhí)行必要的處理步驟以繪制或者解碼圖像數(shù)據(jù),并且用新的 圖像來更新RAM312的適當(dāng)區(qū)域。在下一刷新周期中,顯示控制器330將該己更 新幀用于顯示屏310。
顯示控制器330將當(dāng)前圖像幀的表示從RAM 312傳輸?shù)斤@示屏310。通常, 該圖像以準(zhǔn)備顯示的格式存儲(chǔ)在RAM312中,但是在RAM成本成問題的系統(tǒng)中, 可采用己編碼的格式來存儲(chǔ)該圖像或部分該圖像。外部RAM 312可以由遠(yuǎn)程終端 系統(tǒng)控制器314內(nèi)的大型緩沖器所代替。顯示控制器330也可能會(huì)將存儲(chǔ)在RAM 312中的兩個(gè)或更多顯示面相結(jié)合以便合成用于顯示的輸出圖像。可以將不同的混 合操作連同合成操作一起執(zhí)行。
CPU 324與TSA 224相通信以便最好地設(shè)立和管理RT的總體顯示操作。初始 設(shè)立可以包括列舉RT系統(tǒng)控制器314所支持的功能類型、顯示屏310的規(guī)格、RAM 312可用于緩沖和高速緩存數(shù)據(jù)的量、由2D繪圖引擎332所支持的指令集、由3D 繪圖引擎334所支持的指令集、由數(shù)據(jù)解碼器326所支持的格式、由視頻解碼器 328所支持的格式以及顯示控制器330的能力。在運(yùn)行時(shí)期間的其它管理優(yōu)化包括 在RAM312中管理和高速緩存顯示位圖,從而無需重發(fā)它們。
圖4示出了對(duì)主機(jī)系統(tǒng)200進(jìn)行數(shù)處改變的多用戶主機(jī)系統(tǒng)400的第二優(yōu)選實(shí)
施方式。首先,用更強(qiáng)大的圖形處理單元(GPU-P) 412來代替圖形與視頻顯示控 制器212,該圖形處理單元包括經(jīng)由分組而對(duì)選擇性顯示更新的支持,并且可以遵 循某些或者全部所提出的VESA(視頻電子標(biāo)準(zhǔn)協(xié)會(huì))的數(shù)字分組視頻鏈接(DPVL) 標(biāo)準(zhǔn)。其次,用TSA-G 424來代替TSA 224, TSA-G 424被改進(jìn)成經(jīng)由系統(tǒng)總線 206更直接地支持來自GPU-P412的分組顯示更新,或者較佳地支持可以是串行數(shù) 字視頻輸出SDVOl與SDV02的輸入路徑414和416或具有不同總線帶寬、信令 協(xié)議和頻率的一般端口。示例包括數(shù)字視頻輸出(DVO)、數(shù)字可視接口 (DVI)、 高清多媒體接口 (HDMI)、顯示端口或其它的低電壓差分信令(LVDS)、最小 跳變差分信令(TMDS)以及PCI Express (快速)或另一方案。顯示輸出路徑可以 在足以在高刷新率下輸出多幀視頻的速度下運(yùn)行,其中幀可以是與一個(gè)以上目標(biāo) RT相對(duì)應(yīng)的選擇性更新矩形。類似于TSA 224, TSA-G 424可以經(jīng)由主系統(tǒng)總線 206通過專用鏈路426連接到網(wǎng)絡(luò)控制器228,或者經(jīng)由系統(tǒng)級(jí)芯片(SOC)實(shí)現(xiàn) 而更緊密地集成。
除了執(zhí)行傳統(tǒng)圖形處理之外,GPU-P412生成指示哪一部分顯示被改變的選擇 性更新。選擇性更新可以采用通過視頻輸出路徑414或416或者通過主系統(tǒng)總線 206的輸出的矩形或拼接片的形式。矩形更新包括分組報(bào)頭以指示窗口的原點(diǎn)、尺 寸和格式。原點(diǎn)可以用來指示哪一RT是目的地。也可以使用拼接片,并且可以將 其標(biāo)準(zhǔn)化為一個(gè)或多個(gè)固定的大小,這樣報(bào)頭可能需要更少的信息來描述拼接片。 諸如在RT處是否以及如何縮放矩形或拼接片的其它信息也可以包括在報(bào)頭中。其 它形式的選擇性更新包括對(duì)BitBlt、 Area Fill (區(qū)域填充)以及Pattern Fill (模式填 充)的支持,其中并不發(fā)送大塊數(shù)據(jù),而是將最小量的數(shù)據(jù)連同用于在RT上執(zhí)行 的操作的命令參數(shù)一起發(fā)送。其它報(bào)頭支持視頻流、同步鎖相、縮放視頻流、伽馬 表(Gamma Table)和幀緩沖控制(Frame Buffer Control)形式的更新。建議DPVL 規(guī)范詳述了對(duì)連同其報(bào)頭一起的選擇性更新的一個(gè)可能實(shí)現(xiàn)。
通過將RAM 418組織成各自包含用于多個(gè)RT的顯示數(shù)據(jù)的各種表面,可將 一個(gè)GPU-P 412有效地虛擬化成由系統(tǒng)對(duì)所有RT 300使用。GPU-P 412的2D、 3D 以及視頻圖形處理器(未示出)較佳地用于實(shí)現(xiàn)高圖形和視頻性能。圖形處理單元 可以包括2D圖形、3D圖形、視頻編碼、視頻解碼、縮放、視頻處理以及其它先 進(jìn)像素處理。GPU-P 412的顯示控制器也可以執(zhí)行諸如混合和鍵控視頻和圖形數(shù)據(jù) 的功能,以及總體屏幕刷新操作。除了用于主和輔顯示表面的RAM418外,還有 足夠的屏外存儲(chǔ)器來支持各種3D和視頻操作。作為管理選擇性更新的DPVL方法的替換,在RAM 418內(nèi)可以有選擇性更新緩沖存儲(chǔ)器(S-緩沖器)404。在一個(gè)實(shí) 施方式中S-緩沖器404存儲(chǔ)與用于各個(gè)虛擬顯示的每個(gè)拼接片相對(duì)應(yīng)的狀態(tài)位、 簽名或者狀態(tài)位與簽名兩者。在另一實(shí)施方式中,S-緩沖器404存儲(chǔ)帶有或不帶有 報(bào)頭的拼接片自身、狀態(tài)位和簽名信息,其中拼接片被安排成輸出用于選擇性更新。 圖形引擎和顯示控制器通常會(huì)合成與每個(gè)RT顯示器主表面對(duì)應(yīng)的完整顯示圖 像。RAM418將會(huì)有效地包含所有RT的顯示幀陣列。DPVL允許高達(dá)64K x 64K 的虛擬顯示,其中主要應(yīng)用于多監(jiān)視器支持。在這一應(yīng)用中,RT顯示可被映射到 64K x 64K陣列中。因?yàn)檫@一應(yīng)用涉及多個(gè)獨(dú)立RT, GPU-P 412可以添加不同的 安全特征以保護(hù)不同的顯示區(qū)域,并且防止用戶能夠訪問另一用戶的幀緩沖器。出 于安全性和可靠性考慮,系統(tǒng)較佳地包括防止對(duì)顯示存儲(chǔ)器受保護(hù)部分的未授權(quán)訪 問的硬件加鎖。
圖5示出了圖4存儲(chǔ)器418的示例配置,其中虛擬顯示空間被設(shè)置為水平3200 像素和垂直4800像素。存儲(chǔ)器418被劃分成8個(gè)1600x 1200的顯示區(qū)域,分別標(biāo) 記為520、 522、 524、 526、 528、 530、 532和534。典型的高質(zhì)量顯示模式可配置 成每像素24位的位深度,盡管該配置往往使用每像素32位,如同在RAM418中 所組織的那樣,以便在由圖形和視頻處理器訪問顯示器時(shí)更容易將額外8位安排和 用于其它目的。就GPU-P 412而言,對(duì)拼接存儲(chǔ)器的說明在本質(zhì)上是概念性的。 實(shí)際的RAM尋址還會(huì)涉及到存儲(chǔ)器頁面大小以及其它因素。
圖5在顯示區(qū)域528進(jìn)一步示出了顯示更新矩形550。 1600 x 1200顯示的虛線 540對(duì)應(yīng)于被稱為分區(qū)的256 x 256像素的更粗糙的塊邊界。從顯示窗口 550顯而 易見,顯示窗口界線的安排并不一定與分區(qū)界線對(duì)齊。這是典型的情形,因?yàn)橛脩?會(huì)在顯示屏上對(duì)窗口隨意調(diào)整大小和定位。為了支持不需要更新整個(gè)幀的遠(yuǎn)程屏幕 更新,受顯示窗口 550所影響的每個(gè)分區(qū)需要被更新。而且,顯示窗口 550內(nèi)的數(shù) 據(jù)類型和周邊顯示像素可能是完全不同的類型并且不相關(guān)。這樣,基于編碼算法的 分區(qū)如果有損耗,則需要確保不存在與分區(qū)的邊緣或者與顯示窗口 550的邊界相關(guān) 聯(lián)的視覺偽像。實(shí)際的編碼過程可以在諸如8x8或16xl6的比分區(qū)小的塊上發(fā)生。 因此,優(yōu)選的實(shí)施方式使用確定性的編碼算法,其中不管周邊像素如何,對(duì)于一組 像素仍可以得到相同的結(jié)果,并且對(duì)窗口的任意安排不會(huì)產(chǎn)生偽像。
編碼方案的塊邊界對(duì)拼接片而言也是一種考慮因素。例如,編碼方案可能需要 8像素倍數(shù)的塊邊界。如果源拼接片不是8像素的倍數(shù),那就需要用周邊數(shù)據(jù)來填 補(bǔ)。在另一種情況下,往往更優(yōu)選地將塊邊界定向到屏幕而非特定的用戶放置矩形
或拼接片。如果用戶操作80 x 80像素的窗口,即使理論上可以將它置為在水平和
垂直方向都使用10個(gè)8x8塊的最小值(總共100塊),更有可能的是它在每個(gè)方 向上的跨度為11個(gè)塊(121塊)。矩形更新以及矩形的任何進(jìn)行編碼將因此對(duì)88 x 88像素(121塊)進(jìn)行編碼,其中需要填補(bǔ)某些周邊像素。盡管DVPL規(guī)范并不 將矩形編碼當(dāng)作選擇性更新方案的一部分,在DVPL中可能有其它的粒度限制, 這將導(dǎo)致使用DVPL CRTC輸出機(jī)制的模8像素的合適大小的矩形邊界。
也可以支持帶有不同大小顯示的RT。在一個(gè)示例中,GPU-P 412可以支持任 意數(shù)量任意大小的顯示。在另一示例中,可以比較簡(jiǎn)單地支持作為子窗口的較小顯 示或者作為跨越一個(gè)以上顯示區(qū)域的覆蓋窗口的較大顯示。如矩形536所刻劃, 1920 x 1080的窗口將需要同時(shí)使用532和534兩個(gè)區(qū)域。盡管這樣浪費(fèi)面積,但 是比為每一顯示創(chuàng)建定制大小更簡(jiǎn)單地實(shí)現(xiàn)。因?yàn)镚PU-P 412的選擇性矩形更新 機(jī)制,僅僅屏幕的相關(guān)區(qū)域被地傳送。當(dāng)DVPL動(dòng)態(tài)控制CRTC控制寄存器以管 理選擇性更新時(shí),諸如S-緩沖器的其它更靈活的機(jī)制可被實(shí)現(xiàn)為需要更少的處理 器干預(yù)。
更靈活的系統(tǒng)還可以將DVPL矩形的概念拆分為諸如拼接片的更多的規(guī)則大 小的實(shí)體。在具有任意矩形大小的報(bào)頭信息的效率和使用較不靈活拼接片大小但更 多屏幕數(shù)據(jù)的潛在更簡(jiǎn)單的報(bào)頭之間存在折衷。在一個(gè)優(yōu)選的實(shí)施方式中,拼接片 可被動(dòng)態(tài)設(shè)置為塊大小的任意倍數(shù),其中塊大小是用于數(shù)據(jù)編碼算法的最小實(shí)體。 塊可以被定向到源圖像或者被定向到屏幕的固定塊位置。拼接片的大小會(huì)包括在報(bào) 頭信息中。
諸如530的存儲(chǔ)器區(qū)域可被指定為S-緩沖器404以管理選擇性更新。在一個(gè) 實(shí)施方式中,S-緩沖器包括相應(yīng)于顯示幀520、 522、 524和526的拼接片的狀態(tài)位, 其中狀態(tài)位指示拼接片是否需要選擇性更新。S-緩沖器404還可以為每個(gè)拼接片存 儲(chǔ)簽名,該簽名隨后用于確定對(duì)選擇性更新的需要。在另一實(shí)施方式中,來自幀 520、 522、 524和526的需要選擇性更新的拼接片被復(fù)制到存儲(chǔ)器區(qū)域530并排隊(duì) 用于選擇性更新輸出。已排隊(duì)的拼接片可以包括各種報(bào)頭、狀態(tài)和簽名信息。
圖6A示出了圖5顯示映射536的更詳細(xì)的視圖,該顯示映射具有1920 x 1080 的稱作1080P的高清電視(HDTV)分辨率。在圖6A中固定大小的矩形614根據(jù) 屏幕位置邊界而定向。每個(gè)矩形都橫向160像素縱向120像素。每行有12個(gè)矩形 (12x 160=1920),每列有9個(gè)矩形(9x 120=1080)。系統(tǒng)可以將這些矩形用作 構(gòu)成選擇性更新基礎(chǔ)的拼接片。在圖6B中另一系統(tǒng)進(jìn)一步將矩形614分為含有80
x40像素的拼接片620,并且系統(tǒng)可以選擇這些更小的拼接片作為選擇性更新的基 礎(chǔ)。更靈活的系統(tǒng)可以利用由6個(gè)拼接片620組成的較大矩形614和這些拼接片自 身,并且使用報(bào)頭信息來描繪在任一給定時(shí)刻輸出哪一類型。
在這兩種情況下,構(gòu)成編碼算法基礎(chǔ)的塊容納在拼接片或矩形內(nèi)。假定8x8 塊,每個(gè)拼接片具有10x5配置的塊,每個(gè)矩形具有20xl5配置的塊。利用較大 矩形和較小三角形兩者的系統(tǒng)在確定選擇性更新要求時(shí)可以對(duì)于這兩者使用不同 的機(jī)制。在一個(gè)優(yōu)選的實(shí)施方式中,較大矩形可以具有指示它們是否已變化的關(guān)聯(lián) 狀態(tài)位,并且較小的拼接片可以利用簽名來做出這一判定。這些狀態(tài)位和簽名可以 如下面所描述地用S-緩沖器來管理。
GPU-P412可以集成該處理以直接執(zhí)行對(duì)拼接片的選擇性編碼,或者每個(gè)拼接 片可以使用選擇性更新過程來檢査并輸出到TSA-G424而且將會(huì)包括適當(dāng)?shù)膱?bào)頭。 該報(bào)頭將由TSA-G 424處理,并且基于報(bào)頭內(nèi)的字段,TSA-G 424將會(huì)知曉這些 拼接片所針對(duì)的RT以及顯示屏上的位置。在適當(dāng)?shù)那闆r下,TSA-G424將會(huì)把拼 接片編碼成壓縮格式、調(diào)整任何所需的報(bào)頭信息以及提供拼接片和報(bào)頭以供進(jìn)一步 網(wǎng)絡(luò)處理。
GPU-P 412和TSA-G 424可以不同地劃分選擇性更新過程。在某些情況下, GPU-P412可以執(zhí)行完全的管理,并且會(huì)僅向TSA-G424發(fā)送需要更新的拼接片。 在其它的情況下,需要TSA-G 424執(zhí)行對(duì)片的進(jìn)一步過濾以便確定哪些片真正需 要更新。在GPU-P412內(nèi),選擇性更新機(jī)制可以被硬件化或者需要CPU干預(yù),可 以跨越繪圖引擎和選擇性更新刷新引擎來實(shí)現(xiàn)該硬件。還可以在GPU-P 412或者 TSA-G 424中執(zhí)行對(duì)拼接片的編碼。GPU-P412還可以通過數(shù)字視頻總線向TSA-G 424輸出RT的圖形繪制命令,或者軟件驅(qū)動(dòng)器可以直接向TSA-G424提供這些命 令。
對(duì)于選擇性拼接片更新,在第一實(shí)施方式中,使用S-緩沖器,其中GPU-P412 具有管理每個(gè)拼接片狀態(tài)位的繪圖引擎和當(dāng)管理每個(gè)拼接片的選擇性顯示更新時(shí) 監(jiān)控這些狀態(tài)位的選擇性更新刷新引擎。如同3D圖形中使用的Z-緩沖器一樣,S-緩沖器可被實(shí)現(xiàn)成單獨(dú)的數(shù)據(jù)存儲(chǔ)面。如同Z-緩沖器一樣,增強(qiáng)的GPU-P 412的 硬件繪圖操作可以更新S-緩沖器狀態(tài)位而無需額外命令。選擇性更新硬件隨后使 用這些狀態(tài)位以確定在RT處哪些拼接片需要更新。與顯示控制器的刷新周期類似, 選擇性更新硬件可以周期性地遍歷S-緩沖器并且讀取這些狀態(tài)位?;跔顟B(tài)位的 狀態(tài),選擇性更新硬件或是忽略無需更新的拼接片,或是讀取用于選擇性更新的拼
接片、將該拼接片連同報(bào)頭信息一起輸出并且相應(yīng)地更新狀態(tài)位。在一個(gè)效率較低 的實(shí)現(xiàn)中,GPU-P可以使用更傳統(tǒng)的圖形繪制操作來生成S-緩沖器。
在無需特定S-緩沖器硬件的另一優(yōu)選實(shí)施方式中,GPU-P 412可以管理需要更 新的串連拼接片的選擇性更新緩沖器。選擇性更新緩沖器可以構(gòu)造在單獨(dú)的存儲(chǔ)區(qū) 域中。每次GPU-P執(zhí)行改變拼接片的操作,它會(huì)隨后將該拼接片復(fù)制到選擇性更 新緩沖器。報(bào)頭信息可以存儲(chǔ)在每個(gè)拼接片的起始處,并且這些拼接片可以打包在 一起。設(shè)置顯示控制器以使用選擇性更新緩沖器,并且使用標(biāo)準(zhǔn)顯示控制器輸出操 作通過刷新端口將其輸出。GPU-P412可以管理諸如環(huán)形緩沖器之類的一個(gè)或多個(gè) 緩沖器或串連拼接片的鏈接緩沖器列表,并且通過被TSA-G 424視為拼接片列表 的SDVO輸出來提供連續(xù)輸出。對(duì)于GPU-P,可以使用各種方案來判斷列表中布 置的優(yōu)先級(jí)。對(duì)于利用具有較少的用于支持多個(gè)RT的特定硬件和具有很少或沒有 特定選擇性更新硬件的GPU-P,這種方法可能是最有效率的。
在另一優(yōu)選的實(shí)施方式中,TSA-G 424與GPU-P 412 —起操作以決定在RT 300 處的哪些拼接片需要更新。GPU-P412在逐拼接片的基礎(chǔ)上管理狀態(tài)位的能力可能 非常困難,可以將這些拼接片組合成大的拼接片或者完整虛擬RT顯示并且對(duì)于狀 態(tài)位僅僅具有有限的顆度。將大拼接片減小為小拼接片更新可以基于跟蹤每個(gè)拼接 片的簽名來執(zhí)行。簽名通常在第一次處理拼接片時(shí)生成并且對(duì)照后續(xù)簽名來檢查。 簽名可以由根據(jù)傳入數(shù)據(jù)或與GPU-P 412的選擇性更新硬件相結(jié)合來操作的 TSA-G 424生成并處理。如果TSA-G 424為每個(gè)拼接片執(zhí)行簽名檢査,則到每個(gè) RT 300的網(wǎng)絡(luò)帶寬可以得到保持。如果GPU-P412執(zhí)行簽名檢查,那么通過視頻 路徑到TSA-G 424的帶寬也將得到保持。GPU-P 412可以生成并管理與拼接片對(duì) 應(yīng)的簽名存儲(chǔ)面,其中狀態(tài)位可以是簽名面或單獨(dú)面的一部分?;蛘?,狀態(tài)位和簽 名位可以由GPU-P 412在RAM高速緩存中管理,并且用鏈接列表來管理。
取決于由主機(jī)400上的圖形操作生成的圖形命令類型和RT300的能力,該命 令可以被封裝并發(fā)送以在RT處執(zhí)行,或者該命令可以由GPU-P4I2本地執(zhí)行。在 很多情況下,盡管該命令被發(fā)送以在RT處執(zhí)行,但是為了保存虛擬顯示的本地副 本,該命令也由GPU-P 412本地執(zhí)行。理想的情況是,用狀態(tài)位濾除作為冗余的 本地圖形命令的結(jié)果而改變的任何拼接片以防止不必要的拼接片更新分組被發(fā)送 到RT。發(fā)送該命令而非已編碼的拼接片通常需要較少的帶寬,但是并不可能總是 如此。人工管理選擇性更新緩沖器的系統(tǒng)也會(huì)考慮正向RT發(fā)送的命令。將由在 RT執(zhí)行的命令來更新的拼接片在理想情況下不被GPU-P 412放置到選擇性更新緩
沖器中。
在另一示例中,旨在RT的圖形命令由TSA-G424處理,并且被拆分成己編碼 數(shù)據(jù)傳送和己修改圖形命令。例如,主機(jī)系統(tǒng)可能希望執(zhí)行從屏外存儲(chǔ)器或模式到 屏上存儲(chǔ)器的BitBlt操作。這在GPU-P 412子系統(tǒng)可以容易地被執(zhí)行。然而,在 RT處,為BitBlt請(qǐng)求的源數(shù)據(jù)沒有被高速緩存。因此為了能夠發(fā)送圖形命令,可 能有必要首先編碼、封裝以及發(fā)送源數(shù)據(jù)或模式到RT,然后封裝并發(fā)送已修改圖 形命令到RT。這一過程可由TSA-G 424卸載。當(dāng)DirectX驅(qū)動(dòng)器有可能將命令漏 過隨后將這些命令輸出到TSA-G 424的GPU-P 412時(shí),DirectX驅(qū)動(dòng)器將這些命令 直接傳遞到TSA-G 424往往更加高效。
圖7示出了 TSA 224或TSA-G 424的一個(gè)優(yōu)選實(shí)施方式的子系統(tǒng)700和TSA 724的功能塊。該子系統(tǒng)與在主機(jī)200或主機(jī)400上運(yùn)行的跟蹤軟件相通信,它包 括到主機(jī)系統(tǒng)總線206的連接,并且可能包括經(jīng)由路徑226到網(wǎng)絡(luò)子系統(tǒng)的直接連 接。在TSA-G 424的情況下,TSA 724也可能包括經(jīng)由路徑SDV01 414和SDV02 416的到圖形控制器GPU-P 412的直接連接。路徑416可以是第二 SDV02 416或 者到另一子系統(tǒng)的連接。存儲(chǔ)器730包括在子系統(tǒng)中,它可以嵌入TSA 724或外 部存儲(chǔ)器子系統(tǒng)中。每個(gè)功能塊還也可以包括它自身的內(nèi)部存儲(chǔ)器。
系統(tǒng)控制器708管理到主機(jī)系統(tǒng)和其它子系統(tǒng)的接口 ,并且對(duì)TSA 724執(zhí)行 某些設(shè)置和管理。DirectX解釋器704卸載在主機(jī)系統(tǒng)上運(yùn)行的DirectX軟件驅(qū)動(dòng) 器以管理2D圖形命令、3D圖形命令、視頻流以及其它窗口功能。與RDP解釋器 702以及數(shù)據(jù)/視頻編碼器和代碼轉(zhuǎn)換器706相組合,TSA 724使主機(jī)處理器免于執(zhí) 行管理RT的很多高強(qiáng)度計(jì)算方面,并且也可以優(yōu)化要從主機(jī)系統(tǒng)向各個(gè)RT發(fā)送 的命令、數(shù)據(jù)和視頻流。
在系統(tǒng)200中基于主機(jī)的GPU 212不用于RT顯示支持的情況下,TSA子系 統(tǒng)700可以執(zhí)行多種基于圖形的優(yōu)化。各種模式BitBlt、源到屏目的地BitBlt以及 其它位圖傳輸可由RDP解釋器702來加強(qiáng)。RDP解釋器702可以截取來自主機(jī)的 調(diào)用,經(jīng)由數(shù)據(jù)/視頻編碼器和代碼轉(zhuǎn)換器706將源數(shù)據(jù)、模式或位圖編碼成更高 效的格式,經(jīng)由系統(tǒng)控制器708傳輸這些已編碼數(shù)據(jù)、模式或位圖,最后向RT300 發(fā)出經(jīng)修改的圖形命令。目的地RT接收這些已編碼源數(shù)據(jù)、模式或位圖,按需對(duì) 其進(jìn)行解碼,在接收到己修改圖形命令時(shí)執(zhí)行預(yù)期操作。對(duì)已編碼數(shù)據(jù)和已修改命 令的傳輸可以采用由TSA子系統(tǒng)700和RT 300所支持的RDP傳輸或者類RDP傳 輸。
對(duì)于系統(tǒng)200中的視頻流,DirectX解釋器704可以截取并卸載視頻流處理, 并且向目標(biāo)RT提供最佳流。卸載的第一步是確定主機(jī)處理器沒有在主機(jī)CPU上 執(zhí)行視頻解碼。基于主機(jī)的解碼有一些缺點(diǎn),其中最重要的兩個(gè)是,第一,它需要 大量的CPU周期來執(zhí)行實(shí)際的解碼。第二,在主機(jī)處解碼視頻幀并不一定是使幀 在目標(biāo)RT處顯示的最好方法。相反,DirectX解釋器704截取在某些版本Microsoft Windows⑧中可能需要使用DirectShow的DirectX調(diào)用,以便可以在其仍在壓縮形 式下訪問視頻流。為了使RDP繼續(xù)正常的操作,DirectX解釋器704可能需要向 RDP接口提供模擬幀。
同時(shí),系統(tǒng)控制器708獲知RT能夠解碼何種視頻流格式,從主機(jī)系統(tǒng)到RT 的標(biāo)稱網(wǎng)絡(luò)吞吐量是多少,以及視頻流所針對(duì)何種分辨率和顯示特性。獲知這一信 息,系統(tǒng)控制器708設(shè)置數(shù)據(jù)/視頻編碼器和代碼轉(zhuǎn)換器706來處理傳入視頻流以 便為網(wǎng)絡(luò)、RT和顯示輸出要求生成理想的流。這可能需要從一種編碼格式譯碼到 另一種、從一種比特率轉(zhuǎn)換到另一種、改變幀率、改變顯示格式、改變分辨率或者 以上的某些組合。RDP解釋器702和系統(tǒng)控制器708隨后封裝已處理的位流,并 且通過主系統(tǒng)總線206或者直接連接226發(fā)送以進(jìn)行網(wǎng)絡(luò)處理。
在系統(tǒng)400的情況下,TSA子系統(tǒng)700可以包括相對(duì)于系統(tǒng)200所描述的功 能,但是還包括對(duì)與GPU-P412結(jié)合操作的額外支持。有若干方法使RDP 702和 GPU-P 412交互,并且TSA子系統(tǒng)700的操作將會(huì)相應(yīng)地改變。在這里詳細(xì)地考 慮了兩種實(shí)施方式,第一種是"終止與再生",第二種是"卸載與增強(qiáng)"。這些實(shí) 施方式的變形也是可能的,這些變形可以利用每個(gè)實(shí)施方式的諸方面。
在"終止與再生"的情況下,RDP客戶機(jī)在主機(jī)系統(tǒng)上運(yùn)行。只要涉及到主 機(jī),RDP操作便終止并且RDP客戶機(jī)利用GPU-P412創(chuàng)建虛擬顯示。如前所述, GPU-P 412使用虛擬顯示空間通過創(chuàng)建單個(gè)大型的顯示映射來支持多個(gè)虛擬RT, 其中在該映射內(nèi)每個(gè)用戶被偏移,或者其中每個(gè)虛擬顯示被視為具有自己的映射的 單獨(dú)顯示。RDP客戶機(jī)軟件可能需要在需要安全客戶機(jī)通信的RDP主機(jī)的TSA子 系統(tǒng)700內(nèi)利用密鑰交換和安全處理。當(dāng)RDP客戶機(jī)接收到來自RDP主機(jī)的命令 時(shí),該客戶機(jī)利用GPU-P412將顯示幀遞送到顯示子系統(tǒng)中。GPU-P412隨后生成 適當(dāng)?shù)倪x擇性更新,該選擇性更新將通過路徑414發(fā)送出去。
包括矩形拼接片的選擇性更新分組隨后被編碼、封裝并轉(zhuǎn)發(fā)以供網(wǎng)絡(luò)傳送。使 用"終止與再生"來代替僅僅傳送繪圖命令到RT 300的主要原因是RT處不支持 請(qǐng)求命令。同樣起作用的其它更細(xì)微的原因是基于帶寬、命令的類型或序列、RT
的相關(guān)性能。
"卸載與增強(qiáng)"可以用重定向DirectX視頻和數(shù)據(jù)流的跟蹤軟件層進(jìn)行。 DirectX解釋器704截取主機(jī)DirectX調(diào)用。所截取的調(diào)用被卸載到完成DirectX調(diào) 用功能的數(shù)據(jù)/視頻編碼器和代碼轉(zhuǎn)換器706中。卸載該功能使得主機(jī)CPU 202對(duì) 于多用戶系統(tǒng)的其它用戶是可用的。編碼和譯碼可以利用允許最佳處理的對(duì)顯示環(huán) 境和網(wǎng)絡(luò)帶寬的理解來完成。
當(dāng)圖形命令在本地執(zhí)行并且轉(zhuǎn)發(fā)到RT用于執(zhí)行時(shí),RDP解釋器702也可以用 于管理狀態(tài)位。主機(jī)圖形執(zhí)行該命令的原因是,可以管理幀緩沖器的當(dāng)前副本以備 后續(xù)使用。因?yàn)閳D形命令在RT處被執(zhí)行,作為圖形命令的結(jié)果而在主機(jī)上改變的 拼接片無需使選擇性更新硬件發(fā)送己編碼的拼接片。為了防止如此,RDP解釋器 702需要計(jì)算哪些拼接片受到圖形命令的影響。可以管理S-緩沖器中對(duì)應(yīng)于這些拼 接片的狀態(tài)位,以便不執(zhí)行基于拼接片的選擇性更新。
跟蹤軟件層也可以用于協(xié)助對(duì)已改變的顯示幀的編碼選擇,以及用于要求生成 顯示更新流。執(zhí)行編碼是為了減少遠(yuǎn)程顯示系統(tǒng)300再生由主計(jì)算機(jī)的圖形和顯示 控制器412生成的顯示數(shù)據(jù)所需要的數(shù)據(jù)。跟蹤軟件層可以幫助標(biāo)識(shí)拼接片內(nèi)的數(shù) 據(jù)類型以便可以執(zhí)行最佳類型的編碼。某些RT可能沒有足夠的圖形處理能力來執(zhí) 行圖形命令,但可以向其發(fā)送已由GPU-P412處理過的已編碼數(shù)據(jù)。
例如,如果跟蹤軟件層標(biāo)識(shí)出拼接片的表面是實(shí)時(shí)視頻,那么具有平穩(wěn)空間轉(zhuǎn) 換和時(shí)間局部性的更高效的視頻編碼方案可以用于這些拼接片。如果跟蹤軟件層標(biāo)
識(shí)出拼接片的表面大部分是文本,那么可以采用對(duì)文本的陡沿和充足的空白空間更 有效的編碼方案。識(shí)別哪一類型的數(shù)據(jù)在哪一區(qū)域是一個(gè)復(fù)雜的問題。然而,跟蹤 軟件層的這一實(shí)施方式允許到協(xié)助該標(biāo)識(shí)的主機(jī)操作系統(tǒng)及主機(jī)顯示系統(tǒng)的圖形 驅(qū)動(dòng)器體系結(jié)構(gòu)的接口。例如,在Microsoft Windows 中,利用某種DirectShow 命令的表面可能是視頻數(shù)據(jù),然而使用通常與文本相關(guān)聯(lián)的顏色擴(kuò)展位塊傳輸(Bit Blits)的表面可能是文本。每種操作系統(tǒng)和圖形驅(qū)動(dòng)器體系結(jié)構(gòu)將會(huì)具有它自己的 特征指示器。其它實(shí)現(xiàn)可以執(zhí)行多種類型的并行數(shù)據(jù)編碼,并且隨后基于編碼器反 饋選擇使用產(chǎn)生最佳結(jié)果的編碼方案。
某些類型的編碼方案對(duì)特定類型的數(shù)據(jù)特別有用,而某些編碼方案對(duì)這類數(shù)據(jù) 較不敏感。例如,RLE對(duì)文本相當(dāng)好而對(duì)視頻相當(dāng)差,基于DCT的方案對(duì)視頻相 當(dāng)好而對(duì)文本相當(dāng)差,基于小波變換的方案對(duì)視頻和文本都可以表現(xiàn)良好。盡管在 該系統(tǒng)中可以使用任何類型的無損耗或有損耗編碼,小波變換編碼(也可以是無損
耗或有損耗類型)尤其是帶有可對(duì)每個(gè)拼接片進(jìn)行編碼而不考慮周邊拼接片的確定 性算術(shù)編碼器的漸進(jìn)小波變換特別適合于這一應(yīng)用。改進(jìn)該過程用于更好的實(shí)時(shí)執(zhí)
行的JPEG2000小波編碼器的衍生物是一個(gè)可能的實(shí)現(xiàn)。
圖8是一個(gè)優(yōu)選的實(shí)施方式子系統(tǒng)800 (圖2的820和圖4的840)的框圖, 該子系統(tǒng)用于卸載和加速聯(lián)網(wǎng)、安全、終端服務(wù)、存儲(chǔ)以及來自主機(jī)處理器的諸如 因特網(wǎng)訪問的其它任務(wù)。卸載子系統(tǒng)800主要通過系統(tǒng)總線206與主機(jī)系統(tǒng)200 或400通信。連接SDV01414和SDV02 416是任選的,并且為包括用于RT的圖 形處理的主機(jī)系統(tǒng)或者為通過網(wǎng)絡(luò)提供單個(gè)遠(yuǎn)程鍵盤、視頻和鼠標(biāo)(KVM)的重 定向以便系統(tǒng)管理的較簡(jiǎn)單圖形系統(tǒng)而被納入。這些連接可以是直接的或者通過接 口芯片850。接口控制810管理各種I/O連接。網(wǎng)絡(luò)接口可以包括到WAN和RT 的訪問。諸如千兆以太網(wǎng)的高速網(wǎng)絡(luò)是較佳的,但是并不總是實(shí)用的。諸如10/100 以太網(wǎng)、電力線以太網(wǎng)、基于同軸電纜的以太網(wǎng)、基于電話線的以太網(wǎng)或者諸如 802.11a、 b、 g、 n、 s的無線以太網(wǎng)標(biāo)準(zhǔn)之類的低速網(wǎng)絡(luò)及其未來衍生物和超寬帶 (UWB)版本也可以得到支持。
為了方便通過使用主網(wǎng)絡(luò)連接和在主機(jī)CPU上運(yùn)行的軟件來在"帶內(nèi)(in band)"遠(yuǎn)程控制主機(jī),可以實(shí)現(xiàn)并使用KVM?;蛘逰VM可以通過使用盡可能 少的主系統(tǒng)資源來在"帶外(out of band)"操作。當(dāng)在"帶外"使用時(shí),可能出 現(xiàn)使用網(wǎng)絡(luò)接口而非"帶內(nèi)"主網(wǎng)絡(luò)連接的視頻監(jiān)視。另外,代替在主處理器上運(yùn) 行的用于遠(yuǎn)程KVM功能的軟件,特別的獨(dú)立底板管理控制器(BMC)也通常被 包括在內(nèi)。BMC可以運(yùn)行諸如智能平臺(tái)管理接口 (IPMI)的協(xié)議。BMC可以提
供其自身的網(wǎng)絡(luò)接口或可以支持到主網(wǎng)絡(luò)控制器的側(cè)端口連接。
為了支持對(duì)不同卸載任務(wù)的動(dòng)態(tài)處理,卸載子系統(tǒng)800使用可編程和可配置并 且當(dāng)工作負(fù)荷改變時(shí)能夠快速進(jìn)行任務(wù)切換和重新配置的處理塊。各種存儲(chǔ)塊可包 括在每個(gè)處理塊中,并且較大的存儲(chǔ)器830也可以被包括。CPU 808是包括其自己 的高速緩沖存儲(chǔ)器的普通可編程處理器,并且可以為卸載子系統(tǒng)800執(zhí)行內(nèi)務(wù)處理 和管理以及執(zhí)行一些較高層協(xié)議和接口處理。網(wǎng)絡(luò)處理器和MAC控制器806管理 卸載子系統(tǒng)的網(wǎng)絡(luò)接口控制(NIC)功能,并且可以管理多個(gè)雙向通信通道。諸如 內(nèi)容地址存儲(chǔ)器(CAM)特定內(nèi)部存儲(chǔ)器以及常規(guī)存儲(chǔ)器也可以包括在NIC 806 內(nèi)。完整的NIC 806功能可能需要來自安全處理器(SP) 804和可配置數(shù)據(jù)處理器 (CDP) 802的額外處理。
可配置數(shù)據(jù)處理器802可被設(shè)計(jì)成,容易被重新配置以便在通常與專用硬件塊 相關(guān)聯(lián)的吞吐量下執(zhí)行不同的處理。通過利用CDP 802而非專用硬件,不同的卸
載任務(wù)可由同一硬件執(zhí)行。用于設(shè)計(jì)諸如可重新配置數(shù)據(jù)路徑、動(dòng)態(tài)指令集、超長
指令字(VLIW)、單指令多數(shù)據(jù)(SIMD)、多指令多數(shù)據(jù)(MIMD)、數(shù)字信令 處理(DSP)以及其它形式的可重新配置計(jì)算之類的CDP的現(xiàn)有技術(shù)方法可以進(jìn) 行組合,以便執(zhí)行超高性能的計(jì)算。安全處理器804可由某種形式的CDP 802、更 專用的硬件或者CDP 802與用于加密技術(shù)及密鑰相關(guān)功能的額外專用硬件塊的組 合來實(shí)現(xiàn)。
為了終端服務(wù)加速,CDP 802可被配置成,對(duì)拼接片和矩形的執(zhí)行數(shù)據(jù)編碼、 對(duì)視頻或數(shù)據(jù)執(zhí)行各種形式的譯碼或轉(zhuǎn)碼、生成和比較拼接片簽名以及在TSA 224 或424部分描述的其它任務(wù)。為了存儲(chǔ)加速,CDP 802可被配置成,用于iSCSI、 光纖信道(FC)、光纖通道因特網(wǎng)協(xié)議(FCIP)以及因特網(wǎng)協(xié)議相關(guān)任務(wù)的不同 方面。連接416可被配置成連接到FC而非SDV02。為了因特網(wǎng)內(nèi)容加速,CDP 可被配置成,處理可擴(kuò)展標(biāo)記語言(XML)通信量、簡(jiǎn)單對(duì)象訪問協(xié)議(SOAP)、 HTTP通信量、Java虛擬機(jī)(JVM)以及與基于因特網(wǎng)的通信相關(guān)聯(lián)的其它通信量。
為了管理通過SDVOl 214和SDV02 216路徑傳入的數(shù)據(jù),可以提供特定的緩 沖和處理,或者可以將CDP 802配置成執(zhí)行特定任務(wù),這些任務(wù)可能包括將較大 的矩形解構(gòu)成拼接片、處理拼接片(包括簽名生成和比較)以及當(dāng)各種分組與目標(biāo) RT相關(guān)時(shí)對(duì)它們進(jìn)行管理。在前的拼接片簽名可以存儲(chǔ)在子系統(tǒng)800內(nèi),使得當(dāng) 接收到新的拼接片時(shí)可以對(duì)簽名進(jìn)行比較。
GPU可以具有用于包括VGA、 DVO、 DVI、 SDVO、顯示端口或者任意數(shù)量 的較高速或較低速端口的顯示輸出端口的任意數(shù)量的物理和邏輯連接。這樣,在 GPU顯示輸出端口和卸載子系統(tǒng)800之間可能需要接口芯片850。來自卸載子系統(tǒng) 的連接816可被實(shí)現(xiàn)為任意帶寬的PCI快速端口。在一個(gè)優(yōu)選的實(shí)施方式中,卸 載子系統(tǒng)800充當(dāng)PCI快速根控制器,并且接口控制810管理PCI快速端口。接 口芯片可以執(zhí)行某些緩沖以及某些所需預(yù)處理。例如,接口芯片可以緩沖多條顯示 數(shù)據(jù)線,并執(zhí)行數(shù)據(jù)打包、格式轉(zhuǎn)換、色空間轉(zhuǎn)換、子帶分解或者任意數(shù)量的其它 功能。在一個(gè)優(yōu)選的實(shí)施方式中,通過DVO連接416從圖形芯片輸出的是24位 RGB數(shù)據(jù)。接口芯片850緩沖RGB數(shù)據(jù),將它轉(zhuǎn)換成YUV 4:4:4數(shù)據(jù),并將這些 像素拆分成單獨(dú)的Y、 U和V數(shù)據(jù)分組。使用接口控制810的卸載子系統(tǒng)800執(zhí) 行PCI快速根控制,并且Y、 U和V數(shù)據(jù)分組通過路徑816發(fā)送到存儲(chǔ)器830的 不同區(qū)域。
卸載子系統(tǒng)800可以由可編程解決方案來實(shí)現(xiàn),該解決方案還解決若干不相關(guān) 操作的一般卸載任務(wù)。服務(wù)器可以受益于對(duì)網(wǎng)絡(luò)、存儲(chǔ)、安全以及其它任務(wù)的卸載。 可以將卸載處理器設(shè)計(jì)成靜態(tài)或動(dòng)態(tài)地平衡各種卸載任務(wù),并且對(duì)任何給定的工作 負(fù)荷加快系統(tǒng)的總吞吐量。例如,服務(wù)器可能在白天為瘦客戶機(jī)執(zhí)行基于服務(wù)器的
計(jì)算,而在晚上運(yùn)行大型數(shù)據(jù)庫操作。在白天,卸載引擎將運(yùn)行對(duì)TSA描述的操 作。在晚上卸載引擎將運(yùn)行iSCSI加速以從磁盤存儲(chǔ)器系統(tǒng)訪問大型數(shù)據(jù)庫。這種 靈活性可以由跟蹤各種工作負(fù)荷的板上或片上管理處理器進(jìn)行管理。在卸載任務(wù)之 間切換的顆度可以極小。可以將卸載引擎設(shè)計(jì)成執(zhí)行極快的上下文轉(zhuǎn)接,使其能夠 在單一會(huì)話中為同一會(huì)話執(zhí)行網(wǎng)絡(luò)、終端服務(wù)、存儲(chǔ)、安全以及其它卸載任務(wù)。
圖9是根據(jù)本發(fā)明一個(gè)實(shí)施方式的用于執(zhí)行終端服務(wù)加速過程的方法步驟的 流程圖。為了清楚起見,參考顯示包括視頻的數(shù)據(jù)來討論該過程。然而,可以預(yù)期, 涉及音頻、鍵盤、鼠標(biāo)和其它數(shù)據(jù)的過程同樣適用于本發(fā)明。最初,在步驟910 中,基于多用戶服務(wù)器的計(jì)算機(jī)200或400和遠(yuǎn)程終端系統(tǒng)300遵循不同過程來初 始化和設(shè)置各種子系統(tǒng)的主機(jī)側(cè)和終端側(cè)以便啟動(dòng)每個(gè)RT。在步驟912中,在主 機(jī)200或主機(jī)400上的跟蹤軟件層與TSA 224或TSA-G 424結(jié)合操作來處理各種 圖形和視頻調(diào)用,以便確定需要執(zhí)行哪些操作以及在何處執(zhí)行。注意主機(jī)系統(tǒng)200 并不利用常駐主機(jī)GPU或虛擬幀緩沖器來執(zhí)行RT圖形操作。
如果圖形操作包括2D繪圖,那么,在步驟924中,2D繪圖引擎GPU-P 412 較佳地將這些操作處理成RAM430中的適當(dāng)虛擬顯示。類似地,在步驟926中由 GPU412對(duì)RAM中的適當(dāng)?shù)奶摂M顯示執(zhí)行3D繪圖。在步驟928中,TSA 224或 TSA-G 424可以確定視頻或圖形命令將被轉(zhuǎn)發(fā)到適當(dāng)RT。到步驟940的流程可以 不受旁路步驟928的影響。在步驟940中,GPU-P412將每個(gè)虛擬顯示合成為適于 顯示的幀。這一合成可以用CPU子系統(tǒng)202、 2D引擎、3D引擎以及GPU 412內(nèi) 的任何視頻處理元件的操作的任意組合來執(zhí)行。作為合成步驟的一部分,由于 GPU-P 412在圖形處理硬件中包含S-緩沖器管理,繪圖引擎為相應(yīng)的拼接片更新 S-緩沖器。
如返回路徑944所示,GPU-P 412可以根據(jù)需要返回處理同一RT或不同RT 的下一幀。 一旦執(zhí)行了合成操作,步驟946便管理拼接片和適當(dāng)位置處相關(guān)聯(lián)的 S-緩沖器狀態(tài)位及簽名位。步驟946考慮經(jīng)過可能影響S-緩沖器狀態(tài)位的視頻和圖 形旁路步驟928處理的任何圖形和視頻操作。例如,如果繪圖操作在步驟924執(zhí)行 并經(jīng)由步驟928旁路到遠(yuǎn)程終端,則不需要對(duì)繪圖操作在RT處發(fā)生時(shí)受該操作影
響的拼接片執(zhí)行選擇性更新。
隨著拼接片的狀態(tài)位和簽名在步驟946中被處理(該過程可以發(fā)生在GPU-P
412內(nèi)或者與TSA-G 424相結(jié)合),步驟950便可以執(zhí)行這些拼接片的選擇性更新。 這些拼接片的大小可以固定或者可變。包括在拼接片內(nèi)的報(bào)頭信息將會(huì)指示格式以 及預(yù)期的遠(yuǎn)程終端目標(biāo)。在步驟954中,TSA-G424對(duì)從步驟950接收到的拼接片 執(zhí)行必要的編碼。該編碼較佳地是確定性的方案,其中拼接片以及周邊的拼接片內(nèi) 的數(shù)據(jù)定向不需要在編碼步驟中予以考慮。同樣在步驟954中,步驟928之后的視 頻數(shù)據(jù)和圖形命令被處理。視頻數(shù)據(jù)可以在比特率或幀率改變的情況下被轉(zhuǎn)碼,在 頻率域或者空間域縮放以及在必要時(shí)被譯碼成不同的編碼標(biāo)準(zhǔn)。經(jīng)由返回路徑968 的網(wǎng)絡(luò)反饋連同RT —起可以幫助確定編碼步驟954。
步驟954還執(zhí)行需要額外處理的任何圖形操作,其中可能需要對(duì)圖形數(shù)據(jù)進(jìn)行 編碼。在步驟958中,TSA-G424對(duì)前一步驟中處理過的圖形命令、數(shù)據(jù)傳輸或者 視頻傳輸執(zhí)行進(jìn)一步的封裝。這一步驟中還在諸如帶寬、等待時(shí)間、特定分組大小 以及傳輸問題之類的網(wǎng)絡(luò)特性方面考慮網(wǎng)絡(luò)反饋。在步驟962中,已封裝的分組經(jīng) 由網(wǎng)絡(luò)控制器228進(jìn)行處理,并且該分組沿著網(wǎng)絡(luò)傳送到適當(dāng)?shù)腞T300。
網(wǎng)絡(luò)處理步驟962使用來自系統(tǒng)控制的信息。該信息可以包括關(guān)于哪一遠(yuǎn)程顯 示需要哪些幀更新數(shù)據(jù)流、何種類型的網(wǎng)絡(luò)傳輸協(xié)議用于每個(gè)幀更新流以及每個(gè)幀 更新流的每一部分的優(yōu)先級(jí)和重試特性如何的信息。網(wǎng)絡(luò)處理步驟962利用網(wǎng)絡(luò)控 制器228來管理任意數(shù)量的網(wǎng)絡(luò)連接。各種網(wǎng)絡(luò)可以包括千兆以太網(wǎng)、10/100以太 網(wǎng)、電力線以太網(wǎng)、基于同軸電纜的以太網(wǎng)、基于電話線的以太網(wǎng)或者諸如802.11a、 b、 g、 n、 s的無線以太網(wǎng)標(biāo)準(zhǔn)以及未來衍生物。其它非以太網(wǎng)連接也是可能的, 并且可以包括USB、 1394a、 1394b、 1394c或者諸如超寬帶(UWB)或WiMAX 的其它無線協(xié)議。
圖10是根據(jù)本發(fā)明一個(gè)實(shí)施方式的用于執(zhí)行網(wǎng)絡(luò)接收和顯示過程的方法的步 驟流程圖。為了清楚起見,參考顯示包括視頻的數(shù)據(jù)來討論該過程。然而,可以預(yù) 期的是,涉及音頻和其它數(shù)據(jù)的過程同樣適用于本發(fā)明。
在圖10的實(shí)施方式中,最初,在步驟1012中,遠(yuǎn)程終端300較佳地經(jīng)由路徑 2卯從主計(jì)算機(jī)200接收網(wǎng)絡(luò)傳送。隨后,在步驟1014中,網(wǎng)絡(luò)控制器336較佳 地執(zhí)行網(wǎng)絡(luò)處理過程來執(zhí)行網(wǎng)絡(luò)協(xié)議以便接收所發(fā)送的數(shù)據(jù),無論該傳輸是有線還 是無線的。
在步驟1020中,CPU 324解釋傳入傳輸以確定該傳輸針對(duì)哪一功能單元。如
果傳入傳輸是2D圖形命令,那么CPU 324將會(huì)經(jīng)由2D繪圖引擎332初始化操作; 如果是3D命令,那么經(jīng)由3D繪圖引擎334;如果是視頻數(shù)據(jù)流,那么經(jīng)由視頻 解碼器328;以及如果是編碼的數(shù)據(jù)拼接片,那么經(jīng)由數(shù)據(jù)解碼器326。某些繪圖 命令可能使用繪圖引擎和數(shù)據(jù)解碼器326兩者。
數(shù)量改變的命令和數(shù)據(jù)傳輸可能發(fā)生,各種功能單元操作并且較佳地將數(shù)據(jù)信 息操作成適當(dāng)?shù)目娠@示格式。在步驟1030中,來自每個(gè)功能單元的已操作的數(shù)據(jù) 經(jīng)由幀管理器330來組合,并且可以產(chǎn)生經(jīng)更新的顯示幀到RAM312中。經(jīng)更新 的顯示幀可以包括來自先前幀的顯示幀數(shù)據(jù)、已操作并且已解碼的新幀數(shù)據(jù)、以及 用于隱藏在新幀數(shù)據(jù)傳輸過程中發(fā)生的顯示數(shù)據(jù)差錯(cuò)所需的任何處理。
最后,在步驟1040中,顯示控制器330向遠(yuǎn)程終端顯示屏310提供最近完成 的顯示幀數(shù)據(jù),以供遠(yuǎn)程終端系統(tǒng)300的用戶觀看。顯示刷新是通常在遠(yuǎn)程終端控 制器314和顯示310之間以每秒60到72次運(yùn)行以避免閃爍的異步操作。在步驟 1030中,產(chǎn)生新的顯示幀通常是很少經(jīng)常發(fā)生的,盡管必要時(shí)可能以每秒30幀或 以上發(fā)生。在沒有屏幕保護(hù)程序或斷電模式的情況下,在顯示刷新過程中如反饋路 徑1050所指示,顯示處理器將會(huì)繼續(xù)用最近完成的顯示幀更新遠(yuǎn)程顯示屏310。
本發(fā)明因此實(shí)現(xiàn)了支持用戶可以在各種應(yīng)用中有效利用的遠(yuǎn)程終端的基于多 用戶服務(wù)器的計(jì)算機(jī)系統(tǒng)。例如,企業(yè)可能在一個(gè)地點(diǎn)部署計(jì)算機(jī)系統(tǒng)架,而在遠(yuǎn) 程地點(diǎn)用戶的桌上向他們提供的簡(jiǎn)單便宜的遠(yuǎn)程終端系統(tǒng)300。通過LAN、 WAN 或者通過另一連接可以支持不同的遠(yuǎn)程地點(diǎn)。RT可以是臺(tái)式個(gè)人計(jì)算機(jī)或者筆記 本式個(gè)人計(jì)算機(jī),或者在另一系統(tǒng)中可以是諸如蜂窩電話、個(gè)人數(shù)字助理的專門設(shè) 備,或者與諸如便攜式視頻播放器、游戲機(jī)或遠(yuǎn)程控制系統(tǒng)的其它消費(fèi)品相結(jié)合。 用戶可以靈活地利用多用戶系統(tǒng)100的主計(jì)算機(jī)來獲得主計(jì)算機(jī)系統(tǒng)所能提供給 本地用戶的相同級(jí)別的軟件兼容性和類似級(jí)別的性能。因此,本發(fā)明有效地實(shí)現(xiàn)了 利用各種不同組件來促進(jìn)最優(yōu)系統(tǒng)協(xié)作性和功能性的靈活多用戶系統(tǒng)。
以上參考優(yōu)選的實(shí)施方式對(duì)本發(fā)明進(jìn)行了說明。根據(jù)本公開,其它實(shí)施方式對(duì) 本領(lǐng)域技術(shù)人員而言將會(huì)是顯而易見的。例如,除了在以上優(yōu)選的實(shí)施方式中所描 述的那些配置外,很容易使用其它配置實(shí)現(xiàn)本發(fā)明。另外,,本發(fā)明還可以有效地 與除了以上作為優(yōu)選實(shí)施方式所描述的以外的其它系統(tǒng)結(jié)合使用。因此,本發(fā)明僅 由所附權(quán)利要求書限定,旨在涵蓋對(duì)優(yōu)選實(shí)施方式的這些或其它變化。
權(quán)利要求
1.一種能夠支持多個(gè)遠(yuǎn)程終端的主計(jì)算機(jī)系統(tǒng),包括圖形和顯示子系統(tǒng),具有能夠?yàn)槎鄠€(gè)終端存儲(chǔ)顯示幀的顯示存儲(chǔ)器;用于生成顯示幀的一個(gè)或多個(gè)繪圖引擎,每個(gè)所述顯示幀可以對(duì)應(yīng)于遠(yuǎn)程終端處的顯示幀;以及跟蹤顯示幀的經(jīng)修改的子幀以及基于所述跟蹤執(zhí)行來自所述顯示存儲(chǔ)器的選擇性更新的裝置;將所述圖形和顯示子系統(tǒng)連接到所述主計(jì)算機(jī)系統(tǒng)中的主機(jī)CPU的裝置;以及管理來自所述顯示存儲(chǔ)器的所述選擇性更新以便僅僅將所述選擇性更新通過網(wǎng)絡(luò)子系統(tǒng)傳送到對(duì)應(yīng)的所述遠(yuǎn)程終端的裝置。
2. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述圖形和顯示子系統(tǒng)利用顯示 存儲(chǔ)器來管理狀態(tài)位以跟蹤哪些子幀己被修改以及在傳送選擇性更新輸出之前所 述選擇性更新在何處檢査這些狀態(tài)位。
3. 如權(quán)利要求1所述的系統(tǒng),其特征在于,需要選擇性更新的所述被跟蹤的 子幀在經(jīng)由所述網(wǎng)絡(luò)子系統(tǒng)被傳送之前首先被編碼以降低帶寬要求。
4. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述圖形和顯示子系統(tǒng)通過專用 連接向編碼子系統(tǒng)輸出所述選擇性更新,所述編碼子系統(tǒng)在所述選擇性更新被傳輸 到所述網(wǎng)絡(luò)子系統(tǒng)之前對(duì)它們進(jìn)行編碼。
5. 如權(quán)利要求4所述的系統(tǒng),其特征在于,除了由所述圖形和顯示子系統(tǒng)執(zhí) 行的跟蹤外,所述編碼子系統(tǒng)執(zhí)行附加的跟蹤以確定是否需要將所述選擇性更新傳 送到所述遠(yuǎn)程終端。
6. 如權(quán)利要求4所述的系統(tǒng),其特征在于,所述編碼子系統(tǒng)從所述圖形和顯 示子系統(tǒng)或從所述主機(jī)CPU接收?qǐng)D形命令,并且處理所述圖形命令以便經(jīng)由所述 網(wǎng)絡(luò)子系統(tǒng)傳送到所述對(duì)應(yīng)的遠(yuǎn)程終端。
7. 如權(quán)利要求1所述的系統(tǒng),其特征在于,所述子幀是固定大小的拼接片, 并且所述跟蹤是對(duì)所述固定大小的拼接片執(zhí)行的。
8. 如權(quán)利要求7所述的系統(tǒng),其特征在于,所述圖形和顯示子系統(tǒng)在所述拼 接片上生成簽名,并且管理后續(xù)拼接片的所述簽名,以確定所述拼接片是否要被選 擇更新并發(fā)送到所述編碼子系統(tǒng)。
9. 一種能夠支持多個(gè)遠(yuǎn)程終端的主計(jì)算機(jī)系統(tǒng),其包括 經(jīng)由系統(tǒng)總線連接到所述主計(jì)算機(jī)系統(tǒng)內(nèi)其它子系統(tǒng)的主機(jī)CPU; 用于管理所述遠(yuǎn)程終端的卸載子系統(tǒng),具有截取所述總線上的圖形命令或者視頻數(shù)據(jù)使其不被所述主機(jī)CPU處理的 裝置;以及編碼、譯碼或者以其它方式處理所述己截取的圖形命令或者視頻數(shù)據(jù)的裝 置;以及管理所述已截取和已處理的圖形命令或者視頻數(shù)據(jù)以便經(jīng)由網(wǎng)絡(luò)子系統(tǒng)傳送 到對(duì)應(yīng)的所述遠(yuǎn)程終端的裝置。
10. 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述圖形命令被截取,并且與所 述圖形命令相關(guān)聯(lián)的數(shù)據(jù)塊由所述卸載子系統(tǒng)進(jìn)行編碼,以減少由所述網(wǎng)絡(luò)傳送所 需的帶寬。
11. 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述視頻數(shù)據(jù)由所述卸載子系統(tǒng) 截取并且所述視頻數(shù)據(jù)被處理,以匹配網(wǎng)絡(luò)性能和個(gè)別所述遠(yuǎn)程終端的解碼能力, 其中所述處理可以包括改變比特率(轉(zhuǎn)碼)、幀率、分辨率或者編碼算法(譯碼)。
12. 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述截取裝置包括在所述主機(jī) CPU上運(yùn)行的跟蹤軟件層。
13. 如權(quán)利要求9所述的系統(tǒng),其特征在于,所述卸載子系統(tǒng)包括用于從圖形 和顯示控制器連接到一個(gè)或多個(gè)顯示輸出路徑的裝置。
14. 如權(quán)利要求13所述的系統(tǒng),其特征在于,所述圖形和顯示控制器為一個(gè) 本地顯示產(chǎn)生輸出,并且遠(yuǎn)程管理可以經(jīng)由所述遠(yuǎn)程終端來執(zhí)行。
15. 如權(quán)利要求13所述的系統(tǒng),其特征在于,所述卸載子系統(tǒng)在將其網(wǎng)絡(luò)傳 送到所述遠(yuǎn)程終端之一之前,對(duì)所述主機(jī)系統(tǒng)圖形和顯示輸出執(zhí)行編碼。
16. 如權(quán)利要求13所述的系統(tǒng),其特征在于,所述圖形和顯示控制器支持多 個(gè)RT,并且所述連接向所述卸載系統(tǒng)提供對(duì)應(yīng)于多個(gè)遠(yuǎn)程終端中不同子幀的選擇 性子幀更新。
17. —種用于操作具有多個(gè)遠(yuǎn)程終端的多用戶主機(jī)系統(tǒng)的方法,其包括以下步驟使用包括軟件、主CPU和協(xié)助所述CPU處理圖形命令或者視頻數(shù)據(jù)的卸載引擎的主計(jì)算機(jī);通過改變比特率、改變分辨率、改變幀率或者改變編碼算法來處理所述視頻數(shù)據(jù);通過封裝和編碼與所述圖形命令相關(guān)聯(lián)的數(shù)據(jù)來處理所述圖形命令; 確定哪些所述遠(yuǎn)程終端是所述已處理的圖形命令或者所述已處理的視頻數(shù)據(jù) 的目的地;以及根據(jù)網(wǎng)絡(luò)協(xié)議技術(shù)通過網(wǎng)絡(luò)接口傳播所述已處理的圖形命令或者已處理的視 頻數(shù)據(jù)。
18. 如權(quán)利要求17所述的方法,其特征在于,所述多用戶主機(jī)系統(tǒng)包括帶有 與所述遠(yuǎn)程終端中一個(gè)或多個(gè)相對(duì)應(yīng)的幀存儲(chǔ)器的本地圖形處理器,其中所述本地圖形處理器執(zhí)行以下步驟將所述圖形命令體現(xiàn)在顯示幀中;在子幀基礎(chǔ)上確定在所述遠(yuǎn)程終端的每一個(gè)上哪些子幀需要被選擇性更新;以及將所述選擇性更新發(fā)送到所述卸載引擎。
19. 如權(quán)利要求18所述的方法,其特征在于,所述卸載引擎對(duì)所述選擇性更 新子幀執(zhí)行編碼。
20. 如權(quán)利要求17所述的方法,其特征在于,所述卸載引擎還用于從所述主 機(jī)CPU上卸載一個(gè)或多個(gè)其它處理任務(wù)。
全文摘要
一種多用戶主計(jì)算機(jī)系統(tǒng)包括處理應(yīng)用程序的主計(jì)算機(jī)和用于多個(gè)遠(yuǎn)程終端的桌面環(huán)境。該主計(jì)算機(jī)包括終端服務(wù)卸載處理器以補(bǔ)充主機(jī)CPU的處理。對(duì)每個(gè)遠(yuǎn)程終端,該終端服務(wù)卸載處理器可以改進(jìn)視頻和圖形性能,并且允許多用戶主計(jì)算機(jī)系統(tǒng)更有效率地支持多個(gè)用戶。該主計(jì)算機(jī)可以包括圖形處理器,該圖形處理器管理每一遠(yuǎn)程終端的虛擬顯示并且提供子幀數(shù)據(jù)的選擇性更新。適當(dāng)時(shí),子幀數(shù)據(jù)被編碼并且通過網(wǎng)絡(luò)發(fā)送到遠(yuǎn)程終端。視頻數(shù)據(jù)流也由終端服務(wù)卸載處理器進(jìn)行優(yōu)化,并且為目標(biāo)遠(yuǎn)程終端及其相應(yīng)網(wǎng)絡(luò)連接而進(jìn)行優(yōu)化。該終端服務(wù)卸載處理器可以在可編程硬件中實(shí)現(xiàn),并且可以是單獨(dú)的子系統(tǒng),或者還可以用于執(zhí)行其它卸載任務(wù)。
文檔編號(hào)G06F15/16GK101351785SQ200680050231
公開日2009年1月21日 申請(qǐng)日期2006年10月19日 優(yōu)先權(quán)日2005年11月1日
發(fā)明者N·瑪格魯易斯 申請(qǐng)人:凱利斯塔技術(shù)股份有限公司