JPH11282758A - 不揮発性メモリへのデータ書き込み装置及び方法 - Google Patents

不揮発性メモリへのデータ書き込み装置及び方法

Info

Publication number
JPH11282758A
JPH11282758A JP8101898A JP8101898A JPH11282758A JP H11282758 A JPH11282758 A JP H11282758A JP 8101898 A JP8101898 A JP 8101898A JP 8101898 A JP8101898 A JP 8101898A JP H11282758 A JPH11282758 A JP H11282758A
Authority
JP
Japan
Prior art keywords
data
block
writing
ring buffer
identification information
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
Application number
JP8101898A
Other languages
English (en)
Inventor
Akira Takeuchi
章 竹内
Kenji Kaneko
健二 金子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP8101898A priority Critical patent/JPH11282758A/ja
Publication of JPH11282758A publication Critical patent/JPH11282758A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)

Abstract

(57)【要約】 【課題】 不揮発性メモリ上にリングバッファを構成す
るにあたってデータの書き込み回数を増大させ、データ
の次の書き込み位置を高速に探索する。 【解決手段】 データ書き込み装置1において、データ
の書き込み回数に制限のある不揮発性メモリ上にリング
バッファ2を構成する。データ書き込み手段4により、
前回のデータの記憶場所を検索するための識別情報をデ
ータとともにリングバッファ2の各記憶領域2aに書き
込むとともに、リングバッファ2の記憶領域2aを複数
個まとめたブロック単位で管理するために不揮発性メモ
リ上に設けられたブロックポインタBPには、ブロック
B内の全記憶領域へのデータの書き込みが未だ終了して
いないブロックの先頭位置を記憶させる。識別情報検索
/書き込み位置指定手段5は、ブロックポインタBPの
指すブロックと識別情報からデータの次の書き込み位置
を検索して、当該位置をデータ書き込み手段4に指示す
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、書き込み回数が制
限されている不揮発性メモリ上のリングバッファにデー
タの書き込みを行うデータ書き込み装置及び方法に関す
るものである。
【0002】
【従来の技術】メモリ番地の先頭と最後尾とが繋がった
環状の配列構造は「リングバッファ」と称され、該リン
グバッファを、データの書き込み回数が制限される不揮
発性のメモリ(例えば、EEPROM(Electri
cally ErasableProgrammabl
e Read−Only Memory)等。)上に構
成してこれにデータを順次に記憶していくにあたって
は、データの次の記憶場所を覚えておく必要がある。
【0003】しかしながら、次の記憶場所を一時的に格
納するためのメモリとして、データの書き込み制御部側
に揮発性メモリしか設けられていない場合には、電源供
給の停止とともに記憶情報(つまり、次の記憶場所)が
忘れ去られてしまうので、当該情報を不揮発性メモリに
記憶してデータの書き込みを行う度に次の書き込み場所
を更新していかなければならない。
【0004】そこで、図9に示すように、不揮発性メモ
リa内のN個の領域a1、a2、・・・、aNのアドレ
スを指し示すポインタPを設け、データの次の記憶場所
(アドレス)をポインタPに記憶させる方法が知られて
おり、該ポインタPの領域としては、不揮発性メモリa
内の領域の一部が割り当てられる。
【0005】そして、不揮発性メモリaの領域a1とa
Nとが繋がるようにポインタ制御を行う、つまり、領域
aNの次の記憶場所としてポインタPが領域a1を指し
示すように巡回的な制御を行うことで、リングバッファ
を構成することが可能となる。
【0006】
【発明が解決しようとする課題】ところで、上記リング
バッファにデータを繰り返し書き込む場合において、メ
モリデバイス固有の制限に起因してデータの書き込み回
数に上限(以下、上限値を「M」と記す。)があると、
このようなメモリデバイスを上記メモリaに使用したと
きには、各領域にはM回だけデータを書き込むことが可
能である。
【0007】しかしながら、メモリ領域においてデータ
の次の記憶場所を格納するポインタPについても同様に
M回のデータ書き込みしか行うことができないので、リ
ングバッファの各領域(上記a1乃至aN)への書き込
み回数が、「M/N」回に制限されてしまう(つまり、
リングバッファの巡回数が「M/N」回となる。)とい
う問題がある。例えば、M=20、N=10とすると、
M/N=2となり、リングバッファを二巡しか使用でき
ないことになる。よって、リングバッファの各構成領域
についてその書き込み回数が未だM回に達しておらず、
さらにデータの書き込みが可能であるにもかかわらず、
ポインタの領域に対する書き込み回数がM回に達したた
めに、それ以上のリングバッファへのデータ書き込みが
できなくなるので、不揮発性メモリの利用効率が低く、
また、ポインタに割り当てた領域だけに書き込み回数の
大半が集中し、メモリの使用寿命が短くなる等の不都合
がある。
【0008】そこで、書き込みデータに対して次の書き
込み位置の検索用情報を付加して両者を同じ記憶領域に
格納しておく方法が考えられるが、この方法では、最大
で領域a1乃至aNの個数に相当する回数に亘って検索
用情報を読み出さねばらないので、次の書き込み位置を
検索するのに手間がかかるという問題が残される。
【0009】本発明は、不揮発性メモリを使ってリング
バッファを構成するにあたってデータの書き込み回数を
増大させ、かつデータの次の書き込み位置を高速に探索
することを課題とする。
【0010】
【課題を解決するための手段】本発明は上記した課題を
解決するために、下記(イ)乃至(ハ)の構成を有する
ものである。
【0011】(イ)前回のデータを記憶させた記憶場所
を検索するための識別情報をデータとともにリングバッ
ファを構成する記憶領域に書き込むデータ書き込み手段 (ロ)リングバッファを構成する記憶領域を複数個まと
めたブロック単位でデータを管理するために不揮発性メ
モリ上に設けられ、ブロック内の全記憶領域へのデータ
の書き込みが未だ終了していないブロックの先頭位置を
記憶するブロックポインタ (ハ)ブロックポインタの指し示すブロック内の各記憶
領域から上記識別情報を読み出したときに、隣接する記
憶領域の間で識別情報の不一致が認められる場合には、
当該不一致が認めれるメモリ境界の次に位置する記憶領
域に新たなデータを書き込むように上記データ書き込み
手段に書き込み位置を指定し、また、隣接する記憶領域
の間で識別情報の不一致が認められない場合には、当該
ブロックの先頭に位置する記憶領域から新たなデータを
書き込むように上記データ書き込み手段に書き込み位置
を指定する識別情報検索/書き込み位置指定手段。
【0012】従って、本発明によれば、リングバッファ
を構成する複数の記憶領域をひとまとめにしたブロック
単位で管理するためにブロックポインタを導入すること
で、リングバッファが一巡する間にブロックポインタに
書き込むべき情報(ブロックの位置情報)の書き込み回
数を少なくすることができ、これによって、ブロックポ
インタへの情報の書き込み回数がその許容上限値に達す
るまでの間においてリングバッファの巡回数を増やすこ
とができる。また、ブロックポインタの指すブロックか
ら識別情報の検索を開始して、該識別情報の変化が認め
られるメモリ境界を探すことによって、データを次に書
き込むべき記憶場所を直ちに見つけ出すことができる。
【0013】
【発明の実施の形態】図1は、本発明に係るデータ書き
込み装置の基本構成を示すものである。
【0014】データ書き込み装置1においては、データ
の書き込み回数に制限のある不揮発性メモリ上にリング
バッファ2が構成され、リングバッファ2を構成する記
憶領域2a、2a、・・・は、これらを複数個まとめた
ブロック単位をもってブロックポインタBPにより管理
される。つまり、リングバッファ2は複数のブロック
B、B、・・・に区分されて管理され、一つのブロック
Bはそれぞれ複数個の記憶領域2a、2a、・・・によ
り構成されており、リングバッファ2を構成する全記憶
領域2aに対して巡回的にデータの書き込みが行われ
る。
【0015】このブロックポインタBPは不揮発性メモ
リ上に設けられ、ブロック内の全記憶領域へのデータの
書き込みが未だ終了していないブロック内の先頭位置を
記憶するものである(つまり、当該ブロック内の全記録
領域へのデータ書き込みの終了時にブロックポインタが
次のブロックを指す。)。
【0016】記憶領域2aのデータ構造としては、例え
ば、図示するように、番地情報であるアドレスAi(i
=1、2、・・・)がそれぞれ付与された記憶領域2a
内をさらに2つの格納域R1と格納域R2とに分け、格
納域R1には、前回のデータを記憶させた記憶場所を検
索するための識別情報(検索用情報)を格納し、格納域
R2には、書き込み対象であるデータを格納するように
した構造が挙げられるが、識別情報の格納場所をデータ
の記憶域の先頭に限る必要はなく、要は識別情報とデー
タとが区別可能な状態で同一の記憶領域に格納されるの
であれば如何なるデータ構造を用いても構わない。
【0017】データは、指令手段3からの書き込み指令
によって、先ず、データ書き込み手段4に送られ、ここ
で、ブロックポインタBPの指すブロックを参照しなが
ら、上記した識別情報とともにリングバッファ2の記憶
領域2aに順次に(図1の時計回り方向の矢印CWを参
照。)書き込まれる。
【0018】その際、データをリングバッファ2に対し
て新規に書き込みたい場合に、該データをどの記憶領域
に格納すべきかを管理しているのが識別情報検索/書き
込み位置指定手段5であり、ブロックポインタBPの指
し示すブロック内の各記憶領域から上記識別情報を読み
出したときに、隣接する記憶領域の間で識別情報の不一
致が認められる場合には、当該不一致が認めれるメモリ
境界の次に位置する記憶領域に新たなデータを書き込む
ようにデータ書き込み手段4に書き込み位置を指示し、
また、隣接する記憶領域の間で識別情報の不一致が認め
られない場合には当該ブロックの先頭に位置する記憶領
域から新たなデータを書き込むようにデータ書き込み手
段4に書き込み位置を指示する。
【0019】例えば、上記した識別情報を、「1」又は
「0」の2値化された情報とする方法(つまり、データ
の最上位に1ビットデータを付加したデータ構造を用い
る。)を採用した場合には、リングバッファ2へのデー
タを書き込みを始める前に、全ての識別情報を「0」に
初期化しておき、リングバッファ2へのデータの書き込
みが一巡するまでの間、データを書き込む度にその識別
情報として「1」を書き込めば良い。これによって、例
えば、ブロックポインタBPの指し示すブロック内の記
憶領域に書き込まれている識別情報として「1」と
「0」とが混在しているときには、以前にデータが書き
込まれた記憶領域に識別情報「1」が書き込まれてお
り、当該記憶領域の次の記憶領域には識別情報「0」が
書き込まれているので、両記憶領域の境界がメモリ境界
であると判断されて、データの新たな書き込みはメモリ
境界の次に位置する記憶領域に対して行われる。また、
ブロックポインタBPの指し示すブロック内の記憶領域
に書き込まれている識別情報が全て「1」であるときに
は、ブロックポインタBPが次のブロックを指すように
該ポインタを進め、当該ブロックの先頭に位置する記憶
領域を新たなデータの書き込み位置とする。
【0020】但し、このままでは、リングバッファ2へ
のデータ書き込みが一巡すると記憶領域の識別情報が全
て「1」だけとなってしまい、よって以後メモリ境界を
検索することができなくなるので、リングバッファ2の
先頭番地を予め決めておいて、リングバッファ2へのデ
ータ書き込みが一巡した後では、リングバッファ2の先
頭番地から順にデータを書き込む度に、これまでの識別
情報「1」に対してビット反転させた識別情報「0」を
書き込むようにすれば良い(その詳細については後述す
る。)。
【0021】データ読み込み手段6は、指令手段3から
の読み込み指令を受けて、ブロックポインタBPを参照
した上で、リングバッファ2の記憶領域2aから情報を
読み込んでこれを取り出すために設けられている。尚、
その際、データ読み込み手段6が上記識別情報及びデー
タを読み込んだ後両者を区分けして識別情報を識別情報
検索/書き込み位置指定手段5に送出する形態や、識別
情報検索/書き込み位置指定手段5が記憶領域2aから
識別情報を直接読み取って管理する形態等が挙げられ
る。
【0022】図2は、図1の構成を具現化するための一
般的なハードウェア構成を示すものであり、操作入力や
情報表示を行うユーザーインターフェース部7を通して
システム制御用コンピュータ8に指示された内容に従っ
て制御対象9の動作や状態が制御される。尚、本発明に
関する限り制御対象9についての制約はなく、機構的な
駆動部を有するアクチュエータや回路制御下に置かれる
レーザー装置等、様々な対象の制御に適用可能である。
【0023】制御中枢としてのシステム制御用コンピュ
ータ8は、ユーザーインターフェース部7や制御対象9
の制御を司っており、その内部には揮発性メモリが設け
られている。つまり、システム制御用コンピュータ8へ
の電源供給が行われている限り当該メモリの内容は保持
される。しかし、システム制御用コンピュータ8への電
源供給が止まりメモリ内容が保持されない場合であって
も、記憶しておきたいデータを格納する領域を確保する
ために、不揮発性メモリ10が付設されており、上記し
たリングバッファ2はこの不揮発性メモリ10上に構成
され、該メモリ内にブロックポインタBPが確保され
る。
【0024】尚、本構成において取り扱う情報としては
どのようなデータであっても構わないが、動作例につい
てのより具体的な描像が得られるように、以下ではデー
タとして、ユーザーインターフェース部7からの操作履
歴に関する情報(つまり、ユーザーが行ったキー操作等
の情報。)をとり挙げ、これらを順番に不揮発性メモリ
10に格納するようにした例について説明する。
【0025】また、説明の簡単化を考慮して、不揮発性
メモリ10は、図3に示すように、8個のブロックBi
(i=0、1〜7)からなり、各ブロックBiは10個
の記憶領域10_i(i=0、1〜9)で構成され、各
記憶領域10_iには、1個の操作履歴情報を記憶させ
ることができるものとする。従って、各領域10_iに
アドレス「Aij」(添え字「i」はブロックを区別す
る番号を示し、添え字「j」は記憶領域を区別する番号
とする。)を付したときに、「8×10」の合計80個
分の操作履歴情報を記憶させることができる。
【0026】不揮発性メモリ10上にリングバッファを
構成するにあたって、ブロックBiは添え字「i」が増
大する方向に沿ってブロックポインタBPにより順次に
指定され、リングバッファが一巡するとブロックポイン
タBPは先頭のブロックB0を指す。また、ブロック内
の各記憶領域10_iについては、添え字「i」が増大
する方向に沿って順次にデータが書き込まれた後、1ブ
ロック内の全ての記憶領域へのデータ書き込みが終わる
と次のブロックの先頭からデータ書き込みが行われる。
尚、各記憶領域10_iには、操作履歴情報とこれに付
加された付加情報(上記した識別情報に相当する。)と
を1組みにしたデータを記憶させることができるものと
する。但し、各記憶領域10_iへのデータの書き込み
回数には上限値Mがあり、この値を越えるデータ書き込
みは許されない。
【0027】上記の付加情報は、記憶領域10_iに対
して最後にデータの書き込みを行った場所を探すために
必要とされ、該付加情報を読み出すことによって次回の
データ書き込みを行うべき記憶領域10_iが決定され
る。
【0028】図4はリングバッファへのデータの書き込
み状況について時間順序を追って示したものである。
尚、付加情報については最低2つの状態を示すことが可
能な情報量が必要であり、本例では付加情報として
「0」又は「1」の2つの状態値(データの最上位ビッ
ト(MSB))を用い、図には当該情報だけについての
経時変化を示している。また、ポインタPはブロックポ
インタBPの指すブロック内におけるデータの書き込み
位置を記憶するために上記システム制御用コンピュータ
8内の揮発性メモリ上に用意される。
【0029】ブロックの管理及び付加情報の書き込み方
法に関するアルゴリズムは下記の(1)乃至(7)に示
す通りである。
【0030】(1)先ず、記憶領域内の全ての付加情報
を「0」に初期化する (2)ブロックポインタBPが先頭のブロックB0を指
すようにセットする (3)ブロックポインタBPが指し示すブロック内の記
憶領域に、操作履歴情報とともに付加情報「1」を書き
込み、ポインタPを進めていく (4)ブロックポインタBPが指し示すブロック内の全
記憶領域への付加情報の書き込みが終了すると、ブロッ
クポインタBPを次のブロックに進め、ポインタPが当
該ブロックの先頭に位置する記憶領域を指すようにセッ
トする (5)リングバッファが一巡すると、全ブロックの記憶
領域内の全ての付加情報が「1」になるので、次のブロ
ック(つまり、B0)からは、操作履歴情報をブロック
内の記憶領域に書き込む際に付加情報「0」を書き込ん
でいく。つまり、上記(3)において付加情報「1」を
「0」とした手順及び上記(4)の手順を繰り返す (6)リングバッファが一巡すると、全ブロックの記憶
領域内の全ての付加情報が「0」になるので、次の記憶
領域からは上記手順(2)に戻る (7)ブロックポインタBPへのデータ(位置情報)の
書き込み回数が上限値Mに達するまで上記(2)乃至
(6)の手順を繰り返す。
【0031】図4では、上記手順(1)の初期化後にブ
ロックB0から順番にデータを書き込んでいく様子を示
しており、(a)ではブロックポインタBPの指すブロ
ックB0の先頭位置(アドレスA00)とポインタPの
指す位置とが同じなので当該ブロックの先頭位置からデ
ータの書き込みが行われる。
【0032】また、(b)はブロックB0へのデータ書
き込みが終了した時点の状況を示しており、ブロックポ
インタBPの指すブロックB0の先頭位置と、ポインタ
Pの指すブロックB1の先頭位置(アドレスA10)と
が異なるので、ブロックポインタBPを1つ進めて、
(c)のようにブロックポインタBPがブロックB1の
先頭位置を指すようにセットされる。
【0033】(d)はブロックB1の先頭位置にデータ
を書き込んだ時点を示しており、ポインタPがブロック
ポインタBPの指すブロックB1の先頭位置から付加情
報の値に変化のある位置、つまり、付加情報が「1」か
ら「0」に変化するメモリ境界の次の位置を指してお
り、当該位置から新たなデータの書き込みが行われる。
【0034】(e)では、最終ブロックB7において記
憶領域10_i(i=0、1〜8)にデータ書き込みが
行われており、この状態から記憶領域10_9にデータ
の書き込みを行うと、(f)に示すようにリングバッフ
ァの全ブロック内の記憶領域に全て付加情報「1」が書
き込まれた状態となる。
【0035】このように、リングバッファが一巡したと
きには、(g)に示すように、先頭のブロックB0の記
憶領域10_0から新規にデータをの書き込む際に付加
情報「0」を書き込んでいく。これにより次に操作履歴
情報を書き込むべき場所は付加情報が「0」から「1」
に変化するメモリ境界の次に来る記憶領域となる。
【0036】これ以後は、リングバッファが一巡する度
に、付加情報を「0」から「1」へ又は「1」から
「0」へと交互に切り替えていけば良い。
【0037】以上のようにリングバッファへのデータの
書き込みが一巡した後で新たにデータの書き込みを行う
際に、前回まで書き込んだ付加情報(識別情報)とは異
なる情報、例えば、それまでの情報に対してビット反転
を施した情報をデータとともに記憶させるように制御す
ると、データの次の書き込み位置を管理する上で、簡単
な識別情報をデータに付加するだけで済むという利点が
ある。尚、識別情報に関するビット反転処理は、識別情
報検索/書き込み位置指定手段5によりリングバッファ
2が一巡したと判断されたときに当該手段からデータ書
き込み手段4に送出される信号によって行われる。
【0038】図5乃至図7はシステム制御用コンピュー
タ8における処理例を示すフローチャート図であり、図
5はデータの書き込み処理の流れを示し、図6及び図7
はデータの書き込み開始位置の検出手順を示している。
【0039】図5において、先ず、ステップS1ではリ
ングバッファの初期化を行う。つまり、全記憶領域内の
付加情報を「0」に初期化し、ブロックポインタBPが
先頭ブロックB0を指すようにセットする。
【0040】そして、次ステップS2ではシステム制御
用コンピュータ8内に設けられた揮発性メモリの内容が
消去されているか否かを判断し、そうであればステップ
S3に進み、消去されていなければステップS4に進
む。
【0041】ステップS3では、リングバッファにおい
てデータ(操作履歴情報)を次に書き込むべき位置をセ
ットする。この位置の検出については、図6に示すよう
に、ステップS1でデータの読み出し位置をブロックポ
インタBPの指すブロックの先頭(つまり、ポインタP
が記憶領域10_0を指す。)にセットした後、次ステ
ップS2で読み出し対象である記憶領域に書き込まれた
付加情報を読み出す。そして、次ステップS3で読み出
し位置を次の位置に進め(ポインタPの指す位置を次の
位置に進める。)、次ステップS4で次の付加情報を読
み出す。
【0042】当該付加情報の内容が前回読み出した付加
情報の内容と同じであるか否かについてステップS5で
判断し、今回の付加情報と前回の付加情報の内容が同じ
あればステップS7に進むが、相違する場合にはステッ
プS6に進み、現在の読み出し位置、つまり、前ステッ
プS4で付加情報を読み出した記憶領域(10_i)の
位置をデータの新たな書き込み場所とする。
【0043】ステップS7では、データの書き込み位置
がブロックポインタBPの指すブロックの最後に到達し
たか否かを判断し、そうであれば図7のステップS8に
進み、ブロックの最後に達していなければステップS3
に戻る。
【0044】図7のステップS8では、リングバッファ
の最終ブロック(B7)に到達したか否かを判断し、そ
うであればステップS9に進み、また、リングバッファ
の最終ブロックに到達する前、つまり、先頭ブロック又
は途中のブロックの場合にはステップS10に進む。
【0045】ステップS9では、ブロックポインタBP
の指すブロック内の付加情報(全て「0」か又は全て
「1」)と、当該ブロックの1つ前のブロックにおける
最後の記憶領域10_9の付加情報とを比較して、両情
報の内容が同じであるか否かを判断し、同じである場合
にはステップS11に進み、違う場合にはステップS1
2に進む。
【0046】ステップS11では、次のブロックの先頭
位置、即ち、先頭ブロックB0の先頭に位置する記憶領
域をデータの新たな書き込み場所とする。
【0047】また、ステップS12では、ブロックポイ
ンタBPの指す現在のブロックの先頭に位置する記憶領
域をデータの新たな書き込み場所とする。
【0048】ステップS10では、ブロックポインタB
Pの指すブロック内の付加情報(全て「0」か又は全て
「1」)と、当該ブロックの1つ後のブロック(次のブ
ロック)における先頭の記憶領域10_0の付加情報と
を比較して、両情報の内容が同じであるか否かを判断
し、同じである場合にはステップS13に進み、違う場
合にはステップS14に進む。
【0049】ステップS13では、ブロックポインタB
Pの指す現在のブロックの先頭に位置する記憶領域をデ
ータの新たな書き込み場所とする。
【0050】また、ステップS14では、次のブロック
の先頭に位置する記憶領域をデータの新たな書き込み場
所とする。
【0051】尚、ブロックポインタBPへの位置情報の
書き込みに関しては、通常、データ(付加情報や操作履
歴情報)の書き込み後に行われるが、当該ブロックポイ
ンタへの書き込み前に突然電源供給が停止する状況が発
生した場合にはブロックポインタが正しいブロックを指
さなくなるので、上記ステップS9乃至S14の処理に
ついては、このような状況に対して配慮している。
【0052】例えば、図8の(a)に示すように、先頭
ブロックB0内の全記憶領域の付加情報が「0」とさ
れ、かつ他のブロック内の全記憶領域の付加情報が
「1」とされる状況下において、ブロックポインタBP
が先頭ブロックB0の先頭(アドレスA00)を指して
いるとする。つまり、図に2点鎖線で示すように、ブロ
ックポインタBPが本来はブロックB1の先頭(アドレ
スA10)を指すべきところを、予期せぬ電源停止によ
ってブロックポインタBPを次のブロックB1に進める
ことができなかったために、このような状況が生じ得
る。そして、この場合には、図7のステップS8からス
テップS10に進んで、現在のブロックB0内の付加情
報「0」と、次のブロックB1の先頭の付加情報「1」
とを比較した結果(不一致)、ステップS14へ進んで
ブロックポインタBPが次のブロックB1の先頭位置へ
と移される。
【0053】また、図8の(b)に示す状況では、ブロ
ックB0からBi(i≠7)内の全記憶領域の付加情報
が「0」とされ、かつブロックBj(j=i+1)から
B7内の全記憶領域の付加情報が「1」とされ、かつ、
ブロックポインタBPがブロックBiの先頭(アドレス
Ai0)を指している。つまり、ブロックポインタBP
は本来ブロックBjの先頭(アドレスAj0)を指して
いるべきであるが(2点鎖線参照。)、不意の電源停止
によってブロックポインタBPが以前の状態のままとな
っている。この場合には、図7のステップS8からS1
0、さらにS14へと進んでブロックポインタBPがブ
ロックBjの先頭を指すように位置情報が更新される。
【0054】図8(c)に示す状況においては、ブロッ
クBi(i=0〜7)内の全記憶領域の付加情報が全て
「0」とされ、かつ、ブロックポインタBPがブロック
B7の先頭(アドレスA70)を指している。つまり、
ブロックポインタBPは本来ブロックB0の先頭を指し
ているべきである(2点鎖線参照。)。この場合には、
図7のステップS8からS9に進み、現在のブロックB
7内の付加情報「0」と、1つ前のブロックB6の最後
尾(アドレスA69)の付加情報「0」とを比較した結
果(一致)、ステップS11へ進んでブロックポインタ
BPが先頭ブロックB0の先頭位置へと移される。
【0055】上記のようにブロックポインタBPの指す
ブロックが先頭ブロック又は途中のブロックであるか、
又は最終ブロックであるかという条件分岐処理に応じて
ブロックポインタBPの更新処理を区分けすることで、
不意の電源停止によりブロックポインタBPの機能が損
なわれないようにすることができる。
【0056】尚、ブロックポインタBPの指すブロック
が途中のブロックBi(i≠0、7)の場合には、図7
のステップS10において、ブロックBi内の付加情報
と、当該ブロックの1つ前のブロックBi−1における
最後尾の記憶領域の付加情報とを比較して、両情報の内
容が同じであるか否かを判断し(図8(b)参照。)、
同じである場合にはステップS14に進み、違う場合に
はステップS13に進むように処理しても良い。つま
り、ブロックポインタBPの指すブロックについては下
記の(I)乃至(III)に示す場合分けが可能であ
る。
【0057】(I)先頭ブロックであるか、途中のブロ
ックであるか、又は最終ブロックであるかの3通りの区
分 (II)先頭ブロック若しくは途中のブロックである
か、又は最終ブロックであるかの2通りの区分 (III)先頭ブロックであるか、又は途中若しくは最
終ブロックであるかの2通りの区分。
【0058】(I)は基本となる区分であり、先頭ブロ
ックの付加情報については次ブロックの先頭位置の付加
情報との比較がなされ、両情報の一致時には現ブロック
の先頭をデータの書き込み位置とし、両情報の不一致時
には次ブロックの先頭をデータの書き込み位置とする。
また、最終ブロックの付加情報については直前ブロック
の最後尾の付加情報との比較がなされ、両情報の一致時
には先頭ブロックの先頭をデータの書き込み位置とし、
両情報の不一致時には現ブロックの先頭をデータの書き
込み位置する。
【0059】そして、途中ブロックの付加情報について
は、次ブロックの先頭位置の付加情報と比較しても良い
し、直前ブロックの最後尾の付加情報と比較しても良
い。つまり、前者の場合には、両情報の一致時に現ブロ
ックの先頭をデータの書き込み位置とし、両情報の不一
致時には次ブロックの先頭をデータの書き込み位置とす
る。また、後者の場合には、両情報の一致時に次ブロッ
クの先頭をデータの書き込み位置とし、両情報の不一致
時には現ブロックの先頭をデータの書き込み位置とす
る。
【0060】(II)については既述した通りであり、
先頭ブロックの付加情報については次ブロックの先頭位
置の付加情報との比較が必要であることに起因して、途
中ブロックの付加情報についても、次ブロックの先頭位
置の付加情報と比較することが処理の統一化を図るとい
う観点から好ましい。つまり、(I)において途中ブロ
ックと先頭ブロックに係る処理をひとまとめにしたもの
が(II)の場合である。
【0061】また、(III)では、最終ブロックの付
加情報について直前ブロックの最後尾の付加情報との比
較が必要であることに起因して、途中ブロックの付加情
報についても、直前ブロックの最後尾の付加情報と比較
することが上記と同様の理由から好ましい。つまり、
(I)において途中ブロックと最終ブロックに係る処理
をひとまとめにしたものが(III)の場合である。
【0062】以上のようにして、新たなデータの書き込
み位置の検索及び設定が行われる。
【0063】図5においてステップS4では、前ステッ
プS3でセットされた書き込み位置にデータを書き込
む。つまり、操作履歴情報とともに識別情報(「1」又
は「0」)が記憶領域に記憶される。
【0064】次ステップS5では、ブロックポインタB
Pの指すブロック内の全ての記憶領域に対するデータ書
き込みが終了したか否かを判断し、終了時には次ステッ
プS6に進んでブロックポインタBPを次のブロックに
進める。また、未終了時にはステップS9に進む。
【0065】ステップS7では、リングバッファの最後
(ブロックB7の最後)に達したか否かを判断し、そう
であれば次ステップS8に進み、次回以降に書き込むべ
き付加情報を反転させる。つまり、前回までの付加情報
が「0」である場合には次回から「1」にし、又は前回
までの付加情報が「1」である場合には次回から「0」
にした後ステップS9に進む。
【0066】他方、リングバッファが一巡する前であれ
ば、ステップS8を経ることなくステップS9に進む。
【0067】ステップS9では、データ(操作履歴情報
と付加情報)の書き込み位置を次の位置に進めた後、ス
テップS2に戻る。
【0068】尚、データ読み出し手順については、上記
ブロックポインタBP及びポインタPに記憶された位置
情報を用いて、最後に書き込みをしたデータや、当該デ
ータから遡っていくことでユーザーの操作履歴情報を容
易に取り出すことができる。
【0069】以上のように、データの次の書き込み位置
は、ブロックポインタBPに記憶されたブロックと付加
情報のみに基づいて検索することができ、全ての付加情
報が同じ内容である場合にはリングバッファが一巡した
と判断されリングバッファの先頭ブロックから新たにデ
ータの書き込みが行われる。また、ブロックポインタB
Pの指すブロック内の記憶領域に書き込まれた付加情報
が全て同じでない場合には、当該ブロックに対するデー
タ書き込みが未だ終了していない(つまり、「処理中」
である)と判断して、該ブロック内において隣接する記
憶慮域の付加情報が相違するメモリ境界からデータの次
の書き込み位置を知ることができる。
【0070】しかして、本発明によれば、リングバッフ
ァにデータを新規に書き込むべき位置を検索するために
必要な付加情報の読出量は、リングバッファ内のブロッ
ク数を「BN」とし、リングバッファの全記憶領域の数
を「TN」とするとき、最大で「TN/BN+1」とな
り(上記の例ではTN=80、BN=8より、最大11
個の付加情報の読み出しが行われる。)、検索に要する
時間が短くなる。何故なら、ブロックポインタを用いる
ことなく図9に示したようなポインタだけでデータの次
の書き込み位置を管理する方法では最大でTN個の付加
情報を読み出す必要が生じるからである。
【0071】また、本発明によれば、ブロックポインタ
BPへのデータ(ブロックの位置情報)の書き込みを不
揮発性メモリ10における書き込み制限回数、M回まで
行うことができるので、リングバッファの各記憶領域1
0_iには、「M/BN」回だけデータ(操作履歴情報
及び付加情報)を書き込むことが可能となる。例えば、
M=24、BN=8とすると、3回までデータを各領域
に書き込める(リングバッファは三巡まで可能とな
る。)。これに対して、図9に示した方法では、M=2
4、TN=80とした場合にリングバッファが一巡もで
きないことになる。
【0072】
【発明の効果】以上に記載したところから明らかなよう
に、請求項1や請求項2に係る発明によれば、前回のデ
ータを記憶させた記憶場所を検索するための識別情報と
書き込み対象であるデータとを混在させてリングバッフ
ァの各記憶領域に書き込むとともに、ブロック内の全記
憶領域へのデータの書き込みが未だ終了していないブロ
ックを指すようにその先頭位置をブロックポインタに記
憶しておくことによって、データを次に書き込むべき位
置を高速に検索することができ、また、リングバッファ
の各記憶領域にデータを書き込むことのできる回数を増
やすことで、書き込み回数に制約があるメモリについて
利用効率を高めることが可能となる。
【0073】そして、請求項3や請求項4に係る発明に
よれば、リングバッファへのデータの書き込みが一巡す
る度に、識別情報のビット反転を繰り返すことによっ
て、識別情報の状態値を最低で2つ用意するだけで、デ
ータの次の書き込み位置を簡単に検索することができ
る。
【図面の簡単な説明】
【図1】本発明に係る装置の基本構成を示す図である。
【図2】ハードウェア構成を示すブロック図である。
【図3】リングバッファの構成例を示す図である。
【図4】リングバッファへのデータの書き込み状況を
(a)乃至(g)に示す説明図である。
【図5】図6乃至図8とともにシステム制御用コンピュ
ータにおける処理手順について説明するための図であ
り、本図はデータの書き込み処理例を示すフローチャー
ト図である。
【図6】図7とともにデータの書き込み開始位置の検出
手順を示すフローチャート図である。
【図7】残りの処理部分を示すフローチャート図であ
る。
【図8】突然の電源停止によりブロックポインタが本来
指すべきブロックの1つ手前のブロックを指している状
況を示す説明図である。
【図9】ポインタを使った従来例についての説明図であ
る。
【符号の説明】
1…データ書き込み装置、2…リングバッファ、2a…
記憶領域、4…データ書き込み手段、5…識別情報検索
/書き込み位置指定手段、10…不揮発性メモリ、B…
ブロック、BP…ブロックポインタ

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 データの書き込み回数に制限のある不揮
    発性メモリを用いてリングバッファを構成し、これに巡
    回的にデータを書き込むための、不揮発性メモリへのデ
    ータ書き込み装置において、 前回のデータを記憶させた記憶場所を検索するための識
    別情報をデータとともにリングバッファを構成する記憶
    領域に書き込むデータ書き込み手段と、 リングバッファを構成する記憶領域を複数個まとめたブ
    ロック単位でデータを管理するために不揮発性メモリ上
    に設けられ、ブロック内の全記憶領域へのデータの書き
    込みが未だ終了していないブロックの先頭位置を記憶す
    るブロックポインタと、 該ブロックポインタの指し示すブロック内の各記憶領域
    から上記識別情報を読み出したときに、隣接する記憶領
    域の間で識別情報の不一致が認められる場合には、当該
    不一致が認めれるメモリ境界の次に位置する記憶領域に
    新たなデータを書き込むように上記データ書き込み手段
    に対して書き込み位置を指示し、また、隣接する記憶領
    域の間で識別情報の不一致が認められない場合には、当
    該ブロックの先頭に位置する記憶領域から新たなデータ
    を書き込むように上記データ書き込み手段に対して書き
    込み位置を指示する識別情報検索/書き込み位置指定手
    段とを設けたことを特徴とする不揮発性メモリへのデー
    タ書き込み装置。
  2. 【請求項2】 データの書き込み回数に制限のある不揮
    発性メモリを用いて構成されるリングバッファに巡回的
    にデータを書き込むための、不揮発性メモリへのデータ
    書き込み方法において、 前回のデータを記憶させた記憶場所を検索するための識
    別情報と書き込み対象であるデータとを混在させてリン
    グバッファの記憶領域に書き込んだ後、 リングバッファを構成する記憶領域を複数個まとめたブ
    ロック単位でデータを管理するために不揮発性メモリ上
    に設けられるブロックポインタを用いて、ブロック内の
    全記憶領域へのデータの書き込みが未だ終了していない
    ブロックを指すようにその先頭位置をブロックポインタ
    に記憶し、 ブロックポインタの指し示すブロック内の各記憶領域か
    ら上記識別情報を読み出したときに、隣接する記憶領域
    の間で識別情報の不一致が認められる場合には、当該不
    一致が認めれるメモリ境界の次に位置する記憶領域から
    新たなデータを書き込むようにし、また、隣接する記憶
    領域の間で識別情報の不一致が認められない場合には、
    当該ブロックの先頭に位置する記憶領域から新たなデー
    タを書き込むようにしたことを特徴とする不揮発性メモ
    リへのデータ書き込み方法。
  3. 【請求項3】 請求項1に記載した不揮発性メモリへの
    データ書き込み装置において、 リングバッファへのデータの書き込みが一巡する度に、
    識別情報検索/書き込み位置指定手段からデータ書き込
    み手段に送出される信号によって、前回まで書き込まれ
    た識別情報に対してビット反転を施した識別情報が新た
    な書き込みデータとともに記憶場所に記憶されるように
    したことを特徴とする不揮発性メモリへのデータ書き込
    み装置。
  4. 【請求項4】 請求項2に記載した不揮発性メモリへの
    データ書き込み方法において、 リングバッファへのデータの書き込みが一巡した後で、
    新たにデータの書き込みを行う際には、前回まで書き込
    んだ識別情報に対してビット反転を施した識別情報をデ
    ータとともに記憶場所に記憶させるようにしたことを特
    徴とする不揮発性メモリへのデータ書き込み方法。
