JP2002529813A - データを記憶する記憶装置およびデータを記憶する記憶装置を作動する方法 - Google Patents

データを記憶する記憶装置およびデータを記憶する記憶装置を作動する方法

Info

Publication number
JP2002529813A
JP2002529813A JP2000580092A JP2000580092A JP2002529813A JP 2002529813 A JP2002529813 A JP 2002529813A JP 2000580092 A JP2000580092 A JP 2000580092A JP 2000580092 A JP2000580092 A JP 2000580092A JP 2002529813 A JP2002529813 A JP 2002529813A
Authority
JP
Japan
Prior art keywords
data
storage device
stored
storage
additional 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
JP2000580092A
Other languages
English (en)
Inventor
クリーゲルヘーファー ペーター
ペッペル ゲルハルト
シュトイリッヒ ビェルン
ウルマン ルドルフ
フェルベック ミヒャエル
Original Assignee
インフィネオン テクノロジース アクチエンゲゼルシャフト
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 インフィネオン テクノロジース アクチエンゲゼルシャフト filed Critical インフィネオン テクノロジース アクチエンゲゼルシャフト
Publication of JP2002529813A publication Critical patent/JP2002529813A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/187Voting techniques
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/74Masking faults in memories by using spares or by reconfiguring using duplex memories, i.e. using dual copies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS

Abstract

(57)【要約】 ここに記載した記憶装置の特徴は、これがそこに記憶すべきデータを自動的に多重に記憶することができ、および/またはそこに記憶すべきデータに依存する付加情報を形成しかつこの付加情報を、記憶すべきデータに付加的に記憶することができ、および/またはそこに記憶したデータを相異なる条件で順次に読み出すことができることである。これによって最初にこの記憶装置に記憶したデータが迅速かつ簡単に再構成される。

Description

