TW201506843A - 提供給遠端顯示器的基於雲端虛擬圖形處理的方法與系統 - Google Patents

提供給遠端顯示器的基於雲端虛擬圖形處理的方法與系統 Download PDF

Info

Publication number
TW201506843A
TW201506843A TW102143422A TW102143422A TW201506843A TW 201506843 A TW201506843 A TW 201506843A TW 102143422 A TW102143422 A TW 102143422A TW 102143422 A TW102143422 A TW 102143422A TW 201506843 A TW201506843 A TW 201506843A
Authority
TW
Taiwan
Prior art keywords
gpu
cpu socket
game
application
virtual machine
Prior art date
Application number
TW102143422A
Other languages
English (en)
Inventor
Franck Diard
Jen-Hsun Huang
Atul Apte
Tom Putnam
Alok Ahuja
Matt Lavoie
Dennis Harms
Tyler Goeringer
Yao-Tian Wang
Scott Matloff
John Chris Holmes
Subu Krishnamoorthy
Stefan Eckart
Bojan Vukojevic
Xun Wang
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of TW201506843A publication Critical patent/TW201506843A/zh

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/20Input arrangements for video game devices
    • A63F13/21Input arrangements for video game devices characterised by their sensors, purposes or types
    • A63F13/214Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads
    • A63F13/2145Input arrangements for video game devices characterised by their sensors, purposes or types for locating contacts on a surface, e.g. floor mats or touch pads the surface being also a display device, e.g. touch screens
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/25Output arrangements for video game devices
    • A63F13/26Output arrangements for video game devices having at least one additional display device, e.g. on the game controller or outside a game booth
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/32Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections
    • A63F13/327Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using local area network [LAN] connections using wireless networks, e.g. Wi-Fi® or piconet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/33Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
    • A63F13/335Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/34Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using peer-to-peer connections
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/45Controlling the progress of the video game
    • A63F13/48Starting a game, e.g. activating a game device or waiting for other players to join a multiplayer session
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories
    • A63F13/792Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories for payment purposes, e.g. monthly subscriptions
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/90Constructional details or arrangements of video game devices not provided for in groups A63F13/20 or A63F13/25, e.g. housing, wiring, connections or cabinets
    • A63F13/92Video game devices specially adapted to be hand-held while playing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/10Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals
    • A63F2300/1043Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by input arrangements for converting player-generated signals into game device control signals being characterized by constructional details
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/204Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform the platform being a handheld device
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/30Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device
    • A63F2300/301Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by output arrangements for receiving control signals generated by the game device using an additional display connected to the game console, e.g. on the controller
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/552Details of game data or player data management for downloading to client devices, e.g. using OS version, hardware or software profile of the client device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F17/00Coin-freed apparatus for hiring articles; Coin-freed facilities or services
    • G07F17/32Coin-freed apparatus for hiring articles; Coin-freed facilities or services for games, toys, sports, or amusements
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects
    • G09G2370/022Centralised management of display operation, e.g. in a server instead of locally

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Child & Adolescent Psychology (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Processing Or Creating Images (AREA)

Abstract

一種提供圖形處理的裝置。該裝置包括一雙CPU插座架構,其包含一第一CPU插座與一第二CPU插座。該裝置包括複數GPU板,其可提供耦接於該第一CPU插座與該第二CPU插座的複數GPU處理器,其中每一GPU板包含該等複數GPU處理器中兩個或更多者。該裝置包括將該第一CPU插座耦接於一或多個GPU板之一第一子集合,以及將該第二CPU插座耦接於一或多個GPU板之一第二子集合的一通訊介面。

Description

提供給遠端顯示器的基於雲端虛擬圖形處理的方法與系統
本案係關於提供給遠端顯示器的基於雲端虛擬圖形處理的方法與系統。
以往,一應用程式,例如電動遊戲,係使用個人電腦(PC)或使用附加於電視的一主控台來執行(玩)。使用者購買或租用的遊戲被載入到PC上或插入到該遊戲主控台中,然後以熟知的方式來玩。
最近線上遊戲變得很受歡迎。線上遊戲透過網路來玩,例如網際網路。該遊戲被載入到使用者的裝置上,而玩遊戲需要的其它軟體駐在於經由該網路可存取的一伺服器上。線上遊戲允許多個使用者在由該伺服器上的軟體所提供的遊戲環境中彼此競爭。
此外,行動遊戲(mobile gaming)已成為流行。例如,行動裝置(例如手機)可提供電動遊戲給使用者,其可經由例如行動電話之觸控螢幕控制機構進行控制。這些控制機構虛擬形成並顯示於觸控螢幕上。由於此類行動電話並非為遊戲而專門製造,因此此類行動電話之處理能力對於許多遊戲而言通常太低。行動電話的另一問題係通常無法支援某些遊戲,因為此類遊戲需要特定作業系統環境才能運行。此外,虛擬按鈕占用寶貴的螢幕空間,由此縮減向使用者所顯示的遊戲整體。
再者,經由顯示器之觸控螢幕所模擬的虛擬控制按鈕,在使用者與遊戲之間提供很差的介面。由於按鈕係虛擬化於平面螢幕上,因此使用虛擬按鈕很難獲得觸覺(tactile)互動。缺乏觸覺參考時,欲確保虛擬按鈕有作用的唯一方法係實際同時看著手指和虛擬按鈕。如此可能使得玩家的眼睛離開螢幕上遊戲中的關鍵點。並且,按鈕僅限於使用行動裝置之正面。由於按鍵係虛擬完成,因此這些按鈕僅能呈現於觸控螢幕顯示器上。有限的螢幕空間可能導致按鈕數量減少,或者按鈕的顯像很小而難以使用。
在本發明的具體實施例中描述一種提供圖形處理的裝置。該裝置包括具有一第一CPU插座與一第二CPU插座的一種雙中央處理器(CPU,“Central processing unit”)插座架構。該裝置包括複數圖形處理器(GPU,“Graphics processing unit”)板,其可提供耦接於該第一CPU插座與該第二CPU插座的複數GPU處理器,其中每一GPU板包含兩個或更多者的該等複數GPU處理器中。該裝置包括將該第一CPU插座耦接於一或多個GPU板之一第一子集合,以及將該第二CPU插座耦接於一或多個GPU板之一第二子集合的一通訊介面。在另一具體實施例中,描述一種附加於網路的GPU裝置。該附加於網路的GPU裝置包括提供有複數虛擬CPU與GPU處理器之複數處理板。該等處理板之每一者包括具有一第一CPU插座與一第二CPU插座的一種雙CPU插座架構。每一處理板包括複數GPU板,可提供耦接於該第一CPU插座與該第二CPU插座的複數GPU處理器,其中每一GPU板包含該等複數GPU處理器中兩個或更多者。每一處理板包括第一複數通訊橋,其每一者將一相對應GPU板耦接於該個CPU插座與該第二CPU插座。每一處理器板包括將該第一CPU插座耦接於一或多個GPU板之一第一子集合,以及將該第二CPU插座耦接於一或多個GPU板 之一第二子集合的一通訊介面。
在本發明之具體實施例中,揭示一種用於切換傳遞到一遠端顯示器之視訊流的電腦實作方法。在其它具體實施例中,揭示一種非暫態性電腦可讀取媒體,其具有電腦可執行指令用於使得一電腦系統來執行一種用於切換傳遞給一遠端顯示器的視訊流之方法。在又其它具體實施例中,揭示一種電腦系統,其包含一處理器與耦接於該處理器的記憶體,且其中儲存指令,如果被該電腦系統執行時可使得該電腦系統執行用於切換傳遞給一遠端顯示器的視訊流之一方法。該方法包括初始化一應用(application)的一實例(instantiation)。該方法包括經由該應用的執行而在複數像框上執行圖形顯像(rendering)以產生一第一視訊流(video stream),其中該第一視訊流包含該等複數像框。該方法包括依序地將該等複數像框載入到一或多個像框緩衝器中。該方法包括判斷被載入到一相對應像框緩衝器中一像框的一第一點陣圖何時可符合一應用簽章。該應用簽章包含關聯於該第一視訊流的一鍵像框之一主點陣圖(master bitmap)的一衍生物。
在另一具體實施例中,揭示一種用於切換傳遞到一遠端顯示器的視訊流之系統。該系統包括初始化一應用的一實例之一處理器。該系統包括一圖形顯像器,用於經由該應用的執行而在複數像框上執行圖形顯像以產生一第一視訊流,其中該第一視訊流包含該等複數像框。該系統包括一像框緩衝器,以依序接收關聯於該第一視訊流的複數像框。該系統包括一比較器,其設置來判斷當一像框的一第一點陣圖被載入到一相對應像框緩衝器中時,是否與一應用簽章相符合。其中該應用簽章包含關聯於該第一視訊流的一鍵像框之一主控點陣圖的一衍生物。
在本發明之具體實施例中,揭示一種用於產生網路雲端資源的電腦實作方法。該方法包括在一基於雲端系統中產生一樣板虛擬機器(template virtual machine)。該方法包括藉由仿製(clone)該樣板來針對一終端使用者產生一虛擬機器的一實例。該方法包括載入由該虛擬機器執行的一 應用。該方法包括存取關聯於該終端使用者的第一資訊。該方法包括載入該第一資訊在該應用的一實例(instantiation)中。
在本發明之具體實施例中,描述一種電腦實作的分配(allocation)方法。在其它具體實施例中,揭示一種非暫態性電腦可讀取媒體,其具有電腦可執行指令來使得一電腦系統執行一所描述的分配方法。在又其它具體實施例中,揭示一種電腦系統,其包含一處理器與耦接於該處理器的記憶體,且在其中儲存指令,如果被該電腦系統執行時,可使得該電腦系統執行一分配方法。該方法包括自關聯於一終端使用者的一用戶端裝置接收一執行一應用的要求。該方法包括決定該應用之一第一效能等級。該方法包括決定可使用的該第一效能等級的一第一虛擬機器。該方法包括指定該第一虛擬機器,以執行關聯於該用戶端裝置的該應用。
本發明之多種具體實施例的這些及其它目的與好處對於熟此技藝者而言將可在閱讀以下例示於多個附圖中該等具體實施例的詳細說明之後而瞭解。
100‧‧‧運算系統
105‧‧‧中央處理單元
110‧‧‧記憶體
115‧‧‧儲存器
120‧‧‧使用者輸入
125‧‧‧通訊介面
130‧‧‧圖形系統
135‧‧‧圖形處理器
140‧‧‧顯示記憶體
145‧‧‧額外記憶體
150‧‧‧顯示器
155‧‧‧額外圖形處理器
160‧‧‧資料匯流排
200‧‧‧用戶端裝置
205‧‧‧中央處理單元
220‧‧‧使用者輸入
225‧‧‧通訊介面
250‧‧‧顯示器
255‧‧‧解碼器
260‧‧‧資料匯流排
300‧‧‧網路架構
310,320,330‧‧‧用戶端
340‧‧‧伺服器
350‧‧‧網路
360,370‧‧‧裝置
390‧‧‧裝置
395‧‧‧智慧型儲存陣列
400‧‧‧圖形系統
401‧‧‧應用程式
405‧‧‧顯示裝置
410‧‧‧用戶端裝置
415‧‧‧虛擬圖形處理器
420‧‧‧記憶體管理單元
425‧‧‧圖形記憶體
450‧‧‧雲端系統
451‧‧‧超管理器
455‧‧‧虛擬機器/遊戲座位
456‧‧‧遊戲代理
458‧‧‧遊戲應用
461‧‧‧圖形管理伺服器
462‧‧‧虛擬記憶體主控管理員
464‧‧‧服務登錄
465‧‧‧部署管理員
466‧‧‧負載平衡器
467‧‧‧遊戲標題資產
468‧‧‧先進先出組件
470‧‧‧供給管理員雲端
471‧‧‧供給管理員
490‧‧‧用戶端伺服器
500A、550B‧‧‧雙插座架構
501A、501B、560A、560B‧‧‧CPU插座
505A、505B、505C、505D‧‧‧橋
510A、510B、510C、510D、550A、550B、550C‧‧‧GPU板
515‧‧‧GPU
610‧‧‧GRID架構
615‧‧‧雙CPU插座
620‧‧‧視覺運算裝置
630‧‧‧雲端運算平台
640‧‧‧層
701‧‧‧處理器
705‧‧‧圖形顯像器
710‧‧‧視訊編碼器/解碼器
720‧‧‧應用簽章產生器
725‧‧‧像框緩衝器
730‧‧‧比較器
820‧‧‧應用簽章
830‧‧‧著色器
910‧‧‧快速仿製模組
920‧‧‧應用載入器
930‧‧‧獨立與永久儲存器
940‧‧‧供給/分配管理員
945‧‧‧資源調節器
947‧‧‧資源調整模組
1110‧‧‧基於雲端圖形處理系統
1120‧‧‧基於雲端圖形處理系統中的虛擬機器
1130‧‧‧應用管理模組
1140‧‧‧監視器
1150‧‧‧緩和模組
1301‧‧‧遊戲座位
1302‧‧‧用戶端裝置
1303‧‧‧供給管理員
1304‧‧‧服務登錄
1305‧‧‧遊戲代理
1306‧‧‧串流器伺服器
1307‧‧‧串流組件
1310‧‧‧會期處理器執行緒
1311‧‧‧遊戲會期供給管理員
1312‧‧‧虛擬機器
1313‧‧‧先進先出佇列
1314‧‧‧虛擬記憶體主控管理員
1320‧‧‧遊戲資料鋪
1321‧‧‧標題資產
1322‧‧‧標題資料
1323‧‧‧過濾器資料
1324‧‧‧啟動資料
1330‧‧‧雲端基礎設施
1331‧‧‧軟體堆疊層
1332‧‧‧遊戲管理員
1334‧‧‧資料庫
1335‧‧‧遊戲用戶層
1340‧‧‧遊戲管理員
1341‧‧‧串流伺服器
1401‧‧‧使用者會期管理員
1402‧‧‧入口網站
1406‧‧‧座位供給管理員
1407‧‧‧SIM模組
1410‧‧‧佔用桶位
1411‧‧‧啟動中桶位
1412‧‧‧有柵欄桶位
1413‧‧‧失效桶位
加入到本說明書中並形成為其一部份的該等附屬圖式係例示本發明之具體實施例,其中類似的編號描述了類似的元件,該等圖式連同該說明係用於解釋本發明的原理。
圖1所示為適用於實作本發明之具體實施例的一種示例性電腦系統之方塊圖。
圖2為能夠實作根據本發明之具體實施例的一種用戶端裝置之示例的方塊圖。
圖3為根據本發明之具體實施例之一種網路架構之示例的方塊圖,其中用戶端系統與伺服器可耦接於一網路。
圖4A例示根據本發明一具體實施例中之一圖形系統400A, 其實作基於雲端虛擬圖形處理,供遠端顯示器使用。
圖4B例示根據本發明一具體實施例之一種架構400B,其實作基於雲端虛擬圖形處理,供遠端顯示器使用。
圖5A-B例示根據本發明一具體實施例之雙插座架構,其設置多個圖形處理器晶片,以實作來提供一或多個附加於網路的GPU裝置。
圖6例示多個GPU處理板供遠端顯示器之基於雲端虛擬圖形處理之實作。
圖7為根據本發明一具體實施例的一系統之方塊圖,其設置來偵測一鍵像框(keyframe)。
圖8A例示根據本發明一具體實施例的一種方法之流程圖,其於一雲端運算平台提供虛擬圖形處理給遠端顯示器所支援的一虛擬機器上一應用執行期間偵測一鍵像框。
圖8B為根據本發明一具體實施例之一資訊流程圖,其用來偵測一鍵像框的程序。
圖9為根據本發明一具體實施例的資源產生系統之一方塊圖,其配置來當使用一樣板虛擬機器時產生新虛擬機器,並利用使用者特定資料客製化一虛擬機器的每一實例。
圖10A為根據本發明一具體實施例之一種用於提供給遠端顯示器之基於雲端虛擬化圖形處理之一新虛擬機器的資源產生方法之流程圖。
圖10B為根據本發明一具體實施例之一種用於當產生一新虛擬機器時調節資源分配來降低其對於既存虛擬機器之該等作業之影響的方法之流程圖。
圖11為根據本發明一具體實施例之一種系統的方塊圖,其能夠為了最小化在該遠端顯示器的一前視窗上一桌面作業系統之暴露的目的來執行一遠端顯示器上的視窗管理。
圖12為根據本發明一具體實施例之一種方法的流程圖,其用於為了最小化在該遠端顯示器的一前視窗上一桌面作業系統之暴露的目的來執行一遠端顯示器上的視窗管理。
圖13A-O例示根據本發明一具體實施例之一種提供給遠端顯示器之基於雲端虛擬圖形處理的遊戲平台之實作。
圖14A-H例示根據本發明一具體實施例之一種在一基於雲端的遊戲/應用環境中動態地分配與指定遊戲座位(game seat)的系統與方法。
圖15為一種用於在一基於雲端圖形處理系統中分配一虛擬機器到一末端用戶端之方法的流程圖。
圖16為根據本發明一具體實施例之一種用於實作一共通鎖來指揮該等要求之處理的電腦實作方法的流程圖1600。
圖17A-F例示根據本發明之具體實施例的多種實作用於在一基於雲端圖形處理系統之座位分配(seat allocation)的方法。
現在將對本發明之多種具體實施例進行詳細參照,其示例皆例示於該等附屬圖式中。本發明將配合這些具體實施例說明,將可瞭解到它們並非要限制本發明於這些具體實施例。相反地,本發明係要涵蓋選項、修正及等同者,其皆包括在由附屬申請專利範圍所定義之本發明的精神及範圍之內。再者,在以下本發明之具體實施例的詳細說明中,為了提供對於本發明之完整瞭解,其提出許多特定細節。但是將可瞭解到本發明可以不使用這些特定細節來實施。在其它實例中,並未詳細說明熟知的方法、程序、組件及電路,藉以避免不必要地混淆這些具體實施例的態樣。
該等詳細說明的一些部份在以下係以程序、步驟、邏輯方塊、處理,以及其它對於一電腦記憶體內資料位元之作業的符號表示來呈現。 這些說明及表示為在該資料處理技術中那些專業人士所使用的手段來最有效地傳遞他們工作的實質內容給本技術中其他專業人士。在本申請案中,一程序、邏輯方塊、處理或類似者皆被視為可達到所想要結果之步驟或指令的一自我一致的序列。該等步驟為那些利用實體數量的實體操縱。通常雖然並非必要,這些數量可採取電子或磁性信號之型式,其能夠被儲存、轉換、組合、比較,及另可在一電腦系統中操縱。已證明多次其主要為了通常用法的理由而為方便地參照到這些信號做為交易、位元、數值、元件、符號、字元、樣本、像素或類似者。
但是應要注意到所有這些及類似術語係要關聯於該等適當實體數量,並僅為應用到這些數量的便利標記。由以下的討論中可瞭解到除非有特定陳述,可瞭解到在本發明當中所有利用到的電腦術語,例如「執行」、「接收」、「連接」、「導航」、「促成」、「安裝」或類似者,皆代表一電腦系統或類似的電子運算裝置或處理器之動作與程序(例如在本申請案中的流程圖8A、10A-B、12、15、16與17A-F中所示)。該電腦系統或類似的電子運算裝置操縱和轉換表示成在該電腦系統記憶體、暫存器、或其它這種資訊儲存器、傳輸或顯示裝置之內的實體(電子)數量的資料。
圖8A,10A-B,12,15,16與17A-F為根據本發明之具體實施例中用於提供給遠端顯示器之基於雲端圖形處理系統之電腦實作方法的示例之流程圖。雖然在該等流程圖中揭示有特定步驟,這些步驟皆為示例性。也就是說,本發明可良好適用於執行在該等流程圖中所述之多種其它步驟及該等步驟之變化。
此處所述之其它具體實施例在電腦可執行指令的一般性內容中做討論,其係常駐在由一或多個電腦或其它裝置所執行的某種型式的電腦可讀取儲存媒體上,例如程式模組。例如(但非限制)電腦可讀取媒體可包含非暫態性電腦儲存媒體與通信媒體。概言之,程式模組包括例式、程式、物件、組件、資料結構等,其可執行特殊工作或實施特定的摘要資料 型態。該等程式模組的功能在多種具體實施例中可視需要組合或分散。
電腦儲存媒體包括揮發性與非揮發性,可移除與不可移除媒體,其可用任何方法或技術實作來儲存資訊,例如電腦可讀取指令、資料結構、程式模組或其它資料。電腦儲存媒體包括但不限於隨機存取記憶體(RAM,“Random access memory”)、唯讀記憶體(ROM,“Read only memory”)、電性可抹除可程式化ROM(EEPROM)、快閃記憶體或其它記憶體技術、光碟ROM(CD-ROM,“Compact disk ROM”)、數位多功能碟片(DVD,“Digital versatile disk”)、或其它光學儲存器、磁碟片、磁帶、磁碟儲存器、或其它磁性儲存裝置,或任何其它可用於儲存所需要資訊以及可被存取來取回該資訊的媒體。
通訊媒體能夠實現電腦可執行指令、資料結構及程式模組,並包括任何資訊傳遞媒體。藉由範例(而非限制),通信媒體包括有線媒體,像是有線網路或直接線路連接,以及無線媒體,像是聲波、射頻(RF,“Radio frequency”)、紅外線及其它無線媒體。任何上述的組合亦可包括在電腦可讀取媒體的範圍內。
圖1所示為能夠實作本發明之具體實施例的一種運算系統100之示例的方塊圖。運算系統100廣義地代表能夠執行電腦可讀取指令之任何單一或多處理器運算裝置或系統。運算系統100之示例包括但不限於工作站、筆記型電腦、用戶端終端機、伺服器、分散式運算系統、掌上型裝置、若任何其它運算系統或裝置。在其最基本的組態中,運算系統100可包括至少一處理器105與一系統記憶體110。
其要瞭解到此處所述的電腦系統100例示一作業平台的範例性組態,其上可較佳地實施具體實施例。然而,具有不同組態之其它電腦系統亦可在本發明的範圍內用於取代電腦系統100。也就是說,電腦系統100包括那些配合圖1所述之外的元件。再者,具體實施例可實施在任何被設置成可以執行的系統上,非僅是類似電腦系統100的電腦系統。其要瞭 解到具體實施例可實施在許多不同類型的電腦系統100。系統100可實施成例如一桌上型電腦系統、或具有耦接至一專用繪圖描繪GPU之強有力的泛用型CPU的伺服器電腦系統。在這種環境中,組件可包括加入周邊匯流排、特殊化音訊/視訊組件,輸入/輸出裝置及類似者。類似地,系統100可實施成一掌上型裝置(例如行動電話等)、或一機上電動遊戲主機裝置,例如像是美國華盛頓州Redmond市微軟所提供的Xbox®,或是日本東京的索尼電腦娛樂公司所出品的PlayStation3®。系統100亦可實施成「晶片上系統」,其中一運算裝置的電子(如組件105,110,115,120,125,130,150及類似者)將整個包含在一單一積體電路晶粒內。示例包括一具有一顯示器的掌上型裝置、汽車導航系統、一攜帶式娛樂系統及類似者。
在圖1的示例中,電腦系統100包括一中央處理單元(CPU,“Central processing unit”)105,用於運行軟體應用程式及選擇性地運行一系統。記憶體110儲存由CPU 105使用的應用程式和資料。儲存器115提供應用程式和資料非揮發性儲存器,並可包括固定式磁碟機、可移除式磁碟機、快閃記憶體裝置,及CD-ROM、DVD-ROM或其它光學儲存裝置。選擇性使用者輸入120包括自一或多個使用者傳送使用者輸入到電腦系統100的裝置,並可包括鍵盤、滑鼠、搖桿、觸控螢幕及/或麥克風。
通訊或網路介面125允許電腦系統100經由一電子通訊網路與其它電腦系統進行通訊,包括有線及/或無線通訊,並包括網際網路。選擇性顯示裝置150為能夠回應於來自電腦系統100的一信號來顯示視覺資訊的任何裝置。電腦系統100的該等組件,包括有CPU 105、記憶體110、資料儲存器115、使用者輸入裝置120、通訊介面125及顯示裝置150,其皆經由一或多個資料匯流排160而耦接。
在圖1的具體實施例中,一圖形系統130可耦接於資料匯流排160和電腦系統100的該等組件。圖形系統130可以包括一實體圖形處理器(GPU)135和圖形記憶體。GPU 135自顯像命令產生輸出影像的像素資 料。實體GPU 135可被設置成多個虛擬GPU,其可由平行執行的一些應用程式平行地(並行地)使用。
圖形記憶體可包括一顯示記憶體140(例如一像框緩衝器(frame buffer)),其用於儲存一輸出影像的每一像素的像素資料。在另一具體實施例中,顯示記憶體140及/或額外的記憶體145為記憶體110之一部份,並與CPU 105共用。另外,顯示記憶體140及/或額外記憶體145可為提供做為圖形系統130之專屬使用的一或多個分開的記憶體。
在另一具體實施例中,圖形處理系統130包括一或多個額外的實體GPU 155,類似於GPU 135。每一額外的GPU 155被調整成與GPU 135平行地運作。每一額外的GPU 155由顯像命令產生輸出影像的像素資料。每一額外的實體GPU 155可被設置成多個虛擬GPU,其可由平行執行的一些應用程式平行地(並行地)使用。每一額外的GPU 155可配合GPU 135操作以同時產生一輸出影像之不同部份的像素資料、或是同時地產生不同輸出影像的像素資料。
每一額外的GPU 155可與GPU 135位於相同的電路板上,與GPU 135共用與資料匯流排160的連接,或每一額外的GPU 155位在分開地耦接於資料匯流排160的另一電路板上。每一額外的GPU 155亦可被整合到與GPU 135相同的模組或晶片封裝。每一額外的GPU 155可具有額外的記憶體,類似於顯示記憶體140和額外的記憶體145,或是可與GPU 135共用記憶體140和145。
圖2為能夠實作根據本發明之具體實施例的一終端使用者或用戶端裝置200之示例的方塊圖。在圖2的示例中,用戶端裝置200包括一CPU 205,用於運行軟體應用程式及選擇性地運行一作業系統。使用者輸入220包括自一或多個使用者傳送使用者輸入的裝置,並可包括鍵盤、滑鼠、搖桿、觸控螢幕及/或麥克風。
通訊介面225允許用戶端裝置200經由一電子通訊網路與其 它電腦系統(例如圖1的電腦系統100)進行通訊,其中包括有線及/或無線通訊,並包括網際網路。解碼器255為能夠解碼(解壓縮)被編碼(壓縮)的資料之任何裝置。例如,解碼器255可為一H.264解碼器。顯示裝置250可為任何能夠顯示視覺資訊的裝置,包括自解碼器255接收的資訊。顯示裝置250可用於至少部份由用戶端裝置200產生的視覺資訊。但是,顯示裝置250可用於顯示自電腦系統100接收的視覺資訊。用戶端裝置200的該等組件可經由一或多個資料匯流排260來耦接。另外,該等組件可以或可不實體地包括在用戶端裝置200的外殼內。例如,顯示裝置250可為一監視器,由用戶端裝置200透過纜線或無線式地進行通訊。
相對於電腦系統100,在圖2的示例中用戶端裝置200具有較少的組件和較少的功能,因此可稱之為一薄型用戶端(thin client)。一般而言,用戶端裝置200可為具有顯示能力、有能力解碼(解壓縮)資料、及可自一使用者接收輸入的能力,並傳送這些輸入到電腦系統100的任何種類之裝置。但是,用戶端裝置200除前述的那些功能之外還具有額外的能力。用戶端裝置200可為例如一個人電腦、一平板電腦、一電視、一掌上型遊戲系統或類似者。
圖3為在用戶端系統310,320與330及伺服器340與345可耦接至一網路350的一網路架構300之示例的方塊圖。用戶端系統310,320與330概略代表任何種類或型式的運算裝置或系統,例如圖1的運算系統110及/或圖2的用戶端裝置200。
同樣地,伺服器340與345概略代表運算裝置或系統,例如應用伺服器、GPU伺服器或資料庫伺服器,其設置成提供多種資料庫服務及/或運行某些軟體應用。網路350概略代表任何電信或電腦網路,包括如一企業內網路、一廣域網路(WAN)、一區域網路(LAN)、一個人區域網路(PAN)或網際網路。
請參照圖1的運算系統100,一通訊介面,例如通訊介面125, 其可用於提供每一用戶端系統310,320與330及網路350之間的連接。用戶端系統310,320與330可以使用例如一網頁瀏覽器或其它用戶端軟體來存取伺服器340或345上的資訊。依此方式,用戶端系統310,320與330可設置成存取提供圖形處理能力的伺服器340及/或345,藉此為了在前端用戶端系統310,320與330處顯示的目的而將圖形處理卸載(off-loading)至後端伺服器340及/或345。另外,這種軟體可允許用戶端系統310,320與330存取由伺服器340、伺服器345、儲存裝置360(1)-(L)、儲存裝置370(1)-(N)、儲存裝置390(1)-(M)或智慧型儲存陣列395所主控的資料。雖然圖3描述了用於交換資料的一網路(例如網際網路)之使用,此處所述之該等具體實施例並不限於網際網路或任何特定網路式環境。
在一具體實施例中,此處所揭示所有或部份的該等一或多個示例性具體實施例被編碼成一電腦程式,並被載入到由伺服器340、伺服器345、儲存裝置360(1)-(L)、儲存裝置370(1)-(N)、儲存裝置390(1)-(M)或智慧型儲存陣列395或其任何組合來執行。此處所揭示所有或部份的該等示例性具體實施例亦可編碼成一電腦程式,用以儲存在伺服器340中、由伺服器345運行、並分散到網路350上的用戶端系統310,320與330。
提供給遠端顯示器之基於雲端虛擬圖形處理的GRID架構之方法與系統
圖4A例示根據本發明一具體實施例中設置用於實作提供給遠端顯示器的基於雲端虛擬圖形處理之一圖形系統400A。如所示,圖形處理系統400A包括圖1的一實體GPU 135,雖然系統400A包括如上述之額外的實體GPU 155。
根據本發明之具體實施例,實體GPU 135設置成由N個應用程式1,2,...,N並行使用。更特定而言,實體GPU 135設置成M個虛擬GPU 415A,415B,...,415M,其由應用程式1,2,...,N並行地使用。額外的GPU 155之每一者可類似地設置成多個虛擬GPU。在一具體實施例中,GPU 135與額外的GPU 155係耦合於一記憶體管理單元420(MMU,“Memory management unit”),例如一輸入/輸出MMU,其依序地耦合至圖形記憶體,其配合圖1做說明。
在一具體實施例中,應用程式1,2,...,N為電動遊戲應用程式;但是,本發明並不限於此。也就是說,應用程式1,2,...,N可為任何種類的應用程式。例如,該應用程式可提供財務服務、電腦輔助設計(CAD,“Computer aided design”)等。在又另一示例中,該應用程式可為一程式化指南,其以表格的型式提供在不同時槽中不同的電視頻道上可使用之多種程式的一列表,且該用戶端裝置可為一機上盒(纜線或衛星)。
圖4B例示根據本發明一具體實施例之一種架構400B,其實作提供給遠端顯示器的基於雲端虛擬圖形處理。圖形架構400B提供由一或多個主控作業系統所管理的網路資源,其中該等網路資源(例如CPU,GPU等)被虛擬化,並於一或多個虛擬機器(VM)與外部通訊網路內共享。特別是,所示為一雲端系統45A-N,其中雲端系統450A-N中每一者協同地工作來經由一通訊網路將多個運算資源連接在一起。因此,該等運算資源分散在整個架構400B中。在本發明之具體實施例中,雲端系統450A-N提供了亦設計來提供高性能圖形處理之完整的虛擬遊戲系統。
例如,雲端系統450A提供分散式運算資源,並代表提供給遠端顯示器之基於雲端虛擬圖形處理的雲端系統450A-N之每一者。特別是,雲端系統450A包括一遊戲機器(GM,“Game Machine”)伺服器雲端系統460,其包含複數實體伺服器或遊戲機器461A-N。以下將對GM系統461A加以說明,其並可代表GM 461A-N之每一者。特別是,實體GM 461A提供可支援複數虛擬機器之一主控(host)系統。為了在GM 461A內實作虛擬機器455A-N,結合超管理器451的一VM主控管理員462包括軟體、韌體或硬體,用於產生、管理及運行該等虛擬機器(亦稱之為「遊戲座位」(game seats))。特定而言,VM主控管理員462與超管理器451互動來將該等遊戲座位 455A-N分配在GM系統461A內。更特定而言,該VM主控管理員能夠結合並鏈結被分配給一特定遊戲座位(例如455A)之該等實體資源(例如一或多個CPU核心與該等實體GPU)。
遊戲座位(例如VM)455A代表該實體伺服器或GM 461A內的遊戲座位455A-N。每一虛擬遊戲座位455A在其本身的虛擬環境內運作,其係經由一相對應作業系統來運行,例如一虛擬Windows®作業系統。例如,該作業系統提供遊戲座位455a能力來執行遊戲應用458A、將其轉換成一視訊流、並將其傳出一適當連接埠與通道到位在用戶端伺服器490處的一接收器。用戶端伺服器490包括任何設置成針對一虛擬機器的一實例來與雲端系統450A-N進行通訊的電子裝置。例如,用戶端伺服器490包括一薄型用戶端、基本型伺服器、行動裝置、膝上型電腦、個人電腦等。
一遊戲代理(game agent)456A實例化(instantiate)遊戲座位455A,並協助雲端系統450A內該等複數遊戲座位之管理與協調。例如,遊戲代理456A連同所有該等其它遊戲代理與一供給管理員雲端470的一供給管理員471合作,藉以產生、管理及供給末端用戶端系統490在雲端系統450A-N內必要的遊戲座位。例如,供給管理員470與用戶端系統490合作來供給一相對應遊戲座位(例如455A)。另外,供給管理員包括關於每一個遊戲應用(例如458)的資訊,其被包括在遊戲標題資產方塊467中。因此,遊戲代理456A能夠接收關於在遊戲座位455A內被實例化的遊戲應用458的資訊,例如描述資訊、基於遊戲座位455A之該等能力之建議的組態設定等。一先進先出(FIFO,“First-in-first-out”)組件468指揮該等輸入之遊戲座位的要求。在一具體實施例中,該FIFO組件以FIFO的順序處理要求。
一Mjolnir伺服器457A提供資訊之編碼與封包化。例如,Mjolnir伺服器457A設置成透過一遊戲應用458A的執行來編碼與封包化由遊戲座位(VM)455A產生的圖形視訊資料。如所示,遊戲應用458A的該實例由一度量儲存器471提供,其係耦接於提供存取到遊戲應用458A的一實 例之一第三方內容提供者。
一OpConsole伺服器463協同於在實體伺服器461A-N之該等節點上的多個VM主控管理員(例如462)。特別是,OpConsole伺服器463做為伺服器或GM 461A-N之該叢集的一叢集管理員(cluster manager)。例如,OpConsole伺服器463通知服務登錄464或座位登錄有那些座位可操作,那些遊戲座位在使用中,那些遊戲座位被關閉,那些遊戲座位在佇列中,那些遊戲座位正在被重置(reset),那些遊戲座位需要被服務等。
此外,OpConsole伺服器463與服務登錄464互動,所以可提供該等遊戲座位之整個叢集之目前狀態。該等遊戲座位之狀態在服務登錄464中被維持。此外,部署(deployment)管理員465設置成提供一通知服務給該等遊戲座位之每一者。例如,部署管理員465能夠推送關於新遊戲與其實例、或是關於新遊戲的資訊、新軟體更新、新版本的軟體等資訊。依此方式,部署管理員465提供一可擴充方法,用於通知該等遊戲代理與遊戲座位之每一者之相關資訊。
度量鋪(metrics store)471設置成收集關於在相對應遊戲座位內該等遊戲應用之作業的資料。例如,度量鋪471收集位元率、服務品質(QoS)等。負載平衡器466可平衡來自於用戶端伺服器490之遊戲座位的連接要求的該等負載。
用於實作提供給遠端顯示器之基於雲端虛擬圖形處理之視覺運算裝置(VCA,“Visual Computing Appliance”)
圖5A例示根據本發明一具體實施例的一種可提供圖形處理的對稱式GRID系統架構500A。例如,該架構實作成一電路板,其中包含一或多個通訊式耦接在一起的積體電路,用以提供圖形處理能力。在一具體實施例中,GRID架構500A實作在基於雲端的架構400B內,藉以實作提供給遠端顯示器的基於雲端虛擬圖形處理。
GRID系統架構500A包括一雙插座架構,其中包括一第一 CPU插座501A與一第二CPU插座501B。在一種實施例中,每一CPU插座提供可具有CPU能力的一微處理器與一底板之間的電性連接。如圖5A所示,一多核心處理器通訊式耦接於該等第一與第二CPU插座之每一者。例如,一積體電路或「晶片組」(chipset)包括多個核心處理器,其被組合形成一運算系統的硬體組件,設置成執行一電腦程式的指令如同透過一作業系統之作業所實作者。在一具體實施例中,該多核心處理器包含一XEON E 2670處理器。如圖5A所示,一XEON E 2670處理器耦接於第一插座501A,而一XEON E 2670處理器亦耦接於第二插座501B。
在一具體實施例中,雙插座架構500A設置成包括多核心處理器之一Sandy Bridge處理器架構。例如,一Intel® QuickPath Interconnect(QPI)鏈路提供在該等第一與第二CPU插座之間,藉以提供該等兩個插座與耦接於該等插座的該等CPU處理器之間的一點對點前側匯流排介面。依此方式,第一CPU插座501A與第二CPU插座501B內的該等兩個CPU處理器在一單一作業系統之下可運作成一個機器。也就是說,作業系統管理由該QPI鏈路所支援的耦接於第一CPU插座501A與第二CPU插座501B的該等CPU多核心處理器。
此外,雙插座架構500A設置有多個圖形處理器(例如積體電路、晶片組等)。特定而言,架構500A包括複數GPU板510A,510B,...,510N,以提供複數GPU處理器及/或晶片組,其中該等GPU處理器耦接於該第一CPU插座與該第二CPU插座。該等GPU板之每一者經由將第一CPU插座501A耦接至一或多個GPU板的第一子集合及將第二CPU插座501B耦接至一或多個GPU板的第二子集合之一通訊匯流排介面來耦接至一相對應CPU插座。在一具體實施例中,該通訊匯流排介面包括通訊橋505A-N,例如在一具體實施例中的一PCI Express(PCIe)橋。在該組態中,一PCIe控制器用於達成在一相對應PCIe橋上一相對應GPU板與該CPU插座之間的通訊。因此,雙插座架構500A包括複數通訊橋,其中每一通訊橋通訊式地 耦接一相對應GPU板至一相對應的第一或第二CPU插座。例如,如圖5A所示,橋505A-D耦接該等GPU板510A-D之每一者到第一CPU插座501A或第二CPU插座501B。
在一具體實施例中,該等複數GPU板係橫跨雙CPU插座架構500A對稱地分佈。例如,相等數目的GPU板連接至每一CPU插座或與其短暫連接。如圖5A所示,雙CPU插座架構500A包括四個GPU板,其耦接至第一CPU插座501A與第二CPU插座501B。更特定而言,在一四GPU板組態中,一第一GPU板501A與一第二GPU板501B之每一者耦接至第一CPU插座501A,而一第三GPU板501C與一第四GPU板510D之每一者耦接至第二CPU插座501B。
該等GPU板510A-D之每一者在一具體實施例中為相同地設置。在其它具體實施例中,GPU板510A-D可有不同地設置,其係在每一GPU板內包括有不同數目的GPU處理器。如所示,該等GPU板510A-D之每一者包括該等複數GPU處理器中兩個或更多者。如圖5A所示,該等GPU板510A-D之每一者包括兩個GPU處理器,雖然在其它具體實施例中使用較多數目的GPU處理器。為了例示的目的,GPU板510A-D係裝設有一Nvidia® GK107圖形處理器晶片。每一GPU板510A-D包括一耦接於一相對應通訊橋的橋分流器。該橋分流器導引來自適當GPU板的通訊。
圖5B例示根據本發明一具體實施例的一種可提供圖形處理的非對稱式GRID系統架構500B。也就是說,該等複數GPU板550A-C橫跨一雙插座架構500B非對稱地分佈。概言之,雙插座GRID系統架構500B與GRID系統架構500A為類似地設置,包括兩個CPU插座560A與560B,其每一者通訊式地耦接至一或多個GPU板。
例如,該非對稱組態包括連接每一CPU插座560A或560B為不相等數目的GPU板。如圖5B所示,雙CPU插座架構500B包括三個GPU板,其耦接至第一CPU插座560A與第二CPU插座560B。更特定而 言,在一種三GPU板組態中,一第一GPU板550A與一第二GPU板550B之每一者耦接至第一CPU插座560A。另一方面,僅有一個GPU板550C耦接至第二CPU插座560B。
該等GPU板550A-C之每一者在一具體實施例中為相同地設置。在其它具體實施例中,GPU板510可有不同地設置,其係在每一GPU板內包括有不同數目的GPU處理器。如所示,該等GPU板550A-C之每一者包括該等複數GPU處理器中兩個或更多者。如圖5B所示,該等GPU板550A-C之每一者包括四個GPU處理器,雖然在其它具體實施例中使用不同數目的GPU處理器。為了例示的目的,GPU板550A-C係裝設有一Nvidia® GK107圖形處理器晶片。
在一具體實施例中,該雙CPU插座架構(例如500A)與該等複數GPU板支援複數虛擬機器(例如經由一基於雲端結構),其每一者包括一或多個CPU核心與一或多個GPU處理器中之部份。在另一具體實施例中,雙插座架構500A設置的方式為一GPU處理器支援雙插座架構500A填充的一虛擬機器之一實例(instantiation)。在另一具體實施例中,複數虛擬化GPU處理器由該等複數實體GPU處理器支援,其中一虛擬化GPU支援一虛擬機器。在該例中,一實體GPU或一實體GPU之部份可支援任何數目的虛擬機器。
在一具體實施例中,該雙CPU插座架構與該等複數GPU板係實作在一單一作業系統之下運作的一假(pseudo)虛擬機器系統之內。也就是說,一軟體層使得可使用一單一作業系統來串流化多個應用,例如遊戲應用。也就是說,該軟體層(例如中介軟體(middleware))實例化一可支援多個終端用戶端的假虛擬機器,其中該假虛擬機器針對一或多個終端使用者運行及/或執行多個應用。
在一具體實施例中,用於提供適當的CPU對GPU比例及硬體資源分配的NUMI楔鎖(pinning)軟體組態描述如下: CPUPinning=["0,1,2,3,4,5,6,7","8,9,10,11,12,13,14,15","8,9,10,11,12,13,14,15","16,17,18,19,20,21,22,23","24,25,26,27,28,29,30,31","24,25,26,27,28,29,30,31"]}
在另一具體實施例中,用於實作適當的CPU對GPU比例的NUMI楔鎖組態描述如下:CPUPinning=["0,1,2,3,4,5,6,7","0,1,2,3,4,5,6,7","8,9,10,11,12,13,14,15","8,9,10,11,12,13,14,15","16,17,18,19,20,21,22,23","16,17,18,19,20,21,22,23","24,25,26,27,28,29,30,31","24,25,26,27,28,29,30,31"]}
圖6例示多個GPU處理板提供遠端顯示器之基於雲端虛擬圖形處理之實作。更特定而言,圖6例示可提供給遠端顯示器基於雲端圖形處理的一附加於網路的GPU裝置620。在一具體實施例中,GPU裝置620提供在一模擬PC環境中的圖形處理,因此GPU裝置620做為一視覺運算裝置(VCA)。
如圖6所示,VCA620包括一或多個GRID系統架構或處理板610。例如,GRID架構610在功能組態上類似於GRID系統架構500A與500B,其分別概略描述於圖5A-B中。特定而言,GRID架構610包括一雙CPU插座615。在一種實施例中,每一CPU插座提供可具有CPU能力的一微處理器與一底板之間的電性連接。在一具體實施例中,一多核心處理器通訊式地耦接至每一個CPU插座。此外,雙插座GRID架構610包括多個GPU板,其包括有一或多個圖形處理器(未示出)來提供耦接至CPU插座615的複數GPU處理器及/或晶片組。也就是說,每一個GPU板經由一通訊匯流排介面耦接至一相對應CPU插座。
目前為止,VCA 620與GPU架構610係實作在線A-A之下,其係要在當實作提供給遠端顯示器的基於雲端圖形處理時將該硬體與該軟體層分開。因此,在線A-A之上,所示之一雲端運算平台630產生與管理複數虛擬機器,其每一者設計成提供高效能圖形處理。雲端運算平台630 提供與圖4B的雲端系統450A-N相同的服務與特徵。在一具體實施例中,於雲端運算平台層630處產生與管理的該等虛擬機器做為PC模擬器,其採用來自末端使用者用戶端裝置(例如薄型用戶端)的指令命令、處理該等指令,然後將該等結果傳回到該薄型用戶端。
雲端運算平台630可採取許多種型式來傳達給用戶端裝置。例如,層640指明該雲端運算平台可呈現為一運算資源叢集。例如,該叢集可採取一資料中心叢集或一虛擬遊戲機器叢集的型式。
當在一提供給遠端伺服器的虛擬圖形處理之一基於雲端系統中執行一應用時的鍵像框偵測
圖7為根據本發明一具體實施例之一種設置用於偵測一鍵像框的系統700之方塊圖。在一具體實施例中,系統700實作在圖4A的圖形系統400A及/或圖4B的架構400B之內,其實作提供給遠端顯示器之基於雲端虛擬圖形處理。一預先選擇的鍵像框(keyframe)之偵測對於在判斷串流化次級視訊(例如廣告)之後何時要切換回到串流化來自該應用的視訊為關鍵。
如圖7所示,系統700包括一處理器701,其設置成初始化一應用的一實例。在一具體實施例中,處理器701為由基於雲端圖形處理系統所支援的一虛擬機器,其部份地提供給遠端顯示器的虛擬圖形顯像與處理。在該虛擬機器內實例化的該應用進行一載入程序,藉以初始化該應用。在一具體實施例中,該載入程序包括當執行該應用時決定該虛擬機器的適當組態設定。該等組態設定可考慮到該虛擬機器的該等資源能力,以及該終端用戶端裝置的該等資源能力。
系統700包括一圖形顯像器705,用於執行圖形顯像來產生複數像框而形成一第一視訊流的基礎。該圖形顯像透過該應用的執行來進行,其中該第一視訊流包含該等複數像框。
在一具體實施例中,系統700選擇性地包括一視訊編碼器/解碼器710,其在傳遞經編碼的視訊流到一遠端顯示器之前將該顯像的視訊 編碼成一壓縮格式。在本具體實施例中,該經編碼視訊像框被用於偵測一鍵像框。
系統700亦包括一應用簽章產生器,其設置成產生關聯於該應用的一預先選擇的經顯像鍵像框之該主簽章,其用於判斷該經執行的應用之一實例(instantiation)何時已經達到該相同鍵像框,其將在以下關於圖8A-B做更為完整地說明。特別的是,該應用簽章藉由自關聯於來自於一主視訊流的該鍵像框的一相對應像框存取一主點陣圖來產生。在一具體實施例中,該主點陣圖使用一雜湊演算法做雜湊,以產生一經雜湊的鍵像框點陣圖,其包含該應用的該應用簽章。
系統700包括一像框緩衝器725,用於依序地接收關聯於該第一視訊流的複數像框。在一具體實施例中,該圖形顯像由該基於雲端圖形顯像系統中該虛擬機器所執行,其中該經顯像視訊的視訊流接著被傳遞到一遠端顯示器。該像框緩衝器包含接收該經顯像視訊像框的一或多個像框緩衝器。例如,一圖形管線可以輸出其顯像的視訊到一相對應像框緩衝器。在一平行系統中,一多管線圖形處理器之每一管線將輸出其顯像的視訊到一相對應像框緩衝器。
系統700包括一比較器730,其設置用於判斷當一像框的一第一點陣圖被載入到一相對應像框緩衝器中時,其是否符合一應用簽章,其中包含關聯於該第一視訊流的一鍵像框之一主控點陣圖的衍生物。
圖8A-B一同例示一種用於執行一應用並決定在該執行中何時要顯像一預定的鍵像框之方法。由於許多原因,所以鍵像框偵測非常重要,其中一個原因包括瞭解何時由該應用的執行所產生的一第一視訊流與提供其它資訊(可能無關於該應用),例如廣告等,之一第二視訊流之間進行切換。
特別是,圖8A例示為根據本發明一具體實施例的一種方法之流程圖800A,其用於在由提供遠端顯示器之虛擬圖形處理的一種雲端運 算平台所支援的一虛擬機器上執行一應用期間偵測一鍵像框。在又另一具體實施例中,流程圖800A例示一種電腦實作方法,其用於在由提供給遠端顯示器虛擬圖形處理的一雲端運算平台所支援的一虛擬機器上執行一應用期間偵測一鍵像框。在另一具體實施例中,流程圖800A實作在一電腦系統內,其中包括一處理器,及耦接於該處理器的記憶體,在其中儲存指令,當由該電腦系統執行時使得該系統執行用於在由提供給遠端顯示器虛擬圖形處理的一雲端運算平台所支援的一虛擬機器上執行一應用期間偵測一鍵像框的方法。在又另一具體實施例中,用於執行如流程圖800A中所概述之方法的指令係儲存在一非暫態性電腦可讀取儲存媒體上,其具有電腦可執行指令用於使得一電腦系統來執行用於在由提供給遠端顯示器虛擬圖形處理的一雲端運算平台所支援的一虛擬機器上執行一應用期間偵測一鍵像框的方法。在具體實施例中,流程圖800A中概述的該方法分別由圖1與2之電腦系統100與用戶端裝置200中一或多個組件來實作,亦可由圖7的系統700實作。
在850,該方法包括初始化一應用的一實例(instantiation)。例如,當一虛擬機器在一終端使用者的要求之下於一基於雲端虛擬圖形處理平台內被實例化時,即實例化一應用(例如一遊戲應用)。也就是說,該終端使用者正在要求在該應用中進行遊戲,且該基於雲端虛擬圖形處理平台產生用於執行該應用的一虛擬機器。該應用的初始化載入該應用在該虛擬機器內,並可包括可以或不可產生一輸出視訊流的任何序列的作業。例如,一些應用將在載入該應用時在一空白或暗化的螢幕上顯示一旋轉沙漏。
在一具體實施例中,該基於雲端虛擬圖形處理平台當該應用在載入時串流化一第二視訊流到該末端使用者。該第二視訊流並非該應用的一部份。例如,該第二視訊流包括額外的資訊,例如廣告、通知等。在一預定時間,該圖形處理平台中斷串流化該第二視訊流,並切換回到由該應用產生的該視訊流。本發明之具體實施例提供一特定與預定的鍵像框之 偵測,其指明何時要切換回到由該應用產生的該視訊流。
在855,該方法包括透過該應用的執行對複數顯像的像框執行圖形顯像。被產生的一第一視訊流包含該等複數顯像像框。圖8B為根據本發明一具體實施例之一資訊流程圖800B,其例示用於偵測一鍵像框的程序。如所示,在任何處理器(包括一虛擬機器的一處理器)內執行應用,,包括傳送指令到一虛擬GPU 415,其先前關於圖4B的虛擬GPU 415A-M已做說明。例如,GPU 415可為虛擬GPU 415A-M中任一者。GPU 415依連續順序輸出顯像的像框,如同在一或多個圖形管線中執行。例如,GPU 415產生像框1-N。
在865,該方法包括判斷被載入到一相對應像框緩衝器中一像框的一第一點陣圖何時符合一應用簽章。如圖8B所示,一著色器(shader)模組執行來自該執行的應用之一顯像像框的該點陣圖與一主點陣圖(其形成應用簽章820)之比較。例如,一旦一顯像像框(例如像框1)由GPU 415產生,且其相對應點陣圖被載入到一相對應像框緩衝器中時,該顯像像框與其關聯的點陣圖被輸入到著色器830A,並相較於該應用所特定的一應用簽章820,且亦輸入到著色器830A中。著色器830A執行應用簽章820與被載入到像框緩衝器1中該相關聯點陣圖資訊的比較。
初步地,在一具體實施例中該應用簽章由該應用的一主複本(master copy)所產生。特別是在一具體實施例中,該應用簽章包含關聯於該第一視訊流的一鍵像框之一主點陣圖的衍生物。也就是說,一主應用被執行,並包括被顯像的複數主像框。該等顯像像框之一由一主視訊流中選出做為該鍵像框。例如,該鍵像框可為一特定場景,或一特定標誌,其在該應用的任何實例化之執行、初始化及/或載入當中固定時間被顯像。然後被載入到用於顯示的一像框緩衝器中該鍵像框的主點陣圖被操縱來形成該主鍵像框的一衍生物,並形成該應用簽章。例如,該應用簽章的產生包括存取一主點陣圖,並對該主點陣圖執行一雜湊演算法來產生一雜湊的鍵像框 點陣圖。現在該雜湊的鍵像框點陣圖包含該應用的應用簽章820。在該應用的任何後續實例化中,利用適當地操縱每一個經顯像的像框(例如執行一雜湊),本發明之具體實施例能夠判斷一經顯像的像框(有修改或無修改)何時可符合該鍵像框或該鍵像框的一衍生物。
當判斷該顯像像框與該主鍵像框之間可符合時,該方法包括存取被載入到該相對應像框緩衝器中該像框的一第一點陣圖。例如此第一點陣圖於在一相對應虛擬機器中被實例化的該應用之執行期間被產生。不論對於該主鍵像框或主鍵像框點陣圖執行什麼操縱亦對該第一點陣圖執行。例如,如果該主鍵像框點陣圖依序雜湊來產生該應用簽章,則該方法包括對該第一點陣圖執行一雜湊演算法來產生一雜湊的第一點陣圖。當然,若非執行一雜湊演算法,在其它具體實施例中可執行其它操縱。
繼續該主鍵像框點陣圖被雜湊來產生一應用簽章的示例,該方法包括比較該經雜湊的鍵像框點陣圖(例如應用簽章)與該經雜湊的第一點陣圖來判斷是否符合。在一具體實施例中,在該雜湊演算法中有一公差(tolerance),其中該鍵像框的該第一點陣圖與該主點陣圖可在一公差內。只要它們在該公差內(例如百分之95符合),則由該主點陣圖與該第一點陣圖所產生的該等後續雜湊即符合。
該方法包括判斷所執行的該應用何時到達該鍵像框。此係發生在當其判斷出該雜湊的鍵像框與該雜湊的第一點陣圖符合時,如前所述。在一具體實施例中,判斷何時該應用到達該鍵像框係用於在視訊流之間切換。在該例中,當判斷符合時,該符合的一通知即向上傳遞到負責傳遞經編碼的視訊到該用戶端裝置的該軟體堆疊,所以可完成一切換。例如,當該應用正在載入時,該方法包括傳送一第二視訊流到該要求的終端使用者的一用戶端裝置做顯示。該第二視訊流包括無關於該應用及/或獨立由該應用產生的資訊。在一示例中,該第二視訊流包括一廣告。
因此,當該執行的應用到達有一顯像像框符合該鍵像框時, 此指明被實例化的該應用亦已經到達該鍵像框。依此方式,該方法包括在偵測到該鍵像框時切換到該第一視訊流,其中該第一視訊流為由該應用產生的該等複數顯像的視訊(編碼或未編碼)。同時,該方法包括傳送該第一視訊流到該用戶端裝置,並中止傳遞該第二視訊流(例如廣告)。在一具體實施例中,該第一視訊流係開始於符合該鍵像框的該像框來傳遞到該用戶端裝置做顯示。在另一具體實施例中,該第一視訊流係以符合該鍵像框的一像框之後的一像框開始來傳遞到該用戶端裝置做顯示。
虛擬機器的快速仿製
圖9為根據本發明一具體實施例之一種用於使用一樣板虛擬機器產生新虛擬機器並利用使用者特定資料客製化一虛擬機器的每一實例的資源產生系統900之方塊圖。系統900可實作在圖4B的雲端架構400B內,並用於產生新的虛擬機器。在一具體實施例中,資源產生系統900設置在GM伺服器461A的VM主控管理員462之內。
如所示,系統900包括一快速仿製模組910,其設置來產生一虛擬機器的一新實例(instantiation)。特別是,快速仿製模組910由一樣板虛擬機器產生一新虛擬機器。該新虛擬機器透過更新來修改該樣板來客製化給一特定使用者。依此方式,除了儲存該客製化虛擬機器的整個影像之外,僅需要儲存顧客給該要求的使用者之該等更新。然後該等更新用於修改該樣板來產生被客製化給該終端使用者的一虛擬機器的一新實例。
系統900亦包括一應用載入器920。在一具體實施例中,存取提供虛擬圖形處理給遠端伺服器之基於雲端服務的一終端使用者有興趣於執行一應用。該虛擬機器被實例化藉以執行該應用。例如,可產生一基於雲端圖形處理平台來提供一基於雲端遊戲經驗,其中遊戲應用針對該基於雲端平台被儲存與執行。終端使用者基本上將要求來玩一特定遊戲應用,且一虛擬機器被實例化來支援要玩該遊戲應用的該要求。因此,回應於由一終端使用者要求來玩一遊戲應用,虛擬機器被實例化,且該遊戲應用由該應用載入器所載入來在該虛擬機器內執行。
系統900亦包括獨立與持續性儲存器930。特別是,該等更新及/或關於該終端使用者的資訊被儲存在儲存器930中。然後當產生被客製化給一特定終端使用者的一虛擬機器之一實例時,使用該資訊來客製化一樣板虛擬機器。例如,該資訊可包括使用者個人資訊(profile)、及遊戲儲存檔案或應用儲存檔案,其中該應用儲存檔案提供關於該使用者與該特定應用之該等互動的資訊(例如遊戲狀態等)。因此,利用儲存該等更新及/或使用者相關的資訊,特定於一使用者的一虛擬機器與應用之一實例或影像不需要被存留,且該虛擬機器的該實例可消除。此提供額外的好處,因為一虛擬機器的每一個新實例開始為沒有程式錯誤與病毒的一原始樣板虛擬機器,且僅需要利用關於一要求的終端使用者的資訊來更新(例如更新及/或使用者個人資訊)。
系統900亦包括一供給/分配管理員940。在一具體實施例中,管理員940執行與圖4B的供給管理員470類似的功能。特定而言,供給/分配管理員940設置成分配資源給一新實例化的虛擬機器。在一具體實施例中,供給/分配管理員940包括一資源調節器945,其設置來降低及/或調節在初始化時被原始分配給該虛擬機器的資源數量,藉以降低既有與操作中虛擬機器之負面影響。在初始化之後,資源調整模組947設置成增加該虛擬機器內該等資源,直到可滿足資源的原始分配。
圖10A為根據本發明一具體實施例之一種用於提供給遠端顯示器之基於雲端虛擬化圖形處理之一虛擬機器的一新實例之資源產生方法之流程圖1000A。在又另一具體實施例中,流程圖1000A例示一種用於提供給遠端顯示器之基於雲端虛擬化圖形處理之一虛擬機器的一新實例之資源產生的電腦實作方法。在另一具體實施例中,流程圖1000A實作在一電腦系統內,其中包括一處理器,及耦接於該處理器的記憶體,在其中儲存有指令,當由該電腦系統執行時使得該系統執行用於提供給遠端顯示器之基於雲端虛擬化圖形處理之一虛擬機器的一新實例之資源產生方法。在 又另一具體實施例中,用於執行如流程圖1000A中所概述之方法的指令係儲存在一非暫態性電腦可讀取儲存媒體上,其具有電腦可執行指令用於使得一電腦系統執行用於提供給遠端顯示器之基於雲端虛擬化圖形處理之一虛擬機器的一新實例之資源產生方法。在具體實施例中,流程圖1000A中概述的該方法分別由圖1與2之電腦系統100與用戶端裝置200中一或多個組件來實作,亦可由圖9的資源產生系統900實作。
在1010,該方法包括產生一樣板虛擬機器。該樣板係用於仿製額外的虛擬機器。在1015,該方法包括藉由仿製該樣板虛擬機器來針對一要求的終端使用者產生一虛擬機器的一實例。特別是,該仿製作業在關於一終端使用者一虛擬機器的一客製化實例中可有效率係在於僅需要儲存對該樣板之修改,並非該虛擬機器的整個影像。然後使用該等更新資訊來修改該樣板以產生被客製化給該終端使用者的該虛擬機器的一實例。在一具體實施例中,該更新資訊包括使用者個人資訊與應用儲存檔案資料,如前所述。例如在一遊戲應用中,該「儲存遊戲」檔案資料包括關於一玩家在由該遊戲應用執行的該遊戲內之進度的資訊。
在一具體實施例中,該虛擬機器針對該要求的終端使用者在一基於雲端圖形處理系統中被初始化。例如,該虛擬機器可在圖4B的架構400B內被實例化。再者,在提供給遠端顯示器之虛擬圖形處理的一基於雲端遊戲平台中,該樣板虛擬機器包含複數終端使用者之每一者可使用的複數預先選擇的遊戲應用。也就是說,該樣板已經包含每一遊戲應用的完整複本。依此方式,該使用者僅需要存取該平台,並要求一被支援的遊戲應用,且經由一相對應虛擬機器開始玩該遊戲應用。
在1020,該方法包括載入由該虛擬機器執行的一應用。例如,該終端使用者可存取該平台來使用一特定應用,例如視訊產生軟體。在該遊戲環境中,該終端使用者基本上可存取該基於雲端平台來玩一遊戲應用。因此,在該虛擬機器的實例化之後,由該終端使用者所要求的該特 定應用被載入到該虛擬機器上,然後被執行。
在1025,該方法包括存取關聯於該終端使用者的第一資訊。該第一資訊用於客製化該虛擬機器與該遊戲應用的該實例化如同在該虛擬機器內執行。在一具體實施例中,該第一資訊用於修改該樣板虛擬機器來針對該終端使用者將其客製化。例如,如前所述,該第一資訊包括「遊戲儲存」資訊及/或使用者個人資訊。
在1030,該方法包括載入該第一資訊在該應用的一實例中。例如,關聯於該應用的「遊戲儲存」資訊被存取,並用於將該使用者帶入到該應用的一實例之他或她的最新更新的版本。在一遊戲環境中,該應用針對該終端使用者或關聯於該終端使用者的該角色玩家而被更新成最後合格的位置。
自一樣板來產生一虛擬機器可確保該虛擬機器的新實例係來自於一原始來源。因此,只要沒有病毒已經進入到該使用者個人資訊及/或該更新資訊,並無病毒會駐在於一虛擬機器的任何新實例之內。依此方式,當該使用者會期結束時,虛擬機器不會存留。特別是,該方法包括接收一指令來終止該虛擬機器的該實例。此時,特定於並關聯於該終端使用者的資訊被更新(例如一「儲存遊戲」檔案被更新),並儲存在獨立於該虛擬機器的一儲存系統中。此即為必要,因為該虛擬機器的該實例將被終止。然後特定於並關聯於該終端使用者的該資訊在下一次一虛擬機器被該終端使用者要求時即被使用。
圖10B為根據本發明一具體實施例之一種用於當產生一新虛擬機器時調節(throttling)資源分配來降低其對於既存虛擬機器之該等作業之影響的方法之流程圖1000B。特別的是,該虛擬機器之產生係包括該資源的分配可以提供目前正在執行應用的既存虛擬機器上一顯著的負載。該負載會影響正在進行之應用的執行,並會負面地降低那些終端使用者的整體遊戲經驗。因此,流程圖1000B提供一種當針對一終端使用者實例化一 虛擬機器時用於降低對既存虛擬機器之作業的影響之方法。
在1050,該方法包括決定該虛擬機器之該實例的複數資源之原始分配。也就是說,該虛擬機器包含複數資源,其每一者原始被指定一原始分配。例如,資源可包括CPU處理器核心、記憶體等。為了例示,一虛擬機器可原始分配八個GPU處理器核心。
在1055,該方法包括降低該等複數資源的該原始分配。在一具體實施例中,該降低使得該經降低的分配小於該原始分配的百分之二十五。在另一具體實施例中,該降低係針對該等不同資源之每一者來執行,而在一種實施例中,該降低係橫跨所有該等不同資源來同等地執行。也就是說,該等資源之每一者在被降低一相對應量大小於一相對應資源的該原始分配之百分之二十五。在1060,該方法包括初始化使用該等複數資源的該經降低的分配之該虛擬機器。
在該虛擬機器被實例化之後,必須執行額外的資源分配來使得該虛擬機器達到其想要的能力。因此,在1065,該方法包括針對該等複數資源的每一者分配額外的資源。該等資源之分配使得針對該等複數資源做出額外的資源分配即使得該資源分配到達該原始分配。
視窗管理來降低在一前視窗上顯示之一桌面作業系統之暴露
圖11為根據本發明一具體實施例之一種系統1100的方塊圖,其能夠為了最小化在該遠端顯示器的一前視窗(front window)上一桌面作業系統之暴露的目的來執行一遠端顯示器上的視窗管理。系統1100可實作在圖4B的雲端架構400B內,並用於監視相對應虛擬機器的輸出視訊,來確保由一相對應終端使用者所要求的一應用被顯示在一顯示器的一前視窗上,且一底層作業系統的一桌面之顯示及/或訊息被顯像在一或多個後視窗上。在一具體實施例中,具有視窗管理的系統1100被設置在一虛擬機器的一實例之一遊戲代理456A內。
如圖11所示,系統1100包括一基於雲端圖形處理系統1110,其可提供給遠端顯示器之虛擬圖形處理。更特定而言,系統1110能夠經由相對應的終端機(例如薄型用戶端等)設置複數終端使用者的複數虛擬機器。 例如,一虛擬機器的一實例包括一作業系統,用於在該虛擬機器可使用及被指定的該等資源上的應用指令。在一具體實施例中,該等虛擬機器之每一者運作在一Windows®作業系統上,雖然它們可被設置並提供做為遊戲平台。
系統1100包括一虛擬機器1120,其經由該基於雲端圖形處理系統被實例化(instantiate)或實作(inplement)。該虛擬機器執行基本上被一終端使用者選擇來做互動的一應用。也就是說,該終端使用者利用該基於雲端圖形處理系統開始一遊戲會期,其意圖係要經由一虛擬機器的一相對應實例來玩一基於雲端遊戲應用。當執行該應用時該虛擬機器產生包含經顯像的影像來顯示之一視訊流。該經顯像視訊最終被編碼與串流化到一遠端顯示器來由一或多個終端使用者觀看。
系統1100包括一應用管理模組1130,其用於確保正在一遠端顯示器之一前視窗中顯示的資訊係在關於正在被執行該應用之一應用內容之內。特定而言,一監視器1140監視前緩衝器(front buffer)來偵測儲存在該前緩衝器中的視訊資訊何時超出該應用內容之外。在該前緩衝器取得或讀取的資訊被掃描來進行立即顯示。
當包含在該前緩衝器內的該視訊資訊超出該應用內容之外時,一緩和組1150設置成採取動作來緩和正在被顯示之該視訊資訊的效應。例如,超出該應用內容之外的該視訊資訊可為一作業系統訊息或桌面,其係由一終端使用者啟始(例如輸入一命令序列,像是ALT-ENTER),或直接經由該作業系統的運作。
圖12為根據本發明一具體實施例之一種方法的流程圖1200,其用於為了最小化在該遠端顯示器的一前視窗上一桌面作業系統之暴露(exposure)的目的來執行一遠端顯示器上的視窗管理。在又另一具體實施例中,流程圖1200例示一種電腦實作方法,用於為了最小化該遠端顯示器的一前視窗上一桌面作業系統之暴露的目的來執行在一遠端顯示器上的視窗 管理。在另一具體實施例中,流程圖1200實作在一電腦系統內,其中包括一處理器,及耦接於該處理器的記憶體,在其中儲存指令,當由該電腦系統執行時使得該系統執行一用於為了最小化該遠端顯示器的一前視窗上一桌面作業系統之暴露的目的來執行在一遠端顯示器上的視窗管理之方法。在又另一具體實施例中,用於執行如流程圖1200中所概述之方法的指令係儲存在一非暫態性電腦可讀取儲存媒體上,其具有電腦可執行指令用於使得一電腦系統來執行一用於為了最小化該遠端顯示器的一前視窗上一桌面作業系統之暴露的目的來執行在一遠端顯示器上的視窗管理之方法。在具體實施例中,流程圖1200中概述的該方法分別由圖1與2之電腦系統100與用戶端裝置200中一或多個組件來實作,亦可由圖11中能夠視窗管理的系統1100來實作。
在1210,該方法包括在經由一基於雲端圖形處理系統實作的一虛擬機器中執行一應用。例如,該基於雲端系統經由圖4B的架構400B實作,其提供複數虛擬機器給複數終端使用者,其中該等虛擬機器之每一者為在一作業系統(例如Windows®作業系統)之下完整可運作的運算系統功能。在一種實施例中,該基於雲端圖形處理系統為一遊戲平台,其中終端使用者進入來玩遊戲應用,其係經由一相對應虛擬機器被儲存與實例化在該遊戲平台之內。
在由該虛擬機器執行該應用期間,包含經顯像的影像之一視訊流被產生以進行顯示。在1220,該方法包括導引該應用的該視訊流到該相對應虛擬機器的一前緩衝器,其中來自該前緩衝器的資訊被提取,並被掃描來呈現在一遠端顯示器上。藉由導引該視訊流到該前緩衝器,此可確保該視訊流被顯示在該遠端顯示器的一前視窗上。此對於做為例如一遊戲平台的該基於雲端圖形處理系統很重要。藉由導引該遊戲應用到該前視窗或最前方視窗,即可增進該終端使用者的遊戲經驗,因為該使用者可完整地沉浸在一遊戲環境內-前方與中心。再者,該終端使用者不會面對有 該底層作業系統之任何暴露(例如桌面、錯誤訊息等)。在另一具體實施例中,該前視窗被最大化,所以該視訊流被顯示在該遠端顯示器的一完整螢幕上。在一種實施例中,將該視訊流導引到該前緩衝器與最大化該前視窗係透過執行應用程式化介面(API,“Application programming interface”)呼叫來完成。
在1230,該方法包括監視該前緩衝器來偵測儲存在該前緩衝器中的視訊資訊何時超出該應用內容之外。也就是說,除了關於在該虛擬機器上運行的該應用之視訊流的資訊之外,該前緩衝器載入有超出該應用內容之外的其它視訊資訊。例如,該視訊資訊可為作業系統所特定,並包括對於使用者啟始的作業系統命令序列之回應。例如,一些命令序列的例示包括ALT-TAB,其將該作業系統桌面帶到該前視窗;或ALT-ENTER,其最小化該前視窗;或CTL-ALT-DELETE,其重新開機該系統。這些命令之每一者會提供一含有不在該應用內容內之資訊的視窗,並可包括對話或傳訊、或次級視訊(例如桌面)。
在另一具體實施例中,該視訊資訊包括一凍結螢幕(frozen screen)。也就是說,該應用可能已經毀損,且不會傳送該視訊流到該遠端顯示器。該方法包括偵測何時該遊戲應用已經毀損。此係藉由偵測該視訊流何時已經結束來完成。在該例中,該遠端顯示器可被鎖定在一影像上做顯示。再次地,此並非一想要的遊戲經驗,且本發明之具體實施例能夠偵測並採取動作來緩和此負面的遊戲經驗。
在1240,該方法包括採取一動作來緩和正在顯示的係超出該應用內容之外的該視訊資訊之效應。在一具體實施例中,該緩和動作由其最小化一作業系統桌面、訊息或由該前視窗的任何其它通訊的暴露之能力來選擇。
在一具體實施例中,該視訊資訊為被強制送到到該前視窗的一作業系統訊息或視訊。一緩和動作包括執行一API呼叫來強制該視訊流 的顯像回到該前緩衝器,因此來自該視訊流的顯像影像再次地儲存在該前緩衝器中預備好做顯示。在一具體實施例中,該緩和動作包括忽略超出該應用內容之外的該視訊資訊,並停止傳送該視訊資訊到該顯示器。
在另一具體實施例中,做為最後的憑藉,該虛擬機器會期被終止。例如,該應用已經毀損,且不能夠在該虛擬機器實例內被重新開機。因此,該緩和動作包括終止實作該虛擬機器的一使用者會期,並重新初始化另一虛擬機器來執行該遊戲應用的另一實例。
用於在提供給遠端顯示器之基於雲端虛擬圖形處理的一遊戲平台中動態地分配資訊給虛擬機器之方法與系統
圖13A-O例示根據本發明一具體實施例中提供給遠端顯示器之基於雲端虛擬圖形處理的一種遊戲平台之實作。該遊戲平台提供給已連接的終端使用者一完整的遊戲經驗。例如,該遊戲平台透過一相對應虛擬機器提供必要的CPU與GPU處理效能,並供應該終端使用者想要玩的一經要求的遊戲應用。基本上,終端使用者經由使用者會期連接於該遊戲平台藉此可玩經支援的遊戲應用。在圖13A-O中提供的該等例示提供在圖4B之架構400B中第一次例示的其它細節與特徵。雖然圖13A-O提到遊戲應用,可瞭解到該基於雲端圖形處理平台設置成支援任何種類的應用。
圖13A所示為根據本發明一具體實施例的一種提供給終端使用者基於雲端圖形處理之系統1300A的方塊圖,其中一供給管理員實例化在遊戲會期中的終端使用者之遊戲座位或虛擬機器。供給管理員1303與用戶端裝置1302合作來實例化關於一經要求的應用之一遊戲座位1301。供給管理員1303與Ops服務層1347通訊來判斷針對該被要求的應用需要那一個遊戲代理的效能層級。一旦該虛擬機器被實例化具有最佳化的資源數量來玩該遊戲應用,供給管理員1303透過遊戲代理1305與經實例化的遊 戲座位或虛擬機器1301進行通訊。遊戲代理1305實例化該被要求的應用。串流器伺服器1306與用戶端側1302上串流組件1307進行通訊,以串流化在遊戲座位1301上藉由執行該遊戲應用所產生的視訊資料到用戶端裝置1302。
圖13B為根據本發明一具體實施例的一網路圖1300B,其例示基於雲端圖形處理系統400B的該等組件之間的該等網路連接。
圖13C為根據本發明一具體實施例中例示經由一供給管理員1303設定一終端用戶端1302與一遊戲座位(VM)1301之間一標準遊戲會期的工作流程圖1300C。如所示,在步驟1,存取一遊戲清單。供給管理員1303(例如Bifrost用戶端)自一會期管理員得到該清單,其依此可由一遊戲資料鋪得到該清單。在步驟2,用戶端裝置1302做出一玩遊戲的要求。在步驟3,該要求被傳遞到供給管理員1303,其回應於該要求協調一遊戲座位1301的該實例。特別是,在步驟4,供給管理員1303與服務登錄1304進行通訊來得到一可使用的虛擬機器。該供給管理員符合被指定具有該被要求的遊戲應用所需要的建議資源的該虛擬機器的該資源能力,以提供該終端使用者儘可能最佳的遊戲經驗。服務登錄1304管理該等複數虛擬機器,並維持該等虛擬機器每一者之狀態。因此,服務登錄1304瞭解那些虛擬機器為啟用或實例化,而那些虛擬機器為閒置並預備好被指定。
在步驟5,供給管理員1303經由一遊戲代理1305與被指定的遊戲座位1301進行通訊。在步驟6,執行交握(handshaking)來實例化遊戲座位1301。在步驟7,遊戲座位1301安裝該遊戲應用。在步驟8,該使用者會期為啟用。在步驟9,該遊戲座位經由供給管理員1303開啟要串流化視訊由該遊戲應用到終端用戶端1302所需要的該等連接埠。在步驟11,在遊戲座位1301處的Mjolnir伺服器1306與終端用戶端1302處的Mjolnir用戶端1307之間建立一通訊會期。該等Mjolnir伺服器提供資訊的編碼與封包化。例如,Mjolnir伺服器1306設置成透過一遊戲應用的執行來編碼與 封包化由遊戲座位(VM)1301產生的圖形視訊資料。在步驟12,遊戲座位1301開始該遊戲應用的執行。在步驟13,Mjolnir伺服器1306開始串流化該視訊自該遊戲應用到用戶端裝置1303處的Mjolnir用戶端1307。
圖13D例示根據本發明一具體實施例中用於分配資源(例如CPU核心、虛擬GPU、GPU、記憶體等)給一遊戲座位1301的工作流程圖1300D。圖13D中所概述的該程序開始於產生一GRID會期ID,及具有該ID的一遊戲應用的一要求。用戶端裝置1303與供給管理員1303通訊。在步驟2,在供給管理員1303中會期處理器執行緒1310檢查來確定該會期ID係在該啟用會期鋪中(如果存在即恢復);驗證該遊戲應用、檢查機器類別、基於遊戲座位1301的該機器類別加入要求到該REDIS會期鋪與FIFO佇列1313。針對虛擬機器1312的每一機器類別會有一FIFO佇列。在步驟3,在遊戲會期供給管理員(GSPM)1311中該等分配執行緒之一被喚醒。在步驟4,會期處理器執行緒1310傳回該會期物件到用戶端裝置1303。在步驟5,該GSPM執行緒喚醒;得到在該等FIFO佇列上一共通(GLOBAL)鎖(如果有發現即檢查一交易鎖並清除);及自每一佇列讀取該第一項目。在步驟6,GSPM 1311藉由自服務登錄1304(透過SIM)移除該第一相關自由/佔用座位來分配最早要求的會期。在步驟7,該經分配的會期自FIFO佇列1313移動到In-Allocation清單,並釋放共通鎖。
在圖13D,在步驟8,GSPM 1311經由該VMHost API:seatAllocationMessage與VM主控管理員確認該座位為OK。特別是,在a),該GSPM要求該VM主控管理員1314;在b)VM主控管理員1314在內部確認該座位的可使用性(確認並無發出柵欄(fence)要求);在c)VM主控管理員1314確認該座位的健康性;在d)VM主控管理員1314將遊戲座位1301置於服務登錄1304上該分配的桶位中(經由其本身的SIM);及,在e)VM主控管理員1314回覆該SPM每件事都OK。
在圖13D中,在步驟9,GSPM 1311針對此遊戲座位1301 分配該連接部具有Reverse Proxy。在步驟10,GSPM 1311與在經分配的遊戲座位1301上遊戲代理1305做交握,並傳送遊戲資料資訊、連接埠等。在步驟11,遊戲代理1305回報給在該遊戲代理收聽器(GA-Listener)執行緒上的供給管理員1303該遊戲座位已預備好用戶端連接。
圖13E例示根據本發明一具體實施例中用於釋放一遊戲座位1301之工作流程圖1300E。在步驟1,用戶端裝置1303或遊戲代理1305提供該遊戲應用已結束的通知。在步驟2,在供給管理員1303中會期處理器執行緒1310或GA收聽器執行緒進行一API呼叫來釋放該遊戲座位(例如呼叫「GameSeatProvisionMgr API:release」,其經由另一個API呼叫(例如VMHost API:SeatReleaseMessage)來呼叫VM主控管理員1314)。在步驟3,VM主控管理員1314回收該虛擬機器。在步驟4,一旦該虛擬機器恢復,VM主控管理員1314將該虛擬機器重新放置回到服務登錄1304上該佔用/自由桶位中。
圖13F例示根據本發明一具體實施例中用於在一遊戲會期期間處理一無法恢復錯誤之工作流程圖1300F。在步驟1,遊戲代理1305提供通知一無法恢復錯誤,或已經發生一遊戲座位1301 BSOD,或發生某個其它系列錯誤(例如供給管理員在遊戲代理通訊上已到期等)。在步驟2,供給管理員1303經由一API呼叫(例如「GameSeatProvisionMgr API:release+error」)來呼叫該SPM或遊戲座位供給管理員1311。在步驟3,SPM 1311經由一API呼叫(例如「VMHost API:fence+release」)呼叫VM主控管理員1314。在步驟4,VM主控管理員1314標示遊戲座位1301為有柵欄,並執行一重置到其它適當的動作。在步驟5,VM主控管理員1314將遊戲座位1301放回到服務登錄1304上該適當的桶位中(例如錯誤/有柵欄)。
圖13G例示根據本發明一具體實施例中用於分配一遊戲座位1301之工作流程圖1300G。在步驟1,用戶端裝置1303自該遊戲平台或該基於雲端圖形處理系統要求一遊戲應用。在步驟2,供給管理員1303經 由一API呼叫(例如「GameSeatProvisionMgr API:Allocate」)來呼叫該SPM 1311。在步驟3,SPM 1311使用該Service Registry Schema經由該服務登錄介面模組與該SIM API呼叫服務登錄1304。在步驟4,服務登錄1304傳回一「NO」佔用遊戲座位,其指明無可使用的遊戲座位。在步驟5,SPM 1311經由一API呼叫(例如「VMHost API:SeatAllocatoinMessage」)與VM主控管理員1314確認該座位為OK:其中在a)VM主控管理員1314確認該座位的可使用性;在b)VM主控管理員1314將該座位放置在服務登錄1304上該分配的桶位中(經由其本身的SIM);及在c)VM主控管理員1314回覆給SPM 1311每件事都OK。在步驟6,供給管理員1303與在被分配的遊戲座位1301上遊戲代理1305做交握。
圖13H例示根據本發明一具體實施例中用於用戶端裝置1303與供給管理員1303之間的通訊之工作流程圖1300H。在步驟1,用戶端裝置1303使用超文件傳輸協定(HTTP)做出與供給管理員1303的一初始連接。供給管理員1303回應並執行分配等。在步驟2,用戶端裝置1303感測到說「我的狀態為何?」之一使用者資料塊協定(UDP)訊息。此係定期地執行。在步驟3,供給管理員1303傳送具有會期狀態的一UDP回應。在步驟4,如果某個秒數(例如Y)之內並無來自供給管理員1303的UDP回應,則用戶端裝置1303將執行一HTTP呼叫來取得一會期狀態。
圖13I例示根據本發明一具體實施例中用於一會期重新連接之工作流程圖1300I。如所示,在該用戶端裝置與一既存遊戲座位之間有成功連接時,該Mjolnir用戶端在該用戶端裝置上重新啟動。
圖13J例示一遊戲資料鋪1320之該等特徵圖1300J。遊戲資料鋪1320提供存取到在一基於雲端圖形處理系統中該等虛擬機器之複數遊戲應用(如前所述)。特別是,資料鋪1320與用戶端裝置及該等虛擬機器的遊戲代理做互動。資料鋪1320傳送有支援的遊戲應用之一遊戲清單給該等用戶端裝置之每一者。同時,每一區域/DC能夠維持其本身的遊戲清單(包 括遊戲柵欄)。每一操作者/MSO能夠維持其本身的遊戲清單(包括遊戲柵欄)。而且用戶端裝置能夠自提供該等遊戲會期的該雲端遊戲平台載入該遊戲清單。
如所示,遊戲資料鋪1320提供該等遊戲應用之每一者的遊戲資料(game profile)。例如,該遊戲資料包括標題資料1322;標題資產1321;過濾器資料1323;啟動資料1324;與柵欄資料。遊戲標題資料1322(如圖13K所示)包括一遊戲ID(唯一);建構ID;出版日期(到該雲端);螢幕快照(例如玩家1)與視訊(URL鏈結)(例如出現為檔案名稱);單一玩家/多玩家能力;支援語言;遊戲名稱,發行者名稱、類型、遊戲說明、遊戲發表資料、發行者的URL;支援或額外促銷的URL(例如GeForce.com URL);封面藝術或鏈結到封面藝術(例如出現為檔案名稱);評等/年齡需求;購買參數(例如鏈結到購買路徑);及使用者輸入閒置警告限制(例如以秒數計)。
此外,標題資產(title asset)1321包括指向到該等標題資料URL的二元化/可下載的資產。過濾器資料1323包括允許的區域、所支援的硬體組態清單及VM影像,來包括該OS/驅動器及相容的輸入裝置。啟動資料1324包括安裝腳本、啟動腳本、鍵像框種類與開始像框、開始時間、遊戲程序名稱、與輔助程序、POPS per hw、遊戲設定腳本/執行、遊戲碟片I/O資料(profile)、使用者輸入閒置最高限制(以秒數計)。該柵欄資料包括遊戲on/off(區域寬度或使用者/帳號層級),及玩遊戲時間(playtime)限制(例如共通(glonal))。
圖13K例示一遊戲資料資料流程圖1300K。在步驟1,該用戶端裝置(經由一使用者介面到一終端使用者)要求一遊戲清單。在步驟2,該雲端用戶端SDK自一或多個供給管理員1302得到該遊戲清單。在步驟3,供給管理員1303藉由檢查經快取的標題與過濾器資料(例如實作成資料夾)來得到無柵欄的遊戲清單,如前所述。該遊戲資料資料結構包括下列:「遊戲/發行」指明可以玩那些遊戲應用;「遊戲/有柵欄」指明無法使用那些遊 戲應用;及「遊戲/分級」指明那些遊戲應用目前有分級。在步驟4,該供給管理員傳回經過濾的標題資料到用戶端裝置1303。在步驟5,在用戶端裝置1303上的該UI載入該等HTTP檔案伺服器外的該等標題資產。在步驟6,該遊戲要求自用戶端裝置1303傳送到供給管理員1303。在步驟7,供給管理員1303檢查可使用的遊戲座位之過濾器資料,並由遊戲座位登錄1304分配。在步驟8,供給管理員1303傳送該啟動資料到所得到遊戲座位1301上的遊戲代理1305。在步驟9,執行一正常的遊戲啟動與會期初始化。
圖13L例示根據本發明一具體實施例中於會期開始時遊戲應用與應用之動態解決的圖示1300L。
圖13M例示根據本發明一具體實施例中利用一基於雲端虛擬圖形處理系統之每一層的該等組件之方塊圖1300M。例如,雲端基礎設施1330包含一VM控制器、實體節點、虛擬化、NAS、網路、監視與工具、服務品質(QoS)、支援等。軟體堆疊層1331實作該基於雲端圖形處理服務(例如遊戲平台),並包括一遊戲管理員1332,其執行串流化、編碼、QoS管理、儲存與載入、DRM/串列鍵管理。軟體堆疊層1331包括供給管理員11302,其包括一分派器、使用者佇列、使用者驗證及遊戲登記。遊戲用戶端層1335包括多種功能組件,包括一proto用戶端、一GFE、一或多個網路內容的鏈結(例如GeForce.com)、一平板原始用戶端與使用者管理。同時,一資料庫1334儲存用於產生對一使用者客製化的虛擬機器之持續資料。例如,資料庫1334儲存使用者個人資訊及遊戲儲存資訊,如前所述。
圖13N例示根據本發明一具體實施例之一遊戲管理員1340與一供給管理員1303之方塊圖。如所示,一遊戲管理員1340的一實例提供在一虛擬機器或遊戲座位1301內。遊戲管理員1340管理在遊戲座位1301內啟動的該遊戲應用,並包括一遊戲代理1305。遊戲代理1305包括下列:一啟動器,其執行應用的啟動、應用的終止、清除、及應用的監視;一遊戲狀態管理員,其執行儲存與載入作業;及一序列鍵管理員。遊戲管理員 1340亦包括一串流伺服器1341,其管理該等輸出的串流。串流伺服器1341另包括一QoS管理員、一視訊串流器、及音訊串流器、及使用者動作串流器。
在由提供一伺服器雲端461A-N的複數伺服器所服務的一基於雲端虛擬機器之網路中有一供給管理員的一實例。該供給管理員包括一使用者驗證模組、一遊戲登記模組、一實體實例啟動器、一實例集用場、一遊戲代理介面及使用者佇列。
圖13O為用於提供給遠端顯示器之基於雲端圖形處理之GPU虛擬化的多種實作之方塊圖。在類型1,有GPU的實體虛擬化。也就是說,每一虛擬機器(例如VM1與VM2)透過一虛擬化介面(例如XEN虛擬機器介面)被指定給一實體GPU,例如一晶片組。在類型2,有GPU的虛擬化。也就是說,每一虛擬機器(例如VM1與VM2)經由一虛擬化介面被指定給一虛擬GPU。在類型3,再次有GPU的虛擬化,但係經由一假(pseudo)虛擬機器。也就是說,一虛擬機器本身被分開成一或多個子虛擬機器(例如VBox)。該等子虛擬機器之每一者被指定給虛擬GPU。
圖14A-H例示根據本發明之具體實施例一種在一基於雲端遊戲/應用環境或遊戲平台中動態地分配與指定遊戲座位的系統與方法。再次地,該遊戲平台提供給已連接的終端使用者一完整的遊戲經驗。例如,該遊戲平台透過一相對應虛擬機器提供必要的CPU與GPU處理效能,並供應該終端使用者想要玩的一經要求的遊戲應用。基本上,終端使用者經由使用者會期連接於該遊戲平台藉此可玩經支援的遊戲應用。在圖14A-H中提供的該等例示提供在圖4B之架構400B中第一次例示與在圖13A-O中進一步例示的其它細節與特徵。雖然圖14A-H提到遊戲應用,可瞭解到該基於雲端圖形處理系統設置成支援任何種類的應用。
當分配遊戲座位時,該等虛擬機器需要被管理。例如,該等虛擬機器需要被開始及/或實例化。一啟用虛擬機器需要在整個網路上被管 理與廣告其可使用性與能力。該虛擬機器在該應用結束之後、或當該虛擬機器成為「不良」或為了任何其它原因而需要被回收。該虛擬機器的管理關連於該虛擬機器的該等特徵,而不一定關連於在該虛擬機器上運行的該應用,其係關連於管理應用。
另一方面,應用的管理包括管理要玩一遊戲應用的要求,如前所述。該等應用之管理包括接受該要求、藉由知道關於工作執行之應用需求將該要求匹配於有適當資源的遊戲座位、提供關於該玩遊戲初始化程序的回饋、建立一遊戲會期、並終止一遊戲會期。
特別是,一使用者會期管理員運行在入口網站或接受使用者要求的該等機器上,包括有供給管理員1302。此外,該VM管理員或VM主控管理員462知道如何來處理虛擬機器,但不知道關於該應用的特定細節。座位登錄1304提供了可廣告遊戲座位的一空間、遊戲座位的分配與分配狀態被管理的一空間(用於分配,並返回用於稍後分配)。
圖14A例示根據本發明一具體實施例中處理一進入要求的示意圖1400A。如所示,負載平衡器466接收來自一終端使用者或用戶端裝置1302的該進入要求。有許多終端使用者及可能有非常多的要求,而僅有有限數目的使用者會期管理員位在該等入口網站1402中。為了提供進度更新給用戶端裝置1302,在接受一要求之後,使用者會期管理員1401將一要求置入到一優先化的FIFO佇列中,在其中被非同步地處理。如圖14A所示,要求被置入FIFO佇列中,其由效能等級來配置。也就是說,每一佇列係關聯於一特定遊戲座位效能等級(高、中、低資源能力)。例如,佇列1403可關聯於該高效能等級,且佇列1404可關聯於該中效能等級。特別是,根據該等應用需求,虛擬機器之一或多個效能等級可服務該應用。例如,該應用可運行在該最高效能的虛擬機器上,並提供最佳的整體遊戲經驗,但亦可運行在一中效能虛擬機器上,而仍提供令人滿意的遊戲經驗。
指定一特定效能等級的一遊戲座位將根據多種因素。例如, 該等使用需求要考慮到例如該使用者想要執行那一個應用。此外,考慮到該要求的資源需求,例如執行該應用需要那些需求(例如CPU,GPU,記憶體、頻寬需求)。此外,考慮到用於設定一遊戲會期的該程序,亦考慮到該預期的遊戲會期何時終止。
圖14B例示根據本發明一具體實施例中另一種處理一進入要求來執行一應用的示意圖1400B。在一入口網站1402中,該使用者會期管理員瞭解該所要求的應用特定細節,並要求能夠滿足應用之特定需求的一服務或遊戲座位。特別的是,使用者會期管理員1401與座位供給管理員1406通話,並提供被要求之該服務的參數。座位供給管理員1406瞭解如何解譯該要求,並將其轉譯成由SIM模組1407處理的一SIM要求。SIM模組1407使用由座位供給管理員1406提供一鍵值來與座位登錄1304通話、取得該數值、並將其傳回到座位供給管理員1406。然後座位供給管理員1406解譯該數值,並將其傳回到使用者會期管理員1401。特別是,遊戲座位表示成鍵值配對。
由座位登錄1304的觀點,所有項目皆為鍵值配對。此外,允許針對相同鍵有多個值,其中該值係儲存為一清單。由座位供給管理員1406的觀點,鍵值被用於取得能夠執行某些工作的終端點虛擬機器。在一鍵配對中,該鍵值的型式為「/SeatFree/performance_class/。」一示例鍵值包括「Seat/Free/Medium/」,其指明一虛擬機器能夠執行中等層級的服務。在一鍵配對中,該數值可採用例如以下的型式:10.0.0.1處的10.0.172.1.192.168.1.1。此數值指明此虛擬機器存在於IP位址為10.0.0.1之管理主機上。
圖14C例示要求處理的座位登記項目之示意圖1400C。一虛擬機器或遊戲座位可登記到四個不同的桶位。一佔用桶位1410包括可使用或自由,及被指定遊戲座位的一座位清單。一啟動中桶位1411包括目前正在啟動的一遊戲座位清單。一有柵欄桶位1412包括無法使用及隔離的一 遊戲座位清單。一失效桶位1413包括已經失效的一遊戲座位清單。
圖14D例示該座位分配程序的示意圖1400D。特別的是,根據本發明一具體實施例,座位供給管理員1406傳回該第一自由服務或能夠服務一要求的遊戲座位。在一具體實施例中,具有所需要之最高效能等級之座位先被供給,然後是次高者。該項目由座位供給管理員1406提出,以實際地尋找該座位的位置。現在使用者會期管理員1401具有代表能夠執行所需要的工作或執行該應用之該遊戲座位的IP位址。該使用者會期管理員聯絡此遊戲座位的VM主控管理員462,並要求其確保該遊戲座位的健康。特別的是,VM主控管理員詢問遊戲代理1305關於遊戲座位1301的健康。然後VM主控管理員遵照並標示遊戲座位1301為已指定。然後使用者會期管理員1401聯絡遊戲代理1305來啟始該遊戲應用。
在該座位分配中,大部份時間(例如95%以上)在該自由清單中皆有一遊戲座位可使用。因此,該座位登記項目被移動到該佔用/指定清單。當在該自由清單中並無一遊戲座位可用時,則傳回一錯誤碼。在該例中,所有實體硬體皆在使用中,並執行一等待程序,直到在能夠服務任何要求之前發生一服務釋放。在另一例中,雖然沒有更多佔用的虛擬機器,但有更多虛擬機器可被帶入線上來服務特定時間點增加的需求。另外,當等待時,座位供給管理員1406設置成支援一「當此種座位可使用者通知我」的功能。也就是說,座位供給管理員1406尋找某種型式的遊戲座位已可由座位登錄1304取得的通知。
圖14E例示根據本發明一具體實施例由遊戲代理1305與使用者會期管理員1401A或1401B進行通訊的示意圖1400E。遊戲代理1305傳送訊息回到供給管理員上的使用者會期管理員1401A與1401B來提供遊戲初始化、串流更新、毀損等之進度更新。此通訊使用入口網站1402A或1402B,或啟始遊戲初始化的供給管理員之該等IP位址來完成。如果此IP位址並無回應/可到達,則該遊戲代理能夠廣播給所有該等供給管理員(例如 1402A-N)一要求來詢問能夠處理我的要求之「是否有一PM(provision manager)?」。所有該等供給管理員皆列出,並將進行回應。此外,遊戲代理1305感測該第一供給管理員所回應的更新。當廣播、當參照到登記到該供給管理員並尋找一遊戲座位時有兩個主要的好處。首先,如果一供給管理員失效,則到該登錄的流量將會突然增加到1000倍(例如每1000個遊戲座位一個供給管理員)。此外,一失效的供給管理員仍可在該登錄中。
圖14F例示根據本發明一具體實施例中當釋放一遊戲座位時使用的該程序之示意圖1400F。一旦一工作(例如遊戲會期)完成,一使用者會期管理員1401引致座位供給管理員1406來釋放一遊戲座位。在步驟1,座位供給管理員1406引致在該實體機器/伺服器上運行的VM主控管理員462來重置該遊戲座位/服務(例如重置虛擬機器)。在步驟2,該VM主控管理員指示服務登錄1304來移除該遊戲座位,因此其自該被指定的方塊中移除。在步驟3,VM主控管理員462重置該服務,並傳送該登記到服務登錄1304,所以該遊戲座位現在為自由並可使用。也就是說,該遊戲座位的該狀態自該被指定方塊移動到該自由方塊。
當維護座位登記時,該VM主控管理員負責維護座位登記。該VM主控管理員驗證在其控制之下的該等遊戲座位被登記在服務登錄1304。此外,如果該VM主控管理員發現到一遊戲座位因某種原因自服務登錄1304遺失,則該VM主控管理員加入該遊戲座位到服務登錄1304。對於遊戲座位狀態的檢查為定期性。例如,該VM主控管理員知道該登記必須在何時(例如在那一桶位內,所以其必須檢查該正確的桶位清單)。此外,加入一遊戲座位到服務登錄1304為該VM主控管理員的一同步化作業。同時,該VM主控管理員處理可能存在於該座位管理程序中的所有該等競賽(race)狀況。該等競賽狀況之處理使得座位重新登記不會太倉促地執行,並在重新登記之前執行一重新驗證程序。
在優先化的FIFO處理中,當進入要玩遊戲的一要求時,其 標記有一運行中共通序號,並放置在對應於該要求的能力之該佇列中。此代表針對進入的要求會有與座位容量相同多的佇列。正在處理要求的該執行緒將產生一短期的共通鎖來確保該佇列的真正FIFO性質。也就是說,一次僅有一執行緒處理要求可保有該共通鎖。該執行緒將嘗試利用具有最低序號的一項目(其關聯於一遊戲座位)來完成該要求。如果無座位可使用,其將嘗試利用可能具有一較低能力的一遊戲座位(如果存在的話)來完成下一個最低要求的項目(線上的下一序號)。如此做可確保最大的座位佔用率。也就是說,對於一較低能力座位的一要求將不會卡在對於一較高能力座位的要求之後,且仍可維持該FIFO的完整性。
圖14G例示根據本發明一具體實施例中一座位供給管理員回叫的示意圖1400G。座位供給管理員1406支援一種「當此服務可使用時通知我」的特徵。特定而言,座位供給管理員1406並未輪詢座位登錄,但正在聽來自該等VM主控管理員的該等廣播。也就是說,該VM主控管理員正在登記該座位在座位登錄1304中,且一旦該虛擬機器為佔用時該VM主控管理員廣播座位可使用性。
當座位供給管理員1406接收一廣播時,引致一回叫方法「座位可能可使用」。該使用者會期管理員的該回叫方法實作通知正在處理來自該使用者佇列的該要求之該執行緒,且此執行緒自該優先化的FIFO佇列得到該第一項目,並進行正常的執行。特定而言,多個執行緒可能會競爭成為可使用的一單一遊戲座位,但使用該共通鎖,該FIFO佇列的完整性可被維持。同時,佇列處理執行緒引致一端點(例如遊戲代理)來開始執行該工作。
圖14H例示根據本發明一具體實施例中正在執行座位分配的一基於雲端圖形處理平台的組件之間的網路連接性的示意圖1400H。在一種實施例中,示意圖1400H結合了圖1400A與1400F之部份,其中圖1400A與1400H例示經由位在供給管理員1303的該等入口網站1402中該 等使用者會期管理員1401來處理一進入要求的該程序。使用者會期管理員1401瞭解到該經要求的應用特定細節,並藉由查詢服務登錄1304來要求能夠完成應用特定需求的一服務或遊戲座位。此外,圖1400F與1400H例示使用VM主控管理員462、座位登錄1304與該等管理主機來指定與釋放一遊戲座位的程序。
圖15例示根據本發明一具體實施例中一種用於在一基於雲端圖形處理系統中分配一虛擬機器到一末端用戶端之方法的流程圖。在又另一具體實施例中,流程圖1500例示為一種用於在一基於雲端圖形處理系統中分配一虛擬機器到一末端用戶端之電腦實作方法。在另一具體實施例中,流程圖1500實作在一電腦系統內,其中包括一處理器,及耦接於該處理器的記憶體,在其中儲存有指令,當由該電腦系統執行時使得該系統執行用於在一基於雲端圖形處理系統中分配一虛擬機器到一末端用戶端的方法。在又另一具體實施例中,用於執行如流程圖1500中所概述之方法的指令係儲存在一非暫態性電腦可讀取儲存媒體上,其具有電腦可執行指令用於使得一電腦系統執行用於在一基於雲端圖形處理系統中分配一虛擬機器到一末端用戶端的方法。在具體實施例中,流程圖1500中概述的該方法分別由圖1與2之電腦系統100與用戶端裝置200中一或多個組件來實作。
流程圖1500例示一種在一雲端中分配與指定遊戲座位的方法,其中每一遊戲座位設置成主控一或多個遊戲或應用執行的實例。一軟體模組供給管理員1303以一佇列方式處理遊戲座位的要求。其轉譯該要求成為一特定效能等級的一遊戲座位,藉以最佳化地提供該終端使用者最佳的遊戲經驗。該等遊戲座位的每一效能等級係關聯於加入有該要求的一佇列。
特別的是,在1510,該方法包括自關聯於一終端使用者的一用戶端裝置接收一執行一應用的要求。在1520,該方法包括決定該應用的一第一效能等級,其指明需要那一種類的資源來適當地執行該應用藉以 提供該終端使用者良好的遊戲經驗。可指定一種以上的效能等級給該應用。在1530,該方法包括決定可使用的該第一效能等級的一第一虛擬機器。也就是說,虛擬機器亦被指定符合那些指定給該應用之效能等級。藉由匹配該應用與該虛擬機器之間的效能等級,例如當正在玩該遊戲應用時提供一最佳化遊戲經驗給該終端使用者。在1540,該方法包括為了執行關聯於該用戶端裝置的該應用之目的指定該第一虛擬機器。也就是說,該第一虛擬機器被指定給該終端使用者。
如果其判斷並無該第一效能等級的虛擬機器可使用時,則該方法包括決定該應用的一第二效能等級,並決定亦為該第二效能等級的一第二虛擬機器可使用。然後為了執行該應用的目的,該第二虛擬機器被指定給該終端使用者。
對於遊戲座位的要求以一先進先出(FIFO)方式來處理。一工作者執行緒的集用場藉由察看在該等佇列中該第一項目、檢查在一鍵值鋪中可使用性、以及何時能夠以FIFO方式提出該要求來運作該等多個佇列。使用一共通鎖來確保要求以一FIFO方式被處理。該共通鎖的運作係相關於圖16來說明。供給管理員1303聯絡該遊戲座位的該資源擁有者來確認及更新該遊戲座位的登記。分配係藉由聯絡在遊戲座位1301上運行的遊戲代理1305並傳送該等要求細節來完成。
當實作該FIFO佇列時,指定給一要求一唯一共通序號。根據該應用的該被指定效能等級來將該要求放置到一或多個FIFO佇列中。該等要求的處理藉由自該等複數佇列之每一者取得該第一項目來處理,其中在該等複數佇列中每一項目係關聯於具有一相對應序號的一要求。判斷該等項目中那一者具有最低的序號。一可使用的虛擬機器被指定給關聯於該項目的該要求。如果對於該項目並無可使用的虛擬機器,則判斷出具有下一個最低序號的下一項目。一可使用的虛擬機器被指定給該下一項目。更一般而言,如果針對具有該最低序號的該項目無法決定座位,則該方法重 複地決定具有該最低序號的下一項目,其中該下一項目尚未被考慮用於座位指定與分配。然後,一可使用的虛擬機器被指定給該項目。
在主控多個虛擬機器的一實體伺服器中,每一虛擬機器被視為一遊戲座位(例如1301)。必須瞭解到每一虛擬機器可以支援多個座位,或該個座位可由多個虛擬機器所支援。不同的應用可能需要不同數量的資源及/或處理效能。例如,一三維遊戲應用可能比一二維遊戲應用需要更多的資源與處理。基於該遊戲應用、該等可使用座位與它們對應的效能等級、無法使用的座位、及該遊戲應用之該效能等級、以及在歷史上支援該應用的遊戲座位之該等效能等級,一給定座位可被指定具有某個層級的效能等級。因此,其可判斷一座位是否適合來開始執行可能需要或多或少處理能力的一遊戲應用。因此,基於該等可使用遊戲座位及要被執行的該應用之效能等級,遊戲座位可被分配或指定給不同的應用。
圖16例示根據本發明一具體實施例之一種用於實作一共通鎖來指揮該等要求之處理的電腦實作方法的流程圖1600。在又另一具體實施例中,流程圖1600例示一種用於實作一共通鎖來指揮該等要求之處理的電腦實作方法。在另一具體實施例中,流程圖1600實作在一電腦系統內,其中包括一處理器,及耦接於該處理器的記憶體,在其中儲存有指令,當由該電腦系統執行時使得該系統執行用於實作一共通鎖來指揮該等要求之處理的方法。在又另一具體實施例中,用於執行如流程圖1600中所概述之方法的指令係儲存在一非暫態性電腦可讀取儲存媒體上,其具有電腦可執行指令用於使得一電腦系統執行用於實作一共通鎖來指揮該等要求之處理的方法在具體實施例中,流程圖1600中概述的該方法分別由圖1與2之電腦系統100與用戶端裝置200中一或多個組件來實作。
在1601,該方法嘗試要得到該共通鎖。在1602,該共通鎖被嘗試來取得。在1603,嘗試來藉由檢查該鎖的名稱,並判斷該目前執行緒或是另一執行緒是否設定該鎖的名稱來取得該鎖。在1603,如果是否, 則該名稱並不相同,且另一執行緒已經設定該名稱,且該程序進行到1605。在1603,如果是真,則該鎖被取得,且該程序進行到1604,其中該要求可被分配。
另一方面,如果未得到該鎖,則該程序進行到1605,並檢查該鎖的健康來判斷該鎖是否被破壞與取代。在1620,該程序驗證該鎖為健康。在1621,該鎖的數值自REDIS資料庫取得。在1622,做出比較來判斷是否已經到期,一鎖的最長壽命。在1623,做出一嘗試來解出該鎖。也就是說,該鎖的數值第二次被再次取得,並在此放置具有關於該目前執行緒的一名稱之一新數值。在1624,做出比較來判斷第二次得到的該鎖是否相同於第一次得到的該鎖之名稱。如果它們相同,則在1625,該執行緒可釋出該鎖,並得到該鎖(將其名稱置於在REDIS中的該鎖)。如果不相同,則另一執行緒已經擊敗此執行緒來釋出該鎖。因此在1626,第二次得到的該數值被恢復回到在該REDIS資料庫中該記憶體位置上。
當在1630釋出該鎖時,在1631積極地執行釋出並嘗試大約十次。如果成功,則該程序結束,且該鎖被釋出。但是,如果未釋出,則在1632,即嘗試一刪除鎖名稱作業。如果在1633為成功,則該鎖被釋出,且該程序進行到1637。另一方面,如果在1633不成功,則在1634等待6毫秒,並回到1631重試。如果不成功,或該重試超過最大的嘗試限制,則在1635的該程序於1636標記出一例外(throw an exception)。
回到1606,如果該鎖未被取得,則在1607執行一鎖脈衝機制。此機制提供通知一鎖已被釋出。該通知被提供給線上的下一執行緒來取得該鎖,其中該執行緒開始於1601。
圖17A-F例示根據本發明之具體實施例一種實作用於在一基於雲端圖形處理系統中座位分配的多種方法。例如,圖17A例示根據本發明一具體實施例之一種用於由正在處理來自一FIFO佇列的一要求之一執行緒進行座位分配的方法之流程圖1700A。圖17B-C例示根據本發明一 具體實施例之一種用於一旦取得一共通鎖時處理一要求的方法之流程圖1700B-C。圖17D例示根據本發明一具體實施例之一種用於啟始玩遊戲的方法之流程圖1700D。圖17E例示根據本發明一具體實施例之一種用於恢復該「指定」清單的一執行緒之方法的流程圖1700E,其中此發生在座位分配之後一失敗時,其中一個別執行緒正在監視該「指定」清單。圖17F例示根據本發明一具體實施例之一種用於聽遠端通訊之方法的流程圖1700F。
因此,根據本發明之具體實施例,提出一種透過視覺運算裝置實作之實作用於遠端顯示器的基於雲端之虛擬圖形處理的系統與方法。
前述的說明內容提出多種具體實施例,其中使用了特定的方塊圖、流程圖和示例,每一方塊圖元件、流程圖步驟、作業、及/或所描述的組件、及/或此處所例示者,皆可使用廣大範圍的硬體、軟體或韌體(或其任何組合)組態來被個別地及/或共同地實作。此外,在其它組件內包含的組件之任何揭示內容必須視為示例,其中可以實作出許多架構變體來達到相同的功能。
此處所描述及/或例示之步驟的該等處理參數和順序皆為示例性,並可視需要做改變。例如,此處所例示及/或描述的該等步驟可用一特定順序顯示或討論,但這些步驟並不必須以所例示或討論的順序來執行。此處所描述及/或例示的該等多種示例性方法亦可省略此處所描述或例示的該等步驟之一或多者,或可包括除了那些經揭示者之外的額外步驟。
多種具體實施例已經在此處以完整功能性的運算系統之內容來做描述及/或例示,但這些示例具體實施例中一或多者可用多種型式的程式產品來散佈,不論用於實際上進行該散佈係使用特定種類的電腦可讀取媒體。此處所揭示的該等具體實施例亦可使用執行某些任務的軟體模組來實作。這些軟體模組可包括腳本、批次檔、或其它可執行檔案,其可被儲存在一電腦可讀取儲存媒體上或在一運算系統中。這些軟體模組可以設置一運算系統來執行此處所揭示的該等示例具體實施例中一或多者。此處所揭示的該等軟體模組中一或多者可被實作在一雲端運算環境中。雲端運算環境可以經由網際網路提供多種服務和應用程式。這些雲端式服務(例如 軟體做為服務、平台做為服務、基礎設施等)可透過一網頁瀏覽器或其它遠端介面進行存取。此處所述之多種功能可經由一遠端桌上型環境或任何其它雲端式運算環境來提供。
為了解釋的目的,前述的內容已經參照特定具體實施例來說明。但是,以上之例示性討論並非窮盡式或限制本發明於所揭示之明確型式。在以上的教示之下可瞭解其有可能許多修改及變化。該具體實施例係被選擇及描述來最佳地解釋本發明及其實際應用的原理,藉此使得本技藝中其它專業人士可在多種具體實施例及多種修正中最佳地利用本發明,使其可適用於所考慮的特定用途。
至此已經說明了根據本發明的具體實施例。當本發明已經於特定具體實施例中說明時,必須瞭解到本發明不應視為受到這些具體實施例所限制,而是根據以下申請專利範圍所限制。
500A‧‧‧雙插座架構
501A、501B‧‧‧CPU插座
505A、505B、505C、505D‧‧‧橋
510A、510B、510C、510D‧‧‧GPU板
515‧‧‧GPU

