(57)【要約】【課題】あるストレージに対するアクセス速度を前提としてデータ処理を実行するアプリケーション（ＡＰ）を、アクセス速度が異なる他のストレージが搭載された情報処理装置で実行する際に、データ処理の不整合の発生を防止する。【解決手段】本発明の実施の１形態の新型ゲーム端末１０ａは、ストレージアクセス制御部３８を備える。このストレージアクセス制御部３８は、旧型ストレージ２２に対するアクセス速度を前提として同期処理を実行するＡＰからのアクセス要求に応じて新型ストレージ２０へアクセスする。そして、旧型ストレージ２２へアクセスした場合の所要時間を算出する評価関数にしたがって、当該所要時間を推定する。そして、ＡＰのデータ処理のために、新型ストレージ２０へのアクセスに要した実績時間と、推定した所要時間との時間差を埋める調整処理を実行する。【選択図】図１
2011048472.tif 000002
【特許請求の範囲】
【請求項１】
第１ストレージとはアクセス速度が異なる第２ストレージが搭載された情報処理装置であって、
第１ストレージに対するアクセス速度を前提として同期処理を実行するアプリケーションから、ストレージに対するアクセス要求を受け付けるアクセス要求受付部と、
前記アクセス要求に応じて第２ストレージに対するアクセス処理を実行するアクセス実行部と、
前記アクセス要求に応じて第１ストレージに対するアクセス処理を実行する場合の所要時間を算出する評価関数にしたがって、当該所要時間を推定するアクセス時間推定部と、
前記アプリケーションの同期処理のために、第２ストレージに対するアクセス処理に要した実績時間と、第１ストレージに対するアクセス処理に要する推定時間との時間差を埋める調整処理を実行する調整部と、
前記調整処理が実行された後、ストレージへのアクセス処理が完了した旨を前記アプリケーションへ通知するアクセス完了通知部と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記調整部は、前記実績時間が前記推定時間よりも所定時間以上短い場合、前記調整処理として、前記完了した旨の通知前にその時間差が示す期間遅延させることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記アクセス時間推定部は、複数種類のストレージ構成のそれぞれに対応する複数種類の評価関数の中から、前記第１ストレージの構成に対応する評価関数を選択して、前記所要時間を推定することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記アプリケーションは、前記第１ストレージに対するアクセス処理に要する推定時間を調整するための調整値を含むものであり、
前記アクセス時間推定部は、前記評価関数にしたがって算出した推定時間を前記調整値にしたがって調整することを特徴とする請求項１から３のいずれかに記載の情報処理装置。
【請求項５】
前記情報処理装置は、前記第１ストレージが搭載された他の情報処理装置と接続されており、
前記アクセス要求受付部は、前記他の情報処理装置に搭載された他のアプリケーションと同期して一連のデータ処理を実行すべきアプリケーションから前記アクセス要求を受け付け、
前記調整部は、前記アプリケーションと前記他のアプリケーションとの同期処理のために前記調整処理を実行することを特徴とする請求項１から４のいずれかに記載の情報処理装置。
【請求項６】
第１ストレージに対するアクセス処理に要した実績時間を前記他の情報処理装置から取得し、そのアクセス処理について前記アクセス時間推定部が算出した推定時間の誤差を検出する誤差検出部をさらに備え、
前記アクセス時間推定部は、所定値以上の誤差が検出された後、前記評価関数にしたがって算出した推定時間を前記誤差にしたがって調整することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記誤差検出部は、第２ストレージに対するアクセス処理の非実行時に、前記誤差を検出することを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記調整部は、前記推定時間が所定時間以上である場合は、前記調整処理として、前記他の情報処理装置における第１ストレージに対するアクセス処理の完了が検出されるまで前記完了した旨の通知を保留させることを特徴とする請求項５から７のいずれかに記載の情報処理装置。
【請求項９】
第１ストレージに対するアクセス速度を前提として同期処理を実行するアプリケーションを、第１ストレージとはアクセス速度が異なる第２ストレージが搭載された情報処理装置で実行するとき、
前記アプリケーションからストレージに対するアクセス要求を受け付けるステップと、
前記アクセス要求に応じて第２ストレージに対するアクセス処理を実行するステップと、
前記アクセス要求に応じて第１ストレージに対するアクセス処理を実行する場合の所要時間を算出する評価関数にしたがって、当該所要時間を推定するステップと、
前記アプリケーションの同期処理のために、第２ストレージに対するアクセス処理に要した実績時間と、第１ストレージに対するアクセス処理に要する推定時間との時間差を埋める調整処理を実行するステップと、
前記調整処理が実行された後、ストレージへのアクセス処理が完了した旨を前記アプリケーションへ通知するステップと、
を前記情報処理装置に実行させることを特徴とする情報処理方法。
【請求項１０】
第１ストレージに対するアクセス速度を前提として同期処理を実行するアプリケーションを、第１ストレージとはアクセス速度が異なる第２ストレージが搭載された情報処理装置で実行するとき、
前記アプリケーションからストレージに対するアクセス要求を受け付ける機能と、
前記アクセス要求に応じて第２ストレージに対するアクセス処理を実行する機能と、
前記アクセス要求に応じて第１ストレージに対するアクセス処理を実行する場合の所要時間を算出する評価関数にしたがって、当該所要時間を推定する機能と、
前記アプリケーションの同期処理のために、第２ストレージに対するアクセス処理に要した実績時間と、第１ストレージに対するアクセス処理に要する推定時間との時間差を埋める調整処理を実行する機能と、
前記調整処理が実行された後、ストレージへのアクセス処理が完了した旨を前記アプリケーションへ通知する機能と、
を前記情報処理装置に実現させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ処理技術に関し、特に、ストレージへのアクセスを制御する技術に関する。
【背景技術】
【０００２】
ゲームアプリケーション（以下、「ゲームＡＰ」とも呼ぶ。）等の高度なリアルタイム処理が求められるアプリケーションは、ストレージに対するアクセス速度を前提としてその後のデータ処理が実装されることがある。例えば、ストレージに対するアクセス処理と同期したデータ処理が実装されることがある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ストレージ技術は日々進歩し、ストレージに保持されたデータに対するアクセス速度もまた日々向上している。その反面、あるストレージに対するアクセス速度を前提としてデータ処理が実装されたアプリケーションを、そのストレージとはアクセス速度が異なるストレージを搭載した情報処理装置で実行する場合、そのアプリケーションのデータ処理に不整合が生じることがある。
【０００４】
本発明は、こうした課題に鑑みてなされたものであり、その主たる目的は、あるストレージに対するアクセス速度を前提としてデータ処理を実行するアプリケーションを、そのストレージとはアクセス速度が異なる別のストレージが搭載された情報処理装置で実行する際に、データ処理の不整合の発生を防止する技術を提供することである。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明のある態様の情報処理装置は、第１ストレージとはアクセス速度が異なる第２ストレージが搭載された情報処理装置であって、第１ストレージに対するアクセス速度を前提として同期処理を実行するアプリケーションから、ストレージに対するアクセス要求を受け付けるアクセス要求受付部と、アクセス要求に応じて第２ストレージに対するアクセス処理を実行するアクセス実行部と、アクセス要求に応じて第１ストレージに対するアクセス処理を実行する場合の所要時間を算出する評価関数にしたがって、当該所要時間を推定するアクセス時間推定部と、アプリケーションの同期処理のために、第２ストレージに対するアクセス処理に要した実績時間と、第１ストレージに対するアクセス処理に要する推定時間との時間差を埋める調整処理を実行する調整部と、調整処理が実行された後、ストレージへのアクセス処理が完了した旨をアプリケーションへ通知するアクセス完了通知部と、を備える。
【０００６】
本発明の別の態様は、情報処理方法である。この方法は、第１ストレージに対するアクセス速度を前提として同期処理を実行するアプリケーションを、第１ストレージとはアクセス速度が異なる第２ストレージが搭載された情報処理装置で実行するとき、アプリケーションからストレージに対するアクセス要求を受け付けるステップと、アクセス要求に応じて第２ストレージに対するアクセス処理を実行するステップと、アクセス要求に応じて第１ストレージに対するアクセス処理を実行する場合の所要時間を算出する評価関数にしたがって、当該所要時間を推定するステップと、アプリケーションの同期処理のために、第２ストレージに対するアクセス処理に要した実績時間と、第１ストレージに対するアクセス処理に要する推定時間との時間差を埋める調整処理を実行するステップと、調整処理が実行された後、ストレージへのアクセス処理が完了した旨をアプリケーションへ通知するステップと、を情報処理装置に実行させる。
【０００７】
なお、以上の構成要素の任意の組合せ、本発明の表現を装置、方法、システム、プログラム、プログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００８】
本発明によれば、あるストレージに対するアクセス速度を前提としてデータ処理を実行するアプリケーションを、そのストレージとはアクセス速度が異なる別のストレージが搭載された情報処理装置で実行する際でも、データ処理の不整合の発生を防止できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施の形態であるオンラインゲームシステムの構成を示す。
【図２】図１のストレージアクセス制御部の詳細な構成を示す図である。
【図３】推定モデル選択テーブルの構成を模式的に示す図である。
【図４】図１のゲーム端末の動作を示すフローチャートである。
【図５】図４のＳ１２の初期処理を詳細に示すフローチャートである。
【図６】図４のＳ１６のストレージアクセス処理を詳細に示すフローチャートである。
【発明を実施するための形態】
【００１０】
本発明の実施の形態についてその構成を説明する前に、まず概要を説明する。
複数のゲーム端末がネットワークを介して接続されて実行されるオンラインゲームシステムは、ゲーム端末間で同期したデータ処理が実行されることにより、ゲームが進行する。例えば、ストレージへのアクセス後にストレージからの取得データをゲーム端末間で相互に交換することがある。
【００１１】
同一のオンラインゲームシステムにおいて、比較的高速にアクセス可能なストレージを搭載した新型ゲーム端末と、比較的低速にしかアクセスできないストレージを搭載した旧型ゲーム端末との両方が含まれる場合がある。この場合、それぞれのゲーム端末においてストレージへのアクセスに要する時間が異なるため、ストレージへのアクセス後の通信タイミングにずれを生じ、それぞれのゲーム端末が正しく動作しないことがある。例えば、新型ゲーム端末ではストレージアクセスを完了して、旧型ゲーム端末と通信しようとしても、旧型ゲーム端末側ではストレージアクセスが未完了であり、通信タイムアウトが発生してしまう。
【００１２】
そこで、本発明の実施の形態では、旧型ストレージの構成に対応したエミュレーション用のモデルを使用して旧型ストレージへのアクセス時間を推定し、新型ストレージへのデータアクセスに要する時間を旧型ストレージでのそれに近似させるゲーム端末を提案する。これにより、同一のオンラインゲームシステムに、アクセス速度が異なるストレージをそれぞれ搭載した複数のゲーム端末が存在しても、ゲーム端末間の同期を維持でき、各ゲーム端末のデータ処理における不整合の発生を防止できる。
【００１３】
言い換えれば、より高速なストレージが日々提供される一方で、ゲームＡＰはある時点のストレージに対するアクセス速度を前提とすることに起因する問題について、本実施の形態のゲーム端末は、ストレージのアクセス速度を仮想的に制限するアプローチにより問題の解決を図るものである。
【００１４】
図１は、本実施の形態であるオンラインゲームシステムの構成を示す。オンラインゲームシステム１００は、ゲーム端末１０で総称される新型ゲーム端末１０ａと旧型ゲーム端末１０ｂとを備える。新型ゲーム端末１０ａと旧型ゲーム端末１０ｂとは、ＬＡＮ／ＷＡＮ／インターネット等、公知の通信手段を含む通信網１２を介して接続される。
【００１５】
新型ゲーム端末１０ａは、アクセス速度が高速な新型ストレージ２０を搭載しており、一方で、旧型ゲーム端末１０ｂは、アクセス速度が低速な旧型ストレージ２２を搭載している。以下では、新型ストレージ２０と旧型ストレージ２２とを総称する場合、単に「ストレージ」と呼ぶこととする。新型ゲーム端末１０ａおよび旧型ゲーム端末１０ｂは、互いに同期しながらオンラインゲームを進行させる。例えば、それぞれのゲーム端末１０においてストレージにアクセス後、通信網１２を介して相互にデータを交換する。
【００１６】
なお図１では、ゲーム端末１０の機能構成をブロック図の形式で記載している。本明細書のブロック図において示される各ブロックは、ハードウェア的には、コンピュータのＣＰＵやメモリをはじめとする素子や機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ここでは、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。例えば、図１の各機能ブロックは、ソフトウェアとしてゲーム端末１０のハードディスクにインストールされ、適宜メモリに読み出されて、プロセッサにより実行されてもよい。またハードウェアとして電子回路に実装されてもよい。
【００１７】
新型ゲーム端末１０ａは、新型ストレージ２０と、操作検出部３０と、ＡＰ実行部３２と、通信部３４と、表示制御部３６と、ストレージアクセス制御部３８とを備える。なお、旧型ゲーム端末１０ｂの構成も新型ゲーム端末１０ａと同様であるが、新型ストレージ２０に代えて旧型ストレージ２２を備える。
【００１８】
新型ストレージ２０および旧型ストレージ２２は、ゲームＡＰの実行の際に必要となる各種パラメータを保持する記憶領域である。新型ストレージ２０の記憶データに対するアクセスは、旧型ストレージ２２の記憶データに対するアクセスよりも高速に実行される。新型ストレージ２０と旧型ストレージ２２とのそれぞれには公知のストレージ構成が適用されてよい。例えば、ＤＶＤやＢＤ（Blu-ray Disc）等の光ディスクでもよく、キャッシュ装置を備えた光ディスクでもよく、半導体メモリでもよい。
【００１９】
操作検出部３０は、図示しない操作ボタン等の入力装置を介して、ゲーム端末１０に対するユーザの操作を検出する。ＡＰ実行部３２は、ゲームＡＰを実行してオンラインゲームを進行させる。通信部３４は、通信網１２を介して、オンラインゲームの進行に際して同期をとるべき相手となる端末（以下、「対向端末」とも呼ぶ。）との通信処理を実行する。表示制御部３６は、ＡＰ実行部３２におけるゲームＡＰの実行結果、すなわちオンラインゲームにおける様々なコンテンツを図示しないディスプレイに表示させる。
【００２０】
ストレージアクセス制御部３８は、ＡＰ実行部３２がストレージへアクセスする際のインタフェース機能を提供する。言い換えれば、ＡＰ実行部３２によるストレージへのアクセスを代行し、また制御する。具体的には、ＡＰ実行部３２は、ストレージアクセス制御部３８に対して、ストレージからのデータ取得要求やストレージへのデータ更新要求（以下、単に「アクセス要求」と呼ぶ。）を送出する。ストレージアクセス制御部３８は、アクセス要求に応じて、ストレージの記憶データに対する参照処理や更新処理（以下、単に「アクセス処理」と呼ぶ。）を実行し、その結果をＡＰ実行部３２へ送出する。
【００２１】
図２は、図１のストレージアクセス制御部３８の詳細な構成を示す。ストレージアクセス制御部３８は、アクセス要求受付部４０と、アクセス実行部４２と、アクセス完了通知部４４と、エミュレーション部４６とを有する。アクセス要求受付部４０は、ストレージへのアクセス要求をＡＰ実行部３２から受け付ける。アクセス実行部４２は、ＡＰ実行部３２からのアクセス要求に応じてストレージへのアクセス処理を実行する。アクセス完了通知部４４は、ストレージへのアクセス処理が完了した旨をＡＰ実行部３２へ通知する。
【００２２】
エミュレーション部４６は、自ゲーム端末においてストレージアクセスに要する時間と、対向端末においてストレージアクセスに要する時間との差異を吸収するためのエミュレーション処理を実行する。エミュレーション部４６は、モデル保持部４８と、モデル選択部５０と、調整値取得部５２と、アクセス時間推定部５４と、調整実行部５６と、誤差検出部５８とを含む。
【００２３】
モデル保持部４８は、対向端末においてストレージアクセスに要する時間を算出するための評価関数（以下、「推定モデル」とも呼ぶ。）のデータを保持する記憶領域である。この推定モデルは、ストレージ構成に応じて設定された関数であり、ストレージの記憶データのうちアクセス対象となるデータのアドレスや、データ長等を入力として受け付け、ストレージアクセスの所要時間を出力する。推定モデルの例は後述する。また、モデル保持部４８は、対向端末の種類に応じて推定モデルを選択するための推定モデル選択テーブルをさらに保持する。
【００２４】
図３は、推定モデル選択テーブルの構成を模式的に示す。「端末種類」欄には、ゲーム端末１０の種類を示す識別情報、例えば端末バージョンが記録される。「ストレージ速度指標」欄には、ゲーム端末１０の種類対応した、ストレージに対するアクセス速度の指標値が記録される。同図では、この指標値が大きいものほど、ストレージに対するアクセス速度が高速であることとしている。「推定モデル」欄には、ゲーム端末１０の種類で特定されるストレージ構成に対応した、推定モデルの識別情報が記録される。図２に戻る。
【００２５】
モデル選択部５０は、ゲームＡＰの実行が開始される際に、通信部３４を介して、対向端末へ端末種類取得要求を送信する。そして、対向端末の端末種類を示すデータを対向端末から取得する。なお対向端末側では、ストレージアクセス制御部３８がその端末種類取得要求を受け付けて、自身の端末に予め設定された端末種類を示すデータを、要求元へ送信してもよい。なお、この端末種類を示すデータは、対向端末側で実行されるゲームＡＰにその付帯情報として予め設定されていてもよい。例えば、特定の端末種類を動作前提としたゲームＡＰには、その端末種類を識別するための情報が記録されていてもよい。この場合、対向端末側のストレージアクセス制御部３８はゲームＡＰからそのデータを取得して要求元へ送信してもよい。
【００２６】
モデル選択部５０は、推定モデル選択テーブルを参照して、対向端末の端末種類と自端末の端末種類とのストレージ速度指標を比較する。自端末のストレージ速度指標よりも対向端末のストレージ速度指標の方が小さい場合、言い換えれば自端末のストレージアクセス速度よりも対向端末のストレージアクセス速度の方が遅い場合、対向端末の種類に対応した推定モデルを特定する。そして、その推定モデルのデータをモデル保持部４８から取得してアクセス時間推定部５４へ送出する。
【００２７】
変形例として、推定モデル選択テーブルでは、端末種類に代えてストレージ種類が対応づけられてもよい。モデル選択部５０は、対向端末からストレージ種類を示すデータを取得して、そのストレージ種類により特定されるアクセス速度に応じて推定モデルを選択してもよい。
【００２８】
調整値取得部５２は、ゲームＡＰの実行が開始される際に、推定モデルによる推定時間を調整するための調整値がそのゲームＡＰに設定されているか否かを検出する。調整値がゲームＡＰに設定されている場合、調整値取得部５２は、その調整値を取得してアクセス時間推定部５４へ送出する。この調整値は、推定時間を線形に増減させるためのデータであり、例えば推定時間に乗じる割合を示すデータであってもよい。この場合、ゲームＡＰの特性として、推定モデルによる推定時間を大きくすべき場合には１以上の調整値が設定されてもよく、推定時間を小さくすべき場合には１未満の調整値が設定されてもよい。
【００２９】
アクセス時間推定部５４は、モデル選択部５０において選択された推定モデル、調整値取得部５２において取得された調整値、誤差検出部５８において検出された誤差にしたがって、対向端末のストレージアクセス時間の推定処理を実行する。この推定処理で算出される時間を「推定時間」とも呼ぶ。典型的には、推定モデルにしたがって一次推定時間を決定し、一次推定時間に調整値を乗じて二次推定時間を決定し、さらに二次推定時間を誤差に応じて調整することで最終推定時間を決定する。例えば、過去の推定時間とその誤差を前提として、過去の推定時間と今回の二次推定時間との比率に応じて誤差を調整し、今回の二次推定時間に対して調整後の誤差を増減させて最終推定時間を決定してもよい。
【００３０】
調整実行部５６は、アクセス時間推定部５４において決定された（最終）推定時間を取得する。また、調整実行部５６は、自端末のストレージアクセス処理に要した時間（以下、「実績時間」とも呼ぶ。）をアクセス実行部４２から取得する。そして、実績時間と推定時間との差異を埋めるための調整処理を実行する。具体的には、実績時間と推定時間との差異が予め定められた調整実行閾値以上である場合、典型的には実績時間よりも推定時間の方が調整実行閾値以上に大きい場合、調整実行部５６は調整処理として遅延処理を実行する。例えば、（推定時間−実績時間）だけスリープした後、アクセス処理の完了をＡＰ実行部３２へ通知するようアクセス完了通知部４４に対して指示する。
【００３１】
この調整実行閾値には、実績時間と推定時間との許容可能な差異が設定される。例えば、ＡＰ実行部３２間の通信タイムアウト時間以下の時間が設定されてもよい。また、調整実行閾値として、開発者の知見やオンラインゲームシステム１００を使用した実験等により適切な値が決定されてもよい。
【００３２】
また、調整実行部５６は、アクセス時間推定部５４において決定された推定時間が予め定められた自己調整閾値よりも大きい場合には、通信部３４を介して、ストレージアクセス完了時に明示的な完了通知を行うよう対向端末へ要求する。この場合、調整実行部５６は、調整処理として、対向端末から完了通知を受領するまで待機し、完了通知の受領後、アクセス処理の完了をＡＰ実行部３２へ通知するようアクセス完了通知部４４に対して指示する。変形例として、上記の完了通知を対向装置へ要求することに代えて、対向装置のＡＰ実行部３２からストレージアクセス完了後の同期処理のための通信データを受領するまで待機してもよい。
【００３３】
この自己調整閾値には、自端末内での推定に基づく調整で生じる誤差の許容度に応じて設定される。すなわち、推定時間が大きくなれば、その推定時間と対向端末における実際の所要時間との差異も大きくなりやすいため、推定時間による自律的な調整を制限するために設定される。また、自己調整閾値として、開発者の知見やオンラインゲームシステム１００を使用した実験等により適切な値が決定されてもよい。
【００３４】
誤差検出部５８は、通信部３４を介して、対向端末のアクセス実行部４２から対向端末におけるストレージアクセスに要した実際の所要時間を取得する。そして、自端末で算出した推定時間と実際の所要時間との誤差が予め定められた許容値よりも大きい場合、その誤差をアクセス時間推定部５４へ通知することにより、次回の推定時間算出処理からは、その誤差を反映した推定時間を算出させる。この許容値も、調整実行閾値と同様に、ＡＰ実行部３２間の通信タイムアウト時間に応じて決定されてもよい。
【００３５】
好ましくは、誤差検出部５８は、自端末および対向端末においてストレージアクセスが未実行の間に誤差を検出する。例えば、アクセス完了通知部４４においてアクセス完了の通知後、アクセス要求受付部４０において次のアクセス要求を受け付ける前に、誤差を検出してもよい。これにより、ゲーム端末１０におけるストレージアクセスとは非同期に誤差の検出処理が実行され、ストレージアクセス制御部３８の処理負荷が低減される。
【００３６】
以下、推定モデルの具体例として、光ディスクモデルと、キャッシュ付き光ディスクモデルと、メモリモデルの３つを説明する。なお、「＜ａ＞モデル定数」は、ゲーム端末１０の種類に応じて予め推定モデルに設定された値である。「＜ｂ＞モデル内部ステート」は、アクセス時間推定部５４に保持される一時的なデータであり、ストレージアクセスに応じて更新され、次回のストレージアクセス時に参照される。「＜ｃ＞パラメータ」は、ストレージアクセスのために必要なデータであり、ストレージアクセスのたびにその値が決定される。例えば、アクセス実行部４２において決定されてもよい。
【００３７】
１．光ディスクモデル：
＜ａ＞モデル定数
・ヘッドが１トラックをシークする処理の所要時間Ｔｓｔ
・最内周トラック（トラック１）のデータにアクセスする処理の所要時間Ｔｔｔ
・トラックｎ（ｎは１以上の自然数）のデータにアクセスする場合の、最内周トラックに対するアクセス時間比Ｆｔｒａｃｋｎ（０＜Ｆｔｒａｃｋｎ＜１、ｎが大きくなるほどＦｔｒａｃｋｎは小さくなる※）
※外側のトラックほど、アクセス速度が高速になるため
＜ｂ＞モデル内部ステート
・現在のヘッド位置（トラック番号）Ｐｈｅａｄ
＜ｃ＞パラメータ
・アクセス先の先頭位置（トラック番号）Ｐｒｅａｄ
・アクセストラック数Ｌｒｅａｄ
【００３８】
＜ｄ＞アクセス時間の推定処理フロー
ステップ１．アクセス先の先頭位置と現在のヘッド位置から、シーク量Ｌｓｅｅｋを算出する
Ｌｓｅｅｋ  ＝  ｜Ｐｒｅａｄ  −  Ｐｈｅａｄ｜
ステップ２．シーク時間Ｔｓｅｅｋを算出する
Ｔｓｅｅｋ  ＝  Ｌｓｅｅｋ  ×  Ｔｓｔ
ステップ３．アクセス先の先頭位置とアクセストラック数から、データアクセスの所要時間Ｔｒｅａｄを算出する
【数１】
2011048472.tif 000003
ステップ４．推定モデルの出力となる総アクセス時間Ｔを算出する
Ｔ  ＝  Ｔｓｅｅｋ  ＋  Ｔｒｅａｄ
【００３９】
２．キャッシュ付き光ディスクモデル（光ディスクモデルとの共通部分は省略）：
＜ａ＞モデル定数
・１トラック分のデータに対するキャッシュアクセス時間Ｔｃｒ
・キャッシュミス時のペナルティ時間Ｔｃｃ
＜ｂ＞モデル内部ステート
・現在のキャッシュ状態（キャッシュされたトラックの情報）
＜ｃ＞パラメータ
・アクセス先の先頭位置（トラック番号）Ｐｒｅａｄ
・アクセストラック数Ｌｒｅａｄ
【００４０】
＜ｄ＞アクセス時間の推定処理フロー
ステップ１．アクセス先の先頭位置と、アクセス先トラック数と、キャッシュ状態から、アクセス対象のトラックのデータがキャッシュ済か否かを判定する
ステップ２．キャッシュ済ｎトラックについて、アクセス時間Ｔｃａｃｈｅを算出する
Ｔｃａｃｈｅ  ＝  Ｔｃｒ  ×  ｎ
ステップ３．未キャッシュｍトラックについて、光ディスクモデルと同様に、ディスクアクセス時間Ｔｄｉｓｃを算出する
Ｔｄｉｓｃ  ＝  Ｔｓｅｅｋ  ＋  Ｔｒｅａｄ  ＋  Ｔｃｃ  ×  ｍ
ステップ４．推定モデルの出力となる総アクセス時間Ｔを算出する
Ｔ  ＝  Ｔｃａｃｈｅ  ＋  Ｔｄｉｓｃ
【００４１】
３．メモリモデル：
＜ａ＞モデル定数
・１ブロックのデータにアクセスする処理の所要時間Ｔｔｔ
＜ｂ＞モデル内部ステート
なし
＜ｃ＞パラメータ
・アクセス先の先頭アドレス
・アクセスデータ長
【００４２】
＜ｄ＞アクセス時間の推定処理フロー
ステップ１．アクセス先の先頭アドレスとアクセスデータ長から、アクセスすべきブロック数Ｌｂｌｋを算出する。１ブロックに満たないブロック数は、ブロック単位に切り上げる
ステップ２．推定モデルの出力となるアクセス時間Ｔを算出する
Ｔ  ＝  Ｔｔｔ  ×  Ｌｂｌｋ
【００４３】
なお、図３のキャッシュ付きメモリモデルについては説明を省略したが、キャッシュ付き光ディスクモデルのステップ３で既述したように、未キャッシュｍトラックについて、メモリモデルと同様にアクセス時間を算出し、Ｔｃａｃｈｅと合算すればよい。
【００４４】
また、自端末のストレージ構成と対向端末のストレージ構成とが同様である場合、例えばどちらのストレージ構成もキャッシュ付き光ディスクである場合、自端末の内部ステートを推定モデルのモデル内部ステートに適用してもよい。具体的には、自端末における現在のヘッド位置・キャッシュ状態等をそのままあてはめてもよい。
【００４５】
また、自端末のストレージ構成と対向端末のストレージ構成とが異なる場合には、自端末のアクセス時間推定部５４において対向端末の内部ステート（例えばヘッド位置やキャッシュ状態）を、対向端末における内部ステート更新アルゴリズムにしたがって継続的にトレースしてもよい。例えば、自端末においてストレージアクセスが発生する都度、対向端末におけるキャッシュアルゴリズム（例えばＦＩＦＯやＬＲＵ）にしたがって、対向端末のキャッシュ状態を示すデータを継続的に更新してもよい。
【００４６】
以上の構成による動作を以下説明する。
図４は、図１のゲーム端末１０の動作を示すフローチャートである。ＡＰ実行部３２においてゲームＡＰの実行が未開始であれば（Ｓ１０のＮ）、後述の初期処理を実行する（Ｓ１２）。ゲームＡＰの実行が開始済であれば（Ｓ１０のＹ）、Ｓ１２はスキップされる。ＡＰ実行部３２は、ゲームＡＰを実行してオンラインゲームを進行させる（Ｓ１４）。ＡＰ実行部３２はストレージへのアクセス要求をストレージアクセス制御部３８へ送出し、ストレージアクセス制御部３８は後述のストレージアクセス処理を実行する（Ｓ１６）。その後、ＡＰ実行部３２は、対向端末との同期処理のために、対向端末のＡＰ実行部３２との間で通信処理を実行する（Ｓ１８）。ゲームＡＰの実行を継続すべき場合（Ｓ２０のＹ）、Ｓ１４に戻る。ゲームＡＰの実行を終了すべき場合（Ｓ２０のＮ）、本フローの処理を終了する。
【００４７】
図５は、図４のＳ１２の初期処理を詳細に示すフローチャートである。ＡＰ実行部３２は、ゲームＡＰの実行を開始する（Ｓ３０）。モデル選択部５０は、対向端末から対向端末の種類を取得する（Ｓ３２）。対向端末のストレージアクセス速度が自端末のストレージアクセス速度よりも遅い場合（Ｓ３４のＹ）、モデル選択部５０は、対向端末の種類に応じた推定モデルを選択してアクセス時間推定部５４へ通知する（Ｓ３６）。調整値取得部５２は、ゲームＡＰに予め設定された調整値を取得してアクセス時間推定部５４へ通知する（Ｓ３８）。対向端末のストレージアクセス速度が自端末のストレージアクセス速度以上である場合（Ｓ３４のＮ）、Ｓ３６およびＳ３８はスキップされる。例えば、新型ゲーム端末１０ａでは、旧型ゲーム端末１０ｂの旧型ストレージ２２に対応した推定モデルが選択される。その一方、旧型ゲーム端末１０ｂでは、推定モデルの選択処理はスキップされる。
【００４８】
図６は、図４のＳ１６のストレージアクセス処理を詳細に示すフローチャートである。アクセス要求受付部４０は、ストレージへのアクセス要求をＡＰ実行部３２から受け付ける（Ｓ４０）。アクセス実行部４２は、自端末のストレージに対するアクセス処理を実行する（Ｓ４２）。
【００４９】
推定モデルを選択済であれば（Ｓ４４のＹ）、アクセス時間推定部５４は、その推定モデルと、ゲームＡＰに予め設定された調整値と、過去の推定時間における誤差とにしたがって、対向端末におけるストレージアクセス時間を推定する（Ｓ４６）。推定時間が自己調整閾値よりも大きければ（Ｓ４８のＹ）、調整実行部５６は、対向端末におけるストレージアクセスの完了が検出されるまで待機する（Ｓ５０）。推定時間が自己調整閾値以下であり（Ｓ４８のＮ）、推定時間と実績時間との時間差が調整実行閾値以上である場合（Ｓ５２のＹ）、調整実行部５６は、その時間差だけ以降の処理を遅延させる（Ｓ５４）。推定時間と実績時間との時間差が調整実行閾値未満である場合（Ｓ５２のＮ）、Ｓ５４はスキップされる。推定モデルが選択されていなければ（Ｓ４４のＮ）、Ｓ４６〜Ｓ５４はスキップされる。例えば、新型ゲーム端末１０ａにおいてはＳ４６〜Ｓ５４が実行され、旧型ゲーム端末１０ｂにおいてはスキップされる。
【００５０】
アクセス完了通知部４４は、ストレージへのアクセスが完了した旨をＡＰ実行部３２へ通知する（Ｓ５６）。誤差検出部５８は、対向端末から実際のストレージアクセスに要した所要時間を取得する。そして、実際の所要時間と推定時間との誤差を検出する（Ｓ５８）。その誤差が許容値よりも大きい場合（Ｓ６０のＹ）、誤差検出部５８は、その誤差をアクセス時間推定部５４へ通知することにより、以後の推定時間算出処理においてその誤差を反映させる（Ｓ６２）。その誤差が許容値以下であれば（Ｓ６０のＮ）、Ｓ６２波スキップされる。なお、本明細書のフローチャートでは、各処理が直列的に実行される例を示したが、適宜並行実行されてよいのはもちろんである。例えば、Ｓ４２のストレージアクセス処理とＳ４６のアクセス時間推定処理とが並行実行されることにより、全体の処理時間が短縮される。
【００５１】
本実施の形態のゲーム端末１０によれば、同一のオンラインゲームシステムにおいて、高速なストレージを搭載したゲーム端末と、低速なストレージを搭載したゲーム端末との両方が含まれる場合でも、ゲーム端末間での同期を維持できる。例えば、ゲーム端末間での同期を維持するための通信処理におけるタイムアウトの発生を防止できる。これにより、オンラインゲームシステムにおいてストレージアクセス速度に関する制限を設ける必要がなく、様々なゲーム端末が参加可能なオンラインゲームを提供可能になる。
【００５２】
またゲーム端末１０によれば、ゲームＡＰに設定された調整値により、推定モデルから出力された推定時間が調整される。これにより、推定モデルが不完全であっても、言い換えれば推定モデルでは個々のゲームＡＰそれぞれの特性に応じた推定時間を算出することが困難な場合にも、調整値の設定によりゲームＡＰの特性に合わせた推定時間の算出が可能になる。
【００５３】
さらにゲーム端末１０によれば、対向端末のストレージアクセスについて、対向端末における実際の所要時間と自端末における推定時間とが比較されて誤差が検出される。そして、検出された誤差は推定時間の算出にフィードバックされる。これにより、自端末における推定精度を向上させることができる。
【００５４】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００５５】
上記実施の形態では、対向装置と接続されてその対向装置との同期処理を実行するゲーム端末１０を説明した。しかし本発明の技術思想において対向装置の存在は必須ではなく、第１ストレージに対するアクセス速度を前提として同期処理を実行するアプリケーションを、第１ストレージとはアクセス速度が異なる第２ストレージが搭載された情報処理装置で実行するとき全般に、すなわちスタンドアロンの情報処理装置についても本発明の技術思想を適用できる。これにより、アプリケーションの同期処理（例えばストレージへのアクセス処理と、そのアクセス中に並行して実行した別処理と、それらのジョイン処理等）における不具合の発生を防止できる。なお、この場合、モデル選択部５０は、実行対象のアプリケーションから、そのアプリケーションが前提とするストレージの種類を示す情報を取得して、そのストレージの種類に対応する推定モデルを選択する。
【００５６】
また、上記実施の形態では、同期をとるべき２つのゲーム端末１０を含むオンラインゲームシステム１００を説明した。しかしゲーム端末１０の数に限定はなく、３つ以上のゲーム端末１０を含むオンラインゲームシステム１００であってもよいのはもちろんである。この場合、複数の対向端末の中でストレージ速度指標が最も小さな、すなわちストレージへのアクセス速度が最も遅いゲーム端末１０が、本実施の形態での旧型ゲーム端末１０ｂとなり、その推定モデルが他のゲーム端末１０において選択される。
【００５７】
また、上記実施の形態では、ゲーム端末１０のうちストレージへのアクセス速度が遅いゲーム端末１０では、対向端末におけるストレージアクセス時間の推定処理がスキップされた。変形例においては、端末種類やストレージ種類によらず、全てのゲーム端末１０において、対向端末におけるストレージアクセス時間の推定処理が実行されてもよい。そして、その推定時間と自身の実績時間とを比較して、最も遅いアクセス時間にあわせて調整処理が実行されてもよい。この態様によれば、端末の種類やストレージの種類ではストレージへのアクセス速度の高低が一意に決定できない場合でも、ゲーム端末１０間の同期を維持できる。例えば、ストレージ構成が光ディスクの場合とキャッシュ付き光ディスクの場合とを比較すると、多くの場合で後者の方が高速であるが、キャッシュミスが多発した場合、キャッシュミスのペナルティにより前者の方が高速になることも考えられる。本変形例では、このような場合でも同期処理を正常に実行させることができる。
【００５８】
また、上記実施の形態では、推定時間が自己調整閾値よりも大きい場合、調整実行部５６は、対向端末から明示的な完了通知を受領するまで待機した。調整実行部５６のこの待機処理は必ずしも必須の機能ではなく、変形例として、調整実行部５６はこの待機処理を実行しない態様で構成されてもよい。この場合、図６のフローチャートにおけるＳ４８およびＳ５０の処理が非実行となる。
【００５９】
上述した実施の形態および変形例の任意の組み合わせもまた本発明の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる実施の形態および変形例それぞれの効果をあわせもつ。
【００６０】
請求項に記載の各構成要件が果たすべき機能は、実施の形態および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。例えば、請求項に記載のアクセス時間推定部は、実施の形態に記載のモデル選択部５０と、調整値取得部５２と、アクセス時間推定部５４との連携によって実現されてもよい。
【符号の説明】
【００６１】
１０  ゲーム端末、  ２０  新型ストレージ、  ２２  旧型ストレージ、  ３０  操作検出部、  ３２  ＡＰ実行部、  ３４  通信部、  ３６  表示制御部、  ３８  ストレージアクセス制御部、  ４０  アクセス要求受付部、  ４２  アクセス実行部、  ４４  アクセス完了通知部、  ４６  エミュレーション部、  ４８  モデル保持部、  ５０  モデル選択部、  ５２  調整値取得部、  ５４  アクセス時間推定部、  ５６  調整実行部、  ５８  誤差検出部、  １００  オンラインゲームシステム。
【図１】
2011048472.tif 000004
【図２】
2011048472.tif 000005
【図３】
2011048472.tif 000006
【図４】
2011048472.tif 000007
【図５】
2011048472.tif 000008
【図６】
2011048472.tif 000009
【手続補正書】
【提出日】平成22年6月15日(2010.6.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１ストレージとはアクセス速度が異なる第２ストレージが搭載された情報処理装置であって、
第１ストレージに対するアクセス速度を前提として同期処理を実行するアプリケーションから、ストレージに対するアクセス要求を受け付けるアクセス要求受付部と、
前記アクセス要求に応じて第２ストレージに対するアクセス処理を実行するアクセス実行部と、
前記アクセス要求に応じて第１ストレージに対するアクセス処理を実行する場合の所要時間を算出する評価関数にしたがって、当該所要時間を推定するアクセス時間推定部と、
前記アプリケーションの同期処理のために、第２ストレージに対するアクセス処理に要した実績時間と、第１ストレージに対するアクセス処理に要する推定時間との時間差を埋める調整処理を実行する調整部と、
前記調整処理が実行された後、ストレージへのアクセス処理が完了した旨を前記アプリケーションへ通知するアクセス完了通知部と、
を備え、
前記調整部は、前記実績時間が前記推定時間よりも所定時間以上短い場合、前記調整処理として、前記完了した旨の通知前にその時間差が示す期間遅延させることを特徴とする情報処理装置。
【請求項２】
前記アクセス時間推定部は、複数種類のストレージ構成のそれぞれに対応する複数種類の評価関数の中から、前記第１ストレージの構成に対応する評価関数を選択して、前記所要時間を推定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記アプリケーションは、前記第１ストレージに対するアクセス処理に要する推定時間を調整するための調整値を含むものであり、
前記アクセス時間推定部は、前記評価関数にしたがって算出した推定時間を前記調整値にしたがって調整することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記情報処理装置は、前記第１ストレージが搭載された他の情報処理装置と接続されており、
前記アクセス要求受付部は、前記他の情報処理装置に搭載された他のアプリケーションと同期して一連のデータ処理を実行すべきアプリケーションから前記アクセス要求を受け付け、
前記調整部は、前記アプリケーションと前記他のアプリケーションとの同期処理のために前記調整処理を実行することを特徴とする請求項１から３のいずれかに記載の情報処理装置。
【請求項５】
第１ストレージに対するアクセス処理に要した実績時間を前記他の情報処理装置から取得し、そのアクセス処理について前記アクセス時間推定部が算出した推定時間の誤差を検出する誤差検出部をさらに備え、
前記アクセス時間推定部は、所定値以上の誤差が検出された後、前記評価関数にしたがって算出した推定時間を前記誤差にしたがって調整することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記誤差検出部は、第２ストレージに対するアクセス処理の非実行時に、前記誤差を検出することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記調整部は、前記推定時間が所定時間以上である場合は、前記調整処理として、前記他の情報処理装置における第１ストレージに対するアクセス処理の完了が検出されるまで前記完了した旨の通知を保留させることを特徴とする請求項４から６のいずれかに記載の情報処理装置。
【請求項８】
第１ストレージに対するアクセス速度を前提として同期処理を実行するアプリケーションを、第１ストレージとはアクセス速度が異なる第２ストレージが搭載された情報処理装置で実行するとき、
前記アプリケーションからストレージに対するアクセス要求を受け付けるステップと、
前記アクセス要求に応じて第２ストレージに対するアクセス処理を実行するステップと、
前記アクセス要求に応じて第１ストレージに対するアクセス処理を実行する場合の所要時間を算出する評価関数にしたがって、当該所要時間を推定するステップと、
前記アプリケーションの同期処理のために、第２ストレージに対するアクセス処理に要した実績時間と、第１ストレージに対するアクセス処理に要する推定時間との時間差を埋める調整処理を実行するステップと、
前記調整処理が実行された後、ストレージへのアクセス処理が完了した旨を前記アプリケーションへ通知するステップと、
を前記情報処理装置に実行させ、
前記調整処理を実行するステップは、前記実績時間が前記推定時間よりも所定時間以上短い場合、前記調整処理として、前記完了した旨の通知前にその時間差が示す期間遅延させることを特徴とする情報処理方法。
【請求項９】
第１ストレージに対するアクセス速度を前提として同期処理を実行するアプリケーションを、第１ストレージとはアクセス速度が異なる第２ストレージが搭載された情報処理装置で実行するとき、
前記アプリケーションからストレージに対するアクセス要求を受け付ける機能と、
前記アクセス要求に応じて第２ストレージに対するアクセス処理を実行する機能と、
前記アクセス要求に応じて第１ストレージに対するアクセス処理を実行する場合の所要時間を算出する評価関数にしたがって、当該所要時間を推定する機能と、
前記アプリケーションの同期処理のために、第２ストレージに対するアクセス処理に要した実績時間と、第１ストレージに対するアクセス処理に要する推定時間との時間差を埋める調整処理を実行する機能と、
前記調整処理が実行された後、ストレージへのアクセス処理が完了した旨を前記アプリケーションへ通知する機能と、
を前記情報処理装置に実現させ、
前記調整処理を実行する機能は、前記実績時間が前記推定時間よりも所定時間以上短い場合、前記調整処理として、前記完了した旨の通知前にその時間差が示す期間遅延させることを特徴とするコンピュータプログラム。