JP2007034431A - Memory controller - Google Patents
Memory controller Download PDFInfo
- Publication number
- JP2007034431A JP2007034431A JP2005213349A JP2005213349A JP2007034431A JP 2007034431 A JP2007034431 A JP 2007034431A JP 2005213349 A JP2005213349 A JP 2005213349A JP 2005213349 A JP2005213349 A JP 2005213349A JP 2007034431 A JP2007034431 A JP 2007034431A
- Authority
- JP
- Japan
- Prior art keywords
- data
- written
- block
- writing
- volatile memory
- 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.)
- Pending
Links
Images
Landscapes
- Memory System (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
本発明は、不揮発性メモリに効率良くデータを書き込む技術に関する。 The present invention relates to a technique for efficiently writing data to a nonvolatile memory.
不揮発性メモリのなかには、データが繰り返し書き込まれることによって記憶領域の値が不定となってしまうものがある。この種のメモリは、メーカーによって書込回数の制限値が設けられており、その値は、例えばEEPROM(Electronically Erasable and Programmable Read Only Memory)の場合は10万〜100万回程度である。EEPROMにおいては所定のサイズの記憶領域毎にブロックが形成されており、このブロック毎に上述の制限値が設定されている。 In some nonvolatile memories, the value of the storage area becomes undefined when data is repeatedly written. This type of memory is provided with a limit value for the number of times of writing by the manufacturer. The value is, for example, about 100,000 to 1,000,000 times in the case of an EEPROM (Electronically Erasable and Programmable Read Only Memory). In the EEPROM, a block is formed for each storage area of a predetermined size, and the above limit value is set for each block.
このような不揮発性メモリをコンピュータに用いる場合には、不揮発性メモリの寿命を延長すべく、不揮発性メモリへの書込処理の回数が少なくなるような制御を行っている。例えば、特許文献1に記載の技術においては、不揮発性メモリ(不揮発メモリ回路部22)に書き込むべきデータを揮発性メモリ(揮発メモリ回路部21)に記憶させながら更新していき、電源オフ時に揮発性メモリ内のデータを不揮発性メモリに一括で書き込む処理を行うことによって、不揮発性メモリへの書込回数を減らしている。また、特許文献2に記載の技術においては、モータの駆動回数や光源の点灯時間等を計数値として不揮発性メモリ(EEPROM)に書き込む際に、本来1回カウントする度に「1」を書き込むところを、n回カウントしたら1回「n」を書き込むという処理を行うことによって、不揮発性メモリへの書込回数を減らしている。
しかし、上述の特許文献1および2に記載された技術には、以下のような不都合が認められる。特許文献1に記載の技術の場合、電源オフ時に一括して書き込むとはいえ、1個のデータを書き込むには1回の書込処理を必要としていた。すなわち、x個のデータを書き込もうとすれば、結局x回の書込処理が発生することとなり、書込回数を効率的に減らしているとは言えなかった。
However, the following inconveniences are recognized in the techniques described in
また、特許文献2に記載の技術の場合にも、上述の特許文献1と同様の不都合が生じ得る。加えて、特許文献2に記載の技術の場合は、書込処理を間引くことによって書込回数を減らしているに過ぎないため、本来書き込まれているべき値と実際に書き込まれている値との間に誤差が生じることもあった。
In the case of the technique described in
本発明は上述の事情に鑑みてなされたものであり、その目的は、不揮発性メモリへのデータの書込回数を効率的に減少させ、その寿命を延長させる技術を提供することにある。 The present invention has been made in view of the above-described circumstances, and an object of the present invention is to provide a technique for efficiently reducing the number of times data is written to a nonvolatile memory and extending its life.
上述の目的を達成するために、本発明は、記憶領域がブロック単位で区分されている不揮発性メモリに対して、揮発性メモリを介してデータの読み出しまたは書き込みを行うメモリ制御装置において、前記不揮発性メモリの所定のブロックに書き込むべきデータを、当該ブロックを示す識別情報とともに前記揮発性メモリに書き込む第1の書込手段と、前記第1の書込手段により書き込まれた識別情報を用いて、前記揮発性メモリに書き込まれたデータの中から同一のブロックに書き込まれるデータを特定する検索手段と、前記検索手段により特定されたデータを、その書き込むべきブロックに一括して書き込む第2の書込手段とを備えることを特徴としている。 In order to achieve the above object, the present invention provides a memory control device that reads or writes data via a volatile memory with respect to a nonvolatile memory in which a storage area is divided into blocks. First writing means for writing data to be written in a predetermined block of the volatile memory to the volatile memory together with identification information indicating the block, and using the identification information written by the first writing means, Search means for specifying data to be written to the same block among data written to the volatile memory, and second writing for collectively writing the data specified by the search means to the block to be written Means.
かかるメモリ制御装置によれば、第1の書込手段が不揮発性メモリに書き込むべきデータを一旦揮発性メモリに書き込み、この揮発性メモリに書き込まれたデータの中から、検索手段が同一のブロックに書き込まれるデータを特定する。このとき特定された1ないし複数のデータを第2の書込手段が一括して不揮発性メモリに書き込むことによって、同一のブロックに書き込まれるデータを、その個数によらず1回の書込処理で書き込むことができる。 According to such a memory control device, the data to be written to the nonvolatile memory by the first writing means is once written to the volatile memory, and the searching means is stored in the same block from the data written to the volatile memory. Identify the data to be written. The second writing means collectively writes one or a plurality of data specified at this time to the nonvolatile memory, so that the data written to the same block can be written in one time regardless of the number of data. Can write.
本発明において、メモリ制御装置は、前記検索手段により特定されたデータを、そのデータが書き込まれるべきブロックである被書込ブロックに書き込まれているデータと比較し、両者に差違があるか否かを判断する判断手段を備え、前記第2の書込手段は、前記判断手段により両者に差違がないと判断された場合には、前記被書込ブロックに対する書き込みを行わない構成を有していると、より望ましい。このようにすれば、書き込みの前後において差違が生じるブロックだけ書込処理が行われる。 In the present invention, the memory control device compares the data specified by the search means with the data written in the block to be written, which is the block in which the data is to be written, and whether there is a difference between the two. The second writing means has a configuration in which writing to the block to be written is not performed when it is determined by the determining means that there is no difference between them. And more desirable. In this way, the writing process is performed only for blocks in which a difference occurs before and after writing.
また、本発明において、メモリ制御装置は、決められた処理の発生を検知する検知手段を備え、前記第2の書込手段は、前記検知手段が前記処理の発生を検知した場合にデータの書き込みを行う構成を有していてもよい。この場合において、「決められた処理」とは、例えば電源を遮断する処理や、接続される上位装置が節電モードを開始する処理のことである。もちろん、この指示は、ユーザにより直接入力されるものであってもよい。 In the present invention, the memory control device includes a detection unit that detects the occurrence of a predetermined process, and the second writing unit writes data when the detection unit detects the occurrence of the process. You may have the structure which performs. In this case, the “determined process” is, for example, a process of shutting off the power supply or a process of starting the power saving mode by the connected host device. Of course, this instruction may be input directly by the user.
以上のように、本発明によれば、不揮発性メモリへのデータの書込回数を効率的に減少させ、その寿命を延長させることが可能となる。 As described above, according to the present invention, it is possible to efficiently reduce the number of times data is written to the nonvolatile memory and extend its life.
以下、本発明の実施の形態について、図面を参照しつつ説明する。
[1.構成]
図1は、本発明の一実施形態に係るデータ処理装置100を示したブロック図である。データ処理装置100は、例えば電子写真方式の画像形成装置に搭載され、不揮発性メモリ2に対するデータの読み書きを制御するものである。このデータ処理装置100は、メモリ制御装置1と、不揮発性メモリ2と、ASIC(Application Specific Integrated Circuit)3とに大別される。
Embodiments of the present invention will be described below with reference to the drawings.
[1. Constitution]
FIG. 1 is a block diagram showing a
メモリ制御装置1は、制御部11と揮発性メモリ12とを備える。制御部11は例えばCPU(Central Processing Unit)であり、図示せぬ所定のプログラムを実行することによってデータ処理装置100におけるデータの読み書きを制御する。揮発性メモリ12は例えばRAM(Random Access Memory)であり、制御部11のワーキングエリアとして利用される。揮発性メモリ12の一部は、「データ領域」または「ID領域」として利用される。データ領域には不揮発性メモリ2に記憶されたデータが書き込まれ、ID領域には不揮発性メモリ2に書き込むべきデータを識別するIDが書き込まれる。
The
なお、制御部11は、スイッチSWおよびタイマTMの状態を検知することが可能なように構成されている。ここで、スイッチSWは画像形成装置等の上位装置のオン・オフを制御する操作子であり、制御部11はこのスイッチSWがオフ状態となることで上位装置を停止させる。また、タイマTMは上位装置のアイドル時間、すなわちユーザにより動作を指示されないでいる時間を計測する計時装置である。ここでは、ユーザが上位装置に何も動作を指示しないでいる状態のことを「アイドル状態」という。
Note that the
不揮発性メモリ2は例えばEEPROMであり、上位装置がオフ状態となったときにもその記憶内容を保持している。不揮発性メモリ2に記憶されるデータは、例えば上位装置が電子写真方式の画像形成装置である場合、用紙上の画像位置を決定する「レジ調整値」や、トナーを転写させるための「転写電位」、あるいはトナーを用紙に定着させるための「定着温度」等の各種パラメータである。これらの値は、ユーザからの指示や周知のキャリブレーションの実行結果に基づいて書き換えが行われる。
The
ここで、不揮発性メモリ2のデータ構成を図2に例示する。同図において、各セルは1バイトの記憶領域を表しており、nバイトで1つのブロックを形成している。このようなブロックをm個設けることで、不揮発性メモリ2は全体で「m×n」バイトの記憶容量を有している。
Here, the data configuration of the
また、不揮発性メモリ2は内部にカウンタを設けた構成となっている。ここでは、各ブロックの左端のセルがカウンタB1_Cnt〜Bm_Cntとして確保されており、該当するブロックにデータが書き込まれると、その値が「1」だけ増加する。これらのセルは専ら書込回数のカウンタとして用いられるため、上述した記憶容量には含まないものとする。
Further, the
なお、以下においては、第i行のセル全体を「ブロックBi」といい、第i行第j列のセルを「セルBiDj」という。すなわち、ブロック「B1」の左端のセルは「B1D1」、その右および下にあるセルはそれぞれ「B1D2」および「B2D1」、といった具合である。このような要領で、同図の右下端にあるセル「BmDn」まで定義する。また、ブロックBmを「最終ブロック」ともいう。 In the following, the entire cell in the i-th row is referred to as “block Bi”, and the cell in the i-th row and j-th column is referred to as “cell B i D j ”. That is, the leftmost cell of the block “B1” is “B 1 D 1 ”, the right and lower cells are “B 1 D 2 ” and “B 2 D 1 ”, respectively. In this manner, the definition is made up to the cell “B m D n ” at the lower right corner of the figure. The block Bm is also referred to as a “final block”.
ASIC3は特定の画像処理を実行するための集積回路である。本実施形態においては、メモリ制御装置1の制御の下に不揮発性メモリ2に対して読み出しまたは書き込みの動作を行う。ASIC3は不揮発性メモリ2と有線または無線で接続されており、この不揮発性メモリ2とシリアル通信を行う。
The ASIC 3 is an integrated circuit for executing specific image processing. In the present embodiment, a read or write operation is performed on the
[2.動作]
以上の構成のもと、データ処理装置100はデータの読み出しおよび書き込みを行う。以下ではデータ処理装置100の具体的な動作を説明するが、特許文献1および2に代表される従来のデータ書込処理との差違を明確にすべく、はじめにデータ処理装置100を用いて従来の動作例を説明し、その後に本実施形態の動作例を2つ示す。
[2. Operation]
Based on the above configuration, the
[2−1.従来例]
図3は、従来の書込処理を示したフローチャートである。同図に沿って説明すると、はじめにデータ処理装置100の制御部11は、ユーザにより電源が投入されてスイッチSWがオン状態となることを検知する(ステップS101)。スイッチSWのオン状態を検知すると、制御部11は不揮発性メモリ2の全データを読み出して揮発性メモリ12のデータ領域にコピーする(ステップS102)。
[2-1. Conventional example]
FIG. 3 is a flowchart showing a conventional writing process. Explaining along the figure, first, the
ここで、制御部11は不揮発性メモリ2のデータに対して書き換え指示が発生するか否かを判断する(ステップS103)。不揮発性メモリ2のデータの書き換え指示は、上述したユーザからの指示やキャリブレーションの実行結果に基づいて生じる。データの書き換え指示が発生すると(ステップS103;YES)、制御部11は揮発性メモリ12のデータ領域から書き換え対象のデータを特定し、その値を書き込む(ステップS104)。なお、このとき書き込まれるデータは単一のセルに相当するデータとは限らず、複数のセルに相当するデータの場合もある。
Here, the
揮発性メモリ12にデータを書き込んだら、制御部11はそのデータの位置を特定するためのIDを揮発性メモリ12のID領域に登録する(ステップS105)。なお、ID領域に登録するIDは、そのデータの不揮発性メモリ2における位置の識別および特定が可能であればいかなる形式でもよいが、ここでは説明の便宜上、各セルの符号、すなわち「B1D1」〜「BmDn」をIDとして用いることとする。
After writing data in the
続いて制御部11は、揮発性メモリ12のID領域にIDが登録されているか否かを判断する(ステップS106)。ID領域にIDが登録されている場合(ステップS106;YES)、これは不揮発性メモリ2に書き込むべきデータが存在していることを意味するので、制御部11は不揮発性メモリ2にデータを書き込むための処理を行う。一方、ID領域にIDが登録されていない場合には(ステップS106;NO)、制御部11は再び不揮発性メモリ2のデータの書き換え指示を待機する(ステップS103)。
Subsequently, the
不揮発性メモリ2にデータを書き込む処理は、次のような手順で行われる。まず、制御部11は、ID領域に登録された先頭のIDに基づいて、不揮発性メモリ2から書き換え対象のデータをブロック単位で読み出す(ステップS107)。例えば、ID領域のIDがセル「B1D1」のデータを示している場合、制御部11は不揮発性メモリ2のブロック「B1」のデータ全体を読み出す。このとき読み出されたブロックのことを、以下では「被書込ブロック」という。
The process of writing data to the
続いて制御部11は、読み出された被書込ブロックのデータを揮発性メモリ12のデータ領域に記憶されたデータを用いて更新する(ステップS108)。このとき、制御部11は被書込ブロック全体を一括して更新するが、ID領域に登録されたIDが示すデータ以外の部分については、更新の前後において値に変化はない。その後、制御部11は読み出した被書込ブロックのカウンタに「1」を加算し(ステップS109)、更新されたデータを不揮発性メモリ2に書き込む(ステップS110)。
Subsequently, the
不揮発性メモリ2にデータを書き込んだら、制御部11は書き込んだデータに相当するIDを揮発性メモリ12のID領域から削除する(ステップS111)。そして、制御部11は再度IDの有無を判断し(ステップS106)、揮発性メモリ12のID領域に登録されているIDがあれば上述したステップS107〜S111の処理を繰り返す。
After writing data in the
以上のように、制御部11はID領域に登録されたIDの有無を判断し、このIDに基づいて、書き換えられたデータを順次不揮発性メモリ2に書き込んでいく。以下では、この処理を具体的な例を挙げて説明する。ここでは、ID領域にセル「B1D1」、「B2D1」、「B1D3」、「B1Dn」のデータを示す4つのIDが順に登録されている場合を例に説明する(「B1D1」を先頭のIDとする)。また、このとき各セルに書き込まれるデータは、「B1D1」が「α」、「B2D1」が「β」、「B1D3」が「γ」、「B1Dn」が「δ」であるとし、各ブロックのカウンタはいずれも「0」であるとする。
As described above, the
図4は、上述の例にしたがって行われる書込処理を示した模式図である。まず、データ「α」が書き込まれる場合には、制御部11はID領域のIDから書き込み対象のブロックを「B1」であると特定し、このデータを更新して不揮発性メモリ2に書き込む。その結果、図4(1)に示すように、セル「B1D1」は「α」に書き換えられ、ブロックB1のカウンタ「B1_Cnt」が増加して「1」となる。また、セル「B1D1」を示すIDがID領域から削除され、セル「B2D1」を示すIDが先頭、すなわち処理対象となる。
FIG. 4 is a schematic diagram showing the writing process performed according to the above-described example. First, when the data “α” is written, the
続いて、データ「β」が書き込まれる場合には、制御部11はID領域のIDから書き込み対象のブロックを「B2」であると特定する。以下、図4(1)の場合と同様の要領で不揮発性メモリ2にデータが書き込まれる。その結果、図4(2)に示すように、セル「B2D1」は「β」に書き換えられ、ブロックB2のカウンタ「B2_Cnt」が増加して「1」となる。また、セル「B2D1」を示すIDがID領域から削除され、セル「B1D3」を示すIDが先頭となる。
Subsequently, when the data “β” is written, the
続いて、データ「γ」が書き込まれる場合にも、制御部11は同様に書き込み対象のブロックを特定し、データの書き込みを行う。その結果、図4(3)に示すように、セル「B1D3」は「γ」に書き換えられ、ブロックB1のカウンタ「B1_Cnt」が増加して「2」となる。さらに、データ「δ」が書き込まれると、セル「B1Dn」は図4(4)に示すように「δ」に書き換えられ、ブロックB1のカウンタ「B1_Cnt」は「3」に増加する。これらの処理が終了すると、揮発性メモリ12のID領域は空となり、IDが未登録の状態に戻る。
Subsequently, when the data “γ” is written, the
以上のように、従来例にしたがってデータα〜δを書き込む処理を行った場合、その回数は合計で4回となる。これらの処理の結果、ブロックB1のカウンタ「B1_Cnt」は処理前から「3」増加し、ブロックB2のカウンタ「B2_Cnt」は処理前から「1」増加する。 As described above, when the process of writing data α to δ is performed according to the conventional example, the total number of times is four. As a result of these processes, the counter “B1_Cnt” of the block B1 is increased by “3” from before the process, and the counter “B2_Cnt” of the block B2 is increased by “1” from before the process.
[2−2.動作例1]
続いて、本実施形態に係る第1の動作例を図5を用いて説明する。図5は、本動作例の書込処理を示したフローチャートである。なお、本動作例の書込処理においては、データ処理装置100のオン状態を検知してから不揮発性メモリ2のデータを読み出すまでの手順(ステップS101〜S107)が上述の従来例と同様である。そこで、これらの処理についてはその説明を省略する。
[2-2. Operation example 1]
Subsequently, a first operation example according to the present embodiment will be described with reference to FIG. FIG. 5 is a flowchart showing the writing process of this operation example. In the writing process of this operation example, the procedure (steps S101 to S107) from the detection of the ON state of the
本動作例において、制御部11は、ステップS107において不揮発性メモリ2から書き換え対象のデータをブロック単位で読み出した後、揮発性メモリ12のID領域の先頭にあるIDと同一のブロックに書き込まれるデータのIDを揮発性メモリ12から検索する(ステップS201)。すなわち、ID領域の先頭のIDが示すデータがブロック「B1」に書き込まれるデータであった場合、制御部11は揮発性メモリ12のID領域から被書込ブロックが「B1」を示すIDを検索する。この検索結果に基づき、制御部11は被書込ブロックが同一であるIDが他にも登録されているか判断する(ステップS202)。
In this operation example, the
被書込ブロックが同一であるIDが登録されている場合(ステップS202;YES)、制御部11は読み出された被書込ブロックのデータをこれらのIDが示すデータを用いて更新する(ステップS203)。このとき、被書込ブロックが同一であるIDは複数存在するため、同時に複数のデータの値が変化する。データを更新した後、制御部11は被書込ブロックのカウンタに「1」を加算し(ステップS204)、更新されたデータを不揮発性メモリ2に書き込む(ステップS207)。
When IDs having the same write target block are registered (step S202; YES), the
一方、被書込ブロックが同一であるIDが登録されていない場合には(ステップS202;NO)、上述した従来例のステップS108、S109と同様の処理が行われる。すなわち、制御部11は読み出された被書込ブロックのデータを揮発性メモリ12のデータ領域に記憶されたデータを用いて更新する(ステップS205)。この更新の前後において値が変化するデータは、従来例と同様、ID領域に登録されたIDが示す1つのデータのみである。データを更新したら、制御部11は被書込ブロックのカウンタに「1」を加算し(ステップS206)、更新されたデータを不揮発性メモリ2に書き込む(ステップS207)。
On the other hand, when IDs with the same block to be written are not registered (step S202; NO), the same processing as steps S108 and S109 of the conventional example described above is performed. That is, the
不揮発性メモリ2にデータを書き込んだら、制御部11は書き込んだデータに相当するIDを揮発性メモリ12のID領域から削除する(ステップS208)。このとき、上述のステップS202の判断が「YES」であった場合には、同一ブロックを示す複数のIDが同時に削除される。そして、制御部11は再度IDの有無を判断し(ステップS106)、その後の処理を繰り返す。
After writing the data in the
本動作例の書込処理は以上の通りである。続いて、このような書込処理を行った場合の動作を説明し、従来例との相違点を明らかにする。そのため、ここでは上述の従来例と同様に、ID領域にセル「B1D1」、「B2D1」、「B1D3」、「B1Dn」のデータを示す4つのIDが登録されている場合を例に説明する。このとき各セルに書き込まれるデータは、「B1D1」が「α」、「B2D1」が「β」、「B1D3」が「γ」、「B1Dn」が「δ」であるとし、各ブロックのカウンタはいずれも「0」であるとする。 The writing process of this operation example is as described above. Subsequently, the operation when such a writing process is performed will be described, and the difference from the conventional example will be clarified. Therefore, here, as in the above-described conventional example, four IDs indicating data of cells “B 1 D 1 ”, “B 2 D 1 ”, “B 1 D 3 ”, and “B 1 D n ” in the ID area. A case where is registered will be described as an example. At this time, the data written to each cell is “B 1 D 1 ” is “α”, “B 2 D 1 ” is “β”, “B 1 D 3 ” is “γ”, and “B 1 D n ” is “B 1 D 1 ”. It is assumed that “δ”, and the counters of each block are “0”.
図6は、上述の例にしたがって行われる書込処理を示した模式図である。まず、データ「α」が書き込まれる場合には、制御部11はID領域のIDから書き込み対象のブロックを「B1」であると特定し、このブロック「B1」に書き込まれるデータを示すIDを検索する。この場合、データ「α」に加えてデータ「γ」、「δ」もブロック「B1」に書き込まれるデータであるため、「B1D3」と「B1Dn」とが特定される。制御部11はこれらのデータ「α」、「γ」および「δ」を同時に更新し、不揮発性メモリ2の被書込ブロックに書き込む。
FIG. 6 is a schematic diagram showing the writing process performed according to the above-described example. First, when data “α” is written, the
この結果、図6(1)に示すように、セル「B1D1」、「B1D3」および「B1Dn」は「α」、「γ」および「δ」にそれぞれ書き換えられ、ブロックB1のカウンタ「B1_Cnt」が増加して「1」となる。このとき、セル「B1D1」、「B1D3」および「B1Dn」を示す3つのIDがID領域から削除され、セル「B2D1」を示すIDが先頭、すなわち処理対象となる。 As a result, as shown in FIG. 6A, the cells “B 1 D 1 ”, “B 1 D 3 ”, and “B 1 D n ” are rewritten to “α”, “γ”, and “δ”, respectively. The counter “B1_Cnt” of the block B1 increases to “1”. At this time, three IDs indicating the cells “B 1 D 1 ”, “B 1 D 3 ”, and “B 1 D n ” are deleted from the ID area, and the ID indicating the cell “B 2 D 1 ” is the top, It becomes a processing target.
続いて、データ「β」が書き込まれる場合を説明する。このとき、制御部11はID領域のIDから書き込み対象のブロックを「B2」であると特定し、被書込ブロックにセル「B2D1」だけ更新した値を書き込む。制御部11はブロックB2のカウンタ「B2_Cnt」を「1」に増加させるとともに、セル「B2D1」を示すIDをID領域から削除する。この結果、図6(2)に示すように、揮発性メモリ12のID領域は空となって、IDが未登録の状態に戻る。
Next, a case where data “β” is written will be described. At this time, the
以上のように、本動作例にしたがってデータα〜δを書き込む処理を行った場合、その回数は合計で2回となる。これらの処理の結果、ブロックB1およびB2のカウンタ「B1_Cnt」および「B2_Cnt」は、それぞれ処理前から「1」だけ増加する。図6を図4と比較すれば明らかなように、本動作例においては、上述の従来例と同様のデータを書き込む場合に、その書込回数を減少させ、カウンタの値の増加を抑えることが可能となる。ゆえに、このような書込処理を行うことによって、不揮発性メモリ2の寿命を延長させることが可能となる。
As described above, when the process of writing the data α to δ is performed according to this operation example, the total number of times is two. As a result of these processes, the counters “B1_Cnt” and “B2_Cnt” of the blocks B1 and B2 respectively increase by “1” from before the processes. As is clear from comparison of FIG. 6 with FIG. 4, in this operation example, when data similar to that in the above-described conventional example is written, the number of times of writing can be reduced to suppress an increase in the value of the counter. It becomes possible. Therefore, it is possible to extend the lifetime of the
[2−3.動作例2]
次に、本実施形態に係る第2の動作例を説明する。本動作例が上述の動作例1と相違する点は2点である。第1の点は、本動作例においては、揮発性メモリ12への書き込みを指示する所定のイベントが発生するまでは、制御部11が揮発性メモリ12のID領域にIDを登録しない点である。第2の点は、本動作例においては、被書込ブロックのデータとそのブロックに書き込まれるべきデータとの間に差違がない場合には、データの更新を行わない点である。以下では、これらの相違点を中心に説明を行い、上述の動作例1と同様の処理が行われる部分については、その説明を適宜省略する。
[2-3. Operation example 2]
Next, a second operation example according to this embodiment will be described. This operation example is different from operation example 1 described above in two points. The first point is that in this operation example, the
図7は、本動作例の書込処理を示したフローチャートである。なお、本動作例の書込処理においては、データ処理装置100のオン状態を検知してから揮発性メモリ12にデータを書き込むまでの手順(ステップS101〜S104)が上述の従来例および動作例1と同様である。
FIG. 7 is a flowchart showing the writing process of this operation example. In the writing process of this operation example, the procedure (steps S101 to S104) from the detection of the ON state of the
揮発性メモリ12にデータを書き込んだら、制御部11は書込指示イベントを待機する(ステップS301)。ここで「書込指示イベント」とは、上位装置において発生する不揮発性メモリ2へのデータの書き込みが必要となる事象(イベント)のことである。書込指示イベントが発生したとき、制御部11にはイベントの発生を表す信号が上位装置から供給される。
After writing data to the
なお、書込指示イベントには複数のイベントが含まれるが、例えば、上位装置の電力消費を抑える「節電モード」を開始する指示や、ユーザによる上位装置の電源を遮断する指示がその一例である。ここで「節電モード」とは、上位装置がある時間以上アイドル状態(データの入力や操作がされない状態)にあったときに開始されるモードのことである。また、ユーザによる所定の操作を書込指示イベントに含んでもよい。 Note that the write instruction event includes a plurality of events. For example, an instruction to start a “power saving mode” for reducing power consumption of the host apparatus or an instruction to shut down the power of the host apparatus by the user is an example. . Here, the “power saving mode” is a mode that is started when the host device is in an idle state (a state in which no data is input or operated) for a certain period of time. A predetermined operation by the user may be included in the write instruction event.
書込指示イベントがない間は(ステップS301;NO)、制御部11は不揮発性メモリ2のデータに対する書き換え指示を待機し(ステップS103)、書き換え指示に応じてデータを随時揮発性メモリ12に書き込んでいく(ステップS104)。そして、書込指示イベントの発生を検知すると(ステップS301;YES)、それまでの間に揮発性メモリ12のデータ領域に書き込んだ全データに相当するIDを揮発性メモリ12のID領域に登録する(ステップS302)。
While there is no write instruction event (step S301; NO), the
IDの登録が終了したら、制御部11は被書込ブロックをブロック「B1」とするIDを検索する(ステップS303)。なお、図7においては、説明の便宜上、被書込ブロックを「Bi」と記載している。ここでは、値「i」を、「1」を初期値として1ずつ増加する変数として定義する。この変数iは後述するステップS312においてインクリメントされる。そのため、以下の説明においては、ステップS312の処理が行われるまでの各ステップは「Bi」を「B1」と読み替えるものとし、以後、ステップS312の処理を行うごとに「B2」、「B3」と適宜読み替えていくものとする。
When the ID registration is completed, the
続いて制御部11は、上述の検索の結果に基づき、被書込ブロックがブロック「B1」であるIDの有無を判断する(ステップS304)。データの被書込ブロックがブロック「B1」であるIDが存在する場合(ステップS304;YES)、制御部11は不揮発性メモリ2のブロック「B1」からデータをブロック単位で読み出し(ステップS305)、読み出したブロック「B1」のデータとこのブロック「B1」に書き込まれるべきデータとを比較して、それぞれに差違があるか否かを判断する(ステップS306)。
Subsequently, the
この比較において、両者に1箇所でも差違があれば(ステップS306;YES)、制御部11はブロック「B1」のデータ全体を更新する(ステップS307)。そして制御部11はブロック「B1」のカウンタに「1」を加算し(ステップS308)、更新されたデータを不揮発性メモリ2のブロック「B1」に書き込む(ステップS309)。このときも上述の動作例1と同様に、複数のIDに相当するデータを1回の書込処理で書き込むため、カウンタの増加は「1」となる。不揮発性メモリ2へのデータの書き込みが終了したら、制御部11は書き込んだデータに相当するIDを揮発性メモリ12のID領域から削除する(ステップS310)。
In this comparison, if there is a difference in both places (step S306; YES), the
一方、ステップS306の比較において両者に差違がなかった場合(ステップS306;NO)、制御部11は上述のステップS307〜S309の処理をスキップしてIDの削除を行う(ステップS310)。つまりこのとき、制御部11は不揮発性メモリ2への書き込みを行わずに処理を続行する。ステップS308の処理も行われないため、このときカウンタも加算されない。
On the other hand, if there is no difference between the two in the comparison in step S306 (step S306; NO), the
IDを削除したら、続いて制御部11は被書込ブロックが「Bm」であるか否かを判断する(ステップS311)。すなわちこれは、被書込ブロックがデータ領域の最終ブロックであるか否かを判断することを意味している。ここでは、被書込ブロックがブロック「B1」であるから、最終ブロックではない(ステップS311;NO)。そのため、制御部11は、変数iをインクリメントしてその値を「2」とし(ステップS312)、被書込ブロックをブロック「B2」としてステップS303からの処理を繰り返す。
After deleting the ID, the
なお、データの被書込ブロックがブロック「B1」であるIDが存在しない場合には(ステップS304;NO)、制御部11はステップS305〜S310までの処理をスキップする。つまり、このとき制御部11は、被書込ブロックに対していかなる処理も行わずに次のブロックへと処理を進めていく。
If there is no ID in which the data writing block is the block “B1” (step S304; NO), the
制御部11は上述の要領でブロック「B1」から順番にデータの書き込みを行っていく。そして、最終的に被書込ブロックがブロック「Bm」、すなわち最終ブロックとなったときには、制御部11は本処理を終了させる。本処理の終了後、データ処理装置100は、書込指示イベントの種類に応じて、電源の遮断や節電モードの開始等のための動作を行う。
The
以上のような処理を行うことで、不揮発性メモリ2への書込回数を上述の動作例1よりもさらに少なくすることが可能となる。本動作例においては、ステップS301が示すように、書込指示イベントをトリガ(契機)として不揮発性メモリ2へのデータの書き込みが行われる。そのため、IDの登録をトリガに不揮発性メモリ2へデータを書き込む動作例1に比べ、より多くのIDをID領域に登録させることができる。より多くのIDが登録されていれば、当然、1回で同時に書き込むデータの数も増加するので、その分書込回数を減少させることが可能となる。しかも、本処理においては、各ブロックに対して書き込みを行うのは0ないし1回のみであるため、書き換えを指示されたデータの個数が多くても、各ブロックのカウンタは「2」以上増加することがない。
By performing the processing as described above, the number of times of writing to the
また、本動作例においては、ステップS306において不揮発性メモリ2から読み出したブロックのデータをこのブロックに書き込むべきデータと比較し、両者に差違がない場合には不揮発性メモリ2へデータを書き込まないような処理を行うことによっても、書込回数の減少を図っている。
In this operation example, the data of the block read from the
上述したように、不揮発性メモリ2に書き込まれるデータは、「レジ調整値」、「転写電位」、または「定着温度」といった各種パラメータである。これらのパラメータは、書き換える指示は生じたものの、指示されたデータが書き換え前と同一となることがある。上述の従来例や動作例1においては、書き換え前後のデータの内容を比較判断せずに、書き換えを指示されたデータは全て書き込みを行っていた。そのため、書き込み前後のデータに差違がない場合にも不揮発性メモリ2に書き込みを行い、カウンタの値を無駄に消費してしまうことがあった。本動作例はこのような場合に不揮発性メモリ2への書き込みをスキップし、書込回数を増加させないように工夫したものである。
As described above, the data written in the
[3.変形例]
上述の実施形態においては、データ処理装置100を例示して本発明を説明したが、本発明はこの実施形態に限定されるものではなく、種々の変形が可能である。以下にその変形例を示す。
[3. Modified example]
In the above-described embodiment, the present invention has been described by exemplifying the
上述の実施形態においては、データ処理装置100がASIC3を備える構成を示したが、メモリ制御装置1が不揮発性メモリ2に対して直接データの読み書きを行う構成であってもよい。すなわち、本発明において、ASICは必須の構成要素ではない。また、上述の実施形態においては、データ処理装置100の上位装置が画像形成装置である場合を説明したが、上位装置はこれに限定されず、種々の制御装置やコンピュータに適用可能である。さらに、データ処理装置100は上位装置の内部に搭載されている必要はなく、データ処理装置100と上位装置とが無線ないし有線で接続される構成であってもよい。
In the above-described embodiment, the configuration in which the
また、上述の実施形態においては、不揮発性メモリ2をEEPROMであると説明したが、本発明の適用はこの種のメモリに限定されるものではない。要するに、本発明における不揮発性メモリとは、記憶領域がブロック単位で区分されており、それぞれのブロックに対して書込回数の制限が加えられているようなメモリであれば、いかなるメモリを用いてもよい。
In the above-described embodiment, the
なお、上述の実施形態から明らかなように、本発明は、メモリ制御装置1の制御部11が行うデータの書込処理に特徴を有するものである。したがって、本発明は、メモリ制御装置1が行うデータの書込方法や、その書込方法を記述したプログラムとしても特定され得るものである。また、本発明は、メモリ制御装置1としてではなく、制御部11単体でも実施可能である。
As is clear from the above-described embodiment, the present invention is characterized by data write processing performed by the
100…データ処理装置、1…メモリ制御装置、11…制御部、12…揮発性メモリ、2…不揮発性メモリ、3…ASIC
DESCRIPTION OF
Claims (5)
前記不揮発性メモリの所定のブロックに書き込むべきデータを、当該ブロックを示す識別情報とともに前記揮発性メモリに書き込む第1の書込手段と、
前記第1の書込手段により書き込まれた識別情報を用いて、前記揮発性メモリに書き込まれたデータの中から同一のブロックに書き込まれるデータを特定する検索手段と、
前記検索手段により特定されたデータを、その書き込むべきブロックに一括して書き込む第2の書込手段と
を備えることを特徴とするメモリ制御装置。 In a memory control device that reads or writes data via a volatile memory with respect to a nonvolatile memory in which a storage area is divided into block units,
First writing means for writing data to be written to a predetermined block of the nonvolatile memory together with identification information indicating the block to the volatile memory;
Search means for specifying data to be written to the same block from among data written to the volatile memory using the identification information written by the first writing means;
A memory control device comprising: a second writing unit that collectively writes the data specified by the search unit into a block to be written.
前記第2の書込手段は、前記判断手段により両者に差違がないと判断された場合には、前記被書込ブロックに対する書き込みを行わない
ことを特徴とする請求項1記載のメモリ制御装置。 Comparing the data specified by the search means with data written in a block to be written, which is a block in which the data is to be written, and comprising a judging means for judging whether or not there is a difference between the two,
2. The memory control device according to claim 1, wherein the second writing unit does not write to the block to be written when the determining unit determines that there is no difference between the two.
前記第2の書込手段は、前記検知手段が前記処理の発生を検知した場合にデータの書き込みを行う
ことを特徴とする請求項1記載のメモリ制御装置。 Equipped with detection means for detecting the occurrence of a predetermined process,
The memory control device according to claim 1, wherein the second writing unit writes data when the detecting unit detects the occurrence of the processing.
電源の遮断を前記決められた処理として検知する
ことを特徴とする請求項3記載のメモリ制御装置。 The detection means includes
The memory control device according to claim 3, wherein power-off is detected as the determined process.
接続される上位装置が行う電力消費を抑えるための処理を前記決められた処理として検知する
ことを特徴とする請求項3記載のメモリ制御装置。 The detection means includes
The memory control apparatus according to claim 3, wherein a process for suppressing power consumption performed by a connected host apparatus is detected as the determined process.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005213349A JP2007034431A (en) | 2005-07-22 | 2005-07-22 | Memory controller |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005213349A JP2007034431A (en) | 2005-07-22 | 2005-07-22 | Memory controller |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007034431A true JP2007034431A (en) | 2007-02-08 |
Family
ID=37793660
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005213349A Pending JP2007034431A (en) | 2005-07-22 | 2005-07-22 | Memory controller |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007034431A (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009116661A (en) * | 2007-11-07 | 2009-05-28 | Konami Digital Entertainment Co Ltd | Storage device, storage method and program |
JP2009157561A (en) * | 2007-12-26 | 2009-07-16 | Yamatake Corp | Measurement control apparatus, and memory element protection method |
JP2010238009A (en) * | 2009-03-31 | 2010-10-21 | Fujitsu Ltd | Storage control device, storage system, and copying method |
JP2012164121A (en) * | 2011-02-07 | 2012-08-30 | Toshiba Corp | Portable electronic device, information processing method, and ic card |
JP2014044622A (en) * | 2012-08-28 | 2014-03-13 | Canon Inc | Image processor, method of controlling image processor, and program |
US8824221B2 (en) | 2011-09-26 | 2014-09-02 | Samsung Electronics Co., Ltd. | Hybrid memory device, system including the same, and method of reading and writing data in the hybrid memory device |
US9037776B2 (en) | 2009-06-11 | 2015-05-19 | Samsung Electronics Co., Ltd. | Storage device with flash memory and data storage method |
JP2015204016A (en) * | 2014-04-15 | 2015-11-16 | 京セラドキュメントソリューションズ株式会社 | Electronic apparatus |
JP2015207029A (en) * | 2014-04-17 | 2015-11-19 | 京セラドキュメントソリューションズ株式会社 | Electronic apparatus |
-
2005
- 2005-07-22 JP JP2005213349A patent/JP2007034431A/en active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009116661A (en) * | 2007-11-07 | 2009-05-28 | Konami Digital Entertainment Co Ltd | Storage device, storage method and program |
JP2009157561A (en) * | 2007-12-26 | 2009-07-16 | Yamatake Corp | Measurement control apparatus, and memory element protection method |
JP2010238009A (en) * | 2009-03-31 | 2010-10-21 | Fujitsu Ltd | Storage control device, storage system, and copying method |
US9037776B2 (en) | 2009-06-11 | 2015-05-19 | Samsung Electronics Co., Ltd. | Storage device with flash memory and data storage method |
JP2012164121A (en) * | 2011-02-07 | 2012-08-30 | Toshiba Corp | Portable electronic device, information processing method, and ic card |
US8824221B2 (en) | 2011-09-26 | 2014-09-02 | Samsung Electronics Co., Ltd. | Hybrid memory device, system including the same, and method of reading and writing data in the hybrid memory device |
JP2014044622A (en) * | 2012-08-28 | 2014-03-13 | Canon Inc | Image processor, method of controlling image processor, and program |
JP2015204016A (en) * | 2014-04-15 | 2015-11-16 | 京セラドキュメントソリューションズ株式会社 | Electronic apparatus |
JP2015207029A (en) * | 2014-04-17 | 2015-11-19 | 京セラドキュメントソリューションズ株式会社 | Electronic apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007034431A (en) | Memory controller | |
KR20010070416A (en) | Computer | |
JP2006301960A (en) | Automobile control unit | |
JP2010020586A (en) | Data processing device | |
JP2009053901A (en) | Printer | |
JP4935107B2 (en) | Information processing device | |
JP2011095916A (en) | Electronic apparatus | |
JP2010170197A (en) | Firmware management program, storage device, and firmware management method | |
KR100425229B1 (en) | Microcomputer and method for rewriting data on flash memory | |
JP4193152B2 (en) | Data saving apparatus and data saving method | |
JP2004046453A (en) | Single chip microcomputer and boot sector switching method | |
JP2007257283A (en) | Memory controller and flash memory system | |
JP2010176280A (en) | Electronic control device | |
JP2004341783A (en) | Data storage method and data storage device | |
JP2011081641A (en) | Memory controller | |
JP2006190180A (en) | Information device and start management program | |
JP2019204209A (en) | Information processing apparatus and power supply control method | |
JP2001147862A (en) | Flash memory writing method | |
JP5787095B2 (en) | Method for storing data in non-volatile memory | |
JP2012098794A (en) | Storage device and image formation device | |
JP4702343B2 (en) | Mobile terminal device | |
KR20230147003A (en) | Semiconductor device | |
JP2005215316A (en) | Image forming apparatus | |
JP2000035916A (en) | Memory operation management method | |
JP2012123733A (en) | Information processor, and data management method in information processor |