【発明の詳細な説明】
【0001】 本発明は、請求項1,5および11の上位概念に記載された方法および請求項
13,14および15の上位概念に記載された装置、すなわちデータを記憶する
記憶装置を作動する方法およびデータを記憶する記憶装置に関する。
【0002】 ここで記憶装置とは、例えば、RAM,ROM,EPROM,EEPROM,
フラッシュメモリなどの半導体メモリ、ならびに磁気記憶、光記憶装置またはそ
の他の記憶装置のことをいう。この形式の記憶装置は公知であり、詳しい説明は
不要であろう。
【0003】 すべての記憶装置において多かれ少なかれ発生するのは、そこに記憶されてい
るデータが最初に記憶したデータに等しくないことである。これに対する理由と
して考えられ得るのは、データを記憶する記憶素子の一部に欠陥があること、お
よび欠陥のない記憶素子も時間の経過と共にそれ自体でその内容が変化してしま
うことがあることである。これは当然のことながら欠点であり、それを取り除く
ことは極めて望ましいことである。
【0004】 これまではこのような記憶装置エラーまたは記憶内容の変化に対して、実際に
記憶すべきデータそれ自体を記憶装置に書き込むのではなく、記憶すべきデータ
をまず変換して、その結果として得られた(変換された)データを記憶装置に書
き込むことによって対処してきた。ここでこの変換データはつぎのようにして得
られる。すなわちこの変換データから、たとえこれにエラーがあっても、最初の
データが再構成できるようにして得られるのである。記憶装置エラーまたは記憶
内容の変化のこのような取り扱いは極めて高いコストに結びついている。
【0005】 したがって本発明の課題は、存在し得るまたさらに発生しうる記憶装置エラー
および記憶内容の変化を迅速かつ簡単に扱える手段を提供することである。
【0006】 この課題は本発明により、請求項1,5および11の特徴部分に記載された特
徴的構成(方法)ないしは請求項13,14および15の特徴部分に記載された
特徴的構成(装置)によって解決される。
【0007】 これによれば、 − 記憶装置に記憶すべきデータを多重にこの記憶装置に記憶し、最初に記憶
したデータを必要時に、多重に記憶されたデータから再構成する(請求項1の特
徴部分)、ないしは − 記憶装置に記憶すべきデータに依存する付加情報を形成して、これを記憶
すべきデータに付加的に記憶し、最初に記憶したデータを必要時に、記憶したデ
ータと、記憶したこれらの付加情報とから再構成する(請求項5の特徴部分)、
ないしは、 − 記憶装置に記憶したデータを相異なる条件で順次に読み出し、最初に記憶
したデータを必要時に、相異なる読み出し過程において得たデータから再構成す
る(請求項11の特徴部分)、ないしは、 − 記憶装置を構成して、記憶装置に記憶すべきデータが自動的に多重にこの
記憶装置に記憶されるようにする(請求項13の特徴部分)、ないしは、 − 記憶装置を構成して、これに記憶すべきデータに依存する付加情報が形成
され、これらの付加情報が、記憶すべきデータに付加的に記憶されるようにする
(請求項14の特徴部分)、ないしは、 − 記憶装置を構成して、この記憶装置に記憶したデータが相異なる条件で順
次に読み出せるようにする(請求項15の特徴部分)。
【0008】 これによって最初にこの記憶装置に記憶すべきデータを、複雑な変換なしに、
すなわち迅速かつ簡単に再構成することができる。
【0009】 存在し得るまたはさらに発生し得る記憶装置エラーおよび記憶内容の変化を可
能な限りに簡単にかつ最小のコストで取り扱うことができる。
【0010】 本発明の有利な発展形態は、従属請求項、以下の説明および図面に記載されて
いる。
【0011】 本発明を以下、図面を参照して実施例に基づき詳しく説明する。ここで、 図1は、エラーを有し得るまたは変化が発生した可能性のある記憶内容を取り
扱う第1手段を説明する概略図を示しており、 図2は、エラーを有し得るまたは変化が発生し可能性のある記憶内容を取り扱
う第2手段を説明する概略図を示している。
【0012】 以下に詳しく考察する記憶装置はフラッシュメモリである。しかしながらここ
で指摘しておきたいのは、この記憶装置は基本的は別の半導体メモリ、例えばR
AM,ROM,EPROMならびに磁気記憶装置、光記憶装置またはその他の記
憶装置とすることが可能である。
【0013】 フラッシュメモリは、この考察している実施例ではマイクロコントローラの一
部である。これについても制限はない。考察する記憶装置は、任意の別の装置ま
たは独立した記憶装置の一部とすることができる。
【0014】 フラッシュメモリおよび別の記憶装置は、これに書き込んだデータが時として
誤っているという欠点を有する。それは個別の記憶素子に欠陥があるからであり
、および/または欠陥のない記憶素子に記憶されたデータも時間と共にそれ自体
でその内容が変化してしまうからである。
【0015】 以下では実践的に極めて簡単に実現可能ないくつかの手段を示す。これら手段
によって、エラーを有し得るおよび/または変化してしまった可能性のある記憶
内容が、迅速、簡単に、かつそれにもかかわらず高い信頼性で取り扱われる。
【0016】 これに加えて前もって注意しておきたいのは、エラーを有し得るおよび/また
は変化してしまった可能性のある記憶内容を取り扱う形態は、それぞれの状況に
依存することである。例えば、データがいま別のシステムコンポーネントによっ
て必要とされたために記憶装置に記憶したデータが読み出される場合、出力する
データが最初にこの記憶装置に書き込んだデータであるように、すなわちエラー
フリーであり、かつ変化していないようにする「だけ」でよいのである。このた
め、後でさらに詳しく説明するようにデータのエラーおよび変化を識別し、およ
び/または記憶装置において補正する必要はない。これは後の時点で行うことで
き、または場合によって全く行われない。また他方では、同様に後で詳しく説明
するように、まだデータのエラーおよび変更が発生していない時点にすでに記憶
内容を補正(リフレッシュ)するのではなく、それが予想されてのちはじめて行
われるようにすることができる。
【0017】 記憶装置に記憶したデータのチェックおよび/または補正は、任意の時点およ
び/または任意のイベントに応じて行うことができる。時間の制御によってチェ
ックおよび/または補正を行う際には、チェックおよび/または補正が、決まっ
た時点に、および/または遅くとも、最後のチェックおよび/または補正以来、
所定の時間が経過した場合に行われるようにすることができる。イベントの制御
によってチェックおよび/または補正を行う際には、例えば、チェックおよび/
または補正が、この記憶装置またはこれを含む装置の始動時、および/または遮
断時、および/または動作モードの変更時(例えば「通常」動作モードからいわ
ゆるスリープモードへの変更時および/またはその逆の時)に実行されるように
することができる。
【0018】 エラーを有し得るおよび/または変化してしまった可能性のある記憶内容を取
り扱う上記の第1手段の特徴は、記憶装置に記憶すべきデータを多重にこの記憶
装置に記憶し、かつ最初に記憶したデータを必要時に、多重に記憶したデータか
ら再構成することである。
【0019】 例えば、記憶すべきデータを合わせて3回、記憶装置に記憶することができる
。この場合にアドレスxで記憶すべきデータを、例えば、アドレスxだけでなく
、付加的に自動的にアドレスx+mおよびアドレスx+2mにも記憶する。
【0020】 記憶したデータを記憶装置から読み出すか、またはエラーフリーであることな
いしは変化していないことをチェックしかつ場合によっては補正しなければなら
ない場合には、最初に記憶装置に記憶したデータを、多重に記憶したデータから
再構成する。この場合に相互に対応するデータ(考察している実施例ではアドレ
スx,x+m,x+2mに記憶されているデータ)を読み出してビット単位に評
価する。相互に対応するビットの半数以上がレベル0(レベル1)を有する場合
、該当するビットのレベルは0(1)でなければならないと判定する。また相互
に対応するビットの半数以下がレベル0(レベル1)を有する場合、当該ビット
の値は1(0)であると判定する。
【0021】 記憶装置に記憶すべきデータを、3回以上の任意の回数だけこの記憶装置に書
き込むことも当然可能である。
【0022】 記憶内容が、決まった方向だけに変化する場合、すなわち記憶内容の変化が0
から1に、またはこの逆にだけ行われる場合、記憶すべきデータを2回だけ記憶
装置に記憶すれば十分である。この場合、アドレスxで記憶するデータを、アド
レスxだけではなく、付加的に自動的にアドレスx+mにも記憶する。
【0023】 記憶したデータを記憶装置から読み出すか、またはエラーフリーであることな
いしは変化していないことをチェックしかつ場合によっては補正しなければなら
ない場合、最初にこの記憶装置に記憶したデータを、2重に記憶したこれらのデ
ータから再構成する。この場合、相互に対応するデータ(考察している実施例で
はアドレスxおよびアドレスx+mに記憶されているデータ)を読み出してビッ
ト単位に評価する。相互に対応するこれらのビットが同じレベルを有する場合、
該当するビットのレベルは共通のレベルであると判定する。また相互に対応する
これらのビットが相異なるレベルを有する場合、(記憶内容の変化がレベル0か
らレベル1にだけ、または極めて高い確率でレベル0からレベル1に行われる場
合には)該当するビットのレベルは0であり、ないしは(記憶内容の変化がレベ
ル1からレベル0にだけ、または極めて高い確率でレベル1からレベル0に行わ
れれる場合には)該当するビットのレベルは1であると判定する。
【0024】 データを3回またはそれ以上、記憶装置に記憶する場合、最初にこの記憶装置
に書き込んだデータを再構成するために有利にはカウンタを設ける。このカウン
タによって、多重に記憶したデータの相互に対応するビットに0または1が何回
発生したかをカウントする。つぎにこのカウンタの計数状態に依存して、該当す
るビットが値0または値1のいずれを有するかを判定する。
【0025】 データを2回「だけ」記憶装置に記憶する場合であっても、カウントを設けて
最初にこの記憶装置に書き込んだデータを再構成することができる。しかしなが
らこの場合により有利であるのは、再構成を例えばAND演算のような簡単なブ
ール演算によって実行することである。多重に記憶したデータの相互に対応する
ビットにAND演算を行うと、(記憶内容の変化がレベル0からレベル1にだけ
行われるか、または極めて高い確率でレベル0からレベル1に行われる場合)こ
のAND演算の結果は、該当するビットの元々の値を表す。また記憶内容の変化
がレベル1からレベル0にだけ、または高い確率でレベル1からレベル0に行わ
れる場合、AND演算の入力および出力信号が反転されるか、またはOR演算が
実行される。
【0026】 最初にこの記憶装置に書き込んだデータのブール演算による再構成は、この記
憶装置に書き込むべきデータを2回以上この記憶装置に書き込む場合にも行うこ
とができる。
【0027】 上記のようにまたは類似に再構成したデータは、ほぼ確実に最初にこの記憶装
置に記憶したデータを表す。これらのデータは、これらのデータを規定通りに使
用するためにこの記憶装置から出力することでき、またはこの記憶装置に記憶し
たデータがエラーを有しているか(変化しているか)否か、および場合によって
これらのデータのうちのいずれがエラーを有しているか(変化しているか)を決
定するために使用することができる。
【0028】 記憶装置に記憶したデータがエラーを有しているか(変化しているか)否か、
および場合によってこれらのデータのうちのいずれがエラーを有しているか(変
化しているか)を決定するためには、再構成したデータと、この記憶装置に記憶
されているデータとを比較する。再構成したデータと、この記憶装置に記憶され
ているデータとの違いが発生するのは、欠陥があるかたまたは内容が変化してし
まった記憶素子においてである。この記憶素子は、直ちにまたは後に、補正した
(再構成した)データによって上書きすることができる。これによって欠陥のあ
る記憶素子を識別し、かつ記憶内容の変化をキャンセルすることができる。
【0029】 殊に例えばここで詳しく考察しているフラッシュメモリのように大きな単位(
セクタ)だけで上書きすることのできる記憶装置においては、まず少なくとも1
セクタ内に存在するすべてのエラーを求め、引き続いて1回の上書き過程で補正
すると有利であることがわかった。
【0030】 最初に記憶装置に記憶したデータの再構成、ならびにエラーを有するまたは変
化したデータの記憶装置内での検出および補正は、ハードウェアまたはソフトウ
ェアによって行うことができる。
【0031】 ここで有利であることがわかったのはソフトウェアによる実現である。その理
由はこれが従来の(上記の手段専用に構成されていない)記憶装置にも使用でき
るからである。
【0032】 ソフトウェアによる実現の例を以下、図1を参照して説明する。
【0033】 上記の実現が行われる記憶装置は、図1において参照符号1で示されている。
ここではこれはマイクロコントローラのプログラムメモリである。
【0034】 記憶装置1は、(発生するとすれば)記憶内容の変化だけが発生し、この変化
においてはレベル0がレベル1になるように作製されている。この場合に、この
記憶装置に記憶すべきデータを2回、この記憶装置に記憶すれば十分である。
【0035】 これに相応して記憶装置1は2つの領域、すなわち実質的なプログラムメモリ
1Aと、いわゆるシャドウメモリ1Bとに分割されている。記憶装置1に書き込
むべきデータはプログラムメモリ1aにもシャドウメモリ1Bにも共に書き込ま
れる。シャドウメモリ1Bは(記憶装置エラーと記憶内容の変化がなければ)プ
ログラムメモリ1aの正確な複製である。
【0036】 プログラムメモリ1aには実行可能なプログラム(マイクロコントローラのC
PUによって実行可能なプログラム)と、場合によってプログラム実行のために
必要なデータとが記憶されている。考察している実施例では、この記憶装置に書
き込まれているデータを再構成する1つまたは複数のプログラム、ならびにエラ
ーを有するまたは変化した記憶内容を求めて補正するプログラムもプログラムメ
モリ1aに記憶されている。しかしながらここで指摘しておきたいのは、これら
のプログラムは別の記憶装置(有利にはマイクロコントローラに含まれるROM
)に記憶することができることである。
【0037】 実行すべきプログラムは、プログラムメモリ1aから作業メモリ2にロードさ
れ、そこで実行される。
【0038】 考察している実施例では、マイクロコントローラの始動後、データエラーと記
憶内容の変化とを検出して補正するプログラムが実行される。このプログラムは
図1において参照符号EKで示されている。この(プログラムメモリ1aに)記
憶されたプログラムは、マイクロコントローラの始動後、(同様にプログラムメ
モリ1aに)記憶されたローディングプログラムLによってプログラム1aから
作業メモリ2に転送され、そこで実行される。
【0039】 ローディングプログラムLは、検出および補正プログラムEKのロード時にこ
のプルグラムを表すデータの再構成を実行する。これができる限り少ないコスト
で行えるようにするために、検出および補正プログラムEKは、2回、プログラ
ムメモリ1aに記憶されており、しかも有利にはプログラムメモリ1aと同じセ
クタ内に記憶されている。
【0040】 検出および補正プログラムEKを作業メモリ2にロードする際、プログラムメ
モリ1aに記憶された、検出および補正プログラムEKの複数のバージョンの相
互に対応するビットにAND演算が行われ、このAND演算の結果が作業メモリ
2に書き込まれる。これによって上に説明したように、検出および補正プログラ
ムEKは、作業メモリ2において最初にこの記憶装置に書き込んだバージョンに
、すなわちエラーフリーになることが可能である。
【0041】 検出および補正プログラムEKは、プログラムメモリ1aと、シャドウメモリ
1bとを読み出して、そこに含まれるデータと、最初にこの記憶装置に書き込ま
れておりかつ上記のように再構成されるデータとを比較し、および/または相互
に対応するデータを互に比較する。ここで検出されるのは、記憶装置内のどのデ
ータが、最初にこれに書き込んだデータに等しくないかである。等しくない場合
にデータを、補正した(再構成した)データによる上書きによって補正する。こ
の補正は、例えば、ここで考察しているフラッシュメモリのように大きな単位(
セグメント単位)だけで上書き可能なメモリの場合には直ちにではなく、1つま
たは複数ないしはすべてのセグメントをチェックした後、はじめて行われる。つ
ぎにエラーを有することが検出されたデータに対して、アドレスおよび補正値を
作業メモリ2に一時記憶する。
【0042】 検出および補正プログラムEKを実行した後、記憶装置1のすべてのデータ、
すなわちプログラムメモリ1aと、シャドウメモリ1bとに記憶されたデータが
エラーフリーである(最初にこの記憶装置に書き込んだデータに等しい)ことを
前提にすることができる。
【0043】 エラーは、ほぼ確実に排除される。それは検出および補正プログラムEKを再
構成することによって、これを使用する前につぎも排除される、すなわちこの検
出および補正プログラムのために、記憶装置1に存在するエラーが識別されたな
いままになったり、エラーが検出および補正プログラムによって形成されてしま
うことも排除されるからである。ローディングプログラムLだけは、先行する再
構成およびチェックがなくてもエラーフリーでありかつ正常に機能しなければな
らない。それはローディングプログラムを、その実行の前にチェックして補正す
ることはできないからである。しかしながらこのことはそれほど大きな問題では
ない。なぜならばローディングプログラムLは極めて短く(例えばわずか約40
バイトの長さ)することができ、したがってエラーの確率は無視できるほど小さ
いからである。エラーがローディングプログラムL内で発生する確率を最小化す
ることが、検出および補正プログラムEKをプログラムメモリ1a内に2回(し
たがって記憶装置1に合わせて4回)記憶する理由である。検出および補正プロ
グラムをプログラムメモリ1a内に2重に設けることによって可能になるのは、
プログラムメモリ1aとシャドウメモリ1bを交互に、またはプログラムメモリ
1a内の別個のセグメントをアクセスしなければならない場合よりも短いおよび
/または簡単に取り扱えるアドレスを使用して、検出および補正プログラムEK
の再構成を実行できることである。ローディングプログラムLにおけるエラーの
確率は、このローディングプログラムを、このローディングプログラムがもっぱ
ら1(記憶内容の変化が0から1にだけ、または極めて高い確率で0から1に行
われる場合)または0(記憶内容の変化が1から0にだけ、または極めて高い確
率で1から0に行われる場合)からなるように書くおよび/またはコーディング
することによって付加的または択一的に低減することができる。
【0044】 最初にこの記憶装置に書き込んだデータを再構成するため、およびエラーを有
するまたは変化した、記憶装置のデータを検出して補正するための別の手段の特
徴は、この記憶装置に記憶すべきデータに依存する情報を形成し、かつこれを記
憶すべきデータに付加的に記憶することである。
【0045】 これらの付加情報は例えばパリティビットから形成することができ、ここでこ
れらのパリティビットは所定の記憶領域に対して形成される。
【0046】 これは図2に概略的に示されている。
【0047】 図2は、n+1の(記憶素子)行と、m+1の(記憶素子)列とを有する記憶
装置が示されている。これらのn+1行(行Z1〜ZnおよびZz)のうちのn
行、より正確にいうと行Z1〜Znは、記憶装置に記憶すべきデータを記憶する
ために設けられており、最後の行Zzは上記の付加情報を記憶するために予約さ
れている。同じことが列についてもいえる。すなわちm+1列(列S1〜Smお
よいSz)のうちのm列、より正確にいうと列S1〜Smは、記憶装置に記憶す
べきデータを記憶するために設けられており、最後の列Szは上記の付加情報を
記憶するために予約されている。
【0048】 付加情報は、考察している実施例ではパリティビットからなる。しかしながら
ここで指摘しておきたいのは、これらの付加情報は、この記憶装置に実際に記憶
すべきデータのパリティとは異なる別の情報を表すことができることである。
【0049】 付加的な部分Zzに記憶されるパリティビットはそれぞれ、行Z1〜Znの該
当する列に記憶されたデータを考慮して形成される。すなわち行Zz、列Saに
記憶されるパリティビットは、行Z1〜Znの列Saに記憶されたデータに依存
する。
【0050】 相応のことが付加的な列Szに記憶するパリティビットに対して当てはまる。
すなわちこれらのパリティビットはそれぞれ、列S1〜Smの該当する行に記憶
されたデータを考慮して形成される。すなわち行Zb、列Szに記憶するパリテ
ィビットは列S1〜Smの行Zbに記憶されたデータに依存する。
【0051】 行Zz、列Szに記憶されるパリティビットは、行Zzの列S1〜Smおよび
列Szの行Z1〜Znに記憶されるパリティビットを表す。
【0052】 行Z1〜Znおよび列S1〜Smに記憶されたデータが変更されると、対応す
るパリティビットは更新されなければならない。
【0053】 この場合に付加的な行Zzおよび付加的な列Szに記憶されたパリティビット
を用いて、行Z1〜Znおよび列S1〜Smに記憶されたデータがエラーフリー
であるか否かをいつでも求めることができる。場合によって存在するエラーの位
置を迅速かつ簡単に位置をつきとめ、これを補正することができる。すなわち記
憶されたパリティビットと、行Z1〜Znおよび列S1〜Smの実際の内容から
求めたパリティビットとから迅速に、エラーを有するデータが存在するか否かお
よび場合によってどこ(どの行どの列)に存在するかを決定することができる。
記憶されたパリティビットがエラーフリーであるか否かは、行Zz、列Szに記
憶されたパリティビットによって決定することができる。
【0054】 エラーを有するデータを上記のように検出および補正することによって、エラ
ーフリーの(再構成された)データだけがこの記憶装置から出力されるように、
および/またはこの記憶装置に記憶されるようにすることができる。
【0055】 このようにして行毎および列毎にエラーを識別して補正することができる。こ
れは殊に大きな記憶容量(多くの行および/または列を備える)を有する記憶装
置に対しては不十分に思われるかもしれない。しかしパリティビット形成がいく
つの行および/またはいくつの列に基づいて行われるかは自由に決定することが
できる。すなわちnおよびmは相互に依存しないで自由に選択可能であり、これ
により記憶装置を、図2に示したように任意の数の記憶領域に分割することがで
きる。nおよび/またはmが小さければ小さいほど、この記憶装置に存在するす
べてのエラーを検出して補正できる確率は高い。この記憶装置に存在するすべて
のエラーを検出して補正することのできる確率は、付加的または択一的に高める
ことができ、これはn行およびm列毎に、複数(x)の付加的な行および/また
は付加的な列を設けることによって行われる。これらの行および/または列には
横断的な合計の最下位ビットだけではなく、それの下位xビットが記憶される。
この場合、データ記憶に使用される記憶領域の行および列毎に1つ以上のエラー
を識別して補正することも可能である。
【0056】 行および列毎に設けられる検査ビットは、該当する行または列のすべての素子
に関連する必要はない。この検査ビットを、該当する行または列内の専用に選択
された記憶素子だけを考慮して形成することも可能である。この専用に選択され
る記憶素子は有利には、該当する行または列内で最も故障しやすいまたはその内
容が変化しやすい記憶素子である。すなわち一度も、または高い確率で一度も、
または少なくとも別の記憶素子よりも、故障していないかまたはその内容が変化
していない記憶素子は、検査ビットの形成時に考慮されないままとすることがで
きる。考慮すべき記憶素子の選択は例えばマスクによって行うことができる。
【0057】 記憶内容の変化を取り扱う別の手段の特徴は、記憶装置に(単純かつ検査ビッ
トなしに)記憶されたデータを相異なる条件で順次に読み出し、最初に記憶した
データを、相異なる読み出し過程において得られたデータから再構成することで
ある。
【0058】 これらの相異なる読み出し条件は、考察している実施例では相異なる閾値であ
り、これら閾値に基づき、記憶素子の読み出し時にこの記憶素子に記憶された値
が0であるか1であるかを決定する。
【0059】 半導体メモリでは記憶素子の内容は、いわゆるビット線の電位に依存して決定
されることが多い。半導体メモリにおいてビット線が何であるかは一般的に公知
であり、詳しい説明は不要である。このビット線電位が、使用する閾値の一方の
側にある場合、この記憶素子の内容は0であると判定し、このビット線電位が他
方の側にある場合、この記憶素子の内容は1であると判定する。
【0060】 通常、この閾値は、該当する記憶素子の内容が0であるときにビット線がとる
ビット線電位と、該当する記憶素子の内容が1であるときにビット線がとるビッ
ト線電位とのほぼ中央に位置する。この閾値を2つの読み出し過程の1つに使用
する。
【0061】 別の読み出し過程では、中央からシフトした閾値を使用する。この閾値は有利
には、記憶素子内容の変化の際にビット線がとる電位の側にシフトされる。考察
している実施例に対して、すなわち場合によって発生する記憶内容の変化が、記
憶内容0を記憶内容1にだけ変化させ(その逆には変化させない)ように記憶装
置が構成されている実施例に対して、上記のことは、閾値がつぎのようなビット
線電位に多かれ少なかれ近いこと、すなわち記憶素子内容0の時に、ビット線が
とることの多いビット線電位に多かれ少なかれ近いことを意味する。
【0062】 相異なる閾値による順次の読み出し過程において同じデータが得られた場合、
このことは記憶内容の変化が間近に迫っていないことを意味する。これに対して
相異なる閾値による順次の読み出し過程において相異なるデータが得られた場合
、このことは通常の閾値使用時にやがて記憶内容の変化が予想されることを意味
する。相異なる閾値を使用したときに得られるこれらの相異なるデータは、記憶
内容が変化しかかっていることを警告するのである。
【0063】 記憶内容の変化が間近に迫っていることが確認された場合、この記憶素子を有
利には直ちに、最初に記憶装置に書き込んだデータによって上書きする。最初に
記憶装置に書き込んだこのデータは、考察している実施例では、通常の閾値を使
用してこのデータを読み出した時に得られるデータである。
【0064】 (間近に迫った)データエラーのこのような検出および補正を規則的に短い間
隔で繰り返せば、記憶装置の通常動作において、読み出し時にその都度データの
エラーの有無をチェックする必要がない。つまりこのデータは、通常の閾値を使
用して読み出され、チェックなしに出力され、使用することができるのである。
【0065】 別に決定した閾値を使用して、順次に行われる読み出し過程を行うようにする
ことも当然可能である。この閾値は、電圧ないしは電位に関連する必要はなく、
別の物理的な量、例えばビット線を介して流れる電流、またはこのビット線電位
によって読み出しアンプまたは別の個所に生じる電流により定めることができる
【0066】 殊に最後に説明した、エラーを有するまたは変化したデータを取り扱う手段に
おいて、しかし上に説明した別の手段においても、記憶装置が、小さな部分的な
単位、例えば行または列の単位で上書きできると有利であることがわかった。こ
の場合、通常は関連する単位としてだけ再プログラミングすべき記憶装置セクタ
内の行または列を個別に再プログラミングすることができる。このような再プロ
グラミング時に発生する、該当するセクタの再プログラミングされない部分の影
響はこの場合に許容し得る。それはこれらの部分は必要時には上記のように行わ
れるチェックおよび補正によって識別し排除できるからである。このような手法
においては、記憶装置に書き込むべきデータを一時記憶するために必要な記憶ス
ペースを小さく維持することができる。行または列単位の再プログラミング時に
は、再プログラミングすべき行または列に相応する記憶容量の記憶容量を有する
バッファメモリ(例えば128バイト)で十分であり、これは例えば該当する記
憶装置が、考察している実施例のようにマイクロコントローラの一部である場合
に極めて有利である。
【0067】 最初に記憶装置に書き込んだデータを再構成するため、ならびにエラーを有す
るまたは変化した記憶内容を検出および/または補正するための前記の種々の手
段は、相互に任意に組み合わせることができる。この際に先に説明した2つの手
段においても、記憶装置からのデータの読み出し時に閾値が変更できることを利
用すると殊に有利であることがわかった。エラーを有するまたは変化した記憶内
容を検出および補正する際に少なくとも時々、通常の閾値に対してシフトした閾
値を使用すれば、記憶内容の変化を比較的早期に(最初の段階ですでに)および
/または高い信頼性で識別することができる。
【0068】 存在し得るまたはさらに発生し得る記憶装置エラーと、記憶内容の変化とを取
り扱う上記の手段は、実践的な実施の詳細には依存せずに迅速かつ簡単に提供お
よび実行可能である。
【図面の簡単な説明】
【図1】 エラーを有し得るまたは変化が発生した可能性のある記憶内容を取り扱う第1
手段を説明する概略図である。
【図2】 エラーを有し得るまたは変化が発生し可能性のある記憶内容を取り扱う第2手
段を説明する概略図である。
【符号の説明】
1 記憶装置 1a プログラムメモリ 1b シャドウメモリ 2 作業メモリ EK 検出および補正プログラム L ローディングプログラム Sx 記憶素子マトリクスの列 Zx 記憶素子マトリクスの行
【手続補正書】特許協力条約第34条補正の翻訳文提出書
【提出日】平成12年11月21日(2000.11.21)
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正内容】
【特許請求の範囲】
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI テーマコート゛(参考) G11C 29/00 631 G11C 17/00 601Q (72)発明者 ビェルン シュトイリッヒ ドイツ連邦共和国 ミュンヘン シュライ スハイマー シュトラーセ 84 (72)発明者 ルドルフ ウルマン ドイツ連邦共和国 オットーブルン ルー ベンスシュトラーセ 6 (72)発明者 ミヒャエル フェルベック ドイツ連邦共和国 ミュンヘン フォン− グラーフェンロイト−シュトラーセ 35 Fターム(参考) 5B018 GA01 GA02 HA03 HA06 HA16 KA21 NA06 QA16 5B025 AD00 AD04 AE08 5B065 BA01 BA03 BA05 EA02 EA12 EA31 5L106 AA10 BB02 BB14 GG07

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】 記憶装置に記憶すべきデータを多重に当該記憶装置に記憶し
    、 最初に記憶した前記データを必要時に前記の多重に記憶したデータから再構成
    することを特徴とする データを記憶する記憶装置を作動する方法。
  2. 【請求項2】 前記の最初に記憶装置に記憶したデータの再構成を、前記の
    多重に記憶したデータの相互に対応するビットの大半が有するレベルを考慮して
    行う 請求項1に記載の方法。
  3. 【請求項3】 前記の最初に記憶装置に記憶したデータの再構成を、場合に
    よっては発生した記憶内容変化の方向を考慮して行う 請求項1または2に記載の方法。
  4. 【請求項4】 前記の最初に記憶装置に記憶したデータの再構成は、ブール
    演算を含んでおり、 該ブール演算を、前記の多重に記憶したデータの相互に対応するビットに対し
    て行う 請求項1から3までのいずれか1項に記載の方法。
  5. 【請求項5】 記憶装置に記憶すべきデータに依存する付加情報を形成し、 該付加情報を前記の記憶すべきデータに付加的に記憶し、 前記の最初に記憶したデータを必要時に記憶したデータと、当該記憶した付加
    情報とから再構成することを特徴とする データを記憶する記憶装置を作動する方法。
  6. 【請求項6】 前記の付加情報として横断的な合計の1つまたは複数のビッ
    トを使用し、ここで前記の横断的な合計を最初に記憶装置または当該記憶装置の
    一部に書き込んだデータに対して形成する 請求項5に記載の方法。
  7. 【請求項7】 記憶装置の行または行の一部に記憶したデータに対して、固
    有の付加情報を形成して処理する 請求項5または6に記載の方法。
  8. 【請求項8】 記憶装置の列または列の一部に記憶したデータに対して、固
    有の付加情報を形成して処理する 請求項5から7までのいずれか1項に記載の方法。
  9. 【請求項9】 前記の付加情報形成時に、記憶装置の選択した部分を考慮し
    ないままにする 請求項5または8に記載の方法。
  10. 【請求項10】 前記の付加情報形成時に、記憶装置エラーまたは記憶内容
    変化に対する確率が比較高い、記憶装置の部分を特に考慮する、または当該部分
    だけを考慮する 請求項5から9までのいずれか1項に記載の方法。
  11. 【請求項11】 記憶装置に記憶したデータを相異なる条件で順次に読み出
    し、 最初に記憶したデータを必要時に当該相異なる読み出し過程にて得られたデー
    タから再構成することを特徴とする データを記憶する記憶装置を作動する方法。
  12. 【請求項12】 記憶装置に記憶したデータを順次に読み出す際に、記憶内
    容を決定するために相異なる閾値を使用する 請求項11に記載の方法。
  13. 【請求項13】 記憶装置に記憶すべきデータが自動的に多重に当該記憶装
    置に記憶されるように構成されていることを特徴とする データを記憶する記憶装置。
  14. 【請求項14】 記憶装置に記憶すべきデータに依存する付加情報が形成さ
    れ、かつ該付加情報が前記の記憶すべきデータに付加的に記憶されように構成さ
    れていることを特徴とする データを記憶する記憶装置。
  15. 【請求項15】 記憶装置に記憶したデータが相異なる条件で順次に読み出
    されるように構成されていることを特徴とする データを記憶する記憶装置。
