JP4067293B2 - キャッシュ制御プログラムおよびキャッシュ処理を行うコンピュータ - Google Patents
キャッシュ制御プログラムおよびキャッシュ処理を行うコンピュータ Download PDFInfo
- Publication number
- JP4067293B2 JP4067293B2 JP2001319700A JP2001319700A JP4067293B2 JP 4067293 B2 JP4067293 B2 JP 4067293B2 JP 2001319700 A JP2001319700 A JP 2001319700A JP 2001319700 A JP2001319700 A JP 2001319700A JP 4067293 B2 JP4067293 B2 JP 4067293B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- cache
- transfer
- block
- file
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
【発明の属する技術分野】
本発明はデータのキャッシュ処理を行うキャッシュ制御プログラムおよびキャッシュ処理を行うコンピュータに関し、特に大容量のファイルのシーケンシャルなデータの読み込みを伴うキャッシュ処理のキャッシュ制御プログラムおよびコンピュータに関する。
【0002】
【従来の技術】
計算機システムにおいて、磁気ディスク装置等の二次記憶装置へのアクセスの高速化を図るための仕組みとして、ディスクキャッシュがある。ディスクキャッシュを行うコンピュータは、データを読み出すとき、いったんデータをメモリ(主記憶装置)内に設けられたキャッシュ領域へ読み出して、キャッシュ領域から要求先へデータを転送する。そして、コンピュータは、同じデータを繰り返し読み出す際には、そのデータをメモリのキャッシュ領域から読み出す。これにより、2回目以降のデータアクセスでは、キャッシュ領域からデータを読み出すだけでよく、二次記憶装置へのアクセス回数を減らすことができる。メモリは、二次記憶装置よりも高速にアクセスできるため、データのアクセス速度が高速化される。
【0003】
なお、メモリのキャッシュ領域は有限である。そのため、キャッシュ領域の全てにデータが格納された後に、新たなデータを読み出すときは、コンピュータは、再利用するキャッシュ領域を特定し、その領域に格納されているデータを消去する。そして、コンピュータは、再利用するキャッシュ領域に、読み出すデータを転送する。
【0004】
ここで、キャッシュヒット率(読み込み対象のデータが既にキャッシュ領域上に存在する確率)の向上を望む場合、再利用するキャッシュ領域として、以後のアクセス可能性(アクセス頻度)が低いデータを保持している領域を選択する必要がある。ところが、キャッシュ領域に格納された各データに関して、今後すぐに使用される可能性が有るかどうかは、一概には判断できない。そこで、一般的には、キャッシュ領域のうち、最後にアクセスしてからの経過時間が長いデータが格納された領域から順に使用する方式が採られている。
【0005】
【発明が解決しようとする課題】
しかし、必ずしも、最後にアクセスしてから長時間経過したデータ程アクセス頻度が低いとは限らない。そのため、上記方式だけでは、場合によっては、キャッシュヒット率があまり向上しないことがあった。
【0006】
たとえば、画像データや音声データを有する大容量のファイルに対してread(読み込み)/write(書き出し)要求が発行された場合、その大容量ファイルのために、大量のキャッシュ領域が消費されてしまう。この場合、以前に存在していたキャッシュ領域上の数多くのデータは無効となってしまい、その後の一定期間のキャッシュヒット率が低下してしまう。また、大容量のファイルが先頭から読み込まれれば、先頭のデータから先にキャッシュ領域から消去されてしまう。すると、次回そのファイルを読み込む際に、ファイル読み込み開始時点でキャッシュがヒットせず、ファイルオープンに時間がかかってしまう。
【0007】
しかも、最近は、コンピュータで動画データや音声データを再生することが一般化しており、大容量のファイルの読み出し処理が頻繁に発生する。動画データや音声データは、実行可能なプログラムとは異なり、短時間に何度も繰り返して読み出されることは少ない。すなわち、アクセス頻度は少ないにも拘わらず、大容量のデータがキャッシュ領域に読み込まれ、キャッシュ領域を無駄に消費してしまう。
【0008】
本発明はこのような点に鑑みてなされたものであり、大容量のファイルアクセスがあっても、高いキャッシュヒット率を保つことができるデータキャッシュ制御プログラム及びキャッシュ処理を行うコンピュータを提供することを目的とする。
【0009】
【課題を解決するための手段】
本発明では上記課題を解決するために、図1に示すような、所定の記憶装置に入出力されるデータのキャッシュ処理を制御するためのキャッシュ制御プログラムが提供される。本発明に係るキャッシュ制御プログラムは、コンピュータに、以下の処理を実行させる。
【0010】
コンピュータは、記憶装置1からのデータ読み込み要求に応答し、データ読み込み要求で指定された転送データと当該転送データの後続データとが、複数のブロックで構成されるキャッシュ領域2内に格納されているか否かを判断する(ステップS1)。転送データがキャッシュ領域2に格納されていた場合、コンピュータは、キャッシュ領域2から転送データを所定の記憶領域に読み込む(ステップS4)。また、複数のブロックが再利用順に応じてランク分けされており、コンピュータは、転送データと転送データの後続データとのうちキャッシュ領域2に格納されていない未格納データの格納ブロックを、再利用順が高いランクのブロックから優先的に決定する(ステップS2)。次に、コンピュータは、記憶装置1内の未格納データを格納ブロックに順次転送する(ステップS3)と共に、未格納データに含まれる転送データを所定の記憶領域に読み込む(ステップS4)。そして、コンピュータは、転送データとその前に転送されたデータとの連続性を判断し、連続した一連のデータの場合、当該一連のデータの先頭から所定量のデータを格納したブロックの再利用順のランクを下げる(ステップS5)。
【0011】
このような処理をコンピュータに実行させることにより、連続した一連のデータの読み込み要求が行われた際には、先頭からの所定量のデータを格納したブロックの再利用順のランクが低くなる。そのため、他のデータの読み込みの際には、一連のデータの先頭から所定量以降データを格納したブロックが優先的に格納ブロックとして選択される。すなわち、一連のデータの先頭から所定量のデータに関しては、次回の同じデータ転送の際にもキャッシュ領域2内に格納されている可能性が高くなる。また、記憶装置1からキャッシュ領域2へのデータ転送においては、データ読み込み要求で指定された転送データと、その転送データの後続のデータがキャッシュ領域2に転送される。すなわち、シーケンシャルなデータ読み込みの際には、次に後続のデータに対するデータの読み込み要求が出されるが、そのデータが前もってキャッシュ領域2に転送されている。
【0012】
また、本発明は上記課題を解決するために、データのキャッシュ処理を行うコンピュータにおいて、第1の記憶装置と、複数のブロックで構成されるキャッシュ領域が設けられた第2の記憶装置と、前記第1の記憶装置からのデータ読み込み要求に応答し、当該データ読み込み要求で指定された転送データと当該転送データの後続データとが、複数のブロックで構成されるキャッシュ領域内に格納されているか否かを判断する判断手段と、前記複数のブロックが再利用順に応じてランク分けされており、前記転送データと当該転送データの後続データとのうち前記キャッシュ領域に格納されていない未格納データの格納ブロックを、再利用順が高いランクのブロックから優先的に決定する決定手段と、前記第1の記憶装置内の前記未格納データを前記格納ブロックに順次転送する転送手段と、前記転送データが前記キャッシュ領域に格納されていた前記転送データ、または前記転送手段で転送された前記転送データを、所定の記憶領域に読み込む読み込み手段と、前記転送データとその前に転送されたデータとの連続性を判断し、連続した一連のデータの場合、当該一連のデータの先頭から所定量のデータを格納したブロックの再利用順のランクを下げるランク変更手段と、を有することを特徴とするコンピュータが提供される。
【0013】
このコンピュータによれば、連続した一連のデータの読み込み要求が行われた際には、先頭からの所定量のデータを格納したブロックの再利用順のランクが低く設定される。すなわち、一連のデータの先頭から所定量のデータに関しては、次回の同じデータ転送の際にもキャッシュ領域2内に格納されている可能性が高くなる。また、記憶装置1からキャッシュ領域2へのデータ転送においては、データ読み込み要求で指定された転送データと、その転送データの後続のデータがキャッシュ領域2に転送される。すなわち、シーケンシャルなデータ読み込みの際には、次に後続のデータに対するデータの読み込み要求が出されるが、そのデータが前もってキャッシュ領域2に転送されている。
【0014】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
まず、本発明の実施の形態に適用される発明の概要について説明し、その後、本発明の実施の形態の具体的な内容を説明する。
【0015】
図1は、本発明の実施の形態に適用される発明の概念図である。本発明に係るキャッシュ制御プログラムを実行するコンピュータは、記憶装置1とキャッシュ領域2とを有している。記憶装置1は、例えば、ハードディスク装置などの二次記憶装置である。記憶装置1には、ファイル1aが格納されている。キャッシュ領域2は、例えば、半導体メモリなど主記憶装置内のデータ記憶領域である。コンピュータは、アプリケーション3を有している。アプリケーション3は、アプリケーションプログラムを実行することで実現される処理機能である。アプリケーション3は、処理内容に応じて、記憶装置1内のファイル1aを構成するデータのデータ読み込み要求を出力する。
【0016】
アプリケーション3からデータ読み込み要求が出されると、コンピュータは、本発明に係るキャッシュ制御プログラムに従ってデータ転送等を伴うキャッシュ制御処理を行う。すなわち、コンピュータは、記憶装置1からのデータ読み込み要求に応答し、データ読み込み要求で指定された転送データと転送データの後続データ(次回読み込みを想定して先読みすべきデータ)とが、複数のブロックで構成されるキャッシュ領域2内に格納されているか否か(キャッシュがヒットしたか否か)を判断する(ステップS1)。転送データがキャッシュ領域2に格納されていた場合(キャッシュがヒットした場合)、コンピュータは、キャッシュ領域2から転送データを所定の記憶領域に読み込む(ステップS4)。所定の記憶領域とは、例えば、アプリケーション3が占有する主記憶装置内の記憶領域である。
【0017】
また、複数のブロックが再利用順に応じてランク分けされており、コンピュータは、転送データと転送データの後続データとのうちキャッシュ領域2に格納されていない未格納データの格納ブロックを、再利用順が高いランクのブロックから優先的に決定する(ステップS2)。次に、コンピュータは、記憶装置1内の未格納データを格納ブロックに順次転送する(ステップS3)と共に、未格納データに含まれる転送データを所定の記憶領域に読み込む(ステップS4)。そして、コンピュータは、転送データとその前に転送されたデータとの連続性を判断し、連続した一連のデータの場合、当該一連のデータの先頭から所定量のデータを格納したブロックの再利用順のランクを下げる(ステップS5)。
【0018】
このような処理により、大容量のデータを読み出す際にもキャッシュ領域を無駄に消費せずに、効率的なキャッシュ管理を行うことができる。
すなわち、ファイル1aが動画データのような大容量のデータであった場合、アプリケーション3がファイル1aを読み込むには、まず、ファイル1aの先頭のデータ(DATA#1)を転送データとするデータの読み込み要求が出される。なお、以下の説明では、連続した3つ以上のデータに対して続けて読み込み要求が出されたときに、データの連続性ありと判断するものとする。また、後続のデータの先読みとして、続く2つのデータをキャッシュ領域2に読み込むものとする。
【0019】
1回目のファイル1aの読み込みにおいては、ファイル1aの先頭のデータ(DATA#1)に対するデータ読み込み要求に応じたキャッシュヒット判断(ステップS1)では、キャッシュはヒットしない。そこで、先頭のデータ(DATA#1)と後続のデータ(DATA#2,#3)とを格納するためのキャッシュ領域2内の格納ブロック(ブロック#1,#2,#3)が、再利用順のランクが高い順に判断される。そして、データ(DATA#1)と後続のデータ(DATA#2,#3)とが、キャッシュ領域2に転送される(ステップS3)。先頭のデータ(DATA#1)は、アプリケーション3の管理する記憶領域に転送される(ステップS4)。このとき、データの連続性は認められず、再利用順のランクの変更は行われない。
【0020】
続けて、次のデータ(DATA#2)に対するデータ読み込み要求がアプリケーション3から出される。このとき、データ(DATA#2)のキャッシュ領域2への転送が完了していれば、キャッシュがヒットする。キャッシュがヒットすれば、キャッシュ領域2内のデータ(DATA#2)が、アプリケーション3の管理する記憶領域に転送される(ステップS4)。この際、先読みの処理により、キャッシュ領域2に未格納の後続データが、キャッシュ領域2内のブロックに転送される。このときにも、データの連続性は認められず、再利用順のランクの変更は行われない。
【0021】
さらに、次のデータ(DATA#3)に対するデータ読み込み要求がアプリケーション3から出される。このとき、データ(DATA#3)のキャッシュ領域2への転送が完了していれば、キャッシュがヒットする。キャッシュがヒットすれば、キャッシュ領域2内のデータ(DATA#3)が、アプリケーション3の管理する記憶領域に転送される(ステップS4)。この際、先読みの処理により、キャッシュ領域2に未格納の後続データが、キャッシュ領域2内のブロックに転送される。この場合、データの連続性が認められる。その結果、一連のデータの先頭から所定量のデータ(例えば、ブロック2つ分のデータ)の再利用順のランクが低く変更される。他のデータの再利用順のランクは高いままである。
【0022】
以後、順次ファイル1aのデータがキャッシュ領域2に転送され(ステップS3)、アプリケーション3の管理する記憶領域に転送される(ステップS4)。これにより、1回目のファイル1aの読み込みが完了する。
【0023】
2回目のファイル1aの読み込みが行われるまでには、アプリケーション3は様々なデータのデータ読み込み要求を出す。その際、使用されるキャッシュ領域2内のブロックは、基本的に再利用順が高いランクのブロックである。そのため、再利用順が低く変更されたブロック(ブロック#1,#2)に格納されたデータ(DATA#1,#2)は、継続してキャッシュ領域2内に保持される。
【0024】
アプリケーション3により、2回目のファイル1aの読み込みが行われると、先頭のデータ(DATA#1)に対するデータ読み取り要求が出される。すると、キャッシュがヒットし(ステップS1)、キャッシュ領域2内のブロック(ブロック#1)のデータ(DATA#1)が、アプリケーション3の記憶領域に転送される(ステップS4)。同様に、次のデータ(DATA#2)に対するデータ読み取り要求においてもキャッシュがヒットし(ステップS1)、キャッシュ領域2内のブロック(ブロック#2)のデータ(DATA#2)が、アプリケーション3の記憶領域に転送される(ステップS4)。これらのデータ(DATA#1、#2)の転送が行われている間に、後続のデータ(DATA#3)の先読みが行われ、キャッシュ領域2に転送される(ステップS3)。そのため、次のデータ(DATA#3)に対するデータ読み取り要求においてもキャッシュがヒットし(ステップS1)、キャッシュ領域2内のブロック(ブロック#3)のデータ(DATA#3)が、アプリケーション3の記憶領域に転送される(ステップS4)。以降、ファイル1aを構成する後続のデータが順次先読みされ、短時間でファイル1aの読み込みが行われる。
【0025】
このように、後続のデータの先読みを行うキャッシュ制御において、大容量のデータの連続した読み込みが行われた際には、先頭の数ブロック分のデータのみをキャッシュ領域2に継続して保持しておくだけで、2回目以降の読込の際のキャッシュヒット率を向上させることができる。すなわち、ファイル1aを構成する全てのデータをキャッシュ領域2に保持していなくても、十分に高いキャッシュヒット率が得られる。その結果、キャッシュ領域2を有効に利用することができ、コンピュータの全体的な処理効率を向上させることができる。
【0026】
ところで、図1の説明では、一連のデータの先頭のデータ以外は、再利用順が高いままであるが、実行権のあるアクセスに基づいて読み込まれたデータは、その後も、頻繁にアクセスされる可能性が高い。そこで、例えば、実行権のあるアクセスで指定されたデータを格納するブロックの再利用順のランクを、低くすることができる。これにより、実行権のあるアクセスによるプログラムファイルなどの起動を高速にすることを可能とする。
【0027】
さらに、各ブロック内のデータに対するアクセス数をカウントし、再利用順のランクが同じ場合には、アクセスカウント数の少ないブロックを優先的に選択してもよい。
【0028】
また、図1の説明では、巨大なファイルの読み込みが行われると、キャッシュ領域2内がそのファイルのデータで占有されてしまう。そこで、1ファイルが使用できるブロック数の上限数を設定できるようにしてもよい。このとき、1つのファイルのために使用しているブロック数が上限数を超える場合、次に転送するデータを格納するためのブロックは、そのファイルのために使用しているブロックの中から選択する。これにより、巨大ファイルによるキャッシュ領域の独占使用を防ぐことができ、どのファイルに対しても一定の転送性能が得られる。
【0029】
なお、図1で説明した機能は、その手順を定義したキャッシュ制御プログラムをコンピュータに実行させることで、コンピュータによって実現することができる。以下、本発明を適用したコンピュータに関する本発明の実施の形態を具体的に説明する。
【0030】
図2は、本発明の実施の形態に用いるコンピュータのハードウェア構成例を示す図である。コンピュータ100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD:Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、および通信インタフェース106が接続されている。
【0031】
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやキャッシュ制御を行うためのプログラムの少なくとも一部が一時的に格納される。また、RAM102には、ユーザバッファやキャッシュ領域が設けられる。ユーザバッファには、ユーザが起動したアプリケーションプログラムの少なくとも一部や、そのアプリケーションプログラムの処理に必要なデータが格納される。HDD103は、2次記憶装置であり、OSやアプリケーションプログラムが格納される。
【0032】
グラフィック処理装置104には、モニタ11が接続されている。グラフィック処理装置104は、CPU101からの命令に従って、画像をモニタ11の画面に表示させる。入力インタフェース105には、キーボード12とマウス13とが接続されている。入力インタフェース105は、キーボード12やマウス13から送られてくる信号を、バス107を介してCPU101に送信する。
【0033】
通信インタフェース106は、ネットワーク10に接続されている。通信インタフェース106は、ネットワーク10を介して、他のコンピュータとの間でデータの送受信を行う。
【0034】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。すなわち、コンピュータ100は、キャッシュ転送機能をサポートしている。キャッシュ転送機能では、コンピュータ100は、ユーザがデータ転送のために用意したRAM102内のユーザバッファと2次記憶装置であるHDDとでデータ転送を行う場合、直接データ転送を行うのではなく、システムメモリ内に用意されたキャッシュ領域に一度データを転送する。そして、コンピュータ100は、キャッシュ領域からそれぞれの要求先のアプリケーションプログラム用のユーザバッファへデータ転送を行う。なお、以下の説明では、アプリケーションプログラムをコンピュータが実行することで実現される処理機能を、単にアプリケーションと呼ぶこととする。
【0035】
以下、コンピュータ100で実現される本発明の実施の形態の処理機能について説明する。
図3は、本発明の実施の形態の機能ブロック図である。図3に示すように、コンピュータ100のデータ記憶機能は、二次記憶装置110と主記憶装置120とに分かれている。
【0036】
二次記憶装置110は、図2のHDD103に相当する。二次記憶装置110には、多数のファイル111,112,113,・・・が格納されている。
主記憶装置120は、図2のRAM102に相当する。主記憶装置120には、ユーザバッファ121、キャッシュ領域122、読み込み用ファイル転送情報123、書き出し用ファイル転送情報124、キャッシュ情報125、及びキャッシュ再利用順リスト126を有している。
【0037】
ユーザバッファ121は、アプリケーション130に対応づけて設けられている。ユーザバッファ121には、アプリケーション130の機能を実行するためのプログラムの一部やデータが格納される。
【0038】
キャッシュ領域122は、ページサイズという一定のサイズ単位のデータ格納領域(ブロック)で構成されている。個々のブロックには、その情報を管理するキャッシュ情報125が存在する。
【0039】
読み込み用ファイル転送情報123は、ファイルの読み込みが行われる毎に、そのファイルに対応づけて生成される。読み込み用ファイル転送情報123には、直近に読み込まれた複数のデータの転送履歴や、それらのデータがシーケンシャル(連続的)なデータかどうかに関する情報が格納されている。
【0040】
書き出し用ファイル転送情報124は、ファイルの書き出しが行われる毎に、そのファイルに対応づけて生成される。書き出し用ファイル転送情報124には、直近に書き出された複数のデータの転送履歴や、それらのデータがシーケンシャルなデータかどうかに関する情報が格納されている。
【0041】
キャッシュ情報125には、キャッシュ領域122内のブロックに格納されている各データの管理情報が格納されている。管理情報としては、ブロックに格納されているデータ(以下、キャッシュデータという)の識別情報や、そのブロックの先頭アドレスを示すポインタなどの情報である。
【0042】
キャッシュ再利用順リスト126には、キャッシュ領域122内の各ブロックを、再利用順のレベルが高いブロックとレベルが低いブロックとに区別して、それぞれの再利用順を定義している。
【0043】
また、コンピュータ100には処理機能として、アプリケーション130、キャッシュヒット判断部140、格納ブロック判断部150、ファイルデータ転送部160、キャッシュデータ転送部170、及び再利用順設定部180を有している。なお、アプリケーション130以外は、OSの機能の一部である。
【0044】
アプリケーション130は、ユーザの操作入力や、コンピュータ100内で発生する実行命令に応答して所定の処理を実行する。アプリケーション130は、処理の実行に伴い、ファイル111,112,113,・・・(プログラムの少なくとも一部も含む)のデータ転送要求を、OSに対して出力する。データ転送要求には、データの読み取り要求とデータの書き出し要求とがある。
【0045】
キャッシュヒット判断部140は、アプリケーション130からデータ転送要求を受け取ると、キャッシュ情報125を参照し、データ転送要求で指定されたデータ及びその後続のデータがキャッシュ領域122に格納されているかどうかを判断する。キャッシュヒット判断部140は、要求されたデータがキャッシュ領域122に格納されていれば、そのデータの転送要求をキャッシュデータ転送部170に通知する。一方、キャッシュヒット判断部140は、要求されたデータがキャッシュ領域122に格納されていなければ、データを格納するブロックの判断要求を格納ブロック判断部150に渡す。
【0046】
格納ブロック判断部150は、キャッシュヒット判断部140からブロック判断要求を受け取ると、キャッシュ再利用順リスト126を参照し、データを格納するブロックを判断する。格納ブロック判断部150は、キャッシュ領域122に空きブロックがあれば、空きブロックをデータの格納ブロックとして判断する。また、格納ブロック判断部150は、キャッシュ領域122に空きブロックがなければ、再利用順の最も高いデータが格納されたブロックを、データの格納ブロックとして判断する。
【0047】
格納ブロック判断部150は、データ転送要求が書き込み要求であれば、データの格納ブロックを、キャッシュデータ転送部170に通知する。また、格納ブロック判断部150は、データ転送要求が読み取り要求であれば、データの格納ブロックを、ファイルデータ転送部160に通知する。
【0048】
ファイルデータ転送部160は、キャッシュ領域122と二次記憶装置110との間のデータ転送を行う。具体的には、ファイルデータ転送部160は、格納ブロック判断部150からデータの格納ブロックの通知を受け取ると、データ転送要求で指定されているデータやその後続のデータを、二次記憶装置110から読み出し、そのデータを通知された格納ブロックに格納する。また、ファイルデータ転送部160は、データ書き出し要求に従って、キャッシュデータ転送部170によってデータがキャッシュ領域122に格納されると、そのデータを取得し、二次記憶装置110に書き込む。
【0049】
キャッシュデータ転送部170は、ユーザバッファ121とキャッシュ領域122との間のデータ転送を行う。具体的には、キャッシュデータ転送部170は、キャッシュヒット判断部140から書き出し時のデータ転送要求を受け取ると、ユーザバッファ121内の該当するデータを、キャッシュ領域122に転送する。転送するデータは、キャッシュヒット判断部140によって検出されたデータの格納ブロックに上書きで格納される。
【0050】
また、キャッシュデータ転送部170は、格納ブロック判断部150から書き出し時のデータ転送要求を受け取ると、格納ブロック判断部150から通知されたブロックへ、ユーザバッファ121内の該当するデータを転送する。データ読み取り要求の際には、キャッシュデータ転送部170は、ファイルデータ転送部160によってキャッシュ領域122に転送されたデータを、ユーザバッファ121に転送する。
【0051】
再利用順設定部180は、データ転送要求に応じてデータ転送が行われる毎に、キャッシュ情報125とキャッシュ再利用順リスト126とに設定されている再利用順に関する情報を更新する。また、再利用順設定部180は、読み込みのデータ転送要求に基づくファイル転送が行われる毎に、読み込み用ファイル転送情報123の内容を更新する。さらに、再利用順設定部180は、書き出しのデータ転送要求に基づくファイル転送が行われる毎に、書き出し用ファイル転送情報124の内容を更新する。
【0052】
次に、主記憶装置120に格納される各データの詳細について説明する。
図4は、ファイル転送情報のデータ構造例を示す図である。図4(A)は読み込み用ファイル転送情報であり、図4(B)は書き出し用ファイル転送情報である。
【0053】
図4(A)、図4(B)に示すように、読み込み用ファイル転送情報123と書き出し用ファイル転送情報124とには、それぞれ直前の2つの転送データ(ファイル中のページ単位のデータ)に関する情報(転送履歴)が登録されている。読み込み用ファイル転送情報123と書き出し用ファイル転送情報124は、共にシーケンシャルフラグ、転送履歴テーブルインデックス、及び転送履歴テーブルの欄が設けられている。
【0054】
シーケンシャルフラグは、転送されたデータがシーケンシャル転送(ファイルの先頭から連続的なアクセス)中か否かを示すフラグである。シーケンシャル転送中のデータであれば、シーケンシャルフラグに「ON」が設定される。シーケンシャル転送中のデータでなければ、シーケンシャルフラグに「OFF」が設定される。
【0055】
転送履歴テーブルインデックスは、ファイル転送情報の登録順を示している。先に登録されたファイル転送情報の転送履歴テーブルインデックスには「0」が設定される。後に登録されたファイル転送情報の転送履歴テーブルインデックスには「1」が設定される。
【0056】
転送履歴テーブルの欄は、開始位置と転送サイズとの欄が設けられている。開始位置は、転送されたデータのファイル内での開始位置である。開始位置は、例えば、転送対象のファイルにおける先頭からのオフセットで示すことができる。転送サイズは、転送されたデータのサイズである。
【0057】
二次記憶装置110内のファイルに対して読み込みの転送要求があった場合、再利用順設定部180によって、その転送要求の開始位置、転送サイズが、転送履歴として読み込み用ファイル転送情報123に蓄積される。同様に、二次記憶装置110内のファイルに対して書き出しの転送要求があった場合、再利用順設定部180によって、その転送要求の開始位置、転送サイズが、転送履歴として書き出し用ファイル転送情報124に蓄積される。
【0058】
なお、3回目以降の転送については、蓄積された転送履歴の古い方を転送履歴テーブルインデックス(転送履歴テーブルインデックスが「0」)から判断し、上書きしていく。この際、新しく登録した転送履歴の転送履歴テーブルインデックスを「1」に変更し、別の転送履歴の転送履歴テーブルインデックスを「0」に変更する。このようにして、転送履歴テーブルインデックスによって、転送履歴の登録順が管理される。
【0059】
また、過去2回の転送履歴と今回の転送要求の開始位置と転送サイズが連続している場合、シーケンシャルな転送処理を要求していると判断され、シーケンシャルフラグに「ON」が設定される。このフラグは転送履歴と今回の転送要求の関係が連続していない(シーケンシャル転送でない)状態になるまで維持される。
【0060】
図5は、キャッシュ情報のデータ構造例を示す図である。キャッシュ情報125は、キャッシュデータ情報125a、nextポインタ125b、backポインタ125c、ファイル用nextポインタ125d、ファイル用backポインタ125e、キープフラグ125f、アクセスカウント125g、及びvノードポインタ125hで構成されている。
【0061】
キャッシュデータ情報125aは、キャッシュデータを格納しているブロックの状態や、保持しているキャッシュデータの二次記憶装置110上でのアドレスなどの管理情報である。キャッシュデータ情報125aを参照することで、キャッシュ情報125に対応するキャッシュデータが格納されたキャッシュ領域122内の位置を判断することができる。
【0062】
nextポインタ125bは、再利用順が、キャッシュデータ情報125aで特定されるキャッシュデータの次に当たるキャッシュデータ(そのデータのキャッシュデータ情報の位置)を示すポインタである。
【0063】
backポインタ125cは、再利用順が、キャッシュデータ情報125aで特定されるキャッシュデータの前に当たるキャッシュデータ(そのデータのキャッシュデータ情報の位置)を示すポインタである。
【0064】
ファイル用nextポインタ125dは、同一ファイルを構成する複数のキャッシュデータの中で、再利用順が、キャッシュデータ情報125aで特定されるキャッシュデータの次に当たるキャッシュデータ(そのデータのキャッシュデータ情報の位置)を示すポインタである。
【0065】
ファイル用backポインタ125eは、同一ファイルを構成する複数のキャッシュデータの中で、再利用順が、キャッシュデータ情報125aで特定されるキャッシュデータの前に当たるキャッシュデータ(そのデータのキャッシュデータ情報の位置)を示すポインタである。
【0066】
キープフラグ125fは、再利用順のランクを示すフラグである。キープフラグ125fが「ON」であれば、再利用順が低い(データ保持の優先順が高い)ランクであることを示す。キープフラグ125fが「OFF」であれば、再利用順が高い(データ保持の優先順が低い)ランクであることを示す。
【0067】
キープフラグ125fは、データ転送がシーケンシャルか否か、あるいは実行権のあるデータ転送か否かによって設定が変更される。実行権のあるデータ転送とは、実行可能なファイルに関して、そのファイルを実行可能なプロセスからの実行要求に基づいたデータ転送である。
【0068】
たとえば、読み込み用ファイル転送情報123や書き出し用ファイル転送情報124のシーケンシャルフラグに「ON」が設定された場合、データ転送がシーケンシャルと判断される。すると、転送履歴テーブルに保持されている過去2回の転送要求で使用したブロックが検索される。そして、検索したブロックのキャッシュ情報のキープフラグに「ON」が設定される。
【0069】
また、実行権があるファイルのデータ転送のために選択したブロックも同様に、キープフラグに「ON」が設定される。「ON」の状態のキープフラグは、次回そのブロックへのアクセス時に一度「OFF」に戻され、フラグを「ON」にするのか「OFF」にするのかの再評価が行われる。
【0070】
アクセスカウント125gは、対応するブロックに格納されたキャッシュデータに対してアクセスが行われた回数である。アクセスカウント125gの値が大きいほど、使用頻度が高いことを意味している。
【0071】
vノードポインタ125hは、ファイルシステムにおける各ファイルの管理情報(vノード)の格納場所を示すポインタである。
図6は、キャッシュ再利用順リストのデータ構造例を示す図である。キャッシュ再利用順リスト126には、高再利用順リスト126aと低再利用順リスト126bとが含まれている。高再利用順リスト126aは、再利用順のランクが高いキャッシュデータ(キープフラグが「OFF」)の中で、最も再利用順が高いキャッシュデータのキャッシュ情報(アクセスカウントの数が最も少ないキャッシュ情報)を示すポインタである。低再利用順リスト126bは、再利用順のランクが低いキャッシュデータ(キープフラグが「ON」)の中で、最も再利用順の高いキャッシュデータのキャッシュ情報(アクセスカウントの数が最も少ないキャッシュ情報)を示すポインタである。
【0072】
キャッシュ再利用順リスト126によって、再利用順のランク毎に、最も再利用順の高いキャッシュ情報125が指定されていることで、再利用順の高いキャッシュ情報125から順番に、キャッシュ情報125を辿ることができる。
【0073】
図7は、再利用順によるキャッシュ情報の配列を示す概念図である。図7に示すように、キャッシュ再利用順リスト126では、高再利用順リスト126aによって、再利用順のランクが高いキャッシュデータの中で、最も再利用順が上位のキャッシュデータのキャッシュ情報211が指し示されている。また、低再利用順リスト126bによって、再利用順のランクが低いキャッシュデータの中で、最も再利用順の高いキャッシュデータのキャッシュ情報221が指し示されている。図7では、各キャッシュ情報211〜215,221〜225の内容のうち、キープフラグ125f(図5参照)の内容を上段に示し、アクセスカウント125g(図5参照)の内容を下段に示している。
【0074】
再利用順のランクが高いキャッシュデータの各キャッシュ情報211〜215では、nextポインタ125b(図5参照)によって、再利用順において次の順番のキャッシュデータに関するキャッシュ情報が指し示されている。従って、キャッシュ情報211〜215を、再利用順の上位から順番に辿ることができる。同様に、再利用順のランクが低いキャッシュデータの各キャッシュ情報221〜225では、nextポインタ125b(図5参照)によって、再利用順において次の順番のキャッシュデータに関するキャッシュ情報が指し示されている。従って、キャッシュ情報221〜225を、再利用順の上位から順番に辿ることができる。
【0075】
本実施の形態では、再利用順のランクが同じ場合には、アクセスカウント数の少ない程、再利用順が上位となる。また、アクセスカウント数が同じ場合には、最後のアクセスからの経過時間が長いほど、再利用順が上位となる。すなわち、最新にアクセスされたキャッシュデータを格納するブロックの再利用順は、再利用順のランクが同じブロックの中のアクセスカウント数が同じブロックの最後尾となる。
【0076】
このように、キャッシュ情報125が、再利用順に応じて並べられているため、格納ブロックを選択する場合、キャッシュ再利用順リスト126の高再利用順リスト126aで指し示されているキャッシュ情報211に対応するブロックから順に選択すればよい。
【0077】
図8は、vノード情報の一例を示す図である。vノード情報127は、ファイルをオープンする際にシステム(OS)上に設けられるファイルの状態等の管理情報である。vノード情報127は、ファイル管理情報127a、キャッシュカウント127bおよびキャッシュリスト127cを含んでいる。
【0078】
ファイル管理情報127aは、対応するファイルを管理するための情報である。ファイル管理情報127aには、ファイル名や二次記憶装置110内におけるファイルを構成するデータの格納場所などが含まれる。キャッシュカウント127bは、このvノード情報127で管理しているファイルで使用しているブロックの数を示している。キャッシュリスト127cは、このvノード情報127で管理しているファイルのデータが格納されているブロックに対応するキャッシュ情報125のリストである。キャッシュリスト127cには、例えば、このvノード情報127で管理しているファイルの先頭のデータが格納されたブロックのキャッシュ情報125を指し示すポインタを登録する。そのポインタで示されたキャッシュ情報125のファイル用nextポインタ125dを参照することで、そのファイルで使用しているブロックのキャッシュ情報125を辿ることができる。
【0079】
vノード情報127に、キャッシュカウント127bを設けたことにより、1ファイルが使用できるブロック数を制限することができる。この場合、コンピュータ100において、1ファイルで利用可能な最大使用ブロック数を設定できるようにしておく。設定された最大使用ブロック数と、実際にファイルが使用しているブロック数を管理しているキャッシュカウント127bを比較することで、1ファイルが使用できるブロック数を制限できる。キャッシュ領域122にデータを転送するときに、1ファイルの最大使用ブロック数を超えてしまう場合、そのファイルが既に使用しているブロックから格納ブロックが選択される。ファイルが既に使用しているブロックは、vノード情報127に設けられたキャッシュリスト127cに基づいて判断することができる。
【0080】
次に、本実施の形態の処理手順をフローチャートを用いて説明する。
図9は、データ転送の全体の処理手順を示すフローチャートである。この処理は、データ転送要求を受け、転送先へデータを転送するまでの全体の流れを表している。なお、データ転送処理は、アプリケーション130からデータ転送要求が出されたときに実行される。以下、図9に示す処理をステップ番号に沿って説明する。
【0081】
[ステップS11]キャッシュヒット判断部140が、データ転送要求を受け取る。
[ステップS12]キャッシュヒット判断部140は、受け取ったデータ転送要求で指定されたデータと同じ内容のキャッシュデータを、キャッシュ領域122から検索する。具体的には、キャッシュヒット判断部140は、キャッシュ領域122に格納された各キャッシュデータのキャッシュ情報125を参照し、キャッシュ情報125のキャッシュデータ情報125aで示されたデータの情報が、データ転送要求で指定されたデータと一致するか否かを、各キャッシュ情報125に関して判断する。そして、キャッシュヒット判断部140は、データ転送要求で指定されたデータと一致するキャッシュデータ情報125aを有するキャッシュ情報125を検出する。
【0082】
[ステップS13]キャッシュヒット判断部140は、ステップS12における検索結果により、データ転送要求で指定されたデータと同じデータがキャッシュ領域122内に存在(キャッシュヒット)したか否かを判断する。キャッシュヒットした場合には、キャッシュヒットしたキャッシュ情報125が再利用順設定部180に通知され、処理がステップS14に進められる。キャッシュヒットしなかった場合には、その判断結果が格納ブロック判断部150に通知され、処理がステップS16に進められる。
【0083】
[ステップS14]再利用順設定部180は、キャッシュ領域122内の各ブロックの再利用順に関する情報を設定する。この処理の詳細は後述する。
[ステップS15]キャッシュヒット判断部140は、転送要求の属性(読み込み要求か、書き出し要求か)を判断する。転送要求の属性が読み込み要求であれば、キャッシュヒットしたキャッシュ情報125の内容がファイルデータ転送部160に通知され、処理がステップS19に進められる。転送要求の属性が書き出し要求であれば、キャッシュヒットしたキャッシュ情報125の内容がキャッシュデータ転送部170に通知され、処理がステップS18に進められる。
【0084】
[ステップS16]格納ブロック判断部150は、キャッシュ再利用順リスト126を参照し、データを格納するブロックを判断する。具体的には、格納ブロック判断部150は、まず、キャッシュ領域122内の未使用ブロックの有無を判断する。未使用ブロックがあれば、そのブロックをデータの格納ブロックとする。未使用ブロックがなければ、キャッシュ再利用順リスト126の高再利用順リスト126aで指し示されているキャッシュ情報211を取得する。そして、格納ブロック判断部150は、そのキャッシュ情報211に対応するキャッシュデータが格納されているブロックを、転送データの格納ブロックとする。なお、格納ブロック判断部150は、高再利用順リスト126aにおいてキャッシュ情報へのポインタが無かった場合(再利用順のランクが高いキャッシュデータが無い場合)には、低再利用順リスト126bで指し示されているキャッシュ情報221を取得し、そのキャッシュ情報221に対応するキャッシュデータが格納されているブロックを、転送データの格納先とする。
【0085】
格納ブロック判断部150は、転送データの格納先と判断したキャッシュ領域122内のブロックを、ファイルデータ転送部160に通知する。なお、ステップS16の処理の詳細は後述する。
【0086】
[ステップS17]再利用順設定部180は、キャッシュ領域122内の各ブロックの再利用順に関する情報を設定する。この処理の詳細は後述する。
[ステップS18]ファイルデータ転送部160またはキャッシュデータ転送部170により、キャッシュ領域122へのデータの転送が行われる。すなわち、ステップS13でキャッシュヒットし、データの書き出し要求であった場合には、キャッシュデータ転送部170は、ステップS12で検出された領域へユーザバッファ121内の転送対象のデータを転送する。また、キャッシュヒットせず、データの書き出し要求であった場合には、キャッシュデータ転送部170は、ステップS16で選択された領域へユーザバッファ121内の転送対象のデータを転送する。また、キャッシュヒットせず、データの読み込み要求であった場合には、ファイルデータ転送部160は、ステップS16で選択された領域へユーザバッファ121内の転送対象のデータを転送する。
【0087】
[ステップS19]ファイルデータ転送部160またはキャッシュデータ転送部170により、キャッシュ領域122から要求先へデータ転送が行われる。すなわち、データ転送要求がデータの書き出し要求であれば、ステップS18においてキャッシュデータ転送部170がキャッシュ領域122に転送したデータを、ファイルデータ転送部160が二次記憶装置110に転送する。また、データ転送要求がデータの読み込み要求であれば、ステップS18においてファイルデータ転送部160がキャッシュ領域122に転送したデータを、キャッシュデータ転送部170がユーザバッファ121に転送する。
【0088】
このようにして、データ転送が行われる。以下、本実施の形態における主要な処理の詳細について説明する。
まず、図9のステップS14,S17に示すキャッシュ領域の再利用順設定処理の詳細について、図10〜図12を参照して説明する。
【0089】
図10は、再利用順設定処理を示す第1のフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
[ステップS21]再利用順設定部180は、転送すべきデータを含むファイルの属性を参照する。ファイルの属性は、対象のファイルのvノード情報127におけるファイル管理情報127aに設定されている。
【0090】
[ステップS22]再利用順設定部180は、転送要求を出したアプリケーション130に対して、ファイルにおいて実行権が設定されているか否かを判断する。実行権が設定されている場合には、処理がステップS23に進められる。実行権が設定されていない場合には、処理がステップS24に進められる。
【0091】
[ステップS23]再利用順設定部180は、転送に使用するブロックの再利用順を下げるため、そのブロックに対応するキャッシュ情報125のキープフラグ125fに「ON」を設定する。その後、処理が図12のステップS51に進められる。
【0092】
一方、ファイルの属性に実行権がない場合(ステップS22でNOと判断)、再利用順設定部180は、転送パターン(シーケンシャルか否か)によりブロックの再利用順の設定を行うため、以下の処理を行う。
【0093】
[ステップS24]再利用順設定部180は、データ転送で使用するブロックに対応するキャッシュ情報125のキープフラグ125fに「OFF」を設定する。すなわち、ステップS23や後述するステップS43(図11に示す)で「ON」に設定されたキープフラグ125fは、そのブロックに対応するキャッシュデータへの次回アクセス時に無効にされる。
【0094】
[ステップS25]再利用順設定部180は、ファイルをオープン時に作成した読み込み用ファイル転送情報123または書き出し用ファイル転送情報124を参照し、転送履歴テーブルで保持している過去2回分の転送開始位置及び転送サイズと、今回の転送要求の開始位置及び転送サイズとを比較する。
【0095】
例えば、再利用順設定部180は、データ転送要求が読み込み要求であれば、読み込み用ファイル転送情報123を参照する。そして、再利用順設定部180は、転送履歴テーブルインデックスに「0」が設定されている転送履歴テーブルの開始位置(メモリアドレス)に転送サイズを加算した値が、転送履歴テーブルインデックスに「1」が設定されている転送履歴テーブルの開始位置となる(データが連続である)ことを確認する。さらに、再利用順設定部180は、転送履歴テーブルインデックスに「1」が設定されている転送履歴テーブルの開始位置(メモリアドレス)に転送サイズを加算した値が、今回の転送要求の開始位置となる(データが連続である)ことを確認する。これらが正しく確認されれば、それらのデータが一連のデータであること、すなわちシーケンシャルなデータ転送であることが分かる。
【0096】
データ転送要求が書き出し要求であれば、再利用順設定部180は、書き出し用ファイル転送情報124を参照し、読み込み要求のときと同様に、データの連続性を確認する。
【0097】
[ステップS26]再利用順設定部180は、ステップS25の比較結果により、各データが連続のデータ(シーケンシャル)か否かを判断する。シーケンシャルであれば処理がステップS27に進められる。シーケンシャルでなければ(ランダム転送)、処理がステップS29に進められる。
【0098】
[ステップS27]再利用順設定部180は、読み込み要求のときは読み込み用ファイル転送情報123を参照し、書き出し要求のときは書き出し用ファイル転送情報124を参照し、シーケンシャルフラグの状態を判断する。シーケンシャルフラグに「ON」が設定されていれば、処理が図12に示すステップS51に進められる。シーケンシャルフラグに「OFF」が設定されていれば、処理がステップS28に進められる。
【0099】
[ステップS28]再利用順設定部180は、シーケンシャルな転送であり、ファイル転送情報のシーケンシャルフラグに「OFF」が設定されている場合、つまり、今回の転送要求によって初めてシーケンシャルな転送要求であると判断された場合、シーケンシャルフラグに「ON」を設定する。その後、処理が図11のステップS41に進められる。
【0100】
[ステップS29]再利用順設定部180は、読み込み要求のときは読み込み用ファイル転送情報123を参照し、書き出し要求のときは書き出し用ファイル転送情報124を参照し、シーケンシャルフラグの状態を判断する。シーケンシャルフラグに「ON」が設定されていれば、ステップS30に進められる。シーケンシャルフラグに「OFF」が設定されていれば、処理が図12に示すステップS51に進められる。
【0101】
[ステップS30]再利用順設定部180は、前回までの転送がシーケンシャルな転送であり、ファイル転送情報のシーケンシャルフラグに「ON」が設定されている転送履歴については、シーケンシャルフラグに「OFF」を設定し、シーケンシャル転送が終了したことを保持する。その後、処理が図12のステップS51に進められる。
【0102】
図11は、再利用順設定処理を示す第2のフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
[ステップS41]再利用順設定部180は、ファイル転送情報の転送履歴テーブルで保持されている過去2回の転送要求で使用したブロックを検索する。具体的には、再利用順設定部180は、データ転送要求が読み込み要求であれば、読み込み用ファイル転送情報123に基づくブロックを検索し、データ転送要求が書き出し要求であれば、書き出し用ファイル転送情報124に基づくブロックを検索する。
【0103】
[ステップS42]再利用順設定部180は、ステップS41による検索の結果、該当するブロックが検出されたか否かを判断する。該当するブロックが検出された場合には、処理がステップS43に進められる。ブロックが検出されなかった場合には、処理が図12のステップS51に進められる。
【0104】
[ステップS43]再利用順設定部180は、過去2回の転送で使用したブロックが存在すれば、ステップS41で検索したブロックのキャッシュ情報125にあるキープフラグ125fに「ON」を設定する。
【0105】
[ステップS44]再利用順設定部180は、ステップS41で検索したブロックのキャッシュ再利用順リスト126での再利用順を更新する。この処理の詳細は後述する。
【0106】
[ステップS45]再利用順設定部180は、ファイル内での再利用順位を設定するため、ステップS41で検索したブロックのvノード情報127のキャッシュリスト127cに対して、ステップS44と同様に再利用順の更新処理を行う。その後、処理が図12のステップS51に進められる。
【0107】
図12は、再利用順設定処理を示す第3のフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
[ステップS51]再利用順設定部180は、キャッシュ情報125のアクセスカウント125gの値を更新(1だけカウントアップ)する。
【0108】
[ステップS52]再利用順設定部180は、選択したブロックのキャッシュ再利用順リスト126での再利用順を変更する。すなわち、再利用順設定部180は、ステップS23,S24,S43,S51でキャッシュ情報125を変更したブロックのキャッシュ再利用順リスト126上でのリンク先を、アクセス頻度の低い順に並びかえる。
【0109】
具体的には、再利用順設定部180は、キープフラグが「ON」であれば、そのキャッシュ情報125を高再利用順リスト126aに繋がる配列の中に挿入し、キープフラグが「OFF」であれば、そのキャッシュ情報125を低再利用順リスト126bの配列の中に挿入する。並び替えでは、各キャッシュ情報125がアクセスカウント125gの少ない順に並べられる。アクセスカウント125gが同じであれば、最後にアクセスしてからの経過時間の長い順である。配列が決定したら、再利用順設定部180は、その配列に従って、各キャッシュ情報125のnextポインタ125bとbackポインタ125cとを更新する。
【0110】
[ステップS53]再利用順設定部180は、選択したブロックのvノード情報127のキャッシュリスト127cでの再利用順を変更する。すなわち、再利用順設定部180は、ファイル内での再利用順を設定するため、vノード情報127のキャッシュリスト127cに対して、ステップS52と同様の再利用順設定処理を行う。
【0111】
[ステップS54]再利用順設定部180は、最後に今回の転送要求に応じた転送履歴を、読み込み用ファイル転送情報123または、書き出し用ファイル転送情報124に登録する。すなわち、再利用順設定部180は、データ転送要求が読み込み要求であれば読み込み用ファイル転送情報123に転送履歴を登録し、データ転送要求が書き出し要求であれば書き出し用ファイル転送情報124に転送履歴を登録する。
【0112】
転送履歴の登録の際には、転送履歴テーブルインデックスが0である転送情報の場所に今回の転送要求に基づいて転送されたデータの情報(開始位置や転送サイズ)を登録する。そして、新たに登録した転送情報の転送履歴テーブルインデックスを1とし、既に登録されていた転送情報の転送履歴テーブルインデックスを1から0に変更する。
【0113】
以上の処理が終了後、処理が図9のステップS15(ステップS14における処理が行われた場合)またはステップS18(ステップS17における処理が行われた場合)に進められる。
【0114】
次に図11のステップS44または図12のステップS52で行われるキャッシュ再利用順リスト126を用いたブロックの再利用順の並び替えについて、詳しく説明する。
【0115】
図13は、再利用順の並び替え処理の手順を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
[ステップS61]再利用順設定部180は、キープフラグ125f、アクセスカウント125gを変更したキャッシュ優先度変更対象のブロックのキャッシュ情報125を処理対象とし、そのキャッシュ情報125がキャッシュ再利用順リスト126の高再利用順リスト126aと低再利用順リスト126bとのどちらに繋がれているかチェックする。高再利用順リスト126aに繋がれている場合には、処理がステップS62に進められる。低再利用順リスト126bに繋がれている場合には、処理がステップS64に進められる。
【0116】
[ステップS62]再利用順設定部180は、更新対象のキャッシュ情報125のキープフラグ125fに、「ON」が設定されているか否かを判断する。キープフラグ125fが「ON」の場合には、処理がステップS63に進められる。キープフラグ125fが「OFF」の場合には、処理がステップS66に進められる。
【0117】
[ステップS63]再利用順設定部180は、更新対象のキャッシュ情報125の接続先を、高再利用順リスト126aから低再利用順リスト126bの先頭に変更する。その後、処理がステップS66に進められる。
【0118】
[ステップS64]再利用順設定部180は、更新対象のキャッシュ情報125のキープフラグ125fに「OFF」が設定されているか否かを判断する。キープフラグが「OFF」の場合には、処理がステップS65に進められる。キープフラグが「ON」の場合に、処理がステップS66に進められる。
【0119】
[ステップS65]再利用順設定部180は、更新対象のキャッシュ情報125の接続先を、低再利用順リスト126bから高再利用順リスト126aの先頭に変更する。その後、処理がステップS66に進められる。
【0120】
[ステップS66]再利用順設定部180は、更新対象のキャッシュ情報125のnextポインタ125bにリンクされているキャッシュ情報を参照する。
[ステップS67]再利用順設定部180は、更新対象のキャッシュ情報125と、そのキャッシュ情報125のnextポインタ125bにリンクされているキャッシュ情報のアクセスカウントを比較する。
【0121】
[ステップS68]再利用順設定部180は、ステップS67におけるアクセスカウントの比較による、アクセスカウントの大小を判断する。リンク先のキャッシュ情報のアクセスカウントが、更新対象のキャッシュ情報125のアクセスカウント125g以上の場合、再利用順並び替え処理が終了し、図11のステップS45又は図12のステップS53に処理が進められる。そうでない場合、処理がステップS69に進められる。
【0122】
[ステップS69]再利用順設定部180は、更新対象のキャッシュ情報125とリンク先のキャッシュ情報との、それぞれの接続先を変更する。その後、処理がステップS66に進められる。
【0123】
これより、更新対象のキャッシュ情報のアクセスカウントが、nextポインタによるリンク先のキャッシュ情報のアクセスカウントより小さくなるまで、ステップS66〜S69の処理が繰り返される。
【0124】
なお、S45、S53のファイル単位のキャッシュ領域の優先度設定は、図13の説明において、キャッシュ再利用順リスト126、キャッシュ情報125のnextポインタ125bをそれぞれvノード情報127のキャッシュリスト127c、キャッシュ情報125のファイル用nextポインタ125dに置き換えて処理される。
【0125】
次に図9のS16のキャッシュ領域の選択処理を図14、図15を参照しながら説明する。
図14は、使用するキャッシュ領域の選択処理を示すフローチャートである。このフローチャートは、使用するキャッシュ領域の選択をキャッシュ領域全体から選択するか、ファイルが現在使用している中から選択するかを判断する処理のフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。
【0126】
[ステップS71]格納ブロック判断部150は、先ずシステムが保持している最大使用ブロック数とvノード情報127のキャッシュカウント127b(使用キャッシュ領域数)を比較する。比較の結果、ファイルが現在使用しているブロック数が最大使用ブロック数以上であれば、処理がステップS73に進められる。そうでなければ、処理がステップS72に進められる。
【0127】
[ステップS72]格納ブロック判断部150は、システム全体で管理しているキャッシュ再利用順リスト126に基づいて、キャッシュデータ格納用のブロックを選択する。その後、処理がステップS74に進められる。なお、この処理の詳細は後述する。
【0128】
[ステップS73]格納ブロック判断部150は、システム全体からではなく、データ転送対象のファイルが使用しているブロックの中から、再利用するブロックを選択する。これにより、1ファイル当りの使用ブロック数が制限される。
【0129】
[ステップS74]格納ブロック判断部150は、選択したブロックとファイルの関連付けを行う。すなわち、格納ブロック判断部150は、ステップS72,S73により選択したブロックのキャッシュ情報125のvノードポインタ125hから以前そのブロックを使用していたファイルと今回の転送で使用するファイルが同じであるか否かを判断する。同一ファイルであれば、キャッシュ領域の選択処理が終了し、処理が図9のステップS17に進められる。同一ファイルでなければ、処理がステップS75に進められる。
【0130】
[ステップS75]格納ブロック判断部150は、結果同一ファイルでない場合、選択したブロックと、そのファイルのvノード情報127との関連付けを外す。
【0131】
[ステップS76]格納ブロック判断部150は、更新対象のキャッシュ情報125のvノードポインタ125hに、今回転送されるデータのvノード情報127のポインタをセットすることでキャッシュ情報125とvノード情報127とを関連付ける。
【0132】
[ステップS77]格納ブロック判断部150は、vノード情報127のキャッシュカウント127bを更新(使用ブロック数を更新)する。その後、処理が図9のステップS17に進められる。
【0133】
次に、図14のステップS72におけるブロックの選択処理の詳細について説明する。
図15は、キャッシュ用のブロック選択処理を示すフローチャートである。キャッシュ用のブロック選択では、キャッシュ再利用順リスト126から再利用順の最も高いブロックを選択する。以下、図15に示す処理をステップ番号に沿って説明する。
【0134】
[ステップS81]最も再利用順の高いブロックは、キャッシュ再利用順リスト126の高再利用順リスト126aに直接続されたブロックである。そのため、格納ブロック判断部150は、高再利用順リスト126aにキャッシュ領域122内のブロックがリンクされているか否かを判断する。リンクされているブロックがあれば、処理がステップS82に進められる。リンクされているブロックがなければ、処理がステップS83に進められる。
【0135】
[ステップS82]格納ブロック判断部150は、高再利用順リスト126aで指し示されているブロックを、転送データ格納用のブロックとして選択する。その後、処理がステップS84に進められる。
【0136】
[ステップS83]格納ブロック判断部150は、低再利用順リスト126bで指し示されているブロックを、転送データ格納用のブロックとして選択する。その後、処理がステップS84に進められる。
【0137】
[ステップS84]格納ブロック判断部150は、選択したブロックのキャッシュ情報125のキープフラグ125f、アクセスカウント125gを初期化する。その後、処理がステップS74に進められる。
【0138】
なお、図14のステップS73の処理の詳細も、図15に示した処理と同様である。ただし、キャッシュ再利用順リスト126はvノード情報127のキャッシュリスト127cに置き換えて処理される。
【0139】
以上のように、キャッシュ領域122内の各ブロックを、再利用順によってランク分けし、シーケンシャルに転送される一連のデータの先頭のデータの再利用順を下げることで、そのデータをキャッシュ領域122内に継続して保持させることができる。その結果、次に同じファイルの読み込みが行われるときに、先頭のデータをキャッシュ領域122から迅速に取得することができる。また、後続のデータの先読みを行っていることで、先頭のデータを転送している間に後続のデータがキャッシュ領域122に格納され、後続のデータも含めて、高速にファイルの読み込みが可能となる。
【0140】
しかも、実行権のあるアクセスでは、転送されたデータの再利用順を低くしたため、実行権のあるアクセスにおけるキャッシュヒット率が向上する。
さらに、1ファイル当りのキャッシュ領域の使用量を制限したため、巨大ファイルに対する転送要求に他のファイルの転送要求が影響を受けることが少なくなる。これにより、キャッシュヒット率が以前よりも期待できるようになり、転送要求の性能が向上する。
【0141】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、コンピュータが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
【0142】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0143】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0144】
(付記1) 所定の記憶装置に入出力されるデータのキャッシュ処理を制御するためのキャッシュ制御プログラムにおいて、
コンピュータに、
前記記憶装置からのデータ読み込み要求に応答し、当該データ読み込み要求で指定された転送データと当該転送データの後続データとが、複数のブロックで構成されるキャッシュ領域内に格納されているか否かを判断し、
前記転送データが前記キャッシュ領域に格納されていた場合、前記キャッシュ領域から前記転送データを所定の記憶領域に読み込み、
前記複数のブロックが再利用順に応じてランク分けされており、前記転送データと当該転送データの後続データとのうち前記キャッシュ領域に格納されていない未格納データの格納ブロックを、再利用順が高いランクのブロックから優先的に決定し、
前記記憶装置内の前記未格納データを前記格納ブロックに順次転送すると共に、前記未格納データに含まれる前記転送データを前記所定の記憶領域に読み込み、
前記転送データとその前に転送されたデータとの連続性を判断し、連続した一連のデータの場合、当該一連のデータの先頭から所定量のデータを格納したブロックの再利用順のランクを下げる、
処理を実行させることを特徴とするキャッシュ制御プログラム。
【0145】
(付記2) 実行権のあるファイルアクセスに基づいたデータ転送の場合、データの連続性に拘わらず、データを格納したブロックの再利用順のランクを所定値未満に設定することを特徴とする付記1記載のキャッシュ制御プログラム。
【0146】
(付記3) 前記キャッシュ領域内のブロック毎にアクセス回数をカウントし、
前記転送データの前記格納ブロックの決定において、再利用順のランクが同じ場合、アクセス回数の多いブロックを優先的に前記格納ブロックとして決定することを特徴とする付記1記載のキャッシュ制御プログラム。
【0147】
(付記4) 1つのファイルにおいて使用可能な前記キャッシュ領域内の上限ブロック数が予め設定されており、前記転送データの前記格納ブロックの決定において、前記転送データを含むファイルが利用しているブロック数を算出し、当該ブロック数が前記上限ブロック数に達している場合には、前記転送データを含むファイルが利用しているブロックの中から、前記格納ブロックを決定することを特徴とする付記1記載のキャッシュ制御プログラム。
【0148】
(付記5) 前記記憶装置へのデータ書き込み要求に応答し、当該データ書き込み要求で指定された書き込み対象データを、一端前記キャッシュ領域に格納した後、前記記憶装置に書き込みを行い、
前記記憶装置に書き込まれた前記書き込みデータと、その前に書き込まれたデータとの連続性を判断し、連続した一連のデータの場合、当該一連のデータの先頭から前記所定量のデータを格納したブロックに関する再利用順のランクを下げる、
ことを特徴とする付記1記載のキャッシュ制御プログラム。
【0149】
(付記6) 前記キャッシュ領域を構成する各ブロックのランク分けは、高再利用順と低再利用順との2段階を表すフラグによって行われており、
再利用順のランクの設定の際には、連続するデータの先頭から所定量のデータを格納したブロックに対して、前記低再利用順を表すフラグを設定し、連続するデータの先頭から所定量以降のデータを格納したブロックに対して、前記高再利用順を表すフラグを設定することを特徴とする付記1記載のキャッシュ制御プログラム。
【0150】
(付記7) 前記データ読み込み要求に応じて転送される過去所定回数分のデータ転送に関する転送元のデータの開始位置およびデータサイズを、履歴情報として格納し、
前記転送データとその前に転送されたデータとの連続性を判断する際には、前記履歴情報に基づいて判断することを特徴とする付記1記載のキャッシュ制御プログラム。
【0151】
(付記8) 前記記憶装置は、二次記憶装置であり、前記キャッシュ領域は主記憶装置内に設けられていることを特徴とする付記1記載のキャッシュ制御プログラム。
【0152】
(付記9) データのキャッシュ処理を行うコンピュータにおいて、
第1の記憶装置と、
複数のブロックで構成されるキャッシュ領域が設けられた第2の記憶装置と、
前記第1の記憶装置からのデータ読み込み要求に応答し、当該データ読み込み要求で指定された転送データと当該転送データの後続データとが、複数のブロックで構成されるキャッシュ領域内に格納されているか否かを判断する判断手段と、
前記複数のブロックが再利用順に応じてランク分けされており、前記転送データと当該転送データの後続データとのうち前記キャッシュ領域に格納されていない未格納データの格納ブロックを、再利用順が高いランクのブロックから優先的に決定する決定手段と、
前記第1の記憶装置内の前記未格納データを前記格納ブロックに順次転送する転送手段と、
前記キャッシュ領域に格納されていた前記転送データ、または前記転送手段で転送された前記転送データを、所定の記憶領域に読み込む読み込み手段と、
前記転送データとその前に転送されたデータとの連続性を判断し、連続した一連のデータの場合、当該一連のデータの先頭から所定量のデータを格納したブロックの再利用順のランクを下げるランク変更手段と、
を有することを特徴とするコンピュータ。
【0153】
(付記10) 所定の記憶装置に入出力されるデータのキャッシュ処理を制御するためのキャッシュ制御方法において、
前記記憶装置からのデータ読み込み要求に応答し、当該データ読み込み要求で指定された転送データと当該転送データの後続データとが、複数のブロックで構成されるキャッシュ領域内に格納されているか否かを判断し、
前記転送データが前記キャッシュ領域に格納されていた場合、前記キャッシュ領域から前記転送データを所定の記憶領域に読み込み、
前記複数のブロックが再利用順に応じてランク分けされており、前記転送データと当該転送データの後続データとのうち前記キャッシュ領域に格納されていない未格納データの格納ブロックを、再利用順が高いランクのブロックから優先的に決定し、
前記記憶装置内の前記未格納データを前記格納ブロックに順次転送すると共に、前記未格納データに含まれる前記転送データを前記所定の記憶領域に読み込み、
前記転送データとその前に転送されたデータとの連続性を判断し、連続した一連のデータの場合、当該一連のデータの先頭から所定量のデータを格納したブロックの再利用順のランクを下げる、
処理を含むことを特徴とするキャッシュ制御方法。
【0154】
(付記11) 所定の記憶装置に入出力されるデータのキャッシュ処理を制御するためのキャッシュ制御プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
前記記憶装置からのデータ読み込み要求に応答し、当該データ読み込み要求で指定された転送データと当該転送データの後続データとが、複数のブロックで構成されるキャッシュ領域内に格納されているか否かを判断し、
前記転送データが前記キャッシュ領域に格納されていた場合、前記キャッシュ領域から前記転送データを所定の記憶領域に読み込み、
前記複数のブロックが再利用順に応じてランク分けされており、前記転送データと当該転送データの後続データとのうち前記キャッシュ領域に格納されていない未格納データの格納ブロックを、再利用順が高いランクのブロックから優先的に決定し、
前記記憶装置内の前記未格納データを前記格納ブロックに順次転送すると共に、前記未格納データに含まれる前記転送データを前記所定の記憶領域に読み込み、
前記転送データとその前に転送されたデータとの連続性を判断し、連続した一連のデータの場合、当該一連のデータの先頭から所定量のデータを格納したブロックの再利用順のランクを下げる、
処理を実行させることを特徴とする記録媒体。
【0155】
【発明の効果】
以上説明したように本発明では、連続した一連のデータの先頭からの所定量のデータを格納したブロックの再利用順のランクを低くし、また、転送データの後続のデータのキャッシュ領域への先読みを行うようにした。そのため、連続した一連のデータの先頭のデータが長くキャッシュ領域に保持されキャッシュヒット率が向上するとともに、一連のデータの先頭のデータの後続のデータは、先読みによってキャッシュ領域に記憶されることでキャッシュヒット率が向上する。その結果、処理全体でのキャッシュヒット率が上がり、処理効率が向上する。
【図面の簡単な説明】
【図1】本発明の実施の形態に適用される発明の概念図である。
【図2】本発明の実施の形態に用いるコンピュータのハードウェア構成例を示す図である。
【図3】本発明の実施の形態の機能ブロック図である。
【図4】ファイル転送情報のデータ構造例を示す図である。図4(A)は読み込み用ファイル転送情報であり、図4(B)は書き出し用ファイル転送情報である。
【図5】キャッシュ情報のデータ構造例を示す図である。
【図6】キャッシュ再利用順リストのデータ構造例を示す図である。
【図7】再利用順によるキャッシュ情報の配列を示す概念図である。
【図8】vノード情報の一例を示す図である。
【図9】データ転送の全体の処理手順を示すフローチャートである。
【図10】再利用順設定処理を示す第1のフローチャートである。
【図11】再利用順設定処理を示す第2のフローチャートである。
【図12】再利用順設定処理を示す第3のフローチャートである。
【図13】再利用順の並び替え処理の手順を示すフローチャートである。
【図14】使用するキャッシュ領域の選択処理を示すフローチャートである。
【図15】キャッシュ用のブロック選択処理を示すフローチャートである。
【符号の説明】
1 記憶装置
1a ファイル
2 キャッシュ領域
3 アプリケーション
100 コンピュータ
101 CPU
102 RAM
103 ハードディスク装置
110 二次記憶装置
120 主記憶装置
130 アプリケーション
140 キャッシュヒット判断部
150 格納ブロック判断部
160 ファイルデータ転送部
170 キャッシュデータ転送部
180 再利用順設定部
Claims (5)
- 所定の記憶装置に入出力されるデータのキャッシュ処理を制御するためのキャッシュ制御プログラムにおいて、
コンピュータに、
前記記憶装置からのデータ読み込み要求に応答し、当該データ読み込み要求で指定された転送データと当該転送データの後続データとが、複数のブロックで構成されるキャッシュ領域内に格納されているか否かを判断し、
前記転送データが前記キャッシュ領域に格納されていた場合、前記キャッシュ領域から前記転送データを所定の記憶領域に読み込み、
前記転送データと当該転送データの後続データとのうち前記キャッシュ領域に格納されていない未格納データを格納する格納ブロックを、再利用順に応じてランク分けされた前記複数ブロックのうち再利用順が高いランクのブロックから優先的に決定し、
前記記憶装置内の前記未格納データを前記決定された格納ブロックに順次転送すると共に、前記未格納データに含まれる前記転送データを前記所定の記憶領域に読み込み、
前記転送データとその前に転送されたデータとの連続性を判断し、前記転送データとその前に転送されたデータとが連続した一連のデータの場合、当該一連のデータの先頭から所定量のデータを格納したブロックの再利用順のランクを下げる、
処理を実行させることを特徴とするキャッシュ制御プログラム。 - 前記データ読み込み要求が、前記転送データを含むファイルを実行可能なプロセスからの実行要求に基づいている場合、データの連続性に拘わらず、データを格納したブロックの再利用順のランクを所定値未満に設定するようコンピュータを動作させることを特徴とする請求項1記載のキャッシュ制御プログラム。
- 前記キャッシュ領域内のブロック毎にアクセス回数をカウントし、
前記転送データの前記格納ブロックの決定において、再利用順のランクが同じ場合、アクセス回数の少ないブロックを優先的に前記格納ブロックとして決定するようコンピュータを動作させることを特徴とする請求項1記載のキャッシュ制御プログラム。 - 1つのファイルにおいて使用可能な前記キャッシュ領域内の上限ブロック数が予め設定されており、前記転送データの前記格納ブロックの決定において、前記転送データを含むファイルが利用しているブロック数を算出し、当該ブロック数が前記上限ブロック数に達している場合には、前記転送データを含むファイルが利用しているブロックの中から、前記格納ブロックを決定するようコンピュータを動作させることを特徴とする請求項1記載のキャッシュ制御プログラム。
- データのキャッシュ処理を行うコンピュータにおいて、
第1の記憶装置と、
複数のブロックで構成されるキャッシュ領域が設けられた第2の記憶装置と、
前記第1の記憶装置からのデータ読み込み要求に応答し、当該データ読み込み要求で指定された転送データと当該転送データの後続データとが、複数のブロックで構成されるキャッシュ領域内に格納されているか否かを判断する判断手段と、
前記転送データと当該転送データの後続データとのうち前記キャッシュ領域に格納されていない未格納データを格納する格納ブロックを、再利用順に応じてランク分けされた前記複数のブロックのうち再利用順が高いランクのブロックから優先的に決定する決定手段と、
前記第1の記憶装置内の前記未格納データを、前記決定された格納ブロックに順次転送する転送手段と、
前記キャッシュ領域に格納されていた前記転送データ、または前記転送手段で転送された前記転送データを、所定の記憶領域に読み込む読み込み手段と、
前記転送データとその前に転送されたデータとの連続性を判断し、前記転送データとその前に転送されたデータとが連続した一連のデータの場合、当該一連のデータの先頭から所定量のデータを格納したブロックの再利用順のランクを下げるランク変更手段と、
を有することを特徴とするコンピュータ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001319700A JP4067293B2 (ja) | 2001-10-17 | 2001-10-17 | キャッシュ制御プログラムおよびキャッシュ処理を行うコンピュータ |
US10/138,621 US6842824B2 (en) | 2001-10-17 | 2002-05-03 | Cache control program and computer for performing cache processes utilizing cache blocks ranked according to their order of reuse |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001319700A JP4067293B2 (ja) | 2001-10-17 | 2001-10-17 | キャッシュ制御プログラムおよびキャッシュ処理を行うコンピュータ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003122634A JP2003122634A (ja) | 2003-04-25 |
JP4067293B2 true JP4067293B2 (ja) | 2008-03-26 |
Family
ID=19137213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001319700A Expired - Fee Related JP4067293B2 (ja) | 2001-10-17 | 2001-10-17 | キャッシュ制御プログラムおよびキャッシュ処理を行うコンピュータ |
Country Status (2)
Country | Link |
---|---|
US (1) | US6842824B2 (ja) |
JP (1) | JP4067293B2 (ja) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1345234A1 (en) * | 2002-03-11 | 2003-09-17 | STMicroelectronics S.r.l. | Semiconductor memory with self-refresh capability |
US8200747B2 (en) * | 2002-07-12 | 2012-06-12 | Hewlett-Packard Development Company, L.P. | Session handoff of segmented media data |
US8090761B2 (en) * | 2002-07-12 | 2012-01-03 | Hewlett-Packard Development Company, L.P. | Storage and distribution of segmented media data |
JP4252828B2 (ja) * | 2003-03-19 | 2009-04-08 | 株式会社日立製作所 | キャッシュ制御方法、ノード装置、プログラム |
US7590803B2 (en) * | 2004-09-23 | 2009-09-15 | Sap Ag | Cache eviction |
JP4533738B2 (ja) * | 2004-12-17 | 2010-09-01 | 日立ソフトウエアエンジニアリング株式会社 | キャッシュ削除方法及びコンテンツ中継サーバ |
US20060143398A1 (en) * | 2004-12-23 | 2006-06-29 | Stefan Rau | Method and apparatus for least recently used (LRU) software cache |
US20060143256A1 (en) * | 2004-12-28 | 2006-06-29 | Galin Galchev | Cache region concept |
US7539821B2 (en) * | 2004-12-28 | 2009-05-26 | Sap Ag | First in first out eviction implementation |
US20060143389A1 (en) * | 2004-12-28 | 2006-06-29 | Frank Kilian | Main concept for common cache management |
JP4734563B2 (ja) * | 2005-03-31 | 2011-07-27 | 大学共同利用機関法人情報・システム研究機構 | シーケンシャル・コンテンツ配信装置、シーケンシャル・コンテンツ受信装置及びその方法 |
KR100654462B1 (ko) | 2005-08-24 | 2006-12-06 | 삼성전자주식회사 | 캐쉬 메모리를 메모리 블록으로 나누어 파일의 데이터를저장하는 캐쉬 방법 및 캐쉬 시스템 |
US7386673B2 (en) * | 2005-11-30 | 2008-06-10 | Red Hat, Inc. | Method for tracking of non-resident pages |
US7526614B2 (en) * | 2005-11-30 | 2009-04-28 | Red Hat, Inc. | Method for tuning a cache |
TWI365411B (en) * | 2008-06-06 | 2012-06-01 | Asustek Comp Inc | Computer management system to speed up executing application program and method thereof |
US9076239B2 (en) * | 2009-04-30 | 2015-07-07 | Stmicroelectronics S.R.L. | Method and systems for thumbnail generation, and corresponding computer program product |
JP5215255B2 (ja) * | 2009-07-10 | 2013-06-19 | シャープ株式会社 | プログラム実行装置、プログラム実行方法、コンテンツ再生装置、プログラムおよび記録媒体 |
US8438339B2 (en) * | 2009-12-09 | 2013-05-07 | International Business Machines Corporation | Cache management for a number of threads |
JP5673232B2 (ja) * | 2011-03-09 | 2015-02-18 | 日本電気株式会社 | ストレージシステム |
JP5117608B1 (ja) * | 2011-09-30 | 2013-01-16 | 株式会社東芝 | 情報処理装置、ハイブリッド記憶装置、およびキャッシュ方法 |
JP6203592B2 (ja) * | 2013-10-07 | 2017-09-27 | 株式会社日立製作所 | 計算機システム、キャッシュ管理方法及び計算機 |
JP6229577B2 (ja) * | 2014-04-08 | 2017-11-15 | 富士通株式会社 | キャッシュ保存プログラム、情報処理装置およびキャッシュ保存方法 |
CN113377725B (zh) * | 2021-08-13 | 2021-11-12 | 苏州浪潮智能科技有限公司 | 一种内核客户端的预读方法、系统及计算机可读存储介质 |
CN113940685B (zh) * | 2021-11-25 | 2025-02-25 | 江苏正心智能科技有限公司 | 长时程动态心电数据拓传设备、系统和心电数据拓传方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06348595A (ja) * | 1993-06-07 | 1994-12-22 | Hitachi Ltd | キャッシュ装置 |
TW501011B (en) * | 1998-05-08 | 2002-09-01 | Koninkl Philips Electronics Nv | Data processing circuit with cache memory |
WO1999060564A2 (en) * | 1998-05-15 | 1999-11-25 | Storage Technology Corporation | Caching method for data blocks of variable size |
US6260115B1 (en) * | 1999-05-13 | 2001-07-10 | Storage Technology Corporation | Sequential detection and prestaging methods for a disk storage subsystem |
US6463508B1 (en) * | 1999-07-19 | 2002-10-08 | International Business Machines Corporation | Method and apparatus for caching a media stream |
US6681295B1 (en) * | 2000-08-31 | 2004-01-20 | Hewlett-Packard Development Company, L.P. | Fast lane prefetching |
US6721850B2 (en) * | 2001-02-27 | 2004-04-13 | Lucent Technologies Inc. | Method of cache replacement for streaming media |
US6988169B2 (en) * | 2001-04-19 | 2006-01-17 | Snowshore Networks, Inc. | Cache for large-object real-time latency elimination |
-
2001
- 2001-10-17 JP JP2001319700A patent/JP4067293B2/ja not_active Expired - Fee Related
-
2002
- 2002-05-03 US US10/138,621 patent/US6842824B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US20030074525A1 (en) | 2003-04-17 |
US6842824B2 (en) | 2005-01-11 |
JP2003122634A (ja) | 2003-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4067293B2 (ja) | キャッシュ制御プログラムおよびキャッシュ処理を行うコンピュータ | |
JP3175371B2 (ja) | データ記憶フォーマット変換方式及びその変換方法及びアクセス制御装置及びデータアクセス方法 | |
JP3898782B2 (ja) | 情報記録再生装置 | |
JP4257834B2 (ja) | 磁気ディスク装置、ファイル管理システム及びその方法 | |
US20020091902A1 (en) | File system and data caching method thereof | |
JPS58155464A (ja) | 順次デ−タ・ストリ−ムの検出方法 | |
JP2005293205A (ja) | 記憶制御装置、制御方法、および制御プログラム。 | |
CN116774937A (zh) | 数据存储方法、装置、处理设备、存储介质 | |
WO2006030966A2 (en) | File storage device, host apparatus, method of formatting nonvolatile semiconductor memory, and method of writing data in nonvolatile semiconductor memory | |
JPH1063551A (ja) | 情報処理装置 | |
JPH04259048A (ja) | 統計情報による先読みデータ制御方式 | |
JP3112709B2 (ja) | 追記型記憶媒体のアクセス装置 | |
US6487632B1 (en) | Emulation technique for variable-length disk system to access data in a fixed-length disk system | |
US6360296B1 (en) | Disk control apparatus | |
JP3555523B2 (ja) | メモリ管理装置及び管理方法並びに管理プログラムを記録した記録媒体 | |
JP2007102436A (ja) | ストレージ制御装置およびストレージ制御方法 | |
JP5335215B2 (ja) | データ記憶装置、データ記憶方法及びプログラム | |
JP3435176B2 (ja) | 磁気ディスク装置 | |
JP2838988B2 (ja) | 外部記憶装置におけるファイル格納システム | |
JP2001118365A (ja) | 記憶階層管理システム、記憶階層管理方法及び記憶階層管理プログラムを記録した記録媒体 | |
JPH07121308A (ja) | ディスク装置のライトバック制御方法 | |
JP2010160544A (ja) | キャッシュメモリシステム及びキャッシュメモリの制御方法 | |
JP2010224695A (ja) | 磁気ディスク装置およびメタデータ管理システム | |
JP3083530B2 (ja) | キャッシュメモリのデータ管理方法およびキャッシュ制御装置 | |
JPH0239225A (ja) | ファイルシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040823 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071010 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071016 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071214 |
|
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: 20080108 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080108 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110118 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110118 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120118 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130118 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |