(57)【特許請求の範囲】
【請求項１】
１以上のプログラムを実行可能なＣＰＵと、
前記１以上のプログラムと、前記ＣＰＵにおいて前記１以上のプログラムが実行されることにより生成される１以上のプロセスが扱うデータとを記憶可能な一次記憶部と、
前記一次記憶部よりもアクセス速度が低速であり、前記１以上のプログラムおよび前記データを記憶可能な二次記憶部と、
前記１以上のプロセスが前記一次記憶部と前記二次記憶部との間で遣り取りする前記データをキャッシング可能なキャッシュメモリーと、
前記プロセスごとに定められ、前記データのキャッシングが必要か否かを示すキャッシング要否情報に基づいて、前記データのキャッシングを制御するキャッシュコントローラーと
を備えた情報処理装置であって、
前記キャッシュコントローラーは、
前記一次記憶部に記憶された前記データを前記キャッシュメモリーに読み込んだ際に、
前記読み込んだデータに当該データを読み込んだプロセスのプロセスＩＤの情報を付加する
情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記キャッシュコントローラーは、
前記キャッシング要否情報および前記プロセスＩＤの情報が紐付けられて保存されたキャッシュ管理テーブルを用いてキャッシングを制御する
情報処理装置。
【請求項３】
キャッシュコントローラーが、ＣＰＵにおいて１以上のプログラムが実行されることにより生成される１以上のプロセスが一次記憶部と二次記憶部との間で遣り取りする前記データをキャッシング可能なキャッシュメモリーに対して、前記プロセスごとに定められ、前記データのキャッシングが必要か否かを示すキャッシング要否情報に基づいて、前記データのキャッシングを制御し、
前記一次記憶部に記憶された前記データを前記キャッシュメモリーに読み込んだ際に、
前記読み込んだデータに当該データを読み込んだプロセスのプロセスＩＤの情報を付加する
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キャッシュを介して補助記憶部とデータを遣り取りする情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
一般的な情報処理装置では、処理速度が相対的に遅い補助記憶装置とのデータの遣り取りにおいて、性能を向上させるため、キャッシュシステムが用いられてきた。
【０００３】
例えば、特許文献１において開示されている技術では、磁気ディスク装置に対する一連の読み出し要求が発生すると、磁気ディスク装置から読み出されたデータが、ＯＳ（Operating System）やアプリケーションプログラムなど、データを要求したプロセスに渡されると共に、ディスクキャッシュとなる半導体ディスク装置にも格納される。
【０００４】
そして、次に、磁気ディスク装置に対する一連の読み出し要求が発生した際、同一のデータが半導体ディスク装置に存在する場合は、データの読み出しは半導体ディスク装置から行われる。その為、高速にデータを読み出すことが可能になる。
【０００５】
半導体ディスク装置はフラッシュメモリーで構成されている為、保存されているキャッシュデータは、システムの電源切断および再起動を経ても消失せず有効なままとなる。このように、システムの電源が切断されても、それまでに構築されたヒット率の高いディスクキャッシュの内容を有効に維持することが出来る。
【０００６】
なお、一般的に、ＯＳは、キャッシュに用いるメモリーに余裕がある限り、補助記憶装置上に作成されたファイルシステムから読み込んだデータをキャッシュする。そして、キャッシュメモリーに余裕が無くなると、例えばＬＲＵ（Least Recently Used）アルゴリズムによりアクセス時刻が最も古いキャッシュデータが削除された後、新しいデータがキャッシュに読み込まれる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平１０−４０１７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
キャッシュアルゴリズムとして、例えば上述したＬＲＵアルゴリズムを用いると、キャッシュには最近アクセスしたデータが残ることになる。しかし、最近アクセスしたデータが、将来アクセスされる必要なデータになるとは限らないので、なるべく多くのデータをキャッシュしておくことが望ましい。
【０００９】
しかし、キャッシュとして用いるメモリーの容量に対する制限が厳しい組み込み機器では、少ないメモリー容量に対して多くのキャッシュデータを扱うことになるので、キャッシュデータの読み込みやキャッシュアウトが頻繁に発生してしまう可能性が高い。
【００１０】
キャッシュメモリーが一杯の状態で新たなデータのキャッシングが発生すると、既にキャッシュ上にあるデータをキャッシュアウトしなければならないが、この処理は時間的コストが高い処理である。そのため、この処理が発生すると組み込み機器の性能に悪影響を与えてしまう可能性が高い。
【００１１】
以上のような事情に鑑み、本発明の目的は、キャッシュアルゴリズムを最適化することにより性能を向上させることが出来る組み込み機器および情報処理方法を提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明の一形態に係る情報処理装置は、１以上のプログラムを実行可能なＣＰＵと、前記１以上のプログラムと、前記ＣＰＵにおいて前記１以上のプログラムが実行されることにより生成される１以上のプロセスが扱うデータとを記憶可能な一次記憶部と、前記一次記憶部よりもアクセス速度が低速であり、前記１以上のプログラムおよび前記データを記憶可能な二次記憶部と、前記１以上のプロセスが前記一次記憶部と前記二次記憶部との間で遣り取りする前記データをキャッシング可能なキャッシュメモリーと、前記プロセスごとに定められ、前記データのキャッシングが必要か否かを示すキャッシング要否情報に基づいて、前記データのキャッシングを制御するキャッシュコントローラーとを備える。
【００１３】
上記目的を達成するため、本発明の一形態に係る情報処理装置では、前記キャッシュコントローラーは、前記一次記憶部に記憶された前記データを前記キャッシュメモリーに読み込んだ際に、前記読み込んだデータに当該データを読み込んだプロセスのプロセスＩＤの情報を付加する構成でもよい。
【００１４】
上記目的を達成するため、本発明の一形態に係る情報処理装置では、前記キャッシュコントローラーは、前記キャッシング要否情報および前記プロセスＩＤの情報が紐付けられて保存されたキャッシュ管理テーブルを用いてキャッシングを制御する構成でもよい。
【００１５】
上記目的を達成するため、本発明の一形態に係る情報処理方法では、キャッシュコントローラーが、ＣＰＵにおいて１以上のプログラムが実行されることにより生成される１以上のプロセスが一次記憶部と二次記憶部との間で遣り取りする前記データをキャッシング可能なキャッシュメモリーに対して、前記プロセスごとに定められ、前記データのキャッシングが必要か否かを示すキャッシング要否情報に基づいて、前記データのキャッシングを制御する。
【発明の効果】
【００１６】
以上のように、本発明によれば、キャッシュアルゴリズムを最適化することにより組み込み機器の性能を向上させることが出来る。
【図面の簡単な説明】
【００１７】
【図１】本実施形態にかかる組み込み機器１０の構成図である。
【図２】キャッシュ管理テーブルの構成を示す構成図である。
【図３】本実施形態にかかる組み込み機器１０における、データのキャッシング処理について説明するためのフローチャートである。
【発明を実施するための形態】
【００１８】
［概要］
まず、本実施形態にかかる組み込み機器の概要を説明する。
【００１９】
本実施形態にかかる組み込み機器では、補助記憶部からキャッシュメモリーに読み込まれるデータのうち、どのデータがキャッシングされるべきデータであり、どのデータがキャッシング不要なデータであるかを判別する方法が追加されている。
【００２０】
キャッシングの要否は、補助記憶部からデータを読み込むプロセスごとに、キャッシングの要否情報を持たせることにより行う。すなわち、本実施形態の組み込み機器では、プロセスに割り振られるプロセスＩＤにキャッシング要否情報が紐付けられた形で、キャッシュ管理テーブルとして保持される。キャッシングシステムは、このキャッシング要否情報に基づいて、補助記憶部からキャッシュメモリーに読み込んだデータをキャッシュするか、または直ちに削除する。
【００２１】
このように、本実施形態にかかる組み込み機器では、補助記憶部からキャッシュに読み込まれたデータのうち、キャッシングが不要なデータを直ちに削除するので、キャッシュメモリーが一杯になりにくくする事が出来る。
【００２２】
そして、キャッシュメモリーが一杯になりにくいので、時間的コストのかかるキャッシュアウト処理を行う機会を減らすことが出来、組み込み機器全体の性能に対する悪影響を低減することが出来る。
【００２３】
［構成］
次に、本実施形態にかかる組み込み機器の構成について説明する。図１は、本実施形態にかかる組み込み機器１０の構成図である。なお、ここでいう組み込み機器１０は、主に、ＭＦＰ（Multifunction Peripheral）などの画像形成装置に組み込まれることを想定している。
【００２４】
図に示すように、組み込み機器（情報処理装置）１０は、ＣＰＵ（Central Processing Unit）１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory、一次記憶部）１３、補助記憶部（二次記憶部）１７、およびキャッシュコントローラー１９を有し、これら各ブロックがバス１８を介して接続されている。
【００２５】
なお、組み込み機器１０は、操作入力部１４、ネットワークインターフェイス部１５、表示部１６などを備えていてもよいが、これらは組み込み機器１０として必須の構成ではないので、図では点線で示している。
【００２６】
ＲＯＭ１２は、各種の処理を実行するためのファームウェア等の複数のプログラムやデータを固定的に記憶する。
【００２７】
ＲＡＭ１３は、ＣＰＵ１１の作業用領域として用いられ、ＯＳ、実行中の各種アプリケーションプログラム、処理中の各種データを一時的に保持する。なお、ＲＡＭ１３には、補助記憶部１７との間でやり取りするデータをキャッシュするための領域として、キャッシュメモリー１３ａが設けられている。なお、キャッシュメモリー１３ａは、ＲＡＭ１３以外の場所に設けられていてもよい。
【００２８】
また、ＲＡＭ１３には、補助記憶部１７からデータを読み込むプロセスのプロセスＩＤと、そのプロセスで読み込まれたデータをキャッシングするか否かの情報（キャッシング要否情報）との組が保持されたキャッシュ管理テーブル１３ｂが格納される。キャッシュ管理テーブル１３ｂについては後述する。
【００２９】
補助記憶部１７は、例えばＨＤＤ（Hard Disk Drive）や、フラッシュメモリー、その他の不揮発性メモリーである。補助記憶部１７には、ＯＳや各種アプリケーションプログラム、各種データが記憶される。
【００３０】
キャッシュコントローラー１９は、ＲＡＭ１３と補助記憶部１７との間で遣り取りされるデータを、キャッシュメモリー１３ａにキャッシングしたままとするか、キャッシュアウトさせるかを判断し、キャッシングの制御を行う。詳細は後述する。なお、キャッシュコントローラー１９は、図示したように独立したハードウェアとして装備されていてもよいし、プログラムがＣＰＵ１１により実行されることにより実現されてもよい。
【００３１】
ネットワークインターフェイス部１５は、外部と情報の遣り取りを行う為のネットワークと結ばれている。
【００３２】
ＣＰＵ１１は、ＲＯＭ１２や補助記憶部１７に格納された複数のプログラムをＲＡＭ１３に展開し、この展開されたプログラムにしたがって、各部を適宜制御する。
【００３３】
操作入力部１４は、例えばマウス等のポインティングデバイス、キーボード、タッチパネル、その他の操作装置である。
【００３４】
表示部１６は、例えば液晶ディスプレイ、ＥＬ（Electro-Luminescence）ディスプレイ、プラズマディスプレイ、ＣＲＴ（Cathode Ray Tube）ディスプレイ等である。表示部１６は、組み込み機器１０に内蔵されていてもよいし、外部接続されてもよい。
【００３５】
以上、組み込み機器１０の構成について説明した。
【００３６】
［キャッシュ管理テーブルについて］
次に、上述したキャッシュ管理テーブル１３ｂについて説明する。図２は、キャッシュ管理テーブルの構成を示す構成図である。
【００３７】
この図に示すように、キャッシュ管理テーブル１３ｂは、ＣＰＵ１１上で実行されるプロセスのプロセスＩＤと、そのプロセスが補助記憶部１７から読み込んだデータをキャッシュメモリーに保持しておく必要があるか否かを示すキャッシング要否情報とを紐付けて組とし、１つ以上の組によって構成されている。キャッシュ管理テーブルを用いることにより容易にプロセスごとにデータをキャッシングする必要の有無を管理することが出来る。
【００３８】
なお、ここでいうプロセスとは、例えば、画像形成装置に組み込まれる組み込み機器１０の場合、画像処理を行うプロセスや、印刷制御部など画像形成装置内の各デバイスを制御するプロセス、画像形成装置の状態管理を行うプロセスなどのことを言う。
【００３９】
また、キャッシング要否情報へのキャッシング要不要の設定は、プロセスの元になるプログラムを設計した際に、設計者により指定されてもよいし、組み込み機器１０の運用時に、運用者により指定されてもよいし、他のプロセスにより自動的に指定されてもよい。
【００４０】
なお、上記の説明では、キャッシュ管理テーブル１３ｂは、ＲＡＭ１３上に設けられるものとしたが、これに限らず、キャッシュコントローラー１９が参照できる場所であれば、どこに格納されてもよい。
なお、どのようなプロセスがデータをキャッシュする必要があり、どのようなプロセスではデータをキャッシュする必要が無いかは一概には言えない。キャッシングの要否は、設計時や運用時などにおいて、ケースバイケースで設定される。
【００４１】
以上、キャッシュ管理テーブル１３ｂについて説明した。
【００４２】
［処理の流れ］
次に、本実施形態にかかる組み込み機器１０における、データのキャッシング処理について説明する。図３は、本実施形態にかかる組み込み機器１０における、データのキャッシング処理について説明するためのフローチャートである。
【００４３】
まず、ＣＰＵ１１においてプログラムが実行されることにより、プロセスが起動される（ステップＳ１）。起動されたプロセスには、プロセスを一意に識別するためのプロセスＩＤ（Identifier）が割り振られる。
【００４４】
次に、起動された各々のプロセスは、自身のプロセスＩＤおよびキャッシング要否情報をキャッシュ管理テーブル１３ｂに登録する（ステップＳ２）。なお、プロセスＩＤおよびキャッシング要否情報の登録はキャッシュコントローラー１９により行われる構成でもよい。
【００４５】
次に、起動されたプロセスが、必要に応じ、補助記憶部１７からデータを読み込む（ステップＳ３）。読み込むデータは、キャッシュメモリー１３ａに格納される。
【００４６】
次に、キャッシュコントローラー１９が、キャッシュメモリー１３ａ上のデータに、そのデータを読み込んだプロセスのプロセスＩＤの情報を付加する（ステップＳ４）。この時点でキャッシュメモリー１３ａ上のデータにプロセスＩＤ情報を付加することにより、キャッシュメモリー１３ａ上のデータの管理をプロセスＩＤに基づいて容易に行うことが出来る。
【００４７】
次に、キャッシュコントローラー１９は、キャッシュ管理テーブル１３ｂを参照して、データを読み込んだプロセスのキャッシング要否情報を調べる（ステップＳ５）。
【００４８】
次に、キャッシュコントローラー１９は、キャッシング要否情報に基づいて、読み込んだデータのキャッシングが必要か否かを判断する（ステップＳ６）。
【００４９】
キャッシングが不要な場合（ステップＳ６のＮ）、キャッシュコントローラー１９は、当該プロセスのキャッシュデータを破棄する（ステップＳ８）。
【００５０】
キャッシングが必要な場合（ステップＳ６のＹ）、キャッシュコントローラー１９は、当該プロセスのキャッシュデータをキャッシュメモリー１３ａ上に保持する（ステップＳ７）。なお、キャッシュメモリー１３ａ上に保持されたデータは、キャッシュメモリー１３ａが満杯になった場合、ＬＲＵアルゴリズムなどによるキャッシュアウトの対象となる。
【００５１】
以上、本実施形態にかかる組み込み機器１０における、データのキャッシング処理について説明した。
【００５２】
［効果］
本実施形態にかかる組み込み機器では、補助記憶部からキャッシュに読み込んだデータのうち、キャッシングが不要なデータを直ちに削除するので、キャッシュメモリーが一杯になりにくくする事が出来る。
【００５３】
また、キャッシュメモリーが一杯になりにくいので、時間的コストのかかるキャッシュアウトの処理を行う機会を減らすことが出来、組み込み機器全体の性能に対する悪影響を低減することが出来る。
【００５４】
［仮想記憶への応用について］
なお、上記の説明では、本実施形態にかかる情報処理装置は、ファイルシステムとの遣り取りを行うキャッシュシステムとして説明した。しかし、近年、ＯＳでは、ファイルシステムのキャッシュと仮想記憶とを統合的に管理することが行われている。
【００５５】
そのため、いずれのデータをキャッシュするかの情報をプロセスごとに保持させる仕組みを、ページング方式を採用する仮想記憶に応用する事が出来る。そうすると、仮想記憶システムにおいてページフォルトが発生した際などに、ページイン／ページアウトを効率的に行うようにする事が出来る。
【００５６】
［補足事項］
その他、本技術は、上述の実施形態にのみ限定されるものではなく、本技術の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【符号の説明】
【００５７】
１０  …  組み込み機器
１１  …  ＣＰＵ
１２  …  ＲＯＭ
１３  …  ＲＡＭ
１３ａ…  キャッシュメモリー
１３ｂ…  キャッシュ管理テーブル
１４  …  操作入力部
１５  …  ネットワークインターフェイス部
１６  …  表示部
１７  …  補助記憶部
１８  …  バス
１９  …  キャッシュコントローラー
【図１】
0005961642.tif 000002
【図２】
0005961642.tif 000003
【図３】
0005961642.tif 000004