JP5385977B2 - ファイル入出力スケジューラ - Google Patents
ファイル入出力スケジューラ Download PDFInfo
- Publication number
- JP5385977B2 JP5385977B2 JP2011511688A JP2011511688A JP5385977B2 JP 5385977 B2 JP5385977 B2 JP 5385977B2 JP 2011511688 A JP2011511688 A JP 2011511688A JP 2011511688 A JP2011511688 A JP 2011511688A JP 5385977 B2 JP5385977 B2 JP 5385977B2
- Authority
- JP
- Japan
- Prior art keywords
- input
- request
- data
- media device
- memory
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0611—Improving I/O performance in relation to response time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Description
本出願は、2008年5月30日に出願された、同一譲受人による米国特許出願第12/130,892号の優先権の利益を主張し、開示内容全体を参照により組み入れる。
本発明の実施の形態はコンピュータゲームおよび関連するアプリケーションに関し、特に、コンピュータゲームおよび関連するアプリケーションにおけるファイル入出力(I/O)管理に関する。
Tp=Af1(x)+Bf2(y)+Cf3(z)+Df4(w)+Ef5(v)+...
ここで、A、B、C、DおよびEは係数であり、x、y、z、wおよびvはメディアデバイスの性能特性に関するパラメータを表し、f1(x)、f2(y)、f3(z)、f4(w)およびf5(v)はx、y、z、wおよびvの関数である。一例として、限定しないが、PCEは1以上の項の和の形式の線形式であり、各項はパラメータ値(x、y、zなど)を表す変数を乗じた係数(A、B、Cなど)である。そのような式は次の形式である。
Tp=Ax+By+Cz+Dw+Ev+...
Tp=Ax+By+Cz2+Dw10+Ev−2...
Tp=Ax+Blogy+Cez+D(w2+2w+1)+...
4,1,2,3→T1
1,4,2,3→T2
1,2,4,3→T3
1,2,3,4→T4
1.入出力の完了を調べる。
2.新しい入出力リクエストを発行する。
3.入出力コールバックを発行する(もしあれば)。
4.スケジュールに挿入する(受信からスケジュールに挿入する)。
5.再度新規に発行する。
6.予想される期限の途過を調べる。
7.1に戻る。
Op = pop(FREE)
Op path = …..
Offset = …..
Push (op, incoming)
ある実施の形態では、スケジューラキャッシュ305(例えばハードディスクキャッシュ)は、ファイルが後に素早く読み出せるように、メディアデバイスからのファイルをストレージデバイス115内のキャッシュ117にプリフェッチするために用いられる。そのような場合、プリフェッチオペレーション413は発行キュー402に直接挿入されてもよい。プリフェッチは、PowerPCのCPUアーキテクチャにおける「dcbt」命令のような多くの種類のキャッシュによって実装される標準的な手動プリフェッチであってもよい。本発明の実施の形態によれば、プリフェッチは上述のスケジューラループの一部としてキューに入れられ、かつ実行されてもよい。プリフェッチは、比較的高いレイテンシでかつ低いスループットを伴う、他の入出力リクエストが完了しているときにアクセスされなければならない比較的遅いソースメディア(例えばBlu−ray(登録商標)やUMD)の仕事の手助けをする。
別の実施の形態によれば,FIOSは,メインプロセッサと,関連づけられたローカルメモリをもつ補助プロセッサとを利用するあるプロセッサアーキテクチャを活用する。たとえば,圧縮伸張または暗号解読のようなデータ変換のためにそのような実施の形態が用いられる。比較のために,ある以前のアーカイブ解凍システムは,標準的なバックグランドスレッドの中で動作する(zlibのような)単純な圧縮伸張アルゴリズムを用いてきた。本発明の実施の形態は,それとは対照的に,標準的なデコンプレッサ(decompressor)実装と,セル(Cell)プロセッサアーキテクチャのような関連づけられたローカルメモリをもつ補助プロセッサを含むプロセッサアーキテクチャを活用するように構成された非標準的な実装の両方を可能にする抽象的なコーデックインタフェースを含む。そのような実施の形態によれば,デコンプレッサオブジェクトが多数のフラグと制約条件を設定することが可能になり、デアーカイバ(de-archiver)301は,それを活用して、メモリ使用と速度を最適化する。特別な取り扱いをすることになるこれらの制約条件と環境の多くは、ゲームプログラミング、ファイルシステムI/O圧縮伸張、またはシステム100のアーキテクチャにとって固有のものである。
以前のFIOS実装には、ランダムアクセスデアーカイブが含まれており、それによって、圧縮されたアーカイブのコンテンツがファイルシステム階層に仮想的に現れ、読み出しと圧縮伸張をオーバーラップさせることによって最適に効率化した方法でこれらのアーカイブからデータを読み出すことができた。本発明の実施の形態は、単一のデアーカイバレイヤ301をもち、性能ペナルティのないネストした(入れ子になった)アーカイブを取り扱う能力をもつことにより、このシステムを改善するものである。ここで使われるネストしたアーカイブという用語は、他のアーカイブ内に格納されるアーカイブのことを言い、他のアーカイブはさらにネストの任意の深いレベルにまで別のアーカイブに格納されていてもよい。
/game.psarc
外側のアーカイブ800を開いているなら、リストは次のようである。
/game (folder)
/game/level1.psarc
/game/level2.psarc
/game/common.dat
内側のアーカイブを開いているなら、リストは次のようである。
/game/level1/map
/game/level1/weapons
/game/level1/enemies
/game/level2/map
/game/level2/weapons
/game/level2/enemies
/game/common.dat
TOC: hash (/level1.psarc)
hash (/level2.psarc)
hash (/common.dat)
ここで、hash()は括弧内の量のハッシュのことである。任意の適切なハッシュ、たとえばMD5ハッシュを用いることができる。
TOC: hash(/map)
hash(/weapons)
hash(/enemies)
(/game/level2/weapons, offset 0, length 50000, none)
このファイルに対する初期ルックアップは次を返す。
(/game/level2.psarc, offset 20000, length 30000, zlib decompress)
上述のように、FIOSスタック300におけるメディアフィルタレイヤ304は、オーバレイレイヤ307を含む。本発明の実施の形態によれば、オーバレイレイヤ307は、ファイルシステムレベルにおいてファイルとディレクトリの任意のオーバレイができるように構成される。一般的なコンセプトは、より一層柔軟性があるという点を除けば、Unix(登録商標)のユニオン(union)マウントと比較することができる。典型的なユニオンマウントは、あるファイルシステムにおけるディレクトリを別のファイルシステムの全内容とマージすることにより実現される。オーバレイレイヤ307は同様のことをするが、もっと柔軟であり、たくさんの特徴がある。たとえば、オーバレイレイヤ307は、ディレクトリ、ファイルまたはファイル内のバイトのレンジの粒度で動作する。ディレクトリは隠され、そのコンテンツはオーバレイレイヤ307を用いて置き換えられる。さらに、オーバレイレイヤ307は、プライマリデータソースから要求されるファイルをセカンダリデータソースからの他のファイルで置き換えるために使われる。セカンダリデータソースは、ファイルまたはディレクトリであり、それは、プライマリデータソースと同じメディアまたは別のメディア上にある。さらに、第2データソースは仮想的なデータソースであり、データがコールバックによって指定されてもよい。この特定の文脈において、「コールバック」という用語は、他のコードへの引数として渡される実行可能なコードのことである。
本発明のある実施の形態では、速度エミュレーションレイヤ315は、低速I/Oデバイスの性能をエミュレートするために開発過程でより速いストレージの速度を低下させるために用いられる。速度エミュレーションレイヤ315は、低速I/Oデバイスのシーク時間、スループット、および他の性能特性のモデルを利用する。たとえば、速度エミュレーションレイヤ315は、ストレージデバイス115(たとえばハードディスクドライブ)を低速化して、HD―DVDやブルーレイ(登録商標)ドライブのようなメディアデバイス118の低速のシークタイムおよび/またはスループットをエミュレートする。
Claims (34)
- プロセッサユニット、メモリ、およびメディアデバイスをもつシステムにおいて、前記プロセッサユニットは、メインプロセッサと、関連づけられたローカルメモリをもつ補助プロセッサとを含み、メディアデバイスに対する入出力(I/O)をハンドリングする方法であって、
a)メディアデバイスに対してデータを転送するために、プロセッサ上で動作するアプリケーションから入力I/Oリクエストを受け取るステップと、
b)前記入力I/Oリクエストを完了するための予測時間Tpを計算するステップと、
c)前記入力I/Oリクエストのスケジュール内の位置が予測時間Tpに少なくとも部分的に依存するように、前記入力I/Oリクエストをメモリ内に具体化されたスケジュールに挿入するステップと、
d)メディアデバイスからローカルメモリにデータを転送することによって、前記スケジュールにしたがって前記入力I/Oリクエストをサービスし、補助プロセッサを用いてローカルメモリのデータを変換するステップとを含み、
前記入力I/Oリクエストを前記スケジュールに挿入するステップは、
複数の異なるI/Oリクエストをサービスするための合計時間Tを決定するステップと、
前記複数のI/Oリクエストの2以上の異なる順序に対して前記合計時間Tの2以上の異なる値を計算するステップと、
前記合計時間の最適値にもとづいて前記入力I/Oリクエストを前記スケジュールに挿入するステップとを含み、
ステップd)は、データオーバレイを実行するステップを含み、メディアデバイスとメモリ間で転送されるプライマリデータユニットは、セカンダリデータソースからのセカンダリデータユニットで置き換えられることを特徴とする方法。 - ステップb)は、メディアデバイスのパラメータと前記I/Oリクエストから決定される係数を用いた性能特性式(PCE)にしたがって予測時刻TPを計算するステップを含む請求項1の方法。
- 前記パラメータは、リクエストオーバーヘッドx、ヘッド運動レートy、およびスループットzを含む請求項2の方法。
- 前記係数は、オーバーヘッド係数A、ヘッド移動距離B、および転送データ量Cを含む請求項3の方法。
- 前記性能特性式は、Tp=Ax+By+Czの形である請求項4の方法。
- ステップc)は、前記スケジュール内の前記複数の異なるI/Oリクエストに対する異なる係数をもつ前記性能特性式を繰り返すことで前記複数のI/Oリクエストをサービスするための前記合計時間Tを決定するステップを含む請求項2の方法。
- 前記合計時間Tの最適値の値は、前記複数のI/Oリクエストの2以上の異なる順序に対する合計時間Tの最小値である請求項1の方法。
- ステップb)は、I/Oリクエストに対してかかった現実の時間Taを測定するステップと、前記現実の時間Taを前記係数とともに用いて、未知パラメータの値に対してPCEを反復して解くステップとを含む請求項2の方法。
- ステップd)は、圧縮されたネストしたアーカイブから特定のデータを抽出するステップをさらに含む請求項1の方法。
- 前記システムはさらにグラフィックスプロセッサと関連づけられたグラフィックスメモリとを含み、ステップd)は、メディアデバイスからグラフィックスメモリにデータを読み込むステップと、グラフィックスメモリからローカルメモリにデータを転送するステップと、補助プロセッサを用いてデータ上でデータ変換を実行して、変換されたデータを生成するステップと、変換されたデータをグラフィックスメモリに返送するステップとを含む請求項1の方法。
- 前記プライマリデータユニットのソースと前記セカンダリデータソースは同じメディア上にある請求項10の方法。
- 前記プライマリデータユニットのソースと前記セカンダリデータソースは異なるメディア上にある請求項10の方法。
- 前記セカンダリデータソースは仮想的なデータソースである請求項10の方法。
- セカンダリデータユニットはコールバックによって指定される請求項13の方法。
- 前記システムは高速ストレージデバイスをさらに含み、ステップd)は、メディアデバイスから高速ストレージデバイスへ1以上のデータユニットをプリフェッチするステップと、それに続いて高速ストレージデバイスからそのデータユニットを転送するステップとを含む請求項1の方法。
- 高速ストレージデバイスはハードディスクドライブである請求項15の方法。
- メディアデバイスは大容量の光ディスクドライブである請求項16の方法。
- 1以上のデータユニットをプリフェッチするステップは、I/Oがアイドルであるとき、ある時間間隔の間、1以上のデータユニットをプリフェッチする請求項15の方法。
- 1以上のデータユニットをプリフェッチするステップは、メディアデバイスから1以上のデータユニットの第1グループをプリフェッチするステップと、メディアデバイスがアイドルかどうかを調べるステップと、もしI/Oがアイドルなら、メディアデバイスから1以上のデータユニットの第2グループをプリフェッチし、もしI/Oがアイドルでないなら、前記第2グループのプリフェッチを遅延させるステップとを含む請求項18の方法。
- ステップb)は、前記システムに関連づけられたメディアデバイスよりも低速のメディアのオペレーションをエミュレートするために前記メディアデバイスのパラメータを調整するステップを含む請求項1の方法。
- プロセッサユニットと、
前記プロセッサユニットと結合したメモリと、
前記プロセッサユニットと結合したメディアデバイスと、
前記メモリに具体化されたプロセッサ実行可能な命令セットとを含むシステムであって、
前記命令は実行されたときに、メディアデバイスに対する入出力(I/O)をハンドリングする方法を実行するように構成され、前記方法は、
a)メディアデバイスに対してデータを転送するために、プロセッサ上で動作するアプリケーションから入力I/Oリクエストを受け取るステップと、
b)前記入力I/Oリクエストを完了するための予測時間Tpを計算するステップと、
c)前記入力I/Oリクエストのスケジュール内の位置が予測時間Tpに少なくとも部分的に依存するように、前記入力I/Oリクエストをメモリ内に具体化されたスケジュールに挿入するステップと、
d)前記スケジュールにしたがって前記入力I/Oリクエストをサービスするステップとを含み、
前記プロセッサ実行可能な命令セットは、デアーカイバレイヤ、RAMキャッシュレイヤ、スケジューラキャッシュレイヤ、オーバレイレイヤ、カタログキャッシュレイヤ、データ変換レイヤ、またはシミュレートされたデータレイヤを含む1以上のメディアフィルタレイヤをさらに含み、
前記入力I/Oリクエストを前記スケジュールに挿入するステップは、
複数の異なるI/Oリクエストをサービスするための合計時間Tを決定するステップと、
前記複数のI/Oリクエストの2以上の異なる順序に対して前記合計時間Tの2以上の異なる値を計算するステップと、
前記合計時間の最適値にもとづいて前記入力I/Oリクエストを前記スケジュールに挿入するステップとを含み、
ステップd)は、データオーバレイを実行するステップを含み、メディアデバイスとメモリ間で転送されるプライマリデータユニットは、セカンダリデータソースからのセカンダリデータユニットで置き換えられることを特徴とするシステム。 - メインプロセッサと、関連づけられたローカルメモリをもつ補助プロセッサと、メインメモリと、メディアデバイスとを含むシステムにおいて、メディアデバイスに対する入出力(I/O)をハンドリングする方法であって、
a)メディアデバイスに対してデータを転送するために、メインプロセッサ上で動作するアプリケーションから入力I/Oリクエストを受け取るステップと、
b)前記入力I/Oリクエストをメインメモリ内に具体化されたスケジュールに挿入するステップと、
c)スケジュールと1以上のフィルタにしたがって前記入力I/Oリクエストをサービスするステップとを含み、1以上のフィルタの少なくとも1つは補助プロセッサによって実行され、
前記入力I/Oリクエストを前記スケジュールに挿入するステップは、
複数の異なるI/Oリクエストをサービスするための合計時間Tを決定するステップと、
前記複数のI/Oリクエストの2以上の異なる順序に対して前記合計時間Tの2以上の異なる値を計算するステップと、
前記合計時間の最適値にもとづいて前記入力I/Oリクエストを前記スケジュールに挿入するステップとを含み、
ステップd)は、データオーバレイを実行するステップを含み、メディアデバイスとメモリ間で転送されるプライマリデータユニットは、セカンダリデータソースからのセカンダリデータユニットで置き換えられることを特徴とする方法。 - プロセッサユニット、メモリ、およびメディアデバイスをもつシステムにおいて、メディアデバイスに対する入出力(I/O)をハンドリングする方法であって、
a)メディアデバイスに対してデータを転送するために、プロセッサ上で動作するアプリケーションから入力I/Oリクエストを受け取るステップと、
b)前記入力I/Oリクエストを完了するための予測時間Tpを計算するステップと、
c)前記入力I/Oリクエストのスケジュール内の位置が予測時間Tpに少なくとも部分的に依存するように、前記入力I/Oリクエストをメモリ内に具体化されたスケジュールに挿入するステップと、
d)前記スケジュールにしたがって前記入力I/Oリクエストを実行するステップとを含み、ステップd)は、圧縮されたネストしたアーカイブから特定のデータを抽出するステップを含み、
前記入力I/Oリクエストを前記スケジュールに挿入するステップは、
複数の異なるI/Oリクエストをサービスするための合計時間Tを決定するステップと、
前記複数のI/Oリクエストの2以上の異なる順序に対して前記合計時間Tの2以上の異なる値を計算するステップと、
前記合計時間の最適値にもとづいて前記入力I/Oリクエストを前記スケジュールに挿入するステップとを含み、
ステップd)は、データオーバレイを実行するステップを含み、メディアデバイスとメモリ間で転送されるプライマリデータユニットは、セカンダリデータソースからのセカンダリデータユニットで置き換えられることを特徴とする方法。 - プロセッサユニット、メモリ、およびメディアデバイスをもつシステムにおいて、メディアデバイスに対する入出力(I/O)をハンドリングする方法であって、
a)メディアデバイスに対してデータを転送するために、プロセッサ上で動作するアプリケーションから入力I/Oリクエストを受け取るステップと、
b)前記入力I/Oリクエストを完了するための予測時間Tpを計算するステップと、
c)前記入力I/Oリクエストのスケジュール内の位置が予測時間Tpに少なくとも部分的に依存するように、前記入力I/Oリクエストをメモリ内に具体化されたスケジュールに挿入するステップと、
d)前記スケジュールにしたがって前記入力I/Oリクエストを実行するステップとを含み、ステップd)は、データオーバレイを実行するステップを含み、メディアデバイスとメモリ間で転送されるプライマリデータユニットは、セカンダリデータソースからのセカンダリデータユニットで置き換えられ、
前記入力I/Oリクエストを前記スケジュールに挿入するステップは、
複数の異なるI/Oリクエストをサービスするための合計時間Tを決定するステップと、
前記複数のI/Oリクエストの2以上の異なる順序に対して前記合計時間Tの2以上の異なる値を計算するステップと、
前記合計時間の最適値にもとづいて前記入力I/Oリクエストを前記スケジュールに挿入するステップとを含み、
ステップd)は、データオーバレイを実行するステップを含み、メディアデバイスとメモリ間で転送されるプライマリデータユニットは、セカンダリデータソースからのセカンダリデータユニットで置き換えられることを特徴とする方法。 - 前記プライマリデータユニットのソースと前記セカンダリデータソースは同じメディア上にある請求項24の方法。
- 前記プライマリデータユニットのソースと前記セカンダリデータソースは異なるメディア上にある請求項24の方法。
- 前記セカンダリデータソースは仮想的なデータソースである請求項24の方法。
- セカンダリデータユニットはコールバックによって指定される請求項27の方法。
- プロセッサユニット、メモリ、高速ストレージデバイス、およびメディアデバイスをもつシステムにおいて、メディアデバイスに対する入出力(I/O)をハンドリングする方法であって、
a)メディアデバイスに対してデータを転送するために、プロセッサ上で動作するアプリケーションから入力I/Oリクエストを受け取るステップと、
b)前記入力I/Oリクエストを完了するための予測時間Tpを計算するステップと、
c)前記入力I/Oリクエストのスケジュール内の位置が予測時間Tpに少なくとも部分的に依存するように、前記入力I/Oリクエストをメモリ内に具体化されたスケジュールに挿入するステップと、
d)前記スケジュールにしたがって前記入力I/Oリクエストを実行するステップとを含み、ステップd)は、メディアデバイスから高速ストレージデバイスへ1以上のデータユニットをプリフェッチするステップと、それに続いて高速ストレージデバイスからそのデータユニットを転送するステップとを含み、
前記入力I/Oリクエストを前記スケジュールに挿入するステップは、
複数の異なるI/Oリクエストをサービスするための合計時間Tを決定するステップと、
前記複数のI/Oリクエストの2以上の異なる順序に対して前記合計時間Tの2以上の異なる値を計算するステップと、
前記合計時間の最適値にもとづいて前記入力I/Oリクエストを前記スケジュールに挿入するステップとを含み、
ステップd)は、データオーバレイを実行するステップを含み、メディアデバイスとメモリ間で転送されるプライマリデータユニットは、セカンダリデータソースからのセカンダリデータユニットで置き換えられることを特徴とする方法。 - 高速ストレージデバイスはハードディスクドライブである請求項29の方法。
- メディアデバイスは大容量の光ディスクドライブである請求項30の方法。
- 1以上のデータユニットをプリフェッチするステップは、I/Oがアイドルであるとき、ある時間間隔の間、1以上のデータユニットをプリフェッチする請求項31の方法。
- 1以上のデータユニットをプリフェッチするステップは、メディアデバイスから1以上のデータユニットの第1グループをプリフェッチするステップと、メディアデバイスがアイドルかどうかを調べるステップと、もしI/Oがアイドルなら、メディアデバイスから1以上のデータユニットの第2グループをプリフェッチし、もしI/Oがアイドルでないなら、前記第2グループのプリフェッチを遅延させるステップとを含む請求項31の方法。
- プロセッサユニット、メモリ、高速ストレージデバイス、およびメディアデバイスをもつシステムにおいて、メディアデバイスに対する入出力(I/O)をハンドリングする方法であって、
a)メディアデバイスに対してデータを転送するために、プロセッサ上で動作するアプリケーションから入力I/Oリクエストを受け取るステップと、
b)前記入力I/Oリクエストを完了するための予測時間Tpを計算するステップと、
c)前記入力I/Oリクエストのスケジュール内の位置が予測時間Tpに少なくとも部分的に依存するように、前記入力I/Oリクエストをメモリ内に具体化されたスケジュールに挿入するステップと、
d)前記スケジュールにしたがって前記入力I/Oリクエストを実行するステップとを含み、ステップb)は、前記システムに関連づけられたメディアデバイスよりも低速のメディアのオペレーションをエミュレートするために前記メディアデバイスのパラメータを調整するステップを含み、
前記入力I/Oリクエストを前記スケジュールに挿入するステップは、
複数の異なるI/Oリクエストをサービスするための合計時間Tを決定するステップと、
前記複数のI/Oリクエストの2以上の異なる順序に対して前記合計時間Tの2以上の異なる値を計算するステップと、
前記合計時間の最適値にもとづいて前記入力I/Oリクエストを前記スケジュールに挿入するステップとを含み、
ステップd)は、データオーバレイを実行するステップを含み、メディアデバイスとメモリ間で転送されるプライマリデータユニットは、セカンダリデータソースからのセカンダリデータユニットで置き換えられることを特徴とする方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/130,892 | 2008-05-30 | ||
US12/130,892 US8504736B2 (en) | 2008-05-30 | 2008-05-30 | File input/output scheduler |
PCT/US2009/043387 WO2009148764A1 (en) | 2008-05-30 | 2009-05-08 | File input/output scheduler |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011525010A JP2011525010A (ja) | 2011-09-08 |
JP5385977B2 true JP5385977B2 (ja) | 2014-01-08 |
Family
ID=41381486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011511688A Active JP5385977B2 (ja) | 2008-05-30 | 2009-05-08 | ファイル入出力スケジューラ |
Country Status (6)
Country | Link |
---|---|
US (1) | US8504736B2 (ja) |
EP (1) | EP2301002A4 (ja) |
JP (1) | JP5385977B2 (ja) |
KR (1) | KR101238163B1 (ja) |
CN (1) | CN102047305B (ja) |
WO (1) | WO2009148764A1 (ja) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8504736B2 (en) * | 2008-05-30 | 2013-08-06 | Sony Computer Entertainment America Inc. | File input/output scheduler |
US8752100B2 (en) * | 2008-08-29 | 2014-06-10 | At&T Intellectual Property Ii, Lp | Systems and methods for distributing video on demand |
US8078799B2 (en) * | 2009-06-10 | 2011-12-13 | Lsi Corporation | Method and system of an adaptive input/output scheduler for storage arrays |
US8310492B2 (en) * | 2009-09-03 | 2012-11-13 | Ati Technologies Ulc | Hardware-based scheduling of GPU work |
US9852143B2 (en) | 2010-12-17 | 2017-12-26 | Microsoft Technology Licensing, Llc | Enabling random access within objects in zip archives |
US20130067237A1 (en) * | 2011-09-12 | 2013-03-14 | Microsoft Corporation | Providing random access to archives with block maps |
US20130159382A1 (en) * | 2011-12-15 | 2013-06-20 | Microsoft Corporation | Generically presenting virtualized data |
US9858149B2 (en) * | 2012-01-03 | 2018-01-02 | Microsoft Technology Licensing, Llc | Accessing overlay media over a network connection |
KR20150035602A (ko) * | 2012-06-29 | 2015-04-06 | 해피 클라우드 인코포레이티드 | 데이터 저장 디바이스에 데이터세트의 기입 관리 |
US8983237B2 (en) | 2012-08-22 | 2015-03-17 | Adobe Systems Incorporated | Non-destructive collaborative editing |
US9390155B2 (en) | 2012-08-22 | 2016-07-12 | Adobe Systems Incorporated | Accessing content in a content-aware mesh |
US9514157B2 (en) * | 2012-08-22 | 2016-12-06 | Adobe Systems Incorporated | Multi-dimensional browsing of content |
US20140068621A1 (en) * | 2012-08-30 | 2014-03-06 | Sriram Sitaraman | Dynamic storage-aware job scheduling |
US9519574B2 (en) * | 2012-11-28 | 2016-12-13 | Microsoft Technology Licensing, Llc | Dynamic content access window loading and unloading |
CN104346220B (zh) * | 2013-07-31 | 2017-11-03 | 中国科学院计算技术研究所 | 一种任务调度方法与系统 |
US9372716B1 (en) * | 2013-09-23 | 2016-06-21 | Amazon Technologies, Inc. | Download prioritization |
CN105763481A (zh) * | 2014-12-19 | 2016-07-13 | 北大方正集团有限公司 | 一种信息缓存方法及装置 |
KR102311229B1 (ko) | 2015-03-04 | 2021-10-14 | (주)솔레컨스 | 멀티미디어 데이터 저장 시스템 기반 파일 정보를 중복으로 저장하는 시스템 및 방법 |
CN105159774B (zh) * | 2015-07-08 | 2018-06-12 | 清华大学 | 一种api请求保序处理方法及系统 |
JP6243884B2 (ja) * | 2015-10-02 | 2017-12-06 | 株式会社ソニー・インタラクティブエンタテインメント | 情報処理装置、プロセッサ、および情報処理方法 |
US10635596B2 (en) | 2015-10-02 | 2020-04-28 | Sony Interactive Entertainment Inc. | Information processing device, access controller, information processing method, and computer program for accessing memory having access units of different sizes |
US10042749B2 (en) * | 2015-11-10 | 2018-08-07 | International Business Machines Corporation | Prefetch insensitive transactional memory |
JP6734760B2 (ja) * | 2015-11-10 | 2020-08-05 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | プリフェッチ・インセンシティブのトランザクション・メモリ |
US10645162B2 (en) * | 2015-11-18 | 2020-05-05 | Red Hat, Inc. | Filesystem I/O scheduler |
CN105549910B (zh) * | 2015-12-14 | 2018-09-07 | 浪潮(北京)电子信息产业有限公司 | 一种io调度方法及装置 |
US10614092B2 (en) | 2017-01-24 | 2020-04-07 | International Business Machines Corporation | Optimizing data retrieval operation in big-data processing systems |
US10496335B2 (en) | 2017-06-30 | 2019-12-03 | Intel Corporation | Method and apparatus for performing multi-object transformations on a storage device |
US10824598B2 (en) * | 2018-08-07 | 2020-11-03 | Dell Products L.P. | Handling file commit and commit-delete operations in an overlay optimizer |
KR102254501B1 (ko) * | 2018-10-19 | 2021-05-21 | 한양대학교 산학협력단 | 부분 순서 보장 기반의 입출력 스케줄러 및 그 방법 |
US11593156B2 (en) * | 2019-08-16 | 2023-02-28 | Red Hat, Inc. | Instruction offload to processor cores in attached memory |
US20210397526A1 (en) * | 2020-06-18 | 2021-12-23 | General Electric Company | Systems and methods of providing an abstraction layer between an application layer and hardware components of a computing device |
CN114706820B (zh) * | 2022-05-18 | 2022-09-06 | 北京卡普拉科技有限公司 | 异步i/o请求的调度方法、系统、电子设备及介质 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5220653A (en) * | 1990-10-26 | 1993-06-15 | International Business Machines Corporation | Scheduling input/output operations in multitasking systems |
JPH08212090A (ja) * | 1995-02-03 | 1996-08-20 | Fujitsu Ltd | サーバシステム |
US6434569B1 (en) * | 1996-06-06 | 2002-08-13 | Kabushiki Kaisha Toshiba | Integrated medical information system formed of text-based and image-based databases, and display thereof |
US6157963A (en) * | 1998-03-24 | 2000-12-05 | Lsi Logic Corp. | System controller with plurality of memory queues for prioritized scheduling of I/O requests from priority assigned clients |
EP0978787A1 (en) * | 1998-08-04 | 2000-02-09 | Texas Instruments France | Improvements in or relating to transferring data between asynchronous device |
JP3975684B2 (ja) | 2000-03-29 | 2007-09-12 | 富士通株式会社 | ディスク入出力スケジュール装置および方法 |
US6671772B1 (en) * | 2000-09-20 | 2003-12-30 | Robert E. Cousins | Hierarchical file system structure for enhancing disk transfer efficiency |
US6587806B2 (en) * | 2000-12-29 | 2003-07-01 | Pitney Bowes Inc. | Method and system for determining time to sort mailpieces |
US6978355B2 (en) * | 2001-11-13 | 2005-12-20 | Seagate Technology Llc | Cache memory transfer during a requested data retrieval operation |
US7003644B2 (en) * | 2002-03-28 | 2006-02-21 | Seagate Technology Llc | Execution time dependent command schedule optimization |
US6965965B2 (en) * | 2002-06-06 | 2005-11-15 | International Business Machines Corporation | Dynamic response shaping for command aging |
US7206866B2 (en) * | 2003-08-20 | 2007-04-17 | Microsoft Corporation | Continuous media priority aware storage scheduler |
US7590522B2 (en) * | 2004-06-14 | 2009-09-15 | Hewlett-Packard Development Company, L.P. | Virtual mass storage device for server management information |
US7260703B1 (en) | 2004-08-20 | 2007-08-21 | Sun Microsystems, Inc. | Method and apparatus for I/O scheduling |
JP4456490B2 (ja) | 2005-01-14 | 2010-04-28 | 富士通株式会社 | Dma装置 |
JP5133540B2 (ja) | 2006-09-05 | 2013-01-30 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置、データ転送方法及びプログラム |
US7991948B2 (en) * | 2008-01-30 | 2011-08-02 | International Business Machines Corporation | Optimizing execution of I/O requests for a disk drive in a computing system |
US8504736B2 (en) * | 2008-05-30 | 2013-08-06 | Sony Computer Entertainment America Inc. | File input/output scheduler |
-
2008
- 2008-05-30 US US12/130,892 patent/US8504736B2/en active Active
-
2009
- 2009-05-08 CN CN200980119736.8A patent/CN102047305B/zh active Active
- 2009-05-08 EP EP09758927.9A patent/EP2301002A4/en not_active Ceased
- 2009-05-08 WO PCT/US2009/043387 patent/WO2009148764A1/en active Application Filing
- 2009-05-08 KR KR1020107029818A patent/KR101238163B1/ko active IP Right Grant
- 2009-05-08 JP JP2011511688A patent/JP5385977B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
CN102047305A (zh) | 2011-05-04 |
US20090300642A1 (en) | 2009-12-03 |
JP2011525010A (ja) | 2011-09-08 |
WO2009148764A1 (en) | 2009-12-10 |
EP2301002A4 (en) | 2016-05-25 |
EP2301002A1 (en) | 2011-03-30 |
KR20110019763A (ko) | 2011-02-28 |
CN102047305B (zh) | 2014-06-25 |
US8504736B2 (en) | 2013-08-06 |
KR101238163B1 (ko) | 2013-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5385977B2 (ja) | ファイル入出力スケジューラ | |
JP5292473B2 (ja) | 即時的にデータをチャンクにすることを用いたファイル入出力スケジューリング | |
US8244935B2 (en) | Write aggregation using optional I/O requests | |
KR101979621B1 (ko) | 다운로드 가능한 컨텐츠의 전송을 최적화하는 시스템 및 장치 | |
US7305537B1 (en) | Method and system for I/O scheduler activations | |
US9582919B2 (en) | Automatic run-time identification of textures | |
US20220004405A1 (en) | 3D API Redirection for Virtual Desktop Infrastructure | |
US6665747B1 (en) | Method and apparatus for interfacing with a secondary storage system | |
JP2002202902A (ja) | パーティション作成方法および削除方法、プログラムを記録した記録媒体、情報処理装置 | |
US20150126288A1 (en) | Information processing device, program, and recording medium | |
JP4634477B2 (ja) | メディア・ファイルの中断のない再生方法 | |
US20200310962A1 (en) | Ordering data updates for improving garbage collection being performed while performing the set of data updates | |
US20150126284A1 (en) | Information processing device, data structure of game data, and recording medium | |
TWI750676B (zh) | 用於圖形處理之資產感知計算架構 | |
US7376679B2 (en) | Facilitating delayed block allocation in a distributed file system | |
US10052555B2 (en) | Information processing device, data structure of game data, and recording medium | |
EP4020197B1 (en) | Methods and apparatus for loading of a container image | |
JP5953808B2 (ja) | 乱数処理装置、乱数処理方法、及びプログラム | |
JP6529678B2 (ja) | アプリケーションの実行を加速する方法及びデバイス | |
CN117581209A (zh) | 将数据从非易失性存储器传送到过程加速器的系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121002 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130205 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130507 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130618 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130904 |
|
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: 20131001 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131004 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5385977 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |