JP2010152723A - 情報処理装置、方法、及び、プログラム - Google Patents
情報処理装置、方法、及び、プログラム Download PDFInfo
- Publication number
- JP2010152723A JP2010152723A JP2008331187A JP2008331187A JP2010152723A JP 2010152723 A JP2010152723 A JP 2010152723A JP 2008331187 A JP2008331187 A JP 2008331187A JP 2008331187 A JP2008331187 A JP 2008331187A JP 2010152723 A JP2010152723 A JP 2010152723A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- writing
- data
- area
- information processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
【課題】不揮発性メモリにデータを書き込む際に、書込み回数を平均化することができる情報処理装置を提供する。
【解決手段】メモリへの書込み頻度に応じてデータを複数のグループにグループ化し、複数のグループそれぞれの配置が相異なる複数のメモリマップと、複数のグループに対応する範囲を跨ることなく定められた大きさの複数の領域にメモリを分割する分割手段と、書込み回数が基準値に達している領域があるかを判定する判定手段と、基準値に達している領域があると判定された場合に、基準値に達している領域に対してメモリへの書込み頻度が低いグループのデータを割り当て、その他の領域に対して高いグループのデータを割り当てた結果、メモリの全体への書込み回数が平均化されるようなメモリマップを複数のメモリマップから選択する選択手段と、選択されたメモリマップに従ってメモリにデータを書き込む書込手段とを備える。
【選択図】図7
【解決手段】メモリへの書込み頻度に応じてデータを複数のグループにグループ化し、複数のグループそれぞれの配置が相異なる複数のメモリマップと、複数のグループに対応する範囲を跨ることなく定められた大きさの複数の領域にメモリを分割する分割手段と、書込み回数が基準値に達している領域があるかを判定する判定手段と、基準値に達している領域があると判定された場合に、基準値に達している領域に対してメモリへの書込み頻度が低いグループのデータを割り当て、その他の領域に対して高いグループのデータを割り当てた結果、メモリの全体への書込み回数が平均化されるようなメモリマップを複数のメモリマップから選択する選択手段と、選択されたメモリマップに従ってメモリにデータを書き込む書込手段とを備える。
【選択図】図7
Description
本発明は、不揮発性メモリに対してデータを書き込む情報処理装置、方法、プログラムに関する。
従来、インクジェットプリンタやレーザービームプリンタ等の記録装置には、装置状態や使用状況などを保存するために書込み可能な不揮発性メモリ(EEPROM)を搭載している。そのような書込み可能な不揮発性メモリに保存される情報は、その内容と保存場所が予め決まっており、ユーザが印刷やプリンタの設定変更など、特定の処理を行うと対応した情報の値が更新される。
不揮発性メモリでは、同一セル(同一アドレス)のメモリ領域に対して行うデータの書込み制御があり、通常、1万〜10万回程度となっている。そのため、ユーザが特定の処理を多く行うと、特定のアドレスへの書込み回数が限界を超えてしまい、アドレスへの書込みが正常にできなくなってしまう問題がある。
そのような問題は、家庭で使用される場合には使用頻度に限りがあるため、書込み回数が限界に達することは無かったが、ビジネス向けで使用された場合、ユーザが増えるため印刷回数等への書込みが増大してしまうので対策を考える必要がある。
そのような問題を解決するために、特定の領域に書込み回数が偏らないように平均化する手法が考えられている。特許文献1では、書込む情報が分からない不揮発性メモリを対象としており、不揮発性メモリをデータ保存領域と管理情報領域に分けている。データ保存領域は、更に一定サイズのブロックに分かれており、各ブロックには書込み回数と次のブロック番号を保存する領域がある。
管理情報領域は、保存しているデータ名とその開始および終了ブロック番号を管理している。この構造により、データをブロックのリスト構造として表現し、書込み回数が一定値を越えたブロックを異なるブロックへ写すことでデータの繋がりを損なうことなく平均化を実現している。
特許文献2では、書込む情報が既知の不揮発性メモリを対象としており、あらかじめ書込み頻度が高い情報をピックアップしておき、動作開始から一定期間それらの情報の書込み回数を記録する。一定期間後、記録した書込み回数を元に、ピックアップしておいた情報が使用できるメモリ拡張の領域を決定し、以後の書込み回数の記録を中止する。その後は、情報の書込み要求される度に保存する領域をシフトさせて書込むことで平均化を実現している。
特許文献3では、書込む情報が分からない不揮発性メモリを対象としており、管理情報用不揮発性メモリと、情報保存用の不揮発性メモリを備えている。保存用不揮発性メモリは、一定領域に区分されており、管理情報用不揮発性メモリには、書込みのチェック回数配列、論理・物理アドレス対応表、書込み回数履歴、交換フラグが含まれている。保存用不揮発性メモリへの書込み回数が1番目のチェック回数に達した時、書込み回数が最小のブロックと交換し、交換先のブロックの交換フラグを立てる。これを繰り返して、交換フラグの立っている回数が総ブロック数の半分に達した時、チェック回数配列を1進めて交換フラグを全クリアすることで平均化を実現している。
特開昭62−283496号公報
特開平05−113858号公報
特開2004−326523号公報
しかしながら、近年、記録装置の多機能化が進んでいるため、不揮発性メモリへ保存する情報を増やす必要がある一方、できるだけ不揮発性メモリのサイズを減らしてコストを削減したいという要求が高まっている。
特許文献1、3は共に、保存する情報がわからない場合を想定した手法であり、書込み回数の均一化を行うために多くの管理情報が必要である。例えば、1ブロックが4バイトである限界書込み回数10万回の不揮発性メモリでは、書込み回数を保存するために情報と同サイズの領域、若しくは、その他の管理情報を含めて保存情報の倍以上のサイズが必要となり、平均化はできるがコスト削減が難しい。また、1ブロックを4バイトより大きくした場合、制御用の情報は減るが、1ブロック内に様々な書込み頻度の情報が含まれてしまい、効率的に不揮発性メモリを使用できなくなってしまう。
特許文献2では、書込み頻度が高い情報にのみ、頻度に応じて余分な領域を与えているため、全体で効率的に不揮発性メモリを使用できない。また、書込み頻度の高い情報を格納するために多くの空き容量を必要とするため、全体として多くの容量が必要となってしまう。
そこで、上記の点に鑑み、本発明は、不揮発性メモリにデータを書き込む際に、書込み回数を平均化することができる情報処理装置を提供することを目的とする。
上記課題を解決するため、本発明に係る情報処理装置は、メモリマップに従ってメモリにデータを書き込む情報処理装置であって、前記メモリへの書込み頻度に応じてデータを複数のグループにグループ化し、前記複数のグループそれぞれの配置が相異なる複数のメモリマップと、前記複数のグループに対応する範囲を跨ることなく定められた大きさの複数の領域に前記メモリを分割する分割手段と、前記分割手段によって分割された複数の領域のうち、書込み回数が基準値に達している領域があるか否かを判定する判定手段と、前記判定手段の結果、書込み回数が予め定められた基準値に達している領域があると判定された場合に、前記書込み回数が基準値に達している領域に対して前記メモリへの書込み頻度が低いグループのデータを割り当て、その他の領域に対して前記メモリへの書込み頻度が高いグループのデータを割り当てた結果、前記メモリの全体への書込み回数が平均化されるようなメモリマップを前記複数のメモリマップから選択する選択手段と、前記選択手段によって選択されたメモリマップに従って、前記メモリにデータを書き込む書込手段とを備えることを特徴とする。
また、本発明に係る情報処理方法は、メモリマップに従ってメモリにデータを書き込む情報処理装置において実行される情報処理方法であって、前記メモリへの書込み頻度に応じてデータを複数のグループにグループ化し、前記複数のグループそれぞれの配置が相異なる複数のメモリマップそれぞれにおける前記複数のグループに対応する範囲を跨ることなく定められた大きさの複数の領域に前記メモリを分割する分割工程と、前記分割工程において分割された複数の領域のうち、書込み回数が基準値に達している領域があるか否かを判定する判定工程と、前記判定工程における結果、書込み回数が予め定められた基準値に達している領域があると判定された場合に、前記書込み回数が基準値に達している領域に対して前記メモリへの書込み頻度が低いグループのデータを割り当て、その他の領域に対して前記メモリへの書込み頻度が高いグループのデータを割り当てた結果、前記メモリの全体への書込み回数が平均化されるようなメモリマップを前記複数のメモリマップから選択する選択工程と、前記選択工程において選択されたメモリマップに従って、前記メモリにデータを書き込む書込工程とを備えることを特徴とする。
更に、本発明に係る情報処理プログラムは、メモリマップに従ってメモリにデータを書き込むための情報処理プログラムであって、前記メモリへの書込み頻度に応じてデータを複数のグループにグループ化し、前記複数のグループそれぞれの配置が相異なる複数のメモリマップそれぞれにおける前記複数のグループに対応する範囲を跨ることなく定められた大きさの複数の領域に前記メモリを分割する分割手段と、前記分割手段によって分割された複数の領域のうち、書込み回数が基準値に達している領域があるか否かを判定する判定手段と、前記判定手段の結果、書込み回数が予め定められた基準値に達している領域があると判定された場合に、前記書込み回数が基準値に達している領域に対して前記メモリへの書込み頻度が低いグループのデータを割り当て、その他の領域に対して前記メモリへの書込み頻度が高いグループのデータを割り当てた結果、前記メモリの全体への書込み回数が平均化されるようなメモリマップを前記複数のメモリマップから選択する選択手段と、前記選択手段によって選択されたメモリマップに従って、前記メモリにデータを書き込む書込手段としてコンピュータを機能させることを特徴とする。
本発明によれば、不揮発性メモリにデータを書き込む際に、書込み回数を平均化することができる。
以下に、本発明を実施するための最良の形態について、図面を参照しながら詳しく説明する。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。以下の実施例に記載されている構成要素はあくまで例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
以下で説明する実施例では、インクジェット記録装置を例に説明する。しかしながら、本発明はこれに限定されるものではなく、CPUとROMとRAMと書込み回数に限りがある不揮発性メモリを構成に含む情報処理装置であれば、どのような装置に対しても適用することができる。
本発明によれば、頻度情報を用いて予めメモリマップを複数作成しておき、不揮発性メモリに一定回数書込みが行われると、適用するメモリマップを変更する。その結果、不揮発性メモリの空き容量を必要とせずに、不揮発性メモリに対する書込み回数を全体的に平均化できる。また、予め作成したメモリマップを使用するので、書込み回数管理以外の無駄な制御用の情報を省くことができ、ROMより高価な書込み可能な不揮発性メモリの不要な使用を低減することができる。
更にまた、予めメモリマップを作成しておくので、従来のように、1つの情報が分散されて保存されることがない。そのため、不揮発性メモリにおけるある領域内の情報のサイズによってバースト転送等の書込み方式を自由に変更することができ、書込み速度を向上させることができる。
図1は、本発明に係る実施例における情報処理装置1の構成の概略を示すブロック図である。CPU101は、外部のホスト機器から送信されたラスタ形式の画像データからの記録データの生成、記録制御のためのモータ駆動に関する命令、記録ヘッドの吐出タイミングの制御、ホスト機器から転送されたコマンドやデータの解析を行う。また、CPU101は、表示・SW部110からのユーザの入力に応じた各種設定等も行う。また、CPU101は、不揮発性メモリ105に対して、特定の処理や設定情報の更新(例えば電源OFFや用紙設定の変更など)を行った後、履歴や設定情報の書込み処理や、起動時におけるRAM103への情報の読出し処理を行う。
ROM102には、不揮発性メモリ105に保存されている情報とその保存位置とを示すマップ情報が格納されている。更に、記録装置を駆動するための制御プログラム、各種固定データ(モータの駆動テーブル等)、フォントデータ等も格納されている。ROM102に格納された制御プログラムは、CPU101によって読み出されて実行される。各種固定データは、そのまま初期値として使用されるものと、RAM103に展開されてCPUにより加工されて使用されるものとがある。本実施例では、ROM102には書き換え不能なマスクROMが使用されているので、読み出し専用として用いられる。
RAM103は、CPU101によって読み出された不揮発性メモリ105のデータを格納するために使用される。更に、RAM103は、プログラム実行に必要なワークメモリ、インターフェース(I/F)104から入力データの一時格納場所としての受信バッファ、及び、画像データを記録用に展開したデータを格納する記録バッファとしても使用される。
I/F104は、不図示のホスト装置と接続され、記録すべき画像のデータや各種制御コマンド、及び、ダウンロードされるプログラムデータ等のデータを受信する。本実施例において、I/F104は、USBの規格に準拠した電気的仕様を備えており、ホスト装置からのデータだけでなく、プリンタの状態をホストに転送するように、双方向の通信が可能となっている。
不揮発性メモリ105には、プリンタの設定状態の情報が格納されているだけでなく、その他、記録枚数、インク残量などの情報も格納されている。プリンタの設定状態としては、対応用紙、自動電源ON/OFFなどの機能項目などの情報が格納されている。メインバッファ106、テンプバッファ107は、不揮発性メモリ105の内容の読込み、書込み、比較に使用されるRAM103上のバッファメモリである。バッファサイズは、不揮発性メモリ105と同じサイズであり、保存されている情報の内容、位置も不揮発性メモリ105における構成と同じである。
モータコントローラ109は、不図示のプリンタにおける主走査方向に記録ヘッドを移動(走査)させるキャリッジモータと、記録ヘッドの1回又は複数回の走査毎に記録媒体を搬送させる搬送モータとを制御する。モータコントローラ109に対する制御はCPU101が行う。また、記録操作は、キャリッジモータの等速域と加減速領域とが用いられて行われる。記録ヘッドコントローラ108は、記録ヘッドの駆動を制御するように、記録ヘッドに対してクロック信号、記録データ、駆動タイミングを規定する信号(駆動パルス)等を供給する。
表示・SW部110は、ユーザが記録装置に対する指示を入力するための操作スイッチや、ユーザに装置の状態等を通知するための表示パネル等を含んでいる。バスライン111は、データを転送するためのデータ及びアドレスバスである。CPU101は、バスライン111を介して、102から109までの各ユニットを制御する。
図2、図3、図4は、本実施例において用いられる16ビット単位でアクセス可能な1024バイトの不揮発性メモリ105の3つのメモリマップを示す図である。それらの3つのマップは、保存されている内容は同じであるが、不揮発性メモリへの書込み頻度に応じてデータが複数のグループにグループ化され、複数のグループそれぞれの配置が相異なっている。これらのメモリマップは例えば、ROM等の記憶領域に格納されている。
本実施例において、マップは3つではなく、2つ以上であればいくつのマップを用いても良い。また、マップは今まで集計してきた書込み頻度情報を元にして、各情報がグループ化されている(図2に示す「Gr」)。本実施例においては、図2に示すように、書込み頻度高グループ201、書込み頻度中グループ202、書込み頻度低グループ203の3グループにグループ化されている。
更に、各マップは、例えば、不揮発性メモリが32個に分割された領域0〜31への書込み回数を管理する書込み回数管理領域204を有する。書込み頻度高グループ201には、チェックサム210、ユーザ使用履歴211、プリンタ状態212等が含まれている。書込み頻度中グループ202には、エラー情報213、画像補正設定214、用紙設定215等が含まれている。書込み頻度低グループ203には、LCDコントラスト216、仕向け情報217、モータ補正値218、ヘッド制御補正値219等が含まれている。
書込み回数管理領域204には、領域毎の書込み回数が管理されている。本実施例において、領域とは、不揮発性メモリ105において分割された、書込み回数を管理するための単位をいう。この書込み回数は、図2〜図4に示す各グループ(Gr)に跨ることのない単位として例えば32バイトを1領域とされる。つまり、例えば、アドレス0〜31の32バイトが領域0とされる。図2において、アドレス0はビット0〜7を示し、アドレス1はビット8〜15を示している。
即ち、領域0への書込み回数220はアドレス0〜31の書込み回数が、領域31への書込み回数222は、アドレス992〜1023の書込み回数が格納されている。領域の大きさを例えば各グループの最大公約数とすることで領域がグループを跨ぐことがない。そのため、その領域は、同じグループ内にあるので書込み頻度が同程度となる。従って、領域単位で不揮発性メモリに書込みを行っても、その領域のデータで書込みの頻度が大きく異なることは少なくなり、不揮発性メモリを効率的に使用することができる。
また、図2、図3では、グループ毎に纏めて情報を保存しているが、図3のようにグループを分離して保存しても構わない。図3では、書込み頻度高グループ201がアドレス256〜318とアドレス640〜830に、書込み頻度中グループ202がアドレス0〜254とアドレス896〜1022に分離して保存されている。
図5は、図2に示したマップを表すテーブルの一部であり、このテーブルがROM102に保存されている。本実施例において、このテーブルをマップ情報と呼ぶ。このテーブルには、各情報に対応する情報ID、情報のアドレスオフセット値、情報のビットオフセット値、及び、情報のサイズが含まれている。
例えば、図5の上から3行目にあるプリンタ状態212は、情報IDがID_PRT_ST、アドレスオフセット値が254、ビットオフセット値が8、サイズが8ビットである。図2、図3、図4に対応するマップ情報も、図3と同様の形式でROM102に保存されている。
図6は、本実施例において、本体に電源が投入された、つまり、コンセント等からの電力供給を受けた際の不揮発性メモリ105の初期化処理の手順を示すフローチャートである。以下、図6〜図8に示すフローチャートの処理は、情報処理装置1のCPU101によって実行される。
まず、ステップS401において、電源が投入されるとCPU101が不揮発性メモリ105から情報を読出し、RAM103上に存在するメインバッファ106へ、不揮発性メモリのマップ情報に従って保存する処理を行う。これにより、不揮発性メモリ105の内容とメインバッファ106の内容が完全に一致する。
ステップS402において、メインバッファ106へ保存した情報をテンプバッファ107へコピーする処理を行う。ステップS402の処理によって、テンプバッファ107の内容をメインバッファ106と同じにする。
ユーザがユーザインタフェース等で用紙設定等の設定データを変更すると、メインバッファ106内にあるデータが変更される。従って、メインバッファからテンプバッファに内容をコピーしておくことによって、ユーザによるデータの変更後の不揮発性メモリへの書込み時にメインバッファ106とテンプバッファ107との内容を比較することで、更新されたデータが分かるようになる。
ステップS403において、不揮発性メモリへの書込み回数の規定値を閾値Nとして定める。閾値Nは、適応するメモリマップを変更する基準を示す変数である。また、規定値は、予め定められた値であっても良いし、ランダムに設定された値や、書込み頻度情報や、不揮発性メモリの仕様等から定められても良い。
図7は、本実施例における不揮発性メモリへの書込み処理の手順を示すフローチャートである。図7の処理は、パワーオフ、設定情報などの特定情報の更新によって不揮発性メモリ105への書込みイベントが発生した時に実行される。即ち、上述したようなメインバッファのデータ内容が変更されて、そのデータ内容を不揮発性メモリに書き込む際に、以下の処理が実行される。
ステップS501において、RAM103上にあるメインバッファ106とテンプバッファ107との内容の比較を行う。これにより、ユーザにより内容が変更、更新されているデータを検出する。
ステップS502において、図5に示すROM102に格納されたマップ情報からステップS501で検出されたデータのIDを取得し、更新されたデータのIDのリストである更新IDリストを作成する。作成された更新IDリストは、RAM103等に格納するようにしても良い。
ステップS503において、ステップS502で作成された更新IDリストと図5に示すROM102に格納されたマップ情報とから、更新されているデータが含まれている領域を判別する。さらに、その判別された領域に対する書込み回数情報を取得する。書込み回数情報は、IDをキーとして図5に示すマップ情報からそのデータが保存されている場所が含まれる領域を認識し、書込み回数管理領域における該当する領域の書込み回数を取得する。
ステップS504において、ステップS502で作成された更新IDリストと、ステップS503で取得された領域の書込み回数とを用いて、後述のマップ変更処理を行う。
ステップS505において、更新IDリストをもとに、書込み回数を更新する。更新IDリストは、ステップS504のマップ変更処理においてマップが変更される場合には、変更されたデータを含む全てのデータがリストに含まれるように変更されている。
ステップS506において、メインバッファ106のチェックサムが計算されてメインバッファのデータの内容が補償できるデータであることが確認される。その際には、計算されたチェックサムでもってチェックサム210が更新される。
ステップS507において、ステップS502で作成した更新IDリストと現在のマップ情報を元にして、メインバッファ106のデータを不揮発性メモリ105へ書込む処理を行う。メインバッファ106全体の大きさは、不揮発性メモリ105と全く同じであるため、メインバッファ106の内容をそのまま不揮発性メモリへ書込むことができる。
ステップS508において、メインバッファ106の内容をテンプバッファ107にコピーする処理を行う。テンプバッファ107に、書込み直後のメインバッファ106の内容をコピーすることで、次回書込み要求があったときに更新されたデータが判別できるようになる。
図8は、図7のステップS504で示されたマップ変更処理の手順を示すフローチャートである。ステップS601において、ステップS502でリストアップされた更新データ(即ち、ユーザにより変更されたデータに対応)を含む不揮発性メモリ105で、書込み回数がN−1回(基準値)に達している領域を検索する。そのような領域が存在する場合には、ステップS602に進み、一方、そのような領域がない場合には、本処理を終了する。即ち、ステップS601においては、不揮発性メモリ105内の領域のうち、書込み回数がほぼ限界値に達している領域を検索している。
ステップS602において、ステップS601において検索された領域に対して、領域交換フラグを立てる。これは、例えば、図2〜図4に示す各マップの書込み回数管理領域204中の交換フラグに「1」を書き込むことにより行う。交換フラグを立てることにより、その領域に書き込まれるデータの変更が必要か否かを明確にすることができ、無駄なマップ変更をしないようにすることができる。
ステップS603において、図2〜4のような複数のマップから平均化を行うのに最適なマップを選択する処理を行う。ここで、不揮発性メモリ105の各領域の書込み回数に対して、例えば図2の書込み頻度高Gr201、書込み回数頻度中Gr202、書込み回数頻度低Gr203、書込み回数管理領域204に予め定められた書込み回数予測値を加算する。ここで、例えば、書込み頻度高Gr201には5000回、書込み頻度中Gr202には3000回、書込み頻度低Gr203には1000回という予め定められた書込み回数予測値が定められている。
上述の結果、不揮発性メモリ105の各領域を横軸とし、書込み回数と書込み回数予測値とが加算された加算結果を縦軸として対応付けたヒストグラムを生成することができる。そのような方法を例えば、図3、図4に示すマップにについても行うと、上述のヒストグラムは、3種類生成されることになる。3種類それぞれのヒストグラムについて、書込み回数の分散値を算出し、最も分散値が小さくなるようなマップを図2〜図4から選択する。
そのように選択されたマップは、例えば不揮発性メモリで書込み回数が比較的高い領域に対して書込み頻度が低いデータが割り当てられ、かつ、不揮発性メモリで書込み回数が比較的低い領域に対して書込み頻度が高いデータが割り当てられている可能性が高い。本実施例においては、不揮発性メモリで書込みの上限値に達しかけている領域を抽出し、そのような領域に対して比較的低い書込み頻度のデータを割り当て、他の領域に対しては、比較的高い書込み頻度のデータを割り当てることができるようなマップを決定する。そのような決定は、予め定められたマップから選択することによって行われる。選択されたマップでもって、最終的に不揮発性メモリ105に書込むので、不揮発性メモリ105内の領域は、全体として平均化された書込み回数となり、不揮発性メモリの寿命を長く保つことができる。
ステップS604において、更新IDリストに設定されている内容と、ステップS603において選択されたマップとを組み合わせて、ユーザによって設定されたデータを含んだメモリマップを生成する。
ステップS605において、予め定められた閾値Nを更新するか否かを判断する。ステップS603の処理の結果、不揮発性メモリ内の領域の書込み平均値が既に閾値Nを超えてしまっていると、選択されたマップで不揮発性メモリに書き込んだ後、本処理を再度行うと、フラグが全領域で立ってしまうおそれがある。その場合には、領域による頻度の分布が正しく分からないので、ステップS605の処理の後、閾値Nを例えば、より高く再設定することによって、次の本処理のおける判定を正しく行うようにする。
本実施例においては、例えば、選択されたマップに対応する上述のヒストグラムから書込み回数の平均値を求め、その平均値が閾値Nを超えているか否かによって判断する。その場合には、平均値が閾値Nを超えているのであれば、閾値Nを更新し、超えていないのであれば更新しない。ここで、ステップS605の処理は、あくまでも閾値を更新する判断を行う処理であるので、提示した方法以外にも、交換フラグの数や、上述の分散値等を使用して判断するようにしても良い。
ステップS606において、不揮発性メモリ105内の全領域の交換フラグをクリアする。本処理によって、次回からのマップ変更処理の判断に全領域が含まれるようにする。ステップS607において、閾値Nに値を加えることで次回のマップ変更回数を定めている。加えられる値は、例えば、閾値Nに加えられた合計値が不揮発性メモリの書込み回数の上限値を超えないような値から決定される。本実施例において、ステップS606とS607は逆の順番で実行されても良い。ステップS608において、選択されたメモリマップに従って、メインバッファ106の内容を更新する。
本発明には、プログラム(情報処理プログラム)コードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)等が実際の処理の一部又は全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれる。更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた場合についても、本発明は適用される。その場合に、書き込まれたプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施例の機能が実現される。
1 情報処理装置
111 バスライン
111 バスライン
Claims (5)
- メモリマップに従ってメモリにデータを書き込む情報処理装置であって、
前記メモリへの書込み頻度に応じてデータを複数のグループにグループ化し、前記複数のグループそれぞれの配置が相異なる複数のメモリマップと、
前記複数のグループに対応する範囲を跨ることなく定められた大きさの複数の領域に前記メモリを分割する分割手段と、
前記分割手段によって分割された複数の領域のうち、書込み回数が基準値に達している領域があるか否かを判定する判定手段と、
前記判定手段の結果、書込み回数が予め定められた基準値に達している領域があると判定された場合に、前記書込み回数が基準値に達している領域に対して前記メモリへの書込み頻度が低いグループのデータを割り当て、その他の領域に対して前記メモリへの書込み頻度が高いグループのデータを割り当てた結果、前記メモリの全体への書込み回数が平均化されるようなメモリマップを前記複数のメモリマップから選択する選択手段と、
前記選択手段によって選択されたメモリマップに従って、前記メモリにデータを書き込む書込手段と
を備えることを特徴とする情報処理装置。 - 前記複数のグループそれぞれには、書込み回数予測値が予め定められており、
前記選択手段は、前記複数の領域それぞれの前記書込み回数に、該領域に対応するグループの前記書込み回数予測値を加算して領域と加算結果とが対応付けされたヒストグラムを生成し、前記加算結果の分散値が最も小さくなるようなメモリマップを選択することを特徴とする請求項1に記載の情報処理装置。 - 前記選択手段によってメモリマップが選択されると、前記加算結果の平均値を算出し、該算出された平均値が前記基準値より大きい場合に、前記基準値を更新する更新手段を更に備えることを特徴とする請求項2に記載の情報処理装置。
- メモリマップに従ってメモリにデータを書き込む情報処理装置において実行される情報処理方法であって、
前記情報処理装置の分割手段が、前記メモリへの書込み頻度に応じてデータを複数のグループにグループ化し、前記複数のグループそれぞれの配置が相異なる複数のメモリマップそれぞれにおける前記複数のグループに対応する範囲を跨ることなく定められた大きさの複数の領域に前記メモリを分割する分割工程と、
前記情報処理装置の判定手段が、前記分割工程において分割された複数の領域のうち、書込み回数が基準値に達している領域があるか否かを判定する判定工程と、
前記情報処理装置の選択手段が、前記判定工程における結果、書込み回数が予め定められた基準値に達している領域があると判定された場合に、前記書込み回数が基準値に達している領域に対して前記メモリへの書込み頻度が低いグループのデータを割り当て、その他の領域に対して前記メモリへの書込み頻度が高いグループのデータを割り当てた結果、前記メモリの全体への書込み回数が平均化されるようなメモリマップを前記複数のメモリマップから選択する選択工程と、
前記情報処理装置の書込手段が、前記選択工程において選択されたメモリマップに従って、前記メモリにデータを書き込む書込工程と
を備えることを特徴とする情報処理方法。 - メモリマップに従ってメモリにデータを書き込むための情報処理プログラムであって、
前記メモリへの書込み頻度に応じてデータを複数のグループにグループ化し、前記複数のグループそれぞれの配置が相異なる複数のメモリマップそれぞれにおける前記複数のグループに対応する範囲を跨ることなく定められた大きさの複数の領域に前記メモリを分割する分割手段と、
前記分割手段によって分割された複数の領域のうち、書込み回数が基準値に達している領域があるか否かを判定する判定手段と、
前記判定手段の結果、書込み回数が予め定められた基準値に達している領域があると判定された場合に、前記書込み回数が基準値に達している領域に対して前記メモリへの書込み頻度が低いグループのデータを割り当て、その他の領域に対して前記メモリへの書込み頻度が高いグループのデータを割り当てた結果、前記メモリの全体への書込み回数が平均化されるようなメモリマップを前記複数のメモリマップから選択する選択手段と、
前記選択手段によって選択されたメモリマップに従って、前記メモリにデータを書き込む書込手段と
してコンピュータを機能させることを特徴とする情報処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008331187A JP2010152723A (ja) | 2008-12-25 | 2008-12-25 | 情報処理装置、方法、及び、プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008331187A JP2010152723A (ja) | 2008-12-25 | 2008-12-25 | 情報処理装置、方法、及び、プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2010152723A true JP2010152723A (ja) | 2010-07-08 |
Family
ID=42571727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008331187A Withdrawn JP2010152723A (ja) | 2008-12-25 | 2008-12-25 | 情報処理装置、方法、及び、プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2010152723A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015181923A1 (ja) * | 2014-05-29 | 2015-12-03 | 富士通株式会社 | 情報処理装置、制御方法及び制御プログラム |
JP2018005764A (ja) * | 2016-07-07 | 2018-01-11 | 株式会社デンソー | 記憶装置及び記憶領域管理方法 |
-
2008
- 2008-12-25 JP JP2008331187A patent/JP2010152723A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015181923A1 (ja) * | 2014-05-29 | 2015-12-03 | 富士通株式会社 | 情報処理装置、制御方法及び制御プログラム |
JPWO2015181923A1 (ja) * | 2014-05-29 | 2017-04-20 | 富士通株式会社 | 情報処理装置、制御方法及び制御プログラム |
JP2018005764A (ja) * | 2016-07-07 | 2018-01-11 | 株式会社デンソー | 記憶装置及び記憶領域管理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4995064B2 (ja) | 画像出力装置及び画像出力方法 | |
JP4356686B2 (ja) | メモリ装置及びメモリ制御方法 | |
JP2008242503A (ja) | メモリ管理装置及び方法、並びにプログラム | |
JP4848330B2 (ja) | 画像形成装置、画像形成方法、およびプログラム | |
JP2011095916A (ja) | 電子機器 | |
JP2012118587A (ja) | 管理装置及びその制御方法、並びにプログラム | |
US7969588B2 (en) | Image forming device and control method therefor | |
EP2053499A2 (en) | Printer, control method of a printer and computer-readable recording medium | |
JP2010152723A (ja) | 情報処理装置、方法、及び、プログラム | |
US20150294196A1 (en) | Electronic device and image forming apparatus | |
CN102692992A (zh) | 信息处理装置及该信息处理装置的控制方法 | |
US20140118779A1 (en) | Image forming apparatus and control method for image forming apparatus | |
US8780384B2 (en) | Selection of job image data for storage on external memory and memory management techniques | |
US9626143B2 (en) | Image forming device that improves usage efficiency of memory, management method, and recording medium | |
JP6579324B2 (ja) | 画像形成装置およびデータ処理プログラム | |
JP2005327334A (ja) | 画像処理装置 | |
US20060152761A1 (en) | Image forming apparatus and control method thereof | |
CN114420183A (zh) | 数据存储控制方法、电子设备及存储介质 | |
JP2018156582A (ja) | 情報処理装置および画像形成装置等のストレージ制御方法 | |
JP2011142614A (ja) | 画像処理装置、及びその制御方法 | |
US20090319587A1 (en) | Memory controller, nonvolatile memory device, and nonvolatile memory system | |
JP4402512B2 (ja) | フラッシュメモリのエリア割当方法 | |
US11722616B2 (en) | Control device, startup method, and electric apparatus | |
JP2007148553A (ja) | 画像形成コントローラ装置 | |
US8819384B1 (en) | Method and system for embedded virtual memory management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20120306 |