JP2021096594A - 情報処理装置およびファイルアクセス方法 - Google Patents

情報処理装置およびファイルアクセス方法 Download PDF

Info

Publication number
JP2021096594A
JP2021096594A JP2019226718A JP2019226718A JP2021096594A JP 2021096594 A JP2021096594 A JP 2021096594A JP 2019226718 A JP2019226718 A JP 2019226718A JP 2019226718 A JP2019226718 A JP 2019226718A JP 2021096594 A JP2021096594 A JP 2021096594A
Authority
JP
Japan
Prior art keywords
file
hash value
attribute information
software
game
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2019226718A
Other languages
English (en)
Other versions
JP7321917B2 (ja
Inventor
直人 沖野
Naoto Okino
直人 沖野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Interactive Entertainment LLC
Original Assignee
Sony Interactive Entertainment LLC
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 Sony Interactive Entertainment LLC filed Critical Sony Interactive Entertainment LLC
Priority to JP2019226718A priority Critical patent/JP7321917B2/ja
Priority to PCT/JP2020/036717 priority patent/WO2021124634A1/ja
Priority to US17/783,329 priority patent/US11983177B2/en
Publication of JP2021096594A publication Critical patent/JP2021096594A/ja
Application granted granted Critical
Publication of JP7321917B2 publication Critical patent/JP7321917B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24524Access plan code generation and invalidation; Reuse of access plans
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • G06F16/152File search processing using file content signatures, e.g. hash values
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/244Grouping and aggregation
    • 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/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】効率的なファイルアクセスを実現する。【解決手段】属性情報設定部112は、複数のファイルのそれぞれがアクセス可能であるか否かを示す情報をメモリ62にロードする。読出要求受付部114は、プログラムからファイルパスを含む読出要求を受け付ける。ハッシュ値導出部116は、読出要求に含まれるファイルパスのハッシュ値を導出する。ファイル確認部118は、導出したハッシュ値が、ソフトウェアに含まれるファイルのハッシュ値に一致するか確認する。判定部120は、一致することが確認された場合に、属性情報設定部112がメモリ62にロードした情報を参照して、読出要求されたファイルに対する処理を実施可能であるか否かを判定する。【選択図】図4

Description

本発明は、ファイルにアクセスする技術に関する。
ゲームソフトウェアは、起動ファイル、ゲームプログラムなどのゲームを実行するためのファイル群、およびゲーム装置のオペレーティングシステム(OS:Operating System)が使用するファイル群を含む。ゲーム装置のハードウェアスペックの向上にともない、ゲームソフトウェアに含まれるファイル数は多くなり、データサイズは大規模化する傾向にある。
特許文献1は、ファイルのフルパスのハッシュ値と、ファイルの記録位置を特定するための情報とを対応付けたフラットパステーブルと、ハッシュ値が衝突するフルパスに対して、ファイル名とファイルの記録位置を特定するための情報とを対応付けた衝突ファイルとを有するゲームソフトウェアを開示する。特許文献1に開示される情報処理装置は、ゲームプログラムからファイルのフルパスを含む読出要求を受け付ける受付部と、フルパスのハッシュ値を導出する導出部と、フラットパステーブルを参照して、導出したハッシュ値からファイルの記録位置を特定するための情報を取得する取得部とを備える。導出したハッシュ値が衝突するものである場合、取得部は衝突ファイルを参照して、ファイル名から、ファイルの記録位置を特定するための情報を取得する。
特開2015−88144号公報
ゲームプログラムの起動時、ゲームプログラムがゲームソフトウェアのファイルにアクセスするためのメタデータがメモリにロードされる。メモリのサイズは有限であるため、ロードされるメタデータのデータサイズは、できるだけ小さいことが好ましい。なおゲームソフトウェアに限らず、他の種類のソフトウェアにおいても同様の事情が存在する。
本発明のある態様は、ソフトウェアに含まれるファイルにアクセスする情報処理装置に関する。ソフトウェアはメタデータとして、複数のファイルのパスのハッシュ値を含む。情報処理装置は、複数のファイルのそれぞれの属性情報をメモリにロードする属性情報設定部と、プログラムからファイルパスを含む読出要求を受け付ける受付部と、読出要求に含まれるファイルパスのハッシュ値を導出する導出部と、導出したハッシュ値が、ソフトウェアに含まれるファイルのハッシュ値に一致するか確認するファイル確認部と、一致することが確認された場合に、属性情報設定部がメモリにロードした情報を参照して、読出要求されたファイルに対する処理を実施可能であるか否かを判定する判定部と、を備える。
本発明の別の態様は、ソフトウェアに含まれるファイルにアクセスする方法であって、複数のファイルのそれぞれの属性情報をメモリにロードするステップと、プログラムからファイルパスを含む読出要求を受け付けるステップと、読出要求に含まれるファイルパスのハッシュ値を導出するステップと、導出したハッシュ値が、ソフトウェアに含まれるファイルのハッシュ値に一致するか確認するステップと、一致することが確認された場合に、メモリにロードした属性情報を参照して、読出要求されたファイルに対する処理を実施可能であるか否かを判定するステップと、を含む。
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
実施例にかかる情報処理システムの構成を示す図である。 情報処理装置のハードウェア構成を示す図である。 ゲームソフトウェアのファイル構成の概念図である。 情報処理装置の機能ブロックを示す図である。 ハッシュ値テーブルの例を示す図である。 アクセス可否情報テーブルの例を示す図である。
図1は、本発明の実施例にかかる情報処理システム1を示す。情報処理システム1は、情報処理装置10と、ネットワークサーバ5と、デジタルコンテンツを配信するコンテンツサーバ12と、デジタルコンテンツを販売するストアサーバ16とを備える。アクセスポイント(以下、「AP」とよぶ)8は、無線アクセスポイントおよびルータの機能を有し、情報処理装置10はAP8経由で、ネットワーク3上のネットワークサーバ5、コンテンツサーバ12、ストアサーバ16と通信可能に接続する。ネットワーク3は、インターネットやLAN(Local Area Network)などから構成されてよい。
情報処理装置10は、ユーザが操作する入力装置6と無線または有線で接続し、入力装置6はユーザの操作結果を示す操作情報を情報処理装置10に出力する。情報処理装置10は入力装置6から操作情報を受け付けるとオペレーティングシステム(OS)やアプリケーションの処理に反映し、出力装置4から処理結果を出力させる。実施例で情報処理装置10は、ゲームソフトウェアに含まれるファイルにアクセスしてゲームプログラムを実行するゲーム装置であり、入力装置6はゲームコントローラなど情報処理装置10に対してユーザの操作情報を供給する機器であってよい。
ネットワークサーバ5は情報処理システム1の運営主体により保守、管理され、情報処理システム1のユーザに対してネットワークサービスを提供する。ネットワークサーバ5はユーザを識別するネットワークアカウントを管理しており、ユーザは、ネットワークアカウントを用いて、ネットワークサーバ5が提供するネットワークサービスにサインインする。ユーザはネットワークサービスにサインインすることで、ストアサーバ16でデジタルコンテンツを購入し、コンテンツサーバ12から、購入したデジタルコンテンツの配信を受けられる。デジタルコンテンツは、様々な種類のアプリケーションソフトウェアであってよいが、以下では、特にデジタルコンテンツがゲームソフトウェアである場合について説明する。
補助記憶装置2はHDD(ハードディスクドライブ)やSSD(ソリッドステートドライブ)などの大容量記憶装置であり、内蔵型記憶装置であってよく、またはUSB(Universal Serial Bus)などによって情報処理装置10と接続する外部記憶装置であってもよい。出力装置4は、画像を出力するディスプレイおよび音声を出力するスピーカを有するテレビであってよく、またヘッドマウントディスプレイであってもよい。カメラ7はユーザが存在する空間を撮影する。入力装置6は複数のプッシュ式の操作ボタンや、アナログ量を入力できるアナログスティック、回動式ボタンなどの複数の入力部を有して構成されてよい。
図2は、情報処理装置10のハードウェア構成を示す。情報処理装置10は、メイン電源ボタン20、電源ON用LED21、スタンバイ用LED22、システムコントローラ24、クロック26、デバイスコントローラ30、メディアドライブ32、USBモジュール34、フラッシュメモリ36、無線通信モジュール38、有線通信モジュール40、サブシステム50およびメインシステム60を有して構成される。
メインシステム60は、メインCPU(Central Processing Unit)、主記憶装置であるメモリおよびメモリコントローラ、GPU(Graphics Processing Unit)などを備える。GPUはゲームプログラムの演算処理に主として利用される。これらの機能はシステムオンチップとして構成されて、1つのチップ上に形成されてよい。メインCPUはOSを起動し、OSが提供する環境下において、補助記憶装置2やROM媒体44に記録されたゲームプログラムを実行する機能をもつ。
サブシステム50は、サブCPU、主記憶装置であるメモリおよびメモリコントローラなどを備え、GPUを備えず、ゲームプログラムを実行する機能をもたない。サブCPUの回路ゲート数は、メインCPUの回路ゲート数よりも少なく、サブCPUの動作消費電力は、メインCPUの動作消費電力よりも少ない。
メイン電源ボタン20は、ユーザからの操作入力が行われるボタンであって、情報処理装置10の筐体の前面に設けられ、情報処理装置10のメインシステム60への電源供給をオンまたはオフするために操作される。電源ON用LED21は、メイン電源ボタン20がオンされたときに点灯し、スタンバイ用LED22は、メイン電源ボタン20がオフされたときに点灯する。
システムコントローラ24は、ユーザによるメイン電源ボタン20の押下を検出する。メイン電源がオフ状態にあるときにメイン電源ボタン20が押下されると、システムコントローラ24は、その押下操作を「オン指示」として取得し、一方で、メイン電源がオン状態にあるときにメイン電源ボタン20が押下されると、システムコントローラ24は、その押下操作を「オフ指示」として取得する。
クロック26はリアルタイムクロックであって、現在の日時情報を生成し、システムコントローラ24やサブシステム50およびメインシステム60に供給する。
デバイスコントローラ30は、サウスブリッジのようにデバイス間の情報の受け渡しを実行するLSI(Large-Scale Integrated Circuit)として構成される。図示のように、デバイスコントローラ30には、システムコントローラ24、メディアドライブ32、USBモジュール34、フラッシュメモリ36、無線通信モジュール38、有線通信モジュール40、サブシステム50およびメインシステム60などのデバイスが接続される。デバイスコントローラ30は、それぞれのデバイスの電気特性の違いやデータ転送速度の差を吸収し、データ転送のタイミングを制御する。
メディアドライブ32は、ゲームなどのアプリケーションソフトウェア、およびライセンス情報を記録したROM媒体44を装着して駆動し、ROM媒体44からプログラムやデータなどを読み出すドライブ装置である。ROM媒体44は、光ディスクや光磁気ディスク、ブルーレイディスクなどの読出専用の記録メディアである。
USBモジュール34は、外部機器とUSBケーブルで接続するモジュールである。USBモジュール34は補助記憶装置2およびカメラ7とUSBケーブルで接続してもよい。フラッシュメモリ36は、内部ストレージを構成する補助記憶装置である。無線通信モジュール38は、Bluetooth(登録商標)プロトコルやIEEE802.11プロトコルなどの通信プロトコルで、たとえば入力装置6と無線通信する。なお無線通信モジュール38は、デジタル携帯電話方式に対応してもよい。有線通信モジュール40は、外部機器と有線通信し、AP8を介してネットワーク3に接続する。
図1に戻ってコンテンツサーバ12は、ストアサーバ16がユーザから購入を受け付けたゲームソフトウェアを、情報処理装置10に送信する。ゲームソフトウェアは、起動ファイル、ゲームプログラムなどゲームの進行に必要なファイル群、およびOSが使用するファイル群を含む。起動ファイルは、ゲームプログラムを起動するためのプログラムであり、起動ファイルを実行すると、ゲームプログラムが呼び出されて実行される。OSが使用するファイル群は、たとえば、ゲーム選択画面に表示されるゲームアイコン画像などを含む。
ゲームソフトウェアはツリー型ディレクトリ構造を有し、ルートディレクトリには起動ファイルが含まれる。下層のサブディレクトリは、ファイルの種類ごとに分類され、たとえば3Dモデル用のサブディレクトリ、テクスチャ用のサブディレクトリ、スクリプト用のサブディレクトリなどが形成されている。
図3は、ゲームソフトウェアのファイル構成の概念図を示す。実施例のゲームソフトウェア70の本体は複数のファイルによって構成され、図示されるように複数のグループ72に論理的に分割される。各ファイルは複数のグループ72のうち少なくとも1つのグループに属し、また各グループ72には少なくとも1つのファイルが属している。図3に示すゲームソフトウェア70には、先頭グループとして第1グループ72aが存在し、それに後続するグループとして第2グループ72b、第3グループ72c、第4グループ72d、第5グループ72e、第6グループ72fが存在している。なお第6グループ72fに後続する7番目以降のグループ72が存在してもよい。各グループは、第1、第2などのグループ番号によって識別される。
論理的に分割された各グループには、複数のサブディレクトリに含まれるファイルが属する。つまり各グループは種類の異なるファイルを含み、ゲーム中のシーンやステージなどの特定の単位を実行するのに必要なファイルが属するように定義されている。
第1グループ72aには、ゲームソフトウェア70の起動に必要なプログラムファイルおよびデータファイルが属している。ゲームソフトウェア70をコンテンツサーバ12から取得する場合、情報処理装置10は第1グループ72aに属する全てのファイルをダウンロードすれば、後続の第2グループ72b以降のファイルをダウンロードしなくても、ただちにゲームソフトウェア70を起動できる。
情報処理装置10は、第1グループ72aに属する全てのファイルを取得して、ゲームソフトウェア70を起動した後に、後続のグループ72に属するファイルをバックグランドでダウンロードする。このようにゲームの実行に必要なファイルをまず最初にダウンロードさせ、それらのファイルが揃った時点でゲームを実行可能とすることで、ユーザのダウンロード待ち時間を短縮できる。
第1グループ72aは、少なくともメタデータファイル、ゲームパラメータファイル、グループファイル、起動ファイルおよび必須ファイルを含んで構成される。後述するが、メタデータファイルは、ファイルアクセスのためのメタデータに関するファイルであり、ハッシュ値テーブル、シードパラメータ、対応テーブルを含む。
ゲームパラメータファイルは、たとえばタイトルIDやディスプレイ解像度などの情報、アイコン画像データなどを含む。グループファイルは、各ファイルが含まれるグループを記述する定義ファイルである。起動ファイルは、ゲームプログラムを起動するためのプログラムである。また必須ファイルは、ゲーム実行に必須となるプログラムなどのファイルやゲーム全体で使用する共通ファイルなどを含む。
情報処理装置10は、第1グループ72aに属するファイル群を全て取得すればゲームプログラムを起動でき、ユーザはゲームの一部をプレイできる。なお、ここでいうゲームプレイは、たとえばユーザがキャラクタを決定したり、ゲームレベルを決定するなど、ゲーム開始時に行う設定行動を含んでよい。つまり第1グループ72aは、ゲームを起動し、ユーザが少なくとも何らかの動作を行える状態にするために必要なファイル群を含んで構成される。第1グループ72aに含まれるファイル群を用いて実行可能となるゲームプレイは、たとえばゲームの初期設定だけであってよいが、ゲームの第1ステージまでプレイ可能とするものであってもよい。これはゲームメーカ次第である。
近年のゲームは、言語が異なる複数の国で実行可能に作成されているものが多い。音声データおよび画像データは、複数の言語に対応して作成され、複数言語の音声ファイルおよび画像ファイルが、1つのパッケージソフトウェアに収められている。このようなファイルを「言語依存」ファイルと呼ぶと、音声ファイルおよび画像ファイルは、基本的にデータサイズが大きく、このような言語依存ファイルのデータサイズは、ゲームソフトウェア全体のデータサイズに対して、かなりの割合を占める。そこで実施例のゲームソフトウェア70は、言語ごとに音声ファイルおよび画像ファイルを集合させた言語用のリソースファイルのグループを含み、ユーザは必要な言語依存ファイルのみを取得できるようになっている。
またゲームには様々なプレイモードが存在する。たとえば1人でプレイするためのシングルプレイモードや、複数人でプレイするためのマルチプレイモードが存在してよい。ゲームソフトウェア70は、各プレイモードに専用のファイルを含んで構成される。実施例の情報処理システム1では、ユーザが、プレイを希望するプレイモードのファイルをダウンロードし、プレイを希望しないプレイモードのファイルをダウンロードしないようにできる。これにより情報処理装置10の補助記憶装置2に、使用しないプレイモードのファイルが保存される状況を回避できる。
以上の事情から、実施例の情報処理装置10は、購入したゲームソフトウェア70の全てのファイルをダウンロードするわけではない。たとえばユーザが日本語の言語依存ファイルのダウンロードのみを選択すれば、情報処理装置10は、他の言語の言語依存ファイルをダウンロードしない。またユーザがシングルプレイモードのゲームファイルのダウンロードを選択し、マルチプレイモードのゲームファイルのダウンロードを選択しなければ、情報処理装置10は、マルチプレイモードのゲームファイルをダウンロードしない。そのため実施例では、ダウンロード処理の終了後に、選択されなかったファイルが補助記憶装置2に記録されていない状況が発生しうる。
ゲームソフトウェア70の各ファイルは、ルートディレクトリから始まるフルパスをもつ。たとえばファイルパスは、(/ディレクトリA/ディレクトリB/ディレクトリC/ディレクトリD/ディレクトリE/ファイル名)として表現される。ゲームソフトウェア70が10万個以上のファイルを含むような場合、ディレクトリの階層数は多くなり、ファイルパスは長くなる。システムの運用上、ファイルパスの長さには制限を設ける必要があるが、実施例でファイルパスの最大長は、たとえば1024バイトに設定される。
ゲーム実行中、ゲームプログラムは、ゲームの進行に応じて、ファイルパスを含む読出要求をファイルシステムに出力する。ゲームプログラムの起動時、全てのファイルのファイルパスをメモリに展開(ロード)しておくことで、ファイルシステムは、ゲームプログラムにより指定されたファイルパスを、ロードしたファイルパスの集合の中から文字列マッチングによって探索し、適切なファイルパスであることを確認できる。しかしながら、ファイル数が多く且つファイルパスが長い(最大で1024バイト)と、ファイルパス同士の文字列マッチング処理に時間がかかる。また全てのファイルパスをメモリに展開すると、メモリ消費量が大きく、メモリの効率的な利用の観点から好ましくない。
そこで実施例では、(/ディレクトリA/ディレクトリB/ディレクトリC/ディレクトリD/ディレクトリE/ファイル名)のファイルパスの情報を検索用のメタデータとしては利用せず、ファイルパスのハッシュ値を検索用のメタデータとして利用する。ハッシュ値のデータ長はたとえば8バイトであり、ファイルパスのデータ長と比べると、メモリの消費量を大幅に削減できる。複数のファイルパスのハッシュ値を保持したハッシュ値テーブルは、ゲームソフトウェア70の第1グループに含まれ、最初に情報処理装置10にダウンロードされてよい。
ハッシュ値テーブルは、ゲームプログラムから読み出される可能性のある全てのゲームファイルのフルパスのハッシュ値をナンバリングして記録する。ハッシュ値テーブルにおいて、ファイルパスのハッシュ値は、二分探索のために昇順または降順に並べられることが好ましい。ゲームを開発するメーカには、情報処理システム1の運用主体から、ゲームソフトウェアのパッケージを作成するためのシステム開発キット(SDK)が配布されるが、このSDKが、パッケージソフトウェアを作成する際に、ファイルパスのハッシュ化処理を実施してハッシュ値テーブルを作成する。
複数(たとえば10万個以上)のゲームファイルを含むゲームソフトウェアがゲームメーカにより製作された後、SDKは、任意のシードパラメータを用いて、各ゲームファイルのファイルパスのハッシュ値を生成する。このときSDKは、各ファイルパスのハッシュ値が唯一のものとなるように、つまり2つ以上のハッシュ値が互いに重ならないように、ハッシュ値を生成する。SDKは、複数のシードパラメータを試すことで、ハッシュ値が競合しないシードパラメータを見つけ出してよい。
ソフトウェアのパッケージング処理に際し、SDKは、ゲームメーカからグループ定義に関する情報を取得して、複数のファイルをグループに分ける処理を実施する。このときSDKは、第1グループに、作成したハッシュ値テーブルと、当該ハッシュ値テーブルを作成したときに用いたシードパラメータと、ハッシュ値テーブルの番号(ハッシュID)とファイルパスとを対応付けた対応テーブルを含める。これによりハッシュ値テーブル、シードパラメータおよび対応テーブルは、最初に情報処理装置10に提供されるようになる。以下、情報処理装置10について説明する。
図4は、情報処理装置10の機能ブロックを示す。情報処理装置10は処理部100および通信部102を備える。処理部100は、実行部110、属性情報設定部112、読出要求受付部114、ハッシュ値導出部116、ファイル確認部118、判定部120、ファイルアクセス部122およびダウンロード部124を備える。通信部102は図2に示す無線通信モジュール38および有線通信モジュール40の機能を併せ持つ構成として表現される。
処理部100の構成は、ハードウエアコンポーネントでいえば、任意のコンピュータのCPU、メモリ、メモリにロードされたプログラム、ストレージなどによって実現されるが、ここではそれらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者には理解されるところである。
ユーザがストアサーバ16でゲームを購入すると、ダウンロード部124が、コンテンツサーバ12から、購入したゲームソフトウェアをダウンロードする。ダウンロードに際してユーザは、必要としない言語依存ファイルや、ダウンロードを希望しないプレイモードを指定できる。そのためダウンロード処理の終了後、ユーザがダウンロードを希望しなかったファイルは、補助記憶装置2に記録されていないことになる。
ダウンロード部124はグループ単位でダウンロードを実行する。図3に示すようにゲームソフトウェア70のグループはグループ番号で特定される。グループ番号は1から昇順に設定されており、ダウンロード部124は、グループ単位でダウンロード要求をコンテンツサーバ12に送信し、コンテンツサーバ12から送信されるゲームファイルを補助記憶装置2に記録する。たとえば、ユーザがシングルプレイモードのゲームファイルのダウンロードを選択し、マルチプレイモードのゲームファイルのダウンロードを選択しない場合、ダウンロード部124は、シングルプレイモードに対して設定されたダウンロード順序にしたがって、グループ単位でダウンロード要求をコンテンツサーバ12に送信する。グループのダウンロード順序は、ダウンロード開始前に、コンテンツサーバ12からダウンロード部124に提供されてよい。
図4の補助記憶装置2に、メタデータ200と、複数のファイル202a、・・・202zが記録されている様子を示す。なお他の定義ファイル等の図示は省略している。メタデータ200は、ハッシュ値テーブルと、シードパラメータと、ハッシュIDとファイルパスとを対応付けた対応テーブルとを含んでいる。ダウンロード部124は、ゲームソフトウェアに含まれる各ファイルについて補助記憶装置2に記録したか否かを管理し、また各グループについて、グループに属する全てのファイルを補助記憶装置2に記録したか否かを管理する。
以下、ユーザがゲームをプレイする際の処理部100の動作について説明する。
情報処理装置10は、複数のゲームのアイコンを並べたゲーム選択画面を出力装置4に表示する。ユーザが、これからプレイするゲームのアイコンを選択すると、実行部110が、選択されたゲームのプログラムを起動する。このときファイル確認部118は、補助記憶装置2に保持されたメタデータ200からハッシュ値テーブル210を読み出し、メモリ62に展開(ロード)する。
図5は、ハッシュ値テーブル210の例を示す。この例で、ゲームプログラムから読み出される可能性のあるファイル数が10万個であり、したがって10万個のファイルパスのハッシュ値が、ハッシュ値テーブル210に保持されている。ファイルパスのハッシュ値はナンバリングされる。図5に示す例で、10万個のファイルパスのハッシュ値は、昇順に並べられてナンバリングされており、具体的には1〜100000の番号(ハッシュID)に対応付けて、ハッシュ値が小さい順に並べられている。なおハッシュ値テーブル210において、10万個のハッシュ値は降順に並べられていてもよい。
またゲーム起動時、属性情報設定部112は、ゲームプログラムから読み出される可能性のある複数(ここでは10万個)のファイルのそれぞれの属性情報を、メモリ62にロードする。属性情報には、ファイルにアクセス可能であるか否かを示す情報が含まれる。ファイルにアクセス可能であるか否かを示す情報を「アクセス可否情報」と呼ぶと、アクセス可否情報は、フラグ値として表現されてよい。アクセス可否情報のフラグ値1は、ファイルにアクセス可能であることを、フラグ値0は、ファイルにアクセス不能であることを示す。ファイルにアクセス不能であるとは、当該ファイルが補助記憶装置2に記録されていない場合だけでなく、当該ファイルは記録されているものの、当該ファイルが属するグループに含まれる他のファイルが未記録であり、そのグループを利用できない場合を含む。
ゲーム起動時、属性情報設定部112は、10万個の属性情報をロードする領域をメモリ62に確保し、各ファイルのアクセス可否情報をアクセス可否情報テーブル212に書き込む。上記したようにダウンロード部124は、ゲームソフトウェアに含まれる各ファイルについて補助記憶装置2に記録したか否かを管理し、また各グループについて、グループに属する全てのファイルを補助記憶装置2に記録したか否かを管理している。属性情報設定部112は、これらの管理情報をダウンロード部124から取得して、各ファイルについてのアクセス可否情報を生成してよい。上記したように、補助記憶装置2に記録されているファイルであって、当該ファイルが属するグループに含まれる一部のファイルが補助記憶装置2に記録されていない場合、属性情報設定部112は、当該ファイルのフラグ値を0とする。
図6は、アクセス可否情報テーブル212の例を示す。左欄の番号(フラグID)は、ハッシュ値テーブルにおける1〜100000の番号(ハッシュID)に対応する。つまり同じ値のハッシュIDとフラグIDは、同一のファイルを表現する。アクセス可否情報テーブル212の右欄には、ファイルのアクセス可否情報がフラグ値として記録される。上記したようにメタデータ200には、ハッシュIDとファイルパスとを対応付けた対応テーブルが含まれており、属性情報設定部112は対応テーブルを参照することで、ハッシュIDと同一のフラグIDに対応付けて、ファイルのアクセス可否情報を書き込む。なおアクセス可否情報テーブル212は、ファイルのアクセス可否を示すフラグ値に加えて、リード/ライトの可否を示す属性情報を含んでもよい。
以上のように、ゲーム開始前には、ハッシュ値テーブル210およびアクセス可否情報テーブル212がメモリ62にロードされた状態となる。メタデータとして全てのファイルパスをメモリ62にロードした状態と比較すると、ハッシュ値テーブル210およびアクセス可否情報テーブル212の消費メモリ量は格段に小さく、メモリ62の効率的な利用が実現できる。
ユーザのプレイ中、ゲームプログラムは、ファイルパスを含む読出要求をファイルシステムに出力する。ファイルシステムにおいて、読出要求受付部114が、ファイルパスを含む読出要求を受け付け、ファイルパスをハッシュ値導出部116に渡す。ハッシュ値導出部116は、メタデータ200に含まれるシードパラメータを利用して、ファイルパスのハッシュ値を導出する。
ファイル確認部118は、ハッシュ値テーブル210を参照して、導出したハッシュ値が、ゲームソフトウェアに含まれるファイルのハッシュ値に一致するか確認する。ハッシュ値テーブル210には10万個のハッシュ値が存在するが、昇順または降順に並んでいるため、ファイル確認部118は、二分探索アルゴリズムを用いて、効率的に一致確認を行うことができる。導出したハッシュ値が、10万個のハッシュ値の集合に含まれていない場合、判定部120は、なんらかのエラーが発生したことを判定して、読出要求を拒絶する。
一致することが確認された場合に、判定部120は、属性情報設定部112がメモリ62にロードした属性情報を参照して、当該ファイルに対する処理を実施可能であるか否かを判定する。具体的に判定部120は、メモリ62にロードしたアクセス可否情報を参照して、当該ファイルがアクセス可能であるか否かを判定する。アクセス可能であることが判定された場合、ファイルアクセス部122は、当該ファイルにアクセスする。一方、アクセス不能であることが判定された場合、ファイルアクセス部122は、当該ファイルにアクセスしない。
以上のように処理部100は、メモリ消費量の小さいハッシュ値テーブル210およびアクセス可否情報テーブル212を用いて、ファイル集合から特定のファイルを検索し、アクセス可否を判定できる。
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。実施例では、ソフトウェアの例としてゲームを示したが、それ以外のソフトウェアであってもよい。
1・・・情報処理システム、10・・・情報処理装置、62・・・メモリ、70・・・ゲームソフトウェア、100・・・処理部、102・・・通信部、110・・・実行部、112・・・属性情報設定部、114・・・読出要求受付部、116・・・ハッシュ値導出部、118・・・ファイル確認部、120・・・判定部、122・・・ファイルアクセス部、124・・・ダウンロード部。

Claims (8)

  1. ソフトウェアに含まれるファイルにアクセスする情報処理装置であって、ソフトウェアは、複数のファイルのパスのハッシュ値を含んでおり、
    複数のファイルのそれぞれの属性情報をメモリにロードする属性情報設定部と、
    プログラムからファイルパスを含む読出要求を受け付ける受付部と、
    読出要求に含まれるファイルパスのハッシュ値を導出する導出部と、
    導出したハッシュ値が、ソフトウェアに含まれるファイルのハッシュ値に一致するか確認するファイル確認部と、
    一致することが確認された場合に、前記属性情報設定部がメモリにロードした情報を参照して、読出要求されたファイルに対する処理を実施可能であるか否かを判定する判定部と、
    を備えることを特徴とする情報処理装置。
  2. 属性情報は、ファイルがアクセス可能であるか否かを示す情報を含む、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 複数のファイルパスのハッシュ値はナンバリングされており、
    前記属性情報設定部は、ハッシュ値の番号に、属性情報を対応付ける、
    ことを特徴とする請求項1または2に記載の情報処理装置。
  4. 複数のファイルパスのハッシュ値は、昇順または降順に並べられてナンバリングされている、
    ことを特徴とする請求項3に記載の情報処理装置。
  5. 前記判定部は、読出要求されたファイルがアクセス可能であるか否かを判定する、
    ことを特徴とする請求項1から4のいずれかに記載の情報処理装置。
  6. 複数のファイルパスのハッシュ値は、互いに重ならないように生成されている、
    ことを特徴とする請求項1から5のいずれかに記載の情報処理装置。
  7. ソフトウェアに含まれるファイルにアクセスする方法であって、
    複数のファイルのそれぞれの属性情報をメモリにロードするステップと、
    プログラムからファイルパスを含む読出要求を受け付けるステップと、
    読出要求に含まれるファイルパスのハッシュ値を導出するステップと、
    導出したハッシュ値が、ソフトウェアに含まれるファイルのハッシュ値に一致するか確認するステップと、
    一致することが確認された場合に、メモリにロードした属性情報を参照して、読出要求されたファイルに対する処理を実施可能であるか否かを判定するステップと、
    を含むファイルアクセス方法。
  8. ソフトウェアに含まれるファイルにアクセスするコンピュータに、
    複数のファイルのそれぞれの属性情報をメモリにロードする機能と、
    プログラムからファイルパスを含む読出要求を受け付ける機能と、
    読出要求に含まれるファイルパスのハッシュ値を導出する機能と、
    導出したハッシュ値が、ソフトウェアに含まれるファイルのハッシュ値に一致するか確認する機能と、
    一致することが確認された場合に、メモリにロードした属性情報を参照して、読出要求されたファイルに対する処理を実施可能であるか否かを判定する機能と、
    を実現させるためのプログラム。
JP2019226718A 2019-12-16 2019-12-16 情報処理装置およびファイルアクセス方法 Active JP7321917B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2019226718A JP7321917B2 (ja) 2019-12-16 2019-12-16 情報処理装置およびファイルアクセス方法
PCT/JP2020/036717 WO2021124634A1 (ja) 2019-12-16 2020-09-28 情報処理装置およびファイルアクセス方法
US17/783,329 US11983177B2 (en) 2019-12-16 2020-09-28 Information processing device and file access method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019226718A JP7321917B2 (ja) 2019-12-16 2019-12-16 情報処理装置およびファイルアクセス方法

Publications (2)

Publication Number Publication Date
JP2021096594A true JP2021096594A (ja) 2021-06-24
JP7321917B2 JP7321917B2 (ja) 2023-08-07

Family

ID=76432629

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019226718A Active JP7321917B2 (ja) 2019-12-16 2019-12-16 情報処理装置およびファイルアクセス方法

Country Status (3)

Country Link
US (1) US11983177B2 (ja)
JP (1) JP7321917B2 (ja)
WO (1) WO2021124634A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000215201A (ja) * 1999-01-21 2000-08-04 Matsushita Electric Ind Co Ltd マルチメディア情報提供システム
JP2015088144A (ja) * 2013-11-01 2015-05-07 株式会社ソニー・コンピュータエンタテインメント 情報処理装置およびゲームデータのデータ構造
US9830345B1 (en) * 2016-09-26 2017-11-28 Semmle Limited Content-addressable data storage
JP2019091477A (ja) * 2013-09-13 2019-06-13 ユニコム・システムズ,インコーポレーテッド 文書管理およびアクセス制御を有する分散データシステム
JP2019114076A (ja) * 2017-12-25 2019-07-11 キヤノン電子株式会社 情報処理システム、情報処理方法、情報処理装置、及びプログラム
JP2019159830A (ja) * 2018-03-13 2019-09-19 株式会社東芝 情報処理装置、情報処理方法およびプログラム

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04260945A (ja) * 1991-01-11 1992-09-16 Mitsubishi Electric Corp ファイル・アクセス装置及びファイル・アクセス方法
US7751628B1 (en) 2001-12-26 2010-07-06 Reisman Richard R Method and apparatus for progressively deleting media objects from storage
US7647327B2 (en) 2003-09-24 2010-01-12 Hewlett-Packard Development Company, L.P. Method and system for implementing storage strategies of a file autonomously of a user
WO2005119432A2 (en) 2004-06-01 2005-12-15 Red Bend Ltd Method and system for in-place updating content stored in a storage device
JP4557759B2 (ja) 2005-03-14 2010-10-06 株式会社東芝 情報処理装置、情報処理方法およびデータ更新方法
US7562189B2 (en) 2006-09-28 2009-07-14 Network Appliance, Inc. Write-in-place within a write-anywhere filesystem
JP2008123104A (ja) 2006-11-09 2008-05-29 Mitsubishi Electric Corp データアクセス装置
KR20090108695A (ko) 2006-12-26 2009-10-16 쌘디스크 코포레이션 다이렉트 데이터 파일 메모리 시스템에서 lba 인터페이스를 관리하는 방법
JP4949176B2 (ja) 2007-09-10 2012-06-06 ソニー株式会社 情報処理装置、記録方法およびコンピュータプログラム
JP2012222504A (ja) 2011-04-06 2012-11-12 Sony Corp 情報処理装置及び方法、並びにプログラム
US10754779B2 (en) 2013-01-17 2020-08-25 Sony Interactive Entertainment Inc. Information processing device and method for managing file
JP6005566B2 (ja) 2013-03-18 2016-10-12 株式会社東芝 情報処理システム、制御プログラムおよび情報処理装置
CN103440204B (zh) 2013-08-28 2016-01-27 华为技术有限公司 一种更新文件系统的方法和存储设备
JP5877186B2 (ja) 2013-11-01 2016-03-02 株式会社ソニー・コンピュータエンタテインメント 情報処理装置
JP2015088146A (ja) 2013-11-01 2015-05-07 株式会社ソニー・コンピュータエンタテインメント 情報処理装置
EP2878348B1 (en) * 2013-11-01 2020-04-29 Sony Interactive Entertainment Inc. Information processing device, data structure of game data, program, and recording medium
JP2015088143A (ja) * 2013-11-01 2015-05-07 株式会社ソニー・コンピュータエンタテインメント 情報処理装置およびゲームデータのデータ構造
US9678966B2 (en) 2013-11-08 2017-06-13 Samsung Electronics Co., Ltd. Swat command and API for atomic swap and trim of LBAs
JP6399763B2 (ja) * 2014-02-19 2018-10-03 キヤノン株式会社 情報処理装置、情報処理方法
JP2015207145A (ja) 2014-04-21 2015-11-19 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および差分情報生成装置
US9727575B2 (en) 2014-08-29 2017-08-08 Microsoft Technology Licensing, Llc File system with data block sharing
KR101944757B1 (ko) 2014-10-31 2019-02-01 후아웨이 테크놀러지 컴퍼니 리미티드 파일 액세스 방법, 시스템, 및 호스트
US10048960B2 (en) * 2014-12-17 2018-08-14 Semmle Limited Identifying source code used to build executable files
US10482065B1 (en) 2015-03-31 2019-11-19 EMC IP Holding Company LLC Managing deletion of replicas of files
US9858284B2 (en) 2015-04-21 2018-01-02 International Business Machines Corporation Crowd sourced data sampling at the crowd
US10114829B1 (en) 2015-06-26 2018-10-30 EMC IP Holding Company LLC Managing data cache for file system realized within a file
JP2017123110A (ja) 2016-01-08 2017-07-13 株式会社東芝 データ記憶装置、データ記憶方法およびプログラム
CN106446155A (zh) 2016-09-22 2017-02-22 北京百度网讯科技有限公司 用于在云存储系统中清理数据的方法和装置
US10146466B1 (en) 2017-04-27 2018-12-04 EMC IP Holding Company LLC Merging mapping metadata to promote reference counting efficiency
JP7176209B2 (ja) 2018-03-20 2022-11-22 日本電気株式会社 情報処理装置
US11500572B2 (en) 2019-04-03 2022-11-15 Alibaba Group Holding Limited Method of optimizing performance of a data storage system
US11321114B2 (en) 2019-07-19 2022-05-03 Vmware, Inc. Hypervisor assisted application virtualization
CN110727604B (zh) 2019-08-26 2022-04-29 华为技术有限公司 一种数据处理方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000215201A (ja) * 1999-01-21 2000-08-04 Matsushita Electric Ind Co Ltd マルチメディア情報提供システム
JP2019091477A (ja) * 2013-09-13 2019-06-13 ユニコム・システムズ,インコーポレーテッド 文書管理およびアクセス制御を有する分散データシステム
JP2015088144A (ja) * 2013-11-01 2015-05-07 株式会社ソニー・コンピュータエンタテインメント 情報処理装置およびゲームデータのデータ構造
US9830345B1 (en) * 2016-09-26 2017-11-28 Semmle Limited Content-addressable data storage
JP2019114076A (ja) * 2017-12-25 2019-07-11 キヤノン電子株式会社 情報処理システム、情報処理方法、情報処理装置、及びプログラム
JP2019159830A (ja) * 2018-03-13 2019-09-19 株式会社東芝 情報処理装置、情報処理方法およびプログラム

Also Published As

Publication number Publication date
WO2021124634A1 (ja) 2021-06-24
US20220414096A1 (en) 2022-12-29
US11983177B2 (en) 2024-05-14
JP7321917B2 (ja) 2023-08-07

Similar Documents

Publication Publication Date Title
US10754779B2 (en) Information processing device and method for managing file
JP6360014B2 (ja) 情報処理装置およびダウンロード進捗状況の表示方法
US10166467B2 (en) Information processing device, data structure of game data, and recording medium
US20150126288A1 (en) Information processing device, program, and recording medium
EP2878348B1 (en) Information processing device, data structure of game data, program, and recording medium
WO2021124634A1 (ja) 情報処理装置およびファイルアクセス方法
JP6855348B2 (ja) 情報処理装置およびダウンロード処理方法
JP2015088144A (ja) 情報処理装置およびゲームデータのデータ構造
JP6580515B2 (ja) 情報処理装置およびデータコピー方法
JP6767319B2 (ja) 情報処理装置およびファイルコピー方法
WO2020203669A1 (ja) 情報処理装置およびインストール方法
WO2020246378A1 (ja) 情報処理装置およびアプリケーション実行方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230524

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230711

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230726

R150 Certificate of patent or registration of utility model

Ref document number: 7321917

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150