JP8101898A 1998-03-27 1998-03-27 不揮発性メモリへのデータ書き込み装置及び方法 Pending JPH11282758A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8101898A JPH11282758A (ja) 1998-03-27 1998-03-27 不揮発性メモリへのデータ書き込み装置及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8101898A JPH11282758A (ja) 1998-03-27 1998-03-27 不揮発性メモリへのデータ書き込み装置及び方法

Publications (1)

Publication Number Publication Date
JPH11282758A true JPH11282758A (ja) 1999-10-15

Family

ID=13734763

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8101898A Pending JPH11282758A (ja) 1998-03-27 1998-03-27 不揮発性メモリへのデータ書き込み装置及び方法

Country Status (1)

Country Link
JP (1) JPH11282758A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008097107A (ja) * 2006-10-06 2008-04-24 Seiko Epson Corp データ記録装置及びその制御方法
CN101989459A (zh) * 2010-10-27 2011-03-23 福建新大陆通信科技股份有限公司 通过数据缓冲提高eeprom使用寿命的方法
US9442841B2 (en) 2012-04-19 2016-09-13 Kabushiki Kaisha Toshiba Semiconductor memory device and method for logging monitored events into a buffer

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008097107A (ja) * 2006-10-06 2008-04-24 Seiko Epson Corp データ記録装置及びその制御方法
CN101989459A (zh) * 2010-10-27 2011-03-23 福建新大陆通信科技股份有限公司 通过数据缓冲提高eeprom使用寿命的方法
US9442841B2 (en) 2012-04-19 2016-09-13 Kabushiki Kaisha Toshiba Semiconductor memory device and method for logging monitored events into a buffer

