(57)【要約】【課題】  外部記憶装置の性能に拘わらず、コンピュータ全体の性能を低下させることなく最大限にその性能を発揮でき、高速の検索・処理を行う。【解決手段】  ストレージキャッシング型コンピュータ３１は、ＣＰＵ３２と、ＣＰＵ３２に接続されるローカルメモリ３３と、ＣＰＵ３２にメインバス３４を介して接続される外部記憶装置３５とを具備し、ローカルメモリ３３は、一時的に保存するキャッシュデータを固定するストレージブロックキャッシュエリア３３ｄを有し、ＣＰＵ３２は、外部記憶装置３５に記憶されたデータの番号毎に、一定のサンプリング時間に外部記憶装置３５にアクセスされるデータの頻度についてサンプリングし、サンプリングされたデータの頻度が、ローカルメモリ３３内に一時的に保存するキャッシュデータを固定する固定条件に適合する場合に、該当する番号のデータをローカルメモリ３３内に固定する。【選択図】図１
2005173637.tif 000002
【特許請求の範囲】
【請求項１】
中央演算処理装置と、
前記中央演算処理装置に接続されるローカルメモリと、
前記中央演算処理装置にメインバスを介して接続される記憶手段と、
を具備するストレージキャッシング型コンピュータであって、
前記ローカルメモリは、一時的に保存するキャッシュデータを固定する一部領域を有し、
前記中央演算処理装置は、前記記憶手段に記憶されたデータの番号毎に、一定のサンプリング時間に前記記憶手段にアクセスされる前記データの頻度についてサンプリングし、
前記サンプリングされた前記データの頻度が、前記ローカルメモリの前記一部領域に一時的に保存する前記キャッシュデータを固定する固定条件に適合する場合には、該当する番号の前記データを前記ローカルメモリの前記一部領域に固定することを特徴とするストレージキャッシング型コンピュータ。
【請求項２】
前記記憶手段にアクセスできるユーザーについての認証データが、前記データの一つとして前記記憶手段に格納されることを特徴とする請求項１記載のストレージキャッシング型コンピュータ。
【請求項３】
前記ローカルメモリに固定される前記データを格納するための複数の領域を考え、該領域のうち１つの領域に、残りの領域に格納される前記データの和を格納することを特徴とする請求項１又は２に記載のストレージキャッシング型コンピュータ。
【請求項４】
中央演算処理装置と、前記中央演算処理装置に接続されるローカルメモリと、前記中央演算処理装置にメインバスを介して接続される記憶手段と、を具備するストレージキャッシング型コンピュータを、
前記ローカルメモリは、一時的に保存するキャッシュデータを固定する一部領域を有し、
前記中央演算処理装置は、前記記憶手段に記憶されたデータの番号毎に、一定のサンプリング時間に前記記憶手段にアクセスされる前記データの頻度についてサンプリングし、
前記サンプリングされた前記データの頻度が、前記ローカルメモリの前記一部領域に一時的に保存する前記キャッシュデータを固定する固定条件に適合する場合には、該当する番号の前記データを前記ローカルメモリの前記一部領域に固定するように、機能させることを特徴とするストレージキャッシング型コンピュータプログラム。
【請求項５】
前記ローカルメモリに固定される前記データを格納するための複数の領域を考え、該領域のうち１つの領域に、残りの領域に格納される前記データの和を格納することを特徴とする請求項４に記載のストレージキャッシング型コンピュータプログラム。
【請求項６】
中央演算処理装置と、前記中央演算処理装置に接続されるローカルメモリと、前記中央演算処理装置にメインバスを介して接続される記憶手段と、を具備するストレージキャッシング型コンピュータを、
前記ローカルメモリは、一時的に保存するキャッシュデータを固定する一部領域を有し、
前記中央演算処理装置は、前記記憶手段に記憶されたデータの番号毎に、一定のサンプリング時間に前記記憶手段にアクセスされる前記データの頻度についてサンプリングし、
前記サンプリングされた前記データの頻度が、前記ローカルメモリの前記一部領域に一時的に保存する前記キャッシュデータを固定する固定条件に適合する場合には、該当する番号の前記データを前記ローカルメモリの前記一部領域に固定するように、機能させることを特徴とするストレージキャッシング型コンピュータプログラムを記録したコンピュータ読み取り可能記録媒体。
【請求項７】
前記ローカルメモリに固定される前記データを格納するための複数の領域を考え、該領域のうち１つの領域に、残りの領域に格納される前記データの和を格納することを特徴とする請求項６に記載のストレージキャッシング型コンピュータプログラム記録したコンピュータ読み取り可能記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ストレージキャッシング型コンピュータに関し、特に、外部記憶装置に記憶されたデータを記憶するキャッシュデータメモリとして、汎用コンピュータに備えられている中央演算処理装置（以下、ＣＰＵともいう）用のローカルメモリを利用し、データの使用頻度に合わせた自己学習を行ってローカルメモリに一時的に記憶されるキャッシュデータを最適化して固定（常駐）させ、高速なデータ検索・演算を可能とする機能に関する。
【背景技術】
【０００２】
近年、ますますコンピュータの演算処理速度は高速化され、コンピュータによる外部記憶装置やネットワークを介して行われるデータ検索・処理の需要が一層高まっている。図２は、従来のコンピュータ１の構成を模式的に示す図である。従来のコンピュータ１は、ＣＰＵ（中央演算処理装置）２と、ＯＳ（オペレーションシステム）や、アプリケーションプログラム等を記憶したローカルメモリ（内部メモリ）３とを、マザーボード（図示せず）に実装すると共に、メインバス（汎用バス、例えばＰＣＩ  ＢＵＳ）４を介して外部装置の一つであるハードディスク等の外部記憶装置（図中、Diskと表示している）５、つまり、従来型の可動型データディスク装置を接続して構成されている。
【０００３】
メインバス４には、汎用のＰＣＩ  ＢＵＳ等が利用される。外部記憶装置５とマザーボードとの接続は、ＳＣＳＩやＦＣ（Fiber  Channel）等の一般的な外部インターフェース（ＳＣＳＩ／ＦＣインターフェース）６を使用して行われる。
【０００４】
そして、メインバス４に、プリンターインターフェース７を介しプリンター８等の周辺デバイスが接続されると共に、ネットワークインターフェースカード９を介してＬＡＮ等のネットワーク１０に接続される構成である。本明細書では、メインバス４を介して接続される外部記憶装置５や、プリンター８等の出力装置、スキャナー等の入力装置（図示せず）、ネットワーク１０等の周辺デバイスが外部装置に含まれる。
【０００５】
このような構成の従来のコンピュータ１では、ＣＰＵ２が演算・処理を行う場合、マザーボードにおいてＣＰＵ２の直近に位置する（オンボード上の）ローカルメモリ３に、ＯＳを記憶させたり、演算・処理のためのデータを、外部記憶装置５から取り出し一時的に記憶させて処理が行われる。そして、必要に応じて外部記憶装置５に、データの要求、格納、処理がメインバス４を介して行われる。なお、図２では、ローカルメモリ３において、ＯＳを記憶させるＯＳエリア３ａと、演算・処理のためのアプリケーションプログラムやデータを記憶させるエリア３ｂとが、模式的に示されている。
【０００６】
つまり、このような従来のコンピュータ１において、プリンターやスキャナー等の入出力装置から入出力されるべきデータや、ネットワーク１０等の外部装置から新たにデータが、取り込まれ又は更新されて、記憶された外部記憶装置５とローカルメモリ３との間で、メインバス４を介して、データの更新が行われている。そして、このようなローカルメモリ３に、ＣＰＵ２の演算・処理のために一時的に記憶（保存）させるデータ（キャッシュデータ）の更新のために、外部記憶装置５に記憶されたデータへのアクセスは、ＣＰＵ２の演算処理工程で生ずる要求として、その都度行われている。
【０００７】
なお、本明細書では、ローカルメモリに一時的にデータを記憶（保存）させたり、又はこれを書き換えたりすることを「キャッシュする」といい、ローカルメモリに一時的に保存（記憶）するデータをキャッシュデータという。
【０００８】
ところで、下記の特許文献１には、実データを記憶する半導体メモリーから成るデータメモリー１をメインバス２に直接接続してマザーボード３に実装し、メインバス２には、ＣＰＵ４、Ｉ／Ｏ５及びＬＡＮ６が接続されているダイレクトメモリー接続型サーバーコンピュータが開示されている（特許文献１参照）。
【特許文献１】特開２００２−３０４３２５号公報（第１頁、第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述した従来技術では、大容量の外部記憶装置に記憶されているデータの中から、ＣＰＵの演算・処理のために必要なデータを、ローカルメモリに一時的に記憶させる、いわゆるディスクキャッシュという処理技術が用いられている。このディスクキャッシュでは、ＣＰＵがローカルメモリに一時的に記憶されたキャッシュデータにアクセスし、演算・処理された結果が、必要に応じて外部記憶装置に送られ記憶される。このため、多くのデータは大容量の外部記憶装置上のデータエリアに存在する。そして上述したように、外部記憶装置に対して必要に応じてデータの読み出し及び書き込み等のアクセスが、ＣＰＵの演算処理工程で生ずる要求として、その都度行われている。
【００１０】
一方、ＣＰＵの直近に位置する（ＣＰＵに直接接続される）半導体メモリ等であるローカルメモリと、メインバスを介して接続される可動型データディスク装置等で実現される外部記憶装置とでは、処理の速さ（処理能力）が異なる。つまり、ローカルメモリにアクセスするスピードに比べて、外部記憶装置にアクセスするスピードは遙かに（数百倍も）遅く、外部記憶装置へアクセスすることで生じる物理的なシーク時間等により、多くの待ち時間が発生することにより、コンピュータ全体の効率が大幅に低下してしまう。
【００１１】
すなわち、外部記憶装置へのアクセスは、多くの手順を踏むため、大量の検索時等では、この外部記憶装置の機械的なシーク時間（通常０．１秒程度）が発生し、検索能力を発揮できない。さらにその能力は、ＳＣＳＩ伝達信号経路の処理スピードに限界が生じ（最大８０Ｍバイト）能力不足となってしまう。その結果、コンピュータ全体の処理速度（性能）が低下することになる。
【００１２】
特に、コンピュータによるデータ検索要求の増加により、外部記憶装置へのアクセスが増加すると、従来のコンピュータの構成では、外部記憶装置の性能に限界があるため、大きな待ち時間が生じ、レスポンスの低下を招いてしまう。
【００１３】
また、上記問題は、特に近年需要が増え続けるインターネットでのｗｅｂページ検索や、データベースを使用するデータマイニング（種々の統計解析手法を用いて大量の企業データを分析し、隠れた関係性や意味を見つけ出す知識発見の手法又はそのプロセス）での運用性能を大きく低下させる。
【００１４】
さらには、複数のコンピュータが外部記憶装置を共有するストレージ共有型の構造を持つ高速並列演算コンピュータにおいては、データ検索件数が増大する環境下で、コンピュータからみたデータ検索能力は、接続されている共有の外部記憶装置の性能に依るため、コンピュータ全体の性能（共有データ領域での性能）を大きく低下させる要因となっている。
【００１５】
そして、上述の問題は、ＣＰＵの性能を向上させるのみでは解決できず、コンピュータ全体の性能を向上させる上での壁、つまり、ボトルネック（コンピュータの処理速度やネットワークの処理速度の向上を阻む隘路となっている要素）となっている。
【００１６】
これは、従来の上記ディスクキャッシュでは、ＣＰＵの演算・処理のために直前に使用されるデータが、可動型データディスク装置から読み出されて、ローカルメモリに一時的に記憶されるものに留まるものであることによる。つまり、可動型データディスク装置から読み出されたデータはその使用頻度に関係なく、ＣＰＵの演算処理工程で、その都度、ローカルメモリに一時的に記憶されるものであることによる。要するに、このような従来技術では、外部記憶装置に記憶されているデータのうち使用頻度の高いデータを、常にＣＰＵ直近に位置するローカルメモリに記憶させておく事ができないことによる。
【００１７】
本発明は、外部記憶装置や周辺デバイスを含む外部装置の性能に拘わらず、コンピュータ全体の性能を低下させることなく最大限にその性能を発揮でき、高速の検索・処理を行うことができる、ストレージキャッシング型コンピュータプログラム及び当該プログラムを記録したコンピュータ読み取り可能な記録媒体、並びにストレージキャッシング型コンピュータを実現することを課題とするものである。
【００１８】
また、本発明は、半導体メモリ等のデータメモリを新たに搭載又は接続することなく、既存の汎用コンピュータにおいて、最大限にその性能を発揮させ、高速の検索・処理を行うことができることを課題とするものである。
【００１９】
なお、特許文献１に示されるように、本発明者が既に提案した発明は、実データを記憶する半導体メモリから成るデータメモリを、メインバスに直接接続してマザーボードに実装するものであり、本発明が、新たに半導体メモリ等のデータメモリを搭載又は接続することなく、上記課題を解決しようとする点で大きく相違するものである。
【課題を解決するための手段】
【００２０】
本発明は上記課題を解決するために、中央演算処理装置と、前記中央演算処理装置に接続されるローカルメモリと、前記中央演算処理装置にメインバスを介して接続される記憶手段と、を具備するストレージキャッシング型コンピュータであって、前記ローカルメモリは、一時的に保存するキャッシュデータを固定する一部領域を有し、前記中央演算処理装置は、前記記憶手段に記憶されたデータの番号毎に、一定のサンプリング時間に前記記憶手段にアクセスされる前記データの頻度についてサンプリングし、前記サンプリングされた前記データの頻度が、前記ローカルメモリの前記一部領域に一時的に保存する前記キャッシュデータを固定する固定条件に適合する場合には、該当する番号の前記データを前記ローカルメモリの前記一部領域に固定することを特徴とするストレージキャッシング型コンピュータを提供する。
【００２１】
前記記憶手段にアクセスできるユーザーについての認証データが、前記データの一つとして前記記憶手段に格納されることが好ましい。
【００２２】
前記ローカルメモリに固定される前記データを格納するための複数の領域を考え、該領域のうち１つの領域に、残りの領域に格納される前記データの和を格納することが好ましい。
【００２３】
また本発明は、中央演算処理装置と、前記中央演算処理装置に接続されるローカルメモリと、前記中央演算処理装置にメインバスを介して接続される記憶手段と、を具備するストレージキャッシング型コンピュータを、前記ローカルメモリは、一時的に保存するキャッシュデータを固定する一部領域を有し、前記中央演算処理装置は、前記記憶手段に記憶されたデータの番号毎に、一定のサンプリング時間に前記記憶手段にアクセスされる前記データの頻度についてサンプリングし、前記サンプリングされた前記データの頻度が、前記ローカルメモリの前記一部領域に一時的に保存する前記キャッシュデータを固定する固定条件に適合する場合には、該当する番号の前記データを前記ローカルメモリの前記一部領域に固定するように、機能させることを特徴とするストレージキャッシング型コンピュータプログラムを提供する。
【００２４】
前記ローカルメモリに固定される前記データを格納するための複数の領域を考え、該領域のうち１つの領域に、残りの領域に格納される前記データの和を格納することが好ましい。
【００２５】
また本発明は、中央演算処理装置と、前記中央演算処理装置に接続されるローカルメモリと、前記中央演算処理装置にメインバスを介して接続される記憶手段と、を具備するストレージキャッシング型コンピュータを、前記ローカルメモリは、一時的に保存するキャッシュデータを固定する一部領域を有し、前記中央演算処理装置は、前記記憶手段に記憶されたデータの番号毎に、一定のサンプリング時間に前記記憶手段にアクセスされる前記データの頻度についてサンプリングし、前記サンプリングされた前記データの頻度が、前記ローカルメモリの前記一部領域に一時的に保存する前記キャッシュデータを固定する固定条件に適合する場合には、該当する番号の前記データを前記ローカルメモリの前記一部領域に固定するように、機能させることを特徴とするストレージキャッシング型コンピュータプログラムを記録したコンピュータ読み取り可能記録媒体を提供する。
【００２６】
前記ローカルメモリに固定される前記データを格納するための複数の領域を考え、該領域のうち１つの領域に、残りの領域に格納される前記データの和を格納することが好ましい。
【発明の効果】
【００２７】
以上の構成から成る本発明によると、外部記憶装置や周辺デバイスを含む外部装置の性能に拘わらず、コンピュータ全体の性能を低下させることなく最大限にその性能を発揮でき、高速の検索・処理を行うことができる。また、これらは、半導体メモリ等のデータメモリを新たに搭載又は接続することなく、既存の汎用コンピュータにおいて実現することができる。
【００２８】
また、同時にユーザーについての認証データの監視を行うことができ、他のユーザーからのアクセスを制限して、安全性（セキュリティ）を高めることができる。
【００２９】
また、データの修復を行うことができるデータの保全機能を有するので、データの信頼性を向上させることができる。
【発明を実施するための最良の形態】
【００３０】
本発明は、汎用のマザーボードに実装されＣＰＵ（中央演算処理装置）の演算・処理のために使用されるローカルメモリを用いて、メインバスを介して接続される記憶手段、具体的には外部記憶装置（外部ストレージデバイス）の性能に拘わらず、コンピュータ全体の性能向上（アップ）を実現するものである。つまり、入出力装置やネットワーク等の周辺デバイスから取り込まれて外部記憶装置に記憶されているデータのうち、使用頻度の高いデータを、常にＣＰＵ直近に位置するローカルメモリに記憶させる（保存する、常駐させる、置いておく）。つまり、外部記憶装置に記憶されているデータのうち、ローカルメモリに一時的に保存されるキャッシュデータが使用頻度の高いデータの場合に、このキャッシュデータを固定する。これにより、ＣＰＵの演算・処理工程でローカルメモリへアクセスしてヒットするデータの確率を高め、外部記憶装置へのアクセス時間のロスを無くし、ＣＰＵの性能を最大限に発揮させる。
【００３１】
そして、これは、汎用コンピュータに本発明のストレージキャッシング型コンピュータプログラム（キャッシュドライバ、ソフトウェアプログラム）を搭載することにより、実現される。これにより、ボトルネックを取り除くことができる、ボトルネックレスのコンピュータ構成を有するストレージキャッシング型コンピュータが実現される。
【００３２】
本発明に係るストレージキャッシング型コンピュータプログラム及び当該プログラムを記録したコンピュータ読み取り可能な記録媒体、並びにストレージキャッシング型コンピュータを実施するための最良の形態を実施例に基づいて図面を参照して説明する。
【実施例】
【００３３】
図１は、本発明の実施例に係るストレージキャッシング型コンピュータ３１の構成を模式的に示す図である。ストレージキャッシング型コンピュータ３１は、汎用コンピュータで実現されものであり、具体的には、ＣＰＵ（中央演算処理装置）３２と、ＣＰＵ３２に接続されるローカルメモリ（内部メモリ）３３と、ＣＰＵ３２にメインバス３４を介して接続される記憶手段と、を具備する。さらに詳しく説明すると、ＣＰＵ３２と、半導体メモリ等で実現されるローカルメモリ（内部メモリ）３３とを、マザーボード（図示せず）に実装すると共に、メインバス３４（図１中には、汎用  ＢＵＳと記載されている）を介して、記憶手段である外部記憶装置３５を接続して構成されている。
【００３４】
外部記憶装置３５は、例えばハードディスク等の外部磁気記憶装置であるが、光磁気ディスク、ＲＡＭ、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ−ＲＯＭ、フレキシブルディスク等であってもよい。
【００３５】
メインバス３４には、汎用ＢＵＳ、例えばＰＣＩ  ＢＵＳ等が利用される。外部記憶装置３５とマザーボードとの接続は、ＳＣＳＩやＦＣ（Fiber  Channel）等の一般的な外部インターフェース（ＳＣＳＩ／ＦＣインターフェース）３６を使用して行われる。
【００３６】
さらに、本実施例に係るストレージキャッシング型コンピュータ３１では、メインバス３４に、プリンターインターフェース３７を介して出力手段であるプリンター３８等の周辺デバイスが接続されると共に、ネットワークインターフェースカード３９を介してＬＡＮ等のネットワーク４０に接続される構成である。なお、周辺デバイスには、本実施例のプリンター３８等の出力手段だけでなく、スキャナー等の入力手段も含まれる。本明細書では、外部記憶装置３５や周辺デバイスを含めて外部装置と呼ぶ。
【００３７】
本発明の特徴の一つは、このような汎用のコンピュータで実現されるストレージキャッシング型コンピュータ３１において、記憶手段である外部記憶装置３５にアクセスされる頻度、つまり、使用頻度が高いデータをサンプリングし、サンプリングされたデータを、ＣＰＵ３２に接続されるローカルメモリ３３に常駐させ、このデータを用いて検索・処理を行うことである。要するに、本発明では、ＣＰＵ３２に直結して制御されるローカルメモリ３３に一時的に保存されるキャッシュデータが、外部記憶装置３５にアクセスされる頻度の高いデータの場合に、このキャッシュデータをローカルメモリ３３の一部の領域（一部領域）に常駐させる（固定する）。
【００３８】
このようにして、外部記憶装置３５にアクセスされる頻度（アクセス頻度）の高いデータのみが、キャッシュデータとされて、ローカルメモリ３３の一部領域に固定される。これにより、ＣＰＵ３２による処理の多くが、ローカルメモリ３３内の一部領域に固定された、アクセス頻度の高いデータ（キャッシュデータ）を用いて行われる。このため、従来のように、メインバス４を介して接続されている外部記憶装置３５に対し、ＣＰＵ３２の演算処理工程において、データの要求、格納、処理がその都度行われることが無くなる。従って、外部記憶装置３５の性能に影響されることなく、接続された外部記憶装置３５へのアクセス速度がローカルメモリ３３へのアクセス速度に比べて遅い場合でも、ＣＰＵ３２の検索・処理能力を最大限に発揮させ、ストレージキャッシング型コンピュータ３１全体としての処理速度を大幅に高めることができるのである。
【００３９】
上述したように、本発明では、外部記憶装置３５にアクセスされる頻度の高いデータのみを固定するために、ローカルメモリ３３内の一部領域を利用する。言い換えれば、ローカルメモリ３３は、一時的に保存するキャッシュデータを固定する（常駐させる）一部領域を有している。なお、このようなローカルメモリ３３は、例えば８ＧＢ（ギガバイト）から６４ＧＢ（ギガバイト）の大きさであり、一時的に保存するキャッシュデータを固定するための一部領域を設けるのに十分である。このような大きさのローカルメモリ３３は、現在の汎用コンピュータにおいて用いられているものである。
【００４０】
ローカルメモリ３３内の模式的な領域構成について、さらに具体的に説明する。本発明の実施例に係るローカルメモリ３３には、ＯＳエリア３３ａと、キャッシュドライバエリア３３ｃと、アプリケーションデータエリア３３ｂと、ストレージブロックキャッシュエリア３３ｄとの４つの領域が割り当てられている。
【００４１】
ＯＳエリア３３ａは、ＯＳ（オペレーションシステム）を記憶する領域である。アプリケーションデータエリア３３ｂは、アプリケーションプログラム等を記憶する領域である。
【００４２】
そして、ストレージブロックキャッシュエリア３３ｄは、一時的に保存するキャッシュデータを固定するためのローカルメモリ３３の一部領域である。つまり、ストレージブロックキャッシュエリア３３ｄに、一時的に保存するキャッシュデータとして、外部記憶装置３５にアクセスされる頻度の高いデータのみを専用に常駐させる（固定する）。
【００４３】
キャッシュドライバエリア３３ｃは、ローカルメモリ３３の一部領域であるストレージブロックキャッシュエリア３３ｄに、外部記憶装置３５にアクセスされる頻度の高いデータを固定するという本発明の機能を発揮させるためのストレージキャッシング型コンピュータプログラム（ソフトウェアプログラム、キャッシュドライバ、単にプログラムともいう）が記憶されている領域である。
【００４４】
本実施例の場合、ローカルメモリ３３において、ＯＳエリア３３ａと、アプリケーションデータエリア３３ｂとを除いたエリア（領域）に、キャッシュトライバエリア３３ｃと、ストレージブロックキャッシュエリア３３ｄとが割り当てられている。なお、本実施例の場合のように、アプリケーションデータエリア３３ｂは、必ずしも存在しなくてもよい。
【００４５】
一方、外部記憶装置３５は、ローカルメモリ３３に比べて大容量の記憶手段であり、種々のデータが記憶されている。これらのデータにはブロックアドレスと呼ばれるデータの番号が割り当てられている。つまり、ＳＣＳＩ等のハードディスクで実現される外部記憶装置３５では、セクタ（ハードディスク等の円盤状の外部記憶装置における最小の記録単位）につけた番号を使ってアクセスするが、このセクタを指定する方法としてブロックアドレスという単一のパラメータで指定する。要するに、ブロックアドレスとは、アクセスされる単位ブロック（セクタ）それぞれについて番号を割り当てていき、その番号を指定してアドレスを選ぶときの、単一のパラメータ（番号が割り当てられたセクタ）をいう。
【００４６】
また、外部記憶装置３５には、例えば、Linux  ＯＳ、又はWindows  ＯＳ（ただしWindowsは登録商標）が搭載されている。そして、ＣＰＵ３２がローカルメモリ３３へアクセスする際に、アクセス頻度の多いブロックアドレスに係るデータ（ブロックデータともいう）をストレージブロックキャッシュエリア３３ｄへ固定する（常駐させる）制御を行うための手順や条件、ソフトウェアプログラムが、外部記憶装置３５に記憶されている。なお、ここで、アクセスとは、データの読み出しや書き込みを行うことをいう。
【００４７】
つまり、ＣＰＵ３５に直結して制御される（ＣＰＵ３５配下の）ローカルメモリ３３の一部領域を利用するストレージブロックキャッシュエリア３３ｄに、外部記憶装置３５に格納されたブロックアドレスに係るデータ（ブロックデータ）のうち、読み出し及び書き込み等のアクセス頻度の多いブロックデータを固定するものである。
【００４８】
要するに、ローカルメモリ３３に一時的に保存されるキャッシュデータが、外部記憶装置３５にアクセスされる頻度の高いデータの場合に、このキャッシュデータをローカルメモリ３３の一部の領域（一部領域）であるストレージブロックキャッシュエリア３３ｄに常駐させる（固定する）。
【００４９】
具体的には、外部記憶装置３５に記憶されているブロックデータへのアクセス頻度が、ローカルメモリ３３のストレージブロックキャッシュエリア３３ｄに一時的に保存するキャッシュデータを固定する固定条件に適合する場合に、該当するブロックデータを、ストレージブロックキャッシュエリア３３ｄに固定する。
【００５０】
そして、その固定の条件、つまり、ストレージブロックキャッシュエリア３３ｄに、一時的に保存するキャッシュデータを固定するための固定条件や手順に係るソフトウェアプログラムも、外部記憶装置３５に記憶されている。このように、外部記憶装置３５は、ローカルメモリ３３のストレージブロックキャッシュエリア３３ｄに、キャッシュデータを固定する固定条件を記憶する記憶手段でもある。
【００５１】
なお、本発明の実施例に係るストレージキャッシング型コンピュータ３１で使用される記憶手段、即ち、外部記憶装置３５は、ＳＣＳＩプロトコルで接続されるものであれば良い。そのため、本実施例の外部記憶装置３５では、ＳＣＳＩ接続または、ＦＣ接続により、例えば磁気ディスクを装着できるものである。プリンター３８等の周辺デバイスの接続についても同様に、ＳＣＳＩプロトコルで接続されるものであれば良い。
【００５２】
次に、ローカルメモリ３３のストレージブロックキャッシュエリア３３ｄに、外部記憶装置３５にアクセスされる頻度の高いデータのみを固定するためのＣＰＵ３２の機能について、さらに詳述する。
【００５３】
ＣＰＵ３２は、記憶手段である外部記憶装置３５に記憶されたデータの番号、つまり、ブロックアドレスについて、データの番号（ブロックアドレス）毎に、予め定められた一定のサンプリング時間に、外部記憶装置３５にアクセスされるデータの頻度についてサンプリングする。
【００５４】
具体的に説明すると、ＣＰＵ３２は、予め定められた一定のサンプリング時間に、外部記憶装置３５にアクセスがあったブロックデータの番号、つまり、ブロックアドレスについて、ブロックアドレス毎に、そのアクセスの頻度（回数）をカウントする。そして、サンプリング時間毎のブロックデータの使用状態（アクセス頻度）の履歴をとる。つまり、サンプリング時間毎に、アクセスされるブロックデータのブロックアドレスについて、アクセスの頻度（回数）の履歴をとる。
【００５５】
履歴をとることにより、予め設定された使用頻度（アクセス頻度、アクセスの回数）以上に使用されたブロックデータのみを抽出する。抽出されたブロックデータ、つまり、上記のような固定条件に適合したブロックデータは、ローカルメモリ３３のストレージブロックキャッシュエリア３３ｄで固定（常駐）される。
【００５６】
このように、サンプリングされたデータ（要するにブロックデータ）のアクセスされる頻度が、予め設定された使用頻度以上であるという、キャッシュデータを固定する固定条件に適合する場合に、該当する番号のデータ（ブロックデータ）、を抽出し、ストレージブロックキャッシュエリア３３ｄに固定する。そして以後、ストレージブロックキャッシュエリア３３ｄに固定されたブロックデータを固定メモリーとして運用する。
【００５７】
そして、次のサンプリング時間に新たにサンプリングされ、固定条件に適合したブロックデータが、キャッシュデータとしてストレージブロックキャッシュエリア３３ｄに固定される。このようにして、高頻度のアクセスが行われるブロックデータのサンプリングは、その後も継続して行われ、常にアクセス頻度の高いデータのみが、ローカルメモリ３３内の一部領域であるストレージブロックキャッシュエリア３３ｄに固定される（常駐される）。
【００５８】
ブロックデータを抽出する際、使用頻度により例えば２段階に分けてブロックデータを抽出することが考えられる。例えば、使用頻度の最も多いブロックデータの範囲（グループ）（Hot Zone）と２番目に使用頻度の多いブロックデータの範囲（グループ）（Cold Zone）とに分けて抽出する。
【００５９】
アクセス頻度の高さに応じてブロックデータを２つのグループに分類して抽出することにより、アクセス頻度の高いブロックデータについての確からしさがより一層高められ、ストレージブロックキャッシュエリア３３ｄに固定されたブロックデータについてのＣＰＵ３２によるアクセスのヒット率をより効率的に高めることができる。
【００６０】
常にアクセス頻度の高いデータのみが、ストレージブロックキャッシュエリア３３ｄに固定されることにより、ＣＰＵ３２による処理の多くが、ローカルメモリ３３内のストレージブロックキャッシュエリア３３ｄに固定されたデータを用いて行われるため、外部記憶装置３５に頻繁にアクセスされない。このように、ＣＰＵ３２は、外部記憶装置３５に頻繁にアクセスしなくてもよいので、メインバス３４を介して接続された外部記憶装置３５の処理速度が遅い場合でも、外部記憶装置３５にアクセスすることによる大きな待ち時間が生じることがなく、ＣＰＵ３２の性能を最大限に発揮でき、迅速な検索、処理を行うことができる。
【００６１】
要するに、ＣＰＵ３２による処理の多くが、ローカルメモリ３３内で行われるため、メインバス３４を介して接続された外部記憶装置３５に、ＣＰＵ３２の検索時間が影響されることがない。このため、ストレージキャッシング型コンピュータ３１全体としての処理速度を大幅に高めることができるのである。
【００６２】
また、本発明のストレージキャッシング型コンピュータ３１において、ローカルメモリ３３のストレージブロックキャッシュエリア３３ｄ内のデータについて書き換えが行われ、外部記憶装置３５への書き換えが必要になる場合がある。このような場合において、リード方式、ライトバック方式、ライトスルー方式等、どんな書き換え方式が用いられようとも、ローカルメモリ３３のストレージブロックキャッシュエリア３３ｄには、常に使用頻度の高いデータが固定されている。このため、ＣＰＵ３２の性能を最大限に発揮させてストレージキャッシング型コンピュータ３１全体としての処理速度を大幅に高めるという本発明の効果は、変わらずに発揮される。
【００６３】
特に本発明のストレージキャッシング型コンピュータ３１は、上述した固定条件や手順を組み込んだソフトウェアプログラムの根幹をなす専用アルゴリズム、つまり、本発明のストレージキャッシング型コンピュータプログラム（キャッシュドライバ、キャッシュメモリドライバーソフトウエア）により、その機能を発揮する。即ち、本発明のストレージキャッシング型コンピュータプログラムにより、一定のサンプリング時間を設定し（例えば１分から２４時間の間でサンプリング時間を設定することが考えられる）、必要なデータ（ブロックデータ）のみを抽出してローカルメモリ３３の一部領域であるストレージブロックキャッシュエリア３３ｄに常駐させ固定化できるものである。
【００６４】
要するに、本発明のストレージキャッシング型コンピュータ３１では、ＣＰＵ３２に、上述したサンプリング及びサンプリングしたデータ（ブロックデータ）を固定する機能を発揮させるために、専用のソフトウェアプログラムが搭載される。このソフトウェアプログラムが、本発明のストレージキャッシング型コンピュータプログラムであり、このストレージキャッシング型コンピュータプログラムを記録したコンピュータ読み取り可能記録媒体として、例えば、フレキシブルディスク、ハードディスク、ＭＯ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ―ＲＯＭ等を用いることができる。
【００６５】
本発明のストレージキャッシング型コンピュータプログラムは、例えばLinux  ＯＳ、又は、Windows  ＯＳ(ただしwindowsは登録商標)が搭載されたストレージキャッシング型コンピュータ３１の環境の下で動作する。そして、本発明のストレージキャッシング型コンピュータプログラムと同時に、汎用のアプリケーションソフトウェアプログラムを動作させることにより、ストレージキャッシング型コンピュータ３１全体としての性能を大幅に高めることが可能となる。
【００６６】
なお、上記本発明のソフトウェアプログラムを動作（機能）させるために、汎用のハードウェア等の外部記憶装置３５があればよく、特殊な外部記憶装置等は必要とされない。従って、本発明のストレージキャッシング型コンピュータプログラムをインストールするだけで、本発明のストレージキャッシング型コンピュータ３１を実現できる。
【００６７】
このようにして実現されるストレージキャッシング型コンピュータ３１の動作では、外部記憶装置３５に格納され予め設定された固定条件や手順に基づいてＣＰＵ３２により演算・処理が行われるものであるが、サンプリング時間は、初期設定において調整できるような構成（具体的には、上記固定条件や手順のストレージキャッシング型コンピュータプログラム構成で初期設定可能なように組み込む）とすることができる。
【００６８】
したがって、従来の半導体ディスク装置（ＳＳＤ：Solid State Disk）を使用する技術のように、事前に運用毎に使用者がアクセス頻度の高いデータを書き込む作業等をいちいちしなくても、本発明では、自動的にアクセス頻度の高いデータの書き換え作業が行われる（自己学習機能を有する）ので、大容量、高速化データの検索要請にも十分対処可能である。
【００６９】
そして、本発明のストレージキャッシング型コンピュータ３１によれば、どのような運用形態で利用する場合であっても、また運用するデータのタイプ（データの大きさ、データの種類等）にかかわらず、上述した本発明の効果を発揮させることができる。具体的には、例えば、メールの送受信等のように主にデータの送受信を行うような運用形態（ＩＯ集中型）、演算を行うような運用形態（演算型）、又は、データを検索するような運用形態（検索型）で利用するか否かに拘わらず、ストレージキャッシング型コンピュータ３１の性能を低下させることなく、ＣＰＵ３２の検索・処理能力を最大限に発揮させることができる。
【００７０】
本発明により、大量の検索時においてもストレージキャッシング型コンピュータ３１全体の性能を最大限に発揮させることができるので、インターネットでのｗｅｂページ検索や、データベースを使用するデータマイニングでの運用性能等を高めることができる。
【００７１】
また、本発明のストレージキャッシング型コンピュータ３１では、汎用の外部記憶装置３５が使用されており、例えば、イーサネット（Ethernet）（ただし、イーサネット、Ethernetは登録商標）と呼ばれるＬＡＮ方式やインフィニバンド（Infiniband）と呼ばれるインターフェース技術を用いた外部ネットワークにも接続することができる。従って、外部ネットワークから見た場合の本発明のストレージキャッシング型コンピュータ３１は、非常にデータレスポンスの高いコンピュータシステムとして写ることになる。
【００７２】
そして、ストレージキャッシング型コンピュータ３１が頻繁にネットワークを介して他のコンピュータとの通信を行うような場合、コンピュータ全体の性能を向上させる点で、本発明が非常に効果的なものであることが容易にわかる。具体的には、ストレージキャッシング型コンピュータ３１を例えばＩＯ集中型の運用形態で使用する場合、従来のコンピュータの数倍から１００倍程度の処理能力の速さを発揮する。
【００７３】
なお、上記した本発明のストレージキャッシング型コンピュータプログラム（ソフトウェアプログラム、キャッシュアルゴリズム）の動作は、ＣＰＵ３２の一つの処理プロセスとして実行されるものである、つまり、ＣＰＵ３２の使用率は、本発明のストレージキャッシング型コンピュータプログラム（ソフトウェアプログラム）分だけ使用されることになる。しかし、今日、汎用されているコンピュータのＣＰＵの演算能力は十分高いもの（例えばIntel Xeon CPU 2.8GHz）であり、このような今日のＣＰＵを採用した場合、それほど大きなＣＰＵに対する負荷にはならない。
【００７４】
これに比べて、外部記憶装置３５からのデータを適時にローカルメモリ３３の一部領域に固定する（常駐する）ことにより、データのアクセス処理に対するスピードを高める方が、ストレージキャッシング型コンピュータ３１全体としての処理の効率を高めることができる点で、遥かに有効である。
【００７５】
また、本発明に係るストレージキャッシングコンピュータ３１は、汎用的なハードウェア構成を利用できるので、常にその時点での最新性能を有するＣＰＵ、ローカルメモリ、Ｉ／Ｏ、メインバス等のハードウェア資源を使用でき、時代の変化に容易に対応することができる。 
【００７６】
また、本発明に係るストレージキャッシングコンピュータ３１では、一定のサンプリング時間内でデータの使用状態の履歴をとり、予め定められた頻度以上に使用されたデータのみを抽出して、ローカルメモリ３３の一部領域であるストレージブロックキャッシュエリア３３ｄで固定化して常駐させ、その後の演算・処理において高いデータヒット率を実現するものである。このようなストレージキャッシング型コンピュータ３１において、データは、ブロックアドレス（ブロックデータ番号）で管理されており、ブロックアドレスに係るデータ（ブロックデータ）を一つの単位として管理することで効率が図られている。
【００７７】
本発明のストレージキャッシング型コンピュータ３１は、上述した本発明のストレージキャッシング型コンピュータプログラム（ソフトウェアプログラム）を搭載することにより、機能させるものである。そして、このような機能を発揮させる本発明のストレージキャッシング型コンピュータプログラム（ソフトウェアプログラム）は、既に述べたように、サンプリングすることにより自動的にアクセス頻度の多いデータの書き換え作業を行うという点で自己学習機能を有する（自己学習型の）キャッシュドライバである。
【００７８】
このような本発明のストレージキャッシング型コンピュータプログラム（ソフトウェアプログラム）が搭載されたストレージキャッシング型コンピュータ３１において、従来から使用されているＯＳ下で動作する汎用のアプリケーションプログラムを実行させる。すると、汎用のアプリケーションプログラムが実行される過程で、本発明のストレージキャッシング型コンピュータプログラム（ソフトウェアプログラム）の存在は意識されることなく、使用頻度の高いブロックデータを、上記自動学習機能によって適時にローカルメモリ３３のストレージキャッシングブロックエリア（キャッシュ領域）３３ｄに固定することができる。このように、汎用のアプリケーションプログラムを、何ら制限無しに動作させることが可能である。
【００７９】
（セキュリティ機能）
本発明では、ＣＰＵ３２は、外部記憶装置３５に格納されたブロックデータについて、そのアクセス頻度をサンプリングするために、ブロックデータへの読み出しや書き込み等のアクセスを監視している。本発明のこの機能を利用して、外部記憶装置３５にアクセスするユーザーの電子認証を行うことができる。
【００８０】
つまり、外部記憶装置３５にアクセスできるユーザーについての認証（パスワード）に相当するデータ（認証データ）の取り決めを予めしておく。要するに、この認証データをブロックデータの一つとして外部記憶装置３５に格納しておく。ＣＰＵ３２はブロックデータへのアクセスを監視する際に、認証データの監視（確認）も行うことが可能である。したがって、ＣＰＵ３２は、外部記憶装置３５へのアクセス時に、認証データの確認を行い、認証データが異なる他のユーザーからのアクセスを制限することが可能となる。これは、ネットワーク上にある他のユーザーのコンピュータからストレージキャッシング型コンピュータ３１にアクセスしてきた場合、外部記憶装置３５内に認証データがあるユーザーのみが、外部記憶装置３５内のデータにアクセス出来るように制御できるものである。
【００８１】
従来のコンピュータではこのような認証データの確認を行うことはできず、管理・セキュリティ専用のソフトウェアプログラムを導入して監視するしかなかった。これに比べて、本発明では、ブロックデータへのアクセスの監視と、認証データの確認によるユーザーのアクセス権限の管理・制御とが同時に行えるという効果を有する。
【００８２】
（データ保全機能）
本発明のストレージキャッシング型コンピュータ３１及びこれに搭載される本発明のストレージキャッシング型コンピュータプログラム（ソフトウェアプログラム）では、既に述べたように、自動的にアクセス頻度の多いデータの書き換え作業を行い、ローカルメモリ３３内に常に使用頻度の高いデータを固定する特徴に加えて、ローカルメモリ３３に固定されたデータの修復（例えば最大８ビットまで）を行うことができる機能（データの保全機能）を有する。
【００８３】
具体的には、ローカルメモリ３３内に固定されるデータを格納するための複数（例えば８つ）の領域（以下、メモリスロットという）を考える。１つのメモリスロットは、例えば１ビットのデータを格納する領域である。これらのメモリスロットのうち、１つのメモリスロットに、残りの各メモリスロットに格納されたデータの和（ＳＵＭ値）を専用に格納する（データの和が専用に格納されるメモリスロットをパリティメモリモジュールということにする）。
【００８４】
こうしておくことにより、複数のメモリスロットのうち、もし仮に１つのメモリスロットに格納されたデータが壊れても（データ化けが発生しても）、パリティメモリモジュールに格納されたデータの和（ＳＵＭ値）から、壊れていない残りのメモリスロットに格納されたデータの値を全て差し引けば、壊れたデータの値がわかる。つまり、壊れたデータを修復することが可能となる。
【００８５】
このようにして、従来に比べて大容量化されているローカルメモリ３３に固定されるデータの信頼性を向上させることができる。このデータ保全機能により、ローカルメモリ３３において、ハードウェア的な不良が１つのメモリスロットに存在する場合でも、他のメモリスロットから不良のメモリスロットに格納されたデータを算出できる利点を有する。
【００８６】
また、本発明のストレージキャッシング型コンピュータ３１及びこれに搭載される本発明のストレージキャッシング型コンピュータプログラム（ソフトウェアプログラム）では、外部記憶装置３５からローカルメモリ３３のストレージブロックキャッシュエリア３３ｄにデータを書き込む際に、一度に書き込み可能なデータのサイズを、例えば４ＫＢから２ＭＢの範囲で設定変更することができる、先読み技術（Read a head data size）と呼ばれる技術を採用している。ここでのデータは、複数のブロックデータから構成されるあるまとまった大きさのリードデータエリアの概念である。
【００８７】
上記先読み技術により、外部記憶装置３５からローカルメモリ３３に一度に書き込めるデータのサイズを増やすことができる。つまり、使用頻度の高いブロックデータを外部記憶装置３５からローカルメモリ３３内に書き込む際に、この使用頻度の高いブロックデータを含むデータを、より高い確率でローカルメモリ３３内に書き込むことができる。したがって、既に述べたローカルメモリ３３内に使用頻度の高いデータを固定する技術と、この先読み技術とが相まって、ローカルメモリ３３におけるデータヒット率をより一層効率的に高めることができる相乗効果を有する。
【００８８】
以上、本発明に係るストレージキャッシング型コンピュータプログラム及び当該プログラムを記録したコンピュータ読み取り可能な記録媒体、並びにストレージキャッシング型コンピュータの最良の形態を実施例に基づいて説明したが、本発明は特にこのような実施例に限定されることなく、特許請求の範囲記載の技術的事項の範囲内でいろいろな実施例があることはいうまでもない。
【産業上の利用可能性】
【００８９】
本発明の活用例として、インターネット等のサーバーにおいて使用されるサーバーコンピュータのみならず、高速並列演算コンピュータ、パーソナルコンピュータ等、様々な汎用コンピュータに、広く適用することが可能である。
【図面の簡単な説明】
【００９０】
【図１】本発明の実施例に係るストレージキャッシング型コンピュータの構成を模式的に示す図である。
【図２】従来のコンピュータの構成を模式的に示す図である。
【符号の説明】
【００９１】
１    コンピュータ
２、３２    ＣＰＵ（中央演算処理装置）
３、３３    ローカルメモリ
３ａ、３３ａ    ＯＳエリア
３ｂ、３３ｂ    アプリケーションエリア
３３ｃ    キャッシュドライバエリア
３３ｄ    ストレージブロックキャッシュエリア
４、３４    メインバス
５、３５    可動型データディスク装置？
６、３６    外部インターフェース
７、３７    プリンターインターフェース
８、３８    プリンター
９、３９    ネットワークインターフェースカード
１０、４０    ネットワーク
３１    ストレージキャッシング型コンピュータ
【図１】
2005173637.tif 000003
【図２】
2005173637.tif 000004