渲染服務器、中央服務器、編碼設備、控制方法、編碼方法、程序以及記錄媒體的制作方法
【專利摘要】在將附加有奇偶校驗信息的數(shù)據(jù)寫入將要檢驗的存儲器中之后,編碼設備從該存儲器中讀出數(shù)據(jù),并且對該數(shù)據(jù)應用運行長度編碼處理從而生成經(jīng)編碼數(shù)據(jù)。當編碼設備是根據(jù)所寫入數(shù)據(jù)的比特序列來生成經(jīng)編碼數(shù)據(jù)時,編碼設備通過比較該比特序列與所附加的奇偶校驗信息,從而檢測比特翻轉(zhuǎn)錯誤。
【專利說明】渲染服務器、中央服務器、編碼設備、控制方法、編碼方法、程序以及記錄媒體
【技術領域】
[0001]本發(fā)明涉及一種渲染服務器、中央服務器、編碼設備、控制方法、編碼方法、程序以及記錄媒體,尤其是涉及一種使用視頻編碼處理的GPU存儲器檢驗方法。
【背景技術】
[0002]諸如個人計算機(PC)之類的具有網(wǎng)絡連接功能的客戶端裝置已得到廣泛應用。伴隨這類裝置的廣泛應用,互聯(lián)網(wǎng)的網(wǎng)絡人口正在增長。最近面向網(wǎng)絡用戶開發(fā)了多種使用互聯(lián)網(wǎng)的服務,并且還提供了諸如游戲之類的娛樂服務。
[0003]面向網(wǎng)絡用戶的服務之一是多用戶在線網(wǎng)絡游戲,如MMORPG (大型多人在線角色扮演游戲)。在多用戶在線網(wǎng)絡游戲中,用戶將他/她所使用的客戶端裝置連接到提供游戲的服務器上,由此與使用連接到服務器上的另一客戶端裝置的另一用戶進行對戰(zhàn)游戲或組隊游戲。
[0004]在一般的多用戶在線網(wǎng)絡游戲中,每個客戶端裝置將用于游戲渲染的必要數(shù)據(jù)發(fā)送到服務器,或從服務器接收這些數(shù)據(jù)??蛻舳搜b置使用所接收的用于渲染的必要數(shù)據(jù)來執(zhí)行渲染處理,并且將生成的游戲畫面呈現(xiàn)到連接到客戶端裝置的顯示裝置上,由此將游戲畫面提供給用戶。將用戶通過操作輸入接口而輸入的信息發(fā)送至服務器,并且該信息用于服務器中的計算處理或被傳輸至連接到服務器上的另一客戶端裝置。
[0005]然而,一些使客戶端裝置執(zhí)行渲染處理的網(wǎng)絡游戲需要用戶使用具有足夠渲染性能的PC或?qū)S糜螒驒C。因此,網(wǎng)絡游戲(一個內(nèi)容)的用戶數(shù)量取決于內(nèi)容所需要的客戶端裝置性能。理所當然地,高性能的裝置很貴,并且可擁有這種裝置的用戶數(shù)量也是有限的。也就是說,增加需要高渲染性能的游戲(例如,提供精美畫面的游戲)的用戶數(shù)量很困難。
[0006]然而,近年來,也有不依靠客戶端裝置處理能力(例如渲染性能)且用戶可玩的游戲。在第2009/138878號國際公開中所述的游戲中,服務器獲取在客戶端裝置中引起的操作的信息,并且將通過使用該信息執(zhí)行渲染處理從而獲得的游戲畫面提供給客戶端裝置。
[0007]執(zhí)行前述渲染處理的裝置的渲染性能取決于包括在該裝置內(nèi)的GPU的處理性能。GPU的金融引進成本的變化不僅取決于該GPU的處理性能,而且還取決于包括在GPU內(nèi)的GI3U存儲器的可靠性。也就是說,當渲染服務器像第2009/138878號國際公開中一樣來渲染將提供給客戶端裝置的畫面時,渲染服務器的引進成本隨著采用的GPU的存儲器的可靠性提升而提高。相比之下,可使用包括可靠性較低的GPU存儲器的GPU來實現(xiàn)成本的降低。在這種情況下,必須定期執(zhí)行GPU存儲器的錯誤檢查處理。
[0008]然而,如第2009/138878號國際公開中所述,當GPU的存儲器的存儲器檢查處理與GI^U主要的處理(例如,為每一幀畫面提供的渲染處理)并行執(zhí)行時,會導致計算量的增加,并且所提供的服務質(zhì)量可能會降低。
【發(fā)明內(nèi)容】
[0009]鑒于這樣的常規(guī)問題提出了本發(fā)明。本發(fā)明提供一種渲染服務器、中央服務器、編碼設備、控制方法、編碼方法、程序以及記錄媒體,其使用編碼處理來執(zhí)行高效的存儲器檢驗。
[0010]本發(fā)明在其第一方面提供了一種用于輸出經(jīng)編碼圖像數(shù)據(jù)的渲染服務器,其包括:渲染構(gòu)件,其用于使用GPU渲染圖像;寫入構(gòu)件,其用于將由渲染構(gòu)件所渲染的圖像寫入包括在GPU中的GPU存儲器;以及編碼構(gòu)件,其用于從GPU存儲器中讀出由寫入構(gòu)件寫入的圖像,并且通過對該圖像應用運行長度編碼處理從而生成經(jīng)編碼圖像數(shù)據(jù),其中寫入構(gòu)件在將奇偶校驗信息附加到圖像的情況下將圖像寫入GPU存儲器;并且當編碼構(gòu)件是根據(jù)從GPU存儲器中讀出的圖像的比特序列來生成經(jīng)編碼圖像數(shù)據(jù)時,編碼構(gòu)件通過比較比特序列與寫入構(gòu)件所附加的奇偶校驗信息,從而檢測比特翻轉(zhuǎn)錯誤。
[0011]本發(fā)明在其第二方面提供了一種編碼設備,其包括:寫入構(gòu)件,其用于將附加有奇偶校驗信息的數(shù)據(jù)寫入存儲器;以及編碼構(gòu)件,其用于從存儲器中讀出由寫入構(gòu)件寫入的數(shù)據(jù),并且通過對該數(shù)據(jù)應用運行長度編碼處理從而生成經(jīng)編碼數(shù)據(jù),其中當編碼構(gòu)件是根據(jù)所寫入數(shù)據(jù)的比特序列來生成經(jīng)編碼數(shù)據(jù)時,編碼構(gòu)件通過比較比特序列與所附加的奇偶校驗信息,從而檢測比特翻轉(zhuǎn)錯誤。
[0012]以下對示例性實施例的說明將使本發(fā)明的其他特征變得顯而易見(參照附圖)。
【專利附圖】
【附圖說明】
[0013]圖1所示為根據(jù)本發(fā)明的一個實施例的渲染系統(tǒng)的系統(tǒng)配置圖;
[0014]圖2所示為根據(jù)本發(fā)明的實施例的渲染服務器100的功能布置的框圖;
[0015]圖3所示為根據(jù)本發(fā)明的實施例的中央服務器200的功能布置的框圖;
[0016]圖4所示為根據(jù)本發(fā)明的實施例舉例說明畫面提供處理的流程圖;以及
[0017]圖5所示為根據(jù)本發(fā)明的實施例舉例說明畫面生成處理的流程圖。
【具體實施方式】
[0018]下文將參照附圖詳細說明本發(fā)明的示例性實施例。請注意,將在下文中說明的一個實施例會闡明一個實例,其中本發(fā)明被應用于可接受一個或多個客戶端裝置的連接的中央服務器,以及可同時生成分別提供給該一個或多個客戶端裝置的畫面的渲染服務器,該渲染服務器作為渲染系統(tǒng)的一個實例。然而,本發(fā)明適用于可同時生成提供給一個或多個客戶端裝置的畫面(圖像數(shù)據(jù))的任意裝置與系統(tǒng)。
[0019]假設由本說明書中的中央服務器提供給客戶端裝置的畫面是執(zhí)行游戲處理時生成的游戲畫面。在渲染服務器為每一幀渲染畫面后,對畫面進行編碼后將其提供給客戶端裝置。然而,本發(fā)明不僅限于游戲畫面的生成。本發(fā)明可應用于向客戶端裝置提供經(jīng)編碼圖像數(shù)據(jù)的任意設備。
[0020]<渲染系統(tǒng)的配置>
[0021]圖1所示為根據(jù)本發(fā)明的一個實施例的渲染系統(tǒng)的系統(tǒng)配置圖。
[0022]如圖1所示,接受服務的客戶端裝置300a至300e與提供服務的中央服務器200通過網(wǎng)絡400 (例如互聯(lián)網(wǎng))相連接。同樣地,用于渲染將提供給客戶端裝置300的畫面的渲染服務器100通過網(wǎng)絡400連接到中央服務器200上。請注意,在以下說明中,“客戶端裝置300”表示客戶端裝置300a至300e中的任意一個,除非另作說明。
[0023]客戶端裝置300不僅限于PC、家用游戲機和便攜式游戲機,而且還可以是,例如,移動電話、PDF和平板計算機等裝置。在這個實施例的渲染系統(tǒng)中,渲染服務器100根據(jù)客戶端裝置處作出的操作輸入來生成游戲畫面,并且中央服務器200將生成的游戲畫面分發(fā)給客戶端裝置300。因此,客戶端裝置300不必具有任何生成游戲畫面所需的渲染功能。也就是說,客戶端裝置300可以是具有用于作出操作輸入的用戶接口以及顯示畫面的顯示裝置的裝置,或是可連接有用戶接口與顯示裝置的裝置。此外,客戶端裝置可以是可對接收到的游戲畫面進行解碼并且可使用顯示裝置顯示經(jīng)解碼的游戲畫面的裝置。
[0024]中央服務器200執(zhí)行并管理游戲處理程序、向渲染服務器100發(fā)布渲染處理指令,并且與客戶端裝置300進行數(shù)據(jù)通信。更確切地說,中央服務器200執(zhí)行與將要提供給客戶端裝置300的游戲相關的游戲處理程序。
[0025]中央服務器200管理(例如)每個客戶端裝置的用戶所操作的角色在地圖上的位置和方向以及將要提供給每個角色的事件等多條信息。之后,中央服務器200控制渲染服務器100根據(jù)所管理角色的狀態(tài)生成游戲畫面。例如,當每個已連接的客戶端裝置上由用戶執(zhí)行的操作輸入的信息通過網(wǎng)絡400輸入至中央服務器200時,中央服務器200執(zhí)行處理,從而將該信息反映到所管理角色的信息中。之后,中央服務器200基于角色的信息來決定與游戲畫面相關的渲染參數(shù),操作輸入信息是被反映到該角色信息中,并且中央服務器200向包括在渲染服務器100中的任何一個GPU發(fā)出渲染指令。請注意,渲染參數(shù)包括相機(視點)的位置與方向以及包括在渲染范圍內(nèi)的渲染對象的信息。
[0026]渲染服務器100的作用是執(zhí)行渲染處理。在這個實施例中,渲染服務器100具有四個GPU,這將在之后進行說明。渲染服務器100根據(jù)從中央服務器200接收的渲染指令來渲染游戲畫面,并且將生成的游戲畫面輸出至中央服務器200。假設渲染服務器100能夠同時生成多個游戲畫面。渲染服務器100使用指定的GPU,并基于從中央服務器200接收的與游戲畫面相關的渲染參數(shù)來執(zhí)行游戲畫面的渲染處理。
[0027]中央服務器200根據(jù)包括渲染對象的識別信息與詳細信息的所傳輸?shù)匿秩局噶睿瑢匿秩痉掌?00接收的游戲畫面作為經(jīng)編碼視頻數(shù)據(jù)的一個幀的圖像數(shù)據(jù)分發(fā)給對應的客戶端裝置。以此方式,這個實施例的渲染系統(tǒng)可根據(jù)在各客戶端裝置上執(zhí)行的操作輸入來生成游戲畫面,并且可通過所述客戶端裝置的顯示裝置向用戶提供游戲畫面。
[0028]請注意,以下說明將在下面的假設條件下提出:這個實施例的渲染系統(tǒng)包括一個渲染服務器100與一個中央服務器200。然而,本發(fā)明不僅限于這樣的特定實施例。例如,一個渲染服務器100可被分配給多個中央服務器200,或多個渲染服務器100可被分配給多個中央服務器200。
[0029]<渲染服務器100的布置>
[0030]圖2所示為根據(jù)本發(fā)明的實施例的渲染服務器100的功能布置的框圖。
[0031]CPUlOl控制包括在渲染服務器100中的相應塊的操作。更確切地說,CPUlOl通過讀出存儲在(例如)R0M102或記錄媒體104中的渲染處理的操作程序、將讀出的程序抽取到RAM103上、并執(zhí)行所抽取的程序,從而控制相應塊的操作。
[0032]R0M102是(例如)可重寫非易失性存儲器。除了渲染處理的操作程序外,R0M102還存儲其他操作程序和信息,如包括在渲染服務器100中的相應塊的操作所需要的常量。[0033]RAM103是易失性存儲器。RAM103不僅用作操作程序的抽取區(qū)域,而且還用作用于暫時存儲中間數(shù)據(jù)及類似數(shù)據(jù)的存儲區(qū)域,這些數(shù)據(jù)在包括于渲染服務器100中的相應塊的操作過程中被輸出。
[0034]記錄媒體104是(例如)諸如HDD之類的記錄裝置,其可移除地連接到渲染服務器100上。在這個實施例中,假設記錄媒體104存儲用于在渲染處理中生成畫面的以下數(shù)據(jù):
[0035].模型數(shù)據(jù)
[0036].紋理數(shù)據(jù)
[0037].渲染程序
[0038].在渲染程序中用于計算的數(shù)據(jù)
[0039]通信單元113是包括在渲染服務器100中的通信接口。通信單元113與通過網(wǎng)絡400連接的另一個裝置(如中央服務器200)進行數(shù)據(jù)通信。當渲染服務器100傳輸數(shù)據(jù)時,通信單元113將數(shù)據(jù)轉(zhuǎn)換成其自身與網(wǎng)絡400或傳輸目標裝置之間指定的數(shù)據(jù)傳輸格式,并且將數(shù)據(jù)傳輸至傳輸目標裝置。此外,當渲染服務器100接收數(shù)據(jù)時,通信單元113將通過網(wǎng)絡400接收的數(shù)據(jù)轉(zhuǎn)換成渲染服務器100可讀的任意數(shù)據(jù)格式,并且將經(jīng)轉(zhuǎn)換數(shù)據(jù)存儲在(例如)RAM103中。
[0040]第一 GPU105、第二 GPU106、第三GPU107和第四GPU108在渲染處理中生成將要提供給客戶端裝置300的游戲畫面。用作游戲畫面的渲染區(qū)域的視頻存儲器(第一 VRAM109、第二 VRAM110、第三VRAM111和第四VRAM112)被連接到各個GPU上。各個GPU具有作為工作區(qū)域的GPU存儲器。當各個GPU在已連接的VRAM上執(zhí)行渲染時,將渲染對象抽取到GPU存儲器上,并且之后將抽取的渲染對象渲染到對應的VRAM上。請注意,這個實施例的以下說明將在下面的假設條件下提出:一個視頻存儲器連接到一個GPU上。然而,本發(fā)明不僅限于這樣的特定實施例。也就是說,每個GPU上可連接任意數(shù)目的視頻存儲器。
[0041]<中央服務器200的布置>
[0042]這個實施例的中央服務器200的功能布置將在下面進行說明。圖3所示為根據(jù)本發(fā)明的實施例的中央服務器200的功能布置的框圖。
[0043]中央CPU201控制包括在中央服務器200中的相應塊的操作。更確切地說,中央CPU201通過讀出存儲在(例如)中央R0M202或中央記錄媒體204中的游戲處理程序、將讀出的程序抽取到中央RAM203上、并執(zhí)行所抽取的程序,從而控制相應塊的操作。
[0044]中央R0M202是(例如)可重寫非易失性存儲器。除了游戲處理程序外,中央R0M202還可存儲其他程序。此外,中央R0M202還存儲諸如包括在中央服務器200中的相應塊的操作所需要的常量之類的信息。
[0045]中央RAM203是易失性存儲器。中央RAM203不僅用作游戲處理程序的抽取區(qū)域,而且還用作用于暫時存儲中間數(shù)據(jù)及類似數(shù)據(jù)的存儲區(qū)域,這些數(shù)據(jù)在包括于中央服務器200中的相應塊的操作過程中被輸出。
[0046]中央記錄媒體204是(例如)諸如HDD之類的記錄裝置,其可拆卸地連接到中央服務器200上。在這個實施例中,中央記錄媒體204用作管理使用游戲的用戶與客戶端裝置的數(shù)據(jù)庫、管理游戲相關的多種類型的信息(這些信息是生成將要提供給已連接的客戶端裝置的游戲畫面所需要的)的數(shù)據(jù)庫,以及類似數(shù)據(jù)庫。
[0047]中央通信單元205是包括在中央服務器200中的通信接口。中央通信單元205與通過網(wǎng)絡400連接的渲染服務器100或客戶端裝置300進行數(shù)據(jù)通信。請注意,中央通信單元205根據(jù)通信單元113中的通信規(guī)范來轉(zhuǎn)換數(shù)據(jù)格式。
[0048]<畫面提供處理>
[0049]以下將參照圖4所示的流程圖來說明這個實施例的具有前述布置的中央服務器200的實際畫面提供處理。當中央CPU201讀出存儲在(例如)中央R0M202中的對應的處理程序、將讀出的程序抽取到中央RAM203上、并執(zhí)行所抽取的程序時,可實施對應于該流程圖的處理。
[0050]注意到,以下說明將在下面的假設條件下提出:該畫面提供處理開始于(例如)各個客戶端裝置連接完成且向該客戶端裝置提供游戲所需要的準備處理完成時,并且為游戲的每一幀執(zhí)行該畫面提供處理。此外,以下說明將在下面的假設條件下提出:為簡單起見,一個客戶端裝置300連接到中央服務器200。然而,本發(fā)明不僅限于這樣的特定實施例。當和前述系統(tǒng)配置中一樣,多個客戶端裝置300連接到中央服務器200時,可為相應客戶端裝置300執(zhí)行該畫面提供處理。
[0051]在步驟S401中,中央CPU201執(zhí)行數(shù)據(jù)反映處理從而決定與將要提供給已連接的客戶端裝置300的游戲畫面相關的渲染參數(shù)。數(shù)據(jù)反映處理用于反映在客戶端裝置上執(zhí)行的輸入(角色移動指令、相機移動指令、窗口顯示指令等等)、渲染對象的狀態(tài)變化以及類似信息,其中渲染對象的狀態(tài)是由游戲處理所管理,接著數(shù)據(jù)反映處理指定將要提供給客戶端裝置的游戲畫面的渲染內(nèi)容。更確切地說,中央CPU201通過中央通信單元205接收在客戶端裝置300上執(zhí)行的輸入,并且更新用在前一幀游戲畫面中的渲染參數(shù)。另一方面,渲染對象,其狀態(tài)由游戲處理所管理,包括稱為NPC (非玩家角色)的不作為任何用戶操作目標的角色、諸如地形之類的背景對象,以及其類似物。渲染對象的狀態(tài)根據(jù)經(jīng)過的時間或用戶操作目標角色的動作而改變。中央CPU201為前一幀更新與渲染對象相關的渲染參數(shù),渲染對象的狀態(tài)由游戲處理根據(jù)經(jīng)過的時間以及在進行游戲處理時在客戶端裝置上執(zhí)行的輸入來管理。
[0052]在步驟S402中,中央CPU201從包括在渲染服務器100中并且能夠執(zhí)行渲染處理的GPU中決定用于渲染游戲畫面的GPU。在這個實施例中,連接到中央服務器200上的渲染服務器100包括四個GPU,即,第一 GPU105、第二 GPU106、第三GPU107、和第四GPU108。中央CPU201決定包括在渲染服務器100中的四個GPU中的一個,以便生成將要提供給連接到中央服務器200上的每個客戶端裝置的游戲畫面。用于渲染畫面的GPU可從待選定的GPU中決定出,以便鑒于(例如)渲染對象的數(shù)目、所需的處理成本以及與同時發(fā)出的渲染請求對應的游戲畫面的類似因素來分發(fā)負載。注意到,在這一步驟中,待選定的GPU根據(jù)渲染服務器100中的存儲器檢驗結(jié)果而變化,稍后將說明這一點。
[0053]在步驟S403中,中央CPU201將渲染指令傳輸至在步驟S402中決定并且用于渲染游戲畫面的GPU。更確切地說,中央CPU201將與當前幀的游戲畫面相關的渲染參數(shù)以及渲染指令傳送至中央通信單元205,這些渲染參數(shù)已在步驟S401中由游戲處理更新,并且中央CPU201控制中央通信單元205以將此些渲染參數(shù)傳輸至渲染服務器100。假設渲染指令包括指示用于渲染游戲畫面的GPU的信息,以及客戶端裝置300的識別信息,游戲畫面將被提供給該客戶端裝置。
[0054]在步驟S404中,中央CPU201確定是否從渲染服務器100接收將要提供給已連接的客戶端裝置300的游戲畫面。更確切地說,中央CPU201檢查中央通信單元205是否接收具有客戶端裝置300識別信息的游戲畫面的數(shù)據(jù),游戲畫面將被提供給該客戶端裝置。假設在這個實施例中,由于對于游戲的每一幀都要將畫面?zhèn)鬏斀o客戶端裝置300,因此鑒于通信量的縮減,將要提供給客戶端裝置300的游戲畫面是對應于經(jīng)編碼視頻數(shù)據(jù)的一個幀的經(jīng)編碼圖像數(shù)據(jù)。當中央通信單元205從渲染服務器100接收數(shù)據(jù)時,中央CPU201參考該信息的標頭信息,來檢查該數(shù)據(jù)是否是對應于將要提供給已連接的客戶端裝置300的游戲畫面的經(jīng)編碼圖像數(shù)據(jù)。如果中央CPU201確定接收到將要提供給已連接的客戶端裝置300的游戲畫面,那么中央CPU201將使該過程繼續(xù)進行到步驟S405 ;否則,中央CPU201重復這一步驟的過程。
[0055]在步驟S405中,中央CPU201將接收到的游戲畫面?zhèn)鬏斨烈堰B接的客戶端裝置300。更確切地說,中央CPU201將接收到的游戲畫面?zhèn)魉椭林醒胪ㄐ艈卧?05,并且控制中央通信單元205以將游戲畫面?zhèn)鬏斨烈堰B接的客戶端裝置300。
[0056]在步驟S406中,中央CPU201對于第一 GPU105、第二 GPU106、第三GPU107、和第四GPU108中的任何一個,來確定GPU存儲器的比特翻轉(zhuǎn)錯誤被檢測到的次數(shù)是否超過閾值。在這個實施例中,正如稍后將在畫面生成處理中說明的,當各個GPU的GPU存儲器中出現(xiàn)比特翻轉(zhuǎn)錯誤時,渲染服務器100的CPUlOl向中央服務器200通知比特翻轉(zhuǎn)錯誤的數(shù)目的信息以及引起該錯誤的GPU的識別信息。因此,中央CPU201在這一步驟中首先確定中央通信單元205是否從渲染服務器100接收了比特翻轉(zhuǎn)錯誤數(shù)目的信息。如果確定已接收比特翻轉(zhuǎn)錯誤數(shù)目的信息,那么中央CPU201進一步檢查比特翻轉(zhuǎn)錯誤數(shù)目是否超過閾值。假設閾值是一個預先設置的、確定GPU存儲器可靠性是否下降所需的值,并且被存儲在(例如)中央R0M202中。如果中央CPU201確定包括在渲染服務器100中的任一 GPU中的GPU存儲器的比特翻轉(zhuǎn)錯誤被檢測到的次數(shù)超過閾值,那么中央CPU201將使該過程繼續(xù)進行到步驟S407 ;否則,中央CPU201將結(jié)束這個畫面提供處理。
[0057]在步驟S407中,中央CPU201將比特翻轉(zhuǎn)錯誤的數(shù)目超過閾值的GPU排除在選擇目標之外,對下一幀游戲畫面渲染處理將被分配給所述選擇目標。更確切地說,中央CPU201將邏輯信息與所述GPU的識別信息存儲在中央R0M202中,該邏輯信息指示所述GPU被排除在選擇目標之外,渲染將被分配給所述選擇目標。當在步驟S402中選擇游戲畫面的渲染被分配到的GPU時,會參考此信息。
[0058]注意到,這個實施例的以下說明將在下面的假設條件下提出:中央CPU201通過檢查比特翻轉(zhuǎn)錯誤的數(shù)目是否超過閾值來判定GPU存儲器的可靠性。然而,本發(fā)明不僅限于這樣的特定實施例。中央CPU201可獲取其中已經(jīng)出現(xiàn)比特翻轉(zhuǎn)錯誤的存儲器地址分布的信息,并且可根據(jù)在預定地址范圍內(nèi)的比特翻轉(zhuǎn)錯誤數(shù)目來評估GPU存儲器的可靠性。
[0059]<畫面生成處理>
[0060]以下將參照圖5所示的流程圖來詳細說明根據(jù)這個實施例的在渲染服務器100中用于生成將提供給客戶端裝置的游戲畫面(經(jīng)編碼圖像數(shù)據(jù))的畫面生成處理。當CPUlOl讀出儲存在(例如)R0M102中的對應的處理程序、將讀出的程序抽取到RAM103上、并執(zhí)行所抽取的程序時,可實施對應于該流程圖的處理。注意到,以下說明將在下面的假設條件下提出:該畫面生成處理開始于(例如)CPU101判定通信單元113從中央服務器200接收游戲畫面的渲染指令時。[0061]在步驟S501中,CPUlOl基于接收到的與游戲畫面相關的渲染參數(shù)來渲染游戲畫面。更確切地說,CPUlOl將由通信單元113接收的渲染指令以及渲染參數(shù)存儲在RAM103中,這些渲染參數(shù)與渲染指令相關聯(lián)并且與當前幀的游戲畫面相關。然后,CPUlOl參考包括在渲染指令中并且指示用于渲染游戲畫面的GPU的信息,并且控制由該信息指定的GPU(目標GPU)來渲染對應于連接到目標GPU的VRAM上的渲染參數(shù)的游戲畫面。
[0062]在步驟S502中,CPUlOl控制目標GPU來對在步驟S501中在VRAM上渲染的游戲畫面執(zhí)行DCT (離散余弦變換)處理。更確切地說,目標GPU把游戲畫面劃分成各自具有預定數(shù)目的像素的塊,并且對相應塊執(zhí)行DCT處理,由此將塊轉(zhuǎn)換成頻域數(shù)據(jù)。轉(zhuǎn)換到頻域上的游戲畫面被目標GPU量化,并且被寫入目標GPU的GPU存儲器中。此時,假設目標GPU將經(jīng)量化數(shù)據(jù)寫入GPU存儲器中,與此同時將奇偶校驗位(奇偶校驗信息)附加到具有預定數(shù)據(jù)長度的每個比特序列上。注意到,這個實施例的以下說明將在下面的假設條件下提出:直接對游戲畫面執(zhí)行DCT處理。然而,如上所述,由于游戲畫面是對應于經(jīng)編碼視頻數(shù)據(jù)的一個幀的數(shù)據(jù),因此可對從游戲畫面生成的圖像數(shù)據(jù)執(zhí)行DCT處理。例如,當視頻編碼格式是MPEG格式時,目標GPU可在通過運動補償精度從前一幀的游戲畫面生成的圖像數(shù)據(jù)與為當前幀所生成的游戲畫面之間生成差值圖像,并且可對該差值圖像執(zhí)行DCT處理。
[0063]在步驟S503中,CPUlOl對轉(zhuǎn)換到頻域上的游戲畫面(經(jīng)量化游戲畫面)執(zhí)行運行長度編碼處理,從而生成最終將提供給客戶端裝置的游戲畫面數(shù)據(jù)。此時,為了執(zhí)行運行長度編碼,CPUlOl從目標GPU的GPU存儲器中讀出經(jīng)量化游戲畫面,并將其存儲在RAM103中。當比特翻轉(zhuǎn)錯誤出現(xiàn)在GPU存儲器中時,畫面數(shù)據(jù)與存儲在RAM103中的經(jīng)量化游戲畫面中的奇偶校驗信息之間出現(xiàn)不一致性。
[0064]在另一方面,運行長度編碼處理是通過檢查連續(xù)數(shù)據(jù)的比特序列中的相同值的運行長度,而用于實現(xiàn)數(shù)據(jù)壓縮。也就是說,在運行長度編碼處理被應用于存儲在RAM103中的經(jīng)量化游戲畫面時,CPUlOl可抓取(例如)奇偶校驗位之間的數(shù)據(jù)序列中“I”的數(shù)量,原因是其指的是包括在預定數(shù)目的比特序列中的所有值。也就是說,在本發(fā)明中,CPUlOl使用在運行長度編碼中的比特序列的布置的檢查,來實現(xiàn)奇偶校驗檢查處理。
[0065]在這一步驟中,CPUlOl通過如上所述的運行長度編碼處理,并且執(zhí)行奇偶校驗檢查處理來檢測與目標GPU的GPU存儲器相關的比特翻轉(zhuǎn)錯誤的出現(xiàn),從而生成最終將提供的游戲畫面的經(jīng)編碼數(shù)據(jù)。注意到,CPUlOl對與目標GPU的GPU存儲器相關的比特翻轉(zhuǎn)錯誤被檢測到的次數(shù)進行計數(shù)。
[0066]在步驟S504中,CPUlOl將在步驟S503中生成的最終將提供的游戲畫面的經(jīng)編碼數(shù)據(jù),以及指示與目標GPU的GPU存儲器相關的比特翻轉(zhuǎn)錯誤被檢測到的次數(shù)的信息,傳送到通信單元113中,并且控制通信單元113來將其傳輸至中央服務器200。假設此時,傳輸最終將提供的游戲畫面的經(jīng)編碼數(shù)據(jù)以及包括在渲染指令中的客戶端裝置300的識別信息,游戲畫面將提供給該客戶端裝置300。此外,假設傳輸指示比特翻轉(zhuǎn)錯誤被檢測到的次數(shù)的信息以及GPU的識別信息,識別信息包括在渲染指令中并且用于渲染游戲畫面。
[0067]以此方式,可使用編碼處理來檢測比特翻轉(zhuǎn)錯誤的出現(xiàn),而不用執(zhí)行與GPU存儲器相關聯(lián)的任何專用檢查程序。注意到,在這個實施例的以上說明中,附加有奇偶校驗信息的經(jīng)量化游戲畫面被寫入GPU存儲器中。然而,要被寫入GPU存儲器中的數(shù)據(jù)不僅限于此。也就是說,在本發(fā)明的GPU存儲器的錯誤檢查處理中,只需要在對數(shù)據(jù)附加奇偶校驗信息的同時將數(shù)據(jù)寫入GPU存儲器,緊接著應用運行長度編碼。也就是說,本發(fā)明適用于若干方面,其中數(shù)據(jù)被應用于運行長度編碼預處理,在對所應用的數(shù)據(jù)附加奇偶校驗信息的同時將其寫入GPU存儲器,并且通過讀出所述數(shù)據(jù)來執(zhí)行運行長度編碼。
[0068]注意到,這個實施例已經(jīng)舉例說明了 GPU存儲器。然而,本發(fā)明并不僅限于GPU存儲器,而且還適用于一般的存儲器以作為所述存儲器的錯誤檢查方法。
[0069]這個實施例已經(jīng)舉例說明了包括多個GPU的渲染服務器。然而,本發(fā)明不僅限于這樣的特定布置。例如,當多個各自具有一個GPU的渲染服務器連接到中央服務器時,中央服務器可將具有對應于比特翻轉(zhuǎn)錯誤數(shù)目超過閾值的GPU的渲染服務器排除在那些用于渲染游戲畫面的渲染服務器之外?;蛘?,可將客戶端裝置300直接連接到渲染服務器100,而不布置任何中央服務器。在這種情況下,CPUlOl可檢查比特翻轉(zhuǎn)錯誤的數(shù)目是否超過閾值,并且可將超過閾值的GPU排除在用于渲染游戲畫面的GPU的分配目標之外。
[0070]注意到,在上述實施例的說明中,當GPU存儲器的比特翻轉(zhuǎn)錯誤的數(shù)目超過閾值時,下一幀的游戲畫面的渲染不會被分配給具有該GPU存儲器的GPU。然而,GPU排除方法并不僅限于此。例如,比特翻轉(zhuǎn)錯誤的數(shù)目超過閾值的次數(shù)可被進一步計數(shù),并且當該次數(shù)變得不小于預定值時,可排除該GPU?;蛘撸诜掌骶S護時間段中,可排除對應于比特翻轉(zhuǎn)錯誤的數(shù)目超過閾值的GPU。
[0071]如上所述,這個實施例的編碼設備可利用編碼處理來執(zhí)行高效的存儲器檢驗。更確切地說,編碼設備將附加有奇偶校驗信息的數(shù)據(jù)寫入將要被檢驗的存儲器中,之后從該存儲器中讀出數(shù)據(jù)。編碼設備接著通過對數(shù)據(jù)執(zhí)行運行長度編碼處理從而生成經(jīng)編碼數(shù)據(jù)。當編碼設備是根據(jù)與所寫入數(shù)據(jù)相關聯(lián)的每個比特序列生成經(jīng)編碼數(shù)據(jù)時,比較該比特序列與所附加的奇偶校驗信息,由此檢測存儲器的比特翻轉(zhuǎn)錯誤。
[0072]以此方式,由于可在執(zhí)行運行長度編碼處理的同時檢查存儲器的可靠性,因此不用調(diào)度專用檢查程序就可檢測出可靠性差的存儲器。此外,在前述實施例的渲染系統(tǒng)中,可實施高效自動容錯。
[0073]其他實施例
[0074]盡管已經(jīng)參考示例性實施例對本發(fā)明進行了說明,但了解到本發(fā)明并不僅限于所披露的示例性實施例。所附加權利要求書的范圍應符合最廣義的解釋,以便涵蓋所以這類修改以及等效的結(jié)構(gòu)與功能。
[0075]本申請要求2011年11月7日提交的美國專利臨時申請第61/556,554號以及2011年12月19日提交的日本專利申請第2011-277628號的權益,所述申請?zhí)卮送ㄟ^引用將其
全文結(jié)合在此。
【權利要求】
1.一種用于輸出經(jīng)編碼圖像數(shù)據(jù)的渲染服務器,其包括: 渲染構(gòu)件,其用于使用GPU渲染圖像; 寫入構(gòu)件,其用于將所述渲染構(gòu)件所渲染的所述圖像寫入包括在所述GPU內(nèi)的GPU存儲器;以及 編碼構(gòu)件,其用于從所述GPU存儲器中讀出所述寫入構(gòu)件寫入的所述圖像,并且通過對所述圖像應用運行長度編碼處理從而生成所述經(jīng)編碼圖像數(shù)據(jù), 其中所述寫入構(gòu)件在將奇偶校驗信息附加到所述圖像的情況下將所述圖像寫入所述GPU存儲器;并且 當所述編碼構(gòu)件是根據(jù)從所述GPU存儲器中讀出的所述圖像的比特序列來生成所述經(jīng)編碼圖像數(shù)據(jù)時,所述編碼構(gòu)件通過比較所述比特序列與所述寫入構(gòu)件所附加的所述奇偶校驗信息,從而檢測比特翻轉(zhuǎn)錯誤。
2.根據(jù)權利要求1所述的服務器,其中所述寫入構(gòu)件在對所述圖像應用編碼預處理的情況下將所述渲染構(gòu)件渲染的所述圖像寫入所述GPU存儲器中。
3.根據(jù)權利要求2所述的服務器,其中所述編碼預處理包括離散余弦變換處理。
4.根據(jù)權利要求1至3中任一權利要求所述的服務器,其中所述經(jīng)編碼圖像數(shù)據(jù)是與經(jīng)編碼視頻數(shù)據(jù)的一個幀相對應的數(shù)據(jù)。
5.根據(jù)權利要求1至4中任一權利要求所述的服務器,其進一步包括: 計數(shù)構(gòu)件,其用于對所述編碼構(gòu)件檢測出的比特翻轉(zhuǎn)錯誤的數(shù)目進行計數(shù);以及通知構(gòu)件,其用于將由所述計數(shù)構(gòu)`件計數(shù)的所檢測出的比特翻轉(zhuǎn)錯誤的所述數(shù)目,以及指示著在其中檢測出了所述比特翻轉(zhuǎn)錯誤的GPU的信息通知給外部設備。
6.一種中央服務器,其連接有根據(jù)權利要求5所述的一個或多個渲染服務器,所述中央服務器包括: 檢測構(gòu)件,其用于檢測客戶端裝置的連接; 分配構(gòu)件,其用于將經(jīng)編碼圖像數(shù)據(jù)的生成分配給包括在所述一個或多個渲染服務器中的多個GPU中的任一 GPU,所述經(jīng)編碼圖像數(shù)據(jù)將被提供給所述檢測構(gòu)件檢測出的所述客戶端裝置;以及 傳輸構(gòu)件,其用于從所述渲染服務器接收所述經(jīng)編碼圖像數(shù)據(jù),并且將所述經(jīng)編碼圖像數(shù)據(jù)傳輸至所述客戶端裝置,所述渲染服務器包括被所述分配構(gòu)件分配給已連接的所述客戶端裝置的所述GPU, 其中所述分配構(gòu)件從包括所述GPU的所述渲染服務器接收與所述GPU相關聯(lián)的檢測出的比特翻轉(zhuǎn)錯誤的數(shù)目,所述GPU被分配有所述經(jīng)編碼圖像數(shù)據(jù)的生成;并且 當所述次數(shù)超過閾值時,所述分配構(gòu)件將所述GPU排除在被分配有所述經(jīng)編碼圖像數(shù)據(jù)的生成的所述多個GPU之外。
7.一種編碼設備,其包括: 寫入構(gòu)件,用于將附加有奇偶校驗信息的數(shù)據(jù)寫入存儲器;以及編碼構(gòu)件,其用于從所述存儲器中讀出所述寫入構(gòu)件寫入的所述數(shù)據(jù),以及通過對所述數(shù)據(jù)應用運行長度編碼處理從而生成經(jīng)編碼數(shù)據(jù), 其中當所述編碼構(gòu)件是根據(jù)所述寫入數(shù)據(jù)的比特序列來生成所述經(jīng)編碼數(shù)據(jù)時,所述編碼構(gòu)件通過比較所述比特序列與所附加的所述奇偶校驗信息,從而檢測比特翻轉(zhuǎn)錯誤。
8.—種對渲染服務器的控制方法,所述渲染服務器用于輸出經(jīng)編碼圖像數(shù)據(jù),所述控制方法包括: 渲染步驟,其中所述渲染服務器的渲染構(gòu)件使用GPU渲染圖像; 寫入步驟,其中所述渲染服務器的寫入構(gòu)件將在所述渲染步驟中渲染的所述圖像寫入包括在所述GPU中的GPU存儲器;以及 編碼步驟,其中所述渲染服務器的編碼構(gòu)件從所述GPU存儲器中讀出在所述寫入步驟中寫入的所述圖像,并且通過對所述圖像應用運行長度編碼處理從而生成所述經(jīng)編碼圖像數(shù)據(jù), 其中在所述寫入步驟中,所述寫入構(gòu)件在將奇偶校驗信息附加到所述圖像的情況下將所述圖像寫入所述GPU存儲器;并且 當所述編碼構(gòu)件是根據(jù)在所述編碼步驟中從所述GPU存儲器中讀出的所述圖像的比特序列來生成所述經(jīng)編碼圖像數(shù)據(jù)時,所述編碼構(gòu)件通過比較所述比特序列與在所述寫入步驟中所附加的所述奇偶校驗信息,從而檢測比特翻轉(zhuǎn)錯誤。
9.一種對中央服務器的控制方法,所述中央服務器連接有根據(jù)權利要求5所述的一個或多個渲染服務器,所述控制方法包括: 檢測步驟,其中所述中央服務器的檢測構(gòu)件檢測客戶端裝置的連接; 分配步驟,其中所述中央服務器的分配構(gòu)件將經(jīng)編碼圖像數(shù)據(jù)的生成分配給包括在所述一個或多個渲染服務器中的多個GPU中的任一 GPU,所述經(jīng)編碼圖像數(shù)據(jù)將被提供給在所述檢測步驟中檢測出的所述客戶端裝置;以及 傳輸步驟,其中 所述中央服務器的傳輸構(gòu)件從所述渲染服務器接收所述經(jīng)編碼圖像數(shù)據(jù),并且將所述經(jīng)編碼圖像數(shù)據(jù)傳輸至所述客戶端裝置,所述渲染服務器包括在所述分配步驟中分配給已連接的所述客戶端裝置的所述GPU, 其中在所述分配步驟中,所述分配構(gòu)件從包括所述GPU的所述渲染服務器接收與所述GPU相關聯(lián)的檢測出的比特翻轉(zhuǎn)錯誤的數(shù)目,所述GPU被分配有所述經(jīng)編碼圖像數(shù)據(jù)的生成,并且當所述次數(shù)超過閾值時,所述分配構(gòu)件將所述GPU排除在被分配有所述經(jīng)編碼圖像數(shù)據(jù)的生成的所述多個GPU之外。
10.一種編碼方法,其包括: 寫入步驟,其中寫入構(gòu)件將附加有奇偶校驗信息的數(shù)據(jù)寫入存儲器;以及編碼步驟,其中編碼構(gòu)件從所述存儲器中讀出在所述寫入步驟中寫入的所述數(shù)據(jù),并且通過對所述數(shù)據(jù)應用運行長度編碼處理從而生成經(jīng)編碼數(shù)據(jù), 其中在所述編碼步驟中,當所述編碼構(gòu)件是根據(jù)所述寫入數(shù)據(jù)的比特序列來生成所述經(jīng)編碼數(shù)據(jù)時,所述編碼構(gòu)件通過比較所述比特序列與所附加的所述奇偶校驗信息,從而檢測比特翻轉(zhuǎn)錯誤。
11.一種用于控制計算機使之起到根據(jù)權利要求1至5中任一權利要求所述的渲染服務器的相應構(gòu)件的作用的程序。
12.—種計算機可讀記錄媒體,其記錄用于控制計算機以起到根據(jù)權利要求1至5中任一權利要求所述的渲染服務器的相應構(gòu)件的作用的程序。
13.一種用于控制計算機以起到根據(jù)權利要求6所述的中央服務器的相應構(gòu)件的作用的程序。
14.一種計算機可讀記錄媒體,其記錄用于控制計算機以起到根據(jù)權利要求6所述的中央服務器的相應構(gòu)件的作用的程序。
15.一種用于控制計算機以起到根據(jù)權利要求7所述的編碼設備的相應構(gòu)件的作用的程序。
16.一種計算機可讀記錄媒體,其記錄用于控制計算機以起到根據(jù)權利要求7所述的編碼設備的相應構(gòu)件的作用的程`序。
【文檔編號】G06F12/16GK103874989SQ201280050441
【公開日】2014年6月18日 申請日期:2012年10月31日 優(yōu)先權日:2011年11月7日
【發(fā)明者】巖崎哲史 申請人:史克威爾·艾尼克斯控股公司