JP2000580092A 1998-10-30 1999-04-19 データを記憶する記憶装置およびデータを記憶する記憶装置を作動する方法 Pending JP2002529813A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10637098P 1998-10-30 1998-10-30
US60/106,370 1998-10-30
PCT/EP1999/002761 WO2000026783A1 (de) 1998-10-30 1999-04-19 Speichereinrichtung zum speichern von daten und verfahren zum betreiben von speichereinrichtungen zum speichern von daten

Publications (1)

Publication Number Publication Date
JP2002529813A true JP2002529813A (ja) 2002-09-10

Family

ID=22311036

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000580092A Pending JP2002529813A (ja) 1998-10-30 1999-04-19 データを記憶する記憶装置およびデータを記憶する記憶装置を作動する方法

Country Status (6)

Country Link
US (1) US6907544B2 (ja)
EP (1) EP1125202B1 (ja)
JP (1) JP2002529813A (ja)
KR (1) KR20010080369A (ja)
DE (1) DE59906038D1 (ja)
WO (1) WO2000026783A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2830667A1 (fr) * 2001-10-05 2003-04-11 Gemplus Card Int Procede de determination d'une zone stable dans une memoire et dispositif de gestion d'une memoire associe
NO315959B1 (no) * 2002-04-16 2003-11-17 Thin Film Electronics Asa Fremgangsmåter til lagring av data i et ikke-flyktig minne
DE10221935B4 (de) * 2002-05-17 2014-02-13 Abb Ag Verfahren zur Erkennung und Korrektur von Bitfehlern
US7392436B2 (en) * 2003-05-08 2008-06-24 Micron Technology, Inc. Program failure recovery
US7321990B2 (en) * 2003-12-30 2008-01-22 Intel Corporation System software to self-migrate from a faulty memory location to a safe memory location
GB0411053D0 (en) * 2004-05-18 2004-06-23 Ricardo Uk Ltd Data processing
FR2982406A1 (fr) 2011-11-07 2013-05-10 St Microelectronics Rousset Memoire securisee qui evite la degradation de donnees

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2910584A (en) * 1956-08-06 1959-10-27 Digital Control Systems Inc Voted-output flip-flop unit
US3863215A (en) * 1973-07-03 1975-01-28 Rca Corp Detector for repetitive digital codes
US4183463A (en) * 1978-07-31 1980-01-15 Sperry Rand Corporation RAM error correction using two dimensional parity checking
JPS592057B2 (ja) * 1979-02-07 1984-01-17 株式会社日立製作所 エラ−訂正・検出方式
DE3134995A1 (de) * 1981-02-06 1983-03-17 Robert Bosch Gmbh, 7000 Stuttgart Verfahren und vorrichtung zur erkennung von informationsaenderungen in programmierbaren speichern
JPS5853090A (ja) * 1981-09-24 1983-03-29 Fujitsu Ltd プログラマブル・リ−ド・オンリ・メモリ
JPS58105498A (ja) * 1981-12-17 1983-06-23 Fujitsu Ltd メモリ内容保護方式
US4519079A (en) * 1983-02-17 1985-05-21 The United States Of America As Represented By The Secretary Of The Army Error correction method and apparatus
JPS61267846A (ja) * 1984-11-12 1986-11-27 Nec Corp メモリを有する集積回路装置
US5067111A (en) * 1988-10-28 1991-11-19 Kabushiki Kaisha Toshiba Semiconductor memory device having a majority logic for determining data to be read out
US5031180A (en) * 1989-04-11 1991-07-09 Trw Inc. Triple redundant fault-tolerant register
US5128944A (en) * 1989-05-26 1992-07-07 Texas Instruments Incorporated Apparatus and method for providing notification of bit-cell failure in a redundant-bit-cell memory
US5386533A (en) * 1990-11-21 1995-01-31 Texas Instruments Incorporated Method and apparatus for maintaining variable data in a non-volatile electronic memory device
EP0615211B1 (de) * 1993-03-11 1998-02-04 Francotyp-Postalia Aktiengesellschaft & Co. Verfahren zum Speichern sicherheitsrelevanter Daten
US5475693A (en) * 1994-12-27 1995-12-12 Intel Corporation Error management processes for flash EEPROM memory arrays
DE19525149A1 (de) * 1995-07-11 1997-01-16 Telefunken Microelectron Verfahren zum selbsttätigen Erkennen und Korrigieren eines ungültigen Datensatzes und System zu seiner Durchführung
US5968198A (en) * 1996-08-16 1999-10-19 Ericsson, Inc. Decoder utilizing soft information output to minimize error rates
SE511310C2 (sv) * 1997-05-20 1999-09-06 Ericsson Telefon Ab L M Förfarande för bitdetektering i ett radiokommunikationssystem
US6195777B1 (en) * 1997-11-06 2001-02-27 Compaq Computer Corporation Loss resilient code with double heavy tailed series of redundant layers
SE519003C2 (sv) * 1998-10-23 2002-12-17 Ericsson Telefon Ab L M Anordningar och förfarande relaterande till felkorrigerade transmission av digital data
US6637005B1 (en) * 2000-02-29 2003-10-21 Hughes Electronics Corporation Triple redundant self-scrubbing integrated circuit

