(57)【要約】【課題】  リードライトの信頼性の高い半導体メモリコントローラおよび前記半導体メモリコントローラを有する半導体メモリを提供する。【解決手段】  メモリ部に記憶するデータを、Ｎ（ただし、Ｎは偶数）ビット幅のバスを介して、メモリ部へ出力する半導体メモリコントローラであって、データの２重化処理を行い、それぞれのデータを、Ｎ／２ビット幅にて、同時にメモリ部の２箇所に出力し、メモリ部の２箇所に記憶する。【選択図】図１
2009157515.tif 000002
【特許請求の範囲】
【請求項１】
メモリ部に記憶するデータを、Ｎ（ただし、Ｎは偶数）ビット幅のバスを介して、メモリ部へ出力するメモリコントローラであって、
前記データの２重化処理を行い、それぞれの前記データを、Ｎ／２ビット幅にて、同時に前記メモリ部の２箇所に出力し、前記メモリ部の前記２箇所に記憶することを特徴とする半導体メモリコントローラ。
【請求項２】
前記メモリコントローラは、誤り訂正符号を付与し復号する誤り訂正回路を有し、
前記データが前記誤り訂正回路により誤り訂正符号を付加された符号化データであり、
前記メモリ部の前記２箇所に記憶された前記データのうち、前記誤り訂正回路が復号した、いずれかのデータを、外部に出力することを特徴とする請求項１に記載の半導体メモリコントローラ。
【請求項３】
前記メモリ部が、ＮＡＮＤ型フラッシュメモリ部であり、
請求項１から請求項２のいずれか１項に記載の半導体メモリコントローラを有することを特徴とする半導体メモリ。
【請求項４】
前記メモリ部が、多値記録方式のＮＡＮＤ型フラッシュメモリ部であり、
請求項１から請求項２のいずれか１項に記載の半導体メモリコントローラを有することを特徴とする半導体メモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリコントローラおよび半導体メモリに関し、特に入力データに２重化処理を行いメモリ部に記憶する半導体メモリコントローラ、および、前記半導体メモリコントローラを有する半導体メモリに関する。
【背景技術】
【０００２】
近年、半導体メモリ、特に、不揮発性の記憶媒体であるフラッシュメモリの開発が行われ、デジタルカメラ等の情報機器の記憶媒体として普及している。このような機器が扱うデータが大容量化したことに伴い、フラッシュメモリの大容量化および高密度化も進んでいる。ＮＡＮＤ型フラッシュメモリは、近年特に多く用いられている。  
ＮＡＮＤ型フラッシュメモリは、電荷蓄積層にチャネルから絶縁膜を介して注入した電荷をデジタルビットの情報として用い、その電荷量に応じた電界効果トランジスタのコンダクタンス変化を測定し、情報を読み出す。ＮＡＮＤ型フラッシュメモリは、ＤＲＡＭと異なりデータ破壊を伴わずに複数回読み出すことが可能である。特に、近年のＮＡＮＤ型フラッシュメモリの大容量化は、多値記録方式、すなわち、電荷量の大小により１つのセルに２ビット以上の情報を記録する方式によるところが大きい。
【０００３】
しかし、ＮＡＮＤ型フラッシュメモリは、読み出し操作によって、非選択のセルの選択ゲートに電圧が印加されるため、読み出し操作を繰り返すことにより、記憶されていたデータが破壊するリードディスターブが生じ、書き込み時と異なるデータとして読み出される誤り（以下、誤り、または、エラーという）が発生することがある。
【０００４】
このため、ＮＡＮＤ型フラッシュメモリにおいては、誤りが発生しても、その誤りを検知し、さらに誤り訂正を行うために、誤り訂正符号を用いた誤り訂正が行われている。すなわち、あらかじめ、個々のデータ列に、誤り訂正符号を付与し復号する誤り訂正回路により、誤り訂正符号を付加してからメモリ部に記憶しておくことで、メモリ部から読み出すデータ列に誤りが発生しても、その誤りを修復できる。  
しかしながら、誤り訂正回路により訂正できる誤りの個数は、誤り訂正回路の仕様による所定の許容範囲内であるため、リードライトの信頼性を、より高めることが望まれていた。特に、多値記録方式のＮＡＮＤ型フラッシュメモリにおいては、リードライトの信頼性は重要である。
【０００５】
半導体メモリの中でも、パソコン等のホストの所定のポート、例えばＵＳＢポートに容易に抜き差し可能な可搬可能なＮＡＮＤ型フラッシュメモリは、可搬型の従来の磁気記録媒体よりも大容量化が進んだこと、および、機械的な可動部を必要としない小型であること等の理由から、携帯電話や音楽プレイヤーのメモリとしても広く普及している。しかし、ＮＡＮＤ型フラッシュメモリの大容量化に伴いデータエラーが発生した場合の影響が大きくなっている。このため、特に記憶されたデータをより確実に出力可能な、リードライトの信頼性の高い半導体メモリが望まれていた。
【０００６】
なお、特開平７−８４８９４号公報には、不揮発メモリにデータを書き込む際に、運用メモリ領域とバックアップ用メモリ領域とに書き込むことで、書き込み動作中に電源機能がダウンしても、正しいデータが失われる恐れのない書き込み方法が開示されている。特開平７−８４８９４号公報に開示されたメモリは、いわゆるシステム制御データを保存するためのメモリであり、かつ、運用メモリ領域とバックアップ用メモリ領域とに書き込むデータは時間的に差を設けていた。このため、時間経過によるノイズや温度等の変化により、運用メモリ領域とバックアップ用メモリ領域とに書き込まれたデータに違いが生じる可能性があった。
【特許文献１】特開平７−８４８９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、リードライトの信頼性の高い半導体メモリコントローラおよび半導体メモリを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本願発明の一態様によれば、メモリ部に記憶するデータを、Ｎ（但し、Ｎは偶数）ビット幅のバスを介して、メモリ部へ出力する半導体メモリコントローラであって、データの２重化処理を行い、それぞれのデータを、Ｎ／２ビット幅にて、同時にメモリ部の２箇所に出力し、メモリ部の前記２箇所に記憶することを特徴とする半導体メモリコントローラが提供される。
【発明の効果】
【０００９】
本発明はリードライトの信頼性の高い半導体メモリコントローラおよび半導体メモリを提供するものである。
【発明を実施するための最良の形態】
【００１０】
＜第１の実施の形態＞  
以下、図１〜図６を参照して本発明の第１の実施の形態の半導体メモリコントローラ１１および半導体メモリ１０を説明する。図１は、本発明の実施の形態にかかる半導体メモリコントローラ１１を有する半導体メモリ１０のデータ書き込み時の動作を説明するための構成図であり、図２は、半導体メモリコントローラ１１により処理される書き込み時のデータを説明するための図であり、図３は、従来の半導体メモリコントローラ１１１を有する半導体メモリ１１０のデータ書き込み時の動作を説明するための構成図であり、図４は、従来の半導体メモリコントローラ１１１により処理される書き込み時のデータを説明するための図であり、図５は、半導体メモリコントローラ１１１によるデータ読み出し時の処理の流れを説明するためのフローチャートであり、図６は、半導体メモリ１０の読み出し時の動作を説明するための構成図である。
【００１１】
図１に示すように、半導体メモリ１０は、メモリ部１２と、誤り訂正回路１５を有する半導体メモリコントローラ１１と、半導体メモリコントローラ１１とメモリ部１２との間のデータ転送を行うバス１８を有している。半導体メモリ１０は、ホスト９であるデジタルカメラまたはパソコン等の、ＵＳＢ端子に接続される、いわゆるＵＳＢメモリである。そして、半導体メモリ１０には、ＵＳＢバス等を介して、ホストからデータとクロック信号等が入力される。入力データは、レジスタ１３を介してバッファ１４に蓄積された後、誤り訂正回路（ＥＣＣ：Error Correction Code）１５にて、誤り訂正符号が生成され、セレクタ１６で入力データに誤り訂正符号が付加され符号化データとして、レジスタ１７にてバス１８の転送幅に調整される共に２重化処理が行われる。
【００１２】
本実施の形態の半導体メモリコントローラ１１は、Ｎ（ただし、Ｎは偶数）ビット幅のバス１８を有しているが、レジスタ１７を用いて、符号化データの２重化処理を行い、同じ内容の２つの符号化データを、Ｎ／２ビット幅にて、同時にメモリ部１２の２箇所に出力し、メモリ部１２の２箇所に記憶するミラーリング処理を行う。
【００１３】
すなわち、図１に示すように、半導体メモリコントローラ１１は、Ｎビット幅のバス１８を、Ｎ／２ビット幅のバス１８ＡおよびＮ／２ビット幅のバス１８Ｂの２つのバスとして用い、同じ内容の２つの符号化データを、同時にメモリ部１２の２箇所に出力し、記憶する。
【００１４】
誤り訂正回路１５は、入力データの誤り訂正符号を生成し、入力データに誤り訂正符号を付与し、符号化データを生成する。また、誤り訂正回路１５は、メモリ部１２から読み出された符号化データの誤り訂正、すなわち復号を行う。誤り訂正回路１５が用いる誤り訂正符号は、BCH（Bose Chaudhuri Hocquenghem）符号またはリードソロモン（Reed Solomon）符号等の公知の誤り訂正符号であり、２種類以上の誤り訂正符号を併用してもよい。
【００１５】
次に、図２を用いて、半導体メモリコントローラ１１により処理される書き込み時のデータを説明する。ここでは、図２上段に示すように、例えば入力データが、Ｄ０〜Ｄ５１１で示される５１２ビットのデータ列として取り扱われる例を示している。半導体メモリコントローラ１１の誤り訂正回路１５は、５１２ビットのデータ列に対して、例えば１１ビットの誤り訂正符号Ｅ０〜Ｅ１０を生成し、データ管理情報を収納した６ビットの冗長ビットＲＤ０〜ＲＤ５と共に、データ列に付与して、符号化データ列を生成する。なお、誤り訂正符号および冗長ビットのビット数は半導体メモリにより大きく増減するものであり、上記記載は、その一例である。
そして、図２中段に示すように、半導体メモリコントローラ１１は、符号化データ列の２重化処理を行い、それぞれのデータを、４ビット幅のバス１８Ａおよびバス１８Ｂを介して、メモリ部１２に送信し、異なるメモリ部Ａまたはメモリ部Ｂにそれぞれを、記憶する。
【００１６】
以下、２重化処理により生成したデータのそれぞれを本データ、ミラーデータと呼ぶ。本データとミラーデータは、少なくとも２重化処理の直後には全く同じデータであるが、バスを介しての転送およびメモリ部へのリードライトにより誤りが生じると異なるデータ、例えば、４ビットのデータで表示すると、DAT［３：０］およびDAT［３：０］‘となることがある。このため、図２下段では、メモリ部Ａに記憶されているデータＤ０〜Ｄ５１１をｄ０〜ｄ５１１、メモリ部Ｂに記憶されているデータＤ０〜Ｄ５１１をｄ０‘〜ｄ５１１’等と表記している。
【００１７】
ここで、図３を用いて、従来の半導体メモリコントローラ１１１を有する半導体メモリ１１０のデータ書き込み時の動作を説明する。半導体メモリ１１０の構成は、第１の実施の形態の半導体メモリ１０と類似しているため、同じ構成要素には同じ符号を付与し説明は省略する。すなわち、半導体メモリ１１０の構成は、半導体メモリ１０と類似しているが、メモリ部１２へのデータ転送のバス１１８が、Ｍビット幅（ただし、Ｍは整数）の場合には、データをＭビット単位でメモリ部１２に出力し、メモリ部１２の１箇所にデータを記憶している点で、半導体メモリ１０とは異なる。すなわち、図４上段に示すように、従来の半導体メモリコントローラ１１１により処理される入力データＤ０〜Ｄ５１１は、図２で示した半導体メモリコントローラ１１により処理される入力データと同じである。また、訂正符号Ｅ０〜Ｅ１０および調整ビットＲＤ０〜ＲＤ５をデータ列に付与して、符号化データ列を生成することも、半導体メモリコントローラ１１による処理と同じである。しかし、レジスタ１７は、符号化データ列の長さを、バス１１８の転送幅に合わせるだけであり、このため、図４中段に示すバス１１８を介してメモリ部１２に書き込まれるデータ列は、ここでは８ビット単位のDAT［７：０］となっている。また、メモリ部１２に記憶されているデータ列も図４下段に示すように、１箇所にしか記憶されていない。すなわち、従来の半導体メモリコントローラ１１１では、８ビット幅のバス１１８を介して、８ビット単位でメモリ部１２に出力され、ｄ０〜ｅ１０としてメモリ部１２の１箇所にのみ記憶されている。
【００１８】
次に、図５のフローチャートおよび図６を用いて、本実施の形態の半導体メモリコントローラ１１によるデータ読み出し時の処理の流れを説明する。
【００１９】
＜ステップＳ１１＞  
半導体メモリ１０がホスト９に接続されると、半導体メモリ１０に電源が供給される。ホスト９からの指示により、半導体メモリコントローラ１１は、メモリ部１２に記憶されている本データおよびミラーデータのうち、最初は、本データをバス１８を介して、読み込む。図６においては、バス１８Ａおよびバス１８Ｂを用いて、それぞれ４ビットのデータであるDAT［３：０］およびDAT［７：４］を読み込んでいる場合を示しているが、バス１８Ａまたはバス１８Ｂの一方のみを用いてもよい。
【００２０】
＜ステップＳ１２＞  
半導体メモリコントローラ１１は、本データの復号を行う。
【００２１】
＜ステップＳ１３＞  
半導体メモリコントローラ１１は、本データの復号が正常に行えた場合、すなわちデータ中の誤りの個数が、誤り訂正可能な範囲内だった（Ｙｅｓ）場合には、ステップＳ１８にて復号したデータをホスト９に出力する。
【００２２】
半導体メモリコントローラ１１は、本データの復号ができなかった場合、すなわちデータ中の誤りの個数が、誤り訂正可能な範囲を超えていた（Ｎｏ）場合には、ステップＳ１４以下の処理を行う。
【００２３】
＜ステップＳ１４＞  
半導体メモリコントローラ１１は、メモリ部１２に記憶されている本データおよびミラーデータのうち、ミラーデータをバス１８を介して、読み込む。
【００２４】
＜ステップＳ１５＞  
半導体メモリコントローラ１１は、ミラーデータの復号を行う。
【００２５】
＜ステップＳ１６＞  
半導体メモリコントローラ１１は、ミラーデータの復号が正常に行えた場合、すなわちデータ中の誤りの個数が、誤り訂正可能な範囲内だった（Ｙｅｓ）場合には、ステップＳ１８にて復号したデータをホスト９に出力する。
【００２６】
半導体メモリコントローラ１１は、本データの復号ができなかった場合、すなわちデータ中の誤りの個数が、誤り訂正可能な範囲を超えていた（Ｎｏ）場合には、ステップＳ１７において、ホスト９にエラー信号等を出力する。
【００２７】
＜ステップＳ１７＞  
半導体メモリコントローラ１１は、ホスト９にエラー信号等を出力する。
【００２８】
＜ステップＳ１８＞  
半導体メモリコントローラ１１は、復号したデータをホスト９に出力する。
【００２９】
以上の説明のように、本実施の形態の半導体メモリコントローラ１１は、データの２重化処理を行い、それぞれのデータを、Ｎ／２ビット幅にて、同時にメモリ部１２の２箇所に出力し、メモリ部１２の２箇所に記憶する。また、半導体メモリコントローラ１１は、誤り訂正符号を付与し復号する誤り訂正回路１５を有し、メモリ部１２の２箇所に記憶されたデータのうち、誤り訂正回路１５が復号できたデータを、外部に出力する。
【００３０】
このため、半導体メモリコントローラ１１は、時間差でデータを二重に書き込むことはないので、データのメモリ部への書き込み中に瞬間停電またはホストからの挿抜等が生じても、データの記録状態に違いの生じることがない。また、半導体メモリコントローラ１１は、従来の半導体メモリコントローラの転送バスを２分割して用いるため、従来の半導体メモリの基本構成を変えることがない、すなわち、半導体メモリの回路の複雑化および大型化を招くことがないだけでなく、設計変更が容易である。
【００３１】
また、もちろん、半導体メモリコントローラ１１は、ミラーリングによるデータのリードライト信頼性向上だけでなく、誤り訂正回路によるリードライト信頼性向上が図られるため、リードライトの信頼性が高い。そして、半導体メモリコントローラ１１を有する半導体メモリは、書き込みおよび読み出し、すなわち、リードライトの信頼性が高い。
【００３２】
特に、メモリ部がＮＡＮＤ型フラッシュメモリ部の場合には、リードディスターブによる誤りが発生することがあるため、本実施の形態の半導体メモリコントローラ１１の効果が顕著である。さらに、特には多値記録のＮＡＮＤ型フラッシュメモリ部の場合には、より本実施の形態の半導体メモリコントローラ１１の効果が顕著である。
【００３３】
＜第２の実施の形態＞  
以下、図７および図８を参照して本発明の第２の実施の形態の半導体メモリコントローラ２１１および半導体メモリ２１０を説明する。図７は、半導体メモリコントローラ２１１によるデータ読み出し時の処理の流れを説明するためのフローチャートであり、図８は、半導体メモリ２１０の読み出し時の動作を説明するための構成図である。
【００３４】
なお、本実施の形態の半導体メモリコントローラ２１１および半導体メモリ２１０は、第１の実施の形態の半導体メモリコントローラ１１および半導体メモリ１０と類似しているため、同じ構成要素には同じ符号を付与し、説明は省略する。
【００３５】
本実施の形態の半導体メモリコントローラ２１１による、入力データの符号化処理およびメモリ部１２への書き込み処理は、半導体メモリコントローラ１１と同様である。
【００３６】
このため、以下、図７のフローチャートおよび図８を用いて、本実施の形態の半導体メモリコントローラ２１１によるデータ読み出し時の処理の流れについてのみ、説明する。
【００３７】
＜ステップＳ２１＞  
半導体メモリ２１０がホスト９に接続されると、半導体メモリ２１０に電源が供給される。ホスト９からの指示により、半導体メモリコントローラ２１１は、メモリ部１２に記憶されている本データおよびミラーデータを、同時に、それぞれ４ビット幅のバス１８Ａおよび１８Ｂを介して、読み込む。なお、バス１８Ａおよびバス１８Ｂは、８ビット幅のバス１８を、それぞれ、１／２ずつ、すなわち４ビット幅ずつ用いている。
【００３８】
＜ステップＳ２２＞  
半導体メモリコントローラ２１１は、バス１８Ａを介して読み込まれた本データの復号を行うと、同時に、バス１８Ｂを介して読み込まれたミラーデータを、レジスタ１７Ｂでデータ量が調整した後に、バッファ１４Ｂに記憶する。
【００３９】
＜ステップＳ２３＞  
半導体メモリコントローラ２１１は、本データの復号が正常に行えた場合、すなわちデータ中の誤りの個数が、誤り訂正可能な範囲内だった（Ｙｅｓ）場合には、ステップＳ２７にて復号したデータをホスト９に出力する。
【００４０】
半導体メモリコントローラ２１１は、本データの復号ができなかった場合、すなわちデータ中の誤りの個数が、誤り訂正可能な範囲を超えていた（Ｎｏ）場合には、ステップＳ２４以下の処理を行う。
【００４１】
＜ステップＳ２４＞  
半導体メモリコントローラ２１１は、バッファ１４Ｂに記憶されているミラーデータをバッファ１４に送信すると共に、ミラーデータの復号を行う。
【００４２】
＜ステップＳ２５＞  
半導体メモリコントローラ２１１は、ミラーデータの復号が正常に行えた場合、すなわちデータ中の誤りの個数が、誤り訂正可能な範囲内だった（Ｙｅｓ）場合には、ステップＳ２７にて復号したデータをホスト９に出力する。
【００４３】
半導体メモリコントローラ２１１は、ミラーデータの復号もできなかった場合、すなわちデータ中の誤りの個数が、誤り訂正可能な範囲を超えていた（Ｎｏ）場合には、ステップＳ２６において、ホスト９にエラー信号等を出力する。
【００４４】
＜ステップＳ２６＞  
半導体メモリコントローラ２１１は、ホスト９にエラー信号等を出力する。
【００４５】
＜ステップＳ２７＞  
半導体メモリコントローラ２１１は、復号したデータをホスト９に出力する。
【００４６】
以上の説明のように、本実施の形態の半導体メモリコントローラ２１１は、第１の実施の形態の半導体メモリコントローラ１１と同様に、入力データの２重化処理を行い、それぞれのデータを、Ｎ／２ビット幅にて、同時にメモリ部１２の２箇所に出力し、メモリ部１２の２箇所に記憶する。また、半導体メモリコントローラ２１１は、誤り訂正符号を付与し復号する誤り訂正回路１５を有し、メモリ部１２の２箇所に記憶されたデータのうち、誤り訂正回路１５が復号できたデータを、外部に出力する。
【００４７】
このため、半導体メモリコントローラ２１１および半導体メモリ２１０は、半導体メモリコントローラ１１および半導体メモリ１０と同様の作用効果を奏する。さらに、半導体メモリコントローラ２１１は、書き込み時および読み出し時において、共に、Ｎビット幅のバス１８を２分割し、Ｎ／２ビット幅での転送を行うため、制御が容易である。
【００４８】
なお、上記説明では、入力データ列を５１２ビット長で処理し、８ビット幅のバスを介してメモリ部へのリードライトを行う例で説明したが、データ長、バスのビット幅、または、データの並び順等は、これに限定されるものではないことは言うまでもない。また、データ長等をビット単位で説明したが、もちろんバイト単位でもよい。
【００４９】
また、本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
【図面の簡単な説明】
【００５０】
【図１】第１の実施の形態にかかる半導体メモリコントローラを有する半導体メモリのデータ書き込み時の動作を説明するための構成図である。
【図２】第１の実施の形態にかかる半導体メモリコントローラにより処理される書き込み時のデータを説明するための図である。
【図３】従来の半導体メモリコントローラを有する半導体メモリのデータ書き込み時の動作を説明するための構成図である。
【図４】従来の半導体メモリコントローラにより処理される書き込み時のデータを説明するための図である。
【図５】第１の実施の形態にかかる半導体メモリコントローラによるデータ読み出し時の処理の流れを説明するためのフローチャートである。
【図６】第１の実施の形態にかかる半導体メモリの読み出し時の動作を説明するための構成図である。
【図７】第２の実施の形態にかかる半導体メモリコントローラによるデータ読み出し時の処理の流れを説明するためのフローチャートである。
【図８】第２の実施の形態にかかる半導体メモリ２１０の読み出し時の動作を説明するための構成図である。
【符号の説明】
【００５１】
９…ホスト、１０…半導体メモリ、１１…半導体メモリコントローラ、１２…メモリ部、１３…レジスタ、１４、１４Ｂ…バッファ、１５…誤り訂正回路、１６…セレクタ、１７、１７Ｂ…レジスタ、１８、１８Ａ、１８Ｂ…バス、１１０…半導体メモリ、１１１…半導体メモリコントローラ、１１８…バス、２１０…半導体メモリ、２１１…半導体メモリコントローラ
【図１】
2009157515.tif 000003
【図２】
2009157515.tif 000004
【図３】
2009157515.tif 000005
【図４】
2009157515.tif 000006
【図５】
2009157515.tif 000007
【図６】
2009157515.tif 000008
【図７】
2009157515.tif 000009
【図８】
2009157515.tif 000010