(57)【要約】  本発明の態様は、ゲームモードとビデオエンコードモードで動作し得るマルチモードゲーミングサーバに関する。本発明の態様では、データセンターにおいて異なる計算プロジェクトへのデマンドをモニタし、ゲーミングサーバを異なるモードに変更してそのデマンドを満たすことができる。異なるモードのゲーミングサーバの配置は、データセンターに渡る発熱を均等にバランスするように行い得る。
2017523014.tif 000002
【特許請求の範囲】
【請求項１】
計算デバイスに、データセンター内のマルチモードゲーミングサーバを管理する方法を実行させるコンピュータプログラムであって、前記計算デバイスに、
複数のマルチモードゲーミングサーバのうち５０％より多くのマルチモードゲーミングサーバをゲームモードに設定するステップであって、各マルチモードゲーミングサーバは中央処理装置とグラフィックス処理装置とビデオエンコーダとを有する、ステップと、
前記複数のマルチモードゲーミングサーバを含むデータセンターにおけるゲームへのデマンドをモニタするステップと、
前記計算デバイスが、新しいゲームセッションを求める要求レートを分析することにより、ゲームへのデマンドがいつ閾値より少なくなるか判断するステップと、
前記判断に応じて、前記複数のマルチモードゲーミングサーバのサブセットを前記ゲームモードからビデオレンダモードに移行するステップと、
前記サブセットのマルチモードゲーミングサーバにビデオレンダジョブを割り当てるステップとを実行させる、
コンピュータプログラム。
【請求項２】
前記ビデオレンダジョブはゲームスニペットである、
請求項１に記載のコンピュータプログラム。
【請求項３】
前記ゲームスニペットは、前記マルチモードゲーミングサーバにおいて、記録されたゲームアクションのビデオ画像を再生するゲームコードを実行し、前記ビデオ画像を符号化することによりレンダリングされる、
請求項２に記載のコンピュータプログラム。
【請求項４】
前記複数のマルチモードゲーミングサーバのサブセットがある前記データセンターとは離れたところにあるビデオゲーム機から、ビデオレンダジョブを受け取るステップをさらに実行させる、
請求項２に記載のコンピュータプログラム。
【請求項５】
前記ゲームモードで実行されているマルチモードゲーミングサーバから前記ビデオレンダジョブを受け取るステップをさらに実行させる、
請求項２に記載のコンピュータプログラム。
【請求項６】
データセンターユニットにおいて前記ゲームモードとビデオエンコードモードのマルチモードゲーミングサーバが均等に分布するように、前記複数のマルチモードゲーミングサーバのサブセット内の個々のサーバを選択するステップをさらに実行させる、
請求項１に記載のコンピュータプログラム。
【請求項７】
データセンターにおいて作業負荷を管理する方法であって、
第１の期間に、前記データセンターの複数のマルチモードゲーミングサーバのうち実質的にすべてのマルチモードゲーミングサーバをゲームモードに設定するステップであって、各マルチモードゲーミングサーバは中央処理装置とグラフィックス処理装置とビデオエンコーダとを有する、ステップと、
第２の期間に、前記複数のマルチモードゲーミングサーバの少なくとも５０％をビデオエンコードモードに設定するステップとを含み、
前記第２の期間は実質的に前記第１の期間と重ならない、
方法。
【請求項８】
前記第１の期間中にビデオエンコードプロジェクトを受け取り、前記第１の期間中に符号化するために前記ビデオエンコードプロジェクトを記憶するステップをさらに含む、
請求項７に記載の方法。
【請求項９】
前記ビデオエンコードプロジェクトは、ゲームプレイ中にレンダされた解像度よりも高い解像度でエンコードされるゲームスニペットである、
請求項８に記載の方法。
【請求項１０】
受け取った新しいゲームセッションを求める要求量を分析して、期間当たりの要求レートがゲームプレイ履歴データを用いて決定された閾値よりいつ低くなるかを判断することにより、前記第２の期間の始期を決定するステップをさらに含む、
請求項７に記載の方法。
【請求項１１】
レンダされたビデオゲーム画像を、ワイドエリアネットワークを介して離れたところにあるデバイスに送信するステップであって、前記レンダされたビデオゲーム画像は前記ゲームモードで動作しているマルチモードゲーミングサーバにより生成される、ステップをさらに含む、
請求項７に記載の方法。
【請求項１２】
中央処理装置（ＣＰＵ）とグラフィックス処理装置（ＧＰＵ）とビデオエンコーダとを有する複数のマルチモードゲーミングサーバと、
前記複数のマルチモードゲーミングサーバの各々をビデオエンコードモードとゲームモードとの間で移行することにより、リモートゲーミングへのデマンドを管理する制御ファブリックとを有し、
個々のゲーミングサーバは、前記ゲームモードにある時より前記ビデオエンコードモードにある時の方が、発熱が少なく、
前記ゲームモードにある時、前記個々のゲーミングサーバは、ゲームのコードを実行し、レンダされたビデオゲーム画像を生成し、前記レンダされたビデオゲーム画像はデータセンターからリモート計算デバイスに送信される、
データセンター。
【請求項１３】
前記データセンターは、ビデオエンコードジョブを受け取り、マルチモードゲーミングサーバがビデオレンダモードになった後、前記ビデオエンコードジョブを前記マルチモードゲーミングサーバに割り当てるビデオエンコードジョブマネージャをさらに有する、
請求項１２に記載のデータセンター。
【請求項１４】
前記ＧＰＵは、前記個々のゲーミングサーバが、前記ゲームモードにある時に消費する総電力の４０％ないし６０％を使う、
請求項１２に記載のデータセンター。
【請求項１５】
前記マルチモードゲーミングサーバは、市販のゲーム機でも使われているＣＰＵと、前記市販のゲーム機でも使われているＧＰＵとを有し、それにより前記市販のゲーム機のために書かれたビデオゲームコードを前記ゲーミングサーバが実行できるようにしている、
請求項１２に記載のデータセンター。
【発明の詳細な説明】
【背景技術】
【０００１】
一般に、データセンターにおける展開のために選択されるサーバは、広い範囲の計算タスクを実行できるが、幾つかの特殊な計算タスクを非常に効率的には実行できないことがある。例えば、エンタープライズサーバは、中央処理装置（ＣＰＵ）によりビデオ符号化を実行できるかも知れないが、その処理は効率的ではないかも知れない。一方、ビデオ処理のために設計されたサーバは、一般的な計算プロジェクトを効率的には実行できないかも知れない。
【発明の概要】
【０００２】
本欄では、コンセプトの一部を選んで、簡単に説明するが、これらは発明の詳細な説明で詳しく説明する。この概要は、特許を請求する主題の重要な特徴や本質的な特徴を特定するものではなく、特許を請求する主題の範囲を決定するのを助けるものでもない。
【０００３】
一態様では、データセンター内のマルチモードゲーミングサーバを管理する方法を提供する。本方法は、複数のマルチモードゲーミングサーバのうち５０％より多くのものをゲームモードに設定するステップを含む。各マルチモードゲーミングサーバは中央処理装置（ＣＰＵ）、グラフィックス処理装置（ＧＰＵ）、及びビデオエンコーダを含む。本方法は、複数のマルチモードゲーミングサーバを含むデータセンターユニットにおけるゲームを求めるデマンドをモニタするステップも含む。本方法は、計算デバイスにおいて、新しいゲームセッションを求める要求のレートを分析することにより、ゲームを求めるデマンドがいつ閾値より低くなるか決定するステップをさらに含む。本方法は、前記決定に応じて、複数のマルチモードゲーミングサーバをゲームモードからビデオレンダモードに移行するステップをさらに含む。本方法は、サブセット中のマルチモードゲーミングサーバにビデオレンダジョブを割り当てるステップも含む。
【図面の簡単な説明】
【０００４】
本発明の態様を添付した図面を参照して以下に詳細に説明する。
【０００５】
【図１】本発明の態様を実装するのに適した計算環境例を示すブロック図である。
【０００６】
【図２】本発明の一態様によるゲーム環境を示す図である。
【０００７】
【図３】本発明の一態様による、マルチモードゲーミングサーバを有する一以上のデータセンターを有するリモートゲーミング環境を示す図である。
【０００８】
【図４】本発明の一態様による様々なモードのマルチモードゲーミングサーバの構成を示す図である。
【０００９】
【図５】本発明の一態様による様々なモードのマルチモードゲーミングサーバの構成を示す図である。
【００１０】
【図６】本発明の一態様によるアクティブゲーミングリソースを有する、電力使用を示すマザーボードを示す図である。
【００１１】
【図７】本発明の一態様によるアクティブレンダーリソースを有する、電力使用を示すマザーボードを示す図である。
【００１２】
【図８】本発明の一態様によるアクティブゲームスニペットモードを有する、電力使用を示すマザーボードを示す図である。
【００１３】
【図９】本発明の一態様によるデータセンター内の負荷を管理する方法を示す図である。
【００１４】
【図１０】本発明の一態様によるデータセンター内のマルチモードゲーミングサーバを管理する方法を示す図である。
【発明を実施するための形態】
【００１５】
法定要件を満たすため、本発明の態様の主題をここに具体的に説明する。しかし、説明自体は本特許の範囲を限定することを意図するものではない。むしろ、本発明は、特許請求の主題が他の方法で実施することもできることを想定して、他の現在の又は将来の技術に関して、この文書で説明するものとは異なるステップ又は同様のステップの組み合わせを含む。さらに、「ステップ」及び／又は「ブロック」との用語を用いて、方法の異なる要素を示すが、これらの用語は、個々のステップの順序を明示的に説明しない限り、ここに開示される様々なステップ間の特定の順序を示唆するものと解釈してはならない。
【００１６】
本発明の態様は、ゲームモードとビデオエンコードモードで動作できるマルチモードゲーミングサーバ（別名「ゲーミングサーバ」または「ゲームサーバ」）の管理に関する。一般的に、データセンターコントローラは、ゲームを求めるデマンドがピークを迎えている時にはゲーミングサーバをゲームモードにし、オフピーク時にはゲーミングサーバをビデオレンダモードに移行できる。オフピーク時にビデオレンダリングを促進するために、データセンターはビデオレンダリングジョブを集積するキューを使用してもよい。このキューは、ビデオレンダリングジョブを優先して、使用可能となった第１のゲーミングサーバに、最も緊急のプロジェクトを割り当てる。
【００１７】
本発明の態様は、ゲームプレイの特徴をモニタして、ゲーミングサーバがゲームモードに入る又はゲームモードから出るべきか判断する。本発明の態様はゲームタイトルによりゲームインスタンスをモニタしてもよい。例えば、本発明の態様は、データセンターにおいてあるゲームタイトルを求めるデマンドが４００ゲームインスタンスであることを予測してもよい。一態様では、ゲーミングサーバは単一のゲームタイトル又は少数のゲームタイトルのみがプリロードされる。この場合、個々のゲーミングサーバは、そのゲームサーバが実行するように設定されたゲームを求めるデマンドが減少するにつれ、ゲームモードから移行してもよい。
【００１８】
ここでは、「ゲーミングサーバ」は、そのゲーミングサーバがビデオゲームを実行して、クライアントデバイスに送信するため、そのビデオゲームのレンダリングされたビデオストリームを生成できるようにするソフトウェアと共に、ＣＰＵ、ＧＰＵ及びハードウェアビデオエンコーダを有する計算デバイスを指す。よって、汎用サーバは「ゲーミングサーバ」ではない。さらに、クライアントに対してレンダリングされたビデオゲーム画像を生成しないサーバは、ここで言うゲーミングサーバではない。
【００１９】
ゲーミングサーバはデータセンターで動作するハードウェアとソフトウェアとを有する。具体的に、ゲーミングサーバは、データセンターファブリック（ｄａｔａ  ｃｅｎｔｅｒ  ｆａｂｒｉｃ）としても説明されるデータセンターコントローラにより様々な計算タスクを実行するよう命令される。一態様では、ゲーミングサーバは、Ｍｉｃｒｏｓｏｆｔ社のＸｂｏｘ  ３６０、ＳｏｎｙのＰｌａｙＳｔａｔｉｏｎ（登録商標）ファミリー、Ｘｂｏｘ  Ｏｎｅ、及びＮｉｎｔｅｎｄｏ社のＷｉｉなどの市販のビデオゲーム機で使われているのと同じＣＰＵ及びＧＰＵを有する。
【００２０】
本発明の態様では、データセンター内の個々のサーバまたはサーバグループの冷却ニーズに基づき、サーバを管理してもよい。一態様では、ゲーミングサーバが発生する熱は２つのモードで異なる。本発明の態様では、ゲーミングサーバのモードを変更して、データセンターユニットにおいて使用できる冷却にマッチさせる。例えば、ファンウォール（ｆａｎ  ｗａｌｌ）でラック内の一群のサーバを冷却してもよい。
【００２１】
ここで用いる「ゲーム用最適化計算リソース（ｇａｍｉｎｇ  ｏｐｔｉｍｉｚｅｄ  ｃｏｍｐｕｔｉｎｇ  ｒｅｓｏｕｒｃｅ）」は、ゲーム機などのクライアントデバイスにレンダリングされたビデオゲーム画像を出力するように構成されている。ビデオゲーム画像は、クライアントに送信される、ストリーミングビデオとしてレンダリングされてもよい。高画質のビデオゲーム画像をレンダリングするために、ゲーミング最適化計算リソースは、汎用の計算リソースに使われているようなグラフィックス処理ユニットよりもパワフルなグラフィックス処理ユニットを有することがある。ゲーム用最適化計算リソースは、専用のビデオエンコーディング機能も有する。
【００２２】
消費電力はプロセッサの機能のプロキシとして用いられる。一態様では、「ゲーミングサーバ」は、ピークパワー消費時にゲーミングサーバが使う、閾値パーセンテージより大きいパワーを消費するＧＰＵを含むことにより定義できる。一態様では、パワーの閾値パーセンテージは、ピークパワーの４０％より大きく、例えば、５０％より大きく、例えば、６０％より大きく、例えば、７０％より大きく、又は８０％より大きい。例えば、ゲーミングサーバ中のＧＰＵは、ゲーム用最適化計算リソースで（例えば、ＧＰＵ、ＣＰＵ、及びビデオエンコードの）トータルパワー使用が１５０Ｗのときに、１００Ｗ使うことがある。
【００２３】
本発明の態様では、様々なタイプの計算リソースが異なるパワーモード又は状態間を移行する。ここで、「低パワーモード」とは、リソースがその最大パワーレートの２０％未満で動作することを意味する。一例として、低パワーモードのリソースは、マザーボードソケットでシャットオフされるが、パワーオンコマンドには応答できる。
【００２４】
ここで、「アクティブ処理モード」とは、計算リソースが計算負荷をアクティブに処理していることを意味する。アクティブ処理モードの計算リソースは、２０％より大きいリソースの最大パワーレートを使うことができる。
【００２５】
本発明の態様の概要を簡単に説明したので、本発明の実施態様での使用に好適な動作環境例を以下に説明する。
《動作環境例》
【００２６】
図面を参照し、特に図１を最初に参照して、本発明の態様を実装する動作環境例を示し、広く計算デバイス１００とする。計算デバイス１００は、好適な計算環境の一例であり、本発明の使用又は機能の範囲に関する限定を示唆するものではない。どの計算デバイス１００も、例示したコンポーネントのどれかまたはその組合せに依存するまたは必要とすると解してはならない。
【００２７】
本発明は、パーソナルデータアシスタントその他のハンドヘルドデバイスなどのコンピュータその他のマシンにより実行される、プログラムコンポーネントなどのコンピュータ実行可能命令を含む一般的なコンピュータコード又は機械使用可能命令の場合に説明する。一般的に、プログラムコンポーネントは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含み、あるタスクを実行し、またはある抽象的データタイプをインプリメントするコードを言う。本発明の態様は、ハンドヘルドデバイス、コンシューマエレクトロニクス、汎用コンピュータ、専門計算デバイスなどを含む様々なシステム構成で実施してもよい。本発明の態様は、通信ネットワークによりリンクされたリモート処理装置によりタスクが実行される分散計算環境で実施することもできる。
【００２８】
図１を参照して、計算デバイス１００は、次のデバイスを直接的に又は間接的に結合するバス１１０を含む：メモリ１１２、一以上のプロセッサ１１４、一以上のプレゼンテーションコンポーネント１１６、入出力（Ｉ／Ｏ）ポート１１８、Ｉ／Ｏコンポーネント１２０、及び例示的電源１２２。バス１１０は、一以上のバスであるもの（アドレスバス、データバス、又はそれらの組み合わせなど）を表す。図１の様々なブロックは、明確化のために線で描かれているが、実際には、様々なコンポーネントを図で表現することはそれほど明らかではなく、隠喩的に、線はより正確にはグレーで曖昧である。例えば、ディスプレイデバイスなどのプレゼンテーションコンポーネントはＩ／Ｏコンポーネント１２０であると考えても良い。また、プロセッサはメモリを有する。この発明は、本技術の性質がかかる通りであり、図１は、本発明の一以上の対象に関して用いることができる単に計算デバイス例を示すだけであるものと、発明者は認識する。「ワークステーション」、「サーバ」、「ラップトップ」、「ハンドヘルドデバイス」などは区別しない。これらすべては図１の範囲内にあると考えられ、「コンピュータ」又は「計算デバイス」と呼ばれる。
【００２９】
計算デバイス１００は、一般的には、様々なコンピュータ読み取り可能媒体を含む。コンピュータ読み取り可能媒体は、計算デバイス１００によりアクセスでき、揮発性及び不揮発性の媒体、リムーバブル及び非リムーバブルの媒体を含む。限定ではなく例として、コンピュータ読み取り可能媒体は「コンピュータ記憶媒体」と「通信媒体」とを含む。コンピュータ記憶媒体には、コンピュータ読み取り可能命令、データ構造、プログラムモジュールその他のデータなどの情報を記憶するための任意の方法や技術で実施された、揮発性および不揮発性、リムーバブルまたは非リムーバブルの媒体の両方を含む。
【００３０】
コンピュータストレージ媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ又はその他のメモリ技術、ＣＤ−ＲＯＭ、デジタルバーサタイルディスク（ＤＶＤ）又はその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、又はその他の磁気ストレージデバイスを含む。コンピュータストレージ媒体は伝搬されるデータ信号は含まない。
【００３１】
通信媒体は、一般的に、キャリア波などの変調データ信号やその他の伝送メカニズム中のコンピュータ読み取り可能命令、データ構造、プログラムモジュールその他のデータを化体し、任意の情報配信媒体を含む。「変調データ信号」との用語は、情報を信号にエンコードするように設定または変更された特徴を有する信号を意味する。限定でなく例示として、通信媒体は、優先ネットワークや直接優先接続などの有線媒体と、音響、ＲＦ、赤外線、その他の無線媒体などの無線媒体とを含む。上記のものの任意の組合せもコンピュータ読み取り可能媒体の範囲内に含まれる。
【００３２】
メモリ１１２は、揮発性及び／又は不揮発性メモリの形式のコンピュータストレージ媒体を含む。メモリ１１２は、リムーバブルでも、非リムーバブルでも、又はこれらの組み合わせでもよい。メモリの例には、固体メモリ、ハードディスクドライブ、光ディスクドライブなどが含まれる。計算デバイス１００は、バス１１０、メモリ１１２又はＩ／Ｏコンポーネント１２０などの様々なエンティティからデータを読む一以上のプロセッサ１１４を含む。プレゼンテーションコンポーネント１１６はユーザまたはその他のデバイスにデータ指示（ｄａｔａ  ｉｎｄｉｃａｔｉｏｎｓ）を提供する。プレゼンテーションコンポーネント１１６の例は、ディスプレイデバイス、スピーカ、印刷コンポーネント、振動コンポーネントなどを含む。Ｉ／Ｏポート１１８により、計算デバイス１００は、Ｉ／Ｏコンポーネント１２０を含むその他のデバイスに論理的に結合しており、そのうちの幾つかは組み込まれていても良い。例示のＩ／Ｏコンポーネント１２０は、マイクロホン、ジョイスティック、ゲームパッド、パラボラアンテナ（ｓａｔｅｌｌｉｔｅ  ｄｉｓｈ）、スキャナ、プリンタ、ワイヤレスデバイスなどを含む。
《オンラインゲーミング環境例》
【００３３】
図２を参照して、本発明の一態様による、マルチモードゲーミングサーバがデータセンター内に展開されるオンラインゲーミング環境２００を示す。オンラインゲーミング環境２００は、ネットワーク２２０を通してゲームサービス２３０に接続された様々なゲームクライアントを含む。ゲームクライアント例は、ゲーム機２１０、タブレット２１２、及びパーソナルコンピュータ２１４を含む。スマートフォンなどのその他のゲームクライアントを用いることも可能である。ゲーム機２１０は、それに通信可能に結合された一以上のゲームコントローラを有する。一態様では、タブレット２１２は、ゲーム機２１０又はパーソナルコンピュータ２１４の入力デバイスとして機能してもよい。他の一態様では、タブレット２１２はスタンドアロンのゲームクライアントである。ネットワーク２２０はインターネットなどのワイドエリアネットワークであってもよい。
【００３４】
ゲームサービス２３０は、互いに通信可能に結合された複数の計算デバイスを含む。一態様では、ゲームサービス２３０は、マルチモードゲーミングサーバを含む一以上のデータセンターを用いて実装される。データセンターは、世界中の都市を含む様々な地理的領域にわたり広がっていてもよい。このシナリオでは、ゲームクライアントは最も近いデータセンターに接続してもよい。本発明の実施形態はこの設定に限定されない。
【００３５】
ゲームサービス２３０により、ゲームは、ゲームサービス２３０により提供されるゲームを、計算デバイス内で実行できる。ゲームサービスとゲームクライアント間の通信セッションは、ゲームサービス２３０への入力トラフィックを送り（ｃａｒｒｉｅｓ）、レンダリングされたゲーム画像を返す。この態様では、ゲームサービスの一部である計算デバイスは、様々なゲームクライアントに関連する入力デバイスにより生成された制御ストリームを用いて、ビデオゲームコードを実行するレンダリングされたビデオゲームは、次いで、ネットワークを介してゲームクライアントに送信され、レンダリングされたゲームはそこで表示のため出力される。
【００３６】
ゲームサービス２３０は、非マルチモードゲーミングサーバとマルチモードゲーミングサーバとの組み合わせを用いて、ゲームを実行し、ビデオゲーム画像をレンダリングするデータセンターにより提供されてもよい。一態様では、最低限の又は基本的なゲーミングデマンドにマッチするように、非マルチモードゲーミングサーバが含まれていても良い。非マルチモードゲーミングサーバは、様々なフォーマットでビデオをレンダリングするソフトウェアを含んでいなかも知れない。一方、マルチモードゲーミングサーバは、ビデオを一以上のフォーマットにエンコードするソフトウェアを含んでいてもよい。
《ゲームサービス例》
【００３７】
ここで図３を参照して、本発明の一態様によるリモートゲーミング環境３００を示す。ゲーミング環境３００は、ネットワーク３３０を介してゲームサービス３４０に通信可能に結合したゲームクライアント３１０を含む。ゲーミングサービスは、一以上のマルチモードゲーミングサービスを用いて、ピークゲーミングデマンドに対応してもよい。
【００３８】
ある実施形態では、ネットワークはインターネットであってもよい。図３のデバイスとそのデバイスで実行されているプログラムは、一以上の通信プロトコルを用いた互いに通信してもよい。通信プロトコルには、ＨＴＴＰ（ｈｙｐｅｒｔｅｘｔ  ｔｒａｎｓｆｅｒ  ｐｒｏｔｏｃｏｌ）、ＲＴＰ（ｒｅａｌ−ｔｉｍｅ  ｔｒａｎｓｐｏｒｔ  ｐｒｏｔｏｃｏｌ）、ＲＴＳＰ（ｒｅａｌ  ｔｉｍｅ  ｓｔｒｅａｍｉｎｇ  ｐｒｏｔｏｃｏｌ）、ＲＴＭＰ（ｒｅａｌ  ｔｉｍｅ  ｍｅｓｓａｇｉｎｇ  ｐｒｏｔｏｃｏｌ）、ＳＯＡＰ（ｓｉｍｐｌｅ  ｏｂｊｅｃｔ  ａｃｃｅｓｓ  ｐｒｏｔｏｃｏｌ）、ＲＥＳＴ（ｒｅｐｒｅｓｅｎｔａｔｉｏｎａｌ  ｓｔａｔｅ  ｔｒａｎｓｆｅｒ）、ＵＤＰ（ｕｓｅｒ  ｄａｔａｇｒａｍ  ｐｒｏｔｏｃｏｌ）、及び／又はＴＣＰ（ｔｒａｎｓｍｉｓｓｉｏｎ  ｃｏｎｔｒｏｌ  ｐｒｏｔｏｃｏｌ）が含まれる。
【００３９】
ゲームクライアント３１０は、第１のゲーム入力デバイス３１２と、第２のゲーム入力デバイス３１４と、ディスプレイ３１６とに接続されている。ゲーム入力デバイスの例には、ゲームパッド、キーボード、マウス、タッチパッド、タッチスクリーン、音声コマンドを受信するマイクロホン、奥行きカメラ、ビデオカメラ、キーボード、及びトラックボールを含む。本発明の態様はこれらの入力デバイスに限定されない。ディスプレイデバイス３１６はビデオゲームコンテンツを表示できる。例えば、ディスプレイ３１６は、テレビジョンまたはコンピュータスクリーンであってもよい。他の一態様では、ディスプレイ３１６はゲームクライアント３１０に組み込まれたタッチスクリーンである。
【００４０】
ゲームクライアント３１０はビデオゲームを実行できる計算デバイスである。ゲームクライアント３１０はタブレットまたはラップトップコンピュータであってもよい。他の一態様では、ゲームクライアント３１０はゲーム機であり、ディスプレイ３１６はそのゲーム機に通信可能に結合したリモートディスプレイである。ゲームクライアント３１０は、動作環境３２０、ゲーム実行環境３２２、ゲームデータストア３２４、ゲームサービスクライアント３２６、及びプレーヤプロフィールデータストア３２８を含む。
【００４１】
動作環境３２０は、ハードウェアを管理し、ゲームクライアント３１０上で実行されているアプリケーションにサービスを提供するオペレーティングシステムにより提供されてもよい。オペレーティング環境は、クライアントリソースに、ゲームマイグレーション（ｇａｍｅ  ｍｉｇｒａｔｉｏｎ）の一部として、異なるアプリケーションを割り当ててもよい。例えば、動作環境は、ゲームプレイがゲームクライアント３１０に移行（ｍｉｇｒａｔｅ）されると、ゲーム実行環境３２２にディスプレイの制御を移す。
【００４２】
ゲーム実行環境３２２は、ゲームまたはゲームプレビューのインスタンスを実行するのに必要なクライアント３１０上のゲームリソースを含む。ゲーム実行環境３２２は、計算及びビデオ処理と共にアクティブメモリを含む。ゲーム実行環境３２２は、ゲーム制御を受け取り、ゲームのプログラムにしたがってそのゲームを操作及び進行させる。一態様では、ゲーム実行環境３２２は、レンダリングされたビデオストリームを出力する。ビデオストリームはディスプレイ３１６に送られる。
【００４３】
ゲームデータストア３２４は、ダウンロードされたゲーム、ゲームプレビュー、及び部分的にダウンロードされたゲームを記憶する。
【００４４】
ゲームサービスクライアント３２６は、ゲームサービス３４０から受け取った、レンダリングされたビデオゲーム画像を表示するクライアントアプリケーションである。ゲームサービスクライアント３２６は、ゲーム入力を処理し、それをアップロードが容易なフォーマットに変更してもよい。このフォーマットがゲームサービス３４０に送信される。ゲームサービスクライアント３２６は、サービス３４０から受信したレンダリングされたビデオゲーム画像を、ディスプレイ３１６に対して最適化されたサイズにスケーリングしてもよい。
【００４５】
プレーヤプロフィールデータストア３２８は、個々のゲームのプレーヤプロフィール情報を記憶する。プレーヤプロフィール情報は、プレビューを含む個々のゲームのツームストーン（ｔｏｍｂｓｔｏｎｅｓ）またはゲーム保存データを保存してもよい。ゲーム保存ファイル及びツームストーンの両方は、ゲーム進行を記録する。ゲーム実行環境３２２は、ゲーム保存データを読み出し、プレーヤがやめたところからサーバ上でゲームを開始する。反対のシナリオも可能であり、ゲーム保存データとプレーヤプロフィール情報がゲームクライアント３１０からゲームサービス３４０にアップロードされ、ゲームが開始されてもよい。
【００４６】
ゲームサービス３４０は、接続マネージャ３４２、プレーヤプロフィールデータストア３４４、ゲーム実行環境３４８、及びゲームデータストア３５０を有する。ゲームサービス３４０は、単一のボックスとして示したが、マルチモードゲーミングサーバを含む多数のマシンを有するデータセンターに、さらには複数のデータセンターに実装されてもよい。
【００４７】
接続マネージャ３４２は、クライアント３１０とサービス３４０との間に接続を構成する。接続マネージャ３４２は、ゲームサービス３４０にアクセスする許可をユーザが受けていることを確認する様々な認証メカニズムを提供してもよい。接続マネージャ３４２は、また、接続において使用できる帯域幅を分析して、ゲームプレイ中にゲームのダウンロードを調節し、ゲームプレイが損なわれないようにする。
【００４８】
プレーヤプロフィールデータストア３４４は、接続マネージャ３４２と連動して動作し、プレーヤ情報を構成及び記憶してもよい。プレーヤプロフィールの一部は、プレーヤの氏名、住所、またはゲームサービスにより提供されるゲーム及び体験に対する支払い又は購入をするためのクレジットカード情報その他の手段などのデモグラフィック情報及び金融情報を含んでもよい。
【００４９】
また、プレーヤプロフィールデータストア３４４は、個々のゲーム中にプレーヤの進行を記憶してもよい。プレーヤがゲーム又はゲームプレビューを進むにつれ、プレーヤのスコアとゲームレベルへのアクセスとが記憶されてもよい。さらに、プレーヤプロフィールデータストア３４４は、言語選択などの個々のプレーヤの選択（ｐｒｅｆｅｒｅｎｃｅｓ）に関する情報を記憶してもよい。プレーヤのゲームクライアント及びネットワーク接続のスピードに関する情報も記憶されてもよく、ゲーム体験を最適化するのに使用されてもよい。例えば、一態様では、地理的に最も近いデータセンターがビジーであるとき、レイテンシがより高いインターネット接続をしているプレーヤは、好ましくは最も近いデータセンターに接続し、レイテンシがより低い接続をしているプレーヤは、より遠いデータセンターに接続してもよい。このように、レイテンシが増えても最も良く処理できるネットワーク接続をしているプレーヤが、レイテンシが増えるデータセンターに接続される。
【００５０】
プレーヤプロフィールデータストア３４４は、個々のプレーヤの使用履歴を記憶してもよい。ゲームの購入、ゲームの試用、又はゲームの購入を必要としないゲームサービスによるプレイが記憶されてもよい。使用情報を分析して、個々のプレーヤに関心のあるゲームを示唆してもよい。一態様では、購入履歴は、ゲームサービスを通して購入されていないゲームを含んでもよい。例えば、購入履歴は、小売店で購入されたゲームのキーを入力して、プレーヤにより補われてもよい。幾つかの態様では、プレーヤは、自分のゲームクライアント３１０で、及びゲームクライアントのところにいない時にはゲームサービスを通じて、両方で、ゲームにアクセスしてもよい。
【００５１】
ゲーム実行環境３４８は、ゲームのインスタンスを実行するのに必要なゲームリソースを含む。これらは、ゲームマネージャ３５２その他のコンポーネントにより管理される、前述のリソースである。ゲーム実行環境３４８は、計算及びビデオ処理と共にアクティブメモリを含む。ゲーム実行環境３４８は、Ｉ／Ｏチャンネルを通じてゲーム制御を受け取り、ゲームのプログラムにしたがってそのゲームを操作及び進行させる。一態様では、ゲーム実行環境３４８は、レンダリングされたビデオストリームを出力する。ビデオストリームはゲームクライアントに送られる。他の態様では、ゲーム実行環境３４８は、ゲームジオメトリ（ｇａｍｅ  ｇｅｏｍｅｔｒｙ）又はその他の表現（ｒｅｐｒｅｓｅｎｔａｔｉｏｎｓ）を出力する。これはゲームビデオをレンダリングするゲーミングクライアントでローカルオブジェクトと結合されてもよい。
【００５２】
ゲームデータストア３５０は使用可能なゲームを格納する。ゲームはデータストアから読み出され、アクティブメモリを通して起動される。ゲームデータストア３５０は、パッシブ又は補助メモリとして説明されてもよい。一般的に、ゲームデータストア３５０のゲームはプレーオフできない。しかし、幾つかの態様では、補助メモリは仮想メモリとして使用されてもよい。この場合、ゲームデータストア３５０の一部がアクティブメモリとして機能してもよい。これは、アクティブメモリは必ずしも特定のハードウェアコンポーネントにより確定されず、ゲームリソースがメモリ中のオブジェクトをアクティブに操作及びアクセスできる能力により確定される。
【００５３】
ここで図４を参照して、本発明の一態様によるデータセンター４００内のマルチモードゲーミングサーバ構成４００を示す。この構成はラック４１０、ラック４１２、ラック４１４及びラック４１６を含む。簡単のため、４つのラックを示す。実際の実装では、数十、数百、又は数千のラックがデータセンター内に展開されてもよい。各ラックは、多数のサーバ、配電機器、及びネットワーキング機器を含む。一実施形態では、ネットワーキングケーブルが、ラック内のルータ／スイッチに配線される。ラック中の各サーバはルータに接続される。同様に、電源がラックに結合された配電ステーションに配線（ｒｕｎ）される。各サーバは配電ステーションに結合される。
【００５４】
また、各ラックはファンなどの冷却機器を含み得る。一構成では、サーバの背後にファンウォールを設け、サーバを通して空気を吸引する。ファンウォールは、複数列のファンを有し、各列が一群のサーバを冷却する。垂直冷却構成では、一以上のファンがラックの上または下に配置され、ラック内のサーバへの気流を促進する。冷却機器は、温度、圧力、及びラックを通る気流を測定する熱電対その他のセンサを含んでも良い。ラックは、一以上の固定又は調節可能なバッフルを含み、冷却が必要なところに空気を配分してもよい。
【００５５】
制御ファブリック（ｃｏｎｔｒｏｌ  ｆａｂｒｉｃ）４０２は、代替的にデータセンターコントローラとしても説明されるが、ラックと、そのラック内のマルチモードゲーミングサーバとに通信可能に結合している。制御ファブリック４０２は各マルチモードゲーミングサーバの状態を管理する。例えば、制御ファブリック４０２は、ゲームモードとビデオエンコードモードとの間でマルチモードゲーミングサーバを移行できる。制御ファブリック４０２は、ゲームセッションとビデオエンコードジョブとを開始するステップを含む負荷を、複数の計算デバイスに分散できる。制御ファブリック４０２は、ラック内の冷却機器も管理できる。例えば、制御ファブリック４０２は、ラック内のサーバが低パワーモードにある時、そのラック内のファンスピードを下げることができる。
【００５６】
ビデオエンコードジョブマネージャ４０４は、ビデオエンコードジョブを蓄積して分配する。一態様では、ジョブマネージャ４０４は、単一のビデオが異なる複数のビデオフォーマットでエンコードされることを要するビデオエンコードジョブを受け取る。フォーマット例は、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅｓ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）、Ｈ．２６１、Ｈ．２６２、Ｈ．２６３、Ｈ．２６４、及びＨ．２６５エンコーダ、非公式にはＶＣ−１として知られているＳＭＰＴＥ（Ｓｏｃｉｅｔｙ  ｏｆ  Ｍｏｔｉｏｎ  Ｐｉｃｔｕｒｅ  ａｎｄ  Ｔｅｌｅｖｉｓｉｏｎ  Ｅｎｇｉｎｅｅｒｓ）４２１Ｍ、及びＤｉｒａｃまたはＶＣ−２を含む。
【００５７】
制御ファブリック４０２は、使用データを分析して、なかんずく、あるゲームタイトルのいくつのスタンバイインスタンス（ｓｔａｎｄｂｙ  ｉｎｓｔａｎｃｅｓ）が使用可能であるべきか、いくつのゲーミングサーバがスタンバイインスタンスに対応（ａｃｃｏｍｍｏｄａｔｅ）するゲームモードにあるべきか、判断する。一般に、デマンドが大きいゲームでは、ゲームのスタンバイインスタンスがより多く使用可能である。ゲームをアクティブメモリにロードしてスタンバイインスタンスを生成するには１，２分かかる。そのため、チャーンインとアウト（ｃｈｕｒｎ  ｉｎ  ａｎｄ  ｏｕｔ）が大きいゲームは、より多くのスタンバイゲームインスタンスを使用できるようにする必要がある。ゲームタイトルのスタンバイインスタンスを生成するのにかかる時間も考慮しなければならない。比較的速くロードできるゲームは、スタンバイインスタンスが少なくて良い。追加のゲームインスタンスを、デマンドが変化するのに応じて素早く生成できるからである。言い換えると、ロード時間がかかるゲームは、より多くのスタンバイゲームを必要とする。各ゲーミングサーバにより処理されるゲームインスタンスの数も要因である。一態様では、個々のゲーミングサーバは２つのゲームインスタンスを生成できる。ゲームインスタンスはマルチプレーヤインスタンスであってもよい。
【００５８】
制御ファブリック４０２は、ゲーミングサーバのリソースをゲームプールに割り当てても良い。ゲームプールに割り当てられるサーバリソースは、アクティブゲームインスタンスを実行するのに必要なリソース、及びプレーヤにひも付けられていないスタンバイゲームインスタンスを含む。様々なゲームに対するデマンドが時間的に変化するにつれ、ゲームプールへのリソースの割り当ては調整され得る。さらに、使用履歴データ（ｈｉｓｔｏｒｉｃａｌ  ｕｓａｇｅ  ｄａｔａ）を使用して変化を予測してもよい。例えば、第１のゲームが午後１０：００と真夜中の間に第２のゲームより多くプレイされ、第２のゲームは日中により多くプレイされる場合、午後１０：００から真夜中の間は、第２のゲームと第１のゲームとの間でリソースがスイッチされてもよい。
【００５９】
データセンターの異なるゲーミングサーバには、異なるビデオ符号化ソフトウェアがインストールされているかも知れない。例えば、各ゲーミングサーバはビデオを、１通り又は２通りの異なるフォーマットでエンコードできるだけかも知れない。データセンターにおいて符号化ソフトウェアを分散させることにより、最もよく使われる符号化フォーマットを均等に分散させてもよい。符号化ソフトウェアを均等に分散することにより、データセンター内に「ホットスポット（ｈｏｔ  ｓｐｏｔｓ）」ができるのを防げる。ホットスポットは、一群のサーバであって、他のサーバが動作していない時、又はより低いパワーレベルで動作している時に、動作しているものである。ホットスポットを防ぐことにより、データセンター又はその一部に必要な冷却量を減らすことができる。
【００６０】
ネットワークリソースが、制御ファブリック４０２によって管理され、クライアントデバイスとゲームセッションとの間の通信をしてもよい。このように、追加的計算デバイスがゲームサービスに割り当てられるにつれて、ネットワークリソースが更新され、ゲームサービスが実行されている計算デバイスに通信が適宜ルーティングされてもよい。
【００６１】
ラック４１４と４１６は、モードが入り混ざった（ｍｉｘｔｕｒｅ）マルチモードゲーミングサーバを示す。本発明の態様は、ラックシャーシなどのデータセンターユニットにおけるモードの混ざりに限定されない。一態様では、データセンターユニット内のすべてのマルチモードゲーミングサーバは、ラック４１６のように、同じモードで動作している。図４に示すように、ラック４１４のように、ラック内のモードが入り混ざってもよい。
【００６２】
例示として、ラック４１６は、ゲームモードのマルチモードゲーミングサーバ４２０と、ゲームモードのマルチモードゲーミングサーバ４２２と、ゲームモードのマルチモードゲーミングサーバ４２４とを含む。ラック４１６中のすべてのゲーミングサーバはゲームモードである。
【００６３】
例示として、ラック４１４は、ビデオエンコードモード（ｖｉｄｅｏ  ｅｎｃｏｄｅ  ｍｏｄｅ）のマルチモードゲーミングサーバ４３０と、ゲームモードのマルチモードゲーミングサーバ４３２と、ゲームモードのマルチモードゲーミングサーバ４２４とを含む。３つのゲーミングサーバのうち１つはビデオエンコードモードであり、残りはゲームモードである。さらに、ビデオエンコードモードのゲーミングサーバは、ラック４１４に均等に分散している。２つに１つサーバ、３つに１つのサーバ、又はＮ個に１つのサーバ（ここで、Ｎは整数である）は、データセンターユニットにおける均等に分散したサーバモードの例である。一態様では、ラック内の計算デバイスは、均一なハードウェア構成をしていて、ゲームに最適化されたモードと非ゲームに最適化されたモードとの間でスイッチできる。
【００６４】
マルチモードゲーミングサーバはゲーム最適とビデオエンコードモードとの間で移行できる。一態様では、データセンターは複数の単一モードサーバが混ざったものも含み得る。単一モードサーバの数は、最適化されたサーバにより提供される計算サービスに対するベースデマンドに対応するように指定されてもよい。ベースデマンド（ｂａｓｅ  ｄｅｍａｎｄ）を満たすための単一モードサーバの展開により、単一モードサーバは平均的に、閾値時間より長くアクティブであり得る。例えば、展開される単一モードサーバの数は、平均で、１日の８０％、アクティブでありうる数に限定されてもよい。ゲームなどの負荷に対して最適化された単一モードサーバと組み合わせて、マルチモードゲーミングサーバをピーク使用期間中に用いて、ゲームデマンドに対応することもできる。ピーク時には、ゲーミングサーバはビデオエンコードモードに移動することができる。
【００６５】
ここで図５を参照して、本発明の一態様によるデータセンター４００内のマルチモードゲーミングサーバ構成４００を示す。図５のハードウェアコンポーネントは図４を参照して前述した。図５は、図４と比較して、オフピークのゲーム使用時における、ゲームモードからビデオエンコードモードへのゲーミングサーバの移行を示す。
【００６６】
例示として、ラック４１６は、ゲームモード（ｇａｍｅ  ｍｏｄｅ）のマルチモードゲーミングサーバ４２０と、ビデオエンコードモードのマルチモードゲーミングサーバ４２２と、ゲームモードのマルチモードゲーミングサーバ４２４とを含む。ビデオエンコードモードのゲーミングサーバは、ラック４１６に均等に分散している。
【００６７】
例示として、ラック４１４は、ビデオエンコードモード（ｖｉｄｅｏ  ｅｎｃｏｄｅ  ｍｏｄｅ）のマルチモードゲーミングサーバ４３０と、ゲームモードのマルチモードゲーミングサーバ４３２と、ビデオエンコードモードのマルチモードゲーミングサーバ４３４とを含む。３つのゲーミングサーバのうち２つはビデオエンコードモードであり、残りはゲームモードである。さらに、ビデオエンコードモードのゲーミングサーバは、ラック４１４に均等に分散している。
【００６８】
ここで図６を参照して、本発明の一態様によるゲーミングサーバ内の異なるタイプのリソースが、ゲームモードにおけるそれぞれの使用電力量と共に示されている。マルチパーパス（ｍｕｌｔｉｐｕｒｐｏｓｅ）サーバはマザーボード６００を含む。マザーボード６００は、ゲーム最適化ＣＰＵ６１０、ゲーム最適化ＧＰＵ６１２及びビデオエンコーダ６１４を含む。また、図示しないが、マザーボード６００は、ゲーミングサーバの動作をサポートするメモリ及びその他のコンポーネントを含む。例えば、ＣＰＵは専用ＤＲＡＭを有し得る。
【００６９】
一態様では、ゲーム最適化ＣＰＵ６１０とゲーム最適化ＧＰＵ６１２とは、市販のゲーム機に入っているのと同じチップである。ゲーム機の例には、Ｘｂｏｘ  ３６０、ＳｏｎｙのＰｌａｙＳｔａｔｉｏｎ（登録商標）ファミリー、Ｘｂｏｘ  Ｏｎｅ、及びＮｉｎｔｅｎｄｏのＷｉｉなどが含まれる。ゲーミングサーバのハードウェア構成は、同一のチップセット使用を含め、ゲームを市販のゲーム機に書き込み、ゲームコードを修正せずに、マルチモードゲーミングサーバ上で実行するように構成され得る。ゲームがゲーム機のハードウェアとインターラクトするのと同じように、ゲームコードがハードウェアとインターラクトする場合、ゲームコードへの修正は必要ない。例えば、ゲーム機のＧＰＵにより実行されるプロセスは、ゲームサーバのＧＰＵにより実行され、同じ結果を生じ得る。
【００７０】
ゲームモードでは、図６に示すように、ゲーム最適化ＣＰＵ６１０は５０Ｗ使っている。対照的に、ゲーム最適化ＧＰＵ６１２は９０Ｗ使い、ビデオエンコーダ５１４は１０Ｗ使い、ゲームモードでは総使用量が１５０Ｗである。
【００７１】
ここで図７を参照して、本発明の一態様によるビデオレンダモードにおけるパワー使用を説明する。ビデオレンダモードでは、ゲーム最適化ＣＰＵ６１０は１Ｗのみ使い（ｄｒａｗｉｎｇ）、ゲーム最適化ＧＰＵ６１２は５０Ｗ使い、ビデオエンコーダ６１４は１０Ｗ使い、トータルで６１Ｗである。ゲームモードと比較すると、ビデオ符号化はＣＰＵ集約的でなく、ＧＰＵ集約的でもない。電力使用量と発熱とは相関しているので、ゲーミングサーバは、ビデオレンダモードにある時に、発熱量が小さい。
【００７２】
ここで図８を参照して、本発明の一態様によるゲームスニペットモードにおける電力使用量を説明する。ゲームスニペットモードは特殊なタイプのビデオレンダリグモードである。ゲームスニペットはビデオゲームをプレイしているユーザのビデオである。ゲームスニペットはブラッグビデオ（ｂｒａｇ  ｖｉｄｅｏ）として説明されることもある。例えば、スニペットは、プレーヤがスプーンを使って邪悪な魔法使いを退治する３０秒のレコーディングである。ユーザは、友達と達成のビデオを録画、プレイ、及び共有できる。一態様では、ユーザは、ビデオゲームのネイティブ解像度により生成されるより高い画質のビデオを要求することができる。
【００７３】
これらの要求は、バッチされ、オフピークのゲーミング時間中にゲーミングサーバを用いてビデオ符号化される。一態様では、ゲームジオメトリは、スニペットを構成するのに使われるプレイの部分のゲーム状態情報を伴う、その要求の部分である。ここで、ゲームジオメトリは、ゲーム世界の外観の記述であり、その世界におけるプレーヤのロケーション、動き及び外観を含む。この場合、ゲームサーバは、ビデオゲームを、記録されたジオメトリとゲーミングサーバ上のゲームコードとを用いて実行し、より高解像度のゲームスニペットを生成する。このプロセスは、実際のゲームをプレイするよりもＣＰＵ集約的ではない。
【００７４】
ゲームスニペットモードでは、ゲーム最適化されたＣＰＵ６１０が２５Ｗ使い、ゲーム最適化されたＧＰＵ６１２が９０Ｗ使い、ビデオエンコーダ６１４が１０Ｗ使い、トータル１２５Ｗである。ゲームモードと比較して、ゲームスニペットモード（ｇａｍｅ  ｓｎｉｐｐｅｔ  ｍｏｄｅ）はＣＰＵ集約的ではなく、ＧＰＵ集約的でもない。電力使用量と発熱は相関しているので、ゲーミングサーバは、ゲームスニペットモードにあるとき、ゲームモードにあるときよりも、発熱が少ない。対照的に、ゲーミングサーバは、ビデオレンダモードにある時よりも、ゲームスニペットモードにある時の方が、多くの熱を発生する。
【００７５】
ここで、図９を参照して、本発明の一態様による、データセンター内のマルチモードゲーミングサーバを管理する方法９００を説明する。一態様では、方法９００は、前述のデータセンターコントローラ４０２などのデータセンターコントローラにより実行される。複数のマルチモードゲーミングサーバは、中央処理装置（ＣＰＵ）と、グラフィックス処理装置（ＧＰＵ）と、ビデオエンコーダとを有する。さらに、ゲーミングサーバは、ゲーミングサーバがビデオゲームを実行し、クライアントデバイスに送信するためのビデオゲームのレンダされたビデオストリームを生成するソフトウェアを有する。このように、汎用サーバは「ゲーミングサーバ」ではない。さらに、クライアントに対してレンダされたビデオゲーム画像を生成しないサーバは、ここで言うゲーミングサーバではない。
【００７６】
ステップ９１０において、複数のマルチモードゲーミングサーバのうち５０％より多いマルチモードゲーミングサーバがゲームモードに設定される。例えば、マルチモードゲーミングサーバの６０％以上、例えば８０％や１００％のマルチモードゲーミングサーバがゲームモードに設定され得る。一態様では、１００％のマルチモードゲーミングサーバが、ピークデマンドに対応するよう、ゲームモードに設定される。
【００７７】
ステップ９２０において、複数のマルチモードゲーミングサーバを含むデータセンターにおけるゲームへのデマンドをモニタする。本発明の態様は、デマンドをモニタし、予測し、リモートゲームサービスにおけるサーバモードを動的に管理して、デマンドに対応する。ゲームサービスは、ユーザがインターネットなどのワイドエリアネットワークを介して接続する、リモートゲーミング環境を提供する。例えば、ゲームサービスは、一連のサーバ、または世界中にある一連のデータセンターを使用して、ビデオゲームをホストする。プレーヤは、ゲーム機、スマートフォン、タブレット、パーソナルコンピュータ、その他の計算デバイスを含む様々なクライアントデバイスを用いて、ゲームサービスに接続する。
【００７８】
本発明の態様では、ゲームプレイの特徴をモニタして、ゲーミングサーバがゲームモードに、又はゲームモードから移行されるべきか判断する。本発明の態様では、ゲームタイトルごとにゲームインスタンスをモニタする。例えば、本発明の態様では、データセンターにおいてあるゲームタイトルへのデマンドが４００ゲームインスタンスであると予測してもよい。一態様では、ゲーミングサーバは単一ゲームタイトルで、又は少数のゲームタイトルのみでプリロードされる。この場合、そのゲームサーバが実行するように設定されている１つのゲーム又は複数のゲームへのデマンドが減少すると、ゲーミングサーバはゲームモードから移行されてもよい。
【００７９】
デマンド予測を用いて、ゲームへのピークデマンド及びピークデマンドの時刻を判断し、ピークデマンドを越えたことを示すそのゲームの要求レート閾値を決定する。デマンドがより大きいゲームは、プレーヤがすぐに立ち寄れるスタンバイゲームインスタンスをより多く有しても良い。デマンドがより小さいゲームは、プレーヤがドロップインするのを待つアクティブゲームインスタンスがより少なくてもよい。様々なゲームのスタンバイインスタンスの数は、サーバのロケーション及びそのサーバによりサービスされるプレーヤによって異なっても良い。
【００８０】
スタンバイ状態では、アクティブメモリのゲームオブジェクトは、ゲームを実行するゲームサーバによりアクセス可能であり、操作可能である。アクティブメモリは、ゲームオブジェクトがパッシブに格納されるが、そのゲームオブジェクトはゲームアクションにおいて操作可能でない補助メモリと対照をなす。アクティブメモリで実行されるスタンバイゲームインスタンスは、プレーヤプロフィール又はゲームクライアントからのＩ／Ｏチャネルにはアタッチ（ａｔｔａｃｈ）されない。プレーヤがゲームを要求すると、そのプレーヤのプレーヤプロフィールが実行されているゲームインスタンスにロードされ、Ｉ／Ｏチャネルがゲームクライアントからゲームインスタンスにマップされる。このように、スタンバイゲームインスタンスは、プレーヤプロフィールやＩ／Ｏチャネル無しに実行されてもよい。プレーヤがスタンバイインスタンスに加えられると、ゲームインスタンスがアクティブインスタンスになる。
【００８１】
ゲームサービスの様々な特徴がモニタされ、デマンドを予測して最適な数のゲームインスタンスをスタンバイさせるために使われてもよい。例えば、タイトルの実行されているアクティブゲームセッションの数が、新しいゲームセッションに対する要求と、そのゲームタイトルの新しいゲームセッションを生成するのに係る時間と共にモニタする。これらの特徴を用いて、ゲームセッションの数が増減するのに応じて、デマンドを満たすのに必要な、ゲームモードのゲーミングサーバの最適数を計算するのに使われても良い。
【００８２】
ステップ９３０において、新しいゲームセッションを求める要求レートを分析することにより、ゲームへのデマンドが閾値より下がったことを判断する。新しいゲームセッションに対する要求は、ユーザがそのゲームサービスを介してあるゲームタイトルをプレイする要求であり得る。要求の絶対レートと、要求レートの変化との両方を分析できる。例えば、閾値は１分あたり５要求より少ないであり、レートの減少は、例えば１分あたり１要求の減少であってもよい。レートは、一時的なレートの急上昇をならすため、ローリング平均（ｒｏｌｌｉｎｇａｖｅｒａｇｅ）として計算してもよい。
【００８３】
上述の通り、閾値レートは使用履歴の分析に基づいて計算してもよい。閾値レートは、ゲーミングサーバをゲームモードに戻さなくても良い信頼因子（ｃｏｎｆｉｄｅｎｃｅ  ｆａｃｔｏｒ）（９０％確率など）を反映して、次の１２時間内のゲームへのデマンドに対応することができる。
【００８４】
ステップ９４０において、前記決定に応じて、複数のマルチモードゲーミングサーバをゲームモードからビデオレンダモードに移行する。複数のゲーミングサーバは、ゲーミングサーバに命令を送信することにより、ゲームモードからビデオエンコードモードに移行されてもよい。その命令に応じて、ゲーミングサーバは、アクティブメモリから、ビデオゲームタイトルのゲームコードを含むゲーミング機能を削除してもよい。ゲーミングサーバは、ビデオ符号化を実行するのに必要なソフトウェアをロードし、アクティブメモリへのビデオ符号化ジョブを管理する。
【００８５】
サブセット中のゲーミングサーバは、ゲームモードのサーバがビデオエンコードモードのサーバと均等に分散するように選択されてもよい。前述の通り、ビデオエンコードモードのサーバは、ゲームモードのサーバより発熱が少ないかも知れない。サーバを均等に分散することにより、データセンター中の冷却を減らして、エネルギーを節約できる。不均一な分散は、データセンターの最も暑い部分に対応するため、冷却を高レベルに維持しなければならない。冷却をデータセンターの部分に粒度レベルで提供できる場合、そのデータセンターの部分内で均等分布を行ってもよい。
【００８６】
ステップ９５０において、ビデオレンダジョブがサブセット中のマルチモードゲーミングサーバに割り当てられる。一態様では、ビデオレンダジョブはゲームスニペットである。前述のように、ゲームスニペットはユーザによりプレイされたビデオゲームの「記録」又は表現であってもよい。一態様では、ゲームスニペットは、マルチモードゲーミングサーバ上で実行されるゲームコードによりレンダされ、記録されたゲームアクションのビデオ画像を再生することにより、ビデオ画像を符号化する。この方法により生成されるゲームスニペットは、解像度が向上し、及び／又はフォーマットが異なる点を除き、ゲームプレイ中にユーザにより体験されるビデオ出力を複製する。
【００８７】
一態様では、複数のマルチモードゲーミングサーバのサブセットがあるデータセンターとは離れたところにあるビデオゲーム機から、ビデオレンダジョブが受信される。例えば、ビデオゲーム機を用いてデータセンターのゲーミングサーバにより提供されるゲームをプレイするプレーヤは、ゲームスニペットを要求してもよい。この要求は、ゲーミングサーバがビデオエンコードモードに移行できるようになるまで、データセンターファブリック又はビデオエンコードマネージャにより記憶されてもよい。ゲーミングサーバがビデオ符号化をできるようになると、できるようになったゲーミングサーバにジョブを送信できる。一態様では、どのモードのゲーミングサーバからでも、ビデオエンコードモードのゲーミングサーバに、要求を直接送信してもよい。
【００８８】
ここで図１０を参照して、本発明の一態様によるデータセンターにおいて作業負荷を管理する方法１０００を示す。方法１０００はデータセンターコントローラにより実行されてもよい。ステップ１０１０において、第１の期間中に、データセンター内の複数のマルチモードゲーミングサーバの実質的にすべてのマルチモードゲーミングサーバをゲームモードに設定する。マルチモードゲーミングサーバは、中央処理装置（ＣＰＵ）と、グラフィックス処理装置（ＧＰＵ）と、ビデオエンコーダとを有する。
【００８９】
ステップ１０２０において、第２の期間中に、複数のマルチモードゲーミングサーバのうち少なくとも５０％をビデオエンコードモードに設定する。第２の期間は第１の期間と実質的に重ならない。第１と第２の期間は、前述の通り、ゲームへのデマンド履歴に基づいて計算されてもよい。
【００９０】
限定ではなく例示である本発明の態様を説明した。言うまでもなく、幾つかの特徴及びサブコンビネーションは、有用であり、他の特徴及びサブコンビネーションを参照せずに使用してもよい。これは特許請求の範囲で想定しており記載されている。
【図１】
2017523014.tif 000003
【図２】
2017523014.tif 000004
【図３】
2017523014.tif 000005
【図４】
2017523014.tif 000006
【図５】
2017523014.tif 000007
【図６】
2017523014.tif 000008
【図７】
2017523014.tif 000009
【図８】
2017523014.tif 000010
【図９】
2017523014.tif 000011
【図１０】
2017523014.tif 000012
【国際調査報告】
2017523014.tif 000013
2017523014.tif 000014