Also Published As

Publication number Publication date
US6907544B2 (en) 2005-06-14
DE59906038D1 (de) 2003-07-24
US20020010876A1 (en) 2002-01-24
KR20010080369A (ko) 2001-08-22
EP1125202A1 (de) 2001-08-22
WO2000026783A1 (de) 2000-05-11
EP1125202B1 (de) 2003-06-18

Similar Documents

Publication Publication Date Title
KR100331139B1 (ko) 에러 위치지정 코드를 사용하여 멀티레벨 셀 메모리를 정정하는방법 및 장치
KR100877030B1 (ko) 불휘발성 메모리 및 불휘발성 메모리의 데이터 재기록 방법
JP5780174B2 (ja) 不良ビットエラーを処理するシステムおよび方法
EP1458107A1 (en) Extended error correction codes
KR970002637A (ko) 멀티프로세서 시스템
EP1206739B1 (en) Methods and apparatus for correcting soft errors in digital data
JP4962060B2 (ja) パリティエラー復旧回路
RU2269814C2 (ru) Способ надежной записи указателя для кольцевой памяти
JPH03248251A (ja) 情報処理装置
JP2002529813A (ja) データを記憶する記憶装置およびデータを記憶する記憶装置を作動する方法
US7496822B2 (en) Apparatus and method for responding to data retention loss in a non-volatile memory unit using error checking and correction techniques
JP3675375B2 (ja) 不揮発性メモリ並びに不揮発性メモリのデータ書き換え方法
KR100468933B1 (ko) 메모리 장치
JP2002244932A (ja) 制御装置
EP1001432A1 (en) Method of testing random-access memory
CN114203252A (zh) 非易失存储器的坏块检测方法、装置、设备及存储介质
US5146458A (en) Data transfer checking system
US20060069847A1 (en) Corruption tolerant method and system for deploying and modifying data in flash memory
JP3130796B2 (ja) 制御記憶装置
JP3314719B2 (ja) フラッシュeepromとその試験方法
JPH11167497A (ja) メモリ再書き込み動作誤り検出装置及び方法
JPS63278162A (ja) 情報処理装置におけるエラ−訂正装置
JPS63271555A (ja) 記憶制御方式
JPH0373014B2 (ja)
JPH11203892A (ja) 半導体不揮発性記憶装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040908

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040917

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050302