(57)【特許請求の範囲】
【請求項１】
外部とのデータの入出力を行うための外部インタフェース手段と、入力されたデータに対して第１エラー訂正符号を生成するための第１エラー訂正符号生成手段と、前記第１エラー訂正符号を用いてエラー検出およびエラー訂正を行うための第１エラー訂正手段とを備えたコントローラ部、および、
前記コントローラ部から渡されたデータおよび第１エラー訂正符号に対して該第１エラー訂正符号と同じガロア体上のＢＣＨ符号であり且つ連続した根を持つ第２エラー訂正符号を生成するための第２エラー訂正符号生成手段と、データおよび第１エラー訂正符号および第２エラー訂正符号を記憶するためのメモリ素子と、そのメモリ素子から読み出したデータおよび第１エラー訂正符号および第２エラー訂正符号を用いてエラー検出およびエラー訂正を行うための第２エラー訂正手段と、その第２エラー訂正手段でデータおよび第１エラー訂正符号を訂正できたか否かの情報とエラー訂正計算途中の計算値情報と検出した誤り位置と誤り値とを前記第１エラー訂正手段に通知するための訂正情報通知手段と、前記メモリ素子から読み出したデータおよび第１エラー訂正符号または前記第２エラー訂正手段で訂正したデータおよび第１エラー訂正符号を前記第１エラー訂正手段に送るデータ送り手段とを備えた半導体メモリ部を具備し、
前記第１エラー訂正手段は、前記データ送り手段により送られたデータおよび第１エラー訂正符号を用いてエラーを検出し且つ前記第２エラー訂正手段でデータを訂正できていたなら前記誤り位置と前記誤り値とを用いて訂正前のデータを復元し、その復元したデータおよび第１エラー訂正符号に対してエラーを検出したなら該復元したデータおよび前記第１エラー訂正符号と前記計算値情報とを用いて該復元したデータのエラー訂正を行い、一方、前記第１エラー訂正符号を用いてエラーを検出し且つ前記第２エラー訂正手段でデータを訂正できていなかったら該未訂正のデータおよび前記第１エラー訂正符号と前記計算値情報とを用いて該未訂正データのエラー訂正を行い、それらのエラー訂正が行えなかったなら前記復元したデータまたは前記未訂正のデータに対して前記第１エラー訂正符号を用いてエラー訂正を行いうることを特徴とする記録再生装置。
【請求項２】
外部とのデータの入出力を行うための外部インタフェース手段と、入力されたデータに対して第１エラー訂正符号を生成するための第１エラー訂正符号生成手段と、前記第１エラー訂正符号を用いてエラー検出およびエラー訂正を行うための第１エラー訂正手段とを備えたコントローラ部、および、
前記コントローラ部から渡されたデータおよび第１エラー訂正符号に対して該第１エラー訂正符号と同じガロア体上のＢＣＨ符号であり且つ連続した根を持つ第２エラー訂正符号を生成するための第２エラー訂正符号生成手段と、データおよび第１エラー訂正符号および第２エラー訂正符号を記憶するためのメモリ素子と、そのメモリ素子から読み出したデータおよび第１エラー訂正符号および前記第２エラー訂正符号を用いてエラー検出およびエラー訂正を行うための第２エラー訂正手段と、その第２エラー訂正手段でエラーを検出したか否かの情報とデータおよび第１エラー訂正符号を訂正できたか否かの情報とエラー訂正計算途中の計算値情報とを前記第１エラー訂正手段に通知するための検出・訂正情報通知手段と、前記メモリ素子から読み出したデータと第１エラー訂正符号および前記第２エラー訂正手段で訂正したデータと第１エラー訂正符号を前記第１エラー訂正手段に送るデータ送り手段とを備えた半導体メモリ部を具備し、
前記第１エラー訂正手段は、前記第２エラー訂正手段でエラーを検出せず且つ前記メモリ素子から読み出したデータについて前記第１エラー訂正符号を用いてエラーを検出したか、又は、前記第２エラー訂正手段でデータを訂正できず且つ前記メモリ素子から読み出したデータについて前記第１エラー訂正符号を用いてエラーを検出したか、又は、前記第２エラー訂正手段で訂正したデータについて前記第１エラー訂正符号を用いてエラーを検出したなら、前記メモリ素子から読み出したデータに対し前記第１エラー訂正符号と前記計算値情報とを用いてエラー訂正を行い、そのエラー訂正が行えなかったなら前記メモリ素子から読み出したエラー訂正前のデータに対して前記第１エラー訂正符号を用いてエラー訂正を行いうることを特徴とする記録再生装置。
【請求項３】
請求項１または請求項２に記載の記録再生装置において、前記ＢＣＨ符号は、ＲＳ符号であることを特徴とする記録再生装置。
【請求項４】
請求項１から請求項３のいずれかに記載の記録再生装置において、前記計算値情報は、前記第２エラー訂正符号の符号多項式を生成多項式で割った余りである剰余多項式または前記エラー訂正符号の符号多項式に生成多項式の根を代入して得られるシンドロームであることを特徴とする記録再生装置。
【請求項５】
外部から入力されたデータおよび第１エラー訂正符号に対して該第１エラー訂正符号と同じガロア体上のＢＣＨ符号であり且つ連続した根を持つ第２エラー訂正符号を生成するための第２エラー訂正符号生成手段と、データおよび第１エラー訂正符号および第２エラー訂正符号を記憶するためのメモリ素子と、そのメモリ素子から読み出したデータおよび第１エラー訂正符号および第２エラー訂正符号を用いてエラー検出およびエラー訂正を行うための第２エラー訂正手段と、その第２エラー訂正手段でデータおよび第１エラー訂正符号を訂正できたか否かの情報とエラー訂正計算途中の計算値情報と検出した誤り位置と誤り値とを外部に通知するための訂正情報通知手段と、前記メモリ素子から読み出したデータおよび第１エラー訂正符号または前記第２エラー訂正手段で訂正したデータおよび第１エラー訂正符号を外部に送るデータ送り手段とを備えたことを特徴とする半導体メモリ。
【請求項６】
外部から入力されたデータおよび第１エラー訂正符号に対して該第１エラー訂正符号と同じガロア体上のＢＣＨ符号であり且つ連続した根を持つ第２エラー訂正符号を生成するための第２エラー訂正符号生成手段と、データおよび第１エラー訂正符号および第２エラー訂正符号を記憶するためのメモリ素子と、そのメモリ素子から読み出したデータおよび第１エラー訂正符号および第２エラー訂正符号を用いてエラー検出およびエラー訂正を行うための第２エラー訂正手段と、その第２エラー訂正手段でエラーを検出したか否かの情報とデータおよび第１エラー訂正符号を訂正できたか否かの情報とエラー訂正計算途中の計算値情報とを外部に通知するための検出・訂正情報通知手段と、前記メモリ素子から読み出したデータと第１エラー訂正符号および前記第２エラー訂正手段で訂正したデータと第１エラー訂正符号を外部に送るデータ送り手段とを備えたことを特徴とする半導体メモリ。
【請求項７】
請求項５または請求項６に記載の半導体メモリにおいて、前記ＢＣＨ符号は、ＲＳ符号であることを特徴とする半導体メモリ。
【請求項８】
請求項５から請求項７のいずれかに記載の半導体メモリにおいて、前記計算値情報は、前記第２エラー訂正符号の符号多項式を生成多項式で割った余りである剰余多項式または前記エラー訂正符号の符号多項式に生成多項式の根を代入して得られるシンドロームであることを特徴とする半導体メモリ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記録再生装置および半導体メモリに関し、さらに詳しくは、半導体メモリが持つエラー訂正能力とそのコントローラが持つエラー訂正能力とを共に活用することが出来る記録再生装置および半導体メモリ、並びに、使用される装置におけるデータ処理単位よりも大きいデータ消去単位を持つ場合でも処理を簡単化できる半導体メモリ、並びに、ある程度の信頼性を有し且つ安価な記録再生装置に関する。
【０００２】
【従来の技術】
不揮発性半導体メモリを用いた記録再生装置の一例であるフラッシュメモリディスクは、特開平９-３０５４９７号公報の図１に示されているように、フラッシュメモリチップと、インターフェイスチップと、マイコンなどにより構成されている。
前記フラッシュメモリチップは、書き込み回数が一定回数以上になるとエラー率が急激に増加するという性質があるため、前記インターフェースチップやマイコンなどにエラー訂正機能（エラー検出機能も含む）を持たせて、フラッシュメモリディスクとしての信頼性を保持している。
【０００３】
前記フラッシュメモリチップは、単体で使用される場合も多い。そのため、特開平３-５９９５号公報に示されるように、フラッシュメモリチップ自身にもエラー訂正機能を持たせるようにして、フラッシュメモリチップ自身の信頼性もある程度保持している。
【０００４】
他方、特開昭５９−１６５５４１号公報，特開昭６２−７３３３６号公報，特開平１−１５５７２１号公報などに示されているように、大型磁気ディスクの可変長フォーマット方式において、連接符号を用い、付加するエラー訂正符号の冗長バイト数を少なくし、エラー訂正効率を上げる方法が知られている。
【０００５】
【発明が解決しようとする課題】
エラー訂正機能を持ったフラッシュメモリチップを、フラッシュメモリディスクなど、フラッシュメモリチップ単体が持つ信頼性よりもさらに高い信頼性を要求されるシステムに用いる場合、フラッシュメモリチップ外に高機能のエラー訂正機能を行うコントローラを設ける必要がある。
その場合、フラッシュメモリチップのエラー訂正機能を使用すると、該エラー訂正機能による誤訂正を生じて、かえって全体の信頼性が低下することがあるため、フラッシュメモリチップのエラー訂正機能を使用できない問題点がある。
例えば、１バイトのエラー訂正が可能なエラー訂正機能を持つフラッシュメモリチップを、３バイトまでのエラー訂正が必要なシステムに用いた場合には、３バイトまでのエラー訂正が可能なコントローラを付加する。ここで、フラッシュメモリチップのエラー訂正機能を使用しなければ、３バイトのエラーがフラッシュメモリチップ上に発生したときでも、コントローラによりエラー訂正が可能となる。ところが、フラッシュメモリチップのエラー訂正機能を使用すると、そのエラー訂正能力を超えているため、誤訂正を起こして、３バイトのエラーを４バイトのエラーに書き換えてしまう可能性がある。すると、コントローラのエラー訂正能力をも超えてしまうため、全体として３バイトのエラーすら訂正できない結果を生じてしまう。
【０００６】
しかし、フラッシュメモリチップのエラー訂正機能を使用しない場合、無駄な機能を備えている分、全体の回路面積が無駄に大きくなり、システム全体も無駄に割高になる問題点がある。
また、エラー訂正機能を持ったフラッシュメモリチップの回路をコアにして、より信頼性の高いエラー訂正機能を有するシステムを設計しようとすると、図１５に示すように、フラッシュメモリチップのエラー訂正機能ブロックの削除（１５０１）、フラッシュメモリチップのインターフェイスブロックの再設計（１５０２）、コントローラ及びそのエラー訂正機能ブロックの設計（１５０３）といった手順が必要となり、作業の負担が大きくなり、コストが高くなる問題点がある。また、例えば、「メモリスティック」やＭＭＣ（ＭultiＭediaＣard）などでは、小型軽量化のために、フラッシュメモリチップとコントローラとを１チップ化しているが、その設計を行う場合、やはり図１５に示す手順が必要となるため、作業の負担が大きくなり、チップのコストが高くなってしまう問題点がある。
そこで、本発明の第１の目的は、エラー訂正機能を持った半導体メモリをコアとする記録再生装置であって、半導体メモリのエラー訂正機能を活用できると共にその信頼性よりも高い信頼性を得ることが出来る記録再生装置およびその記録再生装置に好適に使用しうる半導体メモリを提供し、上記問題点を解消する（半導体メモリチップのエラー訂正機能を無駄にしない。半導体メモリチップをコアにしたシステム／チップの設計を容易にする）ことにある。
【０００７】
次に、フラッシュメモリカード（フラッシュメモリチップを用いたメモリカード）を使用する携帯端末やＭＰＥＧカメラなどでは、５１２バイトをデータ処理単位とするものが多い。
これに対して、フラッシュメモリチップにおけるデータ消去単位は、回路の削減とバイト当たりの高速化のために、１０２４バイト，２０４８バイトなどと５１２バイトよりも大きくなる傾向にある。その場合、大きくなったデータ消去単位毎にエラー訂正符号を処理することになる。
しかし、データ処理単位である５１２バイトのデータの読み出しのたびに、データの消去単位である１０２４バイト以上の全データを読み出してエラー訂正符号をチェックしなければならなくなり、また、データ処理単位である５１２バイトのデータの書き換えのたびに、データ消去単位である１０２４バイト以上の全データを読み出して、エラー訂正符号を再計算しなければならなくなり、処理が煩雑となる問題点がある。
そこで、本発明の第２の目的は、使用される装置におけるデータ処理単位よりも大きいデータ消去単位を持つ場合でも処理を簡単化できる半導体メモリを提供することにある。
【０００８】
次に、高い信頼性を得るためのエラー訂正機能では特殊な演算を高速に行わなければならないため、高機能のコントローラを要し、高価となる。
しかし、携帯用音再生装置などで使用するフラッシュメモリカードでは、信頼性よりも、安価であることが要求される。
そこで、本発明の第３の目的は、ある程度の信頼性を有し且つ安価な記録再生装置を提供することにある。
【０００９】
【課題を解決するための手段】
第１の観点では、本発明は、外部とのデータの入出力を行うための外部インタフェース手段と、入力されたデータに対して第１エラー訂正符号を生成するための第１エラー訂正符号生成手段と、前記第１エラー訂正符号を用いてエラー検出およびエラー訂正を行うための第１エラー訂正手段とを備えたコントローラ部、および、前記コントローラ部から渡されたデータおよび第１エラー訂正符号に対して該第１エラー訂正符号と同じガロア体上のＢＣＨ（Ｂose-Ｃhaudhuri-Ｈocquenghem）符号であり且つ連続した根を持つ第２エラー訂正符号を生成するための第２エラー訂正符号生成手段と、データおよび第１エラー訂正符号および第２エラー訂正符号を記憶するためのメモリ素子と、そのメモリ素子から読み出したデータおよび第１エラー訂正符号および第２エラー訂正符号を用いてエラー検出およびエラー訂正を行うための第２エラー訂正手段と、その第２エラー訂正手段でデータを訂正できたか否かの情報とエラー訂正計算途中の計算値情報と検出した誤り位置と誤り値とを前記第１エラー訂正手段に通知するための訂正情報通知手段と、前記メモリ素子から読み出したデータおよび第１エラー訂正符号または前記第２エラー訂正手段で訂正したデータおよび第１エラー訂正符号を前記第１エラー訂正手段に送るデータ送り手段とを備えた半導体メモリ部を具備し、前記第１エラー訂正手段は、前記データ送り手段により送られたデータおよび第１エラー訂正符号を用いてエラーを検出し且つ前記第２エラー訂正手段でデータを訂正できていたなら前記誤り位置と前記誤り値とを用いて訂正前のデータを復元し、その復元したデータおよび第１エラー訂正符号に対してエラーを検出したなら該復元したデータおよび前記第１エラー訂正符号と前記計算値情報とを用いて該復元したデータのエラー訂正を行い、一方、前記第１エラー訂正符号を用いてエラーを検出し且つ前記第２エラー訂正手段でデータを訂正できていなかったら該未訂正のデータおよび前記第１エラー訂正符号と前記計算値情報とを用いて該未訂正データのエラー訂正を行い、それらのエラー訂正が行えなかったなら前記復元したデータまたは前記未訂正のデータに対して前記第１エラー訂正符号を用いてエラー訂正を行いうることを特徴とする記録再生装置を提供する。
また、本発明は、外部から入力されたデータおよび第１エラー訂正符号に対して該第１エラー訂正符号と同じガロア体上のＢＣＨ符号であり且つ連続した根を持つ第２エラー訂正符号を生成するための第２エラー訂正符号生成手段と、データおよび第１エラー訂正符号および第２エラー訂正符号を記憶するためのメモリ素子と、そのメモリ素子から読み出したデータおよび第１エラー訂正符号および第２エラー訂正符号を用いてエラー検出およびエラー訂正を行うための第２エラー訂正手段と、その第２エラー訂正手段でデータおよび第１エラー訂正符号を訂正できたか否かの情報とエラー訂正計算途中の計算値情報と検出した誤り位置と誤り値とを外部に通知するための訂正情報通知手段と、前記メモリ素子から読み出したデータおよび第１エラー訂正符号または前記第２エラー訂正手段で訂正したデータおよび第１エラー訂正符号を外部に送るデータ送り手段とを備えたことを特徴とする半導体メモリを提供する。
【００１０】
上記第１の観点による記録再生装置では、データを書き込むときは、コントローラ部で第１エラー訂正符号を生成し、半導体メモリ部で第２エラー訂正符号を生成し、データ，第１エラー訂正符号および第２エラー訂正符号をメモリ素子に記憶する。次に、データを読み出すときは、半導体メモリ部で、メモリ素子から読み出したデータおよび第１エラー訂正符号に対して第２エラー訂正符号を用いてエラー検出およびエラー訂正を行うと共に、メモリ素子から読み出したデータおよび第１エラー訂正符号またはエラー訂正したデータおよび第１エラー訂正符号をコントローラ部に渡す。そして、コントローラ部で、半導体メモリ部から渡されたデータに対して第１エラー訂正符号を用いてエラー検出を行い、（１）エラーが検出され且つ半導体メモリ部でエラー訂正を行っていた場合は、半導体メモリ部でのエラー訂正をキャンセルしてメモリ素子から読み出したデータおよび第１エラー訂正符号を復元する。このために、半導体メモリ部からコントローラ部に、訂正できたか否かの情報と誤り位置と誤り値とを通知する。これにより、半導体メモリ部での誤訂正があっても、その悪影響を受けずに、コントローラ部のエラー訂正能力でエラーを訂正できる。また、（２）エラーが検出され且つ半導体メモリ部でエラー訂正を行っていなかった場合は、メモリ素子から送られてきたデータおよび第１エラー訂正符号をそのまま用いる。その後、前記（１）（２）の場合ともに、コントローラ部で、第１エラー訂正符号および第２エラー訂正符号を用いてエラー訂正を行う。このために、半導体メモリ部からコントローラ部に、訂正できたか否かの情報とエラー訂正計算途中の計算値情報とを通知し、且つ、第１エラー訂正符号と第２エラー訂正符号とが同じガロア体上のＢＣＨ符号であり且つ連続した根を持つ、すなわち、第１エラー訂正符号の生成多項式の根と第２エラー訂正符号の生成多項式の根に連続した“べき”を持つものとしている。これにより、半導体メモリ部が持つエラー訂正能力とコントローラ部が持つエラー訂正能力とを共に活用でき、高信頼性を得ることが出来る。
また、上記第１の観点による半導体メモリは、上記第１の観点による記録再生装置に好適に使用できる。
【００１１】
第２の観点では、本発明は、外部とのデータの入出力を行うための外部インタフェース手段と、入力されたデータに対して第１エラー訂正符号を生成するための第１エラー訂正符号生成手段と、前記第１エラー訂正符号を用いてエラー検出およびエラー訂正を行うための第１エラー訂正手段とを備えたコントローラ部、および、前記コントローラ部から渡されたデータおよび第１エラー訂正符号に対して該第１エラー訂正符号と同じガロア体上のＢＣＨ符号であり且つ連続した根を持つ第２エラー訂正符号を生成するための第２エラー訂正符号生成手段と、データおよび第１エラー訂正符号および第２エラー訂正符号を記憶するためのメモリ素子と、そのメモリ素子から読み出したデータおよび第１エラー訂正符号および前記第２エラー訂正符号を用いてエラー検出およびエラー訂正を行うための第２エラー訂正手段と、その第２エラー訂正手段でエラーを検出したか否かの情報とデータおよび第１エラー訂正符号を訂正できたか否かの情報とエラー訂正計算途中の計算値情報とを前記第１エラー訂正手段に通知するための検出・訂正情報通知手段と、前記メモリ素子から読み出したデータと第１エラー訂正符号および前記第２エラー訂正手段で訂正したデータと第１エラー訂正符号を前記第１エラー訂正手段に送るデータ送り手段とを備えた半導体メモリ部を具備し、前記第１エラー訂正手段は、前記第２エラー訂正手段でエラーを検出せず且つ前記メモリ素子から読み出したデータについて前記第１エラー訂正符号を用いてエラーを検出したか、又は、前記第２エラー訂正手段でデータを訂正できず且つ前記メモリ素子から読み出したデータについて前記第１エラー訂正符号を用いてエラーを検出したか、又は、前記第２エラー訂正手段で訂正したデータについて前記第１エラー訂正符号を用いてエラーを検出したなら、前記メモリ素子から読み出したデータに対し前記第１エラー訂正符号と前記計算値情報とを用いてエラー訂正を行い、そのエラー訂正が行えなかったなら前記メモリ素子から読み出したエラー訂正前のデータに対して前記第１エラー訂正符号を用いてエラー訂正を行いうることを特徴とする記録再生装置を提供する。
また、本発明は、外部から入力されたデータおよび第１エラー訂正符号に対して該第１エラー訂正符号と同じガロア体上のＢＣＨ符号であり且つ連続した根を持つ第２エラー訂正符号を生成するための第２エラー訂正符号生成手段と、データおよび第１エラー訂正符号および第２エラー訂正符号を記憶するためのメモリ素子と、そのメモリ素子から読み出したデータおよび第１エラー訂正符号および第２エラー訂正符号を用いてエラー検出およびエラー訂正を行うための第２エラー訂正手段と、その第２エラー訂正手段でエラーを検出したか否かの情報とデータおよび第１エラー訂正符号を訂正できたか否かの情報とエラー訂正計算途中の計算値情報とを外部に通知するための検出・訂正情報通知手段と、前記メモリ素子から読み出したデータと第１エラー訂正符号および前記第２エラー訂正手段で訂正したデータと第１エラー訂正符号を外部に送るデータ送り手段とを備えたことを特徴とする半導体メモリを提供する。
【００１２】
上記第２の観点による記録再生装置では、データを書き込むときは、コントローラ部で第１エラー訂正符号を生成し、半導体メモリ部で第２エラー訂正符号を生成し、データ，第１エラー訂正符号および第２エラー訂正符号をメモリ素子に記憶する。次に、データを読み出すときは、半導体メモリ部で、メモリ素子から読み出したデータおよび第１エラー訂正符号に対して第２エラー訂正符号を用いてエラー検出およびエラー訂正を行うと共に、メモリ素子から読み出したデータと第１エラー訂正符号およびエラー訂正したデータと第１エラー訂正符号をコントローラ部に渡す。そして、コントローラ部では、前記第２エラー訂正手段でエラーが検出されず且つメモリ素子から読み出したデータおよび第１エラー訂正符号についてエラーを検出した場合、又は、第２エラー訂正手段でデータの訂正ができず且つメモリ素子から読み出したデータおよび第１エラー訂正符号についてエラーを検出した場合は、メモリ素子から読み出したデータに対し、第１エラー訂正符号と計算値情報とを用いてエラー訂正を行い（このために、半導体メモリ部からコントローラ部に、エラーを検出したか否かの情報と訂正できたか否かの情報とエラー訂正計算途中の計算値情報とを通知し、且つ、第１エラー訂正符号と第２エラー訂正符号とが同じガロア体上のＢＣＨ符号であり且つ連続した根を持つ、すなわち、第１エラー訂正符号の生成多項式の根と第２エラー訂正符号の生成多項式の根に連続した“べき”を持つものとしている）、そのエラー訂正が行えなかった場合は、メモリ素子から読み出したデータに対して第１エラー訂正符号を用いてエラー訂正を行う。これにより、半導体メモリ部が持つエラー訂正能力とコントローラ部が持つエラー訂正能力とを共に活用でき、高信頼性を得ることが出来る。さらに、第２エラー訂正手段によりデータ訂正できたが該エラー訂正後のデータについてエラー訂正後の第１エラー訂正符号を用いてエラーを検出した場合は、メモリ素子から読み出したエラー訂正前のデータに対し、エラー訂正前の第１エラー訂正符号と計算値情報とを用いてエラー訂正を行い（このために、半導体メモリ部からコントローラ部に、訂正できたか否かの情報とエラー訂正計算途中の計算値情報とを通知し、且つ、第１エラー訂正符号と第２エラー訂正符号とが同じガロア体上のＢＣＨ符号であり且つ連続した根を持つ、すなわち、第１エラー訂正符号の生成多項式の根と第２エラー訂正符号の生成多項式の根に連続した“べき”を持つものとしている）、そのエラー訂正が行えなかった場合は、メモリ素子から読み出したエラー訂正前のデータに対してエラー訂正前の第１エラー訂正符号を用いてエラー訂正を行う。これにより、半導体メモリ部での誤訂正があっても、その悪影響を受けずに、半導体メモリ部が持つエラー訂正能力と、コントローラ部が持つエラー訂正能力とを共に活用でき、高信頼性を得ることができる。
また、上記第２の観点による半導体メモリは、上記第２の観点による記録再生装置に好適に使用できる。
【００１３】
ここで、前記ＢＣＨ符号としては、特にＲＳ（Ｒeed Ｓolomon）符号を用いるのが好ましい。
また、前記計算値情報としては、前記第２エラー訂正符号の符号多項式を生成多項式で割った余りである剰余多項式または前記エラー訂正符号の符号多項式に生成多項式の根を代入して得られるシンドロームとするのが好ましい。
【００１４】
第３の観点では、本発明は、読み出し又は書き込みされるデータ処理単位毎にエラー訂正符号化すると共に、前記データ処理単位の２倍以上のデータ消去単位でデータを消去することを特徴とする半導体メモリを提供する。
上記第３の観点による半導体メモリでは、読み出し又は書き込みされるデータ処理単位毎にエラー訂正符号化するため、例えばデータ処理単位である５１２バイトのデータの読み出しのたびに、データの消去単位である１０２４バイト以上の全データを読み出してエラー訂正符号をチェックする必要がなく、また、データ処理単位である５１２バイトのデータの書き換えのたびに、データ消去単位である１０２４バイト以上の全データを読み出してエラー訂正符号を再計算する必要がなくなる。よって、使用される装置におけるデータ処理単位よりも大きいデータ消去単位を持つ場合でも処理を簡単化できる。また、データ処理単位の２倍以上の大きなデータ消去単位を持つため、回路の削減とバイト当たりの高速化を図ることが出来る。
【００１５】
第４の観点では、本発明は、外部とのデータの入出力を行うためのインタフェース機能を有するマイクロコンピュータと、エラー訂正機能を持った半導体メモリとを具備したことを特徴とする記録再生装置を提供する。
上記第４の観点による記録再生装置では、マイクロコンピュータを用いるため、安価になる。また、半導体メモリがエラー訂正機能を持つため、ある程度の信頼性を得られる。
【００１６】
【発明の実施の形態】
以下、図を参照して、本発明の実施形態について説明する。なお、これにより本発明が限定されるものではない。
【００１７】
−第１の実施形態−
図１は、第１の実施形態に係るフラッシュメモリディスク（１０１）の構成図である。
このフラッシュメモリディスク（１０１）は、コントローラ（１０２）と、フラッシュメモリチップ（１１１〜１１４）と、それらを接続する内部バス（１０８）とを具備して構成されている。
【００１８】
前記コントローラ（１０２）は、ＣＰＵ（１０３）と、データバッファ（１０４）と、内部バスインターフェイス（１０５）と、外部バスインターフェイス（１０６）と、ＥＣＣ（Ｅrror Ｃorrecting Ｃode）回路（１０７）とを具備して構成されている。
【００１９】
前記外部バスインターフェイス（１０６）は、ＡＴバス，ＰＣＩバス，ＳＣＳＩバスなどの一般的な外部インターフェイスバス（１０９）に接続される。
なお、前記外部インターフェイスバス（１０９）で接続される外部機器は、ＭＰＥＧカメラ，携帯端末，携帯用音再生装置などである。
【００２０】
前記フラッシュメモリチップ（１１１〜１１４）は、フラッシュメモリ素子（１１５〜１１８）と、オンチップＥＣＣ回路（１２０〜１２３）とを具備して構成される。
前記オンチップＥＣＣ回路（１２０〜１２３）は、エラー訂正機能だけでなく、エラーの検出頻度が高くなった領域のデータを、エラーの検出頻度が低い領域に移すためのエラーの検出頻度のチェック機能をも持っている。
【００２１】
図２は、前記フラッシュメモリチップ（１１１）のオンチップＥＣＣ回路（１２０）の内部構成図である。
このオンチップＥＣＣ回路（１２０）は、剰余多項式レジスタ（６０１）と、訂正ＯＫフラグ（６０５）および訂正不能フラグ（６０６）を持つ訂正フラグレジスタ（６０２）と、誤り位置レジスタ（６０３）と、誤り値レジスタ（６０４）と、制御回路（６０７）と、エラー訂正回路（６０８）と、エラー訂正符号化回路（６０９）とを具備して構成されている。
他のフラッシュメモリチップ（１１２〜１１４）のオンチップＥＣＣ回路（１２１〜１２３）も同様の構成である。
【００２２】
図３は、データ単位ごとに付加するエラー訂正符号の説明図である。
データ単位は、５１２バイト×８ビットである。
エラー訂正符号は、前記コントローラ（１０２）のＥＣＣ回路（１０７）で付加される５シンボルの外符号Ｃ１と、前記フラッシュメモリチップ（１１１）のオンチップＥＣＣ回路（１２０）のエラー訂正符号化回路（６０９）で付加される３シンボルの内符号Ｃ２からなる。
外符号Ｃ１および内符号Ｃ２は、（数１）を法とするガロア体ＧＦ(２10)上のＲＳ符号である。ここで、１シンボルはガロア体の大きさに依存した、大きさの単位であり、この場合、１シンボルは１０ビットとなる。
【数１】
0003975245.tif 000002
前記外符号Ｃ１の生成多項式は（数２）である。
【数２】
0003975245.tif 000003
前記内符号Ｃ２の生成多項式は（数３）である。
【数３】
0003975245.tif 000004
【００２３】
外符号Ｃ１の生成多項式の根の指数と内符号Ｃ２の生成多項式の根の指数は、連続している。すなわち、（数２）では根の指数は“０”から“４”であり、（数３）では根の指数は“５”から“７”であり、連続している。
【００２４】
次に、データ書き込み時の動作について詳細に説明する。
外部機器から外部バス（１０９）を通して、５１２バイト×８ビット単位の書き込みデータが、フラッシュメモリディスク（１０１）に与えられる。
フラッシュメモリディスク（１０１）のコントローラ（１０２）は、与えられた書き込みデータを、外部バスインターフェイス（１０６）を介して、ＥＣＣ回路（１０７）に渡す。
ＥＣＣ回路（１０７）は、ＧＦ（２10）上のガロア体を用いているので、５１２バイト×８ビットのデータ「ｄ511，ｄ510，ｄ509，・・・，ｄ0」（但し、ｄ511からｄ0はＧＦ(２8)上の８ビットで表される数）に、１バイトごとに全て“０”の２ビットのダミーデータを付加して５１２バイト×１０ビットのデータ「ｄ511’，ｄ510’，ｄ509’，・・・，ｄ0’」にし、（数４）の符号多項式を得る。
【数４】
0003975245.tif 000005
次に、外符号Ｃ１は５シンボルなので、（数４）の符号多項式にｘ5を乗じた（数５）を生成多項式（数２）で割った剰余である（数６）の多項式を得る。
【数５】
0003975245.tif 000006
【数６】
0003975245.tif 000007
次に、（数６）の多項式から「Ｒ14，Ｒ13，Ｒ12，Ｒ11，Ｒ10」を外符号Ｃ１として得る。
【００２５】
次に、コントローラ（１０２）は、内部バスインターフェイス（１０５）を介して、５１２バイト×８ビットの書き込みデータと５シンボル×１０ビットの外符号Ｃ１とを、ｄ511，ｄ510，・・・，ｄ0，Ｒ14，Ｒ13，Ｒ12，Ｒ11，Ｒ10の順で、どれか一つのフラッシュメモリチップ（１１１or１１２or１１３or１１４）に渡す。ここでは、フラッシュメモリチップ（１１１）に渡したとする。
【００２６】
フラッシュメモリチップ（１１１）のオンチップＥＣＣ回路（１２０）のエラー訂正符号化回路（６０９）は、ＧＦ（２10）上のガロア体を用いているので、５１２バイト×８ビットのデータ「ｄ511，ｄ510，ｄ509，・・・，ｄ0」に、１バイトごとに全て“０”の２ビットのダミーデータを付加して５１２バイト×１０ビットのデータ「ｄ511’，ｄ510’，ｄ509’，・・・，ｄ0’」にし、５シンボル×１０ビットの外符号Ｃ１「Ｒ14，Ｒ13，Ｒ12，Ｒ11，Ｒ10」を付加して、（数７）の符号多項式を得る。
【数７】
0003975245.tif 000008
次に、内符号Ｃ２は３シンボルなので、（数７）にｘ3を乗じた（数８）を生成多項式（数３）で割った剰余である（数９）の多項式を得る。
【数８】
0003975245.tif 000009
【数９】
0003975245.tif 000010
次に、（数９）の多項式から「Ｒ22，Ｒ21，Ｒ20」を内符号Ｃ２として得る。
【００２７】
次に、オンチップＥＣＣ回路（１２０）のエラー訂正符号化回路（６０９）は、５１２バイト×８ビットの書き込みデータと５シンボル×１０ビットの外符号Ｃ１と３シンボル×１０ビットの内符号Ｃ２とを、「ｄ511，ｄ510，・・・，ｄ0，Ｒ14，Ｒ13，Ｒ12，Ｒ11，Ｒ10，Ｒ22，Ｒ21，Ｒ20」の順で、対応するフラッシュメモリ素子（１１５）に書き込む。
【００２８】
次に、データ読み出し時の動作について詳細に説明する。ここでは、フラッシュメモリチップ（１１１）でのデータ読み出しとする。
オンチップＥＣＣ回路（１２０）の制御回路（６０７）は、フラッシュメモリ素子（１１５）から、「ｄ511”，ｄ510”，・・・，ｄ0”，Ｒ14”，Ｒ13”，Ｒ12”，Ｒ11”，Ｒ10”，Ｒ22”，Ｒ21”，Ｒ20”」を、エラー訂正回路（６０８）に読み出す。
【００２９】
図４は、エラー訂正回路（６０８）の動作を示すフロー図である。
ステップ（４０１）では、読み出した「ｄ511”，ｄ510”，・・・，ｄ0”，Ｒ14”，Ｒ13”，Ｒ12”，Ｒ11”，Ｒ10”，Ｒ22”，Ｒ21”，Ｒ20”」から（数10）の符号多項式を得る。
【数１０】
0003975245.tif 000011
次に、（数10）の符号多項式を内符号Ｃ２の生成多項式（数３）で割り、割り切れれば誤りなし、余りがあれば誤りが発生したと判定する。
【００３０】
ステップ（４０２）では、誤りがあればステップ（４０３）へ進み、誤りがなければ、データ「ｄ511”，ｄ510”，・・・，ｄ0”」および外符号Ｃ１「Ｒ14”，Ｒ13”，Ｒ12”，Ｒ11”，Ｒ10”」を、コントローラ（１０２）に送って、処理を終了する。
【００３１】
ステップ（４０３）では、前記余りである（数11）の剰余多項式を、剰余多項式レジスタ（６０１）に格納する。
【数１１】
0003975245.tif 000012
【００３２】
ステップ（４０４）では、１シンボルの訂正をエラー訂正回路（６０８）にて行う。すなわち、エラー訂正回路（６０８）では、誤り位置Ｔ１，誤り値Ｔ２の計算を行う。誤り位置Ｔ１，誤り値Ｔ２の計算方法は、一般的な誤りトラップ復号法などを用いればよい。図５に示すように、誤り位置Ｔ１＝０は内符号Ｃ２の最下位のシンボルを表し、誤り位置Ｔ１≧８は５１２バイトのデータ中に誤りがあることを表し、７≧Ｔ１≧３は外符号Ｃ１上に誤りがあることを表し、２≧Ｔ１≧０は内符号Ｃ２上に誤りがあることを表す。誤り位置Ｔ１，誤り値Ｔ２が計算できたなら、それらを用いてエラー訂正を行い、エラー訂正後のデータ「ｄ511”’，ｄ510”’，・・・，ｄ1”’，ｄ0”’」および外符号Ｃ１「Ｒ14”’，Ｒ13”’，Ｒ12”’，Ｒ11”’，Ｒ10”’」を求める。エラー訂正は、誤り位置Ｔ１に対応する符号上のシンボルと誤り値Ｔ２との排他的論理和を取り、それをその位置のシンボルとすることにより行う。
ステップ（４０５）では、訂正が行えたならステップ（４０６）へ進み、訂正が行えなかった（誤り位置Ｔ１，誤り値Ｔ２が計算できなかった）ならステップ（４０８）へ進む。
【００３３】
ステップ（４０６）では、訂正フラグレジスタ（６０２）中の訂正ＯＫフラグ（６０５）をＯＮ状態にセットする。
ステップ（４０７）では、誤り位置Ｔ１を誤り位置レジスタ（６０３）にセットし、誤り値Ｔ２を誤り値レジスタ（６０４）にセットする。そして、エラー訂正後のデータ「ｄ511”’，ｄ510”’，・・・，ｄ1”’，ｄ0”’」および外符号Ｃ１「Ｒ14”’，Ｒ13”’，Ｒ12”’，Ｒ11”’，Ｒ10”’」をコントローラ（１０２）に送って、処理を終了する。
【００３４】
ステップ（４０８）では、訂正フラグレジスタ（６０２）の中の訂正不能フラグ（６０６）をＯＮ状態にセットし、訂正前のデータおよび外符号Ｃ１（ｄ511”，ｄ510”，・・・，ｄ1”，ｄ0”，Ｒ13”，Ｒ12”，Ｒ11”，Ｒ10”）をコントローラ（１０２）に送って、処理を終了する。
【００３５】
図６は、ＥＣＣ回路（１０７）の動作を示すフロー図である。
ステップ（５０１）では、フラッシュメモリチップ（１１１）から送られてきたエラー訂正後のデータ「ｄ511”’，ｄ510”’，・・・，ｄ1”’，ｄ0”’」および外符号Ｃ１「Ｒ14”’，Ｒ13”’，Ｒ12”’，Ｒ11”’，Ｒ10”’」、または、訂正前のデータ「ｄ511”，ｄ510”，・・・，ｄ1”，ｄ0”」および外符号Ｃ１「Ｒ14”，Ｒ13”，Ｒ12”，Ｒ11”，Ｒ10”」を読み込む。
ステップ（５０２）では、外符号Ｃ１によりエラーチェックを行う。すなわち、フラッシュメモリチップ（１１１）から読み込んだデータおよび外符号Ｃ１からなる符号多項式Ｃ(ｘ)のｘに、外符号Ｃ１の生成多項式（数２）の根を代入し、得られた値Ｓ０，Ｓ１，Ｓ２，Ｓ３，Ｓ４の全てが“０”であれば誤りなしと判定し、１つでも“０”でないものがあれば誤りありと判定する。値Ｓ０，Ｓ１，Ｓ２，Ｓ３，Ｓ４のことをシンドロームと呼ぶ。
ステップ（５０３）では、誤りなしであればステップ（５１２）へ進み、誤りありであればステップ（５０４）へ進む。
【００３６】
ステップ（５０４）では、フラッシュメモリチップ（１１１）の訂正ＯＫフラグ（６０５）を読み込み、訂正ＯＫフラグ（６０５）がＯＮ状態すなわちフラッシュメモリチップ（１１１）上でエラー訂正がなされていたときはステップ（５０５）へ進み、訂正ＯＫフラグ（６０５）がＯＦＦ状態すなわちフラッシュメモリチップ（１１１）上でエラー訂正がなされていなかったときはステップ（５０８）へ進む。
【００３７】
ステップ（５０５）では、フラッシュメモリチップ（１１１）の誤り位置レジスタ（６０３）から誤り位置Ｔ１を読み込み、フラッシュメモリチップ（１１１）の誤り値レジスタ（６０４）から誤り値Ｔ２を読み込み、誤り位置Ｔ１のシンボルと誤り値Ｔ２の値を排他的論理和をとり、フラッシュメモリ素子（１１５）から読み出したデータを復元する。
ステップ（５０６）では、復元したデータおよび外符号Ｃ１に対して外符号Ｃ１’によりエラーチェックを再び行い、シンドロームＳ０，Ｓ１，Ｓ２，Ｓ３，Ｓ４を計算し直す。シンドロームＳ０，Ｓ１，Ｓ２，Ｓ３，Ｓ４の全てが“０”であれば誤りなしと判定し、１つでも“０”でないものがあれば誤りありと判定する。
ステップ（５０７）では、誤りなしであればステップ（５１２）へ進み、誤りありであればステップ（５０８）へ進む。
【００３８】
ステップ（５０８）では、フラッシュメモリチップ（１１１）の剰余多項式レジスタ（６０１）から剰余多項式（数11）を読み出し、（数12）によりシンドロームＳ５，Ｓ６，Ｓ７を計算する。
【数１２】
0003975245.tif 000013
ここで、データ上または外符号Ｃ１上に３シンボルのエラーが発生し、エラーはそれぞれ外符号Ｃ１で見た誤り位置ｋ１，ｋ２，ｋ３に、誤り値Ｅ１，Ｅ２，Ｅ３であったとすると、内符号Ｃ２で見た誤り位置は３つずれるため、シンドロームＳ０〜Ｓ７は、それぞれ（数13）のようになる。
【数１３】
0003975245.tif 000014
Ｓ５をα15で割り、Ｓ６をα18で割り、Ｓ７をα21で割ると、（数14）が得られる。
【数１４】
0003975245.tif 000015
（数14）は、一般の３シンボル訂正ＲＳ符号のシンドロームと同じであり、一般のエラー訂正アルゴリズムで３シンボルエラー訂正が可能となる。一般のエラー訂正アルゴリズムとしては、ピーターソン法，ユークリッド法，チェーンサーチなどが知られている。
そこで、（数14）の８つのシンドロームＳ０〜Ｓ７を用いて、３シンボルのエラー訂正を行う。
【００３９】
ステップ（５０９）では、訂正が行えたならステップ（５１２）へ進み、訂正が行えなかったならステップ（５１０）へ進む。
【００４０】
ステップ（５１０）では、前記ステップ（５０６）で求めた５つのシンドロームＳ０〜Ｓ４を用いて、２シンボルのエラー訂正を行う。
【００４１】
ステップ（５１１）では、訂正が行えたならステップ（５１２）へ進み、訂正が行えなかったならステップ（５１３）へ進む。
【００４２】
ステップ（５１２）では、外部バスインターフェイス（１０６）および外部バス（１０９）を介して、外部機器へデータを転送し、動作を終了する。
【００４３】
ステップ（５１３）では、外部バスインターフェイス（１０６）および外部バス（１０９）を介して、外部機器へ訂正不能エラーが発生したことを通知し、動作を終了する。
【００４４】
以上の第１の実施形態に係るフラッシュメモリディスク（１０１）によれば、フラッシュメモリチップ（１１１〜１１４）のオンチップＥＣＣ回路（１２０〜１２３）の１シンボルの訂正能力とコントローラ（１０２）のＥＣＣ回路（１０７）の２シンボルの訂正能力とを合わせた３シンボルの訂正能力が得られる。よって、従来（フラッシュメモリチップのオンチップＥＣＣ回路を使わず、コントローラのＥＣＣ回路に３シンボルの訂正能力を持たせる）に比べて、コントローラ（１０２）のＥＣＣ回路（１０７）の回路規模を、２／３に抑えることが出来る。なお、通常、ＥＣＣ回路（１０７）の符号器，シンドローム生成器などは、訂正能力に比例して回路規模が増える。
【００４５】
なお、上記説明では、フラッシュメモリチップ（１１１〜１１４）のオンチップＥＣＣ回路（１２０〜１２３）からコントローラ（１０２）のＥＣＣ回路（１０７）へ、剰余多項式レジスタ（６０１）を介して、内符号Ｃ２の符号多項式を生成多項式で割った余りである剰余多項式を通知したが、その代わりに、シンドロームレジスタを設けて、内符号Ｃ２の符号多項式に生成多項式の根を代入して得られるシンドロームＳ５，Ｓ６，Ｓ７を通知するようにしてもよい。
【００４６】
−第２の実施形態−
第２の実施形態は、コントローラ（１０２）側で未訂正のデータを復元する必要を無くした実施形態である（前記第１の実施形態では、フラッシュメモリチップ（１１１）で訂正したデータからコントローラ（１０２）側で未訂正のデータを復元している）。
【００４７】
図７は、第２の実施形態に係るフラッシュメモリチップ（１１１）の内部構成図である。
このフラッシュメモリチップ（１１１）は、図２に示す第１の実施形態のフラッシュメモリチップ（１１１）に比べると、図２から誤り位置レジスタ（６０３）と誤り値レジスタ（６０４）とを削除し、フラッシュメモリ素子（１１５）とオンチップＥＣＣ回路（１２０）の間にラッチ回路（６２０）を追加し、訂正フラグレジスタ（６０２）の中にエラーフラグ（６２１）を追加した構成になっている。
前記ラッチ回路（６２０）は、制御回路６０７の制御により、フラッシュメモリ素子（１１５）から「ｄ511”，ｄ510”，・・・，ｄ0”，Ｒ14”，Ｒ13”，Ｒ12”，Ｒ11”，Ｒ10”，Ｒ22”，Ｒ21”，Ｒ20”」を読み出して保持し、エラー訂正回路（６０８）に送るのと同時にコントローラ（１０２）へも送る。
前記エラーフラグ（６２１）は、エラー訂正回路（６０８）でエラーが検出されたなら「有」の値を設定され、エラー訂正回路（６０８）でエラーが検出されなかったなら「無」の値を設定される。
他のフラッシュメモリチップ（１１２〜１１４）も同様の構成である。
【００４８】
図８は、第２の実施形態に係るエラー訂正回路（６０８）の動作を示すフロー図である。
ステップ（４０１）では、読み出した「ｄ511”，ｄ510”，・・・，ｄ0”，Ｒ14”，Ｒ13”，Ｒ12”，Ｒ11”，Ｒ10”，Ｒ22”，Ｒ21”，Ｒ20”」から（数10）の符号多項式を得る。
次に、（数10）の符号多項式を内符号Ｃ２の生成多項式（数３）で割り、割り切れれば誤りなし、余りがあれば誤りが発生したと判定する。
【００４９】
ステップ（４０２）では、誤りがなければステップ（４０２１）へ進み、誤りがあればステップ（４０２２）へ進む。
ステップ（４０２１）では、エラーフラグ（６２１）に「無」の値を設定する。そして、処理を終了する。
【００５０】
ステップ（４０２２）では、エラーフラグ（６２１）に「有」の値を設定する。
ステップ（４０３）では、前記余りである（数11）の剰余多項式を、剰余多項式レジスタ（６０１）に格納する。
【００５１】
ステップ（４０４）では、１シンボルの訂正をエラー訂正回路（６０８）にて行い、エラー訂正後のデータ「ｄ511”’，ｄ510”’，・・・，ｄ1”’，ｄ0”’」および外符号Ｃ１「Ｒ14”’，Ｒ13”’，Ｒ12”’，Ｒ11”’，Ｒ10”’」を求める。
ステップ（４０５）では、訂正が行えたならステップ（４０６）へ進み、訂正が行えなかった（誤り位置Ｔ１，誤り値Ｔ２が計算できなかった）ならステップ（４０８）へ進む。
【００５２】
ステップ（４０６）では、エラー訂正後のデータ「ｄ511”’，ｄ510”’，・・・，ｄ1”’，ｄ0”’」および外符号Ｃ１「Ｒ14”’，Ｒ13”’，Ｒ12”’，Ｒ11”’，Ｒ10”’」をコントローラ（１０２）へ送り、訂正フラグレジスタ（６０２）中の訂正ＯＫフラグ（６０５）をＯＮ状態にセットする。そして、処理を終了する。
【００５３】
ステップ（４０８）では、訂正フラグレジスタ（６０２）の中の訂正不能フラグ（６０６）をＯＮ状態にセットする。そして、処理を終了する。
【００５４】
図９は、ＥＣＣ回路（１０７）の動作を示すフロー図である。
ステップ（５２１）では、フラッシュメモリチップ（１１１）から送られてきたエラー訂正していないデータＡ「ｄ511”，ｄ510”，・・・，ｄ0”」および外符号Ｃ１Ａ「Ｒ14”，Ｒ13”，Ｒ12”，Ｒ11”，Ｒ10”」を読み込み、シンドロームＡを生成する。すなわち、データＡおよび外符号Ｃ１Ａからなる符号多項式Ｃ(ｘ)のｘに、外符号Ｃ１の生成多項式（数２）の根を代入し、シンドロームＡ「Ｓ０，Ｓ１，Ｓ２，Ｓ３，Ｓ４」を求める。
ステップ（５２２）では、エラーフラグ６２１の値が「有」か否かチェックし、「有」ならステップ（５２３）へ進み、「無」ならステップ（５２６）へ進む。
【００５５】
ステップ（５２３）では、フラッシュメモリチップ（１１１）の訂正ＯＫフラグ（６０５）を読み込み、訂正ＯＫフラグ（６０５）がＯＮ状態すなわちフラッシュメモリチップ（１１１）上でエラー訂正がなされていたときはステップ（５２４）へ進み、訂正ＯＫフラグ（６０５）がＯＦＦ状態すなわちフラッシュメモリチップ（１１１）上でエラー訂正がなされていなかったときはステップ（５２６）へ進む。
【００５６】
ステップ（５２４）では、フラッシュメモリチップ（１１１）から送られてきたエラー訂正したデータＢ「ｄ511”’，ｄ510”’，・・・，ｄ1”’，ｄ0”’」および外符号Ｃ１Ｂ「Ｒ14”’，Ｒ13”’，Ｒ12”’，Ｒ11”’，Ｒ10”’」を読み込み、シンドロームＢを生成する。すなわち、データＢおよび外符号Ｃ１Ｂからなる符号多項式Ｃ(ｘ)のｘに、外符号Ｃ１の生成多項式（数２）の根を代入し、シンドロームＢ「Ｓ０，Ｓ１，Ｓ２，Ｓ３，Ｓ４」を求める。
ステップ（５２５）では、シンドロームＢが“０”であれば（Ｓ０，Ｓ１，Ｓ２，Ｓ３，Ｓ４の全てが“０”であれば）誤りなしと判定しステップ（５２７）へ進み、シンドロームＢが“０”でなければ（Ｓ０，Ｓ１，Ｓ２，Ｓ３，Ｓ４の１つでも“０”でないものがあれば）誤りありと判定しステップ（５２６）へ進む。
【００５７】
ステップ（５２６）では、シンドロームＡが“０”であれば（Ｓ０，Ｓ１，Ｓ２，Ｓ３，Ｓ４の全てが“０”であれば）誤りなしと判定しステップ（５１２）へ進み、シンドロームＡが“０”でなければ（Ｓ０，Ｓ１，Ｓ２，Ｓ３，Ｓ４の１つでも“０”でないものがあれば）誤りありと判定しステップ（５０８）へ進む。
【００５８】
ステップ（５０８）では、図６のステップ（５０８）と同様に、８つのシンドロームＳ０〜Ｓ７を用いて、データＡに対して、３シンボルのエラー訂正を行う。
ステップ（５０９）では、訂正が行えたならステップ（５１２）へ進み、訂正が行えなかったならステップ（５１０）へ進む。
【００５９】
ステップ（５１０）では、前記ステップ（５２１）で求めたシンドロームＡ「Ｓ０〜Ｓ４」を用いて、データＡに対して、２シンボルのエラー訂正を行う。
ステップ（５１１）では、訂正が行えたならステップ（５１２）へ進み、訂正が行えなかったならステップ（５１３）へ進む。
【００６０】
ステップ（５１２）では、外部バスインターフェイス（１０６）および外部バス（１０９）を介して、外部機器へデータＡまたは訂正したデータＡを転送し、動作を終了する。
【００６１】
ステップ（５１３）では、外部バスインターフェイス（１０６）および外部バス（１０９）を介して、外部機器へ訂正不能エラーが発生したことを通知し、動作を終了する。
【００６２】
ステップ（５２７）では、外部バスインターフェイス（１０６）および外部バス（１０９）を介して、外部機器へデータＢを転送し、動作を終了する。
【００６３】
以上の第２の実施形態に係るフラッシュメモリディスク（１０１）によれば、前述の第１の実施形態に係るフラッシュメモリディスク（１０１）と同じ効果が得られると共に、コントローラ（１０２）側で未訂正のデータを復元する必要が無くなる。
【００６４】
−第３の実施形態−
図１０は、第３の実施形態に係るフラッシュメモリカード（９００）を用いるＭＰＥＧカメラ（１０）の正面図である。
図１１は、前記フラッシュメモリカード（９００）の構成図である。
このフラッシュメモリカード（９００）は、第１または第２の実施形態で説明したフラッシュメモリチップ（１１１〜１１３）と、第１または第２の実施形態で説明したコントローラ（１０２）と同様のカードコントローラ（１０２Ａ）とで構成される。
【００６５】
図１２に示すように、カードコントローラ（１０２Ａ）によるデータの消去単位は、２０４８バイトである。一方、エラー訂正符号ＥＣＣは、ＭＰＥＧカメラ（１０）のデータ処理単位である５１２バイト毎に付加し、処理する。
【００６６】
上記第３の実施形態に係るフラッシュメモリカード（９００）によれば、データ処理単位である５１２バイトでエラー訂正符号ＥＣＣを処理するので、書き込み／読み出し時に余計な読み出しなどを必要とせず、処理を簡単化でき、高速に動作させることが可能である。また、データ消去単位は、データ処理単位の２倍以上の２０４８バイトであるため、回路の削減とバイト当たりの高速化を図ることが出来る。
【００６７】
図１３は、上記フラッシュメモリカード（９００）の１チップ化の設計手順を示すフロー図である。
フラッシュメモリチップ（１１１〜１１３）のオンチップＥＣＣ回路（１２０〜１２３）をそのまま活用できるため、コントローラ及びそのエラー訂正機能ブロックの設計（１４０１）だけで済み、作業の負担が小さくなり、コストを低減できる。
【００６８】
なお、図１４に示すように、上記フラッシュメモリカード（９００）は、携帯端末（１１）に用いることも出来る。
【００６９】
−第４の実施形態−
図１５は、第４の実施形態に係るフラッシュメモリカード（９０１）を用いる携帯用音再生装置（１２）の外観図である。
図１６は、上記フラッシュメモリカード（９０１）の構成図である。
このフラッシュメモリカード（９０１）は、第１の実施形態で説明したフラッシュメモリチップ（１１１〜１１３）と、マイクロコンピュータ（９０２）とで構成される。
エラー訂正機能は特殊な演算を高速に行う必要があり、マイクロコンピュータ（９０２）では負荷が重い。すなわち、システムのスループットを非常に落としてしまう。従って、マイクロコンピュータ（９０２）は、外部とのデータの入出力を行うためのインタフェース機能を有するが、エラー訂正機能は有していない。
よって、図１７に示すように、フラッシュメモリチップ（１１１〜１１３）のオンチップＥＣＣ回路（１２０〜１２３）で生成される内符号Ｃ２だけが、エラー訂正符号ＥＣＣとして、携帯用音再生装置（１２）のデータ処理単位であるデータの５１２バイト単位に付加される。
【００７０】
上記フラッシュメモリカード（９０１）によれば、高価なコントローラの代わりに、安価なマイクロコンピュータ（９０２）を使用するので、非常に安価に製作できる。また、携帯用音再生装置（１２）のデータ処理単位である５１２バイト単位でエラー訂正符号ＥＣＣを処理するので、書き込み／読み出し時に余計な読み出しなどを必要とせず、処理を簡単化でき、高速に動作させることが可能である。また、データ消去単位を、データ処理単位の２倍以上に大きくすれば、回路の削減とバイト当たりの高速化を図ることが出来る。
なお、上記フラッシュメモリカード（９０１）の信頼性は、第２の実施形態のフラッシュメモリカード（９００）より劣るが、図１５に示す携帯用音再生装置（１２）では、信頼性はさほど必要ではなく、フラッシュメモリカード（９０１）が安価にできるメリットの方が大きい。
【００７１】
【発明の効果】
本発明の記録再生装置および半導体メモリによれば、次の効果が得られる。
（ａ）第１および第２の実施形態において示したように、半導体メモリ部での誤訂正があっても、その悪影響を受けずに、半導体メモリ部が持つエラー訂正能力とコントローラ部が持つエラー訂正能力とを共に活用でき、高信頼性を得ることが出来る。例えば、本発明では、半導体メモリ部のエラー訂正能力を１シンボルとし、コントローラ部のエラー訂正能力を２シンボルとするとき、３シンボルのエラー訂正能力を得ることが出来る。これに対して、従来技術では、３シンボルのエラー訂正能力が必要な場合、半導体メモリ部のエラー訂正能力を使用せずに、コントローラ部のエラー訂正能力を３シンボルとしていた。通常、エラー訂正回路の符号器，シンドローム生成器などは、エラー訂正能力に比例して回路規模が増えるので、本発明では、コントローラ部のエラー訂正回路の回路規模を、従来技術に比べて、２／３に削減することが出来る。
（ｂ）第３の実施形態において示したように、半導体メモリが使用される装置におけるデータ処理単位でエラー訂正符号を処理するので、処理を簡単化できる。また、データ処理単位よりも大きいデータ消去単位とすることで、回路の削減とバイト当たりの高速化を図ることが出来る。
また、半導体メモリが持つエラー訂正機能をそのまま活用できるので、エラー訂正機能を持つ半導体メモリをコアとした記録再生装置の設計が容易になる。
（ｃ）第４の実施形態において示したように、半導体メモリチップとマイクロコンピュータのみで記録再生装置を構成できるので、記録再生装置を安価に製作できる。
【図面の簡単な説明】
【図１】第１の実施形態に係るフラッシュメモリディスクの構成図である。
【図２】第１の実施形態に係るフラッシュメモリチップの詳細構成図である。
【図３】第１の実施形態に係るフラッシュメモリディスクで処理するデータフォーマットを示す概念図である。
【図４】第１の実施形態に係るオンチップＥＣＣ回路の読み出し時の動作を示すフローチャートである。
【図５】外符号から見たエラー位置と内符号から見たエラー位置の説明図である。
【図６】第１の実施形態に係るコントローラのＥＣＣ回路の読み出し時の動作を示すフローチャートである。
【図７】第２の実施形態に係るフラッシュメモリチップの詳細構成図である。
【図８】第２の実施形態に係るオンチップＥＣＣ回路の読み出し時の動作を示すフローチャートである。
【図９】第２の実施形態に係るコントローラのＥＣＣ回路の読み出し時の動作を示すフローチャートである。
【図１０】第３の実施形態に係るフラッシュメモリカードを用いたＭＰＥＧカメラの正面図である。
【図１１】第３の実施形態に係るフラッシュメモリカードの構成図である。
【図１２】第３の実施形態に係るフラッシュメモリカードで処理するデータフォーマットを示す概念図である。
【図１３】第３の実施形態に係るフラッシュメモリカードを設計する手順を示すフローチャートである。
【図１４】第３の実施形態に係るフラッシュメモリカードを用いた携帯端末の斜視図である。
【図１５】第４の実施形態に係るフラッシュメモリカードを用いた携帯用音再生装置の斜視図である。
【図１６】第４の実施形態に係るフラッシュメモリカードの構成図である。
【図１７】第４の実施形態に係るフラッシュメモリカードで処理するデータフォーマットを示す概念図である。
【図１８】従来のフラッシュメモリカードを設計する手順を示すフローチャートである。
【符号の説明】
１０：ＭＰＥＧカメラ
１１：携帯端末
１２：携帯用音再生装置
１０１：フラッシュメモリディスク
１０２：コントローラ
１０２Ａ：カードコントローラ
１０７：ＥＣＣ回路
１１１〜１１４：フラッシュメモリチップ
１１５〜１１８：フラッシュメモリ素子
１２０〜１２３：オンチップＥＣＣ回路
６０１：剰余多項式レジスタ
６０２：訂正フラグレジスタ
６０３：誤り位置レジスタ
６０４：誤り値レジスタ
６０５：訂正ＯＫフラグ
６０６：訂正不能フラグ
６０７：制御回路
６０８：エラー訂正回路
６０９：エラー訂正符号化回路
６２０：ラッチ回路
６２１：エラーフラグ
９００，９０１：フラッシュメモリカード
９０２：マイクロコンピュータ
Ｃ１：外符号（第１エラー訂正符号）
Ｃ２：内符号（第２エラー訂正符号）
【図１】
0003975245.tif 000016
【図２】
0003975245.tif 000017
【図３】
0003975245.tif 000018
【図４】
0003975245.tif 000019
【図５】
0003975245.tif 000020
【図６】
0003975245.tif 000021
【図７】
0003975245.tif 000022
【図８】
0003975245.tif 000023
【図９】
0003975245.tif 000024
【図１０】
0003975245.tif 000025
【図１１】
0003975245.tif 000026
【図１２】
0003975245.tif 000027
【図１３】
0003975245.tif 000028
【図１４】
0003975245.tif 000029
【図１５】
0003975245.tif 000030
【図１６】
0003975245.tif 000031
【図１７】
0003975245.tif 000032
【図１８】
0003975245.tif 000033