JP2002091831A - データ処理システム及びデータ処理方法 - Google Patents
データ処理システム及びデータ処理方法Info
- Publication number
- JP2002091831A JP2002091831A JP2000275983A JP2000275983A JP2002091831A JP 2002091831 A JP2002091831 A JP 2002091831A JP 2000275983 A JP2000275983 A JP 2000275983A JP 2000275983 A JP2000275983 A JP 2000275983A JP 2002091831 A JP2002091831 A JP 2002091831A
- Authority
- JP
- Japan
- Prior art keywords
- data
- error correction
- program
- storage area
- bit
- 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
Landscapes
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Detection And Correction Of Errors (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Microcomputers (AREA)
- Read Only Memory (AREA)
Abstract
省いて不揮発性メモリにおける記憶情報の書換え保証回
数を向上させる。 【解決手段】 データ処理システム(1)は、書き換え
可能な不揮発性メモリ(5)と、中央処理装置(2)と
を有し、前記中央処理装置は、前記不揮発性メモリの指
定された一部の記憶領域(20Ba)に対してだけソフ
トウェアECC処理の対象とする。一部の記憶領域にだ
けECCコードの付加や誤り訂正を行なって書換え保証
回数を向上させるから、記憶領域に拘わらず全てのライ
トデータに対して区別なくECCコードを付加する構成
に比べて、実質的に無用のECCコードによる記憶領域
の無駄を省くことができ、また、ECC処理をソフトウ
ェアで対処するから不揮発性メモリのデバイス特性に合
ったECC訂正能力を容易に選択することができる。
Description
対する書換え保証回数を改善する技術に関し、例えば電
気的に書き換え可能なフラッシュメモリを内蔵するマイ
クロコンピュータに適用して有効な技術に関する。
え可能な不揮発性メモリ(以下単にフラッシュメモリと
も称する)はメモリセルにプログラムされる閾値電圧の
相違に応じて情報を記憶する。閾値電圧の相違はフロー
ティングゲートが保有する電子又は正孔の量の違いによ
って得られる。斯くフラッシュメモリセルの電子又は正
孔の保持性能は書換え回数の増加と共に劣化する。した
がって、記憶情報の信頼性という観点から、通常、フラ
ッシュメモリの使用には有限の書換え保証回数が考慮さ
れる。
してそれを上回る書換えを可能にするには、100回の
書換え回数毎に、フラッシュメモリの記憶エリアを順次
切換え制御して対処することが可能であるが、そのため
には、実使用容量に対して数10〜数1000倍にも及
ぶ大きな記憶容量が必要になてしまう。
するには、デバイス的手法として、ゲート酸化膜を厚く
して電子又は正孔の保持性能を上げることが可能であ
る。また、回路的な手法としてECC(エラー・チェッ
ク・アンド・コレクト)回路を採用することが可能であ
る。特開平11−296392号公報には1チップマイ
クロコンピュータに内蔵のEEPROMにECCを適用
した技術が示される。
ート酸化膜を厚くすることによる書換え保証回数の改善
には限界が有り、しかも書き込み時間の大幅な増大が予
想される。
ECC機能を付加する場合には、ECCコードの生成回
路と、ECCコード付加データに対する誤り判定及び訂
正の回路が設けられる。しかしながら、その場合には、
ECC用のハードウェアによってチップ面積が増える。
その上、必然的に全てのデータに対してECCコードを
付加してデータ記憶を行なうことになるので、それに応
じてフラッシュメモリ自体の記憶容量も大きくされるこ
とになる。特開平11−296392号公報記載の技術
はECCコードの生成をCPUのファームROMを用い
てソフトウェアで行なうことにより、その分の専用ハー
ドウェアは削減されている。一方、ECCコード付加デ
ータに対する誤り判定及び訂正を行なうハードウェア回
路は依然設けられている。しかも、全ての記憶データに
対してECCコードを付加してデータ記憶が行なわれる
ようになっている。
イクロコンピュータ等におけるフラッシュッメモリの利
用形態を考慮した。例えば、フラッシュメモリには、比
較的書換え回数の少ないデータとして例えば、回路特性
調整用のトリミングデータ、参照用のテーブルデータ、
プログラムデータが記憶される。さらにその他に、機器
の状態に応じたパラメータデータのような頻繁に書き換
えることが必要なデータもフラッシュメモリに記憶され
ることがある。一つのフラッシュメモリにそれらデータ
を混在させようとするとき、従来の技術では全てのデー
タに対してECCコードが付加されるため、記憶エリア
の利用効率が著しく悪化してしまう。頻繁に書き換える
べきデータ量が少ない場合には特に記憶エリアの利用効
率の低下が顕著となるであろう。不揮発性メモリの記憶
容量が増大する傾向にあるとき、本発明者は一部の記憶
領域だけをECCの対象にするという観点の有用性を見
出した。
はプロセスばらつきの影響を受けるので、同じ書換え回
数でも読み出しエラーを生じ易いメモリセルと生じ難い
メモリセルがある。本発明者は、そのメモリセル特性の
個体差に着目して、データビット数に対するECCコー
ドのビット数をフラッシュメモリの特性に応じて決定で
きるようにすることの有用性を見出した。要するに、一
定の書換え保証回数を得るのに、メモリセルのデバイス
特性に合ったECC方式を選択できるようにして、デー
タに対するECCコードのオーバヘッドを小さくして記
憶領域の利用効率を最大限とすることの有用性を見出し
た。本発明者の検討によれば、このECC方式の選択と
いう融通性は、ECCコードの生成又は誤り検出及び訂
正をハードウェアで行なう場合には容易に実現し難いと
いうことが明らかにされた。
Cコードによる記憶領域の利用の無駄を省いて記憶情報
の信頼性を向上させることが可能なデータ処理システム
を提供することにある。
記憶領域の利用の無駄を省いて記憶情報の書換え保証回
数を向上させることが可能なデータ処理システムを提供
することにある。
に合ったECC方式を選択できるようにして、データに
対するECCコードのオーバヘッドを小さくして記憶領
域の利用効率を最大限とすることが可能なデータ処理シ
ステムを提供することにある。
付加されたデータに対する誤り判定及び訂正の処理によ
るデータリード動作の遅延を最小限にすることが可能な
データ処理システムを提供することにある。
生成を効率的に行なうことができるデータ処理方法を提
供することにある。
付加されたデータの誤り判定を効率的に行なうことがで
きるデータ処理方法を提供することにある。
びプログラム可能な不揮発性メモリのアドレス空間の一
部のアドレス領域の書き換え回数をソフトウェア的処理
によって向上することが可能なデータ処理システムない
しデータ処理方法を提供することにある。
特徴は本明細書の記述及び添付図面から明らかになるで
あろう。
発明のうち代表的なものの概要を簡単に説明すれば下記
の通りである。
能な不揮発性メモリ(フラッシュメモリ)と、中央処理
装置(CPU)とを有し、前記中央処理装置は、所定の
処理(プログラム)を実行し、前記不揮発性メモリのア
ドレス空間内の指定された一部の記憶領域(20Ba)
の書換え保証回数を当該不揮発性メモリのアドレス空間
内のその他の記憶領域の書換え保証回数よりも向上させ
る処理が可能である。前記所定のプログラムの実行によ
る処理は、前記指定された一部の記憶領域に対するライ
トデータに誤り訂正情報(ECCコード)を生成して付
加する処理であり、前記不揮発性メモリの指定された一
部の記憶領域からのリードデータに対しECCコードに
よる誤り判定と誤り訂正を行なう処理である。前記一部
の記憶領域の指定は例えばユーザプログラムによって行
なわれる。
部の記憶領域に格納されたデータに対するアクセスだけ
を対象として、ECCコードの付加や誤り訂正を行なっ
て書換え保証回数を向上させる。前記指定された一部の
記憶領域には書換えの頻繁なパラメータデータが格納さ
れ、他の記憶領域には書換え頻度の低いプログラムデー
タなどが格納される。したがって、当該他の記憶領域に
格納されるデータにはECCコードが付加されない。こ
の構成は、記憶領域に拘わらず全てのライトデータに対
して区別なくECCコードを付加する構成に比べて、実
質的に無用のECCコードによる記憶領域の無駄な利用
を省きながら記憶情報の信頼性を向上、若しくは記憶情
報の書換え保証回数の向上を実現する。
加、並びにECCコードによる誤り判定及び訂正の処理
を中央処理装置によるプログラム実行で実現するから、
データビット数に対するECCコードのビット数の割合
を定義するECC方式はプログラムの記述内容で選択で
きる。そのため、メモリセルのデバイス特性に合ったE
CC方式の選択が容易であり、データに対するECCコ
ードのオーバヘッドを小さくできる。その結果記憶領域
の利用効率を最大限とすることが可能になる。要する
に、ソフトウェアによりエラー訂正効率を容易に変える
ことができるから、デバイスの能力に合ったエラー訂正
方式を容易に選択することができる。観点を変えれば、
これはECCコードのビット数から無駄を排除し、記憶
エリアの有効利用を保証する。
チップに前記不揮発性メモリ及び中央処理装置が形成さ
れたシングルチップのマイクロコンピュータとして実現
することが可能である。一方、前記データ処理システム
は、前記不揮発性メモリ及び中央処理装置が夫々別々の
半導体チップに形成されたマルチチップ形態で実現して
もよい。
ラムは、例えば、前記不揮発性メモリの指定された一部
の記憶領域への書き込みデータに対してECCコードを
生成するECCコード生成プログラムと、前記不揮発性
メモリの指定された一部の記憶領域から読み出されたE
CCコード付加データに対するエラー判定とエラーの訂
正を行なうエラー訂正プログラムである。
法では例えばハミングコードの検査行列を用い、誤り訂
正ではリードデータとハミングコードの行列演算を積和
演算などを用いて行なうことができる。ここでは、デー
タをnビットとし、nビットのデータに対するECCコ
ードをmビットとするとき、mビットの相互に異なる2
進数をm+n列に並べた行列テーブルを記憶領域に形成
し、前記ECCコード生成プログラム及びエラー訂正プ
ログラムの処理にその行列テーブルを参照させる。
の論理値“1”のビット位置に対応する前記行列テーブ
ルの列の値を行方向のビット毎に排他的論理和を採り、
これによって得られたmビットの値をECCコードと
し、データにECCコードを付加してm+nビットの符
号語を生成する。エラー判定及びエラー訂正では、前記
符号語の論理値“1”のビット位置に対応する前記行列
テーブルの列の値を行方向のビット毎に排他的論理和を
採り、これによって得られたmビットの値が全ビット論
理値“0”のときはエラー無と判定して前記符号語のn
ビットのデータを正規データとし、前記排他的論理和に
よって得られたmビットの値が1ビットでも論理値
“1”のときはエラー有りと判定して、前記行列テーブ
ルの列から、前記排他的論理和によって得られたmビッ
トの2進数に一致する列を検索し、検索された列に対応
される位置の符号語のビットを論理値反転して訂正し、
訂正された符号語のnビットのデータを正規データとす
る。このエラー判定では積和演算と除算演算のような処
理を要せず、積和演算器及び除算器を備えずともソフト
ウェアによるECC処理を能率的に行なうことが可能に
なる。
エラー訂正プログラムは前記中央処理装置によってアク
セス可能なマスクROMに保持させてよい。それらプロ
グラムの保持に前記不揮発性メモリを利用する場合に
は、その他の記憶領域に保持させればよい。パラメータ
に比べてプログラムの書換え頻度は少ないから相対的に
書換え保証回数の小さなその他の記憶領域に保持させれ
ば充分である。要するに、劣悪な使用条件を除けば、書
換え頻度の低い情報にECCコードを付加する実益は殆
ど無いということである。
に、消去動作が禁止された消去禁止領域(20A)と消
去及び書き込みが許容された書換え許容領域(20B)
とを割当てるとき、消去禁止領域に前記ECCコード生
成プログラム及びエラー訂正プログラムを格納してよ
い。その場合には、一旦書き込まれたプログラムの書換
えは原則不可能であるから、望ましくは、半導体集積回
路化されたマイクロコンピュータのようなデータ処理装
置の製造メーカが書き込むのがよい。そうであるなら、
データとECCコードとのフォーマットは予め固定的に
決定された方が望ましく、前記ECCコード生成プログ
ラムは、ECCコードを生成した後、生成したECCコ
ードとそれに対応するデータとを規定のフォーマットに
従いECCコード付加データとして前記不揮発性メモリ
の一部の記憶領域に格納し、エラー訂正プログラムは前
記規定のフォーマットに従ってECCコード付加データ
を認識すればよい。
びエラー訂正プログラムを前記書換え許容領域に保持さ
せてもよい。この場合は、ユーザによるそれらプログラ
ムの書き込みを想定する。したがって、データとECC
コードとのフォーマットについてはユーザが作成したプ
ログラムに依存した任意フォーマットであってもよい。
製造メーカーがそれらプログラムを提供しようとする場
合にもユーザの使い勝手を考慮すれば、C言語のような
高級言語で記載されたソースプログラムで与えるのがよ
い。データとECCコードとを別々の配列として把握す
ることも可能になる。
して、ランダムアクセスメモリ(RAM)のアクセスサ
イクルが前記不揮発性メモリのアクセスサイクルより速
い場合、前記不揮発性メモリから前記ECCコード生成
プログラム及びエラー訂正プログラムをRAM転送し、
前記中央処理装置には前記RAMに転送された前記EC
Cコード生成プログラム及びエラー訂正プログラムを実
行させればよい。このとき、前記中央処理装置はリセッ
トの指示に応答して前記不揮発性メモリから前記RAM
に前記ECCコード生成プログラム及びエラー訂正プロ
グラムを転送するとよい。
して、前記中央処理装置によってアクセス可能なRAM
を有し、前記中央処理装置はリセットの指示に応答し
て、前記不揮発性メモリの一部の記憶領域から順次EC
Cコード付加データを読み出し、読み出したECCコー
ド付加データに対し、前記エラー訂正プログラムの実行
により前記エラー判定とエラーの訂正を行い、前記エラ
ー判定とエラーの訂正処理を経たデータを前記RAMに
初期的にストアするとよい。その後、CPUはRAMか
ら必要なデータをリードすればよく、リード動作に際し
てその都度エラー判定を行なうことを要しない。尚、C
PUによる上記エラー訂正プログラムの実行する方法と
しては、上記不揮発性メモリから直接上記エラー訂正プ
ログラムを読み込んで実行する方法又はRAMに転送さ
れた上記エラー訂正プログラムを読み込んで実行する方
法のいずれかを採用することが可能である。
記エラー判定処理において訂正不能なエラーが発生した
き、誤動作防止の観点より、前記中央処理装置は、前記
エラー訂正プログラムの実行による前記エラー判定処理
において訂正不能なエラーの発生を示す情報を外部から
認識可能にレジスタ(RER)、或いはメモリのフラグ
領域(30)に保持させるとよい。ユーザプログラムを
介してその領域を所定インターバル毎に参照すれば、訂
正不能なエラー発生を認識でき、例えば、訂正不能なエ
ラーを発生したデータブロックの書換え等を実行して対
処することが可能になる。
プログラムの実行によりエラー訂正可能なデータを検出
した場合にも、それを示す情報を外部から認識可能に汎
用レジスタやメモリのフラグ領域に保持させてよい。そ
のような情報は上記と同じくワーニング情報として利用
すればよい。これにより、ユーザシステムは、データが
壊れかけている、ということを逸早く認識することがで
き、壊れかけているデータの書換え(再書込み)を促し
てデータの信頼性を更に向上させることが可能になる。
システムは、演算制御装置のアドレス空間に書換え保証
回数の低い第1記憶領域(20Bb)と、書換え保証回
数の高い第2記憶領域(20Ba)とを有し、前記第1
記憶領域は、前記第2記憶領域への書き込みデータに対
してECCコードを生成するECCコード生成プログラ
ムと、前記第2記憶領域から読み出されたECCコード
付加データに対するエラー判定とエラーの訂正を行なう
エラー訂正プログラムとを有し、前記演算制御装置は、
前記第2記憶領域にデータを格納するとき、前記ECC
コード生成プログラムを実行する。
込み動作に対してだけECCコードをソフトウェアで生
成するから、上記同様に、実質的に無用のECCコード
による記憶領域の無駄な利用を省きながら記憶情報の信
頼性を向上、若しくは記憶情報の書換え保証回数の向上
を実現することができる。更に、ライトデータに対する
ECCコードの付加をプログラム実行で実現するから、
やはり、不揮発性メモリのメモリセルのデバイスの特性
に合ったECC方式の選択が容易であり、データに対す
るECCコードのオーバヘッドが小さくでき、記憶領域
の利用効率を最大限とすることが可能にある。
らデータを読み出すとき、前記エラー訂正プログラムを
実行する。
応答して前記エラー訂正プログラムを実行して前記第2
記憶領域のデータを予めRAMに順次転送可能である。
ば電気的に書換え可能なフラッシュメモリである。EC
Cコード生成プログラム及びエラー訂正プログラムの書
換えを考慮すると、書き込み消去プログラムを前記フラ
ッシュメモリに予め格納し、所定の動作モードに応答し
てこれをRAMに内部転送し、RAM上の書き込み消去
プログラムを実行してECCコード生成プログラム及び
エラー訂正プログラムの書換えを行なうようにしてよ
い。或いは、所定の動作モードに応答して外部からRA
Mに書き込み消去プログラムを転送し、RAM上の書き
込み消去プログラムを実行してECCコード生成プログ
ラム及びエラー訂正プログラムの書換えを行なうように
してよい。
するデータ処理方法では、nビットのデータに対してE
CCコードをmビットとするとき、mビットの相互に異
なる2進数をm+n列に並べた行列テーブルを利用し、
ECCコードの生成では、データの論理値“1”のビッ
ト位置に対応する前記行列テーブルの列の値を行方向の
ビット毎に排他的論理和を採り、これによって得られた
mビットの値をECCコードとし、データにECCコー
ドを付加してm+nビットの符号語を生成する。
ータ処理方法では、前記符号語の論理値“1”のビット
位置に対応する前記行列テーブルの列の値を行方向のビ
ット毎に排他的論理和を採り、これによって得られたm
ビットの値が全ビット論理値“0”のときはエラー無と
判定して前記符号語のnビットのデータを正規データと
し、前記排他的論理和によって得られたmビットの値が
1ビットでも論理値“1”のときはエラー有りと判定し
て、前記行列テーブルの列から、前記排他的論理和によ
って得られたmビットの2進数に一致する列を検索し、
検索された列に対応される位置の符号語のビットを論理
値反転して訂正し、訂正された符号語のnビットのデー
タを正規データとする。このエラー判定では積和演算な
いし除算演算のような処理を要せず、算術論理演算器や
シフタなどの演算器及び除算器を有し積和演算器を備え
ていないCPUを用いてもソフトウェアによるECC処
理を能率的に行なうことが可能になる。
は本発明の一例に係るシングルチップのマイクロコンピ
ュータが示される。同図に示されるマイクロコンピュー
タ1は、特に制限されないが、単結晶シリコンのような
1個の半導体基板(半導体チップ)にCMOS集積回路
製造技術により形成される。
としての中央処理装置(CPU)2、RAM3、バスス
テートコントローラ(BSC)4、電気的に書き換え可
能な不揮発性メモリとしてのフラッシュメモリ5、フラ
ッシュコントロールモジュール6、及びその他の内蔵回
路を総称するその他モジュール7を有する。その他モジ
ュール7としてマスクROM8、割り込みコントローラ
(INTC)9、タイマ(TMR)10、入出力ポート
(I/O)11及びシリアルインタフェースコントロー
ラ(SCI)12等を有する。それら回路モジュールは
バスIAB,IDB,PAB,PDB,CONTを介し
てインタフェースされる。
比較的速い内部アドレスバス、内部データバスである。
前記バスPAB,PDBは情報伝送速度が比較的遅い周
辺アドレスバス、周辺データバスである。バスCONT
はバスアクセス制御信号やタイミング制御信号等を伝達
する制御信号線を総称する。内部バスIDB,IABと
周辺バスPDB,PABとの動作速度の相違若しくはア
クセス対象に固有のアクセス形態の相違に対して前記B
SC4がアクセス動作タイミング等を最適制御すると共
に、前記BSC4はアクセスアドレスに応じたチップ選
択若しくはモジュール選択制御等も行なう。
スクROM8又はRAM3から命令をフェッチし、フェ
ッチした命令を解読して実行する。RAM3はCPU2
のワーク領域若しくはデータ又はプログラムの一時記憶
領域とされる。前記マスクROM8はプログラム又はデ
ータテーブルなどの記憶領域とされる。割り込みコント
ローラ10はマイクロコンピュータ1の外部から与えら
れる割込要求又はマイクロコンピュータ1内部の状態に
応じて内蔵回路モジュールから発生される割込要求を受
け、割り込み優先度及び割り込みマスク等に従って割込
要求の受付を調停する。割込要求が受付けられると、C
PU2に割込み信号IRQが与えられ、割り込みベクタ
によって割り込み要因がCPU2に与えられる。CPU
2は割り込みベクタによって指示されるプログラムに処
理を分岐する。I/O11は外部アドレスバス及び外部
データバスへの接続、SCI12の外部インタフェー
ス、TMR10の外部イベント信号入力等に用いられ
る。
CPU2は、特に制限されないが、シフタSFT及び算
術論理演算器ALU等の演算器と、32ビットの汎用レ
ジスタR0〜R31、プログラムカウンタPC、コンデ
ィションコードレジスタCCR及びテンポラリレジスタ
TR等のレジスタ群、そしてリードデータバッファRD
B、ライトデータバッファWDB及びアドレスバッファ
ABなどのバッファ回路を実行部に有する。命令制御部
は命令レジスタIR、命令デコーダIDEC、命令シー
ケンスロジックINTLを有する。
べき命令アドレスを保有し、その命令アドレスがアドレ
スバッファABから内部アドレスバスIABに出力され
ると、RAM3等の対応アドレスからリードされた命令
が内部データバスIDBを介して命令レジスタIRにフ
ェッチされる。命令デコーダIDECは命令レジスタI
Rの命令を解読して、CPU2内部の制御信号を生成し
て、前記実行部による演算処理を制御する。命令シーケ
ンスロジックINTLは割込み信号IRQ等に応答して
命令実行順序を変更する制御を行なう。
リセルアレイ20、Xデコーダ・ドライバ(XDE・D
V)21、センスアンプアレイ(SAA)22、Yスイ
ッチアレイ(YSW)23、Yデコーダ(YDE)2
4、入出力回路(IFB)25、電源回路(VGN)2
6、及びタイミングジェネレータ(TGN)27を有す
る。メモリセルアレイ20はマトリクス配置されたフラ
ッシュッメモリセル(図示せず)を有する。フラッシュ
メモリセルは、特に制限されないが、半導体基板若しく
はウェル領域にソース、ドレインを有し、チャネルの上
方に夫々絶縁膜を介してフローティングゲート及びコン
トロールゲートが形成されたスタック構造を有し、ソー
スをソース線に、ドレインをビット線に、コントロール
ゲートをワード線に接続して構成される。
ラム可能にされ、プログラムされた閾値電圧に応じて情
報を保持する。例えば、1個のフラッシュメモリセルが
1ビットの情報を保持する場合に、相対的に高い閾値電
圧状態を書き込み状態、相対的に低い閾値電圧状態を消
去状態と称する。書き込み状態を得る為の書き込み動作
は、特に制限されないが、コントロールゲートに10
V、ドレインに例えば5V、ソースおよび基板に例えば
0Vを印加して、ドレイン・ソース間に電流を流し、こ
れによってホットエレクトロン注入が起こり、フローテ
ィングゲートに電子が蓄積され、メモリセルの閾値電圧
が高くなる。前記消去状態を得る為の消去動作は、特に
制限されないが、コントロールゲートに10V、ソース
及び基板に例えば−10Vを印加し、さらにドレインを
例えば開放(フローティング)にして、フローティング
ゲートに蓄積された電子を基板に放出させ、これによっ
てメモリセルの閾値電圧が低くなる。
B,PAB,PDB,CONTとの間でアドレス、制御
信号及びコマンドを入力すると共にデータの入出力を行
なう。入出力回路25に入力されたアドレス信号はXD
EC・DV21及びYDE24に入力されて夫々デコー
ドされる。XDEC・DV21はそのデコード結果に従
ってワード線を選択する。YDE24はそのデコード結
果に従ってYSW23を介してビット線を選択する。ワ
ード線選択及びビット線選択によってフラッシュメモリ
セルが選択される。読み出し動作では、前記選択された
フラッシュメモリセルの読み出しデータは、SAA22
にて検出され、入出力回路25を経てバスPDBまたは
IDBに出力される。書き込み動作では、バスPDB又
はIDBから入出力回路25に与えられる書き込みデー
タが入出力回路25内の書き込みラッチ回路にラッチさ
れ、ワード線選択されたメモリセルに対し、ラッチデー
タに従って書き込み・書き込み阻止が制御される。書き
込み処理の前には予めブロック単位でフラッシュメモリ
セルに対する消去が行なわれる。
ジポンプ回路などを有し、フラッシュメモリの書き込み
・消去・読み出しなどの動作で使用する様々な電圧を供
給する。前記タイミングジェネレータ27は、制御バス
CONTを介して供給されるストローブ信号及びデータ
バスPDB,IDBを介して入力されるコマンドに基づ
いてフラッシュメモリの内部タイミング信号を生成す
る。
モジュール6は、フラッシュメモリ5に対する書き込み
及び消去のためのシーケンス制御並びにECC処理に利
用される回路ブロックである。このフラッシュコントロ
ールモジュール6は、CPU2によってアクセス可能な
夫々32ビットの、書き込み/消去制御レジスタFLM
CR、消去ブロック指定レジスタEBR、データレジス
タFMPDR0,FMPAR0、及びリザルトレジスタ
FPFR等の制御レジスタを備え、更に、フラッシュメ
モリに対する書き込み及び消去のシーケンス動作を制御
するシーケンス制御回路29を有する。
Rはフラッシュメモリ5の動作モードを制御するレジス
タであり、書き込みの有効/無効を指示するライトイネ
ーブルビットWE、消去動作を指示するイレーズビット
E、消去ベリファイ動作を指示するイレーズベリファイ
ビットEV、書き込み動作を指示するプログラムビット
P、書き込みベリファイ動作を指示するプログラムベリ
ファイビットPV、フラッシュメモリの書き込み動作中
にエラーの発生したことを示す書き込みエラービットP
ER、消去動作中にエラーの発生したことを示す消去エ
ラービットEER、フラッシュメモリのリード動作時に
エラーの発生したことを示すリードエラービットRER
等を有する。消去ブロック指定レジスタEBRはフラッ
シュッメモリセルアレイ20の消去エリアをブロック毎
に設定するレジスタであり、ブロック毎にイレーズブロ
ックビットEB0〜EB9を有する。データレジスタF
MPDR及びリザルトレジスタFPFR等は後述のEC
C処理で利用されるレジスタである。尚、レジスタFM
PDR及びFPFRは、汎用レジスタ(R0−R31)
内のレジスタを利用しても良い。
C処理》次にマイクロコンピュータ1のECC機能につ
いて説明する。フラッシュメモリ5のメモリセルアレイ
20は、特に制限されないが、図3の(A)に例示され
るようにブート領域20Aとユーザ領域20Bに大別さ
れる。特に制限されないが、ブート領域20Aはマイク
ロコンピュータ1のユーザによる自由な書換えが禁止さ
れる領域であり、ユーザ領域20Bはユーザによる自由
な書換えが許容される領域である。要するに、前記消去
ブロック指定レジスタEBRのイレーズブロックビット
EB0〜EB9の設定によって消去可能なエリアはユー
ザ領域20Bに限られる。ブート領域に格納されたプロ
グラムはユーザが所定の動作モードを設定することによ
り実行可能である。尚、フラッシュメモリに対する書換
えシーケンスの具体例についてここでは詳述しないが、
書き込みデータにしたがった書き込み動作は先に消去動
作が完了されることを条件とするものであり、消去ブロ
ックによる消去が指示されなければ当然書き込みデータ
に従った書き込み動作も行なわれないようになってい
る。そのような書き込み・消去制御は前記シーケンス制
御回路29が行なう。
図3の(B)に例示されるように、前記ユーザ領域20
Bに指定された一部の領域20Baのデータに向けられ
ている。即ち、ECC機能は、CPU2が、所定のプロ
グラムを実行することにより、ユーザ領域20Bの一部
の記憶領域(第1領域)20Baの書換え保証回数を当
該ユーザ領域20Bのその他の記憶領域(第2領域)2
0Bbの書換え保証回数よりも向上させる機能である。
この所定のプログラム実行によるECC機能は、前記指
定された一部の記憶領域20Baに対するライトデータ
にECCコードを生成して付加する処理(ECCコード
生成処理)と、前記指定された一部の記憶領域20Ba
からのリードデータに対しECCコードによるエラー判
定とエラー訂正を行なう処理(ECCエラー判定訂正処
理)とによって実現される。前者の処理はCPU2がE
CC生成プログラム21を実行することにより行なわ
れ、後者の処理はCPU2がエラー訂正プログラム22
を実行することにより行なわれる。
る制御用パラメータなどのデータの記憶に利用される。
頻繁に書き換えられる制御用パラメータとは、たとえば
マイクロコンピュータ1が自動車のエンジン制御に用い
られる場合、エンジン停止時の各ピストンの相対位置、
エンジン停止直前までの燃費情報等の情報とされる。頻
繁に書換えられるデータにECC処理を施せば、仮に、
書換え回数の増加によるフラッシュメモリセルの特性劣
化に起因して読み出しデータに誤りを生じても、ECC
コードによる誤り訂正能力の範囲で、その誤りを訂正す
ることができる。換言すれば、ECC処理により実質的
に書き換え保証回数を改善若しくは向上させることがで
きる。
頻繁に書き換えられることのない情報として、テーブル
データなどの固定データ、前記ECC生成プログラム2
1、エラー訂正プログラム22及び他のユーザプログラ
ム等の記憶領域として利用される。前記ECC生成プロ
グラム21及びエラー訂正プログラム22は、図3の
(C)に例示されるようにブート領域20Aに格納し、
或いは図3の(D)に例示されるようにマスクROM8
に格納してもよい。
領域20Baに対するアクセスだけを対象として、EC
Cコードの付加や誤り訂正を行なって書換え保証回数を
向上させるから、前記一部の記憶領域20Baには書換
えの頻繁なパラメータデータ等を格納すればよい。他の
記憶領域20Bbには書換え頻度の低いプログラムデー
タなどを格納しても、当該他の記憶領域にはECCコー
ドが付加されないから、記憶領域に拘わらず全てのライ
トデータに対して区別なくECCコードを付加する構成
に比べて、実質的に無用のECCコードによる記憶領域
の無駄な利用を省きながらフラッシュメモリセルの記憶
情報の信頼性向上、換言すれば記憶情報の書換え保証回
数の向上を実現することができる。
加、並びにECCコードによる誤り判定及び訂正の処理
をCPU2によるプログラム実行で実現するから、ユー
ザデータビット数に対するECCコードのビット数の割
合を定義するECC方式はECCコード生成プログラム
及びエラー訂正プログラムの記述内容で選択でき、フラ
ッシュメモリのメモリセルのデバイス特性に合ったEC
C方式の選択が容易である。例えば、図4に例示される
ようにユーザデータビット数に対するECCコードのビ
ット数が減るほど訂正能力は低くなるがECCコードに
よって費やされるメモリセルの割合(オーバヘッド)は
少なくなる。したがって、ECC処理のソフトウェアに
よりエラー訂正効率を容易に変えることができるから、
マイクロコンピュータのデバイス能力に合ったエラー訂
正方式を容易に選択することができ、これはECCコー
ドのビット数から無駄を排除することを意味し、フラッ
シュメモリの記憶エリアの有効利用を保証する。要する
に、ユーザデータに対するECCコードのオーバヘッド
を小さくしてフラッシュメモリの利用効率を最大限とす
ることが可能になる。
20Bの一部の記憶領域20BaをECC処理対象とす
るとき、その記憶領域20Baを規定するのは、例えば
記憶領域20Bbに格納されたユーザプログラムであ
る。前記記憶領域20Baにパラメータを格納すると
き、例えばユーザプログラムは、パラメータデータのソ
ースアドレスと領域20Baのストア先アドレスを指定
し、CPUの処理をECCコード生成プログラムにジャ
ンプさせる。ECCコード生成プログラムが実行される
ことにより、ソースアドレスのパラメータデータに対し
てECCコードが生成され、パラメータデータとしての
ユーザデータにECCコードを付加したECC付きデー
タが前記ストア先アドレスに格納される。パラメータデ
ータをリードするときは、ユーザプログラムは領域20
Baのソースアドレスと任意のディスティネーションア
ドレスを指定し、CPUの処理をエラー判定プログラム
にジャンプさる。エラー判定プログラムが実行されるこ
とにより、ソースアドレスのECC付きデータがリード
され、これに対する誤り判定が行なわれ、必要な訂正が
行なわれてパラメータデータとしてのユーザデータがデ
ィスティネーションアドレスにセットされる。ECC処
理を伴った上記パラメータデータの格納及びパラメータ
データのリードにおいて、ユーザプログラムとECCコ
ード生成プログラム及びエラー訂正プログラムとの間で
行なわれるべきアクセスアドレス及びリードデータの受
け渡しは、CPU2の汎用レジスタ或いはRAM3の領
域を介して行なわれる。この詳細は、ソフトウェアEC
C処理の具体例で説明する。 《ユーザデータとECCコードとの対応》上記処理にお
いて、ユーザデータとECCコードとの対応はユーザプ
ログラム、ECCコード生成プログラム及びエラー訂正
プログラムにおいて統一的に把握されていることが望ま
しい。例えば、図5に例示されるように、ECCコード
生成対象とされるユーザデータの配列DA1に対し、ユ
ーザデータと対応するECCコードを一つのレコードと
するように一つの配列データDA2としてフォーマット
化し、或いは、ユーザデータの配列DA1に対してEC
Cコードを別のデータ配列DA3として規定してよい。
後者の場合は当然、ユーザデータの配列DA1とECC
コードの配列DA3は先頭アドレスなどによって配列相
互の対応付けが必要であることは言うまでもない。
一つの配列データ中に対応付けて領域20Baに書き込
むときの処理手順が例示される。先ず、書き込み対象と
されるユーザデータの配列が指定されてECCコード付
きデータの書き込み処理が指示されると、ユーザデータ
の読み込みと展開が行なわれる(S1)。即ち、(B)
に例示されるように、ユーザデータの配列DA1がワー
クメモリに読み込まれ、そこで、読み込まれたユーザデ
ータは規定のデータフォーマットにしたがって、(B)
の配列EXTで例示されるように、ユーザデータの隣に
ECCコード領域を有するレコード形式に拡張される。
次いで、(A)に例示されるようにユーザデータに対し
てECCコードを生成し、これを対応レコードのECC
コード領域にストアして、レコード配列DA2が形成さ
れる。このレコード配列DA2のデータに対して前記フ
ラッシュメモリの領域20Baへの書き込みが行なわれ
る(S3〜S7)。書き込み処理は、書き込みパルスの
印加(S4)、書き込みデータのベリファイ(S5)、
ベリファイ結果に基づく書き込み終了判定(S6)を行
ない、所望の書き込み状態に到達していなければ再書き
込みデータを演算してステップS4からの処理を繰り返
し、規定回数繰り返してもステップS6の終了判定が満
足できなければ書き込み異常終了とされ、ステップS6
で規定の書き込み状態に到達すれば書き込み正常終了と
される。書き込みパルス印加の前には書き込みエリアに
対する消去が終了されているものとする。
別の配列データとして対応付けて領域20Baに書き込
むときの処理手順が例示される。先ず、書き込み対象と
されるユーザデータの配列が指定されてECCコード付
きデータの書き込み処理が指示されると、ユーザデータ
の読み込みが行なわれる(S11)。即ち、(B)に例
示されるように、ユーザデータの配列DA1がワークメ
モリに読み込まれる。次いで、(A)に例示されるよう
にユーザデータに対してECCコードを生成し、これを
別のデータ配列DA3としてストアする(S12)。双
方のデータ配列DA1,DA3に対して前記フラッシュ
メモリの領域20Baへの書き込みが行なわれる(S1
3〜S17)。書き込み処理は前記ステップS4〜S7
の処置と同様である。
するECCコード付きデータをリードするときの処理手
順が例示される。先ず、リード対象とされるECCコー
ド付きデータのレコード先頭アドレスが設定され(S2
1)、これに対応するECCコード付きデータがフラッ
シュメモリの領域20Baからワークメモリに読み込ま
れる(S22)。読み込まれたデータに対してエラー判
定が行なわれる(S23)。このとき、図6で説明した
ようにエラー判定の為に読み込まれた配列データは一定
のフォーマット、即ち、ユーザデータとECCコードの
所定ビット数単位のペアを単一レコードとする配列のフ
ォーマットを有しているから、エラー訂正プログラム
は、その規定のフォーマットであることを前提に、各レ
コードからユーザデータとECCコードを参照して誤り
の判定を行なうことができる。訂正可能な誤りに対して
はエラー訂正が実行され(S24)、必要な訂正が実行
されたリードデータがRAM3などの所定のエリアにス
トアされる(S25)。
CCコードが別々の配列データとされるECCコード付
きデータをリードするときの処理手順が例示される。先
ず、リード対象とされるECCコードの配列データの先
頭アドレスとユーザデータの先頭アドレスが設定され
(S31)、これに対応するECCコードとユーザデー
タがフラッシュメモリの領域20Baからワークメモリ
に読み込まれ(S32)、読み込まれたデータに対して
エラー判定が行なわれる(S33)。エラー判定におい
て、対応するユーザデータとECCコードを参照する場
合にも夫々の配列の構造を指定する情報がユーザプログ
ラムを介して与えられなければならない。要するに、図
7で説明したECCコード用配列データDA3の生成に
際して、当該配列データDA3の先頭アドレス及び構造
はユーザプログラムを介して与えられているから、その
配列を利用する場合にも同じようにユーザプログラムか
ら必要なアドレス情報及び配列の構造情報が与えられな
ければ、それを利用する事はできない。訂正可能な誤り
に対してはエラー訂正が実行され(S34)、必要な訂
正が実行されたリードデータがRAM3などの所定のエ
リアにストアされる(S35)。
Cコード生成プログラム及びエラー訂正プログラムを前
記書換え許容領域としてのユーザ領域20Bに保持させ
れば、それらプログラムをユーザが開発して書き込むこ
とができるという自由度を得る。したがって、ユーザデ
ータとECCコードとのフォーマットについてはユーザ
作成のプログラムに依存した任意フォーマットにする方
がユーザにとって都合がよい場合もある。このとき、マ
イクロコンピュータ1のメーカーがそれらECCコード
生成プログラム及びエラー訂正プログラムを提供しよう
とする場合にもユーザの使い勝手を考慮すれば、C言語
のような高級言語で記載されたソースプログラムで与え
るのがよい。そのような任意フォーマットを考慮したと
き、ECCコードの付加及びECCコード付きデータを
用いたエラー訂正処理方式には、例えば図7及び図9で
説明した手順を採用してよい。
去禁止領域としてのブート領域20Aに前記ECCコー
ド生成プログラム及びエラー訂正プログラムを格納する
ことを想定する。この場合には、ブート領域20Aに一
旦書き込まれたプログラムの書換えは原則不可能である
から、望ましくは、それらプログラムはマイクロコンピ
ュータ1のメーカが書き込むのがよい。そうであるな
ら、ユーザデータとECCコードとのフォーマットに関
しても、ユーザに対する自由度の保証という観点は低
く、逆にユーザの負担軽減という観点より、固定フォー
マットを採用する方が得策であると考えられる。前記E
CCコード生成プログラムは、ECCコードを生成した
後、生成したECCコードとそれに対応するデータとを
規定のフォーマットに従いECCコード付加データとし
て前記不揮発性メモリの一部の記憶領域に格納し、エラ
ー訂正プログラムは前記規定のフォーマットに従ってE
CCコード付加データを認識すればよい。そのような固
定フォーマットを考慮したとき、ECCコードの付加及
びECCコード付きデータを用いたエラー訂正処理方式
として、例えば図6及び図8で説明した手順を採用すれ
ばよい。前記ECCコード生成プログラム及びエラー訂
正プログラムを図3の(D)で説明したマスクROM8
に格納する場合も同様に考えてよい。
ドプログラムモードについて説明する。この動作モード
は、図3の(B)で説明したように前記ECCコード生
成プログラム及びエラー訂正プログラム等をユーザ領域
20Bに保持させる時に必要な動作モードの一例であ
る。
グラムの手順を説明する。パーソナルコンピュータ又は
EPROMライタ等のホスト装置に書き込み制御プログ
ラムと、前記ECCコード生成プログラム及びエラー訂
正プログラムを用意し、I/O11の所定のポートに接
続する。所定の外部端子を規定の状態にしてマイクロコ
ンピュータ1をブートモードに遷移させる。ブートモー
ドに遷移すると、マイクロコンピュータ1はブート領域
のブートプログラムを実行し、SCI12による通信を
可能とし、ブート領域からRAM3に、フラッシュメモ
リ5のユーザ領域20Bに対する消去プログラムと、S
CI12を介する通信制御プログラムをロードする。つ
いで、ロードされた消去プログラムが実行されてユーザ
領域20Bが全面消去され、前記通信制御プログラムに
よってホストから書き込み制御プログラムがRAM3に
ロードされる。その後、書き込み制御プログラムが実行
され、ホストが保有する前記ECCコード生成プログラ
ム及びエラー訂正プログラム等がユーザ領域20Bに書
き込まれる。
ボードプログラムの手順を説明する。パーソナルコンピ
ュータのようなホスト装置に書き込み・消去制御プログ
ラムと、前記ECCコード生成プログラム及びエラー訂
正プログラムを用意し、また、ユーザ領域20Bにはホ
スト装置と間の転送制御プログラムを予め格納してお
く。先ず、CPU2は割込みに応答し或いはジャン命令
を実行することにより前記転送制御プログラムを実行
し、ホスト装置から書き込み・消去制御プログラムをR
AM3に転送する。次に、RAM3上で書き込み・消去
制御プログラムを実行し、ユーザ領域20Bの必要なエ
リアを消去し、そこに、ホストが保有する前記ECCコ
ード生成プログラム及びエラー訂正プログラムを書き込
む。
ECCコード生成プログラム及びエラー訂正プログラム
の実行速度を向上させる為の一例が示される。即ち、前
記フラッシュメモリ5のブート領域20A(図3の
(C))又はユーザ領域20B(図3の(B))から前
記ECCコード生成プログラム及びエラー訂正プログラ
ムをRAM3の所定のアドレス領域へ転送し、前記CP
U2には前記RAM3に転送された前記ECCコード生
成プログラム及びエラー訂正プログラムを実行させれば
よい。このとき、前記CPU2はリセットの指示に応答
して前記フラッシュメモリ5から前記RAM3への転送
制御プログラムを実行すればよい。そのような転送制御
プログラムは例えばユーザ領域20Bbにおけるユーザ
プログラムとして、或いはブート領域20Aのプログラ
ムとして所定のアドレス領域に格納しておけばよい。こ
の方法は、RAM3のアクセスサイクルがフラッシュメ
モリ5のアクセスサイクルより速い場合において、上記
ECCコード生成プログラム及びエラー訂正プログラム
のCPUによる実行速度を高速にすることができる。
を見掛け上解消するための一例が示される。即ち、前記
CPU2はリセットの指示に応答して、所定のリセット
処理ユーザプログラムを実行し、前記フラッシュメモリ
5の一部の記憶領域20Baから順次ECCコード付加
パラメータデータDATA1を読み出し、読み出したE
CCコード付加パラメータデータDATA1に対し、前
記エラー訂正プログラム22の実行により前記エラー判
定とエラーの訂正を行い、前記エラー判定とエラー訂正
処理を経たパラメータデータDATA2を前記RAM3
に初期的にストアする。その後、CPU2は制御用ユー
ザプログラムにしたがってRAM3から必要なデータを
リードすればよく、リード動作に際してその都度エラー
判定を行なうことを要しない。
22は、図10で示されるように、フラッシュメモリ5
の所定のアドレス領域からRAM3の所定のアドレス領
域へ転送された状態を示しているしている。
ドを見掛け上解消する為の第2の方法の一例が示され
る。上記図11は前記エラー訂正プログラム22をRA
M3のアドレス空間上でCPU2により実行する場合を
示したが、図12はRAM3のリードアクセスサイクル
がフラッシュメモリ5のリードアクセスサイクルより速
くない(短くない)場合に有効な方法が示される。
RAM3のアクセルサイクルとが同一の場合、エラー訂
正プログラム22のCPU2による実行速度は、RAM
3の記憶領域上からエラー訂正プログラムをCPU2で
実行しても、フラッシュメモリの記憶領域上からエラー
訂正プログラムをCPU2で実行しても、その実行速度
はそれほど変わらないと考えられる。
ラッシュメモリ5の一部の記憶領域上にエラー訂正プロ
グラム22を格納し、そのプログラム22をRAM3へ
転送することなくフラッシュメモリ5の上記一部の記憶
領域からCPU2で実行し、フラッシュメモリ5に一部
の記憶領域20Baに格納されたECCコード付加パラ
メータDATA11に対してエラー判定及びエラー訂正
を行ない、エラー判定及びエラー訂正処理の施されたパ
ラメータデータDATA22をRAM3の所定の記憶領
域に格納する。上記エラー訂正プログラムの処理は、上
記図11で説明されたように、フラッシュメモリ5の一
部の領域20Bbに格納されたリセット処理ユーザープ
ログラムが、リセットに応答するCPU2によって実行
される事によって実行される。
次にソフトウェアECC処理の原理的な手法を説明す
る。ECCによる符号化や誤り訂正の公知の手法では例
えばハミングコードの検査行列を用い、誤り訂正ではリ
ードデータとハミングコードの行列演算を積和演算など
を用いて行なうことができる。マイクロコンピュータ1
におけるソフトウェアECC処理では、データをnビッ
トとし、nビットのデータに対するECCコードをmビ
ットとするとき、mビットの相互に異なる2進数をm+
n列に並べた行列テーブルを例えば図3の(C)に例示
されるフラッシュメモリ5の記憶領域20Bbに固定デ
ータとして形成し、前記ECCコード生成プログラム及
びエラー訂正プログラムの処理にその行列テーブルを参
照させる。
ット訂正のための行列テーブル40の一例が示される。
同図の行列テーブルは便宜上生成行列41と検査行列4
2に分けて図示されている。生成行列41における行番
号1〜21、列番号1〜16は、1〜16が16ビット
データに関する番号、17〜21が5ビットのECCコ
ードに関する番号であると理解されたい。検査行列42
における行番号1〜21は生成行列と同意義、列番号1
〜5は5ビットのECCコードに関する番号であると理
解されたい。
成は次のように行なう。例えば16ビットのデータをM
=m15,m14,…,m1,m0に対して5ビットの
ECCコード(検査ビット)P=p4,p3,p2,p
1,p0を生成して21ビットの符号語を生成する。こ
の符号語を生成するには生成行列41とデータMとの行
列演算を行なえばよい。要するに、図14のように生成
行列41とデータMを並べ、データMのビットが“1”
に対応する生成行列41の行を加算すれば良い。ここで
行なう加算は2進数の加算であり、各ビット毎の排他的
論理和(Ex−OR)を計算すればよい。この演算手法
において、元の16ビットのデータMはそのまま残るか
ら、生成行列41におけるECCコード5ビット相当部
分に関して排他的論理和を演算すればよい。例えば、
H’8041(b’1000_0000_0100_0
001)の16ビットデータに対してECCコードを生
成するには、図15に例示されるように、16ビットデ
ータMに対して、前記生成行列41の内、ECCコード
5ビット相当部分に関する行列を抜き出した行列41A
を並べ、データの論理値“1”のビット位置に対応する
前記行列テーブルの列の値を行方向のビット毎に排他的
論理和を演算してECCコードを生成すればよい。図1
6にはここで行う排他的論理和演算のための演算手段を
ECCコード1ビット分の構成を代表として例示する。
図16の構成では、2ビットの排他的論理和演算器43
の出力をディスティネーションレジスタ(Dreg)4
5が受け、排他的論理和演算器43の一方の入力にはD
reg43の出力が帰還され、他方の入力にはソースレ
ジスタ(Sreg)45の出力が与えられる。前記排他
的論理和演算においてDreg43の初期値は“0”で
あり、Sreg43には順次、データの論理値“1”の
ビット位置に対応する前記行列テーブルの列の値が行方
向のビット毎に入力され、排他的論理和演算器43は双
方の入力に対する排他的論理和演算結果をDreg44
にラッチし、これをSreg43の次の出力との排他的
論理和に用いる。最終的にDreg44に得られた結果
が、ECCコードの対応ビットの値になる。
うに、生成行列41は少なくとも図14の列番号17〜
21の部分だけあればよい。
算結果が示される。同図のXe−OR結果が演算された
ECCコードである。H’8041の場合には、M=
b’1000_0000_0100_0001にP=
b’11101を付加したデータC=1000_000
0_0100_0001,11101が、21ビットの
符号語になる。
に対するエラー判定は、前記検査行列42と21ビット
の符号語との積を計算する。実際に積を計算しようとす
れば積和演算による行列演算を行なわなければならな
い。ここでは、図18に例示されるように、検査行列4
2に対して符号語Cを並べ、前記符号語の論理値“1”
のビット位置に対応する前記検査行列42の列の値を行
方向のビット毎に排他的論理和を採る。この排他的論理
和演算は図16で説明したのと同じ手法で行えばよい。
図18の例はフラッシュメモリ5から読み出された符号
語に誤りの無い場合を示しており、上記生成された符号
語C=1000_0000_0100_0001,11
101と同じ符号語が読み出された状態が示されてい
る。
論理和による演算結果が示される。図19の結果の欄に
示された5ビットの値Rltが全ビット論理値“0”の
ときはエラー無と判定され、前記符号語Cに含まれる1
6ビットのデータMが正規データとされる。
した符号語Cerに1ビットの誤りを含む場合が例示さ
れる。図20の結果の欄に示された5ビットの値Rlt
が1ビットでも論理値“1”のときはエラー有りと判定
される。誤りのあるビット位置は、前記検査行列42の
列から、前記排他的論理和によって得られた5ビットの
2進数Rltに一致する列に対応される位置の符号語C
erのビットBerである。この誤りビットBerに対
し、その論理値を反転してエラー訂正を行えばよい。訂
正された符号語に含まれる16ビットのデータMが、訂
正後の正規データとされる。
な1ビットの誤りを生じているとき、エラー判定の演算
結果Rltは検査行列42の何れかの列のビットパター
ンに一致することになる。エラー判定の演算結果Rlt
にそれ以外のビットパターンが現れたときは2ビット以
上の訂正不能な誤りが発生していることになる。図21
にはそのような訂正不能を意味する10種類のビットパ
ターンが示される。検査行列42によるこの例では、そ
れら訂正不能を意味する10種類のビットパターンの値
は10進数で22以上の値にされるようになっているか
ら、訂正不能の判定も容易である。
は積和演算を要する行列演算を直接行わないから、CP
U2若しくはマイクロコンピュータ1は積和演算器を備
えなくとも、ソフトウェアによるECC処理を能率的に
行なうことが可能になる。また、行列テーブルを用いる
から、その都度生成行列や検査行列を生成しなくてもよ
い。
理を実行可能にする例が示される。前記エラー訂正プロ
グラムの実行による前記エラー判定処理において訂正不
能なエラーが発生したき、誤動作防止の観点より、前記
CPU2は、前記エラー訂正プログラムの実行による前
記エラー判定処理において訂正不能なエラーの発生を示
す情報を外部から認識可能にRAM3のフラグ領域FL
G30(或いはフラッシュコントロールモジュール6内
のレジスタFMLCRのリードエラービットRER)に
保持させる。例外処理プログラムのようなユーザプログ
ラムを介してそのフラグ領域FLGを所定インターバル
毎に参照させ、訂正不能なエラー発生を認識したとき、
訂正不能なエラーを発生したデータブロック或いは全て
のデータの書換え、即ち、新たなユーザデータに、EC
Cコードを生成し、これを付加して、領域20Baの所
定エリアに書き込む処理を実行させる。
し進める場合には、前記CPU2は前記エラー訂正プロ
グラムの実行によりエラー訂正可能なデータを検出した
場合にも、それを示す情報を外部から認識可能にRAM
3の所定記憶領域又は所定の汎用レジスタに保持させる
とよい。そのような情報はワーニング情報として利用す
ればよく、例えば所定のユーザプログラムを介してその
情報エリアを定期的に参照させればよい。これにより、
ユーザシステムは、データが壊れかけている、というこ
とを逸早く認識することができ、壊れかけているデータ
の書換え(再書込み)を促してデータの信頼性を更に向
上させることが可能になる。要するに実際にデータエラ
ーを生ずる事態の発生を未然に防止することができる。
は図17で説明した固定フォーマットのユーザデータを
用意してECCコードを生成する処理を具体的に説明す
る。ECCコードの生成前に例えばユーザプログラムに
したがってユーザデータの読み込みとフォーマット展開
が行なわれる。展開されたデータは図23に例示される
ように、ユーザデータ16ビットに対して16ビットの
拡張ビットを割り当て、合計32ビットが一つのECC
データブロックとして符号語領域になる。前記16ビッ
トの拡張ビットには5ビットのECCコード領域の他に
11ビットのワークビット領域が設けられているが、こ
れは、必要なデータブロックをワード境界を単位にアク
セスして得られるようにする実用的な観点を考慮したも
のである。
構成が更に詳細に示される。同図において符号化検査ビ
ットとはECCコードを意味する。同図においてECC
データブロックのビット番号に対応して機能名が割当て
られる。機能名D00〜D15はユーザデータであり、
機能名P00〜P04はECCコードである。
データ)例が示される。同図に示される生成用データは
前記機能名に対応され、夫々テーブル検索アドレス(検
索アドレス)X〜X+14が割当てられている。図25
の生成用データは、要するに図18の検査行列42と実
質的に等しく、この検査行列42の一部が図15で説明
した実質的な生成行列41Aになっている。図25の機
能名D00〜D15の生成用データは図18の列番号1
6〜1のビット列に対応され、図25の機能名P00〜
P04の生成用データは図18の列番号21〜17のビ
ット列に対応されている。図25のテーブルを便宜上E
CCテーブル(ECCTLB)とも記す。
よる処理手順が例示される。ECCコード生成プログラ
ムとそれに先立って実行されるユーザプログラムとの間
のデータ及びアドレスの受け渡しにはCPU2の汎用レ
ジスタ及びフラッシュコントロールモジュール6内のレ
ジスタが利用される。即ち、ユーザプログラムは、フラ
ッシュコントロールモジュール6内のレジスタFMPA
R0に書き込みデータエリアの先頭アドレスをセットす
る。要するに、図23に例示されるところのRAM3に
展開されたデータの先頭アドレスがセットされる。汎用
レジスタR0はユーザ書き込みデータレジスタ、R1は
行列テーブル検索アドレスポインタ、R2は行列テーブ
ル検索ストップ値、R3はユーザ書き込みデータ保存ア
ドレスポインタ、R4はユーザ書き込みデータ保存アド
レスストップ値、R5はビットマスク用データ、R6は
検査ビット生成用変数、R7は論理値“1”のビットが
あるかを検出するための変数、R8はビットに対応する
テーブル値を格納する変数、として利用される。
R0の値をレジスタR3にセットしてRAM3上に展開
されたユーザデータの先頭アドレスをストアする(S4
0)。次に、レジスタR3の値にh’80を加算してR
AM上に展開されたユーザデータのストップアドレスを
レジスタR4にストアする(S41)。そして、レジス
タR3の値がレジスタR4の値に到達するまで、以下の
処理を行う(S42)。すなわち、レジスタR3の値を
利用して先頭16ビットユーザデータをリードしてレジ
スタR0にロードする(S43)。レジスタR1にはE
CCTLBの先頭の検索アドレスXをセットし、レジス
タR2にはそのストップアドレスX+h’10をセット
する(S44)。レジスタR5にビットマスクデータ
h’0001をセットし、レジスタR6にデフォルトデ
ータh’0000をセットする(S46)。そしてレジ
スタR1の値がレジスタR2の値に到達するまで次の処
理を繰り返す(S47)。要するに、レジスタR7にレ
ジスタR5の値をロードし、レジスタR7とレジスタR
0の値に対して論理積をとり、その結果をレジスタR7
に返す(S48)。レジスタR7の値が0より大きいか
を判定する(S49)。ステップS49の判定結果が0
より大きければ、その時のマスクデータR5の論理値
“1”のビット位置と等しいビット位置にR0のユーザ
データも論理値“1”のビットも持つことになる。その
場合にはECCテーブルの生成用データ(Y)をレジス
タR8にストアし(S50)、レジスタR6とR8の値
に対して前記排他的論理和処理を行って、その値をレジ
スタスR6に返す。ステップS49においてR7の値が
0であれば、レジスタR5の値を1ビット左シフトして
マスクビット位置を次のビット位置とし(S52)、レ
ジスタR1にh’01を加算して、ECCTLBの検索
アドレスを次アドレスに進める(S53)。そして再度
ステップS48の処理に戻る。ステップS48〜S53
の処理はECCTLBの検索アドレスがストップアドレ
スになるまで繰り返され(S47)、ここまでの処理に
より、図17で説明したようなECCコードPがレジス
タR6に保持される。そして、次にレジスタR3の値を
1ワード分だけインクリメントし(S54)、レジスタ
R3の値が指すアドレス(RAM3上に展開された図2
3のデータフォーマットの拡張領域)に、レジスタR6
が保有するECCコードをストアする(S55)。そし
て次のユーザデータに対して同様の処理を行う為にレジ
スタR3のアドレスを1ワード分インクリメントする。
上記ステップS43〜S56までの処理をR3<R4に
ななるまで繰り返すことによって、RAM3上に展開さ
れた一群のユーザデータに対してECCコードが付加さ
れる。この後、ECCコード生成プログラムの実行を終
えて、直前のユーザプログラムにリターンする。特に図
示はしないが、リターンされたユーザプログラムは、R
AM3上に展開されたECCコード付加データを、フラ
ッシュメモリ5の所定の領域20Baに書き込む。
26の手順で生成されたECCコード付加データをリー
ドしたときのエラー判定処理の詳細が示される。エラー
判定処理プログラムとそれに先立って実行されるユーザ
プログラムとの間のデータ及びアドレスの受け渡しには
CPU2の汎用レジスタ及びフラッシュコントロールモ
ジュール6内のレジスタが利用される。即ち、ユーザプ
ログラムは、フラッシュコントロールモジュール6内の
レジスタFMPAR0にユーザリードアドレスをセット
する。要するに、図3の領域20Ba中のリードアドレ
スがセットされる。汎用レジスタR0はエラー訂正前の
リードアドレス、R1は検査ビット保存変数、R2はエ
ラー検出用レジスタ、R3はユーザリードアドレス、R
4はECC計算用中間テーブル、R5はECCTLB検
索アドレス、R6はECCTLB検索ストップアドレ
ス、R7はビットマスクデータ、R8は論理値“1”検
出用変数、R9はECCTLBデータ保存用変数、とし
て利用される。
R0のユーザリードアドレスをレジスタR3にセットし
(S60)、このレジスタR3のリードアドレスを利用
してユーザデータをレジスタR0にストアする(S6
1)。更にアドレスを1ワード分インクリメントし(S
62)、後続のECCコードのデータをレジスタR1に
ストアし、且つレジスタR1のデータをレジスタR4に
コピーする(S63)。前記レジスタR4を左に16ビ
ットシフトを行い、そのシフト結果に対してh’001
F0000との論理積を採る。これによってレジスタR
4には、その第17ビット目から第21ビットにECC
コードが配置され、その他のビットを“0”としたデー
タを得る(S64)。更に、レジスタR0の値に対して
h’00000FFFFとの論理積を採り、その結果を
レジスタR0に返し、レジスタR4の値にレジスタレジ
スタR0の値を加えてその演算結果をレジスタR4に返
す(S65)。これにより図示の“1”ビット検索テー
ブルがレジスタR4に得られる。“1”ビット検索テー
ブルにおける未使用エリアは論理値“0”になってい
る。次にレジスタR2を論理値“0”に初期化し(S6
6)、レジスタR5にECCTLBの検索アドレスXを
セットし、レジスタR6に検索ストップアドレスX+
h’16をセットする(S67)。レジスタR7にはビ
ットマスクデータh’00000001をセットする
(S68)。そしてR5の値がR6の値になるまで以下
の処理を繰り返す。即ち、レジスタR8にレジスタR4
の値をセットし、R7とR8の論理積をR8に返し、R
8が0より大きいかを判定する(S71)。ステップS
71の判定結果が0より大きければ、その時のR7のマ
スクデータの論理値“1”のビット位置と等しいビット
位置にR4の符号化データも論理値“1”のビットも持
つことになる。その場合にはECCテーブルECCTL
Bの生成用データ(Y)をレジスタR9にストアし(S
72)、レジスタR2とR9の値に対して前記排他的論
理和処理を行って、その値をレジスタスR2に返す(S
73)。ステップS71においてR8の値が0であれ
ば、レジスタR7の値を1ビット左シフトしてマスクビ
ット位置を次のビット位置とし(S74)、レジスタR
5にh’01を加算して、ECCTLBの検索アドレス
を次アドレスに進める(S75)。そして再度ステップ
S70の処理に戻る。ステップS70〜S77の処理は
ECCTLBの検索アドレスがストップアドレスになる
まで繰り返され(S69)、ここまでの処理により、図
19及び図20で説明したような判定結果Rltがレジ
スタR2に保持される。そして、レジスタR2の値が全
ビット“0”か否かを判定し(S76)、そうでなけれ
ばエラーが有るので、訂正可能な1ビットエラーに対し
て対してはサブルーチンとして後述のエラー訂正処理を
実行する。そして、レジスタFMPDR0が示す領域
に、レジスタR4の下位16ビットの値をストアし(S
7)、レジスタFPFRにパス情報をセットする。尚、
特に図示はしないがステップS76ではエラーが訂正不
能であるか否かも判定し、訂正不能であれば図22で説
明した訂正不能エラー発生の通知処理を行って例外処理
を待ってもよい。
ビットの誤りに対するエラー訂正処理の詳細が示され
る。エラー訂正処理プログラムにおけるCPU2の汎用
レジスタ及びフラッシュコントロールモジュール6内の
レジスタの利用形態はエラー判定処理の場合と同じであ
る。図27において、先ず、レジスタR5にECCTL
Bの先頭検索アドレスXをセットし、レジスタR6にE
CCTLBの検索ストップアドレスをセットする(S8
0)。レジスタR7にビット反転用マスクデータh’0
001をセットする(S81)。そしてR5の値がR6
の値になるまで以下の処理を繰り返す。即ち、レジスタ
R5の検索アドレスに対応する生成用データをECCT
LBからレジスタR9にストアする。そして、R9の値
が前記レジスタR2の判定結果Rltに一致するかが判
別され、一致していれば、その時のR7のビット反転用
マスクデータにおける“1”のビット位置に対応するユ
ーザデータのビット位置に誤りがある。前記エラー判定
処理のステップS77で説明したようにレジスタR4の
下位16ビットを切出して、正規のユーザデータとする
から、そのとき、レジスタR7のマスクデータとレジス
タR4のデータとを対応ビット毎に排他的論理和を採る
ことによって、マスクデータのビット“1”に対応する
ユーザデータのビットだけが論理値反転され、エラー訂
正されたユーザデータがレジスタR4に返される(S8
5)。ステップS84においてR9の値がR2の値に一
致しなければ、レジスタR5にh’01を加算して、E
CCTLBの検索アドレスを次アドレスに進め(S8
6)、レジスタR7のマスクデータを1ビットシフトし
(S87)、再度ステップS83の処理に戻る。ステッ
プS83〜S87の処理はECCTLBの検索アドレス
がストップアドレスになるまで繰り返されて(S8
2)、当該サブルーチンを終了する。このサブルーチン
が終了されたとき、レジスタR4には誤り訂正された正
規のユーザデータを含んでいる。
29にはマルチチップのデータ処理システムが例示され
る。同図に示されるデータ処理システムはデータプロセ
ッサ50とフラッシュッメモリ51が夫々別々に半導体
集積回路化されてバス52で接続され、その他に、単一
又は複数個の半導体集積回路で構成された周辺回路53
がバス52に接続される。データプロセッサ50はCP
U65、RAM66、ROM67、及びI/O68を有
する。フラッシュメモリ51は汎用フラッシュメモリで
あり、フラッシュメモリセルがマトリクス配置されたメ
モリセルアレイ70、XDE・DRV71、YDE7
2、TGN73、VGN74、YSW75、SAA7
6、書き込み・消去制御回路77を有する。フラッシュ
ッメモリ51の基本的な構成は前記フラッシュメモリ5
と同様であるからその詳細な説明は省略するが、書き込
み及び消去を制御するロジック回路として書き込み・消
去制御回路77を専用に備える。フラッシュメモリ51
の動作はCPU65から与えられるコマンド並びにアク
セス制御信号によって決定される。CPU65はフラッ
シュメモリ51の位置部の記憶領域70Eを頻繁に書き
換えるパラメータデータのようなデータの記憶領域とし
て用いる。前述と同様にその領域70Eは他の領域より
も書き換え保証回数を向上させる為にECC処理の対象
とされる。ROM67は前記領域70Eをアクセスして
データ処理を行うユーザプログラム67Pを保有する。
このユーザプログラム67Pは、前記領域70Eにパラ
メータデータを書き込むときに実行されるECCコード
生成プログラム67P1、前記領域70Eから読み出し
たECCコード付加データに対するエラー判定及び誤り
訂正を行う為のエラー訂正プログラム67P2を有す
る。前記ECCコード生成プログラム及びエラー訂正プ
ログラムは所定のユーザプログラムから呼び出されて実
行される。
おいても図1のシングルチップのマイクロコンピュータ
化されたデータ処理システムと同様に、ECCコードに
よる記憶領域の利用の無駄を省いて記憶情報の信頼性を
向上させることができ、ECCコードによる記憶領域の
利用の無駄を省いて記憶情報の書換え保証回数を向上さ
せることが可能であり、デバイスの特性に合ったECC
方式を選択してデータに対するECCコードのオーバヘ
ッドを小さくし記憶領域の利用効率を最大限とすること
が可能である等の効果を得ることができる。
ラッシュメモリ5,51は、1個のフラッシュッメモリ
セルに2ビット以上の記憶情報を保持させることが可能
な多値フラッシュメモリであってもよい。すなわち、1
個のフラッシュメモリセルは、情報記憶に際して複数ビ
ットの書き込みデータで指定される4種類以上の閾値電
圧の中の一つの閾値電圧に設定され、情報読み出しに際
して閾値電圧の状態を対応する複数ビットの記憶情報と
して出力する、1個のフラッシュメモリセルの記憶情報
を複数ビット化したメモリである。ここでは、一つのフ
ラッシュメモリセルに2ビットの情報を書き込むことが
でき、かつその情報を読み出すことができるフラッシュ
メモリを一例とする。このようなフラッシュメモリが実
現しようとする多値情報記憶技術において、一つのメモ
リセルの情報記憶状態は、例えば消去状態(“1
1”)、第1の書き込み状態(“10”)、第2の書き
込み状態(“00”)、第3の書き込み状態(“0
1”)の中から選ばれた一つの状態とされる。全部で4
通りの情報記憶状態は、2ビットのデータによって決定
される状態とされる。即ち、2ビットのデータを一つの
メモリセルで記憶する。この4値のデータと閾値電圧と
の関係は、図30の閾値電圧分布図に示される通りであ
る。フラッシュメモリセルの記憶データの値と閾値電圧
との関係を図30のように規定すると、情報記憶後に、
閾値電圧が不所望に変化しても隣の閾値電圧のデータと
は相互に1ビットしか相違しないようになる。したがっ
て、データエラーを生じても殆どが1ビットエラーにな
り、1ビットエラーに対して訂正可能なECC処理によ
るデータの信頼性を高く維持することが可能になる。換
言すれば、多値フラッシュメモリセルの閾値電圧が近い
ところをデータハミング距離が1になるようにすれば、
相対的に少ないビット数のECCコードで高い信頼性を
得ることができ、書換え保証回数の向上が容易になる。
形態に基づいて具体的に説明したが、本発明はそれに限
定されるものではなく、その要旨を逸脱しない範囲にお
いて種々変更可能であることは言うまでもない。
ィングゲートとコントロールゲートの縦積み構造に限定
されず、MOSトランジスタのゲート電極をフローティ
ングゲート電極とし当該ゲート電極を延在させて形成し
たMOSゲート容量を介してチャネル領域をコントロー
ルゲートに用いるようなデバイス構造などを採用しても
よい。また、不揮発性記憶素子はフラッシュメモリに限
定されず、MNOS(メタル・ナイトライド・オキサイ
ド・セミコンダクタ)トランジスタを記憶素子とするE
EPROM(エレクトリカリ・イレーザブル・アンド・
プログラマブル・リード・オンリ・メモリ)のような不揮
発性メモリ、或いは誘電体メモリ等であってもよい。
プに前記不揮発性メモリ及び中央処理装置が形成された
シングルチップのマイクロコンピュータとして実現する
ことが可能であり、その一方において、前述の如く前記
データ処理システムは、前記不揮発性メモリ及び中央処
理装置が夫々別々の半導体チップに形成されたマルチチ
ップ形態で実現してもよい。そして、データ処理システ
ムは、シングルチップ及びマルチチップのマイクロコン
ピュータに限定されず、フラッシュメモリを内蔵したグ
ラフィックスコントローラ、DRAMを専用ロジック回
路と共に混載したシステムLSI、その他のマルチチッ
プによる電子回路に広く適用する事ができる。
的なものによって得られる効果を簡単に説明すれば下記
の通りである。
ードの付加や誤り訂正を行なって書換え保証回数を向上
させるから、記憶領域に拘わらず全てのライトデータに
対して区別なくECCコードを付加する構成に比べて、
実質的に無用のECCコードによる記憶領域の無駄を省
くことができる。更に、ECC処理をソフトウェアで対
処するから不揮発性メモリのデバイス特性に合ったEC
C訂正能力を容易に選択することができる。このよう
に、データ処理システムにおいてECCコードによる記
憶領域の利用の無駄を省いて不揮発性メモリに記憶され
た情報の信頼性を向上させることができ、また、ECC
コードによる記憶領域の利用の無駄を省いて不揮発性メ
モリにおける記憶情報の書換え保証回数を向上させるこ
とができる。更に、デバイスの特性に合ったECC方式
を選択でき、データに対するECCコードのオーバヘッ
ドを小さくして記憶領域の利用効率を最大限とすること
が可能である。
誤り判定及び訂正の処理によるデータリード動作の遅延
を抑えることが可能である。
の生成を効率的に行なうことができ、ECCコードが付
加されたデータの誤り判定を効率的に行なうことができ
る。
コンピュータのブロック図である。
コード生成プログラム及びエラー訂正プログラムの記憶
領域のマッピング例を示す説明図である。
のビット数による誤り訂正能力とオーバーヘッドとの関
係を例示する説明図である。
タ中に対応付けての配列するデータフォーマットと、ユ
ーザデータとECCコードとを別の配列データとして対
応付けるデータフォーマットとを例示する説明図であ
る。
ータ中に対応付けて書き込むときの処理手順を例示する
説明図である。
タとして対応付けて書き込むときの処理手順を例示する
説明図である。
ード付きデータをリードするときの処理手順を例示する
説明図である。
別々の配列データとされるECCコード付きデータをリ
ードするときの処理手順を例示する説明図である。
プログラムの実行速度を向上させる為の一例を示す説明
図である。
消するための一例を示す説明図である。
消するための別の一例を示す説明図である。
めの行列テーブル40の一例を示す説明図である。
理的手法の説明図である。
的論理和を用いてECCコードを生成する具体例の説明
図である。
コード1ビット分の構成を代表として例示するブロック
図である。
体的な演算結果であるECCコードを例示する説明図で
ある。
ある。
誤り無の判定結果が例示される説明図である。
が得られる場合を例示する説明図である。
る時の判定結果を列挙する説明図である。
にする例を示す説明図である。
される固定フォーマットの一例を示す説明図である。
する説明図である。
ブルを例示する説明図である。
を例示するフローチャートである。
データをリードしたときのエラー判定処理の詳細を示す
フローチャートである。
細を示すフローチャートである。
るブロック図である。
と閾値電圧との関係を例示する説明図である。
行列 P ECCコード C 符号語 Rlt エラー判定の演算結果 Cer 1ビットの誤りを含む符号語 Ber 誤りビット 50 データプロセッサ 51 フラッシュメモリ 65 CPU 66 RAM 67 ROM 70 メモリセルアレイ 70E 相対的に書換え保証回数の高い記憶領域
Claims (24)
- 【請求項1】 書き換え可能な不揮発性メモリと、中央
処理装置とを有し、前記中央処理装置は、所定の処理を
実行し、前記不揮発性メモリの指定された一部の記憶領
域の書換え保証回数を当該不揮発性メモリのその他の記
憶領域の書換え保証回数よりも向上させる処理を行なう
ものであることを特徴とするデータ処理システム。 - 【請求項2】 書き換え可能な不揮発性メモリと、中央
処理装置とを有し、前記中央処理装置は、所定の処理を
実行して、前記不揮発性メモリの指定された一部の記憶
領域に対するライトデータに誤り訂正情報を生成して付
加し、前記指定された一部の記憶領域からのリードデー
タに対し誤り訂正情報による誤り判定と誤り訂正が可能
であることを特徴とするデータ処理システム。 - 【請求項3】 1個の半導体チップに前記不揮発性メモ
リ及び中央処理装置が形成されたシングルチップのマイ
クロコンピュータであることを特徴とする請求項1又は
2記載のデータ処理システム。 - 【請求項4】 前記不揮発性メモリ及び中央処理装置が
夫々別々の半導体チップに形成されたマルチチップ形態
であることを特徴とする請求項1又は2記載のデータ処
理システム。 - 【請求項5】 前記所定の処理は、前記不揮発性メモリ
の指定された一部の記憶領域への書き込みデータに対し
て誤り訂正情報を生成する誤り訂正情報生成プログラム
と、前記指定された一部の記憶領域から読み出された誤
り訂正情報付加データに対するエラー判定とエラーの訂
正を行なうエラー訂正プログラムであることを特徴とす
る請求項1又は2記載のデータ処理システム。 - 【請求項6】 前記データをnビットとし、nビットの
データに対する誤り訂正情報をmビットとするとき、m
ビットの相互に異なる2進数をm+n列に並べた行列テ
ーブルの記憶領域を有し、前記行列テーブルは前記誤り
訂正情報生成プログラム及びエラー訂正プログラムによ
って参照されるものであることを特徴とする請求項5記
載のデータ処理装置。 - 【請求項7】 前記中央処理装置によってアクセス可能
なマスクROMを有し、前記マスクROMは、前記誤り
訂正情報生成プログラム及びエラー訂正プログラムを保
有するものであることを特徴とする請求項5記載のデー
タ処理システム。 - 【請求項8】 前記不揮発性メモリのその他の記憶領域
は、前記誤り訂正情報生成プログラム及びエラー訂正プ
ログラムの格納領域を有して成るものであることを特徴
とする請求項5記載のデータ処理システム。 - 【請求項9】 前記不揮発性メモリのその他の記憶領域
は消去動作が禁止された消去禁止領域と消去及び書き込
みが許容された書換え許容領域とを有し、前記前記誤り
訂正情報生成プログラム及びエラー訂正プログラムの格
納領域は前記消去禁止領域に割当てられて成るものであ
ることを特徴とする請求項8記載のデータ処理システ
ム。 - 【請求項10】 前記誤り訂正情報生成プログラムは、
誤り訂正情報を生成した後、生成した誤り訂正情報とそ
れに対応するデータとを規定のフォーマットに従い誤り
訂正情報付加データとして前記指定された一部の記憶領
域に格納するものであり、前記エラー訂正プログラムは
前記規定のフォーマットに従って誤り訂正情報付加デー
タを認識するものであることを特徴とする請求項7又は
9記載のデータ処理システム。 - 【請求項11】 前記不揮発性メモリのその他の記憶領
域は消去動作が禁止された消去禁止領域と消去及び書き
込みが許容された書換え許容領域とを有し、前記誤り訂
正情報生成プログラム及びエラー訂正プログラムの格納
領域は前記書換え許容領域に割り当てられて成るもので
あることを特徴とする請求項8記載のデータ処理システ
ム。 - 【請求項12】 前記不揮発性メモリから前記誤り訂正
情報生成プログラム及びエラー訂正プログラムが転送さ
れるRAMを有し、前記中央処理装置は前記RAMに転
送された前記誤り訂正情報生成プログラム及びエラー訂
正プログラムを実行するものであることを特徴とする請
求項5記載のデータ処理システム。 - 【請求項13】 前記中央処理装置はリセットの指示に
応答して前記不揮発性メモリから前記RAMに前記誤り
訂正情報生成プログラム及びエラー訂正プログラムを転
送するものであることを特徴とする請求項12記載のデ
ータ処理システム。 - 【請求項14】 前記中央処理装置によってアクセス可
能なRAMを有し、前記中央処理装置はリセットの指示
に応答して、前記不揮発性メモリの一部の記憶領域から
順次誤り訂正情報付加データを読み出し、読み出した誤
り訂正情報付加データに対し、前記エラー訂正プログラ
ムの実行により前記エラー判定とエラーの訂正を行い、
前記エラー判定とエラーの訂正処理を経たデータを前記
RAMに初期的にストアするものであることを特徴請求
項5又は7記載のデータ処理システム。 - 【請求項15】 前記中央処理装置は、前記エラー訂正
プログラムの実行による前記エラー判定処理において訂
正不能なエラーの発生を示す情報を外部から認識可能に
保持する手段を有して成るものであることを特徴とする
請求項5又は7記載のデータ処理システム。 - 【請求項16】 演算制御装置のアドレス空間に書換え
保証回数の低い第1記憶領域と、書換え保証回数の高い
第2記憶領域とを有し、前記第1記憶領域は、前記第2
記憶領域への書き込みデータに対してECCコードを生
成するECCコード生成プログラムと、前記第2記憶領
域から読み出されたECCコード付加データに対するエ
ラー判定とエラーの訂正を行なうエラー訂正プログラム
とを有し、前記演算制御装置は、前記第2記憶領域にデ
ータを格納するとき、前記ECCコード生成プログラム
を実行するものであることを特徴とするデータ処理シス
テム。 - 【請求項17】 前記演算制御装置は、前記第2記憶領
域からデータを読み出すとき、前記エラー訂正プログラ
ムを実行するものであることを特徴とする請求項16記
載のデータ処理システム。 - 【請求項18】 前記演算制御装置は、所定の動作モー
ドに応答して前記エラー訂正プログラムを実行して前記
第2記憶領域のデータを予めRAMに順次転送可能であ
ることを特徴とする請求項16記載のデータ処理システ
ム。 - 【請求項19】 前記第1記憶領域はマスクROMであ
り、前記第2記憶領域は電気的に書き換え可能なフラッ
シュメモリであることを特徴とする請求項16記載のデ
ータ処理システム。 - 【請求項20】 前記第1記憶領域及び第2記憶領域は
電気的に書換え可能なフラッシュメモリであり、前記フ
ラッシュッメモリは当該フラッシュメモリに対する書き
込み消去プログラムを保有し、更に、前記フラッシュメ
モリから前記書き込み消去プログラムが転送されるRA
Mを有し、前記演算制御装置は特定の動作モードに応答
してRAM上の前記書き込み消去プログラムを実行可能
であることを特徴とする請求項16記載のデータ処理シ
ステム。 - 【請求項21】 nビットのデータに対してECCコー
ドをmビットとするとき、mビットの相互に異なる2進
数をm+n列に並べた行列テーブルを用いるデータ処理
方法であって、ECCコードの生成では、データの論理
値“1”のビット位置に対応する前記行列テーブルの列
の値を行方向のビット毎に排他的論理和を採り、これに
よって得られたmビットの値をECCコードとし、デー
タにECCコードを付加してm+nビットの符号語を生
成することを特徴とするデータ処理方法。 - 【請求項22】 前記符号語の論理値“1”のビット位
置に対応する前記行列テーブルの列の値を行方向のビッ
ト毎に排他的論理和を採り、これによって得られたmビ
ットの値が全ビット論理値“0”のときはエラー無と判
定して前記符号語のnビットのデータを正規データと
し、前記排他的論理和によって得られたmビットの値が
1ビットでも論理値“1”のときはエラー有りと判定し
て、前記行列テーブルの列から、前記排他的論理和によ
って得られたmビットの2進数に一致する列を検索し、
検索された列に対応される位置の符号語のビットを論理
値反転して訂正し、訂正された符号語のnビットのデー
タを正規データとする、ことを特徴とする請求項21記
載のデータ処理方法。 - 【請求項23】 前記中央処理装置は、前記エラー訂正
プログラムの実行中にエラー訂正可能なデータを検出し
た場合、その検出結果に対応する情報を保持する記憶回
路を有することを特徴とする請求項5又は7記載のデー
タ処理システム。 - 【請求項24】 上記検出結果に対応する情報は、ワー
ニング情報として利用されることを特徴とする請求項2
3記載のデータ処理システム。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000275983A JP2002091831A (ja) | 2000-09-12 | 2000-09-12 | データ処理システム及びデータ処理方法 |
US09/938,629 US6941505B2 (en) | 2000-09-12 | 2001-08-27 | Data processing system and data processing method |
KR1020010052503A KR20020021001A (ko) | 2000-09-12 | 2001-08-29 | 데이터 처리시스템 및 데이터 처리방법 |
TW090121498A TWI242128B (en) | 2000-09-12 | 2001-08-30 | Data processing system and data processing method |
US11/200,104 US20050281113A1 (en) | 2000-09-12 | 2005-08-10 | Data processing system and data processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000275983A JP2002091831A (ja) | 2000-09-12 | 2000-09-12 | データ処理システム及びデータ処理方法 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006318039A Division JP2007104708A (ja) | 2006-11-27 | 2006-11-27 | データ処理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2002091831A true JP2002091831A (ja) | 2002-03-29 |
Family
ID=18761523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000275983A Pending JP2002091831A (ja) | 2000-09-12 | 2000-09-12 | データ処理システム及びデータ処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2002091831A (ja) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005208747A (ja) * | 2004-01-20 | 2005-08-04 | Canon Inc | 情報処理装置及び情報処理方法 |
JP2008508632A (ja) * | 2004-08-02 | 2008-03-21 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | データ記憶及び再生装置 |
WO2008126609A1 (ja) * | 2007-04-04 | 2008-10-23 | Sharp Kabushiki Kaisha | 誤り検出制御システム |
WO2009087970A1 (ja) * | 2008-01-11 | 2009-07-16 | Nidec Sankyo Corporation | メモリ監視方法 |
US7675767B2 (en) | 2005-11-15 | 2010-03-09 | Nec Electronics Corporation | Semiconductor memory device for achieving high reliability without increasing process complexity and cost |
JP2010092574A (ja) * | 2008-10-12 | 2010-04-22 | Kyoto Software Research Inc | フラッシュファイルシステムの誤り訂正機能 |
JP2010287305A (ja) * | 2009-06-10 | 2010-12-24 | Numonyx Bv | 多値レベルメモリデバイスにおける増大した記憶容量のための誤り訂正符号 |
JP2011039585A (ja) * | 2009-08-06 | 2011-02-24 | Sony Corp | 不揮発性ランダムアクセスメモリおよび不揮発性メモリシステム |
JP2012038385A (ja) * | 2010-08-06 | 2012-02-23 | Renesas Electronics Corp | データ処理装置 |
WO2012081733A1 (en) * | 2010-12-15 | 2012-06-21 | Kabushiki Kaisha Toshiba | Semiconductor storage device |
JP2012174088A (ja) * | 2011-02-23 | 2012-09-10 | Hitachi Ltd | メモリ制御装置 |
US8412879B2 (en) | 2002-10-28 | 2013-04-02 | Sandisk Technologies Inc. | Hybrid implementation for error correction codes within a non-volatile memory system |
JP2014170578A (ja) * | 2009-04-30 | 2014-09-18 | International Business Maschines Corporation | メモリ・アクセス方法およびシステム |
US8910017B2 (en) | 2012-07-02 | 2014-12-09 | Sandisk Technologies Inc. | Flash memory with random partition |
WO2015098894A1 (ja) * | 2013-12-27 | 2015-07-02 | 住友電装株式会社 | データ記憶装置、車載データ記憶装置及びデータ記憶方法 |
CN114143051A (zh) * | 2021-11-19 | 2022-03-04 | 江苏林洋能源股份有限公司 | 一种智能电表基于性能调整tls协议选择的方法 |
-
2000
- 2000-09-12 JP JP2000275983A patent/JP2002091831A/ja active Pending
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8412879B2 (en) | 2002-10-28 | 2013-04-02 | Sandisk Technologies Inc. | Hybrid implementation for error correction codes within a non-volatile memory system |
JP2005208747A (ja) * | 2004-01-20 | 2005-08-04 | Canon Inc | 情報処理装置及び情報処理方法 |
JP4745613B2 (ja) * | 2004-01-20 | 2011-08-10 | キヤノン株式会社 | 情報処理装置及び情報処理方法 |
JP2008508632A (ja) * | 2004-08-02 | 2008-03-21 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | データ記憶及び再生装置 |
US7675767B2 (en) | 2005-11-15 | 2010-03-09 | Nec Electronics Corporation | Semiconductor memory device for achieving high reliability without increasing process complexity and cost |
US8176387B2 (en) | 2007-04-04 | 2012-05-08 | Sharp Kabushiki Kaisha | Error detection control system |
WO2008126609A1 (ja) * | 2007-04-04 | 2008-10-23 | Sharp Kabushiki Kaisha | 誤り検出制御システム |
WO2009087970A1 (ja) * | 2008-01-11 | 2009-07-16 | Nidec Sankyo Corporation | メモリ監視方法 |
JP2009169550A (ja) * | 2008-01-11 | 2009-07-30 | Nidec Sankyo Corp | メモリ監視方法 |
JP2010092574A (ja) * | 2008-10-12 | 2010-04-22 | Kyoto Software Research Inc | フラッシュファイルシステムの誤り訂正機能 |
JP2014170578A (ja) * | 2009-04-30 | 2014-09-18 | International Business Maschines Corporation | メモリ・アクセス方法およびシステム |
JP2010287305A (ja) * | 2009-06-10 | 2010-12-24 | Numonyx Bv | 多値レベルメモリデバイスにおける増大した記憶容量のための誤り訂正符号 |
JP2011039585A (ja) * | 2009-08-06 | 2011-02-24 | Sony Corp | 不揮発性ランダムアクセスメモリおよび不揮発性メモリシステム |
JP2012038385A (ja) * | 2010-08-06 | 2012-02-23 | Renesas Electronics Corp | データ処理装置 |
WO2012081733A1 (en) * | 2010-12-15 | 2012-06-21 | Kabushiki Kaisha Toshiba | Semiconductor storage device |
JP2012174088A (ja) * | 2011-02-23 | 2012-09-10 | Hitachi Ltd | メモリ制御装置 |
US8910017B2 (en) | 2012-07-02 | 2014-12-09 | Sandisk Technologies Inc. | Flash memory with random partition |
WO2015098894A1 (ja) * | 2013-12-27 | 2015-07-02 | 住友電装株式会社 | データ記憶装置、車載データ記憶装置及びデータ記憶方法 |
CN114143051A (zh) * | 2021-11-19 | 2022-03-04 | 江苏林洋能源股份有限公司 | 一种智能电表基于性能调整tls协议选择的方法 |
CN114143051B (zh) * | 2021-11-19 | 2024-02-23 | 江苏林洋能源股份有限公司 | 一种智能电表基于性能调整tls协议选择的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6941505B2 (en) | Data processing system and data processing method | |
JP2002091831A (ja) | データ処理システム及びデータ処理方法 | |
US9262266B2 (en) | Nonvolatile memory devices with age-based variability of read operations and methods of operating same | |
US7813187B2 (en) | Multi-bit flash memory device and program method thereof | |
US8335960B2 (en) | Method and system for detecting and correcting errors while accessing memory devices in microprocessor systems | |
TWI490872B (zh) | 提供快速程式與讀取之非揮發性記憶體元件、系統及方法 | |
CN102132354B (zh) | 闪存中的数据的快速低功率读取 | |
US8341491B2 (en) | System and method for providing data integrity in a non-volatile memory system | |
US20080072119A1 (en) | Allowable bit errors per sector in memory devices | |
US6604214B1 (en) | One-chip microcomputer capable of internally producing ECC data | |
KR20070097450A (ko) | 멀티-비트 셀 플래시 장치용으로 설계되지 않은 시스템에서멀티-비트 셀 플래시 장치를 사용하기 위한 방법 | |
US8164954B2 (en) | Flash memory device and program method thereof | |
JP2023120450A (ja) | 半導体記憶装置および誤り検出訂正方法 | |
US6738894B1 (en) | Data processor | |
JP2007104708A (ja) | データ処理方法 | |
US20100115225A1 (en) | Memory Device and Memory System Including the Same | |
CN111290876B (zh) | 存储器系统及其操作方法 | |
JP2008251154A (ja) | 不揮発性半導体記憶装置 | |
US11842067B2 (en) | Memory controller, memory system including the same, and method of operating the memory system | |
US12051480B2 (en) | Semiconductor storage device | |
US11782646B2 (en) | Memory device and memory system having the memory device | |
US20230385149A1 (en) | Data memory emulation in flash memory | |
CN117130948A (zh) | 闪存存储器中数据存储器模拟 | |
JP4352584B2 (ja) | 記憶回路装置 | |
JPH06119239A (ja) | マイクロコンピュータ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040227 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060912 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060926 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061127 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070227 |