(57)【特許請求の範囲】
【請求項１】
３個以上の異なる強度レベルに対応させて３個以上の状態をとり得るビットデータを複数個まとめて１ブロックデータとし、記憶及び再生する多値データ記憶再生方法であって、
各データビットを、当該ビットデータの強度レベルに応じて記憶する記憶工程と、
読み出したビットデータを基準強度レベルと比較し、どの強度レベルに属するかを判定する再生工程と、を備える多値データ記憶再生方法において、
前記記憶工程は、
各ブロック内の全ビットデータを各強度レベルに分類し、各強度レベルのデータビット数を計数するビット数計数工程と、
各ブロックのデータとして、当該ブロック内の各強度レベルのデータビット数を示すレベルビット数データを付加するレベル数ビット付加工程と、を備え、
前記再生工程は、
前記レベルビット数データを再生するレベル数ビット再生工程と、
読み出したブロック内の各強度レベルのビットデータの個数が、再生したレベルビット数データが示すブロック内の各強度レベルに属するデータビット数に一致するように、前記基準強度レベルを変化させるレベル変化工程と、を備え、
前記レベル数ビット付加工程は、
各ブロック内の全ビットデータの列を、各強度レベルのデータビット数に従ってグループに分割する工程と、
該グループの間に前記強度レベルに加えて設けられた付加強度レベルのビットデータを挿入して新たなビットデータ列を形成する工程と、を備え、
レベル数ビット再生工程は、
前記新たなビットデータ列から、前記付加強度レベルのビットデータを検出する工程と、
前記新たなビットデータ列における前記付加強度レベルのビットデータの位置から、前記レベルビット数データを算出する工程と、を備えることを特徴とする多値データ記憶再生方法。
【請求項２】
前記付加強度レベルは、前記強度レベルの最大強度レベルであることを特徴とする請求項１に記載の多値データ記憶再生方法。
【請求項３】
前記レベル数ビット再生工程は、
前記基準強度レベルを前記最大強度レベル以上の値に設定する開始レベル設定工程と、
強度が前記基準強度レベル以上と判定されたビットデータの個数が、前記付加強度レベルのビットデータの個数と一致するまで前記基準強度レベルを順次減少させ、前記レベルビット数データの再生基準強度レベルを決定するレベル数ビット再生レベル決定工程と、
前記基準強度レベル以上と判定されたビットデータをレベルビット数データと判定し、ブロック内のビットデータ列における前記レベルビット数データの位置から、各強度レベルに属するデータビット数を決定するレベル数決定工程と、を備えることを特徴とする請求項２に記載の多値データ記憶再生方法。
【請求項４】
前記レベル数ビット再生工程は、
強度が前記基準強度レベル以上と判定されたビットデータの個数が、前記付加強度レベルのビットデータの個数と一致するまで前記基準強度レベルを減少又は増加させ、前記レベルビット数データの再生基準強度レベルを決定するレベル数ビット再生レベル決定工程と、
前記基準強度レベル以上と判定されたビットデータをレベルビット数データと判定し、ブロック内のビットデータ列における前記レベルビット数データの位置から、各強度レベルに属するデータビット数を決定するレベル数決定工程と、を備えることを特徴とする請求項２に記載の多値データ記憶再生方法。
【請求項５】
前記レベル変化工程は、
上位の強度レベルから順に、
強度が前記基準強度レベル以上と判定されたビットデータの個数が、前記付加強度レベルのビットデータの個数と当該強度レベル以上の強度レベルに属するデータビットの個数の合計値に一致するまで前記基準強度レベルを順次減少させ、当該強度レベルの再生基準強度レベルを決定する再生レベル決定工程と、
新たに前記基準強度レベル以上と判定されたビットデータを当該強度レベルのビットデータと判定する判定工程と、をすべてのビットが確定するまで繰り返すことを特徴とする請求項３又は４に記載の多値データ記憶再生方法。
【請求項６】
前記レベル変化工程は、
上位の強度レベルから順に、
それまでに確定しているビットの出力を前記基準強度レベルにかかわらず前記基準強度レベル以下と判定されるように設定する工程と、
強度が前記基準強度レベル以上と判定されたビットデータの個数が、当該強度レベルに属するデータビットの個数の合計値に一致するまで前記基準強度レベルを減少又は増加させ、当該強度レベルの再生基準強度レベルを決定する再生レベル決定工程と、
新たに前記基準強度レベル以上と判定されたビットデータを当該強度レベルのビットデータと判定する判定工程と、をすべてのビットが確定するまで繰り返すことを特徴とする請求項３又は４に記載の多値データ記憶再生方法。
【請求項７】
前記レベル変化工程における最小強度レベルのビットデータの判定は、最小強度レベルより１つ上の強度レベルのビットデータが判定された後、残りのビットデータを最小強度レベルのビットデータと判定することを特徴とする請求項５又は６に記載の多値データ記憶再生方法。
【請求項８】
前記付加強度レベルは、前記強度レベルの最小強度レベルであることを特徴とする請求項１に記載の多値データ記憶再生方法。
【請求項９】
前記基準強度レベルは、読み出しの誤りを生じない速度で、前記レベル数ビット再生レベル決定工程における１回の読み出し動作中においても変化されることを特徴とする請求項３又は４に記載の多値データ記憶再生方法。
【請求項１０】
前記基準強度レベルは、読み出しの誤りを生じない速度で、前記再生レベル決定工程における１回の読み出し動作中においても変化されることを特徴とする請求項５又は６のいずれか１項に記載の多値データ記憶再生方法。
【請求項１１】
３個以上の異なる強度レベルに対応させて３個以上の状態をとり得るセル（１、２）を複数個配列したセルアレイと、各ビットデータの強度レベルに応じた複数の電圧を供給する多値基準電圧源（３）と、読み出し用の比較参照電圧源（６）と、読み出したビットデータを前記比較参照電圧源（６）の電圧と比較する比較器（５２）とを備え、ビットデータを複数個まとめて１ブロックデータとし記憶する多値データ記憶装置において、
書き込まれる１ブロックデータ内の全ビットデータを各強度レベルに分類し、各強度レベルのデータビット数を計数する入力レベル値個数計数手段（４、１４）と、
各ブロック内の全ビットデータの列を、各強度レベルのデータビット数に従ってグループに分割し、該グループの間に前記強度レベルに加えて設けられた付加強度レベルのビットデータを挿入して新たなビットデータ列を形成する書込みデータ変換部（１９）と、
形成した前記新たなビットデータ列を前記セル（１、２）に書き込む書き込み手段（５１、７４）と、
読み出された前記新たなビットデータ列から、前記付加強度レベルのビットデータを検出し、当該ビットデータ列における前記付加強度レベルのビットデータの位置から、前記レベルビット数データを算出し、読み出したブロック内の各強度レベルのビットデータの個数が、前記レベルビット数データに一致するように、前記比較参照電圧源（６）の電圧を変化させる読み出し制御手段（８）と、を備えることを特徴とする多値データ記憶装置。
【請求項１２】
前記付加強度レベルは、前記強度レベルの最大強度レベルであることを特徴とする請求項１１に記載の多値データ記憶装置。
【請求項１３】
前記読み出し制御手段（８）は、
前記比較参照電圧源（６）の電圧を前記最大強度レベル以上の値に設定し、強度が前記比較参照電圧源（６）の電圧以上と判定されたビットデータの個数が、前記付加強度レベルのビットデータの個数と一致するまで前記比較参照電圧源（６）の電圧を順次減少させ、前記比較参照電圧源（６）の電圧以上と判定されたビットデータをレベルビット数データと判定し、ブロック内のビットデータ列における前記レベルビット数データの位置から、各強度レベルに属するデータビット数を決定することを特徴とする請求項１２に記載の多値データ記憶装置。
【請求項１４】
前記読み出し制御手段（８）は、
強度が前記比較参照電圧源（６）の電圧以上と判定されたビットデータの個数が、前記付加強度レベルのビットデータの個数と一致するまで前記比較参照電圧源（６）の電圧を減少又は増加させ、前記比較参照電圧源（６）の電圧以上と判定されたビットデータをレベルビット数データと判定し、ブロック内のビットデータ列における前記レベルビット数データの位置から、各強度レベルに属するデータビット数を決定することを特徴とする請求項１２に記載の多値データ記憶装置。
【請求項１５】
前記読み出し制御手段（８）は、
上位の強度レベルから順に、
強度が前記比較参照電圧源（６）の電圧以上と判定されたビットデータの個数が、前記付加強度レベルのビットデータの個数と当該強度レベル以上の強度レベルに属するデータビットの個数の合計値に一致するまで前記比較参照電圧源（６）の電圧を順次減少させ、新たに前記基準強度レベル以上と判定されたビットデータを当該強度レベルのビットデータと判定する動作をすべてのビットが確定するまで繰り返すことを特徴とする請求項１３又は１４に記載の多値データ記憶装置。
【請求項１６】
前記読み出し制御手段（８）は、
上位の強度レベルから順に、
それまでに確定しているビットの出力を前記基準強度レベルにかかわらず前記基準強度レベル以下と判定されるように設定する動作と、
強度が前記比較参照電圧源（６）の電圧以上と判定されたビットデータの個数が、当該強度レベルの個数に一致するまで前記比較参照電圧源（６）の電圧を減少又は増加させ、新たに前記基準強度レベル以上と判定されたビットデータを当該強度レベルのビットデータと判定する動作と、をすべてのビットが確定するまで繰り返すことを特徴とする請求項１３又は１４に記載の多値データ記憶装置。
【請求項１７】
前記読み出し制御手段（８）は、
最小強度レベルより１つ上の強度レベルのビットデータが判定された後、残りのビットデータを最小強度レベルのビットデータと判定することを特徴とする請求項１５又は１６に記載の多値データ記憶装置。
【請求項１８】
前記付加強度レベルは、前記強度レベルの最小強度レベルであることを特徴とする請求項１１に記載の多値データ記憶装置。
【請求項１９】
当該記憶装置は、半導体ダイナミックメモリであり、メモリセルに書き込まれた電荷量の大小により、３個以上の異なる状態を記憶することを特徴とする請求項１１から１８のいずれかに記載の多値データ記憶装置。
【請求項２０】
当該記憶装置は、電気的に消去及び書き込み可能な半導体メモリであり、メモリセルを構成するトランジスタの閾値電圧の大小により、３個以上の異なる状態を記憶することを特徴とする請求項１１から１８のいずれかに記載の多値データ記憶装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、３個以上の状態とり得るビットデータを複数個まとめて１ブロックデータとし記憶及び再生する多値データ記憶再生方法及び多値データ記憶装置に関する。
【０００２】
【従来の技術】
近年、半導体記憶装置（以下、半導体メモリと称する。）やデータ通信においては、大容量化が要求されている。大容量化の方法の１つに、１ビットのデータが３個以上の状態を取り得るようにする多値データ化がある。
従来の一般的な半導体メモリやデータ通信においては、データは２進法に基づいて表され、各ビットデータは、例えば、「０」と「１」又は「高（Ｈ）」と「低（Ｌ）」の２状態のいずれかの状態をとるようになっていた。データがいずれの状態であるかの判定は、各状態の中間レベルに閾値レベルを設定し、それよりも大きいか小さいかを判定することにより行っていた。このような２進法に基づくデータの表現は、取り得る状態、すなわちデータの容量は小さいが、判定が容易で、データの判定の誤りが起きにくいという利点がある。
【０００３】
これに対して、データを多値化するということは、図１２に示すように、１ビットのデータが取り得る範囲を複数個に分割するわけで、もし各ビットデータが取り得る電圧等の範囲が同じならば、各状態に割り当てられる範囲が狭くなるわけで、データが経時変化を受けたり、途中で外乱の影響を受けて変動する場合には、ある状態のデータが別の状態に変化することが起こり易くなるので、その分データの信頼性が損なわれることになる。
【０００４】
本発明は、たとえ変動しても元のデータが正確に再現されるようにすることに関し、経時変化を受ける半導体メモリや磁気記憶装置等の記憶装置、通信途中で信号レベルが劣化する通信システム等、データ値を表す物理量が経時変化を受けたり途中で変動するものであれば適用可能である。本発明は、多値データに限らず、元のデータが２値データであっても適用可能であるが、その場合にも、データビット自体は３値の状態で記憶又は通信される必要がある。本発明は、特に信頼性が問題になる多値データに適用すると効果が大きい。ここでは、各セルが多値データを記憶する半導体メモリを例として説明する。
【０００５】
図１３は、従来の多値レベル半導体ダイナミックメモリの構成を示すブロック図である。
半導体ダイナミックメモリは、各メモリセルに設けられた容量素子に保持された電荷量の大小でデータを記憶する。従って、データを記憶する場合には、各メモリセルに記憶される電荷量を複数の範囲に分割し、電荷量の各範囲にデータの各状態を割り当てる。従って、２個の範囲に分割すれば、従来の２値データの半導体メモリであり、３個以上の範囲に分割すれば、多値データの半導体メモリになる。各メモリセルに保持される電荷量は印加する電圧によって変化し、読み出されたデータの電圧は各メモリセルに保持された電荷量に応じて変化する。
【０００６】
図１３において、参照番号３１はそれぞれが多値データを記憶可能なメモリセルを配列したメモリセルアレイであり、４１は行デコーダであり、４２は列ゲート回路であり、４３は列デコーダであり、４４は入力される書き込みデータ信号に従って各メモリセルに複数の電圧レベルを書き込むための書き込み回路であり、４５は読み出したデータがどの電圧レベルであるかを判定する比較器であり、４６は書き込みと読み出しに使用する複数のレベルの電圧を供給する多値基準電圧源であり、４７は行ドライバである。メモリセルアレイ３１、行デコーダ４１、列ゲート回路４２、列デコーダ４３及び行ドライバ４７は、各メモリセルが多値データを記憶する点を除けば従来のものと同様であるので、ここでは説明を省略する。
【０００７】
多値データを書き込む時には、多値基準電圧源４６から出力される複数の電圧から、入力される多値データに対応する電圧を書き込み回路４４で選択して、列デコーダ４３を介して列ゲート回路４２に印加する。これに応じて、アクセスされたメモリセルには多値データに対応する電圧が印加され、メモリセルの容量素子には多値データに対応する電荷量が保持される。
【０００８】
多値データの読み出し時には、アクセスされたメモリセルに保持された電荷量に対応する電圧が、列ゲート回路４２から比較器４５に出力されので、比較器４５はこの電圧を多値基準電圧源４６の出力する複数の電圧と比較して、いずれの電圧レベルに対応するかを判定する。これによりアクセスされたメモリセルに記憶された多値データが読み出される。
【０００９】
また、Ｅ2 ＰＲＯＭやフラッシュメモリと呼ばれる電気的に消去及び書き込み可能な半導体メモリであれば、フローティングゲートに保持される電荷量の大小によってメモリセルを構成するトランジスタの閾値電圧が変化するので、閾値電圧の大小により３個以上の異なる状態を記憶する。いずれにしろ、容量素子やフローティングゲートに保持された電荷量は時間の経過と共に減少するため、ある記憶値で記憶されたメモリセルが、別の記憶値に変化するが起こり得る。
【００１０】
【発明が解決しようとする課題】
各電圧レベルにはそれぞれそのレベルであると判定される所定の範囲が、隣接する範囲と重ならないように、ある程度の余裕をもって定められている。メモリセルに保持された電荷量は、時間の経過に従って徐々に放電されて減少するため、時間が経過しても、ある電圧レベルで記憶されたメモリセルが、上記の範囲を越えて変化しないように、範囲を設定する必要がある。
【００１１】
しかし、各ビットデータを多値化した場合には、各電圧レベルに割り当てられる範囲が減少するため、この範囲を越えて変化しないようにするのはかなり難しく、データの信頼性が十分でないという問題があった。
本発明は、上記問題点に鑑みてなされたものであり、データの処理において、たとえ変動しても元のデータが正確に再現されるようにすることを目的とする。
【００１２】
【課題を解決するための手段】
上記目的を達成するため、本発明の多値データ記憶再生方法は、３個以上の異なる強度レベルに対応させて３個以上の状態をとり得るビットデータを複数個まとめて１ブロックデータとし、記憶及び再生する多値データ記憶再生方法であって、各データビットを、当該ビットデータの強度レベルに応じて記憶する記憶工程と、読み出したビットデータを基準強度レベルと比較し、どの強度レベルに属するかを判定する再生工程とを備える多値データ記憶再生方法において、記憶工程は、各ブロック内の全ビットデータを各強度レベルに分類し、各強度レベルのデータビット数を計数するビット数計数工程と、各ブロックのデータとして、そのブロック内の各強度レベルのデータビット数を示すレベルビット数データを付加するレベル数ビット付加工程と、を備え、再生工程は、レベルビット数データを再生するレベル数ビット再生工程と、読み出したブロック内の各強度レベルのビットデータの個数が、再生したレベルビット数データが示すブロック内の各強度レベルに属するデータビット数に一致するように、基準強度レベルを変化させるレベル変化工程と、を備え、レベル数ビット付加工程は、各ブロック内の全ビットデータの列を、各強度レベルのデータビット数に従ってグループに分割する工程と、グループの間に強度レベルに加えて設けられた付加強度レベルのビットデータを挿入して新たなビットデータ列を形成する工程と、を備え、レベル数ビット再生工程は、新たなビットデータ列から、付加強度レベルのビットデータを検出する工程と、新たなビットデータ列における付加強度レベルのビットデータの位置から、レベルビット数データを算出する工程と、を備えることを特徴とする。
【００１４】
更に、本発明の第２の態様の方法においては、上記方法において、付加強度レベルは、強度レベルの最大強度レベル又は最小強度レベルであることを特徴とする。
付加強度レベルが最大強度レベルの時には、レベル数ビット再生工程は、基準強度レベルを最大強度レベル以上の値に設定する開始レベル設定工程と、強度が基準強度レベル以上と判定されたビットデータの個数が、付加強度レベルのビットデータの個数と一致するまで基準強度レベルを順次減少させ、レベルビット数データの再生基準強度レベルを決定するレベル数ビット再生レベル決定工程と、基準強度レベル以上と判定されたビットデータをレベルビット数データと判定し、ブロック内のビットデータ列におけるレベルビット数データの位置から、各強度レベルに属するデータビット数を決定するレベル数決定工程と、を備える。最初に設定する基準レベルを適当なレベルに設定し、個数が一致するまで基準レベルを上下させてもよい。更に、レベル変化工程は、上位の強度レベルから順に、強度が基準強度レベル以上と判定されたビットデータの個数が、付加強度レベルのビットデータの個数とその強度レベル以上の強度レベルに属するデータビットの個数の合計値に一致するまで基準強度レベルを順次減少させるか又は上下させ、その強度レベルの再生基準強度レベルを決定する再生レベル決定工程と、新たに基準強度レベル以上と判定されたビットデータをその強度レベルのビットデータと判定する判定工程と、をすべてのビットが確定するまで繰り返す。この場合、すでに確定したビットについては、基準レベルにかかわらず、基準レベル以下と判定するようにすれば、判定されたビットデータの個数がその強度レベルに属するデータビットの個数に一致するようにすればよい。更に、最小強度レベルに属するビットについては、最小強度レベルより１つ上の強度レベルのビットデータが判定された後、残りのビットデータを最小強度レベルのビットデータと判定してもよい。
【００１５】
付加強度レベルが強度レベルの最小強度レベルである時には、最初にレベル数ビット再生工程で基準強度レベルを最小強度レベル以下の値に設定した後、上記と同様に、順次の基準強度レベルを増加させながら、下位の強度レベルから順に、各強度レベルに属するデータビットを決定していく。
基準強度レベルの変化は、読み出しの誤りを生じない速度であれば、１回の読み出し動作中においても変化されることが可能である。
【００１６】
図１は、本発明の多値データ記憶装置の原理構成を示すブロック図である。
図１および詳細は後述する図３に示すように、本発明の多値データ記憶装置は、３個以上の異なる強度レベルに対応させて３個以上の状態をとり得るセル１、２を複数個配列したセルアレイと、各ビットデータの強度レベルに応じた複数の電圧を供給する多値基準電圧源３と、読み出し用の比較参照電圧源６と、読み出したビットデータを比較参照電圧源６の電圧と比較する比較器５２と、を備え、ビットデータを複数個まとめて１ブロックデータとし記憶する多値データ記憶装置において、書き込まれる１ブロックデータ内の全ビットデータを各強度レベルに分類し、各強度レベルのデータビット数を計数する入力レベル値個数計数手段４、１４と、各ブロック内の全ビットデータの列を、各強度レベルのデータビット数に従ってグループに分割し、グループの間に強度レベルに加えて設けられた付加強度レベルのビットデータを挿入して新たなビットデータ列を形成する書込みデータ変換部１９と、形成した新たなビットデータ列をセル１、２に書き込む書き込み手段５１、７４読み出された新たなビットデータ列から、付加強度レベルのビットデータを検出し、ビットデータ列における付加強度レベルのビットデータの位置から、レベルビット数データを算出し、読み出したブロック内の各強度レベルのビットデータの個数が、前記レベルビット数データに一致するように、比較参照電圧源６の電圧を変化させる読み出し制御手段８と、を備えることを特徴とする。
【００１７】
例えば、この記憶装置は、半導体ダイナミックメモリであり、メモリセルに書き込まれた電荷量の大小により、３個以上の異なる状態を記憶することを特徴とする。また、この記憶装置は、電気的に消去及び書き込み可能な半導体メモリであり、メモリセルを構成するトランジスタの閾値電圧の大小により、３個以上の異なる状態を記憶することを特徴とする。
【００１８】
【作用】
半導体メモリや磁気記憶装置等の記憶装置や、通信システムにおいては、各データビットの物理量はほぼ同様の傾向で変化する。従って、ある強度レベルのデータビットが変化して異なる強度レベルに変化しても、各データビットの強度レベルの大小関係が逆転することはほとんどない。
【００１９】
本発明では、ブロック内の各強度レベルのデータビット数を一緒に記憶しており、基準強度レベル（比較参照電圧源の電圧）を変化させながら、各強度レベルに属するデータビット数が記憶した各強度レベルのデータビット数と一致するかを確認しながら再生するため、高い信頼性でデータを再生することができる。
また、ブロック内の各強度レベルのデータビット数を高い信頼性で記憶する方法は各種考えられるが、本発明の第２の態様はこれを少ないデータビット数で高い信頼性でおこなう方法及び装置である。
【００２０】
図２は、本発明によるブロック内の各強度レベルのデータビット数を記憶する原理を説明する図である。
いま、ブロック内のデータビット数がｎ個で、各データビットがｉ個のレベルを取り得るとし、ブロック内のデータビットが図２の（１）に示すような列をなし、各レベルに属するデータビットの個数が、それぞれ、ｊ１、ｊ２、…、ｊｉであったとする。このような場合、本発明では、各データビットが取り得るレベルを（ｉ＋１）とし、各レベルのデータビットに最大又は最小のレベルを除く残りのｉ個のレベルを順次割り当てる。そして、図２の（２）に示すように、ブロック内のデータビット列を一方から各レベルに属するデータビットの個数、すなわちｊ１、ｊ２、…、ｊｉ個のグループに分類する。その上で、各グループの間に、最大又は最小のレベルのデータビットを挿入する。グループの個数はｉ個であるから、この付加された最大又は最小のレベルのデータビットの個数は（ｉ−１）個である。このようにして形成した新しいデータビット列を記憶する。すなわち、新しいデータビット列のデータビット数は、（ｎ＋ｉ−１）になる。
【００２１】
最大レベルのデータビットが付加され、上記のようにして記憶したデータビット列を読み出して再生する場合には、まず読み出し用の基準強度レベル（比較参照電圧源の電圧）を十分に高いレベル、すなわち、この基準強度レベルより高いデータビットの個数が（ｉ−１）個以下であるように設定する。そして、基準強度レベルを順に減少させると、基準強度レベルより高いと判定されるデータビットの個数が増加するが、その個数が（ｉ−１）個に一致した時に基準強度レベルより高いと判定されたデータビットが、図２の（２）の各グループを分ける付加されたデータビットである。従って、これらのデータビットの列内での位置を判定すれば、各レベルに属するデータビットの個数、すなわちｊ１、ｊ２、…、ｊｉが分かる。
【００２２】
例えば、最大レベルの次のレベルに属するデータビットの個数をｊｉとする。更に、基準強度レベルを順に減少させると、基準強度レベルより高いと判定されるデータビットの個数は更に増加するが、その個数が（ｉ−１＋ｊｉ）個に一致した時に、基準強度レベルより高いと判定されたデータビットは上記の付加データビットと最大レベルの次のレベルに属するデータビットである。付加データビットはすでに判明しているから、残りのデータビットが最大レベルの次のレベルに属するデータビットである。このようにして、順次基準強度レベルを減少させ、増加したデータビットの個数が判定しようとする強度レベルに属するデータビットの個数に一致した時に、増加したデータビットとする動作を繰り返せば、順次各強度レベルに属するデータビットが判明する。
【００２３】
各強度レベルに属するデータビットの個数をこのようにして記憶することにより、たとえデータビットの強度レベルが変化しても、その変化が同じ傾向であれば、正確に各強度レベルに属するデータビットの個数を再生することができる。また、各強度レベルに属するデータビットの個数を記憶するために付加するデータビットの個数は（ｉ−１）個であり、強度レベルの個数によってのみ決定される。従って、ブロック内のデータビットの個数が増加しても、付加するデータビットの個数は一定である。
【００２４】
【実施例】
図３は本発明の実施例の半導体ダイナミックメモリの全体構成を示すブロック図である。この実施例では、ｎビットのデータが同時に入出力され、各データビットはｉ個のデータレベルをとる。
図３において、参照番号６１はメモリセルアレイであり、内部は（ｎ＋ｉ−１）個のブロックに分割されており、（ｎ＋ｉ−１）個のデータが同時に入出力される。メモリセルアレイの各メモリセルは（ｉ＋１）個の状態を記憶可能である。行デコーダ７１、列ゲート回路７２、列デコーダ７３、行ドライバは、それぞれ従来のものと同様である。従って、ここでは詳しい説明は省略する。
【００２５】
参照番号１０−１、１０−２、…、１０−（ｎ＋ｉ−１）は、メモリセルに対して書き込み・読み出しを行う機能ブロックであり、列ゲート回路によって選択された（ｎ＋ｉ−１）個のメモリセルに対して、同時に読み書きを行う。
参照番号１３は共通に設けられた多値基準電圧源であり、（ｉ＋１）個の状態に対応する電圧を供給する。１４は書き込まれるブロック内のｎ個のデータにおける各記憶値の個数を計数する入力レベル値個数計数部である。１９は書き込みデータ列に入力レベル値個数データを付加する書き込みデータ変換部である。１５は各メモリブロックの比較器７５から出力される２値の論理値の個数を計数する比較出力計数部である。１６は各メモリブロックからデータを読み出す時に比較器７５に供給する比較参照電圧を供給する比較参照電圧源である。１８は読み出し制御部である。入力レベル値個数計数部１４、比較出力計数部１５及び読み出し制御部１８は、マイクロコンピュータやシーケンス回路で実現される。
本実施例のメモリの動作を説明する。
【００２６】
いま、図４の（１）に示すようなブロックデータが入力されて書き込まれるとする。図７は、このようなブロックデータを書き込む動作を示すフローチャートである。
図から明らかなように、このブロックデータは８ビットのデータで構成されている。すなわち、ｎは８である。各データビットは４種のデータレベルをとり得る。従って、ｉは４であり、各メモルセルは５個の記憶値、すなわち、記憶値０、記憶値１、記憶値２、記憶値３、記憶値４の順で大きくなる５個の記憶値をとり得る。このブロック内には、データレベル０が２個、データレベル１が１個、データレベル２が３個、データレベル３が２個含まれる。
【００２７】
図７のステップ７０１で、この各データレベルの個数が計数される。入力レベル値個数計数部１４がこれを計数し、計数値は読み出し制御部１８内に記憶される。
ステップ７０２では、入力されたデータブロックを、図４の（２）に示すように、各データレベルの個数、すなわち、２、１、３、２に従って、順にｉ個のグループに分割し、各グループの間にデータレベル４のビットが（ｉ−１）個挿入し、新しいデータブロックを形成する。従って、この例では、各ビットが５状態をとる１１ビットの新しいデータブロックが形成されることになる。
【００２８】
以上のようにして形成された新しいデータブロックは、ステップ７０３で、各メモリブロックにデータレベルに対応する記憶値の電圧で記憶される。従って、ブロック内における各データレベルの個数を示すために付加された最大の記憶値４のデータは、一定のメモリブロックに記憶されるわけではなく、ブロックデータによって異なるメモリブロックに記憶されることになる。
【００２９】
次に、上記のようにして記憶された図４に示すデータブロックを読み出す動作について説明する。
図５と図６は、読み出し動作における各メモリブロックの記憶値と、各比較器７５の出力、比較参照電圧源１６の出力する電圧の参照レベル、比較出力計数部１５の出力する「Ｈ」と判定された個数、及び読み出し制御部１８に保持される読み出し個数のレジスタの、動作に伴う内容の変化を示す図である。図８と図９は、読み出し動作を示すフローチャートである。
【００３０】
ステップ８０１で、比較参照電圧Ｖを最高レベル５にし、ステップ８０２で読み出し個数レジスタ１７にｉ−１を入力する。ここでは、ｉが４レベルであり、４つのグループに分割されるので、挿入された記憶値４のビットは３個であるから、読み出し個数は３である。この状態が図５の（１）である。
ステップ８０３で各メモリブロックのセルから記憶値を読み出して比較器７５で比較し、ステップ８０４で比較出力計数部１５が出力が「Ｈ」である比較器７５の個数を計数する。そしてステップ８０５でこの計数値が上記の読み出し個数に等しいか判定する。
【００３１】
最初の時には、各メモリセルに記憶されたレベルより比較参照電圧Ｖのレベルの方が大きいから、すべての比較器７５は論理値「Ｌ」を出力する。従って、比較出力計数値は０であり、判定結果は「否（Ｎ）」である。判定結果が「Ｎ」の時には、ステップ８０６で比較参照電圧Ｖを所定量減少させ、ステップ８０３に戻る。そして、計数値が読み出し個数に等しくなるまで、ステップ８０３から８０６を繰り返す。
【００３２】
図５の（２）は、比較参照電圧Ｖを３．５まで減少した時点の状態を示し、この状態では、左から３番目、５番目、９番目のメモリブロックの比較器の出力が「Ｈ」になり、計数値は３になり、読み出し個数と一致する。これらのメモリブロックに記憶された記憶値が、図４の（２）に示す、グループの間に挿入されたデータビットである。従って、記憶値０のビットデータが２個、記憶値１のビットデータが１個、記憶値２のビットデータが３個、記憶値３のビットデータが２個であることが分かる。これは、図４に示したデータレベルの個数に一致する。このようにして各データレベルの個数が得られる。
【００３３】
ステップ８０７では、各データレベルの個数ｍ１、ｍ２、…、ｍｉを記憶し、ステップ８０８でレジスタｊにｉを入れる。ステップ８０９では、読み出し個数を（ｉ−１＋ｍｉ）に設定する。すなわち、ｉは４で、ｍｉは２であるから、読み出し個数は５に設定される。
上記と同様に、ステップ８１０で各メモリブロックのセルから記憶値を読み出して比較器７５で比較し、ステップ８１１で比較出力計数部１５が出力が「Ｈ」である比較器７５の個数を計数する。そしてステップ８１２でこの計数値が上記の読み出し個数に等しいか判定する。判定結果が「Ｎ」の時には、ステップ８１３で比較参照電圧Ｖを所定量減少させ、ステップ８１０に戻る。そして、計数値が読み出し個数に等しくなるまで、ステップ８１０から８１３を繰り返す。
【００３４】
図６の（３）は、比較参照電圧Ｖを２．５まで減少した時点の状態を示し、この状態では、左から１番目、３番目、５番目、９番目、１１番目のメモリブロックの比較器の出力が「Ｈ」になり、計数値は５になり、読み出し個数と一致する。ここで、新たに「Ｈ」と判定されたデータビットは、１番目と１１番目であり、１番目と１１番目のデータビットは記憶値３、すなわち、データレベル３であることが分かる。
【００３５】
ステップ８１４では、新たに「Ｈ」と判定されたデータビットを記憶値３とし、ステップ８１５でレジスタｊの値を１だけ減少させる。ステップ８１６で、レジスタｊの値が０であるか判定し、１でなければ、ステップ８１７で読み出し個数をそれまでの読み出し個数にｍｊを加えた値とする。すなわち、ｊを３にし、読み出し個数を５に３を加えた８にする。そしてステップ８１０に戻る。このようにして、最小のデータレベルの１つ前のデータレベルまでの判定を行う。最小のデータレベルの１つ前のデータレベルが判定されると、ステップ８１６で、「正（Ｙ）」になるので、ステップ８１８で残りのビットを最小のデータレベルと判定する。図６の（４）と（５）は、それぞれ、記憶値２と１のデータビットが判定される状態を示している。
【００３６】
上記の実施例では、ブロックデータを各レベルの個数に応じて分割したグループの間に挿入するビットのレベルを最大レベルとしているが、これを最小レベルにすることも可能である。その場合には、最初に比較参照電圧Ｖをもっとも小さいレベルにした後、順次増加させるようにする。
更に、上記の実施例では、読み出し時に比較参照電圧Ｖをもっとも大きいか小さいレベルにした後、順次比較参照電圧Ｖを減少又は増加させているが、読み出し個数に一致するまで比較参照電圧Ｖを減少又は増加させてもよい。また、途中の各レベルの読み出し個数は、それまでに確定したデータビットの個数と判定しようとするデータビットの個数の和としたが、すでに確定したデータビットの比較器の出力を比較参照電圧Ｖにかかわらず、判定に影響しないように設定できれば、読み出し個数はそのレベルに属するデータビットの個数と一致するかを判定すればよい。
【００３７】
更に、上記の実施例では、最後のレベルに属するデータビットの判定は、その１つ前のレベルに属するデータビットの判定が終了した段階で、残りの判定されていないデータビットを最後のレベルに属するデータビットと判定したが、最後まで、それまでと同様の動作を繰り返して判定することもできる。
挿入するビットのレベルを最大レベルとした場合に、このような方法を適用した読み出し動作を、図１０と図１１のフローチャートに示す。
【００３８】
開始時点では、比較参照電圧Ｖは適当な値に設定されている。ステップ９０１で読み出し個数レジスタ１７にｉ−１を入力し、ステップ９０２で各メモリブロックのセルから記憶値を読み出して比較し、ステップ９０３で出力が「Ｈ」の個数を計数する。そしてステップ９０４でこの計数値が上記の読み出し個数より小さいか判定し、小さければステップ９０５で比較参照電圧Ｖを所定量増加させてステップ９０２に戻る。ステップ９０４で計数値が読み出し個数より小さくないと判定されると、ステップ９０６で更に計数値が上記の読み出し個数より大きいかを判定する。大きければ、ステップ９０７で比較参照電圧Ｖを所定量減少させてステップ９０２に戻る。このようにして、ステップ９０６で計数値が読み出し個数より大きくないと判定された場合には、計数値が上記の読み出し個数に等しいくなる。
【００３９】
ステップ９０８では、各データレベルの個数ｍ１、ｍ２、…、ｍｉを記憶する。ステップ９０９で、その時点で確定したデータビットを、比較参照電圧Ｖにかかわらず比較参照電圧Ｖ未満と判定されるように設定する。すなわち、Ｌｏｗに設定する。ステップ９１０でレジスタｊにｉを入れる。ステップ９１１では、読み出し個数をｍｉに設定する。ステップ９１２で各メモリブロックのセルから記憶値を読み出して比較し、ステップ９１３で「Ｈ」である個数を計数する。以下、ステップ９１４、９１５、９１６及び９１７はステップ９０４から９０７と同じであり、読み出し個数をｍｉに等しい個数のデータビットが確定する。ステップ９１８でこれらのデータビットを記憶値（ｊ−１）とし、ステップ９１８でこれら新しく確定したデータビットをＬｏｗに設定する。ステップ９２０とステップ９２１の判定動作により、すべてのデータビットが確定するまで、上記の動作を繰り返す。
【００４０】
図１０と図１１のような読み出し動作にすることにより、多少動作時間が長くなるが、同様のアルゴリズムが共通して適用できるため、制御が簡単になる。更に、精密な制御が難しかったり、雑音の影響で計数個数が読み出し個数を越えてしまうことが起こり得るが、そのような場合でも正常に判定できるという利点がある。
【００４１】
また、半導体ダイナミックメモリを例として説明したが、本発明はフラッシュメモリやＥ2 ＰＲＯＭ等の他のメモリにも適用可能である。更に、データ通信等においても適用可能である。
【００４２】
【発明の効果】
以上説明したように、本発明によれば、データの記憶等の処理において、たとえデータのレベルが変動しても正確に再生することが可能になる。
【図面の簡単な説明】
【図１】本発明の半導体メモリの原理構成図である。
【図２】本発明の各値レベルの個数を記憶する原理を説明する図である。
【図３】本発明の実施例の半導体ダイナミックメモリの全体構成を示す図である。
【図４】実施例の動作を説明するために使用されるブロックデータの例を示す図である。
【図５】実施例における読み出し動作中の状態を示す図である。
【図６】実施例における読み出し動作中の状態を示す図である。
【図７】実施例における書き込み動作を示すフローチャートを示す図である。
【図８】実施例における読み出し動作を示すフローチャートの一部を示す図である。
【図９】実施例における読み出し動作を示すフローチャートの一部を示す図である。
【図１０】実施例における他の読み出し動作を示すフローチャートの一部を示す図である。
【図１１】実施例における他の読み出し動作を示すフローチャートの一部を示す図である。
【図１２】ビットデータの多値化を説明する図である。
【図１３】従来の多値データメモリの構成を示す図である。
【符号の説明】
１、２…メモリセル
３…多値基準電圧源
４…入力レベル値個数計数手段
５…比較値計数手段
６…比較参照電圧源
７…読み出し個数記憶手段
８…読み出し制御手段
【図１】
0004079458.tif 000002
【図２】
0004079458.tif 000003
【図３】
0004079458.tif 000004
【図４】
0004079458.tif 000005
【図５】
0004079458.tif 000006
【図６】
0004079458.tif 000007
【図７】
0004079458.tif 000008
【図８】
0004079458.tif 000009
【図９】
0004079458.tif 000010
【図１０】
0004079458.tif 000011
【図１１】
0004079458.tif 000012
【図１２】
0004079458.tif 000013
【図１３】
0004079458.tif 000014