JP2003122634A - キャッシュ制御プログラムおよびキャッシュ処理を行うコンピュータ - Google Patents

キャッシュ制御プログラムおよびキャッシュ処理を行うコンピュータ

Info

Publication number
JP2003122634A
JP2003122634A JP2001319700A JP2001319700A JP2003122634A JP 2003122634 A JP2003122634 A JP 2003122634A JP 2001319700 A JP2001319700 A JP 2001319700A JP 2001319700 A JP2001319700 A JP 2001319700A JP 2003122634 A JP2003122634 A JP 2003122634A
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.)
Granted
Application number
JP2001319700A
Other languages
English (en)
Other versions
JP4067293B2 (ja
Inventor
Katsutoshi Yamauchi
勝利 山内
Yoshitake Kawase
義剛 川瀬
Isao Hosokawa
勲 細川
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2001319700A priority Critical patent/JP4067293B2/ja
Priority to US10/138,621 priority patent/US6842824B2/en
Publication of JP2003122634A publication Critical patent/JP2003122634A/ja
Application granted granted Critical
Publication of JP4067293B2 publication Critical patent/JP4067293B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing 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/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement 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)

Abstract

(57)【要約】 【課題】 大容量のファイルアクセスがあっても、高い
キャッシュヒット率を保つ。 【解決手段】 データ読み込み要求で指定された転送デ
ータと当該転送データの後続データとが、複数のブロッ
クで構成されるキャッシュ領域2内に格納されているか
否かを判断する(ステップS1)。複数のブロックが再
利用順に応じてランク分けされており、キャッシュ領域
2に格納されていない未格納データの格納ブロックを、
再利用順が高いランクのブロックから優先的に決定する
(ステップS2)。記憶装置1内の未格納データを格納
ブロックに順次転送する(ステップS3)と共に、転送
データを所定の記憶領域に読み込む(ステップS4)。
転送データとその前に転送されたデータとの連続性を判
断し、連続した一連のデータの場合、当該一連のデータ
の先頭から所定量のデータを格納したブロックの再利用
順のランクを下げる(ステップS5)。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はデータのキャッシュ
処理を行うキャッシュ制御プログラムおよびキャッシュ
処理を行うコンピュータに関し、特に大容量のファイル
のシーケンシャルなデータの読み込みを伴うキャッシュ
処理のキャッシュ制御プログラムおよびコンピュータに
関する。
【0002】
【従来の技術】計算機システムにおいて、磁気ディスク
装置等の二次記憶装置へのアクセスの高速化を図るため
の仕組みとして、ディスクキャッシュがある。ディスク
キャッシュを行うコンピュータは、データを読み出すと
き、いったんデータをメモリ(主記憶装置)内に設けら
れたキャッシュ領域へ読み出して、キャッシュ領域から
要求先へデータを転送する。そして、コンピュータは、
同じデータを繰り返し読み出す際には、そのデータをメ
モリのキャッシュ領域から読み出す。これにより、2回
目以降のデータアクセスでは、キャッシュ領域からデー
タを読み出すだけでよく、二次記憶装置へのアクセス回
数を減らすことができる。メモリは、二次記憶装置より
も高速にアクセスできるため、データのアクセス速度が
高速化される。
【0003】なお、メモリのキャッシュ領域は有限であ
る。そのため、キャッシュ領域の全てにデータが格納さ
れた後に、新たなデータを読み出すときは、コンピュー
タは、再利用するキャッシュ領域を特定し、その領域に
格納されているデータを消去する。そして、コンピュー
タは、再利用するキャッシュ領域に、読み出すデータを
転送する。
【0004】ここで、キャッシュヒット率(読み込み対
象のデータが既にキャッシュ領域上に存在する確率)の
向上を望む場合、再利用するキャッシュ領域として、以
後のアクセス可能性(アクセス頻度)が低いデータを保
持している領域を選択する必要がある。ところが、キャ
ッシュ領域に格納された各データに関して、今後すぐに
使用される可能性が有るかどうかは、一概には判断でき
ない。そこで、一般的には、キャッシュ領域のうち、最
後にアクセスしてからの経過時間が長いデータが格納さ
れた領域から順に使用する方式が採られている。
【0005】
【発明が解決しようとする課題】しかし、必ずしも、最
後にアクセスしてから長時間経過したデータ程アクセス
頻度が低いとは限らない。そのため、上記方式だけで
は、場合によっては、キャッシュヒット率があまり向上
しないことがあった。
【0006】たとえば、画像データや音声データを有す
る大容量のファイルに対してread(読み込み)/w
rite(書き出し)要求が発行された場合、その大容
量ファイルのために、大量のキャッシュ領域が消費され
てしまう。この場合、以前に存在していたキャッシュ領
域上の数多くのデータは無効となってしまい、その後の
一定期間のキャッシュヒット率が低下してしまう。ま
た、大容量のファイルが先頭から読み込まれれば、先頭
のデータから先にキャッシュ領域から消去されてしま
う。すると、次回そのファイルを読み込む際に、ファイ
ル読み込み開始時点でキャッシュがヒットせず、ファイ
ルオープンに時間がかかってしまう。
【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から転
送データを所定の記憶領域に読み込む(ステップS
4)。所定の記憶領域とは、例えば、アプリケーション
3が占有する主記憶装置内の記憶領域である。
【0017】また、複数のブロックが再利用順に応じて
ランク分けされており、コンピュータは、転送データと
転送データの後続データとのうちキャッシュ領域2に格
納されていない未格納データの格納ブロックを、再利用
順が高いランクのブロックから優先的に決定する(ステ
ップS2)。次に、コンピュータは、記憶装置1内の未
格納データを格納ブロックに順次転送する(ステップS
3)と共に、未格納データに含まれる転送データを所定
の記憶領域に読み込む(ステップS4)。そして、コン
ピュータは、転送データとその前に転送されたデータと
の連続性を判断し、連続した一連のデータの場合、当該
一連のデータの先頭から所定量のデータを格納したブロ
ックの再利用順のランクを下げる(ステップS5)。
【0018】このような処理により、大容量のデータを
読み出す際にもキャッシュ領域を無駄に消費せずに、効
率的なキャッシュ管理を行うことができる。すなわち、
ファイル1aが動画データのような大容量のデータであ
った場合、アプリケーション3がファイル1aを読み込
むには、まず、ファイル1aの先頭のデータ(DATA
#1)を転送データとするデータの読み込み要求が出さ
れる。なお、以下の説明では、連続した3つ以上のデー
タに対して続けて読み込み要求が出されたときに、デー
タの連続性ありと判断するものとする。また、後続のデ
ータの先読みとして、続く2つのデータをキャッシュ領
域2に読み込むものとする。
【0019】1回目のファイル1の読み込みにおいて
は、ファイル1aの先頭のデータ(DATA#1)に対
するデータ読み込み要求に応じたキャッシュヒット判断
(ステップS1)では、キャッシュはヒットしない。そ
こで、先頭のデータ(DATA#1)と後続のデータ
(DATA#2)とを格納するためのキャッシュ領域2
内の格納ブロック(ブロック#1,#2,#3)が、再
利用順のランクが高い順に判断される。そして、データ
(DATA#1)と後続のデータ(DATA#2,#
3)とが、キャッシュ領域2に転送される(ステップS
3)。先頭のデータ(DATA#1)は、アプリケーシ
ョン3の管理する記憶領域に転送される(ステップS
4)。このとき、データの連続性は認められず、再利用
順のランクの変更は行われない。
【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の管理する記憶領域に転送される(ステップS
4)。これにより、1回目のファイル1aの読み込みが
完了する。
【0023】2回目のファイル1aの読み込みが行われ
るまでには、アプリケーション3は様々なデータのデー
タ読み込み要求を出す。その際、使用されるキャッシュ
領域2内のブロックは、基本的に再利用順が高いランク
のブロックである。そのため、再利用順が低く変更され
たブロック(ブロック#1,#2)に格納されたデータ
(DATA#1,#2)は、継続してキャッシュ領域2
内に保持される。
【0024】アプリケーション3により、2回目のファ
イル1aの読み込みが行われると、先頭のデータ(DA
TA#1)に対するデータ読み取り要求が出される。す
ると、キャッシュがヒットし(ステップS1)、キャッ
シュ領域2内のブロック(ブロック#1)のデータ(D
ATA#1)が、アプリケーション3の記憶領域に転送
される(ステップS4)。同様に、次のデータ(DAT
A#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)1
01によって装置全体が制御されている。CPU101
には、バス107を介してRAM(Random Access Memor
y)102、ハードディスクドライブ(HDD:Hard Disk
Drive)103、グラフィック処理装置104、入力イ
ンタフェース105、および通信インタフェース106
が接続されている。
【0031】RAM102には、CPU101に実行さ
せるOS(Operating System)のプログラムやキャッシュ
制御を行うためのプログラムの少なくとも一部が一時的
に格納される。また、RAM102には、ユーザバッフ
ァやキャッシュ領域が設けられる。ユーザバッファに
は、ユーザが起動したアプリケーションプログラムの少
なくとも一部や、そのアプリケーションプログラムの処
理に必要なデータが格納される。HDD103は、2次
記憶装置であり、OSやアプリケーションプログラムが
格納される。
【0032】グラフィック処理装置104には、モニタ
11が接続されている。グラフィック処理装置104
は、CPU101からの命令に従って、画像をモニタ1
1の画面に表示させる。入力インタフェース105に
は、キーボード12とマウス13とが接続されている。
入力インタフェース105は、キーボード12やマウス
13から送られてくる信号を、バス107を介してCP
U101に送信する。
【0033】通信インタフェース106は、ネットワー
ク10に接続されている。通信インタフェース106
は、ネットワーク10を介して、他のコンピュータとの
間でデータの送受信を行う。
【0034】以上のようなハードウェア構成によって、
本実施の形態の処理機能を実現することができる。すな
わち、コンピュータ100は、キャッシュ転送機能をサ
ポートしている。キャッシュ転送機能では、コンピュー
タ100は、ユーザがデータ転送のために用意したRA
M102内のユーザバッファと2次記憶装置であるHD
Dとでデータ転送を行う場合、直接データ転送を行うの
ではなく、システムメモリ内に用意されたキャッシュ領
域に一度データを転送する。そして、コンピュータ10
0は、キャッシュ領域からそれぞれの要求先のアプリケ
ーションプログラム用のユーザバッファへデータ転送を
行う。なお、以下の説明では、アプリケーションプログ
ラムをコンピュータが実行することで実現される処理機
能を、単にアプリケーションと呼ぶこととする。
【0035】以下、コンピュータ100で実現される本
発明の実施の形態の処理機能について説明する。図3
は、本発明の実施の形態の機能ブロック図である。図3
に示すように、コンピュータ100のデータ記憶機能
は、二次記憶装置110と主記憶装置120とに分かれ
ている。
【0036】二次記憶装置110は、図2のHDD10
3に相当する。二次記憶装置110には、多数のファイ
ル111,112,113,・・・が格納されている。
主記憶装置120は、図2のRAM102に相当する。
主記憶装置120には、ユーザバッファ121、キャッ
シュ領域122、読み込み用ファイル転送情報123、
書き出し用ファイル転送情報124、キャッシュ情報1
25、及びキャッシュ再利用順リスト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,11
3,・・・(プログラムの少なくとも一部も含む)のデ
ータ転送要求を、OSに対して出力する。データ転送要
求には、データの読み取り要求とデータの書き出し要求
とがある。
【0045】キャッシュヒット判断部140は、アプリ
ケーション130からデータ転送要求を受け取ると、キ
ャッシュ情報125を参照し、データ転送要求で指定さ
れたデータ及びその後続のデータがキャッシュ領域12
2に格納されているかどうかを判断する。キャッシュヒ
ット判断部140は、要求されたデータがキャッシュ領
域122に格納されていれば、そのデータの転送要求を
キャッシュデータ転送部170に通知する。一方、キャ
ッシュヒット判断部140は、要求されたデータがキャ
ッシュ領域122に格納されていなければ、データを格
納するブロックの判断要求を格納ブロック判断部150
に渡す。
【0046】格納ブロック判断部150は、キャッシュ
ヒット判断部140からブロック判断要求を受け取る
と、キャッシュ再利用順リスト126を参照し、データ
を格納するブロックを判断する。格納ブロック判断部1
50は、キャッシュ領域122に空きブロックがあれ
ば、空きブロックをデータの格納ブロックとして判断す
る。また、格納ブロック判断部150は、キャッシュ領
域に空きブロックがなければ、再利用順の最も高いデー
タが格納されたブロックを、データの格納ブロックとし
て判断する。
【0047】格納ブロック判断部150は、データ転送
要求が書き込み要求であれば、データの格納ブロック
を、キャッシュデータ転送部170に通知する。また、
格納ブロック判断部150は、データ転送要求が読み取
り要求であれば、データの格納ブロックを、ファイルデ
ータ転送部160に通知する。
【0048】ファイルデータ転送部160は、キャッシ
ュ領域122と二次記憶装置110との間のデータ転送
を行う。具体的には、ファイルデータ転送部160は、
格納ブロック判断部150からデータの格納ブロックの
通知を受け取ると、データ転送要求で指定されているデ
ータやその後続のデータを、二次記憶装置110から読
み出し、そのデータを通知された格納ブロックに格納す
る。また、ファイルデータ転送部160は、データ書き
出し要求に従って、キャッシュデータ転送部170によ
ってデータがキャッシュ領域122に格納されると、そ
のデータを取得し、二次記憶装置110に書き込む。
【0049】キャッシュデータ転送部170は、ユーザ
バッファ121とキャッシュ領域122との間のデータ
転送を行う。具体的には、キャッシュデータ転送部17
0は、キャッシュヒット判断部140から書き出し時の
データ転送要求を受け取ると、ユーザバッファ121内
の該当するデータを、キャッシュ領域122に転送す
る。転送するデータは、キャッシュヒット判断部140
によって検出されたデータの格納ブロックに上書きで格
納される。
【0050】また、キャッシュデータ転送部170は、
格納ブロック判断部150から書き出し時のデータ転送
要求を受け取ると、格納ブロック判断部150から通知
されたブロックへ、ユーザバッファ121内の該当する
データを転送する。データ読み取り要求の際には、キャ
ッシュデータ転送部170は、ファイルデータ転送部1
60によってキャッシュ領域122に転送されたデータ
を、ユーザバッファ121に転送する。
【0051】再利用順設定部180は、データ転送要求
に応じてデータ転送が行われる毎に、キャッシュ情報1
25とキャッシュ再利用順リスト126とに設定されて
いる再利用順に関する情報を更新する。また、再利用順
設定部180は、読み込みのデータ転送要求に基づくフ
ァイル転送が行われる毎に、読み込み用ファイル転送情
報123の内容を更新する。さらに、再利用順設定部1
80は、書き出しのデータ転送要求に基づくファイル転
送が行われる毎に、書き出し用ファイル転送情報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内のファイルに対して
読み込みの転送要求があった場合、再利用順設定部18
0によって、その転送要求の開始位置、転送サイズが、
転送履歴として読み込み用ファイル転送情報123に蓄
積される。同様に、二次記憶装置110内のファイルに
対して書き出しの転送要求があった場合、再利用順設定
部180によって、その転送要求の開始位置、転送サイ
ズが、転送履歴として書き出し用ファイル転送情報12
4に蓄積される。
【0058】なお、3回目以降の転送については、蓄積
された転送履歴の古い方を転送履歴テーブルインデック
ス(転送履歴テーブルインデックスが「0」)から判断
し、上書きしていく。この際、新しく登録した転送履歴
の転送履歴テーブルインデックスを「1」に変更し、別
の転送履歴の転送履歴テーブルインデックスを「0」に
変更する。このようにして、転送履歴テーブルインデッ
クスによって、転送履歴の登録順が管理される。
【0059】また、過去2回の転送履歴と今回の転送要
求の開始位置と転送サイズが連続している場合、シーケ
ンシャルな転送処理を要求していると判断され、シーケ
ンシャルフラグに「ON」が設定される。このフラグは
転送履歴と今回の転送要求の関係が連続していない(シ
ーケンシャル転送でない)状態になるまで維持される。
【0060】図5は、キャッシュ情報のデータ構造例を
示す図である。キャッシュ情報125は、キャッシュデ
ータ情報125a、nextポインタ125b、bac
kポインタ125c、ファイル用nextポインタ12
5d、ファイル用backポインタ125e、キープフ
ラグ125f、アクセスカウント125g、及びvノー
ドポインタ125hで構成されている。
【0061】キャッシュデータ情報125aは、キャッ
シュデータを格納しているブロックの状態や、保持して
いるキャッシュデータの二次記憶装置110上でのアド
レスなどの管理情報である。キャッシュデータ情報12
5aを参照することで、キャッシュ情報125に対応す
るキャッシュデータが格納されたキャッシュ領域122
内の位置を判断することができる。
【0062】nextポインタ125bは、再利用順
が、キャッシュデータ情報125aで特定されるキャッ
シュデータの次に当たるキャッシュデータ(そのデータ
のキャッシュデータ情報の位置)を示すポインタであ
る。
【0063】backポインタ125cは、再利用順
が、キャッシュデータ情報125aで特定されるキャッ
シュデータの前に当たるキャッシュデータ(そのデータ
のキャッシュデータ情報の位置)を示すポインタであ
る。
【0064】ファイル用nextポインタ125dは、
同一ファイルを構成する複数のキャッシュデータの中
で、再利用順が、キャッシュデータ情報125aで特定
されるキャッシュデータの次に当たるキャッシュデータ
(そのデータのキャッシュデータ情報の位置)を示すポ
インタである。
【0065】ファイル用backポインタ125eは、
同一ファイルを構成する複数のキャッシュデータの中
で、再利用順が、キャッシュデータ情報125aで特定
されるキャッシュデータの前に当たるキャッシュデータ
(そのデータのキャッシュデータ情報の位置)を示すポ
インタである。
【0066】キープフラグ125fは、再利用順のラン
クを示すフラグである。キープフラグが「ON」であれ
ば、再利用順が低い(データ保持の優先順が高い)ラン
クであることを示す。キープフラグが「OFF」であれ
ば、再利用順が高い(データ保持の優先順が低い)ラン
クであることを示す。
【0067】キープフラグ125fは、データ転送がシ
ーケンシャルか否か、あるいは実行権のあるデータ転送
か否かによって設定が変更される。実行権のあるデータ
転送とは、実行可能なファイルに関して、そのファイル
を実行可能なプロセスからの実行要求に基づいたデータ
転送である。
【0068】たとえば、読み込み用ファイル転送情報1
23や書き出し用ファイル転送情報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から順番に、キャッシュ情報1
25を辿ることができる。
【0073】図7は、再利用順によるキャッシュ情報の
配列を示す概念図である。図7に示すように、キャッシ
ュ再利用順リスト126では、高再利用順リスト126
aによって、再利用順のランクが高いキャッシュデータ
の中で、最も再利用順が上位のキャッシュデータのキャ
ッシュ情報211が指し示されている。また、低再利用
順リスト126bによって、再利用順のランクが低いキ
ャッシュデータの中で、最も再利用順の高いキャッシュ
データのキャッシュ情報221が指し示されている。図
7では、各キャッシュ情報211〜215,221〜2
25の内容のうち、キープフラグ125f(図5参照)
の内容を上段に示し、アクセスカウント125g(図5
参照)の内容を下段に示している。
【0074】再利用順のランクが高いキャッシュデータ
の各キャッシュ情報211〜215では、nextポイ
ンタ125b(図5参照)によって、再利用順において
次の順番のキャッシュデータに関するキャッシュ情報が
指し示されている。従って、キャッシュ情報211〜2
15を、再利用順の上位から順番に辿ることができる。
同様に、再利用順のランクが低いキャッシュデータの各
キャッシュ情報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で管理しているファイルのデータが
格納されているブロックに対応するキャッシュ情報12
5のリストである。キャッシュリスト127cには、例
えば、このvノード情報127で管理しているファイル
の先頭のデータが格納されたブロックのキャッシュ情報
125を指し示すポインタを登録する。そのポインタで
示されたキャッシュ情報125のファイル用nextポ
インタを参照することで、そのファイルで使用している
ブロックのキャッシュ情報125を辿ることができる。
【0079】vノード情報127に、キャッシュカウン
ト127bを設けたことにより、1ファイルが使用でき
るブロック数を制限することができる。この場合、コン
ピュータ100において、1ファイルで利用可能な最大
使用ブロック数を設定できるようにしておく。設定され
た最大使用ブロック数と、実際にファイルが使用してい
るブロック数を管理しているキャッシュカウント127
bを比較することで、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に通知され、処理がステップS
19に進められる。転送要求の属性が書き出し要求であ
れば、キャッシュヒットしたキャッシュ情報125の内
容がキャッシュデータ転送部170に通知され、処理が
ステップS18に進められる。
【0084】[ステップS16]格納ブロック判断部1
50は、キャッシュ再利用順リスト126を参照し、デ
ータを格納するブロックを判断する。具体的には、格納
ブロック判断部150は、まず、キャッシュ領域122
内の未使用ブロックの有無を判断する。未使用ブロック
があれば、そのブロックをデータの格納ブロックとす
る。未使用ブロックがなければ、キャッシュ再利用順リ
スト126の高再利用順リスト126aで指し示されて
いるキャッシュ情報211を取得する。そして、格納ブ
ロック判断部150は、そのキャッシュ情報211に対
応するキャッシュデータが格納されているブロックを、
転送データの格納ブロックとする。なお、格納ブロック
判断部150は、高再利用順リスト126aにおいてキ
ャッシュ情報へのポインタが無かった場合(再利用順の
ランクが高いキャッシュデータが無い場合)には、低再
利用順リスト126bで指し示されているキャッシュ情
報221を取得し、そのキャッシュ情報に対応するキャ
ッシュデータが格納されているブロックを、転送データ
の格納先とする。
【0085】格納ブロック判断部150は、転送データ
の格納先と判断したキャッシュ領域122内のブロック
を、ファイルデータ転送部160に通知する。なお、ス
テップS16の処理の詳細は後述する。
【0086】[ステップS17]再利用順設定部180
は、キャッシュ領域122内の各ブロックの再利用順に
関する情報を設定する。この処理の詳細は後述する。 [ステップS18]ファイルデータ転送部160または
キャッシュデータ転送部170により、キャッシュ領域
122へのデータの転送が行われる。すなわち、ステッ
プS13でキャッシュヒットし、データの書き出し要求
であった場合には、キャッシュデータ転送部170は、
ステップS12で検出された領域へユーザバッファ12
1内の転送対象のデータを転送する。また、キャッシュ
ヒットせず、データの書き出し要求であった場合には、
キャッシュデータ転送部170は、ステップS16で選
択された領域へユーザバッファ121内の転送対象のデ
ータを転送する。また、キャッシュヒットせず、データ
の読み込み要求であった場合には、ファイルデータ転送
部160は、ステップS16で選択された領域へユーザ
バッファ121内の転送対象のデータを転送する。
【0087】[ステップS19]ファイルデータ転送部
160またはキャッシュデータ転送部170により、キ
ャッシュ領域122から要求先へデータ転送が行われ
る。すなわち、データ転送要求がデータの書き出し要求
であれば、ステップS18においてキャッシュデータ転
送部170がキャッシュ領域122に転送したデータ
を、ファイルデータ転送部160が二次記憶装置110
に転送する。また、データ転送要求がデータの読み込み
要求であれば、ステップS18においてファイルデータ
転送部160がキャッシュ領域122に転送したデータ
を、キャッシュデータ転送部170がユーザバッファ1
21に転送する。
【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と判断)、再利用順設定部18
0は、転送パターン(シーケンシャルか否か)によりブ
ロックの再利用順の設定を行うため、以下の処理を行
う。
【0093】[ステップS24]再利用順設定部180
は、データ転送で使用するブロックに対応するキャッシ
ュ情報125のキープフラグ125fに「OFF」を設
定する。すなわち、ステップS23や後述するステップ
S43(図11に示す)で「ON」に設定されたのキー
プフラグ125fは、そのブロックに対応するキャッシ
ュデータへの次回アクセス時に無効にされる。
【0094】[ステップS25]再利用順設定部180
は、ファイルをオープン時に作成した読み込み用ファイ
ル転送情報123または書き出し用ファイル転送情報1
24を参照し、転送履歴テーブルで保持している過去2
回分の転送開始位置及び転送サイズと、今回の転送要求
の開始位置及び転送サイズとを比較する。
【0095】例えば、再利用順設定部180は、データ
転送要求が読み込み要求であれば、読み込み用ファイル
転送情報123を参照する。そして、再利用順設定部1
80は、転送履歴テーブルインデックスに「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のステップS
51に進められる。
【0102】図11は、再利用順設定処理を示す第2の
フローチャートである。以下、図11に示す処理をステ
ップ番号に沿って説明する。 [ステップS41]再利用順設定部180は、ファイル
転送情報の転送履歴テーブルで保持されている過去2回
の転送要求で使用したブロックを検索する。具体的に
は、再利用順設定部180は、データ転送要求が読み込
み要求であれば、読み込み用ファイル転送情報123に
基づくブロックを検索し、データ転送要求が書き出し要
求であれば、書き出し用ファイル転送情報124に基づ
くブロックを検索する。
【0103】[ステップS42]再利用順設定部180
は、ステップS41による検索の結果、該当するブロッ
クが検出されたか否かを判断する。該当するブロックが
検出された場合には、処理がステップS43に進められ
る。ブロックが検出されなかった場合には、処理が図1
2のステップS51に進められる。
【0104】[ステップS43]再利用順設定部180
は、過去2回の転送で使用したブロックが存在すれば、
ステップS41で検索したブロックのキャッシュ情報1
25にあるキープフラグ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
は、選択したブロックのキャッシュ再利用順リスト12
6での再利用順を変更する。すなわち、再利用順設定部
180は、ステップS23,S24,S43,S51で
キャッシュ情報を変更したブロックのキャッシュ再利用
順リスト126上でのリンク先を、アクセス頻度の低い
順に並びかえる。
【0109】具体的には、再利用順設定部180は、キ
ープフラグが「ON」であれば、そのキャッシュ情報1
25を高再利用順リスト126aに繋がる配列の中に挿
入し、キープフラグが「OFF」であれば、そのキャッ
シュ情報125を低再利用順リスト126bの配列の中
に挿入する。並び替えでは、各キャッシュ情報125が
アクセスカウント125gの少ない順に並べられる。ア
クセスカウント125gが同じであれば、最後にアクセ
スしてからの経過時間の長い順である。配列が決定した
ら、再利用順設定部180は、その配列に従って、各キ
ャッシュ情報125のnextポインタ125bとba
ckポインタ125cとを更新する。
【0110】[ステップS53]再利用順設定部180
は、選択したブロックのvノード情報127のキャッシ
ュリスト127cでの再利用順を変更する。すなわち、
再利用順設定部180は、ファイル内での再利用順を設
定するため、vノード情報127のキャッシュリスト1
27cに対して、ステップ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を変更したキ
ャッシュ優先度変更対象のブロックのキャッシュ情報1
25を処理対象とし、そのキャッシュ情報125がキャ
ッシュ再利用順リスト126の高再利用順リスト126
aと低再利用順リスト126bとのどちらに繋がれてい
るかチェックする。高再利用順リスト126aに繋がれ
ている場合には、処理がステップS62に進められる。
低再利用順リスト126bに繋がれている場合には、処
理がステップS64に進められる。
【0116】[ステップS62]再利用順設定部180
は、更新対象のキャッシュ情報125のキープフラグ1
25fに、「ON」が設定されているか否かを判断す
る。キープフラグ125fが「ON」の場合には、処理
がステップS63に進められる。キープフラグ125f
が「OFF」の場合には、処理がステップS66に進め
られる。
【0117】[ステップS63]再利用順設定部180
は、更新対象のキャッシュ情報125の接続先を、高再
利用順リスト126aから低再利用順リスト126bの
先頭に変更する。その後、処理がステップS66に進め
られる。
【0118】[ステップS64]再利用順設定部180
は、更新対象のキャッシュ情報125のキープフラグ1
25fに「OFF」が設定されているか否かを判断す
る。キープフラグが「OFF」の場合には、処理がステ
ップS65に進められる。キープフラグが「ON」の場
合に、処理がステップS66に進められる。
【0119】[ステップS65]再利用順設定部180
は、更新対象のキャッシュ情報125の接続先を、低再
利用順リスト126aから高再利用順リスト126bの
先頭に変更する。その後、処理がステップ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、キャッシュ情報12
5のnextポインタ125bをそれぞれvノード情報
127のキャッシュリスト127c、キャッシュ情報1
25のファイル用nextポインタ125dに置き換え
て処理される。
【0125】次に図9のS16のキャッシュ領域の選択
処理を図14、図15を参照しながら説明する。図14
は、使用するキャッシュ領域の選択処理を示すフローチ
ャートである。このフローチャートは、使用するキャッ
シュ領域の選択をキャッシュ領域全体から選択するか、
ファイルが現在使用している中から選択するかを判断す
る処理のフローチャートである。以下、図14に示す処
理をステップ番号に沿って説明する。
【0126】[ステップS71]格納ブロック判断部1
50は、先ずシステムが保持している最大使用ブロック
数とvノード情報127のキャッシュカウント127b
(使用キャッシュ領域数)を比較する。比較の結果、フ
ァイルが現在使用しているブロック数が最大使用ブロッ
ク数以上であれば、処理がステップS73に進められ
る。そうでなければ、処理がステップS72に進められ
る。
【0127】[ステップS72]格納ブロック判断部1
50は、システム全体で管理しているキャッシュ再利用
順リスト126に基づいて、キャッシュデータ格納用の
ブロックを選択する。その後、処理がステップS74に
進められる。なお、この処理の詳細は後述する。
【0128】[ステップS73]格納ブロック判断部1
50は、システム全体からではなく、データ転送対象の
ファイルが使用しているブロックの中から、再利用する
ブロックを選択する。これにより、1ファイル当りの使
用ブロック数が制限される。
【0129】[ステップS74]格納ブロック判断部1
50は、選択したブロックとファイルの関連付けを行
う。すなわち、格納ブロック判断部150は、ステップ
S72,S73により選択したブロックのキャッシュ情
報125のvノードポインタ125hから以前そのブロ
ックを使用していたファイルと今回の転送で使用するフ
ァイルが同じであるか否かを判断する。同一ファイルで
あれば、キャッシュ領域の選択処理が終了し、処理が図
9のステップS17に進められる。同一ファイルでなけ
れば、処理がステップS75に進められる。
【0130】[ステップS75]格納ブロック判断部1
50は、結果同一ファイルでない場合、選択したブロッ
クと、そのファイルのvノード情報127との関連付け
を外す。
【0131】[ステップS76]格納ブロック判断部1
50は、更新対象のキャッシュ情報125のvノードポ
インタ125hに、今回転送されるデータのvノード情
報127のポインタをセットすることでキャッシュ情報
125とvノード情報127とを関連付ける。
【0132】[ステップS77]格納ブロック判断部1
50は、vノード情報127のキャッシュカウント12
7bを更新(使用ブロック数を更新)する。その後、処
理が図9のステップS17に進められる。
【0133】次に、図14のステップS72におけるブ
ロックの選択処理の詳細について説明する。図15は、
キャッシュ用のブロック選択処理を示すフローチャート
である。キャッシュ用のブロック選択では、キャッシュ
再利用順リスト126から再利用順の最も高いブロック
を選択する。以下、図15に示す処理をステップ番号に
沿って説明する。
【0134】[ステップS81]最も再利用順の高いブ
ロックは、キャッシュ再利用順リスト126の高再利用
順リスト126aに直接続されたブロックである。その
ため、格納ブロック判断部150は、高再利用順リスト
126aにキャッシュ領域122内のブロックがリンク
されているか否かを判断する。リンクされているブロッ
クがあれば、処理がステップS82に進められる。リン
クされているブロックがなければ、処理がステップS8
3に進められる。
【0135】[ステップS82]格納ブロック判断部1
50は、高再利用順リスト126aで指し示されている
ブロックを、転送データ格納用のブロックとして選択す
る。その後、処理がステップS84に進められる。
【0136】[ステップS83]格納ブロック判断部1
50は、低再利用順リスト126bで指し示されている
ブロックを、転送データ格納用のブロックとして選択す
る。その後、処理がステップS84に進められる。
【0137】[ステップS84]格納ブロック判断部1
50は、選択したブロックのキャッシュ情報125のキ
ープフラグ125f、アクセスカウント125gを初期
化する。その後、処理がステップS74に進められる。
【0138】なお、図14のステップS73の処理の詳
細も、図15に示した処理と同様である。ただし、キャ
ッシュ再利用順リスト126はvノード情報127のキ
ャッシュリスト127cに置き換えて処理される。
【0139】以上のように、キャッシュ領域122内の
各ブロックを、再利用順によってランク分けし、シーケ
ンシャルに転送される一連のデータの先頭のデータの再
利用順を下げることで、そのデータをキャッシュ領域内
に継続して保持させることができる。その結果、次に同
じファイルの読み込みが行われるときに、先頭のデータ
をキャッシュ領域122から迅速に取得することができ
る。また、後続のデータの先読みを行っていることで、
先頭のデータを転送している間に後続のデータがキャッ
シュ領域122に格納され、後続のデータも含めて、高
速にファイルの読み込みが可能となる。
【0140】しかも、実行権のあるアクセスでは、転送
されたデータの再利用順を低くしたため、実行権のある
アクセスにおけるキャッシュヒット率が向上する。さら
に、1ファイル当りのキャッシュ領域の使用量を制限し
たため、巨大ファイルに対する転送要求に他のファイル
の転送要求が影響を受けることが少なくなる。これによ
り、キャッシュヒット率が以前よりも期待できるように
なり、転送要求の性能が向上する。
【0141】なお、上記の処理機能は、コンピュータに
よって実現することができる。その場合、コンピュータ
が有すべき機能の処理内容を記述したプログラムが提供
される。そのプログラムをコンピュータで実行すること
により、上記処理機能がコンピュータ上で実現される。
処理内容を記述したプログラムは、コンピュータで読み
取り可能な記録媒体に記録しておくことができる。コン
ピュータで読み取り可能な記録媒体としては、磁気記録
装置、光ディスク、光磁気記録媒体、半導体メモリなど
がある。磁気記録装置には、ハードディスク装置(HD
D)、フレキシブルディスク(FD)、磁気テープなど
がある。光ディスクには、DVD(Digital Versatile D
isc)、DVD−RAM(Random Access Memory)、CD−
ROM(Compact Disc Read Only Memory)、CD−R(Re
cordable)/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 再利用順設定部
【手続補正書】
【提出日】平成14年6月18日(2002.6.1
8)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正内容】
【書類名】 明細書
【発明の名称】 キャッシュ制御プログラムおよびキャ
ッシュ処理を行うコンピュータ
【特許請求の範囲】
【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はデータのキャッシュ
処理を行うキャッシュ制御プログラムおよびキャッシュ
処理を行うコンピュータに関し、特に大容量のファイル
のシーケンシャルなデータの読み込みを伴うキャッシュ
処理のキャッシュ制御プログラムおよびコンピュータに
関する。
【0002】
【従来の技術】計算機システムにおいて、磁気ディスク
装置等の二次記憶装置へのアクセスの高速化を図るため
の仕組みとして、ディスクキャッシュがある。ディスク
キャッシュを行うコンピュータは、データを読み出すと
き、いったんデータをメモリ(主記憶装置)内に設けら
れたキャッシュ領域へ読み出して、キャッシュ領域から
要求先へデータを転送する。そして、コンピュータは、
同じデータを繰り返し読み出す際には、そのデータをメ
モリのキャッシュ領域から読み出す。これにより、2回
目以降のデータアクセスでは、キャッシュ領域からデー
タを読み出すだけでよく、二次記憶装置へのアクセス回
数を減らすことができる。メモリは、二次記憶装置より
も高速にアクセスできるため、データのアクセス速度が
高速化される。
【0003】なお、メモリのキャッシュ領域は有限であ
る。そのため、キャッシュ領域の全てにデータが格納さ
れた後に、新たなデータを読み出すときは、コンピュー
タは、再利用するキャッシュ領域を特定し、その領域に
格納されているデータを消去する。そして、コンピュー
タは、再利用するキャッシュ領域に、読み出すデータを
転送する。
【0004】ここで、キャッシュヒット率(読み込み対
象のデータが既にキャッシュ領域上に存在する確率)の
向上を望む場合、再利用するキャッシュ領域として、以
後のアクセス可能性(アクセス頻度)が低いデータを保
持している領域を選択する必要がある。ところが、キャ
ッシュ領域に格納された各データに関して、今後すぐに
使用される可能性が有るかどうかは、一概には判断でき
ない。そこで、一般的には、キャッシュ領域のうち、最
後にアクセスしてからの経過時間が長いデータが格納さ
れた領域から順に使用する方式が採られている。
【0005】
【発明が解決しようとする課題】しかし、必ずしも、最
後にアクセスしてから長時間経過したデータ程アクセス
頻度が低いとは限らない。そのため、上記方式だけで
は、場合によっては、キャッシュヒット率があまり向上
しないことがあった。
【0006】たとえば、画像データや音声データを有す
る大容量のファイルに対してread(読み込み)/w
rite(書き出し)要求が発行された場合、その大容
量ファイルのために、大量のキャッシュ領域が消費され
てしまう。この場合、以前に存在していたキャッシュ領
域上の数多くのデータは無効となってしまい、その後の
一定期間のキャッシュヒット率が低下してしまう。ま
た、大容量のファイルが先頭から読み込まれれば、先頭
のデータから先にキャッシュ領域から消去されてしま
う。すると、次回そのファイルを読み込む際に、ファイ
ル読み込み開始時点でキャッシュがヒットせず、ファイ
ルオープンに時間がかかってしまう。
【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から転
送データを所定の記憶領域に読み込む(ステップS
4)。所定の記憶領域とは、例えば、アプリケーション
3が占有する主記憶装置内の記憶領域である。
【0017】また、複数のブロックが再利用順に応じて
ランク分けされており、コンピュータは、転送データと
転送データの後続データとのうちキャッシュ領域2に格
納されていない未格納データの格納ブロックを、再利用
順が高いランクのブロックから優先的に決定する(ステ
ップS2)。次に、コンピュータは、記憶装置1内の未
格納データを格納ブロックに順次転送する(ステップS
3)と共に、未格納データに含まれる転送データを所定
の記憶領域に読み込む(ステップS4)。そして、コン
ピュータは、転送データとその前に転送されたデータと
の連続性を判断し、連続した一連のデータの場合、当該
一連のデータの先頭から所定量のデータを格納したブロ
ックの再利用順のランクを下げる(ステップS5)。
【0018】このような処理により、大容量のデータを
読み出す際にもキャッシュ領域を無駄に消費せずに、効
率的なキャッシュ管理を行うことができる。すなわち、
ファイル1aが動画データのような大容量のデータであ
った場合、アプリケーション3がファイル1aを読み込
むには、まず、ファイル1aの先頭のデータ(DATA
#1)を転送データとするデータの読み込み要求が出さ
れる。なお、以下の説明では、連続した3つ以上のデー
タに対して続けて読み込み要求が出されたときに、デー
タの連続性ありと判断するものとする。また、後続のデ
ータの先読みとして、続く2つのデータをキャッシュ領
域2に読み込むものとする。
【0019】1回目のファイル1の読み込みにおいて
は、ファイル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の管理する記憶領域に転送される(ステップS
4)。これにより、1回目のファイル1aの読み込みが
完了する。
【0023】2回目のファイル1aの読み込みが行われ
るまでには、アプリケーション3は様々なデータのデー
タ読み込み要求を出す。その際、使用されるキャッシュ
領域2内のブロックは、基本的に再利用順が高いランク
のブロックである。そのため、再利用順が低く変更され
たブロック(ブロック#1,#2)に格納されたデータ
(DATA#1,#2)は、継続してキャッシュ領域2
内に保持される。
【0024】アプリケーション3により、2回目のファ
イル1aの読み込みが行われると、先頭のデータ(DA
TA#1)に対するデータ読み取り要求が出される。す
ると、キャッシュがヒットし(ステップS1)、キャッ
シュ領域2内のブロック(ブロック#1)のデータ(D
ATA#1)が、アプリケーション3の記憶領域に転送
される(ステップS4)。同様に、次のデータ(DAT
A#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)1
01によって装置全体が制御されている。CPU101
には、バス107を介してRAM(Random Access Memor
y)102、ハードディスクドライブ(HDD:Hard Disk
Drive)103、グラフィック処理装置104、入力イ
ンタフェース105、および通信インタフェース106
が接続されている。
【0031】RAM102には、CPU101に実行さ
せるOS(Operating System)のプログラムやキャッシュ
制御を行うためのプログラムの少なくとも一部が一時的
に格納される。また、RAM102には、ユーザバッフ
ァやキャッシュ領域が設けられる。ユーザバッファに
は、ユーザが起動したアプリケーションプログラムの少
なくとも一部や、そのアプリケーションプログラムの処
理に必要なデータが格納される。HDD103は、2次
記憶装置であり、OSやアプリケーションプログラムが
格納される。
【0032】グラフィック処理装置104には、モニタ
11が接続されている。グラフィック処理装置104
は、CPU101からの命令に従って、画像をモニタ1
1の画面に表示させる。入力インタフェース105に
は、キーボード12とマウス13とが接続されている。
入力インタフェース105は、キーボード12やマウス
13から送られてくる信号を、バス107を介してCP
U101に送信する。
【0033】通信インタフェース106は、ネットワー
ク10に接続されている。通信インタフェース106
は、ネットワーク10を介して、他のコンピュータとの
間でデータの送受信を行う。
【0034】以上のようなハードウェア構成によって、
本実施の形態の処理機能を実現することができる。すな
わち、コンピュータ100は、キャッシュ転送機能をサ
ポートしている。キャッシュ転送機能では、コンピュー
タ100は、ユーザがデータ転送のために用意したRA
M102内のユーザバッファと2次記憶装置であるHD
Dとでデータ転送を行う場合、直接データ転送を行うの
ではなく、システムメモリ内に用意されたキャッシュ領
域に一度データを転送する。そして、コンピュータ10
0は、キャッシュ領域からそれぞれの要求先のアプリケ
ーションプログラム用のユーザバッファへデータ転送を
行う。なお、以下の説明では、アプリケーションプログ
ラムをコンピュータが実行することで実現される処理機
能を、単にアプリケーションと呼ぶこととする。
【0035】以下、コンピュータ100で実現される本
発明の実施の形態の処理機能について説明する。図3
は、本発明の実施の形態の機能ブロック図である。図3
に示すように、コンピュータ100のデータ記憶機能
は、二次記憶装置110と主記憶装置120とに分かれ
ている。
【0036】二次記憶装置110は、図2のHDD10
3に相当する。二次記憶装置110には、多数のファイ
ル111,112,113,・・・が格納されている。
主記憶装置120は、図2のRAM102に相当する。
主記憶装置120には、ユーザバッファ121、キャッ
シュ領域122、読み込み用ファイル転送情報123、
書き出し用ファイル転送情報124、キャッシュ情報1
25、及びキャッシュ再利用順リスト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,11
3,・・・(プログラムの少なくとも一部も含む)のデ
ータ転送要求を、OSに対して出力する。データ転送要
求には、データの読み取り要求とデータの書き出し要求
とがある。
【0045】キャッシュヒット判断部140は、アプリ
ケーション130からデータ転送要求を受け取ると、キ
ャッシュ情報125を参照し、データ転送要求で指定さ
れたデータ及びその後続のデータがキャッシュ領域12
2に格納されているかどうかを判断する。キャッシュヒ
ット判断部140は、要求されたデータがキャッシュ領
域122に格納されていれば、そのデータの転送要求を
キャッシュデータ転送部170に通知する。一方、キャ
ッシュヒット判断部140は、要求されたデータがキャ
ッシュ領域122に格納されていなければ、データを格
納するブロックの判断要求を格納ブロック判断部150
に渡す。
【0046】格納ブロック判断部150は、キャッシュ
ヒット判断部140からブロック判断要求を受け取る
と、キャッシュ再利用順リスト126を参照し、データ
を格納するブロックを判断する。格納ブロック判断部1
50は、キャッシュ領域122に空きブロックがあれ
ば、空きブロックをデータの格納ブロックとして判断す
る。また、格納ブロック判断部150は、キャッシュ領
122に空きブロックがなければ、再利用順の最も高
いデータが格納されたブロックを、データの格納ブロッ
クとして判断する。
【0047】格納ブロック判断部150は、データ転送
要求が書き込み要求であれば、データの格納ブロック
を、キャッシュデータ転送部170に通知する。また、
格納ブロック判断部150は、データ転送要求が読み取
り要求であれば、データの格納ブロックを、ファイルデ
ータ転送部160に通知する。
【0048】ファイルデータ転送部160は、キャッシ
ュ領域122と二次記憶装置110との間のデータ転送
を行う。具体的には、ファイルデータ転送部160は、
格納ブロック判断部150からデータの格納ブロックの
通知を受け取ると、データ転送要求で指定されているデ
ータやその後続のデータを、二次記憶装置110から読
み出し、そのデータを通知された格納ブロックに格納す
る。また、ファイルデータ転送部160は、データ書き
出し要求に従って、キャッシュデータ転送部170によ
ってデータがキャッシュ領域122に格納されると、そ
のデータを取得し、二次記憶装置110に書き込む。
【0049】キャッシュデータ転送部170は、ユーザ
バッファ121とキャッシュ領域122との間のデータ
転送を行う。具体的には、キャッシュデータ転送部17
0は、キャッシュヒット判断部140から書き出し時の
データ転送要求を受け取ると、ユーザバッファ121内
の該当するデータを、キャッシュ領域122に転送す
る。転送するデータは、キャッシュヒット判断部140
によって検出されたデータの格納ブロックに上書きで格
納される。
【0050】また、キャッシュデータ転送部170は、
格納ブロック判断部150から書き出し時のデータ転送
要求を受け取ると、格納ブロック判断部150から通知
されたブロックへ、ユーザバッファ121内の該当する
データを転送する。データ読み取り要求の際には、キャ
ッシュデータ転送部170は、ファイルデータ転送部1
60によってキャッシュ領域122に転送されたデータ
を、ユーザバッファ121に転送する。
【0051】再利用順設定部180は、データ転送要求
に応じてデータ転送が行われる毎に、キャッシュ情報1
25とキャッシュ再利用順リスト126とに設定されて
いる再利用順に関する情報を更新する。また、再利用順
設定部180は、読み込みのデータ転送要求に基づくフ
ァイル転送が行われる毎に、読み込み用ファイル転送情
報123の内容を更新する。さらに、再利用順設定部1
80は、書き出しのデータ転送要求に基づくファイル転
送が行われる毎に、書き出し用ファイル転送情報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内のファイルに対して
読み込みの転送要求があった場合、再利用順設定部18
0によって、その転送要求の開始位置、転送サイズが、
転送履歴として読み込み用ファイル転送情報123に蓄
積される。同様に、二次記憶装置110内のファイルに
対して書き出しの転送要求があった場合、再利用順設定
部180によって、その転送要求の開始位置、転送サイ
ズが、転送履歴として書き出し用ファイル転送情報12
4に蓄積される。
【0058】なお、3回目以降の転送については、蓄積
された転送履歴の古い方を転送履歴テーブルインデック
ス(転送履歴テーブルインデックスが「0」)から判断
し、上書きしていく。この際、新しく登録した転送履歴
の転送履歴テーブルインデックスを「1」に変更し、別
の転送履歴の転送履歴テーブルインデックスを「0」に
変更する。このようにして、転送履歴テーブルインデッ
クスによって、転送履歴の登録順が管理される。
【0059】また、過去2回の転送履歴と今回の転送要
求の開始位置と転送サイズが連続している場合、シーケ
ンシャルな転送処理を要求していると判断され、シーケ
ンシャルフラグに「ON」が設定される。このフラグは
転送履歴と今回の転送要求の関係が連続していない(シ
ーケンシャル転送でない)状態になるまで維持される。
【0060】図5は、キャッシュ情報のデータ構造例を
示す図である。キャッシュ情報125は、キャッシュデ
ータ情報125a、nextポインタ125b、bac
kポインタ125c、ファイル用nextポインタ12
5d、ファイル用backポインタ125e、キープフ
ラグ125f、アクセスカウント125g、及びvノー
ドポインタ125hで構成されている。
【0061】キャッシュデータ情報125aは、キャッ
シュデータを格納しているブロックの状態や、保持して
いるキャッシュデータの二次記憶装置110上でのアド
レスなどの管理情報である。キャッシュデータ情報12
5aを参照することで、キャッシュ情報125に対応す
るキャッシュデータが格納されたキャッシュ領域122
内の位置を判断することができる。
【0062】nextポインタ125bは、再利用順
が、キャッシュデータ情報125aで特定されるキャッ
シュデータの次に当たるキャッシュデータ(そのデータ
のキャッシュデータ情報の位置)を示すポインタであ
る。
【0063】backポインタ125cは、再利用順
が、キャッシュデータ情報125aで特定されるキャッ
シュデータの前に当たるキャッシュデータ(そのデータ
のキャッシュデータ情報の位置)を示すポインタであ
る。
【0064】ファイル用nextポインタ125dは、
同一ファイルを構成する複数のキャッシュデータの中
で、再利用順が、キャッシュデータ情報125aで特定
されるキャッシュデータの次に当たるキャッシュデータ
(そのデータのキャッシュデータ情報の位置)を示すポ
インタである。
【0065】ファイル用backポインタ125eは、
同一ファイルを構成する複数のキャッシュデータの中
で、再利用順が、キャッシュデータ情報125aで特定
されるキャッシュデータの前に当たるキャッシュデータ
(そのデータのキャッシュデータ情報の位置)を示すポ
インタである。
【0066】キープフラグ125fは、再利用順のラン
クを示すフラグである。キープフラグ125fが「O
N」であれば、再利用順が低い(データ保持の優先順が
高い)ランクであることを示す。キープフラグ125f
が「OFF」であれば、再利用順が高い(データ保持の
優先順が低い)ランクであることを示す。
【0067】キープフラグ125fは、データ転送がシ
ーケンシャルか否か、あるいは実行権のあるデータ転送
か否かによって設定が変更される。実行権のあるデータ
転送とは、実行可能なファイルに関して、そのファイル
を実行可能なプロセスからの実行要求に基づいたデータ
転送である。
【0068】たとえば、読み込み用ファイル転送情報1
23や書き出し用ファイル転送情報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から順番に、キャッシュ情報1
25を辿ることができる。
【0073】図7は、再利用順によるキャッシュ情報の
配列を示す概念図である。図7に示すように、キャッシ
ュ再利用順リスト126では、高再利用順リスト126
aによって、再利用順のランクが高いキャッシュデータ
の中で、最も再利用順が上位のキャッシュデータのキャ
ッシュ情報211が指し示されている。また、低再利用
順リスト126bによって、再利用順のランクが低いキ
ャッシュデータの中で、最も再利用順の高いキャッシュ
データのキャッシュ情報221が指し示されている。図
7では、各キャッシュ情報211〜215,221〜2
25の内容のうち、キープフラグ125f(図5参照)
の内容を上段に示し、アクセスカウント125g(図5
参照)の内容を下段に示している。
【0074】再利用順のランクが高いキャッシュデータ
の各キャッシュ情報211〜215では、nextポイ
ンタ125b(図5参照)によって、再利用順において
次の順番のキャッシュデータに関するキャッシュ情報が
指し示されている。従って、キャッシュ情報211〜2
15を、再利用順の上位から順番に辿ることができる。
同様に、再利用順のランクが低いキャッシュデータの各
キャッシュ情報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で管理しているファイルのデータが
格納されているブロックに対応するキャッシュ情報12
5のリストである。キャッシュリスト127cには、例
えば、このvノード情報127で管理しているファイル
の先頭のデータが格納されたブロックのキャッシュ情報
125を指し示すポインタを登録する。そのポインタで
示されたキャッシュ情報125のファイル用nextポ
インタ125dを参照することで、そのファイルで使用
しているブロックのキャッシュ情報125を辿ることが
できる。
【0079】vノード情報127に、キャッシュカウン
ト127bを設けたことにより、1ファイルが使用でき
るブロック数を制限することができる。この場合、コン
ピュータ100において、1ファイルで利用可能な最大
使用ブロック数を設定できるようにしておく。設定され
た最大使用ブロック数と、実際にファイルが使用してい
るブロック数を管理しているキャッシュカウント127
bを比較することで、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に通知され、処理がステップS
19に進められる。転送要求の属性が書き出し要求であ
れば、キャッシュヒットしたキャッシュ情報125の内
容がキャッシュデータ転送部170に通知され、処理が
ステップS18に進められる。
【0084】[ステップS16]格納ブロック判断部1
50は、キャッシュ再利用順リスト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で検出された領域へユーザバッファ12
1内の転送対象のデータを転送する。また、キャッシュ
ヒットせず、データの書き出し要求であった場合には、
キャッシュデータ転送部170は、ステップS16で選
択された領域へユーザバッファ121内の転送対象のデ
ータを転送する。また、キャッシュヒットせず、データ
の読み込み要求であった場合には、ファイルデータ転送
部160は、ステップS16で選択された領域へユーザ
バッファ121内の転送対象のデータを転送する。
【0087】[ステップS19]ファイルデータ転送部
160またはキャッシュデータ転送部170により、キ
ャッシュ領域122から要求先へデータ転送が行われ
る。すなわち、データ転送要求がデータの書き出し要求
であれば、ステップS18においてキャッシュデータ転
送部170がキャッシュ領域122に転送したデータ
を、ファイルデータ転送部160が二次記憶装置110
に転送する。また、データ転送要求がデータの読み込み
要求であれば、ステップS18においてファイルデータ
転送部160がキャッシュ領域122に転送したデータ
を、キャッシュデータ転送部170がユーザバッファ1
21に転送する。
【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と判断)、再利用順設定部18
0は、転送パターン(シーケンシャルか否か)によりブ
ロックの再利用順の設定を行うため、以下の処理を行
う。
【0093】[ステップS24]再利用順設定部180
は、データ転送で使用するブロックに対応するキャッシ
ュ情報125のキープフラグ125fに「OFF」を設
定する。すなわち、ステップS23や後述するステップ
S43(図11に示す)で「ON」に設定されたキープ
フラグ125fは、そのブロックに対応するキャッシュ
データへの次回アクセス時に無効にされる。
【0094】[ステップS25]再利用順設定部180
は、ファイルをオープン時に作成した読み込み用ファイ
ル転送情報123または書き出し用ファイル転送情報1
24を参照し、転送履歴テーブルで保持している過去2
回分の転送開始位置及び転送サイズと、今回の転送要求
の開始位置及び転送サイズとを比較する。
【0095】例えば、再利用順設定部180は、データ
転送要求が読み込み要求であれば、読み込み用ファイル
転送情報123を参照する。そして、再利用順設定部1
80は、転送履歴テーブルインデックスに「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のステップS
51に進められる。
【0102】図11は、再利用順設定処理を示す第2の
フローチャートである。以下、図11に示す処理をステ
ップ番号に沿って説明する。 [ステップS41]再利用順設定部180は、ファイル
転送情報の転送履歴テーブルで保持されている過去2回
の転送要求で使用したブロックを検索する。具体的に
は、再利用順設定部180は、データ転送要求が読み込
み要求であれば、読み込み用ファイル転送情報123に
基づくブロックを検索し、データ転送要求が書き出し要
求であれば、書き出し用ファイル転送情報124に基づ
くブロックを検索する。
【0103】[ステップS42]再利用順設定部180
は、ステップS41による検索の結果、該当するブロッ
クが検出されたか否かを判断する。該当するブロックが
検出された場合には、処理がステップS43に進められ
る。ブロックが検出されなかった場合には、処理が図1
2のステップS51に進められる。
【0104】[ステップS43]再利用順設定部180
は、過去2回の転送で使用したブロックが存在すれば、
ステップS41で検索したブロックのキャッシュ情報1
25にあるキープフラグ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
は、選択したブロックのキャッシュ再利用順リスト12
6での再利用順を変更する。すなわち、再利用順設定部
180は、ステップS23,S24,S43,S51で
キャッシュ情報125を変更したブロックのキャッシュ
再利用順リスト126上でのリンク先を、アクセス頻度
の低い順に並びかえる。
【0109】具体的には、再利用順設定部180は、キ
ープフラグが「ON」であれば、そのキャッシュ情報1
25を高再利用順リスト126aに繋がる配列の中に挿
入し、キープフラグが「OFF」であれば、そのキャッ
シュ情報125を低再利用順リスト126bの配列の中
に挿入する。並び替えでは、各キャッシュ情報125が
アクセスカウント125gの少ない順に並べられる。ア
クセスカウント125gが同じであれば、最後にアクセ
スしてからの経過時間の長い順である。配列が決定した
ら、再利用順設定部180は、その配列に従って、各キ
ャッシュ情報125のnextポインタ125bとba
ckポインタ125cとを更新する。
【0110】[ステップS53]再利用順設定部180
は、選択したブロックのvノード情報127のキャッシ
ュリスト127cでの再利用順を変更する。すなわち、
再利用順設定部180は、ファイル内での再利用順を設
定するため、vノード情報127のキャッシュリスト1
27cに対して、ステップ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を変更したキ
ャッシュ優先度変更対象のブロックのキャッシュ情報1
25を処理対象とし、そのキャッシュ情報125がキャ
ッシュ再利用順リスト126の高再利用順リスト126
aと低再利用順リスト126bとのどちらに繋がれてい
るかチェックする。高再利用順リスト126aに繋がれ
ている場合には、処理がステップS62に進められる。
低再利用順リスト126bに繋がれている場合には、処
理がステップS64に進められる。
【0116】[ステップS62]再利用順設定部180
は、更新対象のキャッシュ情報125のキープフラグ1
25fに、「ON」が設定されているか否かを判断す
る。キープフラグ125fが「ON」の場合には、処理
がステップS63に進められる。キープフラグ125f
が「OFF」の場合には、処理がステップS66に進め
られる。
【0117】[ステップS63]再利用順設定部180
は、更新対象のキャッシュ情報125の接続先を、高再
利用順リスト126aから低再利用順リスト126bの
先頭に変更する。その後、処理がステップS66に進め
られる。
【0118】[ステップS64]再利用順設定部180
は、更新対象のキャッシュ情報125のキープフラグ1
25fに「OFF」が設定されているか否かを判断す
る。キープフラグが「OFF」の場合には、処理がステ
ップS65に進められる。キープフラグが「ON」の場
合に、処理がステップS66に進められる。
【0119】[ステップS65]再利用順設定部180
は、更新対象のキャッシュ情報125の接続先を、低再
利用順リスト126から高再利用順リスト126
先頭に変更する。その後、処理がステップ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、キャッシュ情報12
5のnextポインタ125bをそれぞれvノード情報
127のキャッシュリスト127c、キャッシュ情報1
25のファイル用nextポインタ125dに置き換え
て処理される。
【0125】次に図9のS16のキャッシュ領域の選択
処理を図14、図15を参照しながら説明する。図14
は、使用するキャッシュ領域の選択処理を示すフローチ
ャートである。このフローチャートは、使用するキャッ
シュ領域の選択をキャッシュ領域全体から選択するか、
ファイルが現在使用している中から選択するかを判断す
る処理のフローチャートである。以下、図14に示す処
理をステップ番号に沿って説明する。
【0126】[ステップS71]格納ブロック判断部1
50は、先ずシステムが保持している最大使用ブロック
数とvノード情報127のキャッシュカウント127b
(使用キャッシュ領域数)を比較する。比較の結果、フ
ァイルが現在使用しているブロック数が最大使用ブロッ
ク数以上であれば、処理がステップS73に進められ
る。そうでなければ、処理がステップS72に進められ
る。
【0127】[ステップS72]格納ブロック判断部1
50は、システム全体で管理しているキャッシュ再利用
順リスト126に基づいて、キャッシュデータ格納用の
ブロックを選択する。その後、処理がステップS74に
進められる。なお、この処理の詳細は後述する。
【0128】[ステップS73]格納ブロック判断部1
50は、システム全体からではなく、データ転送対象の
ファイルが使用しているブロックの中から、再利用する
ブロックを選択する。これにより、1ファイル当りの使
用ブロック数が制限される。
【0129】[ステップS74]格納ブロック判断部1
50は、選択したブロックとファイルの関連付けを行
う。すなわち、格納ブロック判断部150は、ステップ
S72,S73により選択したブロックのキャッシュ情
報125のvノードポインタ125hから以前そのブロ
ックを使用していたファイルと今回の転送で使用するフ
ァイルが同じであるか否かを判断する。同一ファイルで
あれば、キャッシュ領域の選択処理が終了し、処理が図
9のステップS17に進められる。同一ファイルでなけ
れば、処理がステップS75に進められる。
【0130】[ステップS75]格納ブロック判断部1
50は、結果同一ファイルでない場合、選択したブロッ
クと、そのファイルのvノード情報127との関連付け
を外す。
【0131】[ステップS76]格納ブロック判断部1
50は、更新対象のキャッシュ情報125のvノードポ
インタ125hに、今回転送されるデータのvノード情
報127のポインタをセットすることでキャッシュ情報
125とvノード情報127とを関連付ける。
【0132】[ステップS77]格納ブロック判断部1
50は、vノード情報127のキャッシュカウント12
7bを更新(使用ブロック数を更新)する。その後、処
理が図9のステップS17に進められる。
【0133】次に、図14のステップS72におけるブ
ロックの選択処理の詳細について説明する。図15は、
キャッシュ用のブロック選択処理を示すフローチャート
である。キャッシュ用のブロック選択では、キャッシュ
再利用順リスト126から再利用順の最も高いブロック
を選択する。以下、図15に示す処理をステップ番号に
沿って説明する。
【0134】[ステップS81]最も再利用順の高いブ
ロックは、キャッシュ再利用順リスト126の高再利用
順リスト126aに直接続されたブロックである。その
ため、格納ブロック判断部150は、高再利用順リスト
126aにキャッシュ領域122内のブロックがリンク
されているか否かを判断する。リンクされているブロッ
クがあれば、処理がステップS82に進められる。リン
クされているブロックがなければ、処理がステップS8
3に進められる。
【0135】[ステップS82]格納ブロック判断部1
50は、高再利用順リスト126aで指し示されている
ブロックを、転送データ格納用のブロックとして選択す
る。その後、処理がステップS84に進められる。
【0136】[ステップS83]格納ブロック判断部1
50は、低再利用順リスト126bで指し示されている
ブロックを、転送データ格納用のブロックとして選択す
る。その後、処理がステップS84に進められる。
【0137】[ステップS84]格納ブロック判断部1
50は、選択したブロックのキャッシュ情報125のキ
ープフラグ125f、アクセスカウント125gを初期
化する。その後、処理がステップS74に進められる。
【0138】なお、図14のステップS73の処理の詳
細も、図15に示した処理と同様である。ただし、キャ
ッシュ再利用順リスト126はvノード情報127のキ
ャッシュリスト127cに置き換えて処理される。
【0139】以上のように、キャッシュ領域122内の
各ブロックを、再利用順によってランク分けし、シーケ
ンシャルに転送される一連のデータの先頭のデータの再
利用順を下げることで、そのデータをキャッシュ領域
22内に継続して保持させることができる。その結果、
次に同じファイルの読み込みが行われるときに、先頭の
データをキャッシュ領域122から迅速に取得すること
ができる。また、後続のデータの先読みを行っているこ
とで、先頭のデータを転送している間に後続のデータが
キャッシュ領域122に格納され、後続のデータも含め
て、高速にファイルの読み込みが可能となる。
【0140】しかも、実行権のあるアクセスでは、転送
されたデータの再利用順を低くしたため、実行権のある
アクセスにおけるキャッシュヒット率が向上する。さら
に、1ファイル当りのキャッシュ領域の使用量を制限し
たため、巨大ファイルに対する転送要求に他のファイル
の転送要求が影響を受けることが少なくなる。これによ
り、キャッシュヒット率が以前よりも期待できるように
なり、転送要求の性能が向上する。
【0141】なお、上記の処理機能は、コンピュータに
よって実現することができる。その場合、コンピュータ
が有すべき機能の処理内容を記述したプログラムが提供
される。そのプログラムをコンピュータで実行すること
により、上記処理機能がコンピュータ上で実現される。
処理内容を記述したプログラムは、コンピュータで読み
取り可能な記録媒体に記録しておくことができる。コン
ピュータで読み取り可能な記録媒体としては、磁気記録
装置、光ディスク、光磁気記録媒体、半導体メモリなど
がある。磁気記録装置には、ハードディスク装置(HD
D)、フレキシブルディスク(FD)、磁気テープなど
がある。光ディスクには、DVD(Digital Versatile D
isc)、DVD−RAM(Random Access Memory)、CD−
ROM(Compact Disc Read Only Memory)、CD−R(Re
cordable)/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 再利用順設定部
【手続補正2】
【補正対象書類名】図面
【補正対象項目名】図12
【補正方法】変更
【補正内容】
【図12】
フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G06F 12/08 557 G06F 12/08 557 (72)発明者 細川 勲 愛知県名古屋市東区葵一丁目16番38号 株 式会社富士通プライムソフトテクノロジ内 Fターム(参考) 5B005 JJ13 MM11 NN12 QQ04 5B065 BA01 CA15 CC08 CE12 CH01

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 所定の記憶装置に入出力されるデータの
    キャッシュ処理を制御するためのキャッシュ制御プログ
    ラムにおいて、 コンピュータに、 前記記憶装置からのデータ読み込み要求に応答し、当該
    データ読み込み要求で指定された転送データと当該転送
    データの後続データとが、複数のブロックで構成される
    キャッシュ領域内に格納されているか否かを判断し、 前記転送データが前記キャッシュ領域に格納されていた
    場合、前記キャッシュ領域から前記転送データを所定の
    記憶領域に読み込み、 前記複数のブロックが再利用順に応じてランク分けされ
    ており、前記転送データと当該転送データの後続データ
    とのうち前記キャッシュ領域に格納されていない未格納
    データの格納ブロックを、再利用順が高いランクのブロ
    ックから優先的に決定し、 前記記憶装置内の前記未格納データを前記格納ブロック
    に順次転送すると共に、前記未格納データに含まれる前
    記転送データを前記所定の記憶領域に読み込み、 前記転送データとその前に転送されたデータとの連続性
    を判断し、連続した一連のデータの場合、当該一連のデ
    ータの先頭から所定量のデータを格納したブロックの再
    利用順のランクを下げる、 処理を実行させることを特徴とするキャッシュ制御プロ
    グラム。
  2. 【請求項2】 実行権のあるファイルアクセスに基づい
    たデータ転送の場合、データの連続性に拘わらず、デー
    タを格納したブロックの再利用順のランクを前記所定値
    未満に設定することを特徴とする請求項1記載のキャッ
    シュ制御プログラム。
  3. 【請求項3】 前記キャッシュ領域内のブロック毎にア
    クセス回数をカウントし、 前記転送データの前記格納ブロックの決定において、再
    利用順のランクが同じ場合、アクセス回数の多いブロッ
    クを優先的に前記格納ブロックとして決定することを特
    徴とする請求項1記載のキャッシュ制御プログラム。
  4. 【請求項4】 1つのファイルにおいて使用可能な前記
    キャッシュ領域内の上限ブロック数が予め設定されてお
    り、前記転送データの前記格納ブロックの決定におい
    て、前記転送データを含むファイルが利用しているブロ
    ック数を算出し、当該ブロック数が前記上限ブロック数
    に達している場合には、前記転送データを含むファイル
    が利用しているブロックの中から、前記格納ブロックを
    決定することを特徴とする請求項1記載のキャッシュ制
    御プログラム。
  5. 【請求項5】 データのキャッシュ処理を行うコンピュ
    ータにおいて、 第1の記憶装置と、 複数のブロックで構成されるキャッシュ領域が設けられ
    た第2の記憶装置と、 前記第1の記憶装置からのデータ読み込み要求に応答
    し、当該データ読み込み要求で指定された転送データと
    当該転送データの後続データとが、複数のブロックで構
    成されるキャッシュ領域内に格納されているか否かを判
    断する判断手段と、 前記複数のブロックが再利用順に応じてランク分けされ
    ており、前記転送データと当該転送データの後続データ
    とのうち前記キャッシュ領域に格納されていない未格納
    データの格納ブロックを、再利用順が高いランクのブロ
    ックから優先的に決定する決定手段と、 前記第1の記憶装置内の前記未格納データを前記格納ブ
    ロックに順次転送する転送手段と、 前記転送データが前記キャッシュ領域に格納されていた
    前記転送データ、または前記転送手段で転送された前記
    転送データを、所定の記憶領域に読み込む読み込み手段
    と、 前記転送データとその前に転送されたデータとの連続性
    を判断し、連続した一連のデータの場合、当該一連のデ
    ータの先頭から所定量のデータを格納したブロックの再
    利用順のランクを下げるランク変更手段と、 を有することを特徴とするコンピュータ。
JP2001319700A 2001-10-17 2001-10-17 キャッシュ制御プログラムおよびキャッシュ処理を行うコンピュータ Expired - Fee Related JP4067293B2 (ja)

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 true JP2003122634A (ja) 2003-04-25
JP4067293B2 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)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006172296A (ja) * 2004-12-17 2006-06-29 Hitachi Software Eng Co Ltd キャッシュ削除方法及びコンテンツ中継サーバ
JP2006285533A (ja) * 2005-03-31 2006-10-19 Research Organization Of Information & Systems シーケンシャル・コンテンツ配信装置、シーケンシャル・コンテンツ受信装置及びその方法
US7644232B2 (en) 2005-08-24 2010-01-05 Samsung Electronics Co., Ltd. Cache method and cache system for storing file's data in memory blocks divided from cache memory
JP2011018277A (ja) * 2009-07-10 2011-01-27 Sharp Corp プログラム実行装置、プログラム実行方法、コンテンツ再生装置、プログラムおよび記録媒体
JP2012190099A (ja) * 2011-03-09 2012-10-04 Nec Corp ストレージシステム
JP2013077161A (ja) * 2011-09-30 2013-04-25 Toshiba Corp 情報処理装置、ハイブリッド記憶装置、およびキャッシュ方法
JP2015075818A (ja) * 2013-10-07 2015-04-20 株式会社日立製作所 計算機システム、キャッシュ管理方法及び計算機
JP2015201050A (ja) * 2014-04-08 2015-11-12 富士通株式会社 キャッシュ保存プログラム、情報処理装置およびキャッシュ保存方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
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
US20060143398A1 (en) * 2004-12-23 2006-06-29 Stefan Rau Method and apparatus for least recently used (LRU) software cache
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
US20060143256A1 (en) * 2004-12-28 2006-06-29 Galin Galchev Cache region concept
US7526614B2 (en) * 2005-11-30 2009-04-28 Red Hat, Inc. Method for tuning a cache
US7386673B2 (en) * 2005-11-30 2008-06-10 Red Hat, Inc. Method for tracking of non-resident pages
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
US8438339B2 (en) * 2009-12-09 2013-05-07 International Business Machines Corporation Cache management for a number of threads
CN113377725B (zh) * 2021-08-13 2021-11-12 苏州浪潮智能科技有限公司 一种内核客户端的预读方法、系统及计算机可读存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
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
JP2002516446A (ja) * 1998-05-15 2002-06-04 ストーリッジ テクノロジー コーポレーション サイズ可変データブロックのキャッシュ方法
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

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006172296A (ja) * 2004-12-17 2006-06-29 Hitachi Software Eng Co Ltd キャッシュ削除方法及びコンテンツ中継サーバ
JP4533738B2 (ja) * 2004-12-17 2010-09-01 日立ソフトウエアエンジニアリング株式会社 キャッシュ削除方法及びコンテンツ中継サーバ
JP2006285533A (ja) * 2005-03-31 2006-10-19 Research Organization Of Information & Systems シーケンシャル・コンテンツ配信装置、シーケンシャル・コンテンツ受信装置及びその方法
JP4734563B2 (ja) * 2005-03-31 2011-07-27 大学共同利用機関法人情報・システム研究機構 シーケンシャル・コンテンツ配信装置、シーケンシャル・コンテンツ受信装置及びその方法
US7644232B2 (en) 2005-08-24 2010-01-05 Samsung Electronics Co., Ltd. Cache method and cache system for storing file's data in memory blocks divided from cache memory
JP2011018277A (ja) * 2009-07-10 2011-01-27 Sharp Corp プログラム実行装置、プログラム実行方法、コンテンツ再生装置、プログラムおよび記録媒体
JP2012190099A (ja) * 2011-03-09 2012-10-04 Nec Corp ストレージシステム
JP2013077161A (ja) * 2011-09-30 2013-04-25 Toshiba Corp 情報処理装置、ハイブリッド記憶装置、およびキャッシュ方法
JP2015075818A (ja) * 2013-10-07 2015-04-20 株式会社日立製作所 計算機システム、キャッシュ管理方法及び計算機
JP2015201050A (ja) * 2014-04-08 2015-11-12 富士通株式会社 キャッシュ保存プログラム、情報処理装置およびキャッシュ保存方法

Also Published As

Publication number Publication date
US6842824B2 (en) 2005-01-11
JP4067293B2 (ja) 2008-03-26
US20030074525A1 (en) 2003-04-17

Similar Documents

Publication Publication Date Title
JP4067293B2 (ja) キャッシュ制御プログラムおよびキャッシュ処理を行うコンピュータ
JP3175371B2 (ja) データ記憶フォーマット変換方式及びその変換方法及びアクセス制御装置及びデータアクセス方法
CN103186350B (zh) 混合存储系统及热点数据块的迁移方法
US8595451B2 (en) Managing a storage cache utilizing externally assigned cache priority tags
JP3898782B2 (ja) 情報記録再生装置
US20090132621A1 (en) Selecting storage location for file storage based on storage longevity and speed
JP2708348B2 (ja) コンピュータのデータを記憶させるための直接アクセス記憶装置の割振り方法及び装置
US6516389B1 (en) Disk control device
JP2005293205A (ja) 記憶制御装置、制御方法、および制御プログラム。
US20100205368A1 (en) Method and system for caching data in a storage system
JP2017117179A (ja) 情報処理装置、キャッシュ制御プログラムおよびキャッシュ制御方法
JPH05303528A (ja) ライトバック式ディスクキャッシュ装置
CN111158602A (zh) 数据分层存储方法、读取方法、存储主机及存储系统
JP2007102436A (ja) ストレージ制御装置およびストレージ制御方法
JP4095152B2 (ja) 画像管理装置およびその方法、画像管理システム、記憶媒体
US6532513B1 (en) Information recording and reproduction apparatus
US6360296B1 (en) Disk control apparatus
JP3555523B2 (ja) メモリ管理装置及び管理方法並びに管理プログラムを記録した記録媒体
JP2854667B2 (ja) ディスク・キャッシュ制御方式
JP2010160544A (ja) キャッシュメモリシステム及びキャッシュメモリの制御方法
US6594726B1 (en) Digital data storage subsystem including arrangement for efficiently controlling fast write storage operation
JP2854668B2 (ja) ディスク・キャッシュ制御方式
JP2001118365A (ja) 記憶階層管理システム、記憶階層管理方法及び記憶階層管理プログラムを記録した記録媒体
JP2838988B2 (ja) 外部記憶装置におけるファイル格納システム
JP2912657B2 (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