Claims (21)

  1. 一種提供圖形處理的裝置,其包含:一雙CPU插座架構,其包含一第一CPU插座與一第二CPU插座;複數GPU板,其提供耦接於該第一CPU插座與該第二CPU插座的複數GPU處理器,其中每一GPU板包含該等複數GPU處理器中兩個或更多者;及一通訊匯流排介面,其將該第一CPU插座耦接於一或多個GPU板之一第一子集合,以及將該第二CPU插座耦接於一或多個GPU板之一第二子集合。
  2. 如申請專利範圍第1項之裝置,另包含:一耦接於該第一CPU插座的多核心處理器。
  3. 如申請專利範圍第2項之裝置,其中該多核心處理器包含耦接於該第一CPU插座的一XEON E 2670處理器。
  4. 如申請專利範圍第1項之裝置,其中該通訊匯流排介面包含:複數通訊橋,其每一者將一相對應GPU板耦接至該第一CPU插座與該第二CPU插座。
  5. 如申請專利範圍第4項之裝置,其中該等通訊橋中至少一者包含一PCIe橋。
    如申請專利範圍第5項之裝置,其中該等複數GPU板之每一者包含:一耦接於一相對應PCIe橋的橋分流器;及 兩個或更多的該等複數GPU處理器。
  6. 如申請專利範圍第5項之裝置,其中該等複數GPU板係橫跨該雙CPU插座架構而對稱地分佈。
  7. 如申請專利範圍第6項之裝置,另包含:一第一GPU板與一第二GPU板,其每一者耦接至該第一CPU插座;及一第三GPU板與一第四GPU板,其每一者耦接至該第二CPU插座;其中該等第一、第二、第三與第四GPU板之每一者包含一種兩個GPU處理器組態。
  8. 如申請專利範圍第5項之裝置,其中該等複數GPU板係橫跨該雙CPU插座架構而非對稱地分佈。
  9. 如申請專利範圍第1項之裝置,另包含:一耦接該第一CPU插座與該第二CPU插座的前側匯流排網路;
  10. 如申請專利範圍第1項之裝置,其中該前側匯流排網路包含:一通訊式地耦接該第一CPU插座與該第二CPU插座的QPI鏈路;一單一作業系統,其管理由該QPI鏈路所支援的耦接於該第一CPU插座與該第二CPU插座的CPU處理器。
  11. 如申請專利範圍第1項之裝置,其中該等複數圖形處理器中至少一者包含一Nvidia GK107圖形處理器晶片。
  12. 如申請專利範圍第1項之裝置,其中一GPU處理器以一對一的關係支援一虛擬機器。
  13. 如申請專利範圍第1項之裝置,另包含:由該等複數GPU處理器支援的複數虛擬化GPU處理器,其中一虛擬化GPU支援一虛擬機器。
  14. 如申請專利範圍第1項之裝置,其中該雙CPU插座架構設置成一Sandy Bridge組態。
  15. 如申請專利範圍第1項之裝置,其中該等複數GPU板為相同。
  16. 如申請專利範圍第1項之裝置,其中該雙CPU插座架構與該等複數GPU板支援複數虛擬機器,其每一者包含一或多個CPU核心與一或多個GPU處理器中的部份。
  17. 如申請專利範圍第1項之裝置,其中該雙CPU插座架構與該等複數GPU板係實作在一假虛擬機器系統之內,而該假虛擬機器系統係於一單一作業系統之下運作且針對一或多個終端使用者運行多個應用。
  18. 一種附加於網路的GPU裝置,其包含:提供複數虛擬CPU與GPU處理器的複數處理板,其中該等處理板之每一者包含:一雙CPU插座架構,其包含一第一CPU插座與一第二CPU插座; 複數GPU板,其提供耦接於該第一CPU插座與該第二CPU插座的複數GPU處理器,其中每一GPU板包含該等複數GPU處理器中兩個或更多者;一第一複數通訊橋,其每一者將一相對應GPU板耦接至該第一CPU插座與該第二CPU插座;及一通訊介面,其將該第一CPU插座耦接於一或多個GPU板之一第一子集合,以及將該第二CPU插座耦接於一或多個GPU板之一第二子集合。
  19. 如申請專利範圍第18項之裝置,其中該等複數GPU板之每一者包含:一耦接於一相對應通訊橋的橋分流器;及兩個或更多的該等複數GPU處理器。
  20. 如申請專利範圍第18項之裝置,其中該等複數GPU板係橫跨該雙CPU插座架構為對稱地分佈,使得一第一GPU板與一第二GPU板每一者耦接於該第一CPU插座,而一第三GPU板與一第四GPU板每一者耦接於該第二CPU插座,其中該等第一、第二、第三與第四GPU板之每一者包含一兩個GPU處理器組態。
  21. 如申請專利範圍第18項之附加於網路的GPU裝置,另包含:由該等複數處理板支援的複數運算裝置模擬器(emulator)。
TW102143422A 2012-11-28 2013-11-28 提供給遠端顯示器的基於雲端虛擬圖形處理的方法與系統 TW201506843A (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201261730940P 2012-11-28 2012-11-28
US201261730939P 2012-11-28 2012-11-28
US201361749231P 2013-01-04 2013-01-04
US201361749224P 2013-01-04 2013-01-04
US201361874056P 2013-09-05 2013-09-05
US201361874078P 2013-09-05 2013-09-05

Publications (1)

Publication Number Publication Date
TW201506843A true TW201506843A (zh) 2015-02-16

Family

ID=50828497

Family Applications (2)

Application Number Title Priority Date Filing Date
TW102143422A TW201506843A (zh) 2012-11-28 2013-11-28 提供給遠端顯示器的基於雲端虛擬圖形處理的方法與系統
TW102143421A TW201442766A (zh) 2012-11-28 2013-11-28 手持式遊戲機

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW102143421A TW201442766A (zh) 2012-11-28 2013-11-28 手持式遊戲機

Country Status (5)

Country Link
US (4) US20150009222A1 (zh)
CN (3) CN104813309A (zh)
DE (2) DE112013005688T5 (zh)
TW (2) TW201506843A (zh)
WO (3) WO2014085717A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI632487B (zh) * 2016-11-03 2018-08-11 日商三菱電機股份有限公司 用於處理具有多點之輸入點雲端之系統及方法
TWI658365B (zh) * 2017-10-30 2019-05-01 緯創資通股份有限公司 連接模組
TWI766286B (zh) * 2020-02-03 2022-06-01 大陸商北京市商湯科技開發有限公司 圖像處理方法及圖像處理裝置、電子設備和電腦可讀儲存媒介
TWI811560B (zh) * 2020-08-17 2023-08-11 宏碁股份有限公司 資源整合系統及資源整合方法

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8902248B1 (en) 2011-07-14 2014-12-02 Vmware, Inc. Method and system for measuring display performance of a remote application
US9805439B2 (en) 2012-05-02 2017-10-31 Nvidia Corporation Memory space mapping techniques for server based graphics processing
US9542715B2 (en) 2012-05-02 2017-01-10 Nvidia Corporation Memory space mapping techniques for server based graphics processing
US9613390B2 (en) 2012-05-02 2017-04-04 Nvidia Corporation Host context techniques for server based graphics processing
US9311169B2 (en) 2012-05-02 2016-04-12 Nvidia Corporation Server based graphics processing techniques
JP5930390B2 (ja) * 2012-05-31 2016-06-08 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置および情報処理システム
US11082490B2 (en) 2012-11-28 2021-08-03 Nvidia Corporation Method and apparatus for execution of applications in a cloud system
US20150009222A1 (en) 2012-11-28 2015-01-08 Nvidia Corporation Method and system for cloud based virtualized graphics processing for remote displays
US9536016B2 (en) * 2013-01-16 2017-01-03 Google Inc. On-disk multimap
CA2886282C (en) * 2013-05-23 2019-07-23 Stephan Georgiev Dynamic allocation of rendering resources in a cloud gaming system
CN103475953B (zh) * 2013-09-13 2017-11-17 华为技术有限公司 一种基于桌面云的媒体控制方法和设备
US9674265B2 (en) * 2013-11-04 2017-06-06 Vmware, Inc. Filtering unnecessary display updates for a networked client
US9674518B2 (en) 2013-12-20 2017-06-06 Vmware, Inc. Measuring remote video display with embedded pixels
US10809866B2 (en) * 2013-12-31 2020-10-20 Vmware, Inc. GUI for creating and managing hosts and virtual machines
US20160117734A1 (en) * 2014-01-01 2016-04-28 Hsiu-Ping Lin Methods and systems for advertising apps
JP5878938B2 (ja) * 2014-01-29 2016-03-08 株式会社ソニー・コンピュータエンタテインメント 配信システム、配信方法、配信プログラム
US10022619B2 (en) * 2014-04-18 2018-07-17 Sony Interactive Entertainment, LLC System and method for multi-player video gaming
US20150325202A1 (en) * 2014-05-07 2015-11-12 Thalmic Labs Inc. Systems, devices, and methods for wearable computers with heads-up displays
US9843478B2 (en) * 2014-06-12 2017-12-12 Dell Products L.P. Template builder for end-to-end provisioning and lifecycle management of it infrastructure and services
US9699247B2 (en) 2014-06-17 2017-07-04 Vmware, Inc. User experience monitoring for application remoting
US9898794B2 (en) * 2014-06-19 2018-02-20 Vmware, Inc. Host-based GPU resource scheduling
KR20160015663A (ko) * 2014-07-31 2016-02-15 (주) 디엔에이소프트 맞춤형 게임 제공 방법, 장치 및 컴퓨터 프로그램 제품
US10241761B2 (en) * 2014-12-29 2019-03-26 Nvidia Corporation System and method for compiler support for compile time customization of code
CN105988874B (zh) 2015-02-10 2020-08-28 阿里巴巴集团控股有限公司 资源处理方法及装置
DE112016001594T5 (de) * 2015-06-11 2018-01-18 Google Inc. Verfahren, systeme und medien zum aggregieren und präsentieren von relevantem inhalt für ein bestimmtes videospiel
GB2540562B (en) * 2015-07-21 2019-09-04 Advanced Risc Mach Ltd Method of and apparatus for generating a signature representative of the content of an array of data
US10135892B2 (en) * 2015-07-28 2018-11-20 Google Llc Independent control of interactive streaming media
CN105117170A (zh) * 2015-08-24 2015-12-02 浪潮(北京)电子信息产业有限公司 一种计算机系统架构
CN105288983A (zh) * 2015-09-16 2016-02-03 郭权权 儿童用具及具有该儿童用具的娱乐系统
US11027199B2 (en) 2015-11-12 2021-06-08 Nvidia Corporation System and method for network coupled gaming
US10630773B2 (en) * 2015-11-12 2020-04-21 Nvidia Corporation System and method for network coupled cloud gaming
CN105867856A (zh) * 2015-12-08 2016-08-17 乐视移动智能信息技术(北京)有限公司 移动设备作为显示器的应用方法及装置、移动设备
US10884723B2 (en) * 2016-01-21 2021-01-05 Facebook, Inc. Modification of software behavior in run time
CN105740061B (zh) * 2016-01-29 2019-05-31 腾讯科技(深圳)有限公司 一种gpu资源重建的方法、用户设备及系统
FR3047579B1 (fr) 2016-02-04 2020-10-30 O Computers Procede de selection d'un mode de capture d'ecran
FR3047576B1 (fr) * 2016-02-04 2020-05-01 Blade Ordinateur hote pour emuler des ordinateurs personnels hautes performances
CN105786589A (zh) * 2016-02-26 2016-07-20 成都赫尔墨斯科技有限公司 一种云渲染系统、服务器及方法
US9985890B2 (en) 2016-03-14 2018-05-29 International Business Machines Corporation Identifying a local congestion control algorithm of a virtual machine
EP3232326B1 (en) * 2016-04-14 2019-06-05 High Sec Labs Ltd. Keyboard video mouse (kvm) device and method for detecting host failure using the same
US10456672B2 (en) * 2016-05-19 2019-10-29 Google Llc Methods and systems for facilitating participation in a game session
US10613880B2 (en) * 2016-05-31 2020-04-07 International Business Machines Corporation State synchronized interactive software demonstration
US10045252B2 (en) * 2016-06-02 2018-08-07 International Business Machines Corporation Virtual switch-based congestion control for multiple TCP flows
US10268512B2 (en) * 2016-06-23 2019-04-23 International Business Machines Corporation Optimizing simultaneous startup or modification of inter-dependent machines with specified priorities
US10089135B2 (en) 2016-08-09 2018-10-02 International Business Machines Corporation Expediting the provisioning of virtual machines based on cached repeated portions of a template
JP2020501617A (ja) * 2016-10-24 2020-01-23 スターアギリス リミテッドStaragilis Limited 一体型モバイルゲームコントローラ
US10200249B1 (en) * 2016-12-09 2019-02-05 Amazon Technologies, Inc. Network traffic management for virtualized graphics devices
US10757110B2 (en) * 2016-12-21 2020-08-25 Microsoft Technology Licensing, Llc Generation of application allowed lists for machines
GB2558886B (en) 2017-01-12 2019-12-25 Imagination Tech Ltd Graphics processing units and methods for controlling rendering complexity using cost indications for sets of tiles of a rendering space
EP3355188B1 (en) 2017-01-31 2021-08-25 OpenSynergy GmbH Instrument display on a car dashboard by checking frames of a gui by a realtime os
US20180250588A1 (en) * 2017-03-02 2018-09-06 Jayme Winick Universal game controller/console
US10467032B2 (en) * 2017-03-02 2019-11-05 International Business Machines Corporation Dynamic cloud image updates based on subjective customization and user input
US20190022518A1 (en) * 2017-07-21 2019-01-24 Peter Charles Godwin Chemistry Based Board/Video Game
CN110678239B (zh) 2017-10-10 2024-02-09 谷歌有限责任公司 利用游戏元数据和量度的分布式基于样本的游戏剖析以及支持第三方内容的游戏api平台
CN108009977B (zh) * 2017-11-10 2021-06-29 上海华元创信软件有限公司 多线程环境下支持多个远程图形终端的方法及系统
US11140207B2 (en) 2017-12-21 2021-10-05 Google Llc Network impairment simulation framework for verification of real time interactive media streaming systems
US10581939B2 (en) * 2018-01-26 2020-03-03 Citrix Systems, Inc. Virtual computing system providing local screen sharing from hosted collaboration applications and related methods
WO2019182752A1 (en) * 2018-03-22 2019-09-26 Google Llc Methods and systems for rendering and encoding content for online interactive gaming sessions
US11872476B2 (en) 2018-04-02 2024-01-16 Google Llc Input device for an electronic system
US11077364B2 (en) 2018-04-02 2021-08-03 Google Llc Resolution-based scaling of real-time interactive graphics
KR20230017925A (ko) 2018-04-02 2023-02-06 구글 엘엘씨 대화형 클라우드 게임용 방법, 디바이스 및 시스템
EP3701489B1 (en) 2018-04-10 2022-10-26 Google LLC Memory management in gaming rendering
CN108854067A (zh) * 2018-06-12 2018-11-23 芜湖乐创电子科技有限公司 一种基于多视角分屏式的裸眼3d游戏机装置系统
US11161038B2 (en) * 2018-08-06 2021-11-02 Amazon Technologies, Inc. Systems and devices for controlling network applications
EP3807766B1 (en) 2018-11-16 2021-10-27 Google LLC Shadow tracking of real-time interactive simulations for complex system analysis
CN111195432B (zh) * 2018-11-20 2021-12-07 腾讯科技(深圳)有限公司 对象显示方法和装置、存储介质及电子装置
US10884812B2 (en) * 2018-12-13 2021-01-05 Amazon Technologies, Inc. Performance-based hardware emulation in an on-demand network code execution system
KR102032521B1 (ko) * 2018-12-26 2019-10-15 래블업(주) 컨테이너 기반의 gpu 가상화 방법 및 시스템
US10926169B2 (en) * 2019-04-04 2021-02-23 Microsoft Technology Licensing, Llc Cross-device accessory input and output for enhanced gaming experience
CN209692952U (zh) * 2019-04-04 2019-11-26 瑞典爱立信有限公司 用于云游戏的便携设备
TWI723637B (zh) * 2019-07-01 2021-04-01 宏碁股份有限公司 遊戲系統及其操作方法
US10981059B2 (en) * 2019-07-03 2021-04-20 Sony Interactive Entertainment LLC Asset aware computing architecture for graphics processing
CN112825042A (zh) * 2019-11-20 2021-05-21 上海商汤智能科技有限公司 资源管理方法和装置、电子设备及存储介质
US11013987B1 (en) 2019-12-31 2021-05-25 Dell Products L.P. Information handling system controller scalable interface
US11097185B2 (en) 2019-12-31 2021-08-24 Dell Products L.P. Detachable information handling system game controller management
US11260291B2 (en) * 2019-12-31 2022-03-01 Dell Products L.P. Information handling system and detachable game controller
US11331567B2 (en) 2019-12-31 2022-05-17 Dell Products L.P. Information handling system and game controller trigger
US11260288B2 (en) 2019-12-31 2022-03-01 Dell Products L.P. Disassemblable information handling system game controller
US11013991B1 (en) 2019-12-31 2021-05-25 Dell Products L.P. Information handling system controller adaptive haptic feedback
US11338197B2 (en) 2019-12-31 2022-05-24 Dell Products L.P. Information handling system controller distributable hardware and logic management
US11420129B2 (en) * 2020-01-30 2022-08-23 Dell Products L.P. Gameplay event detection and gameplay enhancement operations
CN111643889A (zh) * 2020-05-06 2020-09-11 腾讯科技(深圳)有限公司 一种游戏控制方法、装置、存储介质和电子设备
CN112057852B (zh) * 2020-09-02 2021-07-13 北京蔚领时代科技有限公司 一种基于多显卡的游戏画面渲染方法和系统
US20220129295A1 (en) * 2020-10-25 2022-04-28 Meta Platforms, Inc. Server-side hosted environment for a cloud gaming system
TWI757164B (zh) * 2021-04-27 2022-03-01 群光電子股份有限公司 應用系統及其操作方法與輸入裝置
GB2610397A (en) * 2021-09-02 2023-03-08 Samsung Electronics Co Ltd Encoding and decoding video data
US11964197B2 (en) * 2021-09-16 2024-04-23 Voyetra Turtle Beach, Inc. Video game controller with performance tracking
CN113645484B (zh) * 2021-10-16 2021-12-21 成都中科合迅科技有限公司 基于图形处理器的数据可视化加速渲染方法
WO2023113822A1 (en) * 2021-12-17 2023-06-22 Google Llc Loading state detection for gaming applications
US20230289212A1 (en) 2022-03-10 2023-09-14 Nvidia Corporation Flexible Migration of Executing Software Between Processing Components Without Need For Hardware Reset
US20230288471A1 (en) 2022-03-10 2023-09-14 Nvidia Corporation Virtualizing Hardware Processing Resources in a Processor
DE202023000713U1 (de) 2023-03-30 2023-06-19 Raumkapsel Schmidt und Stein-Schomburg GbR (vertretungsberechtigter Gesellschafter: Dennis Stein-Schomburg, 34119 Kassel) Interaktiver LCD-Touchdisplay Würfel mit Audio-Lautsprechern

Family Cites Families (90)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070299682A1 (en) 1997-01-22 2007-12-27 Roth David W System and method for real-time bidding for Internet advertising space
US6985885B1 (en) 1999-09-21 2006-01-10 Intertrust Technologies Corp. Systems and methods for pricing and selling digital goods
US6377257B1 (en) 1999-10-04 2002-04-23 International Business Machines Corporation Methods and apparatus for delivering 3D graphics in a networked environment
US6488280B1 (en) * 2000-09-27 2002-12-03 Milestone Entertainment Games, and methods and apparatus for game play in games of chance
US9047609B2 (en) 2000-11-29 2015-06-02 Noatak Software Llc Method and system for dynamically incorporating advertising content into multimedia environments
US7805680B2 (en) 2001-01-03 2010-09-28 Nokia Corporation Statistical metering and filtering of content via pixel-based metadata
AU2002314450A1 (en) * 2001-03-23 2002-10-08 Popwire.Com Method and apparatus for streaming video
US6902481B2 (en) * 2001-09-28 2005-06-07 Igt Decoupling of the graphical presentation of a game from the presentation logic
US20060239889A1 (en) 2001-09-28 2006-10-26 Lewis Irwin C Sugar additive blend useful as a binder or impregnant for carbon products
US7969990B2 (en) * 2002-07-25 2011-06-28 Oded Shmueli Routing of data including multimedia between electronic devices
US20040044567A1 (en) 2002-09-03 2004-03-04 Daniel Willis Gaming service provider advertising system
US20110126255A1 (en) * 2002-12-10 2011-05-26 Onlive, Inc. System and method for remote-hosted video effects
US7729946B2 (en) 2003-01-24 2010-06-01 Massive Incorporated Online game advertising system
US7203944B1 (en) * 2003-07-09 2007-04-10 Veritas Operating Corporation Migrating virtual machines among computer systems to balance load caused by virtual machines
US20050028200A1 (en) 2003-08-01 2005-02-03 Esteban Sardera Media content navigation associated advertising
US7782325B2 (en) * 2003-10-22 2010-08-24 Alienware Labs Corporation Motherboard for supporting multiple graphics cards
US7365596B2 (en) 2004-04-06 2008-04-29 Freescale Semiconductor, Inc. State retention within a data processing system
US20050270298A1 (en) * 2004-05-14 2005-12-08 Mercury Computer Systems, Inc. Daughter card approach to employing multiple graphics cards within a system
US7899492B2 (en) * 2004-07-16 2011-03-01 Sellerbid, Inc. Methods, systems and apparatus for displaying the multimedia information from wireless communication networks
US8464250B1 (en) * 2004-09-23 2013-06-11 Transcontinental Events, Llc System and method for on-demand cloning of virtual machines
US7962854B2 (en) * 2004-10-19 2011-06-14 Sony Ericsson Mobile Communications Ab Systems, methods and computer program products for displaying content on multiple display screens using handheld wireless communicators
EP1672940A1 (en) * 2004-12-20 2006-06-21 Sony Ericsson Mobile Communications AB System and method for sharing media data
US20060203758A1 (en) * 2005-03-11 2006-09-14 Samsung Electronics Co., Ltd. Mobile terminal for relaying multimedia data to an external display device
US20060240894A1 (en) 2005-04-22 2006-10-26 Andrews Paul D Online gaming method integrating information, prizes, and advertising from live events and from specific event centers
TW200638203A (en) * 2005-04-29 2006-11-01 Elitegroup Computer Sys Co Ltd Motherboard capable of setting different central processing units
US7451041B2 (en) 2005-05-06 2008-11-11 Facet Technology Corporation Network-based navigation system having virtual drive-thru advertisements integrated with actual imagery from along a physical route
US7650603B2 (en) 2005-07-08 2010-01-19 Microsoft Corporation Resource management for virtualization of graphics adapters
US20070093292A1 (en) * 2005-08-01 2007-04-26 Herschel Naghi Video game controller with cooling
US20070067535A1 (en) * 2005-09-20 2007-03-22 Ta-Wei Liu Motherboard capable of selectively supporting dual graphic engine
US7255573B2 (en) * 2005-12-30 2007-08-14 Intel Corporation Data signal interconnection with reduced crosstalk
US7768517B2 (en) * 2006-02-21 2010-08-03 Nvidia Corporation Asymmetric multi-GPU processing
KR100744380B1 (ko) * 2006-04-17 2007-07-30 삼성전자주식회사 외부 디스플레이 장치로 영상을 출력할 수 있는 기능을구비한 이동 단말기에서의 디스플레이 제어 장치 및 방법
US8009861B2 (en) 2006-04-28 2011-08-30 Vobile, Inc. Method and system for fingerprinting digital video object based on multiresolution, multirate spatial and temporal signatures
US8108844B2 (en) * 2006-06-20 2012-01-31 Google Inc. Systems and methods for dynamically choosing a processing element for a compute kernel
US9754444B2 (en) 2006-12-06 2017-09-05 Cfph, Llc Method and apparatus for advertising on a mobile gaming device
US7797475B2 (en) * 2007-01-26 2010-09-14 International Business Machines Corporation Flexibly configurable multi central processing unit (CPU) supported hypertransport switching
US8655031B2 (en) * 2007-03-27 2014-02-18 Sony Corporation Video content identification using scene change signatures from downscaled images
US8286196B2 (en) 2007-05-03 2012-10-09 Apple Inc. Parallel runtime execution on multiple processors
US8341611B2 (en) * 2007-04-11 2012-12-25 Apple Inc. Application interface on multiple processors
EP2058725A3 (en) 2007-06-11 2015-07-22 Mediatek Inc. Method of and apparatus for reducing power consumption within an integrated circuit
CN101340551A (zh) * 2007-07-05 2009-01-07 韩庆军 一种多媒体数字签名的方法
KR101467558B1 (ko) * 2007-07-26 2014-12-01 엘지전자 주식회사 그래픽데이터 처리 장치 및 방법
CN101896898A (zh) 2007-10-23 2010-11-24 维尔克利克斯公司 多媒体管理、广告、内容和服务系统
US20090248534A1 (en) 2008-03-31 2009-10-01 Yahoo! Inc. System and method for offering an auction bundle in an online advertising auction
US8823209B2 (en) 2008-06-20 2014-09-02 Fujitsu Semiconductor Limited Control of semiconductor devices to selectively supply power to power domains in a hierarchical structure
US8456478B2 (en) * 2008-10-30 2013-06-04 Microchip Technology Incorporated Microcontroller with integrated graphical processing unit
US8752087B2 (en) 2008-11-07 2014-06-10 At&T Intellectual Property I, L.P. System and method for dynamically constructing personalized contextual video programs
US20100125529A1 (en) * 2008-11-19 2010-05-20 Venkatesh Srinivasan Remote Rental of Digital Content Peripheral Storage Entities
WO2010078539A2 (en) 2009-01-04 2010-07-08 Robert Thomas Kulakowski Advertising profiling and targeting system
US8135626B2 (en) 2009-03-05 2012-03-13 Yahoo! Inc. Bid gateway architecture for an online advertisement bidding system
US20100302141A1 (en) * 2009-05-28 2010-12-02 Subramonian Shankar Display and Interaction Environment for Mobile Devices
US20100332331A1 (en) 2009-06-24 2010-12-30 Craig Stephen Etchegoyen Systems and Methods for Providing an Interface for Purchasing Ad Slots in an Executable Program
US8827811B2 (en) * 2009-06-30 2014-09-09 Lg Electronics Inc. Mobile terminal capable of providing multiplayer game and operating method of the mobile terminal
US8621099B2 (en) * 2009-09-21 2013-12-31 Sling Media, Inc. Systems and methods for formatting media content for distribution
US20110102443A1 (en) * 2009-11-04 2011-05-05 Microsoft Corporation Virtualized GPU in a Virtual Machine Environment
US9197642B1 (en) 2009-12-10 2015-11-24 Otoy, Inc. Token-based billing model for server-side rendering service
EP2513774A4 (en) * 2009-12-18 2013-09-04 Nokia Corp METHOD AND APPARATUS FOR PROJECTING USER INTERFACE WITH A CONTINUOUS FLOW OF SHEET MUSIC
CN101764861A (zh) * 2009-12-28 2010-06-30 深圳华为通信技术有限公司 一种游戏手机实现方法和装置
FR2954979B1 (fr) 2010-01-05 2012-06-01 Commissariat Energie Atomique Procede pour selectionner une ressource parmi une pluralite de ressources de traitement, de sorte que les delais probables avant defaillance des ressources evoluent de maniere sensiblement identique
US9013851B2 (en) 2010-02-22 2015-04-21 Broadcom Corporation Inrush current control circuit and method for utilizing same
US10009647B2 (en) * 2010-03-02 2018-06-26 Qualcomm Incorporated Reducing end-to-end latency for communicating information from a user device to a receiving device via television white space
WO2011143103A2 (en) 2010-05-10 2011-11-17 Citrix Systems, Inc. Redirection of information from secure virtual machines to unsecure virtual machines
US8856300B2 (en) 2010-05-18 2014-10-07 At&T Intellectual Property I, L.P. End-to-end secure cloud computing
US20110292057A1 (en) * 2010-05-26 2011-12-01 Advanced Micro Devices, Inc. Dynamic Bandwidth Determination and Processing Task Assignment for Video Data Processing
US8803892B2 (en) 2010-06-10 2014-08-12 Otoy, Inc. Allocation of GPU resources across multiple clients
US8850236B2 (en) 2010-06-18 2014-09-30 Samsung Electronics Co., Ltd. Power gating of cores by an SoC
US8724696B2 (en) 2010-09-23 2014-05-13 Vmware, Inc. System and method for transmitting video and user interface elements
US8554282B2 (en) * 2010-10-01 2013-10-08 American Megatrends, Inc. Methods, devices and computer program products for presenting screen content
US8830245B2 (en) * 2010-12-14 2014-09-09 Amazon Technologies, Inc. Load balancing between general purpose processors and graphics processors
US8369893B2 (en) * 2010-12-31 2013-02-05 Motorola Mobility Llc Method and system for adapting mobile device to accommodate external display
EP2487577A3 (en) * 2011-02-11 2017-10-11 BlackBerry Limited Presenting buttons for controlling an application
US20120232988A1 (en) 2011-03-08 2012-09-13 Ruiduo Yang Method and system for generating dynamic ads within a video game of a portable computing device
US8972485B1 (en) 2011-03-22 2015-03-03 Cisco Technology, Inc. Distributing execution of applications between a local client system and a remote virtual environment
US8572407B1 (en) * 2011-03-30 2013-10-29 Emc Corporation GPU assist for storage systems
JP5943554B2 (ja) * 2011-05-23 2016-07-05 任天堂株式会社 ゲームシステム、ゲーム装置、ゲームプログラム、およびゲーム処理方法
US9600350B2 (en) * 2011-06-16 2017-03-21 Vmware, Inc. Delivery of a user interface using hypertext transfer protocol
US9727385B2 (en) 2011-07-18 2017-08-08 Apple Inc. Graphical processing unit (GPU) implementing a plurality of virtual GPUs
US20110296452A1 (en) 2011-08-08 2011-12-01 Lei Yu System and method for providing content-aware persistent advertisements
WO2013028202A1 (en) * 2011-08-25 2013-02-28 Intel Corporation Collaborative graphics rendering using mobile devices to support remote display
US9250969B2 (en) * 2011-08-30 2016-02-02 At&T Intellectual Property I, L.P. Tagging a copy of memory of a virtual machine with information for fetching of relevant portions of the memory
US9256447B2 (en) 2011-10-25 2016-02-09 Citrix Systems, Inc. Integrated application launching in heterogeneous cloud computing environment
CN102436308A (zh) * 2011-11-11 2012-05-02 陈文博 触摸屏虚拟按键实体化映射的方法及使用该方法的触摸屏游戏手机
AU2011253973B2 (en) 2011-12-12 2015-03-12 Canon Kabushiki Kaisha Keyframe selection for parallel tracking and mapping
CN202444516U (zh) * 2011-12-28 2012-09-19 佳木斯大学 一种插拔式游戏手机
CN102664939A (zh) * 2012-04-13 2012-09-12 江苏诚迈科技有限公司 一种屏幕镜像移动终端的方法及设备
US8688984B2 (en) 2012-04-27 2014-04-01 Google Inc. Providing content to a user across multiple devices
US20140009576A1 (en) * 2012-07-05 2014-01-09 Alcatel-Lucent Usa Inc. Method and apparatus for compressing, encoding and streaming graphics
US11082490B2 (en) 2012-11-28 2021-08-03 Nvidia Corporation Method and apparatus for execution of applications in a cloud system
US20150009222A1 (en) 2012-11-28 2015-01-08 Nvidia Corporation Method and system for cloud based virtualized graphics processing for remote displays
US8910201B1 (en) 2013-03-11 2014-12-09 Amazon Technologies, Inc. Product placement in digital content

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI632487B (zh) * 2016-11-03 2018-08-11 日商三菱電機股份有限公司 用於處理具有多點之輸入點雲端之系統及方法
TWI658365B (zh) * 2017-10-30 2019-05-01 緯創資通股份有限公司 連接模組
TWI766286B (zh) * 2020-02-03 2022-06-01 大陸商北京市商湯科技開發有限公司 圖像處理方法及圖像處理裝置、電子設備和電腦可讀儲存媒介
TWI811560B (zh) * 2020-08-17 2023-08-11 宏碁股份有限公司 資源整合系統及資源整合方法
US11995471B2 (en) 2020-08-17 2024-05-28 Acer Incorporated Resource integration system and resource integration method

Also Published As

Publication number Publication date
US20150194136A1 (en) 2015-07-09
CN104822429A (zh) 2015-08-05
TW201442766A (zh) 2014-11-16
CN108854055B (zh) 2021-08-20
US20150113527A1 (en) 2015-04-23
US20140221087A1 (en) 2014-08-07
WO2014085717A1 (en) 2014-06-05
CN104813309A (zh) 2015-07-29
DE112013005688T5 (de) 2015-08-06
US10217444B2 (en) 2019-02-26
US10049646B2 (en) 2018-08-14
US20150009222A1 (en) 2015-01-08
WO2014085785A2 (en) 2014-06-05
WO2014085714A1 (en) 2014-06-05
CN108854055A (zh) 2018-11-23
DE112013005689T5 (de) 2015-09-10

Similar Documents

Publication Publication Date Title
TW201506843A (zh) 提供給遠端顯示器的基於雲端虛擬圖形處理的方法與系統
US11909820B2 (en) Method and apparatus for execution of applications in a cloud system
US10915983B2 (en) System for distributed virtualization of GPUs in desktop cloud
US9455931B2 (en) Load balancing between processors
US20170004808A1 (en) Method and system for capturing a frame buffer of a virtual machine in a gpu pass-through environment
US20140143305A1 (en) Apparatus and system for providing software service using software virtualization and method thereof
US20130210522A1 (en) Data center architecture for remote graphics rendering
US9311169B2 (en) Server based graphics processing techniques
US8924507B2 (en) Cross-frame progressive spoiling support for reduced network bandwidth usage
US8837824B2 (en) Classification and encoder selection based on content
CN115511697A (zh) 用于虚拟化的图形处理单元分区
KR20140036220A (ko) 웹-브라우저 기반 데스크탑 및 어플리케이션 원격화 솔루션
US9613390B2 (en) Host context techniques for server based graphics processing
CN114116092A (zh) 云桌面系统处理方法、云桌面系统控制方法以及相关设备
US20180095799A1 (en) Method for managing graphic cards in a computing system
CN118069279A (zh) 用于虚拟桌面底层结构解决方案的自适应实时通信插件
CN103209178A (zh) CloudStack平台上兼容SPICE协议的方法