Similar Documents

Publication Publication Date Title
TWI470429B (zh) 記憶體裝置及記憶體存取方法
US6154808A (en) Method and apparatus for controlling data erase operations of a non-volatile memory device
US4748439A (en) Memory apparatus and method for retrieving sequences of symbols including variable elements
US4064489A (en) Apparatus for searching compressed data file
US7206250B2 (en) Method for storing data blocks in a memory
US4285049A (en) Apparatus and method for selecting finite success states by indexing
SE458321B (sv) Foerfarande foer att tyda teman i instruktionssystem
JPH11282758A (ja) 不揮発性メモリへのデータ書き込み装置及び方法
US4020470A (en) Simultaneous addressing of different locations in a storage unit
US3185965A (en) Information storage system
JPH11272444A (ja) 不揮発性メモリへのデータ書き込み装置及び方法
JP3129248B2 (ja) 2次元配列コードを用いた文字列検索方法
US5268768A (en) Transmitting method and transmitting apparatus of stored information of memory
US3274563A (en) Sorter system
JPH11175377A (ja) ファイル管理方法
JP3130745B2 (ja) 連想メモリ
JP3564173B2 (ja) 相対編成フアイルのアクセス装置
SU1714682A1 (ru) Ассоциативное оперативное запоминающее устройство
JP2755202B2 (ja) 複数のeepromを有する処理装置
JP2669311B2 (ja) ビットマップファイルアクセスシステム
JPH01158547A (ja) データファイル装置のバッファ管理方式
JPH1097459A (ja) Eeprom初期化方法
JPH10145453A (ja) 通信プロトコル処理方法及び処理装置
JPH0642248B2 (ja) 情報検索装置
JPS6270950A (ja) 情報履歴記憶方式