(57)【特許請求の範囲】
【請求項１】
外部装置と、前記外部装置がアクセスするデータを記憶する第１記憶手段と、前記データを記憶し、前記データの書き換え可能回数が前記第１記憶手段より大きい第２記憶手段と、に接続されたアクセス制御装置であって、
前記外部装置が前記データをアクセスするために指定した外部アドレスと、前記第１記憶手段での前記データの記憶位置または前記第２記憶手段での前記データの記憶位置のいずれかを表す内部アドレスと、前記データの書き換え回数と、を対応づけた変換テーブルを記憶するテーブル記憶手段と、
書込みが指定された前記外部アドレスに対応する前記内部アドレスが前記第１記憶手段の前記内部アドレスであるか否かを判断し、前記第１記憶手段の前記内部アドレスである場合に、前記内部アドレスに対応する前記書き換え回数が予め定められた第１閾値を超えたか否かを判断する判断手段と、
前記書き換え回数が前記第１閾値を超えた前記第１記憶手段の前記内部アドレスに記憶された前記データを、前記第２記憶手段の前記内部アドレスに移動する移動手段と、
移動した前記データの前記外部アドレスに対応する前記内部アドレスを、移動先の前記内部アドレスに置換して前記変換テーブルを更新するテーブル更新手段と、
前記第２記憶手段の前記内部アドレスに対応する前記書き換え回数の和を算出する算出手段と、を備え、
前記判断手段は、さらに、前記和が予め定められた規定値の倍数であるか否かを判断し、
前記移動手段は、さらに、前記和が前記規定値の倍数である場合に、前記第２記憶手段の前記内部アドレスのうち、対応する前記書き換え回数が小さい順に予め定められた割合の前記内部アドレスに記憶された前記データを、前記第１記憶手段の前記内部アドレスに移動すること、
を特徴とするアクセス制御装置。
【請求項２】
前記テーブル記憶手段は、前記第２記憶手段の前記内部アドレスから前記第１記憶手段の前記内部アドレスに置換したか否かを表す変更履歴情報をさらに対応づけた前記変換テーブルを記憶し、
前記移動手段は、前記第２記憶手段の前記内部アドレスのうち、前記第２記憶手段の前記内部アドレスから前記第１記憶手段の前記内部アドレスに置換したことを表す前記変更履歴情報が対応づけられている前記内部アドレスの前記データは、前記第１記憶手段の前記内部アドレスに移動しないこと、
を特徴とする請求項１に記載のアクセス制御装置。
【請求項３】
前記外部装置との間で前記変換テーブルを送受信する送受信手段をさらに備えたこと、
を特徴とする請求項１に記載のアクセス制御装置。
【請求項４】
前記移動手段は、前記書き換え回数が前記第１閾値を超えた前記第１記憶手段の前記内部アドレスに記憶された前記データを、前記第２記憶手段の前記内部アドレスのうち、前記データが書き込まれていない前記内部アドレスに移動すること、
を特徴とする請求項１に記載のアクセス制御装置。
【請求項５】
前記判断手段は、さらに、前記第２記憶手段に前記データが書き込まれていない前記内部アドレスが存在するか否かを判断し、
前記移動手段は、前記第２記憶手段に前記データが書き込まれていない前記内部アドレスが存在しない場合に、前記書き換え回数が前記第１閾値を超えた前記第１記憶手段の前記内部アドレスに記憶された前記データを、前記第１記憶手段の前記データが書き込まれていない他の前記内部アドレスに移動すること、
を特徴とする請求項４に記載のアクセス制御装置。
【請求項６】
前記テーブル記憶手段は、前記第１記憶手段の前記内部アドレスから前記第１記憶手段の他の前記内部アドレスに置換したか否かを表す移動情報をさらに対応づけた前記変換テーブルを記憶すること、
を特徴とする請求項５に記載のアクセス制御装置。
【請求項７】
前記判断手段は、さらに、前記第２記憶手段に前記データが書き込まれていない前記内部アドレスが存在するか否かを判断し、
前記移動手段は、前記第２記憶手段に前記データが書き込まれていない前記内部アドレスが存在しない場合に、前記第２記憶手段の対応する前記書き換え回数が小さい順に予め定められた割合の前記内部アドレスのいずれかに移動すること、
を特徴とする請求項４に記載のアクセス制御装置。
【請求項８】
外部装置と、前記外部装置がアクセスするデータを記憶する第１記憶手段と、前記データを記憶し、前記データの書き換え可能回数が前記第１記憶手段より大きい第２記憶手段と、に接続されたアクセス制御装置におけるアクセス制御方法であって、
前記アクセス制御装置は、
前記外部装置が前記データをアクセスするために指定した外部アドレスと、前記第１記憶手段での前記データの記憶位置または前記第２記憶手段での前記データの記憶位置のいずれかを表す内部アドレスと、前記データの書き換え回数と、を対応づけた変換テーブルを記憶するテーブル記憶手段を備え、
判断手段が、書込みが指定された前記外部アドレスに対応する前記内部アドレスが前記第１記憶手段の前記内部アドレスであるか否かを判断し、前記第１記憶手段の前記内部アドレスである場合に、前記内部アドレスに対応する前記書き換え回数が予め定められた第１閾値を超えたか否かを判断する第１判断ステップと、
移動手段が、前記書き換え回数が前記第１閾値を超えた前記第１記憶手段の前記内部アドレスに記憶された前記データを、前記第２記憶手段の前記内部アドレスに移動する第１移動ステップと、
テーブル更新手段が、移動した前記データの前記外部アドレスに対応する前記内部アドレスを、移動先の前記内部アドレスに置換して前記変換テーブルを更新するテーブル更新ステップと、
算出手段が、前記第２記憶手段の前記内部アドレスに対応する前記書き換え回数の和を算出する算出ステップと、
前記判断手段が、前記和が予め定められた規定値の倍数であるか否かを判断する第２判断ステップと、
前記移動手段が、さらに、前記和が前記規定値の倍数である場合に、前記第２記憶手段の前記内部アドレスのうち、対応する前記書き換え回数が小さい順に予め定められた割合の前記内部アドレスに記憶された前記データを、前記第１記憶手段の前記内部アドレスに移動する第２移動ステップと、
を含むことを特徴とするアクセス制御方法。
【請求項９】
前記テーブル記憶手段は、前記第２記憶手段の前記内部アドレスから前記第１記憶手段の前記内部アドレスに置換したか否かを表す変更履歴情報をさらに対応づけた前記変換テーブルを記憶し、
前記第２移動ステップは、前記第２記憶手段の前記内部アドレスのうち、前記第２記憶手段の前記内部アドレスから前記第１記憶手段の前記内部アドレスに置換したことを表す前記変更履歴情報が対応づけられている前記内部アドレスの前記データは、前記第１記憶手段の前記内部アドレスに移動しないこと、
を特徴とする請求項８に記載のアクセス制御方法。
【請求項１０】
送受信手段が、前記外部装置との間で前記変換テーブルを送受信する送受信ステップをさらに備えたこと、
を特徴とする請求項８に記載のアクセス制御方法。
【請求項１１】
前記第１移動ステップは、前記書き換え回数が前記第１閾値を超えた前記第１記憶手段の前記内部アドレスに記憶された前記データを、前記第２記憶手段の前記内部アドレスのうち、前記データが書き込まれていない前記内部アドレスに移動すること、
を特徴とする請求項８に記載のアクセス制御方法。
【請求項１２】
前記第１判断ステップは、さらに、前記第２記憶手段に前記データが書き込まれていない前記内部アドレスが存在するか否かを判断し、
前記第１移動ステップは、前記第２記憶手段に前記データが書き込まれていない前記内部アドレスが存在しない場合に、前記書き換え回数が前記第１閾値を超えた前記第１記憶手段の前記内部アドレスに記憶された前記データを、前記第１記憶手段の前記データが書き込まれていない他の前記内部アドレスに移動すること、
を特徴とする請求項１１に記載のアクセス制御方法。
【請求項１３】
前記テーブル記憶手段は、前記第１記憶手段の前記内部アドレスから前記第１記憶手段の他の前記内部アドレスに置換したか否かを表す移動情報をさらに対応づけた前記変換テーブルを記憶すること、
を特徴とする請求項１２に記載のアクセス制御方法。
【請求項１４】
前記第１判断ステップは、さらに、前記第２記憶手段に前記データが書き込まれていない前記内部アドレスが存在するか否かを判断し、
前記第１移動ステップは、前記第２記憶手段に前記データが書き込まれていない前記内部アドレスが存在しない場合に、前記第２記憶手段の対応する前記書き換え回数が小さい順に予め定められた割合の前記内部アドレスのいずれかに移動すること、
を特徴とする請求項１１に記載のアクセス制御方法。
【請求項１５】
請求項８に記載のアクセス制御方法をコンピュータに実行させるアクセス制御プログラム。
【請求項１６】
コンピュータに実行させる請求項１５に記載のアクセス制御プログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１７】
外部装置がアクセスする前記データを記憶する第１記憶手段と、
前記データを記憶し、前記データの書き換え可能回数が前記第１記憶手段より大きい第２記憶手段と、
前記外部装置が前記データをアクセスするために指定した外部アドレスと、前記第１記憶手段での前記データの記憶位置または前記第２記憶手段での前記データの記憶位置のいずれかを表す内部アドレスと、前記データの書き換え回数と、を対応づけた変換テーブルを記憶するテーブル記憶手段と、
書込みが指定された前記外部アドレスに対応する前記内部アドレスが前記第１記憶手段の前記内部アドレスであるか否かを判断し、前記第１記憶手段の前記内部アドレスである場合に、前記内部アドレスに対応する前記書き換え回数が予め定められた第１閾値を超えたか否かを判断する判断手段と、
前記書き換え回数が前記第１閾値を超えた前記第１記憶手段の前記内部アドレスに記憶された前記データを、前記第２記憶手段の前記内部アドレスに移動する移動手段と、
移動した前記データの前記外部アドレスに対応する前記内部アドレスを、移動先の前記内部アドレスに置換して前記変換テーブルを更新するテーブル更新手段と、
前記第２記憶手段の前記内部アドレスに対応する前記書き換え回数の和を算出する算出手段と、を備え、
前記判断手段は、さらに、前記和が予め定められた規定値の倍数であるか否かを判断し、
前記移動手段は、さらに、前記和が前記規定値の倍数である場合に、前記第２記憶手段の前記内部アドレスのうち、対応する前記書き換え回数が小さい順に予め定められた割合の前記内部アドレスに記憶された前記データを、前記第１記憶手段の前記内部アドレスに移動すること、
を特徴とする記憶装置。
【請求項１８】
プリンタ部またはスキャナ部を備え、入力した画像データを処理する画像処理装置であって、
前記画像データを記憶する第１記憶手段と、
前記画像データを記憶し、前記画像データの書き換え可能回数が前記第１記憶手段より大きい第２記憶手段と、
前記画像データをアクセスするために指定される外部アドレスと、前記第１記憶手段での前記画像データの記憶位置または前記第２記憶手段での前記画像データの記憶位置のいずれかを表す内部アドレスと、前記画像データの書き換え回数と、を対応づけた変換テーブルを記憶するテーブル記憶手段と、
書込みが指定された前記外部アドレスに対応する前記内部アドレスが前記第１記憶手段の前記内部アドレスであるか否かを判断し、前記第１記憶手段の前記内部アドレスである場合に、前記内部アドレスに対応する前記書き換え回数が予め定められた第１閾値を超えたか否かを判断する判断手段と、
前記書き換え回数が前記第１閾値を超えた前記第１記憶手段の前記内部アドレスに記憶された前記画像データを、前記第２記憶手段の前記内部アドレスに移動する移動手段と、
移動した前記画像データの前記外部アドレスに対応する前記内部アドレスを、移動先の前記内部アドレスに置換して前記変換テーブルを更新するテーブル更新手段と、
前記第２記憶手段の前記内部アドレスに対応する前記書き換え回数の和を算出する算出手段と、を備え、
前記判断手段は、さらに、前記和が予め定められた規定値の倍数であるか否かを判断し、
前記移動手段は、さらに、前記和が前記規定値の倍数である場合に、前記第２記憶手段の前記内部アドレスのうち、対応する前記書き換え回数が小さい順に予め定められた割合の前記内部アドレスに記憶された前記データを、前記第１記憶手段の前記内部アドレスに移動すること、
を特徴とする画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、記憶装置に対するアクセスを制御するアクセス制御装置、アクセス制御方法、アクセス制御プログラム、記録媒体、記憶装置、およびプリンタ、スキャナ、ＦＡＸ、複写機、複合機等の画像処理装置に関するものである。
【背景技術】
【０００２】
データを格納する記憶装置として、ハードディスクドライブ（ＨＤＤ）が広く用いられている。また、ＨＤＤとは異なる不揮発性の記憶装置で用いる記憶媒体として、ＮＡＮＤ型フラッシュメモリ（以下、ＮＡＮＤ  ＦＬＡＳＨという）や、ＦｅＲＡＭ（Ferroelectric Random Access Memory）が広く知られている。
【０００３】
ＮＡＮＤ  ＦＬＡＳＨは、主にＳＬＣ（Single Level Cell）とＭＬＣ(Multi Level Cell)の２つの種類に分類される。ＳＬＣとＭＬＣとでは、データを書き換え可能な回数の上限や製造コストがそれぞれ異なっている。例えば、ＳＬＣおよびＭＬＣは、それぞれ約１０万回および約１万回の書き換えが可能である。また、ＭＬＣの方がＳＬＣよりも製造コストが小さい。
【０００４】
一方、ＦｅＲＡＭの書き換え可能回数は１００億回〜１０００億回であり、ＮＡＮＤ  ＦＬＡＳＨと比較して非常に大きい。ただし、ＦｅＲＡＭは高集積化が実現されていないため、ビット単価が高いという欠点がある。
【０００５】
特許文献１では、電源起動時にフラッシュメモリ内で書き換え頻度の大きいファイル管理情報を揮発性メモリに書込み、揮発性メモリ上でファイル管理情報を更新し、電源遮断時に更新後の情報をフラッシュメモリに書き込む記憶装置が提案されている。これにより、アクセス寿命の小さいフラッシュメモリで構成した記憶装置の寿命を延ばすことを可能としている。
【０００６】
【特許文献１】特開２００６−２５２５３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
記憶装置の長寿命化を考慮すれば、書き換え可能回数が大きいＦｅＲＡＭを利用することが望ましいが、コストが非常に高くなるという問題がある。そこで、記憶装置内の記憶媒体として、ＦｅＲＡＭより低コストのＭＬＣやＳＬＣを、ＦｅＲＡＭとともに利用する方法が考えられる。この方法では、アクセス要求元が指定するデータのアドレスと、実際にデータを記憶している記憶媒体のアドレスとを対応づけた変換テーブルを利用する。これにより、アクセス要求元は、データがいずれの記憶媒体に記憶されているかを意識することなく、１つの記憶装置として認識することができる。
【０００８】
しかしながら、各記憶媒体の書き換え可能な回数が異なるため、例えば、書き換え可能な回数の小さいＭＬＣ内に、書き換え頻度が高いデータが記憶されていた場合、不良ブロックの発生確率が増加する。この場合、ウェアレベリングを行い、書き換え回数を記憶装置内で平均化したとしても記憶装置全体の寿命が短くなるという問題が生じうる。
【０００９】
本発明は、上記に鑑みてなされたものであって、データの書き換え頻度に応じて適切な記憶媒体を割り当てることができるアクセス制御装置、アクセス制御方法、アクセス制御プログラム、記録媒体、記憶装置および画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するために、請求項１にかかる発明は、外部装置と、前記外部装置がアクセスするデータを記憶する第１記憶手段と、前記データを記憶し、前記データの書き換え可能回数が前記第１記憶手段より大きい第２記憶手段と、に接続されたアクセス制御装置であって、前記外部装置が前記データをアクセスするために指定した外部アドレスと、前記第１記憶手段での前記データの記憶位置または前記第２記憶手段での前記データの記憶位置のいずれかを表す内部アドレスと、前記データの書き換え回数と、を対応づけた変換テーブルを記憶するテーブル記憶手段と、書込みが指定された前記外部アドレスに対応する前記内部アドレスが前記第１記憶手段の前記内部アドレスであるか否かを判断し、前記第１記憶手段の前記内部アドレスである場合に、前記内部アドレスに対応する前記書き換え回数が予め定められた第１閾値を超えたか否かを判断する判断手段と、前記書き換え回数が前記第１閾値を超えた前記第１記憶手段の前記内部アドレスに記憶された前記データを、前記第２記憶手段の前記内部アドレスに移動する移動手段と、移動した前記データの前記外部アドレスに対応する前記内部アドレスを、移動先の前記内部アドレスに置換して前記変換テーブルを更新するテーブル更新手段と、前記第２記憶手段の前記内部アドレスに対応する前記書き換え回数の和を算出する算出手段と、を備え、前記判断手段は、さらに、前記和が予め定められた規定値の倍数であるか否かを判断し、前記移動手段は、さらに、前記和が前記規定値の倍数である場合に、前記第２記憶手段の前記内部アドレスのうち、対応する前記書き換え回数が小さい順に予め定められた割合の前記内部アドレスに記憶された前記データを、前記第１記憶手段の前記内部アドレスに移動すること、を特徴とする。
【００１２】
また、請求項２にかかる発明は、請求項１にかかる発明において、前記テーブル記憶手段は、前記第２記憶手段の前記内部アドレスから前記第１記憶手段の前記内部アドレスに置換したか否かを表す変更履歴情報をさらに対応づけた前記変換テーブルを記憶し、前記移動手段は、前記第２記憶手段の前記内部アドレスのうち、前記第２記憶手段の前記内部アドレスから前記第１記憶手段の前記内部アドレスに置換したことを表す前記変更履歴情報が対応づけられている前記内部アドレスの前記データは、前記第１記憶手段の前記内部アドレスに移動しないこと、を特徴とする。
【００１３】
また、請求項３にかかる発明は、請求項１にかかる発明において、前記外部装置との間で前記変換テーブルを送受信する送受信手段をさらに備えたこと、を特徴とする。
【００１４】
また、請求項４にかかる発明は、請求項１にかかる発明において、前記移動手段は、前記書き換え回数が前記第１閾値を超えた前記第１記憶手段の前記内部アドレスに記憶された前記データを、前記第２記憶手段の前記内部アドレスのうち、前記データが書き込まれていない前記内部アドレスに移動すること、を特徴とする。
【００１５】
また、請求項５にかかる発明は、請求項４にかかる発明において、前記判断手段は、さらに、前記第２記憶手段に前記データが書き込まれていない前記内部アドレスが存在するか否かを判断し、前記移動手段は、前記第２記憶手段に前記データが書き込まれていない前記内部アドレスが存在しない場合に、前記書き換え回数が前記第１閾値を超えた前記第１記憶手段の前記内部アドレスに記憶された前記データを、前記第１記憶手段の前記データが書き込まれていない他の前記内部アドレスに移動すること、を特徴とする。
【００１６】
また、請求項６にかかる発明は、請求項５にかかる発明において、前記テーブル記憶手段は、前記第１記憶手段の前記内部アドレスから前記第１記憶手段の他の前記内部アドレスに置換したか否かを表す移動情報をさらに対応づけた前記変換テーブルを記憶すること、を特徴とする。
【００１７】
また、請求項７にかかる発明は、請求項４にかかる発明において、前記判断手段は、さらに、前記第２記憶手段に前記データが書き込まれていない前記内部アドレスが存在するか否かを判断し、前記移動手段は、前記第２記憶手段に前記データが書き込まれていない前記内部アドレスが存在しない場合に、前記第２記憶手段の対応する前記書き換え回数が小さい順に予め定められた割合の前記内部アドレスのいずれかに移動すること、を特徴とする。
【００１８】
また、請求項８にかかる発明は、外部装置と、前記外部装置がアクセスするデータを記憶する第１記憶手段と、前記データを記憶し、前記データの書き換え可能回数が前記第１記憶手段より大きい第２記憶手段と、に接続されたアクセス制御装置におけるアクセス制御方法であって、前記アクセス制御装置は、前記外部装置が前記データをアクセスするために指定した外部アドレスと、前記第１記憶手段での前記データの記憶位置または前記第２記憶手段での前記データの記憶位置のいずれかを表す内部アドレスと、前記データの書き換え回数と、を対応づけた変換テーブルを記憶するテーブル記憶手段を備え、判断手段が、書込みが指定された前記外部アドレスに対応する前記内部アドレスが前記第１記憶手段の前記内部アドレスであるか否かを判断し、前記第１記憶手段の前記内部アドレスである場合に、前記内部アドレスに対応する前記書き換え回数が予め定められた第１閾値を超えたか否かを判断する第１判断ステップと、移動手段が、前記書き換え回数が前記第１閾値を超えた前記第１記憶手段の前記内部アドレスに記憶された前記データを、前記第２記憶手段の前記内部アドレスに移動する第１移動ステップと、テーブル更新手段が、移動した前記データの前記外部アドレスに対応する前記内部アドレスを、移動先の前記内部アドレスに置換して前記変換テーブルを更新するテーブル更新ステップと、算出手段が、前記第２記憶手段の前記内部アドレスに対応する前記書き換え回数の和を算出する算出ステップと、前記判断手段が、前記和が予め定められた規定値の倍数であるか否かを判断する第２判断ステップと、前記移動手段が、さらに、前記和が前記規定値の倍数である場合に、前記第２記憶手段の前記内部アドレスのうち、対応する前記書き換え回数が小さい順に予め定められた割合の前記内部アドレスに記憶された前記データを、前記第１記憶手段の前記内部アドレスに移動する第２移動ステップと、を含むことを特徴とする。
【００２０】
また、請求項９にかかる発明は、請求項８にかかる発明において、前記テーブル記憶手段は、前記第２記憶手段の前記内部アドレスから前記第１記憶手段の前記内部アドレスに置換したか否かを表す変更履歴情報をさらに対応づけた前記変換テーブルを記憶し、前記第２移動ステップは、前記第２記憶手段の前記内部アドレスのうち、前記第２記憶手段の前記内部アドレスから前記第１記憶手段の前記内部アドレスに置換したことを表す前記変更履歴情報が対応づけられている前記内部アドレスの前記データは、前記第１記憶手段の前記内部アドレスに移動しないこと、を特徴とする。 
【００２１】
また、請求項１０にかかる発明は、請求項８にかかる発明において、送受信手段が、前記外部装置との間で前記変換テーブルを送受信する送受信ステップをさらに備えたこと、を特徴とする。
【００２２】
また、請求項１１にかかる発明は、請求項８にかかる発明において、前記第１移動ステップは、前記書き換え回数が前記第１閾値を超えた前記第１記憶手段の前記内部アドレスに記憶された前記データを、前記第２記憶手段の前記内部アドレスのうち、前記データが書き込まれていない前記内部アドレスに移動すること、を特徴とする。
【００２３】
また、請求項１２にかかる発明は、請求項１１にかかる発明において、前記第１判断ステップは、さらに、前記第２記憶手段に前記データが書き込まれていない前記内部アドレスが存在するか否かを判断し、前記第１移動ステップは、前記第２記憶手段に前記データが書き込まれていない前記内部アドレスが存在しない場合に、前記書き換え回数が前記第１閾値を超えた前記第１記憶手段の前記内部アドレスに記憶された前記データを、前記第１記憶手段の前記データが書き込まれていない他の前記内部アドレスに移動すること、を特徴とする。
【００２４】
また、請求項１３にかかる発明は、請求項１２にかかる発明において、前記テーブル記憶手段は、前記第１記憶手段の前記内部アドレスから前記第１記憶手段の他の前記内部アドレスに置換したか否かを表す移動情報をさらに対応づけた前記変換テーブルを記憶すること、を特徴とする。
【００２５】
また、請求項１４にかかる発明は、請求項１１にかかる発明において、前記第１判断ステップは、さらに、前記第２記憶手段に前記データが書き込まれていない前記内部アドレスが存在するか否かを判断し、前記第１移動ステップは、前記第２記憶手段に前記データが書き込まれていない前記内部アドレスが存在しない場合に、前記第２記憶手段の対応する前記書き換え回数が小さい順に予め定められた割合の前記内部アドレスのいずれかに移動すること、を特徴とする。
【００２６】
また、請求項１５にかかる発明は、請求項８に記載のアクセス制御方法をコンピュータに実行させるアクセス制御プログラムである。
【００２７】
また、請求項１６にかかる発明は、コンピュータに実行させる請求項１５に記載のアクセス制御プログラムを記録したことを特徴とするコンピュータ読み取り可能な記録媒体である。
【００２８】
また、請求項１７にかかる発明は、外部装置がアクセスする前記データを記憶する第１記憶手段と、前記データを記憶し、前記データの書き換え可能回数が前記第１記憶手段より大きい第２記憶手段と、前記外部装置が前記データをアクセスするために指定した外部アドレスと、前記第１記憶手段での前記データの記憶位置または前記第２記憶手段での前記データの記憶位置のいずれかを表す内部アドレスと、前記データの書き換え回数と、を対応づけた変換テーブルを記憶するテーブル記憶手段と、書込みが指定された前記外部アドレスに対応する前記内部アドレスが前記第１記憶手段の前記内部アドレスであるか否かを判断し、前記第１記憶手段の前記内部アドレスである場合に、前記内部アドレスに対応する前記書き換え回数が予め定められた第１閾値を超えたか否かを判断する判断手段と、前記書き換え回数が前記第１閾値を超えた前記第１記憶手段の前記内部アドレスに記憶された前記データを、前記第２記憶手段の前記内部アドレスに移動する移動手段と、移動した前記データの前記外部アドレスに対応する前記内部アドレスを、移動先の前記内部アドレスに置換して前記変換テーブルを更新するテーブル更新手段と、前記第２記憶手段の前記内部アドレスに対応する前記書き換え回数の和を算出する算出手段と、を備え、前記判断手段は、さらに、前記和が予め定められた規定値の倍数であるか否かを判断し、前記移動手段は、さらに、前記和が前記規定値の倍数である場合に、前記第２記憶手段の前記内部アドレスのうち、対応する前記書き換え回数が小さい順に予め定められた割合の前記内部アドレスに記憶された前記データを、前記第１記憶手段の前記内部アドレスに移動すること、を特徴とする。
【００２９】
また、請求項１８にかかる発明は、プリンタ部またはスキャナ部を備え、入力した画像データを処理する画像処理装置であって、前記画像データを記憶する第１記憶手段と、前記画像データを記憶し、前記画像データの書き換え可能回数が前記第１記憶手段より大きい第２記憶手段と、前記画像データをアクセスするために指定される外部アドレスと、前記第１記憶手段での前記画像データの記憶位置または前記第２記憶手段での前記画像データの記憶位置のいずれかを表す内部アドレスと、前記画像データの書き換え回数と、を対応づけた変換テーブルを記憶するテーブル記憶手段と、書込みが指定された前記外部アドレスに対応する前記内部アドレスが前記第１記憶手段の前記内部アドレスであるか否かを判断し、前記第１記憶手段の前記内部アドレスである場合に、前記内部アドレスに対応する前記書き換え回数が予め定められた第１閾値を超えたか否かを判断する判断手段と、前記書き換え回数が前記第１閾値を超えた前記第１記憶手段の前記内部アドレスに記憶された前記画像データを、前記第２記憶手段の前記内部アドレスに移動する移動手段と、移動した前記画像データの前記外部アドレスに対応する前記内部アドレスを、移動先の前記内部アドレスに置換して前記変換テーブルを更新するテーブル更新手段と、前記第２記憶手段の前記内部アドレスに対応する前記書き換え回数の和を算出する算出手段と、を備え、前記判断手段は、さらに、前記和が予め定められた規定値の倍数であるか否かを判断し、前記移動手段は、さらに、前記和が前記規定値の倍数である場合に、前記第２記憶手段の前記内部アドレスのうち、対応する前記書き換え回数が小さい順に予め定められた割合の前記内部アドレスに記憶された前記データを、前記第１記憶手段の前記内部アドレスに移動すること、を特徴とする。
【発明の効果】
【００３０】
本発明によれば、データの書き換え頻度に応じて適切な記憶媒体を割り当てることができるという効果を奏する。
【発明を実施するための最良の形態】
【００３１】
以下に添付図面を参照して、この発明にかかるアクセス制御装置の最良な実施の形態を詳細に説明する。以下では、本発明にかかるアクセス制御装置を、像担持体上に画像を形成する作像部、形成された画像を記録紙に定着する定着部などのデバイスを備えた画像処理装置である複合機に適用した例について説明する。なお、適用可能な装置は複合機に限られるものではなく、ＮＡＮＤ  ＦＬＡＳＨなどの不揮発性記憶媒体にデータを格納する装置であれば、パーソナルコンピュータなどのその他のあらゆる電子装置に適用することができる。
【００３２】
（第１の実施の形態）
第１の実施の形態にかかる複合機は、書き換え可能回数の上限値が異なる複数の記憶媒体によって記憶装置を構成し、上限値が小さい記憶媒体に対する書き換え回数が所定の閾値を超えた場合は、上限値が大きい記憶媒体で代替するように変換テーブルの更新等を実行するものである。
【００３３】
図１は、第１の実施の形態にかかる複合機１００の構成を示す簡略的な図である。複合機１００は、スキャナ部１０１とレーザー記録部１０２で画像の形成、用紙への印字を行い、後処理部１０３で出力紙揃え、ステープル、パンチ穴の処理が行われる。
【００３４】
スキャナ部１０１は、透明ガラス体の原稿台１０４、原稿台１０４の上面の原稿を給送する自動両面原稿送り装置１０５（以下、ＲＡＤＦという。）、原稿台１０４の上面に載置された原稿の画像を読みとるスキャナユニット１０６によって構成されている。
【００３５】
スキャナ部１０１で読みとられた画像データは、レーザー記録部１０２に出力される。
【００３６】
ＲＡＤＦ１０５は、図外の原稿トレイから原稿台１０４を経由して図外の排出トレイに至る片面原稿給送路、スキャナユニット１０６による片面の画像の読み取りが完了した原稿の表裏面を反転して再度原稿台１０４に導く両面原稿給送路を有し、片面、両面の原稿どちらでも対応できる。
【００３７】
スキャナユニット１０６は、原稿をランプで照射し、レンズ、ミラー等で原稿の反射光を光電変換素子の受光面に結像させる。光電変換素子は原稿の画像面における反射光を電気信号に変換し、画像処理部２０４（図２で後述）に出力する。
【００３８】
レーザー記録部１０２は、用紙を搬送する用紙搬送部１０７、レーザー書込ユニット１０８及び電子写真プロセス部（画像形成部）１０９を備えている。
【００３９】
用紙搬送部１０７は、用紙の両面に画像を形成する両面複写モード時、定着ローラを通過した用紙を表裏面を反転して再度電子写真プロセス部１０９に導く副搬送路を備えている。
【００４０】
レーザー書込ユニット１０８は、画像処理部２０４から供給される画像データに基づいてレーザー光を照射する半導体レーザー、半導体レーザーから照射された光をミラーやレンズを通して電子写真プロセス部１０９の感光体ドラム表面に配光する。感光ドラム表面は静電潜像が形成され、現像装置からトナーが供給されることにより、トナー画像に顕在化される。
【００４１】
このトナー画像は、用紙搬送部１０７から導かれた用紙上に転写され、その後、定着ローラにより、加熱及び加圧を受け、トナー画像が溶融して用紙の表面に定着する。
【００４２】
このように用紙に書き込みが終了した後、後処理部１０３にて一部分の出力用紙が揃えられ、ステープル、パンチ穴の処理が行われ、トレーに排出される。
【００４３】
次に、複合機１００の詳細な構成と機能について図２を用いて説明する。図２は、第１の実施の形態にかかる複合機１００の詳細な構成を示すブロック図である。
【００４４】
図２に示すように、複合機１００は、主なハードウェア構成として、上述の後処理部１０３、ＲＡＤＦ１０５、スキャナユニット１０６、用紙搬送部１０７、レーザー書込ユニット１０８、および電子写真プロセス部１０９の他に、両面印刷時に用いる両面ユニット２１７と、操作パネル２２５と、記憶装置３００と、を備えている。
【００４５】
また、これらの各部を制御する制御部として、オペレーションパネルボード２２８と、マシンコントロールボード２３１と、ＣＣＤボード２１０と、画像処理ボード２０１と、を備えている。
【００４６】
操作パネル２２５は、複合機１００の上面に設けられたＬＣＤ（Liquid Crystal Display）２２３と操作キー２２４とを備えている。
【００４７】
オペレーションパネルボード２２８は、作業領域であるＲＡＭ２２７と、ＲＡＭ２２７を用いて操作パネル２２５の制御を行うＣＰＵ２２６とを備えている。
【００４８】
マシンコントロールボード２３１は、両面ユニット２１７、後処理部１０３、ＲＡＤＦ１０５、スキャナユニット１０６、用紙搬送部１０７、レーザー書込ユニット１０８、および電子写真プロセス部１０９を含む各機器を管理するものである。マシンコントロールボード２３１は、作業領域であるＲＡＭ２２９と、ＲＡＭ２２９を用いて各機器を管理する制御を行うＣＰＵ２３０とを備えている。
【００４９】
なお、後処理部１０３は、後処理部１０３の動作を制御するＣＰＵ２２２を備えている。また、ＲＡＤＦ１０５は、ＲＡＤＦ１０５の動作を制御するＣＰＵ２２１を備えている。
【００５０】
ＣＣＤボード２１０は、光電変換素子であるＣＣＤ２１３と、ＣＣＤ２１３の周辺部品として、Ａ／Ｄ変換部２１１と、ＣＣＤ制御部２１２と、アナログ回路２１４とを備えている。
【００５１】
画像処理ボード２０１は、画像データに対して各種の画像処理を施すＣＰＵ２０２と、ＣＰＵ２０２の周辺部品として、ＲＡＭ２０３と、画像処理部２０４と、レーザコントロール部２０７と、画像蓄積制御部２０５と、データ蓄積部２０６と、Ｉ／Ｆコントローラ２０８と、を備えている。
【００５２】
なお、複合機１００は、画像処理ボード２０１に搭載されたＣＰＵ２０２により、ユニットごとに配置された各ボードに搭載されたＣＰＵを介して、各ユニットを構成する機器を統括して制御する。ＲＡＭ２０３は、ＣＰＵ２０２の作業領域としても使用される。
【００５３】
次に、この複合機１００におけるコピーモードの画像データの処理について説明する。
【００５４】
まず、ＲＡＤＦ１０５を介して原稿台１０４に給送された原稿の画像は、スキャナユニット１０６で順次読みとられる。
【００５５】
スキャナユニット１０６内のＣＣＤボード２１０上のＣＣＤ２１３は、ＣＣＤ制御部２１２によって駆動される。そして、ＣＣＤ２１３の出力信号は、アナログ回路２１４でゲイン調整が行われた後、Ａ／Ｄ変換部２１１から８ビットの画像データとして画像処理ボード２０１に送られる。
【００５６】
画像データは、画像処理部２０４で所定の画像処理が施された後、画像蓄積制御部２０５により、データ蓄積部２０６に蓄えられる。
【００５７】
データ蓄積部２０６に蓄えられた画像データは、記憶装置３００に格納される。これらの処理がＲＡＤＦ１０５にセットされた全ての原稿について実行される。
【００５８】
画像の読み取り終了後、記憶装置３００に格納された複数枚の画像データは、画像蓄積制御部２０５により、ページ順に読み出す処理が設定部数分だけ繰り返される。画像データは、画像処理部２０４で所定の画像処理が実行された後、レーザコントロール部２０７を介してレーザー書込ユニット１０８に供給される。そして、レーザー書込ユニット１０８が、用紙に画像データを書き込む。画像データの書き込み後、後処理部１０３で一部分の出力用紙が揃えられ、ステープル、パンチ穴の処理が行われ、排出トレイに排出される。
【００５９】
従って各原稿の画像を複数部ずつ画像形成する場合にも各原稿の画像についての読み取り動作は、１回行うだけでよい。
【００６０】
次に、記憶装置３００のハードウェア構成について図３を用いて説明する。図３に示すように、記憶装置３００は、主なハードウェア構成として、ＭＬＣ方式のＮＡＮＤ  ＦＬＡＳＨ（以下、単にＭＬＣ３０１という）と、ＳＬＣ方式のＮＡＮＤ  ＦＬＡＳＨ（以下、単にＳＬＣ３０２という）と、ＦｅＲＡＭ３０３と、ＭＬＣ３０１を制御するＮＡＮＤ  ＦＬＡＳＨ  ＭＬＣコントローラ３１１と、ＳＬＣ３０２を制御するＮＡＮＤ  ＦＬＡＳＨ  ＳＬＣコントローラ３１２、ＦｅＲＡＭコントローラ３１３と、制御部３２０と、を備えている。
【００６１】
このように、記憶装置３００は、ＭＬＣ３０１、ＳＬＣ３０２、およびＦｅＲＡＭ３０３の順で書き換え可能回数が大きくなる３つの記憶媒体を備えている。なお、記憶装置３００を構成する記憶媒体の組み合わせは、ＭＬＣ３０１、ＳＬＣ３０２、およびＦｅＲＡＭ３０３に限られるものではない。書き換え可能回数が異なる複数の記憶媒体を組み合わせるものであれば、あらゆる記憶媒体の組み合わせで記憶装置３００を構成することができる。
【００６２】
例えば、４値（２ビット）または１６値（４ビット）などのように多値レベルの異なる複数のＭＬＣ方式のＮＡＮＤ  ＦＬＡＳＨを組み合わせるように構成してもよい。
【００６３】
次に、制御部３２０のハードウェア構成について説明する。図３に示すように、制御部３２０は、主なハードウェア構成として、ＣＰＵ３２１と、ＲＡＭ３２２と、ＦＬＡＳＨ  ＲＯＭ３２３と、Ｉ／Ｆコントローラ３２４とを備えている。
【００６４】
ＦＬＡＳＨ  ＲＯＭ３２３は、アクセス制御処理を実行するアクセス制御プログラムや、変換テーブルなどを格納する。ＣＰＵ３２１は、ＦＬＡＳＨ  ＲＯＭ３２３内のプログラムに従って複合機１００の各部を制御する。ＲＡＭ３２２は、複合機１００の制御に必要な種々のデータを記憶する。
【００６５】
Ｉ／Ｆコントローラ３２４は、記憶装置３００へのアクセス制御を実行するものである。例えば、Ｉ／Ｆコントローラ３２４は、画像処理ボード２０１から送信されたアクセスコマンドを受信しＲＡＭ３２２に記憶する。Ｉ／Ｆコントローラ３２４は、例えば、ＡＴＡ規格に準拠したアクセスコマンドを制御可能なＡＴＡコントローラとして実現することができる。
【００６６】
なお、Ｉ／Ｆコントローラの種類はこれに限られるものではなく、ＳｅｒｉａｌＡＴＡ、ＵＳＢ（Universal Serial Bus）、ＩＥＥＥ（Institute of Electrical and Electronic Engineers）１３９４、ＳＰＩ（Serial Peripheral Interface）、Ｉ２Ｃ（Inter-Integrated Circuit）、ＤＲＡＭ  ＢＵＳ、およびＣＳ、ＷＥ、ＯＥ、ＡＤＤＲＥＳＳ、ＤＡＴＡ等の信号を使用するＳＲＡＭ等の記憶媒体で利用されるインターフェースなどのあらゆるインターフェース規格を適用できる。
【００６７】
なお、記憶装置３００に接続された画像処理ボード２０１などのホストから発行されたコマンドは、Ｉ／Ｆコントローラ３２４を経由してＲＡＭ３２２に一時蓄えられる。ＣＰＵ３２１は、ＲＡＭ３２２に蓄えられたコマンド内のＬＢＡ（Logical Block Address）をキーとして変換テーブルを参照し、アクセス先となる記憶媒体とアドレスを特定する。また、制御部３２０では、記憶媒体に対するアクセス単位の変換も行う。例えば、制御部３２０は、ＭＬＣ３０１、ＳＬＣ３０２、およびＦｅＲＡＭ３０３にアクセスするときにも、アクセス単位を５１２バイトに揃えてアクセスする。
【００６８】
ここで、ＦＬＡＳＨ  ＲＯＭ３２３に記憶される変換テーブルの構成について説明する。図４は、第１の実施の形態における変換テーブルのデータ構造の一例を示す説明図である。図４に示すように、変換テーブルは、ホストＬＢＡと、割り当てデバイスと、デバイスＬＢＡと、使用・未使用フラグと、書き換え回数とを対応づけて記憶している。
【００６９】
ホストＬＢＡは、記憶装置３００に接続された画像処理ボード２０１などのホスト側が、データにアクセスするために指定するアドレス（外部アドレス）である。このように、記憶装置３００は、一般に利用されているＨＤＤなどと同様に、セクタ（５１２バイト）を１単位とするＬＢＡによってアクセスが制御される。なお、ＬＢＡの単位は５１２バイトに限られるものではない。また、ホストＬＢＡをさらにグループ化したブロック単位で書き換え回数を管理するように変換テーブルを構成してもよい。
【００７０】
割り当てデバイスは、ホストＬＢＡで指定されるデータの格納領域として割り当てる記憶媒体（デバイス）の種類（ＭＬＣ、ＳＬＣ、またはＦｅＲＡＭ）を設定する。デバイスＬＢＡは、割り当てデバイス内でのデータのアドレス（内部アドレス）を設定する。使用・未使用フラグは、割り当てデバイスのデバイスＬＢＡで特定される領域にデータが書き込まれたか否かを表すフラグである。当該領域にデータが書き込まれていない場合に「未使用」が設定され、書き込まれた場合に「使用」が設定される。書き換え回数は、デバイスＬＢＡで特定される領域に対してデータを書き込んだ回数を設定する。
【００７１】
このような変換テーブルを参照することにより、ホスト側は、記憶装置３００内の記憶媒体を意識せずにデータにアクセスできる。また、データへのアクセス頻度に応じて当該データを記憶する記憶媒体を変更した場合であっても、それに応じて変換テーブルを更新するだけで、ホスト側では記憶媒体の変更を意識せずに変更前と同様の方法でデータにアクセスできる。
【００７２】
なお、変換テーブルは、記憶装置３００を構成する記憶媒体の組み合わせや、それぞれの容量に応じて事前に作成され、ＦＬＡＳＨ  ＲＯＭ３２３に保存される。
【００７３】
次に、記憶装置３００を構成する記憶媒体に対するアドレス割り当ての例について説明する。図５は、記憶装置３００のアドレスマップの一例を示す図である。
【００７４】
同図では、ＬＢＡ（ホストＬＢＡ）＝０から２０９７１５１までがＭＬＣ３０１に割り当てられ、ＬＢＡ＝２０９７１５２から３１４５７２７までＳＬＣ３０２に割り当てられ、ＬＢＡ＝３１４５７２８から３６７００１５までＦｅＲＡＭ３０３に割り当てられた例が示されている。
【００７５】
また、同図の例では、変換テーブルを記憶したＦＬＡＳＨ  ＲＯＭ３２３のアドレスを、ＬＢＡ＝３６７００１６に割り当てている。これにより、後述する送受信部６０４が、外部装置との間で変換テーブルを送受信することが可能となる。
【００７６】
次に、図３の制御部３２０のソフトウェア構成について説明する。図６は、制御部３２０のソフトウェア構成を説明するための機能ブロック図である。図６に示すように、制御部３２０は、主なソフトウェア構成として、判断部６０１と、移動部６０２と、テーブル更新部６０３と、送受信部６０４と、を備えている。
【００７７】
判断部６０１は、書き換え可能回数が大きいデバイスに対してデータを移動するか否かを判断するものである。具体的には、判断部６０１は、ホスト側から指定されたホストＬＢＡに対応する割り当てデバイスが、他のデバイスより書き換え可能回数が小さいデバイスであって、ホストＬＢＡに対応する書き換え回数が所定の閾値を超えたか否かを判断する。
【００７８】
移動部６０２は、書き換え回数が所定の閾値を超えた場合に、対応するデータを格納するデバイスを、より書き換え可能回数が大きいデバイスに移動するものである。移動部６０２は、変換テーブルの使用・未使用フラグを参照し、書き換え可能回数が大きいデバイス内の未使用のアドレスを特定し、未使用のアドレスのいずれかに対してデータを移動する。なお、書き換え回数が０であれば未使用であると判断可能であるが、使用・未使用フラグを用いれば、より容易に未使用か否かを判断できる。
【００７９】
なお、未使用のアドレスが存在しない場合は、移動部６０２は、書き換え回数が小さい順に所定の割合のアドレスを特定し、特定したアドレスのいずれかを移動先としてデータを移動する。また、移動部６０２が、書き換え回数が最も小さいアドレスに対してデータを移動するように構成してもよい。
【００８０】
テーブル更新部６０３は、変換テーブルの更新を行うものである。例えば、テーブル更新部６０３は、移動部６０２によってデータが移動された場合に、それに応じて変換テーブルを更新する。より具体的には、テーブル更新部６０３は、移動したデータのホストＬＢＡに対する割り当てデバイスを、移動元のデバイスから移動先のデバイスに変更する。また、テーブル更新部６０３は、移動先のデバイスに対応づけられていたホストＬＢＡに対する割り当てデバイスを、移動元のデバイスに変更する。さらに、テーブル更新部６０３は、このような割り当てデバイスの入れ替えに応じて、デバイスＬＢＡ、使用・未使用フラグ、および書き換え回数の値も入れ替えて変換テーブルを更新する。
【００８１】
例えば、移動前の変更テーブルが、以下のように設定されていたとする。
（１）ホストＬＢＡ＝０、割り当てデバイス＝ＭＬＣ、デバイスＬＢＡ＝０
（２）ホストＬＢＡ＝２０９７１５３、割り当てデバイス＝ＳＬＣ、デバイスＬＢＡ＝１
【００８２】
上記（１）（２）のホストＬＢＡそれぞれに対応するデータを入れ替えた場合、テーブル更新部６０３は、変換テーブルを以下のように変更する。
（１’）ホストＬＢＡ＝０、割り当てデバイス＝ＳＬＣ、デバイスＬＢＡ＝１
（２’）ホストＬＢＡ＝２０９７１５３、割り当てデバイス＝ＭＬＣ、デバイスＬＢＡ＝０
【００８３】
送受信部６０４は、ホストと記憶装置３００との間で変換テーブルを送受信するものである。例えば、Ｉ／Ｆコントローラ３２４がＡＴＡ規格に準拠している場合、図５の変換テーブル用のＬＢＡ（＝３６７００１６）に対して発行されたＲＥＡＤコマンドに応じて、送受信部６０４が同ＬＢＡの変換テーブルをコマンド発行元に送信する。また、同ＬＢＡに対して発行されたＷＲＩＴＥコマンドに応じて、送受信部６０４がコマンド発行元から受信した変換テーブルで同ＬＢＡの変換テーブルを更新する。
【００８４】
なお、第１の実施の形態のアクセス制御プログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、フロッピー（登録商標）ディスク（ＦＤ）、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録されて提供されてもよい。
【００８５】
この場合には、アクセス制御プログラムは、複合機１００で上記記録媒体から読み出して実行することによりＣＰＵ３２１上にロードされ、上記ソフトウェア構成で説明した各部がＣＰＵ３２１上に生成されるようになっている。
【００８６】
また、本実施の形態のアクセス制御プログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。
【００８７】
次に、このように構成された第１の実施の形態にかかる複合機１００によるアクセス制御処理について説明する。図７は、第１の実施の形態におけるアクセス制御処理の全体の流れを示すフローチャートである。
【００８８】
まず、制御部３２０は、受付けたコマンドの種類によって、アクセス要求がライトアクセスか否かを判断する（ステップＳ７０１）。ライトアクセスでない場合、すなわち、リードアクセスの場合は（ステップＳ７０１：ＮＯ）、制御部３２０は、指定されたホストＬＢＡからデータを読み出すリードアクセス処理を実行する（ステップＳ７０２）。
【００８９】
ライトアクセスの場合は（ステップＳ７０１：ＹＥＳ）、制御部３２０は、指定されたホストＬＢＡに指定されたデータを書き込むライトアクセス処理を実行する（ステップＳ７０３）。
【００９０】
次に、制御部３２０は、アクセスしたホストＬＢＡ（以下、ＨＡ１という）に対応する割り当てデバイス、デバイスＬＢＡ（以下、ＤＡ１という）および書き換え回数（以下、ＷＣ１という）を変換テーブルから取得する（ステップＳ７０４）。
【００９１】
次に、テーブル更新部６０３は、取得したＷＣ１に１を加算する（ステップＳ７０５）。次に、判断部６０１は、割り当てデバイスがＭＬＣであり、かつ、ＷＣ１がＭＬＣ３０１に対して予め定められた書き換え回数の上限を表す閾値１（例えば、５千回）を超えたか否かを判断する（ステップＳ７０６）。
【００９２】
割り当てデバイス＝ＭＬＣ、かつ、ＷＣ１＞閾値１の場合（ステップＳ７０６：ＹＥＳ）、書き換え可能回数の上限値がＭＬＣ３０１より大きいＳＬＣ３０２にデータを移動し、変換テーブルを更新する変換テーブル更新処理が実行される（ステップＳ７０７）。変換テーブル更新処理の詳細については後述する。
【００９３】
ステップＳ７０６で、割り当てデバイス＝ＭＬＣ、かつ、ＷＣ１＞閾値１でないと判断した場合（ステップＳ７０６：ＮＯ）、判断部６０１は、割り当てデバイスがＳＬＣであり、かつ、ＷＣ１がＳＬＣ３０２に対して予め定められた書き換え回数の上限を表す閾値２（例えば、５万回）を超えたか否かをさらに判断する（ステップＳ７０８）。
【００９４】
割り当てデバイス＝ＳＬＣ、かつ、ＷＣ１＞閾値２の場合（ステップＳ７０８：ＹＥＳ）、書き換え可能回数の上限値がＳＬＣ３０２より大きいＦｅＲＡＭ３０３にデータを移動し、変換テーブルを更新する変換テーブル更新処理が実行される（ステップＳ７０９）。なお、この場合の変換テーブル更新処理は、移動先デバイスと移動元デバイスとがそれぞれ異なるだけであり、その処理内容はステップＳ７０７の変換テーブル更新処理と同様である（後述）。
【００９５】
ステップＳ７０７またはステップＳ７０９の変換テーブル更新処理の実行後、移動先のデバイスのホストＬＢＡをアクセスしたホストＬＢＡとして、ステップＳ７０４に戻って処理を繰り返す。
【００９６】
ステップＳ７０８で、割り当てデバイス＝ＳＬＣ、かつ、ＷＣ１＞閾値２でないと判断した場合（ステップＳ７０８：ＮＯ）、および、ステップＳ７０２でリードアクセス実行後、制御部３２０はアクセス制御処理を終了する。
【００９７】
次に、ステップＳ７０７およびステップＳ７０９の変換テーブル更新処理の詳細について説明する。図８は、第１の実施の形態における変換テーブル更新処理の全体の流れを示すフローチャートである。
【００９８】
まず、移動部６０２は、割り当てデバイスが移動先デバイスと一致し、未使用または書き換え回数が最小のホストＬＢＡ（以下、ＨＡ２という）を変換テーブルから検索する（ステップＳ８０１）。また、移動部６０２は、ＨＡ２に対応するデバイスＬＢＡ（以下、ＤＡ２という）および書き換え回数（以下、ＷＣ２という）を取得する（ステップＳ８０２）。
【００９９】
次に、テーブル更新部６０３は、ＨＡ１に対応する割り当てデバイスを、移動先デバイスに変更する（ステップＳ８０３）。また、テーブル更新部６０３は、ＨＡ１に対応するデバイスＬＢＡを、ＤＡ１からＤＡ２に変更する（ステップＳ８０４）。なお、ＤＡ１とは、移動元のデバイスのデバイスＬＢＡ、すなわち、図７のステップＳ７０４で取得されたデバイスＬＢＡを意味する。さらに、テーブル更新部６０３は、ＨＡ１に対応する書き換え回数を、ＷＣ１からＷＣ２に変更する（ステップＳ８０５）。
【０１００】
同様に、テーブル更新部６０３は、移動先のホストＬＢＡであるＨＡ２に対応する各項目を、ＨＡ１に対応する各項目と入れ替えて更新するために以下の処理を実行する（ステップＳ８０６からステップＳ８０８）。
【０１０１】
すなわち、まず、テーブル更新部６０３は、ＨＡ２に対応する割り当てデバイスを、移動元デバイスに変更する（ステップＳ８０６）。また、テーブル更新部６０３は、ＨＡ２に対応するデバイスＬＢＡを、ＤＡ２からＤＡ１に変更する（ステップＳ８０７）。さらに、テーブル更新部６０３は、ＨＡ２に対応する書き換え回数を、ＷＣ２からＷＣ１に変更する（ステップＳ８０８）。
【０１０２】
なお、変換テーブルの更新は、上記のように項目ごとに実行する必要はなく、例えば１つのホストＬＢＡに対応する複数の項目を一括して更新するように構成してもよい。
【０１０３】
次に、移動部６０２は、移動元デバイスのデバイスＬＢＡ＝ＤＡ１のデータ（以下、ＤＤＡ１という）をＲＡＭ３２２に読込む（ステップＳ８０９）。
【０１０４】
次に、判断部６０１は、ＷＣ２＝０であるか否かを判断する（ステップＳ８１０）。これは、判断部６０１が、移動先デバイスのアドレスであるＤＡ２にデータが書き込まれているか否かを判断することを意味する。この場合は、移動先デバイスに書き込まれているデータを移動元デバイスに移動する必要があるためである。
【０１０５】
ＷＣ２＝０でない場合は（ステップＳ８１０：ＮＯ）、移動部６０２は、移動先デバイスのデバイスＬＢＡ＝ＤＡ２のデータ（以下、ＤＤＡ２という）をＲＡＭ３２２に読込む（ステップＳ８１１）。そして、移動部６０２は、ＤＤＡ２をＲＡＭ３２２から読み出し、移動元デバイスのデバイスＬＢＡ＝ＤＡ１に書込む（ステップＳ８１２）。
【０１０６】
ステップＳ８１２でＤＤＡ２を書込み後、または、ステップＳ８１０でＷＣ２＝０であると判断された場合は（ステップＳ８１０：ＹＥＳ）、移動部６０２は、ＤＤＡ１をＲＡＭ３２２から読み出し、移動先デバイスのデバイスＬＢＡ＝ＤＡ２に書込む（ステップＳ８１３）。
【０１０７】
なお、上記説明では、書き換え回数の判定に用いる閾値として、書き換え可能回数の上限値（ＭＬＣ：１万回、ＳＬＣ：１０万回）の半分の値（ＭＬＣ：５千回、ＳＬＣ：５万回）を利用する例を示したが、閾値は、上限値の範囲内であればどのような値であってもよい。
【０１０８】
このように、第１の実施の形態にかかるアクセス制御装置では、書き換え回数が記憶媒体の種類ごとに定められた閾値を超えたか否かを判断し、超えた場合に、書き換え可能回数の上限値がより大きい記憶媒体にデータをコピーするとともに、変換テーブルを更新することができる。すなわち、データの書き換え頻度に応じて最適な記憶媒体を割り当て、不良ブロックの発生確率を低下させることができる。これにより、記憶装置の信頼性を向上させることができる。また、書き換え可能回数が大きい高コストの記憶媒体のみを利用することなく、低コストでより長寿命の記憶装置を実現することが可能となる。
【０１０９】
また、第１の実施の形態にかかるアクセス制御装置では、最適化された変換テーブルを外部に転送することができるため、最適な構成を学習済みの記憶装置のコピーを作成することが可能となる。また、変換テーブルの内容を解析することにより、使用されている記憶媒体の偏りや、寿命の予測等を実行することも可能となる。
【０１１０】
（第２の実施の形態）
第１の実施の形態では、書き換え可能回数の上限値の小さい記憶媒体から、上限値の大きい記憶媒体にデータを移動することにより、不良の発生を回避していた。一方、上限値の大きい記憶媒体に記憶されたデータのうち、ライトアクセス回数が少ないデータについては、上限値が小さい記憶媒体に代替しても不良が発生する確率は小さいと考えられる。
【０１１１】
そこで第２の実施の形態にかかる複合機は、書き換え可能回数の上限値が大きい記憶媒体に記憶されたデータのうち、書き換え回数が小さいデータを、書き換え可能回数の上限値がより小さい記憶媒体に移動するものである。
【０１１２】
次に、第２の実施の形態にかかる複合機９００の詳細な構成と機能について図９を用いて説明する。図９は、第２の実施の形態にかかる複合機９００の詳細な構成を示すブロック図である。
【０１１３】
第２の実施の形態では、記憶装置９３０の構成のみが第１の実施の形態と異なっている。その他の構成および機能は、第１の実施の形態にかかる複合機１００の構成を表すブロック図である図２と同様であるので、同一符号を付し、ここでの説明は省略する。
【０１１４】
また、第２の実施の形態の記憶装置９３０は、制御部９２０（図１０で後述）の機能、および変換テーブルの構成のみが第１の実施の形態の記憶装置３００と異なっている。すなわち、記憶装置９３０のハードウェア構成は、第１の実施の形態の記憶装置３００のハードウェア構成である図３と同様であるので、説明を省略する。
【０１１５】
次に、第２の実施の形態における変換テーブルのデータ構造について図１０を用いて説明する。図１０に示すように、変換テーブルは、ホストＬＢＡ、割り当てデバイス、デバイスＬＢＡ、使用・未使用フラグ、および書き換え回数に加えて、デバイス変更履歴をさらに対応づけて記憶している。
【０１１６】
デバイス変更履歴は、書き換え可能回数の上限値が大きい記憶媒体から、上限値の小さい記憶媒体に対してデータを移動した履歴を設定する。具体的には、デバイス変更履歴には、後述する方法により、ＦｅＲＡＭ３０３からＳＬＣ３０２へ、またはＳＬＣ３０２からＭＬＣ３０１へデータが移動され、変換テーブルが更新された場合に、「あり」が設定される。なお、デバイス変更履歴には、デフォルトでは「なし」が設定される。
【０１１７】
デバイス変更履歴は、データの移動のループが発生するのを回避するために利用されるものである。例えば、ＭＬＣ３０１の書き換え回数が閾値に達したためＳＬＣ３０２に代替した後、後述する方法により、ライトアクセス回数が少ないと判断され、再度ＭＬＣ３０１で代替される場合がある。さらに、この場合、書き換え回数が閾値に達し、ＳＬＣ３０２に代替するというように、代替処理のループが発生する可能性がある。そこで、本実施の形態では、デバイス変更履歴を参照し、過去に上限値が小さい記憶媒体に移動された場合には再度移動しないように制御している。
【０１１８】
次に、第２の実施の形態の記憶装置９３０内の制御部９２０のソフトウェア構成について説明する。図１１は、制御部９２０のソフトウェア構成を説明するための機能ブロック図である。図１１に示すように、制御部９２０は、主なソフトウェア構成として、判断部９０１と、移動部９０２と、テーブル更新部９０３と、送受信部６０４と、算出部９０５と、を備えている。
【０１１９】
送受信部６０４の構成および機能は、第１の実施の形態にかかる複合機１００のソフトウェア構成を表すブロック図である図６と同様であるので、同一符号を付し、ここでの説明は省略する。
【０１２０】
算出部９０５は、ＳＬＣ３０２およびＦｅＲＡＭ３０３のデバイスＬＢＡに対応する書き換え回数の和を算出するものである。
【０１２１】
判断部９０１は、算出された和が、所定の規定値の倍数に達したか否かをさらに判断する機能が追加された点が、第１の実施の形態の判断部６０１と異なっている。
【０１２２】
移動部９０２は、算出された和が規定値の倍数に達した場合に、ＳＬＣ３０２およびＦｅＲＡＭ３０３のそれぞれについて書き換え回数が小さい所定割合（例えば全体の１０％）のデバイスＬＢＡを特定し、特定したデバイスＬＢＡのデータを、それぞれＭＬＣ３０１およびＳＬＣ３０２に移動する機能が追加された点が、第１の実施の形態の移動部６０２と異なっている。
【０１２３】
テーブル更新部９０３は、デバイス変更履歴の更新処理が追加された点が、第１の実施の形態のテーブル更新部６０３と異なっている。
【０１２４】
次に、このように構成された第２の実施の形態にかかる複合機９００によるアクセス制御処理について説明する。図１２は、第２の実施の形態におけるアクセス制御処理の全体の流れを示すフローチャートである。
【０１２５】
第２の実施の形態では、書き換え可能回数の上限値が小さい記憶媒体から、上限値が大きい記憶媒体にデータを移動する処理が、第１の実施の形態と同様に実行される。すなわち、ステップＳ１２０１からステップＳ１２０９までの、アクセス種別判定処理および変換テーブル更新処理は、第１の実施の形態にかかる複合機１００におけるステップＳ７０１からステップＳ７０９までと同様の処理なので、その説明を省略する。
【０１２６】
次に、算出部９０５は、変換テーブルを参照してＦｅＲＡＭ３０３に対する書き換え回数の和を算出する（ステップＳ１２１０）。
【０１２７】
次に、判断部９０１は、算出した和が所定の規定値（例えば、５千回）の倍数であるか否かを判断する（ステップＳ１２１１）。倍数である場合（ステップＳ１２１１：ＹＥＳ）、ＦｅＲＡＭ３０３からＳＬＣ３０２にデータを移動し、変換テーブルを更新する処理（以下、変換テーブル更新処理２という）が実行される（ステップＳ１２１２）。変換テーブル更新処理２の詳細については後述する。
【０１２８】
ステップＳ１２１１で、和が規定値の倍数でないと判断された場合（ステップＳ１２１１：ＮＯ）、または、変換テーブル更新処理２の後（ステップＳ１２１２）、算出部９０５は、さらに、変換テーブルを参照してＳＬＣ３０２に対する書き換え回数の和を算出する（ステップＳ１２１３）。
【０１２９】
次に、判断部９０１は、算出した和が所定の規定値（例えば、５千回）の倍数であるか否かを判断する（ステップＳ１２１４）。倍数である場合（ステップＳ１２１４：ＹＥＳ）、ＳＬＣ３０２からＭＬＣ３０１にデータを移動するための変換テーブル更新処理２が実行される（ステップＳ１２１５）。
【０１３０】
ステップＳ１２１４で、和が規定値の倍数でないと判断された場合（ステップＳ１２１４：ＮＯ）、または、変換テーブル更新処理２の後（ステップＳ１２１５）、アクセス制御処理が終了する。
【０１３１】
なお、変換テーブル更新処理２の実行契機の判定方法は、変換テーブルの書き換え回数を参照する方法に限られるものではなく、予め定められた基準に達したことを契機として変換テーブル更新処理２を実行可能な方法であればあらゆる方法を適用できる。
【０１３２】
例えば、ＦｅＲＡＭ３０３およびＳＬＣ３０２それぞれで書き換え回数をカウントするためのカウンタを利用し、カウンタの値が各記憶媒体に対して定められた閾値に達した場合に、その記憶媒体のみについて変換テーブル更新処理２を実行するように構成してもよい。この場合、カウンタの値はＦＬＡＳＨ  ＲＯＭ３２３などの不揮発性の記憶媒体に保存しておき、変換テーブル更新処理２を実行後に０に初期化する。
【０１３３】
次に、ステップＳ１２１２およびステップＳ１２１３の変換テーブル更新処理２の詳細について説明する。図１３は、第２の実施の形態における変換テーブル更新処理２の全体の流れを示すフローチャートである。
【０１３４】
まず、移動部９０２は、割り当てデバイスが移動元デバイスであり、書き換え回数が小さい順に所定割合のホストＬＢＡ（以下、移動対象ＬＢＡという）を変換テーブルから取得する（ステップＳ１３０１）。
【０１３５】
次に、移動部９０２は、移動対象ＬＢＡに対応するデバイス変更履歴を変換テーブルから取得する（ステップＳ１３０２）。次に、移動部９０２は、取得したデバイス変更履歴が「あり」であるか否かを判断する（ステップＳ１３０３）。
【０１３６】
デバイス変更履歴が「あり」の場合は（ステップＳ１３０３：ＹＥＳ）、移動部９０２は、対応するホストＬＢＡを、移動対象ＬＢＡから除外する（ステップＳ１３０４）。これにより、データの移動のループが発生するのを回避することができる。
【０１３７】
ステップＳ１３０３で、デバイス変更履歴が「あり」でない、すなわち、「なし」であると判断した場合（ステップＳ１３０３：ＮＯ）、またはデバイス変更履歴が「あり」のホストＬＢＡを除外した後（ステップＳ１３０４）、移動部９０２は、移動対象ＬＢＡのデータを、移動先デバイスの未使用領域に移動する（ステップＳ１３０５）。なお、移動先デバイスの未使用領域アドレスのデータは、移動元デバイスが使用していた領域のアドレスに移動する。
【０１３８】
また、テーブル更新部９０３は、移動したデータに対応する変換テーブルを書き換える（ステップＳ１３０６）。なお、データの移動処理およびテーブル更新処理の詳細は、第１の実施の形態の変換テーブル更新処理のフローチャートである図８と同様であるため、説明は省略する。
【０１３９】
最後に、テーブル更新部９０３は、移動対象ＬＢＡに対応するデバイス変更履歴を「あり」に更新し（ステップＳ１３０７）、変換テーブル更新処理２を終了する。
【０１４０】
このように、第２の実施の形態にかかるアクセス制御装置では、書き換え可能回数の上限値が大きい記憶媒体に記憶されたデータのライトアクセス回数を集計し、ライトアクセス回数が小さいデータを、書き換え可能回数の上限値がより小さい記憶媒体に移動することができる。これにより、不具合を起こさずに記憶装置のコストダウンを実現することができる。
【０１４１】
（変形例）
上記実施の形態では、変換テーブルの使用・未使用フラグを参照して、移動先デバイスの未使用領域を特定し、未使用領域にデータを移動していた。そして、移動先デバイスに未使用領域が存在しない場合は、書き換え回数が小さい領域に移動していた。
【０１４２】
これに対し、移動先デバイスに未使用領域が存在しない場合に、移動元と同じデバイス内で未使用領域を特定し、特定した未使用領域にデータを移動するように構成してもよい。これにより、代替するための書き換え可能回数が大きい記憶媒体の容量が不足している場合であっても、記憶装置として動作を継続することができる。
【０１４３】
また、このように構成した場合に、さらに、同じ記憶媒体内でデータを移動したことを表す情報を変換テーブルに残すように構成してもよい。図１４は、このように構成した変換テーブルのデータ構造の一例を示す図である。
【０１４４】
図１４に示すように、変換テーブルは、ホストＬＢＡ、割り当てデバイス、デバイスＬＢＡ、使用・未使用フラグ、書き換え回数、およびデバイス変更履歴に加えて、同種メモリ内移動履歴をさらに対応づけて記憶している。
【０１４５】
同種メモリ内移動履歴は、上述のような構成により同じデバイス内の未使用領域に対してデータを移動した場合に「あり」を設定する。なお、同種メモリ内移動履歴には、デフォルトでは「なし」が設定される。
【０１４６】
このように同種類の記憶媒体内で代替した記録を変換テーブルに残すことで、メモリ不足が顕在化し、メモリを追加する必要があることを判断することが可能となる。すなわち、例えばＭＬＣ３０１で同種メモリ内移動履歴＝「あり」のアドレス多ければ、ＳＬＣ３０２の容量が不足していると判断することができる。そして、メモリを追加して動作を繰り返すことにより、システムの使用条件にあった最適なメモリ種類の容量配分を求め、低コストの記憶装置を作成することができる。
【産業上の利用可能性】
【０１４７】
以上のように、本発明にかかるアクセス制御装置、アクセス制御方法、アクセス制御プログラム、記録媒体、記憶装置および画像処理装置は、複数種類の記憶媒体で構成する記憶装置、または当該記憶装置を利用する装置に適している。
【図面の簡単な説明】
【０１４８】
【図１】複合機の構成を示す簡略的な図である。
【図２】第１の実施の形態にかかる複合機の詳細な構成を示すブロック図である。
【図３】第１の実施の形態の記憶装置のハードウェア構成を示す図である。
【図４】第１の実施の形態における変換テーブルのデータ構造の一例を示す説明図である。
【図５】記憶装置のアドレスマップの一例を示す図である。
【図６】第１の実施の形態の制御部のソフトウェア構成を説明するための機能ブロック図である。
【図７】第１の実施の形態におけるアクセス制御処理の全体の流れを示すフローチャートである。
【図８】第１の実施の形態における変換テーブル更新処理の全体の流れを示すフローチャートである。
【図９】第２の実施の形態にかかる複合機の詳細な構成を示すブロック図である。
【図１０】第２の実施の形態における変換テーブルのデータ構造の一例を示す説明図である。
【図１１】第２の実施の形態の制御部のソフトウェア構成を説明するための機能ブロック図である。
【図１２】第２の実施の形態におけるアクセス制御処理の全体の流れを示すフローチャートである。
【図１３】第２の実施の形態における変換テーブル更新処理２の全体の流れを示すフローチャートである。
【図１４】変形例における変換テーブルのデータ構造の一例を示す説明図である。
【符号の説明】
【０１４９】
１００、９００  複合機
１０１  スキャナ部
１０２  レーザー記録部
１０３  後処理部
１０４  原稿台
１０５  ＲＡＤＦ
１０６  スキャナユニット
１０７  用紙搬送部
１０８  レーザー書込ユニット
１０９  電子写真プロセス部
２０１  画像処理ボード
２０２  ＣＰＵ
２０３  ＲＡＭ
２０４  画像処理部
２０５  画像蓄積制御部
２０６  データ蓄積部
２０７  レーザコントロール部
２０８  Ｉ／Ｆコントローラ
２１０  ＣＣＤボード
２１１  Ａ／Ｄ変換部
２１２  ＣＣＤ制御部
２１３  ＣＣＤ
２１４  アナログ回路
２１７  両面ユニット
２２１、２２２  ＣＰＵ
２２３  ＬＣＤ
２２４  操作キー
２２５  操作パネル
２２６  ＣＰＵ
２２７  ＲＡＭ
２２８  オペレーションパネルボード
２２９  ＲＡＭ
２３０  ＣＰＵ
２３１  マシンコントロールボード
３００、９３０  記憶装置
３０１  ＭＬＣ
３０２  ＳＬＣ
３０３  ＦｅＲＡＭ
３１１  ＮＡＮＤ  ＦＬＡＳＨ  ＭＬＣコントローラ
３１２  ＮＡＮＤ  ＦＬＡＳＨ  ＳＬＣコントローラ
３１３  ＦｅＲＡＭコントローラ
３２０、９２０  制御部
３２１  ＣＰＵ
３２２  ＲＡＭ
３２３  ＦＬＡＳＨ  ＲＯＭ
３２４  Ｉ／Ｆコントローラ
６０１、９０１  判断部
６０２、９０２  移動部
６０３、９０３  テーブル更新部
６０４  送受信部
９０５  算出部
【図１】
0005096847.tif 000002
【図２】
0005096847.tif 000003
【図３】
0005096847.tif 000004
【図４】
0005096847.tif 000005
【図５】
0005096847.tif 000006
【図６】
0005096847.tif 000007
【図７】
0005096847.tif 000008
【図８】
0005096847.tif 000009
【図９】
0005096847.tif 000010
【図１０】
0005096847.tif 000011
【図１１】
0005096847.tif 000012
【図１２】
0005096847.tif 000013
【図１３】
0005096847.tif 000014
【図１４】
0005096847.tif 000015