特許第5961642号(P5961642)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 京セラドキュメントソリューションズ株式会社の特許一覧

<>
  • 特許5961642-情報処理装置および情報処理方法 図000002
  • 特許5961642-情報処理装置および情報処理方法 図000003
  • 特許5961642-情報処理装置および情報処理方法 図000004
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5961642
(24)【登録日】2016年7月1日
(45)【発行日】2016年8月2日
(54)【発明の名称】情報処理装置および情報処理方法
(51)【国際特許分類】
   G06F 12/08 20160101AFI20160719BHJP
   G06F 12/12 20160101ALI20160719BHJP
   G06F 12/0868 20160101ALI20160719BHJP
【FI】
   G06F12/08 517B
   G06F12/12 501
   G06F12/08 565
   G06F12/08 501G
   G06F12/08 507Z
   G06F12/08 557
【請求項の数】3
【全頁数】9
(21)【出願番号】特願2014-12020(P2014-12020)
(22)【出願日】2014年1月27日
(65)【公開番号】特開2015-141430(P2015-141430A)
(43)【公開日】2015年8月3日
【審査請求日】2015年11月20日
【早期審査対象出願】
(73)【特許権者】
【識別番号】000006150
【氏名又は名称】京セラドキュメントソリューションズ株式会社
(74)【代理人】
【識別番号】100104215
【弁理士】
【氏名又は名称】大森 純一
(74)【代理人】
【識別番号】100117330
【弁理士】
【氏名又は名称】折居 章
(74)【代理人】
【識別番号】100123733
【弁理士】
【氏名又は名称】山田 大樹
(74)【代理人】
【識別番号】100160989
【弁理士】
【氏名又は名称】関根 正好
(74)【代理人】
【識別番号】100168181
【弁理士】
【氏名又は名称】中村 哲平
(74)【代理人】
【識別番号】100168745
【弁理士】
【氏名又は名称】金子 彩子
(74)【代理人】
【識別番号】100170346
【弁理士】
【氏名又は名称】吉田 望
(74)【代理人】
【識別番号】100176131
【弁理士】
【氏名又は名称】金山 慎太郎
(72)【発明者】
【氏名】五島 諭
【審査官】 後藤 彰
(56)【参考文献】
【文献】 特開2004−110240(JP,A)
【文献】 特開2008−310484(JP,A)
【文献】 特開2007−011580(JP,A)
【文献】 特開2006− 31386(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/12
G06F 12/08
G06F 12/0868
(57)【特許請求の範囲】
【請求項1】
1以上のプログラムを実行可能なCPUと、
前記1以上のプログラムと、前記CPUにおいて前記1以上のプログラムが実行されることにより生成される1以上のプロセスが扱うデータとを記憶可能な一次記憶部と、
前記一次記憶部よりもアクセス速度が低速であり、前記1以上のプログラムおよび前記データを記憶可能な二次記憶部と、
前記1以上のプロセスが前記一次記憶部と前記二次記憶部との間で遣り取りする前記データをキャッシング可能なキャッシュメモリーと、
前記プロセスごとに定められ、前記データのキャッシングが必要か否かを示すキャッシング要否情報に基づいて、前記データのキャッシングを制御するキャッシュコントローラーと
を備えた情報処理装置であって、
前記キャッシュコントローラーは、
前記一次記憶部に記憶された前記データを前記キャッシュメモリーに読み込んだ際に、
前記読み込んだデータに当該データを読み込んだプロセスのプロセスIDの情報を付加する
情報処理装置。
【請求項2】
請求項に記載の情報処理装置であって、
前記キャッシュコントローラーは、
前記キャッシング要否情報および前記プロセスIDの情報が紐付けられて保存されたキャッシュ管理テーブルを用いてキャッシングを制御する
情報処理装置。
【請求項3】
キャッシュコントローラーが、CPUにおいて1以上のプログラムが実行されることにより生成される1以上のプロセスが一次記憶部と二次記憶部との間で遣り取りする前記データをキャッシング可能なキャッシュメモリーに対して、前記プロセスごとに定められ、前記データのキャッシングが必要か否かを示すキャッシング要否情報に基づいて、前記データのキャッシングを制御し、
前記一次記憶部に記憶された前記データを前記キャッシュメモリーに読み込んだ際に、
前記読み込んだデータに当該データを読み込んだプロセスのプロセスIDの情報を付加する
情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、キャッシュを介して補助記憶部とデータを遣り取りする情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
一般的な情報処理装置では、処理速度が相対的に遅い補助記憶装置とのデータの遣り取りにおいて、性能を向上させるため、キャッシュシステムが用いられてきた。
【0003】
例えば、特許文献1において開示されている技術では、磁気ディスク装置に対する一連の読み出し要求が発生すると、磁気ディスク装置から読み出されたデータが、OS(Operating System)やアプリケーションプログラムなど、データを要求したプロセスに渡されると共に、ディスクキャッシュとなる半導体ディスク装置にも格納される。
【0004】
そして、次に、磁気ディスク装置に対する一連の読み出し要求が発生した際、同一のデータが半導体ディスク装置に存在する場合は、データの読み出しは半導体ディスク装置から行われる。その為、高速にデータを読み出すことが可能になる。
【0005】
半導体ディスク装置はフラッシュメモリーで構成されている為、保存されているキャッシュデータは、システムの電源切断および再起動を経ても消失せず有効なままとなる。このように、システムの電源が切断されても、それまでに構築されたヒット率の高いディスクキャッシュの内容を有効に維持することが出来る。
【0006】
なお、一般的に、OSは、キャッシュに用いるメモリーに余裕がある限り、補助記憶装置上に作成されたファイルシステムから読み込んだデータをキャッシュする。そして、キャッシュメモリーに余裕が無くなると、例えばLRU(Least Recently Used)アルゴリズムによりアクセス時刻が最も古いキャッシュデータが削除された後、新しいデータがキャッシュに読み込まれる。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平10−40170号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
キャッシュアルゴリズムとして、例えば上述したLRUアルゴリズムを用いると、キャッシュには最近アクセスしたデータが残ることになる。しかし、最近アクセスしたデータが、将来アクセスされる必要なデータになるとは限らないので、なるべく多くのデータをキャッシュしておくことが望ましい。
【0009】
しかし、キャッシュとして用いるメモリーの容量に対する制限が厳しい組み込み機器では、少ないメモリー容量に対して多くのキャッシュデータを扱うことになるので、キャッシュデータの読み込みやキャッシュアウトが頻繁に発生してしまう可能性が高い。
【0010】
キャッシュメモリーが一杯の状態で新たなデータのキャッシングが発生すると、既にキャッシュ上にあるデータをキャッシュアウトしなければならないが、この処理は時間的コストが高い処理である。そのため、この処理が発生すると組み込み機器の性能に悪影響を与えてしまう可能性が高い。
【0011】
以上のような事情に鑑み、本発明の目的は、キャッシュアルゴリズムを最適化することにより性能を向上させることが出来る組み込み機器および情報処理方法を提供することにある。
【課題を解決するための手段】
【0012】
上記目的を達成するため、本発明の一形態に係る情報処理装置は、1以上のプログラムを実行可能なCPUと、前記1以上のプログラムと、前記CPUにおいて前記1以上のプログラムが実行されることにより生成される1以上のプロセスが扱うデータとを記憶可能な一次記憶部と、前記一次記憶部よりもアクセス速度が低速であり、前記1以上のプログラムおよび前記データを記憶可能な二次記憶部と、前記1以上のプロセスが前記一次記憶部と前記二次記憶部との間で遣り取りする前記データをキャッシング可能なキャッシュメモリーと、前記プロセスごとに定められ、前記データのキャッシングが必要か否かを示すキャッシング要否情報に基づいて、前記データのキャッシングを制御するキャッシュコントローラーとを備える。
【0013】
上記目的を達成するため、本発明の一形態に係る情報処理装置では、前記キャッシュコントローラーは、前記一次記憶部に記憶された前記データを前記キャッシュメモリーに読み込んだ際に、前記読み込んだデータに当該データを読み込んだプロセスのプロセスIDの情報を付加する構成でもよい。
【0014】
上記目的を達成するため、本発明の一形態に係る情報処理装置では、前記キャッシュコントローラーは、前記キャッシング要否情報および前記プロセスIDの情報が紐付けられて保存されたキャッシュ管理テーブルを用いてキャッシングを制御する構成でもよい。
【0015】
上記目的を達成するため、本発明の一形態に係る情報処理方法では、キャッシュコントローラーが、CPUにおいて1以上のプログラムが実行されることにより生成される1以上のプロセスが一次記憶部と二次記憶部との間で遣り取りする前記データをキャッシング可能なキャッシュメモリーに対して、前記プロセスごとに定められ、前記データのキャッシングが必要か否かを示すキャッシング要否情報に基づいて、前記データのキャッシングを制御する。
【発明の効果】
【0016】
以上のように、本発明によれば、キャッシュアルゴリズムを最適化することにより組み込み機器の性能を向上させることが出来る。
【図面の簡単な説明】
【0017】
図1】本実施形態にかかる組み込み機器10の構成図である。
図2】キャッシュ管理テーブルの構成を示す構成図である。
図3】本実施形態にかかる組み込み機器10における、データのキャッシング処理について説明するためのフローチャートである。
【発明を実施するための形態】
【0018】
[概要]
まず、本実施形態にかかる組み込み機器の概要を説明する。
【0019】
本実施形態にかかる組み込み機器では、補助記憶部からキャッシュメモリーに読み込まれるデータのうち、どのデータがキャッシングされるべきデータであり、どのデータがキャッシング不要なデータであるかを判別する方法が追加されている。
【0020】
キャッシングの要否は、補助記憶部からデータを読み込むプロセスごとに、キャッシングの要否情報を持たせることにより行う。すなわち、本実施形態の組み込み機器では、プロセスに割り振られるプロセスIDにキャッシング要否情報が紐付けられた形で、キャッシュ管理テーブルとして保持される。キャッシングシステムは、このキャッシング要否情報に基づいて、補助記憶部からキャッシュメモリーに読み込んだデータをキャッシュするか、または直ちに削除する。
【0021】
このように、本実施形態にかかる組み込み機器では、補助記憶部からキャッシュに読み込まれたデータのうち、キャッシングが不要なデータを直ちに削除するので、キャッシュメモリーが一杯になりにくくする事が出来る。
【0022】
そして、キャッシュメモリーが一杯になりにくいので、時間的コストのかかるキャッシュアウト処理を行う機会を減らすことが出来、組み込み機器全体の性能に対する悪影響を低減することが出来る。
【0023】
[構成]
次に、本実施形態にかかる組み込み機器の構成について説明する。図1は、本実施形態にかかる組み込み機器10の構成図である。なお、ここでいう組み込み機器10は、主に、MFP(Multifunction Peripheral)などの画像形成装置に組み込まれることを想定している。
【0024】
図に示すように、組み込み機器(情報処理装置)10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory、一次記憶部)13、補助記憶部(二次記憶部)17、およびキャッシュコントローラー19を有し、これら各ブロックがバス18を介して接続されている。
【0025】
なお、組み込み機器10は、操作入力部14、ネットワークインターフェイス部15、表示部16などを備えていてもよいが、これらは組み込み機器10として必須の構成ではないので、図では点線で示している。
【0026】
ROM12は、各種の処理を実行するためのファームウェア等の複数のプログラムやデータを固定的に記憶する。
【0027】
RAM13は、CPU11の作業用領域として用いられ、OS、実行中の各種アプリケーションプログラム、処理中の各種データを一時的に保持する。なお、RAM13には、補助記憶部17との間でやり取りするデータをキャッシュするための領域として、キャッシュメモリー13aが設けられている。なお、キャッシュメモリー13aは、RAM13以外の場所に設けられていてもよい。
【0028】
また、RAM13には、補助記憶部17からデータを読み込むプロセスのプロセスIDと、そのプロセスで読み込まれたデータをキャッシングするか否かの情報(キャッシング要否情報)との組が保持されたキャッシュ管理テーブル13bが格納される。キャッシュ管理テーブル13bについては後述する。
【0029】
補助記憶部17は、例えばHDD(Hard Disk Drive)や、フラッシュメモリー、その他の不揮発性メモリーである。補助記憶部17には、OSや各種アプリケーションプログラム、各種データが記憶される。
【0030】
キャッシュコントローラー19は、RAM13と補助記憶部17との間で遣り取りされるデータを、キャッシュメモリー13aにキャッシングしたままとするか、キャッシュアウトさせるかを判断し、キャッシングの制御を行う。詳細は後述する。なお、キャッシュコントローラー19は、図示したように独立したハードウェアとして装備されていてもよいし、プログラムがCPU11により実行されることにより実現されてもよい。
【0031】
ネットワークインターフェイス部15は、外部と情報の遣り取りを行う為のネットワークと結ばれている。
【0032】
CPU11は、ROM12や補助記憶部17に格納された複数のプログラムをRAM13に展開し、この展開されたプログラムにしたがって、各部を適宜制御する。
【0033】
操作入力部14は、例えばマウス等のポインティングデバイス、キーボード、タッチパネル、その他の操作装置である。
【0034】
表示部16は、例えば液晶ディスプレイ、EL(Electro-Luminescence)ディスプレイ、プラズマディスプレイ、CRT(Cathode Ray Tube)ディスプレイ等である。表示部16は、組み込み機器10に内蔵されていてもよいし、外部接続されてもよい。
【0035】
以上、組み込み機器10の構成について説明した。
【0036】
[キャッシュ管理テーブルについて]
次に、上述したキャッシュ管理テーブル13bについて説明する。図2は、キャッシュ管理テーブルの構成を示す構成図である。
【0037】
この図に示すように、キャッシュ管理テーブル13bは、CPU11上で実行されるプロセスのプロセスIDと、そのプロセスが補助記憶部17から読み込んだデータをキャッシュメモリーに保持しておく必要があるか否かを示すキャッシング要否情報とを紐付けて組とし、1つ以上の組によって構成されている。キャッシュ管理テーブルを用いることにより容易にプロセスごとにデータをキャッシングする必要の有無を管理することが出来る。
【0038】
なお、ここでいうプロセスとは、例えば、画像形成装置に組み込まれる組み込み機器10の場合、画像処理を行うプロセスや、印刷制御部など画像形成装置内の各デバイスを制御するプロセス、画像形成装置の状態管理を行うプロセスなどのことを言う。
【0039】
また、キャッシング要否情報へのキャッシング要不要の設定は、プロセスの元になるプログラムを設計した際に、設計者により指定されてもよいし、組み込み機器10の運用時に、運用者により指定されてもよいし、他のプロセスにより自動的に指定されてもよい。
【0040】
なお、上記の説明では、キャッシュ管理テーブル13bは、RAM13上に設けられるものとしたが、これに限らず、キャッシュコントローラー19が参照できる場所であれば、どこに格納されてもよい。
なお、どのようなプロセスがデータをキャッシュする必要があり、どのようなプロセスではデータをキャッシュする必要が無いかは一概には言えない。キャッシングの要否は、設計時や運用時などにおいて、ケースバイケースで設定される。
【0041】
以上、キャッシュ管理テーブル13bについて説明した。
【0042】
[処理の流れ]
次に、本実施形態にかかる組み込み機器10における、データのキャッシング処理について説明する。図3は、本実施形態にかかる組み込み機器10における、データのキャッシング処理について説明するためのフローチャートである。
【0043】
まず、CPU11においてプログラムが実行されることにより、プロセスが起動される(ステップS1)。起動されたプロセスには、プロセスを一意に識別するためのプロセスID(Identifier)が割り振られる。
【0044】
次に、起動された各々のプロセスは、自身のプロセスIDおよびキャッシング要否情報をキャッシュ管理テーブル13bに登録する(ステップS2)。なお、プロセスIDおよびキャッシング要否情報の登録はキャッシュコントローラー19により行われる構成でもよい。
【0045】
次に、起動されたプロセスが、必要に応じ、補助記憶部17からデータを読み込む(ステップS3)。読み込むデータは、キャッシュメモリー13aに格納される。
【0046】
次に、キャッシュコントローラー19が、キャッシュメモリー13a上のデータに、そのデータを読み込んだプロセスのプロセスIDの情報を付加する(ステップS4)。この時点でキャッシュメモリー13a上のデータにプロセスID情報を付加することにより、キャッシュメモリー13a上のデータの管理をプロセスIDに基づいて容易に行うことが出来る。
【0047】
次に、キャッシュコントローラー19は、キャッシュ管理テーブル13bを参照して、データを読み込んだプロセスのキャッシング要否情報を調べる(ステップS5)。
【0048】
次に、キャッシュコントローラー19は、キャッシング要否情報に基づいて、読み込んだデータのキャッシングが必要か否かを判断する(ステップS6)。
【0049】
キャッシングが不要な場合(ステップS6のN)、キャッシュコントローラー19は、当該プロセスのキャッシュデータを破棄する(ステップS8)。
【0050】
キャッシングが必要な場合(ステップS6のY)、キャッシュコントローラー19は、当該プロセスのキャッシュデータをキャッシュメモリー13a上に保持する(ステップS7)。なお、キャッシュメモリー13a上に保持されたデータは、キャッシュメモリー13aが満杯になった場合、LRUアルゴリズムなどによるキャッシュアウトの対象となる。
【0051】
以上、本実施形態にかかる組み込み機器10における、データのキャッシング処理について説明した。
【0052】
[効果]
本実施形態にかかる組み込み機器では、補助記憶部からキャッシュに読み込んだデータのうち、キャッシングが不要なデータを直ちに削除するので、キャッシュメモリーが一杯になりにくくする事が出来る。
【0053】
また、キャッシュメモリーが一杯になりにくいので、時間的コストのかかるキャッシュアウトの処理を行う機会を減らすことが出来、組み込み機器全体の性能に対する悪影響を低減することが出来る。
【0054】
[仮想記憶への応用について]
なお、上記の説明では、本実施形態にかかる情報処理装置は、ファイルシステムとの遣り取りを行うキャッシュシステムとして説明した。しかし、近年、OSでは、ファイルシステムのキャッシュと仮想記憶とを統合的に管理することが行われている。
【0055】
そのため、いずれのデータをキャッシュするかの情報をプロセスごとに保持させる仕組みを、ページング方式を採用する仮想記憶に応用する事が出来る。そうすると、仮想記憶システムにおいてページフォルトが発生した際などに、ページイン/ページアウトを効率的に行うようにする事が出来る。
【0056】
[補足事項]
その他、本技術は、上述の実施形態にのみ限定されるものではなく、本技術の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【符号の説明】
【0057】
10 … 組み込み機器
11 … CPU
12 … ROM
13 … RAM
13a… キャッシュメモリー
13b… キャッシュ管理テーブル
14 … 操作入力部
15 … ネットワークインターフェイス部
16 … 表示部
17 … 補助記憶部
18 … バス
19 … キャッシュコントローラー
図1
図2
図3