(57)【要約】【課題】処理速度の低下を抑制しつつ、揮発性メモリの記憶内容を不揮発性メモリにバックアップする。【解決手段】制御部５０は、ＣＰＵ５１と、ＤＲＡＭ５２と、ＤＲＡＭ用メモリコントローラ５３と、ＤＲＡＭ用キャッシュ５４と、ＭＲＡＭ５５と、ＭＲＡＭ用メモリコントローラ５６と、ＭＲＡＭ用キャッシュ（キャッシュメモリ）５７と、これらを相互に接続する内部バス５８とを備える。制御部５０では、ＤＲＡＭ５２とＤＲＡＭ用キャッシュ５４との間でキャッシュコヒーレンシ（一貫性）を保つようにさせ、ＭＲＡＭ５５とＭＲＡＭ用キャッシュ５７との間でキャッシュコヒーレンシを保つようにさせ、さらに、ＤＲＡＭ用キャッシュ５４とＭＲＡＭ用キャッシュ５７との間でコヒーレンシを保つようにさせる。【選択図】図２
2014203306.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行する実行手段と、
読み書き可能であって電源を供給しないと記憶している情報を保持することが不可能な揮発性メモリを備え、前記実行手段が実行する前記プログラムおよび当該プログラムの実行に伴って生成されるデータを記憶する第１記憶手段と、
前記揮発性メモリから読み出した前記プログラムおよび前記実行手段が生成したデータを一時的に記憶する第１キャッシュ記憶手段と、
前記第１キャッシュ記憶手段の記憶内容を前記第１記憶手段の記憶内容に反映させるように制御する第１制御手段と、
読み書き可能であって電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリを備えた第２記憶手段と、
前記第１キャッシュ記憶手段に記憶される前記プログラムおよび前記データを一時的に記憶する第２キャッシュ記憶手段と、
前記第２キャッシュ記憶手段の記憶内容を前記第２記憶手段の記憶内容に反映させるように制御する第２制御手段と、
前記第１キャッシュ記憶手段の記憶内容を前記第２キャッシュ記憶手段の記憶内容に反映させるように制御する第３制御手段と
を含む情報処理装置。
【請求項２】
前記第１キャッシュ記憶手段は、前記第１記憶手段よりも前記プログラムおよび前記データの読み書きが高速に行えるようになっており、
前記第２キャッシュ記憶手段は、前記第２記憶手段よりも前記プログラムおよび前記データの読み書きが高速に行えるようになっており、
前記第１記憶手段は、前記第２記憶手段よりも前記データの読み書きが高速に行えるようになっていることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記第１キャッシュ記憶手段および前記第２キャッシュ記憶手段は、前記プログラムおよび前記データの読み書きが同じ速度で行えるようになっていることを特徴とする請求項１または２記載の情報処理装置。
【請求項４】
前記実行手段は、電源がオフされた後に当該電源がオンされることに伴って実行される起動処理において、前記第２記憶手段から前記プログラムおよび前記データを読み出すことを特徴とする請求項１乃至３のいずれか１項記載の情報処理装置。
【請求項５】
コンピュータに、
プログラムを実行する機能と、
読み書き可能であって電源を供給しないと記憶している情報を保持することが不可能な揮発性メモリを備え、前記実行手段が実行する前記プログラムおよび当該プログラムの実行に伴って生成されるデータを記憶する第１記憶手段と、当該揮発性メモリから読み出した当該プログラムおよび当該実行手段が生成したデータを一時的に記憶する第１キャッシュ記憶手段とに対し、当該第１キャッシュ記憶手段の記憶内容を当該第１記憶手段の記憶内容に反映させるように制御する機能と、
読み書き可能であって電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリを備えた第２記憶手段と、前記第１キャッシュ記憶手段に記憶される前記プログラムおよび前記データを一時的に記憶する第２キャッシュ記憶手段とに対し、当該第２キャッシュ記憶手段の記憶内容を当該第２記憶手段の記憶内容に反映させるように制御する機能と、
前記第１キャッシュ記憶手段の記憶内容を前記第２キャッシュ記憶手段の記憶内容に反映させるように制御する機能と
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置およびプログラムに関する。
【背景技術】
【０００２】
公報記載の従来技術として、プロセッサとプロセッサに接続されたキャッシュメモリとを内蔵し、キャッシュメモリが外部に設けられたメインメモリと接続されたプロセッサシステムが存在する（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−８８７６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、処理速度の低下を抑制しつつ、揮発性メモリの記憶内容を不揮発性メモリにバックアップすることを目的とする。
【課題を解決するための手段】
【０００５】
請求項１記載の発明は、プログラムを実行する実行手段と、読み書き可能であって電源を供給しないと記憶している情報を保持することが不可能な揮発性メモリを備え、前記実行手段が実行する前記プログラムおよび当該プログラムの実行に伴って生成されるデータを記憶する第１記憶手段と、前記揮発性メモリから読み出した前記プログラムおよび前記実行手段が生成したデータを一時的に記憶する第１キャッシュ記憶手段と、前記第１キャッシュ記憶手段の記憶内容を前記第１記憶手段の記憶内容に反映させるように制御する第１制御手段と、読み書き可能であって電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリを備えた第２記憶手段と、前記第１キャッシュ記憶手段に記憶される前記プログラムおよび前記データを一時的に記憶する第２キャッシュ記憶手段と、前記第２キャッシュ記憶手段の記憶内容を前記第２記憶手段の記憶内容に反映させるように制御する第２制御手段と、前記第１キャッシュ記憶手段の記憶内容を前記第２キャッシュ記憶手段の記憶内容に反映させるように制御する第３制御手段とを含む情報処理装置である。
【０００６】
請求項２記載の発明は、前記第１キャッシュ記憶手段は、前記第１記憶手段よりも前記プログラムおよび前記データの読み書きが高速に行えるようになっており、前記第２キャッシュ記憶手段は、前記第２記憶手段よりも前記プログラムおよび前記データの読み書きが高速に行えるようになっており、前記第１記憶手段は、前記第２記憶手段よりも前記データの読み書きが高速に行えるようになっていることを特徴とする請求項１記載の情報処理装置である。
請求項３記載の発明は、前記第１キャッシュ記憶手段および前記第２キャッシュ記憶手段は、前記プログラムおよび前記データの読み書きが同じ速度で行えるようになっていることを特徴とする請求項１または２記載の情報処理装置である。
請求項４記載の発明は、前記実行手段は、電源がオフされた後に当該電源がオンされることに伴って実行される起動処理において、前記第２記憶手段から前記プログラムおよび前記データを読み出すことを特徴とする請求項１乃至３のいずれか１項記載の情報処理装置である。
【０００７】
請求項５記載の発明は、コンピュータに、プログラムを実行する機能と、読み書き可能であって電源を供給しないと記憶している情報を保持することが不可能な揮発性メモリを備え、前記実行手段が実行する前記プログラムおよび当該プログラムの実行に伴って生成されるデータを記憶する第１記憶手段と、当該揮発性メモリから読み出した当該プログラムおよび当該実行手段が生成したデータを一時的に記憶する第１キャッシュ記憶手段とに対し、当該第１キャッシュ記憶手段の記憶内容を当該第１記憶手段の記憶内容に反映させるように制御する機能と、読み書き可能であって電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリを備えた第２記憶手段と、前記第１キャッシュ記憶手段に記憶される前記プログラムおよび前記データを一時的に記憶する第２キャッシュ記憶手段とに対し、当該第２キャッシュ記憶手段の記憶内容を当該第２記憶手段の記憶内容に反映させるように制御する機能と、前記第１キャッシュ記憶手段の記憶内容を前記第２キャッシュ記憶手段の記憶内容に反映させるように制御する機能とを実現させるプログラムである。
【発明の効果】
【０００８】
請求項１記載の発明によれば、本構成を有していない場合と比較して、処理速度の低下を抑制しつつ、揮発性メモリの記憶内容を不揮発性メモリにバックアップすることができる。
請求項２記載の発明によれば、本構成を有していない場合と比較して、キャッシュコヒーレンシを保つための読み書きに要する時間の違いに起因する待ち時間を低減することができる。
請求項３記載の発明によれば、本構成を有していない場合と比較して、コヒーレンシを保つための読み書きに要する時間の違いに起因する待ち時間を低減することができる。
請求項４記載の発明によれば、本構成を有していない場合と比較して、次の起動処理に要する時間を短くすることができる。
請求項５記載の発明によれば、本構成を有していない場合と比較して、処理速度の低下を抑制しつつ、揮発性メモリの記憶内容を不揮発性メモリにバックアップすることができる。
【図面の簡単な説明】
【０００９】
【図１】本実施の形態が適用される画像形成システムの構成の一例を示す図である。
【図２】画像形成装置に設けられた制御部の内部構成の一例を示すブロック図である。
【図３】制御部の動作に伴う、主記憶ユニット（より具体的にはＤＲＡＭ、ＤＲＡＭ用キャッシュ）および副記憶ユニット（より具体的にはＭＲＡＭ、ＭＲＡＭ用キャッシュ）における記憶内容の変遷を説明するための図（その１）である。
【図４】制御部の動作に伴う、主記憶ユニットおよび副記憶ユニットにおける記憶内容の変遷を説明するための図（その２）である。
【図５】制御部の動作に伴う、主記憶ユニットおよび副記憶ユニットにおける記憶内容の変遷を説明するための図（その３）である。
【図６】制御部の動作に伴う、主記憶ユニットおよび副記憶ユニットにおける記憶内容の変遷を説明するための図（その４）である。
【図７】制御部の動作に伴う、主記憶ユニットおよび副記憶ユニットにおける記憶内容の変遷を説明するための図（その５）である。
【図８】制御部の動作に伴う、主記憶ユニットおよび副記憶ユニットにおける記憶内容の変遷を説明するための図（その６）である。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
図１は、本実施の形態が適用される画像形成システムの構成の一例を示す図である。
この画像形成システムは、スキャン機能、プリント機能、コピー機能およびファクシミリ機能を備えた所謂複合機として動作する画像形成装置１と、画像形成装置１に接続されるネットワーク２と、ネットワーク２に接続される端末装置３と、ネットワーク２に接続されるファクシミリ装置４と、ネットワーク２に接続されるサーバ装置５とを有している。
【００１１】
ここで、ネットワーク２は、インターネット回線や電話回線等によって構成されている。また、端末装置３は、ネットワーク２を介して、画像形成装置１に画像の形成等を指示するものであり、例えばＰＣ（Personal Computer）で構成される。さらに、ファクシミリ装置４は、ネットワーク２を介して、画像形成装置１との間でファクシミリを送受信する。さらにまた、サーバ装置５は、ネットワーク２を介して、画像形成装置１との間でデータ（プログラムを含む）を送受信する。
【００１２】
また、画像形成装置１は、紙等の記録材に記録された画像を読み取る画像読取部１０と、紙等の記録材に画像を形成する画像形成部２０と、ユーザから電源のオン／オフ、スキャン機能、プリント機能、コピー機能およびファクシミリ機能を用いた動作に関連する指示を受け付けるとともに、ユーザに対してメッセージを表示するユーザインタフェース（ＵＩ）３０と、ネットワーク２を介して端末装置３、ファクシミリ装置４およびサーバ装置５との間でデータの送受信を行う送受信部４０と、これら画像読取部１０、画像形成部２０、ＵＩ３０および送受信部４０の動作を制御する制御部５０とを備えている。そして、この画像形成装置１では、画像読取部１０によってスキャン機能が実現され、画像形成部２０によってプリント機能が実現され、画像読取部１０および画像形成部２０によってコピー機能が実現され、画像読取部１０、画像形成部２０および送受信部４０によってファクシミリ機能が実現される。なお、送受信部４０は、例えばインターネット回線用のものと電話回線用のものとを、別々に設けるようにしてもかまわない。
【００１３】
図２は、図１に示す画像形成装置１に設けられた制御部５０の内部構成の一例を示すブロック図である。
本実施の形態の制御部５０は、種々の演算を実行することによって画像形成装置１の各部を制御するＣＰＵ（Central Processing Unit）５１と、ＣＰＵ５１のメインメモリとして用いられるＤＲＡＭ（Dynamic Random Access Memory）５２と、ＤＲＡＭ５２におけるデータの読み書き動作を制御するＤＲＡＭ用メモリコントローラ５３と、ＤＲＡＭ５２の記憶内容の一部を抽出して記憶するＤＲＡＭ用キャッシュ（キャッシュメモリ）５４と、ＤＲＡＭ５２の記憶内容をバックアップするバックアップメモリとして用いられるＭＲＡＭ（Magnetoresistive Random Access Memory）５５と、ＭＲＡＭ５５におけるデータの読み書き動作を制御するＭＲＡＭ用メモリコントローラ５６と、ＤＲＡＭ用キャッシュの記憶内容をバックアップするＭＲＡＭ用キャッシュ（キャッシュメモリ）５７と、制御部５０内においてＣＰＵ５１、ＤＲＡＭ用メモリコントローラ５３、ＤＲＡＭ用キャッシュ５４、ＭＲＡＭ用メモリコントローラ５６およびＭＲＡＭ用キャッシュ５７を相互に接続する内部バス５８とを備えている。ここで、ＤＲＡＭ５２は、ＤＲＡＭ用メモリコントローラ５３を介して内部バス５８に接続されており、ＭＲＡＭ５５は、ＭＲＡＭ用メモリコントローら５６を介して内部バス５８に接続されている。なお、以下の説明においては、ＤＲＡＭ５２とＤＲＡＭ用メモリコントローラ５３とＤＲＡＭ用キャッシュ５４とを、まとめて「主記憶ユニット６０」と呼び、ＭＲＡＭ５５とＭＲＡＭ用メモリコントローラ５６とＭＲＡＭ用キャッシュ５７とを、まとめて「副記憶ユニット７０」と呼ぶ。
【００１４】
実行手段の一例としてのＣＰＵ５１は、内部バス５８を介してＤＲＡＭ用キャッシュ５４およびＭＲＡＭ用キャッシュ５７に直接アクセスすることが可能となっている。また、内部バス５８は、種々の転送速度にて各構成要素間でのデータの伝送を行うようになっている。
【００１５】
次に、主記憶ユニット６０の構成について説明を行う。
第１記憶手段の一例としてのＤＲＡＭ５２は、書き換え可能であって電源を供給しないと記憶している情報を保持することが不可能な揮発性メモリの一例としての機能を有している。
ＤＲＡＭ用メモリコントローラ５３は、ＤＲＡＭ５２におけるデータの読み書きを制御し、また、ＤＲＡＭ用キャッシュ５４との間のデータの授受を制御する。
第１キャッシュ記憶手段の一例としてのＤＲＡＭ用キャッシュ５４は、ＳＲＡＭ（Static Random Access Memory）で構成されている。また、ＤＲＡＭ用キャッシュ５４は、図示しないコントローラ（以下では、必要に応じて「Ｄキャッシュコントローラ」と呼ぶことがある）を内蔵している。Ｄキャッシュコントローラは、ＣＰＵ５１との間のデータ授受、ＤＲＡＭ用メモリコントローラ５３を介したＤＲＡＭ５２との間のデータの授受、そして、ＭＲＡＭ用キャッシュ５７との間のデータの授受、を制御している。
なお、本実施の形態では、ＤＲＡＭ用メモリコントローラ５３およびＤキャッシュコントローラが、第１制御手段の一例として機能しており、Ｄキャッシュコントローラが、第３制御手段の一例として機能している。
【００１６】
続いて、副記憶ユニット７０の構成について説明を行う。
第２記憶手段の一例としてのＭＲＡＭ５５は、書き換え可能であって電源を供給しなくても記憶している情報を保持することが可能な不揮発性メモリの一例としての機能を有している。なお、ＭＲＡＭ５５に代えて、ＦｅＲＡＭ（Ferroelectric RAM）、ＰＲＡＭ（Phase change RAM）、あるいはＲｅＲＡＭ（Resistance RAM）などを用いてもよい。
ＭＲＡＭ用メモリコントローラ５６は、ＭＲＡＭ５５におけるデータの読み書きを制御し、また、ＭＲＡＭ用キャッシュ５７との間のデータの授受を制御する。
第２キャッシュ記憶手段の一例としてのＭＲＡＭ用キャッシュ５７は、ＤＲＡＭ用キャッシュ５４と同じくＳＲＡＭで構成されている。また、ＭＲＡＭ用キャッシュ５７は、図示しないコントローラ（以下では、必要に応じて、「Ｍキャッシュコントローラ」と呼ぶことがある）を内蔵している。Ｍキャッシュコントローラは、ＣＰＵ５１との間のデータ授受、ＭＲＡＭ用メモリコントローラ５６を介したＭＲＡＭ５５との間のデータの授受、そして、ＤＲＡＭ用キャッシュ５４との間のデータの授受、を制御している。
なお、本実施の形態では、ＭＲＡＭ用メモリコントローラ５６およびＭキャッシュコントローラが、第２制御手段の一例として機能しており、Ｍキャッシュコントローラが、第３制御手段の一例として機能している。
【００１７】
ここで、主記憶ユニット６０では、ＤＲＡＭ用キャッシュ５４におけるデータの読み書き速度が、ＤＲＡＭ５２におけるデータの読み書き速度よりも高速となっている。また、ＤＲＡＭ用キャッシュ５４の記憶容量は、ＤＲＡＭ５２の記憶容量よりも小さい。
【００１８】
一方、副記憶ユニット７０では、ＭＲＡＭ用キャッシュ５７におけるデータの読み書き速度が、ＭＲＡＭ５５におけるデータの読み書き速度よりも高速となっている。また、ＭＲＡＭ用キャッシュ５７の記憶容量は、ＭＲＡＭ５５の記憶容量よりも小さい。
【００１９】
次に、主記憶ユニット６０に設けられたＤＲＡＭ５２のデータの読み書き速度は、副記憶ユニット７０に設けられたＭＲＡＭ５５のデータの読み書き速度よりも高速となっている。また、ＤＲＡＭ５２の記憶容量は、ＭＲＡＭ５５の記憶容量以上となっている。
【００２０】
この制御部５０では、ＣＰＵ５１とＤＲＡＭ用キャッシュ５４およびＭＲＡＭ用キャッシュ５７とが、内部バス５８を介して第１速度でデータの授受を行うようになっている。また、制御部５０では、ＤＲＡＭ用キャッシュ５４とＤＲＡＭ５２とが、内部バス５８を介して第１速度よりも低速な第２速度でデータの授受を行うようになっている。さらに、制御部５０では、ＭＲＡＭ用キャッシュ５７とＭＲＡＭ５５とが、第２速度よりも低速な第３速度でデータの授受を行うようになっている。
【００２１】
本実施の形態の制御部５０は、基本的に、ＣＰＵ５１と主記憶ユニット６０（ＤＲＡＭ５２、ＤＲＡＭ用メモリコントローラ５３およびＤＲＡＭ用キャッシュ５４）とを用いて、画像形成装置１を構成する各部（画像読取部１０、画像形成部２０、ＵＩ３０、送受信部４０）の動作を制御するようになっている。また、制御部５０において、副記憶ユニット７０は、主記憶ユニット６０の記憶内容をコピーして保持（バックアップ）するのに用いられる。
【００２２】
このとき、主記憶ユニット６０では、ＤＲＡＭ用キャッシュ５４が、ＤＲＡＭ５２に記憶される各種プログラムや各種変数（以下では、これらをまとめて「データ」と呼ぶ）のうち、ＣＰＵ５１によるアクセスが発生したデータを複数個記憶しておくことにより、次に同じデータあるいはその周辺のデータへのアクセスがあったときに、このデータを、ＤＲＡＭ５２よりも高速で動作するＤＲＡＭ用キャッシュ５４から供給することで、ＣＰＵ５１によるデータの待ち時間の低減を図っている。また、主記憶ユニット６０では、ＤＲＡＭ用キャッシュ５４に設けられたＤキャッシュコントローラ（図示せず）が、ＤＲＡＭ用キャッシュ５４の記憶内容とＤＲＡＭ５２の記憶内容との一貫性（キャッシュコヒーレンシ）を保つように、ＤＲＡＭ用キャッシュ５４およびＤＲＡＭ５２に対するデータの読み出しおよびデータの書き込みを制御するようになっている。
【００２３】
これに対し、副記憶ユニット７０では、ＭＲＡＭ用キャッシュ５７が、ＤＲＡＭ用キャッシュ５４に記憶される複数個のデータを、ＤＲＡＭ用キャッシュ５４に追従して記憶し、ＭＲＡＭ用キャッシュ５７に設けられたＭキャッシュコントローラ（図示せず）が、ＭＲＡＭ用キャッシュ５７の記憶内容とＭＲＡＭ５５の記憶内容との一貫性（キャッシュコヒーレンシ）を保つように、ＭＲＡＭ用キャッシュ５７およびＭＲＡＭ５５に対するデータの読み出しおよびデータの書き込みを制御するようになっている。
【００２４】
では、上述した制御部５０の動作について、具体例を挙げて説明を行う。
図３〜図８は、制御部５０の動作に伴う、主記憶ユニット６０（より具体的にはＤＲＡＭ５２、ＤＲＡＭ用キャッシュ５４）および副記憶ユニット７０（より具体的にはＭＲＡＭ５５、ＭＲＡＭ用キャッシュ５７）における記憶内容の変遷を説明するための図である。図３〜図８のそれぞれにおいて、図中左側は主記憶ユニット６０の記憶内容を模式的に示しており、図中右側は副記憶ユニット７０の記憶内容を模式的に示している。
【００２５】
図３は、ＤＲＡＭ用キャッシュ５４とＤＲＡＭ５２とのキャッシュコヒーレンシが保たれ、ＭＲＡＭ用キャッシュ５７とＭＲＡＭ５５とのキャッシュコヒーレンシが保たれ、且つ、ＤＲＡＭ用キャッシュ５４の記憶内容とＭＲＡＭ用キャッシュ５７の記憶内容とが一致していることにより、ＤＲＡＭ５２の記憶内容とＭＲＡＭ５５の記憶内容とが一致している状態（初期状態と呼ぶ）を示している。
【００２６】
では、動作を説明する前に、ＤＲＡＭ５２、ＤＲＡＭ用キャッシュ５４、ＭＲＡＭ５５およびＭＲＡＭ用キャッシュ５７のそれぞれに記憶されている内容について説明を行う。
【００２７】
まず、主記憶ユニット６０に設けられたＤＲＡＭ５２には、複数のアドレスと、各アドレスに対応付けられたデータとが記憶されている。この例において、ＤＲＡＭ５２には、１６個のアドレス（「００００」〜「１１１１」）が設定されている。図３に示す例では、アドレス「００００」〜「１１１１」に、アルファベット順にデータＡ〜Ｐがそれぞれ記憶されている。なお、この例においては、ＤＲＡＭ５２に設定された１６個のアドレスのうち、最初に連続する４個のアドレス「００００」〜「００１１」を、Ｄ第１アドレス群５２αと呼び、Ｄ第１アドレス群５２αに隣接して連続する４個のアドレス「０１００」〜「０１１１」をＤ第２アドレス群５２βと呼び、Ｄ第２アドレス群５２βに隣接して連続する４個のアドレス「１０００」〜「１０１１」をＤ第３アドレス群５２γと呼び、Ｄ第３アドレス群５２γに隣接して連続する４個のアドレス「１１００」〜「１１１１」をＤ第４アドレス群５２δと呼ぶ。
【００２８】
また、主記憶ユニット６０に設けられたＤＲＡＭ用キャッシュ５４には、複数のタグと、各タグに対応付けられたキャッシュブロックと、ＤＲＡＭ用キャッシュ５４の記憶内容とＤＲＡＭ５２の記憶内容とのコヒーレンシの状態を示すＤＲＡＭ有効フラグと、ＤＲＡＭ用キャッシュ５４の記憶内容と副記憶ユニット７０に設けられたＭＲＡＭ用キャッシュ５７とのコヒーレンシの状態を示すキャッシュ有効フラグとが記憶されている。
【００２９】
この例において、ＤＲＡＭ用キャッシュ５４には、ＤＲＡＭ５２に設定されたアドレスの４分の１となる４個のタグ（「００」〜「１１」）が設定されている。また、この例では、ＤＲＡＭ５２に設定されたＤ第１アドレス群５２α（連続する４個のアドレス「００００」〜「００１１」）から選ばれた１つのデータが、タグ「００」にキャッシュブロックとして記憶されるようになっている。また、ＤＲＡＭ５２に設定されたＤ第２アドレス群５２β（連続する４個のアドレス「０１００」〜「０１１１」）から選ばれた１つのデータが、タグ「０１」にキャッシュブロックとして記憶されるようになっている。また、ＤＲＡＭ５２に設定されたＤ第３アドレス群５２γ（連続する４個のアドレス「１０００」〜「１０１１」）から選ばれた１つのデータが、タグ「１０」にキャッシュブロックとして記憶されるようになっている。さらに、ＤＲＡＭ５２に設定されたＤ第４アドレス群５２δ（連続する４個のアドレス「１１００」〜「１１１１」）から選ばれた１つのデータが、タグ「１１」にキャッシュブロックとして記憶されるようになっている。なお、図３に示す例では、Ｄ第１アドレス群５２αのアドレス「００００」から読み出されたデータＡがタグ「００」に、Ｄ第２アドレス群５２βのアドレス「０１００」から読み出されたデータＥがタグ「０１」に、Ｄ第３アドレス群５２γのアドレス「１０００」から読み出されたデータ「Ｉ」がタグ「１０」に、Ｄ第４アドレス群５２δのアドレス「１１００」から読み出されたデータ「Ｍ」がタグ「１１」に、それぞれキャッシュブロックとして記憶されている。
【００３０】
一方、副記憶ユニット７０に設けられたＭＲＡＭ５５にも、複数のアドレスと、各アドレスに対応付けられたデータとが記憶されている。この例において、ＭＲＡＭ５５には、ＤＲＡＭ５２と同じ１６個のアドレス（「００００」〜「１１１１」）が設定されている。図３に示す例では、アドレス「００００」〜「１１１１」に、アルファベット順にデータＡ〜Ｐがそれぞれ記憶されている。すなわち、図３に示す状態において、ＤＲＡＭ５２の記憶内容とＭＲＡＭ５５の記憶内容とは、完全に一致している。なお、この例においては、ＭＲＡＭ５５に設定された１６個のアドレスのうち、最初に連続する４個のアドレス「００００」〜「００１１」を、Ｍ第１アドレス群５５αと呼び、Ｍ第１アドレス群５５αに隣接して連続する４個のアドレス「０１００」〜「０１１１」をＭ第２アドレス群５５βと呼び、Ｍ第２アドレス群５５βに隣接して連続する４個のアドレス「１０００」〜「１０１１」をＭ第３アドレス群５５γと呼び、Ｍ第３アドレス群５５γに隣接して連続する４個のアドレス「１１００」〜「１１１１」をＭ第４アドレス群５５δと呼ぶ。
【００３１】
また、副記憶ユニット７０に設けられたＭＲＡＭ用キャッシュ５７には、複数のタグと、各タグに対応付けられたキャッシュブロックと、ＭＲＡＭ用キャッシュ５７の記憶内容とＭＲＡＭ５５の記憶内容とのコヒーレンシの状態を示すＭＲＡＭ有効フラグとが記憶されている。
【００３２】
この例において、ＭＲＡＭ用キャッシュ５７には、ＤＲＡＭ５２（ＭＲＡＭ５５）に設定されたアドレスの４分の１すなわちＤＲＡＭ用キャッシュ５４と同じ数となる４個のタグ（「００」〜「１１」）が設定されている。また、この例では、ＭＲＡＭ５５に設定されたＭ第１アドレス群５５α（連続する４個のアドレス「００００」〜「００１１」）から選ばれた１つのデータが、タグ「００」にキャッシュブロックとして記憶されるようになっている。ＭＲＡＭ５５に設定されたＭ第２アドレス群５５β（連続する４個のアドレス「０１００」〜「０１１１」）から選ばれた１つのデータが、タグ「０１」にキャッシュブロックとして記憶されるようになっている。また、ＭＲＡＭ５５に設定されＭ第３アドレス群５５γ（連続する４個のアドレス「１０００」〜「１０１１」）から選ばれた１つのデータが、タグ「１０」にキャッシュブロックとして記憶されるようになっている。さらに、ＭＲＡＭ５５に設定されたＭ第４アドレス群５２δ（連続する４個のアドレス「１１００」〜「１１１１」）から選ばれた１つのデータが、タグ「１１」にキャッシュブロックとして記憶されるようになっている。なお、図３に示す例では、Ｍ第１アドレス群５５αのアドレス「００００」から読み出されたデータＡがタグ「００」に、Ｍ第２アドレス群５５βのアドレス「０１００」から読み出されたデータＥがタグ「０１」に、Ｍ第３アドレス群５５γのアドレス「１０００」から読み出されたデータ「Ｉ」がタグ「１０」に、Ｍ第４アドレス群５５δのアドレス「１１００」から読み出されたデータ「Ｍ」がタグ「１１」に、それぞれキャッシュブロックとして記憶されている。すなわち、図３に示す状態において、キャッシュブロックに関する、ＤＲＡＭ用キャッシュ５４の記憶内容とＭＲＡＭ用キャッシュ５７の記憶内容とは、完全に一致している。
【００３３】
次に、上述した、ＤＲＡＭ有効フラグ、キャッシュ有効フラグおよびＭＲＡＭ有効フラグについて説明を行う。
まず、ＤＲＡＭ有効フラグは、ＤＲＡＭ用キャッシュ５４に記憶されているキャッシュブロックの内容と、ＤＲＡＭ５２に記憶されるデータの内容とが一致しているか否かを、タグ毎に表したものである。ここで、両者が一致している場合にはＤＲＡＭ有効フラグが「有効」となり、両者が一致していない場合にはＤＲＡＭ有効フラグが「無効」となる。
また、キャッシュ有効フラグは、ＤＲＡＭ用キャッシュ５４に記憶されているキャッシュブロックの内容と、ＭＲＡＭ用キャッシュ５７に記憶されているキャッシュブロックの内容とが一致しているか否かを、タグ毎に表したものである。ここで、両者が一致している場合にはキャッシュ有効フラグが「有効」となり、両者が一致していない場合にはキャッシュ有効フラグが「無効」となる。
さらに、ＭＲＡＭ有効フラグは、ＭＲＡＭ用キャッシュ５７に記憶されているキャッシュブロックの内容と、ＭＲＡＭ５５に記憶されるデータの内容とが一致しているか否かを、タグ毎に表したものである。ここで、両者が一致している場合にはＭＲＡＭ有効フラグが「有効」となり、両者が一致していない場合にはキャッシュ有効フラグが「無効」となる。
【００３４】
そして、これらの各種フラグのうち、ＤＲＡＭ有効フラグおよびキャッシュ有効フラグについては、ＤＲＡＭ用キャッシュ５４に設けられたＤキャッシュコントローラが、有効／無効の設定を行う。また、ＭＲＡＭ有効フラグについては、ＭＲＡＭ用キャッシュ５７に設けられたＭキャッシュコントローラが、有効／無効の設定を行う。
【００３５】
図３に示す例では、上述したように、ＤＲＡＭ用キャッシュ５４とＤＲＡＭ５２とのキャッシュコヒーレンシが保たれ、ＭＲＡＭ用キャッシュ５７とＭＲＡＭ５５とのキャッシュコヒーレンシが保たれ、且つ、ＤＲＡＭ用キャッシュ５４の記憶内容とＭＲＡＭ用キャッシュ５７の記憶内容とが一致している。このため、図３に示す例では、タグ「００」〜「１１」の全てにおいて、ＤＲＡＭ有効フラグ、キャッシュ有効フラグおよびＭＲＡＭ有効フラグが、「有効」となっている。
【００３６】
図４は、図３に示す状態から、制御部５０の動作（プログラムの実行）に伴って、ＣＰＵ５１が、ＤＲＡＭ用キャッシュ５４のタグ「０１」のキャッシュブロックの値、および、ＭＲＡＭ用キャッシュ５７のタグ「０１」のキャッシュブロックの値を、「Ｅ」から「Ｅ’」に書き換えた状態を示している。このとき、ＤＲＡＭ用キャッシュ５４のタグ「０１」のキャッシュブロックの値は「Ｅ’」となるものの、ＤＲＡＭ５２のＤ第２アドレス群５２βにおけるアドレス「０１００」のデータの値は「Ｅ」のままであるので、ＤＲＡＭ用キャッシュ５４では、タグ「０１」に対応するＤＲＡＭ有効フラグが「有効」から「無効」に書き換わる。また、このとき、ＭＲＡＭ用キャッシュ５７のタグ「０１」のキャッシュブロックの値も「Ｅ’」となるものの、ＭＲＡＭ５５のＭ第２アドレス群５５βにおけるアドレス「０１００」のデータの値は「Ｅ」のままであるので、ＭＲＡＭ用キャッシュ５７では、タグ「０１」に対応するＭＲＡＭ有効フラグが「有効」から「無効」に書き換わる。一方、このとき、ＤＲＡＭ用キャッシュ５４およびＭＲＡＭ用キャッシュ５７では、タグ「０１」のキャッシュブロックの値が、ともに「Ｅ’」となるため、タグ「０１」に対応するキャッシュ有効フラグは「有効」のままとなる。
【００３７】
このように、図４に示す状態では、ＤＲＡＭ用キャッシュ５４とＤＲＡＭ５２とのキャッシュコヒーレンシが保たれなくなり、ＭＲＡＭ用キャッシュ５７とＭＲＡＭ５５とのキャッシュコヒーレンシも保たれなくなる。ただし、ＤＲＡＭ用キャッシュ５４とＭＲＡＭ用キャッシュ５７とのコヒーレンシは保たれている。
【００３８】
図５は、図４に示す状態から、制御部５０の動作（プログラムの実行）に伴って、ＤＲＡＭ用キャッシュ５４に設けられたＤキャッシュコントローラが、ＤＲＡＭ用キャッシュ５４のタグ「０１」に記憶させるキャッシュブロックを、ＤＲＡＭ５２において同じアドレス群（ここではＤ第２アドレス群５２β）に属する別のデータ（例えばアドレス「０１１０」に記憶されるデータ「Ｇ」）と入れ替えるために、ＤＲＡＭ用キャッシュ５４のタグ「０１」に書き込まれたデータ「Ｅ’」を、ＤＲＡＭ５２のアドレス「０１００」に書き戻すキャッシュフラッシュを行った状態を示している。このとき、ＤＲＡＭ５２のアドレス「０１００」のデータの値は「Ｅ’」となるので、ＤＲＡＭ用キャッシュ５４では、タグ「０１」に対応するＤＲＡＭ有効フラグが「無効」から「有効」に書き換わる。また、このとき、ＭＲＡＭ５５のアドレス「０１００」の値は「Ｅ」のままであるので、ＭＲＡＭ用キャッシュ５７では、タグ「０１」に対応するＭＲＡＭ有効フラグは「無効」のままとなる。
【００３９】
このように、図５に示す状態では、ＤＲＡＭ用キャッシュ５４とＤＲＡＭ５２とのキャッシュコヒーレンシは保たれるようになるものの、ＭＲＡＭ用キャッシュ５７とＭＲＡＭ５５とのキャッシュコヒーレンシも保たれないままとなる。ただし、ＤＲＡＭ用キャッシュ５４とＭＲＡＭ用キャッシュ５７とのコヒーレンシは保たれている。
【００４０】
図６は、図５に示す状態から、制御部５０の動作（プログラムの実行）に伴って、ＤＲＡＭ用キャッシュ５４に設けられたＤキャッシュコントローラが、ＤＲＡＭ５２のＤ第２アドレス群５２βのアドレス「０１１０」から読み出したデータ「Ｇ」を、ＤＲＡＭ用キャッシュ５４のタグ「０１」に新たなキャッシュブロックとして記憶させた状態を示している。このとき、ＤＲＡＭ用キャッシュ５４のタグ「０１」のキャッシュブロックの値は「Ｇ」となるので、ＤＲＡＭ用キャッシュ５４では、タグ「０１」に対応するＤＲＡＭ有効フラグが「有効」となる。また、このとき、ＭＲＡＭ５５のアドレス「０１００」の値は「Ｅ」のままであるので、ＭＲＡＭ用キャッシュ５７では、タグ「０１」に対応するＭＲＡＭ有効フラグは「無効」のままとなる。さらに、このとき、ＤＲＡＭ用キャッシュ５４のタグ「０１」のキャッシュブロックの値は「Ｇ」となる一方、ＭＲＡＭキャッシュ５４のタグ「０１」のキャッシュブロックの値は「Ｅ’」のままであるので、キャッシュ有効フラグは「有効」から「無効」に書き換わる。
【００４１】
このように、図６に示す状態では、ＤＲＡＭ用キャッシュ５４とＤＲＡＭ５２とのキャッシュコヒーレンシは保たれているものの、ＭＲＡＭ用キャッシュ５７とＭＲＡＭ５５とのキャッシュコヒーレンシも保たれないままとなる。また、ＤＲＡＭ用キャッシュ５４とＭＲＡＭ用キャッシュ５７とのコヒーレンシが保たれなくなる。
【００４２】
図７は、図６に示す状態から、制御部５０の動作（プログラムの実行）に伴って、ＭＲＡＭ用キャッシュ５７に設けられたＭキャッシュコントローラが、ＭＲＡＭ用キャッシュ５７のタグ「０１」に記憶させるキャッシュブロックを、ＭＲＡＭ５５において同じアドレス群（ここではＭ第２アドレス群５５β）に属する別のデータ（例えばアドレス「０１１０」に記憶されるデータ「Ｇ」）と入れ替えるために、ＭＲＡＭ用キャッシュ５７のタグ「０１」に書き込まれたデータ「Ｅ’」を、ＭＲＡＭ５５のアドレス０１００に書き戻すキャッシュフラッシュを行った状態を示している。このとき、ＭＲＡＭ５５のアドレス「０１００」のデータの値は「Ｅ’」となるので、タグ「０１」に対応するＭＲＡＭ有効フラグが「無効」から「有効」に書き換わる。また、このとき、ＤＲＡＭ用キャッシュ５４のタグ「０１」のキャッシュブロックの値は「Ｇ」となる一方、ＭＲＡＭ用キャッシュ５７のタグ「０１」のキャッシュブロックの値は「Ｅ’」のままであるので、キャッシュ有効フラグは「無効」のままとなる。
【００４３】
このように、図７に示す状態では、ＤＲＡＭ用キャッシュ５４とＤＲＡＭ５２とのキャッシュコヒーレンシは保たれ、且つ、ＭＲＡＭ用キャッシュ５７とＭＲＡＭ５５とのキャッシュコヒーレンシも保たれるようになる。ただし、ＤＲＡＭ用キャッシュ５４とＭＲＡＭ用キャッシュ５７とのコヒーレンシが保たれないままとなる。
【００４４】
図８は、図７に示す状態から、制御部５０の動作（プログラムの実行）に伴って、ＭＲＡＭ用キャッシュ５７に設けられたＭキャッシュコントローラが、ＭＲＡＭ５５のＭ第２アドレス群５５βのアドレス「０１１０」から読み出したデータ「Ｇ」を、ＭＲＡＭ用キャッシュ５７のタグ「０１」に新たなキャッシュブロックとして記憶させた状態を示している。このとき、ＭＲＡＭ用キャッシュ５７のタグ「０１」のキャッシュブロックの値は「Ｇ」となるので、ＭＲＡＭ用キャッシュ５７では、タグ「０１」に対応するＤＲＡＭ有効フラグが「無効」から「有効」に書き換わる。また、このとき、ＤＲＡＭ用キャッシュ５４のタグ「０１」のキャッシュブロックの値は「Ｇ」となり、且つ、ＭＲＡＭ用キャッシュ５７のタグ「０１」のキャッシュブロックの値も「Ｇ」となるので、キャッシュ有効フラグは「無効」から「有効」に書き換わる。これにより、制御部５０は、再び、ＤＲＡＭ用キャッシュ５４とＤＲＡＭ５２とのキャッシュコヒーレンシが保たれ、ＭＲＡＭ用キャッシュ５７とＭＲＡＭ５５とのキャッシュコヒーレンシが保たれ、且つ、ＤＲＡＭ用キャッシュ５４の記憶内容とＭＲＡＭ用キャッシュ５７の記憶内容とが一致する（コヒーレンシが保たれる）ようになる。したがって、図８に示す例では、タグ「００」〜「１１」の全てにおいて、ＤＲＡＭ有効フラグ、キャッシュ有効フラグおよびＭＲＡＭ有効フラグが、「有効」となる。
【００４５】
本実施の形態の画像形成装置１では、ＵＩ３０等を介して画像形成装置１の電源をオフする指示があった場合に、図８に示す状態となるまで電源の供給を行い、図８に示す状態となったときに、電源の切断を行う。これにより、電源をオフした後のＭＲＡＭ５５の記憶内容は、電源がオフされる前のＤＲＡＭ５２の記憶内容と同じとなる。そして、その後電源をオンして画像形成装置１を起動する際に、ＣＰＵ５１が、ＭＲＡＭ５５の記憶内容を読み出してプログラム等を実行する。これにより、電源をオンした後に実行される起動処理において、プログラムや変数等をＤＲＡＭ５２に記憶させるために要する時間を減らすことが可能となり、起動処理に要する時間を短くすることができる。また、このような構成を採用することで、ＤＲＡＭ５２への給電を一時的に休止するスタンバイモード等へ移行する頻度を高くすること、所謂ノーマリーオフへの設定が可能となり、制御部５０の消費電力を減らすことも可能となる。
【００４６】
また、本実施の形態では、ＤＲＡＭ５２にはＤＲＡＭ用キャッシュ５４を、ＭＲＡＭ５５にはＭＲＡＭ用キャッシュ５７を、それぞれ設けるようにした。ここで、ＤＲＡＭ用キャッシュ５４を設ける一方で、ＭＲＡＭ用キャッシュ５７を設けない構成を採用した場合には、ＤＲＡＭ用キャッシュ５４の記憶内容を直接ＭＲＡＭ５５にキャッシュフラッシュすることが必要となる。すると、本実施の形態では、ＤＲＡＭ５２のデータの読み書き速度に比べてＭＲＡＭ５５のデータの読み書き速度が低速であることから、ＤＲＡＭ用キャッシュ５４からＭＲＡＭ５５へのキャッシュフラッシュが完了するまで、ＤＲＡＭ用キャッシュ５４に記憶させるべき次のキャッシュブロックを配置することができなくなってしまい、ＣＰＵ５１の待ち時間が増加する分、ＣＰＵ５１の処理速度が低下することになる。
【００４７】
これに対し、本実施の形態では、ＤＲＡＭ５２とＭＲＡＭ５５とにそれぞれ専用のキャッシュ（ＤＲＡＭ用キャッシュ５４、ＭＲＡＭ用キャッシュ５７）を設け、ＤＲＡＭ用キャッシュ５４に対しＭＲＡＭ用キャッシュ５７を連動させて制御することとした。これに伴い、本実施の形態では、ＤＲＡＭ５２およびＤＲＡＭ用キャッシュ５４に対し、ＭＲＡＭ５５およびＭＲＡＭ用キャッシュ５７の記憶内容を、遅れつつも追従させて反映（記憶）させるようにした。これにより、ＤＲＡＭ５２およびＤＲＡＭ用キャッシュ５４では、ＭＲＡＭ５５側によるキャッシュフラッシュ（バックアップ処理）を待つ必要がなくなることから、ＣＰＵ５１の処理速度の低下を抑制することができる。
【符号の説明】
【００４８】
１…画像形成装置、２…ネットワーク、３…端末装置、４…ファクシミリ装置、５…サーバ装置、１０…画像読取部、２０…画像形成部、３０…ＵＩ、４０…送受信部、５０…制御部、５１…ＣＰＵ、５２…ＤＲＡＭ、５３…ＤＲＡＭ用メモリコントローラ、５４…ＤＲＡＭ用キャッシュ、５５…ＭＲＡＭ、５６…ＭＲＡＭ用メモリコントローラ、５７…ＭＲＡＭ用キャッシュ、５８…内部バス
【図１】
2014203306.tif 000003
【図２】
2014203306.tif 000004
【図３】
2014203306.tif 000005
【図４】
2014203306.tif 000006
【図５】
2014203306.tif 000007
【図６】
2014203306.tif 000008
【図７】
2014203306.tif 000009
【図８】
2014203306.tif 000010