專利名稱:多用戶顯示代理服務(wù)器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及多用戶主機(jī)系統(tǒng),尤其涉及使用代理服務(wù)器支持用于 遠(yuǎn)程客戶機(jī)的終端服務(wù)。
背景技術(shù):
的討論
開(kāi)發(fā)有效的多用戶主機(jī)系統(tǒng)是當(dāng)代系統(tǒng)設(shè)計(jì)師和制造商的重要目標(biāo)。
常規(guī)的計(jì)算機(jī)系統(tǒng)可使用本地顯示設(shè)備來(lái)向一個(gè)用戶直接顯示輸出。 因?yàn)橛筛鞣N使顯示設(shè)備與計(jì)算機(jī)系統(tǒng)的輸出電耦合的物理連接所強(qiáng)加的限 制,本地顯示設(shè)備通??拷?jì)算機(jī)系統(tǒng)放置。 一些計(jì)算機(jī)系統(tǒng)可以支持具 有由該物理連接引起的相似接近限制的第二顯示設(shè)備。
遠(yuǎn)程用戶需要有選擇適當(dāng)?shù)牟榭次恢煤团c主系統(tǒng)的網(wǎng)絡(luò)連接的附加靈 活性。例如,在公司環(huán)境中,企業(yè)可能希望將所有的主機(jī)保存在既有物理 安全性又有諸如空調(diào)和電源備用系統(tǒng)的環(huán)境管理的安全的中央"計(jì)算機(jī)機(jī) 房"。然而,對(duì)于用戶而言,從他們的辦公室和從位于"計(jì)算機(jī)機(jī)房"之 外的桌面使用主機(jī)系統(tǒng)是有必要的。
今天通常的辦公室環(huán)境包括物理地位于用戶位置處的個(gè)人計(jì)算機(jī)和日 益增多的瘦客戶機(jī)。這些個(gè)人計(jì)算機(jī)和瘦客戶機(jī)在具有用于存儲(chǔ)、文件服 務(wù)、文件共享、網(wǎng)絡(luò)管理和各種管理服務(wù)的集中式系統(tǒng)的網(wǎng)絡(luò)上操作。起 初,當(dāng)用戶在他們的本地桌面上運(yùn)行應(yīng)用程序時(shí),系統(tǒng)將所有的與計(jì)算機(jī) 系統(tǒng)相關(guān)聯(lián)的磁盤(pán)存儲(chǔ)器集于中心。近來(lái),認(rèn)識(shí)到安全性的益處、降低的 操作成本、以及集中控制的普遍需求,個(gè)人計(jì)算機(jī)和瘦客戶機(jī)可在基于服
務(wù)器計(jì)算(SBC)方案中作為遠(yuǎn)程終端(RT)允許,這些SBC解決方案在 服務(wù)器上運(yùn)行應(yīng)用程序。
針對(duì)SBC環(huán)境中RT的傳統(tǒng)方法是主系統(tǒng)使用某種形式的服務(wù)器到客戶機(jī)通信交換,諸如微軟的遠(yuǎn)程顯示協(xié)議(RDP) 。 RDP在服務(wù)器上使用 它自己的視頻驅(qū)動(dòng)程序,且使用RDP協(xié)議將繪制信息構(gòu)建成網(wǎng)絡(luò)分組且經(jīng) 由網(wǎng)絡(luò)將它們發(fā)送到客戶機(jī)??蛻魴C(jī)接收繪制數(shù)據(jù)且將這些分組轉(zhuǎn)換成相 應(yīng)的微軟Win32圖形設(shè)備接口 (GDI) API調(diào)用。對(duì)將客戶機(jī)鍵盤(pán)和鼠標(biāo) 命令重定向到服務(wù)器以及管理本地音頻和本地客戶機(jī)驅(qū)動(dòng)程序的支持也被 包括在內(nèi)。
為了增強(qiáng)主系統(tǒng)與客戶機(jī)之間的通信,其它系統(tǒng)已經(jīng)使用主系統(tǒng)的主 CPU從而為RT改進(jìn)性能。這已經(jīng)針對(duì)痩客戶機(jī)和作為遠(yuǎn)程客戶機(jī)的傳統(tǒng) PC進(jìn)行。這種方法對(duì)一次只支持一個(gè)用戶的主系統(tǒng)有效。然而,對(duì)多用戶 系統(tǒng),在主系統(tǒng)上使用主CPU來(lái)為任一用戶改進(jìn)性能的方法具有相當(dāng)大的 局限性。用于針對(duì)一個(gè)用戶作最優(yōu)化的諸如主存儲(chǔ)器和CPU周期的計(jì)算資 源可減少支持額外用戶的工作負(fù)荷的能力。
從單個(gè)主機(jī)有效地支持多個(gè)用戶可以降低成本。在通常的辦公室環(huán)境 中,每個(gè)人同時(shí)且同樣地使用他們的計(jì)算機(jī)是很少的,任何一個(gè)用戶使用 他們計(jì)算機(jī)的所有計(jì)算資源也是很少的。因此例如,有一百個(gè)辦公室的公 司可能只需要在任一時(shí)刻支持六十個(gè)用戶的系統(tǒng)。即使如此,這種系統(tǒng)也 可被設(shè)計(jì)成支持所有的百位用戶,從而給他們足夠的計(jì)算吞吐量以顯現(xiàn)出 他們每個(gè)都有他們自己的主機(jī)。在分布式辦公室環(huán)境中,集中式多用戶系 統(tǒng)可經(jīng)由各種帶寬鏈路連接以支持在各時(shí)區(qū)的不同工作時(shí)間期間在世界不 同部分位置上的RT。
基于服務(wù)器計(jì)算是另一種更有效地為多個(gè)用戶分配計(jì)算資源的方法, 其中用戶的應(yīng)用程序在該服務(wù)器上運(yùn)行且只有RT服務(wù)在該用戶終端上得 到支持。SBC使主系統(tǒng)能在多用戶操作環(huán)境中動(dòng)態(tài)地分配諸如存儲(chǔ)器和 CPU周期的共享資源。SBC系統(tǒng)可以采用多用戶操作系統(tǒng)、虛擬機(jī)(VM)、 負(fù)載均衡的技術(shù)及其它手段來(lái)基于多個(gè)標(biāo)準(zhǔn)準(zhǔn)許不同用戶訪問(wèn)不同級(jí)別的 性能和資源??墒褂貌煌瑑?yōu)先級(jí)方案分配SBC資源。SBC可實(shí)現(xiàn)更高的數(shù) 據(jù)安全性,集中對(duì)機(jī)構(gòu)的支持,增強(qiáng)的災(zāi)難恢復(fù)及業(yè)務(wù)持續(xù),且減少跨組 織的數(shù)據(jù)存儲(chǔ)需求。web服務(wù)器是可以為包括基于瀏覽器的客戶機(jī)在內(nèi)的各種客戶機(jī)提供多用戶平臺(tái)的一類SBC。
基于刀片的服務(wù)器為可縮放多用戶主系統(tǒng)實(shí)現(xiàn)一有效的體系結(jié)構(gòu)。刀片計(jì) 算功能、輸入/輸出(I/O)功能、底板體系結(jié)構(gòu)以及交換的劃分在基于刀片服 務(wù)器的設(shè)計(jì)中都是重要的。每個(gè)刀片可以構(gòu)成一完整計(jì)算機(jī)的功能或者刀片服 務(wù)器可以跨刀片分享重要功能。隨著CPU不斷通過(guò)包括多處理器核來(lái)增加它
們的性能,將單個(gè)用戶限制于單個(gè)刀片產(chǎn)生了降低的經(jīng)濟(jì)意義。刀片服務(wù)器系 統(tǒng)中的每個(gè)刀片可能需要被遠(yuǎn)程監(jiān)視。隨著刀片系統(tǒng)的多功能本質(zhì), 一刀片機(jī) 架可能需要被配置成最佳地匹配不同工作負(fù)荷。
圖1示出典型的現(xiàn)有技術(shù)多刀片系統(tǒng)級(jí)體系結(jié)構(gòu)100,其包括標(biāo)記為1 到8 (102、 104、 106、 108、 110、 112、 114和116)的刀片和交換機(jī)120 和112以及通過(guò)每個(gè)交換機(jī)的路徑。交換機(jī)還可以包括它們之間以及到鏈 路124的路徑,該鏈路124可以進(jìn)一步將一刀片機(jī)架擴(kuò)展到另一刀片機(jī)架 或-一些其它子系統(tǒng)。圖l的刀片在數(shù)量上可有變化且每個(gè)刀片可以是處理 器刀片、1/0刀片、交換刀片或該三種的某組合。1/0刀片可以包括它們自 己的外部接口,如由刀片4 108路徑180和由刀片8 116路徑190所示。外 部接口的示例可以包括諸如光纖信道的非網(wǎng)絡(luò)接口和諸如以太網(wǎng)和10G以 太網(wǎng)的iSCSI或網(wǎng)絡(luò)接口。
交換機(jī)1 120和交換機(jī)2 122的示例交換矩陣示出從每個(gè)交換機(jī)到每個(gè) 刀片的連接140和142。每個(gè)交換機(jī)的物理或邏輯傳輸?shù)念愋涂梢允窍嗤?或不同的。路徑144可以將交換機(jī)120和122連接或橋接到一起。交換機(jī) 和連接的組合被稱為交換結(jié)構(gòu)150,該交換結(jié)構(gòu)150可以分布在每個(gè)刀片 上、是底底板的一部分、在交換刀片上實(shí)現(xiàn)或可以涉及該三個(gè)的組合。該 交換結(jié)構(gòu)的路徑可以是單向的、雙向的或它們的組合。每個(gè)刀片可以與任 何數(shù)目的交換機(jī)連接,且可以包括作為該刀片功能一部分的針對(duì)不同交換 機(jī)的橋接功能。更先進(jìn)的系統(tǒng)可包括全網(wǎng)型拓?fù)浣Y(jié)構(gòu)且可以具有冗余。
一些用于該交換結(jié)構(gòu)150的連接的示例包括快速外圍組件互連(PCI)、 IOG附連單元接口 (XAUI)、無(wú)限帶寬、高速IO、星型結(jié)構(gòu)、先進(jìn)交換互 連(ASI)、千兆比特以太網(wǎng)、光纖信道以及其它電互連和光互連中的一個(gè)或多個(gè)信道。在一些情況下,每個(gè)刀片的功能芯片可以直接包括結(jié)構(gòu)接口 130。在其它情況下該刀片可以包括執(zhí)行接口連接的結(jié)構(gòu)接口芯片或橋接芯 片。每個(gè)刀片內(nèi)的結(jié)構(gòu)和橋接芯片可以與系統(tǒng)交換機(jī)中的一個(gè)或多個(gè)連接, 且可以在這些交換機(jī)之間集成附加的橋接功能。
然而,基于刀片的多用戶主機(jī)可能需要增加的復(fù)雜度,以對(duì)各種服務(wù) 器軟件和基于網(wǎng)絡(luò)的應(yīng)用程序及組織可以具有的各種RT設(shè)備有效地管理、 控制和遞送豐富的應(yīng)用程序性能。需要可使基于刀片的多用戶主服務(wù)器用 杰出的計(jì)算和顯示性能更有效地支持許多遠(yuǎn)程用戶的解決方案。
概要
本發(fā)明提供一種用于基于刀片多用戶計(jì)算機(jī)系統(tǒng)的有效的體系結(jié)構(gòu),
包括一個(gè)或多個(gè)能夠交互式圖形和視頻處理的遠(yuǎn)程終端(RT),該有效的 體系結(jié)構(gòu)通常管理應(yīng)用程序并執(zhí)行基于服務(wù)器計(jì)算。每個(gè)RT具有其自己的 鍵盤(pán)、鼠標(biāo)和顯示器,以及可能其它外部設(shè)備。這些RT為個(gè)體用戶提供對(duì) 服務(wù)器上可用的應(yīng)用程序以及豐富圖形用戶接口的訪問(wèn)。該多用戶計(jì)算機(jī) 系統(tǒng)可以運(yùn)行多用戶操作系統(tǒng),可以運(yùn)行單用戶操作系統(tǒng)的虛擬化示例, 可以運(yùn)行針對(duì)多個(gè)用戶的web服務(wù)器引擎,可以運(yùn)行代理服務(wù)器或可以運(yùn) 行其某種組合。
在第一較佳實(shí)施方式中,處理器刀片包括允許來(lái)自RT的遠(yuǎn)程管理和 控制的基板管理控制器(BMC)。除了提供傳感和狀態(tài)信息之外,BMC包 括鍵盤(pán)、視頻和鼠標(biāo)(KVM)能力,從而系統(tǒng)管理者可以像他本地連接到 該刀片一樣地遠(yuǎn)程訪問(wèn)該處理器刀片。BMC和KVM起支持"帶外"操作 的作用,而不對(duì)該CPU和板的基本操作作附加的運(yùn)行時(shí)間變化,從而可最 有效地執(zhí)行運(yùn)行時(shí)間問(wèn)題的診斷。該遠(yuǎn)程KVM的顯示相關(guān)特征由利用選擇 性更新和需要時(shí)利用各種形式的顯示數(shù)據(jù)壓縮的圖形處理器和顯示數(shù)據(jù)編 碼器支持。該顯示數(shù)據(jù)編碼器功能可以被集成到TSA 424內(nèi)或作為用于組 合GPU-TSA的專用數(shù)據(jù)編碼器752。
在第二較佳實(shí)施方式中,終端服務(wù)刀片(TSB)利用軟件、圖形處理
9器和數(shù)據(jù)編碼的組合來(lái)通過(guò)針對(duì)每個(gè)RT創(chuàng)建虛擬顯示環(huán)境支持多個(gè)RT。 與該RT通信的最常見(jiàn)方法包括發(fā)送經(jīng)封裝的圖形命令或發(fā)送經(jīng)編碼的子 幀數(shù)據(jù)。管理RT的軟件可以在該主要的主處理器刀片即該TSB的CPU上、 在終端服務(wù)加速器(TSA)上、在RT上或在其組合上運(yùn)行。對(duì)每個(gè)RT的 選擇性更新可用軟件或在多用戶圖形處理器單元(MU-GPU)或組合 TSA-GPU內(nèi)硬件的協(xié)助下進(jìn)行協(xié)調(diào)。該圖形處理器可以遵循提出的VESA 數(shù)字分組視頻鏈路(DPVL)標(biāo)準(zhǔn)或使用報(bào)頭、狀態(tài)比特和簽名用于子幀的 經(jīng)改進(jìn)方法。其它增強(qiáng)中,高速PCI或另一總線代替DVI用于輸出數(shù)據(jù), 附加的數(shù)據(jù)編碼在該圖形處理器內(nèi)或用附連到該圖形處理器的編碼器執(zhí) 行,且該軟件為多用戶支持使用一個(gè)或多個(gè)圖形處理器。
該TSB可以執(zhí)行包括客戶機(jī)端接的變化級(jí)別的代理服務(wù),且甚至可以完 全仿真多個(gè)RDP客戶機(jī),從而在該處理器刀片上運(yùn)行的RDP主機(jī)將在該TSB 上運(yùn)行的進(jìn)程視為唯一已知的客戶機(jī)。在此方法中,該TSB可以創(chuàng)建與主處 理器未察覺(jué)到的RT的完全獨(dú)立接口 。該TSB和RT之間的此類接口可具有分 離代理(split proxy)的形式。作為分離代理,該TSB和RT經(jīng)由專用信道通 信,在該專用信道上它們能比使用諸如RDP或網(wǎng)絡(luò)瀏覽器協(xié)議的更標(biāo)準(zhǔn)協(xié)議 更為有效地通信。
為了附加的效率,該處理器刀片可以運(yùn)行跟蹤軟件,該跟蹤軟件可以 與TSA組合以截取諸如視頻回放的功能。該TSA可以在由CPU解碼前截 取視頻數(shù)據(jù)流并可將該本地視頻流或諸如經(jīng)譯碼或經(jīng)轉(zhuǎn)換版本的修正版本 傳送到目標(biāo)RT,而不是使該主CPU本地地執(zhí)行視頻解碼并提供傳輸?shù)絉T 的位圖。除標(biāo)準(zhǔn)的RDP信道之外,向RT的傳送可采用其它專用信道,同 時(shí)仍然在RDP協(xié)議內(nèi)受管理。
在每個(gè)實(shí)施方式中,在圖形處理和選擇性更新過(guò)程之后,該數(shù)據(jù)被編 碼且然后被封裝成網(wǎng)絡(luò)待更新分組。網(wǎng)絡(luò)I/O刀片、網(wǎng)絡(luò)處理器、或連同 較簡(jiǎn)單的網(wǎng)絡(luò)控制器一起工作的CPU,經(jīng)由有線和/或無(wú)線網(wǎng)絡(luò)將該圖形分 組傳輸?shù)絉T。在某些KVM配置中,BMC將執(zhí)行網(wǎng)絡(luò)處理使得處理器刀片 CPU不受該更新分組操作干擾。在另一配置中,CPU利用"虛擬技術(shù)"來(lái)
10保護(hù)性地分割和執(zhí)行包括用戶任務(wù)的操作系統(tǒng)功能以及BMC的帶外管理
任務(wù)。該BMC可以與該系統(tǒng)中的另一網(wǎng)絡(luò)控制器或網(wǎng)絡(luò)物理層(PHY)通 信。每個(gè)RT系統(tǒng)對(duì)預(yù)期作顯示的圖形分組進(jìn)行解碼,管理幀更新并執(zhí)行針 對(duì)該顯示屏幕的必要處理。其它特征,諸如在網(wǎng)絡(luò)傳輸中丟失的掩蔽分組, 由該遠(yuǎn)程顯示系統(tǒng)管理。當(dāng)沒(méi)有新的幀更新時(shí),該遠(yuǎn)程顯示控制器用來(lái)自 先前幀的數(shù)據(jù)刷新顯示屏。
各種網(wǎng)絡(luò)系統(tǒng)可反饋來(lái)自各種連接到TSB的有線和無(wú)線網(wǎng)絡(luò)的網(wǎng)絡(luò)信 息。該TSB使用網(wǎng)路信息來(lái)影響產(chǎn)生RT更新的各種處理步驟,并且基于 該網(wǎng)絡(luò)反饋可以改變針對(duì)不同RT的幀速率和數(shù)據(jù)編碼。此外,針對(duì)包括具 有噪音傳輸信道的網(wǎng)絡(luò)的系統(tǒng),編碼步驟可與前向糾錯(cuò)保護(hù)相組合,以準(zhǔn) 備傳輸信道特征的傳輸數(shù)據(jù)。這些步驟的組合為每一個(gè)RT保持具有低等待 時(shí)間的最佳幀速率。TSA和TSA-GPU可被實(shí)現(xiàn)為分離的子系統(tǒng)或者可與 其它卸載和加速處理組合,這些卸載和加速處理諸如網(wǎng)絡(luò)處理器、安全性 處理器、XML加速器、iSCSI處理器或這些的任何組合。
因此,至少出于上述原因,本發(fā)明有效地實(shí)現(xiàn)了利用各種不同組件來(lái)便于 系統(tǒng)的互操作性和功能性的靈活的基于刀片的多用戶計(jì)算機(jī)系統(tǒng)。本發(fā)明因而 有效地實(shí)現(xiàn)了增強(qiáng)的基于刀片的多用戶服務(wù)器。
附圖簡(jiǎn)述
圖1是包括多個(gè)刀片和交換結(jié)構(gòu)的現(xiàn)有技術(shù)基于刀片多用戶計(jì)算機(jī)系 統(tǒng)的框圖2是根據(jù)本發(fā)明第一實(shí)施方式的多CPU處理器刀片的框圖,該多 CPU處理器刀片具有多CPU復(fù)合體和帶遠(yuǎn)程鍵盤(pán)、視頻和鼠標(biāo)(KVM) 支持的基板管理控制(BMC);
圖3示出經(jīng)由網(wǎng)絡(luò)與圖1的基于刀片的多用戶計(jì)算機(jī)系統(tǒng)連接的RT;
圖4是根據(jù)本發(fā)明第二實(shí)施方式的終端服務(wù)刀片(TSB)的框圖5表示被組織到八個(gè)顯示區(qū)的存儲(chǔ)器,該八個(gè)顯示區(qū)之一包括顯示 窗口且其中的兩個(gè)用于支持一個(gè)大的RT顯示;圖6A示出圖5顯示圖536的更詳細(xì)視圖6B示出細(xì)分為小塊的圖6A的矩形;
圖7是示出圖4的具有集成圖形處理器單元的示例性片上系統(tǒng)(SOC) 終端服務(wù)加速器(TSA-GPU 700)的細(xì)節(jié)的框圖8是包括圖形子系統(tǒng)和其它帶外處理的帶KVM的基板管理控制器 的框圖9是根據(jù)本發(fā)明的一個(gè)實(shí)施方式的用于執(zhí)行終端服務(wù)和顯示代理服務(wù) 器操作的方法步驟的流程圖;以及
圖10是根據(jù)本發(fā)明的一個(gè)實(shí)施方式的用于執(zhí)行針對(duì)遠(yuǎn)程終端的網(wǎng)路 接收和顯示過(guò)程的方法步驟的流程圖。
較佳實(shí)施方式的詳細(xì)描述
本發(fā)明涉及對(duì)基于刀片的多用戶計(jì)算機(jī)系統(tǒng)的改進(jìn),該計(jì)算機(jī)系統(tǒng)帶 對(duì)遠(yuǎn)程模塊的支持。雖然所描述的實(shí)施方式涉及基于刀片的多用戶計(jì)算機(jī) 系統(tǒng),但是相同的原理和特征同樣可應(yīng)用于其它類型的單用戶和多用戶系 統(tǒng)以及其它類型的遠(yuǎn)程終端。
如下參照?qǐng)D3所述,基于刀片的多用戶計(jì)算機(jī)系統(tǒng)100,也稱為"主 機(jī)100",被設(shè)計(jì)成支持在遠(yuǎn)程終端上的多個(gè)用戶。每個(gè)RT能夠時(shí)間共享 該主機(jī)100,好像該主機(jī)100是它們自己的本地計(jì)算機(jī)且在具有能在本地計(jì) 算機(jī)上實(shí)現(xiàn)的同類用戶體驗(yàn)的情況下具有對(duì)所有類型的圖形、文本和視頻 內(nèi)容的完全支持。當(dāng)使用網(wǎng)絡(luò)連接時(shí),路徑180和190與可連接到圖3網(wǎng) 絡(luò)路徑390的圖2路徑290和圖4路徑490相對(duì)應(yīng)。除了 RT連接之外,主 機(jī)IOO可以通過(guò)鏈路124連接到WAN、存儲(chǔ)子系統(tǒng)、其它主機(jī)或各種其它 數(shù)據(jù)中心連接,這些數(shù)據(jù)中心連接可采取千兆比特以太網(wǎng)(GigE) 、 10G 以太網(wǎng)、iSCSI、光纖信道(FC)、光纖信道IP (FCIP)或另一電連接或 光連接。主機(jī)IOO可以支持各種多用戶操作系統(tǒng)(OS)或?qū)捎糜谔幚砥?刀片中的-個(gè)或更多個(gè)的單用戶OS進(jìn)行虛擬化的軟件。諸如Citrix或 Windows服務(wù)器的操作系統(tǒng)被設(shè)計(jì)成多用戶OS。 Windows XP,雖然不是為同時(shí)的多個(gè)用戶具體設(shè)計(jì)的,但在諸如VMWARE或XenSource的低級(jí) 虛擬化軟件或另一手段的幫助下可在這種配置中用于如此快地執(zhí)行用戶交 換從而顯現(xiàn)為多用戶OS。不同管理控制可使RT和程序靜態(tài)地或動(dòng)態(tài)地從 處理器移到處理器。負(fù)載均衡可針對(duì)每個(gè)處理器由該OS執(zhí)行或者該系統(tǒng)可 跨多個(gè)處理器執(zhí)行負(fù)載均衡。主機(jī)100還可運(yùn)行一類web服務(wù)器并通過(guò)基 于網(wǎng)絡(luò)的接口支持多個(gè)用戶。該主機(jī)100可用作針對(duì)各個(gè)RT的代理服務(wù)器, 并與應(yīng)用程序服務(wù)器或web服務(wù)器通信。
圖2是可用作基于刀片多用戶處理器系統(tǒng)100的刀片102-116中的一 個(gè)的處理器刀片200的一個(gè)實(shí)施方式的框圖。每個(gè)刀片200本身可以主機(jī), 或者多個(gè)刀片可被一起置于機(jī)架上以創(chuàng)建能力更強(qiáng)的主機(jī)。主機(jī)具有的處 理器刀片、1/0處理和CPU越多,就可同時(shí)支持越多的用戶。處理器刀片 200的基本組件優(yōu)選地包括,但不限于,多CPU復(fù)合體202、總線橋接控 制器204、諸如高速PCI的主系統(tǒng)總線206、本地I/O 208、主RAM 234、 連接到交換機(jī)、底板和其它刀片的結(jié)構(gòu)接口 (FI) 130、以及可任選的基板 管理控制(BMC)子系統(tǒng)800。
取決于交換結(jié)構(gòu)150的傳輸和物理層接口的類型,結(jié)構(gòu)接口 (FI) 130 可以包括重要處理。例如,該結(jié)構(gòu)接口 130可包括既針對(duì)本地生成分組又 針對(duì)ASI結(jié)構(gòu)接口執(zhí)行所有必要的分組層過(guò)濾和處理的10G以太網(wǎng)處理器 (未示出)。這種結(jié)構(gòu)接口處理器可能需要外部RAM 230或者可能具有充 足的內(nèi)存。網(wǎng)絡(luò)物理層接口 (PHY)可與FI處理器結(jié)合或可利用外部PHY 組件。本地I/O 208和本地I/O連接290可由此同一FI處理器控制。此外, 該結(jié)構(gòu)接口 130可直接與系統(tǒng)總線206附連,而不是通過(guò)橋接控制器204 與系統(tǒng)總線206通過(guò)接口連接。
在一個(gè)示例系統(tǒng)中,交換機(jī)1 120和關(guān)聯(lián)路徑140利用可允許快速PCI 分組隧穿的ASI總線協(xié)議。交換機(jī)2 122和關(guān)聯(lián)路徑142可以是XAUI類 總線,且可針對(duì)存儲(chǔ)和聯(lián)網(wǎng)更為優(yōu)化并且可使用IOG以太網(wǎng)協(xié)議。該系統(tǒng) 可主要將ASI總線用于不同處理器刀片之間的通信,而將XAUI總線用于 與聯(lián)網(wǎng)和存儲(chǔ)刀片的通信。每個(gè)刀片可包括一個(gè)接口,兩接口還包括在兩個(gè)總線之間橋接話務(wù)傳輸?shù)哪芰Α?br>
圖2的多CPU復(fù)合體202可包括一個(gè)或更多個(gè)處理器芯片,每個(gè)處理 器芯片具有一個(gè)或更多個(gè)CPU核(未示出),每個(gè)CPU核可執(zhí)行多個(gè)同 時(shí)線程。在每一層,每個(gè)CPU核都可包括任一專用高速緩存,而在某些層 多CPU核可以共享高速緩存。該多CPU復(fù)合體202可獨(dú)立地控制和訪問(wèn) RAM 234,或者它可利用橋接控制器204來(lái)執(zhí)行對(duì)RAM 234的訪問(wèn)。在一 些其它配置中,該多CPU復(fù)合體202可直接與主系統(tǒng)總線206通過(guò)接口連 接(未示出)。
本地I/O 208可包括各種I/O接口 ,并控制外部接口 2卯和位于處理器 刀片200內(nèi)資源的通路210。諸如存儲(chǔ)和聯(lián)網(wǎng)的主I/O功能可被包括在每個(gè) 處理器刀片200上,或者其它專用I/O刀片可經(jīng)由交換結(jié)構(gòu)150得到支持。 取決于對(duì)交換結(jié)構(gòu)的物理或邏輯連接的選擇,接口 140和142可直接結(jié)合 橋接控制器204或者可能需要結(jié)構(gòu)接口 130芯片。
因?yàn)槊總€(gè)處理器刀片200有效地可以是"計(jì)算機(jī)系統(tǒng)",所以具有觀 察和管理該系統(tǒng)的方法是非常合乎需要的。因?yàn)橹鳈C(jī)100可位于一具體的 計(jì)算機(jī)機(jī)房?jī)?nèi),所以使該系統(tǒng)能從遠(yuǎn)程終端(RT) 300觀察和管理常常是 合乎需要的。RT可以是具體設(shè)計(jì)的痩客戶機(jī),或者對(duì)于管理功能更通常是 計(jì)算機(jī)運(yùn)行管理軟件。此外,RT可包括用于執(zhí)行這些管理功能的基于瀏覽 器的軟件。處理器刀片200可包括提供用于基于瀏覽器的管理的用戶接口 的web服務(wù)器。
當(dāng)處理器刀片200正在被管理且不處于來(lái)自遠(yuǎn)程用戶的工作負(fù)荷下, 多CPU復(fù)合體202的主CPU經(jīng)常用于與RT通信。然而為了監(jiān)視各種環(huán)境 狀況且當(dāng)處理器刀片200在執(zhí)行來(lái)自遠(yuǎn)程用戶的工作負(fù)荷時(shí)對(duì)其進(jìn)行觀察 和管理,將如圖8詳細(xì)說(shuō)明的基板管理控制(BMC)子系統(tǒng)800包括在內(nèi)
是合甲-需要的。
作為BMC 800中的獨(dú)立CPU的替代或附件,202中的主CPU可使用 虛擬化技術(shù)來(lái)將管理功能從操作系統(tǒng)和用戶功能中隔離。盡管在多核CPU 202中一具體核可專用于這種管理功能,但適當(dāng)設(shè)計(jì)的CPU可包括諸如該英特爾范德普爾(Intel Vanderpool) VT技術(shù)的硬件,以使任務(wù)或線程互相 隔離而與它們?cè)谀膫€(gè)核上運(yùn)行無(wú)關(guān)。這樣,單個(gè)CPU核可以同時(shí)既運(yùn)行用 于支持帶外管理功能的受保護(hù)的虛擬管理機(jī)模式,又運(yùn)行操作系統(tǒng)虛擬機(jī) 模式以支持各種操作系統(tǒng)和用戶任務(wù)。
CPU核的不同虛擬機(jī)各自可以連同BMC 800的不同方面進(jìn)行操作。在 一較佳實(shí)施方式中,帶KVM 212的BMC包括諸如TSA-GPU 700的 MU-GPU 412的本地圖形處理器,該處理器對(duì)在虛擬機(jī)模式下運(yùn)行的標(biāo)準(zhǔn) 操作系統(tǒng)執(zhí)行顯示處理。對(duì)于遠(yuǎn)程KVM操作,遠(yuǎn)程管理員可能想要觀察或 執(zhí)行處理器刀片200的帶外管理。主CPU 202的受保護(hù)的虛擬管理機(jī)模式 可用于協(xié)助執(zhí)行帶外遠(yuǎn)程管理。該遠(yuǎn)程KVM管理可包括從帶外網(wǎng)絡(luò)接口訪 問(wèn)相同的本地圖形處理器顯示。這種對(duì)圖形處理器顯示的訪問(wèn)可利用在圖7 中詳細(xì)描述的TSA-GPU 700的更先進(jìn)特征。在另一實(shí)施方式中,帶KVM 的BMC 212內(nèi)的獨(dú)立CPU 808用于管理帶外遠(yuǎn)程管理,而不是用于在主 CPU上使用受保護(hù)的虛擬管理器模式。
圖3是遠(yuǎn)程終端300的框圖,根據(jù)本發(fā)明的一種實(shí)施方式,該遠(yuǎn)程終 端300優(yōu)選地包括,但不限于,顯示屏310、本地RAM312、以及遠(yuǎn)程終 端系統(tǒng)控制器(RTSC) 314。該RTSC314包括鍵盤(pán)、鼠標(biāo)及I/O控制子系 統(tǒng)316,該1/0控制子系統(tǒng)316具有對(duì)鼠標(biāo)318、鍵盤(pán)320及其它各種設(shè)備 322的相應(yīng)連接,其它各種設(shè)備322諸如是用于再現(xiàn)音頻的揚(yáng)聲器或可支持 各種設(shè)備的通用串行總線(USB)連接。還可包括其它集成或外圍連接, 用于通過(guò)包括生物鑒定或安全卡的安全手段支持用戶認(rèn)證。這些連接可專 用于單一用途,諸如PS/2類鍵盤(pán)或鼠標(biāo)連接,或用于諸如USB的更普通 用途。在其它實(shí)施方式中,該I/O可包括游戲控制器、本地?zé)o線連接、IR 連接或根本沒(méi)有連接。遠(yuǎn)程終端系統(tǒng)300還可包括諸如DVD驅(qū)動(dòng)器的其它 外圍設(shè)備。
本發(fā)明的一些實(shí)施方式不需要遠(yuǎn)程終端系統(tǒng)300上的任何外部輸入。 這種系統(tǒng)的一個(gè)示例是不同顯示器在不同位置可用且可以示出各種信息性 和娛樂(lè)性信息的零售店或電子告示牌。每個(gè)顯示器可獨(dú)立地操作且可以基于各種因素更新。類似的安全系統(tǒng)還可包括一些接受觸摸屏幕輸入的顯示 器,例如信息亭或銀行里的自動(dòng)出納機(jī)(ATM)。其它安全系統(tǒng),例如娛
樂(lè)場(chǎng)的游戲機(jī),也可基于這類RT。
圖1的主機(jī)100可包括來(lái)自每個(gè)刀片的網(wǎng)絡(luò)接口 (例如,180、 190) 或者共享的網(wǎng)絡(luò)控制器可被包括在內(nèi)。在任一情況下,建立從主機(jī)100到 RT 300的輸入390的網(wǎng)絡(luò)連接。網(wǎng)絡(luò)控制器336支持在可以是有線或無(wú)線 的網(wǎng)絡(luò)路徑390上的安全協(xié)議,且經(jīng)由該網(wǎng)絡(luò)的數(shù)據(jù)傳輸可通過(guò)密鑰交換 加密。公用網(wǎng)絡(luò)示例是以太網(wǎng),諸如運(yùn)行某些類型以太網(wǎng),優(yōu)選為千兆比 特以太網(wǎng)的CAT 5布線,其中I/O控制路徑可與UDP傳輸相組合地使用以 太網(wǎng)支持協(xié)議,諸如標(biāo)準(zhǔn)的傳輸控制協(xié)議和因特網(wǎng)協(xié)議(TCP/IP)或某種 形式的輕量信號(hào)交換。諸如實(shí)時(shí)流協(xié)議(RTSP)和實(shí)時(shí)傳輸協(xié)議(RTP) 與實(shí)時(shí)控制協(xié)議(RTCP) —起的工業(yè)成果可用于增強(qiáng)分組傳輸且可通過(guò)添 加重發(fā)協(xié)議進(jìn)一步增強(qiáng)。其它圍繞使用服務(wù)質(zhì)量(QoS)成果的較新成果, 諸如層3差分服務(wù)代碼點(diǎn)(DSCP)、作為數(shù)字生活網(wǎng)絡(luò)聯(lián)盟(DLNA)的 一部分的WMM協(xié)議、微軟Qwave、 uPnP、 QoS及802.1P也是使用現(xiàn)有網(wǎng) 絡(luò)標(biāo)準(zhǔn)的增強(qiáng)方法。
除了用于支持I/O設(shè)備的分組,該網(wǎng)絡(luò)攜帶經(jīng)封裝和編碼的顯示命令 和顯示所需的數(shù)據(jù)。CPU 324與網(wǎng)絡(luò)控制器336、 2D繪圖引擎332、 3D繪 圖引擎334、數(shù)據(jù)解碼器326、視頻解碼器328及顯示控制器330協(xié)調(diào)以支 持可在顯示屏310上本地地繪制和顯示的所有類型的視覺(jué)數(shù)據(jù)表示。沒(méi)有 要求RT包括顯示處理塊的任何特別組合。額外的瘦RT可小到只包括顯示 控制器330,其中CPU進(jìn)行顯示處理,盡管具有至少一類解碼器或繪圖引 擎是更為可能的。
各種處理元件可對(duì)表示整個(gè)幀的分組或表示顯示數(shù)據(jù)的各個(gè)子幀的分 組進(jìn)行解碼。在一較佳實(shí)施方式中,分組包括與顯示的固定位置相對(duì)應(yīng)的 經(jīng)編碼顯示數(shù)據(jù)的各個(gè)數(shù)據(jù)片。CPU 324可接收這些分組并通過(guò)讀取分組 的報(bào)頭信息來(lái)確定分組預(yù)期的顯示的適當(dāng)位置。諸如數(shù)據(jù)解碼器326的適 當(dāng)資源用于對(duì)數(shù)據(jù)片進(jìn)行解碼并將經(jīng)解碼數(shù)據(jù)傳輸?shù)斤@示存儲(chǔ)器內(nèi)的適當(dāng)
16位置。數(shù)據(jù)解碼器326可被設(shè)立成將產(chǎn)生直接進(jìn)入顯示存儲(chǔ)器位置的解碼
數(shù)據(jù),或者該數(shù)據(jù)可被解碼到另一區(qū)域且通過(guò)2D繪圖引擎332、 CPU 324 或通過(guò)另一手段傳輸?shù)狡谕恢谩?br>
RT 300首先可通過(guò)將由該主機(jī)IOO經(jīng)由網(wǎng)絡(luò)190/390提供的額外信息 引導(dǎo)到本地閃存(未示出)之外來(lái)初始化。在針對(duì)RT的初始化序列期間, RTSC314與顯示屏310之間的連接可以反向或雙向模式使用,從而利用諸 如顯示數(shù)據(jù)信道(DDC)接口、擴(kuò)展顯示標(biāo)識(shí)數(shù)據(jù)(EDID)及其它擴(kuò)展的 標(biāo)準(zhǔn)來(lái)標(biāo)識(shí)顯示監(jiān)視器的性能。通過(guò)鍵盤(pán)、鼠標(biāo)和I/O控制器316的USB 連接還可以用于與顯示屏310的連接。然后諸如可用分辨率和控制的信息 由CPU 324處理。系統(tǒng)300可實(shí)現(xiàn)諸如uPnP的協(xié)議或能與主機(jī)100通信的 其它發(fā)現(xiàn)機(jī)制。在初始化通信期間,CPU 324可將包括顯示監(jiān)視器信息的 RT信息提供給主機(jī)100,從而每個(gè)RT可在主機(jī)一側(cè)被例示。
初始顯示屏可來(lái)自閃存或來(lái)自主機(jī)100。在顯示數(shù)據(jù)的第一全幀之后, 該主機(jī)200只需經(jīng)由網(wǎng)絡(luò)390發(fā)送部分幀信息作為顯示更新網(wǎng)絡(luò)流的一部 分。如果與先前幀相比沒(méi)有顯示像素變化,則顯示控制器330可用來(lái)自本 地RAM存儲(chǔ)器312的先前幀內(nèi)容刷新顯示屏310。 RTSC 314的輸出可使 用諸如HDCP的協(xié)議加密。如果顯示屏310由諸如帶有DVI的電纜連接, HDCP可以是用于回放具有DRM的內(nèi)容的要求。此外,RTSC314可被設(shè) 計(jì)成提供各種加密密鑰永遠(yuǎn)不暴露于芯片之外的高度安全的處理環(huán)境。在 一更安全實(shí)現(xiàn)中,被解密的內(nèi)容數(shù)據(jù)不會(huì)在該芯片的外部呈現(xiàn)為明碼。為 了實(shí)現(xiàn)這種安全系統(tǒng),RTSC314可以使用與用主機(jī)IOO和顯示屏310執(zhí)行 的密鑰交換無(wú)關(guān)的本地密碼術(shù)方法。
顯示更新通過(guò)網(wǎng)絡(luò)流發(fā)送,且可由經(jīng)封裝的2D繪圖命令、3D繪圖命 令、編碼顯示數(shù)據(jù)或編碼視頻數(shù)據(jù)組成。網(wǎng)絡(luò)控制器326接收網(wǎng)絡(luò)顯示流 且CPU 324根據(jù)封裝報(bào)頭確定對(duì)該分組而言需要功能單元332、 334、 326 和328中的哪一個(gè)。功能單元執(zhí)行必要處理步驟來(lái)繪畫(huà)或解碼圖像數(shù)據(jù)且 用新圖像更新RAM312的適當(dāng)區(qū)域。在下一刷新周期期間,顯示控制器330 將該更新幀用于顯示屏310。
17顯示控制器330將來(lái)自RAM 312的電流圖像幀的表示傳輸?shù)斤@示器 310。通常,該圖像將以準(zhǔn)備好顯示的格式存儲(chǔ)于RAM 312中,但是如果 RAM成本是個(gè)問(wèn)題,則該圖像或該圖像的各個(gè)部分可以編碼格式存儲(chǔ)。外 部RAM 312可由遠(yuǎn)程終端系統(tǒng)控制器314內(nèi)的大緩沖器代替。顯示控制器 330還能將儲(chǔ)存于RAM 312內(nèi)的兩個(gè)或更多個(gè)顯示表面組合來(lái)合成一輸出 圖像以供屏幕310顯示圖像。不同混合操作可與該合成一起執(zhí)行。
CPU 324與TSB 400 (圖4,以下討論)通信以最佳地設(shè)立和管理針對(duì) RT的全部顯示操作。初始設(shè)立可包括枚舉RTSC 314中受支持的功能的類 型、顯示屏310的詳細(xì)說(shuō)明、可用于緩沖和高速緩存數(shù)據(jù)的RAM 312的量、 由2D繪圖引擎332支持的命令集、由3D繪圖引擎334支持的命令集、由 數(shù)據(jù)解碼器326支持的格式、由視頻解碼器328支持的格式以及顯示控制 器330的性能。其它運(yùn)行時(shí)的管理優(yōu)化包括管理和高速緩存RAM 31中的 顯示位圖以使得它們不需要被重新發(fā)送。
RT 300的配置可包括基本數(shù)據(jù)解碼體系結(jié)構(gòu)或在更常用的基于CPU 的平臺(tái)上運(yùn)行的軟件,且可基于因特網(wǎng)瀏覽器體系結(jié)構(gòu)。作為因特網(wǎng)瀏覽 器體系結(jié)構(gòu)的一部分,這些功能單元可由直接調(diào)用功能單元的特定瀏覽器、 包括使用功能單元的"插件"或驅(qū)動(dòng)器的瀏覽器使用,或者更標(biāo)準(zhǔn)的瀏覽 器可使用擔(dān)當(dāng)中介的本地代理來(lái)確定哪些請(qǐng)求可本地完成,而哪些需要與 主系統(tǒng)上的網(wǎng)絡(luò)應(yīng)用程序通信。"異步Java腳本語(yǔ)言和XML" (AJAX) 及其它派生物,諸如"異步閃存和可擴(kuò)展標(biāo)記語(yǔ)言"(AFLAX)是這種基 于代理的技術(shù),且可以使用XHTML、通過(guò)Java腳本和"XMLHttpRequest" 操作的文件目標(biāo)模型的組合與該web服務(wù)器異步交換數(shù)據(jù)以改進(jìn)在客戶機(jī) 上的用戶接口。 AJAX可用來(lái)執(zhí)行選擇性的請(qǐng)求,其中客戶機(jī)一側(cè)的數(shù)據(jù)解 碼使用RT 300的功能塊。
來(lái)自基于RT 300的因特網(wǎng)瀏覽器的基于代理的選擇性請(qǐng)求可以由主 處理器刀片200和終端服務(wù)刀片400支持以進(jìn)一步優(yōu)化整個(gè)系統(tǒng)。附加的 通信協(xié)議處理可以由AJAX代理執(zhí)行。其它示例AJAX操作可以包括安全 密鑰和DNS査找的管理。在該RT上的基于AJAX的代理可將主處理器刀片200或TSB 400用作為應(yīng)用服務(wù)器或web服務(wù)器的代理?;贏JAX的 代理可以包括特殊通信機(jī)制,且作為分離代理與提供該代理的其它部分的 主處理器刀片200或TSB 400 —起操作。
圖4示出用于基于刀片的多用戶計(jì)算機(jī)系統(tǒng)100的終端服務(wù)刀片 (TSB)的第二較佳實(shí)施方式,雖然TSB 400另外可體現(xiàn)為通過(guò)網(wǎng)絡(luò)附連 到主處理器的獨(dú)立計(jì)算機(jī)或設(shè)備。作為設(shè)備,TSB 400可包括到服務(wù)器的 顯示輸出的其它非網(wǎng)絡(luò)連接,諸如DVI或其它電纜,且可包括本地DVI輸 出以保持對(duì)本地輸出設(shè)備的支持。這種來(lái)自TSB 400的DVI輸出可以是來(lái) 自服務(wù)器的通過(guò)模式,或者當(dāng)該DVI上的數(shù)據(jù)不適于簡(jiǎn)單通過(guò)操作時(shí)可以 進(jìn)行一解碼步驟。TSB 400可以獨(dú)立于主處理器操作以作為多用戶RT的代 理服務(wù)器行。
TSB 400包括CPU子系統(tǒng)402、存儲(chǔ)器434、橋接控制器404、帶RAM 432的本地I/O 428以及組成終端服務(wù)加速器和多用戶圖形處理器單元子系 統(tǒng)(TSA-GPU) 700的組件。橋接控制器404可以與交換結(jié)構(gòu)通過(guò)接口直 接相連,或者可包括用于與交換結(jié)構(gòu)140和142連接的結(jié)構(gòu)接口 130。該 TSA-GPU 700內(nèi)的主要功能單元是多用戶GPU (MU-GPU) 412和終端服 務(wù)加速器(TSA) 424,這些主要功能單元具有關(guān)聯(lián)RAM 418和430且可 包括經(jīng)由顯示接口 220的連接222。在某些配置中,TSA-GPU具有共享RAM 且可照?qǐng)D7如下所述地被進(jìn)一步集成。
單個(gè)TSB可以對(duì)各自具有一個(gè)或更多個(gè)CPU的多處理器刀片200執(zhí) 行圖形處理,CPU各自具有一個(gè)或更多個(gè)處理器核,且任何數(shù)目的虛擬機(jī) 在CPU和處理器核的混合上運(yùn)行。在一些多用戶或多處理器操作系統(tǒng)中, 對(duì)TSB 400的請(qǐng)求可以協(xié)調(diào)方式管理或執(zhí)行。例如,在基于微軟遠(yuǎn)程桌面 協(xié)議(RDP)或CitrixICA的系統(tǒng)的情況下,這些顯示命令已被初始化且處 理器刀片200不會(huì)嘗試直接訪問(wèn)圖形子系統(tǒng)。其它多用戶或多處理器操作 系統(tǒng)可包括串行化對(duì)圖形子系統(tǒng)的訪問(wèn)的協(xié)調(diào)裝置,并且與該操作系統(tǒng)組 合的TSB 400可使該協(xié)調(diào)訪問(wèn)被適當(dāng)映射以使單個(gè)TSA 700可支持針對(duì)一 個(gè)或更多個(gè)多用戶操作系統(tǒng)的多個(gè)顯示。然而,在虛擬機(jī)模式中,不同虛擬機(jī)可能不知道彼此,且每個(gè)虛擬機(jī) 可假定它具有對(duì)專用圖形子系統(tǒng)的完全訪問(wèn)權(quán)。在這種情況下,TSB 400 需要?jiǎng)?chuàng)建一虛擬抽象層來(lái)以有序方式滿足來(lái)自多個(gè)虛擬機(jī)的異步命令和請(qǐng)
求,并適當(dāng)?shù)刂С謱?duì)RT的結(jié)果顯示。TSB 400可編寫(xiě)可在處理器刀片200 的不同虛擬機(jī)上運(yùn)行的不同操作系統(tǒng)的圖形驅(qū)動(dòng)器。然后TSB 400將來(lái)自 不同操作系統(tǒng)的驅(qū)動(dòng)器調(diào)用協(xié)調(diào)成經(jīng)協(xié)調(diào)的多顯示TSA 700操作?;蛘?, 每個(gè)操作系統(tǒng)將利用標(biāo)準(zhǔn)圖形驅(qū)動(dòng)器且TSB 400需要有效地截取驅(qū)動(dòng)器調(diào) 用。然后所截取的驅(qū)動(dòng)器調(diào)用被管理以在相干多用戶模式中操作TSA 700 并適當(dāng)?shù)毓芾磲槍?duì)每個(gè)虛擬機(jī)的顯示。
在某些系統(tǒng)中,TSB 400的功能之一是將該處理器刀片200從針對(duì)每 個(gè)RT的部分管理中卸載,并加速部分卸載處理以使每個(gè)RT具有經(jīng)改進(jìn)的 顯示經(jīng)驗(yàn)。卸載和加速支持的類型包括將圖形處理封裝為遠(yuǎn)程圖形命令, 幫助確定在每個(gè)RT上高速緩存什么性能和位圖以確定哪些圖形命令是最 適合的,將需要傳輸?shù)絉T的比特圖編碼并封裝,以及最佳地管理多媒體比 特流。或者,在傳輸前,瀏覽器和基于RT的代理可發(fā)起對(duì)主機(jī)IOO的更多 具體請(qǐng)求,以提供對(duì)可由TSB 400編碼的圖形數(shù)據(jù)的更新。在一種較佳實(shí) 施方式中,主系統(tǒng)100是web服務(wù)器,其中處理器刀片200執(zhí)行web服務(wù) 器功能的數(shù)據(jù)庫(kù)和"后端"操作,而TSB 400作為管理用于web服務(wù)器功 能的顯示元件的媒體協(xié)處理器進(jìn)行操作。
也可支持附加功能,諸如可擴(kuò)展標(biāo)記語(yǔ)言(XML)話務(wù)、簡(jiǎn)單對(duì)象訪 問(wèn)協(xié)議(SOAP) 、 HTTP話務(wù)、Java虛擬機(jī)(JVM)以及其它與基于因特 網(wǎng)通信相關(guān)聯(lián)的話務(wù)的檢查和封裝。當(dāng)執(zhí)行任何想要的防兜售信息、防病 毒、內(nèi)容過(guò)濾、訪問(wèn)限制實(shí)施或其它基于分組過(guò)濾的算法時(shí),處理器刀片 200與TSB 400 —起可使RT有效地執(zhí)行對(duì)整個(gè)因特網(wǎng)的遠(yuǎn)程訪問(wèn)。這種附 加功能可對(duì)支持將主機(jī)用作web內(nèi)容訪問(wèn)的代理的RT因特網(wǎng)瀏覽特別有 用。雖然可能在系統(tǒng)中有一些冗余,此方法可比在主系統(tǒng)與WAN之間使 用的更普通的網(wǎng)絡(luò)安全裝置提供更多的特定用戶控制。TSB 400可提供諸 如DNS查找的其它卸載功能。提供DNS查找可使需要設(shè)立和管理的TCP/IP連接的數(shù)量下降。TSB 400還可提供針對(duì)諸如SSL的安全性的卸載。此外, TSB 400可提供對(duì)安全客戶機(jī)的基于證書(shū)的密碼算法支持。
TSB 400上的具體代理服務(wù)器可將其它增強(qiáng)用于基于因特網(wǎng)的話務(wù), 這些增強(qiáng)可包括取決于RT顯示設(shè)備和該RT內(nèi)的執(zhí)行性能對(duì)基于因特網(wǎng)的 內(nèi)容重定格式或重新編碼。例如,如果RT設(shè)備是具有有限屏幕分辨率的蜂 窩式電話或個(gè)人數(shù)字化助理(PDA),則TSB 400為了更快和更適當(dāng)?shù)娘@ 示可將高分辨率內(nèi)容過(guò)濾降低為低分辨率圖像。該TSB 400可以運(yùn)行其它 更智能的內(nèi)容過(guò)濾和網(wǎng)頁(yè)解釋算法,以執(zhí)行類似除去標(biāo)題廣告和其它外來(lái) 信息的功能以使核心信息可被發(fā)送到蜂窩式電話。TSB 400可運(yùn)行完全web 瀏覽器且RT運(yùn)行能力較差的web瀏覽器或微瀏覽器。TSB 400的代理功能 可將先進(jìn)web格式轉(zhuǎn)化為可被RT的瀏覽器理解的web格式。
其它類型的web內(nèi)容,諸如那些利用Active-X控件、多媒體閃存或其 它運(yùn)行時(shí)程序的web內(nèi)容,可與諸如電話或PDA的設(shè)備不兼容。TSB400 可以擔(dān)當(dāng)中間的代理服務(wù)器,且將在Active-X控件之后的顯示數(shù)據(jù)傳輸?shù)?等待的PDA中。也可以執(zhí)行應(yīng)用層正則表達(dá)式(RegEx)內(nèi)容處理。還可 以執(zhí)行重定格式和重新編碼以增加客戶機(jī)的安全性。盡管XML和SOAP 可受到黑客或其它格式的病毒傳播,TSB 400可以將XML和SOAP重新編 碼成安全的顯示格式,以使RT客戶機(jī)不會(huì)受到這種危險(xiǎn)。
在另一實(shí)施方式中,主機(jī)IOO尤其是TSB 400被用作更普通的多格式 網(wǎng)絡(luò)文件代理服務(wù)器使得RT能査看它們以其它方式無(wú)法讀取的文件。例 如,RT可以包括用于各種顯示格式的查看程序,但可能不包括打開(kāi)和査看 Adobe PDF文件或微軟Word文件的能力。RT上的查看程序可以是支持各 種HTML和其它面向web格式的瀏覽器。主機(jī)100可能能夠打開(kāi)和査看 Adobe PDF文件和微軟Word文件。然后該主機(jī)100可使用TSB 400的功 能將來(lái)自PDF文件或Word文件的圖形輸出轉(zhuǎn)化成用于在RT上查看的兼 容顯示格式。該RT可具有到許多類型的數(shù)據(jù)文件的網(wǎng)絡(luò)鏈路,并通過(guò)使用 多格式代理查看程序具有査看許多類型的文件的能力,這些類型的文件用 其它方式不能被解碼以供在該RT本身上査看。此類型的多格式代理查看可
21與網(wǎng)絡(luò)文件共享功能組合或與郵件服務(wù)器組合。例如,如果該多格式代理 查看程序?qū)⑽募郊D(zhuǎn)換為蜂窩式電話RT可査看的格式,那么它可能能夠 接收帶有各種附件的電子郵件。這些可査看附件可與郵件消息一起被包括 在內(nèi)或到附件的可查看版本的鏈路可被包括在該郵件消息中。
多媒體比特流可包括已經(jīng)處于壓縮格式、且在圖2處理器刀片200或圖4 TSB400上接收的視頻流。在某些配置中,該多媒體比特流將已經(jīng)是與該預(yù)期 RT 300兼容的格式。在這種情況下,在處理器刀片200上運(yùn)行的軟件跟蹤層將 指引該比特流進(jìn)入TSB 400,該TSB 400將把該比特流封裝為適當(dāng)?shù)姆纸M格式 以供傳輸?shù)絉T。封裝可包括添加報(bào)頭信息,例如視頻顯示窗口的來(lái)源,或修 改分組構(gòu)成,諸如將傳輸流轉(zhuǎn)換為具有不同分組大小的程序流。
在一些其它情況下,該多媒體比特流將不是目標(biāo)RT容易處理的格式 或不是適于該網(wǎng)絡(luò)連接的格式。在這種情況下,TSB 400作為轉(zhuǎn)碼代理服 務(wù)器操作,并執(zhí)行更復(fù)雜的對(duì)該多媒體比特流的解碼和再編碼、轉(zhuǎn)碼或譯 碼的步驟。例如,該導(dǎo)入多媒體比特流可以是經(jīng)編碼的HDTVMPEG-2流。 如果在RT上窗口尺寸被設(shè)為小的320X240窗口,則節(jié)約網(wǎng)絡(luò)帶寬并使TSB 400將視頻轉(zhuǎn)碼和轉(zhuǎn)換為表示期望顯示窗口尺寸的較低比特率可以是有意 義的。類似地,如果該導(dǎo)入視頻是RT不能解碼的格式,則TSB 400可將 該視頻轉(zhuǎn)碼為兼容格式。即使該格式是兼容的,其它諸如數(shù)字權(quán)限管理 (DRM)或加密方案的不兼容性可能會(huì)存在。TSB 400還可以從一個(gè)DRM 或加密方案轉(zhuǎn)換為適于目標(biāo)RT的方案。
例如,內(nèi)容擁有者可使用基于專用密鑰交換的DRM方案,例如由Apple 的iTunes所使用的一個(gè)。TSB 400可檢查在處理器刀片200或本地CPU 402 上運(yùn)行的iTunes視頻播放器的輸出,并捕捉經(jīng)解密的內(nèi)容。如果經(jīng)解碼的 輸出來(lái)自DVI視頻總線,則該輸出仍然可在HDCP中加密。在HDCP的情 況下,TSB 400需要具有適當(dāng)?shù)拿荑€來(lái)解碼HDCP保護(hù)內(nèi)容并且可擔(dān)當(dāng)顯 示設(shè)備以便于執(zhí)行該解密。為了保留該內(nèi)容擁有者的控制權(quán),TSB 400然 后將把該內(nèi)容重新加密為可被遠(yuǎn)程客戶機(jī)回放設(shè)備所理解的協(xié)議。這可基 于商用協(xié)議,諸如數(shù)字傳輸內(nèi)容保護(hù)(DTCP)或微軟的當(dāng)前格式或者可使用一專用協(xié)議。 一旦被重新加密,該新的受保護(hù)數(shù)據(jù)流可經(jīng)由網(wǎng)絡(luò)傳輸?shù)?具有適當(dāng)?shù)慕饷芎惋@示能力的接收設(shè)備。
微軟遠(yuǎn)程桌面協(xié)議(RDP)的一些當(dāng)前版本提供對(duì)經(jīng)壓縮的視頻比特 流的不那么有效的處理。有了 RDP,該主系統(tǒng)內(nèi)的驅(qū)動(dòng)器檢測(cè)比特流且將
該比特流解碼為設(shè)備無(wú)關(guān)位圖(DIB)。然后該DIB被轉(zhuǎn)換為RDP傳輸命 令,且該DIB格式數(shù)據(jù)經(jīng)由網(wǎng)絡(luò)被不可靠地傳輸?shù)絉T。在多數(shù)情況下,只 有幾個(gè)DIB數(shù)據(jù)幀將它傳到RT用于顯示。因此,在該主CPU中執(zhí)行解碼 以及經(jīng)由網(wǎng)絡(luò)以較低效率格式發(fā)送經(jīng)解碼數(shù)據(jù)中存在低效率。其它基于 RDP的圖形處理也使用DIB。
常規(guī)的圖形位圖,例如那些來(lái)自網(wǎng)站的位圖,也需要從主機(jī)100傳輸 到RT 300。TSB 400可對(duì)常規(guī)的諸如DIB的圖形位圖執(zhí)行各種級(jí)別的編碼。 圖形位圖的編碼關(guān)于提供原始圖形質(zhì)量的視覺(jué)上不可區(qū)分的表示的目的可 以是無(wú)損的或是有損的。TSB 400的簡(jiǎn)化軟件接口可僅僅包括通過(guò)RDP API 與該主CPU連接,然而一種更為激進(jìn)的實(shí)現(xiàn)是允許TSB 400訪問(wèn)下層的 DirectX驅(qū)動(dòng)器框架。該經(jīng)編碼的DIB傳輸和具體的經(jīng)壓縮視頻域傳輸不是 標(biāo)準(zhǔn)RDP實(shí)現(xiàn)的一部分。因此這些傳輸可被借道為現(xiàn)存RDP傳輸格式, 作為某類專用RDP擴(kuò)展操作或在該RDP框架之外操作。
該主操作系統(tǒng)和RDP的某些版本需要滿足針對(duì)該RDP協(xié)議的附加安 全性需求。該RDP客戶機(jī)可被要求與主機(jī)交換密鑰以便于使用加密分組。 因?yàn)門(mén)SB 400正在截取RDP客戶機(jī)分組,所以TSB 400可以包括供密鑰交 換的適當(dāng)加速和卸載以及供與主處理器通信的解密。此外,為了維持該系 統(tǒng)的安全性,TSB 400和網(wǎng)絡(luò)接口將確保與RT的所有通信都被適當(dāng)加密。
在另一實(shí)施方式中,TSB 400可作為web服務(wù)器卸載引擎操作并支持 瀏覽器和基于代理的RT,該web服務(wù)器卸載引擎作為web服務(wù)器的一部 分或作為多個(gè)web服務(wù)器的集結(jié)點(diǎn)。web服務(wù)器加速可為JAVA、數(shù)據(jù)編 碼、數(shù)據(jù)轉(zhuǎn)碼及其它功能執(zhí)行。在一更佳實(shí)施方式中,RT可運(yùn)行包括對(duì)諸 如AJAX的多個(gè)協(xié)議的支持的更為智能的基于代理的瀏覽器。使用AJAX 或類似方法的瀏覽器在用戶操作期間能夠維持和管理該瀏覽器內(nèi)的信息,且僅當(dāng)需要新信息時(shí)才必須與web服務(wù)器接觸。代替服務(wù)器傳遞整個(gè)幀, AJAX使更具體的信息請(qǐng)求能執(zhí)行,并且web服務(wù)器只提供該新信息,該
新信息然后與先前存儲(chǔ)的信息一起用于本地地生成新幀。此連續(xù)性可通過(guò) 預(yù)取信息、請(qǐng)求更小的更有效的請(qǐng)求以及管理安全性用于改進(jìn)該用戶接口。
由AJAX生成的請(qǐng)求可由TSB 400管理,其中安全性可被維持,數(shù)據(jù)被TSB 400有效編碼,并且數(shù)據(jù)使用AJAX和RT 300的功能塊在客戶機(jī)一側(cè)解碼。
精心設(shè)計(jì)的AJAXweb應(yīng)用程序?qū)⑹褂每蛻魴C(jī)或代理高速緩存對(duì)象且 減輕發(fā)送整個(gè)幀的需要的能力,其中TSB 400仍然可用于對(duì)任何幀數(shù)據(jù)的 第一請(qǐng)求進(jìn)行編碼。對(duì)于未針對(duì)選擇性更新設(shè)計(jì)的web應(yīng)用程序,TSB 400 可用作在這種web應(yīng)用程序和基于AJAX的瀏覽器之間的代理。主機(jī)100 可以不是web服務(wù)器,并且可以是位于因特網(wǎng)服務(wù)供應(yīng)商(ISP)或入網(wǎng)點(diǎn) (POP)上的服務(wù)器。作為代理,該主機(jī)100或TSB 400可與RT300協(xié)調(diào) 以執(zhí)行基于客戶機(jī)驅(qū)動(dòng)器請(qǐng)求的選擇性更新。即使該web應(yīng)用程序請(qǐng)求全 部幀更新,TSB 400代理可處理新幀和舊幀并將兩者進(jìn)行比較,并向客戶 機(jī)提供經(jīng)編碼的更新信息。甚至對(duì)于并不是為選擇性更新具體設(shè)計(jì)的web 應(yīng)用程序,這也可允許針對(duì)RT 300的帶寬減少和經(jīng)改進(jìn)用戶接口。
TSB 400可通過(guò)可編程方案實(shí)現(xiàn),該可編程方案也可解決若干無(wú)關(guān)操 作的普通卸載任務(wù)。服務(wù)器可從卸載網(wǎng)絡(luò)、存儲(chǔ)器、安全性及其它任務(wù)中 受益。卸載處理器可被設(shè)計(jì)成靜態(tài)或動(dòng)態(tài)地平衡各個(gè)卸載任務(wù)并針對(duì)任何 給定工作負(fù)荷加速整體系統(tǒng)吞吐量。例如,該服務(wù)器可以在白天對(duì)痩客戶 機(jī)執(zhí)行基于服務(wù)器的計(jì)算而在晚上運(yùn)行大的數(shù)據(jù)庫(kù)操作。在白天,該卸載 引擎將運(yùn)行對(duì)TSA描述的操作。在晚上該卸載引擎將運(yùn)行iSCSI加速,以 從磁盤(pán)存儲(chǔ)器系統(tǒng)訪問(wèn)大的數(shù)據(jù)庫(kù)。該靈活性可由跟蹤各種工作負(fù)荷的板 上或系統(tǒng)范圍的管理程序管理。用于卸載任務(wù)之間切換的粒度可以是極小 的。該卸載引擎可被設(shè)計(jì)成執(zhí)行非??斓沫h(huán)境切換,從而在單個(gè)會(huì)話內(nèi)它 可對(duì)該同一會(huì)話執(zhí)行網(wǎng)絡(luò)、終端服務(wù)、存儲(chǔ)、安全性或其它卸載任務(wù)。
為支持針對(duì)不同卸載任務(wù)的動(dòng)態(tài)處理,TSB 400使用可編程和可配置的、 且在工作負(fù)荷變化時(shí)可被快速地任務(wù)切換和重新配置的處理塊。各種存儲(chǔ)器塊
24將被包含于各個(gè)處理塊中,并且大存儲(chǔ)器434也可被包括在內(nèi)。該CPU 402 是包括其自身的高速緩存的通??删幊痰奶幚砥鳎⑶铱梢詾樵撔遁d執(zhí)行內(nèi)務(wù) 處理和管理以及執(zhí)行某些高級(jí)協(xié)議和接口處理。橋接控制器404可集成網(wǎng)絡(luò)處 理器并管理TSB 400的交換結(jié)構(gòu)接口 130功能,且可管理同時(shí)通信的多個(gè)管道。 諸如內(nèi)容地址存儲(chǔ)器(CAM)以及傳統(tǒng)存儲(chǔ)器的特定內(nèi)存也可被包括在橋接控 制器404之內(nèi)。
橋接控制器404和TSA-GPU 700的處理單元可被實(shí)現(xiàn)為可配置數(shù)據(jù)處 理器(CDP),這些可配置數(shù)據(jù)處理器(CDP)被設(shè)計(jì)成容易重新配置以 對(duì)通常與專用硬件塊相關(guān)聯(lián)的吞吐量執(zhí)行不同處理。通過(guò)使用CDP而不是 專用硬件,不同卸載任務(wù)可由同一硬件執(zhí)行。用于設(shè)計(jì)CDP的現(xiàn)有技術(shù)方 法,諸如可重新配置的數(shù)據(jù)路徑、動(dòng)態(tài)指令集、超長(zhǎng)指令字(VLIW)、單 指令多數(shù)據(jù)(SIMD)、多指令多數(shù)據(jù)(MIMD)、數(shù)字信號(hào)處理(DSP) 以及其它形式的可重新配置計(jì)算可被組合以執(zhí)行極高性能計(jì)算。CDP還可 用作針對(duì)密碼及密鑰相關(guān)功能的帶有或不帶附加的專用硬件塊的安全性處 理器。
針對(duì)終端服務(wù)加速和代理服務(wù)器操作,CDP可被配置成執(zhí)行針對(duì)小塊 和矩形的數(shù)據(jù)編碼,各種形式的對(duì)視頻或數(shù)據(jù)的轉(zhuǎn)碼或轉(zhuǎn)換、小塊簽名的 生成和比較、以及其它關(guān)于TSA-GPU 700的如下描述的任務(wù)。對(duì)于存儲(chǔ)加 速,CDP可對(duì)iSCSI、光纖信道(FC)、光纖信號(hào)因特網(wǎng)協(xié)議(FCIP)以 及因特網(wǎng)協(xié)議相關(guān)任務(wù)的不同方面進(jìn)行配置。連接4卯可被配置成與FC或 另一存儲(chǔ)協(xié)議連接。對(duì)于因特網(wǎng)內(nèi)容加速,CDP可被配置成處理XML話 務(wù)、SOAP、 HTTP話務(wù)、JVM以及與基于因特網(wǎng)通信相關(guān)聯(lián)的其它話務(wù)。 其它web服務(wù)器加速可包括卸載DNS查找和處理TCP/IP連接,以及為傳 統(tǒng)的web客戶機(jī)和基于AJAX類代理的瀏覽器執(zhí)行數(shù)據(jù)編碼和轉(zhuǎn)碼。
TSA-GPU 700執(zhí)行TSB 400的圖形相關(guān)卸載和加速功能。多用戶圖形 處理單元(MU-GPU) 412包括通過(guò)分組對(duì)選擇性顯示更新的支持且可遵守 部分或全部所提出的VESA數(shù)字分組視頻鏈路(DPVL)標(biāo)準(zhǔn),盡管一較佳 實(shí)施方式包括增強(qiáng)性能。TSA 424支持通過(guò)系統(tǒng)總線406來(lái)自MU-GPU 412的分組顯示更新,或優(yōu)選地支持輸入路徑414和416,輸入路徑414和416 可以是串行的數(shù)字視頻輸出SDV01和SDV02或具有不同總線寬度、信令 協(xié)議和頻率的一般化端口。示例包括數(shù)字視頻輸出(DVO)、數(shù)字視覺(jué)接 口 (DVI)、高清晰度多媒體接口 (HDMI)、顯示端口或其它低壓差分信 令(LVDS)、轉(zhuǎn)換最小化差分信令(TMDS)、快速PCI或另一方案。顯 示輸出路徑可全速運(yùn)行以在高刷新速率下輸出多個(gè)視頻幀,其中這些幀可 以是對(duì)應(yīng)于一個(gè)以上目標(biāo)RT的選擇性更新矩形。TSA 424可經(jīng)由專用鏈路 426、通過(guò)主系統(tǒng)總線4406或通過(guò)片上系統(tǒng)(SOC)實(shí)現(xiàn)更緊密地結(jié)合, 與本地I/O或網(wǎng)絡(luò)控制器連接。第二系統(tǒng)總線408還可針對(duì)附加帶寬而被 包括在內(nèi),并且更直接地支持橋接控制器404及其與多個(gè)交換結(jié)構(gòu)的接口 連接。
除執(zhí)行傳統(tǒng)圖形處理之外,MU-GPU412產(chǎn)生基于顯示的選擇性更新, 這些基于顯示的選擇性更新指示顯示的哪一部分已經(jīng)改變。選擇性更新可 以采取經(jīng)由視頻輸出路徑414或416或經(jīng)由主要系統(tǒng)總線406輸出的矩形 或小塊的格式。矩形更新包括指示窗口的起源、尺寸和格式的分組報(bào)頭。 起源可用于指示哪個(gè)RT是目的地。小塊也可被使用并且可被標(biāo)準(zhǔn)化為一個(gè) 或更多個(gè)的固定尺寸,以使該報(bào)頭可需要更少的信息來(lái)描述該小塊。其它 信息,例如矩形或小塊在RT上是否和如何按比例縮放,也可被包括于該報(bào) 頭內(nèi)。其它形式的選擇性更新包括對(duì)位塊傳送、區(qū)域填充和圖形填充的支 持,其中針對(duì)要在RT上執(zhí)行的操作,最小數(shù)據(jù)量與命令參數(shù)一起發(fā)送,而 不是發(fā)送大的數(shù)據(jù)塊。其它報(bào)頭支持視頻流、同步鎖相、縮放視頻流、伽 瑪表和幀緩沖器控制的形式的更新。其它增強(qiáng)的和復(fù)雜的命令也可以選擇 性更新的形式置入RT。所提出的DPVL規(guī)范詳述針對(duì)選擇性更新連同它們 的報(bào)頭一起的一種可能實(shí)現(xiàn)。
一個(gè)MU-GPU 412可由用于所有RT 300的系統(tǒng)通過(guò)將RAM 418組織 進(jìn)各自包含多個(gè)RT的顯示數(shù)據(jù)的各個(gè)顯示表面被有效地虛擬化。MU-GPU 412的2D、 3D和視頻圖形處理器(未示出)被優(yōu)選地用來(lái)實(shí)現(xiàn)較高的圖形 和視頻性能。圖形處理單元可以包括2D圖形、3D圖形、視頻編碼、視頻解碼、縮放、視頻處理及其它先進(jìn)的像素處理。MU-GPU 412的顯示控制器還可以執(zhí)行諸如視頻和圖形數(shù)據(jù)的混合和鍵控的功能,以及整屏刷新操作。除了用于主次顯示表面的RAM 418,還有充足的用以支持各種3D和 視頻操作的屏外存儲(chǔ)器。作為管理選擇性更新的DPVL方法的另一選擇, RAM 418內(nèi)可以有選擇性更新的緩沖存儲(chǔ)器(S緩沖器)404。在一個(gè)實(shí)施 方式中,S緩沖器404存儲(chǔ)狀態(tài)位、簽名或?qū)?yīng)于每個(gè)虛擬顯示的每個(gè)小塊 的狀態(tài)位和簽名。在另一實(shí)施方式中,S緩沖器404存儲(chǔ)帶或不帶標(biāo)題、狀 態(tài)位和簽名信息的小塊本身,其中該小塊被安排為選擇性更新而輸出。圖形引擎和顯示控制器通常將合成與每個(gè)RT顯示器的主表面相對(duì)應(yīng) 的完整顯示圖像。RAM 418將有效地包含用于所有RT的顯示幀的陣列。 例如,為了該顯示,存儲(chǔ)器可被配置為16KX16K像素的虛擬顯示。在這 種示例應(yīng)用中,1KX1K的256 RT顯示可被映射為16KX16K陣列。類似 地,如果每個(gè)RT都是具有256KX128K顯示器的蜂窩式電話,則8192個(gè) 虛擬顯示可被映射到16KX16K顯示區(qū)。附加的屏外和暫時(shí)存儲(chǔ)器也可類 似地被包含在內(nèi)。因?yàn)楸旧暾?qǐng)涉及多個(gè)獨(dú)立的RT,所以MU-GPU412可添 加不同的安全性特征以使不同顯示區(qū)域安全并防止一個(gè)用戶獲得對(duì)另一用 戶的幀緩沖器的訪問(wèn)權(quán)。出于安全性和可靠性考慮,系統(tǒng)將優(yōu)選地包括硬 件鎖,該硬件鎖防止對(duì)顯示存儲(chǔ)器的受保護(hù)部分的未獲授權(quán)訪問(wèn)。圖5示出圖4存儲(chǔ)器418的一示例配置,其中虛擬顯示空間被設(shè)為水 平方向?yàn)?200像素而垂直方向?yàn)?800像素。存儲(chǔ)器418被分為八個(gè)標(biāo)示 為520、 522、 524、 526、 528、 530、 532和534的1600X 1200顯示區(qū)。典 型的高質(zhì)量顯示模式被配置為每像素24比特的比特深度,盡管配置常常為 了更容易對(duì)準(zhǔn)和額外八個(gè)比特在顯示器被圖形和視頻處理器訪問(wèn)時(shí)針對(duì)其 它用途的潛在使用,可使用如在RAM 418中組織的每像素32比特。該分 塊存儲(chǔ)器的例示作為來(lái)自MU-GPU 412的視圖在本質(zhì)上是概念性的。實(shí)際 的RAM尋址還將涉及存儲(chǔ)器頁(yè)面尺寸和其它因素。圖5在顯示區(qū)528進(jìn)一步示出顯示更新矩形550。 1600X 1200顯示的 虛線540對(duì)應(yīng)于稱作為分區(qū)(precinct)的256X256像素的更粗糙的塊界。如從顯示窗口 550顯而易見(jiàn),顯示窗口邊界的對(duì)準(zhǔn)并不必與分區(qū)邊界對(duì)直。 通常的情況是用戶將任意地確定顯示屏窗口的尺寸并將其定位。為了支持不要求更新整個(gè)幀的遠(yuǎn)程屏幕更新,受顯示窗口 550影響的每個(gè)分區(qū)需要 被更新。此外,顯示窗口 550內(nèi)的數(shù)據(jù)類型和周圍的顯示像素可以是完全 不同的類型并且沒(méi)有關(guān)聯(lián)。同樣地,基于分區(qū)的編碼算法如果是有損的, 則需要確保沒(méi)有與分區(qū)的邊緣或顯示窗口 550的邊界相關(guān)聯(lián)的視覺(jué)偽像。 實(shí)際編碼過(guò)程可在比分區(qū)小的塊上,例如8X8或16X16上進(jìn)行。因此, 一較佳實(shí)施方式使用確定性編碼算法,其中對(duì)一組像素生成相同的結(jié)果而 不管其周圍像素如何,并且沒(méi)有偽像將因該窗口的任意對(duì)準(zhǔn)而產(chǎn)生。用于該編碼方案的塊界也是關(guān)于小塊的考慮因素。例如,編碼方案可 以要求塊界是8個(gè)像素的倍數(shù)。如果該源小塊不是8像素的倍數(shù),則它將 需要用周圍數(shù)據(jù)填補(bǔ)。在另一情況下,較佳地常常是使該塊界定向到屏幕, 而不是特殊的用戶設(shè)置的矩形或小塊。如果用戶操縱80X80像素的窗口, 則即使它在理論上可被放置成在水平方向和垂直方向上各自使用最少的10 個(gè)8X8塊(總共一百個(gè)塊),更可能的也是在每個(gè)方向上跨十一個(gè)塊(121 塊)。該矩形更新和該矩形的任何順序編碼將因此在部分周圍像素需要被 填補(bǔ)的地方編碼88X 88像素(121塊)。也可支持帶有不同尺寸顯示器的RT。在一個(gè)示例中,MU-GPU412可 以支持任意數(shù)目的任意尺寸顯示器。在另一示例中,支持小顯示器作為子 窗口或支持大顯示器作為跨越一個(gè)以上顯示區(qū)的重疊窗口可能更容易些。 如矩形536所勾勒的,1920X 1080窗口需要使用532和534個(gè)區(qū)域。盡管 這樣會(huì)浪費(fèi)區(qū)域,但可能比創(chuàng)建每個(gè)顯示器的定制尺寸簡(jiǎn)單些。由于 MU-GPU 412的選擇性矩形更新機(jī)制,只有該屏幕的相關(guān)區(qū)域?qū)⒈粋鬏敗?當(dāng)DVPL動(dòng)態(tài)地控制CRTC控制寄存器以管理選擇性更新時(shí),可實(shí)現(xiàn)其它 需要更少處理器干預(yù)和改進(jìn)系統(tǒng)效率的更靈活的機(jī)制,例如S緩沖器。更靈活的系統(tǒng)還可將矩形分成更多的常規(guī)尺寸實(shí)體,諸如小塊。具有 任意矩形尺寸的報(bào)頭信息的效率與使用較不靈活小塊尺寸但更多屏幕數(shù)據(jù) 的可能更簡(jiǎn)單的報(bào)頭之間有折衷。在一較佳實(shí)施方式中,小塊可被動(dòng)態(tài)地設(shè)置成塊尺寸的任意倍,其中塊尺寸是該數(shù)據(jù)編碼算法的最小實(shí)體。這些 塊可被定向?yàn)樵磮D像或屏幕的固定塊位置。塊的尺寸將被包括于報(bào)頭信息內(nèi)。諸如530的存儲(chǔ)區(qū)可被指定為用于管理選擇性更新的S緩沖器404。 在一實(shí)施方式中,S緩沖器包括與顯示幀520、 522、 524和526的小塊相對(duì) 應(yīng)的狀態(tài)位,其中狀態(tài)位指示小塊是否需要選擇性更新。該S緩沖器404 還可存儲(chǔ)每個(gè)小塊的簽名,該簽名然后用來(lái)確定對(duì)選擇性更新的需要。在 另一實(shí)施方式中,來(lái)自幀520、 522、 524和526的需要選擇性更新的小塊 被復(fù)制到存儲(chǔ)區(qū)530,且排隊(duì)以供選擇性更新輸出。這些排隊(duì)小塊可包括各 個(gè)報(bào)頭、狀態(tài)和簽名信息。圖6A示出具有稱為1080P的高清晰度電視(HDTV)分辨率1920X 1080的圖5顯示圖536的更詳細(xì)視圖。在圖6A中,固定尺寸矩形614用 屏幕位置邊界定向。每個(gè)矩形是160像素寬和120像素高。每行有12個(gè)矩 形(12X 160=1920)而每列有9個(gè)矩形(9X 120=1080)。系統(tǒng)可將這些 矩形用作為構(gòu)成選擇性更新的基礎(chǔ)的小塊。在圖6B中,另一系統(tǒng)進(jìn)一步將 矩形614分成包含80X40像素的小塊620,且系統(tǒng)可選擇這些小的小塊作 為選擇性更新的基礎(chǔ)。更靈活的系統(tǒng)可以利用由六個(gè)小塊620組成的較大 矩形614和小塊本身,并且使用報(bào)頭信息來(lái)描繪在任何給定時(shí)間輸出哪種 類型。在這兩種情況下,構(gòu)成編碼算法的基礎(chǔ)的塊裝入小塊或矩形內(nèi)。假設(shè)8X 8±央,則每個(gè)小塊具有10X5塊的配置而每個(gè)矩形具有20X15塊的配置。既使 用較大矩形又使用較小三角形的系統(tǒng)可使用不同機(jī)制來(lái)各自確定選擇性更新 要求。在一較佳實(shí)施方式中,較大矩形可具有指示它們是否已經(jīng)改變的相關(guān)聯(lián) 狀態(tài)位,并且較小小塊可將簽名用于做這種決定。狀態(tài)位和簽名可如下所述用 S緩沖器進(jìn)行管理。MU-GPU 412可結(jié)合該處理來(lái)直接執(zhí)行小塊的選擇性編碼,或者每 個(gè)小塊可以使用選擇性更新過(guò)程檢驗(yàn)并輸出到TSA 424,且將包括適當(dāng) 的報(bào)頭。該報(bào)頭將由TSA 424處理,并且基于報(bào)頭內(nèi)的字段,TSA 42429將知道該小塊預(yù)期哪個(gè)RT以及在該顯示屏上的哪處。在適合時(shí),TSA 424 將把該小塊編碼為被壓縮的格式,調(diào)節(jié)任何所需報(bào)頭信息且提供小塊和 報(bào)頭以供進(jìn)一步網(wǎng)絡(luò)處理。MU-GPU 412和TSA 424可以不同地劃分該選擇性更新過(guò)程。在一些 情況下,MU-GPU 412可執(zhí)行完整的管理且將只發(fā)送需要更新到TSA 424 的小塊。在其它情況下,TSA 424需要執(zhí)行數(shù)據(jù)片的進(jìn)一步濾波以確定哪 些數(shù)據(jù)片真正需要更新。在MU-GPU412內(nèi),選擇性更新機(jī)制可以是硬接 線的或需要CPU干預(yù),且硬件可跨繪圖引擎和選擇性更新刷新引擎實(shí)現(xiàn)。 小塊的編碼也可在MU-GPU 412或在TSA 424中執(zhí)行。MU-GPU 412還可 以將RT的圖形繪圖命令經(jīng)由數(shù)字化視頻總線輸出到TSA 424,或者軟件驅(qū) 動(dòng)器可以直接將命令提供到TSA 424。針對(duì)該選擇性小塊更新,在第一實(shí)施方式中,S緩沖器用于MU-GPU 412具有繪圖引擎和選擇性更新刷新引擎的地方,繪圖引擎管理每個(gè)小塊的 狀態(tài)位,選擇性更新刷新引擎在狀態(tài)位管理針對(duì)每個(gè)小塊的選擇性顯示更 新時(shí)監(jiān)視該狀態(tài)位。類似于用在3D圖形中的Z緩沖器,S緩沖器可被實(shí)現(xiàn) 為數(shù)據(jù)的分離存儲(chǔ)器板。與Z緩沖器一樣,經(jīng)增強(qiáng)的MU-GPU412的硬件 繪圖操作可以在沒(méi)有附加命令的情況下將S緩沖器狀態(tài)位更新。狀態(tài)位然 后由選擇性更新硬件用來(lái)確定需要在RT上更新哪個(gè)小塊。類似于顯示控制 器的刷新周期,該選擇性更新硬件可周期性地遍歷S緩沖器并讀取狀態(tài)位。 基于狀態(tài)位的狀態(tài),選擇性更新硬件將忽略不需要被更新的小塊,或者它 將讀取用于選擇性更新的小塊,將該小塊與報(bào)頭信息一起輸出且相應(yīng)地更 新?tīng)顟B(tài)位。在效率較低的實(shí)現(xiàn)中,MU-GPU 412可使用更多的傳統(tǒng)圖形繪 圖操作來(lái)生成S緩沖器。在另一不需要特定S緩沖器硬件的較佳實(shí)施方式中,MU-GPU 412可 管理需要更新的級(jí)聯(lián)小塊的選擇性更新緩沖器。該選擇性更新緩沖器可以 在獨(dú)立的存儲(chǔ)區(qū)中構(gòu)成。每次MU-GPU 412執(zhí)行改變小塊的操作時(shí),它將 隨后把該小塊復(fù)制到選擇性更新緩沖器中。報(bào)頭信息可被存儲(chǔ)在每個(gè)小塊 的起始處且小塊可被打包在一起。顯示控制器被設(shè)立成使用選擇性更新緩沖器,并且使用標(biāo)準(zhǔn)顯示控制器輸出操作經(jīng)由刷新端口將其輸出。MU-GPU 412可管理作為級(jí)聯(lián)小塊的環(huán)形緩沖器或鏈接緩沖器列表的一個(gè)或更多個(gè)緩沖器,并且提供基于TSA 424視作小塊列表的SDVO輸出的連續(xù)輸出。 各種方案可用于MU-GPU 412以仲裁列表中的放置優(yōu)先權(quán)。此方法對(duì)于使 用MU-GPU 412而言可能是最有效的,該MU-GPU 412具有較少的支持多 個(gè)RT的特定硬件,且具有很少的或沒(méi)有特殊的選擇性更新硬件。在另一較佳實(shí)施方式中,TSA 424與MU-GPU 412 —起操作以判定在 RT 300上哪個(gè)小塊可能需要更新。MU-GPU 412在每個(gè)小塊基礎(chǔ)上管理狀 態(tài)位的能力可能太困難,且可將小塊聚合為大的小塊或全虛擬的RT顯示, 并且只具有針對(duì)狀態(tài)位的有限粒度。將大的小塊減小為小的小塊更新可基 于每個(gè)小塊的跟蹤簽名執(zhí)行。該簽名通常在第一次處理小塊時(shí)生成且根據(jù) 后續(xù)簽名校驗(yàn)。簽名可由TSA 424根據(jù)導(dǎo)入數(shù)據(jù)操作或與MU-GPU412的 選擇性更新硬件-起操作來(lái)生成和處理。如果TSA 424對(duì)每個(gè)小塊執(zhí)行簽 名校驗(yàn),則可節(jié)約到每個(gè)RT 300的網(wǎng)絡(luò)帶寬。如果MU-GPU412執(zhí)行簽名 校驗(yàn),則節(jié)約經(jīng)由視頻路徑到TSA 424的帶寬。MU-GPU 412能生成和管 理對(duì)應(yīng)于小塊的簽名的存儲(chǔ)板,其中狀態(tài)位可以是簽名板或隔離板的一部 分。此外,狀態(tài)位和簽名位可在RAM高速緩存中得到管理且由MU-GPU412 用鏈表管理。取決于由主機(jī)400上的圖形操作生成的圖形命令的類型和RT 300的性 能,命令可被封裝并發(fā)送用于在RT上執(zhí)行,或者命令可由MU-GPU 412 在本地執(zhí)行。在許多情況下,盡管命令被發(fā)送用于在RT上執(zhí)行,但該命令 也由MU-GPU 412在本地執(zhí)行以保持虛擬顯示的本地拷貝。理想地,任何 作為冗余本地圖形命令的結(jié)果而改變的小塊將用狀態(tài)位濾出,以防止不必 要的小塊更新分組被發(fā)送到RT。通常需要較少的帶寬來(lái)發(fā)送命令而不是經(jīng) 編碼的小塊,但這并不總是可能的。手動(dòng)地管理選擇性更新緩沖器的系統(tǒng) 也會(huì)考慮正在被發(fā)送到RT的命令。將由在RT上執(zhí)行的命令更新的小塊理 想地將不被MU-GPU 412放入選擇性更新緩沖器。代理服務(wù)器或終端服務(wù)加速器的虛擬顯示存儲(chǔ)器可在變化反映到RT顯示上之前更新。雖然它們與同一顯示器相關(guān),但由MU-GPU412和TSA 424管理的小塊與子幀的位置獨(dú)立于用戶界面操作進(jìn)行定位。用戶界面操作 可導(dǎo)致小塊內(nèi)的或跨多個(gè)小塊的顯示變化。用戶界面變化可由用戶操作、 AJAX代理、瀏覽器或代理服務(wù)器發(fā)起并且導(dǎo)致對(duì)虛擬顯示存儲(chǔ)器的更新。 小塊中的更新或虛擬顯示存儲(chǔ)器的經(jīng)更新子幀將在RT上反映且由MU-GPU412和TSA 424管理。在另一示例中,RT預(yù)期的圖形命令由TSA 424處理且被分成經(jīng)編碼的 數(shù)據(jù)傳輸和經(jīng)修改的圖形命令。例如,主系統(tǒng)可能想要執(zhí)行來(lái)自屏外存儲(chǔ) 器或來(lái)自圖形到屏上存儲(chǔ)器(pattern to on-screen memory)的BitBlt操作。 這可在MU-GPU 412子系統(tǒng)上容易地執(zhí)行。然而,在RT上為該BitBlt請(qǐng) 求的源數(shù)據(jù)不被高速緩存。因此為了能夠發(fā)送該圖命令,可能首先必需對(duì) 源數(shù)據(jù)或圖形進(jìn)行編碼、封裝并發(fā)送到RT,然后將經(jīng)修改的圖形命令封裝 并發(fā)送到RT。此過(guò)程可由TSA 424卸載。盡管DirectX驅(qū)動(dòng)器可通過(guò) MU-GPU 412灌進(jìn)命令,該MU-GPU 412然后將命令輸出到TSA 424,但 是對(duì)于DirectX驅(qū)動(dòng)器而言,將命令直接傳輸?shù)絋SA 424常常是更有效的。圖7示出一較佳實(shí)施方式,其中將多用戶GPU (MU-GPU) 412與終端 服務(wù)加速器(TSA) 424組合成為集成電路(TSA-GPU-IC)片上系統(tǒng)(SOC) 710。該經(jīng)組合的TSA-GPU-IC 710可包括在芯片上的或在芯片外作為子系 統(tǒng)700的一部分的RAM 736。 TSA-GPU 700可包括一個(gè)或更多個(gè)可能相似 或不同的系統(tǒng)總線接口 406和407。該TSA-GPU 700包括2D引擎720、 3D 圖形處理單元(GPU) 722、用于像快速PCI的各種系統(tǒng)總線的系統(tǒng)總線接 口 732和可包括針對(duì)視頻的接口的本地I/O410和其它本地I/O的控件。此 外,SOC 710可以包括視頻壓縮機(jī)724和視頻解壓機(jī)726硬件的某組合, 或者某種形式的將那些及其它視頻相關(guān)功能相組合的可編程視頻處理器 764。附加處理器756也可被包括在內(nèi)。還被包括在內(nèi)的是執(zhí)行選擇性更新的帶顯示控制器的多用戶選擇性更 新(SUC) 750以及對(duì)所需的子幀或小塊進(jìn)行壓縮的數(shù)據(jù)編碼器752。 SUC 750可包括針對(duì)本地顯示的輸出222和758,雖然遠(yuǎn)程多用戶通過(guò)系統(tǒng)接口32732或可能的與網(wǎng)絡(luò)控制器的直接連接426也得到支持。系統(tǒng)總線760例示 了在各個(gè)處理單元以及系統(tǒng)接口 732和存儲(chǔ)器接口 734之間的連接。該系 統(tǒng)總線760可包括各種形式的縱橫交換、經(jīng)仲裁傳輸,并且為了增強(qiáng)性能 還可具有從一個(gè)單元到另--個(gè)的直接路徑。在圖4的多芯片TSA-GPU 400中,MU-GPU412經(jīng)由SDVO路徑414 和416連接到TSA 424,且MU-GPU和TSA各自具有它們自己的RAM。 相反在圖7中,TSA-GPU-IC 710使用共享的RAM 736而不是SDVO路徑。 使用RAM 736消除了使用SDVO路徑來(lái)傳輸?shù)男枰乙蚨?SDVO 帶寬問(wèn)題。此外,通過(guò)分享存儲(chǔ)器,SUC 750能夠直接從存儲(chǔ)器讀取幀信 息,從而消除通過(guò)MU-GPU 412對(duì)存儲(chǔ)器的讀取。若干附加的最優(yōu)化可被包括在TSA-GPU 700的SOC 710內(nèi),諸如直接 包括各個(gè)功能單元中的S緩沖器支持。此外,TSA-GPU 700可被設(shè)計(jì)成映 射對(duì)多個(gè)顯示的支持,而不是用如圖5示出的固定尺寸顯示器來(lái)實(shí)現(xiàn)多用 戶幀支持,該多個(gè)顯示被匹配到它們對(duì)應(yīng)遠(yuǎn)程終端中的分辨率和色深度。 將存儲(chǔ)器內(nèi)的顯示更直接地與對(duì)應(yīng)的遠(yuǎn)程顯示系統(tǒng)匹配可為存儲(chǔ)器使用實(shí) 現(xiàn)更高的效率。S緩沖器支持可用于硬件或與跟蹤軟件層一起協(xié)助針對(duì)顯示幀的編碼 選擇,這些顯示幀已經(jīng)改變并需要生成選擇性更新流。S緩沖器支持可使用 報(bào)頭、狀態(tài)位、簽名或這三者的組合,并且可基于固定尺寸小塊或可變尺 寸小塊。該SUC 750可利用S緩沖器支持來(lái)確定該顯示的哪個(gè)子幀需要選 擇性更新。該報(bào)頭信息對(duì)選擇性更新的下游處理可能是有用的。不同系統(tǒng)可針對(duì)減小尺寸的報(bào)頭或減少數(shù)目的選擇性更新傳輸進(jìn)行優(yōu) 化。例如, 一較佳實(shí)施方式可利用包括一64位報(bào)頭的基于小塊的選擇性更 新系統(tǒng)。該報(bào)頭的16位位可用于指示64K可能RT的哪一個(gè)是該選擇性更 新的預(yù)期接收者。另兩位可用于指示有限數(shù)目的固定尺寸小塊的哪一個(gè)被 包括在該選擇性更新中。這些位的另一段然后指定哪個(gè)小塊編號(hào)將指示顯 示器上與該選擇性更新對(duì)應(yīng)的位置。然后報(bào)頭之后是該選擇性更新編碼數(shù) 據(jù)。用于指定優(yōu)先權(quán)、誤差校驗(yàn)和其它跟蹤信息的附加位也可被包括在內(nèi)。33在另一較佳實(shí)施方式中,SUC 750可不使用小塊并且要求更大種類來(lái) 用于該選擇性更新分組。例如,系統(tǒng)可以要求X和Y偏移量來(lái)指定選擇性 更新矩形的起始位置,而不是提供數(shù)字來(lái)指定小塊位置。然后選擇性更新 矩形用水平方向和垂直方向的像素或塊的數(shù)目進(jìn)行描述。雖然針對(duì)這種系 統(tǒng)的報(bào)頭信息可以更大,但執(zhí)行對(duì)遠(yuǎn)程終端的更新的獨(dú)特傳輸?shù)臄?shù)目可較 少。取決于RT的性能和主機(jī)100與RT之間的網(wǎng)絡(luò)特性,TSB 400可選擇 將某些圖形命令直接發(fā)送到RT而不是發(fā)送選擇性更新。這些圖形命令可由 TSB CPU子系統(tǒng)402或由處理器756管理。這些處理器還可管理代理服務(wù) 器或其它終端服務(wù)功能,包括對(duì)DirectX和RDP命令執(zhí)行命令解釋。作為 解釋器,處理器756或CPU子系統(tǒng)402對(duì)在主機(jī)系統(tǒng)上運(yùn)行的軟件驅(qū)動(dòng)器 進(jìn)行卸載,以管理2D圖形命令、3D圖形命令、視頻流和其它窗口功能。 解釋器功能可與數(shù)據(jù)編碼器752組合,以執(zhí)行許多管理RT的計(jì)算密集方面, 并且還可最優(yōu)化從主機(jī)系統(tǒng)發(fā)送到各RT的命令、數(shù)據(jù)和視頻流。代理服務(wù) 器可在TSB 400和RT之間拆分。例如,各種圖形BitBlt、源到屏幕目的地的BitBlt及其它位圖傳輸可得 到增強(qiáng)。需要源數(shù)據(jù)、源圖形或源位圖的圖形命令可通過(guò)數(shù)據(jù)編碼器752 將這些源編碼成更有效的格式。經(jīng)編碼的源數(shù)據(jù)、源圖形或源位圖與經(jīng)修 改的圖形命令一起被傳輸?shù)絉T 300。目標(biāo)RT將接收經(jīng)編碼源,將其解碼, 然后在接收經(jīng)修改圖形命令之后執(zhí)行預(yù)期的操作。經(jīng)編碼數(shù)據(jù)和經(jīng)修改命 令的傳輸可以用RDP傳輸或用TSA-GPU 700和RT 300所支持的類似RDP 的傳輸。針對(duì)TSB 400中的視頻流,DirectX解釋器可截取和卸載視頻流處理并 向目標(biāo)RT提供最佳流。卸載中的第一步是確定處理器刀片200不對(duì)多CPU 復(fù)合體執(zhí)行視頻解碼?;谥鳈C(jī)的解碼具有幾個(gè)不利方面,最重要的兩個(gè) 方面是,第一,它占用了相當(dāng)數(shù)量的CPU周期來(lái)執(zhí)行實(shí)際的解碼。第二, 主機(jī)上具有經(jīng)解碼的視頻幀并非必然是獲得在目標(biāo)RT上顯示的幀的最佳 方法。代替地,DirectX解釋器軟件截取DirectX調(diào)用,在微軟Windows 的某些版本中DirectX調(diào)用可能需要使用DirectShow以獲得對(duì)該視頻流的 訪問(wèn)權(quán),盡管其仍然處于被壓縮形式。為了使RDP繼續(xù)正常操作,該DirectX 解釋器可能需要用模擬幀來(lái)欺騙RDP軟件接口。
同時(shí),TSB 400知道RT能夠解碼哪種視頻流格式、從主機(jī)系統(tǒng)到RT 名義上是哪種網(wǎng)絡(luò)吞吐量,以及哪種分辨率和顯示特征是該視頻流想要的。 有了此信息,TSB 400設(shè)立TSA-GPU來(lái)處理導(dǎo)入視頻流,從而為了網(wǎng)絡(luò)、 RT和顯示輸出需要而產(chǎn)生理想流。這可能需要將一種編碼格式代碼轉(zhuǎn)換為 另一種,將一個(gè)比特率轉(zhuǎn)換為另一個(gè)、改變幀速率、改變顯示格式、改變 分辨率或這些的某種組合。然后TSB 400封裝經(jīng)處理的位流且將它發(fā)送到 合適的連接以供網(wǎng)絡(luò)處理。
有幾種將代理服務(wù)器或運(yùn)行在系統(tǒng)IOO上的RDP服務(wù)器軟件在處理器 刀片200和TSB400之間劃分的方法。兩種實(shí)施方式在此被詳細(xì)考慮,第 一種是"終止和再生"而第二種是"卸載和增強(qiáng)"??墒褂酶鱾€(gè)實(shí)施方式 的各個(gè)方面的各個(gè)實(shí)施方式的變體也是可能的。
在"終止和再生"情況下,RDP客戶機(jī)在TSB 400上運(yùn)行。只要涉及 在處理器刀片200上運(yùn)行的RDP服務(wù)器,RDP操作就被TSB 400終止。在 此情況下,TSB 400利用TSA-GPU 700來(lái)創(chuàng)建虛擬顯示空間,從而通過(guò)創(chuàng) 建單個(gè)大的顯示圖來(lái)支持多個(gè)虛擬RT,在該單個(gè)大的顯示圖內(nèi)每個(gè)用戶是 偏置的或其中每個(gè)虛擬顯示被視為具有其自己映射的獨(dú)立顯示。RDP客戶 機(jī)軟件可能需要對(duì)要求安全客戶機(jī)通信的RDP主機(jī)使用處理器刀片200與 TSB 400之間的密鑰交換和安全性處理。當(dāng)RDP客戶機(jī)接收來(lái)自RDP主機(jī) 的命令時(shí),該客戶機(jī)利用TSA-GPU 700將顯示幀呈現(xiàn)顯示子系統(tǒng)。使用"終 止和再生",TSB 400隨后能夠?qū)⑺胍娜魏畏椒ê腿魏螀f(xié)議用于TSB 400和RT之間的通信。
在"終止和再生"操作的較佳實(shí)施方式中,TSB 400被配置為各自與 RT對(duì)應(yīng)的多個(gè)RDP客戶機(jī)。處理器刀片200使用交換結(jié)構(gòu)來(lái)與"虛擬" RDP客戶機(jī)通信。然后TSB 400擔(dān)當(dāng)使用虛擬網(wǎng)絡(luò)計(jì)算(VNC)的至i」RT 的服務(wù)器。RT與主機(jī)100之間的所有通信由TSB 400管理。來(lái)自RT的VNC鍵盤(pán)和鼠標(biāo)命令由TSB 400譯碼為到處理器刀片200的RDP命令。 然后使用VNC的任一類客戶機(jī)能夠有效地與主機(jī)100通信,在該主機(jī)100 中主處理器刀片200運(yùn)行非VNC服務(wù)器。在"終止和再生"操作的第二較 佳實(shí)施方式中,TSB 400擔(dān)當(dāng)因特網(wǎng)服務(wù)器并與RT運(yùn)行瀏覽器通信。因?yàn)?不同平臺(tái)上的不同瀏覽器可具有不同性能,所以TSB 400可支持不同 HTTP、 XML、 Java及其它用于與基于瀏覽器的客戶機(jī)通信的元數(shù)據(jù)協(xié)議。
對(duì)于網(wǎng)絡(luò)服務(wù),"終止和再生"功能由在TSB 400上運(yùn)行的代理服務(wù) 器執(zhí)行。處理器刀片200可運(yùn)行web服務(wù)器或者可管理與位于其它地方的 web服務(wù)器的連接。或者,TSB 400可以直接與web服務(wù)器通信。作為代 理服務(wù)器,TSB 400將終止所有的網(wǎng)絡(luò)操作。TSB 400可包括代理,諸如連 續(xù)向h游web服務(wù)器作出請(qǐng)求的AJAX代理。然后TSB 400直接與RT客 戶機(jī)通信。TSB 400可使用RT所支持的任何協(xié)議并且可選擇為RT通信安 排完全獨(dú)立的協(xié)議或可選擇重新使用類似的基于web的協(xié)議。
對(duì)于基于服務(wù)器計(jì)算的第二實(shí)施方式,"卸載和增強(qiáng)"保持處理器刀 片200在客戶機(jī)通信中的更多參與。處理器刀片200上的跟蹤軟件層仍然 將DirectX視頻、圖形和數(shù)據(jù)流重定向到TSB 400,該TSB 400完成DirectX 調(diào)用的功能。卸載該功能使得多CPU復(fù)合體202對(duì)該多用戶系統(tǒng)的其它用 戶可用。進(jìn)一步處理可由TSB 400用對(duì)顯示環(huán)境和允許最優(yōu)化處理的網(wǎng)絡(luò) 帶寬的理解完成。
當(dāng)圖形命令被本地執(zhí)行并轉(zhuǎn)發(fā)到RT以供執(zhí)行時(shí),TSB 400上的解釋器軟 件還可以用于與TSA-GPU 700 —起管理S緩沖器。TSA-GPU 700本地執(zhí)行該 圖形命令的原因是使幀緩沖器的當(dāng)前拷貝可被管理以供未來(lái)使用。因?yàn)閳D形命 令正在RT上執(zhí)行,所以作為本地圖形命令結(jié)果在主機(jī)上變化的小塊不需要使 選擇性更新硬件發(fā)送經(jīng)編碼的小塊。為了防止這個(gè),RDP跟蹤軟件需要計(jì)算哪 些小塊受圖形命令影響。S緩沖器中與這些小塊對(duì)應(yīng)的位狀態(tài)位可被管理以使 基于小塊的選擇性更新不被執(zhí)行。
跟蹤和解釋器軟件還可用于輔助針對(duì)顯示幀的編碼選擇,這些顯示幀 已經(jīng)改變并且需要生成顯示更新流?;叵雸?zhí)行編碼是為了減少遠(yuǎn)程顯示系統(tǒng)300再生顯示所需的數(shù)據(jù)。跟蹤軟件層可以幫助識(shí)別在幀內(nèi)或小塊內(nèi)的
數(shù)據(jù)類型以允許執(zhí)行最優(yōu)化類型的編碼。某些RT可能不具有充足的圖形處 理能力來(lái)執(zhí)行圖形命令,并且可能被發(fā)送由TSA-GPU 700處理的經(jīng)編碼數(shù)據(jù)。
例如,如果跟蹤軟件層識(shí)別到小塊的表面是實(shí)時(shí)視頻,則可對(duì)那些小塊使 用對(duì)視頻更有效的編碼方案,該編碼方案具有平滑的空間轉(zhuǎn)變和時(shí)間局部性。 如果跟蹤軟件層識(shí)別到小塊的表面主要是文本,則可使用對(duì)文本的清晰邊緣和 充足空白更有效的編碼方案。識(shí)別哪類數(shù)據(jù)在哪個(gè)區(qū)域是一個(gè)復(fù)雜的問(wèn)題。然 而,跟蹤軟件層的實(shí)施方式允許接口進(jìn)入主顯示系統(tǒng)的圖形驅(qū)動(dòng)器和協(xié)助此識(shí) 別的主操作系統(tǒng)體系結(jié)構(gòu)。例如,在微軟Windows⑧中,使用特定DirectShow 命令的表面可能是視頻數(shù)據(jù),而使用通常與文本相關(guān)聯(lián)的色彩擴(kuò)展位塊傳輸 (BitBlits)的表面可能是文本。每個(gè)操作系統(tǒng)和圖形驅(qū)動(dòng)器體系結(jié)構(gòu)將具有其自 己的特征指示器。其它實(shí)現(xiàn)可并行地執(zhí)行多種類型的數(shù)據(jù)編碼,然后選擇使用 基于編碼器反饋產(chǎn)生最佳結(jié)果的編碼方案。
此"卸載和增強(qiáng)"的第二實(shí)施方式還可與代理服務(wù)器體系結(jié)構(gòu)一起用 于基于web的服務(wù)。在這種實(shí)施方式中,TSB 400可以直接與web服務(wù)器 通信,或者可用作協(xié)調(diào)RT與web服務(wù)器之間的通信的分離服務(wù)器。在TSB 400上運(yùn)行的代理和RT可對(duì)各個(gè)web服務(wù)器作出持續(xù)請(qǐng)求。TSB 400可高 速緩存web服務(wù)器信息直到它真正被RT需要用于顯示。如上所述,TSB 400 可對(duì)各種圖形和視頻命令以及數(shù)據(jù)重新編碼或重新格式化以更好地適合到 RT的信道,以及更好地匹配RT內(nèi)可用的功能和性能。各種內(nèi)容管理和內(nèi) 容格式操作可由作為代理或分離代理服務(wù)器操作的TSB 400來(lái)執(zhí)行。
對(duì)于各種數(shù)據(jù)類型, 一些類型的編碼方案對(duì)具體類型的數(shù)據(jù)尤其有用, 且一些編碼方案與數(shù)據(jù)不太相關(guān)。例如,RLE對(duì)文本特別好而對(duì)視頻特別 差,基于DCT的方案對(duì)視頻非常好而對(duì)文本非常差,且基于子波變換的方 案可以既對(duì)視頻又對(duì)文本好。盡管任何類型的無(wú)損或有損編碼可用于此系 統(tǒng)中,也可以是無(wú)損或有損類型的子波變換編碼,特別是使用決定性算術(shù) 編碼器的漸進(jìn)子波變換尤其非常適于此應(yīng)用,該決定性算術(shù)編碼器可對(duì)每個(gè)小塊進(jìn)行編碼而不用顧及周圍小塊。為更好的實(shí)時(shí)執(zhí)行而調(diào)節(jié)處理的 JPEG 2000子波編碼器的派生物是一種可能的實(shí)現(xiàn)。
圖8是來(lái)自圖2的BMC 800的更詳細(xì)視圖。該BMC 800包括CPU 808, 它可能是簡(jiǎn)單的微控制器或者可能是帶高速緩存器的更強(qiáng)大的CPU。該 BMC 800還包括安全性處理器804、網(wǎng)絡(luò)處理器和MAC控制器或"網(wǎng)絡(luò)接 口控制"(NIC)806、 RAM 218、接口控件810和某種形式的TSA-GPU 700。
該CPU 808是可"帶外"(OOB)操作的板上處理器,該"帶外"意 味著主CPU不需要?jiǎng)討B(tài)的軟件或干預(yù)。理想的BMC 800不需要任何附加 的電纜連接且允許處理器刀片200的完全遠(yuǎn)程管理。在某些情況下,BMC 800可被形成為中心以執(zhí)行對(duì)多個(gè)刀片的管理。此處示出的BMC 800包括 對(duì)鍵盤(pán)、視頻和鼠標(biāo)(KVM)功能的支持。在某些系統(tǒng)中,CPU 808可以 由在主系統(tǒng)CPU上運(yùn)行的虛擬機(jī)進(jìn)一步增強(qiáng)。雖然不是完全地OOB,虛擬 機(jī)可被設(shè)計(jì)以不干預(yù)其它系統(tǒng)功能。
與BMC 800的通信可以為了安全性而使用安全性處理器804加密,且 可利用本地網(wǎng)絡(luò)接口 214或可通過(guò)總線206和經(jīng)由適當(dāng)?shù)膱D2結(jié)構(gòu)連接140 或142傳輸分組。該網(wǎng)絡(luò)接口可如圖所示部分地包括NIC 806,該NIC806 包括MAC部分和位于任何地方的剩余物理接口 (PHY)。當(dāng)與外部PHY (未示出)通過(guò)接口相連時(shí),接口 814可以遵循諸如介質(zhì)獨(dú)立接口 (Mil) 或減少的MII (RMII)的標(biāo)準(zhǔn)。該外部PHY可以是專用設(shè)備或另一網(wǎng)絡(luò)子 系統(tǒng)的一部分。
BMC 800的顯示方面可從簡(jiǎn)單到復(fù)雜地變化,且可以支持一個(gè)或更多 本地或遠(yuǎn)程用戶。當(dāng)簡(jiǎn)單系統(tǒng)能利用基本圖形控制器和軟件來(lái)對(duì)顯示進(jìn)行 編碼時(shí),該較佳實(shí)施方式利用圖形加速器、選擇性更新和對(duì)更新的編碼的 復(fù)雜組合以使遠(yuǎn)程用戶具有全性能虛擬存在。這樣,BMC 800示出 TSA-GPU 700的針對(duì)顯示支持的用途。取決于同時(shí)用戶的數(shù)量,針對(duì)此類 BMC 800應(yīng)用的TSA-GPU 700的性能可能不需要與TSB 400中一樣高,盡 管這些性能可以是相似的。
除了支持遠(yuǎn)程訪問(wèn)的高級(jí)虛擬存在特征之外,該板上處理器可為了各
38種平臺(tái)自調(diào)系統(tǒng)程序控制通過(guò)接口與不同傳感器連接,這些平臺(tái)自調(diào)系統(tǒng) 程序控制諸如管理溫度、電壓、聲音、傳感器和發(fā)光二極管(LED)。警
報(bào)的中層遠(yuǎn)程監(jiān)視也被監(jiān)視和管理。為了與外部管理系統(tǒng)通信,BMC 800 可包括web服務(wù)器且可遵照各種行業(yè)成果以使諸如智能平臺(tái)管理接口 (IPMI)和活動(dòng)服務(wù)器管理接口 (ASMI)的遠(yuǎn)程管理標(biāo)準(zhǔn)化。對(duì)同時(shí)的多 個(gè)用戶和諸如DVD驅(qū)動(dòng)器的虛擬I/O設(shè)備的支持也可被包括在內(nèi)。也在 BMC 800中示出的是接口控件810,其可直接與板上傳感器、外部接口芯 片850通過(guò)接口相連,外部接口芯片850經(jīng)由路徑802與板上傳感器通信、 或經(jīng)由路徑214與另一本地I/0控制器通信。接口控件810可將BMC 800 通過(guò)接口連接到諸如系統(tǒng)管理總線的另一總線,而不使用如在圖8中示出 的系統(tǒng)總線206。
圖9是根據(jù)本發(fā)明的一個(gè)實(shí)施方式的用于執(zhí)行終端服務(wù)加速和代理服 務(wù)器過(guò)程的方法步驟的流程圖。為了清楚起見(jiàn),參考包括視頻的顯示數(shù)據(jù) 對(duì)過(guò)程進(jìn)行討論。然而,與音頻、鍵盤(pán)、鼠標(biāo)和其它數(shù)據(jù)有關(guān)的過(guò)程是為 了結(jié)合本發(fā)明使用而被等同構(gòu)想的。最初,在步驟910,多用戶計(jì)算機(jī)IOO 和遠(yuǎn)程終端系統(tǒng)300遵循各個(gè)過(guò)程來(lái)初始化和設(shè)立主機(jī)一側(cè)和終端一側(cè)以 便于各種子系統(tǒng)啟用每個(gè)RT。在步驟912,該應(yīng)用程序以顯示命令、顯示 數(shù)據(jù)更新或視頻數(shù)據(jù)流的形式提供經(jīng)更新的顯示數(shù)據(jù)。應(yīng)用程序更新可從 應(yīng)用程序本身、客戶機(jī)上的用戶動(dòng)作、或應(yīng)用程序、代理服務(wù)器或客戶機(jī) 的一些其它代理發(fā)起。應(yīng)用請(qǐng)求可通過(guò)在主CPU上運(yùn)行的跟蹤軟件層截取, 或者命令可由在TSB 400上運(yùn)行的代理服務(wù)器或終端服務(wù)加速器截取。對(duì) 于步驟912中的BMC 800,沒(méi)有跟蹤軟件層被包括在內(nèi)且BMC 800獨(dú)立于 主CPU操作。
如果圖形操作包括2D繪圖,則在步驟924中,2D繪圖引擎MU-GPU 412優(yōu)選地將操作處理成RAM 430中的適當(dāng)虛擬顯示。類似地,在步驟926, 3D繪圖由MU-GPU412執(zhí)行為RAM中的適當(dāng)虛擬顯示。在步驟928, TSB 400可確定視頻或圖形命令將被轉(zhuǎn)發(fā)到適當(dāng)?shù)腞T。直到步驟940的流程可 以不受支路步驟928影響。在步驟940, MU-GPU412將每個(gè)虛擬顯示合成到適于顯示的幀中。此合成可用通過(guò)該CPU子系統(tǒng)202、 2D引擎、3D引 擎和GPU 412內(nèi)的任一視頻處理元件的操作的任何組合執(zhí)行。作為該合成 步驟的一部分,對(duì)于圖形操作硬件中包括S緩沖器管理的MU-GPU 412, 該繪圖引擎為相應(yīng)小塊更新S緩沖器。
如用返回路徑944所示,TSB 400可按需為同一 RT或不同RT處理下 一幀。在一較佳實(shí)施方式中,TSB 400可運(yùn)行整個(gè)客戶機(jī)堆棧,從而只要 涉及應(yīng)用程序服務(wù)器,該客戶機(jī)就完全完成繪圖操作。類似地,TSB 400 可以擔(dān)當(dāng)代理服務(wù)器或分離代理服務(wù)器以完成與webweb服務(wù)器相關(guān)的 web客戶機(jī)操作。TSB 400可運(yùn)行客戶機(jī)協(xié)議以仿真多個(gè)用戶。一旦TSB 400 已與服務(wù)器通信,則客戶機(jī)側(cè)操作就完成了, TSB 400現(xiàn)在可使用任何機(jī) 制來(lái)將預(yù)期的命令或顯示數(shù)據(jù)中繼到目標(biāo)RT。如之前所述地,TSB 400可 重新發(fā)送現(xiàn)有命令,重新制定經(jīng)修改的命令或者使用一不同機(jī)制將該顯示 更新反映到RT。
作為截取命令的一部分,TSB 400可在本地虛擬顯示存儲(chǔ)器中完全合 成預(yù)期的RT顯示屏。 一旦合成操作被執(zhí)行,步驟946就在適當(dāng)時(shí)管理小塊 和相關(guān)聯(lián)的S緩沖器狀態(tài)位和簽名位。步驟946考慮任何通過(guò)可影響該S 緩沖器狀態(tài)位的視頻和圖形支路步驟928處理的圖形和視頻操作。例如, 如果繪圖操作既在步驟924中執(zhí)行又通過(guò)步驟928繞到遠(yuǎn)程終端,則不需 要對(duì)受該繪圖操作影響的小塊執(zhí)行選擇性更新,因?yàn)椴僮鲗l(fā)生在RT上。
有了在可發(fā)生在MU-GPU412或與TSA424的組合內(nèi)的步驟946中處 理的小塊的狀態(tài)位和簽名,步驟950可執(zhí)行小塊的選擇性更新。小塊可具 有固定的或變化的尺寸。與小塊一塊被包括在內(nèi)的報(bào)頭信息將指示格式以 及預(yù)期RT目標(biāo)。在步驟954, TSA 424對(duì)從步驟950接收的小塊進(jìn)行必要 的編碼。此編碼優(yōu)選地是一確定性方案,其中在該編碼步驟中不需要考慮 小塊內(nèi)數(shù)據(jù)的定向以及周圍小塊。同樣在步驟954中,處理步驟928之后 的視頻數(shù)據(jù)和圖形命令。視頻數(shù)據(jù)可在比特率或幀速率被改變、在頻域或 空間域內(nèi)按比例縮放、以及在需要時(shí)轉(zhuǎn)碼成不同的編碼標(biāo)準(zhǔn)時(shí)被轉(zhuǎn)換。經(jīng) 由返回路徑968的網(wǎng)絡(luò)反饋與RT信息一起都可以幫助確定編碼步驟954。
40步驟954還執(zhí)行任何需要附加處理的圖形操作,該圖形處理可能需要
圖形數(shù)據(jù)編碼。在步驟958, TSA 424或者CPU 402對(duì)在先前步驟中處理 的圖形命令、數(shù)據(jù)傳輸或視頻傳輸執(zhí)行進(jìn)一步的封裝。網(wǎng)絡(luò)反饋也在此步 驟中相關(guān)于諸如帶寬和等待時(shí)間以及具體分組尺寸和傳輸問(wèn)題的網(wǎng)絡(luò)特征 進(jìn)行考慮。在步驟962,經(jīng)封裝的分組通過(guò)適當(dāng)?shù)木W(wǎng)絡(luò)控制器進(jìn)行處理且分 組沿該網(wǎng)絡(luò)被發(fā)送到適當(dāng)?shù)腞T 300。
網(wǎng)絡(luò)處理步驟962使用來(lái)自系統(tǒng)控件的信息。此信息可包括關(guān)于哪個(gè) 遠(yuǎn)程顯示器需要哪些幀更新流、哪種類型的網(wǎng)絡(luò)傳輸協(xié)議被用于各個(gè)幀更 新流,以及用于各個(gè)幀更新流的各個(gè)部分的是什么優(yōu)先權(quán)和重試特征的信 息。網(wǎng)絡(luò)處理步驟962可利用本地I/O 428和本地網(wǎng)絡(luò)連接490被本地管理 到TSA。或者,在基于刀片的系統(tǒng)中,該網(wǎng)絡(luò)就緒分組可經(jīng)由系統(tǒng)結(jié)構(gòu)總 線140或142中的一個(gè)傳輸,以供通過(guò)包括網(wǎng)絡(luò)連接的處理器刀片200或 位于另一處理器刀片上的網(wǎng)絡(luò)處理器處理。各個(gè)網(wǎng)絡(luò)可包括千兆比特以太 網(wǎng)、10/100以太網(wǎng)、輸電線以太網(wǎng)、基于同軸電纜的以太網(wǎng)、基于電話線 的以太網(wǎng)、或諸如802.lla、 b、 g、 n、 s的無(wú)線以太網(wǎng)標(biāo)準(zhǔn)和進(jìn)一步的派生 物。其它非以太網(wǎng)連接也是可能的且可包括USB、 1394a、 1394b、 1394c 或諸如超寬帶(UWB)或WiMAX的其它無(wú)線協(xié)議。
圖10是根據(jù)本發(fā)明的一個(gè)實(shí)施方式用于執(zhí)行網(wǎng)絡(luò)接收和顯示過(guò)程的方法 步驟的流程圖。為了清楚起見(jiàn),該過(guò)程參考包括視頻的顯示數(shù)據(jù)進(jìn)行討論。然 而,與音頻和其它數(shù)據(jù)相關(guān)的過(guò)程是為了與本發(fā)明有關(guān)的用途而等同構(gòu)想的。 RT 300可被配置成運(yùn)行簡(jiǎn)單的控制程序以執(zhí)行功能操作,可以是運(yùn)行驅(qū)動(dòng)器或 應(yīng)用程序的基于操作系統(tǒng)的處理器系統(tǒng),或者可以是在某類客戶機(jī)上運(yùn)行的瀏 覽器,該某類客戶機(jī)可以或可以不包括JAVA處理或更多包括先進(jìn)AJAX處理 的代理。此外,RT300可基于導(dǎo)致顯示更新的用戶動(dòng)作或代理操作發(fā)起請(qǐng)求。
在圖IO的實(shí)施方式中,最初,在步驟1012,遠(yuǎn)程終端300優(yōu)選地經(jīng) 由路徑390從主機(jī)200中接收網(wǎng)絡(luò)傳輸。然后,在步驟1014,網(wǎng)絡(luò)控制器 336優(yōu)選地執(zhí)行網(wǎng)絡(luò)處理過(guò)程來(lái)執(zhí)行網(wǎng)絡(luò)協(xié)議以在無(wú)論傳輸是有線的或是 無(wú)線的情況下接收所傳輸數(shù)據(jù)。在步驟1020, CPU 324解釋導(dǎo)入傳輸以確定該傳輸預(yù)期給哪個(gè)功能單 元。如果該導(dǎo)入傳輸是2D圖形命令,則CPU 324將通過(guò)2D繪圖引擎332 初始化操作;如果是3D命令,則通過(guò)3D繪圖引擎334;如果是視頻數(shù)據(jù) 流,則通過(guò)視頻解碼器328;以及如果是經(jīng)編碼的數(shù)據(jù)小塊,則通過(guò)數(shù)據(jù)解 碼器326。 一些繪圖命令可以利用繪圖引擎和數(shù)據(jù)解碼器326。在某些情況 下,導(dǎo)入的傳輸數(shù)據(jù)可被存儲(chǔ)以供需要時(shí)使用。各種形式的AJAX和代理 處理可對(duì)數(shù)據(jù)作出隨機(jī)請(qǐng)求,該數(shù)據(jù)最終可以或可以不需要。
可變數(shù)量的命令和數(shù)據(jù)傳輸可以進(jìn)行,且各個(gè)功能單元操作數(shù)據(jù)信息,且 優(yōu)選地將其處理為適當(dāng)?shù)乜娠@示格式。在步驟1030,來(lái)自各個(gè)功能單元的經(jīng)處 理數(shù)據(jù)通過(guò)幀管理器330集合且可產(chǎn)生更新的顯示幀以存入RAM 312。該經(jīng)更 新的顯示幀可包括來(lái)自先前幀的顯示幀數(shù)據(jù)、經(jīng)處理和解碼的新幀數(shù)據(jù)、以及 隱藏在該新幀數(shù)據(jù)傳輸期間發(fā)生的顯示數(shù)據(jù)錯(cuò)誤所需的任何處理。
最后,在步驟1040,顯示控制器330將最近完成的顯示幀數(shù)據(jù)提供給 遠(yuǎn)程終端顯示屏310以供遠(yuǎn)程終端系統(tǒng)300的用戶査看。顯示刷新是在遠(yuǎn) 程終端控制器314和顯示310之間的通常是每秒60到72次操作以避免閃 變的異步操作。步驟1030中產(chǎn)生新的顯示幀通常發(fā)生得少得多,盡管必要 時(shí)可以每秒30幀或更多地發(fā)生。在缺乏屏幕保護(hù)程序或功率下降模式的情 況下,該顯示處理器在顯示刷新過(guò)程中將繼續(xù)用最近完成的顯示幀對(duì)遠(yuǎn)程 顯示屏310進(jìn)行更新,如由反饋路徑1050所指示的。
本發(fā)明因此實(shí)現(xiàn)基于多用戶服務(wù)器的計(jì)算機(jī)系統(tǒng),該系統(tǒng)支持遠(yuǎn)程終 端從而用戶可以有效地使用各種應(yīng)用程序。例如,公司可以在一個(gè)位置使 用多個(gè)機(jī)架的計(jì)算機(jī)系統(tǒng),且向處于在遠(yuǎn)程位置的用戶提供在他們桌面上 的非常簡(jiǎn)單和低成本的終端系統(tǒng)300。不同的遠(yuǎn)程位置可以基于LAN、 WAN 或通過(guò)其它連接進(jìn)行支持。該RT可以是桌面?zhèn)€人計(jì)算機(jī)或筆記本個(gè)人計(jì)算 機(jī),或者在另一系統(tǒng)中可以是諸如手機(jī)、個(gè)人數(shù)字助理的專業(yè)設(shè)備或是與 諸如便攜式視頻播放器、游戲機(jī)或遠(yuǎn)程控制系統(tǒng)的其它消費(fèi)產(chǎn)品的組合。 用戶可以靈活地利用多用戶系統(tǒng)100的主機(jī)以實(shí)現(xiàn)與主系統(tǒng)能夠提供給本 地用戶的同一級(jí)別的軟件兼容性和相似級(jí)別的性能。因此,本發(fā)明有效地執(zhí)行靈活的多用戶系統(tǒng),該系統(tǒng)使用各種不同組件來(lái)便于最佳系統(tǒng)的互操 作性和功能性。
本發(fā)明參考一優(yōu)選的實(shí)施方式在以上進(jìn)行了說(shuō)明。其它實(shí)施方式對(duì)本 領(lǐng)域的技術(shù)人員在查看本公開(kāi)后是顯而易見(jiàn)的。例如,本發(fā)明可以使用除 了在上述優(yōu)選實(shí)施方式中描述的之外的配置來(lái)容易地實(shí)現(xiàn)。此外,本發(fā)明 可有效地結(jié)合不同于在上述較佳實(shí)施方式中所描述的系統(tǒng)來(lái)有效地使用。 因此,對(duì)較佳實(shí)施方式的這些及其它變體旨在由本發(fā)明涵蓋,本發(fā)明只受 所附權(quán)利要求限制。
權(quán)利要求
1.一種能夠支持多個(gè)遠(yuǎn)程終端的顯示代理服務(wù)器系統(tǒng),包括圖形和顯示子系統(tǒng),具有可存儲(chǔ)多個(gè)終端的顯示幀的顯示存儲(chǔ)器;用于生成各自可與遠(yuǎn)程終端上的顯示幀相對(duì)應(yīng)的顯示幀的一個(gè)或更多個(gè)繪圖引擎;以及用于跟蹤顯示幀的經(jīng)修改子幀、以及用于基于此跟蹤執(zhí)行來(lái)自所述顯示存儲(chǔ)器的選擇性更新的裝置;用于將所述顯示代理服務(wù)器系統(tǒng)連接到一個(gè)或更多主CPU的裝置;以及用于管理來(lái)自所述顯示存儲(chǔ)器的選擇性更新從而只有所述選擇性更新將通過(guò)網(wǎng)絡(luò)子系統(tǒng)被傳輸?shù)剿鲞h(yuǎn)程終端的相應(yīng)之一的裝置。
2. 如權(quán)利要求l所述的系統(tǒng),其特征在于,所述遠(yuǎn)程終端運(yùn)行因特網(wǎng) 瀏覽器,且通過(guò)所述顯示代理服務(wù)器系統(tǒng)請(qǐng)求web更新,所述顯示代理服 務(wù)器系統(tǒng)執(zhí)行一代理功能以請(qǐng)求和接收來(lái)自web服務(wù)器的web更新,將所 述web更新轉(zhuǎn)換為經(jīng)編碼的部分幀更新,且將所述經(jīng)編碼的部分幀更新提 供給所述因特網(wǎng)瀏覽器。
3. 如權(quán)利要求l所述的系統(tǒng),其特征在于,所述遠(yuǎn)程終端運(yùn)行因特網(wǎng) 瀏覽器,并對(duì)所述顯示代理服務(wù)器系統(tǒng)執(zhí)行基于內(nèi)容的幀請(qǐng)求,并且所述 顯示代理服務(wù)器系統(tǒng)使用已被高速緩存在所述顯示代理服務(wù)器系統(tǒng)中的數(shù) 據(jù)基于哪部分幀已改變來(lái)合成、編碼和供應(yīng)部分幀更新。
4. 如權(quán)利要求l所述的系統(tǒng),其特征在于,所述顯示代理服務(wù)器系統(tǒng) 在刀片系統(tǒng)中實(shí)現(xiàn),且所述用于與一個(gè)或更多個(gè)主CPU連接的裝置被設(shè)置 在系統(tǒng)底板上。
5. 如權(quán)利要求l所述的系統(tǒng),其特征在于,所述顯示代理服務(wù)器系統(tǒng) 被實(shí)現(xiàn)為一裝置,并通過(guò)網(wǎng)絡(luò)連接和顯示輸出路徑附連到服務(wù)器系統(tǒng)。
6. 如權(quán)利要求l所述的系統(tǒng),其特征在于,所述顯示代理服務(wù)器系統(tǒng) 與運(yùn)行應(yīng)用程序的CPU通信,對(duì)所述應(yīng)用程序像它就是客戶機(jī)那樣地作出響應(yīng),然后執(zhí)行對(duì)所述遠(yuǎn)程終端的選擇性顯示更新。
7. 如權(quán)利要求l所述的系統(tǒng),其特征在于,所述顯示代理服務(wù)器系統(tǒng)在當(dāng)執(zhí)行w e b訪問(wèn)時(shí),向所述多個(gè)遠(yuǎn)程終端提供DN S査找功能。
8. 如權(quán)利要求l所述的系統(tǒng),其特征在于,所述顯示代理服務(wù)器系統(tǒng) 與運(yùn)行一個(gè)或更多個(gè)虛擬機(jī)的一個(gè)或更多個(gè)主CPU通信,所述虛擬機(jī)各自 像有專用于該虛擬機(jī)的圖形控制器那樣地請(qǐng)求圖形操作,且其中所述顯示 代理服務(wù)器系統(tǒng)本地地管理所述多虛擬機(jī)圖形請(qǐng)求。
9. 如權(quán)利要求8所述的系統(tǒng),其特征在于,所述顯示代理服務(wù)器利用 所述本地管理的虛擬機(jī)圖形請(qǐng)求來(lái)產(chǎn)生所述請(qǐng)求虛擬機(jī)的虛擬顯示,然后 將所述虛擬顯示的經(jīng)編碼更新經(jīng)由網(wǎng)絡(luò)傳輸?shù)剿鲞h(yuǎn)程終端的相應(yīng)之一。
10. —種能夠支持一個(gè)或更多個(gè)遠(yuǎn)程終端的基板管理控制系統(tǒng),包括圖形控制器和顯示子系統(tǒng),具有用于在主CPU的請(qǐng)求下在顯示存儲(chǔ)器中執(zhí)行圖形處理器操作以生成 顯示幀數(shù)據(jù)的裝置;用于跟蹤顯示幀的經(jīng)修改子幀并基于此跟蹤執(zhí)行選擇性更新的裝置;用于編碼所述選擇性更新的裝置;以及用于管理來(lái)自所述顯示存儲(chǔ)器的所述選擇性更新從而只有所述選 擇性更新將通過(guò)網(wǎng)絡(luò)子系統(tǒng)傳輸?shù)剿鲞h(yuǎn)程終端的相應(yīng)之一的裝置。
11. 如權(quán)利要求10所述的系統(tǒng),其特征在于,所述選擇性更新基于具有 固定小塊尺寸的子幀。
12. 如權(quán)利要求IO所述的系統(tǒng),其特征在于,所述顯示管理系統(tǒng)使用 S緩沖器來(lái)管理選擇性更新。
13. 如權(quán)利要求IO所述的系統(tǒng),其特征在于,所述系統(tǒng)在操作系統(tǒng)虛 擬機(jī)模式下與所述主CPU通信,以執(zhí)行所述圖形處理操作的操作系統(tǒng)功能。
14. 如權(quán)利要求13所述的系統(tǒng),其特征在于,所述系統(tǒng)與在受保護(hù)的 管理虛擬機(jī)模式下運(yùn)行的主CPU通信,所述受保護(hù)的管理虛擬機(jī)模式與所 述操作系統(tǒng)虛擬機(jī)模式隔離,且其中所述管理虛擬機(jī)模式管理所述遠(yuǎn)程終端的部分更新功能。
15. —種能夠支持多個(gè)遠(yuǎn)程終端的基于刀片的多用戶系統(tǒng),包括 與底板連接的一個(gè)或更多個(gè)處理器刀片;包括圖形和顯示子系統(tǒng)的一個(gè)或更多個(gè)終端服務(wù)加速器刀片,具有 能存儲(chǔ)多個(gè)終端的顯示幀的顯示存儲(chǔ)器;用于生成顯示幀的一個(gè)或更多個(gè)繪圖引擎,所述顯示幀可各自與遠(yuǎn) 程終端上的顯示幀相對(duì)應(yīng);以及用于跟蹤顯示幀的經(jīng)修改子幀以及基于此跟蹤執(zhí)行來(lái)自所述顯示存 儲(chǔ)器的選擇性更新的裝置;用于將所述處理器刀片連接到一個(gè)或更多個(gè)終端服務(wù)加速器刀片的裝置;以及用于管理來(lái)自所述顯示存儲(chǔ)器的選擇性更新從而只有選擇性更新將通過(guò) 網(wǎng)絡(luò)子系統(tǒng)傳輸?shù)剿鲞h(yuǎn)程終端的相應(yīng)之一的裝置。
16. 如權(quán)利要求15所述的系統(tǒng),其特征在于,所述一個(gè)或更多個(gè)終端服 務(wù)加速器刀片與主CPU通信,所述主CPU運(yùn)行應(yīng)用程序軟件且利用將所述圖 形和顯示子系統(tǒng)虛擬化的多用戶遠(yuǎn)程客戶機(jī)協(xié)議;執(zhí)行作為所述遠(yuǎn)程用戶客戶機(jī)的虛擬圖形功能;以及然后 對(duì)所述遠(yuǎn)程終端執(zhí)行來(lái)自所述虛擬顯示子系統(tǒng)的選擇性顯示更新。
17. 如權(quán)利要求15所述的系統(tǒng),其特征在于,所述終端服務(wù)刀片與運(yùn) 行一個(gè)或更多個(gè)虛擬機(jī)的一個(gè)或更多個(gè)CPU通信,所述虛擬機(jī)各自像所述 終端服務(wù)刀片包括專用于每個(gè)虛擬機(jī)的相應(yīng)圖形控制器那樣地請(qǐng)求圖形操 作。
18. 如權(quán)利要求15所述的系統(tǒng),其特征在于,所述終端服務(wù)刀片利用 所述圖形和顯示子系統(tǒng)來(lái)本地管理來(lái)自多個(gè)獨(dú)立虛擬機(jī)模式CPU的虛擬機(jī) 圖形請(qǐng)求,以產(chǎn)生虛擬機(jī)的虛擬顯示、然后將所述虛擬顯示的經(jīng)編碼更新 經(jīng)由網(wǎng)絡(luò)傳輸?shù)竭h(yuǎn)程終端,并且所述多個(gè)獨(dú)立的虛擬機(jī)模式CPU互相沒(méi)有 察覺(jué)到對(duì)方。
19. 如權(quán)利要求15所述的系統(tǒng),其特征在于,所述處理器刀片作為web服務(wù)器操作。
20.如權(quán)利要求15所述的系統(tǒng),其特征在于,所述基于刀片的多用戶 系統(tǒng)向訪問(wèn)多個(gè)web服務(wù)器的多個(gè)遠(yuǎn)程終端提供因特網(wǎng)服務(wù)管理功能web 服務(wù)器。
全文摘要
多用戶主機(jī)系統(tǒng)包括與終端服務(wù)刀片組合的處理器刀片,以提供加速和代理服務(wù)器功能來(lái)支持各種遠(yuǎn)程終端。對(duì)于每個(gè)遠(yuǎn)程終端,終端服務(wù)刀片和代理服務(wù)器功能可改進(jìn)視頻和圖形性能。這使得該多用戶主機(jī)系統(tǒng)能更有效地支持多個(gè)用戶。終端服務(wù)刀片可包括管理每個(gè)遠(yuǎn)程終端的虛擬顯示且提供子幀數(shù)據(jù)的選擇性更新的圖形處理器。在適當(dāng)時(shí),子幀數(shù)據(jù)被編碼并經(jīng)由網(wǎng)絡(luò)傳輸?shù)竭h(yuǎn)程終端。終端服務(wù)處理器還為預(yù)期遠(yuǎn)程終端及它們相應(yīng)的網(wǎng)絡(luò)連接卸載和優(yōu)化視頻數(shù)據(jù)流。處理器刀片可包括利用先進(jìn)特征來(lái)支持KVM管理的基板管理控制器。
文檔編號(hào)G06F15/16GK101553795SQ200680044632
公開(kāi)日2009年10月7日 申請(qǐng)日期2006年10月26日 優(yōu)先權(quán)日2005年11月30日
發(fā)明者N·瑪古利斯 申請(qǐng)人:凱利斯塔技術(shù)股份有限公司